From b8acf4a6a4c0c21eb0d2526633c28a8c1f5af55e Mon Sep 17 00:00:00 2001 From: Matus Kysel Date: Wed, 5 Jun 2024 11:28:20 +0200 Subject: [PATCH 01/22] Erigon v2.60.1 (#403) * fix Consensus specification tests CI (#10391) (#10396) Cherry-pick: https://github.com/ledgerwatch/erigon/commit/bc5fa6f156778125ff7aea20161ef550efb754cd Need this to get PR CI green for v2.60.1 patches, e.g. - https://github.com/ledgerwatch/erigon/pull/10390 Co-authored-by: Andrew Ashikhmin <34320705+yperbasis@users.noreply.github.com> * rpc/handler: do not append null to stream when json may be valid (#10390) Cherry-pick: https://github.com/ledgerwatch/erigon/commit/4d1c95473420d06a2317bbb01fbf99ec9b6ac781 Relates to: https://github.com/ledgerwatch/erigon/issues/10376 * Fixed Bor Log appearing on Ethereum Mainnet (#10405) (#10420) Cherry-pick: https://github.com/ledgerwatch/erigon/commit/be889f6250ffc599e04438d263a0a6515471fd24 Co-authored-by: Giulio rebuffo * fix gas price not right problem (#10456) Cherry pick PR #10451 into the release branch Co-authored-by: mars * eth_estimateGas: default feeCap to base fee (#10499) Copy PR #10495 into the release branch * Add flag for bor waypoint types (#10501) Cherry pick PR #10281 into the release branch Co-authored-by: Mark Holt <135143369+mh0lt@users.noreply.github.com> Co-authored-by: alex.sharov * try to fix 'method handler crashed' for debug_traceCall of #9090 (#10502) Cherry pick PR #10401 into the release branch Co-authored-by: mars * diagnostics: cherry pick speedtest disable (#10509) Cherry pick PR #10449 into the release branch * Enable DNS p2p discovery on holesky (#10507) Cherry pick PR #10460 into the release branch Co-authored-by: Willian Mitsuda * fix eth_call 'method handler crashed' error when tx has set maxFeePerBlobGas (#10506) Cherry pick PR #10452 into the release branch Co-authored-by: mars * e2: remove overlapped files only after merge (#10487) Otherwise: if start after `kill -9` in the middle of merge - may remove small files of 1 type of file, but leave small files of another type of files (which merge was not finished) - and leave node in un-mergable state: https://github.com/ledgerwatch/erigon/issues/10485 --------- Co-authored-by: awskii * add flag checking for pruning waypoints (#10508) Cherry pick PR #10468 into the release branch Co-authored-by: Mark Holt <135143369+mh0lt@users.noreply.github.com> * p2p/sentry: sentry doesn't start with ErrNoHead (#10454) (#10523) cherry-pick https://github.com/ledgerwatch/erigon/pull/10494 to release/2.60 * add lock to purgeMilestoneIDsList (#10524) Cherry pick PR #10493 into the release branch Co-authored-by: Mark Holt <135143369+mh0lt@users.noreply.github.com> * polygon/heimdall: fix checkpoint json marshalling (#10530) Fixes a recent regression causing unwinds due to checkpoints having zero root hash: ``` [WARN] [05-18|23:58:54.662] [bor] Root hash mismatch while whitelisting checkpoint expected=ac1c57270479250af3ce8eee90075cd8b2ba1bac55353105e063d9a4c87c743e got=0000000000000000000000000000000000000000000000000000000000000000 [WARN] [05-18|23:58:54.662] [bor] Rewinding chain due to checkpoint root hash mismatch number=57125727 ``` Note this has already been fixed on Erigon 3 branch but as part of a non-related PR - https://github.com/ledgerwatch/erigon/pull/10124/files#diff-47d4532f399f2d6a45e6f19944a45c80bac573b4d1b5cb51485d0254229d1b16 * Fix capacity for immediate appends (#10539) Cherry pick PR #10528 into the release branch Co-authored-by: Shoham Chakraborty * core/vm: set tracer-observable value of a delegatecall to match parent value (#10370) requested by https://github.com/ledgerwatch/erigon/issues/9549 port of https://github.com/ethereum/go-ethereum/pull/26632 * params: version 2.60.1 (#10555) * blobGasPrice should be marshalled as hex (#10571) Cherry pick PR #10551 into the release branch * Caplin: Fixed reforwarding of Bls Execution changes (#10577) Cherry pick PR #10546 into the release branch Co-authored-by: Giulio rebuffo * Caplin: Proper "Normalization" of length of ForkVersions to 8 hex characters (#10578) Cherry pick PR #10512 into the release branch Co-authored-by: Giulio rebuffo * Caplin: Update BlobSidecars Beacon API endpoint to the latest specs (#10580) Cherry pick PR #10576 into the release branch Co-authored-by: Giulio rebuffo * bor blocks retire: infinity loop fix (#10596) Problem: `+1` was added to maxBlockNum instead of minBlockNum for: https://github.com/ledgerwatch/erigon/issues/10554 * txpool: EIP-3860 should only apply to create transactions (#10609) This fixes Issue #10607 --------- Co-authored-by: milen <94537774+taratorio@users.noreply.github.com> Co-authored-by: Andrew Ashikhmin <34320705+yperbasis@users.noreply.github.com> Co-authored-by: Giulio rebuffo Co-authored-by: mars Co-authored-by: Mark Holt <135143369+mh0lt@users.noreply.github.com> Co-authored-by: alex.sharov Co-authored-by: Dmytro Co-authored-by: Willian Mitsuda Co-authored-by: awskii Co-authored-by: battlmonstr Co-authored-by: Shoham Chakraborty --- cl/beacon/beaconhttp/args.go | 9 +- cl/beacon/handler/blobs.go | 27 +++- cl/clparams/config.go | 5 +- cl/sentinel/service/service.go | 3 +- cl/spectest/Makefile | 2 +- cmd/integration/commands/stages.go | 1 + cmd/snapshots/manifest/manifest.go | 7 +- cmd/utils/flags.go | 9 +- core/blockchain.go | 2 +- core/rawdb/accessors_chain.go | 112 ---------------- core/rawdb/blockio/block_writer.go | 3 +- core/vm/evm.go | 6 + diagnostics/logs.go | 2 +- diagnostics/setup.go | 5 +- erigon-lib/diagnostics/client.go | 4 +- erigon-lib/diagnostics/speedtest.go | 19 +-- erigon-lib/txpool/pool.go | 6 +- erigon-lib/txpool/pool_test.go | 23 +++- eth/backend.go | 3 +- eth/ethutils/receipt.go | 6 +- eth/stagedsync/stage_bor_heimdall.go | 83 ++++++------ .../testdata/call_tracer/delegatecall.json | 3 +- .../call_tracer_withLog/delegatecall.json | 24 ++-- migrations/prohibit_new_downloads2.go | 2 +- .../sentry_multi_client.go | 4 +- p2p/sentry/status_data_provider.go | 53 ++++++-- params/bootnodes.go | 2 + polygon/bor/bordb/prune.go | 125 ++++++++++++++++++ polygon/bor/finality/whitelist/milestone.go | 7 + .../bor/finality/whitelist/service_test.go | 6 +- polygon/bor/snaptype/types.go | 43 +++++- polygon/heimdall/checkpoint.go | 4 +- rpc/handler.go | 23 +++- rpc/handler_test.go | 16 ++- turbo/adapter/ethapi/api.go | 8 +- turbo/jsonrpc/eth_api.go | 2 +- turbo/jsonrpc/eth_call.go | 82 +++++------- turbo/jsonrpc/eth_call_test.go | 2 +- .../freezeblocks/block_snapshots.go | 7 +- .../freezeblocks/block_snapshots_test.go | 2 +- .../freezeblocks/bor_snapshots.go | 37 +++--- turbo/stages/mock/mock_sentry.go | 1 + 42 files changed, 480 insertions(+), 310 deletions(-) create mode 100644 polygon/bor/bordb/prune.go diff --git a/cl/beacon/beaconhttp/args.go b/cl/beacon/beaconhttp/args.go index 1701620b074..5bbb115171a 100644 --- a/cl/beacon/beaconhttp/args.go +++ b/cl/beacon/beaconhttp/args.go @@ -5,6 +5,7 @@ import ( "net/http" "regexp" "strconv" + "strings" "github.com/go-chi/chi/v5" "github.com/ledgerwatch/erigon-lib/common" @@ -168,9 +169,13 @@ func Uint64FromQueryParams(r *http.Request, name string) (*uint64, error) { // decode a list of strings from the query params func StringListFromQueryParams(r *http.Request, name string) ([]string, error) { - str := r.URL.Query().Get(name) - if str == "" { + values := r.URL.Query()[name] + if len(values) == 0 { return nil, nil } + + // Combine all values into a single string, separating by comma + str := strings.Join(values, ",") + return regexp.MustCompile(`\s*,\s*`).Split(str, -1), nil } diff --git a/cl/beacon/handler/blobs.go b/cl/beacon/handler/blobs.go index 18e11a98633..8b006ec4d4a 100644 --- a/cl/beacon/handler/blobs.go +++ b/cl/beacon/handler/blobs.go @@ -3,6 +3,7 @@ package handler import ( "fmt" "net/http" + "strconv" "github.com/ledgerwatch/erigon/cl/beacon/beaconhttp" "github.com/ledgerwatch/erigon/cl/cltypes" @@ -51,13 +52,33 @@ func (a *ApiHandler) GetEthV1BeaconBlobSidecars(w http.ResponseWriter, r *http.R if err != nil { return nil, err } - + strIdxs, err := beaconhttp.StringListFromQueryParams(r, "indices") + if err != nil { + return nil, err + } resp := solid.NewStaticListSSZ[*cltypes.BlobSidecar](696969, blobSidecarSSZLenght) if !found { return beaconhttp.NewBeaconResponse(resp), nil } - for _, v := range out { - resp.Append(v) + if len(strIdxs) == 0 { + for _, v := range out { + resp.Append(v) + } + } else { + included := make(map[uint64]struct{}) + for _, idx := range strIdxs { + i, err := strconv.ParseUint(idx, 10, 64) + if err != nil { + return nil, err + } + included[i] = struct{}{} + } + for _, v := range out { + if _, ok := included[v.Index]; ok { + resp.Append(v) + } + } } + return beaconhttp.NewBeaconResponse(resp), nil } diff --git a/cl/clparams/config.go b/cl/clparams/config.go index 20ef21434a9..e5980ab3cca 100644 --- a/cl/clparams/config.go +++ b/cl/clparams/config.go @@ -15,6 +15,7 @@ package clparams import ( "crypto/rand" + "encoding/binary" "fmt" "math" "math/big" @@ -315,7 +316,9 @@ func (b ConfigByte) MarshalJSON() ([]byte, error) { type ConfigForkVersion uint32 func (v ConfigForkVersion) MarshalJSON() ([]byte, error) { - return []byte(fmt.Sprintf("\"0x%x\"", v)), nil + tmp := make([]byte, 4) + binary.BigEndian.PutUint32(tmp, uint32(v)) + return []byte(fmt.Sprintf("\"0x%x\"", tmp)), nil } // BeaconChainConfig contains constant configs for node to participate in beacon chain. diff --git a/cl/sentinel/service/service.go b/cl/sentinel/service/service.go index 0c52f9edc23..1bf9654fb53 100644 --- a/cl/sentinel/service/service.go +++ b/cl/sentinel/service/service.go @@ -96,7 +96,8 @@ func (s *SentinelServer) PublishGossip(_ context.Context, msg *sentinelrpc.Gossi gossip.TopicNameVoluntaryExit, gossip.TopicNameProposerSlashing, gossip.TopicNameSyncCommitteeContributionAndProof, - gossip.TopicNameAttesterSlashing: + gossip.TopicNameAttesterSlashing, + gossip.TopicNameBlsToExecutionChange: subscription = manager.GetMatchingSubscription(msg.Name) default: // check subnets diff --git a/cl/spectest/Makefile b/cl/spectest/Makefile index 68959bfba32..b507c4613b1 100644 --- a/cl/spectest/Makefile +++ b/cl/spectest/Makefile @@ -2,7 +2,7 @@ tests: - GIT_LFS_SKIP_SMUDGE=1 git clone https://github.com/ethereum/consensus-spec-tests + GIT_LFS_SKIP_SMUDGE=1 GIT_CLONE_PROTECTION_ACTIVE=false git clone https://github.com/ethereum/consensus-spec-tests cd consensus-spec-tests && git checkout 080c96fbbf3be58e75947debfeb9ba3b2b7c9748 && git lfs pull --exclude=tests/general,tests/minimal && cd .. mv consensus-spec-tests/tests . rm -rf consensus-spec-tests diff --git a/cmd/integration/commands/stages.go b/cmd/integration/commands/stages.go index f447c5a27ce..b095e7e56fe 100644 --- a/cmd/integration/commands/stages.go +++ b/cmd/integration/commands/stages.go @@ -1627,6 +1627,7 @@ func newSync(ctx context.Context, db kv.RwDB, miningConfig *params.MiningConfig, chainConfig, genesisBlock, chainConfig.ChainID.Uint64(), + logger, ) maxBlockBroadcastPeers := func(header *types.Header) uint { return 0 } diff --git a/cmd/snapshots/manifest/manifest.go b/cmd/snapshots/manifest/manifest.go index 7ce76cc561a..fe36be79c27 100644 --- a/cmd/snapshots/manifest/manifest.go +++ b/cmd/snapshots/manifest/manifest.go @@ -12,12 +12,13 @@ import ( "strings" "time" + "github.com/urfave/cli/v2" + "github.com/ledgerwatch/erigon-lib/downloader" "github.com/ledgerwatch/erigon-lib/downloader/snaptype" "github.com/ledgerwatch/erigon/cmd/snapshots/sync" "github.com/ledgerwatch/erigon/cmd/utils" "github.com/ledgerwatch/erigon/turbo/logging" - "github.com/urfave/cli/v2" ) var ( @@ -286,7 +287,7 @@ func verifyManifest(ctx context.Context, srcSession *downloader.RCloneSession, v var extra string if len(manifestFiles) != 0 { - files := make([]string, len(manifestFiles)) + files := make([]string, 0, len(manifestFiles)) for file := range manifestFiles { files = append(files, file) @@ -296,7 +297,7 @@ func verifyManifest(ctx context.Context, srcSession *downloader.RCloneSession, v } if len(dirFiles) != 0 { - files := make([]string, len(dirFiles)) + files := make([]string, 0, len(dirFiles)) for file := range dirFiles { files = append(files, file) diff --git a/cmd/utils/flags.go b/cmd/utils/flags.go index 51b93a0e8e0..4dc4ad6b51f 100644 --- a/cmd/utils/flags.go +++ b/cmd/utils/flags.go @@ -61,6 +61,7 @@ import ( "github.com/ledgerwatch/erigon/p2p/nat" "github.com/ledgerwatch/erigon/p2p/netutil" "github.com/ledgerwatch/erigon/params" + borsnaptype "github.com/ledgerwatch/erigon/polygon/bor/snaptype" "github.com/ledgerwatch/erigon/rpc/rpccfg" "github.com/ledgerwatch/erigon/turbo/logging" ) @@ -1024,9 +1025,14 @@ var ( Usage: "Diagnostics HTTP server listening port", Value: 6060, } + DiagSpeedTestFlag = cli.BoolFlag{ + Name: "diagnostics.speedtest", + Usage: "Enable speed test", + Value: false, + } ) -var MetricFlags = []cli.Flag{&MetricsEnabledFlag, &MetricsHTTPFlag, &MetricsPortFlag, &DiagDisabledFlag, &DiagEndpointAddrFlag, &DiagEndpointPortFlag} +var MetricFlags = []cli.Flag{&MetricsEnabledFlag, &MetricsHTTPFlag, &MetricsPortFlag, &DiagDisabledFlag, &DiagEndpointAddrFlag, &DiagEndpointPortFlag, &DiagSpeedTestFlag} var DiagnosticsFlags = []cli.Flag{&DiagnosticsURLFlag, &DiagnosticsURLFlag, &DiagnosticsSessionsFlag} @@ -1603,6 +1609,7 @@ func setBorConfig(ctx *cli.Context, cfg *ethconfig.Config) { cfg.WithoutHeimdall = ctx.Bool(WithoutHeimdallFlag.Name) cfg.WithHeimdallMilestones = ctx.Bool(WithHeimdallMilestones.Name) cfg.WithHeimdallWaypointRecording = ctx.Bool(WithHeimdallWaypoints.Name) + borsnaptype.RecordWayPoints(cfg.WithHeimdallWaypointRecording) cfg.PolygonSync = ctx.Bool(PolygonSyncFlag.Name) } diff --git a/core/blockchain.go b/core/blockchain.go index 3c5b44083d8..44325b79f92 100644 --- a/core/blockchain.go +++ b/core/blockchain.go @@ -361,7 +361,7 @@ func logReceipts(receipts types.Receipts, txns types.Transactions, cc *chain.Con return } - marshalled := make([]map[string]interface{}, len(receipts)) + marshalled := make([]map[string]interface{}, 0, len(receipts)) for i, receipt := range receipts { txn := txns[i] marshalled = append(marshalled, ethutils.MarshalReceipt(receipt, txn, cc, header, txn.Hash(), true)) diff --git a/core/rawdb/accessors_chain.go b/core/rawdb/accessors_chain.go index 0be7519f831..56c8b402100 100644 --- a/core/rawdb/accessors_chain.go +++ b/core/rawdb/accessors_chain.go @@ -21,7 +21,6 @@ import ( "context" "encoding/binary" "encoding/json" - "errors" "fmt" "math" "math/big" @@ -42,7 +41,6 @@ import ( "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/ethdb/cbor" - "github.com/ledgerwatch/erigon/polygon/heimdall" "github.com/ledgerwatch/erigon/rlp" ) @@ -1096,116 +1094,6 @@ func PruneBlocks(tx kv.RwTx, blockTo uint64, blocksDeleteLimit int) error { return nil } -// PruneBorBlocks - delete [1, to) old blocks after moving it to snapshots. -// keeps genesis in db: [1, to) -// doesn't change sequences of kv.EthTx and kv.NonCanonicalTxs -// doesn't delete Receipts, Senders, Canonical markers, TotalDifficulty -func PruneBorBlocks(tx kv.RwTx, blockTo uint64, blocksDeleteLimit int, SpanIdAt func(number uint64) uint64) error { - c, err := tx.Cursor(kv.BorEventNums) - if err != nil { - return err - } - defer c.Close() - var blockNumBytes [8]byte - binary.BigEndian.PutUint64(blockNumBytes[:], blockTo) - k, v, err := c.Seek(blockNumBytes[:]) - if err != nil { - return err - } - var eventIdTo uint64 = math.MaxUint64 - if k != nil { - eventIdTo = binary.BigEndian.Uint64(v) - } - c1, err := tx.RwCursor(kv.BorEvents) - if err != nil { - return err - } - defer c1.Close() - counter := blocksDeleteLimit - for k, _, err = c1.First(); err == nil && k != nil && counter > 0; k, _, err = c1.Next() { - eventId := binary.BigEndian.Uint64(k) - if eventId >= eventIdTo { - break - } - if err = c1.DeleteCurrent(); err != nil { - return err - } - counter-- - } - if err != nil { - return err - } - firstSpanToKeep := SpanIdAt(blockTo) - c2, err := tx.RwCursor(kv.BorSpans) - if err != nil { - return err - } - defer c2.Close() - counter = blocksDeleteLimit - for k, _, err := c2.First(); err == nil && k != nil && counter > 0; k, _, err = c2.Next() { - spanId := binary.BigEndian.Uint64(k) - if spanId >= firstSpanToKeep { - break - } - if err = c2.DeleteCurrent(); err != nil { - return err - } - counter-- - } - - checkpointCursor, err := tx.RwCursor(kv.BorCheckpoints) - if err != nil { - return err - } - - defer checkpointCursor.Close() - lastCheckpointToRemove, err := heimdall.CheckpointIdAt(tx, blockTo) - - if err != nil { - return err - } - - var checkpointIdBytes [8]byte - binary.BigEndian.PutUint64(checkpointIdBytes[:], uint64(lastCheckpointToRemove)) - for k, _, err := checkpointCursor.Seek(checkpointIdBytes[:]); err == nil && k != nil; k, _, err = checkpointCursor.Prev() { - if err = checkpointCursor.DeleteCurrent(); err != nil { - return err - } - } - - milestoneCursor, err := tx.RwCursor(kv.BorMilestones) - - if err != nil { - return err - } - - defer milestoneCursor.Close() - - var lastMilestoneToRemove heimdall.MilestoneId - - for blockCount := 1; err != nil && blockCount < blocksDeleteLimit; blockCount++ { - lastMilestoneToRemove, err = heimdall.MilestoneIdAt(tx, blockTo-uint64(blockCount)) - - if !errors.Is(err, heimdall.ErrMilestoneNotFound) { - return err - } else { - if blockCount == blocksDeleteLimit-1 { - return nil - } - } - } - - var milestoneIdBytes [8]byte - binary.BigEndian.PutUint64(milestoneIdBytes[:], uint64(lastMilestoneToRemove)) - for k, _, err := milestoneCursor.Seek(milestoneIdBytes[:]); err == nil && k != nil; k, _, err = milestoneCursor.Prev() { - if err = milestoneCursor.DeleteCurrent(); err != nil { - return err - } - } - - return nil -} - func TruncateCanonicalChain(ctx context.Context, db kv.RwTx, from uint64) error { return db.ForEach(kv.HeaderCanonical, hexutility.EncodeTs(from), func(k, _ []byte) error { return db.Delete(kv.HeaderCanonical, k) diff --git a/core/rawdb/blockio/block_writer.go b/core/rawdb/blockio/block_writer.go index e1e779cc0a8..52838b47fd1 100644 --- a/core/rawdb/blockio/block_writer.go +++ b/core/rawdb/blockio/block_writer.go @@ -13,6 +13,7 @@ import ( "github.com/ledgerwatch/erigon-lib/kv" "github.com/ledgerwatch/erigon-lib/kv/rawdbv3" "github.com/ledgerwatch/erigon/core/rawdb" + "github.com/ledgerwatch/erigon/polygon/bor/bordb" "github.com/ledgerwatch/log/v3" ) @@ -116,5 +117,5 @@ func (w *BlockWriter) PruneBlocks(ctx context.Context, tx kv.RwTx, blockTo uint6 // doesn't change sequences of kv.EthTx and kv.NonCanonicalTxs // doesn't delete Receipts, Senders, Canonical markers, TotalDifficulty func (w *BlockWriter) PruneBorBlocks(ctx context.Context, tx kv.RwTx, blockTo uint64, blocksDeleteLimit int, SpanIdAt func(number uint64) uint64) error { - return rawdb.PruneBorBlocks(tx, blockTo, blocksDeleteLimit, SpanIdAt) + return bordb.PruneBorBlocks(tx, blockTo, blocksDeleteLimit, SpanIdAt) } diff --git a/core/vm/evm.go b/core/vm/evm.go index 2644fcff08d..b8be8ae118d 100644 --- a/core/vm/evm.go +++ b/core/vm/evm.go @@ -241,6 +241,12 @@ func (evm *EVM) call(typ OpCode, caller ContractRef, addr libcommon.Address, inp v := value if typ == STATICCALL { v = nil + } else if typ == DELEGATECALL { + // NOTE: caller must, at all times be a contract. It should never happen + // that caller is something other than a Contract. + parent := caller.(*Contract) + // DELEGATECALL inherits value from parent call + v = parent.value } if depth == 0 { evm.config.Tracer.CaptureStart(evm, caller.Address(), addr, isPrecompile, false /* create */, input, gas, v, code) diff --git a/diagnostics/logs.go b/diagnostics/logs.go index 420fa2c926a..f3d44e5c178 100644 --- a/diagnostics/logs.go +++ b/diagnostics/logs.go @@ -70,7 +70,7 @@ func writeLogsList(w http.ResponseWriter, dirPath string) { Size int64 `json:"size"` } - files := make([]file, len(infos)) + files := make([]file, 0, len(infos)) for _, fileInfo := range infos { files = append(files, file{Name: fileInfo.Name(), Size: fileInfo.Size()}) diff --git a/diagnostics/setup.go b/diagnostics/setup.go index 7ce8b3a6d53..6534ecac245 100644 --- a/diagnostics/setup.go +++ b/diagnostics/setup.go @@ -20,6 +20,7 @@ var ( metricsPortFlag = "metrics.port" pprofPortFlag = "pprof.port" pprofAddrFlag = "pprof.addr" + diagnoticsSpeedTestFlag = "diagnostics.speedtest" ) func Setup(ctx *cli.Context, node *node.ErigonNode, metricsMux *http.ServeMux, pprofMux *http.ServeMux) { @@ -48,7 +49,9 @@ func Setup(ctx *cli.Context, node *node.ErigonNode, metricsMux *http.ServeMux, p diagMux = SetupDiagnosticsEndpoint(nil, diagAddress) } - diagnostic := diaglib.NewDiagnosticClient(diagMux, node.Backend().DataDir()) + speedTest := ctx.Bool(diagnoticsSpeedTestFlag) + + diagnostic := diaglib.NewDiagnosticClient(diagMux, node.Backend().DataDir(), speedTest) diagnostic.Setup() SetupEndpoints(ctx, node, diagMux, diagnostic) diff --git a/erigon-lib/diagnostics/client.go b/erigon-lib/diagnostics/client.go index 284e46c1498..df5b04a76fc 100644 --- a/erigon-lib/diagnostics/client.go +++ b/erigon-lib/diagnostics/client.go @@ -10,6 +10,7 @@ import ( type DiagnosticClient struct { metricsMux *http.ServeMux dataDirPath string + speedTest bool syncStats SyncStatistics snapshotFileList SnapshoFilesList @@ -26,10 +27,11 @@ type DiagnosticClient struct { networkSpeedMutex sync.Mutex } -func NewDiagnosticClient(metricsMux *http.ServeMux, dataDirPath string) *DiagnosticClient { +func NewDiagnosticClient(metricsMux *http.ServeMux, dataDirPath string, speedTest bool) *DiagnosticClient { return &DiagnosticClient{ metricsMux: metricsMux, dataDirPath: dataDirPath, + speedTest: speedTest, syncStats: SyncStatistics{}, hardwareInfo: HardwareInfo{}, snapshotFileList: SnapshoFilesList{}, diff --git a/erigon-lib/diagnostics/speedtest.go b/erigon-lib/diagnostics/speedtest.go index d2c463bbbbb..77da08ac7a6 100644 --- a/erigon-lib/diagnostics/speedtest.go +++ b/erigon-lib/diagnostics/speedtest.go @@ -8,22 +8,11 @@ import ( ) func (d *DiagnosticClient) setupSpeedtestDiagnostics(rootCtx context.Context) { - ticker := time.NewTicker(30 * time.Minute) go func() { - d.networkSpeedMutex.Lock() - d.networkSpeed = d.runSpeedTest(rootCtx) - d.networkSpeedMutex.Unlock() - - for { - select { - case <-ticker.C: - d.networkSpeedMutex.Lock() - d.networkSpeed = d.runSpeedTest(rootCtx) - d.networkSpeedMutex.Unlock() - case <-rootCtx.Done(): - ticker.Stop() - return - } + if d.speedTest { + d.networkSpeedMutex.Lock() + d.networkSpeed = d.runSpeedTest(rootCtx) + d.networkSpeedMutex.Unlock() } }() } diff --git a/erigon-lib/txpool/pool.go b/erigon-lib/txpool/pool.go index 846a6b3e6be..d9ecdc0d051 100644 --- a/erigon-lib/txpool/pool.go +++ b/erigon-lib/txpool/pool.go @@ -835,10 +835,8 @@ func toBlobs(_blobs [][]byte) []gokzg4844.Blob { func (p *TxPool) validateTx(txn *types.TxSlot, isLocal bool, stateCache kvcache.CacheView) txpoolcfg.DiscardReason { isShanghai := p.isShanghai() || p.isAgra() - if isShanghai { - if txn.DataLen > fixedgas.MaxInitCodeSize { - return txpoolcfg.InitCodeTooLarge - } + if isShanghai && txn.Creation && txn.DataLen > fixedgas.MaxInitCodeSize { + return txpoolcfg.InitCodeTooLarge // EIP-3860 } if txn.Type == types.BlobTxType { if !p.isCancun() { diff --git a/erigon-lib/txpool/pool_test.go b/erigon-lib/txpool/pool_test.go index 93878af5c87..6030ee6e03f 100644 --- a/erigon-lib/txpool/pool_test.go +++ b/erigon-lib/txpool/pool_test.go @@ -645,26 +645,43 @@ func TestShanghaiValidateTx(t *testing.T) { expected txpoolcfg.DiscardReason dataLen int isShanghai bool + creation bool }{ "no shanghai": { expected: txpoolcfg.Success, dataLen: 32, isShanghai: false, + creation: true, }, "shanghai within bounds": { expected: txpoolcfg.Success, dataLen: 32, isShanghai: true, + creation: true, }, - "shanghai exactly on bound": { + "shanghai exactly on bound - create tx": { expected: txpoolcfg.Success, dataLen: fixedgas.MaxInitCodeSize, isShanghai: true, + creation: true, }, - "shanghai one over bound": { + "shanghai one over bound - create tx": { expected: txpoolcfg.InitCodeTooLarge, dataLen: fixedgas.MaxInitCodeSize + 1, isShanghai: true, + creation: true, + }, + "shanghai exactly on bound - calldata tx": { + expected: txpoolcfg.Success, + dataLen: fixedgas.MaxInitCodeSize, + isShanghai: true, + creation: false, + }, + "shanghai one over bound - calldata tx": { + expected: txpoolcfg.Success, + dataLen: fixedgas.MaxInitCodeSize + 1, + isShanghai: true, + creation: false, }, } @@ -700,7 +717,7 @@ func TestShanghaiValidateTx(t *testing.T) { FeeCap: *uint256.NewInt(21000), Gas: 500000, SenderID: 0, - Creation: true, + Creation: test.creation, } txns := types.TxSlots{ diff --git a/eth/backend.go b/eth/backend.go index e400b8c1b8a..4c7766a0ba0 100644 --- a/eth/backend.go +++ b/eth/backend.go @@ -581,6 +581,7 @@ func New(ctx context.Context, stack *node.Node, config *ethconfig.Config, logger chainConfig, genesis, backend.config.NetworkID, + logger, ) // limit "new block" broadcasts to at most 10 random peers at time @@ -1679,7 +1680,7 @@ func (s *Ethereum) DataDir() string { // setBorDefaultMinerGasPrice enforces Miner.GasPrice to be equal to BorDefaultMinerGasPrice (30gwei by default) func setBorDefaultMinerGasPrice(chainConfig *chain.Config, config *ethconfig.Config, logger log.Logger) { - if chainConfig.Bor != nil && config.Miner.GasPrice == nil || config.Miner.GasPrice.Cmp(ethconfig.BorDefaultMinerGasPrice) != 0 { + if chainConfig.Bor != nil && (config.Miner.GasPrice == nil || config.Miner.GasPrice.Cmp(ethconfig.BorDefaultMinerGasPrice) != 0) { logger.Warn("Sanitizing invalid bor miner gas price", "provided", config.Miner.GasPrice, "updated", ethconfig.BorDefaultMinerGasPrice) config.Miner.GasPrice = ethconfig.BorDefaultMinerGasPrice } diff --git a/eth/ethutils/receipt.go b/eth/ethutils/receipt.go index 43fa46f168b..2caa571290e 100644 --- a/eth/ethutils/receipt.go +++ b/eth/ethutils/receipt.go @@ -53,11 +53,11 @@ func MarshalReceipt( } if !chainConfig.IsLondon(header.Number.Uint64()) { - fields["effectiveGasPrice"] = hexutil.Uint64(txn.GetPrice().Uint64()) + fields["effectiveGasPrice"] = (*hexutil.Big)(txn.GetPrice().ToBig()) } else { baseFee, _ := uint256.FromBig(header.BaseFee) gasPrice := new(big.Int).Add(header.BaseFee, txn.GetEffectiveGasTip(baseFee).ToBig()) - fields["effectiveGasPrice"] = hexutil.Uint64(gasPrice.Uint64()) + fields["effectiveGasPrice"] = (*hexutil.Big)(gasPrice) } // Assign receipt status. @@ -81,7 +81,7 @@ func MarshalReceipt( if err != nil { log.Error(err.Error()) } - fields["blobGasPrice"] = blobGasPrice + fields["blobGasPrice"] = (*hexutil.Big)(blobGasPrice.ToBig()) fields["blobGasUsed"] = hexutil.Uint64(misc.GetBlobGasUsed(numBlobs)) } } diff --git a/eth/stagedsync/stage_bor_heimdall.go b/eth/stagedsync/stage_bor_heimdall.go index ca24d61e76d..b9e43db34e8 100644 --- a/eth/stagedsync/stage_bor_heimdall.go +++ b/eth/stagedsync/stage_bor_heimdall.go @@ -30,6 +30,7 @@ import ( "github.com/ledgerwatch/erigon/polygon/bor/borcfg" "github.com/ledgerwatch/erigon/polygon/bor/finality" "github.com/ledgerwatch/erigon/polygon/bor/finality/whitelist" + borsnaptype "github.com/ledgerwatch/erigon/polygon/bor/snaptype" "github.com/ledgerwatch/erigon/polygon/bor/valset" "github.com/ledgerwatch/erigon/polygon/heimdall" "github.com/ledgerwatch/erigon/turbo/services" @@ -890,63 +891,67 @@ func BorHeimdallUnwind(u *UnwindState, ctx context.Context, _ *StageState, tx kv } // Removing checkpoints - if len(cfg.unwindTypes) == 0 || slices.Contains(cfg.unwindTypes, "checkpoints") { - checkpointCursor, err := tx.RwCursor(kv.BorCheckpoints) + if borsnaptype.CheckpointsEnabled() { + if len(cfg.unwindTypes) == 0 || slices.Contains(cfg.unwindTypes, "checkpoints") { + checkpointCursor, err := tx.RwCursor(kv.BorCheckpoints) - if err != nil { - return err - } - - defer checkpointCursor.Close() - lastCheckpointToKeep, err := heimdall.CheckpointIdAt(tx, u.UnwindPoint) - hasCheckpoints := true - - if err != nil { - if !errors.Is(err, heimdall.ErrCheckpointNotFound) { + if err != nil { return err } - hasCheckpoints = false - } + defer checkpointCursor.Close() + lastCheckpointToKeep, err := heimdall.CheckpointIdAt(tx, u.UnwindPoint) + hasCheckpoints := true - if hasCheckpoints { - var checkpointIdBytes [8]byte - binary.BigEndian.PutUint64(checkpointIdBytes[:], uint64(lastCheckpointToKeep+1)) - for k, _, err := checkpointCursor.Seek(checkpointIdBytes[:]); err == nil && k != nil; k, _, err = checkpointCursor.Next() { - if err = checkpointCursor.DeleteCurrent(); err != nil { + if err != nil { + if !errors.Is(err, heimdall.ErrCheckpointNotFound) { return err } - } - } - } - // Removing milestones - if len(cfg.unwindTypes) == 0 || slices.Contains(cfg.unwindTypes, "milestones") { - milestoneCursor, err := tx.RwCursor(kv.BorMilestones) + hasCheckpoints = false + } - if err != nil { - return err + if hasCheckpoints { + var checkpointIdBytes [8]byte + binary.BigEndian.PutUint64(checkpointIdBytes[:], uint64(lastCheckpointToKeep+1)) + for k, _, err := checkpointCursor.Seek(checkpointIdBytes[:]); err == nil && k != nil; k, _, err = checkpointCursor.Next() { + if err = checkpointCursor.DeleteCurrent(); err != nil { + return err + } + } + } } + } - defer milestoneCursor.Close() - lastMilestoneToKeep, err := heimdall.MilestoneIdAt(tx, u.UnwindPoint) - hasMilestones := true + if borsnaptype.MilestonesEnabled() { + // Removing milestones + if len(cfg.unwindTypes) == 0 || slices.Contains(cfg.unwindTypes, "milestones") { + milestoneCursor, err := tx.RwCursor(kv.BorMilestones) - if err != nil { - if !errors.Is(err, heimdall.ErrMilestoneNotFound) { + if err != nil { return err } - hasMilestones = false - } + defer milestoneCursor.Close() + lastMilestoneToKeep, err := heimdall.MilestoneIdAt(tx, u.UnwindPoint) + hasMilestones := true - if hasMilestones { - var milestoneIdBytes [8]byte - binary.BigEndian.PutUint64(milestoneIdBytes[:], uint64(lastMilestoneToKeep+1)) - for k, _, err := milestoneCursor.Seek(milestoneIdBytes[:]); err == nil && k != nil; k, _, err = milestoneCursor.Next() { - if err = milestoneCursor.DeleteCurrent(); err != nil { + if err != nil { + if !errors.Is(err, heimdall.ErrMilestoneNotFound) { return err } + + hasMilestones = false + } + + if hasMilestones { + var milestoneIdBytes [8]byte + binary.BigEndian.PutUint64(milestoneIdBytes[:], uint64(lastMilestoneToKeep+1)) + for k, _, err := milestoneCursor.Seek(milestoneIdBytes[:]); err == nil && k != nil; k, _, err = milestoneCursor.Next() { + if err = milestoneCursor.DeleteCurrent(); err != nil { + return err + } + } } } } diff --git a/eth/tracers/internal/tracetest/testdata/call_tracer/delegatecall.json b/eth/tracers/internal/tracetest/testdata/call_tracer/delegatecall.json index 9ba67a9bf46..eb7539d4613 100644 --- a/eth/tracers/internal/tracetest/testdata/call_tracer/delegatecall.json +++ b/eth/tracers/internal/tracetest/testdata/call_tracer/delegatecall.json @@ -70,7 +70,8 @@ "input": "0x7d65837a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a529806c67cc6486d4d62024471772f47f6fd672", "output": "0x0000000000000000000000000000000000000000000000000000000000000001", "to": "0x42b02b5deeb78f34cd5ac896473b63e6c99a71a2", - "type": "DELEGATECALL" + "type": "DELEGATECALL", + "value":"0x0" } ], "from": "0x269296dddce321a6bcbaa2f0181127593d732cba", diff --git a/eth/tracers/internal/tracetest/testdata/call_tracer_withLog/delegatecall.json b/eth/tracers/internal/tracetest/testdata/call_tracer_withLog/delegatecall.json index bc13bc25068..e9ad6df6ab8 100644 --- a/eth/tracers/internal/tracetest/testdata/call_tracer_withLog/delegatecall.json +++ b/eth/tracers/internal/tracetest/testdata/call_tracer_withLog/delegatecall.json @@ -163,7 +163,8 @@ "to": "0xef3487d24a0702703e04a26cef479e313c8fc7ae", "input": "0x24d4e90a0000000000000000000000000000000000000000000000020000000000000000", "output": "0x000000000000000000000000000000000000000000000000b17217f7d1cf79ab", - "type": "DELEGATECALL" + "type": "DELEGATECALL", + "value":"0x0" }, { "from": "0x8695e5e79dab06fbbb05f445316fa4edb0da30f0", @@ -172,7 +173,8 @@ "to": "0xef3487d24a0702703e04a26cef479e313c8fc7ae", "input": "0x872fb2b5000000000000000000000000000000000000000000000000c330b3f7006420b8", "output": "0x00000000000000000000000000000000000000000000000224bf7df2c80f0878", - "type": "DELEGATECALL" + "type": "DELEGATECALL", + "value":"0x0" }, { "from": "0x8695e5e79dab06fbbb05f445316fa4edb0da30f0", @@ -181,7 +183,8 @@ "to": "0xef3487d24a0702703e04a26cef479e313c8fc7ae", "input": "0x872fb2b50000000000000000000000000000000000000000000000000000000000000000", "output": "0x00000000000000000000000000000000000000000000000100000016aee6e8ef", - "type": "DELEGATECALL" + "type": "DELEGATECALL", + "value":"0x0" }, { "from": "0x8695e5e79dab06fbbb05f445316fa4edb0da30f0", @@ -190,7 +193,8 @@ "to": "0xef3487d24a0702703e04a26cef479e313c8fc7ae", "input": "0x24d4e90a00000000000000000000000000000000000000000000000324bf7e0976f5f167", "output": "0x0000000000000000000000000000000000000000000000012535c5e5f87ee0d2", - "type": "DELEGATECALL" + "type": "DELEGATECALL", + "value":"0x0" }, { "from": "0x8695e5e79dab06fbbb05f445316fa4edb0da30f0", @@ -199,7 +203,8 @@ "to": "0xef3487d24a0702703e04a26cef479e313c8fc7ae", "input": "0x872fb2b5000000000000000000000000000000000000000000000000c330b3f7006420b8", "output": "0x00000000000000000000000000000000000000000000000224bf7df2c80f0878", - "type": "DELEGATECALL" + "type": "DELEGATECALL", + "value":"0x0" }, { "from": "0x8695e5e79dab06fbbb05f445316fa4edb0da30f0", @@ -208,7 +213,8 @@ "to": "0xef3487d24a0702703e04a26cef479e313c8fc7ae", "input": "0x872fb2b500000000000000000000000000000000000000000000000237d37fe5d297a500", "output": "0x0000000000000000000000000000000000000000000000093088c407fcbbce38", - "type": "DELEGATECALL" + "type": "DELEGATECALL", + "value":"0x0" }, { "from": "0x8695e5e79dab06fbbb05f445316fa4edb0da30f0", @@ -217,7 +223,8 @@ "to": "0xef3487d24a0702703e04a26cef479e313c8fc7ae", "input": "0x24d4e90a00000000000000000000000000000000000000000000000b554841fac4cad6b0", "output": "0x0000000000000000000000000000000000000000000000026d7fc130d6a74cbe", - "type": "DELEGATECALL" + "type": "DELEGATECALL", + "value":"0x0" } ], "value": "0x0", @@ -390,7 +397,8 @@ "data": "0x000000000000000000000000000000000000000000000000de0b6b3a76400000" } ], - "type": "DELEGATECALL" + "type": "DELEGATECALL", + "value": "0x0" } ], "value": "0x0", diff --git a/migrations/prohibit_new_downloads2.go b/migrations/prohibit_new_downloads2.go index 22cd00372a9..e278fa71113 100644 --- a/migrations/prohibit_new_downloads2.go +++ b/migrations/prohibit_new_downloads2.go @@ -45,7 +45,7 @@ var ProhibitNewDownloadsLock2 = Migration{ locked = append(locked, t.Name()) } - for _, t := range borsnaptype.BorSnapshotTypes { + for _, t := range borsnaptype.BorSnapshotTypes() { locked = append(locked, t.Name()) } diff --git a/p2p/sentry/sentry_multi_client/sentry_multi_client.go b/p2p/sentry/sentry_multi_client/sentry_multi_client.go index 46d09e88b73..e9794af9985 100644 --- a/p2p/sentry/sentry_multi_client/sentry_multi_client.go +++ b/p2p/sentry/sentry_multi_client/sentry_multi_client.go @@ -157,9 +157,7 @@ func SentryReconnectAndPumpStreamLoop[TMessage interface{}]( statusData, err := statusDataFactory(ctx) if err != nil { - if !errors.Is(err, sentry.ErrNoHead) { - logger.Error("SentryReconnectAndPumpStreamLoop: statusDataFactory error", "stream", streamName, "err", err) - } + logger.Error("SentryReconnectAndPumpStreamLoop: statusDataFactory error", "stream", streamName, "err", err) time.Sleep(time.Second) continue } diff --git a/p2p/sentry/status_data_provider.go b/p2p/sentry/status_data_provider.go index 91137e5c321..83da0d3bad3 100644 --- a/p2p/sentry/status_data_provider.go +++ b/p2p/sentry/status_data_provider.go @@ -7,6 +7,7 @@ import ( "math/big" "github.com/holiman/uint256" + "github.com/ledgerwatch/log/v3" "github.com/ledgerwatch/erigon-lib/chain" libcommon "github.com/ledgerwatch/erigon-lib/common" @@ -32,8 +33,11 @@ type StatusDataProvider struct { networkId uint64 genesisHash libcommon.Hash + genesisHead ChainHead heightForks []uint64 timeForks []uint64 + + logger log.Logger } func NewStatusDataProvider( @@ -41,11 +45,14 @@ func NewStatusDataProvider( chainConfig *chain.Config, genesis *types.Block, networkId uint64, + logger log.Logger, ) *StatusDataProvider { s := &StatusDataProvider{ db: db, networkId: networkId, genesisHash: genesis.Hash(), + genesisHead: makeGenesisChainHead(genesis), + logger: logger, } s.heightForks, s.timeForks = forkid.GatherForks(chainConfig, genesis.Time()) @@ -53,6 +60,32 @@ func NewStatusDataProvider( return s } +func uint256FromBigInt(num *big.Int) (*uint256.Int, error) { + if num == nil { + num = new(big.Int) + } + num256 := new(uint256.Int) + overflow := num256.SetFromBig(num) + if overflow { + return nil, fmt.Errorf("uint256FromBigInt: big.Int greater than 2^256-1") + } + return num256, nil +} + +func makeGenesisChainHead(genesis *types.Block) ChainHead { + genesisDifficulty, err := uint256FromBigInt(genesis.Difficulty()) + if err != nil { + panic(fmt.Errorf("makeGenesisChainHead: difficulty conversion error: %w", err)) + } + + return ChainHead{ + HeadHeight: genesis.NumberU64(), + HeadTime: genesis.Time(), + HeadHash: genesis.Hash(), + HeadTd: genesisDifficulty, + } +} + func (s *StatusDataProvider) makeStatusData(head ChainHead) *proto_sentry.StatusData { return &proto_sentry.StatusData{ NetworkId: s.networkId, @@ -71,6 +104,10 @@ func (s *StatusDataProvider) makeStatusData(head ChainHead) *proto_sentry.Status func (s *StatusDataProvider) GetStatusData(ctx context.Context) (*proto_sentry.StatusData, error) { chainHead, err := ReadChainHead(ctx, s.db) if err != nil { + if errors.Is(err, ErrNoHead) { + s.logger.Warn("sentry.StatusDataProvider: The canonical chain current header not found in the database. Check the database consistency. Using genesis as a fallback.") + return s.makeStatusData(s.genesisHead), nil + } return nil, err } return s.makeStatusData(chainHead), err @@ -84,23 +121,15 @@ func ReadChainHeadWithTx(tx kv.Tx) (ChainHead, error) { height := header.Number.Uint64() hash := header.Hash() - - var time uint64 - if header != nil { - time = header.Time - } + time := header.Time td, err := rawdb.ReadTd(tx, hash, height) if err != nil { return ChainHead{}, fmt.Errorf("ReadChainHead: ReadTd error at height %d and hash %s: %w", height, hash, err) } - if td == nil { - td = new(big.Int) - } - td256 := new(uint256.Int) - overflow := td256.SetFromBig(td) - if overflow { - return ChainHead{}, fmt.Errorf("ReadChainHead: total difficulty higher than 2^256-1") + td256, err := uint256FromBigInt(td) + if err != nil { + return ChainHead{}, fmt.Errorf("ReadChainHead: total difficulty conversion error: %w", err) } return ChainHead{height, time, hash, td256}, nil diff --git a/params/bootnodes.go b/params/bootnodes.go index 40a9bbdb08b..adde177aba8 100644 --- a/params/bootnodes.go +++ b/params/bootnodes.go @@ -185,6 +185,8 @@ func KnownDNSNetwork(genesis libcommon.Hash, protocol string) string { net = "goerli" case SepoliaGenesisHash: net = "sepolia" + case HoleskyGenesisHash: + net = "holesky" default: return "" } diff --git a/polygon/bor/bordb/prune.go b/polygon/bor/bordb/prune.go new file mode 100644 index 00000000000..81c2f264038 --- /dev/null +++ b/polygon/bor/bordb/prune.go @@ -0,0 +1,125 @@ +package bordb + +import ( + "encoding/binary" + "errors" + "math" + + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon/polygon/bor/snaptype" + "github.com/ledgerwatch/erigon/polygon/heimdall" +) + +// PruneBorBlocks - delete [1, to) old blocks after moving it to snapshots. +// keeps genesis in db: [1, to) +// doesn't change sequences of kv.EthTx and kv.NonCanonicalTxs +// doesn't delete Receipts, Senders, Canonical markers, TotalDifficulty +func PruneBorBlocks(tx kv.RwTx, blockTo uint64, blocksDeleteLimit int, SpanIdAt func(number uint64) uint64) error { + c, err := tx.Cursor(kv.BorEventNums) + if err != nil { + return err + } + defer c.Close() + var blockNumBytes [8]byte + binary.BigEndian.PutUint64(blockNumBytes[:], blockTo) + k, v, err := c.Seek(blockNumBytes[:]) + if err != nil { + return err + } + var eventIdTo uint64 = math.MaxUint64 + if k != nil { + eventIdTo = binary.BigEndian.Uint64(v) + } + c1, err := tx.RwCursor(kv.BorEvents) + if err != nil { + return err + } + defer c1.Close() + counter := blocksDeleteLimit + for k, _, err = c1.First(); err == nil && k != nil && counter > 0; k, _, err = c1.Next() { + eventId := binary.BigEndian.Uint64(k) + if eventId >= eventIdTo { + break + } + if err = c1.DeleteCurrent(); err != nil { + return err + } + counter-- + } + if err != nil { + return err + } + firstSpanToKeep := SpanIdAt(blockTo) + c2, err := tx.RwCursor(kv.BorSpans) + if err != nil { + return err + } + defer c2.Close() + counter = blocksDeleteLimit + for k, _, err := c2.First(); err == nil && k != nil && counter > 0; k, _, err = c2.Next() { + spanId := binary.BigEndian.Uint64(k) + if spanId >= firstSpanToKeep { + break + } + if err = c2.DeleteCurrent(); err != nil { + return err + } + counter-- + } + + if snaptype.CheckpointsEnabled() { + checkpointCursor, err := tx.RwCursor(kv.BorCheckpoints) + if err != nil { + return err + } + + defer checkpointCursor.Close() + lastCheckpointToRemove, err := heimdall.CheckpointIdAt(tx, blockTo) + + if err != nil { + return err + } + + var checkpointIdBytes [8]byte + binary.BigEndian.PutUint64(checkpointIdBytes[:], uint64(lastCheckpointToRemove)) + for k, _, err := checkpointCursor.Seek(checkpointIdBytes[:]); err == nil && k != nil; k, _, err = checkpointCursor.Prev() { + if err = checkpointCursor.DeleteCurrent(); err != nil { + return err + } + } + } + + if snaptype.MilestonesEnabled() { + milestoneCursor, err := tx.RwCursor(kv.BorMilestones) + + if err != nil { + return err + } + + defer milestoneCursor.Close() + + var lastMilestoneToRemove heimdall.MilestoneId + + for blockCount := 1; err != nil && blockCount < blocksDeleteLimit; blockCount++ { + lastMilestoneToRemove, err = heimdall.MilestoneIdAt(tx, blockTo-uint64(blockCount)) + + if !errors.Is(err, heimdall.ErrMilestoneNotFound) { + return err + } else { + if blockCount == blocksDeleteLimit-1 { + return nil + } + } + } + + var milestoneIdBytes [8]byte + binary.BigEndian.PutUint64(milestoneIdBytes[:], uint64(lastMilestoneToRemove)) + for k, _, err := milestoneCursor.Seek(milestoneIdBytes[:]); err == nil && k != nil; k, _, err = milestoneCursor.Prev() { + if err = milestoneCursor.DeleteCurrent(); err != nil { + return err + } + } + } + + return nil +} diff --git a/polygon/bor/finality/whitelist/milestone.go b/polygon/bor/finality/whitelist/milestone.go index b4777c13cae..a79c712358e 100644 --- a/polygon/bor/finality/whitelist/milestone.go +++ b/polygon/bor/finality/whitelist/milestone.go @@ -154,6 +154,7 @@ func (m *milestone) UnlockSprint(endBlockNum uint64) { } m.Locked = false + m.purgeMilestoneIDsList() err := rawdb.WriteLockField(m.db, m.Locked, m.LockedMilestoneNumber, m.LockedMilestoneHash, m.LockedMilestoneIDs) @@ -213,6 +214,12 @@ func (m *milestone) GetMilestoneIDsList() []string { // This is remove the milestoneIDs stored in the list. func (m *milestone) purgeMilestoneIDsList() { + // try is used here as the finality lock is preserved over calls - so the lock state + // is not clearly defined in the local code - this likely needs to be revised + if m.finality.TryLock() { + defer m.finality.Unlock() + } + m.LockedMilestoneIDs = make(map[string]struct{}) } diff --git a/polygon/bor/finality/whitelist/service_test.go b/polygon/bor/finality/whitelist/service_test.go index 62fe3651dea..4e0de45b663 100644 --- a/polygon/bor/finality/whitelist/service_test.go +++ b/polygon/bor/finality/whitelist/service_test.go @@ -548,11 +548,7 @@ func TestPropertyBasedTestingMilestone(t *testing.T) { } fitlerFn := func(i uint64) bool { - if i <= uint64(1000) { - return true - } - - return false + return i <= uint64(1000) } var ( diff --git a/polygon/bor/snaptype/types.go b/polygon/bor/snaptype/types.go index 5a2e32b273d..5931b89290f 100644 --- a/polygon/bor/snaptype/types.go +++ b/polygon/bor/snaptype/types.go @@ -31,7 +31,11 @@ import ( ) func init() { - borTypes := append(coresnaptype.BlockSnapshotTypes, BorSnapshotTypes...) + initTypes() +} + +func initTypes() { + borTypes := append(coresnaptype.BlockSnapshotTypes, BorSnapshotTypes()...) snapcfg.RegisterKnownTypes(networkname.MumbaiChainName, borTypes) snapcfg.RegisterKnownTypes(networkname.AmoyChainName, borTypes) @@ -402,10 +406,43 @@ var ( return buildValueIndex(ctx, sn, salt, d, firstMilestoneId, tmpDir, p, lvl, logger) }), ) - - BorSnapshotTypes = []snaptype.Type{BorEvents, BorSpans, BorCheckpoints, BorMilestones} ) +var recordWaypoints bool + +func RecordWayPoints(value bool) { + recordWaypoints = value + initTypes() +} + +func BorSnapshotTypes() []snaptype.Type { + if recordWaypoints { + return []snaptype.Type{BorEvents, BorSpans, BorCheckpoints, BorMilestones} + } + + return []snaptype.Type{BorEvents, BorSpans} +} + +func CheckpointsEnabled() bool { + for _, snapType := range BorSnapshotTypes() { + if snapType.Enum() == BorCheckpoints.Enum() { + return true + } + } + + return false +} + +func MilestonesEnabled() bool { + for _, snapType := range BorSnapshotTypes() { + if snapType.Enum() == BorMilestones.Enum() { + return true + } + } + + return false +} + func extractValueRange(ctx context.Context, table string, valueFrom, valueTo uint64, db kv.RoDB, collect func([]byte) error, workers int, lvl log.Lvl, logger log.Logger) (uint64, error) { logEvery := time.NewTicker(20 * time.Second) defer logEvery.Stop() diff --git a/polygon/heimdall/checkpoint.go b/polygon/heimdall/checkpoint.go index a1d7a763c54..b26d5697866 100644 --- a/polygon/heimdall/checkpoint.go +++ b/polygon/heimdall/checkpoint.go @@ -62,7 +62,7 @@ func (c *Checkpoint) MarshalJSON() ([]byte, error) { Proposer libcommon.Address `json:"proposer"` StartBlock *big.Int `json:"start_block"` EndBlock *big.Int `json:"end_block"` - RootHash libcommon.Hash `json:"hash"` + RootHash libcommon.Hash `json:"root_hash"` ChainID string `json:"bor_chain_id"` Timestamp uint64 `json:"timestamp"` }{ @@ -79,7 +79,7 @@ func (c *Checkpoint) MarshalJSON() ([]byte, error) { func (c *Checkpoint) UnmarshalJSON(b []byte) error { dto := struct { WaypointFields - RootHash libcommon.Hash `json:"hash"` + RootHash libcommon.Hash `json:"root_hash"` Id CheckpointId `json:"id"` }{} diff --git a/rpc/handler.go b/rpc/handler.go index 5d0e800bdff..2c7a95d7ec0 100644 --- a/rpc/handler.go +++ b/rpc/handler.go @@ -578,9 +578,28 @@ func writeNilIfNotPresent(stream *jsoniter.Stream) { } else { hasNil = false } - if !hasNil { - stream.WriteNil() + if hasNil { + // not needed + return + } + + var validJsonEnd bool + if len(b) > 0 { + // assumption is that api call handlers would write valid json in case of errors + // we are not guaranteed that they did write valid json if last elem is "}" or "]" + // since we don't check json nested-ness + // however appending "null" after "}" or "]" does not help much either + lastIdx := len(b) - 1 + validJsonEnd = b[lastIdx] == '}' || b[lastIdx] == ']' } + if validJsonEnd { + // not needed + return + } + + // does not have nil ending + // does not have valid json + stream.WriteNil() } // unsubscribe is the callback function for all *_unsubscribe calls. diff --git a/rpc/handler_test.go b/rpc/handler_test.go index 3b0e4a0441b..c15b67158dc 100644 --- a/rpc/handler_test.go +++ b/rpc/handler_test.go @@ -29,6 +29,10 @@ func TestHandlerDoesNotDoubleWriteNull(t *testing.T) { params: []byte("[3]"), expected: `{"jsonrpc":"2.0","id":1,"result":{}}`, }, + "err_with_valid_json": { + params: []byte("[4]"), + expected: `{"jsonrpc":"2.0","id":1,"result":{"structLogs":[]},"error":{"code":-32000,"message":"id 4"}}`, + }, } for name, testParams := range tests { @@ -50,7 +54,17 @@ func TestHandlerDoesNotDoubleWriteNull(t *testing.T) { if id == 2 { return fmt.Errorf("id 2") } - stream.WriteEmptyObject() + if id == 3 { + stream.WriteEmptyObject() + return nil + } + if id == 4 { + stream.WriteObjectStart() + stream.WriteObjectField("structLogs") + stream.WriteEmptyArray() + stream.WriteObjectEnd() + return fmt.Errorf("id 4") + } return nil } diff --git a/turbo/adapter/ethapi/api.go b/turbo/adapter/ethapi/api.go index 3710e3b3e9b..7cf4166ec74 100644 --- a/turbo/adapter/ethapi/api.go +++ b/turbo/adapter/ethapi/api.go @@ -112,7 +112,7 @@ func (args *CallArgs) ToMessage(globalGasCap uint64, baseFee *uint256.Int) (type gasFeeCap, gasTipCap = gasPrice, gasPrice } else { // User specified 1559 gas fields (or none), use those - gasFeeCap = baseFee + gasFeeCap = uint256.MustFromBig(baseFee.ToBig()) if args.MaxFeePerGas != nil { overflow := gasFeeCap.SetFromBig(args.MaxFeePerGas.ToInt()) if overflow { @@ -133,7 +133,11 @@ func (args *CallArgs) ToMessage(globalGasCap uint64, baseFee *uint256.Int) (type } } if args.MaxFeePerBlobGas != nil { - maxFeePerBlobGas.SetFromBig(args.MaxFeePerBlobGas.ToInt()) + blobFee, overflow := uint256.FromBig(args.MaxFeePerBlobGas.ToInt()) + if overflow { + return types.Message{}, fmt.Errorf("args.MaxFeePerBlobGas higher than 2^256-1") + } + maxFeePerBlobGas = blobFee } } diff --git a/turbo/jsonrpc/eth_api.go b/turbo/jsonrpc/eth_api.go index b6b2b38c93c..b6e19b85d66 100644 --- a/turbo/jsonrpc/eth_api.go +++ b/turbo/jsonrpc/eth_api.go @@ -91,7 +91,7 @@ type EthAPI interface { // Sending related (see ./eth_call.go) Call(ctx context.Context, args ethapi2.CallArgs, blockNrOrHash rpc.BlockNumberOrHash, overrides *ethapi2.StateOverrides) (hexutility.Bytes, error) - EstimateGas(ctx context.Context, argsOrNil *ethapi2.CallArgs, blockNrOrHash *rpc.BlockNumberOrHash) (hexutil.Uint64, error) + EstimateGas(ctx context.Context, argsOrNil *ethapi2.CallArgs) (hexutil.Uint64, error) SendRawTransaction(ctx context.Context, encodedTx hexutility.Bytes) (common.Hash, error) SendTransaction(_ context.Context, txObject interface{}) (common.Hash, error) Sign(ctx context.Context, _ common.Address, _ hexutility.Bytes) (hexutility.Bytes, error) diff --git a/turbo/jsonrpc/eth_call.go b/turbo/jsonrpc/eth_call.go index 5fb6cba0bb2..6d259cfa236 100644 --- a/turbo/jsonrpc/eth_call.go +++ b/turbo/jsonrpc/eth_call.go @@ -114,7 +114,7 @@ func headerByNumberOrHash(ctx context.Context, tx kv.Tx, blockNrOrHash rpc.Block } // EstimateGas implements eth_estimateGas. Returns an estimate of how much gas is necessary to allow the transaction to complete. The transaction will not be added to the blockchain. -func (api *APIImpl) EstimateGas(ctx context.Context, argsOrNil *ethapi2.CallArgs, blockNrOrHash *rpc.BlockNumberOrHash) (hexutil.Uint64, error) { +func (api *APIImpl) EstimateGas(ctx context.Context, argsOrNil *ethapi2.CallArgs) (hexutil.Uint64, error) { var args ethapi2.CallArgs // if we actually get CallArgs here, we use them if argsOrNil != nil { @@ -138,36 +138,39 @@ func (api *APIImpl) EstimateGas(ctx context.Context, argsOrNil *ethapi2.CallArgs args.From = new(libcommon.Address) } - bNrOrHash := rpc.BlockNumberOrHashWithNumber(rpc.PendingBlockNumber) - if blockNrOrHash != nil { - bNrOrHash = *blockNrOrHash + chainConfig, err := api.chainConfig(ctx, dbtx) + if err != nil { + return 0, err } - // Determine the highest gas limit can be used during the estimation. - if args.Gas != nil && uint64(*args.Gas) >= params.TxGas { - hi = uint64(*args.Gas) - } else { - // Retrieve the block to act as the gas ceiling - h, err := headerByNumberOrHash(ctx, dbtx, bNrOrHash, api) + latestCanBlockNumber, latestCanHash, isLatest, err := rpchelper.GetCanonicalBlockNumber(latestNumOrHash, dbtx, api.filters) // DoCall cannot be executed on non-canonical blocks + if err != nil { + return 0, err + } + + // try and get the block from the lru cache first then try DB before failing + block := api.tryBlockFromLru(latestCanHash) + if block == nil { + block, err = api.blockWithSenders(ctx, dbtx, latestCanHash, latestCanBlockNumber) if err != nil { return 0, err } - if h == nil { - // if a block number was supplied and there is no header return 0 - if blockNrOrHash != nil { - return 0, nil - } + } + if block == nil { + return 0, fmt.Errorf("could not find latest block in cache or db") + } - // block number not supplied, so we haven't found a pending block, read the latest block instead - h, err = headerByNumberOrHash(ctx, dbtx, latestNumOrHash, api) - if err != nil { - return 0, err - } - if h == nil { - return 0, nil - } - } - hi = h.GasLimit + stateReader, err := rpchelper.CreateStateReaderFromBlockNumber(ctx, dbtx, latestCanBlockNumber, isLatest, 0, api.stateCache, api.historyV3(dbtx), api._blockReader, chainConfig.ChainName) + if err != nil { + return 0, err + } + header := block.HeaderNoCopy() + + // Determine the highest gas limit can be used during the estimation. + if args.Gas != nil && uint64(*args.Gas) >= params.TxGas { + hi = uint64(*args.Gas) + } else { + hi = header.GasLimit } var feeCap *big.Int @@ -177,6 +180,8 @@ func (api *APIImpl) EstimateGas(ctx context.Context, argsOrNil *ethapi2.CallArgs feeCap = args.GasPrice.ToInt() } else if args.MaxFeePerGas != nil { feeCap = args.MaxFeePerGas.ToInt() + } else if header.BaseFee != nil { + feeCap = new(big.Int).Set(header.BaseFee) } else { feeCap = libcommon.Big0 } @@ -221,35 +226,8 @@ func (api *APIImpl) EstimateGas(ctx context.Context, argsOrNil *ethapi2.CallArgs } gasCap = hi - chainConfig, err := api.chainConfig(ctx, dbtx) - if err != nil { - return 0, err - } engine := api.engine() - latestCanBlockNumber, latestCanHash, isLatest, err := rpchelper.GetCanonicalBlockNumber(latestNumOrHash, dbtx, api.filters) // DoCall cannot be executed on non-canonical blocks - if err != nil { - return 0, err - } - - // try and get the block from the lru cache first then try DB before failing - block := api.tryBlockFromLru(latestCanHash) - if block == nil { - block, err = api.blockWithSenders(ctx, dbtx, latestCanHash, latestCanBlockNumber) - if err != nil { - return 0, err - } - } - if block == nil { - return 0, fmt.Errorf("could not find latest block in cache or db") - } - - stateReader, err := rpchelper.CreateStateReaderFromBlockNumber(ctx, dbtx, latestCanBlockNumber, isLatest, 0, api.stateCache, api.historyV3(dbtx), api._blockReader, chainConfig.ChainName) - if err != nil { - return 0, err - } - header := block.HeaderNoCopy() - caller, err := transactions.NewReusableCaller(engine, stateReader, nil, header, args, api.GasCap, latestNumOrHash, dbtx, api._blockReader, chainConfig, api.evmCallTimeout) if err != nil { return 0, err diff --git a/turbo/jsonrpc/eth_call_test.go b/turbo/jsonrpc/eth_call_test.go index 0bc5f475812..08d57d1444b 100644 --- a/turbo/jsonrpc/eth_call_test.go +++ b/turbo/jsonrpc/eth_call_test.go @@ -49,7 +49,7 @@ func TestEstimateGas(t *testing.T) { if _, err := api.EstimateGas(context.Background(), ðapi.CallArgs{ From: &from, To: &to, - }, nil); err != nil { + }); err != nil { t.Errorf("calling EstimateGas: %v", err) } } diff --git a/turbo/snapshotsync/freezeblocks/block_snapshots.go b/turbo/snapshotsync/freezeblocks/block_snapshots.go index 03c22dd9eb8..b4d298236e6 100644 --- a/turbo/snapshotsync/freezeblocks/block_snapshots.go +++ b/turbo/snapshotsync/freezeblocks/block_snapshots.go @@ -680,7 +680,7 @@ func (s *RoSnapshots) closeWhatNotInList(l []string) { }) } -func (s *RoSnapshots) removeOverlaps() error { +func (s *RoSnapshots) removeOverlapsAfterMerge() error { s.lockSegments() defer s.unlockSegments() @@ -1260,8 +1260,6 @@ func (br *BlockRetire) retireBlocks(ctx context.Context, minBlockNum uint64, max return ok, fmt.Errorf("DumpBlocks: %w", err) } - snapshots.removeOverlaps() - if err := snapshots.ReopenFolder(); err != nil { return ok, fmt.Errorf("reopen: %w", err) } @@ -1297,6 +1295,9 @@ func (br *BlockRetire) retireBlocks(ctx context.Context, minBlockNum uint64, max return ok, err } + if err := snapshots.removeOverlapsAfterMerge(); err != nil { + return ok, err + } return ok, nil } diff --git a/turbo/snapshotsync/freezeblocks/block_snapshots_test.go b/turbo/snapshotsync/freezeblocks/block_snapshots_test.go index 9eae5a710c3..a6d6a9f6528 100644 --- a/turbo/snapshotsync/freezeblocks/block_snapshots_test.go +++ b/turbo/snapshotsync/freezeblocks/block_snapshots_test.go @@ -240,7 +240,7 @@ func TestRemoveOverlaps(t *testing.T) { require.NoError(err) require.Equal(45, len(list)) - s.removeOverlaps() + s.removeOverlapsAfterMerge() list, err = snaptype.Segments(s.dir) require.NoError(err) diff --git a/turbo/snapshotsync/freezeblocks/bor_snapshots.go b/turbo/snapshotsync/freezeblocks/bor_snapshots.go index c0cf858d15b..6aee315ce9f 100644 --- a/turbo/snapshotsync/freezeblocks/bor_snapshots.go +++ b/turbo/snapshotsync/freezeblocks/bor_snapshots.go @@ -33,19 +33,13 @@ func (br *BlockRetire) retireBorBlocks(ctx context.Context, minBlockNum uint64, blocksRetired := false + minBlockNum = max(blockReader.FrozenBorBlocks(), minBlockNum) for _, snaptype := range blockReader.BorSnapshots().Types() { - minSnapNum := minBlockNum - - if available := blockReader.BorSnapshots().SegmentsMax(); available < minBlockNum { - minSnapNum = available - } - - if maxBlockNum <= minSnapNum { + if maxBlockNum <= minBlockNum { continue } - blockFrom, blockTo, ok := canRetire(minSnapNum, maxBlockNum+1, snaptype.Enum(), br.chainConfig) - + blockFrom, blockTo, ok := CanRetire(maxBlockNum, minBlockNum, snaptype.Enum(), br.chainConfig) if ok { blocksRetired = true @@ -101,11 +95,22 @@ func (br *BlockRetire) retireBorBlocks(ctx context.Context, minBlockNum uint64, return nil } - err := merger.Merge(ctx, &snapshots.RoSnapshots, borsnaptype.BorSnapshotTypes, rangesToMerge, snapshots.Dir(), true /* doIndex */, onMerge, onDelete) - + err := merger.Merge(ctx, &snapshots.RoSnapshots, borsnaptype.BorSnapshotTypes(), rangesToMerge, snapshots.Dir(), true /* doIndex */, onMerge, onDelete) if err != nil { return blocksRetired, err } + + { + files, _, err := typedSegments(br.borSnapshots().dir, br.borSnapshots().segmentsMin.Load(), borsnaptype.BorSnapshotTypes(), false) + if err != nil { + return blocksRetired, err + } + + // this is one off code to fix an issue in 2.49.x->2.52.x which missed + // removal of intermediate segments after a merge operation + removeBorOverlapsAfterMerge(br.borSnapshots().dir, files, br.borSnapshots().BlocksAvailable()) + } + return blocksRetired, nil } @@ -127,7 +132,7 @@ type BorRoSnapshots struct { // - gaps are not allowed // - segment have [from:to] semantic func NewBorRoSnapshots(cfg ethconfig.BlocksFreezing, snapDir string, segmentsMin uint64, logger log.Logger) *BorRoSnapshots { - return &BorRoSnapshots{*newRoSnapshots(cfg, snapDir, borsnaptype.BorSnapshotTypes, segmentsMin, logger)} + return &BorRoSnapshots{*newRoSnapshots(cfg, snapDir, borsnaptype.BorSnapshotTypes(), segmentsMin, logger)} } func (s *BorRoSnapshots) Ranges() []Range { @@ -138,7 +143,7 @@ func (s *BorRoSnapshots) Ranges() []Range { // this is one off code to fix an issue in 2.49.x->2.52.x which missed // removal of intermediate segments after a merge operation -func removeBorOverlaps(dir string, active []snaptype.FileInfo, max uint64) { +func removeBorOverlapsAfterMerge(dir string, active []snaptype.FileInfo, max uint64) { list, err := snaptype.Segments(dir) if err != nil { @@ -199,15 +204,11 @@ func removeBorOverlaps(dir string, active []snaptype.FileInfo, max uint64) { } func (s *BorRoSnapshots) ReopenFolder() error { - files, _, err := typedSegments(s.dir, s.segmentsMin.Load(), borsnaptype.BorSnapshotTypes, false) + files, _, err := typedSegments(s.dir, s.segmentsMin.Load(), borsnaptype.BorSnapshotTypes(), false) if err != nil { return err } - // this is one off code to fix an issue in 2.49.x->2.52.x which missed - // removal of intermediate segments after a merge operation - removeBorOverlaps(s.dir, files, s.BlocksAvailable()) - list := make([]string, 0, len(files)) for _, f := range files { _, fName := filepath.Split(f.Path) diff --git a/turbo/stages/mock/mock_sentry.go b/turbo/stages/mock/mock_sentry.go index 8479b9640cd..4a1fd0e0ef3 100644 --- a/turbo/stages/mock/mock_sentry.go +++ b/turbo/stages/mock/mock_sentry.go @@ -371,6 +371,7 @@ func MockWithEverything(tb testing.TB, gspec *types.Genesis, key *ecdsa.PrivateK mock.ChainConfig, mock.Genesis, mock.ChainConfig.ChainID.Uint64(), + logger, ) maxBlockBroadcastPeers := func(header *types.Header) uint { return 0 } From a0fa8e9c4bbc0469c894e8c79ab54f9a2967e729 Mon Sep 17 00:00:00 2001 From: lazymio Date: Wed, 12 Jun 2024 16:37:34 +0800 Subject: [PATCH 02/22] Register bsc network for snapCfg (#405) --- core/snaptype/block_types.go | 1 + 1 file changed, 1 insertion(+) diff --git a/core/snaptype/block_types.go b/core/snaptype/block_types.go index 7e3ed775e70..a49a68471c9 100644 --- a/core/snaptype/block_types.go +++ b/core/snaptype/block_types.go @@ -33,6 +33,7 @@ func init() { snapcfg.RegisterKnownTypes(networkname.GoerliChainName, ethereumTypes) snapcfg.RegisterKnownTypes(networkname.GnosisChainName, ethereumTypes) snapcfg.RegisterKnownTypes(networkname.ChiadoChainName, ethereumTypes) + snapcfg.RegisterKnownTypes(networkname.BSCChainName, ethereumTypes) } var Enums = struct { From 6418f00f0ef68abbd57d2098d15f380cd7904744 Mon Sep 17 00:00:00 2001 From: lazymio Date: Thu, 13 Jun 2024 16:08:52 +0800 Subject: [PATCH 03/22] Better progress logging for initSnapshotLock (#406) --- erigon-lib/downloader/downloader.go | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/erigon-lib/downloader/downloader.go b/erigon-lib/downloader/downloader.go index 10653fbeed4..5de1a0de99e 100644 --- a/erigon-lib/downloader/downloader.go +++ b/erigon-lib/downloader/downloader.go @@ -544,7 +544,7 @@ func initSnapshotLock(ctx context.Context, cfg *downloadercfg.Cfg, db kv.RoDB, s g, ctx := errgroup.WithContext(ctx) g.SetLimit(runtime.GOMAXPROCS(-1) * 4) - var i atomic.Int32 + var done atomic.Int32 logEvery := time.NewTicker(20 * time.Second) defer logEvery.Stop() @@ -553,8 +553,7 @@ func initSnapshotLock(ctx context.Context, cfg *downloadercfg.Cfg, db kv.RoDB, s file := file g.Go(func() error { - i.Add(1) - + defer done.Add(1) fileInfo, isStateFile, ok := snaptype.ParseFileName(snapDir, file) if !ok { @@ -663,15 +662,15 @@ func initSnapshotLock(ctx context.Context, cfg *downloadercfg.Cfg, db kv.RoDB, s } func() { - for int(i.Load()) < len(files) { + for int(done.Load()) < len(files) { select { case <-ctx.Done(): return // g.Wait() will return right error case <-logEvery.C: - if int(i.Load()) == len(files) { + if int(done.Load()) == len(files) { return } - log.Info("[snapshots] Initiating snapshot-lock", "progress", fmt.Sprintf("%d/%d", i.Load(), len(files))) + log.Info("[snapshots] Initiating snapshot-lock", "progress", fmt.Sprintf("%d/%d", done.Load(), len(files))) } } }() From 16170bbf0bee0c2cc3862d7008ef0231471fdb28 Mon Sep 17 00:00:00 2001 From: blxdyx <125243069+blxdyx@users.noreply.github.com> Date: Fri, 21 Jun 2024 16:24:25 +0800 Subject: [PATCH 04/22] Nil pointer fix (#415) --- .../sentry_multi_client.go | 4 +-- turbo/rpchelper/helper.go | 8 +++-- turbo/stages/bodydownload/body_algos.go | 31 +++++++++---------- turbo/stages/bodydownload/body_data_struct.go | 8 ++--- 4 files changed, 27 insertions(+), 24 deletions(-) diff --git a/p2p/sentry/sentry_multi_client/sentry_multi_client.go b/p2p/sentry/sentry_multi_client/sentry_multi_client.go index e9794af9985..9d58b4bfd46 100644 --- a/p2p/sentry/sentry_multi_client/sentry_multi_client.go +++ b/p2p/sentry/sentry_multi_client/sentry_multi_client.go @@ -528,10 +528,10 @@ func (cs *MultiClient) newBlock66(ctx context.Context, inreq *proto_sentry.Inbou return fmt.Errorf("decode 4 NewBlockMsg: %w", err) } if err := request.SanityCheck(); err != nil { - return fmt.Errorf("newBlock66: %w", err) + return fmt.Errorf("newBlock66: %w, PeerID: %s", err, fmt.Sprintf("%x", sentry.ConvertH512ToPeerID(inreq.PeerId))[:8]) } if err := request.Block.HashCheck(); err != nil { - return fmt.Errorf("newBlock66: %w", err) + return fmt.Errorf("newBlock66: %w, PeerID: %s", err, fmt.Sprintf("%x", sentry.ConvertH512ToPeerID(inreq.PeerId))[:8]) } if request.Sidecars != nil && len(request.Sidecars) > 0 { diff --git a/turbo/rpchelper/helper.go b/turbo/rpchelper/helper.go index b076bcfdddb..cc0bb545c64 100644 --- a/turbo/rpchelper/helper.go +++ b/turbo/rpchelper/helper.go @@ -72,7 +72,9 @@ func _GetBlockNumber(requireCanonical bool, blockNrOrHash rpc.BlockNumberOrHash, if fs := parliafinality.GetFinalizationService(); fs != nil { blockHash := fs.GetFinalizeBlockHash() blockNum := rawdb.ReadHeaderNumber(tx, blockHash) - return *blockNum, blockHash, false, nil + if blockNum != nil { + return *blockNum, blockHash, false, nil + } } blockNumber, err = GetFinalizedBlockNumber(tx) if err != nil { @@ -82,7 +84,9 @@ func _GetBlockNumber(requireCanonical bool, blockNrOrHash rpc.BlockNumberOrHash, if fs := parliafinality.GetFinalizationService(); fs != nil { blockHash := fs.GetSafeBlockHash() blockNum := rawdb.ReadHeaderNumber(tx, blockHash) - return *blockNum, blockHash, false, nil + if blockNum != nil { + return *blockNum, blockHash, false, nil + } } blockNumber, err = GetSafeBlockNumber(tx) if err != nil { diff --git a/turbo/stages/bodydownload/body_algos.go b/turbo/stages/bodydownload/body_algos.go index 663b0dfd88d..fe950fe1110 100644 --- a/turbo/stages/bodydownload/body_algos.go +++ b/turbo/stages/bodydownload/body_algos.go @@ -37,7 +37,7 @@ func (bd *BodyDownload) UpdateFromDb(db kv.Tx) (headHeight, headTime uint64, hea bd.maxProgress = headerProgress + 1 // Resetting for requesting a new range of blocks bd.requestedLow = bodyProgress + 1 - bd.requestedMap = make(map[TripleHash]uint64) + bd.requestedMap = make(map[BodyHashes]uint64) bd.delivered.Clear() bd.deliveredCount = 0 bd.wastedCount = 0 @@ -164,15 +164,13 @@ func (bd *BodyDownload) RequestMoreBodies(tx kv.RwTx, blockReader services.FullB } } if request { - var tripleHash TripleHash - copy(tripleHash[:], header.UncleHash.Bytes()) - copy(tripleHash[length.Hash:], header.TxHash.Bytes()) + var bodyHashes BodyHashes + copy(bodyHashes[:], header.UncleHash.Bytes()) + copy(bodyHashes[length.Hash:], header.TxHash.Bytes()) if header.WithdrawalsHash != nil { - copy(tripleHash[2*length.Hash:], header.WithdrawalsHash.Bytes()) - } else { - copy(tripleHash[2*length.Hash:], types.EmptyRootHash.Bytes()) + copy(bodyHashes[2*length.Hash:], header.WithdrawalsHash.Bytes()) } - bd.requestedMap[tripleHash] = blockNum + bd.requestedMap[bodyHashes] = blockNum blockNums = append(blockNums, blockNum) hashes = append(hashes, hash) } else { @@ -307,18 +305,19 @@ Loop: txs, uncles, withdrawals, lenOfP2PMessage, sidecars := delivery.txs, delivery.uncles, delivery.withdrawals, delivery.lenOfP2PMessage, delivery.sidecars for i := range txs { + var bodyHashes BodyHashes uncleHash := types.CalcUncleHash(uncles[i]) + copy(bodyHashes[:], uncleHash.Bytes()) txHash := types.DeriveSha(RawTransactions(txs[i])) - withdrawalsHash := types.DeriveSha(withdrawals[i]) - - var tripleHash TripleHash - copy(tripleHash[:], uncleHash.Bytes()) - copy(tripleHash[length.Hash:], txHash.Bytes()) - copy(tripleHash[2*length.Hash:], withdrawalsHash.Bytes()) + copy(bodyHashes[length.Hash:], txHash.Bytes()) + if withdrawals[i] != nil { + withdrawalsHash := types.DeriveSha(withdrawals[i]) + copy(bodyHashes[2*length.Hash:], withdrawalsHash.Bytes()) + } // Block numbers are added to the bd.delivered bitmap here, only for blocks for which the body has been received, and their double hashes are present in the bd.requestedMap // Also, block numbers can be added to bd.delivered for empty blocks, above - blockNum, ok := bd.requestedMap[tripleHash] + blockNum, ok := bd.requestedMap[bodyHashes] if !ok { undelivered++ continue @@ -329,7 +328,7 @@ Loop: toClean[blockNum] = struct{}{} } } - delete(bd.requestedMap, tripleHash) // Delivered, cleaning up + delete(bd.requestedMap, bodyHashes) // Delivered, cleaning up bd.addBodyToCache(blockNum, &types.RawBody{Transactions: txs[i], Uncles: uncles[i], Withdrawals: withdrawals[i], Sidecars: sidecars[i]}) bd.delivered.Add(blockNum) diff --git a/turbo/stages/bodydownload/body_data_struct.go b/turbo/stages/bodydownload/body_data_struct.go index 5234171f411..c49e7c835d2 100644 --- a/turbo/stages/bodydownload/body_data_struct.go +++ b/turbo/stages/bodydownload/body_data_struct.go @@ -12,8 +12,8 @@ import ( "github.com/ledgerwatch/erigon/core/types" ) -// TripleHash is type to be used for the mapping between TxHash, UncleHash, and WithdrawalsHash to the block header -type TripleHash [3 * length.Hash]byte +// BodyHashes is type to be used for the mapping between TxHash, UncleHash, and WithdrawalsHash to the block header +type BodyHashes [3 * length.Hash]byte const MaxBodiesInRequest = 1024 @@ -36,7 +36,7 @@ type BodyTreeItem struct { // BodyDownload represents the state of body downloading process type BodyDownload struct { peerMap map[[64]byte]int - requestedMap map[TripleHash]uint64 + requestedMap map[BodyHashes]uint64 DeliveryNotify chan struct{} deliveryCh chan Delivery Engine consensus.Engine @@ -67,7 +67,7 @@ type BodyRequest struct { // NewBodyDownload create a new body download state object func NewBodyDownload(engine consensus.Engine, blockBufferSize, bodyCacheLimit int, br services.FullBlockReader, logger log.Logger) *BodyDownload { bd := &BodyDownload{ - requestedMap: make(map[TripleHash]uint64), + requestedMap: make(map[BodyHashes]uint64), bodyCacheLimit: bodyCacheLimit, delivered: roaring64.New(), deliveriesH: make(map[uint64]*types.Header), From dd4d85baeb2889139fbc3e768d71f3e33c4f744a Mon Sep 17 00:00:00 2001 From: blxdyx <125243069+blxdyx@users.noreply.github.com> Date: Thu, 27 Jun 2024 19:39:43 +0800 Subject: [PATCH 05/22] Upstream 2.60.2 (#419) * fix Consensus specification tests CI (#10391) (#10396) Cherry-pick: https://github.com/ledgerwatch/erigon/commit/bc5fa6f156778125ff7aea20161ef550efb754cd Need this to get PR CI green for v2.60.1 patches, e.g. - https://github.com/ledgerwatch/erigon/pull/10390 Co-authored-by: Andrew Ashikhmin <34320705+yperbasis@users.noreply.github.com> * rpc/handler: do not append null to stream when json may be valid (#10390) Cherry-pick: https://github.com/ledgerwatch/erigon/commit/4d1c95473420d06a2317bbb01fbf99ec9b6ac781 Relates to: https://github.com/ledgerwatch/erigon/issues/10376 * Fixed Bor Log appearing on Ethereum Mainnet (#10405) (#10420) Cherry-pick: https://github.com/ledgerwatch/erigon/commit/be889f6250ffc599e04438d263a0a6515471fd24 Co-authored-by: Giulio rebuffo * fix gas price not right problem (#10456) Cherry pick PR #10451 into the release branch Co-authored-by: mars * eth_estimateGas: default feeCap to base fee (#10499) Copy PR #10495 into the release branch * Add flag for bor waypoint types (#10501) Cherry pick PR #10281 into the release branch Co-authored-by: Mark Holt <135143369+mh0lt@users.noreply.github.com> Co-authored-by: alex.sharov * try to fix 'method handler crashed' for debug_traceCall of #9090 (#10502) Cherry pick PR #10401 into the release branch Co-authored-by: mars * diagnostics: cherry pick speedtest disable (#10509) Cherry pick PR #10449 into the release branch * Enable DNS p2p discovery on holesky (#10507) Cherry pick PR #10460 into the release branch Co-authored-by: Willian Mitsuda * fix eth_call 'method handler crashed' error when tx has set maxFeePerBlobGas (#10506) Cherry pick PR #10452 into the release branch Co-authored-by: mars * e2: remove overlapped files only after merge (#10487) Otherwise: if start after `kill -9` in the middle of merge - may remove small files of 1 type of file, but leave small files of another type of files (which merge was not finished) - and leave node in un-mergable state: https://github.com/ledgerwatch/erigon/issues/10485 --------- Co-authored-by: awskii * add flag checking for pruning waypoints (#10508) Cherry pick PR #10468 into the release branch Co-authored-by: Mark Holt <135143369+mh0lt@users.noreply.github.com> * p2p/sentry: sentry doesn't start with ErrNoHead (#10454) (#10523) cherry-pick https://github.com/ledgerwatch/erigon/pull/10494 to release/2.60 * add lock to purgeMilestoneIDsList (#10524) Cherry pick PR #10493 into the release branch Co-authored-by: Mark Holt <135143369+mh0lt@users.noreply.github.com> * polygon/heimdall: fix checkpoint json marshalling (#10530) Fixes a recent regression causing unwinds due to checkpoints having zero root hash: ``` [WARN] [05-18|23:58:54.662] [bor] Root hash mismatch while whitelisting checkpoint expected=ac1c57270479250af3ce8eee90075cd8b2ba1bac55353105e063d9a4c87c743e got=0000000000000000000000000000000000000000000000000000000000000000 [WARN] [05-18|23:58:54.662] [bor] Rewinding chain due to checkpoint root hash mismatch number=57125727 ``` Note this has already been fixed on Erigon 3 branch but as part of a non-related PR - https://github.com/ledgerwatch/erigon/pull/10124/files#diff-47d4532f399f2d6a45e6f19944a45c80bac573b4d1b5cb51485d0254229d1b16 * Fix capacity for immediate appends (#10539) Cherry pick PR #10528 into the release branch Co-authored-by: Shoham Chakraborty * core/vm: set tracer-observable value of a delegatecall to match parent value (#10370) requested by https://github.com/ledgerwatch/erigon/issues/9549 port of https://github.com/ethereum/go-ethereum/pull/26632 * params: version 2.60.1 (#10555) * blobGasPrice should be marshalled as hex (#10571) Cherry pick PR #10551 into the release branch * Caplin: Fixed reforwarding of Bls Execution changes (#10577) Cherry pick PR #10546 into the release branch Co-authored-by: Giulio rebuffo * Caplin: Proper "Normalization" of length of ForkVersions to 8 hex characters (#10578) Cherry pick PR #10512 into the release branch Co-authored-by: Giulio rebuffo * Caplin: Update BlobSidecars Beacon API endpoint to the latest specs (#10580) Cherry pick PR #10576 into the release branch Co-authored-by: Giulio rebuffo * bor blocks retire: infinity loop fix (#10596) Problem: `+1` was added to maxBlockNum instead of minBlockNum for: https://github.com/ledgerwatch/erigon/issues/10554 * txpool: EIP-3860 should only apply to create transactions (#10609) This fixes Issue #10607 * qa-tests: update 2.60.x test workflows from main (#10627) * Fix potential p2p shutdown hangup (#10626) This is a fix for: https://github.com/ledgerwatch/erigon/issues/10192 This fixes is a deadlock in v4_udp.go where * Thread A waits on mutex.Lock() in resetTimeout() called after reading listUpdate channel. * Thread B waits on listUpdate <- plist.PushBack(p) called after locking mutex.Lock() This fix decouples the list operations which need locking from the channel operations which don't by storing the changes in local variables. These updates are used for resetting a timeout - which is not order dependent. * downloader: Number of DNS requests seem excessive (#5145) (#10739) cherry-pick https://github.com/ledgerwatch/erigon/pull/10693 to release * rpc: Fix incorrect txfeecap (#10643) Cherry pick PR https://github.com/ledgerwatch/erigon/pull/10636 to Erigon 2 * downloader: don't block erigon startup if devs deploy new hashes (of same files) (#10761) * skip hidden files when list files with given extension (#10654) for https://github.com/ledgerwatch/erigon/issues/10644 * qa-tests: backport to release/2.60 improvements made to e3 github action workflows (#10778) This PR backports improvements that we added to the E3 tests: recording runner name and db version used for testing on MongoDB database. * e2: more snaps (all networks) (#10794) * e2: configurable hashers amount (#10785) * Revert "e2: configurable hashers amount" (#10834) * diagnostics: move E3 changes to E2 (#10806) Merged all the work done from main branch to keep diagnostics up to date. * Downloader: fix staticpeers flag (#10798) Cherry pick https://github.com/ledgerwatch/erigon/issues/10792 * Fix NewPayload Validation during header download (#10837) Cherry pick PR #10093 into the release branch Co-authored-by: Minhyuk Kim * e2: mainnet blob 9.3M (#10842) * Fix gas fee calculation for debug calls (#10880) Cherry pick PR #10825 into the release branch Co-authored-by: Minhyuk Kim * Revert "eth_estimateGas: default feeCap to base fee (#10499)" (#10904) This reverts PR #10499. See https://github.com/ledgerwatch/erigon/pull/10495#issuecomment-2188345464 and PR #10901 * params: version 2.60.2 (#10905) * upstream v2.60.2 * fix ci lint --------- Co-authored-by: milen <94537774+taratorio@users.noreply.github.com> Co-authored-by: Andrew Ashikhmin <34320705+yperbasis@users.noreply.github.com> Co-authored-by: Giulio rebuffo Co-authored-by: mars Co-authored-by: Mark Holt <135143369+mh0lt@users.noreply.github.com> Co-authored-by: alex.sharov Co-authored-by: Dmytro Co-authored-by: Willian Mitsuda Co-authored-by: awskii Co-authored-by: battlmonstr Co-authored-by: Shoham Chakraborty Co-authored-by: Michelangelo Riccobene Co-authored-by: Minhyuk Kim --- .../qa-clean-exit-block-downloading.yml | 13 +- .../qa-clean-exit-snapshot-downloading.yml | 7 +- .github/workflows/qa-snap-download.yml | 13 +- .github/workflows/qa-tip-tracking.yml | 16 +- cmd/diag/_images/dbs/example_databases.png | Bin 0 -> 132307 bytes .../_images/dbs/example_databases_name.png | Bin 0 -> 157864 bytes .../dbs/example_databases_name_populated.png | Bin 0 -> 118861 bytes .../_images/downloader/example_downloader.png | Bin 0 -> 50347 bytes .../downloader/example_downloader_files.png | Bin 0 -> 226614 bytes .../example_downloader_files_downloaded.png | Bin 0 -> 294593 bytes .../example_downloader_files_filename.png | Bin 0 -> 183833 bytes cmd/diag/_images/local_connection.png | Bin 0 -> 17995 bytes cmd/diag/_images/stages/example_stages.png | Bin 0 -> 52117 bytes cmd/diag/db/db.go | 234 +++++------ cmd/diag/downloader/diag_downloader.go | 373 ++++++++++++++++-- cmd/diag/flags/flags.go | 18 + cmd/diag/main.go | 4 +- cmd/diag/readme.md | 96 +++++ cmd/diag/stages/stages.go | 177 ++++++++- cmd/diag/ui/ui.go | 137 +++++++ cmd/diag/util/util.go | 60 ++- cmd/rpcdaemon/cli/httpcfg/http_cfg.go | 1 + cmd/utils/flags.go | 3 +- core/state_transition.go | 5 +- core/vm/evm.go | 6 + diagnostics/mem.go | 4 +- diagnostics/setup.go | 12 +- diagnostics/snapshot_sync.go | 10 + erigon-lib/common/dir/rw_dir.go | 4 + erigon-lib/diagnostics/block_execution.go | 2 +- erigon-lib/diagnostics/client.go | 57 ++- erigon-lib/diagnostics/entities.go | 73 ++-- erigon-lib/diagnostics/provider.go | 24 -- erigon-lib/diagnostics/provider_test.go | 60 +-- erigon-lib/diagnostics/resources_usage.go | 2 +- erigon-lib/diagnostics/snapshots.go | 222 ++++++++++- erigon-lib/diagnostics/snapshots_test.go | 57 +++ erigon-lib/diagnostics/speedtest.go | 29 +- erigon-lib/diagnostics/stages.go | 258 +++++++++++- erigon-lib/diagnostics/stages_test.go | 109 +++++ erigon-lib/diagnostics/sys_info.go | 102 ++++- erigon-lib/diagnostics/utils.go | 91 +++++ erigon-lib/downloader/downloader.go | 27 +- .../downloadercfg/dns_cache_resolver.go | 49 +++ erigon-lib/go.mod | 6 +- erigon-lib/go.sum | 4 +- erigon-lib/kv/kv_interface.go | 19 +- erigon-lib/kv/tables.go | 19 + eth/backend.go | 7 + eth/stagedsync/stage_snapshots.go | 19 + eth/stagedsync/sync.go | 11 +- go.mod | 20 +- go.sum | 26 +- p2p/discover/v4_udp.go | 19 +- turbo/adapter/ethapi/api.go | 3 +- turbo/cli/flags.go | 1 + turbo/engineapi/engine_server.go | 15 +- turbo/jsonrpc/corner_cases_support_test.go | 8 +- turbo/jsonrpc/daemon.go | 6 +- turbo/jsonrpc/debug_api_test.go | 9 +- turbo/jsonrpc/erigon_receipts_test.go | 10 +- turbo/jsonrpc/eth_api.go | 4 +- turbo/jsonrpc/eth_api_test.go | 28 +- turbo/jsonrpc/eth_block_test.go | 28 +- turbo/jsonrpc/eth_callMany_test.go | 5 +- turbo/jsonrpc/eth_call_test.go | 11 +- turbo/jsonrpc/eth_filters_test.go | 9 +- turbo/jsonrpc/eth_mining_test.go | 8 +- turbo/jsonrpc/eth_system_test.go | 6 +- turbo/jsonrpc/send_transaction.go | 3 +- turbo/jsonrpc/send_transaction_test.go | 4 +- turbo/jsonrpc/tracing.go | 3 +- turbo/snapshotsync/snapshotsync.go | 1 - turbo/transactions/tracing.go | 2 +- 74 files changed, 2171 insertions(+), 498 deletions(-) create mode 100644 cmd/diag/_images/dbs/example_databases.png create mode 100644 cmd/diag/_images/dbs/example_databases_name.png create mode 100644 cmd/diag/_images/dbs/example_databases_name_populated.png create mode 100644 cmd/diag/_images/downloader/example_downloader.png create mode 100644 cmd/diag/_images/downloader/example_downloader_files.png create mode 100644 cmd/diag/_images/downloader/example_downloader_files_downloaded.png create mode 100644 cmd/diag/_images/downloader/example_downloader_files_filename.png create mode 100644 cmd/diag/_images/local_connection.png create mode 100644 cmd/diag/_images/stages/example_stages.png create mode 100644 cmd/diag/readme.md create mode 100644 cmd/diag/ui/ui.go create mode 100644 erigon-lib/diagnostics/snapshots_test.go create mode 100644 erigon-lib/diagnostics/stages_test.go create mode 100644 erigon-lib/diagnostics/utils.go create mode 100644 erigon-lib/downloader/downloadercfg/dns_cache_resolver.go diff --git a/.github/workflows/qa-clean-exit-block-downloading.yml b/.github/workflows/qa-clean-exit-block-downloading.yml index b7696455833..b9f0c1c9200 100644 --- a/.github/workflows/qa-clean-exit-block-downloading.yml +++ b/.github/workflows/qa-clean-exit-block-downloading.yml @@ -13,13 +13,14 @@ on: workflow_dispatch: # Run manually jobs: - long-running-test: + clean-exit-bd-test: runs-on: [self-hosted, Erigon2] env: ERIGON_REFERENCE_DATA_DIR: /opt/erigon-versions/reference-version/datadir ERIGON_TESTBED_DATA_DIR: /opt/erigon-testbed/datadir ERIGON_QA_PATH: /home/qarunner/erigon-qa WORKING_TIME_SECONDS: 600 + CHAIN: mainnet steps: - name: Check out repository @@ -48,7 +49,7 @@ jobs: set +e # Disable exit on error # Run Erigon, send ctrl-c and check logs - python3 $ERIGON_QA_PATH/test_system/qa-tests/clean-exit/run_and_check_clean_exit.py ${{ github.workspace }}/build/bin $ERIGON_TESTBED_DATA_DIR $WORKING_TIME_SECONDS + python3 $ERIGON_QA_PATH/test_system/qa-tests/clean-exit/run_and_check_clean_exit.py ${{ github.workspace }}/build/bin $ERIGON_TESTBED_DATA_DIR $WORKING_TIME_SECONDS Erigon2 # Capture monitoring script exit status test_exit_status=$? @@ -85,7 +86,13 @@ jobs: if: steps.test_step.outputs.test_executed == 'true' env: TEST_RESULT: ${{ steps.test_step.outputs.TEST_RESULT }} - run: python3 $ERIGON_QA_PATH/test_system/qa-tests/uploads/upload_test_results.py --repo erigon --commit $(git rev-parse HEAD) --test_name clean-exit-block-downloading --outcome $TEST_RESULT --result_file ${{ github.workspace }}/result.json + run: | + db_version=$(python3 $ERIGON_QA_PATH/test_system/qa-tests/uploads/prod_info.py $ERIGON_REFERENCE_DATA_DIR/../production.ini production erigon_repo_commit) + if [ -z "$db_version" ]; then + db_version="no-version" + fi + + python3 $ERIGON_QA_PATH/test_system/qa-tests/uploads/upload_test_results.py --repo erigon --commit $(git rev-parse HEAD) --branch ${{ github.ref_name }} --test_name clean-exit-block-downloading --chain $CHAIN --runner ${{ runner.name }} --db_version $db_version --outcome $TEST_RESULT --result_file ${{ github.workspace }}/result.json - name: Upload test results if: steps.test_step.outputs.test_executed == 'true' diff --git a/.github/workflows/qa-clean-exit-snapshot-downloading.yml b/.github/workflows/qa-clean-exit-snapshot-downloading.yml index 2a4de67e5c4..ca7d52ce016 100644 --- a/.github/workflows/qa-clean-exit-snapshot-downloading.yml +++ b/.github/workflows/qa-clean-exit-snapshot-downloading.yml @@ -14,12 +14,13 @@ on: workflow_dispatch: # Run manually jobs: - long-running-test: + clean-exit-sd-test: runs-on: self-hosted env: ERIGON_DATA_DIR: ${{ github.workspace }}/erigon_data ERIGON_QA_PATH: /home/qarunner/erigon-qa WORKING_TIME_SECONDS: 600 + CHAIN: mainnet steps: - name: Check out repository @@ -45,7 +46,7 @@ jobs: set +e # Disable exit on error # Run Erigon, send ctrl-c and check logs - python3 $ERIGON_QA_PATH/test_system/qa-tests/clean-exit/run_and_check_clean_exit.py ${{ github.workspace }}/build/bin $ERIGON_DATA_DIR $WORKING_TIME_SECONDS + python3 $ERIGON_QA_PATH/test_system/qa-tests/clean-exit/run_and_check_clean_exit.py ${{ github.workspace }}/build/bin $ERIGON_DATA_DIR $WORKING_TIME_SECONDS Erigon2 # Capture monitoring script exit status test_exit_status=$? @@ -82,7 +83,7 @@ jobs: if: steps.test_step.outputs.test_executed == 'true' env: TEST_RESULT: ${{ steps.test_step.outputs.TEST_RESULT }} - run: python3 $ERIGON_QA_PATH/test_system/qa-tests/uploads/upload_test_results.py --repo erigon --commit $(git rev-parse HEAD) --test_name clean-exit-snapshot-downloading --outcome $TEST_RESULT --result_file ${{ github.workspace }}/result.json + run: python3 $ERIGON_QA_PATH/test_system/qa-tests/uploads/upload_test_results.py --repo erigon --commit $(git rev-parse HEAD) --branch ${{ github.ref_name }} --test_name clean-exit-snapshot-downloading --chain $CHAIN --runner ${{ runner.name }} --outcome $TEST_RESULT --result_file ${{ github.workspace }}/result.json - name: Upload test results if: steps.test_step.outputs.test_executed == 'true' diff --git a/.github/workflows/qa-snap-download.yml b/.github/workflows/qa-snap-download.yml index 900ad209a95..630429e14d5 100644 --- a/.github/workflows/qa-snap-download.yml +++ b/.github/workflows/qa-snap-download.yml @@ -12,13 +12,14 @@ on: workflow_dispatch: # Run manually jobs: - long-running-test: + snap-download-test: runs-on: [self-hosted, Erigon2] + timeout-minutes: 800 env: ERIGON_DATA_DIR: ${{ github.workspace }}/erigon_data ERIGON_QA_PATH: /home/qarunner/erigon-qa - TRACKING_TIME_SECONDS: 14400 # 4 hours - TOTAL_TIME_SECONDS: 28800 # 8 hours + TOTAL_TIME_SECONDS: 43200 # 12 hours + CHAIN: mainnet steps: - name: Check out repository @@ -44,7 +45,7 @@ jobs: set +e # Disable exit on error # Run Erigon, monitor snapshot downloading and check logs - python3 $ERIGON_QA_PATH/test_system/qa-tests/snap-download/run_and_check_snap_download.py ${{ github.workspace }}/build/bin $ERIGON_DATA_DIR $TOTAL_TIME_SECONDS + python3 $ERIGON_QA_PATH/test_system/qa-tests/snap-download/run_and_check_snap_download.py ${{ github.workspace }}/build/bin $ERIGON_DATA_DIR $TOTAL_TIME_SECONDS Erigon2 $CHAIN # Capture monitoring script exit status test_exit_status=$? @@ -81,14 +82,14 @@ jobs: if: steps.test_step.outputs.test_executed == 'true' env: TEST_RESULT: ${{ steps.test_step.outputs.TEST_RESULT }} - run: python3 $ERIGON_QA_PATH/test_system/qa-tests/uploads/upload_test_results.py --repo erigon --commit $(git rev-parse HEAD) --test_name snap-download --outcome $TEST_RESULT --result_file ${{ github.workspace }}/result.json + run: python3 $ERIGON_QA_PATH/test_system/qa-tests/uploads/upload_test_results.py --repo erigon --commit $(git rev-parse HEAD) --branch ${{ github.ref_name }} --test_name snap-download --chain $CHAIN --runner ${{ runner.name }} --outcome $TEST_RESULT --result_file ${{ github.workspace }}/result-$CHAIN.json - name: Upload test results if: steps.test_step.outputs.test_executed == 'true' uses: actions/upload-artifact@v4 with: name: test-results - path: ${{ github.workspace }}/result.json + path: ${{ github.workspace }}/result-${{ env.CHAIN }}.json - name: Action for Success if: steps.test_step.outputs.TEST_RESULT == 'success' diff --git a/.github/workflows/qa-tip-tracking.yml b/.github/workflows/qa-tip-tracking.yml index 99043261bfb..2a5299ed252 100644 --- a/.github/workflows/qa-tip-tracking.yml +++ b/.github/workflows/qa-tip-tracking.yml @@ -12,14 +12,16 @@ on: workflow_dispatch: # Run manually jobs: - long-running-test: + tip-tracking-test: runs-on: [self-hosted, Erigon2] + timeout-minutes: 600 env: ERIGON_REFERENCE_DATA_DIR: /opt/erigon-versions/reference-version/datadir ERIGON_TESTBED_DATA_DIR: /opt/erigon-testbed/datadir ERIGON_QA_PATH: /home/qarunner/erigon-qa TRACKING_TIME_SECONDS: 14400 # 4 hours TOTAL_TIME_SECONDS: 28800 # 8 hours + CHAIN: mainnet steps: - name: Check out repository @@ -50,7 +52,7 @@ jobs: # 1. Launch the testbed Erigon instance # 2. Allow time for the Erigon to achieve synchronization # 3. Begin timing the duration that Erigon maintains synchronization - python3 $ERIGON_QA_PATH/test_system/qa-tests/tip-tracking/run_and_check_tip_tracking.py ${{ github.workspace }}/build/bin $ERIGON_TESTBED_DATA_DIR $TRACKING_TIME_SECONDS $TOTAL_TIME_SECONDS + python3 $ERIGON_QA_PATH/test_system/qa-tests/tip-tracking/run_and_check_tip_tracking.py ${{ github.workspace }}/build/bin $ERIGON_TESTBED_DATA_DIR $TRACKING_TIME_SECONDS $TOTAL_TIME_SECONDS Erigon2 $CHAIN # Capture monitoring script exit status test_exit_status=$? @@ -87,14 +89,20 @@ jobs: if: steps.test_step.outputs.test_executed == 'true' env: TEST_RESULT: ${{ steps.test_step.outputs.TEST_RESULT }} - run: python3 $ERIGON_QA_PATH/test_system/qa-tests/uploads/upload_test_results.py --repo erigon --commit $(git rev-parse HEAD) --test_name tip-tracking --outcome $TEST_RESULT --result_file ${{ github.workspace }}/result.json + run: | + db_version=$(python3 $ERIGON_QA_PATH/test_system/qa-tests/uploads/prod_info.py $ERIGON_REFERENCE_DATA_DIR/../production.ini production erigon_repo_commit) + if [ -z "$db_version" ]; then + db_version="no-version" + fi + + python3 $ERIGON_QA_PATH/test_system/qa-tests/uploads/upload_test_results.py --repo erigon --commit $(git rev-parse HEAD) --branch ${{ github.ref_name }} --test_name tip-tracking --chain $CHAIN --runner ${{ runner.name }} --db_version $db_version --outcome $TEST_RESULT --result_file ${{ github.workspace }}/result-$CHAIN.json - name: Upload test results if: steps.test_step.outputs.test_executed == 'true' uses: actions/upload-artifact@v4 with: name: test-results - path: ${{ github.workspace }}/result.json + path: ${{ github.workspace }}/result-${{ env.CHAIN }}.json - name: Action for Success if: steps.test_step.outputs.TEST_RESULT == 'success' diff --git a/cmd/diag/_images/dbs/example_databases.png b/cmd/diag/_images/dbs/example_databases.png new file mode 100644 index 0000000000000000000000000000000000000000..5f74a2942bd6648c940a9ed829139aea78602036 GIT binary patch literal 132307 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 ZUn$ZFO1(#Rn; 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%0D&<1iy9rg179-eqF3L*_{vf3eoNOzyAv(HRie+ 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≪f%j*r-hx_RAB(cw}Ha^#u(-sJ97 z*qwnm#yciv1`*?)uxe&=mz84WM*bE(i?%x*j*D|qBWWObwdm3#yLeIPoF9PM7DXJq zj$7tA$CZIU9PcOKA*Jo}Zx7#dYboI89t{TJ>#m}lA_F#IJ}ZDJ37Ek|=ux*yEjX}{ zil?IYw;}Nc63^+wu%&y}cflyA^ifXYEca|wk^nA@$3Gxyp>Z(vEWW#9AZ)MDt@vt#;5)g=AlZn;|Tb-geS;y4BfkiQ6FW}!gh7aP;dr` zGaG#F@Ub>JRK@bhq&xDgntf7qa*9E_F(o{AKk3(o)iV+(^0dTQkJ8MI3gq!sPT9S2Y2l}rr4?At3e@pWd)QGefh!* z1r&0Li6NVNlk8BJRFrq&a@wy*=CFvcijpOqRyEc?&<#7I9w0@$o(^C2cM)zvuVv4b7d?tT}3d zffrKckCij|1pAuuCte3x4?uxC+%lnuu3bE>2%!x{e~qp+#%#y(%1&FoS( z&$wwne%;VmXr}7B7mM{LqW4wKQ9)ei2QeEB!9_^a>Adb&GFOJ;zMJldf7eYBbU47*Xpw9@U z7@{h{z!q@x2syH3@v-pL2RJ4yl5NYeBv=1R4dptM_QTUU@anq^qfv6TdY*XHvG~1W z`zdd60vE-&L-$*`D@s&TVzB}dUG`RdW@D-ObaL3f{XLvT)YTb7SVl2mF`4t@U=JEg zGIv6${E48+(bSzzn|L~viUWqW7zHzXP*&FeGZGYe+ge5TBg3b}C zYTkvBB*iAKvpY3%huzTl;_70Ms2}1@J8U^qOcBeJ-5m(q$=~+>h+V?I$frrsj!iDZHR0-VpR&(+|s&ThR_={D5Yi>01$?YapQ}O!q&x5ISk!EWx zWxMAnl`#r;zw4rAPUt}5ejJfP3LtsgJ$nRv9%3i^5X>6I!0d z;-U|*w{zj65K{l_PKiLuPR8%~9(s*L5>5JJ?#X~Q^M8m%Q!6B4^GVj>oC(q|7)?06 z$fWsqdb0pg^qK|%_ZXxP$00KRA#~-AU0;%ED8CSlAJ~NcsWv@N)L;~o_u=nSNq#ek zCD;C9^<33F4xM?RI;VA;`jNU?!KoaN!}aRmMnF!lrFY$o2LZLd9BVl0dt%2GSqYE; z>sUzRY|f8Vd*%3q0}n6!b^;$(dZC|TJ~XxBpAA%cU)QR@9c11;UdeCaIlWZmgEAU) zjQ`|)KF!BwFC3{8(xE|%jMeSO8UTKg9@6^^CoR`>rVA`SP+9J+hHq@pOYm>aDbbb$ zlsUrfMNttgFl_?bVKXU*+KHi1_(`O3R57sfO>fw};~g zigY;>2}&ag)JIQUM&42+T-M25fsSJyp)f){x!(FCe=IP(-rz*Lcm-=Ff^(_Xm#Y?_ zQLEVHjKy~q{|F9(Ht)k97F;%rx)w$hQ{ zXB@|i0!_Z?Nf zzKzf=HI3H6KJR_Z8M=51BHB~M=UW`aakw{%S&xbOodm`l`9F^YJqTyZo4VQvB4_(hgc#I_aybOH`eYA) zBgWWQ*dKNpW7_|;DwQqY_;Gz%f;leyZ?{@V?9PViotZPl|NclTKOa6iy_C(N@Gx@C zlRHx>0nf}PJt@Qc&hZA3LIwa!;Z?Tdp^YI=5C^6O`B#+=UjR&EWzyXJQEnhLY(_Iv z+oS?B9_dJqC=dEtomON7@kJ-$8dP9*PqKPodXWomfSE4JNdL6vB8*3;T z5Vcw-Y1Mz2+V^9M7P9$KB--&0f{@o+cP(;7Gbtal$}{yar>&c2F{rrf|6jDdWl$Vl z`1XlQaJS$P9D-Y5a3@%B2yVfGI|Bp{uEBx?m*B1ef)m``9RfiIW@h{OzqM7nRqt-? zm;Ky5GpFaw^f`Us*Y&$L8(=a&hT2vt0npbByi`L+;9NHJwHa*{5WM1iN`uG;9lHew zuCSgjoWSQwgE*`BfKoP~rO3g@SvyO0(H>qv?*OAu*g?^;2LpwMr?%*_k<7&YRclbR z-^YQru57wBR2^+hjiLFPh(;;qT(pWYo{4CCkBOre{*6pkvDYTpC{7HULypida%^5$Md|r}`#@bG8SU zl(D_%4XUUW5I`lJh9`9}ghF_i|G7WLWe_9dz|w3`>~cS~pmuAs(zWsOGEGM#RBihY zmobA4Xm7%-LwGZAp!@!mV+2|Ham{_4>mVm#=0`pe^grKYE5A$h%Xd~m&1x>@+26#` zGi@lAP-NBP*VdXY*Qo_69OsM4^q+`qDyPuXv0f7bmAjS(sTG*AMobXhyAWqk7H5_RZ3!W~uRjWKDwk&@N@66*yK@A- zU9HzqJWBC6u2~Bn;7%;O9MU_t0*};_3z>GdOqg@0tL|C~0C3&<3T(#@> z!yli!FUx;C21V8O7W*rdu1-?lHo@Y`-_`UUW=^yj1Veb8AhIc%>YsoGilfomxgPXf z(VX98-wx%tfUDL&6}au)g+z9f0k9jOhZ(4ut)ow!La(I^Kf<>DQ7U%PORU6lh6xe6 z#f03;GWf9xF`GkC;JLC!?YKbEg#Pen&tc`;pU$wS_i78M-+4Yo*$=|o66v-1hyjZUF!|7%DS`<+|M`-f%8%?EvqYWSa5MSG{02B*a z@U2#hWL@SlLVfBEdLQ=LuTT&UHcg;Y%N)139guUX>3v*C(}=@|orzm_sx5trp`@(z#Es6C z9X|*;*yiY66z{$cvk*a>Yi?tm48!%zR94Rc#S!*wh8u3^vwP1UyIfgqyWN`2Lv)(| z4df3M`RIl_!uuLK!>kAZ0!pjdApQ>!Fc>(Om#)<}z%ryBnu>Yx=UJTf9Ea(#3hK?M z46}SXgLHDvcs?E${pVD2+33V98~GJ+h0LylY95wZ7K={nKh5>q?bZ5*~12MpzwBW_0+ z69HpWsP$LD1Da{{90d7iY0)poq_Q)SP0p=b?}fPD-QDuL5PW=g?Y__}V_|TJ@ry%2 z(7nF*>=HkZ9zYx=%5U4ZA>^B|I~jD@lwv?6OE3QLaWWYDER|2xvhwEHWTz%}{WNaw zHoNx2KF1lEPBg09b;j)?)}aBtC)5dg%+&d9Ti30=I-i;ud14Wp?}&v>Ss6q}I{PLiN|}Lj@k+Cj2*9u5CMkPtqjD|( z8G*FAj;zDt#s8&Oe1fKEP#koK4a4165q~EKCmr7&8eTx;T?=8pJeI8Oy7a6*liC=S zlBpXfOk~`VG;6uX^}gf3vV^4)yLm=7fTnFjEVrp1_@AYq@5Zr55$b zF9&>mwRX$C=0**fACV}%Yd6ExHmZEC0Kh3RP7Wkd;(qzO17yM@4?bM6W!>y{7FPCW;@y$HKrso0P1D;8gHCxtXNLq^;H zs=7NWZvfCfmjAv#TP+SLe^K7yYmm( z>FC)ZMolAP-pk~`3TRz~XZVN~K5BRfY?3@ApPxayueDXc^`504YCwm||9yTqSA0!e zu;JwCtY{@Wg-UUhIYuA{lzD-^9#`^l45Qj1!H2Dr@lUQG)<}cYHK4oRdut}D6Z|9X z2CJRV7IG%>oBs*RgF3j!fG|G@H`rM52G1 z;@L08|HaWNe5QWy9CTZ+)gb%l5zFt@-WXXsGx3j533Zi$PK_- zKxV!&Wd{+Jh9vE(L*9=;r$+jBQ$r%FxO?_ulIV3a%-$RpT>@-4imFCR6}tb(uY9Ip zasx2mA?zr0y)MJ$IN~!M6ULIsY|-(HI;-nkU3;z=mLZ+n3yPoox7TaZ9pTme9!oMY zqLy04NyfX(#Kp=EZA#`d(cFhhI-cBHAA=q3AlZwxUNM4v(7TI6tKz1L8j4r^jwi|o z45rxwl}@vqE(7oXy?v9aHCzAfOZlSrKZ`%*v@Zsmdyz8CN+ zst0R4ob-#?G(3Kw%B*Y+&?uO4un&Ix#M>R~%v9dOnGGH+wH^_7*SCQ~ruFF|mXeeI zf`I&69QZ;)$)VZaTdZoJ=i`l`jK4+0?}h)-C=8W2{J)75a;FGKB1TE|LEVv@8049y@-@6^?y4gB%t=_O zTt9>TaSZX_a;twevSK~R_$;YPNA||}Kcz$iow-RiY4ecg7}ri`w&|12$ zO@QlDd|{d~kck{>^3BQZZq9KeEX2*hXr5A*tu_3gAyWI>mEF^_r6g3uz1b!}SfTBL zdGw#K;{VqH$Hrfpgw4e>2eL70naYvZ3FDQFE-Z(KM_;I2pJd3gM+p3<-q6)I1YH2# z)^_+xpN#7^Rinti^f&reM1%|n*JY(Q-n?Id#_@gpssw!TcdM`k+bU^i;FQl}!Z3Bv z?aU5ZzbD`aqhWOBA}c=5&SrTt7j5QE$U%1neL%)}zU=Mjh2FXR(&v-l4LBE5_>o^q zdJ4X~TiS?9eZ$^~&#}a#R==Gcb<-Wz522FPg_L+|Av6R&+$GY25NUT>NRH`O3xpQo zx(IsjUqV=qSxvcGLCMjHk`VIjSv=H}aLQppQc$xe-IB`lutk&qdGBkg6iEn1K|zy- zKtyEKH}E0R9fe0mTiBE0oG(`koG%b|UBAQ-C;~_dzXEhK(`EwG+;woiC z=$tk!PzPB;APEYd_}4S-!2kIES8=h-qbAmuQT+1I$c+FhVLklv0~Vf#`!&~2H=>~* zUtS{%ob!A^WS^rQV+fsvxb`60FKbA$F^t&u4osN6HS3)T^`f$5Srd|K_>FE26VK_Y zK0WQ-pWPb6rKn((6iRXpp@XyaMNF4Kn16xEn&&K^$?Yup85j(FlYL53IWx0jC9=P zf@kbg3=}h39P%_HXarBM2RomGSLk?Dod@{60;)^gt`E!Z~2AFo3oTVr@HWF&u2yC@UNT0s`4-RV_Uiz@@A@gFuRQvhrEThJu(t|`)N;gd;@g?0t)|ig&#?v&e|S9E zWVS2Bzw^#!Ula|`#=2XZ4NIw;ML-*6R0(4FLG};r)lP8Id#1IDWrZI3M6UJrqwjlX znL1rE&@E1wg6|&@Xr{~kx#%SvVQH?*&_g)j&ud|Hc)eA$Aomp?o2#g9sRa@}=@;cpKhCU->HDT%G;w}5MQ3UOW#-k7W0kc} z8RlnIPQ}{)6k)lk4LK-1?nV0G|Gr*WHce{|!shC{2)4PSjY{l_!lSx8w5-0{Y-yzu zbNc3$UgXWy0&=cuA^zjFCIepW>$A5S z^jdSV+v!4@g{v>`?WU?$uFDj51vB!D21(*l$4+UJ@kO#_U3gG@f&~*2=Q#GIQ%=VI zPQImX)p1?7u%gp^ATtM*j^^pR_TukE*jF&!kM#oZ7?3%5iCBChI+80&%MVJlnZ1n* zqnNJCskwsOt}t`rXmRJA0AJSE^rpFs$wOl#1bXEakeY(F^GpYGdD654YB6f+iAG>7s;AI{&y&g7svcD2D%RKUN+QQLDGtU`&;dB2GzAc@HWcu;5LXD^=%H^@3`|C*8&7$9wlUv=$y z!)GpM;iN%#g7$gqhIV-uMosoREho**1B#RE4QPGCA1u?r%HV3^b;E%9Q|Xqjg3D_~SIUf>aDGUus05(;sAdU(g0+ z!XxY>Qw{H{s2!Jn^tVyIRP`lei=H0`A71Z(+mv*33;oFdmv{4`XI4=+4WDu*Yqc?iwfXd zPIlteiji$eeJ?tCcO~41C@4MCsv)kc1axQmy5ac`rs(TZn8lFsIgMdg9HMLM`L(m+ zVgE+!TR{{Q^at28t@-XHT|rqHFKuwn>4x#Y4ZMPRqWAB91-)D=HmE5d(;W^bAG;Tw z?Utyn7b~X%q}Qw6wuQBIW)aKX0%Y9&oFz^lR0(1caigh>VsLGo6q@E=x%f(TN0Mm<^xeLn!(NU+Uxpwe4~NV3E~jY~2w^56 z4Qv<$5h*HzH{CM|`GGQnHOK%>+U%f5n^A4EptP z|!&oeBT~junOVVJ*0*@ABeIl$>io9C2oZbN9$ReM% ztE`6c|E=fv%({W*`}m`WCEwp@rmo)FhWfq;i^p9y`ZDp!skq?TSXt#n*l4p>4ZLln zzh;IYg~Nh)_KxjuKPN(@_vQNU^54Pz6Li5&2NK+!_Z^OnSc(Y~kn>rVHM{LTCs71( z-3BBdA?JqR$Qa(^ex`5DE(>DFd^N=u45W`(mhlLQTmv~#eMt2PX?4EWmT2<(+rPdv zZg#iYXpBg{{6$tDUI;;{?Yv)g+K*sW%{Ofbea0TikUrd3)d*c3h zO?Uu-5K>f2Rxv4=!{)XMzTS1kzwfJHouZF=owDKo>@4cXnM9KHR<04z+}`D8f7G(E zWYacvMPV`<%MbQ~svX7CquIBdX?E@Pw;zpKjI|R60fh*k+6^h|uzC!rAy`r5i?9vc z&?-~hHKSF}&X$Zb(Llln5q=GNqrXdSd6qM~JXk?mZgi3O&WD5!b?tewjpWZ^YA`Qc z^}nxPk@+rY=dFj=h0;ZmId8USi^EK2O4NXsio*ANtkxuJ7uqzo)Ei>_=;09AtX;g! z!ZbmtMo0)X!kzup3p+CNr5`Z%Yk9uxw2Q){Oq=|69n-`+temV`>3BCK{fFE%@MG*5 zydP^y*6iq9u@jC_XB=fCWrhJcoXUy%oOf>Yhdy@-a{KFb*we)7@BOdV8QjWBKXi{- zj6ZLWE5DTpEu>3&>-bigu1bCf>-C4s_u2b%@vn;+=ri@cKy=;fp?4yY@TpB71S4G& zM?C6^q7b?ZhUl;&4561FF{r2dPpNiK}^H{TAP${;<6I#u~;< zK!VRpAf0_H1b?Uzbi6syfhIUlXUF`{c| zsm%#e7!N0iVl9(12wbfI5(;Ni+XDOm=<(~a=`<0w?CqKSY74YJF4G3=I^nxIzuX@A zU6@##W(dN~=cNw!JC*efAp~^4M;Xn%()_EmkVvk7Lo#w=G4pO+1Kk)pvKkUkX#s~P zM|JHROd+Y4xq)avnOT}oAagG4}bi&Ih#aIU34ShFi6K2#JQPs6;59L zdRW4HYd}Kc(s0S+ti~iW_K&vp{Zb7wN^}NS_;=d4LfK=9*XOjnyV}C1Ey=zNhWogp zPIZjfNvQ89C7`!+zDq65QW1n-jZ7o&B^vAycd!+5kRq$!g4Y=C5vQmdx?Li$w# zyVk+XXvs9phT=?#Og*jqC)yA3Z-0+^_o8^*r@fcgc3tfy%t2%D*y)dOPot$>rSd1I zT!@lGF`S<|ja2T7w#8d$N*(QFS{C|U;2}80;92qdOsRJwZsgZQjnuFBMah5n8vSl9zuWA5$Oc($Fw=$8X2lod{ugj=Z7A!Fp z9VciJbgOeNGXIpjpZF=&!0C2EB+iapmg!sIHK#{PoB-R(%gSdM+2k?2p1nH$X*7W~ z%{@(759bc9=1>pySIE{AQxEH|ZVz}w`)PXFFyhyrnMJ&pc`t!S z4j-PL+Z2GF^(;f-_ybuKy-_hVvRjLYVa3}Afy}E)Q{mPbcfK{DV}aT~`c%gjyFA*Q zBZiK{wf93#xeBixJ zf@hRUXTTDc^B~_P`hY{TR%_9Dl5A>+zc99$_g3&4wJ+$QsGvZ{8^{|qDf^SRv6q-g zB6qK~%n{o`-fy$9@d}LZ6|`TT>|3@>d-Y97JM1y%$*l3_f_9XgV5jugY<&p9bopVp z%1To`QBGQ}OpTI9Pgd}pqhbXiSS^NHmm*j=7v>W7zPsdXz5d6%?Zh`;7yQz(1q*Y$=}ON>jR|at=`3>Hrcckb^NVeHS0m6ACyR+EJ_~_~`aP_s8UZwCy(JQ*zZ9 z>P*A-af6k1qFKSo$vQ*1*$*JE9J>$5!RocthIEC8cREhW&rkMgk`5(_=8bJpD5cw+ zQwjF_DSkp1fNkQ9)WA?G!gSpgOMAF;fGcC-QZ?3Qz0&I|DLMEa5YoNYQscT(nOz`-mJi&Y*{!!DX`e`C7P}y_$!bkJ1}%ds^d4wZ+(g0*a1)lAwrvN zC0nk&p|FjDMEC3Oa`(Ka^YuT}wm1#PPO2tsvl{k@O;U#2t`S!OTfVz$ui9f%sW0I_ zDnW252@Po%9sW=LsuVg+2%nl-?Y?>Bz=tQFT|KEK2xVPA@N%zQh=pM@}6Z)XBtX^v&OVCQ%v%|-tcS~E+)7#n)YV+ z?uQu(>6%&8zpRy?}`5P`^cloYbW=}w4NM6g4NE_OP^|8ZR*|!Ui***FLe%_&uj!}zH z_FaVy<2!;yMu^BD@hXpZ%;Sfs&DKCc*HFiLw{Zq&uI297FR?U3{1H)~KkL|of(N(| zQC(fyx#XFjgpfvmxAB{F+^g?(3|a)^SRa1!QgC5GR#E~XJ1%LH^-ZQ5R26SYI<@s) z3Aw%snmso()E)c#UGw+}=NsyKD|da<)wl<}-KlC8)OL3zui~e)w2Z9%%0zdXyERN5 zi8($OK>ht(27`-1=2m~NF1bTZMj;fWo!e0CY}2XC(#WC`66;=aTJ$Bom7I-z!c4i)Al!eWkvPJ`Xm?85#kg?8*i<>F? zO^RO7kpd}IA&O;#T)-%;@aWb1_F^V`Y1~2E6kYC2S7Fy*p<3+IyF0RurYe6 zAJ^gqy-pJNMpLSCtoU=a(9=v2n3Ke;V^4LjP95}5n-j5Yyj zQJ`51rrrY+vow}_SaA1a632XLI80MIS*P}6Q2S#b^)o+LR`B71P3OPe0nLKmj~kGm zqAf~xn&M609cQN=qH(ShqD*W-u1z8mqij*bD#t=?Qu>VWia}T&NsA zfRzsvQZ3I8H^ToR+u`(1(uGx`%)j&L9~3so$WJrMdOh%!wLF}pGv(eq zXRQq%gWduQJe_^FoY5zZ2D1*Y7#L5`XI2QEEY~Nvm`PEUeo#%$JRWG#{#)mOrGWai zXY)%O5SD0zN`b0ukY!%`UV#G{QIc>G^Wwd*1hExYEkkJqX>D@mS~=-#T^jJ> z#iP}+Xd&|nZxmmADXL0$omzpfo8w4T%!8&W;N zb7Gy>Rs|D5Q3X{59pBY&-KO8c?ViAhAwG%X_sh#K2lr+k&qR3;9lF3{OtYsaGhbMc zJPNo#vI^~mj{#Yc&pk~9-j1&@(;6YtMDi^n9<&ws@|C(EJeccidW{yRiJ+Ex(h z-%v+C+*`LffL+#m;t3;A^I+2q%vV%z?tfYMrYAYR;B6F=E+1$~Z{&#_Xl{=&-ya@W zWT6oVEO5h!;*+0OSW{DqOFV!C57tou2hKV0c+C%lCEoXKd;Cc9JBd19tMNeY8@6lC z)V(;0U>SKmu2{HFD!DcdeZi%e(m?4EHKHuP%HwZ?&5CK6d-j; zI|L5|=M1d5oWQ6Ofp3z-BY~V1u3G|}0ICAlvk1InEU`%QWITPH%R1;idGDrPRz0`T zkJVrp*Ffd;Q9k%1z=-glj>MURpIX{@+v|E2n;cQ3TWjmqnEf<$P}g=2I*NMtu}v}y z7v+;wPQHeK6aFR)Ygy|TtRYfoC+&3`Iw6WK{it=SMk7& z*FjF_d)!)PpPRZ7JP{^&qdIpwr41wNfO|qwK1csy+kjX98iPGt5(5FEh}M5{c{XtS z%)9n23v{9q^t)l`mCeWSBA|ZbafpD^d37(f6)Cx+@BH{3kFIa-vl|lSJt~>OQtQw7 zz1AP_9Mw;APlU4|gZ}p4x6p)6Hq9Ssp0!S`+$-+@iYNrmIS)52nLETSD|R!mkCPxO;6$ zGI+Jo30!e_oggm9^C#OHH1id(F-lT&x)J^sEn;I#w4Vt(f4Q1KyQUxe8BU7}-LbgD zDl(!CDh@bE*H0SPRQ&u8axo2{*#+mCe+?PP-P>wfUxGVuFV;G@kh7kv`KP>TgVX4p z%=`{?!_p)i7dd?Zvpfr5glVuE$oRd9yj}S?a`GFM=3eCr?`JAmch0l2&K;`&f1c-F z;HOSey0%J~M|pgMu;jH@x5DIV86!V}%NZncVpdXg4N2%1yz2$;?9F*kFTE0pWXVSo za57f_d`OURvJ3BngWj}jCzS6gH}=aVO-KJ0i??#?|4f1IL1zK}V^Oi6Ec4Eygi9`} zaSz`V$!21YkfAKRu9jCYj2$oV{Rx+qD%kWA?gh=%VMXT%IWpKU4=$R|q_M@m&r>vV zNdQuOIU4vaLdjVjQK#$Fi;FC%*l(g_7$fMU_8<}u>vI6Ji95v8;Vcxf^dL0gD9`); z$P7QJN_KRfP3~}$cx0WUe6oynLW;To51QF%_ceS)WOvU{TIV}bkGe48mI|GdtZ;H( z=niSIKM2Wwk%WZAJrKu!hES@N{2noB4*7f<_!)*SoxBqB$~IyfSx3FI#w2K9OI3Uq zByXxMO2`_JL2Ffr5H+T3pzYv5!W>$oa!*GVr6Qzmb0=4mh6P3OL2tol~WskdbgU z^_KI;qqw}5;pCe4#c2f%PyMOK`w52nA@f7sUcKj5a*uhH`R1Mf4Qg<9$pev7%IA$g zWM~TK%^qSvL_ycnppHhH9e^+*So?g0RJKi*BOE#3SHTsW?5Z?=cTFOmpynIi1yZJc#W248PUvmRj*9;z!>srd~8w}DTl2X6o5uL*N zCpxz4b09ISIBi8z{bg+O8KuEJ-@>g95`EO}s6rCUQKmJl?WC8{sMXs&2Qh>{%{yOm z^!>t?+ z+w~fNdb;B812FgY=WA(&I*L4c3-IH)4i)o_cSiyDIvfbjQMebV3=XcjW)HBFj}uO6 zq{VnL>MJaCxd&}YK>yMGT>z<$cj|Iiy;$6#4A(jQ6uH9d4-6*=Hq0g>Dr?Z&)XYS~ z&PB7>)&z00 zF{K3$b<$hFbo^OE#*6t+#wLS^m3@HrVSxVlt#JYT;W#ueLfji4FP?&b5rZ8*Fy#2;6#^6G586VgiUQ}QK*NtiI+g)w4YcKOIv7eCu4Uy6}G>w$6ZeuF||#4HdEVgaX(bG4Z|W508E z_Jecg+&8LU7W_Il<+@ysV@z;Fyc1czNwusxnyzAKx6B`y&ZEYOq3RDOB4oQ`IV~?z zm9Oj#NtlMY?lH)@nn(qmE!If1kfXg4)U4ThQ`x+Dn67Vj4R{W_>1-ZO+nd3c?ME^z zry+Im{@zj&p>^@ysbP{=SNK`6X&bFqxQJ|PoN?CeN}TCRYRm!|!&ZbEMG8)a*)3_* z@$BHZ62h2@@R1u|wO!@;XfD;cjD{at2Z{9`7Ohdke6;pk=6o z2eo4cKPcp$s_iL!QvA#`!<0Uyj-o1%p~6&3$Tz;n8^fZ-*utr9JeHu44jTIJWSOQ_ z4oYt<>4{-)OxTY^(1h;q=zr_km8Z>!PYj820(U@W9TLgMnYvEr8NhW_n}H)F8i`R9 zoci|r24MLRHPoh0by6JVgv9*MSpWRr$9ggYG5?=S8~oo~+OHanV=9qklDb+}`KiBa;&5$T%T?IB}eAv7@DI0Wy&sKs8( zx;IL;?c8%tT{xm^H_1V1Tm*VV=MlV)&8^>&0n_lq+Dkv-X#yQ^G=bGG@^46odM6=v zQ;>cD+r%Oqw94{{G>&Znj^+G*Zp-%BFZjdJi^j!)ik?g6Mu{pJg>0oG{QRx08>Oo= zWGj}Ws=yUZ=xcb7Q*o?rh`jzWdRqVrJOdVJnNCPM|}Pl`Y+VZxao_BkIB&va&czUb(ozz^tH4e5$(>X zX$mFey(i6ktEURYN6wiqtkR?G(Ta zmQcku2Gckt?_&L#9et1Ztrr)?IkSy_wL&MZArBS6LcD_}biG7*epIO+1jeTM{sDV| z99$%sFhSU31uMgwVESgS$7cy;acv=}5@zUrGf;a-*?T80t_SD~5mh3p;1#*kcj_UL zL2Bf&G7)P2+5~&8_boqCLU{0_QC?7#wZg9X85dkpRA}3T3W9qQcXjZ2(j4j_IUC*| zDCeKWEqj+65utGBg~WJ_4PL2%44Sz7=~OGS2G~H{>N>m^2gb51>Z9~W=ILecae(TG z{#F$*Y*@Vdll`?!fzL=qU{uy2d)Hv_m)^}R5)oOVE~!Fg?(GO6qfBP$7-Spvh znDeywJzgv8mD89N@G%rD!1f1Tuk%p;Wd`brG!B9r<)2~;x5mJe$O^JmTRu1(!bjS7hvG6M(S7>+b z3Xs$L3e*1GrktQ}XCl-i=z5o01jvor5A+`9bu?aeyVZp?_IzXJp?_kimLw&1nscOj z5bnGF+?<6b{<9m1!0J){yZq`x<8Ju$D_>f8fA%!(Yougb4b)v9my{SH^` z*3z770q#68wwjDRUHD1mJA7VIghqO6v!g7B9?}JvSL5tV5adldM84}5=C6L*duojf z!jC?0u7U3$6?1>(BF>|F9h32uNr5uKO*f(#ag`-pN~ka5tNpS>C{4i56IlqY%r!hk zmD{Zsvas-2PKbfzR{Kye-L!wJ^SLyC{MB622}>#t@h8mo$7{AsISurlc|>$<_bA$6 z5pETB#?%i%(9#^*E~FwBV_gPRKd5&~-N<>_pX_O#Q&tZCu!?f+hDpw}w7UU{$KJvh zjq01npOt8kEuU_vhUfut9Ese(cMkhyG6I}VIo1vMfNwo1G#|p8z*gvr^uVk#I2Q zvqb)g@#L}sM^ew z8u3xoNkqd-=565^=No1()tm*(4BRS{esVT>TCjhM5mN+n zl?bu1ZKc-X5m5|^?U9fxXez&|AEx;|X(|L;s2abnrXFgP77MP{>h)IC>Oq4R&!5(= z{mUo&HShj!8ZxUPQF6P){D%Vl6SGp4`~$Bui7=&YM4=HSl0X*1PTNcD_(p}?0L`_k zqP3F)hE1kDtiSZUET4BBr+*P$iWk9C1J4JbRZVuLav@IfdK{{?g2aA-^L)6U(_>3q z=vEO&bf)XzN0*(&jLJ2l8>7kKm@dUDu{F`oX z=cYa*hk8O+dSMqW>wHzJR~P=`A?Y1oa3v9<7kc|8Wp&o`FWXt{KpZwuoyB<>a3Qo^ zK!yJSlb6Dselp#c1jch#8v$!YOsSz1cUc7Pg8F8Ea}S2goYz`BYJ^-+&xds0c1v>0 z4xp`MLwa%dcCfLJz?Xp>e?cJ0jW|FzHUg5rm5BH{VKU6dK@HFCMB1a6fhr>(7P{2hKqaH~$Y8b*$U_={j{B|=7Je;neT$!G> z-(LuOELl*6A|l^w@uk&kEJwtW;#v=^rP zcjpnsldbexui7N}WO!i88DW1vSe!QSv2cx?jQrofSdwv50KHnwzcAprPLw1IovUNP zr>$rw(3J=jf&BBBN>>b8w0U)QgL&$H%2tjw9()PN&}f(~>jRMoA5>m6n_Yqe@rbGB zxvNG|#UCTOm{R?BSPBcq@YDK_m0s@=YC+AFI*$HN7Jvd58%!xn`$m|hyV~rfz7RS^ zlnYIe9v)1ZuKt_TT$q-E&PUiItH`&}ILA(}#Ac&`R+kQxV1xaE;H% zhm*d-Gnc1e5D)7mG_DqKSzpFMAU`?G6YGo$Jy@=gMQ^pdQ)x<10M{6=_%8l|BJQn7 zKA*=+Qwf?g7dtn!R81byo*At{%%o(@zy8W8FA#9D?-P40Hn?PIR`NJGOH(0FLm0;k zKWv(d?EK0Nr2VGut@Fzbyz#I8yCQ)~^qBfiYJJ<~$46+SFGsO#Bb{cgjDCL}W5^VB zOB{y%a%Bz=idD#%LOf-sEFQFwD%8)aCN$P{x-OY9cUpY;Rp7~PNgH`{hP(XMPxPP; zq@?3DO_sZzJPnB=3lCn@TVbHUWF8`;E1S3QvEmEsyugnX>(IA@A26Teht`uu>BN!m z90%=_*psSW@o$#bhx}ZIzZti-zO8%4&jVLS2t~@7*uJ)IcF}GvMMv z0e(VLU;##uOF8_B=_1KYe0#PF(?Cj3&y7$24vvk)xxMIqAPAzRr1YM%{WH|76NN5t z&hp(;0|brhBAgy8XP+A;JGdcL3NY54}L&=K; z8W}!d&~`U=`BQR3t?E-SJVtHah7+fOu*&|k4A|+rC%zmIv{H`Ki<%BypguY+lV5%I zM$Nv<^I6AylFC9Oyu&}I%#O5*#PI;K?sEdJOUQt&TR!nM+V4ocU1cbSc;&~S1wrja zA`a6>nakwfci11!7GitiA2gbzPs8{&F|Yf5IL-()Yjo=d7z4!RzvKQHg&6JDAc0Em z6&2B+n=7}uwhN&#a$06`R(h5AB|EO6)eXU7W4VM0XX9{97Grl;R;VqcRSMk7MU2yF zHT?c~z-!&gD&&2<&nT|}(NNsy4Ao%w7UF5$MR=$81u0;}?7{h7&qmpT%aAg4p+^&N z&b!paHpG8En~gRD5xmn$X!v>dkM_pV>iM7Sd=WmKDvq>Z7*PBqzo}o$b*3+005Ss} zKEguL`ECu0EcPtv1af@VUsGx5n!B>-3f*7V_izctulerj1#brfxc-N{avWouXKDyg zcrGclfJ>y++_S(Q<-l|C!pe}Wvi$2Bp%uC5IzylHQ6ihJ2UvhqugiY@ptjV<;dhc~ zIrGkFL5S^QGs523rwtTmgkx`PybAl2Q{N!Y_$$&KxBOinWXJjC<)G*GT29x+L6^1o zEj2SK8S#kLqVw1< z(*_eud`~1E|CU9Uc;t}!Ary`pBz}5!2zmwitDc--H);H6EBA2Zn^9mfE|n5()6}Mb ziV|uc)Czt*E}R6*B_o6{?V!>j$IpE&-gq|w+r?UPEz7&^v8Lpi{~bC>6fKx-owS)|ZH98n)|8%TB_JG4WHsPRhj2I19bu1a=2i1FBE|1}=9j2O$ z7O@c_U&NGxF>RkB&G+9?8>sFb2;yk^n7>tg(WV2+Rm_)?KY)TwPnLrJUVH)qdf`}G zd!9d!jh@)(phg|d+0k2ujkW_zQh!-)+S14CKRvg*XKcYe(I|y_pOgPmi@|LtVKOg# z&a1a7!)Cxc--4Z^W?@maJ5F4w$x~<`Tem$LE`hM5w8dYE1jE2MDE}LW#SPbf6h%^b zFU`l(wcm;YMv79Xh8pdUOu8{QKiGAY4lpv(7{ND?v!#kMGTKy3LaU0e^295@hcW0F zVs4;Gs0aL)Nsh{*H!QWi)4}Y*q*|%VuKwE4WCNzu{x;-h=7W*^2H5c{|AE!n|B=}& z6vOX;#sSzFLhB=SIos^m_Go}?IIulp9#8Uveqf}=B;lo^3+^Gj7yFasdRHg)qV}%Z z2*l2EucS)=fCnr^wN}2+hF=HlsHrwjY(OXnOx|##Dvqg`uJhYWdFnd#6 zBSyZ?kjEGrCWwlRl*@rj(NTs>lsKOB3>ImjY4Vnw*C~ftJQw8DKQCxg&vAfb#`oaW z6F!i9)QO+K{B+$Ho!`!fs^SV!nb3S6OznkpFqPn@QqnMgB&RLI@gZCQ{?8OLZPnm& z)ciY`^LD42`KMapZ^Qb)Jx42E9Xq^mS(W6WcuG~Q|Mjp25~Wwkr}uwfY6GYd z^3;D1r!mA+**v{)B!Z}1UNkllBmS^OHT@`kI&X5w^4dM6WfW#;e^N;0KuKnwBWtuQ zhNuvYjl?S%g8dr_-Z4fUmo&gVpefXBcj~kCl@#&o(P__S?Qk36=R&&?`umjX-rv>a z6}E}vsq!vzpJd^4K2qAl+pk2AZ?;gwB7*{(Leg8g2Oc~~|EGP<{@#GY@3=4u1vB6_ z=%M4FPk$^|L-{vEH&~&>UBDSKoCw}fClzp-L*o8A#ygkqAdNU^ozh4+sg?<{`@k+# zo1dFq+p7j}v*qz=xq^*50!72Y9?-ol-wnWO5_R?)mi}n}2)^nyTkp@;e0Gh8*9=uZ zFFC`X+-ay43E;{1EOtX;t!6{jRtrn3=FR_J%;HfsWAC{(81AvXG$#{5Vi~lpf1o^z z248?b0Q^jx?(@Ou=OXiPv-bk$WZ%iMs@rjCvL`mTje_$+Xub}MO6>^@4i~LGto-T5 z2}jxsxXSa{klTJoEqv}PtTA0zQ(AI|uC9C9d$*YEl3QSrLz=XA!KXh^M8}TmLF$nXrL#pUU%{ zN5n4JeO99>F?>tc0JYVsH~4a?_o?}?fZ!U0m3|A79thrP?;Ah^I@x542gRuxu}8G1 zZt@@H^;iGCOQj5hrL+DB;_3QZl)it?Qv!ZDb8Tyh?7`_fq{#mhy~o2VzycOAyzP~+ z2;=P9O+X4K+BrBVs|=ha-w_4QL!Ym%a6!ADnK4Mx^}8Jlx6Z*7 z$aloseI+}9K$Kv6p%;E}g}cSkzS3xiZ2F+uy7VysGwW~m7nNhP9;bFrz_{Sy_^<^J zLWI;1nz~;z_vPv2`&C=k*S&fELUi!O_=fnj>>}b`hj9~A0j>%{{h_;dUe+~s>(Soz znV6MRNn0*Ccr-2WCCwgwdaO@T?)Kh7nveX0J-lNM(4Nc)DgN|`pCXL}=bn}l=1JiXlncV^Fy!W}X zGNZ>th13F_XrF0m^fA*+)BSeEz~}pm^$0SP5JZ^H{E=$CDt>Kfsu zSefc5%;xR21b5eN^Acz3Z%zm&zt692X+leK54&1S0hB>iR-x zQq=~C@ksk(*G7F!7z74rF`&Fr zt4sk)QPI_J-)#>TI2ld1Y2wk^=dlo-NEl#n_98`gm35ADQfzbf-ejmTzV0|f=hCzi z&6z3Rpj-wevS93_dLKBamLI&$_;%8I(vUWov7L_?{83bsBNA5dq?auOj}zo)AK{+d zW|e-vh~cvAtg7uH0BLXUfi)AQYuwk6@kB8CmelKeXUdSseP41ssg3M@V=tRT;CeK1 z-+RN!7aiJ0-cnvir(xKn9Tq>Lvv3URC_Oj+7{Vfe`Rv$fkH96`9ZeueGwX)r5m;ho zQvh?ABL25FkHBNLi4#ZMG8Y@LHb)`^e*iD$e9~P64`o}^5iKM_Zb>=&Mt0epXFU`D zvk)1SDN(LHT{}hUHeVH>Q@JVzZ4W~||1Db~OE@H_x)imgv1v*5#3R7`kh2DCs=Pff zKoAATNRQ=`-c>Du2wSYTQnD6IwPS+!5J+K)aEeh%&nkB`5U<)3rG6S>M?E4~>{ zYvPRQ+eqvQS;Ur`ob@_WTXC~8_S-%16!mjq%KP5v>$;}?gC&zL z@Q)>&9-82+UaI8M`?BsX2V0C8;fk8@XZ0ZOTk?6<6g`OdCsvKJ+l=o01lc~TD0rw# zy2Z;e(l$khb1ss%@Sv_&xZ*m`c)C~bl(6BRmiB%l==eCKw(I=laT5fJB&bO0z%=F% z$$R!zF#A02wBke9>$)#r@cLAg;E&yB^nqQs@wXuS$$VsSFPYI5c|%b)8_1OHOl$1p zf&VK7_^NVS;COJzyG-%llFz^C;IB}ww9rL&$@>H-6`%#IIW8GDaQ6UpxUQGOn9Xyo<#8-NA@ zulpH;RuIqI7rfv}Ed1mv`dw~Ke0QbHV4v1f1qO}Geyf-aF#M+WC9^3t7iyIIboNB3 zbOpc3%7u)WeYstNa`ikFI<1%1^gb2F>|X|BbK>`M>UGQBaZ2gGK2L(ASHB%RZukNc zDnfPgzHXx~=J@`wgC*Wkev<%*L3h>8SP}Wgh_X%slBMU3m>uN!Q$#zox8N8#K3yIl| z(QOiPRO@?0v>f}@dm?{z-d&XX_vy@N=8!7j$mEleb5TUVywq4F*u)*ae$gu9v{aHK zDYBs1Abu%I_`Cx8@SInU?a;n**=$yixbMYu3Sc)u_V#{bl7wFbMX$dMGtScpm6t~W zBlt!?uRkuW<5BYb29caWY`2jLHmVJMd!-gR{AS?{&J<-4GKO~(%lC^$mv!y089l&} zDC7@HD8dzrC3j_J-tp<=lHpjFRxcvY*$l|wS-H+jZ z+AhgL$4OwGD3+Z8fL<}Flm(!0K}kw{aYs9XNxdU}{Z>6B*r{2S4v2~j9DIR!;eiE0 zDm4p@?)Vq6gHs(^b=5MC%fB`q8J;X+Po2|#Jteda3o!@`q{#>ebwBnv!9#%N%j5A_zET!k#H0-H3B{0Ih7tRkN z6!u8Qxu4dH^R>-}!M}+Y4ZYE@zfJ*ku3m@(>7=T_^OZ)K$9%e)vjiCenDg6Jpt{iy*=O*Xy!X?tT=+3;u*9572KvVuNkVbnDLPZTmN%Bl&On z{@IoCyL$gG;rSMW_~6<+=hlEa-v*;U?_)7?&2)V`&r5GGE?^~&?Omy2*3YFYf*tpv z@FrvAhGR6dY;Vj%%=4m}vcVp>nn``^4Q2I%)UU{`WBE!eFc5r1*TLO`Bk02J_0VxB zl;21Dwd*14PuvZh801XVa-Ro+IMdPH$BDXeD-Vp?J`u1D&+5!)_i=F}UI`=VDu9 zC6Q(+j1NUb@ePGXb=U60DrMW)Fl8rk*s%oDladVdNLGQ(ki)0#V)`qIwovRZX{|av z7I6C)*3&t+s=!qE|E?G>UtOaKo~SXkq1CQe=))owS*ZHcf8`uWjFCj8qtmx6M{8e) zw(;NZyITkz;!2yB)O(uQ4_~)f6kGGxYz$Mqp=Sd zHw=EhfN%@OrKAVLxfmZWg%*+8y?deeb?eUdBQ#J%)DqR=mR^P9MhL?PZNAewNnS_= zL@bFCsaI{uN!27@{ywJAde>*p>9bAIkm|Nm69k)N!gJNJE6(@!Z=3n_r0`O{zd`r^l@S&yDuj>7?k1gVsJL#h`Zr9<@*t@&7$0Br7dWs9#?y`=eacd@^Q`0$y7qybM@S_ zozhqWuoCDwC2V43cg8LK;@G8lej4%_xmx3F7ivc02yZ0*0YT!fXJ#fY7l^Gl*V|kv z8$N_UJkEZM>=|}^_kX>5MaF1+`J)`L^YGfA>-a7`)$N*i$4Hy{nB)={`o?Ml{&N<&T60V>u~cOt=TN737B;cL4LdFn4EYhgay}qy zgN$6@k})#&@5nbav3y2ykMTfJh*G#{oTgO|-gG@TN1Jf`e~rn+V@TAG;K4BpIUrR1q;=Mly)u|x0{>DG#bvEys*Y0Nk~-mX+A0bc z8U4)|UF7bYI1#%IB#fOOg?_h}poE^S*{^rYv&v>;Z{e?DZ4s(mI{3=?*6)NL)*6L& zNrulV3FFQdP&|8h=?P!;h3sLDM*f#q%)I!WJ{%Ac;4j?zDV1S5(6=!5-r{=PzbL#JY#p2`ue+ANc=#073l{&RK*u=6&J` zd0Kb;78=|y*OZV4RCY$rU`S0&6-LprarNa0WT*A8`E8xU3Fjsvgt_%9dq z;~`B*anlrO2F~2(408-oNP=&CJPYrtkUsO1+TzepD8vRZP?To$58ihvqt=EdUrJH@h(LtOoK&G-OsDX(k z@KIS0CG+ic*7s7t$fw($(8;?CZbGr(y0ScMte*nQ7E%wtq>Y8CN zy8)!zBCxVipl#LvV3uU(fbo>6uusRX!cfg zb+4lTZ1-6ZdDX&mfU{(|_OI5@dlBSLQjasE{!dr`xcElfpm{z)JM=ab@j zS<3TKGB((M&gw~sKB6aQW-b+)?;`*gi zgghJm1azj6fm5Uu#IXuws{8q1CC$*FR}MU^blL(n5DeHB!qjD5!}nL+I9?Mx-!2bD z5LcJNo`sE91!|hYzh?iwt^1mR)s0wxte1=$TzOWe=$_WMmK~{SsFk?HC1C$kF^@P7 zIG~FQDgJsM0r+}+7-uK7h*gb2(hp7{s11V=Vv;M~(?ytSepk^N2rw~-0JoTK3r;6Q z$73FGfaPm5*+uy~mDgK_Z!6P7Ph)?4rQ_u_LtVXCZUC1=(*HzPW%Nk8Nx*%M^K8=;M`Y0@zW zS1#5*Jb;Ks!E#gKSDS9p`@itrTcUN$jFCL|Pf&!Ln3T8@a#|Zg$*<}uq3uW-sjpRTmU+VC$cA<(6bl^Z_Vfjk!BE3!xa&f<{t!c;adBQ z#S|b|R(CNUI2KaRd`WRqrcl+p>@Xt!(i*xqkPBC%Nu2iqEY6f;+BE?|$jPm7+9kONBy`3nc*+Hb)?>)B74&)id_`HCn|D zz`8dFb~*?%z;Uq`9sHJcn;=+~2Yb0SUy=g@$1DTl8w=|Xpj_+>;JguU8fUZ93K(J8 zrI!R|gi_5X+qT?08UOFHg+`pBHZ*w(&BQ0|B?zPRvDEl{UdT^Rlu~XbuL&t2{^!E z*^nf>-+QD)=f7cW*ADud0bk%soK|h?7XCY6t>t)uR>l!5>^uRlic$pNyndyqI7DKI zJl6bx2Z3|dej=WTF5pQsE~u^_Z^_x_1EzWD`j)o8%Ce&+t00u+ijt%cPINk zNVqReWWSx~L~#_wwUUlGw%CvwhT!=aw(6;v-Ow{W(K)}Gn0q651vsr7e4Js$ojyyc zhR2a=v}nP?i<-6GC$ zl5E2CyChZ~sjiEj)7osvR}!vk1f4t3;G@73^(^Sq%hzY*_rf1VqE%%VS?!hs`S)zyvw34+&g#poRC28=5hT}zwU9GH*Qu)IGo0! zUN-v3A%vdF)fBJt4WR{92Xiuy-JGaoHE)x%v|eT`)77H!-5_CSU3vKxTquh|-IMOk zPI3)=-NqZT&|6?g<#-&yp*X-Z)5W+0Za0B1A7BWlC9;fK>A-_~r(S;m2!gx#vd@-| zJa%NA-|^mwV4tE31ij6pqW;%ow^$2>Ym$?Bg!)Iln~B_C&zdG*Rb?oTA6M~qQG#VB zs}f(&tXgO#={IF8ENs}{5)^UMhT2pzf{hGm@y%&;>w?A$b?h_hL{kkpxLpXW=@WqF zqFb(JQudVe`UF?DwNgO{EFDP=^j?ul{-gaNsAQf-2=)X)dNHSP#I-kETrV@4F$xKa z&bM9?14g1$A%ZdeeDFn4F*!$VZz~Ehdvt9!1Kd1Crt1;SIN|5yBkLWm$P>O8-bvN=NKPt+G`)fFAhspG<{A%xQXxlOK0@p@6dM}I2^ z8+NjL9FtZcQs_@e77Q*`&s$FDoUu9=yxc-VT5|qpkiSMdc@}{{UWER!W_qN6ni`_{4p??6{nN%8*O;rRS z-DSZD315;Yd#YdbhrRe>{QVoa1^C`ay+~l>oagrN$yE?@iOT+SyO6B&MYqu_l95;2 z_f_Pn`%4h4>+1SYcn+KNyRN**-ciA|ex~>BVF%UIN%m&Y8k|*A>v?%@V8*`c&miKR zegvx4`J=J~3wHVoOBy*!R6T-;7S;4g-ru_+>1kSEF{CpT-TlxE0o%lm#m(^NF!Z)U zmqn8=R#0VU#sh8Fz3AY^bF4-LXi&pG`2>!E-!y|1JlPDL(fkfywZVHk6nP7`0N889 z3&b5hkKXVnwS4OZH8)X&DwB9wC}=JzL)ys*jd#E|=F{lPuQA0C(%oaoFohGA1+D?$ zY`*2)YM1rZMPB*gW#9?~=(!#>Ni(y*6J;A^3DxF1YnwhyaK%00PjuU#9-+d;k&jT; z;%dMo zf&Lj>u-@M}$d{N;q4V`7bOkTA+uG2dcD1OMYn*Ds6FvT(kzl1S4(%hNoXxL@ei&np z$(`9AD;3NXu?8*f3>TyEPt$Lqt*UK^UACyX;y0cm0Aw9vWQSCXq#pkl)J(V6tL^4X zV-}t~L#!^PPy1!Ai@cnNypUk>Rq0XnoDZmNv*B4zmcob6vsiutPgDI@%Tk$>2+oxz z{LX7fO%%VGB){fQGAGMo_-KAo$fAEJ{9MIw@WW`!E;w zYa%$)zai;GsWa+DoT3)F5tVtU>jD2{`u6T+)B6xIfNVMh+aW!C&hbQBGP^p2*|U4pE=5?YM=bvAQjEkj^1(4aN&4Iz)mwi(#8%PK1KZmk{tCi z#K+ZGfk7`JA1A@l^-Yr^O!;Qj!|IcM*;%**JrB?p1R{kUWCUXcKRzUk$CLTl1kkS2 zsG{vV_%-VD6J0qWYLh^N3hl6&3IX9btSY-{DSF6^m0QaK z20=Gz4Y^-Kxj)$xI=5uIxHen+cFTUPD3ta1svgpoXwXi@Zq(A4%n=mwf=w=vTSUhVST)Du{1&M7 z!lF*lY@JH@uN2NFAmKY3j@y5$rVxT4;Zcg29lT3DHk`?h5TQpQHYiO6=SL+ZI<;_5 z)gv~DLDWkTCLHG3Dg@d{YIjVF&&TCJ2&q@f|??s>DgvbTn{^AXFcmoby zH^I+C#LYs^LwN#FY}gQiqo_B~WqZ0m_&sf#m-Ju8{0OEa!t7W0;(o!LANf>2w_7{O z^?L|lR4lX7w&C+tr6$vbSS7Kp`vwb0icFBJ6M9fDftQkn_bt$Qk$yIb{fDq`yy&e8 z`a^I(YE|w?04sFGt}ZEtSs8xC5Y5e(+~*`t9gshh#5^{jA)rx&9ZHBvD-6r#3d!xW zur30z1toGqj08dhxJ5Kt8Se?_f2zxd#&3TN=J*8Xf;ahKfO+VT=c(E)k<26@O+5%m z{LhSRfR}`P>yQ-nN1+Trz+M3kE=8hYi8u>vBuGFzQc_mi64qWeA_qKeut=ENb&UgG!ix?~T1g|t}EU-epy)i+lcJ#W#(rR@1rw6N2s51k`X#Rk!o zetsgHHL*r0G$CB}PO3}jV%XRxMLjx1wazf~Nc-|Yb2NujO@eM`s==**y22?Cd%M;c zSaJzNKAN*W(g5^ak?Pf8tCr4lN!B{Dj?Tk5O&*8@Qo60bQLt;_NqXUYe>1$q_pa`< zmL7;R@k3=SX!m5Qj!d#Y?@NSzrgO<|h{U=L^(D?9f~hyM%hxdi4^&ZHgcNync#mCL zp6m~|c;BFqYmG2bmtJ}ni8q#bG=fIg=) zG{+}W>0jBV)HdZ5(v}`Ks6W`-m1b9+m`hxe=wRr572UPq3h-$wga}iwh9fU9H{gNn z4;xrDnctEklWKM|b-tW$^3IB1&PGCLk^mE{30Iwa-as~`MeXmYpdo(^=q*?>njV6w zS~Hz11jFS3Pw@V`v&wZ(AISvW>K0Nb2}=M=ExJ=6Wxi zis{O~AN8?Kchy5DlSk}`VFX8;zX~XAc zFJVc)0qNdhdA`MEaQI?V2RFKcKb7U?%Q*R#uqs{ZTS{M&ljq-rAY%F}I3a6wJ2=S4 zk^J7o$6$l|)Y4Zkq1Lbq^Tx9*p7O{?&~oBkw;6e)&H+rTM!l;eWbfb`V4 zJYhs)qv4(1YNBQL*eGXBg{H*uE>Gs93hKU;@$dhTgU_l%R|#;t+(-*p#0LZXs;M^# z5Hr{gHx#ET8uoNcV~LhCt(Op&$xM}BU0MrIZNxkr_kk~qz0N~0aeT*;lk!X7r4;lf z^?>0r-eM@r4u9*LNgBBX%9nO@QQD3DW^qFm#?krAh7?A{JO7vaTZ%RWasjHM*$=4d zCSGJtwi0g-l2{0py(M3$_?&yG)&0X;lN2w1TX~`1_91&=VVtzWO@M$Lxu#DSv|XcS ze5E(k&)3|dcclvXPI&KA=Tj`abT40wTX41aTsk>uBa5y^Zr(6cM-Ey^A`V9}D~tMG z{_?DT;hhv>^KmC$v+Z{3)V2QP|E%6!wcI(PB_6|YMD?Y7tklhbUk(ys)-t88yn~4` z>$#>LMv<{?(X?6n=m8~D@YM0zPs^~VEH!-b=+U0c&Gif=pf>-~{j#0QMETj{E-*(~ zODF9DG%O1th^FhWYv^N+Nsywq8D2SNB5*OtWH43J9jd%_Z@WpgI=>tFC#lL`4f9+? zlq0_ks^5~{0Q7J}-8J93+n6T^Bk6sg$}2Rv{bd$i_!m0q7IbK&UuaU4a9|%8J~lCW zai^aC+mqp4M{-=&x0~!u$F6hNL%=w>$wRSX)`A!5A0FEID!A?j-B!?2#tV8a)a>)K z^^0S##D>MSK`dg}n^Icgvxt{+ zJmHkl`(P&>V`4GM4GCA`?7g92Q;%^LS~*_U$KGe@-;(L?SY`l;_+I`yI)hd9h85W_ zNY+bV9#{WtzvUm7?3lKkj?M7yU^AA@H28w$bTMM)CY0cBMbbecIVc_397}z_-`(Lj zt0g%Y&p=aYLnC41eoyER_jNJo1WAd`D4;#-N~a!^{EeK*Atblqb_f?f$nPZyKC9QsPKAE+Ler|fO?FXym+U7U|*mrvJYF1cA~*zEVG zGihwy4U?b<9{Egys|=cx1ikq%1F_#jh&~gKOdm76m-(r=G2`yo1aXgWgq^~gk9Ik!5a5Pr*mP%feM(i zl{|_(lfBB<{t6lKITpm0w0tva8I2a*;X<|6ON@Vutz@DpP6wP?IOJ(G@j-%!%m|K|N z(~g)ZfsJV#bfWU>pCDIETp~F0*C1=#0_|K=NOo`}DS!qGSaN68@)nYxS)7aK-$pe1QZSTq$~O#vFr8Q z8I{9PJlk2oU)8tlCJG^v*T^)n!^!!;{kWbi0@+dd17|&&*_4zayZL z^mH;2e^1S!^1l6T4;Puw1o!hqInDUL6C&1$LZr_vn>>T6lUNKK1$i|ovKnEGwCZ(y z$$2WIQ)%~uCOasfYtKN(BJip3^_Pr-!K;nNGmy(m=NagI6N-1Y9~9l_w7`Xsx)HA> z2iJD;*(l;NupOU<^kaM(uFjA6-$STFpOQYt1di_RwJn)kVOx_+oqm+hv8pm>)1}fPpqb=6|i+h{Aj*Rsemo=Exr|4+$pql$LdB%Ev z55ij;X8lf!!~N+-hViaAlBt*YD;g+~#+$Ji-p(_FM#f_$HNuKynz_7Mn-q&sLFXXNumK?Ie{BP!q7 zKEen#FZFh1k+?#zbu8(~*uB|(>|h(l{LEx@;l;Mju$}h?Xcda4Ngh_Yk4<_GJ_N(0hz7O+HnhkRcFh7{qeA;2~MiQQZkK zdSy>0`@aPNtMyip;)#)5^AX03&6{9MIX-@E#Tq*O5Q<0 znUn@Jh~Vb;6yN9lj8r`oZ%_UnZXSOja#s$K;aE*U!qFcmOi2H6MPs_#m=qFgMsCZy z(pKw&3I5Q4pO(059pJ>C!omUf{!NJJt75q;7(1JzWxT7{2h7&#;U3813J-VkV-GQ& zpf;<%5i>Y3l|N&id#wm~fj`Rq?R(_;?b@^&Uy0aTx){%%c=h+*iZVTN>+8B(csM0L zwW-hfyD{4Vs0Mt0B2$^ve%xZlF%6`$o<4V>8+3Ah!d;Ig%d+} zG`0%++{)B1vtEdoha{T!Ewb^ty4EfdRR-a09L8K!)kM}$;gTl@DJ-?4_my4xK!HGo1}?uUiN*XGva`mw_2g<{D9F0FPV!t$!SrO=(FB6 zoaU3FY{2EWqJ%QphGo#dPlsE`om{Bagm(A) zbo|sSoxdJdcu(X3KD-HHKy8Y`p1yv!2&#bgu8U6K$ACnu0u|tG4QJ`5bww=GKklWM z-DY*=lmswm$CK&fE&#SvW6;3PfPD?W$&D?!o4ufL?C#(8#ZvhZ_W8$c$RdmS_f5td zeH-^zyhn_XWBT5qugjA+q~Cm&71IR9I2kKoO-e>?59&^qKXfr5?KIQ0Rqo;s{9u4Z zX7SkBBwuRlrmZ$5EQa&LkALnpfFF?;$zQqL-3}*Q{5_9OImKZmMpZ>dj!3%wOZaxJ zfF;`twWBO#|JBFyQ_h~JWagkvGw_bm@2Wp= zVtEwrU425Hh`*1q{yEdm;3R+&O1D`or`~sQcDCvJxXzrcA|$w84$%CDi2oNEPe`_Y z2L-O68rA)AyKnG72E-2hfm7FWQwhWX2d1AtQhq=Hi>Rt;ur8olAU{YMB8&`kL2eih(*R$qR(;d^=i%eUzLYj5X+cA(X!@>s6_gYMG24}sG|BGcR-~6Y5FAw)m z-v&3mgvY2uEDrOlDaNn3Iopzqw`A&GWz*e%XPhOE08Y+g@wNi3X||F>k;&xq`hTAm zBnUXgCfxkTxPLyX1&HcraOktXE@A%xxa=jMq}zM^r>c{@N5Q-V_ckJRcmU%+RqH(1o*tLl=FJ+*iYBH5^&?D4FX6{S2)`Ibhdvw`(dx22QHe_^KrUGK5PaUOE zEBN@A$z3nqrHiaO(uOb!NaS-VuCa2G2eSg+*GxC5(Zj)N|Ng%8LeWilT$13-g#e?lj48 z8`z6U?|X^CH=}F)0b+w9I~YJ$`ssS@KLNCsKn6nWcx!ZmV$oi5ftSb!|CK9s$QFu! z)|0XfDvE*M+Rp~sVG0!JU#MyNW}&ZV!iY7CQL{Cs%21YfALcU|g7lhGFCtYvlbXk5 z-oMr=Ut2i8}OPzV3vd?u*D&Bo5md+jU#P?)Pch&;5O# zgQf1lY4_7I>cz37r*i>??+>BV+ny??I3*+0?cL>d`6GEii%`|qSF!DO(OF+%^XGX@-T z&<<}}fY>VjTdYBqLEseP{rE7Eq9mK#dmxWZfSRr9CxXmh&I#mnqZJbj(aecS2Q_if zROK|H!@X2GRmq@OJ}1ND!@qA4KQ+8?O%*C*Sx^7t8Vb;#pXM^tLI}_d-+|`oiTisw zu?W`8wP8E{xSpdsnsX6CM!HuH5;a7e3oaWLW~kNEe$f9?+*&!%yb#HRLe4RUfny7D zWS{h&;X6o(;^PpN{@KOI4$J|y`1iXN@NAy z$Cw%~Cs@j|as2Ps;n`ibB_%ZhT=z_ozmPlg)c$Zc5Y(-|v5?hv7v1$H9(^_SYH)_# z+K`^ZU4nhih5Rflo<;7vsWvH~HpllLsDlzb(=&nQn1cIT?{T7OveO^lEYV8sx0;jk z>!wQ(8OsS+sklJjgaws*Z4Vs=HY`%U^9W(^KdBg8x5zMLbiqq)N4rU?9!ubtaAkdc z{WEvGV|QWVdeL#kf7Q7JEj|zt`PH_%;IL7fgRBsF`i3%wgtPd|x)KE3xv}~%43$4` zkT4HBLSM4B4l8F^!Zqm+Fb%oRc?aY>=#eR8p3}IyzliH81b4b$UXXBt$2bN>ILv}l zS~$j>dAHJ$-FKo!0HmCd>o@w}+etX|I^kL5nQdwM^!X|yQn&FZZM@IZJ=}eL4z26M zhM;v^M`$;y<5nMJ4erdz*inNRfvdR(yMGT@Q^fECS#UkFAnZwM4sVXLo^d*hpI)or zPYlCtqQJ>>X$pQ<H`5Mc5Ceo ztGvuM!q@RFTJwSz%Va%Kmet!KQGu>tm3&KyBqGEk zrwSZBgZ92D1X7wcM_B{AVuy?qtAaF4nv);o-QSOS47^UdK5qxl*Q+8Un()2+xjmeI z+&1;k`9iW4k~f)+$#6oy_Ng5hg!!rLm88?8{z%B5_ocq;gvuvg4{ro~t2KIM!-KO2g3Svz zS#!tK7k)Z`gkh3AuXJfdFN+z_>@Nh6Xh6Yz5~B%U>L6Ud$G*<5CQrYVa{XiP^Ae3q zh3}mzoV~j2J?@yPfWIooG556m(|Y=eY4l(F(wcy)Mtjp^Fk{zOnBh8{9zb(XhPh|k zEivVT0+EdU^R*5J!0qxr z8}C!<(Oh)+-!G_AW8W~%9n-H_=$i7r#xXeu;*mOG;ih9#QfQ*pkCvEp!HTHK}6*)b!7;Py#<*{vrB(Lowo_o%}3)K z8zdxFY!2PBsRu#*K!JprY7#^g{f`_Oo~~gJDF|84{Z>vzvHNp`e$vu7?+g@@Pe_aH z^DW)P##JTahi7%P&qSX^mK*a;=_xNSexn_(hyxzjqaDoeUxvI75j)F2aa#6zl zbZl66_YID{Vv;enxv&yI|6v8J-=G5Gl>yg$Q+}=xDOA4%I^*k_eo^5zVC51B=~FsckV$cDTf>UcDdtgSb>Qrk-7apl^e>DU9+IGScpS= z)={6BXv}}8guQ+3Z^@5eBnLOBvL=5$FKm{?-aoqppDCnTNO&A%TNTv<@c(WPpwhBU zKE+xueVeXWWlrWZ+URAATx8#V6KO_dL2lh0a-{~%@nmWc?H12j`lJ>#WJrMFXSX6?32_qKG2 zrQz2m&UYDOULkBjQ^C1X9p--AyZBF*KQ6l@0BkpS!gqQoC;l?Ao z?kd`7f!51(9(IP29uaLYJkc>WfM`h-@J^*>MEJOFI2WkBLpg15@l5!T4m`U8_^=0& zert6=y>S^p_@$@XwJXVgmKQpNVbDCK=2wa>SQ{>Mvg_NxX@Zvlfa1Skhye!KbeLz* zBbR=R-Rs1k=J{WIvO#v-2xFp-YSMJ(rT!voi;Y>e)J%8ZKTIRK)7t5rS0u1hT(94D zaiwjfyEOpKKpjqLmgF~7A-F&EZb}_8=dD*V;ZCq%9C5EPV*S~~tr~CbFbg|#6OEAu z9#0h%{g*DE27s7}YvW=2hB8Na)AA;B0wJHF|?}Z{4{UI?y_VIrp?UADX zaDF*klf1%y>9r(clVCl}E%Hom{@r@wd4e`>`}>4pXvx4&vY;>t7OUfR?hTybVIP{oe5nV z?Tap{RHl~s#b~x<{im!RJF(n9sa+Wcv}Rjf@9hT|6CNkxJUTr<@6?kBNKrkdEH8i0!e%q^J3qS6HR7uRXhVF7N;UneKtdqLQlq5Isf}Sg8 zGM}z2`DjVK0B87Tud{}=-ksO8;%K>U(&9A}NA)ggYiW&YXF2EE%KE0fVb0%|l&K`QoO zeTT*dc)1qkS*6bXRPjorJa_O!&_Z4PYNj{$n_r*C5r`8f|D2ZV3FL5BMcY*D^U#!V zG}KqE(*!w-cD=@AAJ#R56yhmVKu~lRVkUpy%R~eyLIx5ry)wzM(rT+=P3@iM0LdCn zSkv*WQwV%w8AKANcy3x=3;Wa8FO-cukYK(7Eje?7S0dmA3~IdSSk-uZEknp$)(Ins z|BhnzvmHodpi*-T>Rtvl;y-f4p41A}3yWjF)Go z*nv^RCW-GR)d?+)CJ3_e&;=dn+8do8{LPCHjw9)^uS>38Gqr#@EkPIIR^LIKs2@2U zYp})T=Sk0q;Bbc=z=$hsvBAJYpxgnXT)MTS!!yQIlP-OoO0P}*zL|S=pmH~J$+=CJ z%v)MVK@~oy1YQP?LF)XV%fIZdnN@k1D740Ql^<}_1~fB^qOljZpY*MWzr`OD83cV( z9qS&jdQ(zW+2hL1>%y>%Echnv+te6%*RZgIM>ri~q&pd!ar7R0A8M5=8xM~u`zU+A zE^qB}l@6vf@kiZ6Mf@-wq4G2k8<8UT?)t6l4m0g<|IN;Tu{r$0Ro~@#XDtZc0Gd&3 z?$Z{tLg+tiWEV^J7MR$1KjFIdg@Nhfi1PzJ;a2cux=o}73**y+izfKg7PuVj9F^8t z9UFsT_^?T%dg}bK2&Ef+uI`x;YE(ktS$pQexlE>w_MgG``Q!fRi*g0Jn3fM?62XEpA-M! z$-LaD^4YuXc8Lz=-aSZqu3ZmaF@S}(W9o*>;rGXwH>}b33EdXOepjpm19%p$`>KWp z-*of9I`*P`XT6Yf+>$L++Jdwry`zyEE2%*x)(n}!;S9bhMab*B#WTU2&K)WB8y$9$ zLE2a}(esOzIKN)g<|r(4;#H^b$J2hc-F7ov-BA$9+5oam4elQ}wS^{KGkKD3OO{#R zE}Wd8iq=@51uf8=jD_xOq|R*JXTFj{JdE4026DS9qj!WaMbwfvtZ<;k{uAQ`eB?Cw zJ75s1oprY9U6xa#eB^C3g7^ahOPj`H$TXPrn-`7Me{>0=CnDXw;=JtQe{ar} zLy_2vMjrKg|2ze+Rh}JsnoWw7b(ZIuC_;b>sH0@fAp$!2IHF%V;5N0#S8OhMkIKz4 zwHLLQKPu&*SBko>zk%3?DQ`F$R3%!U?ma;j-v_0sDMi;)WpT~_L%f`-?hnE**vpK2_o zoil#;k7kd7w)X+6>=W$VA3a}lsO3Q=^^GZ_WKaxheNZGWEK)Vfut5^v-nuZD;$XRV=N8YLYU%DH~4LP8d;zLq&0R zbU!`k{=yMa4{Ek2AcMzrNZUUJheJMl90_{B=Z5ZXR+H}N@0}6U6hFxKzboh%FG`?dqlnvP+AKc^^W701osCxhd-$Iwi!>6@j4hvoK8Sb_~G!=i;7 zvY)fUVo(fUuLj?E0%6bBrUa0v=3!RG;U8)@L0stG>Zw9&?~7xF)azW?7BXNv_4PNd~(dS4CohIG85R*@D5ThSzn)_gV z!Y{B?ulREbLl!D3DO9W!FIE8C-zKT9L^iB4R_<$CuX_UGbvAanwLHxTLhs|UA#PU>LUa#YUO&!j9B5&EH*i{6Rr@bq=qB>)3j!HIEYVkIO|;Mnh%M*; z0hU2&zD=IZnWJE(FTD(OY5;-~eH)!Vat?HfFSjhB6F@{kn|U0N>WS@_LDfPHS1 zO`A52EV4J>d^0=nzyqZ^Gf5uveTJR3G_sBH4ZBT_c{#TO-= zNYcl{X50|mr}qijw2!Ar{5Rh$l8vdCUUs?g+-uLhvR7XnBWZ=m)va5%@%m+`uP-t{ z76~1HzWh?r#pejRIO-3ZMrltXg$uek5X4RYF#s$*vIp%+B=Cc>k3ACjSZsi8jg8Lr z>(>QRHtpFu>ysc?2Vw9;3zv$mAT@0M%eOx=3pvCSLMii{zchu#+BKIY=sz26u~oV` z667I=ctR-8APJSGuvoh$8Q?YhQ(BG!fe;o?2;~_hq0$uPa!)Q_zD&^V2|AlPyv4`{ z;eS2(M3hGYFsp|?fZv~qioa~x(li^8;op}HU4u$SoDn{B4( z+vEXEMA2W6@y|Oyu*Ed4}7qa~G=M$yaWdn(ZeHPHL+Y$}?-%*;+#ZECr z!)E?~7LAS#*h@fYJ}SsK258uqUV3S^fN0o2re)=rJMFa7vs-SvRnV?Gb?ThW!BGJ0 zcjPz*-(fENdZDE6jn39w7mvQpUHJV)UJp$|UQN4IcIcmtv=q6T4Zx6{Inc7C`bBGGs_LY0?xyie@?TNYWQ%{rmTqY>Fi9GC3cIn(jklf(tK@hfvG@H_@+)G%xD+&O074rBGfHei;vAMBnB^GN$?h z+V|qci-j%a_ZDRQcIX4*U?|Akcu-~k$G)`;ed{yqTj7ko)w^9K(G&1xLQ!o(Z17lq zi3ow<33L^CjMC)VHP9PDh=?Bl1{5QdR)0B46Luwy3#}_=3BCn>l)mMUf6N9C9-MXE zrz;v6k4{K9z+1mTeHkDu&!Dl8a+I3>5@w>$;AP1RE|uz?DEU9>#n<2I(^Jxi*0c< zugC*_oa7KttYBCexm3YZK55@Ipg}sy#^~m1Kz_q$w+Ee@T|a>+=~O1Y=A>=DnJhr^v+> z-Ce~z@-gv2PWa#_&%KbE;XH+geB3I?HwnT4Kc16C=dPNTr^v-6^6{ND>y3w(4?p}6 zJj(&sbajUBDS;oRjsOYuu!PyZM~)gL!g)Rt^AUcEeFKl>uzWmPg!jXU5hKuMmS@-B za6S5*^(#3JVcfW}a-6Ls zcAz$k0}Ap+_@k4q8`q8N)OE)meXP42 zC$8Rq-~E!t@)PNK_Ut(V%h3Vfqj*F$<#KU_AVOnt0v*w?QIYWBJBpNLqX5XsV;nH* zAx#TM{YfXk1^Sy#h)x_%R0NQr=;!6t*$DcjNS>hPiK<%wK(x#5dnj4}nLtQ4pg?!p zwX+=2!0&1*U)h`f2M`|K(=!DX%m)kCwydqgG@_s(@LLqi%;FO@p^1l~saLPA(0Y!b z5h^m#DA5(Ms9ZcLx>Jz2L)p*xOaK%J2@5z5g5 zJ@3LxzWqrCFF&Z(spqb| z@=C`eGlEq8dpauddncO$WYWHc5ae2B#Xe*j`V8(l55=W*kx-wST!s2APD z4>XOq^4<2`H;7-htQ_s1TC4rH+Nve)pXqW!F^`sEexjq`Y%eJ%OM5?%@yCxF?{N5} z8$0$L*SvWP$xXfbpL-7OwOS4bIJ(Vn{{hF*b?nqh>`(oRo#`*d7MqqNlZ@Y`+ z_&d)1AUZV>nva$|b2Y+(#E3w>!MRn5-{l06Mh`nd*d9TZMWIhz4!k6C|Y8F7Sw{G03)>i zn-jSjDAD*FDsfB^{-7f%PCmtgj^iCa6q8~{*prJvMvUxkP>3%EeIBDja5c*3t*4@* zz_lr#%B%_b3$S=#N31S=>&-U>&HgWcxlfR+2{~2Pw#;E#7$4a?<2&2-Lx*56-3|J6at#0>*1mlQe;mCEzWw&wU4sVo-D|JD7VJ;7Z+yFzg&B+_`t~7* z5bc{z%L%|@_scVW>Gu2SPujMqDxhz89NwZdzjvaT&>ej7;g$S*(?YG}P!+_(nVbKHTnmgf`Y$9zFN&5NcUyw9( z8W|4KgJ1PgB<+i%@$6JluXGEdLTQ(N7@Ow?MHr=}Ihm&@>Kt|JU zyzvi7z5}yYUVSwblixgf+Ar@v%vxm6Jo{Y8Cq#jL@PxdT9m#F-<2B1}yzwUa4#d8L zI=q&Yg>)*VJnOb^H`O7C4W5isYN{WLqVdCq4ac{vMnH9cDU^?C&p-bk={vUCis;)w z`^L1ial&Db2{QhCnU1^my6bV;baK)_{f0PcAm6tp0)qTBPVLe04s*Ic2#;!GR9u5Wsor;pNkwc@5rkPA%8G>rTkeVm;A&$~vAP#((hyds3@ZY9Q zB#X~y!#5F{7k#tXHEOJ{qZY4Z8PKr5%AsNBL_o&M%3qE*oJCls-KbIHqT=A#Xf2C? zhsNa8w-kFEI7O$fa{2heCCiu_i+;u_uLVtI_BZ``A}Lk?hC|{?=PZ`b7)6rCDX~?s zzwk}u6Op(ON!n!d8c2P{Wq6uh%=#n1Yc4Uvlm^hnF%{XcK|^_SiF_iVAXm#tuEpFV zee}hgO24x8ublE+Vz~?AquAifQxx0ZZiYFtXSps!X#V8m6}Eq29GC`AkXPu*Q&cQp zDq|Ju-`ZcHTnn3gZoA-H&E`0LcxCSYZQZy#HoQpDEMFoW3pPOunY6 z{&O(pzWeT7WE)7XFqP;Z%CdR0qWiCuY{r$6U#LGiWNq&S^4ZpB&YUS{l~vULR@MHg z{)O@_ZT2kKWzRj_N7Fv4@ct9ppj7ZEixR(iidAcWcoa6y-s3gU5Cddf+T~w&k#=HMgrrWUeLKBqJ|&%L7h7kMT0uc~|#SxSCY+Fzmms_pl0|8m|e3deG-NdGk@ ze^u+hs`~Rp;w_TFr>gd^gKxdeXL3^gdH->$mz%j)uKumR@N99ZivC!Yr)62q?T`0h zDfv8-q^ztA?ZF0DujOi%Pb*M9+no-EDks|13p6XQA^8>Ef9Mly%2OF`4HO|M7Dnv) z_&^qq@tU9Zdf=eP7z&<5>puri62 zV5Ze&f91qqy2|ZegBz_%zT&b_X(?rJvIq`U7*&gCRH&qR`N|_96mJqHT`5;Yl15a^ zueN`6`>VeH&~aFo6#5X~H!vK!jNtKcNjT&y@D!1x5!Lgs>w4MfPKB0eHHeEmgc5X?M?I2JlK2zY2vN*iEk8~LR@>iN zP<8t=OH|)~q4x-ViF#rmBH`-(XRY+VG6AWkSBt0J`~rL+Je6qJE2<315c7uo!Zd`W zFT|!a_gA7}-+!OtmZ@N`XyjongL{xFYYeZx_NtpSX|jw~lolkGkWV5_&k6os^2107 zmfu(YOkmbwS)i#8n`Q2iM;>wa|Mh-B5$DHVEo{&-j>M}$K6xjcMSf-WU!D4IsPehg zx9=%^VaoNp{cQ;L$7Xm%eU@81wq|`6uGszn#B!g1_Ib(n&-b0rKL1?r%L2Zu+WxuV zYWgSBg{QD2qcwQ{EttOmb~(lCrxGcTZf(e~$o?__Nj0&vkM$)5l-Ei_1fcl-qR&e*Z8FJQp|fdP3zbucNG4@PFAScC%kcVJ)8 z(?FcovMWCl&zVE?W|l=ifbWR4{;$9GhUep%tfKteZo3_Tq>2_zhLm~@_QaSx>d%j- z3=<7oXed%2KjF#C=l&q>k=S;-ZQZ6#o4O~SctY}kfgAtsyKXEt@}7FisorLql>Um= z!ZPYl5rQ)9%PFEOkgr*h*B2}BhWv!1FH=Yjo{HoL0(gGR^0~t5`H|08SpPp{`v)Xx z-`>x_{uOb)EpfG1Sz91Uj~bcNU-J1pJdf;*Um~B+!~8%&z^3fo-Ss!zAnd|VLSu1h z`}@|A#|!9I)czj&+uyKPuC3gE+q7+q&7WhHHOloM({NvMFI`*Ea8rHifbijV>$01> z;dd-&a<{BNK9;Iub7^zzq1wS=i-dstTK~5dHsKl?_S-ewGLGwXFiFYF09q$r<)k$zqjA0i5um;11-NDp*aJ%8Hir)9VKeL#%2tc2ph zkq{Zsu(2=b)9ly3{x$X;wb85~D(0n0@@q^isvu107=i&tX<0`2n=gT__WB!d2n-Ez z*5-aWH;3nB>{!TDe!F(~WHvIFFL{ucrjN z?WB`W3Teu}T*~?XpdTT^=!#3El<9A$j-9fbZ@C#fzY|EJzJ2?KWNf<4K6w9w?8~pd z6fDhq?m<5TrUG+@=RxgTX9ye^_uCb^isa|oV4{CvehC*cDGY~9#R9a7$Q&~c@#EX z5;6H_iiYjWMwDhEI|~~2-g{vqBR7T$JCBBaoA4q=(vd)nUJ4*jL2phrP6GOz@87!N z6M|oU`DKsLTo>}XXLuc!aHltoN7Jk?}apD#>^7x(njPs?D0={V(sUjn!iIXHEKKFf)xD$ce zt)fhzr?8-0`BR>KgnJZkAOiHvn9DA^6g)f{HX?`xNBs%7eEzxTnkX5h@xl@M)_d?^ ziL;nOx`^jwVlvUGiI_}ie{(&K>EY3^7i3oeX*-XG&Epsp4ZAZy zN%`hMC+N){34uU=*Ij!pj&j)BSSsQ*-kd~U|8ue)M@M;r?0lO~V_A-l$lOGW7BuW3 zcgY}8_y$QZQtsd`bc(R8XwlS95VpPkr=HR`1I|@;(M1=9UDIY7VbMZ$iF8FQ3ZWlzJ*RUUp5mM;!Vg`&1<~unsCWSC85MiBxxSeVW`$yrl{87 z70|HZzYu8AW5+7`M?k|qRMD_o07ct?ZCM2JYX}4Z0tgcg`_SH0*X5xG{a{MV0FSga>H$f4P$etT2^ac}zvo%S57oVRlQ>_#~8g3-hdW z7`$`}-Wc{u2`PW|bEciT2z?2B0KPcy5NX zMod2-LO01HLO+40u+vXJJ!^!r_U(JBsTZydaem4dc7_sSse_)j0vyBttZiWW`10~$8`%y$AHo&-f3_w&_2!`{=QXn&eR!(NtMfBp43b)Fh8ZLAU> z6KQKfeNL=xsdi=d)X(s<&pacj^6fDle#s>lGb*@ekap?Cm*D)Z_5pdG5LE16Mm+K; z`ik#Llru^&AFlvr6@B*IubZ5;#ZMLFvk(u-bR5KqhRrE=&V-m-FrR&E4fL&lMBj>& z2Dp6jdAp`FIT&eK9@rya=$Teh%ON&X%e3#25<0$(#4o49|KT18cz@t zh#8}YJGBXM30cWF8-T21=bSLmk8w`MJ6?ctkm)205bDY^;RLvpM$IV`M&+X>>e306VSW!)xzHAITs#b?RhEdmpd3 z&6_t9c}(YFbnN))CcOW?oY!GflQX8zzyQ`r(o7~h_8~)u=HeuPpW-*5a(SiZ86cRH z5Hi)Tf%u8dHW`DKxsRbckh8@G7Du@NLX>F^i<=-iG{@ksG1GAX9PzVKcLI-%7&;`0 zG7XX_=wDI&8?SEDVyrWC2)C^vlh@j-6G(x1~;6DR3C#oFY31|U*-u)`_0 zS?yZ2v-8e7Hv=j@uphU|jyd*d>3{((g|n;d=#=to8m6CXTRz~X0S((4M}|{MF?C*3 z&-n_m6}P`=Ya>o=p87SN_aEh(d+&n}WwReJc;B z0|G_%_B(pUlI1VHY6--PQ=C>|{Kpl?{ zzy4|rk(mGa_&bS05 z_j1FB4wo|EtQLNsio0}RkT@W6vo4DN=J)k3PH1&I@3doBT{CU+6hIC&1uTdjbwFO^h-yIHMBcO+<^SCf zwt?Dh2-GIIS&L@w?YG|n2P==+92AJsSgzJ%4j+<>`jwB@5m7>BbedQ~f1eO8noEN} zQu$&6{%lzK^{JbJ~7a-2Ohp z(rey-6DNKsO>`{K=edHH@Io^``_%2QQwMDGm?$jAzCBjb>LP77=!C(>J&kfwiF*XK zy9JI&*i4%`esBLjqG305+$y5323FE-1H|xlZtJaDNh!JF^{_*UhOK3;f&OTdO`5o0 zVpZUN`~TFPbjpd6#`|CIKs_?%iN|@;Kz*Dvuq_i-;Jp6YnMcb&oR_$6@BiWvQDZo6 z=AI@Hp<}5}PXg-o^OVqwsMVbII$-|;1P$9rciwqtdHv*lxHX=LFffFtZ&ZY!Df2M5 zLkrNU`Lxj)$j*&`&MauyIHno{hd54K-6E^t$}>g7-ZcAk=BJ8=EsGE^w1INMgbDJ* zFk{9Hgvt}dYoa$3o!Zd1iH7~891N#u*gg$ROpkFui{5QFqG1y)x{r_7RCxok6Hz5f z<(q!O^H3l{C-Sbl?mC%ECz|y3+ijPjF$Y;@Gc=>DC63>2Q%0NVQ;Q*NbIR{f@C-Wm zf{w$Sdl!6LYwXLZ7UQpJ5@QN|MHGlgT1S5o#d@kgQLTBRD36s^G;DmYvBJw$>%R~!`lcI+qP?-8*N1#w{f8cUSo#k| z!)_+`HF+9al2ugy(r4L;sEPb&S;?IXa`6(U`SH+~b?Vp=eb&Q4mZde@d<&dB+$nqL z;fEwIX6U#X%;OadUGR4&+Ctm_zvHn96pBn!sjof zCr#}fAgR%qf_Bw-zTJHTMCe9%DpFI&bnX=aWV&m$_0~#UsK2rHS1T_T7r1X0!DhK~ z8ehF~FNOep=A*&MB1+eP&i)n1FNhAMTb24RY=0Yye0=k8dtgt?M>tS0e_L!A_U8s^ zz73^s?FEWzyD)YAm3wx+{(6Drv-WK5iT4)KqPK3{+Hs#yp(~`fblO_bus{9;Q6|u* zTF|aZI#$jK`ak#Kh)eE2-aq8agYwLoeBOW4XUr%-?KT0Rf|vUNl_!3Ex43NCcW%ba z8JL|ZlXT-}{EPa(kf5F-`doUHuL7|zl6L8WHV8!asJ79qyZgT;hBYaAdh<&Rj3#ew zKAl8LshXzrg=wO+GErj7Ywal12RxoB`SBnt4n8Jd__7A+P@blK@R6YQ;F822PvyhL z*97`>3;HV$z>>iZxl(<|s}@dZ<>2GTXW^U5AbmRcq-hoDUlWMX_|_!JWGItcJ|mHV zZSavO-)L7PpFC>PW-@>>WG=5i2Os6>)4l$w{6hV$^RG<4Nvw+gp~`-A@@wF5H8`)g zT{jf_bGnLCYtiM~ALC24Kb~Z~#par?u>JA=YmKRMGg;u_g{1VkGz#LqlM`4F^h{Ix z^YmmJd^D>PvHkP@;ou|j1@d|Saf&~WRv+ct;FBv3l8J`hrmQXWQ#p1Gx>WK0_r=MT ztyKTR_NSjD;8BstW94L&k0c$Lu4eg#`cnku>p95`iBl6>QR>yLixc@GvaH1$b*gnt zQy%iUf&>~&)I)ARs7RiekqN>&Mxlt_5L(Jx4(L@^+_k5RDJ)8U2#AAK9VO>pLEhG+5p$1 z_9s(t9Ocs+O-t!p1{DyNbRA}x_Es`OdhhT?O$zwu|ReEE53Ouh{@e@xj=D-G`S`gD)@m$tu604^x}`l z>=Hp$oX=&Mjje|91kWs%=<^#5?|6PR6J%$gVgD6q*h}%zU1OP%l=6dL5QqF^=$Ym( z%pmTSSBQo^QL}iOnBNm2p7PC6hD!6X-$TA~t(yLo$>&E`>=jxm{a2@amTzV4UoD?j zTXFqk1(Q3aufLDHjn~KaM@@d{_0Po+r}jNn?;$Egheo=--T&p-;xS|TCoGyTtG0+W zW&imL=DWT;*+9gtKm8xDRmBAQ8?7M){r20X?uC(~5+mj7Rh5aq3l=VrsXR`n@WY)U zw(@%nKXL)X&5e79$j+y^`SXB=EwL5LS82Y4T0h8(1f2<3Hn!D|4Qxiq*=+&yQ=D+Q&jS<9{G#$ zur<<jT?N`RqpI_&dKo}jfOAsy!>3^3IZ(W zq$!gtlusL3VQ7C^mn-{#AdZ`2x&w@o>-qDaSH1pAl*J^xIBJxeJax)yv406M6-JqS z)y}J1V1H(=O8c|=uTWTt1eFhgur>Ws8EaiW1+N+T*s1TPPMwO)r3)N(>pS2wQdn?* zx$iz~y4>3Bw_mrM{(#Jpe0*c!89uk&f_#ZxuEp^t*qh^iebGfL-Tv6&nyX6v1DDcG z#r@3kbCYbL4)@>t7uOOxblZ17)xntKdf&bGIqc_g-S*oriH+V;^858W(+xyl_~n;h zy3U<82#hgT^FwB48&8?jC+mwkOfB z3tWSS^#v@HG{#2|sCyih;Y@c$!xm&`O(hC-Pea4rYp-kq(6BAvX@KG(7%AOVgRjbt zAR6|!O9jGWR5=W>kws)WtB(ZsK zMRpV9ac)HQWyt5Ukk5?^eL!mgqBnFv`{#Wp&fA~y)Zt%G645(4=CiaX3(|sYFDB;7 z1hF22fNb(7-KCdZCYy1MrUkIzsQ;nZ9Dm+<=UTKL$AEhgZ-x>#{O;i;`&LP$T>JAJ z6pXaB4>1uA7w^+>`n#6eAE0PdA(35Bn%T4S0Cu6cMrT)Fa2tRI4H_tjtz~W73L16+ zStiFZ;HFfkseC! z;0|rNuYu{r^niv9k-K&2qUhW6z7+KB9z@^v1yz*k+i_IFS6P24iy>u~3&ecS<9iBL z69-y0!qgE7p=r}55@mYxYCI$Qw(3WrICWNlMK8MWqO5S&GyzNneOpkizr(pB;N}@$ z{J$5=ZfIh1@%V^quDQk+rCczhj_-NApkb3oT28KXZ`#4mwX(+%w`J~ zEX=OE?%Hfm4EW}D+pTkkskH2?FBP%8$5Cb%(@zn^&pD?*>aT|tQ$Sc%hapm~<>;8A zOZd*0XC z#=tQnP;v7X&9acs^Hr4T#&S%-4n)I#?X`SaJzZ#ER#;qRu=ki}6_Qy3=;wbuFY3^& zxg3XJpv7eSz=IFUy-WWE7yJqjR6z9h`5$=Tfh3J+--gSk1SZC=5Qx{sn^=LR{@HfZ4AfZ!*WsZ)XMyeZJBd5#bw*oh0WGtw3>UVMgk zpLy&WGZ*=kq+-J2l){)84nFhPwMc4=P?CxX3sZ_`5+X(Lna8eCT#-*nDkdyWDU6BX z;4_b1i=@T~B`L?*TC=l0z54`IYeB;Xs7?|8f9`XjCI^D)t;J{Ll z7kBs8sawYZ4I6W*10;`>4~g8}%*6=rzB@r+b+*`|x#Z!8N+9*>vDwJ6aUIAbIw{<@ z-!8^?5KW_e0uvIHR5FqPd|7;!gYu)Zkm?lUF>kvB@`PtC$wSlw!VZxckb&LQX;as3X6@m{5QenOEft^BV3aKiStk^V~D|*46>Lv0MA{B=W6DD62VC zy?EP}wH5e~efRx;?svcc9TjpEQwREr%_fW&SfplKY>tG?Em@2@q7F4`2`P2JL1e;9 z>JJM&_yL!+iSmtOwfxm#|GIVS zIXwJ0oaig}MDIR*+*@zGiMn6zUV7;z_wM+2WkJ9N7hEVG)^EJ=CO7KEQ39fQV8tz}C3 z|CDEXD=O*gx&N>Tf$Y3?Qr=Kkv4uAP03=sQL_t&%grYxu*s~}}wS2rH0lb*ZKXyw0 z{3p?{6|vPQnZ~{z*yT!zgdI8%f!YZgHoi##4V%c$$4EN9f4IH(?&^l!JsdQdy92A< z@Z^9r%2BQ-pF}k5VGf|B?m>@+%|h7V%Fg-tUOnA4*Zfw>*1jFkw~_zRzyBS0Zp+{kekWEv!%xMWiGw2lb%|)CTmMeCk(@vOfCg2dA8GzJA^@c>a=NscelkB&B%>xaDIFX_m)TB_EA_B^No8OH~Z!IfO$9; z3rw2C#RlG{lFK=On*t5{Z7HW($~kLFBqHjO?_eZ3oxC3=`j7Jd1sh7cKcteFfVY6e74*G+uYu2JU%JLSy z@~8HsK#I1~(XTq|HTqNglZwvjU-L&=O+~C9Y?*EngbIPRDWB!E@~;c|YfAqG*ru@) zkfh&y^9@0j=Lh)??G+8XtZkXYkpe)&-p%2>E?2){14k74W_SpkH}7k=MNoBai#0_+qH9BwQ40AVCKUeddR_+Mee^%Hfahp>@(a?e|mr*(Xbg? z`{4t+oHT%Z4S;U2ouFZ}b(_|9MV_?%`+-GL13!eAHI$Bi%g<}{NBN{tw|eeBlrp{$ zr2&7uZSLbK(n~nYKY#uLssjXAMQkO?tsu5~f?am+pVUu3u3ri&1sdFHvSDUP?DNi=M{ipLM?iiTYm=L6x* zLb5*T(YJ}XdvJ<|jlyW!7ILyFk+M_dYGxKRYGcQ@$aH&lCi4=zx!{ zETf@>n_aB_@P;X6Jow-On}L8f+kH3aP=w5#Y6{V0CN6j^qQa|Dn%;H|8H^xA8vki%i;?Q7hWyD#D_re6p|N(jnd@WH4qv>h{$_#$srItdE$Z) z-fFUqaOM|}rrsY2%{07oS8a5YSlxK#9eLeaInSw))Ms!-mah zCps&s$+fE_dII)`Z3^w;2`s+^Lm+qpn~FR}X>#ov=#3ymL=RRthhb8NH62U!ch>AV zZjU{>2#T+cb{sL0=AV-NKv>B|d67tb_~B@3V{4k3Z$DfD+*n>mBL(yEZDZb7^BlhA ztTy?jkfgP=K)S|q$VJ}}WxAo3+yAEea}PiYNSf*r{mPNyWtd`E44w_~${n>+%B4$} zx>>VlVM*uKNQ-%xYGuNr2bl&-?T>{7@|Ib%rY@&fZs~94zC%6(B;|vUJk6jUu`&?* z4C47EsjReyOg`g?QoIP$akNXJD`ihBz42bQ6gI;YU7`NQE0t9;ZVk3SD`Q3W7n`ht z{MopVb|)G(wkDYUHzfT94I4|C4OrCbO|M#`!M48rQU9fQ3!jHKkY>#ykg3%_@4xBO zXSmj_aX(;cH`GZb_UH7mAdkb=mC5%6axon?2RLewmE+*`s6>9slYR^jQhxE{$LgQ^ zqj37G0jkVOocbv9y(V8W`yYPy z!dqdqbAIC^1)fn%wft)P|1jEL{dx^>9}x|^ zy8YXYES8Ao@X_D@{^vK&lf>30iC5zr1+FRisnqCS_wwt~E+_JIRdwr&{$UD^1&W=! z6_Zzfz~zU%gd%u@C(R&vD&iKqjC|gFC}meIzuNxQ?XUX&OL~al4W6{asP2E#zPi9N z>s$YeW!U-#6b2vGsW|i4s**qv#uj#r(Z!WULSWgAmk)Dgi#oe%f`!C(mPfAD^3^uM zLe=*7rl@XzNt?ip6K^@h#{ljk1bn#q{xh4|RSjbyvr{mbJbbew3KYRx-To4rz;Ln2 zAwC9H*#0m8(YSQp<9RZ~<8q0H9Y};O{`i%BKEehH&nYRJR20GwKk|rs;IH?|I`<_2 zI#p+c#qu>hRm^9xoXCRJGqMDkts=+C0-!bdl)!cNbY2=`BphOVFs83qzRxUta-1xH zlr9(Y=HHGFBJBaC7gB9fv{fRQL7# zd8{jOn!Q-QrdsaO^6$9gPuP_8lxGxk$etg3B;m()>L^$E4LRGmGROCkFAc{=ac`H% zo3;sU+S@@>BTePgL zgulePW!n02{}IG=r1a%lx>!al{<>*@vIv16v+3eHgogDMGaoCYc=Qlk%MW5A18Ec7 zgbFZ9Y%m34>m?V1nGgyB>~+^(=jsA^AayZ&YL-Z0v0O1;B%hhNotjQAS~lRS$?j>Q zQ*&82k*WEIb^ajK@<<+LLp~yS=QXud&(;S;#0vB$Z!CLP>agB0ktg0H?Bz2<{)tXm z@Rz%*Cr_Co5ry&_H*Vr?0Rk~M$EErU@yg0q29h=X5t%-sP`(I_6$q;2F{WC+)`_(T z+HghnUu}PBWoMn$&s{O_3OD!5uLLcco2|`N*8a2`_4ij5+h4zaXSsn_3~=*AUT19X z9w6d;Zv%9cZ)FKRH=z=_o;PZ&MwIA>(*9|@Sa36GQhc#)h&N9fEB@7}zq|pdAgwfC zb#mhn=0-YYiA;;3_m$i)i9+=9kIRj>Y}pcU{)Y(UIH`q<>0o06o66PSSH`^Tjyn2i zR}aVu2Oo5hn?7TD$TJ>qO+9<|61a-4d++VAK~is37Kxv*{0)B9)mOVCjy%e7jeVWE zb+OF2sq7o7RkM~X;l@TYR|`)v^KcdscV4$@-O3Fgez)6Ymt9=FI(6NPfZkv^-+uEg z*ZrXGuIXl*x}(64aP8D#(c;CfJzz(8LjWhub?v&hdlgSlsx|WA+>W2@+YM)ZG;{mx zvk&%9O+^}A4cYbGy}R-}l01QcU=ABiT`wFJQ6Edt_kw=!K|d-ucKkRjMJ;oW{o^0* zLJX*F%G!jLEL5Glu$kVn<(6V+wZ9IdW5$dDg2Pd=M~L?PgwqRf-z;7P2$c46lVQ`Y zpiJod@|i} z8oPI|UXZtu+h*Hs-DCg!hlsQOuQvLRmN=*9(8CUuy>nzk>W|HtR@i8?P7FS;Y^!;e2N(~Sp1CBwxC0gGC>BMPj zvxD4cpML7L+kSg@-g)OCj}i>HVxZd|9Y4<=IpmN--EV&L-(;!I%fIg0>)nWlA8~)a z=Wf|_nU<4WQu&)~(!_oE;Rmi|iA2|&0HQcVZj3LabB{dq zh~tyi3=9N3SZdg?p+W!4aW=^IfCrlO+2?X@(XW5=8_Cyc=Uv&`B?z7zgLe@zRU@gc<}=x(;HHx>Ov@I|Dd>5uU3^85_4=g@}*NM zr)FvUH(Q!DknU}W6mdUB`*U+vWtoB8Psk=FzVL7sWWnT`iY&cz08!rfT^H~8wS+*$qlxht<2uOm*d z%=i}60{CAy-E@=d{aIBqL<)X`+;;f?q^?`BDfbLH^-~AK`xai(h~s z>OWw>0QYyibr4)|A&?o^$&1tCyGt&))HP|+*!4c)1lRYp)5J#9f5)A6a6qedfFu%p zC%(;?yL{l~?w^1Ehx`2>{s6RxMR+^KRQ(E1Huwsz$V^U}B4?NIvBOZQpf2 z@Bp_p@Yx<6@u=HMWv*N>P=_$>Wdrl)ppgwH;^zr#UG^7JBT*qB0-{GJK> z8tF9sjmW1B!n3fGr6Y>9Ef43wu>8B_g0L)!D5vf0Cl|7)SEnA(u#a^E2V5bYq0ps2 zN)`+1<+Hpv&`l{5{r3gR^mETWE8vNMf|qGN)1MzDIrz|VCpY!5v@7t0bmv_|Fu*Ky zJusd4`#=0%dE>X+zWcgo!E*-yGPY^mMmr?rq@F|p2A-DEQa_LU%?RO*X-2h-lEhyq z0*B9}K1v6SB}*2&T0krynlPQ%lN*l741d%CxOx)c%`Rw6iTwi?afAG&-izp40R(;rn>)%tGf^@bFpew4s<;DMjx_jZf(-lHU@a3MlVDJS0;dXE+))1UfaqQ+=u3+5OJOlr{RZ zr=J!C>T%=7de)`nr&6Q8BKd*hM|%HxH0)?kF{!UnodQ6>hl8=q!(rV!=Hsye5`!NO zDv$l+F(9_qcbv!7UPZedGUPvNCPc~Q%M+hIxcu_YyMU(L<7i~boSGCA)KON z%VQOooOJTZZphG~a%TI34?JK+iXE2-(h{0X$}h(gXdUbLnG1;vfUQPo_{%T5+#TUj zra`KXnXRvfSDxKHLtcJ^sk0`H8@n5BxIvE9e)~-zQNt}<0G>py9&njE?C`@Cxf-@( z9!2}!%iTTfZcLA5?oW6VB0Rk~j?{3?@g~XXwgT8blvfKzDy7uhj~`1(`{*N&3N-$m zczZlrkgH*TAx!NbbCZcr7P+3d%Jt9OW-4JI%&c%K$D-2uS7Az5EgyC;Bl`Le;b185 zDY*YO1pBw$rmY>W84qSaQdgygZu z9}Dto$R0^B!+-0~>NiAxwjKL3vNS=;oxd@L=|bhNrR94Hy?{ir7?agq|LE_mNbAl0 zhmHyl;qsgNVN^WCC?QC^xeN&4Y^JIv)`GLwqW6c3`@)d9gaGX<9aRP?%~7bFt=^D z-BwOY9Lv)ay))!$OiK!Kbw3^+=WRLqMW9o6-c^up4edKM^SJS21=YGS(Xep$epND-(H1iJs<6oI+~x0R1FUF@20$VVli#G8;;>eVB;+vMqtmtB+8d{h!j zyb1ZLdBF=WIX29uV=>2(8uBrnD876}m7&u{<|0z1m+0UPo{%-hlxD}NsKtwb7F~db zEqw8I@a4RD_{P&TmF^iOoP#%bsw_V;=0S1a$cj9h77R=xk@`eTA`9ij5#X4nYlL() zn5FXVif@GEX>oxas(~L{xl*sBb&!GIhT`<2&nb)&Zo!MGOPsZ`NbITT+aam6giw@< zvjeLHa znSlifZ7>DSJ$yllq?F>7qQ>&l*1N;jpU8LH{QVcHirI1HEal0RyJXY6L0psU@N$lf);9!5ch5 zR*Z@AF`;DBGFk=_S;xUD2(M}gXqpfNzrKYgl@+|^iLa$`(#<50SCr2W<_!!DTgAw) z$i;_vE*myyWm%o_$=mdAfH`Lyd?c=l`g6g6ej_T@zY*q@ji;ps{c)3V@G<$OXDAag z@YGmyRnedJByzRMs?7dDR>+~!R!0Ar)udLv{x?|pety5&{?=+s-~Va-b4herS(ywz zE7SfsSZT{!x%OxB6m8q`ZeZpbPUe)qp&O&5!qy08h(B9qQvqKaPUY-m8LrO7oJd`v`GJz^0Y#G;@4tL5kI!I3wy zaI`UPMT4cO)%F*QXgjQKf1%x2ld8V|w0$IfPIdodjl*u8e0WXuKQ*!3LnJ1*sa6Xf zuf8UN>M5uA%F;I-3#9an%NG|-ULr!%m*68K9u_3*`~P}B@RgP#&gj^E=4tKqDqSOy z$}oCD;c#bvnkJob3Hd>U7qvR%n?2T*d_}`g*? zo5@#H|3sC~AvCXL`?HL>+u;Wwe>wK82^?3lMk=+j-T#I5CmQyteft(DTo5dwe+DEG zLBkHVQliTGpF;T>M&6vk3xXx&r}}8t)hmC#*v0qd>p*_a9Ep5G&+&HDD)#B_TkPc- zIdWu3vv@Ol+Uqlo`(5NCAOO` zFW2M;3uK5<)vr;oei|NazsRc3!rn3Szp{+)OJ z$vyK7>~3x)_1A2r>)%+eN&A0a`Ae7bK6=55y3+OkedRNMv=0L7x&2?q150zj@$3jB z>>YR95v$W?u+VuOsFXG}`a&9kkY9NI1;0fH1fFI^`o97!#AYp;L6)Lne>!8P@Z=E& zTr|XmMO=NlYo|_vxFU)CDIwn?SM~lQ+gR4h`#;jtrFj@Gl)n^!sxQ1Sib+V+f=iy5 zkqMF^W|KKyF|pV)o#uKP#v*`IKEKzaU0QiLAKjT<*|x7>1z+oBoJu!TZ-hhKVxWm57AL?NhZ z`;#{bG#mWa_CpVw{k`)(=lq=0VS6w8{MHr>S4 ztX&g$PMgUx=i0SuyRWdHs9pPZt~Icqh=$#9myWJZy}EeIAR2ZJ_ZAQgx*ynG=#M<= zNcV+Du3myYHAKT605t5TO*d6E>{nlxV$xi11CMTBK<+f#yt&(_>ppJUN7E#Y1tpRJ z(XhGH`UsTqi&;e2RyTg!c-OPn@dE#`*WUZM33yYa{l@_%n+Vwd{O4otqKht)Jqqc$ z?t+G0wvF2gNWBD5v|*2V$GkiS=;A#D4f~)&h%U~jNGJP(2<&;Gy& zEI-mM#l8#f`D)dwH8_w*CMf6ocKa#3zyMsd1Zl0@uYdDv*95?nojP_xy}aqAfgDaH z>o4t}>Q5U4N0OxdDQ!p%@)?tF|IEkOC`o;cOJkXD1@aU9nQyJjU)TDtg#3>`nSr;A zaqfhkC&*jJHrs70?VolNHuQL>b)mmG`={-fv@4KLG;H2yy?XajdE0Ie%*MyGl2B9R zTMK)^A`<-u-^Li?fa^$2fKd#`?*1bu2eK^WJ=#%cq*Sx?f6*8Iu~fo z2OoT}`|PtBK!yey_W9>|?s#*;)5-Qg$o>MyA{+vE975ihNi^&XC$|C(yZ>336aGY| z?uHK=CW>=jdeY>{K$2bxH0;T4uRZqylJredPKx{ORaXlp-RwEDTyMb1j~@M!78CkE z^vFX%!|o^Z%(ZIOz`!?L^3k4r+G__iZ0dK|p$EI){5SLi!;T$yaZ`zgeZ-OOI_Nib z>QwjVd+$}A_kffEiH6+{H`Tf4pDX!*lmJ~Px$iIl zP=`JD+A|`0gQ7+a7>mmA54O-hy_|b45Vj9F1Ux@OeQf8>JNG=HAkBG5I|PFg_*IBbZlW=*qJRC&Ex;h9) zN&un4%Tu=eWeNE!MbmCu`HKyntC9vC;nVuTQH z9zyZp3EG0Hs4osW-|Ui0E|xTj^6`roFU}r#;DPMQE3eFe%A1`@*c`ZpfZ}1RoHuWt zgkOI7rL292_TuLc2Fk3gtSlQiaA1b>ctSkc8qdLl!1I9a*;$_F;>C+H0D@+OYY{^i z=tm|!d-ckO4ILWz6?z&qYLsE8bBLxrH={k5sXcL+oxuE%VBy!)p+?Z*CF;<=z1A@b z+NXE#?6%u(3%uxI`KN*B=9@>JT1SnAj`B87|iUbLUFhoH?_z+O=zCKz5MymHF}FGz$Yo5k4vxA0<=}9SJJ& zv2I(pZmm>gmSd;^`OU>grWHg-f=Yb3{0tODtXchw#1%zE`J+aS0$f*{tXsGJvJ?CC z$z}ppi|q!dlUAaoCYOTZDH4}Nj2tymh z1eZgHCDDjrT!qf(Kl_}s-DO0>272r>&pqcj#l)PFmo(u~ot$dOVuy|Jn#-v&x{Ws8 zSe}k0fG75HfuI3ev=oRR1UHf-`9WMApi&=m>~U@Yj%p}$c=&__3QgsED&##7Q*Csq z{y!md^|Q~q_5evOYmF%)KYz@*{2KTu*`!Gm$y2v(JpmAv0Di6*bcMU?uDjgAMc)AY z6KL4K|GgF&Y5V@H8Q`05xd%E=T=R{z9OLGptT^u7kR!e36HhN@%}EP^BxW zRa}Ys7Y>?g`j=vA^)KZuMX-W6l@A#xx0IaXRHV1%$k?tTE!x9DtgNPztSp13hpUaflQjy;>tyF7X+<s6l1kqZeLC}L3T!Q4_*C;39l)}Z-KY%N0-)?$+#|Mbw0j@gcZT|)5AMGd`em`WaHtl(|@N5kJDv-A@vdx{gJXUbpin|-_|I=NRWNG z82(wDGk}^cvKS@J@44tp85~hQ+wvmD{q=|Drfoh3cTBJNrY71Bb7&acLxsA#pte7B zg;)RCE}L$}nV>JzChMIZ>O{LU*cok&z2MSrb$*ql#DKWDdpL{P;2M3Gr% zYcC51KW8TwPf!1B1AS zm5r#@JNf?-N4`lg+Ie}oi2?w=zP{YPeB7=cwg4Ux5fQ*!UH~sI7m|a^)8EC*!jH?v zlj+||{#(yGYfnoLdp9q8R~LqV^jds$_4blrWc|Fz`e`CrXKHW2U+ z1;E4o7Vtm1k)q=Nl!|KF`&l~~zO#2mb`R2qB%c7k_`mr7Ka~Hq_#cu6|0~JQ!~36- z|3UdbC3QWmJ!D;-ktV$)|952mOZY#D|0O66_^0Ln(G&mf=6{tU`&klC9PmG5CW+U` zdi4bbMG8gfowSZ0>PawmsJYxF!sKi^@I3ch1f8-b0`Ill1)JL8K)$l}d(>a~j2Mcq zaT$uP&72gadYGq)WdN@VRa7(-&wu~jU4{es8XJF}L%USM6$A18#l*aAeSFpfp=({P zO1Yjj5l0*eG-(?^?4o^~4=8vT)V+M!Q&oCXP8_-vr}}y|#ie84v~cfqI;N9!Wbf?| zLqPZowH)D?Gcba_2{JAgWmb}2ZJSSq0G{6O-yTmOm=a-hUDwmGv-Oq=4zuN{XI*zL zRQz^s?r(4hJ!Tw68i@X)wPzy2n4+-?6j?9GH6_Pk_@d!UD5M7VI1^6tjYe{f)jEGO zMv$7sznX;{vK%qA&*HRu5jrQDJaSfn^LOquHiG&r=^(F|H0jpgC003p=Tt)@>`3X-if3JopS`jGYD4={S$1C6*D$53O=y8@c4_D+# z1ULZra%H#q(h)qVSqUL7+Y_`4__F7QgVhuIF#ReM>0L6%3I*SM756$`&B1|*EQIjp zY$4)Ol_&}zL+RR{d?TEMKQ%uuDuI>EXg%c+q2&^$=8jrOz+cyCiPEC-d9)nxd0QvEaV=nP8UYEuhkL;S(*8-U=R`|j#vXpgs{-n&Cr$f z@%8;-HCTA_qQ_vNiOEN`9xda(wXToUI1bHixs#hK{8zM&?wU)zhHp&Ebr-b8o)z9(XJXc&c(yrF{ya8@ zl#dXo9j@s6l8WQAD^yY1?&k719+WcePr3_TfB&oDNTMFdN)n;QAcvFUah0qhE{*YA zn(i~uS<-{&!A?LX<~whc z<*db3m=MZf4g+HG3iK>M>b;Z73P6MB~%1@o1|0@oo8zy(BHR^6&v$ zZ@M|$CZ!VneUp6J4_aryNa`WU8+-VUH|30nI$DbI7vkDj4oSnXPeY2zQLj~2^l+2R zdeLz+LX(EZ(89yCCMQ0hKz@II@<+z8e~ zz==kCFpE0>yA1B-FCphGC8q@QDPx~cG60n&3ulIELB8K}pX&uhS+1j(&_Ow?yqXVa z?{sIwxRsYu?;DBdb64(ujcn)Jgqx-8J!DJ(v*-wp831R$9ezP}#e}>HW9MDu#Dbd1 z#>`t1)`I=2FFK!kj2`=Z8V_^6-r0MdXYoTL@qU2=R+KwBN4$)5^<~e2jpP^4Izlp* z9MC$}DYexXGEHi;`1j?83lGLV6;r0Xv3r+o&nWaTuPd_=(h2FIdhBayJUID!cc5Ia z&+ZZAw_RIl@0Fi*J<{NN$h(;L&~#*FE*Vsn;{ts&IowZsvYq}^F=tj2v35T~)zNVN z?9saT?hx0zWh>qIrAWD;`+M<*pBVldRHL_ZHTSDVcj}CIGx++>Q(&H z(#MXvOa6|wUH*WF&uP6v(01jHs^ez?WGkNqHsISEB3_33lou3&@7J*4pG|FN4CB{| zE2kzBOD}#?VTM^C&LylQ|N3l+fAc!L+LHV$eaC9IDi5mQ#5$T>|jg`A}ca#_9mCuno! zxV+`h6baan(ck-iF4ul()gfSq-`RJikn;4Q(I*0&S}1t>$F7!dWttmk$IRF z)6%4&4e{1D60H3~Ct|vLUFeG21+1arJ*{w1qy2lgjj0ps-CDCewT);^r78p|z`8lO zaiyR{}0tGG$MVLd}QsnPyk9K?7H!9fzUqO*9jc3Ek}+)y9Vhw@-U9 zH0#fwwj(fg=9^O01M4W7kMxuQ>k%Y5X}#XXAGqdcQ0O1hH5R`85J=F|S(vQ!tt#yT zt)>5XLnCpOGO%ToZC1j6GU_v1=t-Ft2CB_(Demf-snH<$!ChM%nD7|=XKMXC;Y5aG ze{NbWaQsDA>CYLTcosO9=%Gf`=>BIsiXW}Q{y@%EfCxX@)Eim#-jK_Bt~7Gm5h8{nBhI1{gH?p@M~!b^ zBE2`Mb!Wdfz2JJ(NSh2in~DfHn@VLhYl;(fnThDWTp{S7l5K0MFGl3fhMRSb?I_#7 z+NrugZ+zlDlj;juO8C~yUI-mGR&31UE<;^+kOl_*py&#KzA?Ig6m`(jlZjoM5=)a` z+<9bs^pHo7PayqB`(uh zOVKXBzse5tg{jKf4RI3G7idJ}!>NTe21W`LzWM3^b1<4myqhm7U7$P@)dd4>nFKjI z`y9uBQD>80f>8VCyZa=wjB??}{AuvcwJ@T~GC3)SPvLapc8SXzt+~Kld_z7DH51OCjPx@Qo)&2du zs_PhY47)kCiN9kj4%j>A_Hyh58^ROEZ5VoRF5bt z;d7gm2|_0~ZYsYpUL@xY^V5q>>`h4jV$=IbCAb5uBpgNMw=b0MD0oO(AuQamyEkdb z`Lj*0%{l>8C(71Hf8E2fvF{HjJDIzXr8Nmg_zUEPjTV==7^yqgQS$Fx=<(l`cd)AZ8Uw`y71v6{#=B{M~7FznI`3p|$Vs!tk1~bQU&= zzr78jln@HQRHJHtw&D?AzP^yXEuz74`7|T7XxUCiCh&_cKMwA35VYErI>}?%p}mhB zrH_%_4y(2=>CR+_99Au!t=5WE=Y-2aV>}$DJCk$z&m@9S)g|K(7O^|DGg{&+JR)5Z z>+w$_o;SBleKPMPyE{qaup3N)oeU@im9BOhec0PJsUsA$i>-g5>?!x5{4bubTW8nJ zeQm~M*66ew zUpJ`=t6caomC7@YGgQi&t7go#2h)d%!)C)FcWwDxqUnE(ElJ!L_#Gw=b-tXo^tl`}rnJ0hfhTk|inXlIPtBRVK+LJ&48qI-Y65v&xj#coRSmc#^4yMj zAMa}KMM$GV7#HPmM-Fa+OvIIYS)4zV`8+8fmQR`5FQ?*lJZDSWGySt6+d3;Ap^o__oA7PU+_A+N>-_D>)d(zDx#zoxm!>w~V zdiUY3BnPxPBiQ+MxYy2}5y#X5qvX`P@~GTCd*>aKeX4}t?`I7j*0ciKr>sQ&^}HN5 zq2^D!BvMRHx%QX03=29f6 zEE#tfP@?So-S6zZGQ@N>;*BD@;#2Lw$cvzixdxJ)S~mEcBdx$7E=XmGFrXy7Fk{M0 z3iAU=XF`=UmDCZ)WnDr32T_SQTyR}R5sfItfuw-pIl}~a>qftiwy0^~iZD@o8sd}* zcYlqK72V#b4^d)!p88EF?(05x(bUVLN15_y^k{x*52!y30-G@`_GHQ8!BWnh00%ui zoK%D3g}G*k=??;(_FOR9icVksWKyz&D@$mOV&sc_fB8wn?S+k&3y_+yo2#*0>EP;K zp zDi`Q;8QnwNj1FjCn4~j|zG&W^N9+&`>G8OxXNNczg)&-JxaJv9L>fw{CNf5cJ9m`v z_Z%APu*OV!LW!|(D+YCYajXQFl}XHijCgDcFZy34f{0UbkQYW%1Ag8ISc>rQ^|T1< z49;*6-2QWaxfN5HZ9#hca2U zIH~dAtNM!v*!J-L!_fOhDLAREj~A`b=L6qw=i;k2SG(mTY175wITHSGdv%?f%I|?^U2Lq%l8BbY zNA3492A1(K-aT`cATZQrym8C`bW~Tn0q~G1;x_Bd{Cw6eHkKnYlh1%=pMoN(ba03f zn#;o*z4M20qc|om=$$KnYVyRXL z4!c%7M5)GoSS?Mp<805yjeYJoEgyV4rjA@05{aNZkRbcK_RpR3e8__>$0)fG2sZ0v zC)~YwIkeo>4&TONOWo{?`l-id+(FLutx1p$YoVn z$fIA;xfR0<-kg5h=Dz*6B#CcLui7}EJKcqIgtEH%$kNyewAxl5#wzTZxEYso6Yh*g zCp3RoQnKti_oMkb%YJ)cE&7A`)5Q}_Z7>hC+UOw!OXMc(umZ6q2HiNVJU@|jbk(rb zI{@B!M%3Wym9h;d{WD=}VQT z1;597t_u)s@p3KdCFqdj#1W`)FKqKfk;}Ar_YwqI_h63)Kh%mo36tLEAKHc?s<0}gYT=_WSV1g$@x%!n05S)cO3)5Z`27keZO*# zf9lDL;Qn;JdLDOf*Lbew_j42;*{F;+Ya#SpZd@;D8f`c~*svkOHS4w@i_c~lHwQ#e zfRPyJ;P^D*=wSr?nKnJG1<;Smcu|0NUc#FNXi=6zm+|_;p1f{ojpkNz?~kriu(_QT zBdIsae@zYMcc7o&>5|!tGNC*vO!U6u`#zaQI%9}0BFIE)o(z67Yx!~Us62+QSKBGnhitEzi1fsq0Md1h--C9 zel}#IF8^g)92{LT1{We0QM_U+VM-q8G@%_-jN-ciUZt&aMrs%GchrlnquG;!Oup<0a zY=Rg zGNxk+;(GaYplOIMaPnFIH~a}Tx>i6R%(%(!#cBI~9%eUGBtgofWgtC5fsoJFH#U_Qf_ zwtZ6uuT-Zs<|~CaGMg(ai8CpY;qhdX{3)U(Yv*6w(8v4O6O76g4}P;tl5zBG@0nEf z<*c;g6Omzo5I;iMtzo-9uD$q=zj}7?ZDy<{%9RNP@{@})oUogntg+5Y5}{lXXBqFV zzVM9hFF(ulCB+(G7{=i^3aPq>6)ZVZ4th&#ZAO@UacNL`K?N*9JV+Wv&xy5$uk#Swlsr0SNrhBORj zunzBC|DPm$MLQ6UZHB{eyC9F_#Qu&z{bhTFs$}AQD>c4i^T~UmUODB~nhVn_&b{@) zDnv&KIhxM1%nr_hIz0-_`Vt2HoJ@=?3zVO^KtI%E=Ugkz2BW6AP)zbcFjo0LW<7lV zKmhrm-@KW%!2HKYY7JqFQv#{rV-S{YPN(%4WaX&G>KSS>ChyK9j#PSkUb_1?(@OM8 z9*lS7!%4DCD296hMuYY~)dW?8L_~%RvIOxcR$0gPlx0iJqIFcVQdVKlMEKE?tZT}w zb8HrldK~_*R_4?W$yL~-MTc-Ca5&@sp?`-_=i=RO^n2s(8DorWAy$ele6{->YSc@z z_>4p&IuL zja@|>u=$|&o}K0;TEXlM1j7cbDen^Yk?(D3IVr(2RL!GDe>6`Q`a(r|PnFdpT(d9A zn=h5ZQ#(TFwwp<;cgSB0qFW-%dWcX;YVz6M?r$e*?rhUH$`vd=i}_llCHxjcs^WMb zcQn5p))(7rG)*#kq+5CLJw-ir{3!KCwRbcJ_PU|_<1(Y#gU;vruR$?&O3bfojS+dw zt*$R*E|7OktlbBF1kAYEfhE`LN=bZ7=7E2Iz0)7E<63ror3>+sh2$f+?F1#qw9UF( z?4BwrYD(HY3rIku88sBY3;{1z9Q?IU8mo@X5RZ*E0=3C(Wu+)=o^#qqv53w@NjwnP zhPVPqZ3)~>%zf+pLOcJ7-;Xu|a6rz$)%>M7`yZRz^*3g*iCnejy+3z8+jx2=iTa$8L6B_#AL|s3s9`+xvJC zw+KFMF+RLtO1KC{1x@6JeQ;JobLjC9 z9f7^u$u~04d(dZ<<>@u^;q+QDiIYvYp3pcGGFnmo=|83r){wG77Pt9=voSu$p zw5aEpx{MR7>OsnL(v#Uz)SdNVf>hnKgXUnl(A^~p7$z8bR@NWSlnE7JDWh6kan!c0 zbp`%pQOOWyt`xi92>v;UZQ6k~KmD0;+ zcR}<(+BaRILW?l2|L8wC5xS&N_$-{4tnf%S+ZKsA>8!SqW~{XO^(%g#B3?AW!}&Lq zr7ivci)3}WP05U|NESLfA=UJ3b$A~itp(qiwmL2GE`UKG-+fcxfRDM<{8n%G{`B!` zq;qe#H^|skB0&Jt4lj2NNfGJgVug4Q^QR;IaJChv#&{@lNuK<0bXcXY?V7(iT%icM zSrLN0sUo2j^>PDCAX@8MM@<7y=}lCEuCUqOMmw9XeJmu;>HqL2mEC1}Mgw9${&b(J{pm^2dF3~i*8BIbLe%nLU#ecU z(CO&v$8euz973WE!a~6| zxua`$DRbMU@k(@&PbT>GK^-Md{_AIB&RQY_gr=DT6N%A{Rx^*rx_=3Uo0Q!}fGs0+W= z)jc*5%L(<{=)Rq+#Z4eAR!Hg<~>v|u@Ce0E!epA?CjKc%?F#-D@hD8ns2=|2yva(CXxFwi8!u-rmT>7IzC+O z)>uX*oJCTY5lNa|T(ENrSw23qhjfBYrWE>M6yJg0FZUmo8m#g4BT1f7I90c!yIDLA z9@n<7xc>a>+WH-Jm4;Z}d0S<2%A1)! zxynU1m*u9z8t0!atW-{KWunAH-n{ONz28ZQbz;YrWWaNy%8+*%jHB%Bb$_@6)2EPp z*+pC*&RD5w(+=F`e-r-geKu{V?js`?XC;wcew_82ovVfF69f0a2~_@rzK6#(ETAFs z{JnJ2dz84m*3b>u5c$^?*7g@$Eq}F8Q_1P?Z*l!3BR5(S&kMfel(*`|9WAs1Z_d~A zOEt3Pk@LO!BEHQEgUjIJg~a3Hw%3fBP(^0OgppPn=PVg$EZ~GkVWt)Y0kzT6qLX&p zvz7sha7oyv^;VqJ*bp05qUW6uyUU`;*$NeX#k9%7b&0q$dQV{R#V_b0T~*O9SuCir z7&+_X$~s&=g$;~W9?`PoL%p@K^!TNHh(By$8%UkB_?FLHKPD983y*_2dYLngNQBAJ z-Fl^F`f4}Ek4@Of_C)<9WgGiLR1S^%B@2J>qt{9 z>-+f2ahPX_Mi%@4UZ2dwKBM^SLj;|S8G9{jeMHJp*P4i@P4hC4;Z;9TFze%Q>L=%w zQm$OT-b;Q`puO9)65G@Z1sZj1nv3eVuDa8m`l9(hGQZS|KKiH7n)W@y*>-K)0bX?Y z)9E>=Sl>JtbN!5?@U&&=Gr{JKYD95x4A58nQXn2Ilv1GuMGHjeQoMbSx-)+cUK(P{ zZX@x*K#_ou=xrRRbWd;c+l;FH=SEx2>F0knP zJVjZSuRcTzqM6fKP$aNBS1Cse9Cw^g-Cn0M(trOdV2*_6BoMAwzIyXh=C=)MQ>UJjK-(Uqhctzi@#AfFs=zONTm$c( zQP?4DJJF6eVF9mZLiCt3hu^#~!z>`H{tAe~eqw3rz!zy~AfadDSdRzi<+N(Q;Avjh zgq^oRxchfqjKbPz+K&6 zXdQPSwMo@ret>@`(F_=izc8QwaJzozW%)z_^%&81gErb(tl|@VMT>9-fV@kugb)I)a@d#b}f}aq< z5~~E;mF+n}VeL@HIHz6s zjJ*Rtne4Dtsb&uvOP%uFUVKe*(x&vdtrDrJs+t|k;=?ZQcXPsh%=KMMwiOm{9fOYv zt)G-mWWMr59y~sRX;;rm?Pp32e9heN5SDQ(!3SqydI|gVTt-b^jkXi>0#^A?{a>qI znIk|QpR1;v{m-7eR%|A)598OpfM~R)Jz`{hLeu+3ZokkzS1H0x{|2*d$qJH9M$o(hRu7Cm*h1G;V>buNJFbBn**Ha{QRIN}y%QUjpX~n#HZVk%ff~Qg!_wzmB z>-2DdsrOu3zbk2}od3h?R%+!p7Xv4@(Ugc+<_vwYvUnP5#j~V+h6PHmGrE&M%94l7b{kNa#N>`>ymA6+SgUc zbz&sC`<7hIyG5t2c2YFHJP!%q)(49YJzd)Z1-{OToi(NOHB$PkoWj;~^9wK0r;x|u z@RIKZLAWUsOda(u4e@-{;lqyF34TKzt#B;vKxPjO>RW5NNx3gFk;-^0Vc<;7INZ?} zDB3O{iR3rTWG%AH|IOw6`##E_n#-mz;KcWQ>TlQGT3~Oh$AGdB3Sia5eSmD5?vs${ z<#Ju$!nXDJ#fY%ctTE>|0(@|R7NYj0cVr)CVdw9bIXz<$r&`SVn+MER|%{Jr*vyVKUttbw>u2(=ue%ZKs(u#Q#KduFypXT{p;THZzZd47Q z#lr+J9NE_~4YLLbkGcqbc3qo_d}Iuo{F0BeJ4@0Z=@;=rIk>^S0xrvo-lx-Z)>~-Z zObNo%m*a$Ywf+z!EE5u)bc%rd!p0mTeCajzM$UArZQbPavrQg{or^NIj=W9G3M~BV zY5-ggF1Rr(vxa)S!e&{DI{%FDc!-?Ug{LkRk~OTZu5y7c_Hz?^(Pr%1;e<9O8Q>|; z@E69fs`=D!gmGI*sG&K@kp=y6!Cl7RK`}^qF5PjV3(Tu{*w5+Z!8CTEx?8Q3lLZjSm zDk~9;X=JQEa)})y@pGG7D%p4z1V?Qtl=UskGGMw1VKA(nx1_H%o#`EjEf<2Pzb3sX zJ3hA!elm{R-;?!K$lE0J;(~8R5Mh@fV_}RPI)#nf48l6YUj5+oi0cPhHi#AwW4IYg zB4gVcmtxosFxFB?$!;-;i*a9OhO?*GY`>mQHKN9SsUCz}-5eMS#XC_ViQw<=Sr38O z5Bt8#TOU}J@t5B~NI4XmP@wRhh`Gyo()Ig6$~G_76{z_-&< z9-3_i@0v=IlgUw$+JHPV9TV^mS}cRwvo~hEk+!onRLC_w-aA?w1MON4Vm?kdl>4E$qL?D* znN%12IQ<(17Y&HqI%lqG=|d%@K1fMKYq709B?_weGqWb23F%Y-?$OvL?8eNcs||Sn zN$wrY+BcU(T;1%0yWm?9+EGi<)@plJqC65bny7V@Kb5?bu#%Q)n^@kxM5FKu6fQuk zQ}T%yQA8g;EfcDe^^YFOP4Z&tRnuvdD8X=M-GQ zR2WkxfJ)TwFlJtlbIL!a>pVPCc(VS(2yZ(k49R2omUK}@_2l<%MqD!4{1SK04qjnW zkcnfytjL1_pn73L?9!e(kU+%4E}iv!PdCDSuzUBGMf8;m`LsA(QlFE-AHE9#?4hwK zbi=K-f5kc(DDX>#5Ku}ME-!cH-DCj$Xi1~losM*oNZZfzZn4eT%AOJ~vf3c2eU(JiGds*6Mye|e6!s!XL#~KUn%nY zANxQ_{u2^+LF@})Z(*Qap7Z15wmH>?AytYO&l<_T@92Ysqb{X=NWYekG-bX+FVD~S zmEu9f^<_F{e@HY-1gGKO>nMI;r>!g$L|D=xoRr;TZB=HX?+Z9>FCF zhwY+3jY&<@dPn<|vF`C{5ZC8!v%ZopIS6>Oo!NnQVh3Z8fL}1Fj514B%6|R?MfKH#ZTpL_ z14G!(uMRu6irsm`b5xw5ip;5rzW^gJm3$w2uTT3_kwnwX9^!}{DDJR0od4Ga{=ZQF~qsvYANn{GXq)qD4Z z-H6XVDh~_99tH8#=kf_CV~`fBuB2Vic7gUzXK;!wl+l;{SO@we1&ZEY|6>LTu1SpD zHL`fs1z(1r{*qjw=DC{wuzpex^E)fME1U$C)}OCpCo91y=)dRZVbMWAo%j2vWcL6` zgHb#fMf-~+l`U6ztVAixr4WKE&jxq{TD`B|GN%GT@`ui~5@PQFH~B+h_DBLS?&me% zF>pV2a3;}r3(;0z;I3{UPJ&p9Qc*~lbmzDL9;j{sM0;$zJ%3Ju>XFs7G8zTCG}0t; z?YAAEjl=X2++;?Dh$_#B1^Y`O|6C5HFIS0&md=uH>P1|LPQ*9B^9eA1l;xUCsT?Go z*Od!FA8=oo^ix&iX<~nUZw$QI2l)ChM2|CY8#0WDx?r+n0&hUh8Gkp<*I`6;3s;^<)ry=tnPW>x27niw>oGdg3;=VT&+3*$7s1QwfB?v@y-Iw zx74UZpqSAnBRIc5gR(7y{+kYmc0iJ)r?(#$nmLu0NYGA#_f`0>3r{@Z~^B#T3Ny6=_=iMmPZ>C%8Oi+&P&+QpoK3nw+nt|5U^8OI&=HSzkhL-JCy9Kpo-{VM z;0N5^kOk=y-UbsE@mdVr-7)9IabM?y8du57WGYX@01h`~rD@Fk^Um-_!V(rc|Hul2 z%r=R%baJ=A+m_xpPn<+oYG?R**B{J#ovV`iD2}JDGM?e#=|0VLGux$^pr^20=!!3x^kvNlMY~hkML1X@d)4C?#Cm@#!vcP}jQqdE zzVWb2e$3Jr0L+hDF&P&AtYzvm_4uOymd_Ai_q1s{fhJfE+inCpvuQQ+vqp7sztvzWJ|fCAKe74?Bz1j{m@axjV2TKF)lQ@yDl4fd)sRcy9^W z%g6*Ebgf#YuiI0c$_P2RGE;r_jj->K-cw z%SH6mAz(xi{CW(c@s%SV^zazITe3!GgI^1NOgFMA+;X{>n0Om3f&S*u>JPo2fhy&_ zRc}f37*2sL=l3|c-fKBbwI7oFbIKm0rz0qanTgZ8F zi2_9yGJ0t77=#PfWiS#h4Uw2WAg50&u^9ZQ{ED>&-70i$zy@93kjjR$l=S0AF)1tq z+A1>iKhtk5c}j>#R#16+jy^V`7IQx5BiF{`si$Q?uOgWLf@*D_S)ZvD9dn98`N6w> zDfE5%XUbUi$jn88Bvd_Y$AQoW{!s%}_WpjK&}VfWi%vbSRr=xvQe{+~u!m79!<#=! z{ijJ&C&3S?|5>MBMmz=oX_8xz`tAR#P9LgYYW~~g%T7Nsb>6GDk@0Uy5Zj+bQE!4~ zdzR?q2KFnX-wW8`CtXmfxR}dwqbh&O3#IxY4kssmp4t30=PFsXwjh-Q8C?Z;_h4>E zMn#Dl!&Q!J5q%mhl#Kad&J?UkkyLE{dI>ilg#GC?m4o69n$W8sxBBnm$~~Y|_zALc zNUu)*D{|r(_0d{>y*$2ubUo+{FVJVR^9Dsa-Yo zJJs&yjn8rHwNHVUI~W}YMX@^7t%%3t+L-ay^$_EWLhzI@!+;TDjC)}uor?+fK6l~a z5(e77S-6~kuO9%Vy#e?XT0ln|c`iX7y(#>#qF6Z=MAf-D97fTtB_;MOVp4DpM85nI zN+T1S{}Rszz0UBK#l|mCanP0T%5|xsgx}}HpneSd7U7+5n@(~}4N6YlXL#q@d0QH{ zE+&~_U>LnmegWE5&TY-NfoUUvXD|xWpo>U=)&7KeXuAB=6sIQ`#IWU$?s+XU-+Vrq$i)vd{s7}5pl$%wvz*v~5ust%Pv`Vn zt;dEi!YhZ?&f~Aa=Af|{Zd0Phv0*SFFh_nr2g2drcY>@$VmG4e{Cx(uX;EOP6O8k` zN{?0H2}|k>x?ZNviEX`>QqZ?UY4JeOOobSPn(Hp`U3;VWrvHFDO7V5Zlk8*o70(KQgXYR?9_%>iqFF#|Rhoidu7Gt!4z>93k^HGV=G` z^nB@Z?YhmE_~q?;IU3K>Y8mKrXohmhEoqCNO;a|GWMDG6EMLuJ_vK~h=}cLoKo(!v z0`|XR0dPvIKc7$-E0%nzcu^eG6?o?}Q>Ny-XyIO|Uw!R4vl&k2UE>N4Ia^1-TPtg7 zJcej}JH@u5nP$aYx3*Nc-2>0Nge13;2GwFR;@bLy7mfp>@57YeS7smda)+X-UrKhN8#pK4-nBMcw7E$BaI5gINvSzp#x zRLkb*{hZ4LSL)aL5K7(`P`~{UI=VeoT$?H)VL#1W?{=fBUue3;s+zN*S8c|^e?rxc zbaAv7Cq8zIA@Swrm0y}DU+LbA^hSQO?M=4U{_Mud`Y4vOBh9bwHl6JT@70RW$%D{(cva>epnRV=QDaR1aqgglii)Y3JPt{CY385yz9c5Zpa zOyq619(McA+$`Wwj;Ye+W!rALvDHc)(tBE95A$(mGD9ooN3jvmNexW{pt@V$V8rdwQ!fB3!@mJUtHo2?3kLSHk>W8LP z;b=l9Ow#@9Z23W2C+48O=U(?OqGF3r5ZsdswdSCsSHXs*EujE_xyp*m&*!-Scyn3T ztvs???29n`76zW=^1!<@FP55A0^tj(N&ceI{>f^gl5UlES?~6r9>pE75k8@?o!_;1 z352d-h#+n7?E6{yAmPt86L~BF8=`9d&UmLomazsPY|Ge~mpf}g+gy)y`|n25`A7F7 zt}&u0%>2T-0}p(0*H4R|z}_fhd3*{x!t=%>_okr+zEa%J`|ckM@S_rd#}?36Z&7@u z)vu4Ea*{H+$QU6?qe1FTj_Y}!Pk)QNu)OWb#J0~cR6hQe#E$_xJy03@s?YZ5}o9fPd*S2zmzZkVn@@(Sf4-3ZN$PIgzDaHA@_g)nxso(%mWWn2tU8E2-&2c|I1O+CNnSbv?WjL94Xcd zhM&4l?jD?bLYEp1E9yn5lo?|I1N#B z0h!QKR}hn}F}&xmG&U`%9pVmz*gt~~1-qOs3!H)A`(kGeBit0r-vk_&gnVz8_S-P= z$=l3xJrnwbRy%V{h34DS?={zCy8Cc#&^PLm#DZ4XhA)=r!gt3d?(|&_r%TR8`9Nn0 zB6}|<)k?>8b#=v7r#tS}5ey%?&?4$id z+J<{18gHW~+|#seg&8yk#P^?cLdGLOs~LP85g@VX|?)I?7QZ_FXH5ifgqH)*1WN}F}jP*M=)-qC!Qh$4hW}S zSq45>uhBt6UVCf>wLelx!es7FT|L$9fN!V%dM}usr*oN~jSFwHo&8*Ysu@-%x6=niQ9%;PHg|}I zenAUF5XR^9`<-CrXX*a1Hh_4@vQUksdX={=JjZh@jsXd)Ds)uVb{pN-KJ+yoP}KBP zXMQOd!7&0DHBBPpDA;13agnqb;V$WYz)HF?e;p=*QV}{#%J8-Hw?Q?tW3@^9w1D$8 zhRBt3)PBS8RLvRY33-2;$b;~?2Ixu~xrvzHUC#vUjvE<#-j0iv7P7lwxVsvuE%zv- z<#fcD!NQOCc6gY{uSt3Ey`CBx&VAL=78eol1osTN*%ZrB<#FXzTrZdHMkqbH+_I_# zh{iEPL-9rLC)b`+^-Ff{*vE_`{gW@LViN~ln&+hSwPQ{3Qm2X)EKDUK67QhIUyG6@HOjA7m6X3q#dH|%V&HR1EwA&zrBrmo)yyV>s_81v-88Zq!^S#sJR|9`tkp?E1)ycCK{aVNA`i zin~*SyB62rS|n%!A-VHkeY-BDcz3T|Vu5ZMZvQ!sGoVI7g2|wcL%C1Q3q5$j9!Fh#cyLdB=WkQs#A7l6hFH z)EC@Eygwot(sj*?EO?cE(R4I0Y#$96OBGgB&p{c+9%xJ^C=BPce}_G_xpPC07zKUC zU#C+rsmUTyt_4dS8ol`HQx3Px{1pSRVA*fn!SzW4(0EK*XAoaGtatm*9Ymq>c&#|y zBq};@y@*pb9)N6pm~al*`HssiOa||bI@re|kz$7n9Y<;E5k3fv_%EPNqej=1(p9``G-v5DenGs^rcKMD3RR(_CsMnVrg}8 zwPT5hzCF7o{r=*K`pbEzx!;F!LAJJ5sxatK17o;k=k%jykx~Z%AB?_vEbhlrP~aq& zi@D58ww%`DALuDZy9#gHOT$RtHfP3b$4K8#pFn2uh8fH4>y6N%KeX{wQDEy?O3`hu z(Dxd|Td9scTR{|E2tz|dIm=kuXoi5m0g@tEb07+JtP55q%kztAUJWojo^1gy_KP$M z*#9zk2snZ`2Qv>p6+_&PrRo0^D|thG<0_Wd%G<}I$!xP?YAA3WFI!ps^8s< zOacQo2PN7XZB}A5<}erM=00oP(uVTKX0wkwKEi|;817D#{2#96>AKz*)pTZkWIulH zJcDjO*=p6=F3~_9WaLh7kfE6ahMwv7!gQEm8IE(d3!v&k>GiVnf-Mpfaf-f zS5N95m356R;pPU52Y{UIN!Sa7(&|6o7HYCq z?2CyHQ}^eYsloyUvGDWA;AWif+2&yH=>4D3lq)_bj?;@T8~}`RHR`#q`3FNeCVEBA zMC&}FLCyI}NceLzP1d!{u{369Plhl(=unu3^r^N3e3I2jXhz8IG|#qmcCa;Vx~vq0 zDeV?2LP~-Fz&5dZ-IyHYjAi3xZrLA+RyAg=$DeI{Tf5e)MnnG%vtztqIenBTdVO5UYU!91+#E^);8dAS?Ngg%?nrpqE4`lWPG`{t*elT3qBFR-dl6?K*V#yrBt;#+o?SLIPOX9PbX{uI1A0ziOy^+H4IUJH&drp56Uqfn!P@>$VWVs)EzwG zGKpVmPLeit$c3FbF99Pzn47jw;C#)v3$&ihQD}XW8hX88=sX`6yjJM#M$>$^p&be; zlBR(k0=_=^^8kWH39>zgkjThuNWrmleb3r12`cD-JPY>V=YmNOPu%THr(=|;!l#u}u`0c;;8wme)RH3E!#_!?Si@^n7;SZFRyj@k(ID+b4*pJ{zq^dtRRgwB!3@6= zqZ}3valYrqBZ!)cx0ZA$;;7uYx^x4hi|v7sL}(Zv^r1I zR=fM~W3^JFIcRAUvP7N34n%yX=`TpAGF?gC*6N1d#i=wh3YT?JCiL|=ZiCnd7x2}0 z4Y$PQ#v`u+Jb0T18tA32i$OV1G9Sm|iW1E^WjXCSqSI`5Dr_W8yMV&Ocum?YvxS;e z9AF1c0LDbUaaO0OCyKvFHF!Sp+Uh^|$xoHtIT;kkU;G<{9~tbK#*Yx?!hyYTQ*=kb(DHzjd~jM;^Lf#SW#i%4^hy&!V#EY zm~fNrEb*g}YJ=6}bJl<{Vo$_yQJR;E16%JIF=YTO@F+kuZ|B0$VNJsYf9Rwd9AwaJ zqrmqk#ybA5aC3YrEsD2w^SyW^bjs1jjArTkHgW;^Fq@4ypjh{1pOhHON}Nhf)w#Z4 zCK+p(tAgTe4#oht?kzZZ%*`WCA2w`G4G+IJZw3%yC3c=BZFIv|OUd_&LB6-t;fp6m zt0Ioy3=igYO`j@IPjxrHb8~1jt6gUbr`v9sgDqn;&m}nbg_EQ^J`afA!E^YiPc8K= zVhz*H;X>BrYk)=QJn=Gykb}n7&Bub9zP#777o&^;6i>iwuZt(uawRAX?Ur1Vs^{7o zCMCGm;l#oDXh#G(bWxa{a&Cn}mz%!Kj~95B8KGHFCE-e0pe|S}~?Fvv%Mg z?LE1hpEj@lkklx1LvIPvZPzFF>H4kbpSHM>v8j{OoctqrY^_haeM)8Ys%1^)o6|Et z>xW_LMLEC4uF7D#v+tb&2PIu$UBkC|x2N|f)qNx`P2FiaN}dSl5IXGbR93gqFm-SF zrz^e2n9I;+h|Z0Buq?Av?W&(l!;9AAO#jx54HgJpb$U2m@5dtx@uyzhmuSYdaM0K} z{T$ikhQ_*M`hquC8s~E|E{}I#g@Zj3559PP?4kcD`fbDSO0A%(Cyo8=J0@hVOlwUf z;NkDK^F3Db6OXv7V#XoD*}==u*-+4lt-8&SUa4bb{bB4&Kxbzlox@I?`2FFyU@H?E zjdb~%D~+vK7&%}K@?ALXBtXbbo(J>iaf_3@7?uj?oQnN;ej$K)StV=uqp9yrIu-)jAQs=88AU(0L$ zk@Td6Q7jq*QYy>d$a#uhPoY`-Y86)ToYT%4`{K^J z9#Ew27lQIgm(J$Xm9}ax%KQEue$UK7z|X~Mo>_^Gj79Z4o#yjt6Z0^t*tJ+ubHk3` z(HyVu!3m(PZ+RA8G1~y;HvMwduV@=qv zzQ4<|%8+-;NPF~~IW|F49seK)8)FDzQF7W=)jsZz)LYTF@&B1^NS!Cd z0wzAG>{_6=zaC&W>A(99-$^`CAU`)xv3v$>JXDN%$yAf#TFKY5aUHKAuJAK6K!{Rn zEjClYREa)DFN8{xJVf!y%W5~3-L_|L1<%x|y&Sv=Eh2+q{8A&45s^k-Zc6u~87T~# zPkxWDiMw6Y!ffvdkyy0KD`h|&lLB>Rmvp4;mB0>=WjygoIgtl{dR$ue*-%ytGuj)hV2F|qd$N43H(1} z4}ZZogRqtrp#cL9#Tp~sBd^Cq^AA(we4Q8eor#o|&=!&5Q|eaAO{th*Lg)!n&}x#~ z0H{a8H`j15`H|(t(eE&Q&DZZKjZvk{F|jG!pslJw%Fb*o-#YftcqvA!LXa@B_m?ck zXP!)p*OZnN0#$XE3G;)b_Qk)hpWt@4Qq*ODwuT$tJ6`es?T zt^0c}Z{z)X63E2!|A@k-nuTqO{mER3S-UlL>wv?kbD;MX?EnjN0*wZ>l+3eVj&k=B zhHn&AaR@Dw5~ zbuxxg{bm85AKkCR&6I!bFFz^pO(b)zSQ91dAhl<_P%m8Pw}t!CRCF zE7B+20xzpy?Ng}ZPBhn&&)Xn!jKeYHpa%<{woOef{nGy-X?wRj_SpPy88`{e%_N_Z zlST0diDP~p-2n|jOm-q8w+eb$I2~|<%-{2~zEygn>W%bohY!^>eI?&Td3pBgJ{sXy zQ<6tAgPQ#{)qlL^Ffp1`ah*1n+)ohgdhrFr?SY1qz?=a%@jO~dvrGPc9*{1_4>=H% z@ZDzcgX;y8DbPL74`;#DJFKXWS?NrVuJc!FAl}1%P|4V_yb5J%Ks9s_w35^+Jt1gL>2pNB2GpPUl|L0-?zdgm?Rc7c|MDBRD+&D?hr)j)f5_X$+sLyeuGX( zqP-a-i=YHH(r2Guyn(CmXF5d9RT_i?lsoS7e05%ph+7Gnt?Q`NzYWCcAE~H$5|O#v zIZ*SBi}zSqe}I7c_fMYgHvc%y7d2045{4kJp_U^6q{UzKLbwteiPdQO1khuxbE6)q zyU8Yf)k=kPhuRInc7iGN(Fb&3gKTYk?&OHUb+7&}PyZ|kuJsHN`LrmOR+P9g zv1|Q>hdpAaJ=J2RIKRmWFCc9T?b{(=875`ko5e3t@iu6OR$hIcwG}Xkrx&F(O{xNk zpig7wBf8ahwnyT2>|DIDY_`6gV0|F-OOWXWoE6<^-f#O`XU?Hs4IwW1?wy4iK=(C| zb6vGECj{s@2b-ywl@(w*ALJ1yYx);PYkUfQIRF!kJ&hkK9eb1a5up~hBi=h$(+#}p z@oE!63G-4;Ries(p~yuljah(`6rwNv#a|e1)|6m_vsbkRzyc9FdCR-!LIwF7Fz7{7 zb9o4J>-yQ+9R{s^gdSRt!$0hFG6IOvsd|-TG`^#{lQF>G0=0%HnM6VR5M0-QIL8?9 zO}H(>mfh(}cL?4fQvy10ltH;8OLsu~r30qhZKPM{?-AoTQvf9Si<)u~VwYIN_9S3Z zFiv+YZJ_IF%o^&8b!&_<5H|JvNiJNHu5qu=yR*1i5|TBQQ`Q1PG}QPF1jZk`r0l&O z1x>&Ssy+pS*aqQw=Si)-{$!BI3lfY>^-q4JYT99Zm{-Ej&JUqLBY9D~L<|2l#;&hB zw%D8%*1qE-rpJ4|0*HOAMefr3X${S?W<7Nq*=-e;%}`$F7~w0bG*TL9koWTQlP%C! zOW)3;i1V+J{-hQXPp(Lm2fE&Rq2SR&<9&ctZVCMw@}?nWmwH^ahhdh53C7JGaGA44rhcz(AkmYVm4vi1V(|z389-^fCN{WIHRsZ6Hb+f9} zF}}u;eVonEM}%Uq!YWAVrk>j`97PWhLSB(dmZ1cixrdPdCGjm0ZPwFbQ-2Wz{8z5F z$T|$TPxE!C|G|sL^cq9iAY^0notpl0-$xvA89}TDe$-N4EEX^{XSEDfoWYf2lm*(L zJdxKF2a$0{h-IOecysP#kRnJr`&)mxtN4Rc2D!U#ktsr}MgI3B`n;5!x-mCdd4dBJ; z2Whm4CQTJCZCCeZ(BywKE0!9ol&wyo!p<9a$i9Ip2boJ0_cU}%;9zSszwje!ZZ*{V zw~WW}l;JILyLYe^!BxSg?!~lk)44@HcJt6#rb(Y`>;U=WsGlQ+Pvc=^_|6Ob>`S{s z;L6k?xShu1J?jnQJ*jPtzzMVA{(y-J2GQfUj}7OUpP+acT^4mDP*EybOO%(HX~ zS)w18`<5S>z<>3QICwmRQi#WsS>jgd{sp-=vF6Uhi=WzqEGlpo&96~t1%e=%6$c~L zh+v~2G9)6v*#;S@HaxPn1!qG=hZF*mft5+9u>;1}W<@1t+h(h1tAW&bT=6kXU>vOI zhh^@jEJtbn+csS9CxU>md&~O$_iP~}YaHAd0*zk+#|uqdTe{o7=s9{fJ!}J|6=5&; zdy<&3(4rSL*NV{a(-Um%vN`;p3V-OdW9=wLHd9*mGegr>58l4QNB6Mq@F7nJ7^nFD zsX83yyoEsTnpDH^Fd{u%d+!A*0e+uP-nvlj47;h7apTiBMWs$i^n=4;otS!gcjbv(F=W&lr{gf&?!Q<2|| zR2*A+3j92Z&kG4!`<8R^k)G%|` zhlphCblp!}c-pKj9FE0sTTetg;$>e`dYnDLw*=bRvPf zIMup^mi~G{YE_7`MsQP`@x_kHY1Y}ou}{lXP6c?NwF{|T>5(Y=^aTTrXnU(W zRN+*%wP}j;E973NKm6xE-SkDx0oMTOMc+i&IrHa#k`^*d4@{EHf&P)y_tc08tYR5Q zMPw=;RJ<+{sS*%?dE58Zq0m2Z>@@rWuaz%t% zs_SG@CUlf=zNEMWwp!J9*H5RuWG(Z)ytW)WTFjLhK8{%tJwzcm=CAkt?aQp_&x_gA z*)|6UA@>6CG@Ux!NYu8|FZRYnC<^V1Ji4qtemI6VMO@h#h!gND0^S7M0<~yC36H`5 z0-rixSgZi=>r-EXNo+5xDnz)DSEZHAlPy_MFi)NwYw#HYV?@j$7&T?mMdRlyj zATHAL6TZx$h-ia^*ee0wp9f=hj6i6F?033P8eQHLM9u<4D4Abl9pk^ijBSAn+`APm zFYY&IT-$5Q{_@)K$5yYp5KnluV>asjOZ-J*|Kn3;EN(y5j@l`0to>|(nB$R`xIs%v zoRhQLjCcp8YBuI59Fn`==Z3^i6N;vUEGBZV^x2tR{YdS3!wZC%S zq(pWc3Ej!iHx+$@oHA~}tm}qB*Fk(a*3uoq#S7A~_-{?1g}Yv;#ty{dZvRk4a2O6= zjMS17$|e@RfN3uEiK)olNZR3){2Egmsg9)2@sP2>lG z-wgYrx%H#ojc2tfpRS0DuOG@Cj{qc91=(GqN*+{8jJ2k263*{{I-$&~RN0u75G0ov zw0@+Zv_<4y8SdF4rUb5+Z;64hpxnjChe8F~p03im01h1V<5pP#Ks+?ThIn{sZA~ST zE-05kF_Q1CmUrev3TGkP7$WEH)ckcqvV#~_ruc2sytPxN%r^Z%zt%`3mEFcm6z&CV z;{4o^!rg`WG@R~o8|&7-L;~IGtscMV4QJg1DRA5aK3z6|_??nah^@d2&l#FehaU%p zY+^OD!n}>FMY%47V^ZtL;Zrm`E%N@Yu$2sWsqx#r0i+haO+6)S(&xdC{}zMS2?tms zoGNV5v1uWE7&QU>$i!!r)kZAy)S&Mcs|J1kdF=izU;L zX)K9Pt13cCbt)>+4HdK=16+(eSL{kD8yDt3#cmh{nqR*3S;n<2&Z<9;=PNY~n<#D= z-6(=sbnO4BYZXi~`f)vpWq(AnI#Jl5vQawo$7+VoNWZR{gpq3~cfsA~uyH`B@X?)S z-U8>3Pqq^yG->gfD6i`!zHP}Z*O$4O&{nwy$tDtpJuacsbzcjY^aTf+$CL45ceCYi zcmA_EldhTOU)p&9i(a-I8UHNJMJBa35cG+EFG@<>B>WFO>dDUg(zjZ#XdfEh2z5e* zwmZP-PPL9wO7Tda$R(O}H&&i(lOm_9@gUSJgQ-f3zdu8+)+K{68t0n;Rw?^PoI;gh zPjan!NgwWzQ%XWF`1Kw&iSnw%+ORCM{n+lez^A+o*#0wUYW>lj-#DVnXbmCfbEJ4m zFjeXTmNk9lX$jIlJU4HDCUZnzsTdKi=I{K@*wf~a{X|ANh< zn1rz^fA#y83-RFjalpmajfWWmLfsHnoml4|U;R%y*$QCFfxNKkj91v(H*-7uS5I=7 zRb|b@HrhtU{^pvpnZ5=>By`wm*Uf$Z%urvp58RYQW&v#eu-%9J<0|(9p(kgC)OpRu z8w{b-VnC5hThl*_frw2CPU7{44b{Ni(eB*&N}OWsot6|{+3J{M@sPBs-(fEg@OUTl zlXs@XM=g3>YI|?R51comAAQrSm#rxOp!i_nuuFyYi;{#OwK(v#0=6(p#*Yw+xK}#v z=udXTe7Y-&Y|m1(_&3SvPbK+W&}N?{E^~B1;smw3s*8Vamjg!%+VU7Lc(59SPu4bp za#tD-@9(ZlIS-RWW@`r|jGJFKaS=@cO0IGmI=kvossS${GA&__|!M}169!)bJ%Nd46lwu82rg_;KDLtY$s>4ilVA~#JN0a`5!lN49 z>387Mn2P6wfauzk8h8V4)bvRNknWExWg)YoNAYN}ush=lOrB!ioL3r|{YC($WU`)` zHdRp=u3^ejh?ou#KWi@8sEhg`(?wKe{8Hc{lo53Df&)iI(?^OyoY8F+K6$Y{}As{K=k41{x_(#hSe11Jp;|A}uAC zn{C&E4_9@2!DK7bpVwTzFsW1Cc^r#k|V`d9>-C06+@sO& z1bSozT8eg+&6Oou)8K1XUO&OntOM<~$? zc%k}q+UL#sFK=dv&2sf5Ybhk%!<@{4SUiffs9p1^31{nh2K@a2Lh3>}bqD4qRou-0 zdg(0jmAFb)oi4V65J|&V?|AAa*(rLLaem62fyM+v*o)`~e#m=)VwMd$MCEXN|ZKlntTCKOrRph_h{0yLfTb|6#Qt1|2F}VIg_>A!8 z?09;$<1aGZv(Oj`@Lk0Ct)z)K_;cNPouK%E1pC>%Ec+MPpikr%d@m#@WwABMY3bh+ zsbN!)V~}EVC{qOq`Dn;yF~yR9IRCSTy31Z(UVYfOOL{K%VsCYKJ&+xVUtVs&*qdB z9!=X_c-_m=a={a)LQM?r!YvyIy$hFn?;I`9uU4OlSbsyzM(-9araz^ZA0#mhCUa}@ z6Y`~Y*DDZtSh$#cxw?PJlt&=k&oJHC;(dp|zC|{>Nd|hbwTG`|R_*!L{77X!J7?!g ztNJUsp|A;@zB%2!vTjP8LjEcq@4+*>mu!{5+xf$&&L9n_bn;?Fa^Nlg3g%diI;9cL);8C7`c^Pgc zf&6xKS=y=om^Nw+T*1F@N=nX$bo)w{1+)Q0wBTK0(@4gyF6`T%;2E~>cc0^B_@M3|sX+Sdb`u~?EoZGVOfBl~wdPv7-G=z`W)*47B=b+xZuV5z z&w~h*4KTS5}s*kGseESsrcF(Nw)_H`8~4 zw{hwP3UN)pwAF%bi?m07JU#1-&h|{f~atJ;^X3H`Dw|q_5)BA&OB3ujn4Gb#m^PFz~%{_)(U49N8i30^yg_nEPN~= z2Wg^9?YhNH9l|pV21uJKz7H21{6XYjkrX=n<@kpWq-ODh|C&O(s~u|Eqg`r_|5SCr zs7#OZSYyk91LTlH!F;K*BCDMU@|^;jquyeTKZ-}FGM{JEJPh|aWf6JS#B(LmtkW=g z^}0px4bbk7j)_jrjx0W^sHK!33X~;w96588cfC8e1dpe#_QL4dMuojhdU%>X^6@5G zw$dC2g|}rpu729*ZKjB{I6LE~t9gAjzi-W(8^VR;Jh}}XT%sAf=IW_S8Y8VUN}vh+^)OEj+jQ+bc@$Of+;#Lk3VB~UYHZ>$x;xk zsmQ5qYHXyMpIPMS)G!(4Tp6`jJJE9c{F9C%?`Nw&HRR$K&$7b5d=EP_uC-iv+3&|Y zdo`wJIoVGkus@>E-1_98C)s*f$^kE6FQr-F-jra^+lW*EN>p&iP#B=n7`{Sv9lOe$ z=eqdzPitxWP0v!aT>Di*{BDr5M)D$xGSA-z3|+%+=Sxei9~BwPQ~Zm)=bfyJZ~8k!)TQmXTQc_}ANSyrRd2fJisQQMKKJ$& zi6Kk-_5^QE+AiEQQv*RGunL=Di;(!}--`$(551p8}H(fnt(v4#kOJKxlHW`|8$vx+x~SOJ{Wcj83g#k z6Hl))eRKOCU%0s>{_N>6*dytdhsJD-$djlon-jdB)<IQ36%}{I$57G-fkLn;) zC!@q9)3Rr|A7z*F8edL*C;n4hWU_t>`>b{J$5D$Kda!)|yu;0NEnE&` z_FZYSdP;}J{Rb;xqY<%KOYW`ZLWbpKhaBr@pYEh~9SSz@4xeC3u0^wWB>U-O&Rrs! z4DIAoR!{t|%c*~B^!6DzsL0}Gebo`;x`1Q4v~GUd=UVz~7n8h04B1?u-V?MGu#bWI zU3``a`JJRxlT&g@70wuzq_ScC=5HURUIG9pZ%-|17bz8Its{NsfGLH>&zWn^;yas? zRsDV2j2;K@E?FrXjBDwKc+y?uD90istwv-3-9NT(vOmU~sO_Bt^1`0_7mrgnVBY(^ zA}QjV+fU@O9(LAjsZyI|T?@2jT;jWJqva(e7PAmU1^2XA2Ld>qQ984UqsvqoE2C1LTc5w2Rdn)at1l1`i5ua0TsZk*me5PLj7s?#Mq zB0|m74Pe11_?tTebst@@Zev#^kJmY=sJg8DmUvFh$V{k36PT<2v0IoJvH->G1kS9= ze;OL72Bc1svER5>WS>TwF%KrO^}=F~!oCWQ0(Z+ZkC|02FvA2e<8Ha0Q-f6{&KEw& zc*=88OSXMke2Mq^G;JD_tUvRdfOUy)Z>*p$oVaM9N-QQ-0`&qrPN2@ra8DQl$gR5Kkw8hlu ziN@*eV6z@UXS@HECfQzfAGDLuw&_aaz&F*sw-sKIX?lozaee; z(SLg+&~{9)v$Z(ACCM|-mbI;3L$KeU0GUi1dx%%kzULI*y(bJN>ZHg5DsRs2OgXg z?6rierxZCKvPd#Q-naaOA%Zzd8)?>^V=v#4PYR9}rHsAqO!-b3(7lK{;c*8`ze=5u zsYXz=K1}lzE`2-^CF%=5At>$R)gx4me0}Fi&u(6s`#7|z47cp88+=+hYfUqD4ghGf z#+h)2q&vQ8MCrrceM9vbjCMb?J|UN&>F8#xJhnEetxB`_<|V>ZZ*$K{yZZis+W@PD z_sFvN_F#bpbocu#aT33g;9-v>-h%B@#P1cG`}oiRRJ*kd9Ae|6_J5^m_`aqUO(m5FG!`a zOuS4S>SV-#DA8Wi30Z7j252E`%NQBKNQ@<1uQ2OSRm$^h4I<4v3BdiDK5t%}ELCI<#h}mRn++jh#KOY#f!Gnh32hp)j zb3SW0sE=|W9<+POhOARZRk3T`LI7A>hQ5GkC_|JyGE@S!L)DN?w+a$VJxnrfq zu+ADIPEjP|R;+;2pTD%ZxS;&g@81agacoJN-7;2zjtGGCaxGwQx50R?z0H;a>N+wy!2`7F}OMqA1`p$hN(Z0XODydV;iT{8ynj079A{ zGhP$PwdxuA{Nk){bJ-2Tf4-NL3=R8k*<)ZlQscvUDVp2k{H~p>aZ!G& z7Ml~cTVV=gD;aCd1)BC!?Bl<^VtPOPW-bgJPG?(7nte-~ z;L2d|G_OhQ10F@c+_$0+;*JUdor>j4;BBB;*AnGxu2i@Z7y06gW|$q>V$SIORb(~z z_7}r~dU!A7i-iT1^lr0|%^e@{it_alL{NOYORtP9+ z#E`t0XqHNfQi3`F5_0``Tlp4cKOZExGiryy$W$|zSM1wUzB3DzlVopl{_Q& z-3YuHFg`Mc?-gTLDum8qvJp`{=>9W>g8$l*Ev|nnnTu>_*YVNH2Ez0`>X&NKh2_$? zQvr~Gj^jjGqTfn#<7V(G-{4;g11|CjE~T^TmKY5&e(zJTf2-5f%AtpO$6u6XOAx8T z!#6XEXY#Tu3CRDFPuWVeACZF#K)F#P;jCO4?sYZg--p3N_4a{C0kgo&0DSEA6nfz&f5hu4;8lmQgk|DmsMnvER8nN;oIYM z(rio8?I~f#obC>Qv-Z=Hoj&b;lxSYGVel@Dz04N2uWsy*tbGN6e@3F&{WN1&=&J!8 z{n6R`J$GKn*5uWT>w!I`ynNt4(qqq$DWGH2Qc--yS&CL6_*iuK{&P9-AHkuj^OSx4 z&{|%>c^MLi;6C*b#eQ#lOSpsOlYX+3FM<2ef#l_D0-w}8(#d!1-g-VV`v0;y(MD+l z(s!g7y}4m3hor==DpNIjipyh?QaWSMN2hLKyvC8DFZ5Rwy6;PP6^Y;;0c=_mUt{$oZWE>5Hqv zapDNUuurXmB^v3-N6%#boxv@ukaO}S>ZG^ZP>0`!LhNrb1@xcqM;-{`h}P)FGfCIl z=P@Awymv8^wa4>v-)xdz?Z@V=fB$mRVsSj*$2UIHiuo+1W-1ly$}W_ty$*cxbzPVJ zNSonn%K3rg$-+#^t779`s_v6rYhTXUbPK&mIvG04K5u`c2D}~kdXXSo^i%A& z)O1zehrg6zh z*1YLpEG_QX7U*ofJM5Y&R}M4@Fa5FXs7o#Sqw`*vIcb%Re;kFd3X}N&R!(m5R?kS6 z)__Luku&oRO^duFOC843idBeUN^Q$m#A9FD<*B!f#h(icU6;uF@H~PeNr0U*+4B%>O*#tJeOt7QDOlL0ID_ZIul1N1l3*V*rc1_w7CV*Uv5Qka6e^DK zPkR{7jU(Gw_1b&1z`}VefZ?LL)^1jsT`A3S=`);t1?5l1w83dXM2~Msn1213H>>T^ ze(GI(Zx7Ha`KS@qPL^;SUxSc+I#2BywF3gN;3IJ#=NF#UrmO;5Xf#sHbX0suqXIR- zJ{d}lSbRUUrIYfzU53R;gAImVefN>2MyYH=1wYEGBwbX2y)r~s@wd%onvIF8f*HD} zm3tZ^hzeZvDq7M5U5cpTG~XdxK}lxn^5_p~g`%=R>+XJ_oLm+6-S_(zx9V`inkx$3 zEu785wK_SaWtSm(if?3dFE4^8B{q#czR2Db?u&&Oq`Te9KXF;1_`#|)EJ?XKLdmYK zlUT#5ot)XWekeqav{9enx`iwuha{8#%lkLGF4z2xnw(TA0JAW0S6y>h} zir^KTnkS)Dp9ewy60Z0T=cfFCwB|K9O`7Yr=D)F>;!A4dXZx;S-L2LAp(XXmX-p^L zT`0BsO0^}oR3|+j+Wx+~*=erzQSPJ8Ok)+{E5~gaphCa^(mi92uMiaao=5M$LuLOv zRQ}&L>MVe6z{sDmPU^xr{@25DXATB&rv+aR4L;f~b+4Klzs6K2wsw16`s|gaLYF~M zc+{hReFaaU@%w^p;LK~dkU)|4KBF3zAvWX4X`hw-T=Q$$(@asFeF&Q{DoHZu?fb5O z4Ky1p>_LZmB^^~F?eOnMhtT|=VskFhc_s>qBxS>*S33WV&7+7uquSK4ayHfMC`Y&{E z@WjOZW#xSBQ0=>9*|j-&gjloYlrJUSCr%)1aJN0!PMlVIEE8B8_^=nwS-eq7Z`kgh zNk}Wxt4%y1KIh)tPS5w}`m=xcls^EqFK!0vI9r zBtk^ALUW5sN^x{$-?s^+E(s7~QEbigQWoB;{hz7CMn z(g-7_FA-XGp6beH+?sm$%n6X%#Ed=CFyGTN2cAT?=X-Kps}CIY_|R6qsHd|lj`C}0 zGzbxC#-(F-c=^C*(ySduLeGF>ak}f=A`gK9ih8u)jW zUdo_V-`~*pA}lV(J2(=AyziDHDKEK$0KpEk*7is9ZYs9x-G4q7c6ZzsD2P#rg-+yR&u6 zxf5nxNfhs&>-x7qu~H}jcjxCx_%-&z^ODb0Ej~61&F)8^sYM(zw(ooP?Ej3zW_kUa zON@O!W`A)+N6;DYe(AVg=z>cwZLN{U&jX|{B?f;!nj5ww$8#lhZT(~XjE|T520u*v z33`m*PUF#Mm9tG3xNqpIpaq8Rv3_|(e4X%kg7sPdVF-q$rzWkIE5Z}Pyk*Xg{YI8j zIqvf?6`y_%x|EopFMM9N9$f+4#(Qv_diipXD{zRarr{sj>Z`qkj$F~(9!zDITIsbr z*ot`n-TjvhL0C1T%T_4Cx|!pKom#hWC`>rP&XBHWZC6jeO?>ut+aHf~=iY^}f*hF@ zV?KGa1>DJh5pHsr5io4EDbTe5)R+N6kRdfME8WqdE#1zF>UQN5xiG?+_B+eL%FH^x zyZ1-+Zr`J6O^l0WPx1>*JYpBuiHw;5?3C&1@!FD+PK4AzbaBCh+gu? zIJ#ECy2EXyzJC1KdIMU`p%$79f-i?0TL@Z@kFOmZOn}mxoFOv4cEegLsc6;1>xX{_ zGF0tNoU8RyUzX`T*Ame&^w%9{?I-n4>+Mfp)=MDb-5S(R7M7Q-LAja>HL^p~?5!^+ zz7Hh}J1o6@xTyi=`d`n?{d*`4F!km&?BafSJO_g4eGUuoR(15#os1h6O?(}ju1MHM z9B>vAbWQ4nzfq0~T7M_fXSkV?H0}^0vZvhh8l4|K0QX6qH&Fb$v|h3-UM{vbPq$P_ zw{q@+DlXK&SqOhh&|vuw_iq#hSJC4#B;ukk*Yaf%ZvGhI=0xwy33Uh3nalSZ zGo2GECuT^sY>B3?RMzxY8hSFgd=v$M{o97LeLs5Y1L^ADVxhFp^x5@0ng%U)6l06k zvPJ%uSla)Qu$^s>ZFHRda*p|-%^dFf4#7d~4pq2p0Y9o~RJ5C;!#u(l`?;d&7+5&Z z=!pDu+DCQUJch#sWu5F(C+d@^ca}^?@4Cn^lE0j_9n@T&`JOAR8#7xnSH5K}1e+$OR5 zgQYNLA8052xF(`I($BTOyDu}}AkkSQD0WSC#tDamVcmV0h|vvC#C^raqnjB-XVdu> zS@ETc5W=_ce=dL&=6DHZVhPw+@moEI5sYvfg#Ao?+eB0Ih2Xu^=PRp;P)~6%0?ubS z`A^&xZmBz*8dCFVNy_0Qmin>lAG#V>M8GGW(j3>QHTNC0`d+ygsfkk?e-NWw_1K<7 z2f4o0jX{;O>e6a5sJ5vQ$@4B|4H@{a&0lXy^L#kZ0$0ZJqj5%leN5gx1^#i2+WISE z9qp>!df9=_X(qDR!t ze)c77=l|pGEyLPq!?({CC{QR?+^x8~lj6lGP#l65cZWcbB1MZ7D3$_6THK4fySuv; z2o53HJpbMI{jhuN_dWJwn3*v5ePm|txz6+YorrHI;Gj0|FQ=CaH3}T2h`+*@+*R4I z$rKYleH*C>@J$CRC(*aQqE=5C3|W+G!VCln@C(e8mjx4U8C6I5^5u_P`o2b&wjy;34mK;r0eThwn!bqe74ev`Xx>t-Bk2L5$HNk@^S(^9G~&V z+7f>N6J-ebY`Wmie&MDdPf~+qIS+MV(0)mt5~sMzz!$1V4fd9B+k7u}QU)9hx?6Xp z6K9{+k&FCr&efPqs39s7{8$UY{&)RL?&%gkeJC%ADu!@Q3fePOV8hl<+DoXfhVQYk z=8NnSX^V4iWM6t4^uSIMi*&q@;Gn`<(_a)v|1qy-o7aBEj(J6Jgu3~*A!Z9zC#j?B zl-6Vp-LCu;$VF=El@v!Vp+|%4p60FEr!$HD*M8#SzqhCFm5@0>TPDhq>z8lhyH@Y9 zDT6Vbehbe(ZGWOU*5h*17T?dXvPn1fN!m$}GHZv&SB|tlxj%6o{iqf(>_RYW{$O~1 zyh(Y)pC88sTMi zs!4%#hIe>;5ejBOH#UWRrbP2hlm)uMGCiGUuh5^0)jy`lOYhC9 z*z5xy?20p(9$i@h#Bowp)s5OuQb3gsmc||5|t3F%oWbNDJ`U zlgz0dxq}}u;rl_{`^llxv6aKIJneSP`75&!Utr6276mL}=yv6t4o_;6aJ|CAXTuZk zVf{`ctsqf~LSL5TaK^uu=W3rP^%XX$Il%v`@Io4da_Q-hk8PBv)=%&8QO6UAY}={i z$vl8``!DfBS8J2~Y_^MB?HPI<0CrVK3hbutu_lkfuGfBut)8^NHmDk7gdJwEtiOKK ze6Q_)SxCBvlKn!6}Cf4kNxFG6gM4LPr>xw%YuY4<>J$;NF$%NyRj z>w2ntEu(^WeBR3@V6xQT@?dAiXtb9KE3zr+YxyVK0JnVD-*i&nWj%{?e~0<+6K;$9 zly14kjv8rnapVHbJ#!i;JuS2x`kz2{5`qPi@+Fr6}DX_BbJNkH9(4{J{ zPHH&7xJl@lOh!}`G{%#W9t~N3blq_E{c`s zUpXG7FwtJK&S?&bB^UjL@V>Gbn|O_g;hJNvgdSg_7FVxP*sk+viiftBwQEiDf~0Sm zB~6}DbUoV8N(Rf`ufxH0Ywt?`e+GS$vi10muag`3G>4U^lG=uj&8}9f@88%OWhjX$ zS(#EU@Zkq?1#U$g+!$gul-49l!&qaET1+>b?yD@SeF=U>d@^i$h$8izlop-_@ot5` z;c2x-c5IJIP#k&&m)0PuixNF)T9MeLi=dfv*Wvy|%3=uh5)u)L`uxXESaRZ8 zGSqID0(rW=%J_1V@R%{^n|jx`KQ~Y}%-ud9!89W35Wnr$k}ampBCuQZCEOMY)m8C4Xb$De#|fDLMYD6k;k)VfSdX}5EK&m zuAjOOhZ|UU09_JO4aVwT8k>m0{lnq=7W`xT`A+qpTZr5K58KbhL5NutZ27$L3m8)t z<+}Dxma~w$V@=TQx1)xMm)U%+z9#rL z=kx%fx80Vp1906If(eHHE>7jCoE(R}e)MO5Ix@0Z(#V5^SN2lluFoqIp1b8vOHj2- zeQBQ*ss1_&-;6+!8#65YRc-QOK!sDjwHYhn==M%>TSC@}l>}?k;A;ef$B#^_W|IlV zKa9PRmU%A{z8kPIr2iHx8o80o7yp0kM(w?fOjjwAc(txQnqy`xSEy5*u!Ov_iq)_7 z$HxM0Pk)#O_w5-CbmP#L4qxC<-IIgb8y|j*aETy3`1RSOpBUSKQk+#+n@+M^?RZ!K z&TWYHCohbjA9oa&(u`exJpc3Umkw)II9_;1xt>10AO4DPPJpg zBNQS|*;_Udr@vVsy3I&I^gM2Di^x|we=<4j4)UnkSD}Wadd89^XgS5#k8n?%b?2l5 zF5^2V30jwPgj{AnEJPvW(+)AR8m*Vla=+|4s;A(n#$THK;@|80WifIDDemWTkMCFQu<`wIacw)xaJ#_GB+s7imhaU*kPtwG_=F~A#cl_8H)u&LSZxYU(ifF zgxF^gmot@lnL#l8?HBv;uaZ1PR(w#CRpu(y%>w^nMJ`&*WYj#OS zoPswH6v7S$2Sbs;mJMBek16$+J)ez{FVQ~m%egHV)8;wxrO7%Wp)t3bt+biQYCsEh z3r%6g5~69X<5loqqjdN`A;jDX-uE8JQAt0W*sK&>qrUwbkA+I2@ktb!`XQgtEs!9% zm!oi?wWZ}?jQe3qZs}pa;%8y2QJAe7j)`^l0y~uB7IA*jQKas`o0t%(bASuHM1+aW zufSZFe|@DYZ@}dgDlG%V+mphIMrQhN0iclh4l1_v`_9?Ih`OOQGnASB$wTss$eHY#=9^HRX@Du& zM;6*vlY)COO{F(n#1Blj%B0ig$KO7kLY51*!4W@pi8D(05$11Tm1Tge@yA#~T-W84 znfI&ao)bbDG}P)cB}BPqCySBaL#kR`vZo93$o>B-H~urY_z{DM5Yznuw)j4&Ce^$4 zs|Mc5%-fG-!Ibjg>@GwL_rly~ko-6r7q)Ws0kZV@ht7h&4JvHhP58GCFsbpZ^p^P> z_tBy6GER50%YXL%o4+HfW4(*$)zCV=0AmnBpuvd8?EYQ>6AYGWZz?&sIPY8{eYFYXW$n0OD0zDAPM;ZJ2fX9E88NuTIGXE zHs-DHZ1;y*vEUfhi6^RQ0FzvOeuQrLg3$TUZba~3J(VjYCw~s&d!_W zN47MR7uE!hfYiQZwlwnSo&R-o2jA|~x!Zm9-*|ek)d?^iW{;PtS+n}d80R&{ zUt9o!>Ne9so_YN|BMgC)BHxwQcP%8Ti#$F|w7+k^Nf8$fJ|x`baQfCoL@SyZP6Je$ z4Q>XVlpdY)rfWX^r5V0Tjx7MCIP%j5T@%chKIzSFoNYtx!3+NhY^Jo!nYUgK%QV;E z>m+l{xwaBSL81XLn|ls8km#d)dj7aV=DwN(l!i~ue|^T880b2BpB2|}sn#EQErS?X zWudFo1=q6p?<1uq@3`*809vP3Ss=P0P~}EnJOOA4zC#Rzog>qPwoX|N2yC__*o6}Z zQExCVyWZbC95yz=e=%~_cT4~hI*9k^Wr%pOiJpf7mHS;W!r ze|a5}p*-?gixq}P>!+Cy;4!eh@mjT=Js6BZCG!tM7cT)ZR>&su%e=EKh?SJ{l_~X_ zbY+5n3|_?1t7cBLkh~arIhcr|9HptOM7^l4k4DW%{S?Qi^Y9z~5#t;?RG0X1p|ZmD z`IppEMf1n0(cQf9M7L_GxeYItH?&`|ZbdBPA`(!alA(3~9Dtopb65s!NM%nXw+MBw z_^~wjr}2?^NY2Rw@MkS}S(8-;skMqt{Nj;896#Q#zee|By7BbclxvSBK%Xh#;aCa* zzkEHpYA_tNWn@IzfPQcdsfH4cGJL8-)a%zbc9rWaH~%I8sF?z z3JgiWmLyTQB>7b)k=ARZ!jnAF zx2RT9?b_{smp%}|BFg!7>dM4d_}61N%Y+0s#9UwNNH*@b_H#YNMIc)B=D>r*x%|x) zYOjp%6IOm~jOLV`0MzT%CmxzQ^D1+MF8H>VB9=8uNk<03tB7l*@%-bx)+_&1;Gd3T zr5^dGa4`ORQ|!mQKqrB;Z%VhwOD2qY4lnxmGx4Bk#qg}wZ*G6yfzY20_dkYN{9h0{ zSbcd#eRl8q^^wtC`lrZz8qG`Q%0F(~Y;zD6-Q$5*Q_aLMh}V7k?~ZqGrZm1vBd&Y( z^TAWVpC*T8)1USs6#xgo9e5d|e@o%bOtClI{j89KezEkS<450`lCvC=MDT<*`Jjm* z;#O|OZ#at>Z5GQELNETzv`FhOwHlD4**~6Tu0aAym-9i!BG01q{`lFK1oz6hjBTDV8K`ATc2;J-bbJosS`i- zyj64gX~{={J@#3ok;eX;?Dwk@LTUEDJqZ##h-Ff8VzX}jIL@34yWJ5%w#OMDH0KL(1He*PJ_6J51Ea#W8-AS88W&* zm?P{0QR4axN(Q6y4y~FLV)o3p-l_7*dH(M$(H>W6F|b*ZuUjX=KBj2Pxi75vNZ48_lIvPxes%|=>6wx(`>jc<$pN>#6Ug{kpUI|*0~?nCg>f|S(`Ua^>D%anmm ziGF`Xe#z?aRE5J&JEldER4W}$kkd*Eop!;6eFGSN{qecA!jV36lv(zy6eW}Y9ghRe zM$bp{pL)X5g>me&f~AALgw1XCjE>kOqXe>n<&p2Ts==1zck3~TuK4b_+M|Q|VOY2n z`-!Hstp`uFa4Dkr1YnjtrZ9=RleiuxF-_|^6|?zmGWY!r)|`8HxVU8t<_d-i1*Qib z0S9ua$MY!HhhV?rF|_#meo?loURL$>ti_gwm~1w3-Ga8#BqIz%u3Lg1F&#uMBBxs) zkfNVe;>~_H8@*UOtK_+ODVe2}_OF{HyrzE@7~QFm5f(nM?GG1lEY;oaOOZ!aibUT7itVqQ9E(r zqIku|kB_3EB0<}K(DDcyQVW zAaRa+5Cn+fX9m@o&T=&!!1dAk`mXpF@dH`H>LQg8HKf)4c@ezCKVD!lY>Y>_gjhJZ zKaU}E&o0PTox9H)@NIvh*7+EpF$A?4DO5`Q$Ino~_(Be0`gHCf*gE^_%vTe}{qnw+ z-muy-;`-!{ya_tYQ6FCgGO^TQ-R=2nee{-G*vp{&LH{RLHKJy3WX~3WAP+{@=Hlsq zc`yw0gZqXj)4Re8B)JTH>ocwz`$^3LJ}x)9@~pVjmOHha3G@3;zw2wkdi3fqE^8`~ z%T!KbIhsH!l$7jO?xC8-v*FZ~f>k#uC*KO|XEvM-n&F(r&AO2|lmrHQJ{qa7IPLY- zX23y%6K8UKu(n)gVV#oK`<45r|5CkI7Q8U03bf1Yx-|`w(zuP;Y3clE;-6!IaQ-Sa zHexOsXiJ9nLkY)^p#@-)(jN~fP9kd&T|$x#H&D~^5T^a6`~LNg%}IG<+JDg=q3kK1 z6B0_?$YI&fmMF_ei|v{mr=5@g>c)nm3T3maJC-7rhgn=xLabzhzZoS#GHK!G1r+gn zkw(RrEbb0qbdgTYHB?O$oMRkF9VlxW5(l%_0VE@Hq~ZI6t`!|Ja~{vggjkKG zRvp`iZPND5<3Dg6KxUDbXZ7GXQj2uCzqt{710NmXX@T+Eum1fF+l`}*YN$5^|78u2 zdKL*zvhjbmoyaXrdTr+S&wt6O_V%MR)(1LtWW2m-OuJx`Krn2lJ`?dv^5Iv?F6?SN z-LTenL_^{q=RtOmaF+KN%x##+KcH8@2yp^DpD&?n7+>aZwO+FPanXgg^f{~D!qjqO zK?7WC;lX)G>s0mno>s7a{Lnwu_HDW4k#&^)y<1(fUW%Ta(hG`LvptpfBIk8Yr@ozV ze#dz=#;9c1wwpB2Rn|so=Kh$?W)f;2L-Sh`rph+>AJD@HFm2vhI3*nK@sC=TI2V@x z&X~wvRuotV|3Kw-G04}S5|qJu_HY19m23BjrqlZdve|e(B_Rm{*107)E!lF29b|j{ z@?M#*d7=p%j9r|!teMGIP(Z#=k9%~6pjz)cT@(J+1?#XaAR-PRQLUBAGetr*8^KSq z>$~q+_>bd7_AYwx(m$(bjr?ml<92Oxe%7TKqGOcKrt-RwsX@`#QxjJnUIvB+^9sMi zWIO-91bosU8yJtA;r*I1Sc$_NMnH7KLT$L4T-MuAH>ZGZ=ll}l@?fF_S2_b&?K>T< zm$z^lwSJ%wvS-Jk6!Ng0bmKQEn~)}rb^eNk=4oJ6fUH-?RG`cXg@Dj(zFE(0sl4YocL}8C0-vdVKW3xU*KY# z*ba=@bcQ@vbC2a;v2rImG6KDUs?S4yR%L*y8jgru#j#b)!%tdtbKyDl&0O9-X(a!N zmL5=~a)8bKR|_47;@5}PV*sV?!vttwfZusp>3+@;qX|WyPX*5(8AjTX4T28w+fSo? z(f^$WSoiSU%pLMS$Yn8hX)0995&v`x*nA;&H7dYnG;`O12wL*(sKl(KXgF>w%=THf zUk3NL2Y|2b3>%z&#F0xWKAx`wE1u>mQx!YJv3`W3o4#X_*?&c976N5Lw@TD2K-_hK zkpZ+RY&y&%Y2SR0?Tf?4uK~2rs}7~**6i1mZk-{m5c4BnsaDVC^Yy@8P4HvNY?MGV z{A331kN8w*htNV@d~|G+<+!O2@2)FxKFztU5@ZZz4ksA^6i+0TbQEjmfK0X)!z@Ye zfm4u`u@UzvugNZq;RK0OI@88OOHywO_^Rhbo3@S)BkCKuTu7x@Z0qE;7 zm~D0aJzNfsIxAGwpG5i=y6v(c*$;$xjuea7WQ! z9d&hky~~`@ ze>8CaZCXTc&N$~5BUX_d-b1G3?V^T0c+=2_dNm=+6!fH|uPE`D@NIfgf`)t0vt|=r%Z!=^T@INAcEO#^OidCXi z4Jw`}o$=R_fLKzV@#BR`NRB5`(nsESl5#wT*$k0B4H*|%(wD&tz<mR`j_hLb?Or^+{rZ!pzt=rV;^5~ExIxc%1V zU$z+g7E&-CdAvR<*xnx#TJ-K{=Wan7^6Md}lbUF*x<&xruuI*=PUC_2@YaT=*6P%S z>0K@v1f_^2pqR~nS#uiV*8O@3iRb^dpizK$ZjXKMvU+nE_Leo)TQJ>x&XjAiR=bp5 zka*cM*jw-b(~*_<(D3)%MF$r|dbZwCzjhk&4L(z>IZ~yQ^k392S?8x{>mcPwTk$DM zd^6^j|7xOt?~qaQPQB3t;*&E)V}t0pXlorCs7u4A$*SB#KJ?U10!Xt_P9xF{18#VG z^%&C??u`?pwxBgBG~!I{=GbIhj(!C&dH?x8_fYE3psu;2pgf*%3}BLXPr%Hnft$o*hR~@J+G3@x+d!9#;iU#{8K@^b*^YUEXrxQ zpAg@rx;BYX$tISBYxK{_!iY=z!~Q8UD`d7K@VrT6`rou``l-amgU0Pb3nDY;qTF?l zC0il323_>ySgw?DL@^Y3uRVL?t8$oIza5W{gU~3VT0K5KUfftP3li!fF+L^Lj0?{1 zRz))`h&((fNvZ~LZXR=H2@|t4cOuRj*Tl=g#0O^yCCzmB8 z9K0xnOQt%XaUSKT1=krcO;DJ@%!M{AZgVfXLPmUKAny2h;*S?>A1`bJpp_^)})(_YKm&gVcf19Y#=$U?i?S# z+XM5zaQ2v*X^+(04YXFCY$7SeKdq#_4tbwVP@ee7ShP;B4~woS&FjC&Qn%~xR)Src>kE1dW^~@UuJ97ok z7<+Z&itXaJOw7_Zt|{xhv^j^6Y7J1Q{;S;1Vp^Uk(f(HX&H~|o;@mJF{7eniGgsX# z$_kUj7qXu=fUK-Sm97c#qFrHY@gB3CNQCKqes}dE2ORm-ADNkm`-Z%=s6HK;#ze1& z(g916QD4kYN=8J3WMFAC&b>W4Vnf!#=>9?m02#p&*a=*rg9yAmNTX={ft2At1zkKJ ztROfS6($GIK^0d~8ylR@RT1q-kUv&C>bsTeC8Om=$EbAdeG2M^;;JY5Mg+N+aX4;L z9C9{Teh67b!cdJh432i^S6osOa>QTzkjyHrMHOshHts9E_)`ThOF^Xg6MY*RKfLq0 z-Mbv<;z?P7du5?p*Z@u7uHY-mHR0=np3@H#|D9IBRHj(F;7>bZP{E2o1TpK-IGy-z8a z(@Gaxysg0*^$v6FD`3QPEz)eK;}69x#_|9Q)z?0^}NDg9`jyXZc%roRI za7pU0*w?G&tf7a?{qBvUe1reNctD_&@5fU9;NG&J7CKizda={ZpM;gqvycal%J%#h z!w8ap%M~4P^m4#MuZ|(5)7a%PGZs^?TApYyt8hf7NWi~AK9P`cDV~>64k+p|3C2!X zLax`VNmec|Fapg`aOco6iKrVFi5%7sn-~XHU*O)hqEY>MEyyPBQq4BoI_0U9(DahZ zWKo+j0hI{w`<;UAr~lV)h=yf4Rt!-fJ%UI$yW#->iP<*_*|0SCz$5$BHamv3`UMKp zm3c8!x_gd&20+bxvv+A3_5SUDi6_m3_}cw1x5>}ln!Qi9EwP$*e%;baxWrX_S{>VD zVrx7%Y`aLv-FAj-KN!s>QjW5PBO~0saM`nIV6u>0Q4Z%G^t+Q$kh4Wmm zFd7mf9JJqbCKrWl`sGS^jN)vXPw2Q2i=7;$ut(Ldy#a|H3$$z+pZa-=sz)Z%6}?Y& zl!KCB&WS86H>|1sW zcRqE&Y6v@5X?gk8`WmNM9X`}(7UfTH9z?7v)!rBfmaD92y#Cq*jjLS5dn>-J8 z?$`~mshD;_ze74qm-1EhK|O_j56-L_oBW(eP3`flCKk@g7?rxce`5d*I}oc5&T!rS z^>w;XmGnAdLvZ`;4@Qsi6HP9Zc)7Gn16*omRgu<=&hwbPAwG|K#uh4M)jjq9Ja4rk zO~^~yRi=CM1cLw0U;eX^P--)QqnwKIJ@?PV->xEEC@|Z|S1;`|zES>>DdT%lXL(TG zn!{u}Zb|Ht7#_}s2zgBeLNNlo_{>F=fxQ=rrYXF)dqqh$mL-B6r^mA)Dw{#_*5uqW zAIuIoiV5ER%0hW=x(@s_@kkzE^+Uin0r3O0)8KLoqxL`ZY9d7C|B8V8=o!P)r|%3_P}g;_yo>g$zf~Z%o1m65slqEURk@pDO(ZNi6MB zdpT3iy3(z+`0`{sy}>3k`rx!D?^q2dI|er*n2I+_#Bx<<2d9*1ol`hmeRx!gsLJ&z zLv4dqCA|%`Id$*fY1tEPPEHn;$PfBc1W*4`D7MPo$*OgI;$-anxlx!?H`wX&7UpoI8G8Dsd8G~XPBGQT-mPx zh!>Oxxp(Xue<#ny`B}E^x6vaf76cOy6YwcxB2Yy2Ec2pGiuN0_U|)=_o)bA^;zEv?nd|oUL2dZZEuZCs9IpaipwYzfrR3T#V6`XTMkf%}%(( zcwV%!WcZfdI~B?mgOwN1^Op1ArmF;rR~@9uHup>ykKZO1m^WX;%jc)I1 zn8+}QkAFLhZho?^+q#s7b1t*x^Cp5!`9^7)KGmh_qfYF~7;Kt0OO|r>Rd4}#*;2%S zgon@8UyRRK)*ETXlBe=<&VjDa*zQw`_8%U^Jf)24s!jDDI;`sK+9zm}PY~BLnj^Rp z|L~0nw7i!1~-17?PmN%O`;SXFli-1co--)MXlsPsQJu^4bUpU8{iTJ&dGr z_efHp7r@V#XbDgRk3ETL$~@P>cM@@r*({OmM^kN4Z)WVKn&3&ef^n*t3RyfxYiYQbiBlb5~f5|1bVbY!^ds7XTjEo*%QK>XDR%!gV7I8TvI`t-7 z^<8Oe+K_4-W<0)dkW7pEhO@P0H0BuQg0WMz0w}UqWbV(U<;-NB9R5cDkdbn`5Cx|8 zu1u<5>eh{Gx5sN)=}c#xZ|<*O$#gwvaWb#ka8KT1{nSS`NNPmnW7B(3$e8xBE5{Qm zc;H1Y$?F>d54!odj~VG-?24mFp0VX)75U8+t-Q=FcM^&&Smz+o}JlaVfy~;em&YYq`01(K*gP68MnMlwOG`StcWGW|vrEwrT9szxG%p zNBJn@b&f1U#)PT|haOPu9;~W~PmK)u{^*5z945c58Lbw~uzI0C$5^*|pCUM56F+oM z5kD7dh5Y|9zt}x-2iWxk@ z41C-sox{SlNzKreppVMQud*$=*W$sp@m;P~rK)XTnncP5Q37(ZdO zX^$%_6S3#oJkTD{)l8ujC62}wd)%Fx*JjoxxqMV+80Uj!c8{1}ab?VezK0$EjiB=1 z{Wv7C#ZcMNZ#VVyA#2_lfA-w`hj5TXmELz4whRJSsm=~=%pwYeITu-BbmTGl-I^P0O7 z;h7q>83>|eRxH*FQ&Vg^dVVvNFQ@A`LkruqPYvQji9i~E^$C7{o62WnsebpQ6ufma zh-~jLPI&*txji!I9Rp|F!0YKV#Ia+g;}>Vxp$00wM&E9uF4LWr@wZUzhqL%Rx!f?! znJDN`%Ey+hMmzLelKLz;5!-R9quNij&uv{?jqr~R8^M7%Bk)s!Y|&2vOt(!FU>bez zGizjGOltK`f0n4!W3TnARW*~4g15&mPbKm%&=$V>`EOa>1HU!=9$Fw!KXqO6iXY=O z^OSgQJOo(vt3BroS*|8ssk62ppWY5677{EY_`mD}IR5PH06duwn|+C=`Bb7zS3`;R z{SK(*?b>f0{;S$uvU{{`{+p7W@=i7^_|nyv4aofsLZtSPbh^vn4Qz>vNhOMy4{x!&`JHL4vsf|(vIx763%-5Bt7 zWOG5?;rUjBSAP3>@YNXjjU~U>fuy3vzk;cJybt-jI`H4cxiN=hPmBRqQPUXobQ*Hk zpM6l1QqbIU1&yu``K)a2)_hYOE89qfF?1!&n8LYb0rZ4?iO`ZV$4Ll`%jlZuDBNy} zB1ilX9I6<*t}QLAdm?BgNFDCsA0>PrGqSt>^iO6m0q}ZbrWk%tTxH@h)OX(^&)ovk z-Xoc3kzbTn_38g=#V)hH zTHF&XdC6SJ_``qL*016I%jil8qkcW}HEFO>xBz;|a}JIiy5vmvB4ae4`93k>^Xt|& z-7{xZE00On^L}}v1BIosgj4qdA~}axNP)fjTe=lB?RQz%gDauZh|gv8gzKL@6GzfU zD~&*!wgKJ3Hu}6dHfla!QCnm!@ZIy@Z7P#G zD0bH`Q8bonCE6e&g1n9NzD4CFT!K6?L}_W0RHqQsGN*+vzg_jsv)RVZ`N_m16#{yT z*WQNywDYCsq{?KBJv*YO-iJ&i{Ag+_m5u%KcuZ>rX{MDL9iOhY!r(Mnuw%s7PKu&U zdx*}8#OJvu8Rf^BQl}e2UWA}t7GrvSU{F10@27z;Za1xHfi;Nx0l;olF{H>>6j{U1 zmAvq6NhT8sruvuMKcdVMtd9YI11fvHya|budvvEa9F&_Crq689&cLcVLN!1buPX~(erHHPQGKLyfE|Hk^DaM&{E;i|CI%U;! zmz2-m?*eC3)dvh(zbeqv%0_p)kL$AxcZAD=uf)S#WkpX^A@?^pCbeq^*U$hk0!?i2 z8>T>0*~j3^5}d9ehbM?k{P6dAn&U3RkBWAfKXjZ_piA`#q33i<+$)sb%+ktaJOB(o z_!jj>s1d-EKmNF9_~-5esOfE}=p2@6^$P^;QI+tnS8>lLeiKoRF3A90_?PpE(f3~> zcM<_+?U(VcA>-)!i5A&oKTBpQz~?V5Tzn^HKE5#a&UPmolO1M?&x2AuD4TY<13Oqo!X1^`{#ped zJ*s|OKcN#Fo{;%wqzaDMexKpK`IzGH&xl~=2JvoBM}xhiUFg@EIneMf;VmQn)@%{h zWOuVT`-jk9_v>sMGr%1PJe*dg<@RhB2h{FgT8?i=hzRgH4?QdC4?AqCK^9@z=nX+| zY)DV~rO)(FACp?5D2XCSvazC($Mg-YR8 zT4+<6#<~@yxrnD1e*EH_(WXK1;en}tvN-?|fmd=C66Kexa&z$dWm4(o3$1~V6vB3c z6XGQ}gMm!eB5yYSPLZ-4TLp$vPtkl8bXfg>D{;*W+Bl$U+RTn<(s#V1F$j>w zWUQ-9rU|u8=QcK{y49;n6wE=4Je}^mTPD>T?+L!K1>70>!!E(*lvnr?hk%{@FGqs~3B3_JOB9Q@g`{TRz-|xGJMM+80{r8CN^p0=7 z8^KDsAgq-MW(C8G_dg_)W(N|!jGTYLQ-hZFvux&{wt9|#k|H;XB@MWKFK>`$l_;ix z3qS7icsc_o)5}FJGh%qfOJX_V$)dDf?z4h)Sb>483n{~Ih|_@!kH(FN@Rwgj2oSNx z4i+VKo-n&qZj|MWKh8mkSS2JyvB#)w_ZE4`LYx-F`(npF-d(7QC0~I@@reL6QNHfb z%#U){RA@)mq^lz#y4Kc;zWLW4Cc*q(cPah29~mKzNft=d`;lrhrn;|*GCm=o7C*Hs*Kjp zN6h;OvVwry^ZS$UJ)eV-*rYhj7(~9_t(6L|2 zf3;3U!CAcB{L_q^iRKy-Ul%}=XrN5Of2p04+KlBoW*NI zdskt@*SD?6G`H_37aRG2#{S1`fx*i5#~ALaxW`r|2HAyySGXIu%@6w z8B=Q_JrQdrpoC_ge`&xzPviBq|EjP%{u~>-vfs>ph*>qmb|8q(;z|Ao!iHRlEp^_+ zwnJR4h5M6R8+rb$iXp_kMSm2H-+P*_6$c?d4HE~%#(HP;ss=J9Yx!)&aI1W#k2yZ-{i;Y()e)Skf z(pr5e;C<9#gusJ}e0_+L_-ZsI`+)Nb;iemRPmZmUL^~-B&J9{bYEo&2>N6Dbp=$&A zycp{f(y=8IaU^Tia*>S!HF{5og9>aG+MuIMULPmALAzYxS(2e;jyD2XI)mQXb zp2+UGW-_j3n-ix_II3)&-3fNCBP*E34D9?aU*YM_?ZOm0&Ng2UVN3)rZ@ghQ&`@kDU@Pw)!U$=_dHABZki+k< zBD{S>u;jDi>gu-{8WPD)YHYpPq*5?B{W&f_XE_dy!lFf)aFI}0;$ri37vCbQY6HIC zNPb%^l*|S2srQCBPdbSAx*tyRt@x}s*U(ecuXIYBR>?&!8j!o()p7;ijaPm8;G^O{ z!qsSG#GGyA;~cyyNn`z}MYGL_6v$8Ovu$N^B6cbp@2Kvjc^w&#=exul=N#wp&y@fGGa>?;SdU^h=Fibi?R} zi#QVMr9N5nJwv;LD2f)JGd)F8266Ynq_J!vLPsy+_MA_68*2_fH|k{ZwRb44ZRHO? z(-15hz6dACGtN&mVGOuE{JwR7p;Elj+7-n-BWR954ME2GG(w%uEPe%4B-zU!ercSp zhO#WG0YBf6ItwbZ1>rv=+KmrDRt4J?3CB zr1!f-H&h$9K3UdnvkBr_adgM^R%M--v(pnZ7=QsGj@}(7F#RqT-9381T{x64B48v~ zsWE&vy+_(LPHnvj`~%n%jXZEN{%QAwNO43QSDfWnkqVFdd|0p-1VB+>42@u&Fo5V&~kZ{{>S#zbOO6(`owG z*JzS8g&>I|``x1ms{WF}83N*_4(Szd(JK$=Opa$51LTI%xNfC#p?Z4Gny}T>SnQ8GqRN(S6Y*~IF`|$AWyymU zkCmfs$|(JcIGe49b5E$T7qVKc>S-}SgL1!ITf`3)TP%$Io0ZvkQBMlC+EYqDhwbnRXp$PVtf`S_TS-2zl#3zV9i(X1F|-Rq3Zfxwh4zNRRuT zOPaNobjEmRPFOK?!3;rHN*6Sf;@U{WTZa4HNa?~kv)^y#C<98NMZb~p`6F@N);t5= zJeh~yDQ*ZIZbP`?!WVRBZ0OCO@E4VodckFbi4DBQdZ$1)Vqe}d|3y*wz(F9$%FSx1 zQMvx|dgB}Pf%End|HsPipQRp)oj63~YzH^uz%?g9dcVXjIldk4v4UIhmXO2$AjL>K zZt%p&%`BG%6r--p#m0PiqUVMDWb*&PPqZx=0Kt#b$s9Jh0j$w%0Bl3k73%0Bq(5{q zwGmD5V6Vwtm${F5Hv2Co<{2(>mVAb>t5XezmRHkq^-pOzwJs6)sz3L~bnU$ZmvzN*U3{7|#1Ec4`kv(){gtZrq_+_7lYSB$C~hLB@(V>C9XD? zr`^4lN-)Lggnm7;pVG0-ejE&svtlSvbA5p*VB$2ouJ-a%cgewFg2?J1dZ-iB(SuUh zQqwu*>JGQ$PK(gZPpms@gQJ8?4TwI2$|*Geihr-${9h~pDC=keO3@)+*M02H4uLf2 zUv?8WpCo=6*9K;I&n!KpW5l1~YximQeFIj(B-D8O=Avh^eZ_@^XNUBj`IP}H+E-d* zxa$S>^Fgi+h_CVMU?HrU`MOAQx zFi#0ZXV9ljq)i&j62OaJcRaB3UmIAh2MxN;4$dLsvQI;;BhAA#M-o;9JnDxGB7w;| z82v4lGnxGzCbT3w15F#!5$t&)kRP)G%1tZqudGknxxaOZrAEswS%f@rU^uzsC zRNAwTOx+mmM+Hl@IPTvT&2&r9I4; zXj)6l)YgUH@P0tjw!*GolQcADHe>E$MZOkOCbakHKB_3=6^@CbQzLp1(IM|xto}ve zW4PqI@Ur-4<*J599olo;BjFgBc~m?zBuvg|<55##wexNup{H1R->B~J1nkT$??3sJ zAOVkC1m*0-0w2R}JNI_(_@nuy^!6FFuT558@~?hM&|*qA3m``cU@*EShm}P#Q4Vy{ zlk0K>pn3pn>+HvNCKjVkvCmQVcW{p)PrxbnYTs8c4qdcx{!1{Ww7!f)^xv#?)$r}C8RuQbuTKE(1re|r9Y-X6{W+|_Hc ze#Ijhg^2>3+d!-4c?@M@y<~pu(iftY*IlH|ac}lIU&on3OVE};cD~C4SCGgTpBD>QI{zBYP8T#@;@p_miF4i(1SpEjT}=l*rO&a`K$o77)Q73^g*S^@U-EV z(mm%3;o=v~55VZ}2w5j5AhSiWB>b{>crXvy#{e-s_F~CHTH=!scVo|MEO^Le>_cK@ z$f5Z{H{QHx%8k%yI&_ZCY^f`Yjxr=PvrZ+6!RCrMePwkM2Lr|uLOkI+7w(i-kW=po z4Joy~8|#T;D;;oi>ZGsT+N{?;;e~|E-tM=XbG1j?pV$ESsS>czLou7$*`IvbWztQ$P`gs&VXGIy? z5((avkx}&EFN*=H5rkqZTUv^;b2`SB@CY3sVF~ZUdFPLpO-vbHamuG)WzcyeSuw9> zUl|(4u;!#BNtJ0%G2`g-b?7H8HE9Lt^q8+`CEsxb>f2^Rs(9{=vLRBi;FBZz# z`I1VMUk+|(HAIv}0r2NC$E^4fdW~sOt+F?dEVK6#r-cUcU%ezA<9m#|5NY3J87A0z zqe5>uzQ*XVxx=Aq>-t~$p{RwT`NJ%HUrwLAh>8t438n@zG2@(CMMqO1CZ#Tyirszd zQ(Krt1-i*S3eUIoSgWXn)el2;R0HVN=^@K|2E(1Pq9F(~yW^=)c;H?jU$MT0*U=BJ zqrJ=uIt{OsBUw3H>BhZQPu3!9RMt1D~Vs<>|}F z{DC)p!jo1X%kEF6@#h@wmk^2d@U?%knM|~+<=eaFgjI{1?sVAD2EcKJ^o1avG4K%i zmr+)1jXryrqYaT%bW7X$9}9b|<4i_lCqIPj+UaV5fLLHH9<$2`W5>=_#5vchR(EwU zkt(-Y_7D?+Y3}ClCmma&P)}|PUT!dy-ijm<{El}P_i6Kk0)tzsqZ$4{I2M}GiEwoz zg?WJ15n?3CZuJx-t3DYa>D*c{cHE2%tsWgjTC|G)irS@_$|!AA(e`yQ>p>ur3zLN; z@lnQYZHdAC$5sa%usK2~Nq&rCHQk8NtP%>ZzLB^LMJ0L+qxp&(=j8OkMVMT2b;?c- z^R|&i{x}(9QoTVrA!0mjpc2oY_jAe7<4)3~-%22B^W<}hN|3j(b^qm8E2#;ogEhPj zqEP@s!Or%o*dKLhaQnRde1b55ZxxeKOhf#t^gZZorb^|3ZaMHEFL&#l?>1O38attm zQE&Nsn>Q(i{}(Ea%aj_!;k)Mhru+<4z3jKG*@n* z-Ih5=6EKy-WNHv{Sl|3H^WOo0?4MrOc|m^>y@ewLtP3yq7SXqX$^==Ul-p|E$(+WP zhsHADWGV@(%aRXxjr|oG@Y*=j`3O}r>4JET@RMYARq2l6H>Y`31K&BiRlWTg9{)R( zLYINel<+fA+YKB#ku4xFdDBJl4$H|G^ISsU;Cr^ff#i+k4VM5o1txxN{|1^|q@akO zD{R?)51WuUPeZJwr(rN5xtU0a*fkrsip3_z5CN?)X@@w$642Bn_whgaz8Xx#2eslt ze^xy}TNGYlEps19Ec(uNt2JKj92k6}WRiHjl!3aNPG=JNXr&N?&h3jb;Co=!R5URg zjopKRgXAKx+$s^U<6tpYb@UB}y)*Rj+3%mL0fE~4`pm@&B@jiNq*W#2*dBKiqCk*r zIwfeC>m^1}+ueLu=H*KJZc)EeBa3wB7=msdmn?&Ka`CR4zz*;Ji`1K49XaXwqJCy{z(;f9b43t?78^8lSt>k2rGY+6zl6H>pb7^WB2OI zkd06i9vyQBZ^)ma4791TW-9>}Fi~AD&TN_&{hluti zgcD`ci`RLvE6=X);`X43AnVglf<~QCvgQ;I&sJ7iM_WqKrF!FLx1%y?)B?WucfNF%S#mc9d+nhHCY>5|`Ucik8@o2p8P(7or)X2gjpBb6NMv4Yg|$vCdOld_ zQ{SAJfd2?SnCe37Pc3eHtk-rsX*h#?@3}Urj1V)h;4wxP=_=scgFWCxZNqkq8;U?& zaV>=*o!klR?tcPJqiCO#y-0dy}K`sE3>goS%eVudia{(2?y^G8pf zkXC8_4wzCHX+-=uSDiXX1YcO~dVJb{@^Jz9EHEjFdv?675{tjnFI_nI?4Bn_cZz!P z3p1&^&?&&vnB}cH>Fs1cK6?T1lJpJAl7^DUP8D*0c5v|Z2DEw6jB~ME1onhs_}dd# zG<|7bRxxe_Bh(E3caB|Oceg?9LobYmLV!>3&hb{JgKf_@3G5RiMQqLRZHVV7MFb^> zc=|G0mYu7b{vsQRn8S`0DkBG4@4h?!$0=RhP%628^by0Ze!yF1_qeXC-z-%4;XG%< zocdE%SQehoPM+WEbGMEyjKJDaBS#ff?wqikFb_1!%bhh}Sw%Wlw!c7KovFerme>&H;EzlzDF533=E+Y6D&$D^E)jo@aM6a>t@aBeO z+&TnpM|Ddbd>ab7NO-QPb#M30`{^UWP~Pd1eM3zwDg{gtg-xVhuy+M)66JR8jKuJgEd#Ma}CUr%p|6Ntj#Z?SW$1}a81EY z6Qo`b&yx&l`UE&3D^aTf$rHh(PT^8A(#g=s-wEf)&$OYcBmxR1O-k?^=tX-AwL8=M znX&@NMsgnUT#n+mGL=Or8!$)lT)=y#Qu-H=vCsr-Xu37y7wk*Jh|dBr zb1st_CPBQPW$>XVBLIzubMV>0+N`EjLbcfO+Qp@3Uae=YkYn_PxX}5^NiC}JErST5 zi34F&w!?I;@7mu^);$Qat?_j6lUA4i#yX0<022K)MaNxBJG_?Q{RRSuBVzTOIPuC| z_BG(;<3R!W9028kB2lKb6~SoNl!7uR|2kQ_aHoq%pn0yu|LqowAAw<`za;w!apT0X>M_ue&uNl)fTOwsR z-Z()LuR`B#t#EGj4Dz2@)bv6uKDiS2ziobWE_@kWV?8+suf5sG3c5eWk6$J&<&bzR zTZJ!I%{&==>77o|w5W)ZX!LlKvZ49u!wqC?k+mtWw(pU&5!1Y#@F`tB*!pqJZx#ER zUpzFXPfA+Y8W)c{=py6+o8P7VKKBu!OJyyTPBmclCsDMp>qN!Czt*&Om}bp?yo>C8 z*;I({m2}TvJ8E+Hp(#2i;|dWB9L*N6Pn-)xTw=SzMgWX$4vgz^oOO65Zzfx~j#oRl zl+oGDy`rYScU7}MKqqOKZ2ctq4#P<+Fn*h}Szfj%=)7Ge-)nf)-eOMdOpHB-O8i)$ zaN?Q|0tz}$A#5p1(4@&KXW;Ju9UJSQ`mRti*}AtFl}%|po*FGwg!yL$yDAs3_ui)t z_RfyP!A5`8D0WTAU@@Cpf}aB6FJ)_aA#TrS#WdYyO0`S|oZ`OD9k0&Re2!6HT`Jx# zWXwHLyRk8;%1|el2C@#a(gaz57x%5)_~~C;*jKLgqltabu-%DGNvr=BmoZlPCyOkP z6Mqkr-ax_-%`BtES6xA`6DtgM=`ELk+`wM!>mT|Rzpt`v{uugC2*owv9Yux8D}Aia zVA30-OcML4&_!9n1^`}x#zMw2xJwB_Jd=1(xQ#7LRFL0(^2_|^hiu%`rTu2>+QK|h zgpm8PvK{r)p4NFBt9*+15#05vY2v1qWJ0T0DKm%Y*P`8z!J}U#H7PvUb)XE4Ct0$7 z=MLnp!0sEKW!W|cki(*x|J{zK`JP;xZ||5ztCrm@ehGSY2=S*~Z)lPvgttZ__p$nq z%TfEo;glK$XACP=rZnTeSS0!9z zx~wGoWgA^2JH;9y9{hf{icB`_m)c|c^=}>EL#Mx4&|jGG?56^NTUHAqn2*}(b>p$@ zc#&D~wGob@L(7j((mE4jk1c$r$~Ete1Eu-4$ck1B24D^FY9>ziCrN$k*fg_SDqD~D z=vM8tge|zo!(4=OaQtaaAE)qeFQ}r}C;GAsl!nf3j-~>t=;pcFsKwKV*#(~WoeH6I zprfjpY}okeK^j2%%m)uCf3HNR04_G*&*+DI)?`#xc|bp1+@TM6tm4O7x&%g?PTf3X zJcOjKw{i&MgpM@)(ukruKH(E*BwEZesoa;SCL!#K72c~PahxxL3Q*HRBRZGzkGDI8 z&F+gY@hMDb8z`?V2gzC6MLk)_X=n32`#$RE={g- zoW;?H2IF!vt2`scP*X|^gjFsg;kdgN$EoMkU;S({{zK3YW2(pS#BjRtG-$zMy~b?` z%eF*iAALsMK1Z@L>MD}et;6XMek~hGN?i5K)#qrLRQr*%S3iiNbSsx~kfAB7<=|=f zZ8sQ!XR2u)q6>1dfiIeW-MI6IfohX_g*Z*6XM_%9o*{j$#6xuW;P-|=Skip$Ae^$l zm)lTWzTSnYo_trH)FuV-;Vd-gvq=*oJv6pRA@x#j5;e%1cXR=j7=|U=Hk6K#t1{Xv zg49I^M|oQYSp0_V*0>xSl(dJbrmaa5>-oRBddAT

FoZary7)rAV79JR1{J>ll~8 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�m%;2#j!G1-fx>&p(_(VXEdy{ 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

t#%@Wbq&KLJMnoq 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 literal 0 HcmV?d00001 diff --git a/cmd/diag/_images/downloader/example_downloader.png b/cmd/diag/_images/downloader/example_downloader.png new file mode 100644 index 0000000000000000000000000000000000000000..a74e48e1e40d55875310d72cbe3a4cb5c5a69dc1 GIT binary patch literal 50347 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%0DouvLMI}Z%683 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 literal 0 HcmV?d00001 diff --git a/cmd/diag/_images/downloader/example_downloader_files.png b/cmd/diag/_images/downloader/example_downloader_files.png new file mode 100644 index 0000000000000000000000000000000000000000..5dab609515bcb170cc6492eea9e9c3f1e9f74c63 GIT binary patch literal 226614 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

`uD%njb72huKmnulg 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%0A^mm^{ZPEhh=0FAl>II~U~ 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%0Ab}AajKkU5pK1;mM{tIv~TQ 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 P00000NkvXXu0mjftpx`UW%V?sYV3?zzp#FS@ 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

M*dBy5aELs<6qg( z{~*^&$i+qz5T39QguUlx30+Jm<%5%M0-B?=%$>tQjx4WbOZeb#e$&oO^$%}Het*xMK&Ca1D2Yl1(5DV9(mT-i?>`Cf39zJIVgpWqu+Cds$o^<(1I|$CuKTNlrGpWy;G-STG`v}B z%MNbdeplOAiLklh72);$eZv5&!qp#y?=~XW5}Pj5wUXD`h$e@5GFgV*3kQi8_a$&q zS6SM}xa){F^P?MZiocwP)A?pvbjTX_hdtl7UYi{=aq}^3(Q)PYpf|C!#yJ=`SY$Tw zvd@_``7RYB&QMelWO2ILQl8pV?AeynHD&XEsDpG~gJ)~w{=n#Mf}$pmj8~+DuQ7jF zAdrb5mO~o)z&W_t7YB*jD=MRUu#(Z%(OsM9Z}5c*qOJS_6et1zyR2E3UInXI8LH7a zcUx8E-Qn0yPJ74l)!!bm)e28Mctn5RLIsN82a}s{F>JL>{qp<{z?(QJzML|Bci9u; zHo&zvU7L^hVY%YU@2EEaA7!GTfYej%7wFZnn29!=gc>mi&5mgT=fBe?eX@;IZA1R$ z7eGEhp-NL7hn)cC2NtOQ@Ov{1V94$RL~8p#x4PK=sW!4j#)WLj#!L&Knv#zt0XNBt z6O8x($JUEwJZzb*zg-u}YZS2{+g7Mc~Ed{%(j?zYx2*)4f(gAp4y zumO@paylsQMnl;-)TkzX--f5IOfDjo{gp`G-=_bbI)*Oq%=Vl5`Sm7q;06*&yjePEThR#9U&(91nZjz>__4NZo5x#?`&`)w5@19hu@2( zg1#8;H43(V#`BsKHpq1p`x$`eEKrLO_xia}RP$?Uq!!S>U3#AAQXe3=eAHJjv)oPj zW^5k$AXjv$#=0f04=C%Ixlrhb4Q>1)bIqDBzc{%!%M~+30F9+rD-%U*9 zi)#9RZQa+Rd3@Am={I<6bJ@aMvDFgDyFt9sd1TM??svhsUz)*r>O{(f{2kcY(O+8= zWk%A(GiBZA!PO`seoa~xm2(3LIj zI(1oa*B#y_G2jAp5l{nrg`~Vt zX1BVmlCPIIAernSwODk)Fk$DJnKU|DR}>*6?_YYLb+_vz6I^mp8GGgTvNWMW2{}z` zqG5oWnSrFjWQX}y?#u(&eTslk{{fTBYKw3U-PW_-loDL(0POPaxBC~xtH|QC1$+Vb z*m*=zM4VdO;pF7Qm7h!$kpJDKnetTXC<6kp6}&W&3)sp-;&~3QaVg1-f6Bc9C6CG{ zoW%6eC0tJj70@aWiw+X@ZF82WFm26JCX-u(`e%+lx(^GCn&{yq##{7cVx@YGe zDI`Js40(&&<%+mi9Zh8Kxp_f;N^g(s=CFI3cKNpKU3B6sng6SYJ>Rw+fq=bo1k0u` z*LvsS-H2(liP;=6k0PnVENd!W8#?%8v1=;;y2HPN&4s}dBJ0(4zGeR4FjX5RL7qO; z*UlIFgIRT`i{=ZteF7PUJ1*_`wmY6ph@V`fkh%;VMFI=ONQdNuLf_o2>C^p=;+W;JT1UnC?oYu=e$T2ChJx4cDMRwI?+FYl&e7tI@ z)InSdeIPxQ0Y^`lzrq$@;+PJk@JOsagcbVrL!pat8!K^AUv^@N;EU2-XvvWcjsROP z#!BM`J$D~pex7h`%#`Mr&={hGmos@C`_oGI6jb~PPDR(L1*NC&hzFbCc5fL~~m)8;ATH+evnQmOU9#R;v1joCE`gVrw zk~t%gaZA4We=~(r&PDM71z%1o?s@|+tThU1@a_5K!tfuzZa+BX=>E-aBE zkRei2fsGfO5yi%qJxg-vai$(oxES=M3tLbTVvnP;K`La?Bq4j>0r*%Q1NI|Cb2wF01!TYY5vv)t< zhZM6*>wWr5GPlLbbZ&0$i0a%QnYg}dB6F(Qw_mbv1u{7b$&Qn}Be76sRkwOuGf$W& z6>(BDrr$2fAF)ai>ikVMmw`3mwmMQDO~}S!N#rqEbEntQlULs~!Wrw9mE|98zOxf*Fxr%9ZG>}gMco8P!JDHCsrbTDzG+!;xS zr|FK>#Kdy(sjH9c&%#9yFWMEbIWO^_wAF#{ZZyxSQ`rkwTl_!8II2byM?3e}e$Tnv zQKV`3A2mi4-v6jEtm}+={`{#l8kdHQ419HIk&7az?)oJL>Sx;`7{w?;-gC_@$6c`| z;!rGwty8w@gyG`&ZdB72$Ml!vW-I~=)uEoUk&|rW^@VqsylDGXM!FVETLcCgT9^C5 z?>pWBkT-E^2%e-?U7hc*5;A`692?)8<5^!M-8*m)?0YWZD}2be%+JgHrkAzC)$8(p zFR&7hMs3i$tUH%OIyCT{&B8+A#F0Kcn4d5gYyMTT5y>~OL_95Fv|112J4nV$TY= z&tv)=kYcDv?UR--=7B2LlBWmUkK7Vl7m*iN#++jvMM`(y<=raRD~ac+(&UU0^ZPii zZLKQ_h}wo2RtzeAyGGhktTs(OQLs2UT85n*`BI!1Zy39QZ4xh5=B+*~7kG}b7kd17 zkMx&f0#00P6-D$Q$>c8O_6(8s@U!YBXP3+KD6ICP?PCSX2^dP<7)@oJk|k8{xgptA+M~GHdIUr(xQUT z=fE^54rUB5h2yesGU=k^4K)`TD16V}K*E1I*lS!^d~I-g3^hFNrP6 zqZBKVQ&lCCPPq0~iwIpFKl1a};%|}=)&O~VQ$8)MLLpK)fnVCPp}^8%z@o>D6(+k{ z@c-=Nri2JtpSXfoFzcBgXd{E_=DqjRpV#EUajh#G-xc{0NLTBEwX%#*iv^KHskt|6Dh0T@XF{cbP9^LTk;o7%`B2q(W$#^iJl2w`nJjFo zjr78ar^cYGR|BgVY!d?2m=KrE#+6N<`;AsV&}OR)?1_|foZg8taGy|d_54AG@u%=N zqE|BCHdpW`$OjmqX>b7SOfaOpLbt89#<-3r5rJVf=PVThWxoGo?6yMurNE*=ViXyA zAN`jrP=rA>SEVt?_cF1Kcq>wIhtds;Z|4`NSM(YFdMg+Dopmc$MLSqVLmG|io7L+O zVBtmOYxlJ6{qozt{;YlpmDA!H3X)+Qn7woy)pAh@Wp6V)HFHJMJ!l3tMT0PNgDcOi zV~yKHOj*-s4az9RjOp1?BxHE6BvobQ48lg0P90${RowTRcJuelEx?)Qn43T<7k_oRa- z(&gv|P+8IBBGz!GrQD=pH@aT`#EjJ#|UeHXQqP3dWIKB`u&Rx=sh18e0@)YK`e0??W&lisbBX3_MaGG<1m`y zdT>uOD-Hu!HrVnJa02Xy5o>8U+2bSVO7JNJ2D_!)YGp9K>A8EWyvf;^I7u|fJ)F$R zS#u@J!F{_RihSIF)#6~ex$lOz93oBl2f56eN2o#!MW_Q`nxbwv?HJLk?RE z%!!{rdZEFb?^qwFgq#|Bs(`@#z{vwNxEq~$o9hPMmSe_6>zZp+&>y5gV$nqM(#q=^ zsgXEu+Z53)@A-V`xofk8(!>)5-mQebIpW%`Gm^r?kk@{Zu>qH)R+yj%>TrG&H;^&hszmy zwBvw^jo#yjoxRN)i3&2LRsw#b_P;I?ioSkpDSGs5!3ppve$SEVNbHx+=vI$jEx=ja zD}v_XSsKU13Y({!$A*rSCuYa_1jJrDOOG%2jZyFy!87WxgFXBd@75RR!tgp!o+F-k zbCtv535qiyk9*=$@_b?bH4EPaQp13YuHn3K62_dPH?QLgJ+VN??ai7VXb-p{KP=B4 zPp6I6;KD2XdA5v?(l;yib!Byn`1sUuv33B~a^rKMB)tt#fYCicHW%<4r#4^E?v#C= zf7)tyU_3owEr)(~g@#ZvzrA_h^BIA!W&j8T`fh zpBpkk!1z&{g)j+t!(lUAJTd8j&Q8Xp>9t>$(zl%8#6sFx+1HEi&$nWp%_`&238h*E<)itRKhnSl<)prJP|2a2a>GO zYU#=A@yUGu8AEcZRr0A~4$lt$Y$oV*cLsZd9Mxbc$|*sc79%IkE!{D#-$Li1Uuo=q zzTDp@b3)iF>6pIz_o;jBntA$KY8b+AX~(khPI=XT=lmQHg1VZXx?CF+>uZyhEgYCp z!oq3JAP5L6j_z84tErR*38Stv+~FU9J`6DWUSDht4T4d&XO~n!aWNiwh%QIO`7NNW z3P9jn0$Vdfq~6i`ajzC%YhCOHm0fY=Cc^?2P^86FR^rD2&#vL#46$X-xyj&UNm1fdoSJlx9FOY*0bDY(^o3>1Nfz#Mt-5KMTDGGr z80IS&{DfmW{$~=Mb_JXaU8;7_)zxX7F>!}K+CDrEOcq5jV`f^Yt;x^bkw1;*;csU( zepx(0r`;z6jUtMge{=~kNQPR=HSc6mg-&YxCUl^6$VwMV1YET<<=Y`YQTbfMD8xNWMu128ZId}IRSGN_ zPT3Bcnu4it-@4a-8f^Ms!w)R__Ci(CqEvjyQ75-15oYKD#pBUQC6{GPJ5eo#fhIK z=r6GBnsi32KOyztjF3OU>ae_Sm#nlLz7W|lIIcD(<#vx+pl{Cd_w~BBKIsmBsyoCF z_ARsg{Z)zjl^fV~%g3^b{Wd)?K06D~|7at4v6onkh#tsLom3ayVteA1m0_)0g5P#l zn1c)cX1lCp_4O7sgE&iDH<6VA$#r-Oe3*m)qHaGQFcYKNOThdtH3E{BHUK2ueP>p0g?4bDU)(}r-HT;l^_~{4sf_#0d z84j)U(*l$ntT;?Z!_0rLyfW49fI$a|`S};#rvH8{ghnf26UeM(YD&uZ)RDZvVutPx zVw)@6c>mC_(yQ$}NXM77X$*((gDI7mL5tNc3A3K#LFm1blo6@u)$57!0ly4hjD|}x z=Lhs=!H33Z50K=bdFVGt@1{k;rHwP?u3I}Cy@`P2u~O3j>6{R#vMJGwC|quPB&x}h zBrsD82|Etv0v3EY9&-R@{M9!2PGqFRTVr%i9)^Vx_-PaIy@?YUC(i9obVdz&JlY@o zB@XLG97b+`~v`+eD0DLvoo5|}-* zyYI-x{O$qH&i9#G;5W)A8o~k4FA9HU*hNDLyu)$-V-fFZXG>OIDu$X7IH7xPDSR2x zl_7HdL_F+}GGe!$p>90EYnhqr*11w`*syNmeHCFVb{-Z5IsMT~(Dh>;xXNDs2*uFQ zL)8!zdOCOS)u{SY!}m7`C$>11;q^lk^`o@5v_}bdE#OK)maizYe1~p1P_K6`R3hSJ zlv)?Pm;SLo+hL3sZ1}8LdHIv3^4lt<dB>L6_AwVZ$MN z*S;Yf;pi2>c1~_7;!xcpL}jA!2U0>&>Rqkp zYED6F-3J*l(fV?4|Gx9;U(d%+Wr{zdwo0$+K(}e4m9A~nq!{_OUaEtH{{W+rToKAe zfYBl|6ub>9zj+G%d+`LwVPtwH4MtFVw2s>tn6Ml<(!{<(N5U6`m#4UI6)?Dj$URm{ z#j3n{=Mgh-+mR%C+mX6Rix6-uVdwaVte(5gd5cmh3%SXeJ~_GTA#t%gmt_{*z4nuu zj(;ukj~5R}OB_4cAy>BH&L9@ZOw9aBKQCVZJxZT8+GC2nynv{ZrynCMy`Kifv64|3ieEWA}DIhMIHvVox5Mk4# zRiIo27ujKoCA_eoRKV4(f2}2pI`eXZ%AL`0lpN!O|Co|6_x7-PKb-fl$+YVGec3tov-C z`nzNIUFDe_lAQridBK-4tBiTx7T?**@Kxp!G(*cJEdVAV^@->k*%N{_bC~>o<80+( z)vMed*wk7hb;P%IUZa{%!hzEpe&cZ2e}KUymz`1Cf5p%ZH=q-3uy-SD(k;YgTKtGA z)Y8_lmHcl?4H7cOo=4c!cil}XNgMPav-9rJ<1!vXo0&G9#m_hrBgLx*;u$yaFsvR5 zE#+5&iV+C!kX+^c`&(Z$vbp`Yce7pQrt6vJ_=ykDfuJiv_VB6EBZ(Ds|d6w ziai&c5jG_+@%mnPy&D>+=0JRU0>w=0y4pA~?m zZ~@{UwO_Mz2c;2r{!n_vku3I%Qy%;U*^T3AG%%O?jik*QPBr(b5C;zKD2n;h(DK+8i4 zb;FH1)hC$9c+W5-8jEZtY~VaZa{1T=Z+tj$GFY1Yvbf^>pzyU~(jv2+hRJ|^ zo-j~tcl8x}7guC_rOxoiS8n6t4+$wQT8owaJe(PErt2Bpe)=y?0n$!OH6Fe)`I-D` zOf{&RN(io&Fq5D+vE3?7#Q|D>!*~Mx%ZiJ%_Hlz+_mszMU7uM?0+76eD(U$egI@_R zUhO+lmiuU~!}$}NaP6Me%uN?0wO%lQ2_RWmH4gzsCNqDnQu2?u? z%wI^D4$%?CKhDj#7*m16?NajCLX$Humu;~^EI}EQK`>43+-g5|mS)9^ZW3~u$34dL zeZ7^}bd>jxV;@C6lKBwpYsc7qMhci1Z(;+|Gdl@0|37qs-c5{{1AiL1XISQ%X}e2; zA}#U(!@%4ncBVU{PSlxRg2sF3aR<1u+=>hSt5kIE=MMgyM~wEqWRE1l%au!LO8YQ* zyqND_{=Sc4uRxd>jHUF3vx%5Rt$q(7)K~kvfuQpsX!}bu-G*^glHM1UyK+- z%I8mlgga^Cm&-o*`|zHSvKmcR^ov8*@$fy08Lt=U-o~hlKJae8TX6NXx#P zbfd{9pVPg&Y$^3|QtofOo0PWb!xlrMYz?__Ow+Yxtp2UnfAa)1uryn6^|Egx<}CH9eZ77kB4vSgs%!YSpV`&uIix6aNi zaKmlOU3QY>htonm{c)|}0Ar^_%V`d+<*QeCFEc2d3S!}*OBYGu&$&SB7Lq!B5vIMMGasydm24`RHc%L}LSKf_Gk$g1R_Kls0rfKjUxl}r0zk%1vPWLHy2|AhW| zoSk^_al&i5;u2>D^J`0*vp-Ey>z@WL)5^=UUJQ2%O!Dd81FsU=Nrqe+WGa7^7(RL( zU`hr{T?s)X#|c54aQBEbMAfj#cfaNjt*E~8Pwh2o1xi4&2F545!@C~%W`Dm%@v-m8 zf)OOZZ6CH7{3R}-d$s~erTOY3;8)yD>;9hBxyg%<$_&?V{MWy!u75&e<(R(N#md5` z?ou>hBCDSYUteVr4``!eJH&`jT}N{JoCCyyTxP=GCfV->9{U;<{5U^ZVZ}6u3VaeTEC;%e)kq&v<)jzD@o_6d3xdW{r>h zsaI=CIJ)~FJn?op!u&n_whl<4CNN&{EEV{V-6!t^LA-pB4;iDON^*bV(Ts8akgTJw{kJcrpXRxgT<&_QV} zmcBe&!EWXqrOafKO^%liHom z>pT~0(#)6P|2{(9&n{Lcp|I&BY9mVf!_mW!8Ivdr@zkDK^;$ZeX~WXqy>Qm#MYtsP z*K@+DhZNq6H~em!LDzjzv=&t^dLj`W>Al8icN?``n|X=7YipgAD3aEXX?=>jdSpJ- zNXWoq!5pVidydyP4{RBUt+1dbvM4GIo(f*m1dQ0)KHr4zHqVffH!+HX_=jAWyBw5_u~(^NHac0 ztaOl8(@Lh;I|4LXYxxCRTBz_))XAhL24Ifm`7T z)~8_j)k#%`=+4<}Wy_GKcwChY$>;kGH^8IHMyu(&l48Y^moVj2mK~I;L()LOhEJu5 z!AJRilKJzlM0mZ9Ge3HVDEOjzaUL~~-QNQ61rInffq@b_Jx_@S+-_uAFd^=58y-jb zo`xI-VV26ywhHm7e~Ad5P1U$S{Ez&e6(pLb2N|co$s5f1iD8dERl&mv*qF6C6{;vO zqz#GZ?mN2z)9l*w@ta`Tch?GOYf00c%ZUIDeHVKQCnRd?JRYsTJuEVDY@2?`hUEa$=Gr=KZLtcRGJhT+F6OaF=H@!Ecuk6%uC#6jD|XPy>|WrFO7b`` z?^EQDA$X?lBUGeHNT>dH*~0Z3Arkw%xaci8d^ubP}C#|e{*_B=>8ZzjVw3ki=uSr1Qz9%F{|#U#g8UF0bjY+5?-bz z1uZMX>?B6hEyOc(T$WOi$Km z2MSVYbMsVs#y%Px9CY%3I5U`#m$rsji>)K)ZYL;Yj1o&itR&BTh>7lwb9ZXoK;zMr zRd>ub^v*5tKy%D+7_VZXisi)CM%S$OPIHT!<)pM$0y087uA*LwkaF$cHfVp)rnvuM zx?`Z#ivRG7@jSNQ3fc_#9Sw_Z2|T+f`8Z}!#p-H>pmsrwFoG0_H;v+hmSdn?tq^Sv zAM0*0jjMUrc*19rD&$I)^$AAefWW>5lsa2E&k)@5;7>?m-||e6y%vE>xq8etRzMbQ zw$#U2o?Ta@LG$_zAN@L!D1bHtghS<`Pld0vZOu+Q9ib^plax=Jq{nmF&+sORq!Ud9j5Y3j=UB6ggg>5A z$UbQ(yX>>czK6ijAL_NEK4d(b@q4#p3AMOmvpjP}+nwZk$sqp$4Y^yvWfRC!VPYjT zzOBRxCnKnL=b?xZdUmgiC@DB*u$H94CD;T!Cp_Q&qyFu0GBmAtP-)Djk>nM!&detM zE)Lb~6Hsl?pMO^jp!t0M<2OzPX2CB0ok(o7n!J>WI%s{uRx3Vf@rR3642 zf@A#=I6Vzszbc}CQP8*o`}6OqtF0U%jh<>FE??vyyP~-O~ z2nUE9L*LgS70C?Lf8|d9)MOfKqY6u&42z411+RVNWZZA%46l2Y}yA{*g)(H9k-cMvOVMloS*UfY*`Y>1oDAA?qq zdrS-s+m_oMOcE=I=I1&zkp}*VWPONOFd+AA40wG7Cm@kLAR3Y6Jz&Gno$RHGu@n{# zJ4)K19AoCvhqrFq<{=?Yq+GcP!P!Fr0FK#H!ttvRx6I|yPwKVrxx_H1gtfO{YhDhc zG6_Wb1Ea&DDEOxbKIDW$tTcZx<-RGxk0F-Z^(Pvve-p0vOSqd_$K&-&NB=PM`XHq| za-!jKG0cxp-JjCG$1v7aj?Re028f|uN+Ed}vT!;tvN1Aa)edeZ;TQzVKI?kib8HK6 z$3+QMj-!v@mgtF|Iy{8m`5naHc&|TVJ89-6tz;jsvkB%iywpWgERf4*24NUJWv>9D zBQDrZ-0vD8--Xe0_;aLvdylJmX)qS`syF+N_c}(#608Pximd`f5CC zFoxbklF-@^@A>=#@=QOEW3oJK?9uP~gHd+ z{aE6>9xnWTse?EmMOUfj!D+jd-Bo>Nc+^UXh-sDs6be}ee-O6I^e@cZvsM3|lS69x zot9TI&*V8ytq($#ly&xe^ry^L%zm=Rk4`mg~Gnym- z>m6w7{O@$LP=BM8&cQfPjF>Ijn}*C53GDdZ!zIfg=^voQPn*8=vJF{`X;EhuxH~g{ z=*hW&b`PKvOHdAZ6fzs6ctGCXLua)9VsfQtb&Ywstzgya@OHn>)BUBN+8f^T;$y5} zmN7KT3PpmCy*lErgAxD5fR#I#D+u-*02b{;Qp_UDJj@_A<+pm$*0(UPX?Y69A}ZqU zh<##9yG=mKn|+K?(kPOpeqU-XOCPLTR~nd~zO;=5$F+#Z-n` zVc~}AHU-tT<|WJaK~}d6J!z(dLogeS+3+7PcdlqHLm)5G528u;0wmA`snW>;%JV?G zbbH&vN`8EWTAiEoKkFJuC%8PGn^(g)KO>?LM>|TSJ<`ZIcvkGX{8PIYHeLwq$IUrY zd$jvRh0}PGlJ8R#eX;&*w+dZ*o;m?ntpQr`yGo%KpW#*Rh^DarndNBE@=4!0Zif46Er0-x1+>4y91rYqcWlP4t${{9>V(>k3O`~s~Sn^~?#(Xd5 zHYUF@5U9S{pHEjhIE=pjYc7>O`t0V&P&sgvLW@;Z`#y@p!>2BZPFdu2> zp2S;lVFcg1_3r*S%uFp|ug*xQ^YYap;dXl-38KtmOAxkK!T$$%Fbj6g?`)Tf5Wy*Z zZ3e0fL3z3kMmj3{c+}2Sl<&mzy$`qPHuCj(9A`DxxkYOLto_w>Kh^bzXC44%FPe2z zgX9%HDt=M8N*X6x#@~k-obXb}dWMc;lT-mY*T5yOKehsqmIA4Hnaey2>gl)m6W1Fq zh=A78JnLA!e`*MDBV1kOMerj8uy#4WfA{H^-_^rumn(4A)Xl@%D(*P(%hKf9Ov0); zDWK?9)tXAv5W4?MfH3<{R3%0$0(Nx^eY5lX`vDkzbXik`&w1o_Br&e^B(%*d}Fg zm|^#yZ7RK{{ZviVmr63yc*?>cl*6R(&);_Hen4Gp_B*&nSQ*u`!|AyhROUI@Jq7l* zlzL0N*ypkpfmGy3Zih^T&ItaX8NyJSKB$$I76U(9Gb60LK7J1CaShYBaqx;g3Z|+$ zK7mYNo}@79t!485O}x4P9B|8eHqHwc(A@jtStqofKMzzqz=88LBkt9u$Db+e@_JRz z!MIE4z{ZyW();|q`nK5Nk|UDf5|aZ^>q3flHB`Ak(R7<>JClZ>*0@Xm^O$A<Y$Lc}}NAJG#yi*FGd+On;MH z6;s-DfzXcth7OSVc`CFrQ-QdnBgodO50^DqLngYu=N`F=U84?;W&kqLt&u25hu;Yl zs>%=J=5UgwE6!T*06ph@f{=+)Z?|e=b(&`J`QpeQ!HE0%z;bQ>3cc^|D?8+X;KW??L*V) zIJi02t{{0Hp#sqhc{EmS%PA!{K&F6H+A^@?ZOMWep4}7>3Qs=TkGvcDjx+)LgngU& zPi{66HWRO1rVM-;W=X3B3PQTqc;wax zJQPM<-q-g<&?T785H7r9+v5M}4>#^Yhc(TM*FrS;AHPJ_M9} zdUS;w-2qKQQk$(RiU4qMIb%%*)50X{AS_$;WNPc16;6>_@M^QD5bp?A)!)fFx%0fCj>40q+| zr|z5tb#J(CoHY?yJQ1oWjF$sdHWlD+%n4TqfjW}9p(amM^&=^?>am)-JT8SII= zG8r(qiVlv9)2AVu1?7Q9One3y-&f+-+TiX(v_aV+8w!C>NFj$NX8?^sMAN#;%1iV< zMBcS#nsEk3T5-WwZXcUZ)mri)4Upj=ZpevvfvV(m9B;?+?io$s)exEL(?|&MNfAyI zex|#XH)1tz#P8)OuN(WW@FaVR9$nu@+P-f7O5)nZz`v!LjD>&T=Wq`cC7W9+Qhkx`-U+S@Wl^S5F}2%Ijy2IXKA)u(R>+TCpQn?(<69 zrq#+sF#2n;Dd|fK9T8m-^;ez_UcaoqJU;55fiP>h5IY~+my(|$*nw-hhum>^_GuIW%vYs@ybLN z&rp6`Q|FDz%v7%Ew2156GTvLU5i5ZKNLfjc=7iV8qV+jRrnzNRp(f|v&TE-?PP*iS zm*{mkwrn^UF*Hg#FK!|Np1r-B9MP$4Bqm6i8BpJ;4OXLu-{I{S6WddnqWn~Q0pA_x zJ$n)Sw2Wl9ueYujM+C!gePj3Hm>ECc#yZ;gB2C8H+BCX9)~3;XfsEcQ*%eUmEhl&0 z{)s`Q6!FfI5)5mRTUAw2Ig{|NUaB^>7JYuVy!d&qw&yo8H>1_zE5`RtE!mIrz@-(5 zuJe)XiS4$7iiEnnaL$sF+jlWXz`k5$&g8!?0GHuu0F(XJTr@EH!|-g_*v{oK@bH$k zTn4|!;rH^Wl$pfEcerkRdPY7kS9$WgmUT=a&P9hgmF)mBmP z+z}YB3M63-WtMkP9%H7i5+J6I&b*|P3=HTDFY}-R9g}T0GbMszeBNMNM~BdAyu%ZI zkAp&jvke)^91{@sXW0^Rqa~U$4|yy--^jIj;#))d2dJSu#E|p)AvU>kN9?kyDRM@a zzHLN$j$>hE6bk}jPMRdDBkAVV&~sj&(CO>`Yc+P==et$Kn~Rm=sD0*%hc)xO2b^c% zMW=4db>rVRnY3~-J=nx}D-tPJ6&UhH&zhZnDX`f>nC_fCLc+&sEsEyL$nLh?JFCIc ztmyMo!+<`c$JfA^&KCUBKLc8A5UB?&3?fg4$ndF5Ghbp#(M|tiwe4Q9RAPRom%m42 zkyZ$6^m38QFNUd4_eXg<%3mF&f`;hXeH`ixb_)aBNTIw^-y45mIjq0c(f=2hma)8md zGUy;nfPAX!3LX7cJ5H=4!An7n8MqT7bSS*jL=SwZZ=i75^6Xygo4C$$SEd;*DJdCj zwV$OrANzn2t1xnAN=1!EtkH*Y+2(>!d4yAss%isQIo_?plhgP1AKBL~cY83d9F$|T z5`32bUjvLB_6utyxulI1%y4dA2)AR)bxthVq>le@5m6e7VCKr@E}1?mBDR?G(>=&f zj{Qq(DX~u=(~ITy;aLltanLq2HsV3$vB6^j)EX<8*-u`y6*ZqAhdYD%eh5{JdvpgF zdBqK|D50HJW%zqv6FKJqm3|T4nzE64q-2 zO>4DG_%BmK>43ivi6PP{{Q>}v7-i~Z9z}41QYE+~)gj=4zU%4~_ipYdFNuW=7;+1+ zrVMCszhZR&)K@j$~Es9MWolx0lYLVD`?=(%I)8Op8M zwRdHo|G5WwpGAWJ8YN_B`6xF9>xn6`S)5y#N;_jH6m@95tF}c=p0W?ciPDWyfp^V@ zVay&lq+In>Q1|*4`&ou@nfFG2Mb>(Z6ZOioMjrPCL#|So=VWZ{Qm21v7bD%I)rY|T zR}2(-d}vtCpHZ#bd9ZOaOjgqknTs5VWC-ry&lfnLfNN=@PwB}0tazudsiam#t{@p) zqrb99tGQM-o7fJqWRQt=JPEEMyyKheD%yDwiMhm}Q!7aE8^7GTPc1~LTvN4=`?r97 zg4b3oSoT*%-V%x*Br`FqWA!-XX@nh1N)&F%(6ed#A8x4(wANF1Fjj(<3tUQY4mMN#`^Aq5;A zQq4f%vxjob;5dFdp^fm^s|VH20Vz`iJZd$fAc3#UW+VyvB=zurG56M8ZM{+ZXDJ0r zaVSz;S}0H)iWDhU910Y7C|0aEDUwp$-6d^tcXxM!7I$|D8VJdp@AJ&enzep!VE%*T zEY8WkPm-Ixuj~4(2Y7V&-qw}f*jQGyoQilKt8I4K(>h~p7fk0Jj7+dh?%eEzj)Z;Z z)iryaWZ5kqlr6JG!kYJ~*q!LD+gzfUx; zt)oR1&++V)1P8!ZlSpzB63(ot@wx#~tteY!HE0;SMsiVgbW^Che;KJ_RoQnd`r=&!(lN8AS$2TNn0}6b02?u z&T$%@C@*5T)9Ac#2r#-+ZcgzyU_pi>whJ>zHdNxn)n1c^;yh0#N` zeVBEd%nrrR6QBE~nb^@$HWEdjC_{clYKOX04?feD(EToTMc?{RieRs39X9q@uw;}@ zxV~9ZXqlor39l!>AlXDyq)XkA@u|6i5~Yx+vqG2`CV_7LnbC&u?s(YU&2dK?lEq#A zjZP9Ewt!lHWT2QPKLW!n=vW5o>{lax-2M(A7>@(*BFG;W{gb1bJhrb;SOSXS)XrSY>3RNO?>WOO}3 zM10{}#mp)k1I~tG!`1==!uteueL~h#Vz=`^zL?y-U5ypodECJD#O&^Q@m6MhJTWQP z>D|Rvo~ZM6jX2-L!0}X53Fb+7(gd1s(e=b1UDTz=yO%<*IrZc|LkZx2_^7G+>Pw1ywao%s{)aD zcVn~sKJ~an_va9;W#3||zj27h1G_cOkIs_N;b1$jJ`(g-2DnFhx={4=U-6(|_X}Wb zi)Xw_JZ@<4J~b^p!a)x6$({ydj1tQ`76R(Ch)QBE%mGZLfiWCD1?y#siU52im>nlhM9K*#;s!d_54v(f;`r!Q~S&1OX$|SIIgjLm5i}! z%Mr9C^veF-;~FRrRPDBMECW|$8k4kH7-=oRccG4|H0aT3~L}iweH-eob#z1i6L(6^G0Ag|*Yz33{+^UKFt5`Fw z#OO9{NQC_U3$Z$#C=SkqpnMe@22bvsHS z;gpPG4GP-Jw*EwK(t5pX*a{K;R6|L`?f>=u=D!2T2i%0dVQ8=lJ z3{B$Ei1d#BxYi2sm*L^?{Xu8SU1VK(_~hP*r4m@8bl2ZY^LFI|PUF7Qtv`JuOT?hkqon#LkPg_itGK!+ui6X>mN8SuVW^Ks-nZ3*d zpJ(4ikc{y`mHBXXp@Iez*;k7VI#+&W^P8=%P=UF~SLi6OsyPp1PgNHW8C0zivG!7p zgrz)ON&c6U=O95h%9LY_d#jy+>y8|?MaVFM&Vc`d+!uwdZ@lKYh*Zu5A2>fkv}CRau-;us zC;yJA*Zph^vP>>Asc7G*yESTYA9$6|6X~0HpHF7Gf{i}*_swrhJG>VXH5?Ig@zgggCoMw0`Eu%XT0=;Fpy)aw4?Ry3NWsIV;Ze2+2_tKpfV-J2yR z!RdmIpBJu0pvx#hEkk3$R+Q)?mt1TIV#A`N3(L*53$&Mp!`1i%8MM2F@h0Cnfm!N? zVjz*?0}P>X<9*g{tzis5Mu}jnqMRwV@TlG5Bk@Aa?eB^s@fHTSt!DPscYlie;VxCn zQuG`?SntUAdTcYa8?JNuQeex|%6sKrR~%|)bV?3x*~(PXa-vhpX$whOuYX^YqxF*k zvgE(=;y=tvfBXBe{bo)&QOCYJ5IbM82lKQ-5`CHwJW4&CFJ@71UOA3`%OgkUz#U+d z{R5_;fKH&i`LW&OWO3J~`+ce4f0&Kj4mYKug=$a)e5cbSJxp-TUb|G+?7Mhilg(Yw zQlbo@Z^lnt-38Z4mM8yn>noU#(avTaM<9DCDQ8_?^f%uSyM?&eY`V#62_R zko})slIRK_rlB3dyG^#!vEyYLx-r6sHmq)duQxCuC{p?H+aE$|-^l5+p@K|5p^ko2 zyO+FU^sIsGe|lueO}=tAPaF_hhe{wXVldeaxYrAJrvMMdoRmn62qvuklL&+`!y!Pl zN-s-))rt!DdMhK}kpvldOSsS>8E{XWeREtR1trOqGZvUKt>}2=0sGA7d1@Fp5LQ^E zS&({t^e^LsV@HquO6#n0&y$d|6nM}hwCt(&EbY1yz4yfCtz5nxRoHJD&#w>hx{ikQ0R$lmBmld{PU15xAurNAb zGC=7w^d68Tzc9~16aaQ1pTWjC@!u_YZWLZLfiEuj|M2m`ulU*M+b=(yHA+wYn#E;2 zN=h+#4}=}?v1H%jq)~M9ifHEH()0F1l2c%VP^((Tt5DrVd@W#Vd^807D3W?AiqT-IOljhH>Z^axw&T0Tu zDZh-S7S{N_>bFNzLy46Z$HRip*@EDmwyS8vZI4X-BaKOApT#XS-RF!I4b#;8@bO+S z10{42a3a3z!*5vdw=~J|5-S_TtOEE9P8J*Z%JdstvYs3o8$V9}H5xqPWHG?-`rE;W z|Kw%P_qYA`)~^qF#LrqE>-B1^>h3;x9Dd~-=!F}5pIKIR<9WP#+Jf7kX7>$GQpxWZ zqSv^0)=DmKiZkTrT9eJOni!skq%nis4v_vs5>TODsbt4TM8hCKL+>KhOi~oa731Tg z)y^hS0`7j&PE*;jMU`hGIHH!9;UD?m7*F2aoO*yW2YB!2*!XkG2`wHno040mD%6=R3M<`$h#g$DN3dv6DkefJOs$TzVJHL!quu3tUkLu|=^&WI#gzT~lb z2Nm`!Y~d$(mNeD#sJ#$Pe9El?or<;f13Ce3LH4g|?C#f~HN!`$0%^or&Mn>2 z`@8`H2Gl^EU%YzeE7<;8m8RT5$Z-_%)dSxAFbDY9;QOC0OQs3AxOOVj05mGmnJ?Fs zzzk#gxQ*rBJ(o&kev-j6{ITSVfKF7aV!sv(#0U6H*eZ@hK%6r#mui$7%8e|EL)_Xv z;|m$biE?dGuhGI0A+B27Ab*0Hwp*lh;+)c+?4s}SPKdNsIkD0z*ft-cHSv(AHS!$Ou=dW zqXOs&7CxH|b#{bAGi>js%?$JN3?-k(yULMw1kSy$Lq2n+o|&c!1HOkeJ`QH$XHJjz z*B+|~II$YsFy9yt>u22Uv0laEd!fQfvH5}qtEiwq$9oW8$EK_oR&@Y}mT8?FT@7d6 z$LDj2xpTs=POJ7pSS;@>8lu5riOpqV5Ig&j``=|IoYAc_o?RSAJevz9gY}w!vdetP z;4iu}Ij6o&i6+*(0`0oRPdgqWdYEBu9i4Z!MSpZ$VJ-d)fr#PORR(-2V%2H_&EU8B zgVU1sH!UpAIk~RqE^B@d4y^;H#Jkz@FJF2CY_1Vud;$r?Z{Oppfo|`!2=oxp;CW7r zYJCTC%;{Lzy5;1_U3FBRXEfHUixn8Xg}4d0jR?z9y9SH_#j3K70|P3ocifgfg!Ovs zS3cw^_Z&6<<)1KdQu&`qd9RCxQfYjiDlsl{HxFf@Ny$C)clZSK$O1zD`YkiM+^&H8 zkP{&%(geI5G1vz)MVij*muUVdAnBj*l*6o2sYyH)=-j@Q{HQERbVT%0ZRPnIh~{J0 zA!h9t8RFQsNHaR?Q3Y19^7ulWO8c;|@%0H8H@soyNyGLVkRNiOG_91q!BQbR=1!dv z^LsH*fb0llI0EFNz(iNw_kzOvde-7=$<{^)jTtKH{vebo`uwx`#?T-%3ido4OYmLO zOU(N%LPmZJK*4Ce1n{$$aN=lbX_xDbsJy2XSoD%HlAvXY38!spfdsa> z&EeFBp5-C+G{QDT&&g9cJc_JBOuYWoC@pz-tam27)5gFkXRi{w6rT^mYKSn>@cEqo zn5nV{(PW)3#^FwWt6>oozf_%PknkB5m+ax;D*KNXh@cDX;n0Oo)iQc3jZ z&Yw9?+(AQ3Z?l_;#M=OM@6e?Us?jKl!0~H!9Y56D58&SB`nvHRdWzZ-SyuZ{(Kyx; z*Z`V2m_)Rq?JQnnQRrJj5UC)|jx=RaIV08_+RIW$%;Nweei)mh$Z!b1hLJ3OIr>}O z72J6&CYx=oWw*rtyCPVhE1O?c5-?9>*`l60U3^jYW3G|SOl(mrVb(Lkz-mCifF9xy zCr5V(KhRHDN%$;l!(dsSHNJ-W`q0zfP%kI?z`a77w2%`mI;{FhLW7ocy~%E^3~-{{ zV9uPq&<2FGq(m5u6`T40m19IpzQP+F*`8%;xy!NJPiCHxJggiW1N0;OGWFyo3O}v`Ty#*ND!# z51Ht2@*b;jGub?Gt%j*RSjZzDE0nificXbo%H^n(YR^k`n6P{oR4+GrdFuQeu@l4} ze(E1jUte^q5kfXrsWp7GPIP%KF`$-eT4m8$uGfZ{^2Uu&dtS`63MN{qA{rexoOg5> z7L6~9MjZY$ZjM3Udq+!0&!_fEGUiE0%6z6f*+62<;@Wp*(73ST)47cc`H16xuNhUq zNDS|VofIW1zn-Xayc8aLEx};-t+5b*gTi8=J0KdzWk%;#c?Yax=3=@GKgM%~mp@ay zah6MQjeL6{qg(s6QJiN{`Cf_Lwf**bCZqDMIODc=!-FM%5v?Yjac|Ihw+3D@bo%$q zQfFQer_`7%cL!oU+^9fl#VqZJc2G1WucO5rpV0qvJNPGSD#R}Ho#*X)AulzrO$2%k zLA$9LS6UZtK-US@9px&zPf6OU?+qWs;>~D{?twa{C6Fj1{tjwynJ(aDRSAWDkI?e= z;n?DHKb)SI`UvWGlhkj%-FIBvJmT3=^R+4#24JGkm__89dF*uRng@%bx#=>U=tbce z(a@O!RP+h)KzN7io+JK0GEuX`BF#+vXMfGQOZUXBINjF6>l#yY6$3WV@o647}eG{{*i|LpnRWWbY~jFwC$e2g^#NSf8fIp_B6^X1{3_nvSPYW z{ercr`1FEmwFC7Tng>E`j_b*05}?D4#<1x8KDt+C*@{_tt?>&P^izWoYL-+#4S3D} ziyQbG1Q~oEA7$di4{qD5*eG$&5~;hme)wGT$^i4bIIjJCpAXOgQI=8kJ4vs5!-;G{ zgiE9bM^UCzm3MSy##lNyb?j)Lz8%lj=OGIC<3u8VM_~T=A3~P4nB*)yQl~RVjVY3^k5{0#Nei{uhRR0Jsw{I3* z%d=w%;IllJZO+QoGMyKHc?4$BmfYY6wdTxec}>FhVD2%2ELIIw1zI+!BLba4?cY2W z}`M*1Jh^Q9s$uH@_*Jt;~u|L~l+$rghB6X$kAvM2W zKKJ!LW1&YTCaI&$_9~gMtCyM;sz&fB23%2s>krZDa7_%7XBT0}pKs`htJ6fVOUgth zIp3mutN0U@oQ`Ho?7n9t+b;aITpuS@(}|(6VBTc^Z0Exfb)ACvMan63{-IS<#n>Fo zsnye?e7Xd&h<-)C)8Jn6ufI|pM}a9i?%w+FdlveghC*+)XkJG<6V zDBmvU9*uIRu7OF%izUOBjbNGzGW6{K^#U6EuJ-Jlo44mA{`+_A(mOvteSz2~*5)sKwdl zEks2+&&L{0Q;*`bN8PD<=!#?W2I+wsJ&&apU}vU7XVI-F^G7w8vjE6OI&$1!jeym z_+P6=DKZalrRL~zt%04+qL83Umopu_x`oe2fKRqDV{XH<4*PsWXB) zF-@Pei{&9wUPAeG-)5h!=yp2Bo&4N}{%H`E-FAJZ(wQWnebx*Ia92sS&vj{-SH@pel1~wns)xGu-TZfe7>t|V)bsDfpL72 zP%i3lg~kSz85l_Ns-mYjsR=N#T^vsC25zZwUslzL`thq(p$=v=;5I#6a$=K(?M=w$ zqg*`5!|n&EVF&XN+F%~q`!3$qBIBj(@XOqb(kqM>n34WPCV~>rAk{Nei9jwLH6!WXhJwf z@qBW1Vv>;0ux``%Bej~WF|HsQzk_C)J||g{N`@! zZfXhL=#Ye)D}Hh20`W@`^5vadW$;{787H5&@=;sO9*mC>* zp?#CXixCBmy_EIGTK89QYw-7oq#Ueu*-r%kDCFU2iy0LMmr$xLH>SP0^@&RR`P z+e%Z^x$Iimr*H1IQlk9*_FTM2BQt)2#n1`a$5j5IG5Jew)pG4F831E5ScNjt)`|lo zV#{SOtz1I)(6Fx1vdVEk>RWXjUiB!xvXARL%t}jt=?z3AteftOxQHDA|4=iA5DfTO zfCp)eQ53s~a7jU!oN?Y{p`l3MpgVe$my|r=idoQ!7?IhF5Gqg-JAq`mPDOiJh)bX% z)VxK#SlKQ+#pP%uyc*<;c_}(VG0Z;_unltYptxOj71aJVD@W@!+Xw0b9R?Xf! zxI_TtU+0I3=e)_*RNCb<&b=ERXKgq2o||nu;^|V&aS|{#yd0Yve3uWOX`jhP8uq!A zrX@2~D)!T~?@kQAyD8UKHfJiF|K4_+-NIrfV1)iaFfaS(4Gx_4aFffA;QH(J^NvN= zoe=R{_<>p#%mR}j&%J@!Y)Zo>25}MR0o#@nW8=|!x;#jAsR1TqK&4DQ8@bTT$0qMv z|Bx=Aq|+k=H&4-2BN*hV8{xvs9se8{Pdv9P)be{w68ZJvQm|Hd&P1+dKZQ)rzsB~v zu9J(MhV*<|tsLNLZ8b5ofTy4K&VI>V`N)(_7#_8oI-rJkBy?bZcWRbMA|8TLa%>9mEtUA za3^Iy!7TKWdMh<0^glO5^{1xF;2EvbTB_fh*ngfYZ0&zS4wej3?sQXX=u}NP{`Z0z zUq|Io!I>%;?Gkb9w_h2HQO`M@$dP(u-4z9TU43H!q-4$kx=EchxJt(sZ1nhu$% z52lf(zc2O=|DP;?|GD6=Q8@<84pmpvn>HWM|156~5=XKcERpzmJk{>aJOL#R?QqOn zy>TU^Hkp9Zu>08Xtp*Q9ydusJ)`-6Nan=Ee)Vy7^Q;QTdaeK1J&jfiAZxbBZZ99kmBMc_OEWcd<-&@ zPBnPzztp+Jyw~)d+$k(v`i;-M@?I&j&#m^u%tSvL=JA73cf2)$OzBlIUE1McqD=~V;;Wr<@j=7FO=&YW5err&BUCQ;q@(7ZMdM4kt3d8KkiwL2 z<~ami`?Kr|%URCNCkN&aZyP|19WTw8JAWuNH04R&_s^byH&YC= zufg_cHvTtUCXWWCD1|hP*LOU>{#~Zckj9zBAz84hTZ?!={95BXT;qUHX&3>Sm-98J zekP?0d@9(dTyGCd=(U9Csr> zAWVeT8ra0|^KcCap-7aDNdL$@B)Pj!kX0P_Wp#)2 zyC>IYCgln-16s0I6{qB5`}(w;HrVP{`Y7N+XJlf90 zshNl}^_=GOFM7RmA%fEGPqW0+{gO%?wNdY~CivRqRbt6!@M$OiSmM|l4T21dUknX= zqc1?$?K`mk&3xVC@kBf~-esaB*(G7jApyZ0(0%60{ami>B z(tWAJlmX0zw@g_rXd6+Ia_BxF*x+p}H9Txy6h_mq-;jzlZOehNPMxg|mVjR`fEu^} zFNDRwxUFJrT=gfQGUHjqNnxZj{RWd)OzC&`Uq|BFCE9NfXYEq)2j_lO$h>-R#WD7^ z_l?66Qsml@_j{+MXG{5%=k*222Z$RIy)IvZ2@-~bSYJ?w`&aD!y=qZvpU&zqc51xp zgTZN~MLesJLECn#lWxb3a5kNl6=tyDUWe3;PTTC*A%vr$yMP)F0gdd`%2Z!A%}c?7 zJv#YaSI*To{5*ib+w2b`p?bJlR^`-87*{+Bu2_BV&A3s47-USY0Hsz{{X>)B{xi_W z*0yN0q6lC8wo?YSff+3$hmP1Pd>BLKXhpj>GyG6MPg(h+85|H;uuY+S?#vR$W)jAM z@nKJJl+=eWX(&%_)O0<=5=M+}>-mG)Ay=8_3=o8}R#JFf@Ro80Kl`i}X>U!r*>5EN z&C{LaAqUaVMTjH}v~Jjkio`PS)I@Aw?kbDl=YMf>CwZK{BsfM1Ci7$~DV0hLfX6bL z4DuP--`o&~-EWl^Ua{#IB|%TDB|YQGCMA@6>1jG$i)Xt)Xss&UL9NYfveTP)it;A) z&G;B@;!;BE14Hr@Lhhm-uT6L|zur>0WIWwq1FW8NuBC}4fQjVA+83m^56r?veDu@u zlbPnI4_I%9vSaVXs=zeLs+rxcSyHoPik}Nf*hWlX;F}`Xu_irPnnLN zb9n_6Xo$ZfG{~7kmPZj~^ah8yBwmtXe3~aRKF5q%@B5?pptA_c5+5RQ?hkeOVu{Sb z2&ZJJ)(#|Z?PBtBF04jqC3g(Nbo5a2S%f;c>QS4mvi?LK|2++uJvyIO39ucl4c|9Z zBg;y`d8(o8!G)jPSO0cC|L{MT(<*eOG9%%~$gDXj=_YDGmPcWnk}G6p>m`!dm;9Y} zQ;6-RpowSucb_wH@w@uKOTq#5Dv6C;aV(DLoW`ai(q_?K=P$=!e|2_7u=zot&x`FB|b%P?w<@%7l@rSMxn?m6Rwy6K#ANcTC1=eEgWy$u^Yw#!o z$Y;}*!#zct-wmJfG<{%O%ULE)?Q!Lg1bj3^RT?tt*@9f7yjDx~8ka-yYShw_9<6sR z4hDKpNpN>Q&A-1KVu5%WM+d)MN>FRg`<)XVZO~g&i(6^=G-6t*{Z!$*z^Cb^?SwbP zNl7sQ0Xc3WYy%&3+LdCbgLGWMuptf7Eh83_W8!V1ZGdx>BbLJKmTu0HK#@+KiI|!y z+nto7b$_b|oFcv&&HeIpkv9 z(P)}=CJ}BW`!S%q-S}=XbosJSnAr~!wC%*Mf!q|Od+BctKu_-8$g!}RAesC?+XFjJ zk0Sr#tmFBAe93q{e8ExRqg+>E*yIv&x%RKjU~DR{+*tAThc*16+urDWb2!+cpR+|u zoZMlGv+9v%t+d`2@O!M(DIZH68$BRLm>@+P)uKxe0zYU92ze9)7hlpUN-?9RS3O!REquJJG<89I|wy zF`Bb?#=K?_uhe>pyu3VM0azaN6&|poD`R~^j@`nhGeR{T;weJ*Y$yzx-6QmxBYkCW z-(v76=Fv6H-0HbpSA-(mr-C8ar>gOXXSsIvevg8Vi}uE#9m{}>D7*)kr3BR7R!mw5 zt>2(107AgTx`_xaMSfsh%hTn^WfL+GX)g|HCgS`%PcE+6|2#TaH)z`;BM#h+*7<`; z9xG_O5lxG}iG`2l*=efjs*f9d2i$o*J9~UoaU?Km%QtANN9cHREAet&(m1TX|` zd8#(w=x1~ug61_?$hKeD{XBBNJ;rX%Q*sWkMW^#JHA!aFS4R3hEY(c8jb&{9IJ)JYlQGxhl8C&}8nCngCZn~S>XzJ5LN40OV{z5D|Gw8}2H($(` zvf1A>7dWeCCW|?r@QE~`al+CCNNBv?@H1CE`}DYnxD=Qtx!?FY2(K=$Rm z;tp25@Yx2_Rsk%Vet{8p`vTRh>U5+*CyA8v(8$Z?KfpjP9SHVTLi1TMecQqoyrF{c`wkm`3_`o ze|zvcXU+&xHNrH`>3;YR&x4iOq~>hxv}0}4)XE^|2VN6sZ^d&hh2IGL=w9#8Qa?x_ z>b|DvYgqS<)bL15)A8eUeb<7e#KS*>Z{(6G5ZIvSeCN9YWH|YAVrOCTq%)Z5LttX+ zi`zC^q}Y5vM282S)f6>QvG8F5Dn|F+*m~;^!>NkL0@x8PNvBCyHomOHRu%TfRJgv zB{ZFy-3c}`w2$x8H!9i@-8ZMx1GLU}X7!dM$rQD1e++;13NiAqpK6@7bpUbtOWTSE zW-J6X*4dzZX^gGMTQyS_0$1)NwRwl%Th9p1tel{d~F}uAba}FT^0vvq8Fc|4b2b zB&|zmD8H4+Z1t(S6d9h<%fy_b@LH0UxK`JN(^iBzF5!+idNqX^d)>Y^IExB}N$fR6 zQV}-OOKvfZnk6@31m9GJ(D?->9ta|2{tUBgBX5>E8lWxddrHid{`eC$O)WfsOkHhEl8{zW5^c^?*1iord4W^p8CmFWHeTb+8qk-#&vO2CA;j ztvBzc6P+ND-!LYO!o$%71b?&fU*My>SAT?GHyXF9B8Nf!4E`%#8Ii`<%C)LKta;QL zs)?UiXs%+FE9C5hQkVNoyie-PQ>Gm9XmzcWc=V=1%WjYF<^9TQQKmfZ<`TSeUSeO z&))-#lI2qK6?2mpw7gBfB>=E^OXTUcRHq$W$DKr=m-+s_bF%n_Cs(IeC z(eZTYXM2Ar5q9JWx!DxKLZhUqFTpX3m38)BuPSIe!E}1}E%f1C&R87x=y&~gAJAI~ znZ4X658(vjSCv=Lc=J8D)xT;gksbA-o>3P)UYs98M6H7`US5C^6>V7_iY3jNA-UuCfxVU zo@d$VUnU|Glhn{6$hqR9N%#mMaXFtB@>SBqz!#f+PanQmwUyEc5Lf1_h>cDS0XV~&-1g92jBo+KGz2Scu5b6Fn#XhGH_v%X<95uNl-SNp%c z8MzdcNYqlGNMoGRP-nh|Zk!v5Togm~rX=wT_*wfyISrzuOQQ&v%7b_HRw|a)N%vtl z!)Y-mT4Z>$*!n-I`<lAl4jH}+HvMvY*HPl0)vds9OQ zqZHa^>*b)d^#J7P2H4-!KU^KYxgY;wnSAbZRMv1}7V3+-;?bv&IlZVFBF}iG)`T`ckJW-c=NX)QFgI^X9 zNcfGu?IM`!Z*-x)|1*49B9m0{6_10dH@(27{Y8m!@jM>Yzony!mQ|0Fe`DF6tDs+g z6Ovd9G7s8@V8NZN*ZuW7e_No=kR*fUs;NE8) zEFNhRbRJ<|Wd0y=qJ9V9*Bdo^5Ve$EvInJBz?GYCjlIt$%eP)LYPb-7#?ZLPeI4m|!NL#|>)OgG z<;O&UQCSx6k`Z2@EVJFalW%Fgu)L(7Y0-o0Am_Ahsz;0#W)RRM zzL3Y~mLw(P54RHhY#GI}W;$!A1~YJeu|~VMV9OFxghxXd}yZTCzjrAyGUH?5^6zYucA%1lhbF;ri%+)2lH4sCBAh#aJy@*#mT&KGUEB;ax z-o82KA@ZQ~A^@QkKhEYMX4-bAuQ^lK zCFttvaPq(;E-|?0=6OSk_&B+VAFJqEW{Jgc|4ralOp0^su*Rw3 zbui1OY#n%tWTbsHN z+vVCY;fKtcvCCj!-%Sk! zkV-B=-S#KOO$CAnO@e)0f$w-;70Q6Ug}vuAAoISUR0YtDQFk?TG$8m09t|sw=B{ zEos!#hs$@N+JEV$K%7(9D@AL&DpYafdHJN%3xi8LP1aehW8+qUGtRbh8Rx#ss&Y@K z7RU5JP(||ekMi)qlYaZI>=w|a1V0w-JXEZ9o~>?z9%WN<=cpD3D{o zxsRH+NC50C+3XKYaO7Fro}<~QXXhOe6Q_XdUc0R^Sb)%D4{YbqL~!8=L;PJ;2kj>yM(d#>AukD*kZg%I7x!`SP$- zZ+MDTgC3xlqnQb3x2YYcu?0{N+J!qn#0zKmI5_zu{7^ zV3B@Vx>D-v@gXj4q_$1=E$Dmm_6pZ1*)hi0Z6R`bTE7s%VQ^}yLMf8w5n-&Nc2c6aMWH+E0R->c z{_`>2&r$s{?lAUs1t_Q)w$s@HJs~EhjxCS)u7IJ<;r7wXgAGz6oGN6E@A)v;c9UyZw?hr2QCvP2i+}J&80eT_2-%5dY!yB zM(hlNHBw$qNF>n>t>H9oR*&>?V$rxgKdx>7ZAF2@lbGfznDw#WJ9mTv_>Lj(64GHBo6+yWn6V7zw_YsdHKl%y|UR|xq;JYlz586_}xA96AE`}4^JBs z8V@LNCGY7j_r?SP-7#OoGOzlk@b2S&4hWctyx-k5aO6obbg9y-{JE9+D1-F6Qd6Z2 zbROUH%e*A0ms5D0s~O0~q{~oF_!RYvr^WpQlZLFNmOk0K!n7Lwpwyw+QyQ!=buiB3 zn2Oz4BaNiu*cwCsj=xcmif-e7!Q5Zz_6rD}z&IE%=?T8(Dg1^1+k#pA{w?gQ$WTrAIeTAMPF>d} z#eSvn6g*eg&Q7lg%=9rS>`t7JEsNhK-Lo`rDvUbzTtT zdvpg@k<^(EZ6Gy3?VSXlTCv}R83K}t{|($86FjlEV4W|?kNndk0V^(11~UCeSy>?V zmA_=Bf*p)@4_GzFno*Fp+n)`^jhmnLro5Aw+XQh6DY{Z`&4XrUcAWoXm|pMCpX8;p-`(#O zgWoN^yOgWR>I`I9dYT@R;On^zD$r~Ck<@kEcra1K#Qe?km5%_Qt4W$2XsBW*GXnh6 z{*nUsML6LRrGEZO%Hy2VvZ=9*?~l6;x$~zhU&qBCJa;4c#$yw6)hIJZ%cHQj!;{$4 z4^ofoKK*%r!Nh>1M@tqj<3D&aQxo z_ouQ_FVucu@kfuR9a zY2YuTALi${Ex!{ugC#c)1&Wn~JBum!yw*R~EG0=4m3^*sd~C+_Zc`yq{#N7qwMjSb zCa=RZNeWz7zlVmo%0;_jleQ(;MYj`E8cKFpal%!Vq+Na!(@PqI+iD^zeD^{5ujLlx z=us~FrfOLf`ctCZ?U~{beD4R!mTDl{xMp`ud8=O~w&CtKVHKl677DrSnt$YvCBL^Q z_X~xFbVsfSC}C-;VHd>K%19%Z@U~UPwiI2Q=Fr_oTK!10`g>YZ;38THH7CT3B`+^ zEq^*!XzHfak1^z2>Py9IkQ39v*PTfVwl;(pc5ygYa~*Ye#4&UcT6$kR?;NIuiVNFPl5iM?CXKX-_qOFD{k@ zc3Y6yUDin*OpuC20YXZ`4c`|Xy0IE}wJOV=uq4Ud(0fM{1YKA!#Z6sni)wqhFFpx82d==i+-G&28%~2JBXl(jKstDQa^5%F-)B)Qb+!FmAbd$y zY6bG#l}fWV>Qwm6R6|u_;TvrZxVvDsqIbjCC-}xqVqxWXr@*e4%XcwK*~wfcocB=_ z!Wz0`X<{thuS4!ggDdnIAAq5T#XN65d+0OFW8oU?5{83%bDU0Kuix5UQuz$~6$c`L zKjN>j?mt<-87VVkGAt(bYw6HCY8FL}}TG?uRzHiTWR41^`!`d*ZnluDOEOkhD@ zPTW4E@D&UbABHH9{ORz4zo=RmjLV^xm?)LhwO4~Wol@)F%l0zb`@cAe!DhxLsmD;- z|4h_6<`w$3A?JLf>E+IdRw%8{y5upJkKql4_~jMf(=7sMiO_APgp8V)0PFqZ8JG@_ z=0|oXcTQxPJxwizjB6ZNv@t0rPml8l&{Yqlz10!F#I+H54C`@tS@VB!_Lf0$ec`ue za0wFJ-9m78N$_BS;1b+|YamGD1b26b;O;c;?(QzZy=D6MuY0Fzs_xWO&9^SI%k(;-by;v$WJDi0DqQZWzS@uSskZ&`tqicH${-Ab`l{-AQNky z==mFAk9lGpHx7xt~E3U>rr$0AkqDrE~xJZ33*WG)T+MYK`4~5RCT3G8RNrn2BY}m6a zN9)hib=JI{mLkOwZPKT;peY>s0nO}XW^*bluacyx20k{yLu6r#)r0B$60s@lh7osv z{b&xv^snNrNATo4bDwm`fft+vxl4ngkp;^}0E+eNjFkcT{{A&Vvm25W(>-&qRlnm_ zxhs?Rc-Z9oa27eDqUs(53WfuKK#(`;dgSAJ&F4nve%S!0_gF1#D!w-i3)?O@PZ&?V z%{i;0mA}TdFWzL+c<~HES+uLksXiFMgOhz(^P=l4%8OAdApCtcc!H)xcRW{hyBS5>~Mx~XaDz`$vp;87^7NMB(d94XQ->LpVL9JHBYD;D!HpI z0)>Py?GYpI8eB=3dTU&%k@5$=u7VF~>igB0(ELraiop@C~zq#czP=E~^1l_BU5_7T)(9 zu+dC6l_Vt7gv=OU9r|Z~*^+Mt@buuue)#rjN?G{jwe(1>A3Sm{aqc~y!nXHU{|ngb z9cxRY3t85sYL7AdCCrFuXVS_GPxZ2x0RO~Eo=$xl7kWh%!*=jlkX+m54c3up5nzsa zSTU0LVe^L@Fr3XbGP?g3f$I_fVd*iPGQo_PUp^OAfkMZ40b4&u1IQ(?O>R;L*R1G! zI*ckRNhI=#Rh6L%x2R8aD(HBUF^(ce?txN~2bXDhCN$rG)(!)qeaP%k?EO_Hp%AKm!~}hwmF!l*uMBwwZEH;+@jWl;>>caKZ!d z^qHFcX_|MgO+n6$rPS#2TU3yq;vw2QI@I7$)-NY0BJT~3S~Zt^E#LN z5Gkm?i?xz%&SbQ^WdAH;i|HPRxQ6*4#lM9RLe}szzL$imgwAO+m&dng6~pMuD1bY~ zbXOE!A&dvnfBAEF0{5OwWkS#Cr74}CFS~XQ&#xq4);vyhyLvGjE8&2(pb z*9D0x7^ZOjcJwf&OI30eGfmZ)(&Pvr-i&dUSOICWStoU`%=S^B6JJNOe_#E2r&*#G z{nK(Fnl4_>$n-(eY@uUG{YSX1^3(Q;(R>7hJa_*4pr25O&Gz)kT>GK3YMWa9c(0Ru zIiFXLFCLCq`sfu)+LB{Usy+A>|=A60;0CMe$6_X;EMP19RMNy{SP#F&V0admdX9 zUVApJT6p+c*}+XN^BkUAQ@zD3p2i$PZku;M;^dqGgNBQY+$?ly$PNj<|Dr?AQp(@y=& z_~8bq2O+L0nioW`m!`J?#f`RZasM*=&u*-zg`f|KtkN6uqJ+hq8#6Ve+k&u7KD-C%J8YsA~X+Ags&W5%?xxk-KltyWPJmHGS2Q zu#di3#(NG@OG383ucW^I0w(Zp5#-0LBi2ws2hwoy*_FC|yX|4JK=8*OM<~kg64ix)1sV4y};it7DFDAxV8` zr@8|sRZwkXJDmzG`$oJe%lAa#yqdGa|J=;7N@c3QIu zjsO&$@P{WJk^9#43{$HPvHGd&XHj&XU ztsRoqL93kgZ$EpwYQ~)gm%~rCJmg2gqkmEL;|tENB|z6wi2LW4tnm%H-^b<{^#YPP z$0QW++EHB8fqL#gclGo$*_%t_9$v1#;2u3Jrj^~Q!8X-;Bhoy?MIE<9H=<_Qz6?g! zx~Xd6GCRR==Pv33q-;W!L{__!DlE*7)w{i;e71{8nXq-;*~LpDqw2~rO{<|iUd69_ zAyffb&1wTQ?Ge62gnZ|c7=L;9J?U!n73{F2=H$gsiYYs`R@Y94D$#m;1%RnHs}B{Y zr1C<0i+wQRNR!it!5p);y0Ch;e;a78lSmV1oV(p<1^s?$NW-_1Z3-Vh3sOjOFG^r0 z)H09-&6!}2BAO3*9;_e~*@5hR9m{_*T<=R>=(o8bRUcHaKM;?z6#muxJ7zMZSBhsL zt_iiAOg}uYTA0l9nX6p6W3Cv|LC#7Kajt$9uzDmHQkq!)H8U^}nWbK%{{5=Z&rf5a z&Gr}-&xJJGZC+L>OpG7v>*fI7tUfZ=mVV{&X=zT(-{nfmUGh(D_7Ny$r>=MoFnp_c zpOB)9Zz-6&=G)5Q=cf1L4(gngoT2ufT--kGw2V;)`L>M`+B>z`L*oXwv(8O8!Igx_!$fmDq9h$r5J~RT1j!uw98i2-kZxl7-Hhxa&Y^S9Rb-ci2PecYLJgU%M;d-fON$lU_jM z{)P5)`|0x?zoZ{cY_1OHm(3n&{nTe?L zddknlB0`{ThlFiPAz&LrzG*TsXZ~_kIn@yf#9&{1+Hwd@%oB>V&UTxN5P0W;IEuMK z`gw;K{90sWmOA+Dv&kHSlj2WUEm@2`T=xz<7JG@fy=%YL6poer%TtuUaeva`KRX@+ zaX<1c{o#KXXb$_@$$wH!ptS7Qh>V+IY>UpfAQiwu8CfEe{-7ANcRO77>jwQ15hwo7 z`;?)ZpU0XNTFgk912lK9N6Ep?fN#(5rY@kfaN>}0DZdKs>V-uU z$`HzcD)`B+h^o`QTKbv1R+(0@pW5^;!dwJO20t1)ejfh)v)%~8d-XNnf&05QSn_@j zK3ZVt&!n_UpD8#U>)28fNR8R~88txqqwz&2T-uMdTzxc9p;N0tU`tEc%p7cTM{JBq z$&%4{q&uoOxV&P{p77@9(R5`*sk6GmAO_Z@+-qX}TEq|!b2B>ZbQJ7)dULpE*Q`A; z(jY5`&9#mePEx*~8o@z@_Mep5*#V{y>2I|%%{bw$_<-2boOi3ggHZRZzZpOdj;7&a zx8bQzliwle=Df4(`iwY>GocCf*!{Ezds7B2K0KqLdw+je4UemUph>VTe^oMo=zv$1 zjEl7rQWLckQ7dp)j6|;Z4QbsgqonVcnk8D^RrgKmceYJRNYW5K^ylxQ%74MuimhpY zTY-&AYYQ8703^i;zI`W?xZ*^65C_lnPT!HdH`76n*U==NAw%NrXxd)Aq7GBxB4KWO zT}I~5YWT+L8sIY<64al5Ksh+c_5#`X9Fz7>@n`3k21hVoI43g=v~`P79bg4A({#O? zetz7X*JVH4UwQlo)@7uqZ+k5p<0N7yx@4acdz&Z-kc}Ax^Mj zzgBb3GNmRb2YruXL>3%;YlII8KZT-+7Ywdj7za@0LAa-0Tq0Ro!sl$?^NiO@-yH*< zAo1&qdhKLs*=bXC?$N+M@&lKJkQ=Fj$6Wh%>9e#n>AT^xX^6!3F0)bqG?U)bF-QD?wdi?>eWx+n@d$uhgbOj(?08fph8t)Cp1OUjhUq zIWo0v%E`Vd$Rg$UkmaRLRx~bPmeCgme%ryE89&n0J44n;Q2YGx8u`TH?h~6k!l%(P zYJ5+G`+BeBlyN5Dd>TE0u{f zs`x(>DE~iB0HdZ!5&P-i$h&n^*njz_{C{1J<~?`n=i=gO+~Car$DwG2;^2$#^ZVaY ziur7M1Mw}cKjFC};Qk*j^M9^Fant`R_a{`O|L1fa{eSS+%(*z|#NwNyq2%}I^Ot=7 z1e+G&%u_bNxlCH`cY$6-p9#Aa;{&`( zMX;M@{C_(4t9VzIq9DG&Dv32tcV2OEi! z1qrOlGix4b1T=~9Bf&3vcMZ!8a$zakl%I#xf_&qer146f8GZzKLAF%thTq^>Rt1}i z+qZVS-p(O%wh0@DvCFQ27ua(>+ZK=&Z%+2GvUc`8m3OelL;DF}2UvRQRo}jQF`5G% z6U+u}Ug{L4Y~yEtU*Is;fj;1{fCWz*eT7c=#ado-au{=xV639p z!Y8vNy#*@p1L7G|w)LgrvE_J@`kt;uVw>erwn9gfIr48yJ8ww!AGG%@m_u^=3vBEv zaXfzY#pv-H0WvCSAN1>ZRSbtJj0^`S-K3&sYSO$QF2)*L5OwPM)DQXrU(#L|7w3{r zLy7Z^xb6-)j36_YW6QAF1R>S8e0X^bTcm4@h8?oRJCDir1!#J-zU}jt=?J*HqFSdk zcci(!bnFIC0s(#P`F`#X_8I@{L|5C_;K*=d1FC^?<~mJl&f_PwtwNZL`22f+e`1tw z@8v%Ao+qn+pQmXkXJ$PwP@GTH3*z;5Jf6FhQ=9Xmhr295btslmt5L0rsoD)WJU8lw z*gQD%Ns${V-ae>qKW))(6^63>cfLeN!0n}KH+c4J|7WORcgn$fuFqQ#x4+(AWbl)9 zFZ2I8=I+0VE}og$BLCC%V8j{zp&yNxJ*jJzU6rOzM8F}c7D{iY>|Vy-Cu1@+E;Cg}vm%2eu7;bC`+X{G>;X*g%OhJ(>z|VUm(@sG33L zdmkUf@Iv%EE%M3yJq8vkx9zez;hT=f7{2ovfxuGk=@Od6J4yZ$JIRKTG1_C<6v%W>0@W%mK`WHMiN0a>Y`}=t=q(vOArA(aNcXg1W zLeOcQ-_R{Hr{MFFlJBX^&G3RLE7|eK0n}|`0Mn3aip2Tbs#Weo^jR!I)TEx#Fz49{XS^P5&He7>BL$>Zk-jkBf$C*FNb=P2pNoueOZk zdc@0-L}Ye=Z!R53?s7q_A{J+KxQ|3_*LU_SfN^c3!YwQ{!cQ~5hJZz{uuYV5i^_n6 zL!-6ghN&?md=6KcmV*xR{+_SM2bqLqlp78G6~Kxs|oDp)q~cP^rqOh1hS#s6s!!; z`fljgb!ZW0->rn}kzE_3U<`I;~HsT@L7ahIK6b037Bh0ygk1V0$N;JP22221nEiE;oS3bgM}` zRdJIXPY_yz?eY}V>n$?UK>8PYw<>tkt9v8goGOdBGhDz3-xbLQxw`~UTNPVt8UEMR z27#g1VsdLlo5B4MnIkoKsMXAS6;{YH=tT{-eec|46I})~Wa2QY#?6&v=OUH3F)6?5 zFSNVcw&}IHS7^;9$oy+ppl>=o^UAQ5&^zZ#1MV29fqy>~WE_N5L~zALncTqzv3CB5 zT_*mXG9mY%E)YQ|IR!rZ9F~!{sx~h~0pXMQt1XdoSm+)%cq(yPuJ9vFYsTcpv;yJb zYIdJ<2^0G3U)!;;T14J9{0PbX0AgGQLk70rQqE$P*z(ZheLLc#6?sj~(c=DV8JI82 z4fbnAp%HXeatnY2BGJYgmp(I{ekV|+$NZvWawd$A`S<*$e&!ABHZ{}XK4S&<4CqaC zcAs1}f7qxpzqHhIXJ}~Bbs6=$1M5(U(%*GaB66Q+w8Rb%T%vDjG^N0{a?B4H) zbL+(xG^Ni=+YCf$WUX{T@6Ey{% z-eS@ELHJ(+AmJXP&Z98W)DklU9ESEK7eMeSspatZZb2pJ?fxHy*yFPq+8F5y5g=LW zW>C|$4Av|(pLu_;oi#JrgB_6Lpk&lTs)wOxAmV2uoiCc$&KlmgM>SzG>7AV=k^VSGV!Jv8!b>m`;$ zB^FMrQ17A4v^b(QLT{cx0T8(VH{n)0kmMQtgZ6k+JJv~HtT^uYYNwa$$V<#Ihp@4o zK8|m9_M)ZI|IPv+4DQP8iq+MFWGPywx5^}P58hhLxISF4FKNoc7~m+`4Ul*TgIKSo_0Gr{rW71!uT(A zd#_eCH68=_Am-{PQ`ytP8&a%I44qG=Jk>9kTV48Y3uczzUrv*K)OCt%lAdcm3_Rkh0-O1gUEvim9IWwh&#N|Z z6siq2(nze?t%Lo!nQyVyF&jfj3HWepW;E!QAijHG)gS-TnsU z?F`S6bMT^IoKR&SK3@)s>67bpDp636_k0e@@3;A(!jA~si%J@sI8Xd_xp8WOLWL+~ z!ZRjh+>@Teh*LQ^6gi1}AL~9dkblxBkz3;gcH_f1i16l(-ecm%3CE`_No{@C)2q#d z@h9*j3H_NOR}}W?43KWd(3p8|b*|)_sDd{^E9P%s7>$?s5sjP`gDGhQdAXG}Fhq?8 z$SK~dXcH38e4z1-lY#x+ib`^a>D27lAT*Lgr?f*c+hOOdkqFMM!@a>h@u3E|Fxem~ zs11HE{dFbtrtK`Z5w9|{jD>X>__n#K4#5`OksOV|qF8$`hIInVh)uHY13y`@rL{eK zBV`T$P+q3Z-Xw8LW~>ou;eV5%=hyE+J3ZhzE6M!Nv9sI$)P)Ad{*uXOGe@5;Eqq?t zPz0V$`fAjlFS)h!d0nb=-2rHbTwK$68$sW3HzmR#s>nn>Lo>Ae$GX4$K@A827vTMV zx;dE7;RUP}TX2TwhVpa`2=x$cu}idg#D~9{`;zhfY+ONNDaXCgWrPr}SiD<1{05k2 ziT_l83DQ|kDU4otif9?HsQClFYDe%0V6&Xep|fXWDigG6G(otSt1((2LwLjhtK*dC z$?#vSi&g;Va#1@AW2irf3s|IY{t zx4HEFynVC;@#sSzVM8vch68N20jAPVcx$Zu4pH%NDDr#t@A}HF`XGZ363pQ4=hR2A zTn6lQlfysh_4XY1#H%bk6=Phl1@;OZ0Ww}mGV-Ti1V@L9e>C)nqE3siQBey;yEHmK zp!)Uk;$}z4BbgwOj#x`i zdcDOlmL2Hh8LTfWR`nBoy-tkOZ`JALn+mnW*WKE+lW-==RJZ;x9z$$qD%7iqa1GN$tE9iDs*3EM-+?vcSFY7PDI`FS%g>)=}EI3pOD1|My&@jHU zOQVpEhd~jOeGqeuOU!m({{gem;fv98pGkjxyjxNgUWwWPY1+5B@HF168mDkYggC+F zXO3Q8RP#7A+B7H$n5SrRXj^#zu{?lyirA9NU3MXi%7@tfWQAs}q4ZlCt5F^6*-Xyv z<}56>r%>dolf{&&9p)T>C_3duMi5F9$h6k03->04Og}6ea#U!Z3^$o^I~l|6N$G6< zb{~X3ELF`W5ixm_T($0Fxuso72G-Y_Rh?FMKz_f_N}AvH&)Q>Y;T!(ibRX;~IBBmN%$Fta}a?CN%C!7}U1mJPkD3ehOasDvN0?r8zH6|u=YKFtnb;S6qzh-b7yEZ@N1 zZ%uy}4=CLU`LWn9_w8ge8cCjEn!>Ypx=Fb$x@AGhYdC>;VZhg)krR(wPGC$^C|!); z7pE3srg+b}Io z=H74Y2Q7J%YuRvd?W9E}hQ3U%t8I7tT0Gz|m8CiQbc6OH%cR1v)EY`A3s9(hIE8oo z5e7nQfUm-NGP4CTkp*{&n#|}+l>=XpQhPqFo07jQI!F!RqdTD0N z_kE81S*FiS=OSLg;Zndu;BSI6UgYu>mk&*j%i_OXdo#r`tA92ek_LSgU#`Pwcgcn| zvFf2{UM1(2^^iI?<1X+(6W((DRsq|NG)z%MNsZs(c1n8LYd!!2^#v%b)a58%puKSM zV}$vo!mF*}D9_ifJS#Kk2XRmQo=`}6yj(9`>!qzc^3*B(>e$p3F;x(R8iZp3HFPhg%rcmQLB+$aPT@d8P(V3fRp^ykd%l4L4G?QHn4yqcU1M4k^l(`s!%CF0zmTJ zkH}-d?&t$#JcU1|LF3usKrSq5IPm*y+cv;pmHF^@P0BeZ)HG1r$hXO@(QNOr%Vl9Y zw(reE;>}N|jvLuKw|Ey|mO#1R(F~YadFkEu=k_vX()B+=r)2;}l5gk_8JO zB`~UNt{dv|Ah9}ZzIh<0AwK#`WdcfCmFcX}h+46xBXHg@9oD@Llg@pHLxqd^aH!f1 z^8QXQW@8qzJ9DLO5w0Gj|G}?e*GKhY`l+N+<62h!JsC_%lFnl#Yro$3utMbs($V_R zfQ{R4M@k+Br}Med{=C_GsWM%S?4Ig=wbj{71FOO>UF8?40RUkr@1(}Xpy^!)$@8^T zX_RY*Yu25AlB!+}X?`)pD(rL+x&}|3C^AIH5 z|8!!%Ufv&7rktrW6)O>%g*6oW3fj>q^~gR^1%L{7D1MLR-+umTqbqR4QNNNGRjS`; zefrJ7oSWv0Gw5hC^Dx^8rv5CmtjgGP4A5jS@_~dD{XVY($PJTEa#?Ji&_^*#ysS)N zf5cS(8&hXZ?wHPYv~oQ{R|qCu`6bBY{(v^@X~0TjCW?eye;9%OQUS?a0icP0J^Bf7 zlEt9~ zMzeW6nd9tliOe6hr;-xs))?xFf=u@;Z#jB$+8;{P3PVd&vVR|8A7@*YC<9jQAbYO; zzGmmJg!*VCt>G+`mHX3q4DPXuf$mz;#fnTkfO~?M%^I)kYzR@h_i(I$wh`EBx4!|A zl+O+$gP%exD~*Fc@yMaU4=g-i>x}Tdl-=YwlY~PxwLuZJpNMzfAB5n~cK~Mg@jqDsQeG2;d8U15Or5J)H67 z^@q=x{B1iaP@H)7zT(psqPTwOxnTap3w(J{ID(mzxOLjhw{$p-1ov&>?UqIss=gC} zLNiiJKcmd5+ApEjzk5VE;p{&PTjW(a<4mRLG{*#tk?@jRqS(Fl)?+KhQi@G%?*IGT zNlmOooi2rSX?guH#~U2&(D9(9h)tj4cShnWez4=khjcie9*)NZKLm~sIRd?(5=aG~ zs#?zKzn=uXI8vwFCmmrP#r+FQgB4XPywZMPsu}ts{@cqSY;jKIj7!I%E!UQpeJZFm zOcZC*?k<5k1J84G#C6p8U6n7B-`BDhx4#pzCK}hs8}JSvl|WPvG8EOen)Un4ak4a1 z{Bt|Ra;p;{q(*!4tLxNngvOH2+=QeRW-%@TU2W8DVuU#83>t6!K3C?kJz_0_^2S58 zihb`|ibFjk$kqVc57Q+L?Jq{ZgNx>*TZzGn<3O2;l%x7x0Jn9e{ahd|?r<&_**9de zLX4$y+ws+V8;(NC)&CyKLM9=hGq`mx-{Tq}RdV_>WoiiDRmVinR@{~*IWR0+CU1tb zsV}j$2GU(2PSw4^fo%tSisaZ%_ZIzREGz)7Le&sANsd~~qR1u}ZsRIRL_~TTK$OjF zeQ_@lPGdlAy0i(lV-J;)?!>=7!y_v>(1hFN@4Wv&5FwIHKNlx41-3ql*6j^P!SHWc zOHXbA@zuWEFEw)d%e8Q~`TT2?jq#ONX(Q6>4UrL<-&KSLI|VHwbi3_H9_RnTO|$O= z_~0Xga+`rm5T_{RH=EWe>sEf6_qx#n2J|F9wE zrJoA2v-ZMal1kABP1?>eg?-H|QvmWE7fGFY?vd0V9w;&OF(^E`N%(#SKg)37@Gluf zjZovgiiS!=LioGnnm>Ub5PM`9TkEX3+0x6O-uRdhEwqDF_=-LCM{wgdHT=2vDowsO)Fz#2MhHk9`L z09-q2TwLh|&h@O(K};3zfM_`_qLppef$u=+%3g0BUot)d+FohoJ_4Pc@#@4&}sO=4u=>GSB81X788hll0E8lUCl+Typ7H0>YWiwl)%o5msG zy?gLkWbJE}x(!;!qVq+T(HSK_n|_wqll5rPZD#NhKCamk=fa1&9ZWkD#9VSx71RXm zGfr%pUEzwx%!+$L5gMQn2rE#xD0k3|L^#9xH7-sc3-|m}+tayBRv09SQM*bQHeLk_&sy47^?=&VJ>L!Yy zN~|d1f3@|==@sIX;_@&E<6;=5!dCJ5P^SQChK^z|j@(jC*6rGqrYq;R|9b9R_Jz1c z{TiX!oE*+|NaDJvYT0s_7jFL&IIG5RP+IOKc`soAYA<>v%>{} zc6`%du$MxA|IZigrmqC98(hI$n|G!hl<0y-N0~Gt2ccM>0GKEA!p42UA7qq46xHE|Cc3pOQbNpQ?my67y!qz`HMRnqgX6 zP7bCTn6kSCDN;6T6uS_(-aBiB9YamrcLwBkVQDjH!sM{|zz{t4M=!^flaG1oo2poma}~!v^(s)w2544Z|Lot-rK&G)74+@<`z;v zc8Ll^wSGn(fGrPFPhuCjSt+^GOoMnmXN;MjE1hr{ebPuoeqC^X|909!i~Xa6L<)w3Kv4=nJOVA6&E)Yp)wwdrm%7#7lIG^M`<~;^BMn#F^J|WPtTvx z1P58)aB{`@DFa6!hBu7Lqm_i$I&Xza(Sl3Ich+vZeNoBZFQns%+Nf0FZ(B{LWi9DI zme1H|$qht#veu;k+o>eSXr45v%1()_sMK1;_BX@GN6{rmK$QwsMmcP*`fuJZA?6dK z&Ld+$`Cq!C!;LerEgL+<^0L%X*2VaCQ5=%Gc?Mo0XV_#UQV*OyG#ca=IQ*x&Myqo~$(hgP&pv^r{+Z6Fa^_PsR{GWJbDdv=E6X;gxPDOSZHwKED2U3GufDVA2Dy@^JdARCb!cl5sH`bcyzF;`n}2 zV2IEbAj!lCbog7Y_q&5qvETT7eIo>>BL1sjP?^OynIX_`?u<7oaT)s!dYlUu*`hI2 z_IA@7=0mf)c zM9g?)whZ7}eLI-R&%@`!k2q&=ZgE8|J%o_?I4!)kE#Hscblrg4Es=ZC6>q zz1p`&y}h8rLv2Bw=^XifH!FGJC3i^2>skfo)Fm&%6uCJe#5*1@jyoa`Sp;pOjrh3H zcAYR$kdN2~%V|G3o=!G{lK40)+&M|K8Z1Hp6K@MU?~eg}t^={Mg?|NOi788rYy*t| zyYmTDXg9qTuEXpz0kz#F9B!<}R79uVr zI_YOdUOtT++WDf4dShg-&JIa@D1uu~{n0MF6R;?EI>_;#yHoOM&^<;0e3+axNhUZaq3Z9IEFBm+3?Zx ztI5lLWt{ik;b)KX5`El@0<$uimR;gMy}{&&Z@DeoF&VB#0;&0==K@qDg#%d=ywHZ@spy|3ZMeCI9BRIH63BTDb_8JJn zUa4INR3TU0&}wqYfquVM3-sn_SsIGs3?7uzpNqH#0livuA(lAC4Q$HP=n_8g#C&sO zeQta|VrJcAdI=D)=%E1wZ+zZ~< zo@BXBhdT*--oI@_#Yu(lMFYA*d5G7{BICu0iT9ljVsH;AWi+}^0#G17ZA^_AZ9V~L zO)R8%U6)v&4eZ`!37N_Af+EK0DlsBj7kg58Y1p1cKO~<9(!*zQxeBKg@fb?k(X<&l zNfWO8hx7hJ2}^W4Q8+1kHGxM*`Qwq=NYC$eYc7N^Alqs*z$C=HY+lK=jDAwir?l-;Wphqw8!*ZQWO*nEPn|^oHHRO-@+XWBD zkfu%wm?!D&d4{`Sn0rVcpN*tx9MzsqciT|kY51~5W}|Pg-(g(4%%4Y6+} zMjjgAgI}frF<4hP>oRcIc~hzL$1?w2xas z(*M%NXY+oG%1(cE=x%q_0ES?#4=d9*Nm96=71xK9n%M`&p@P}7+(hkV-`EJS{(GCB z9TNe1vKAE%)lWtxBPJMN(Pt9(3HvVe{36GG_9Y?KyTLAKkwKx#>Mz&$ap2gjsZn)g z0gUx4{2Qj1A%CF1Jk?o?o@({2F^)9hha|DwygLQh0MOHquWr@2Wx)y+Ab~3&;;Qr! z-L+UVpc+zIWjLj!Fl?){_LK{=U0eZP+fUcD95lbSQ~?JFpR98H*6vzNSGQp{pVn@& zSD&&>2%KR0yh^%8<)AjP)P0B3TwNKZ9>%x2cT;!2_;EAKBy0$5*+aObf$y0pBG2*% z{{wT=GerW?)>n9@|2Z|%vw_*k1#|a4{(&K~<(m=hS8BNe`psxXG4$h-FkZZMf?j83 z?cQkYAE^YZ=d5lLWad(vO~!Ng$txREKQe_D$jx(2?dtLgPu;vbj)zd=7C#&lLc;1c zJH?y%oGUayWm$NK)?v|Pmn1v_v28+qVXr6e4fgyu*#f5!+>CO>Dg2l;^#mCrJa6aS zC?yz@Ww68XWneyjcQ>|}Tlt2aHvY~m%Q^ZOWC_dk9OdoGqR9-IHXxeOB|Y!_yD5~&Bj1}9$X zu_f>!iiB)j1T30;e-p+^lq)=tk3Xc9tV~Hkl)|KXrAwNt)=4kM5he-qz8jZx3NGFT zVcFN66(CsdW$r0{q^e#ynGXZyp}2jFT@^|0B6s%}_t8@jo|6_n5wp0}n14gethUcw z>Z@VyK0wD{;m`<+e#YG>K8HI(VAVx<-(Ws!Y6t%NvBJBRFPue?u=|0~5}ED}Mr2Np zp%6g_q*oP9W@W*=x~8vLGjirIuYz#nxwTU_dLNR`DVOdumq;2}K6pIU>W4<24tG8( z0kiC$N$bzWpGWd`pZ8NZFRFO#dk_+316wdFHjvv?AZph&Qz1x%LP6xfQ3j1o z3E1y6OOqsO*Gim+SHKHegzz(;rbGes*w_BJM_I&y+6v^)*d}28iE>#y#tjZ0==)ke zITuu3mqiJi_dTj-#6_0b|LEK&(paEA$>nNQ$d3M5;r4;bO6OWtlOB~(FEGDr z#CUAPze-Ax!PVRbR)?$7la@Nr|C zSSXqKB<~W@n??paC8H6p-r#`gD>XI!?vZWN@^WIna1I_e!)3aY8}K{nifSX7??ma09}kT%X0!VJQeRSG~=JFOIB| z!l`qoMkMtAv zJ+}{$hv^7$v$Fm@!WIfW50oL`t&WvqA0IG?2l>kro#!{BatxderxFOK!@@R5(q*mw zxr;FTV%M6sJ)Gc+~Mqi|ocoR`Cx*tL;!kugbSb<_#O7fu63M@D4HD0MHp(5S!UOlD{?8hg@nCCVmL7J?$T5oGt#{{d=8( z<0!Jbxb@m8?wGTY7SbSlu(l=CaO?>|+12{!mp|O2f6x=DpD44k&C#$Z`lnGutHQVd zvDWi39tCuJ{?xgA{K88w>P$PgxQ&fs+mvkUl6s=8ejV zub<#_(Sl)xdShx)S$hOkTPE_wR;f?3pOMxuFX@4U9w%{A0D3*{D&J4Vj%3Q!^--_Q zrFg+azjXXX7(7GQtkRIRXxe45X}2k?*G#KT5ovNzwG3JqvYrg<3jO zyzPy16z=wOpvY86X#3tAHM1MGOM9vf{tS&6tXm?wRxPxk)Jjt#-`9sIWUhLA;866* zuI2ZBEiZKzbjNI~k8K$@2~@p5-nFo9rpu}$&>Z+HXs4aTPjm3NBduTU>=6>n2wiPB z&hsr#u6>Vl&7F`;6?lPoIX_$timOTVwBV#TFRjG&x2qFR_`5>ItoZDLyAKl>Db~7# zuqc+vdG5c}2Vcq;K z3xB?Je5k%O=4p<%`(^lYP^DmivrlyZT(Kb38pxwKsAwcyvrTy`1bDd>C_ma{l@`6C zgnmu@0A|1)F#XMyAx7M0L5}lm3fg#_{;G3&@DUoJo>lRml#afN){%woc;7+ivzp7^uia{k+t>(B|Kl>i@yDlzJTM3y{6-U=jXHP> zalBL=AFQXBZVWK!aioRT=Q$YP1Q)dmwUT|aHQ%${;6oA#;Z>l<=*)bb}wXUNG0A*1?$a93VZ+d zwStfP+^FDUD0B|7F0)?3agIXNQyv4`2cC?3Wq80mvcRv^$^3eUSeCv!)>E^Ce`>>K z21^9ds?+WWCM2`Yq*YxvY$xd+A z3^YaGA>3i;FY#mPp&>?upe;k6oErgOMTPkb))PxngUKgT^w2_1CuS_Ifor&!g3&Zw z0X65&(f;3ISWQGMAF5c`k9+u8Y!sg%j;r+qKX$zt?B^_Gj2B_);g2^{&(t|BLBIM-knopPJTq5j5B} z*3Fz@H43}j6g7Q{;)JmRe=7|L<}sW-_R+gwj)%b9K}?e(n|X^q#Ms$aBKmt5S#Nt* zr=-9ht(q^vkvPk*X#KmTaK(ZYHIKZ`q5S&;wtC2tPQ>DkYD~u z6DTPDczMAGaMVRQ)>wa(8MCvF*b;etM`lC5vxc#P+9<5~nvHLdx=iQeQ375|MMHA1 zb+Da0inl2!8I&dA#BI1~F>KV^b*WJNzl);N41U3ji{dU*h*bXf&M88U=6}wrn8M%% zTXBV^2ZBodZt5)~bvwEaJeRmf5$-?5@(t(L=AUknke!vYflZ8nJ@z(;h1A+)JEJ^ zJDuEV-Ojk_;7-a0+Bgw5SMhI8&rqtCL;IaY5c)rXN+_cP$78dH0aOvPku%+GJS27d znhHm6UE|1q*Kf<3SJM^FLl=FafqL(uRm3pC%yjU@(^Jtp`jKc( z-ko5zgD}t7{kt&{MqYrnbD|o1QT*Ab`d@4?$j!`yX)VR?|DAicA>h{v9Tal^Nwi6Ycizv^1A}ow8LkQ2&Aw08%4gTU^w} zmeJ0jq{e~cz5e9DJr?pG1N5;P3B~}0q3+B+s^UuEmo^VSi2Yxby=7Ef-Mj4>A$SNb z!GZ@5?i7{~+$~5U!CiwF7Tn!}1r1UJcXv&23GNnL3aF~y@B6>!jN5md?jHTMY_Ij~ zRl91hXU_SnIwW4)u)%j1Gr86Uj;6JLs|DOOW5j&hS0>Ox|I1jHumC+&>3gN|!pe?s zOZF)~0m?HdEz|$&2xGPfYNSm_Qj4(bWMpvB+vHiucBK9xllsg*1IVP9$3g$&sGeJ` zYyJ7Rbgo{uQZ?A0BruiaidpJSpHg@d3H?tW!SP)a_3%Y=Ff|YBNN%S4qfI5C6 z^(Vk{euG5R&W)!|F|W|%A{!Y|KT*;v`=lR z)>>SD!WxlK9Q}(+sA8z1EB4QMBf9td4U#^L2o+87!h7 zTIEOJ=U!;d|9+`XGf)&r$9wr$tDCE5W&fjLbQxq=x>>z6lJ-ElJ>p=sdA#!q?e?{A zL^r$Uvh(a8gj8gizts)&Q~QtXqvW!m1E1%?`G-H0AXfJZp()(R@(o{lJ6Vm{emL_% zuIir`r4TIxROjDL#6uws=D$*D$>aw<={_FiZ=UCqcE_P$Z2jw=cm=!&ey&Bc zhFD0YS@gF0Xc(1*xK=&CQw=Eo=ScrLDr({#A--BejiCSIgJ|N6p+6JekW-1fnSn<0 zMGrBPL+(OQ%uxP%)TsDQ)kxskAJEXhjg+-hQW3b>gXt@HCxyGuIJlYV3n}J2Y_)kk zlr!|nqi>H=N1;~GgsL4i2{QB5X&Mv*JMGcczXSOC-q}!+FcpQSMlL7&KCpg>P@2%ZK~_zc-LAt$EUZu#duz z{Es_?!9$CuJfYIoteG$(?m{a~M_4~V-``9+(K3fhG;?*6C6Ppi*6D2=%xXmz)2*sV zU03t7`2GHO$7B%B2w~>PuhA%UiV>T+sv>C0P|G0b5-FsCC!?X6T zZ2tR7#p)O_xEF+Z!@fTVodpLTOzal;T`{-3Jg2(%)rGWGqyrpD#1XC_LOBx*t z@DGrue=paOpHtb7YZqOQcG%F);S?xIB2b$!}$7dZ)}|8VotB z1J0tc%w;dETP-8MXk>W*s{$c$4ThS^RTJa!JW zZrNFq+}v|t>CiGG1lz}arCKF^oXHj5J|Qo^0Ce2mfxgsNC2!VJ;Ej29mtvLPod1SA$sOAjEKeylO z^iv^OL$bv}^wuCnCy-)Tt;41%iX}JJtP9kk<58p>{$wOK_5Q9Nd6EW{%W|uotf4BW z^7ivgryaP5C3K#2bNeJ1zkeAEV$a(#S%-UXrf->Ce6DO5VBoq!0ndhjtO9-!R#L)ed z2p`yccG{;TqhsXEP-V;>z6yllRSZibBF~_(%kSRTN5e#g--JD)-v#F7S&179(i6?Q z&4vqqk?-+1LG5IPcFh*=gyjAjcx6c85PpnT%QN`hby7^n3ZEZ>=#+2;8PMtT9L_Xr z)M?+z9a(vgF-$QQ7)5!w>a(`580fg7B)J*3C5D^x&>T4$1lh@!oCru^;lMzbtMwu#{xM-$6stmRk zlV4a;!`gD0?R;_I(jI#vqvm!{l=eZem8k`VBO{4wr-Rg-10K>wm>RCI1DVsO%59QE?j}HUryidFF$UgT91K zf0B?w1Em^;+ryJ`G70O03<1IM;jt;ytnQ9Oix`n)o#tT=6n-3?pyl_U<_QkK2BLHu zrf2slwbSLr&Nil-TaWJpIMAb;FCmJU)1`)i;SUK?QK={WKSc}ioO3jhizp9lPHje{;{Cahd+(+NOhgUSKk(qz%Xmtkda3a|F8P0x|}eb ze5vt=2D3 zwDT<_ZgAB%PE20+x>Wsrmy_YS$SJ-B^FP;THNGyE0s{ftRkkU&i{>UcoRxhmIG&CAy%hU}7+zn5-6gXSAF^nW&PK#k` zC&KRE*K+Qc_bX_mX%+WBtC04^l5$B6&=av}hl|6u&0gUx6>U%UVPuTtbv7h0Y)q!$ z

?!w3Z&ar=yzN**`vz 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 literal 0 HcmV?d00001 diff --git a/cmd/diag/_images/downloader/example_downloader_files_filename.png b/cmd/diag/_images/downloader/example_downloader_files_filename.png new file mode 100644 index 0000000000000000000000000000000000000000..5ff5b5766ef6f31984467a6dd00482496d6f6b73 GIT binary patch literal 183833 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

Ck(Jp?%l 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 NQB~4XtdqA6`){P}YhwTa literal 0 HcmV?d00001 diff --git a/cmd/diag/_images/local_connection.png b/cmd/diag/_images/local_connection.png new file mode 100644 index 0000000000000000000000000000000000000000..4b640cad181af05c56bd55b4ef87e90bc65471df GIT binary patch literal 17995 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 aowJC>Y~|eW1HaYfj?4?i=by!m{r@k3J73EH literal 0 HcmV?d00001 diff --git a/cmd/diag/_images/stages/example_stages.png b/cmd/diag/_images/stages/example_stages.png new file mode 100644 index 0000000000000000000000000000000000000000..7c9891fc3736f46d3b00f95fcb57e5f501225ef3 GIT binary patch literal 52117 zcmbrlWmH_vwl<0em*B3!9fG?B_uvqMySoQ>*93P6?oJ1HcWB(5;MUzA?>^`3v%h

6(4xMl;Ejb=ToS-mo7`1SB8Z#awG>7G6t9|#rQ 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


w9oi4BI0*!3gyYrCDl&YEWV12rFq1t( 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 file.TotalBytes { + fileRow := getDownloadedFileRow(file) + switch cliCtx.String(flags.OutputFlag.Name) { + case "json": + util.RenderJson(fileRow) + case "text": + //Print file status + util.RenderTableWithHeader( + "File download info:", + table.Row{"File", "Size", "Average Download Rate", "Time Took"}, + []table.Row{fileRow}, + ) + } + } else { + fileRow := getFileRow(file) + filePeers := getPeersRows(file.Peers) + fileWebseeds := getPeersRows(file.Webseeds) - if err != nil { - return err + switch cliCtx.String(flags.OutputFlag.Name) { + case "json": + util.RenderJson(fileRow) + util.RenderJson(filePeers) + util.RenderJson(fileWebseeds) + case "text": + //Print file status + util.RenderTableWithHeader( + "file download info:", + table.Row{"File", "Progress", "Total", "Downloaded", "Peers", "Peers Download Rate", "Webseeds", "Webseeds Download Rate", "Time Left", "Active"}, + []table.Row{fileRow}, + ) + + //Print peers and webseeds status + util.RenderTableWithHeader( + "", + table.Row{"Peer", "Download Rate"}, + filePeers, + ) + + util.RenderTableWithHeader( + "", + table.Row{"Webseed", "Download Rate"}, + fileWebseeds, + ) + } } + } else { + txt := text.Colors{text.FgWhite, text.BgRed} + fmt.Printf("%s %s", txt.Sprint("[ERROR]"), "File with name: "+cliCtx.String(FileNameFlag.Name)+" does not exist.") + } - fmt.Println(string(bytes)) + return nil +} - case "text": - fmt.Println("-------------------Snapshot Download-------------------") - - snapDownload := data.SnapshotDownload - var remainingBytes uint64 - percent := 50 - if snapDownload.Total > snapDownload.Downloaded { - remainingBytes = snapDownload.Total - snapDownload.Downloaded - percent = int((snapDownload.Downloaded*100)/snapDownload.Total) / 2 +func getDownloadedFileRow(file diagnostics.SegmentDownloadStatistics) table.Row { + averageDownloadRate := common.ByteCount(file.DownloadedStats.AverageRate) + "/s" + totalDownloadTimeString := time.Duration(file.DownloadedStats.TimeTook) * time.Second + + row := table.Row{ + file.Name, + common.ByteCount(file.TotalBytes), + averageDownloadRate, + totalDownloadTimeString.String(), + } + + return row +} + +func getSnapshotStatusRow(snapDownload diagnostics.SnapshotDownloadStatistics) table.Row { + status := "Downloading" + if snapDownload.DownloadFinished { + status = "Finished" + } + + downloadedPercent := getPercentDownloaded(snapDownload.Downloaded, snapDownload.Total) + + remainingBytes := snapDownload.Total - snapDownload.Downloaded + downloadTimeLeft := diagnostics.CalculateTime(remainingBytes, snapDownload.DownloadRate) + + totalDownloadTimeString := time.Duration(snapDownload.TotalTime) * time.Second + + rowObj := table.Row{ + status, // Status + downloadedPercent, // Progress + common.ByteCount(snapDownload.Downloaded), // Downloaded + common.ByteCount(snapDownload.Total), // Total + downloadTimeLeft, // Time Left + totalDownloadTimeString.String(), // Total Time + common.ByteCount(snapDownload.DownloadRate) + "/s", // Download Rate + common.ByteCount(snapDownload.UploadRate) + "/s", // Upload Rate + snapDownload.Peers, // Peers + snapDownload.Files, // Files + snapDownload.Connections, // Connections + common.ByteCount(snapDownload.Alloc), // Alloc + common.ByteCount(snapDownload.Sys), // Sys + } + + return rowObj +} + +func getFileRow(file diagnostics.SegmentDownloadStatistics) table.Row { + peersDownloadRate := getFileDownloadRate(file.Peers) + webseedsDownloadRate := getFileDownloadRate(file.Webseeds) + totalDownloadRate := peersDownloadRate + webseedsDownloadRate + downloadedPercent := getPercentDownloaded(file.DownloadedBytes, file.TotalBytes) + remainingBytes := file.TotalBytes - file.DownloadedBytes + downloadTimeLeft := diagnostics.CalculateTime(remainingBytes, totalDownloadRate) + isActive := "false" + if totalDownloadRate > 0 { + isActive = "true" + } + + row := table.Row{ + file.Name, + downloadedPercent, + common.ByteCount(file.TotalBytes), + common.ByteCount(file.DownloadedBytes), + len(file.Peers), + common.ByteCount(peersDownloadRate) + "/s", + len(file.Webseeds), + common.ByteCount(webseedsDownloadRate) + "/s", + downloadTimeLeft, + isActive, + } + + return row +} + +func getPeersRows(peers []diagnostics.SegmentPeer) []table.Row { + rows := make([]table.Row, 0) + + for _, peer := range peers { + row := table.Row{ + peer.Url, + common.ByteCount(peer.DownloadRate) + "/s", } - logstr := "[" + rows = append(rows, row) + } - for i := 1; i < 50; i++ { - if i < percent { - logstr += "#" - } else { - logstr += "." - } + return rows +} + +func getFileDownloadRate(peers []diagnostics.SegmentPeer) uint64 { + var downloadRate uint64 + + for _, peer := range peers { + downloadRate += peer.DownloadRate + } + + return downloadRate +} + +func getData(cliCtx *cli.Context) (diagnostics.SyncStatistics, error) { + var data diagnostics.SyncStatistics + url := "http://" + cliCtx.String(flags.DebugURLFlag.Name) + flags.ApiPath + "/snapshot-sync" + + err := util.MakeHttpGetCall(cliCtx.Context, url, &data) + + if err != nil { + return data, err + } + + return data, nil +} + +func filterRows(rows []table.Row, filter string) []table.Row { + switch filter { + case "all": + return rows + case "active": + return filterActive(rows) + case "inactive": + return filterInactive(rows) + case "downloaded": + return filterDownloaded(rows) + case "queued": + return filterQueued(rows) + } + + return rows +} + +func filterActive(rows []table.Row) []table.Row { + filtered := []table.Row{} + + for _, row := range rows { + if row[len(row)-1] == "true" { + filtered = append(filtered, row) } + } - logstr += "]" + return filtered +} - fmt.Println("Download:", logstr, common.ByteCount(snapDownload.Downloaded), "/", common.ByteCount(snapDownload.Total)) - downloadTimeLeft := util.CalculateTime(remainingBytes, snapDownload.DownloadRate) +func filterInactive(rows []table.Row) []table.Row { + filtered := []table.Row{} - fmt.Println("Time left:", downloadTimeLeft) + for _, row := range rows { + if row[len(row)-1] == "false" { + filtered = append(filtered, row) + } } - return nil + return filtered +} + +func filterDownloaded(rows []table.Row) []table.Row { + filtered := []table.Row{} + + for _, row := range rows { + if row[1] == "100.00%" { + filtered = append(filtered, row) + } + } + + return filtered +} + +func filterQueued(rows []table.Row) []table.Row { + filtered := []table.Row{} + + for _, row := range rows { + if row[1] == "0.00%" { + filtered = append(filtered, row) + } + } + + return filtered +} + +func getPercentDownloaded(downloaded, total uint64) string { + percent := float32(downloaded) / float32(total/100) + + if percent > 100 { + percent = 100 + } + + return fmt.Sprintf("%.2f%%", percent) } diff --git a/cmd/diag/flags/flags.go b/cmd/diag/flags/flags.go index a172bfb3f3e..d4bec07b4e5 100644 --- a/cmd/diag/flags/flags.go +++ b/cmd/diag/flags/flags.go @@ -3,6 +3,8 @@ package flags import "github.com/urfave/cli/v2" var ( + ApiPath = "/debug/diag" + DebugURLFlag = cli.StringFlag{ Name: "debug.addr", Aliases: []string{"da"}, @@ -18,4 +20,20 @@ var ( Required: false, Value: "text", } + + AutoUpdateFlag = cli.BoolFlag{ + Name: "autoupdate", + Aliases: []string{"au"}, + Usage: "Auto update the output", + Required: false, + Value: false, + } + + AutoUpdateIntervalFlag = cli.IntFlag{ + Name: "autoupdate.interval", + Aliases: []string{"aui"}, + Usage: "Auto update interval in milliseconds", + Required: false, + Value: 20000, + } ) diff --git a/cmd/diag/main.go b/cmd/diag/main.go index a6bff652ea0..63ebe6d400b 100644 --- a/cmd/diag/main.go +++ b/cmd/diag/main.go @@ -8,16 +8,17 @@ import ( "path/filepath" "syscall" - "github.com/ledgerwatch/log/v3" "github.com/urfave/cli/v2" "github.com/ledgerwatch/erigon/cmd/diag/db" "github.com/ledgerwatch/erigon/cmd/diag/downloader" "github.com/ledgerwatch/erigon/cmd/diag/stages" + "github.com/ledgerwatch/erigon/cmd/diag/ui" "github.com/ledgerwatch/erigon/cmd/snapshots/sync" "github.com/ledgerwatch/erigon/cmd/utils" "github.com/ledgerwatch/erigon/params" "github.com/ledgerwatch/erigon/turbo/logging" + "github.com/ledgerwatch/log/v3" ) func main() { @@ -33,6 +34,7 @@ func main() { &downloader.Command, &stages.Command, &db.Command, + &ui.Command, } app.Flags = []cli.Flag{} diff --git a/cmd/diag/readme.md b/cmd/diag/readme.md new file mode 100644 index 00000000000..279a0f7258b --- /dev/null +++ b/cmd/diag/readme.md @@ -0,0 +1,96 @@ +# Diagnostics commands + +## Diagnostics command architecture +Diagnostics command is implemented to retrieve information from the Erigon node on a headless machine. It makes it easier to run and get information from the node as it runs on the same machine and doesn't require a PIN-secured remote connection. This is done to make the diagnostics process quicker to set up and make the entire process less resistant. + + +### Diagnostics command local connection diagram +![overview](./_images/local_connection.png) + +[Compare with remote connection](https://github.com/ledgerwatch/diagnostics?tab=readme-ov-file#diagnostics-architecture-diagram) + +## Available commands +| | | +|--|--| +|databases|Displays information about databases. [Details](#databases)| +|downloader|Displays info about the snapshot download process| +|stages|Displays the current status of node synchronization| +|ui|Serves local UI interface to browse through all info collected by diagnostics| +||| + +### Global flags +||||| +|--|--|--|--| +|Flag|Default Value|Allowed Values|Description| +|debug.addr|"localhost:6060"|string|Address of diagnostics endpoint in Erigon node. This endpoint must match the values of `diagnostics.endpoint.addr:diagnostics.endpoint.port`. By default, it is `localhost:6060`.| +|output|`text`|`text`, `json`|Defines the output format for diagnostics data. It can be either `text` or `json`. `text` means that the output will be prettified, `json` means that the output will be in JSON format. By default, the output is in `text` format.| +|help|||Shows details about the command| +||||| + + +### Databases +`./build/bin/diag databases` +#### Available flags: +||||| +|--|--|--|--| +|Flag|Default Value|Allowed Values|Description| +|db.appearance.populated|false|boolean|Print only for populated tables content.| +|db.name|""|string|DB name to print info about. If not set, all DBs will be printed.| +|||| + +Examples: +- `./build/bin/diag databases` +![img](./_images/dbs/example_databases.png) +- `./build/bin/diag databases --db.name=caplin/indexing/beacon_indicies` +![img](./_images/dbs/example_databases_name.png) +- `./build/bin/diag databases --db.name=caplin/indexing/beacon_indicies --db.appearance.populated` +![img](./_images/dbs/example_databases_name_populated.png) + +### Downloader +`./build/bin/diag downloader` +Display Snapshot download status + +#### Available subcommands: +||| +|--|--| +|files|Displays status for each file along with overall download status| +||| + +#### Available flags: +||||| +|--|--|--|--| +|Flag|Default Value|Allowed Values|Description| +|downloader.file.filter|`all`|`all`, `active`, `inactive`, `downloaded`, `queued`|Filter files to display.| +|downloader.file.name|""|string|File name to print details about.| +|||| + +Examples: +- `./build/bin/diag downloader` +![img](./_images/downloader/example_downloader.png) +- `./build/bin/diag downloader files` +![img](./_images/downloader/example_downloader_files.png) +- `./build/bin/diag downloader files --downloader.file.filter=downloaded` +![img](./_images/downloader/example_downloader_files_downloaded.png) +- `./build/bin/diag downloader files --downloader.file.name=v1-005400-005500-transactions.seg` +![img](./_images/downloader/example_downloader_files_filename.png) + +### Stages +`./build/bin/diag stages current` +Display node synchronization status + +Example output: + +![img](./_images/stages/example_stages.png) + +### UI +`./build/bin/diag ui` +Serve diagnostics ui locally + +#### Available flags: +||||| +|--|--|--|--| +|Flag|Default Value|Allowed Values|Description| +|ui.addr|`127.0.0.1:6060`|string|URL to serve UI web application.| +|||| + +After running this command, it enables you to navigate through all available diagnostics data using a web application. You can see what is currently [available](https://github.com/ledgerwatch/diagnostics?tab=readme-ov-file#currently-implemented-diagnostics). This command allows you to skip the session setup to connect to your node as it automatically connects to a running node. \ No newline at end of file diff --git a/cmd/diag/stages/stages.go b/cmd/diag/stages/stages.go index 9837de2f041..a2b74468b09 100644 --- a/cmd/diag/stages/stages.go +++ b/cmd/diag/stages/stages.go @@ -1,9 +1,10 @@ package stages import ( - "encoding/json" - "fmt" + "sync" + "time" + "github.com/jedib0t/go-pretty/v6/table" "github.com/ledgerwatch/erigon-lib/diagnostics" "github.com/ledgerwatch/erigon/cmd/diag/flags" "github.com/ledgerwatch/erigon/cmd/diag/util" @@ -14,6 +15,13 @@ var Command = cli.Command{ Name: "stages", Aliases: []string{"st"}, ArgsUsage: "", + Action: printStages, + Flags: []cli.Flag{ + &flags.DebugURLFlag, + &flags.OutputFlag, + &flags.AutoUpdateFlag, + &flags.AutoUpdateIntervalFlag, + }, Subcommands: []*cli.Command{ { Name: "current", @@ -24,43 +32,170 @@ var Command = cli.Command{ Flags: []cli.Flag{ &flags.DebugURLFlag, &flags.OutputFlag, + &flags.AutoUpdateFlag, + &flags.AutoUpdateIntervalFlag, }, }, }, Description: ``, } +func printStages(cliCtx *cli.Context) error { + err := printSyncStages(cliCtx, false) + if err != nil { + util.RenderError(err) + } + + return nil +} + func printCurentStage(cliCtx *cli.Context) error { - var data diagnostics.SyncStatistics - url := "http://" + cliCtx.String(flags.DebugURLFlag.Name) + "/debug/snapshot-sync" + err := printSyncStages(cliCtx, true) + if err != nil { + util.RenderError(err) + } + + return nil +} + +func printSyncStages(cliCtx *cli.Context, isCurrent bool) error { + autoupdate := cliCtx.Bool(flags.AutoUpdateFlag.Name) + + syncStages, err := querySyncInfo(cliCtx) + if err != nil { + util.RenderError(err) + return nil + } else { + var stagesRows []table.Row + if isCurrent { + stagesRows = getCurrentStageRow(syncStages) + } else { + stagesRows = getStagesRows(syncStages) + } + printData(cliCtx, stagesRows) + } + + if autoupdate { + interval := time.Duration(cliCtx.Int(flags.AutoUpdateIntervalFlag.Name)) * time.Millisecond + var wg sync.WaitGroup + wg.Add(1) + + ticker := time.NewTicker(interval) + go func() { + for { + select { + case <-ticker.C: + syncStages, err := querySyncInfo(cliCtx) + if err == nil { + var stagesRows []table.Row + if isCurrent { + stagesRows = getCurrentStageRow(syncStages) + } else { + stagesRows = getStagesRows(syncStages) + } + + printData(cliCtx, stagesRows) + } else { + util.RenderError(err) + wg.Done() + return + } + + case <-cliCtx.Done(): + ticker.Stop() + wg.Done() + return + } + } + }() + + wg.Wait() + } + + return nil +} + +func querySyncInfo(cliCtx *cli.Context) ([]diagnostics.SyncStage, error) { + var data []diagnostics.SyncStage + url := "http://" + cliCtx.String(flags.DebugURLFlag.Name) + flags.ApiPath + "/sync-stages" err := util.MakeHttpGetCall(cliCtx.Context, url, &data) if err != nil { - return err + return nil, err } + return data, nil +} + +func printData(cliCtx *cli.Context, data []table.Row) { switch cliCtx.String(flags.OutputFlag.Name) { case "json": - bytes, err := json.Marshal(data.SyncStages.StagesList) - if err != nil { - return err - } - - fmt.Println(string(bytes)) + util.RenderJson(data) case "text": - fmt.Println("-------------------Stages-------------------") - - for idx, stage := range data.SyncStages.StagesList { - if idx == int(data.SyncStages.CurrentStage) { - fmt.Println("[" + stage + "]" + " - Running") - } else if idx < int(data.SyncStages.CurrentStage) { - fmt.Println("[" + stage + "]" + " - Completed") - } else { - fmt.Println("[" + stage + "]" + " - Queued") + util.RenderTableWithHeader( + "", + table.Row{"Stage", "SubStage", "Status", "Time Elapsed", "Progress"}, + data, + ) + } +} + +func getStagesRows(stages []diagnostics.SyncStage) []table.Row { + return createSyncStageRows(stages, false) +} + +func getCurrentStageRow(stages []diagnostics.SyncStage) []table.Row { + return createSyncStageRows(stages, true) +} + +func createSyncStageRows(stages []diagnostics.SyncStage, forCurrentStage bool) []table.Row { + rows := []table.Row{} + for _, stage := range stages { + + if forCurrentStage { + if stage.State != diagnostics.Running { + continue } } + + stageRow := createStageRowFromStage(stage) + rows = append(rows, stageRow) + + for _, substage := range stage.SubStages { + subStageRow := createSubStageRowFromSubstageStage(substage) + rows = append(rows, subStageRow) + } + + if len(stage.SubStages) != 0 { + rows = append(rows, table.Row{"", "", "", "", ""}) + } + + if forCurrentStage { + break + } + } - return nil + return rows +} + +func createStageRowFromStage(stage diagnostics.SyncStage) table.Row { + return table.Row{ + stage.ID, + "", + stage.State.String(), + stage.Stats.TimeElapsed, + stage.Stats.Progress, + } +} + +func createSubStageRowFromSubstageStage(substage diagnostics.SyncSubStage) table.Row { + return table.Row{ + "", + substage.ID, + substage.State.String(), + substage.Stats.TimeElapsed, + substage.Stats.Progress, + } } diff --git a/cmd/diag/ui/ui.go b/cmd/diag/ui/ui.go new file mode 100644 index 00000000000..1620747b5d9 --- /dev/null +++ b/cmd/diag/ui/ui.go @@ -0,0 +1,137 @@ +package ui + +import ( + "encoding/json" + "fmt" + "log" + "net/http" + "sync" + "time" + + "github.com/ledgerwatch/erigonwatch" + + "github.com/go-chi/chi/v5" + "github.com/go-chi/chi/v5/middleware" + "github.com/go-chi/cors" + "github.com/jedib0t/go-pretty/v6/text" + "github.com/ledgerwatch/erigon/cmd/diag/flags" + "github.com/urfave/cli/v2" +) + +var ( + UIURLFlag = cli.StringFlag{ + Name: "ui.addr", + Usage: "URL to serve UI web application", + Required: false, + Value: "127.0.0.1:6060", + } +) + +var Command = cli.Command{ + Name: "ui", + Action: runUI, + Aliases: []string{"u"}, + Usage: "run local ui", + ArgsUsage: "", + Flags: []cli.Flag{ + &flags.DebugURLFlag, + &UIURLFlag, + }, + Description: ``, +} + +func runUI(cli *cli.Context) error { + supportedSubpaths := []string{ + "sentry-network", + "sentinel-network", + "downloader", + "logs", + "chain", + "data", + "debug", + "testing", + "performance", + "documentation", + "issues", + "admin", + } + + listenUrl := cli.String(UIURLFlag.Name) + + assets, _ := erigonwatch.UIFiles() + fs := http.FileServer(http.FS(assets)) + + r := chi.NewRouter() + r.Use(middleware.Logger) + r.Use(middleware.Recoverer) + r.Use(middleware.RouteHeaders(). + Route("Origin", "*", cors.Handler(cors.Options{ + AllowedOrigins: []string{"*"}, + AllowedMethods: []string{"GET", "POST", "PUT", "DELETE", "OPTIONS"}, + AllowedHeaders: []string{"Accept", "Content-Type", "session-id"}, + AllowCredentials: false, // <----------<<< do not allow credentials + })). + Handler) + + r.Mount("/", fs) + + for _, subpath := range supportedSubpaths { + addhandler(r, "/"+subpath, fs) + } + + // Use the file system to serve static files + url := "http://" + cli.String(flags.DebugURLFlag.Name) + addr := DiagAddress{ + Address: url, + } + + //r.Get("/diagaddr", writeDiagAdderss(addr)) + r.Handle("/data", http.StripPrefix("/data", fs)) + + r.HandleFunc("/diagaddr", func(w http.ResponseWriter, r *http.Request) { + writeDiagAdderss(w, addr) + }) + + srv := &http.Server{ + Addr: listenUrl, + Handler: r, + MaxHeaderBytes: 1 << 20, + ReadHeaderTimeout: 1 * time.Minute, + } + + var wg sync.WaitGroup + wg.Add(1) + + go func() { + defer wg.Done() // Signal that the goroutine has completed + err := srv.ListenAndServe() + + if err != nil { + log.Fatal(err) + } + }() + + uiUrl := fmt.Sprintf("http://%s", listenUrl) + fmt.Println(text.Hyperlink(uiUrl, fmt.Sprintf("UI running on %s", uiUrl))) + + wg.Wait() // Wait for the server goroutine to finish + return nil +} + +func addhandler(r *chi.Mux, path string, handler http.Handler) { + r.Handle(path, http.StripPrefix(path, handler)) +} + +type DiagAddress struct { + Address string `json:"address"` +} + +func writeDiagAdderss(w http.ResponseWriter, addr DiagAddress) { + w.Header().Set("Access-Control-Allow-Origin", "*") + w.Header().Set("Content-Type", "application/json") + + if err := json.NewEncoder(w).Encode(addr); err != nil { + http.Error(w, err.Error(), http.StatusInternalServerError) + } + +} diff --git a/cmd/diag/util/util.go b/cmd/diag/util/util.go index f6c9e6184e2..43cda2761a7 100644 --- a/cmd/diag/util/util.go +++ b/cmd/diag/util/util.go @@ -6,7 +6,12 @@ import ( "fmt" "io" "net/http" + "os" + "strings" "time" + + "github.com/jedib0t/go-pretty/v6/table" + "github.com/jedib0t/go-pretty/v6/text" ) func MakeHttpGetCall(ctx context.Context, url string, data interface{}) error { @@ -21,6 +26,9 @@ func MakeHttpGetCall(ctx context.Context, url string, data interface{}) error { resp, err := client.Do(req) if err != nil { + if strings.Contains(err.Error(), "connection refused") { + return fmt.Errorf("it looks like the Erigon node is not running, is running incorrectly, or you have specified the wrong diagnostics URL. If you run the Erigon node with the '--diagnostics.endpoint.addr' or '--diagnostics.endpoint.port' flags, you must also specify the '--debug.addr' flag with the same address and port") + } return err } @@ -32,20 +40,58 @@ func MakeHttpGetCall(ctx context.Context, url string, data interface{}) error { err = json.Unmarshal(body, &data) if err != nil { + if err.Error() == "invalid character 'p' after top-level value" { + return fmt.Errorf("diagnostics was not initialized yet. Please try again in a few seconds") + } + return err } return nil } -func CalculateTime(amountLeft, rate uint64) string { - if rate == 0 { - return "999hrs:99m" +func RenderJson(data interface{}) { + bytes, err := json.Marshal(data) + + if err == nil { + fmt.Println(string(bytes)) + fmt.Print("\n") + } +} + +func RenderTableWithHeader(title string, header table.Row, rows []table.Row) { + if title != "" { + txt := text.Colors{text.FgBlue, text.Bold} + fmt.Println(txt.Sprint(title)) + + if len(rows) == 0 { + txt := text.Colors{text.FgRed, text.Bold} + fmt.Println(txt.Sprint("No data to show")) + } } - timeLeftInSeconds := amountLeft / rate - hours := timeLeftInSeconds / 3600 - minutes := (timeLeftInSeconds / 60) % 60 + if len(rows) > 0 { + t := table.NewWriter() + t.SetOutputMirror(os.Stdout) + + t.AppendHeader(header) + if len(rows) > 0 { + t.AppendRows(rows) + } + + t.AppendSeparator() + t.Render() + } + + fmt.Print("\n") +} + +func RenderUseDiagUI() { + txt := text.Colors{text.BgGreen, text.Bold} + fmt.Println(txt.Sprint("To get detailed info about Erigon node state use 'diag ui' command.")) +} - return fmt.Sprintf("%dhrs:%dm", hours, minutes) +func RenderError(err error) { + txt := text.Colors{text.FgWhite, text.BgRed} + fmt.Printf("%s %s\n", txt.Sprint("[ERROR]"), err) } diff --git a/cmd/rpcdaemon/cli/httpcfg/http_cfg.go b/cmd/rpcdaemon/cli/httpcfg/http_cfg.go index 619ce06b260..3673eaac5b0 100644 --- a/cmd/rpcdaemon/cli/httpcfg/http_cfg.go +++ b/cmd/rpcdaemon/cli/httpcfg/http_cfg.go @@ -42,6 +42,7 @@ type HttpCfg struct { API []string Gascap uint64 + Feecap float64 MaxTraces uint64 WebsocketPort int WebsocketEnabled bool diff --git a/cmd/utils/flags.go b/cmd/utils/flags.go index 4dc4ad6b51f..2cfb086923d 100644 --- a/cmd/utils/flags.go +++ b/cmd/utils/flags.go @@ -1795,7 +1795,8 @@ func SetEthConfig(ctx *cli.Context, nodeConfig *nodecfg.Config, cfg *ethconfig.C if known, ok := snapcfg.KnownWebseeds[chain]; ok { webseedsList = append(webseedsList, known...) } - cfg.Downloader, err = downloadercfg2.New(cfg.Dirs, version, lvl, downloadRate, uploadRate, ctx.Int(TorrentPortFlag.Name), ctx.Int(TorrentConnsPerFileFlag.Name), ctx.Int(TorrentDownloadSlotsFlag.Name), ctx.StringSlice(TorrentDownloadSlotsFlag.Name), webseedsList, chain, true) + cfg.Downloader, err = downloadercfg2.New(cfg.Dirs, version, lvl, downloadRate, uploadRate, ctx.Int(TorrentPortFlag.Name), ctx.Int(TorrentConnsPerFileFlag.Name), ctx.Int(TorrentDownloadSlotsFlag.Name), libcommon.CliString2Array(ctx.String(TorrentStaticPeersFlag.Name)), webseedsList, chain, true) + if err != nil { panic(err) } diff --git a/core/state_transition.go b/core/state_transition.go index 272665b8ef6..27b4145a8ab 100644 --- a/core/state_transition.go +++ b/core/state_transition.go @@ -309,7 +309,8 @@ func (st *StateTransition) preCheck(gasBailout bool) error { // Make sure the transaction gasFeeCap is greater than the block's baseFee. if st.evm.ChainRules().IsLondon { // Skip the checks if gas fields are zero and baseFee was explicitly disabled (eth_call) - if !st.evm.Config().NoBaseFee || !st.gasFeeCap.IsZero() || !st.tip.IsZero() { + skipCheck := st.evm.Config().NoBaseFee && st.gasFeeCap.IsZero() && st.tip.IsZero() + if !skipCheck { if err := CheckEip1559TxGasFeeCap(st.msg.From(), st.gasFeeCap, st.tip, st.evm.Context.BaseFee, st.msg.IsFree()); err != nil { return err } @@ -324,7 +325,7 @@ func (st *StateTransition) preCheck(gasBailout bool) error { return err } maxFeePerBlobGas := st.msg.MaxFeePerBlobGas() - if blobGasPrice.Cmp(maxFeePerBlobGas) > 0 { + if !st.evm.Config().NoBaseFee && blobGasPrice.Cmp(maxFeePerBlobGas) > 0 { return fmt.Errorf("%w: address %v, maxFeePerBlobGas: %v blobGasPrice: %v, excessBlobGas: %v", ErrMaxFeePerBlobGas, st.msg.From().Hex(), st.msg.MaxFeePerBlobGas(), blobGasPrice, st.evm.Context.ExcessBlobGas) diff --git a/core/vm/evm.go b/core/vm/evm.go index b8be8ae118d..d7246736241 100644 --- a/core/vm/evm.go +++ b/core/vm/evm.go @@ -119,6 +119,12 @@ type EVM struct { // NewEVM returns a new EVM. The returned EVM is not thread safe and should // only ever be used *once*. func NewEVM(blockCtx evmtypes.BlockContext, txCtx evmtypes.TxContext, state evmtypes.IntraBlockState, chainConfig *chain.Config, vmConfig Config) *EVM { + if vmConfig.NoBaseFee { + if txCtx.GasPrice.IsZero() { + blockCtx.BaseFee = new(uint256.Int) + } + } + evm := &EVM{ Context: blockCtx, TxContext: txCtx, diff --git a/diagnostics/mem.go b/diagnostics/mem.go index 1ad34adea56..592b7fdbdcc 100644 --- a/diagnostics/mem.go +++ b/diagnostics/mem.go @@ -20,8 +20,8 @@ func SetupMemAccess(metricsMux *http.ServeMux) { } func writeMem(w http.ResponseWriter) { - memStats, err := mem.ReadVirtualMemStats() - if err != nil { + memStats, err := mem.ReadVirtualMemStats() //nolint + if err != nil { //nolint http.Error(w, err.Error(), http.StatusInternalServerError) return } diff --git a/diagnostics/setup.go b/diagnostics/setup.go index 6534ecac245..7eb9363a3c6 100644 --- a/diagnostics/setup.go +++ b/diagnostics/setup.go @@ -50,11 +50,13 @@ func Setup(ctx *cli.Context, node *node.ErigonNode, metricsMux *http.ServeMux, p } speedTest := ctx.Bool(diagnoticsSpeedTestFlag) - - diagnostic := diaglib.NewDiagnosticClient(diagMux, node.Backend().DataDir(), speedTest) - diagnostic.Setup() - - SetupEndpoints(ctx, node, diagMux, diagnostic) + diagnostic, err := diaglib.NewDiagnosticClient(ctx.Context, diagMux, node.Backend().DataDir(), speedTest) + if err == nil { + diagnostic.Setup() + SetupEndpoints(ctx, node, diagMux, diagnostic) + } else { + log.Error("[Diagnostics] Failure in setting up diagnostics", "err", err) + } } func SetupDiagnosticsEndpoint(metricsMux *http.ServeMux, addres string) *http.ServeMux { diff --git a/diagnostics/snapshot_sync.go b/diagnostics/snapshot_sync.go index 9100977ab5b..265f8496124 100644 --- a/diagnostics/snapshot_sync.go +++ b/diagnostics/snapshot_sync.go @@ -41,6 +41,12 @@ func SetupStagesAccess(metricsMux *http.ServeMux, diag *diaglib.DiagnosticClient w.Header().Set("Content-Type", "application/json") writeNetworkSpeed(w, diag) }) + + metricsMux.HandleFunc("/sync-stages", func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Access-Control-Allow-Origin", "*") + w.Header().Set("Content-Type", "application/json") + writeSyncStages(w, diag) + }) } func writeNetworkSpeed(w http.ResponseWriter, diag *diaglib.DiagnosticClient) { @@ -62,3 +68,7 @@ func writeFilesList(w http.ResponseWriter, diag *diaglib.DiagnosticClient) { func writeHardwareInfo(w http.ResponseWriter, diag *diaglib.DiagnosticClient) { json.NewEncoder(w).Encode(diag.HardwareInfo()) } + +func writeSyncStages(w http.ResponseWriter, diag *diaglib.DiagnosticClient) { + json.NewEncoder(w).Encode(diag.GetSyncStages()) +} diff --git a/erigon-lib/common/dir/rw_dir.go b/erigon-lib/common/dir/rw_dir.go index c9d0a1b6c16..6e07f6665b1 100644 --- a/erigon-lib/common/dir/rw_dir.go +++ b/erigon-lib/common/dir/rw_dir.go @@ -19,6 +19,7 @@ package dir import ( "os" "path/filepath" + "strings" "golang.org/x/sync/errgroup" ) @@ -133,6 +134,9 @@ func ListFiles(dir string, extensions ...string) (paths []string, err error) { if f.IsDir() && !f.Type().IsRegular() { continue } + if strings.HasPrefix(f.Name(), ".") { + continue + } match := false if len(extensions) == 0 { match = true diff --git a/erigon-lib/diagnostics/block_execution.go b/erigon-lib/diagnostics/block_execution.go index 0944ddb2ec8..fcb448376a8 100644 --- a/erigon-lib/diagnostics/block_execution.go +++ b/erigon-lib/diagnostics/block_execution.go @@ -25,7 +25,7 @@ func (d *DiagnosticClient) runBlockExecutionListener(rootCtx context.Context) { d.syncStats.BlockExecution = info d.mu.Unlock() - if int(d.syncStats.SyncStages.CurrentStage) >= len(d.syncStats.SyncStages.StagesList) { + if d.syncStats.SyncFinished { return } } diff --git a/erigon-lib/diagnostics/client.go b/erigon-lib/diagnostics/client.go index df5b04a76fc..ecadc345126 100644 --- a/erigon-lib/diagnostics/client.go +++ b/erigon-lib/diagnostics/client.go @@ -1,17 +1,28 @@ package diagnostics import ( + "context" "net/http" + "path/filepath" "sync" + "github.com/c2h5oh/datasize" + "golang.org/x/sync/semaphore" + "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon-lib/kv/mdbx" + "github.com/ledgerwatch/log/v3" ) type DiagnosticClient struct { + ctx context.Context + db kv.RwDB metricsMux *http.ServeMux dataDirPath string speedTest bool + syncStages []SyncStage syncStats SyncStatistics snapshotFileList SnapshoFilesList mu sync.Mutex @@ -27,20 +38,54 @@ type DiagnosticClient struct { networkSpeedMutex sync.Mutex } -func NewDiagnosticClient(metricsMux *http.ServeMux, dataDirPath string, speedTest bool) *DiagnosticClient { +func NewDiagnosticClient(ctx context.Context, metricsMux *http.ServeMux, dataDirPath string, speedTest bool) (*DiagnosticClient, error) { + dirPath := filepath.Join(dataDirPath, "diagnostics") + db, err := createDb(ctx, dirPath) + if err != nil { + return nil, err + } + + hInfo := ReadSysInfo(db) + ss := ReadSyncStages(db) + snpdwl := ReadSnapshotDownloadInfo(db) + snpidx := ReadSnapshotIndexingInfo(db) + return &DiagnosticClient{ - metricsMux: metricsMux, - dataDirPath: dataDirPath, - speedTest: speedTest, - syncStats: SyncStatistics{}, - hardwareInfo: HardwareInfo{}, + ctx: ctx, + db: db, + metricsMux: metricsMux, + dataDirPath: dataDirPath, + speedTest: speedTest, + syncStages: ss, + syncStats: SyncStatistics{ + SnapshotDownload: snpdwl, + SnapshotIndexing: snpidx, + }, + hardwareInfo: hInfo, snapshotFileList: SnapshoFilesList{}, bodies: BodiesInfo{}, resourcesUsage: ResourcesUsage{ MemoryUsage: []MemoryStats{}, }, peersStats: NewPeerStats(1000), // 1000 is the limit of peers; TODO: make it configurable through a flag + }, nil +} + +func createDb(ctx context.Context, dbDir string) (db kv.RwDB, err error) { + db, err = mdbx.NewMDBX(log.New()). + Label(kv.DiagnosticsDB). + WithTableCfg(func(defaultBuckets kv.TableCfg) kv.TableCfg { return kv.DiagnosticsTablesCfg }). + GrowthStep(4 * datasize.MB). + MapSize(16 * datasize.GB). + PageSize(uint64(4 * datasize.KB)). + RoTxsLimiter(semaphore.NewWeighted(9_000)). + Path(dbDir). + Open(ctx) + if err != nil { + return nil, err } + + return db, nil } func (d *DiagnosticClient) Setup() { diff --git a/erigon-lib/diagnostics/entities.go b/erigon-lib/diagnostics/entities.go index e7e75c91b12..5eaea58f081 100644 --- a/erigon-lib/diagnostics/entities.go +++ b/erigon-lib/diagnostics/entities.go @@ -20,9 +20,22 @@ import ( "time" ) -type PeerStatisticsGetter interface { - GetPeersStatistics() map[string]*PeerStatistics -} +type SyncStageType string + +const ( + Snapshots SyncStageType = "Snapshots" + BlockHashes SyncStageType = "BlockHashes" + Senders SyncStageType = "Senders" + Execution SyncStageType = "Execution" + HashState SyncStageType = "HashState" + IntermediateHashes SyncStageType = "IntermediateHashes" + CallTraces SyncStageType = "CallTraces" + AccountHistoryIndex SyncStageType = "AccountHistoryIndex" + StorageHistoryIndex SyncStageType = "StorageHistoryIndex" + LogIndex SyncStageType = "LogIndex" + TxLookup SyncStageType = "TxLookup" + Finish SyncStageType = "Finish" +) type PeerStatistics struct { PeerType string @@ -54,10 +67,10 @@ type PeerStatisticMsgUpdate struct { } type SyncStatistics struct { - SyncStages SyncStages `json:"syncStages"` SnapshotDownload SnapshotDownloadStatistics `json:"snapshotDownload"` SnapshotIndexing SnapshotIndexingStatistics `json:"snapshotIndexing"` BlockExecution BlockExecutionStatistics `json:"blockExecution"` + SyncFinished bool `json:"syncFinished"` } type SnapshotDownloadStatistics struct { @@ -77,11 +90,23 @@ type SnapshotDownloadStatistics struct { } type SegmentDownloadStatistics struct { - Name string `json:"name"` - TotalBytes uint64 `json:"totalBytes"` - DownloadedBytes uint64 `json:"downloadedBytes"` - Webseeds []SegmentPeer `json:"webseeds"` - Peers []SegmentPeer `json:"peers"` + Name string `json:"name"` + TotalBytes uint64 `json:"totalBytes"` + DownloadedBytes uint64 `json:"downloadedBytes"` + Webseeds []SegmentPeer `json:"webseeds"` + Peers []SegmentPeer `json:"peers"` + DownloadedStats FileDownloadedStatistics `json:"downloadedStats"` +} + +type FileDownloadedStatistics struct { + TimeTook float64 `json:"timeTook"` + AverageRate uint64 `json:"averageRate"` +} + +type FileDownloadedStatisticsUpdate struct { + FileName string `json:"fileName"` + TimeTook float64 `json:"timeTook"` + AverageRate uint64 `json:"averageRate"` } type SegmentPeer struct { @@ -105,19 +130,6 @@ type SnapshotSegmentIndexingFinishedUpdate struct { SegmentName string `json:"segmentName"` } -type SyncStagesList struct { - Stages []string `json:"stages"` -} - -type CurrentSyncStage struct { - Stage uint `json:"stage"` -} - -type SyncStages struct { - StagesList []string `json:"stagesList"` - CurrentStage uint `json:"currentStage"` -} - type BlockExecutionStatistics struct { From uint64 `json:"from"` To uint64 `json:"to"` @@ -237,14 +249,19 @@ type MemoryStats struct { Alloc uint64 `json:"alloc"` Sys uint64 `json:"sys"` OtherFields []interface{} - Timestamp time.Time `json:"timestamp"` - StageIndex int `json:"stageIndex"` + Timestamp time.Time `json:"timestamp"` + StageIndex CurrentSyncStagesIdxs `json:"stageIndex"` } type NetworkSpeedTestResult struct { Latency time.Duration `json:"latency"` DownloadSpeed float64 `json:"downloadSpeed"` UploadSpeed float64 `json:"uploadSpeed"` + PacketLoss float64 `json:"packetLoss"` +} + +func (ti FileDownloadedStatisticsUpdate) Type() Type { + return TypeOf(ti) } func (ti MemoryStats) Type() Type { @@ -295,14 +312,6 @@ func (ti SnapshotSegmentIndexingFinishedUpdate) Type() Type { return TypeOf(ti) } -func (ti SyncStagesList) Type() Type { - return TypeOf(ti) -} - -func (ti CurrentSyncStage) Type() Type { - return TypeOf(ti) -} - func (ti PeerStatisticMsgUpdate) Type() Type { return TypeOf(ti) } diff --git a/erigon-lib/diagnostics/provider.go b/erigon-lib/diagnostics/provider.go index cfbc362cd1d..fe27c22f5d4 100644 --- a/erigon-lib/diagnostics/provider.go +++ b/erigon-lib/diagnostics/provider.go @@ -80,30 +80,6 @@ type registry struct { var providers = map[Type]*registry{} var providerMutex sync.RWMutex -func RegisterProvider(provider Provider, infoType Type, logger log.Logger) { - providerMutex.Lock() - defer providerMutex.Unlock() - - reg := providers[infoType] - - if reg != nil { - for _, p := range reg.providers { - if p == provider { - return - } - } - } else { - reg = ®istry{} - providers[infoType] = reg - } - - reg.providers = append(reg.providers, provider) - - if reg.context != nil { - go startProvider(reg.context, infoType, provider, logger) - } -} - func StartProviders(ctx context.Context, infoType Type, logger log.Logger) { providerMutex.Lock() diff --git a/erigon-lib/diagnostics/provider_test.go b/erigon-lib/diagnostics/provider_test.go index b5f2fefc7f4..5329e7de4ea 100644 --- a/erigon-lib/diagnostics/provider_test.go +++ b/erigon-lib/diagnostics/provider_test.go @@ -17,10 +17,7 @@ func (ti testInfo) Type() diagnostics.Type { return diagnostics.TypeOf(ti) } -type testProvider struct { -} - -func (t *testProvider) StartDiagnostics(ctx context.Context) error { +func StartDiagnostics(ctx context.Context) error { timer := time.NewTicker(1 * time.Second) defer timer.Stop() @@ -39,64 +36,11 @@ func (t *testProvider) StartDiagnostics(ctx context.Context) error { func TestProviderRegistration(t *testing.T) { - // diagnostics provider - provider := &testProvider{} - diagnostics.RegisterProvider(provider, diagnostics.TypeOf(testInfo{}), log.Root()) - - // diagnostics receiver - ctx, ch, cancel := diagnostics.Context[testInfo](context.Background(), 1) - diagnostics.StartProviders(ctx, diagnostics.TypeOf(testInfo{}), log.Root()) - - for info := range ch { - if info.count == 3 { - cancel() - } - } -} - -func TestDelayedProviderRegistration(t *testing.T) { - - time.AfterFunc(1*time.Second, func() { - // diagnostics provider - provider := &testProvider{} - diagnostics.RegisterProvider(provider, diagnostics.TypeOf(testInfo{}), log.Root()) - }) - // diagnostics receiver ctx, ch, cancel := diagnostics.Context[testInfo](context.Background(), 1) diagnostics.StartProviders(ctx, diagnostics.TypeOf(testInfo{}), log.Root()) - for info := range ch { - if info.count == 3 { - cancel() - } - } -} - -func TestProviderFuncRegistration(t *testing.T) { - - // diagnostics provider - diagnostics.RegisterProvider(diagnostics.ProviderFunc(func(ctx context.Context) error { - timer := time.NewTicker(1 * time.Second) - defer timer.Stop() - - var count int - - for { - select { - case <-ctx.Done(): - return nil - case <-timer.C: - diagnostics.Send(testInfo{count}) - count++ - } - } - }), diagnostics.TypeOf(testInfo{}), log.Root()) - - // diagnostics receiver - ctx, ch, cancel := diagnostics.Context[testInfo](context.Background(), 1) - - diagnostics.StartProviders(ctx, diagnostics.TypeOf(testInfo{}), log.Root()) + go StartDiagnostics(ctx) for info := range ch { if info.count == 3 { diff --git a/erigon-lib/diagnostics/resources_usage.go b/erigon-lib/diagnostics/resources_usage.go index 9700f728e67..36064ce44b8 100644 --- a/erigon-lib/diagnostics/resources_usage.go +++ b/erigon-lib/diagnostics/resources_usage.go @@ -31,7 +31,7 @@ func (d *DiagnosticClient) runMemoryStatsListener(rootCtx context.Context) { return case info := <-ch: d.resourcesUsageMutex.Lock() - info.StageIndex = int(d.syncStats.SyncStages.CurrentStage) + info.StageIndex = d.getCurrentSyncIdxs() d.resourcesUsage.MemoryUsage = append(d.resourcesUsage.MemoryUsage, info) d.resourcesUsageMutex.Unlock() } diff --git a/erigon-lib/diagnostics/snapshots.go b/erigon-lib/diagnostics/snapshots.go index 25f636c8d29..f042510c6d4 100644 --- a/erigon-lib/diagnostics/snapshots.go +++ b/erigon-lib/diagnostics/snapshots.go @@ -2,16 +2,26 @@ package diagnostics import ( "context" + "encoding/json" + "fmt" + "time" + "github.com/ledgerwatch/erigon-lib/kv" "github.com/ledgerwatch/log/v3" ) +var ( + SnapshotDownloadStatisticsKey = []byte("diagSnapshotDownloadStatistics") + SnapshotIndexingStatisticsKey = []byte("diagSnapshotIndexingStatistics") +) + func (d *DiagnosticClient) setupSnapshotDiagnostics(rootCtx context.Context) { d.runSnapshotListener(rootCtx) d.runSegmentDownloadingListener(rootCtx) d.runSegmentIndexingListener(rootCtx) d.runSegmentIndexingFinishedListener(rootCtx) d.runSnapshotFilesListListener(rootCtx) + d.runFileDownloadedListener(rootCtx) } func (d *DiagnosticClient) runSnapshotListener(rootCtx context.Context) { @@ -25,6 +35,7 @@ func (d *DiagnosticClient) runSnapshotListener(rootCtx context.Context) { case <-rootCtx.Done(): return case info := <-ch: + d.mu.Lock() d.syncStats.SnapshotDownload.Downloaded = info.Downloaded d.syncStats.SnapshotDownload.Total = info.Total @@ -38,17 +49,63 @@ func (d *DiagnosticClient) runSnapshotListener(rootCtx context.Context) { d.syncStats.SnapshotDownload.Sys = info.Sys d.syncStats.SnapshotDownload.DownloadFinished = info.DownloadFinished d.syncStats.SnapshotDownload.TorrentMetadataReady = info.TorrentMetadataReady + + downloadedPercent := getPercentDownloaded(info.Downloaded, info.Total) + remainingBytes := info.Total - info.Downloaded + downloadTimeLeft := CalculateTime(remainingBytes, info.DownloadRate) + totalDownloadTimeString := time.Duration(info.TotalTime) * time.Second + + d.updateSnapshotStageStats(SyncStageStats{ + TimeElapsed: totalDownloadTimeString.String(), + TimeLeft: downloadTimeLeft, + Progress: downloadedPercent, + }, "Downloading snapshots") + + if err := d.db.Update(d.ctx, SnapshotDownloadUpdater(d.syncStats.SnapshotDownload)); err != nil { + log.Error("[Diagnostics] Failed to update snapshot download info", "err", err) + } + + d.saveSyncStagesToDB() + d.mu.Unlock() - if info.DownloadFinished { + if d.snapshotStageFinished() { return } } } - }() } +func getPercentDownloaded(downloaded, total uint64) string { + percent := float32(downloaded) / float32(total/100) + + if percent > 100 { + percent = 100 + } + + return fmt.Sprintf("%.2f%%", percent) +} + +func (d *DiagnosticClient) updateSnapshotStageStats(stats SyncStageStats, subStageInfo string) { + idxs := d.getCurrentSyncIdxs() + if idxs.Stage == -1 || idxs.SubStage == -1 { + log.Warn("[Diagnostics] Can't find running stage or substage while updating Snapshots stage stats.", "stages:", d.syncStages, "stats:", stats, "subStageInfo:", subStageInfo) + return + } + + d.syncStages[idxs.Stage].SubStages[idxs.SubStage].Stats = stats +} + +func (d *DiagnosticClient) snapshotStageFinished() bool { + idx := d.getCurrentSyncIdxs() + if idx.Stage > 0 { + return true + } else { + return false + } +} + func (d *DiagnosticClient) runSegmentDownloadingListener(rootCtx context.Context) { go func() { ctx, ch, closeChannel := Context[SegmentDownloadStatistics](rootCtx, 1) @@ -65,7 +122,21 @@ func (d *DiagnosticClient) runSegmentDownloadingListener(rootCtx context.Context d.syncStats.SnapshotDownload.SegmentsDownloading = map[string]SegmentDownloadStatistics{} } - d.syncStats.SnapshotDownload.SegmentsDownloading[info.Name] = info + if val, ok := d.syncStats.SnapshotDownload.SegmentsDownloading[info.Name]; ok { + val.TotalBytes = info.TotalBytes + val.DownloadedBytes = info.DownloadedBytes + val.Webseeds = info.Webseeds + val.Peers = info.Peers + + d.syncStats.SnapshotDownload.SegmentsDownloading[info.Name] = val + } else { + d.syncStats.SnapshotDownload.SegmentsDownloading[info.Name] = info + } + + if err := d.db.Update(d.ctx, SnapshotDownloadUpdater(d.syncStats.SnapshotDownload)); err != nil { + log.Error("[Diagnostics] Failed to update snapshot download info", "err", err) + } + d.mu.Unlock() } } @@ -84,6 +155,9 @@ func (d *DiagnosticClient) runSegmentIndexingListener(rootCtx context.Context) { return case info := <-ch: d.addOrUpdateSegmentIndexingState(info) + if err := d.db.Update(d.ctx, SnapshotIndexingUpdater(d.syncStats.SnapshotIndexing)); err != nil { + log.Error("[Diagnostics] Failed to update snapshot indexing info", "err", err) + } } } }() @@ -117,6 +191,11 @@ func (d *DiagnosticClient) runSegmentIndexingFinishedListener(rootCtx context.Co Sys: 0, }) } + + if err := d.db.Update(d.ctx, SnapshotIndexingUpdater(d.syncStats.SnapshotIndexing)); err != nil { + log.Error("[Diagnostics] Failed to update snapshot indexing info", "err", err) + } + d.mu.Unlock() } } @@ -148,6 +227,19 @@ func (d *DiagnosticClient) addOrUpdateSegmentIndexingState(upd SnapshotIndexingS } d.syncStats.SnapshotIndexing.TimeElapsed = upd.TimeElapsed + + totalProgress := 0 + for _, seg := range d.syncStats.SnapshotIndexing.Segments { + totalProgress += seg.Percent + } + + d.updateSnapshotStageStats(SyncStageStats{ + TimeElapsed: SecondsToHHMMString(uint64(upd.TimeElapsed)), + TimeLeft: "unknown", + Progress: fmt.Sprintf("%d%%", totalProgress/len(d.syncStats.SnapshotIndexing.Segments)), + }, "Indexing snapshots") + + d.saveSyncStagesToDB() } func (d *DiagnosticClient) runSnapshotFilesListListener(rootCtx context.Context) { @@ -173,6 +265,88 @@ func (d *DiagnosticClient) runSnapshotFilesListListener(rootCtx context.Context) }() } +func (d *DiagnosticClient) runFileDownloadedListener(rootCtx context.Context) { + go func() { + ctx, ch, closeChannel := Context[FileDownloadedStatisticsUpdate](rootCtx, 1) + defer closeChannel() + + StartProviders(ctx, TypeOf(FileDownloadedStatisticsUpdate{}), log.Root()) + for { + select { + case <-rootCtx.Done(): + return + case info := <-ch: + d.mu.Lock() + + if d.syncStats.SnapshotDownload.SegmentsDownloading == nil { + d.syncStats.SnapshotDownload.SegmentsDownloading = map[string]SegmentDownloadStatistics{} + } + + if val, ok := d.syncStats.SnapshotDownload.SegmentsDownloading[info.FileName]; ok { + val.DownloadedStats = FileDownloadedStatistics{ + TimeTook: info.TimeTook, + AverageRate: info.AverageRate, + } + + d.syncStats.SnapshotDownload.SegmentsDownloading[info.FileName] = val + } else { + d.syncStats.SnapshotDownload.SegmentsDownloading[info.FileName] = SegmentDownloadStatistics{ + Name: info.FileName, + TotalBytes: 0, + DownloadedBytes: 0, + Webseeds: nil, + Peers: nil, + DownloadedStats: FileDownloadedStatistics{ + TimeTook: info.TimeTook, + AverageRate: info.AverageRate, + }, + } + } + + d.mu.Unlock() + } + } + }() +} + +func (d *DiagnosticClient) UpdateFileDownloadedStatistics(downloadedInfo *FileDownloadedStatisticsUpdate, downloadingInfo *SegmentDownloadStatistics) { + if d.syncStats.SnapshotDownload.SegmentsDownloading == nil { + d.syncStats.SnapshotDownload.SegmentsDownloading = map[string]SegmentDownloadStatistics{} + } + + if downloadedInfo != nil { + dwStats := FileDownloadedStatistics{ + TimeTook: downloadedInfo.TimeTook, + AverageRate: downloadedInfo.AverageRate, + } + if val, ok := d.syncStats.SnapshotDownload.SegmentsDownloading[downloadedInfo.FileName]; ok { + val.DownloadedStats = dwStats + + d.syncStats.SnapshotDownload.SegmentsDownloading[downloadedInfo.FileName] = val + } else { + d.syncStats.SnapshotDownload.SegmentsDownloading[downloadedInfo.FileName] = SegmentDownloadStatistics{ + Name: downloadedInfo.FileName, + TotalBytes: 0, + DownloadedBytes: 0, + Webseeds: make([]SegmentPeer, 0), + Peers: make([]SegmentPeer, 0), + DownloadedStats: dwStats, + } + } + } else { + if val, ok := d.syncStats.SnapshotDownload.SegmentsDownloading[downloadingInfo.Name]; ok { + val.TotalBytes = downloadingInfo.TotalBytes + val.DownloadedBytes = downloadingInfo.DownloadedBytes + val.Webseeds = downloadingInfo.Webseeds + val.Peers = downloadingInfo.Peers + + d.syncStats.SnapshotDownload.SegmentsDownloading[downloadingInfo.Name] = val + } else { + d.syncStats.SnapshotDownload.SegmentsDownloading[downloadingInfo.Name] = *downloadingInfo + } + } +} + func (d *DiagnosticClient) SyncStatistics() SyncStatistics { return d.syncStats } @@ -180,3 +354,45 @@ func (d *DiagnosticClient) SyncStatistics() SyncStatistics { func (d *DiagnosticClient) SnapshotFilesList() SnapshoFilesList { return d.snapshotFileList } + +func ReadSnapshotDownloadInfo(db kv.RoDB) (info SnapshotDownloadStatistics) { + data := ReadDataFromTable(db, kv.DiagSyncStages, SnapshotDownloadStatisticsKey) + + if len(data) == 0 { + return SnapshotDownloadStatistics{} + } + + err := json.Unmarshal(data, &info) + + if err != nil { + log.Error("[Diagnostics] Failed to read snapshot download info", "err", err) + return SnapshotDownloadStatistics{} + } else { + return info + } +} + +func ReadSnapshotIndexingInfo(db kv.RoDB) (info SnapshotIndexingStatistics) { + data := ReadDataFromTable(db, kv.DiagSyncStages, SnapshotIndexingStatisticsKey) + + if len(data) == 0 { + return SnapshotIndexingStatistics{} + } + + err := json.Unmarshal(data, &info) + + if err != nil { + log.Error("[Diagnostics] Failed to read snapshot indexing info", "err", err) + return SnapshotIndexingStatistics{} + } else { + return info + } +} + +func SnapshotDownloadUpdater(info SnapshotDownloadStatistics) func(tx kv.RwTx) error { + return PutDataToTable(kv.DiagSyncStages, SnapshotDownloadStatisticsKey, info) +} + +func SnapshotIndexingUpdater(info SnapshotIndexingStatistics) func(tx kv.RwTx) error { + return PutDataToTable(kv.DiagSyncStages, SnapshotIndexingStatisticsKey, info) +} diff --git a/erigon-lib/diagnostics/snapshots_test.go b/erigon-lib/diagnostics/snapshots_test.go new file mode 100644 index 00000000000..3c8fef60d4c --- /dev/null +++ b/erigon-lib/diagnostics/snapshots_test.go @@ -0,0 +1,57 @@ +package diagnostics_test + +import ( + "testing" + + "github.com/ledgerwatch/erigon-lib/diagnostics" + "github.com/stretchr/testify/require" +) + +func NewTestDiagnosticClient() (*diagnostics.DiagnosticClient, error) { + return &diagnostics.DiagnosticClient{}, nil +} + +func TestUpdateFileDownloadingStats(t *testing.T) { + d, err := NewTestDiagnosticClient() + + require.NoError(t, err) + + d.UpdateFileDownloadedStatistics(nil, &segmentDownloadStatsMock) + + sd := d.SyncStatistics().SnapshotDownload.SegmentsDownloading + require.NotNil(t, sd) + require.NotEqual(t, len(sd), 0) + + require.Equal(t, sd["test"], segmentDownloadStatsMock) + + d.UpdateFileDownloadedStatistics(&fileDownloadedUpdMock, nil) + + require.Equal(t, sd["test"], diagnostics.SegmentDownloadStatistics{ + Name: "test", + TotalBytes: 1, + DownloadedBytes: 1, + Webseeds: make([]diagnostics.SegmentPeer, 0), + Peers: make([]diagnostics.SegmentPeer, 0), + DownloadedStats: diagnostics.FileDownloadedStatistics{ + TimeTook: 1.0, + AverageRate: 1, + }, + }) +} + +var ( + fileDownloadedUpdMock = diagnostics.FileDownloadedStatisticsUpdate{ + FileName: "test", + TimeTook: 1.0, + AverageRate: 1, + } + + segmentDownloadStatsMock = diagnostics.SegmentDownloadStatistics{ + Name: "test", + TotalBytes: 1, + DownloadedBytes: 1, + Webseeds: make([]diagnostics.SegmentPeer, 0), + Peers: make([]diagnostics.SegmentPeer, 0), + DownloadedStats: diagnostics.FileDownloadedStatistics{}, + } +) diff --git a/erigon-lib/diagnostics/speedtest.go b/erigon-lib/diagnostics/speedtest.go index 77da08ac7a6..54fad6f161d 100644 --- a/erigon-lib/diagnostics/speedtest.go +++ b/erigon-lib/diagnostics/speedtest.go @@ -5,6 +5,7 @@ import ( "time" "github.com/showwin/speedtest-go/speedtest" + "github.com/showwin/speedtest-go/speedtest/transport" ) func (d *DiagnosticClient) setupSpeedtestDiagnostics(rootCtx context.Context) { @@ -17,37 +18,55 @@ func (d *DiagnosticClient) setupSpeedtestDiagnostics(rootCtx context.Context) { }() } +var cacheServerList speedtest.Servers + func (d *DiagnosticClient) runSpeedTest(rootCtx context.Context) NetworkSpeedTestResult { var speedtestClient = speedtest.New() - serverList, _ := speedtestClient.FetchServers() - targets, _ := serverList.FindServer([]int{}) + + serverList, err := speedtestClient.FetchServers() + // Ensure that the server list can rolled back to the previous cache. + if err == nil { + cacheServerList = serverList + } + targets, _ := cacheServerList.FindServer([]int{}) latency := time.Duration(0) downloadSpeed := float64(0) uploadSpeed := float64(0) + packetLoss := float64(-1) + + analyzer := speedtest.NewPacketLossAnalyzer(nil) if len(targets) > 0 { s := targets[0] - err := s.PingTestContext(rootCtx, nil) + err = s.PingTestContext(rootCtx, nil) if err == nil { latency = s.Latency } err = s.DownloadTestContext(rootCtx) if err == nil { - downloadSpeed = s.DLSpeed + downloadSpeed = s.DLSpeed.Mbps() } err = s.UploadTestContext(rootCtx) if err == nil { - uploadSpeed = s.ULSpeed + uploadSpeed = s.ULSpeed.Mbps() } + + ctx, cancel := context.WithTimeout(rootCtx, time.Second*15) + + defer cancel() + _ = analyzer.RunWithContext(ctx, s.Host, func(pl *transport.PLoss) { + packetLoss = pl.Loss() + }) } return NetworkSpeedTestResult{ Latency: latency, DownloadSpeed: downloadSpeed, UploadSpeed: uploadSpeed, + PacketLoss: packetLoss, } } diff --git a/erigon-lib/diagnostics/stages.go b/erigon-lib/diagnostics/stages.go index 7687dff135b..bc7670609e2 100644 --- a/erigon-lib/diagnostics/stages.go +++ b/erigon-lib/diagnostics/stages.go @@ -2,30 +2,109 @@ package diagnostics import ( "context" + "encoding/json" + "github.com/ledgerwatch/erigon-lib/kv" "github.com/ledgerwatch/log/v3" ) +var ( + StagesListKey = []byte("diagStagesList") + CurrentStageKey = []byte("diagCurrentStage") +) + +type CurrentSyncStagesIdxs struct { + Stage int `json:"currentStage"` + SubStage int `json:"currentSubStage"` +} + +type SyncStage struct { + ID string `json:"id"` + State StageState `json:"state"` + SubStages []SyncSubStage `json:"subStages"` + Stats SyncStageStats `json:"stats"` +} + +type SyncSubStage struct { + ID string `json:"id"` + State StageState `json:"state"` + Stats SyncStageStats `json:"stats"` +} + +type SyncStageStats struct { + TimeElapsed string `json:"timeElapsed"` + TimeLeft string `json:"timeLeft"` + Progress string `json:"progress"` +} + +type SetSyncSubStageList struct { + Stage string + List []SyncSubStage +} + +func (ti SetSyncSubStageList) Type() Type { + return TypeOf(ti) +} + +type SyncStageList struct { + StagesList []SyncStage `json:"stages"` +} + +func (ti SyncStageList) Type() Type { + return TypeOf(ti) +} + +type StageState int + +const ( + Queued StageState = iota + Running + Completed +) + +func (s StageState) String() string { + return [...]string{"Queued", "Running", "Completed"}[s] +} + +type CurrentSyncStage struct { + Stage string `json:"stage"` +} + +func (ti CurrentSyncStage) Type() Type { + return TypeOf(ti) +} + +type CurrentSyncSubStage struct { + SubStage string `json:"subStage"` +} + +func (ti CurrentSyncSubStage) Type() Type { + return TypeOf(ti) +} + func (d *DiagnosticClient) setupStagesDiagnostics(rootCtx context.Context) { - d.runCurrentSyncStageListener(rootCtx) d.runSyncStagesListListener(rootCtx) + d.runCurrentSyncStageListener(rootCtx) + d.runCurrentSyncSubStageListener(rootCtx) + d.runSubStageListener(rootCtx) } func (d *DiagnosticClient) runSyncStagesListListener(rootCtx context.Context) { go func() { - ctx, ch, closeChannel := Context[SyncStagesList](rootCtx, 1) + ctx, ch, closeChannel := Context[SyncStageList](rootCtx, 1) defer closeChannel() - StartProviders(ctx, TypeOf(SyncStagesList{}), log.Root()) + StartProviders(ctx, TypeOf(SyncStageList{}), log.Root()) for { select { case <-rootCtx.Done(): return case info := <-ch: d.mu.Lock() - d.syncStats.SyncStages.StagesList = info.Stages + d.SetStagesList(info.StagesList) d.mu.Unlock() - return + + d.saveSyncStagesToDB() } } }() @@ -43,12 +122,173 @@ func (d *DiagnosticClient) runCurrentSyncStageListener(rootCtx context.Context) return case info := <-ch: d.mu.Lock() - d.syncStats.SyncStages.CurrentStage = info.Stage - if int(d.syncStats.SyncStages.CurrentStage) >= len(d.syncStats.SyncStages.StagesList) { - return - } + d.SetCurrentSyncStage(info) + d.mu.Unlock() + + d.saveSyncStagesToDB() + } + } + }() +} + +func (d *DiagnosticClient) runCurrentSyncSubStageListener(rootCtx context.Context) { + go func() { + ctx, ch, closeChannel := Context[CurrentSyncSubStage](rootCtx, 1) + defer closeChannel() + + StartProviders(ctx, TypeOf(CurrentSyncSubStage{}), log.Root()) + for { + select { + case <-rootCtx.Done(): + return + case info := <-ch: + d.mu.Lock() + d.SetCurrentSyncSubStage(info) + d.mu.Unlock() + + d.saveSyncStagesToDB() + } + } + }() +} + +func (d *DiagnosticClient) runSubStageListener(rootCtx context.Context) { + go func() { + ctx, ch, closeChannel := Context[SetSyncSubStageList](rootCtx, 1) + defer closeChannel() + + StartProviders(ctx, TypeOf(SetSyncSubStageList{}), log.Root()) + for { + select { + case <-rootCtx.Done(): + return + case info := <-ch: + d.mu.Lock() + d.SetSubStagesList(info.Stage, info.List) d.mu.Unlock() + + d.saveSyncStagesToDB() } } }() } + +func (d *DiagnosticClient) saveSyncStagesToDB() { + if err := d.db.Update(d.ctx, StagesListUpdater(d.syncStages)); err != nil { + log.Error("[Diagnostics] Failed to update stages list", "err", err) + } +} + +func (d *DiagnosticClient) getCurrentSyncIdxs() CurrentSyncStagesIdxs { + currentIdxs := CurrentSyncStagesIdxs{ + Stage: -1, + SubStage: -1, + } + + for sIdx, stage := range d.syncStages { + if stage.State == Running { + currentIdxs.Stage = sIdx + + for subIdx, subStage := range stage.SubStages { + if subStage.State == Running { + currentIdxs.SubStage = subIdx + } + } + break + } + } + + return currentIdxs +} + +func (d *DiagnosticClient) SetStagesList(stages []SyncStage) { + if len(d.syncStages) != len(stages) { + d.syncStages = stages + } +} + +func (d *DiagnosticClient) SetSubStagesList(stageId string, subStages []SyncSubStage) { + for idx, stage := range d.syncStages { + if stage.ID == stageId { + if len(d.syncStages[idx].SubStages) != len(subStages) { + d.syncStages[idx].SubStages = subStages + break + } + } + } +} + +func (d *DiagnosticClient) SetCurrentSyncStage(css CurrentSyncStage) { + isSet := false + for idx, stage := range d.syncStages { + if !isSet { + if stage.ID == css.Stage { + d.syncStages[idx].State = Running + isSet = true + } else { + d.setStagesState(idx, Completed) + } + } else { + d.setStagesState(idx, Queued) + } + } +} + +func (d *DiagnosticClient) setStagesState(stadeIdx int, state StageState) { + d.syncStages[stadeIdx].State = state + d.setSubStagesState(stadeIdx, state) +} + +func (d *DiagnosticClient) setSubStagesState(stadeIdx int, state StageState) { + for subIdx := range d.syncStages[stadeIdx].SubStages { + d.syncStages[stadeIdx].SubStages[subIdx].State = state + } +} + +func (d *DiagnosticClient) SetCurrentSyncSubStage(css CurrentSyncSubStage) { + for idx, stage := range d.syncStages { + if stage.State == Running { + for subIdx, subStage := range stage.SubStages { + if subStage.ID == css.SubStage { + if d.syncStages[idx].SubStages[subIdx].State == Completed { + return + } + + if subIdx > 0 { + d.syncStages[idx].SubStages[subIdx-1].State = Completed + } + + d.syncStages[idx].SubStages[subIdx].State = Running + } + } + + break + } + } +} + +func ReadSyncStages(db kv.RoDB) []SyncStage { + data := ReadDataFromTable(db, kv.DiagSyncStages, StagesListKey) + + if len(data) == 0 { + return []SyncStage{} + } + + var info []SyncStage + err := json.Unmarshal(data, &info) + + if err != nil { + log.Error("[Diagnostics] Failed to read stages list", "err", err) + return []SyncStage{} + } else { + return info + } +} + +func StagesListUpdater(info []SyncStage) func(tx kv.RwTx) error { + return PutDataToTable(kv.DiagSyncStages, StagesListKey, info) +} + +func (d *DiagnosticClient) GetSyncStages() []SyncStage { + return d.syncStages +} diff --git a/erigon-lib/diagnostics/stages_test.go b/erigon-lib/diagnostics/stages_test.go new file mode 100644 index 00000000000..2f49816a5fd --- /dev/null +++ b/erigon-lib/diagnostics/stages_test.go @@ -0,0 +1,109 @@ +package diagnostics_test + +import ( + "testing" + + "github.com/ledgerwatch/erigon-lib/diagnostics" + "github.com/stretchr/testify/require" +) + +func TestInitSyncStages(t *testing.T) { + d, err := NewTestDiagnosticClient() + require.NoError(t, err) + + stages := diagnostics.InitStagesFromList(nodeStages) + d.SetStagesList(stages) + require.Equal(t, d.GetSyncStages(), stagesListMock) + + subStages := diagnostics.InitSubStagesFromList(snapshotsSubStages) + require.Equal(t, subStages, subStagesListMock) + d.SetSubStagesList("Snapshots", subStages) + + require.Equal(t, d.GetSyncStages(), stagesListWithSnapshotsSubStagesMock) +} + +func TestSetCurrentSyncStage(t *testing.T) { + d, err := NewTestDiagnosticClient() + require.NoError(t, err) + + stages := diagnostics.InitStagesFromList(nodeStages) + d.SetStagesList(stages) + subStages := diagnostics.InitSubStagesFromList(snapshotsSubStages) + d.SetSubStagesList("Snapshots", subStages) + + d.SetCurrentSyncStage(diagnostics.CurrentSyncStage{Stage: "Snapshots"}) + require.Equal(t, d.GetSyncStages()[0].State, diagnostics.Running) + + d.SetCurrentSyncStage(diagnostics.CurrentSyncStage{Stage: "BlockHashes"}) + require.Equal(t, d.GetSyncStages()[0].State, diagnostics.Completed) + require.Equal(t, d.GetSyncStages()[1].State, diagnostics.Running) + + d.SetCurrentSyncStage(diagnostics.CurrentSyncStage{Stage: "Snapshots"}) + require.Equal(t, d.GetSyncStages()[0].State, diagnostics.Running) + require.Equal(t, d.GetSyncStages()[1].State, diagnostics.Queued) + require.Equal(t, d.GetSyncStages()[2].State, diagnostics.Queued) +} + +func TestSetCurrentSyncSubStage(t *testing.T) { + d, err := NewTestDiagnosticClient() + require.NoError(t, err) + + stages := diagnostics.InitStagesFromList(nodeStages) + d.SetStagesList(stages) + subStages := diagnostics.InitSubStagesFromList(snapshotsSubStages) + d.SetSubStagesList("Snapshots", subStages) + + d.SetCurrentSyncStage(diagnostics.CurrentSyncStage{Stage: "Snapshots"}) + d.SetCurrentSyncSubStage(diagnostics.CurrentSyncSubStage{SubStage: "Download header-chain"}) + require.Equal(t, d.GetSyncStages()[0].SubStages[0].State, diagnostics.Running) + + d.SetCurrentSyncSubStage(diagnostics.CurrentSyncSubStage{SubStage: "Download snapshots"}) + require.Equal(t, d.GetSyncStages()[0].SubStages[0].State, diagnostics.Completed) + require.Equal(t, d.GetSyncStages()[0].SubStages[1].State, diagnostics.Running) + + d.SetCurrentSyncSubStage(diagnostics.CurrentSyncSubStage{SubStage: "Download header-chain"}) + require.Equal(t, d.GetSyncStages()[0].SubStages[0].State, diagnostics.Completed) + require.Equal(t, d.GetSyncStages()[0].SubStages[1].State, diagnostics.Running) + require.Equal(t, d.GetSyncStages()[0].SubStages[2].State, diagnostics.Queued) +} + +var ( + nodeStages = []string{"Snapshots", "BlockHashes", "Senders"} + snapshotsSubStages = []string{"Download header-chain", "Download snapshots", "Indexing", "Fill DB"} + + stagesListMock = []diagnostics.SyncStage{ + {ID: "Snapshots", State: diagnostics.Queued, SubStages: []diagnostics.SyncSubStage{}}, + {ID: "BlockHashes", State: diagnostics.Queued, SubStages: []diagnostics.SyncSubStage{}}, + {ID: "Senders", State: diagnostics.Queued, SubStages: []diagnostics.SyncSubStage{}}, + } + + subStagesListMock = []diagnostics.SyncSubStage{ + { + ID: "Download header-chain", + State: diagnostics.Queued, + }, + { + ID: "Download snapshots", + State: diagnostics.Queued, + }, + { + ID: "Indexing", + State: diagnostics.Queued, + }, + { + ID: "Fill DB", + State: diagnostics.Queued, + }, + } + + stagesListWithSnapshotsSubStagesMock = []diagnostics.SyncStage{ + {ID: "Snapshots", State: diagnostics.Queued, SubStages: []diagnostics.SyncSubStage{ + {ID: "Download header-chain", State: diagnostics.Queued}, + {ID: "Download snapshots", State: diagnostics.Queued}, + {ID: "Indexing", State: diagnostics.Queued}, + {ID: "Fill DB", State: diagnostics.Queued}, + }}, + {ID: "BlockHashes", State: diagnostics.Queued, SubStages: []diagnostics.SyncSubStage{}}, + {ID: "Senders", State: diagnostics.Queued, SubStages: []diagnostics.SyncSubStage{}}, + } +) diff --git a/erigon-lib/diagnostics/sys_info.go b/erigon-lib/diagnostics/sys_info.go index 6b12ce1b80b..b870e649324 100644 --- a/erigon-lib/diagnostics/sys_info.go +++ b/erigon-lib/diagnostics/sys_info.go @@ -1,14 +1,36 @@ package diagnostics import ( - "github.com/ledgerwatch/erigon-lib/diskutils" + "encoding/json" + "github.com/shirou/gopsutil/v3/cpu" "github.com/shirou/gopsutil/v3/disk" "github.com/shirou/gopsutil/v3/mem" + + "github.com/ledgerwatch/erigon-lib/diskutils" + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/log/v3" +) + +var ( + SystemRamInfoKey = []byte("diagSystemRamInfo") + SystemCpuInfoKey = []byte("diagSystemCpuInfo") + SystemDiskInfoKey = []byte("diagSystemDiskInfo") ) func (d *DiagnosticClient) setupSysInfoDiagnostics() { sysInfo := GetSysInfo(d.dataDirPath) + if err := d.db.Update(d.ctx, RAMInfoUpdater(sysInfo.RAM)); err != nil { + log.Error("[Diagnostics] Failed to update RAM info", "err", err) + } + + if err := d.db.Update(d.ctx, CPUInfoUpdater(sysInfo.CPU)); err != nil { + log.Error("[Diagnostics] Failed to update CPU info", "err", err) + } + + if err := d.db.Update(d.ctx, DiskInfoUpdater(sysInfo.Disk)); err != nil { + log.Error("[Diagnostics] Failed to update Disk info", "err", err) + } d.mu.Lock() d.hardwareInfo = sysInfo @@ -106,3 +128,81 @@ func GetCPUInfo() CPUInfo { Mhz: mhz, } } + +func ReadSysInfo(db kv.RoDB) (info HardwareInfo) { + ram := ReadRAMInfo(db) + cpu := ReadCPUInfo(db) + disk := ReadDickInfo(db) + + return HardwareInfo{ + RAM: ram, + CPU: cpu, + Disk: disk, + } +} + +func ReadRAMInfo(db kv.RoDB) RAMInfo { + data := ReadDataFromTable(db, kv.DiagSystemInfo, SystemRamInfoKey) + + if len(data) == 0 { + return RAMInfo{} + } + + var info RAMInfo + err := json.Unmarshal(data, &info) + + if err != nil { + log.Error("[Diagnostics] Failed to read RAM info", "err", err) + return RAMInfo{} + } else { + return info + } +} + +func ReadCPUInfo(db kv.RoDB) CPUInfo { + data := ReadDataFromTable(db, kv.DiagSystemInfo, SystemCpuInfoKey) + + if len(data) == 0 { + return CPUInfo{} + } + + var info CPUInfo + err := json.Unmarshal(data, &info) + + if err != nil { + log.Error("[Diagnostics] Failed to read CPU info", "err", err) + return CPUInfo{} + } else { + return info + } +} + +func ReadDickInfo(db kv.RoDB) DiskInfo { + data := ReadDataFromTable(db, kv.DiagSystemInfo, SystemDiskInfoKey) + + if len(data) == 0 { + return DiskInfo{} + } + + var info DiskInfo + err := json.Unmarshal(data, &info) + + if err != nil { + log.Error("[Diagnostics] Failed to read Disk info", "err", err) + return DiskInfo{} + } else { + return info + } +} + +func RAMInfoUpdater(info RAMInfo) func(tx kv.RwTx) error { + return PutDataToTable(kv.DiagSystemInfo, SystemRamInfoKey, info) +} + +func CPUInfoUpdater(info CPUInfo) func(tx kv.RwTx) error { + return PutDataToTable(kv.DiagSystemInfo, SystemCpuInfoKey, info) +} + +func DiskInfoUpdater(info DiskInfo) func(tx kv.RwTx) error { + return PutDataToTable(kv.DiagSystemInfo, SystemDiskInfoKey, info) +} diff --git a/erigon-lib/diagnostics/utils.go b/erigon-lib/diagnostics/utils.go new file mode 100644 index 00000000000..055bcb9ee71 --- /dev/null +++ b/erigon-lib/diagnostics/utils.go @@ -0,0 +1,91 @@ +package diagnostics + +import ( + "context" + "encoding/json" + "fmt" + + "github.com/ledgerwatch/erigon-lib/kv" +) + +func ReadDataFromTable(db kv.RoDB, table string, key []byte) (data []byte) { + if err := db.View(context.Background(), func(tx kv.Tx) error { + bytes, err := tx.GetOne(table, key) + + if err != nil { + return err + } + + data = bytes + + return nil + }); err != nil { + return []byte{} + } + return data +} + +func PutDataToTable(table string, key []byte, info any) func(tx kv.RwTx) error { + return func(tx kv.RwTx) error { + infoBytes, err := json.Marshal(info) + + if err != nil { + return err + } + + return tx.Put(table, key, infoBytes) + } +} + +func InitStagesFromList(list []string) []SyncStage { + stages := make([]SyncStage, 0, len(list)) + + for _, stage := range list { + stages = append(stages, SyncStage{ + ID: stage, + State: Queued, + SubStages: []SyncSubStage{}, + Stats: SyncStageStats{}, + }) + } + + return stages +} + +func InitSubStagesFromList(list []string) []SyncSubStage { + subStages := make([]SyncSubStage, 0, len(list)) + + for _, subStage := range list { + subStages = append(subStages, + SyncSubStage{ + ID: subStage, + State: Queued, + }, + ) + } + + return subStages +} + +func CalculateTime(amountLeft, rate uint64) string { + if rate == 0 { + return "999hrs:99m" + } + timeLeftInSeconds := amountLeft / rate + + hours := timeLeftInSeconds / 3600 + minutes := (timeLeftInSeconds / 60) % 60 + + return fmt.Sprintf("%dhrs:%dm", hours, minutes) +} + +func SecondsToHHMMString(seconds uint64) string { + if seconds == 0 { + return "0hrs:0m" + } + + hours := seconds / 3600 + minutes := (seconds / 60) % 60 + + return fmt.Sprintf("%dhrs:%dm", hours, minutes) +} diff --git a/erigon-lib/downloader/downloader.go b/erigon-lib/downloader/downloader.go index 5de1a0de99e..426fea8642c 100644 --- a/erigon-lib/downloader/downloader.go +++ b/erigon-lib/downloader/downloader.go @@ -330,8 +330,6 @@ func New(ctx context.Context, cfg *downloadercfg.Cfg, logger log.Logger, verbosi d.ctx, d.stopMainLoop = context.WithCancel(ctx) if cfg.AddTorrentsFromDisk { - var downloadMismatches []string - for _, download := range lock.Downloads { if info, err := d.torrentInfo(download.Name); err == nil { if info.Completed != nil { @@ -357,29 +355,15 @@ func New(ctx context.Context, cfg *downloadercfg.Cfg, logger log.Logger, verbosi fileHash := hex.EncodeToString(fileHashBytes) if fileHash != download.Hash && fileHash != hash { - d.logger.Error("[snapshots] download db mismatch", "file", download.Name, "lock", download.Hash, "db", hash, "disk", fileHash, "downloaded", *info.Completed) - downloadMismatches = append(downloadMismatches, download.Name) + d.logger.Debug("[snapshots] download db mismatch", "file", download.Name, "lock", download.Hash, "db", hash, "disk", fileHash, "downloaded", *info.Completed) } else { - d.logger.Warn("[snapshots] lock hash does not match completed download", "file", download.Name, "lock", hash, "download", download.Hash, "downloaded", *info.Completed) + d.logger.Debug("[snapshots] lock hash does not match completed download", "file", download.Name, "lock", hash, "download", download.Hash, "downloaded", *info.Completed) } } } } } - if len(downloadMismatches) > 0 { - return nil, fmt.Errorf("downloaded files have mismatched hashes: %s", strings.Join(downloadMismatches, ",")) - } - - //TODO: why do we need it if we have `addTorrentFilesFromDisk`? what if they are conflict? - //TODO: why it's before `BuildTorrentFilesIfNeed`? what if they are conflict? - //TODO: even if hash is saved in "snapshots-lock.json" - it still must preserve `prohibit_new_downloads.lock` and don't download new files ("user restart" must be fast, "erigon3 has .kv files which never-ending merge and delete small files") - //for _, it := range lock.Downloads { - // if err := d.AddMagnetLink(ctx, snaptype.Hex2InfoHash(it.Hash), it.Name); err != nil { - // return nil, err - // } - //} - if err := d.BuildTorrentFilesIfNeed(d.ctx, lock.Chain, lock.Downloads); err != nil { return nil, err } @@ -2590,10 +2574,17 @@ func openClient(ctx context.Context, dbDir, snapDir string, cfg *torrent.ClientC //}) cfg.DefaultStorage = m + dnsResolver := &downloadercfg.DnsCacheResolver{RefreshTimeout: 24 * time.Hour} + cfg.TrackerDialContext = dnsResolver.DialContext + torrentClient, err = torrent.NewClient(cfg) if err != nil { return nil, nil, nil, nil, fmt.Errorf("torrent.NewClient: %w", err) } + go func() { + dnsResolver.Run(ctx) + }() + return db, c, m, torrentClient, nil } diff --git a/erigon-lib/downloader/downloadercfg/dns_cache_resolver.go b/erigon-lib/downloader/downloadercfg/dns_cache_resolver.go new file mode 100644 index 00000000000..1aab7c41f7d --- /dev/null +++ b/erigon-lib/downloader/downloadercfg/dns_cache_resolver.go @@ -0,0 +1,49 @@ +package downloadercfg + +import ( + "context" + "net" + "time" + + "github.com/rs/dnscache" +) + +// DnsCacheResolver resolves DNS requests for an HTTP client using an in-memory cache. +type DnsCacheResolver struct { + RefreshTimeout time.Duration + + resolver dnscache.Resolver +} + +func (r *DnsCacheResolver) DialContext(ctx context.Context, network, address string) (net.Conn, error) { + host, port, err := net.SplitHostPort(address) + if err != nil { + return nil, err + } + ips, err := r.resolver.LookupHost(ctx, host) + if err != nil { + return nil, err + } + var conn net.Conn + for _, ip := range ips { + var dialer net.Dialer + conn, err = dialer.DialContext(ctx, network, net.JoinHostPort(ip, port)) + if err == nil { + break + } + } + return conn, err +} + +func (r *DnsCacheResolver) Run(ctx context.Context) { + ticker := time.NewTicker(r.RefreshTimeout) + defer ticker.Stop() + for { + select { + case <-ctx.Done(): + return + case <-ticker.C: + r.resolver.Refresh(true) + } + } +} diff --git a/erigon-lib/go.mod b/erigon-lib/go.mod index fa61f154e1c..46d403c0957 100644 --- a/erigon-lib/go.mod +++ b/erigon-lib/go.mod @@ -4,10 +4,11 @@ go 1.21 require ( github.com/erigontech/mdbx-go v0.27.24 - github.com/ledgerwatch/erigon-snapshot v1.3.1-0.20240509031412-4975b6ec206f + github.com/ledgerwatch/erigon-snapshot v1.3.1-0.20240619030755-1e16b374e6cb github.com/ledgerwatch/interfaces v0.0.0-20240320062914-b57f05746087 github.com/ledgerwatch/log/v3 v3.9.0 github.com/ledgerwatch/secp256k1 v1.0.0 + github.com/rs/dnscache v0.0.0-20211102005908-e0241e321417 ) require ( @@ -125,9 +126,8 @@ require ( github.com/prometheus/common v0.48.0 // indirect github.com/prometheus/procfs v0.12.0 // indirect github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect - github.com/rs/dnscache v0.0.0-20211102005908-e0241e321417 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect - github.com/showwin/speedtest-go v1.6.12 + github.com/showwin/speedtest-go v1.7.7 github.com/sirupsen/logrus v1.9.3 // indirect github.com/tklauser/go-sysconf v0.3.14 // indirect github.com/tklauser/numcpus v0.8.0 // indirect diff --git a/erigon-lib/go.sum b/erigon-lib/go.sum index 107e1760c52..eab01d37028 100644 --- a/erigon-lib/go.sum +++ b/erigon-lib/go.sum @@ -415,8 +415,8 @@ github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFt github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= github.com/shoenig/test v0.6.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU= github.com/shoenig/test v0.6.4/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k= -github.com/showwin/speedtest-go v1.6.12 h1:q+hWNn2cM35KkqtXGGbSmuJgd67gTP8+VlneY2hq9vU= -github.com/showwin/speedtest-go v1.6.12/go.mod h1:uLgdWCNarXxlYsL2E5TOZpCIwpgSWnEANZp7gfHXHu0= +github.com/showwin/speedtest-go v1.7.7 h1:VmK75SZOTKiuWjIVrs+mo7ZoKEw0utiGCvpnurS0olU= +github.com/showwin/speedtest-go v1.7.7/go.mod h1:uLgdWCNarXxlYsL2E5TOZpCIwpgSWnEANZp7gfHXHu0= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= diff --git a/erigon-lib/kv/kv_interface.go b/erigon-lib/kv/kv_interface.go index 7bbf80dfa4e..d56e46a7da9 100644 --- a/erigon-lib/kv/kv_interface.go +++ b/erigon-lib/kv/kv_interface.go @@ -149,13 +149,14 @@ type DBVerbosityLvl int8 type Label uint8 const ( - ChainDB Label = 0 - TxPoolDB Label = 1 - SentryDB Label = 2 - ConsensusDB Label = 3 - DownloaderDB Label = 4 - InMem Label = 5 - BlobDb Label = 6 + ChainDB Label = 0 + TxPoolDB Label = 1 + SentryDB Label = 2 + ConsensusDB Label = 3 + DownloaderDB Label = 4 + InMem Label = 5 + BlobDb Label = 6 + DiagnosticsDB Label = 7 ) func (l Label) String() string { @@ -174,6 +175,8 @@ func (l Label) String() string { return "inMem" case BlobDb: return "blob" + case DiagnosticsDB: + return "diagnostics" default: return "unknown" } @@ -194,6 +197,8 @@ func UnmarshalLabel(s string) Label { return InMem case "blob": return BlobDb + case "diagnostics": + return DiagnosticsDB default: panic(fmt.Sprintf("unexpected label: %s", s)) } diff --git a/erigon-lib/kv/tables.go b/erigon-lib/kv/tables.go index a3f0225943e..eb6fd9a1510 100644 --- a/erigon-lib/kv/tables.go +++ b/erigon-lib/kv/tables.go @@ -513,6 +513,10 @@ const ( Proposers = "BlockProposers" // epoch => proposers indicies StatesProcessingProgress = "StatesProcessingProgress" + + //Diagnostics tables + DiagSystemInfo = "DiagSystemInfo" + DiagSyncStages = "DiagSyncStages" ) // Keys @@ -743,6 +747,11 @@ var ChaindataDeprecatedTables = []string{ TransitionBlockKey, } +var DiagnosticsTables = []string{ + DiagSystemInfo, + DiagSyncStages, +} + type CmpFunc func(k1, k2, v1, v2 []byte) int type TableCfg map[string]TableCfgItem @@ -840,6 +849,7 @@ var BorTablesCfg = TableCfg{ var TxpoolTablesCfg = TableCfg{} var SentryTablesCfg = TableCfg{} var DownloaderTablesCfg = TableCfg{} +var DiagnosticsTablesCfg = TableCfg{} var ReconTablesCfg = TableCfg{ PlainStateD: {Flags: DupSort}, CodeD: {Flags: DupSort}, @@ -856,6 +866,8 @@ func TablesCfgByLabel(label Label) TableCfg { return SentryTablesCfg case DownloaderDB: return DownloaderTablesCfg + case DiagnosticsDB: + return DiagnosticsTablesCfg default: panic(fmt.Sprintf("unexpected label: %s", label)) } @@ -917,6 +929,13 @@ func reinit() { ReconTablesCfg[name] = TableCfgItem{} } } + + for _, name := range DiagnosticsTables { + _, ok := DiagnosticsTablesCfg[name] + if !ok { + DiagnosticsTablesCfg[name] = TableCfgItem{} + } + } } // Temporal diff --git a/eth/backend.go b/eth/backend.go index 4c7766a0ba0..994db3b9667 100644 --- a/eth/backend.go +++ b/eth/backend.go @@ -37,6 +37,7 @@ import ( "github.com/ledgerwatch/erigon-lib/common/dir" "github.com/ledgerwatch/erigon-lib/common/disk" "github.com/ledgerwatch/erigon-lib/common/mem" + "github.com/ledgerwatch/erigon-lib/diagnostics" "github.com/erigontech/mdbx-go/mdbx" lru "github.com/hashicorp/golang-lru/arc/v2" @@ -1478,7 +1479,10 @@ func (s *Ethereum) Start() error { return currentTD } + nodeStages := s.stagedSync.StagesIdsList() + if params.IsChainPoS(s.chainConfig, currentTDProvider) { + nodeStages = s.pipelineStagedSync.StagesIdsList() s.waitForStageLoopStop = nil // TODO: Ethereum.Stop should wait for execution_server shutdown go s.eth1ExecutionServer.Start(s.sentryCtx) } else if s.config.PolygonSync { @@ -1500,6 +1504,9 @@ func (s *Ethereum) Start() error { go stages2.StageLoop(s.sentryCtx, s.chainDB, s.stagedSync, s.sentriesClient.Hd, s.waitForStageLoopStop, s.config.Sync.LoopThrottle, s.logger, s.blockReader, hook, s.config.ForcePartialCommit) } + stages := diagnostics.InitStagesFromList(nodeStages) + diagnostics.Send(diagnostics.SyncStageList{StagesList: stages}) + if s.chainConfig.Bor != nil { s.engine.(*bor.Bor).Start(s.chainDB) } diff --git a/eth/stagedsync/stage_snapshots.go b/eth/stagedsync/stage_snapshots.go index 2081faf3258..bbdbaa78ec7 100644 --- a/eth/stagedsync/stage_snapshots.go +++ b/eth/stagedsync/stage_snapshots.go @@ -29,6 +29,7 @@ import ( "github.com/ledgerwatch/erigon-lib/common/datadir" "github.com/ledgerwatch/erigon-lib/common/dbg" "github.com/ledgerwatch/erigon-lib/common/dir" + "github.com/ledgerwatch/erigon-lib/diagnostics" "github.com/ledgerwatch/erigon-lib/downloader" "github.com/ledgerwatch/erigon-lib/downloader/snaptype" "github.com/ledgerwatch/erigon-lib/etl" @@ -193,12 +194,21 @@ func DownloadAndIndexSnapshotsIfNeed(s *StageState, ctx context.Context, tx kv.R if !cfg.blockReader.FreezingCfg().Enabled { return nil } + + diagnostics.Send(diagnostics.CurrentSyncStage{Stage: string(stages.Snapshots)}) + cstate := snapshotsync.NoCaplin if cfg.caplin { //TODO(Giulio2002): uncomment cstate = snapshotsync.AlsoCaplin } if cfg.snapshotUploader != nil { + subStages := diagnostics.InitSubStagesFromList([]string{"Indexing", "Fill DB"}) + diagnostics.Send(diagnostics.SetSyncSubStageList{ + Stage: string(stages.Snapshots), + List: subStages, + }) + u := cfg.snapshotUploader u.init(ctx, logger) @@ -236,6 +246,13 @@ func DownloadAndIndexSnapshotsIfNeed(s *StageState, ctx context.Context, tx kv.R cfg.notifier.Events.OnNewSnapshot() } } else { + subStages := diagnostics.InitSubStagesFromList([]string{"Download snapshots", "Indexing", "Fill DB"}) + diagnostics.Send(diagnostics.SetSyncSubStageList{ + Stage: string(stages.Snapshots), + List: subStages, + }) + + diagnostics.Send(diagnostics.CurrentSyncSubStage{SubStage: "Download snapshots"}) if err := snapshotsync.WaitForDownloader(ctx, s.LogPrefix(), cfg.historyV3, cfg.blobs, cstate, cfg.agg, tx, cfg.blockReader, &cfg.chainConfig, cfg.snapshotDownloader, s.state.StagesIdsList()); err != nil { return err } @@ -252,6 +269,7 @@ func DownloadAndIndexSnapshotsIfNeed(s *StageState, ctx context.Context, tx kv.R return histBlockNumProgress }) + diagnostics.Send(diagnostics.CurrentSyncSubStage{SubStage: "Indexing"}) if err := cfg.blockRetire.BuildMissedIndicesIfNeed(ctx, s.LogPrefix(), cfg.notifier.Events, &cfg.chainConfig); err != nil { return err } @@ -282,6 +300,7 @@ func DownloadAndIndexSnapshotsIfNeed(s *StageState, ctx context.Context, tx kv.R s.BlockNumber = frozenBlocks } + diagnostics.Send(diagnostics.CurrentSyncSubStage{SubStage: "Fill DB"}) if err := FillDBFromSnapshots(s.LogPrefix(), ctx, tx, cfg.dirs, cfg.blockReader, cfg.agg, logger); err != nil { return err } diff --git a/eth/stagedsync/sync.go b/eth/stagedsync/sync.go index 5f61f4ecfd3..5cc1abd511d 100644 --- a/eth/stagedsync/sync.go +++ b/eth/stagedsync/sync.go @@ -91,9 +91,8 @@ func (s *Sync) NextStage() { return } s.currentStage++ - isDiagEnabled := diagnostics.TypeOf(diagnostics.CurrentSyncStage{}).Enabled() - if isDiagEnabled { - diagnostics.Send(diagnostics.CurrentSyncStage{Stage: s.currentStage}) + if s.currentStage < uint(len(s.stages)) { + diagnostics.Send(diagnostics.CurrentSyncStage{Stage: string(s.stages[s.currentStage].ID)}) } } @@ -164,10 +163,8 @@ func (s *Sync) SetCurrentStage(id stages.SyncStage) error { for i, stage := range s.stages { if stage.ID == id { s.currentStage = uint(i) - isDiagEnabled := diagnostics.TypeOf(diagnostics.CurrentSyncStage{}).Enabled() - if isDiagEnabled { - diagnostics.Send(diagnostics.CurrentSyncStage{Stage: s.currentStage}) - } + + diagnostics.Send(diagnostics.CurrentSyncStage{Stage: string(id)}) return nil } diff --git a/go.mod b/go.mod index fc84b955008..fdf73895022 100644 --- a/go.mod +++ b/go.mod @@ -64,10 +64,12 @@ require ( github.com/huandu/xstrings v1.4.0 github.com/huin/goupnp v1.3.0 github.com/jackpal/go-nat-pmp v1.0.2 + github.com/jedib0t/go-pretty/v6 v6.5.9 github.com/json-iterator/go v1.1.12 github.com/julienschmidt/httprouter v1.3.0 github.com/klauspost/compress v1.17.6 github.com/ledgerwatch/erigon-lib v1.0.0 + github.com/ledgerwatch/erigonwatch v0.1.2 github.com/libp2p/go-libp2p v0.33.1 github.com/libp2p/go-libp2p-mplex v0.9.0 github.com/libp2p/go-libp2p-pubsub v0.10.0 @@ -120,6 +122,13 @@ require ( sigs.k8s.io/yaml v1.4.0 ) +require ( + github.com/go-ole/go-ole v1.3.0 // indirect + github.com/tklauser/go-sysconf v0.3.14 // indirect + github.com/tklauser/numcpus v0.8.0 // indirect + github.com/yusufpapurcu/wmi v1.2.4 // indirect +) + require ( github.com/Masterminds/goutils v1.1.1 // indirect github.com/Masterminds/semver/v3 v3.2.0 // indirect @@ -173,7 +182,6 @@ require ( github.com/go-logfmt/logfmt v0.5.1 // indirect github.com/go-logr/logr v1.3.0 // indirect github.com/go-logr/stdr v1.2.2 // indirect - github.com/go-ole/go-ole v1.3.0 // indirect github.com/go-sourcemap/sourcemap v2.1.3+incompatible // indirect github.com/go-stack/stack v1.8.1 // indirect github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 // indirect @@ -195,7 +203,7 @@ require ( 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/ledgerwatch/erigon-snapshot v1.3.1-0.20240509031412-4975b6ec206f // indirect + github.com/ledgerwatch/erigon-snapshot v1.3.1-0.20240619030755-1e16b374e6cb // 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-asn-util v0.4.1 // indirect @@ -209,6 +217,7 @@ require ( github.com/marten-seemann/tcp v0.0.0-20210406111302-dfbc87cc63fd // indirect github.com/mattn/go-colorable v0.1.13 // indirect github.com/mattn/go-isatty v0.0.20 // indirect + github.com/mattn/go-runewidth v0.0.15 // 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 @@ -266,6 +275,7 @@ require ( github.com/raulk/go-watchdog v1.3.0 // indirect github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect + github.com/rivo/uniseg v0.4.4 // indirect github.com/rogpeppe/go-internal v1.12.0 // indirect github.com/rs/dnscache v0.0.0-20211102005908-e0241e321417 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect @@ -273,18 +283,14 @@ require ( github.com/shirou/gopsutil/v3 v3.24.3 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/shopspring/decimal v1.2.0 // indirect - github.com/showwin/speedtest-go v1.6.12 // indirect + github.com/showwin/speedtest-go v1.7.7 // indirect github.com/sirupsen/logrus v1.9.3 // indirect github.com/sosodev/duration v1.1.0 // indirect github.com/spaolacci/murmur3 v1.1.0 // indirect github.com/spf13/cast v1.5.0 // indirect github.com/stoewer/go-strcase v1.2.0 // indirect github.com/supranational/blst v0.3.11 // indirect - github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d // indirect - github.com/tklauser/go-sysconf v0.3.14 // indirect - github.com/tklauser/numcpus v0.8.0 // indirect github.com/xrash/smetrics v0.0.0-20240312152122-5f08fbb34913 // indirect - github.com/yusufpapurcu/wmi v1.2.4 // indirect go.etcd.io/bbolt v1.3.6 // indirect go.opentelemetry.io/otel v1.11.0 // indirect go.opentelemetry.io/otel/trace v1.11.0 // indirect diff --git a/go.sum b/go.sum index a1c172e8bf8..dbd9cc68b81 100644 --- a/go.sum +++ b/go.sum @@ -475,7 +475,6 @@ github.com/fsnotify/fsnotify v1.4.3-0.20170329110642-4da3e2cfbabc/go.mod h1:jwhs github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= github.com/fsnotify/fsnotify v1.5.1/go.mod h1:T3375wBYaZdLLcVNkcVbzGHY7f1l/uK5T5Ai1i3InKU= -github.com/fsnotify/fsnotify v1.5.4/go.mod h1:OVB6XrOHzAwXMpEM7uPOzcehqUV2UqJxmVXmkdnm1bU= github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= github.com/garslo/gogen v0.0.0-20170307003452-d6ebae628c7c h1:uYNKzPntb8c6DKvP9EfrBjkLkU7pM4lM+uuHSIa8UtU= @@ -669,7 +668,6 @@ github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hf github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38/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-20240409012703-83162a5b38cd h1:gbpYu9NMq8jhDVbvlGkMFWCjLFlqqEZjEmObmhUy6Vo= github.com/google/pprof v0.0.0-20240409012703-83162a5b38cd/go.mod h1:kf6iHlnVGwgKolg33glAes7Yg/8iWP8ukqeldJSO7jw= @@ -849,6 +847,8 @@ github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8/go.mod h1:Ly/wlsj github.com/jbenet/goprocess v0.1.3/go.mod h1:5yspPrukOVuOLORacaBi858NqyClJPQxYZlqdZVfqY4= github.com/jbenet/goprocess v0.1.4/go.mod h1:5yspPrukOVuOLORacaBi858NqyClJPQxYZlqdZVfqY4= github.com/jcmturner/gofork v1.0.0/go.mod h1:MK8+TM0La+2rjBD4jE12Kj1pCCxK7d2LK/UM3ncEo0o= +github.com/jedib0t/go-pretty/v6 v6.5.9 h1:ACteMBRrrmm1gMsXe9PSTOClQ63IXDUt03H5U+UV8OU= +github.com/jedib0t/go-pretty/v6 v6.5.9/go.mod h1:zbn98qrYlh95FIhwwsbIip0LYpwSG8SUOScs+v9/t0E= github.com/jedisct1/go-minisign v0.0.0-20190909160543-45766022959e/go.mod h1:G1CVv03EnqU1wYL2dFwXxW2An0az9JTl/ZsqXQeBlkU= github.com/jellevandenhooff/dkim v0.0.0-20150330215556-f50fe3d243e1/go.mod h1:E0B/fFc00Y+Rasa88328GlI/XbtyysCtTHZS8h7IrBU= github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= @@ -931,6 +931,8 @@ github.com/labstack/echo/v4 v4.2.1/go.mod h1:AA49e0DZ8kk5jTOOCKNuPR6oTnBS0dYiM4F 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= +github.com/ledgerwatch/erigonwatch v0.1.2 h1:/jq0r3oFh61pYk65Rw10aeCJj2Mzs1E2AG6TXG668og= +github.com/ledgerwatch/erigonwatch v0.1.2/go.mod h1:5K2cWaom0/rURye4dUUEQg2UyCH2A5zHVp86TDDMaA4= github.com/ledgerwatch/log/v3 v3.9.0 h1:iDwrXe0PVwBC68Dd94YSsHbMgQ3ufsgjzXtFNFVZFRk= github.com/ledgerwatch/log/v3 v3.9.0/go.mod h1:EiAY6upmI/6LkNhOVxb4eVsmsP11HZCnZ3PlJMjYiqE= github.com/ledgerwatch/secp256k1 v1.0.0 h1:Usvz87YoTG0uePIV8woOof5cQnLXGYa162rFf3YnwaQ= @@ -1124,6 +1126,8 @@ 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.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-sqlite3 v1.14.22 h1:2gZY6PC6kBnID23Tichd1K+Z0oS6nE/XwU+Vz/5o4kU= github.com/mattn/go-sqlite3 v1.14.22/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y= @@ -1291,7 +1295,6 @@ 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.1.3/go.mod h1:vw5CSIxN1JObi/U8gcbwft7ZxR2dgaR70JSE3/PpL4c= 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= @@ -1303,7 +1306,6 @@ github.com/onsi/gomega v1.9.0/go.mod h1:Ho0h+IUsWyvy1OpqCwxlQ/21gkhVunqlU8fDGcoT 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.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY= -github.com/onsi/gomega v1.19.0/go.mod h1:LY+I3pBVzYsTBU1AnDwOSxaYi9WoWiqgwooUqq9yPro= 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= @@ -1494,6 +1496,9 @@ github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqn github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE= github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= github.com/retailnext/hllpp v1.0.1-0.20180308014038-101a6d2f8b52/go.mod h1:RDpi1RftBQPUCDRw6SmxeaREsAaRKnOclghuzp/WRzc= +github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= +github.com/rivo/uniseg v0.4.4 h1:8TfxU8dW6PdqD27gjM8MVNuicgxIjxpm4K7x4jp8sis= +github.com/rivo/uniseg v0.4.4/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= github.com/rjeczalik/notify v0.9.1/go.mod h1:rKwnCoCGeuQnwBtTSPL9Dad03Vh2n40ePRrjvIXnJho= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= @@ -1536,8 +1541,8 @@ github.com/shoenig/test v0.6.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU= github.com/shoenig/test v0.6.4/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k= github.com/shopspring/decimal v1.2.0 h1:abSATXmQEYyShuxI4/vyW3tV1MrKAJzCZ/0zLUXYbsQ= github.com/shopspring/decimal v1.2.0/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= -github.com/showwin/speedtest-go v1.6.12 h1:q+hWNn2cM35KkqtXGGbSmuJgd67gTP8+VlneY2hq9vU= -github.com/showwin/speedtest-go v1.6.12/go.mod h1:uLgdWCNarXxlYsL2E5TOZpCIwpgSWnEANZp7gfHXHu0= +github.com/showwin/speedtest-go v1.7.7 h1:VmK75SZOTKiuWjIVrs+mo7ZoKEw0utiGCvpnurS0olU= +github.com/showwin/speedtest-go v1.7.7/go.mod h1:uLgdWCNarXxlYsL2E5TOZpCIwpgSWnEANZp7gfHXHu0= github.com/shurcooL/component v0.0.0-20170202220835-f88ec8f54cc4/go.mod h1:XhFIlyj5a1fBNx5aJTbKoIq0mNaPvOagO+HjB3EtxrY= github.com/shurcooL/events v0.0.0-20181021180414-410e4ca65f48/go.mod h1:5u70Mqkb5O5cxEA8nxTsgrgLehJeAw6Oc4Ab1c/P1HM= github.com/shurcooL/github_flavored_markdown v0.0.0-20181002035957-2122de532470/go.mod h1:2dOwnU2uBioM+SGy2aZoq1f/Sd1l9OkAeAUvjSyvgU0= @@ -1630,7 +1635,6 @@ github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5 github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= @@ -1641,9 +1645,8 @@ github.com/supranational/blst v0.3.5/go.mod h1:jZJtfjgudtNl4en1tzwPIV3KjUnQUvG3/ github.com/supranational/blst v0.3.11 h1:LyU6FolezeWAhvQk0k6O/d49jqgO52MSDDfYgbeoEm4= github.com/supranational/blst v0.3.11/go.mod h1:jZJtfjgudtNl4en1tzwPIV3KjUnQUvG3/j+w+fVonLw= github.com/syndtr/goleveldb v1.0.0/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpPAyBWyWuQ= +github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 h1:epCh84lMvA70Z7CTTCmYQn2CKbY8j86K7/FAIr141uY= github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7/go.mod h1:q4W45IWZaF22tdD+VEXcAWRA037jwmWEB5VWYORlTpc= -github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d h1:vfofYNRScrDdvS342BElfbETmL1Aiz3i2t0zfRj16Hs= -github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d/go.mod h1:RRCYJbIwD5jmqPI9XoAFR0OcDxqUctll6zUj/+B4S48= github.com/tarm/serial v0.0.0-20180830185346-98f6abe2eb07/go.mod h1:kDXzergiv9cbyO7IOYJZWg1U88JhDg3PB6klq9Hg2pA= github.com/tecbot/gorocksdb v0.0.0-20191217155057-f0fad39f321c h1:g+WoO5jjkqGAzHWCjJB1zZfXPIAaDpzXIEJ0eS6B5Ok= github.com/tecbot/gorocksdb v0.0.0-20191217155057-f0fad39f321c/go.mod h1:ahpPrc7HpcfEWDQRZEmnXMzHY03mLDYMCxeDzy46i+8= @@ -1947,8 +1950,6 @@ golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qx golang.org/x/net v0.0.0-20210813160813-60bc85c4be6d/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-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.0.0-20220607020251-c690dde0001d/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= @@ -2095,9 +2096,7 @@ golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20211020174200-9d6173849985/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/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-20211216021012-1d35b9e2eb4e/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-20220412211240-33da011f77ad/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= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -2236,7 +2235,6 @@ golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8T 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= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= gonum.org/v1/gonum v0.0.0-20181121035319-3f7ecaa7e8ca/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= gonum.org/v1/gonum v0.6.0/go.mod h1:9mxDZsDKxgMAuccQkewq682L+0eCu4dCN2yonUJTCLU= diff --git a/p2p/discover/v4_udp.go b/p2p/discover/v4_udp.go index 5491f541744..e3f2a300206 100644 --- a/p2p/discover/v4_udp.go +++ b/p2p/discover/v4_udp.go @@ -605,14 +605,15 @@ func (t *UDPv4) loop() { return case p := <-t.addReplyMatcher: - func() { - mutex.Lock() - defer mutex.Unlock() - p.deadline = time.Now().Add(t.replyTimeout) - listUpdate <- plist.PushBack(p) - }() + mutex.Lock() + p.deadline = time.Now().Add(t.replyTimeout) + back := plist.PushBack(p) + mutex.Unlock() + listUpdate <- back case r := <-t.gotreply: + var removals []*list.Element + func() { mutex.Lock() defer mutex.Unlock() @@ -628,7 +629,7 @@ func (t *UDPv4) loop() { if requestDone { p.errc <- nil plist.Remove(el) - listUpdate <- el + removals = append(removals, el) } // Reset the continuous timeout counter (time drift detection) contTimeouts = 0 @@ -637,6 +638,10 @@ func (t *UDPv4) loop() { r.matched <- matched }() + for _, el := range removals { + listUpdate <- el + } + case key := <-t.gotkey: go func() { if key, err := v4wire.DecodePubkey(crypto.S256(), key); err == nil { diff --git a/turbo/adapter/ethapi/api.go b/turbo/adapter/ethapi/api.go index 7cf4166ec74..be3b38197eb 100644 --- a/turbo/adapter/ethapi/api.go +++ b/turbo/adapter/ethapi/api.go @@ -112,7 +112,7 @@ func (args *CallArgs) ToMessage(globalGasCap uint64, baseFee *uint256.Int) (type gasFeeCap, gasTipCap = gasPrice, gasPrice } else { // User specified 1559 gas fields (or none), use those - gasFeeCap = uint256.MustFromBig(baseFee.ToBig()) + gasFeeCap = new(uint256.Int) if args.MaxFeePerGas != nil { overflow := gasFeeCap.SetFromBig(args.MaxFeePerGas.ToInt()) if overflow { @@ -282,6 +282,7 @@ func RPCMarshalHeader(head *types.Header) map[string]interface{} { "miner": head.Coinbase, "difficulty": (*hexutil.Big)(head.Difficulty), "extraData": hexutility.Bytes(head.Extra), + "size": hexutil.Uint64(head.Size()), "gasLimit": hexutil.Uint64(head.GasLimit), "gasUsed": hexutil.Uint64(head.GasUsed), "timestamp": hexutil.Uint64(head.Time), diff --git a/turbo/cli/flags.go b/turbo/cli/flags.go index a6f81f116f9..41bd8d703f1 100644 --- a/turbo/cli/flags.go +++ b/turbo/cli/flags.go @@ -488,6 +488,7 @@ func setEmbeddedRpcDaemon(ctx *cli.Context, cfg *nodecfg.Config, logger log.Logg DBReadConcurrency: ctx.Int(utils.DBReadConcurrencyFlag.Name), RpcAllowListFilePath: ctx.String(utils.RpcAccessListFlag.Name), Gascap: ctx.Uint64(utils.RpcGasCapFlag.Name), + Feecap: ctx.Float64(utils.RPCGlobalTxFeeCapFlag.Name), MaxTraces: ctx.Uint64(utils.TraceMaxtracesFlag.Name), TraceCompatibility: ctx.Bool(utils.RpcTraceCompatFlag.Name), BatchLimit: ctx.Int(utils.RpcBatchLimit.Name), diff --git a/turbo/engineapi/engine_server.go b/turbo/engineapi/engine_server.go index c61029b901c..9d6228ec136 100644 --- a/turbo/engineapi/engine_server.go +++ b/turbo/engineapi/engine_server.go @@ -89,7 +89,7 @@ func (e *EngineServer) Start( ) { base := jsonrpc.NewBaseApi(filters, stateCache, blockReader, agg, httpConfig.WithDatadir, httpConfig.EvmCallTimeout, engineReader, httpConfig.Dirs) - ethImpl := jsonrpc.NewEthAPI(base, db, eth, txPool, mining, httpConfig.Gascap, httpConfig.ReturnDataLimit, httpConfig.AllowUnprotectedTxs, httpConfig.MaxGetProofRewindBlockCount, httpConfig.WebsocketSubscribeLogsChannelSize, e.logger) + ethImpl := jsonrpc.NewEthAPI(base, db, eth, txPool, mining, httpConfig.Gascap, httpConfig.Feecap, httpConfig.ReturnDataLimit, httpConfig.AllowUnprotectedTxs, httpConfig.MaxGetProofRewindBlockCount, httpConfig.WebsocketSubscribeLogsChannelSize, e.logger) // engineImpl := NewEngineAPI(base, db, engineBackend) // e.startEngineMessageHandler() @@ -769,7 +769,18 @@ func (e *EngineServer) HandleNewPayload( if !success { return &engine_types.PayloadStatus{Status: engine_types.SyncingStatus}, nil } - return &engine_types.PayloadStatus{Status: engine_types.ValidStatus, LatestValidHash: &headerHash}, nil + + status, _, latestValidHash, err := e.chainRW.ValidateChain(ctx, headerHash, headerNumber) + if err != nil { + return nil, err + } + + if status == execution.ExecutionStatus_Busy || status == execution.ExecutionStatus_TooFarAway { + e.logger.Debug(fmt.Sprintf("[%s] New payload: Client is still syncing", logPrefix)) + return &engine_types.PayloadStatus{Status: engine_types.SyncingStatus}, nil + } else { + return &engine_types.PayloadStatus{Status: engine_types.ValidStatus, LatestValidHash: &latestValidHash}, nil + } } else { return &engine_types.PayloadStatus{Status: engine_types.SyncingStatus}, nil } diff --git a/turbo/jsonrpc/corner_cases_support_test.go b/turbo/jsonrpc/corner_cases_support_test.go index 1e2392f3017..14ba8e1b434 100644 --- a/turbo/jsonrpc/corner_cases_support_test.go +++ b/turbo/jsonrpc/corner_cases_support_test.go @@ -4,12 +4,14 @@ import ( "context" "testing" - "github.com/ledgerwatch/erigon-lib/common" "github.com/stretchr/testify/require" + "github.com/ledgerwatch/erigon-lib/common" + + "github.com/ledgerwatch/log/v3" + "github.com/ledgerwatch/erigon/cmd/rpcdaemon/rpcdaemontest" "github.com/ledgerwatch/erigon/rpc" - "github.com/ledgerwatch/log/v3" ) // TestNotFoundMustReturnNil - next methods - when record not found in db - must return nil instead of error @@ -18,7 +20,7 @@ func TestNotFoundMustReturnNil(t *testing.T) { require := require.New(t) m, _, _ := rpcdaemontest.CreateTestSentry(t) api := NewEthAPI(newBaseApiForTest(m), - m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, 128, log.New()) + m.DB, nil, nil, nil, 5000000, 1e18, 100_000, false, 100_000, 128, log.New()) ctx := context.Background() a, err := api.GetTransactionByBlockNumberAndIndex(ctx, 10_000, 1) diff --git a/turbo/jsonrpc/daemon.go b/turbo/jsonrpc/daemon.go index 20d41096b38..81e9e31ee05 100644 --- a/turbo/jsonrpc/daemon.go +++ b/turbo/jsonrpc/daemon.go @@ -1,7 +1,10 @@ package jsonrpc import ( + "github.com/ledgerwatch/log/v3" + "github.com/ledgerwatch/erigon-lib/gointerfaces/txpool" + "github.com/ledgerwatch/erigon-lib/kv" "github.com/ledgerwatch/erigon-lib/kv/kvcache" libstate "github.com/ledgerwatch/erigon-lib/state" @@ -13,7 +16,6 @@ import ( "github.com/ledgerwatch/erigon/rpc" "github.com/ledgerwatch/erigon/turbo/rpchelper" "github.com/ledgerwatch/erigon/turbo/services" - "github.com/ledgerwatch/log/v3" ) // APIList describes the list of available RPC apis @@ -23,7 +25,7 @@ func APIList(db kv.RoDB, eth rpchelper.ApiBackend, txPool txpool.TxpoolClient, m logger log.Logger, ) (list []rpc.API) { base := NewBaseApi(filters, stateCache, blockReader, agg, cfg.WithDatadir, cfg.EvmCallTimeout, engine, cfg.Dirs) - ethImpl := NewEthAPI(base, db, eth, txPool, mining, cfg.Gascap, cfg.ReturnDataLimit, cfg.AllowUnprotectedTxs, cfg.MaxGetProofRewindBlockCount, cfg.WebsocketSubscribeLogsChannelSize, logger) + ethImpl := NewEthAPI(base, db, eth, txPool, mining, cfg.Gascap, cfg.Feecap, cfg.ReturnDataLimit, cfg.AllowUnprotectedTxs, cfg.MaxGetProofRewindBlockCount, cfg.WebsocketSubscribeLogsChannelSize, logger) erigonImpl := NewErigonAPI(base, db, eth) txpoolImpl := NewTxPoolAPI(base, db, txPool) netImpl := NewNetAPIImpl(eth) diff --git a/turbo/jsonrpc/debug_api_test.go b/turbo/jsonrpc/debug_api_test.go index b0948ef6ca8..b59d037fae7 100644 --- a/turbo/jsonrpc/debug_api_test.go +++ b/turbo/jsonrpc/debug_api_test.go @@ -8,6 +8,9 @@ import ( "github.com/davecgh/go-spew/spew" jsoniter "github.com/json-iterator/go" + "github.com/ledgerwatch/log/v3" + "github.com/stretchr/testify/require" + "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/kv" "github.com/ledgerwatch/erigon-lib/kv/iter" @@ -19,8 +22,6 @@ import ( "github.com/ledgerwatch/erigon/rpc" "github.com/ledgerwatch/erigon/rpc/rpccfg" "github.com/ledgerwatch/erigon/turbo/adapter/ethapi" - "github.com/ledgerwatch/log/v3" - "github.com/stretchr/testify/require" ) var dumper = spew.ConfigState{Indent: " "} @@ -52,7 +53,7 @@ func TestTraceBlockByNumber(t *testing.T) { agg := m.HistoryV3Components() stateCache := kvcache.New(kvcache.DefaultCoherentConfig) baseApi := NewBaseApi(nil, stateCache, m.BlockReader, agg, false, rpccfg.DefaultEvmCallTimeout, m.Engine, m.Dirs) - ethApi := NewEthAPI(baseApi, m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, 128, log.New()) + ethApi := NewEthAPI(baseApi, m.DB, nil, nil, nil, 5000000, 1e18, 100_000, false, 100_000, 128, log.New()) api := NewPrivateDebugAPI(baseApi, m.DB, 0) for _, tt := range debugTraceTransactionTests { var buf bytes.Buffer @@ -97,7 +98,7 @@ func TestTraceBlockByNumber(t *testing.T) { func TestTraceBlockByHash(t *testing.T) { m, _, _ := rpcdaemontest.CreateTestSentry(t) - ethApi := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, 128, log.New()) + ethApi := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 1e18, 100_000, false, 100_000, 128, log.New()) api := NewPrivateDebugAPI(newBaseApiForTest(m), m.DB, 0) for _, tt := range debugTraceTransactionTests { var buf bytes.Buffer diff --git a/turbo/jsonrpc/erigon_receipts_test.go b/turbo/jsonrpc/erigon_receipts_test.go index a20922a80f0..79a72ff3a23 100644 --- a/turbo/jsonrpc/erigon_receipts_test.go +++ b/turbo/jsonrpc/erigon_receipts_test.go @@ -7,11 +7,14 @@ import ( "testing" "github.com/holiman/uint256" - libcommon "github.com/ledgerwatch/erigon-lib/common" - "github.com/ledgerwatch/erigon-lib/kv" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" + libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/kv" + + "github.com/ledgerwatch/log/v3" + "github.com/ledgerwatch/erigon/cmd/rpcdaemon/rpcdaemontest" "github.com/ledgerwatch/erigon/common" "github.com/ledgerwatch/erigon/core" @@ -22,14 +25,13 @@ import ( "github.com/ledgerwatch/erigon/params" "github.com/ledgerwatch/erigon/rpc" "github.com/ledgerwatch/erigon/turbo/stages/mock" - "github.com/ledgerwatch/log/v3" ) func TestGetLogs(t *testing.T) { assert := assert.New(t) m, _, _ := rpcdaemontest.CreateTestSentry(t) { - ethApi := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, 128, log.New()) + ethApi := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 1e18, 100_000, false, 100_000, 128, log.New()) logs, err := ethApi.GetLogs(context.Background(), filters.FilterCriteria{FromBlock: big.NewInt(0), ToBlock: big.NewInt(10)}) assert.NoError(err) diff --git a/turbo/jsonrpc/eth_api.go b/turbo/jsonrpc/eth_api.go index b6e19b85d66..7c71f661b66 100644 --- a/turbo/jsonrpc/eth_api.go +++ b/turbo/jsonrpc/eth_api.go @@ -348,6 +348,7 @@ type APIImpl struct { gasCache *GasPriceCache db kv.RoDB GasCap uint64 + FeeCap float64 ReturnDataLimit int AllowUnprotectedTxs bool MaxGetProofRewindBlockCount int @@ -356,7 +357,7 @@ type APIImpl struct { } // NewEthAPI returns APIImpl instance -func NewEthAPI(base *BaseAPI, db kv.RoDB, eth rpchelper.ApiBackend, txPool txpool.TxpoolClient, mining txpool.MiningClient, gascap uint64, returnDataLimit int, allowUnprotectedTxs bool, maxGetProofRewindBlockCount int, subscribeLogsChannelSize int, logger log.Logger) *APIImpl { +func NewEthAPI(base *BaseAPI, db kv.RoDB, eth rpchelper.ApiBackend, txPool txpool.TxpoolClient, mining txpool.MiningClient, gascap uint64, feecap float64, returnDataLimit int, allowUnprotectedTxs bool, maxGetProofRewindBlockCount int, subscribeLogsChannelSize int, logger log.Logger) *APIImpl { if gascap == 0 { gascap = uint64(math.MaxUint64 / 2) } @@ -369,6 +370,7 @@ func NewEthAPI(base *BaseAPI, db kv.RoDB, eth rpchelper.ApiBackend, txPool txpoo mining: mining, gasCache: NewGasPriceCache(), GasCap: gascap, + FeeCap: feecap, AllowUnprotectedTxs: allowUnprotectedTxs, ReturnDataLimit: returnDataLimit, MaxGetProofRewindBlockCount: maxGetProofRewindBlockCount, diff --git a/turbo/jsonrpc/eth_api_test.go b/turbo/jsonrpc/eth_api_test.go index 49f3829399f..4597abee162 100644 --- a/turbo/jsonrpc/eth_api_test.go +++ b/turbo/jsonrpc/eth_api_test.go @@ -8,9 +8,10 @@ import ( "github.com/ledgerwatch/erigon-lib/common/hexutil" "github.com/holiman/uint256" - "github.com/ledgerwatch/erigon-lib/common" "github.com/stretchr/testify/assert" + "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/kv/kvcache" "github.com/ledgerwatch/erigon/core" "github.com/ledgerwatch/erigon/rpc" @@ -18,8 +19,9 @@ import ( "github.com/ledgerwatch/erigon/turbo/adapter/ethapi" "github.com/ledgerwatch/erigon/turbo/stages/mock" - "github.com/ledgerwatch/erigon/cmd/rpcdaemon/rpcdaemontest" "github.com/ledgerwatch/log/v3" + + "github.com/ledgerwatch/erigon/cmd/rpcdaemon/rpcdaemontest" ) func newBaseApiForTest(m *mock.MockSentry) *BaseAPI { @@ -55,7 +57,7 @@ func TestGetTransactionReceipt(t *testing.T) { db := m.DB agg := m.HistoryV3Components() stateCache := kvcache.New(kvcache.DefaultCoherentConfig) - api := NewEthAPI(NewBaseApi(nil, stateCache, m.BlockReader, agg, false, rpccfg.DefaultEvmCallTimeout, m.Engine, m.Dirs), db, nil, nil, nil, 5000000, 100_000, false, 100_000, 128, log.New()) + api := NewEthAPI(NewBaseApi(nil, stateCache, m.BlockReader, agg, false, rpccfg.DefaultEvmCallTimeout, m.Engine, m.Dirs), db, nil, nil, nil, 5000000, 1e18, 100_000, false, 100_000, 128, log.New()) // Call GetTransactionReceipt for transaction which is not in the database if _, err := api.GetTransactionReceipt(context.Background(), common.Hash{}); err != nil { t.Errorf("calling GetTransactionReceipt with empty hash: %v", err) @@ -64,7 +66,7 @@ func TestGetTransactionReceipt(t *testing.T) { func TestGetTransactionReceiptUnprotected(t *testing.T) { m, _, _ := rpcdaemontest.CreateTestSentry(t) - api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, 128, log.New()) + api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 1e18, 100_000, false, 100_000, 128, log.New()) // Call GetTransactionReceipt for un-protected transaction if _, err := api.GetTransactionReceipt(context.Background(), common.HexToHash("0x3f3cb8a0e13ed2481f97f53f7095b9cbc78b6ffb779f2d3e565146371a8830ea")); err != nil { t.Errorf("calling GetTransactionReceipt for unprotected tx: %v", err) @@ -76,7 +78,7 @@ func TestGetTransactionReceiptUnprotected(t *testing.T) { func TestGetStorageAt_ByBlockNumber_WithRequireCanonicalDefault(t *testing.T) { assert := assert.New(t) m, _, _ := rpcdaemontest.CreateTestSentry(t) - api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, 128, log.New()) + api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 1e18, 100_000, false, 100_000, 128, log.New()) addr := common.HexToAddress("0x71562b71999873db5b286df957af199ec94617f7") result, err := api.GetStorageAt(context.Background(), addr, "0x0", rpc.BlockNumberOrHashWithNumber(0)) @@ -90,7 +92,7 @@ func TestGetStorageAt_ByBlockNumber_WithRequireCanonicalDefault(t *testing.T) { func TestGetStorageAt_ByBlockHash_WithRequireCanonicalDefault(t *testing.T) { assert := assert.New(t) m, _, _ := rpcdaemontest.CreateTestSentry(t) - api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, 128, log.New()) + api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 1e18, 100_000, false, 100_000, 128, log.New()) addr := common.HexToAddress("0x71562b71999873db5b286df957af199ec94617f7") result, err := api.GetStorageAt(context.Background(), addr, "0x0", rpc.BlockNumberOrHashWithHash(m.Genesis.Hash(), false)) @@ -104,7 +106,7 @@ func TestGetStorageAt_ByBlockHash_WithRequireCanonicalDefault(t *testing.T) { func TestGetStorageAt_ByBlockHash_WithRequireCanonicalTrue(t *testing.T) { assert := assert.New(t) m, _, _ := rpcdaemontest.CreateTestSentry(t) - api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, 128, log.New()) + api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 1e18, 100_000, false, 100_000, 128, log.New()) addr := common.HexToAddress("0x71562b71999873db5b286df957af199ec94617f7") result, err := api.GetStorageAt(context.Background(), addr, "0x0", rpc.BlockNumberOrHashWithHash(m.Genesis.Hash(), true)) @@ -117,7 +119,7 @@ func TestGetStorageAt_ByBlockHash_WithRequireCanonicalTrue(t *testing.T) { func TestGetStorageAt_ByBlockHash_WithRequireCanonicalDefault_BlockNotFoundError(t *testing.T) { m, _, _ := rpcdaemontest.CreateTestSentry(t) - api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, 128, log.New()) + api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 1e18, 100_000, false, 100_000, 128, log.New()) addr := common.HexToAddress("0x71562b71999873db5b286df957af199ec94617f7") offChain, err := core.GenerateChain(m.ChainConfig, m.Genesis, m.Engine, m.DB, 1, func(i int, block *core.BlockGen) { @@ -138,7 +140,7 @@ func TestGetStorageAt_ByBlockHash_WithRequireCanonicalDefault_BlockNotFoundError func TestGetStorageAt_ByBlockHash_WithRequireCanonicalTrue_BlockNotFoundError(t *testing.T) { m, _, _ := rpcdaemontest.CreateTestSentry(t) - api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, 128, log.New()) + api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 1e18, 100_000, false, 100_000, 128, log.New()) addr := common.HexToAddress("0x71562b71999873db5b286df957af199ec94617f7") offChain, err := core.GenerateChain(m.ChainConfig, m.Genesis, m.Engine, m.DB, 1, func(i int, block *core.BlockGen) { @@ -160,7 +162,7 @@ func TestGetStorageAt_ByBlockHash_WithRequireCanonicalTrue_BlockNotFoundError(t func TestGetStorageAt_ByBlockHash_WithRequireCanonicalDefault_NonCanonicalBlock(t *testing.T) { assert := assert.New(t) m, _, orphanedChain := rpcdaemontest.CreateTestSentry(t) - api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, 128, log.New()) + api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 1e18, 100_000, false, 100_000, 128, log.New()) addr := common.HexToAddress("0x71562b71999873db5b286df957af199ec94617f7") orphanedBlock := orphanedChain[0].Blocks[0] @@ -179,7 +181,7 @@ func TestGetStorageAt_ByBlockHash_WithRequireCanonicalDefault_NonCanonicalBlock( func TestGetStorageAt_ByBlockHash_WithRequireCanonicalTrue_NonCanonicalBlock(t *testing.T) { m, _, orphanedChain := rpcdaemontest.CreateTestSentry(t) - api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, 128, log.New()) + api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 1e18, 100_000, false, 100_000, 128, log.New()) addr := common.HexToAddress("0x71562b71999873db5b286df957af199ec94617f7") orphanedBlock := orphanedChain[0].Blocks[0] @@ -195,7 +197,7 @@ func TestGetStorageAt_ByBlockHash_WithRequireCanonicalTrue_NonCanonicalBlock(t * func TestCall_ByBlockHash_WithRequireCanonicalDefault_NonCanonicalBlock(t *testing.T) { m, _, orphanedChain := rpcdaemontest.CreateTestSentry(t) - api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, 128, log.New()) + api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 1e18, 100_000, false, 100_000, 128, log.New()) from := common.HexToAddress("0x71562b71999873db5b286df957af199ec94617f7") to := common.HexToAddress("0x0d3ab14bbad3d99f4203bd7a11acb94882050e7e") @@ -218,7 +220,7 @@ func TestCall_ByBlockHash_WithRequireCanonicalDefault_NonCanonicalBlock(t *testi func TestCall_ByBlockHash_WithRequireCanonicalTrue_NonCanonicalBlock(t *testing.T) { m, _, orphanedChain := rpcdaemontest.CreateTestSentry(t) - api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, 128, log.New()) + api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 1e18, 100_000, false, 100_000, 128, log.New()) from := common.HexToAddress("0x71562b71999873db5b286df957af199ec94617f7") to := common.HexToAddress("0x0d3ab14bbad3d99f4203bd7a11acb94882050e7e") diff --git a/turbo/jsonrpc/eth_block_test.go b/turbo/jsonrpc/eth_block_test.go index 85a33ea52db..4758c200237 100644 --- a/turbo/jsonrpc/eth_block_test.go +++ b/turbo/jsonrpc/eth_block_test.go @@ -7,10 +7,13 @@ import ( "github.com/ledgerwatch/erigon-lib/common/hexutil" + "github.com/stretchr/testify/assert" + "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/gointerfaces/txpool" "github.com/ledgerwatch/erigon-lib/kv/kvcache" - "github.com/stretchr/testify/assert" + + "github.com/ledgerwatch/log/v3" "github.com/ledgerwatch/erigon/cmd/rpcdaemon/rpcdaemontest" "github.com/ledgerwatch/erigon/core/rawdb" @@ -20,13 +23,12 @@ import ( "github.com/ledgerwatch/erigon/rpc/rpccfg" "github.com/ledgerwatch/erigon/turbo/rpchelper" "github.com/ledgerwatch/erigon/turbo/stages/mock" - "github.com/ledgerwatch/log/v3" ) // Gets the latest block number with the latest tag func TestGetBlockByNumberWithLatestTag(t *testing.T) { m, _, _ := rpcdaemontest.CreateTestSentry(t) - api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, 128, log.New()) + api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 1e18, 100_000, false, 100_000, 128, log.New()) b, err := api.GetBlockByNumber(context.Background(), rpc.LatestBlockNumber, false) expected := common.HexToHash("0x5883164d4100b95e1d8e931b8b9574586a1dea7507941e6ad3c1e3a2591485fd") if err != nil { @@ -56,7 +58,7 @@ func TestGetBlockByNumberWithLatestTag_WithHeadHashInDb(t *testing.T) { } tx.Commit() - api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, 128, log.New()) + api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 1e18, 100_000, false, 100_000, 128, log.New()) block, err := api.GetBlockByNumber(ctx, rpc.LatestBlockNumber, false) if err != nil { t.Errorf("error retrieving block by number: %s", err) @@ -87,7 +89,7 @@ func TestGetBlockByNumberWithPendingTag(t *testing.T) { RplBlock: rlpBlock, }) - api := NewEthAPI(NewBaseApi(ff, stateCache, m.BlockReader, agg, false, rpccfg.DefaultEvmCallTimeout, m.Engine, m.Dirs), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, 128, log.New()) + api := NewEthAPI(NewBaseApi(ff, stateCache, m.BlockReader, agg, false, rpccfg.DefaultEvmCallTimeout, m.Engine, m.Dirs), m.DB, nil, nil, nil, 5000000, 1e18, 100_000, false, 100_000, 128, log.New()) b, err := api.GetBlockByNumber(context.Background(), rpc.PendingBlockNumber, false) if err != nil { t.Errorf("error getting block number with pending tag: %s", err) @@ -98,7 +100,7 @@ func TestGetBlockByNumberWithPendingTag(t *testing.T) { func TestGetBlockByNumber_WithFinalizedTag_NoFinalizedBlockInDb(t *testing.T) { m, _, _ := rpcdaemontest.CreateTestSentry(t) ctx := context.Background() - api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, 128, log.New()) + api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 1e18, 100_000, false, 100_000, 128, log.New()) if _, err := api.GetBlockByNumber(ctx, rpc.FinalizedBlockNumber, false); err != nil { assert.ErrorIs(t, rpchelper.UnknownBlockError, err) } @@ -125,7 +127,7 @@ func TestGetBlockByNumber_WithFinalizedTag_WithFinalizedBlockInDb(t *testing.T) } tx.Commit() - api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, 128, log.New()) + api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 1e18, 100_000, false, 100_000, 128, log.New()) block, err := api.GetBlockByNumber(ctx, rpc.FinalizedBlockNumber, false) if err != nil { t.Errorf("error retrieving block by number: %s", err) @@ -137,7 +139,7 @@ func TestGetBlockByNumber_WithFinalizedTag_WithFinalizedBlockInDb(t *testing.T) func TestGetBlockByNumber_WithSafeTag_NoSafeBlockInDb(t *testing.T) { m, _, _ := rpcdaemontest.CreateTestSentry(t) ctx := context.Background() - api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, 128, log.New()) + api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 1e18, 100_000, false, 100_000, 128, log.New()) if _, err := api.GetBlockByNumber(ctx, rpc.SafeBlockNumber, false); err != nil { assert.ErrorIs(t, rpchelper.UnknownBlockError, err) } @@ -164,7 +166,7 @@ func TestGetBlockByNumber_WithSafeTag_WithSafeBlockInDb(t *testing.T) { } tx.Commit() - api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, 128, log.New()) + api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 1e18, 100_000, false, 100_000, 128, log.New()) block, err := api.GetBlockByNumber(ctx, rpc.SafeBlockNumber, false) if err != nil { t.Errorf("error retrieving block by number: %s", err) @@ -177,7 +179,7 @@ func TestGetBlockTransactionCountByHash(t *testing.T) { m, _, _ := rpcdaemontest.CreateTestSentry(t) ctx := context.Background() - api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, 128, log.New()) + api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 1e18, 100_000, false, 100_000, 128, log.New()) blockHash := common.HexToHash("0x6804117de2f3e6ee32953e78ced1db7b20214e0d8c745a03b8fecf7cc8ee76ef") tx, err := m.DB.BeginRw(ctx) @@ -209,7 +211,7 @@ func TestGetBlockTransactionCountByHash(t *testing.T) { func TestGetBlockTransactionCountByHash_ZeroTx(t *testing.T) { m, _, _ := rpcdaemontest.CreateTestSentry(t) ctx := context.Background() - api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, 128, log.New()) + api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 1e18, 100_000, false, 100_000, 128, log.New()) blockHash := common.HexToHash("0x5883164d4100b95e1d8e931b8b9574586a1dea7507941e6ad3c1e3a2591485fd") tx, err := m.DB.BeginRw(ctx) @@ -241,7 +243,7 @@ func TestGetBlockTransactionCountByHash_ZeroTx(t *testing.T) { func TestGetBlockTransactionCountByNumber(t *testing.T) { m, _, _ := rpcdaemontest.CreateTestSentry(t) ctx := context.Background() - api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, 128, log.New()) + api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 1e18, 100_000, false, 100_000, 128, log.New()) blockHash := common.HexToHash("0x6804117de2f3e6ee32953e78ced1db7b20214e0d8c745a03b8fecf7cc8ee76ef") tx, err := m.DB.BeginRw(ctx) @@ -273,7 +275,7 @@ func TestGetBlockTransactionCountByNumber(t *testing.T) { func TestGetBlockTransactionCountByNumber_ZeroTx(t *testing.T) { m, _, _ := rpcdaemontest.CreateTestSentry(t) ctx := context.Background() - api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, 128, log.New()) + api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 1e18, 100_000, false, 100_000, 128, log.New()) blockHash := common.HexToHash("0x5883164d4100b95e1d8e931b8b9574586a1dea7507941e6ad3c1e3a2591485fd") diff --git a/turbo/jsonrpc/eth_callMany_test.go b/turbo/jsonrpc/eth_callMany_test.go index 7e7168ce470..2a6eaef6cf6 100644 --- a/turbo/jsonrpc/eth_callMany_test.go +++ b/turbo/jsonrpc/eth_callMany_test.go @@ -14,6 +14,8 @@ import ( "github.com/ledgerwatch/erigon-lib/common/hexutility" "github.com/ledgerwatch/erigon-lib/kv/kvcache" + "github.com/ledgerwatch/log/v3" + "github.com/ledgerwatch/erigon/accounts/abi/bind" "github.com/ledgerwatch/erigon/accounts/abi/bind/backends" "github.com/ledgerwatch/erigon/core/types" @@ -23,7 +25,6 @@ import ( "github.com/ledgerwatch/erigon/rpc/rpccfg" "github.com/ledgerwatch/erigon/turbo/adapter/ethapi" "github.com/ledgerwatch/erigon/turbo/jsonrpc/contracts" - "github.com/ledgerwatch/log/v3" ) // block 1 contains 3 Transactions @@ -85,7 +86,7 @@ func TestCallMany(t *testing.T) { db := contractBackend.DB() engine := contractBackend.Engine() api := NewEthAPI(NewBaseApi(nil, stateCache, contractBackend.BlockReader(), contractBackend.Agg(), false, rpccfg.DefaultEvmCallTimeout, engine, - datadir.New(t.TempDir())), db, nil, nil, nil, 5000000, 100_000, false, 100_000, 128, log.New()) + datadir.New(t.TempDir())), db, nil, nil, nil, 5000000, 1e18, 100_000, false, 100_000, 128, log.New()) callArgAddr1 := ethapi.CallArgs{From: &address, To: &tokenAddr, Nonce: &nonce, MaxPriorityFeePerGas: (*hexutil.Big)(big.NewInt(1e9)), diff --git a/turbo/jsonrpc/eth_call_test.go b/turbo/jsonrpc/eth_call_test.go index 08d57d1444b..6ee7cfe7908 100644 --- a/turbo/jsonrpc/eth_call_test.go +++ b/turbo/jsonrpc/eth_call_test.go @@ -19,6 +19,8 @@ import ( "github.com/ledgerwatch/erigon-lib/kv" "github.com/ledgerwatch/erigon-lib/kv/kvcache" + "github.com/ledgerwatch/log/v3" + "github.com/ledgerwatch/erigon/cmd/rpcdaemon/rpcdaemontest" "github.com/ledgerwatch/erigon/common/math" "github.com/ledgerwatch/erigon/core" @@ -33,7 +35,6 @@ import ( "github.com/ledgerwatch/erigon/turbo/rpchelper" "github.com/ledgerwatch/erigon/turbo/stages/mock" "github.com/ledgerwatch/erigon/turbo/trie" - "github.com/ledgerwatch/log/v3" ) func TestEstimateGas(t *testing.T) { @@ -43,7 +44,7 @@ func TestEstimateGas(t *testing.T) { ctx, conn := rpcdaemontest.CreateTestGrpcConn(t, mock.Mock(t)) mining := txpool.NewMiningClient(conn) ff := rpchelper.New(ctx, nil, nil, mining, func() {}, m.Log) - api := NewEthAPI(NewBaseApi(ff, stateCache, m.BlockReader, agg, false, rpccfg.DefaultEvmCallTimeout, m.Engine, m.Dirs), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, 128, log.New()) + api := NewEthAPI(NewBaseApi(ff, stateCache, m.BlockReader, agg, false, rpccfg.DefaultEvmCallTimeout, m.Engine, m.Dirs), m.DB, nil, nil, nil, 5000000, 1e18, 100_000, false, 100_000, 128, log.New()) var from = libcommon.HexToAddress("0x71562b71999873db5b286df957af199ec94617f7") var to = libcommon.HexToAddress("0x0d3ab14bbad3d99f4203bd7a11acb94882050e7e") if _, err := api.EstimateGas(context.Background(), ðapi.CallArgs{ @@ -58,7 +59,7 @@ func TestEthCallNonCanonical(t *testing.T) { m, _, _ := rpcdaemontest.CreateTestSentry(t) agg := m.HistoryV3Components() stateCache := kvcache.New(kvcache.DefaultCoherentConfig) - api := NewEthAPI(NewBaseApi(nil, stateCache, m.BlockReader, agg, false, rpccfg.DefaultEvmCallTimeout, m.Engine, m.Dirs), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, 128, log.New()) + api := NewEthAPI(NewBaseApi(nil, stateCache, m.BlockReader, agg, false, rpccfg.DefaultEvmCallTimeout, m.Engine, m.Dirs), m.DB, nil, nil, nil, 5000000, 1e18, 100_000, false, 100_000, 128, log.New()) var from = libcommon.HexToAddress("0x71562b71999873db5b286df957af199ec94617f7") var to = libcommon.HexToAddress("0x0d3ab14bbad3d99f4203bd7a11acb94882050e7e") if _, err := api.Call(context.Background(), ethapi.CallArgs{ @@ -77,7 +78,7 @@ func TestEthCallToPrunedBlock(t *testing.T) { m, bankAddress, contractAddress := chainWithDeployedContract(t) doPrune(t, m.DB, pruneTo) - api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, 128, log.New()) + api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 1e18, 100_000, false, 100_000, 128, log.New()) callData := hexutil.MustDecode("0x2e64cec1") callDataBytes := hexutility.Bytes(callData) @@ -98,7 +99,7 @@ func TestGetProof(t *testing.T) { if m.HistoryV3 { t.Skip("not supported by Erigon3") } - api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, false, maxGetProofRewindBlockCount, 128, log.New()) + api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 1e18, 100_000, false, maxGetProofRewindBlockCount, 128, log.New()) key := func(b byte) libcommon.Hash { result := libcommon.Hash{} diff --git a/turbo/jsonrpc/eth_filters_test.go b/turbo/jsonrpc/eth_filters_test.go index 2a0fbc1757f..b1823419e3e 100644 --- a/turbo/jsonrpc/eth_filters_test.go +++ b/turbo/jsonrpc/eth_filters_test.go @@ -11,15 +11,18 @@ import ( "github.com/ledgerwatch/erigon/rpc/rpccfg" + "github.com/stretchr/testify/assert" + "github.com/ledgerwatch/erigon-lib/gointerfaces/txpool" + "github.com/ledgerwatch/erigon-lib/kv/kvcache" - "github.com/stretchr/testify/assert" + + "github.com/ledgerwatch/log/v3" "github.com/ledgerwatch/erigon/cmd/rpcdaemon/rpcdaemontest" "github.com/ledgerwatch/erigon/eth/filters" "github.com/ledgerwatch/erigon/turbo/rpchelper" "github.com/ledgerwatch/erigon/turbo/stages/mock" - "github.com/ledgerwatch/log/v3" ) func TestNewFilters(t *testing.T) { @@ -30,7 +33,7 @@ func TestNewFilters(t *testing.T) { ctx, conn := rpcdaemontest.CreateTestGrpcConn(t, mock.Mock(t)) mining := txpool.NewMiningClient(conn) ff := rpchelper.New(ctx, nil, nil, mining, func() {}, m.Log) - api := NewEthAPI(NewBaseApi(ff, stateCache, m.BlockReader, agg, false, rpccfg.DefaultEvmCallTimeout, m.Engine, m.Dirs), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, 128, log.New()) + api := NewEthAPI(NewBaseApi(ff, stateCache, m.BlockReader, agg, false, rpccfg.DefaultEvmCallTimeout, m.Engine, m.Dirs), m.DB, nil, nil, nil, 5000000, 1e18, 100_000, false, 100_000, 128, log.New()) ptf, err := api.NewPendingTransactionFilter(ctx) assert.Nil(err) diff --git a/turbo/jsonrpc/eth_mining_test.go b/turbo/jsonrpc/eth_mining_test.go index b34324e5c74..93439127800 100644 --- a/turbo/jsonrpc/eth_mining_test.go +++ b/turbo/jsonrpc/eth_mining_test.go @@ -8,15 +8,17 @@ import ( "github.com/ledgerwatch/erigon/consensus/ethash" "github.com/ledgerwatch/erigon/rpc/rpccfg" + "github.com/ledgerwatch/log/v3" + "github.com/stretchr/testify/require" + "github.com/ledgerwatch/erigon-lib/gointerfaces/txpool" + "github.com/ledgerwatch/erigon-lib/kv/kvcache" "github.com/ledgerwatch/erigon/cmd/rpcdaemon/rpcdaemontest" "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/rlp" "github.com/ledgerwatch/erigon/turbo/rpchelper" "github.com/ledgerwatch/erigon/turbo/stages/mock" - "github.com/ledgerwatch/log/v3" - "github.com/stretchr/testify/require" ) func TestPendingBlock(t *testing.T) { @@ -27,7 +29,7 @@ func TestPendingBlock(t *testing.T) { stateCache := kvcache.New(kvcache.DefaultCoherentConfig) engine := ethash.NewFaker() api := NewEthAPI(NewBaseApi(ff, stateCache, m.BlockReader, nil, false, rpccfg.DefaultEvmCallTimeout, engine, - m.Dirs), nil, nil, nil, mining, 5000000, 100_000, false, 100_000, 128, log.New()) + m.Dirs), nil, nil, nil, mining, 5000000, 1e18, 100_000, false, 100_000, 128, log.New()) expect := uint64(12345) b, err := rlp.EncodeToBytes(types.NewBlockWithHeader(&types.Header{Number: big.NewInt(int64(expect))})) require.NoError(t, err) diff --git a/turbo/jsonrpc/eth_system_test.go b/turbo/jsonrpc/eth_system_test.go index d81544a124d..8c7ea7c40ba 100644 --- a/turbo/jsonrpc/eth_system_test.go +++ b/turbo/jsonrpc/eth_system_test.go @@ -7,14 +7,16 @@ import ( "testing" "github.com/holiman/uint256" + libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/log/v3" + "github.com/ledgerwatch/erigon/core" "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/crypto" "github.com/ledgerwatch/erigon/params" "github.com/ledgerwatch/erigon/turbo/stages/mock" - "github.com/ledgerwatch/log/v3" ) func TestGasPrice(t *testing.T) { @@ -40,7 +42,7 @@ func TestGasPrice(t *testing.T) { t.Run(testCase.description, func(t *testing.T) { m := createGasPriceTestKV(t, testCase.chainSize) defer m.DB.Close() - eth := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, 128, log.New()) + eth := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 1e18, 100_000, false, 100_000, 128, log.New()) ctx := context.Background() result, err := eth.GasPrice(ctx) diff --git a/turbo/jsonrpc/send_transaction.go b/turbo/jsonrpc/send_transaction.go index ce31d6aa456..0cf22944193 100644 --- a/turbo/jsonrpc/send_transaction.go +++ b/turbo/jsonrpc/send_transaction.go @@ -11,7 +11,6 @@ import ( txPoolProto "github.com/ledgerwatch/erigon-lib/gointerfaces/txpool" "github.com/ledgerwatch/erigon/core/types" - "github.com/ledgerwatch/erigon/eth/ethconfig" "github.com/ledgerwatch/erigon/params" ) @@ -24,7 +23,7 @@ func (api *APIImpl) SendRawTransaction(ctx context.Context, encodedTx hexutility // If the transaction fee cap is already specified, ensure the // fee of the given transaction is _reasonable_. - if err := checkTxFee(txn.GetPrice().ToBig(), txn.GetGas(), ethconfig.Defaults.RPCTxFeeCap); err != nil { + if err := checkTxFee(txn.GetPrice().ToBig(), txn.GetGas(), api.FeeCap); err != nil { return common.Hash{}, err } if !txn.Protected() && !api.AllowUnprotectedTxs { diff --git a/turbo/jsonrpc/send_transaction_test.go b/turbo/jsonrpc/send_transaction_test.go index edc47ecdc9f..f93b1e53c85 100644 --- a/turbo/jsonrpc/send_transaction_test.go +++ b/turbo/jsonrpc/send_transaction_test.go @@ -89,7 +89,7 @@ func TestSendRawTransaction(t *testing.T) { ctx, conn := rpcdaemontest.CreateTestGrpcConn(t, mockSentry) txPool := txpool.NewTxpoolClient(conn) ff := rpchelper.New(ctx, nil, txPool, txpool.NewMiningClient(conn), func() {}, mockSentry.Log) - api := jsonrpc.NewEthAPI(newBaseApiForTest(mockSentry), mockSentry.DB, nil, txPool, nil, 5000000, 100_000, false, 100_000, 128, logger) + api := jsonrpc.NewEthAPI(newBaseApiForTest(mockSentry), mockSentry.DB, nil, txPool, nil, 5000000, 1e18, 100_000, false, 100_000, 128, logger) buf := bytes.NewBuffer(nil) err = txn.MarshalBinary(buf) @@ -141,7 +141,7 @@ func TestSendRawTransactionUnprotected(t *testing.T) { ctx, conn := rpcdaemontest.CreateTestGrpcConn(t, mockSentry) txPool := txpool.NewTxpoolClient(conn) ff := rpchelper.New(ctx, nil, txPool, txpool.NewMiningClient(conn), func() {}, mockSentry.Log) - api := jsonrpc.NewEthAPI(newBaseApiForTest(mockSentry), mockSentry.DB, nil, txPool, nil, 5000000, 100_000, false, 100_000, 128, logger) + api := jsonrpc.NewEthAPI(newBaseApiForTest(mockSentry), mockSentry.DB, nil, txPool, nil, 5000000, 1e18, 100_000, false, 100_000, 128, logger) // Enable unproteced txs flag api.AllowUnprotectedTxs = true diff --git a/turbo/jsonrpc/tracing.go b/turbo/jsonrpc/tracing.go index 4bf6285e10d..ba883f2d7f9 100644 --- a/turbo/jsonrpc/tracing.go +++ b/turbo/jsonrpc/tracing.go @@ -119,6 +119,7 @@ func (api *PrivateDebugAPIImpl) traceBlock(ctx context.Context, blockNrOrHash rp } else { txnHash = txn.Hash() } + stream.WriteObjectStart() stream.WriteObjectField("txHash") stream.WriteString(txnHash.Hex()) @@ -346,7 +347,7 @@ func (api *PrivateDebugAPIImpl) TraceCall(ctx context.Context, args ethapi.CallA } var stateReader state.StateReader - if config.TxIndex == nil || isLatest { + if config == nil || config.TxIndex == nil || isLatest { stateReader, err = rpchelper.CreateStateReader(ctx, dbtx, blockNrOrHash, 0, api.filters, api.stateCache, api.historyV3(dbtx), api._blockReader, chainConfig.ChainName) } else { stateReader, err = rpchelper.CreateHistoryStateReader(dbtx, blockNumber, int(*config.TxIndex), api.historyV3(dbtx), header.Time, chainConfig.ChainName) diff --git a/turbo/snapshotsync/snapshotsync.go b/turbo/snapshotsync/snapshotsync.go index efbcefc74d9..f56a85b89de 100644 --- a/turbo/snapshotsync/snapshotsync.go +++ b/turbo/snapshotsync/snapshotsync.go @@ -249,7 +249,6 @@ func WaitForDownloader(ctx context.Context, logPrefix string, histV3, blobs bool func logStats(ctx context.Context, stats *proto_downloader.StatsReply, startTime time.Time, stagesIdsList []string, logPrefix string, logReason string) { var m runtime.MemStats - diagnostics.Send(diagnostics.SyncStagesList{Stages: stagesIdsList}) diagnostics.Send(diagnostics.SnapshotDownloadStatistics{ Downloaded: stats.BytesCompleted, Total: stats.BytesTotal, diff --git a/turbo/transactions/tracing.go b/turbo/transactions/tracing.go index fd384475492..2073d89a940 100644 --- a/turbo/transactions/tracing.go +++ b/turbo/transactions/tracing.go @@ -213,7 +213,7 @@ func ExecuteTraceTx( intrinsicGas uint64, ) error { // Run the transaction with tracing enabled. - evm := vm.NewEVM(blockCtx, txCtx, ibs, chainConfig, vm.Config{Debug: true, Tracer: tracer}) + evm := vm.NewEVM(blockCtx, txCtx, ibs, chainConfig, vm.Config{Debug: true, Tracer: tracer, NoBaseFee: true}) var refunds = true if config != nil && config.NoRefunds != nil && *config.NoRefunds { From a9995394308559b70d24b59af2f8c42e8c2424bc Mon Sep 17 00:00:00 2001 From: blxdyx <125243069+blxdyx@users.noreply.github.com> Date: Fri, 28 Jun 2024 15:48:55 +0800 Subject: [PATCH 06/22] support haber fix (#420) --- core/system_contract_lookup.go | 6 ++++ core/systemcontracts/upgrade.go | 51 +++++++++++++++++++++++++++++--- erigon-lib/chain/chain_config.go | 29 ++++++++++++++---- params/chainspecs/bsc.json | 1 + params/chainspecs/chapel.json | 1 + params/chainspecs/rialto.json | 1 + 6 files changed, 79 insertions(+), 10 deletions(-) diff --git a/core/system_contract_lookup.go b/core/system_contract_lookup.go index 8fb304d1ef7..bc00aa26d52 100644 --- a/core/system_contract_lookup.go +++ b/core/system_contract_lookup.go @@ -100,6 +100,12 @@ func init() { addCodeRecords(systemcontracts.FeynmanFixUpgrade[chainName], 0, blockTime, byChain) } } + if chainConfig.HaberFixTime != nil { + blockTime := chainConfig.HaberFixTime.Uint64() + if blockTime != 0 { + addCodeRecords(systemcontracts.HaberFixUpgrade[chainName], 0, blockTime, byChain) + } + } } addGnosisSpecialCase() diff --git a/core/systemcontracts/upgrade.go b/core/systemcontracts/upgrade.go index 6541678a6ec..3dce76031db 100644 --- a/core/systemcontracts/upgrade.go +++ b/core/systemcontracts/upgrade.go @@ -7,6 +7,7 @@ import ( libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/log/v3" "math/big" + "strings" "github.com/ledgerwatch/erigon-lib/chain/networkname" "github.com/ledgerwatch/erigon/core/state" @@ -55,6 +56,8 @@ var ( FeynmanFixUpgrade = make(map[string]*Upgrade) + HaberFixUpgrade = make(map[string]*Upgrade) + LatestUpgrade = FeynmanUpgrade CalcuttaUpgrade = make(map[string]*Upgrade) @@ -564,7 +567,7 @@ func init() { Configs: []*UpgradeConfig{ { ContractAddr: MaticTokenContract, - Code: "60806040526004361061019c5760003560e01c806377d32e94116100ec578063acd06cb31161008a578063e306f77911610064578063e306f77914610a7b578063e614d0d614610aa6578063f2fde38b14610ad1578063fc0c546a14610b225761019c565b8063acd06cb31461097a578063b789543c146109cd578063cc79f97b14610a505761019c565b80639025e64c116100c65780639025e64c146107c957806395d89b4114610859578063a9059cbb146108e9578063abceeba21461094f5761019c565b806377d32e94146106315780638da5cb5b146107435780638f32d59b1461079a5761019c565b806347e7ef24116101595780637019d41a116101335780637019d41a1461053357806370a082311461058a578063715018a6146105ef578063771282f6146106065761019c565b806347e7ef2414610410578063485cc9551461046b57806360f96a8f146104dc5761019c565b806306fdde03146101a15780631499c5921461023157806318160ddd1461028257806319d27d9c146102ad5780632e1a7d4d146103b1578063313ce567146103df575b600080fd5b3480156101ad57600080fd5b506101b6610b79565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101f65780820151818401526020810190506101db565b50505050905090810190601f1680156102235780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561023d57600080fd5b506102806004803603602081101561025457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610bb6565b005b34801561028e57600080fd5b50610297610c24565b6040518082815260200191505060405180910390f35b3480156102b957600080fd5b5061036f600480360360a08110156102d057600080fd5b81019080803590602001906401000000008111156102ed57600080fd5b8201836020820111156102ff57600080fd5b8035906020019184600183028401116401000000008311171561032157600080fd5b9091929391929390803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c3a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103dd600480360360208110156103c757600080fd5b8101908080359060200190929190505050610caa565b005b3480156103eb57600080fd5b506103f4610dfc565b604051808260ff1660ff16815260200191505060405180910390f35b34801561041c57600080fd5b506104696004803603604081101561043357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e05565b005b34801561047757600080fd5b506104da6004803603604081101561048e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fc1565b005b3480156104e857600080fd5b506104f1611090565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561053f57600080fd5b506105486110b6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561059657600080fd5b506105d9600480360360208110156105ad57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110dc565b6040518082815260200191505060405180910390f35b3480156105fb57600080fd5b506106046110fd565b005b34801561061257600080fd5b5061061b6111cd565b6040518082815260200191505060405180910390f35b34801561063d57600080fd5b506107016004803603604081101561065457600080fd5b81019080803590602001909291908035906020019064010000000081111561067b57600080fd5b82018360208201111561068d57600080fd5b803590602001918460018302840111640100000000831117156106af57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506111d3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561074f57600080fd5b50610758611358565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107a657600080fd5b506107af611381565b604051808215151515815260200191505060405180910390f35b3480156107d557600080fd5b506107de6113d8565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561081e578082015181840152602081019050610803565b50505050905090810190601f16801561084b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561086557600080fd5b5061086e611411565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108ae578082015181840152602081019050610893565b50505050905090810190601f1680156108db5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610935600480360360408110156108ff57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061144e565b604051808215151515815260200191505060405180910390f35b34801561095b57600080fd5b50610964611474565b6040518082815260200191505060405180910390f35b34801561098657600080fd5b506109b36004803603602081101561099d57600080fd5b8101908080359060200190929190505050611501565b604051808215151515815260200191505060405180910390f35b3480156109d957600080fd5b50610a3a600480360360808110156109f057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190505050611521565b6040518082815260200191505060405180910390f35b348015610a5c57600080fd5b50610a65611541565b6040518082815260200191505060405180910390f35b348015610a8757600080fd5b50610a90611546565b6040518082815260200191505060405180910390f35b348015610ab257600080fd5b50610abb61154c565b6040518082815260200191505060405180910390f35b348015610add57600080fd5b50610b2060048036036020811015610af457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115d9565b005b348015610b2e57600080fd5b50610b376115f6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60606040518060400160405280600b81526020017f4d6174696320546f6b656e000000000000000000000000000000000000000000815250905090565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f44697361626c656420666561747572650000000000000000000000000000000081525060200191505060405180910390fd5b6000601260ff16600a0a6402540be40002905090565b60006040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f44697361626c656420666561747572650000000000000000000000000000000081525060200191505060405180910390fd5b60003390506000610cba826110dc565b9050610cd18360065461161c90919063ffffffff16565b600681905550600083118015610ce657508234145b610d58576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f496e73756666696369656e7420616d6f756e740000000000000000000000000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167febff2602b3f468259e1e99f613fed6691f3a6526effe6ef3e768ba7ae7a36c4f8584610dd4876110dc565b60405180848152602001838152602001828152602001935050505060405180910390a3505050565b60006012905090565b610e0d611381565b610e1657600080fd5b600081118015610e535750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b610ea8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180611da76023913960400191505060405180910390fd5b6000610eb3836110dc565b905060008390508073ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f19350505050158015610f00573d6000803e3d6000fd5b50610f168360065461163c90919063ffffffff16565b6006819055508373ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f4e2ca0515ed1aef1395f66b5303bb5d6f1bf9d61a353fa53f73f8ac9973fa9f68585610f98896110dc565b60405180848152602001838152602001828152602001935050505060405180910390a350505050565b600760009054906101000a900460ff1615611027576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180611d846023913960400191505060405180910390fd5b6001600760006101000a81548160ff02191690831515021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061108c8261165b565b5050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008173ffffffffffffffffffffffffffffffffffffffff16319050919050565b611105611381565b61110e57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60065481565b60008060008060418551146111ee5760009350505050611352565b602085015192506040850151915060ff6041860151169050601b8160ff16101561121957601b810190505b601b8160ff16141580156112315750601c8160ff1614155b156112425760009350505050611352565b60018682858560405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa15801561129f573d6000803e3d6000fd5b505050602060405103519350600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561134e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4572726f7220696e2065637265636f766572000000000000000000000000000081525060200191505060405180910390fd5b5050505b92915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b6040518060400160405280600181526020017f890000000000000000000000000000000000000000000000000000000000000081525081565b60606040518060400160405280600581526020017f4d41544943000000000000000000000000000000000000000000000000000000815250905090565b6000813414611460576000905061146e565b61146b338484611753565b90505b92915050565b6040518060800160405280605b8152602001611e1c605b91396040516020018082805190602001908083835b602083106114c357805182526020820191506020810190506020830392506114a0565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012081565b60056020528060005260406000206000915054906101000a900460ff1681565b600061153761153286868686611b10565b611be6565b9050949350505050565b608981565b60015481565b604051806080016040528060528152602001611dca605291396040516020018082805190602001908083835b6020831061159b5780518252602082019150602081019050602083039250611578565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012081565b6115e1611381565b6115ea57600080fd5b6115f38161165b565b50565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008282111561162b57600080fd5b600082840390508091505092915050565b60008082840190508381101561165157600080fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561169557600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000803073ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156117d357600080fd5b505afa1580156117e7573d6000803e3d6000fd5b505050506040513d60208110156117fd57600080fd5b8101908080519060200190929190505050905060003073ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561188f57600080fd5b505afa1580156118a3573d6000803e3d6000fd5b505050506040513d60208110156118b957600080fd5b810190808051906020019092919050505090506118d7868686611c30565b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fe6497e3ee548a3372136af2fcb0696db31fc6cf20260707645068bd3fe97f3c48786863073ffffffffffffffffffffffffffffffffffffffff166370a082318e6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156119df57600080fd5b505afa1580156119f3573d6000803e3d6000fd5b505050506040513d6020811015611a0957600080fd5b81019080805190602001909291905050503073ffffffffffffffffffffffffffffffffffffffff166370a082318e6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611a9757600080fd5b505afa158015611aab573d6000803e3d6000fd5b505050506040513d6020811015611ac157600080fd5b8101908080519060200190929190505050604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390a46001925050509392505050565b6000806040518060800160405280605b8152602001611e1c605b91396040516020018082805190602001908083835b60208310611b625780518252602082019150602081019050602083039250611b3f565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120905060405181815273ffffffffffffffffffffffffffffffffffffffff8716602082015285604082015284606082015283608082015260a0812092505081915050949350505050565b60008060015490506040517f190100000000000000000000000000000000000000000000000000000000000081528160028201528360228201526042812092505081915050919050565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611cd2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f63616e27742073656e6420746f204d524332300000000000000000000000000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611d18573d6000803e3d6000fd5b508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350505056fe54686520636f6e747261637420697320616c726561647920696e697469616c697a6564496e73756666696369656e7420616d6f756e74206f7220696e76616c69642075736572454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429546f6b656e5472616e736665724f726465722861646472657373207370656e6465722c75696e7432353620746f6b656e49644f72416d6f756e742c6279746573333220646174612c75696e743235362065787069726174696f6e29a265627a7a72315820a4a6f71a98ac3fc613c3a8f1e2e11b9eb9b6b39f125f7d9508916c2b8fb02c7164736f6c63430005100032", + Code: "", }, }, } @@ -574,7 +577,7 @@ func init() { Configs: []*UpgradeConfig{ { ContractAddr: MaticTokenContract, - Code: "60806040526004361061019c5760003560e01c806377d32e94116100ec578063acd06cb31161008a578063e306f77911610064578063e306f77914610a7b578063e614d0d614610aa6578063f2fde38b14610ad1578063fc0c546a14610b225761019c565b8063acd06cb31461097a578063b789543c146109cd578063cc79f97b14610a505761019c565b80639025e64c116100c65780639025e64c146107c957806395d89b4114610859578063a9059cbb146108e9578063abceeba21461094f5761019c565b806377d32e94146106315780638da5cb5b146107435780638f32d59b1461079a5761019c565b806347e7ef24116101595780637019d41a116101335780637019d41a1461053357806370a082311461058a578063715018a6146105ef578063771282f6146106065761019c565b806347e7ef2414610410578063485cc9551461046b57806360f96a8f146104dc5761019c565b806306fdde03146101a15780631499c5921461023157806318160ddd1461028257806319d27d9c146102ad5780632e1a7d4d146103b1578063313ce567146103df575b600080fd5b3480156101ad57600080fd5b506101b6610b79565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101f65780820151818401526020810190506101db565b50505050905090810190601f1680156102235780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561023d57600080fd5b506102806004803603602081101561025457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610bb6565b005b34801561028e57600080fd5b50610297610c24565b6040518082815260200191505060405180910390f35b3480156102b957600080fd5b5061036f600480360360a08110156102d057600080fd5b81019080803590602001906401000000008111156102ed57600080fd5b8201836020820111156102ff57600080fd5b8035906020019184600183028401116401000000008311171561032157600080fd5b9091929391929390803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c3a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103dd600480360360208110156103c757600080fd5b8101908080359060200190929190505050610caa565b005b3480156103eb57600080fd5b506103f4610dfc565b604051808260ff1660ff16815260200191505060405180910390f35b34801561041c57600080fd5b506104696004803603604081101561043357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e05565b005b34801561047757600080fd5b506104da6004803603604081101561048e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fc1565b005b3480156104e857600080fd5b506104f1611090565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561053f57600080fd5b506105486110b6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561059657600080fd5b506105d9600480360360208110156105ad57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110dc565b6040518082815260200191505060405180910390f35b3480156105fb57600080fd5b506106046110fd565b005b34801561061257600080fd5b5061061b6111cd565b6040518082815260200191505060405180910390f35b34801561063d57600080fd5b506107016004803603604081101561065457600080fd5b81019080803590602001909291908035906020019064010000000081111561067b57600080fd5b82018360208201111561068d57600080fd5b803590602001918460018302840111640100000000831117156106af57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506111d3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561074f57600080fd5b50610758611358565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107a657600080fd5b506107af611381565b604051808215151515815260200191505060405180910390f35b3480156107d557600080fd5b506107de6113d8565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561081e578082015181840152602081019050610803565b50505050905090810190601f16801561084b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561086557600080fd5b5061086e611411565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108ae578082015181840152602081019050610893565b50505050905090810190601f1680156108db5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610935600480360360408110156108ff57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061144e565b604051808215151515815260200191505060405180910390f35b34801561095b57600080fd5b50610964611474565b6040518082815260200191505060405180910390f35b34801561098657600080fd5b506109b36004803603602081101561099d57600080fd5b8101908080359060200190929190505050611501565b604051808215151515815260200191505060405180910390f35b3480156109d957600080fd5b50610a3a600480360360808110156109f057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190505050611521565b6040518082815260200191505060405180910390f35b348015610a5c57600080fd5b50610a65611541565b6040518082815260200191505060405180910390f35b348015610a8757600080fd5b50610a90611546565b6040518082815260200191505060405180910390f35b348015610ab257600080fd5b50610abb61154c565b6040518082815260200191505060405180910390f35b348015610add57600080fd5b50610b2060048036036020811015610af457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115d9565b005b348015610b2e57600080fd5b50610b376115f6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60606040518060400160405280600b81526020017f4d6174696320546f6b656e000000000000000000000000000000000000000000815250905090565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f44697361626c656420666561747572650000000000000000000000000000000081525060200191505060405180910390fd5b6000601260ff16600a0a6402540be40002905090565b60006040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f44697361626c656420666561747572650000000000000000000000000000000081525060200191505060405180910390fd5b60003390506000610cba826110dc565b9050610cd18360065461161c90919063ffffffff16565b600681905550600083118015610ce657508234145b610d58576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f496e73756666696369656e7420616d6f756e740000000000000000000000000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167febff2602b3f468259e1e99f613fed6691f3a6526effe6ef3e768ba7ae7a36c4f8584610dd4876110dc565b60405180848152602001838152602001828152602001935050505060405180910390a3505050565b60006012905090565b610e0d611381565b610e1657600080fd5b600081118015610e535750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b610ea8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180611da76023913960400191505060405180910390fd5b6000610eb3836110dc565b905060008390508073ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f19350505050158015610f00573d6000803e3d6000fd5b50610f168360065461163c90919063ffffffff16565b6006819055508373ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f4e2ca0515ed1aef1395f66b5303bb5d6f1bf9d61a353fa53f73f8ac9973fa9f68585610f98896110dc565b60405180848152602001838152602001828152602001935050505060405180910390a350505050565b600760009054906101000a900460ff1615611027576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180611d846023913960400191505060405180910390fd5b6001600760006101000a81548160ff02191690831515021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061108c8261165b565b5050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008173ffffffffffffffffffffffffffffffffffffffff16319050919050565b611105611381565b61110e57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60065481565b60008060008060418551146111ee5760009350505050611352565b602085015192506040850151915060ff6041860151169050601b8160ff16101561121957601b810190505b601b8160ff16141580156112315750601c8160ff1614155b156112425760009350505050611352565b60018682858560405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa15801561129f573d6000803e3d6000fd5b505050602060405103519350600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561134e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4572726f7220696e2065637265636f766572000000000000000000000000000081525060200191505060405180910390fd5b5050505b92915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b6040518060400160405280600181526020017f890000000000000000000000000000000000000000000000000000000000000081525081565b60606040518060400160405280600581526020017f4d41544943000000000000000000000000000000000000000000000000000000815250905090565b6000813414611460576000905061146e565b61146b338484611753565b90505b92915050565b6040518060800160405280605b8152602001611e1c605b91396040516020018082805190602001908083835b602083106114c357805182526020820191506020810190506020830392506114a0565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012081565b60056020528060005260406000206000915054906101000a900460ff1681565b600061153761153286868686611b10565b611be6565b9050949350505050565b608981565b60015481565b604051806080016040528060528152602001611dca605291396040516020018082805190602001908083835b6020831061159b5780518252602082019150602081019050602083039250611578565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012081565b6115e1611381565b6115ea57600080fd5b6115f38161165b565b50565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008282111561162b57600080fd5b600082840390508091505092915050565b60008082840190508381101561165157600080fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561169557600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000803073ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156117d357600080fd5b505afa1580156117e7573d6000803e3d6000fd5b505050506040513d60208110156117fd57600080fd5b8101908080519060200190929190505050905060003073ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561188f57600080fd5b505afa1580156118a3573d6000803e3d6000fd5b505050506040513d60208110156118b957600080fd5b810190808051906020019092919050505090506118d7868686611c30565b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fe6497e3ee548a3372136af2fcb0696db31fc6cf20260707645068bd3fe97f3c48786863073ffffffffffffffffffffffffffffffffffffffff166370a082318e6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156119df57600080fd5b505afa1580156119f3573d6000803e3d6000fd5b505050506040513d6020811015611a0957600080fd5b81019080805190602001909291905050503073ffffffffffffffffffffffffffffffffffffffff166370a082318e6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611a9757600080fd5b505afa158015611aab573d6000803e3d6000fd5b505050506040513d6020811015611ac157600080fd5b8101908080519060200190929190505050604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390a46001925050509392505050565b6000806040518060800160405280605b8152602001611e1c605b91396040516020018082805190602001908083835b60208310611b625780518252602082019150602081019050602083039250611b3f565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120905060405181815273ffffffffffffffffffffffffffffffffffffffff8716602082015285604082015284606082015283608082015260a0812092505081915050949350505050565b60008060015490506040517f190100000000000000000000000000000000000000000000000000000000000081528160028201528360228201526042812092505081915050919050565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611cd2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f63616e27742073656e6420746f204d524332300000000000000000000000000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611d18573d6000803e3d6000fd5b508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350505056fe54686520636f6e747261637420697320616c726561647920696e697469616c697a6564496e73756666696369656e7420616d6f756e74206f7220696e76616c69642075736572454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429546f6b656e5472616e736665724f726465722861646472657373207370656e6465722c75696e7432353620746f6b656e49644f72416d6f756e742c6279746573333220646174612c75696e743235362065787069726174696f6e29a265627a7a72315820a4a6f71a98ac3fc613c3a8f1e2e11b9eb9b6b39f125f7d9508916c2b8fb02c7164736f6c63430005100032", + Code: "", }, }, } @@ -584,7 +587,7 @@ func init() { Configs: []*UpgradeConfig{ { ContractAddr: MaticTokenContract, - Code: "60806040526004361061019c5760003560e01c806377d32e94116100ec578063acd06cb31161008a578063e306f77911610064578063e306f77914610a7b578063e614d0d614610aa6578063f2fde38b14610ad1578063fc0c546a14610b225761019c565b8063acd06cb31461097a578063b789543c146109cd578063cc79f97b14610a505761019c565b80639025e64c116100c65780639025e64c146107c957806395d89b4114610859578063a9059cbb146108e9578063abceeba21461094f5761019c565b806377d32e94146106315780638da5cb5b146107435780638f32d59b1461079a5761019c565b806347e7ef24116101595780637019d41a116101335780637019d41a1461053357806370a082311461058a578063715018a6146105ef578063771282f6146106065761019c565b806347e7ef2414610410578063485cc9551461046b57806360f96a8f146104dc5761019c565b806306fdde03146101a15780631499c5921461023157806318160ddd1461028257806319d27d9c146102ad5780632e1a7d4d146103b1578063313ce567146103df575b600080fd5b3480156101ad57600080fd5b506101b6610b79565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101f65780820151818401526020810190506101db565b50505050905090810190601f1680156102235780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561023d57600080fd5b506102806004803603602081101561025457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610bb6565b005b34801561028e57600080fd5b50610297610c24565b6040518082815260200191505060405180910390f35b3480156102b957600080fd5b5061036f600480360360a08110156102d057600080fd5b81019080803590602001906401000000008111156102ed57600080fd5b8201836020820111156102ff57600080fd5b8035906020019184600183028401116401000000008311171561032157600080fd5b9091929391929390803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c3a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103dd600480360360208110156103c757600080fd5b8101908080359060200190929190505050610caa565b005b3480156103eb57600080fd5b506103f4610dfc565b604051808260ff1660ff16815260200191505060405180910390f35b34801561041c57600080fd5b506104696004803603604081101561043357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e05565b005b34801561047757600080fd5b506104da6004803603604081101561048e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fc1565b005b3480156104e857600080fd5b506104f1611090565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561053f57600080fd5b506105486110b6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561059657600080fd5b506105d9600480360360208110156105ad57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110dc565b6040518082815260200191505060405180910390f35b3480156105fb57600080fd5b506106046110fd565b005b34801561061257600080fd5b5061061b6111cd565b6040518082815260200191505060405180910390f35b34801561063d57600080fd5b506107016004803603604081101561065457600080fd5b81019080803590602001909291908035906020019064010000000081111561067b57600080fd5b82018360208201111561068d57600080fd5b803590602001918460018302840111640100000000831117156106af57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506111d3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561074f57600080fd5b50610758611358565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107a657600080fd5b506107af611381565b604051808215151515815260200191505060405180910390f35b3480156107d557600080fd5b506107de6113d8565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561081e578082015181840152602081019050610803565b50505050905090810190601f16801561084b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561086557600080fd5b5061086e611411565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108ae578082015181840152602081019050610893565b50505050905090810190601f1680156108db5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610935600480360360408110156108ff57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061144e565b604051808215151515815260200191505060405180910390f35b34801561095b57600080fd5b50610964611474565b6040518082815260200191505060405180910390f35b34801561098657600080fd5b506109b36004803603602081101561099d57600080fd5b8101908080359060200190929190505050611501565b604051808215151515815260200191505060405180910390f35b3480156109d957600080fd5b50610a3a600480360360808110156109f057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190505050611521565b6040518082815260200191505060405180910390f35b348015610a5c57600080fd5b50610a65611541565b6040518082815260200191505060405180910390f35b348015610a8757600080fd5b50610a90611546565b6040518082815260200191505060405180910390f35b348015610ab257600080fd5b50610abb61154c565b6040518082815260200191505060405180910390f35b348015610add57600080fd5b50610b2060048036036020811015610af457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115d9565b005b348015610b2e57600080fd5b50610b376115f6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60606040518060400160405280600b81526020017f4d6174696320546f6b656e000000000000000000000000000000000000000000815250905090565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f44697361626c656420666561747572650000000000000000000000000000000081525060200191505060405180910390fd5b6000601260ff16600a0a6402540be40002905090565b60006040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f44697361626c656420666561747572650000000000000000000000000000000081525060200191505060405180910390fd5b60003390506000610cba826110dc565b9050610cd18360065461161c90919063ffffffff16565b600681905550600083118015610ce657508234145b610d58576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f496e73756666696369656e7420616d6f756e740000000000000000000000000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167febff2602b3f468259e1e99f613fed6691f3a6526effe6ef3e768ba7ae7a36c4f8584610dd4876110dc565b60405180848152602001838152602001828152602001935050505060405180910390a3505050565b60006012905090565b610e0d611381565b610e1657600080fd5b600081118015610e535750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b610ea8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180611da76023913960400191505060405180910390fd5b6000610eb3836110dc565b905060008390508073ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f19350505050158015610f00573d6000803e3d6000fd5b50610f168360065461163c90919063ffffffff16565b6006819055508373ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f4e2ca0515ed1aef1395f66b5303bb5d6f1bf9d61a353fa53f73f8ac9973fa9f68585610f98896110dc565b60405180848152602001838152602001828152602001935050505060405180910390a350505050565b600760009054906101000a900460ff1615611027576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180611d846023913960400191505060405180910390fd5b6001600760006101000a81548160ff02191690831515021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061108c8261165b565b5050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008173ffffffffffffffffffffffffffffffffffffffff16319050919050565b611105611381565b61110e57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60065481565b60008060008060418551146111ee5760009350505050611352565b602085015192506040850151915060ff6041860151169050601b8160ff16101561121957601b810190505b601b8160ff16141580156112315750601c8160ff1614155b156112425760009350505050611352565b60018682858560405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa15801561129f573d6000803e3d6000fd5b505050602060405103519350600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561134e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4572726f7220696e2065637265636f766572000000000000000000000000000081525060200191505060405180910390fd5b5050505b92915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b6040518060400160405280600181526020017f890000000000000000000000000000000000000000000000000000000000000081525081565b60606040518060400160405280600581526020017f4d41544943000000000000000000000000000000000000000000000000000000815250905090565b6000813414611460576000905061146e565b61146b338484611753565b90505b92915050565b6040518060800160405280605b8152602001611e1c605b91396040516020018082805190602001908083835b602083106114c357805182526020820191506020810190506020830392506114a0565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012081565b60056020528060005260406000206000915054906101000a900460ff1681565b600061153761153286868686611b10565b611be6565b9050949350505050565b608981565b60015481565b604051806080016040528060528152602001611dca605291396040516020018082805190602001908083835b6020831061159b5780518252602082019150602081019050602083039250611578565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012081565b6115e1611381565b6115ea57600080fd5b6115f38161165b565b50565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008282111561162b57600080fd5b600082840390508091505092915050565b60008082840190508381101561165157600080fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561169557600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000803073ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156117d357600080fd5b505afa1580156117e7573d6000803e3d6000fd5b505050506040513d60208110156117fd57600080fd5b8101908080519060200190929190505050905060003073ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561188f57600080fd5b505afa1580156118a3573d6000803e3d6000fd5b505050506040513d60208110156118b957600080fd5b810190808051906020019092919050505090506118d7868686611c30565b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fe6497e3ee548a3372136af2fcb0696db31fc6cf20260707645068bd3fe97f3c48786863073ffffffffffffffffffffffffffffffffffffffff166370a082318e6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156119df57600080fd5b505afa1580156119f3573d6000803e3d6000fd5b505050506040513d6020811015611a0957600080fd5b81019080805190602001909291905050503073ffffffffffffffffffffffffffffffffffffffff166370a082318e6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611a9757600080fd5b505afa158015611aab573d6000803e3d6000fd5b505050506040513d6020811015611ac157600080fd5b8101908080519060200190929190505050604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390a46001925050509392505050565b6000806040518060800160405280605b8152602001611e1c605b91396040516020018082805190602001908083835b60208310611b625780518252602082019150602081019050602083039250611b3f565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120905060405181815273ffffffffffffffffffffffffffffffffffffffff8716602082015285604082015284606082015283608082015260a0812092505081915050949350505050565b60008060015490506040517f190100000000000000000000000000000000000000000000000000000000000081528160028201528360228201526042812092505081915050919050565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611cd2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f63616e27742073656e6420746f204d524332300000000000000000000000000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611d18573d6000803e3d6000fd5b508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350505056fe54686520636f6e747261637420697320616c726561647920696e697469616c697a6564496e73756666696369656e7420616d6f756e74206f7220696e76616c69642075736572454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429546f6b656e5472616e736665724f726465722861646472657373207370656e6465722c75696e7432353620746f6b656e49644f72416d6f756e742c6279746573333220646174612c75696e743235362065787069726174696f6e29a265627a7a72315820a4a6f71a98ac3fc613c3a8f1e2e11b9eb9b6b39f125f7d9508916c2b8fb02c7164736f6c63430005100032", + Code: "", }, }, } @@ -1018,6 +1021,42 @@ func init() { Configs: []*UpgradeConfig{}, } + HaberFixUpgrade[networkname.BSCChainName] = &Upgrade{ + UpgradeName: "haberFix", + Configs: []*UpgradeConfig{ + { + ContractAddr: ValidatorContract, + CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/b743ce3f1f1e94c349b175cd6593bc263463b33b", + Code: "6080604052600436106104fb5760003560e01c806388b32f111161028c578063c6d339451161015a578063e40716a1116100cc578063f92eb86b11610085578063f92eb86b14610d2d578063f9a2bbc714610d42578063fc3e590814610d57578063fccc281314610d6c578063fd4ad81f14610d81578063fd6a687914610db057610502565b8063e40716a114610c9b578063ea321e4914610cb0578063eb57e20214610cd0578063eda5868c14610cf0578063f1fad10414610d05578063f340fa0114610d1a57610502565b8063d86222d51161011e578063d86222d514610c1d578063daacdb6614610c32578063dc927faf14610c47578063df8079e914610c5c578063e086c7b114610c71578063e1c7392a14610c8657610502565b8063c6d3394514610bbe578063c81b166214610bd3578063c8509d811461098d578063ce910b0c14610be8578063d68fb56a14610c0857610502565b8063a78abc16116101fe578063ad3c9da6116101b7578063ad3c9da614610b3d578063aef198a914610b5d578063b7ab4db514610b72578063b8cf4ef114610b94578063bf9f4995146106fe578063c466689d14610ba957610502565b8063a78abc1614610ab4578063aa82dce114610ac9578063aad5606314610ade578063aaf5eb6814610af3578063ab51bb9614610b08578063ac43175114610b1d57610502565b806396713da91161025057806396713da914610a365780639dc0926214610a4b5780639fe0f81614610a60578063a0dc275814610a75578063a1a11bf514610a8a578063a5422d5c14610a9f57610502565b806388b32f11146109c25780638a7beb01146109d75780638b5ad0c9146109ec5780638d19a41014610a015780639369d7de14610a2157610502565b806351b4dce3116103c957806370fd5bad1161033b5780637e434d54116102f45780637e434d541461094e57806381650b6214610963578063820dcaa814610978578063831d65d11461098d578063853230aa1461090f57806386249882146109ad57610502565b806370fd5bad146108d0578063718a8aa8146108e557806375d47a0a146108fa57806378dfed4a1461090f5780637942fd05146109245780637a84ca2a1461093957610502565b80635d77156c1161038d5780635d77156c1461082a5780635de1e22c1461083f57806360eba4fe1461085457806362b72cf5146108745780636969a25c146108895780636e47b482146108bb57610502565b806351b4dce3146107ab57806351e80672146107c057806355614fcc146107d5578063565c56b3146107f55780635667515a1461081557610502565b8063300c35671161046d57806343756e5c1161042657806343756e5c1461072057806345cf9daf14610735578063493279b11461074a5780634bf6c8821461076c5780634df6e0c3146107815780635192c82c1461079657610502565b8063300c35671461065b578063321d398a1461067b5780633365af3a1461069b57806335409f7f146106bb5780633b071dcc146106db5780633dffc387146106fe57610502565b8063152ad3b8116104bf578063152ad3b8146105ba5780631e4c1524146105dc5780631ff18069146105fc578063219f22d51461061157806328087028146106265780632a0ffb6e1461063b57610502565b806304c4fec61461050757806307a568471461051e5780630bee7a67146105495780630e2374a51461056b5780631182b8751461058d57610502565b3661050257005b600080fd5b34801561051357600080fd5b5061051c610dc5565b005b34801561052a57600080fd5b50610533610e39565b6040516105409190618f10565b60405180910390f35b34801561055557600080fd5b5061055e610e3f565b6040516105409190618f3a565b34801561057757600080fd5b50610580610e44565b6040516105409190618200565b34801561059957600080fd5b506105ad6105a83660046180e6565b610e4a565b60405161054091906183b6565b3480156105c657600080fd5b506105cf611167565b60405161054091906183ab565b3480156105e857600080fd5b5061051c6105f7366004617ef4565b611170565b34801561060857600080fd5b50610533611846565b34801561061d57600080fd5b5061055e61184c565b34801561063257600080fd5b50610580611851565b34801561064757600080fd5b5061051c610656366004617e54565b611857565b34801561066757600080fd5b5061051c610676366004617e8c565b611904565b34801561068757600080fd5b506105cf610696366004618093565b611c4d565b3480156106a757600080fd5b506105cf6106b6366004618093565b611d1c565b3480156106c757600080fd5b5061051c6106d6366004617e54565b611dcd565b3480156106e757600080fd5b506106f0611f32565b6040516105409291906182c1565b34801561070a57600080fd5b5061071361220e565b6040516105409190618f4b565b34801561072c57600080fd5b50610580612213565b34801561074157600080fd5b50610533612219565b34801561075657600080fd5b5061075f61221f565b6040516105409190618f01565b34801561077857600080fd5b50610713612224565b34801561078d57600080fd5b506106f0612229565b3480156107a257600080fd5b506105336123b5565b3480156107b757600080fd5b506105806123bb565b3480156107cc57600080fd5b506105806123c1565b3480156107e157600080fd5b506105cf6107f0366004617e54565b6123c7565b34801561080157600080fd5b50610533610810366004617e54565b6123fc565b34801561082157600080fd5b5061071361244d565b34801561083657600080fd5b5061055e612452565b34801561084b57600080fd5b50610533612457565b34801561086057600080fd5b506105ad61086f366004618093565b61245d565b34801561088057600080fd5b50610533612503565b34801561089557600080fd5b506108a96108a4366004618093565b612509565b6040516105409695949392919061822d565b3480156108c757600080fd5b5061058061256d565b3480156108dc57600080fd5b50610713612573565b3480156108f157600080fd5b50610713612578565b34801561090657600080fd5b5061058061257d565b34801561091b57600080fd5b50610533612583565b34801561093057600080fd5b50610713612589565b34801561094557600080fd5b5061053361258e565b34801561095a57600080fd5b50610580612594565b34801561096f57600080fd5b5061055e61259a565b34801561098457600080fd5b5061053361259f565b34801561099957600080fd5b5061051c6109a83660046180e6565b6125a5565b3480156109b957600080fd5b50610533612606565b3480156109ce57600080fd5b5061053361260c565b3480156109e357600080fd5b506105cf612612565b3480156109f857600080fd5b5061053361261b565b348015610a0d57600080fd5b50610533610a1c366004617e54565b612621565b348015610a2d57600080fd5b5061051c612661565b348015610a4257600080fd5b50610713612775565b348015610a5757600080fd5b5061058061277a565b348015610a6c57600080fd5b50610533612780565b348015610a8157600080fd5b50610533612785565b348015610a9657600080fd5b5061058061278a565b348015610aab57600080fd5b506105ad612790565b348015610ac057600080fd5b506105cf6127af565b348015610ad557600080fd5b506105806127b8565b348015610aea57600080fd5b506105806127be565b348015610aff57600080fd5b506105336127c4565b348015610b1457600080fd5b5061055e61244d565b348015610b2957600080fd5b5061051c610b38366004618037565b6127cd565b348015610b4957600080fd5b50610533610b58366004617e54565b613086565b348015610b6957600080fd5b50610533613098565b348015610b7e57600080fd5b50610b876130a5565b60405161054091906182ae565b348015610ba057600080fd5b50610533613191565b348015610bb557600080fd5b50610533613196565b348015610bca57600080fd5b50610533612573565b348015610bdf57600080fd5b5061058061319c565b348015610bf457600080fd5b506105ad610c03366004618093565b6131a2565b348015610c1457600080fd5b506105336131af565b348015610c2957600080fd5b506105336131ee565b348015610c3e57600080fd5b506105336131fa565b348015610c5357600080fd5b50610580613200565b348015610c6857600080fd5b50610580613206565b348015610c7d57600080fd5b50610533610e3f565b348015610c9257600080fd5b5061051c61320c565b348015610ca757600080fd5b506105336133bb565b348015610cbc57600080fd5b506105cf610ccb366004617ff8565b6133c1565b348015610cdc57600080fd5b5061051c610ceb366004617e54565b613547565b348015610cfc57600080fd5b5061055e61364b565b348015610d1157600080fd5b50610713613650565b61051c610d28366004617e54565b613655565b348015610d3957600080fd5b506105336139d4565b348015610d4e57600080fd5b506105806139da565b348015610d6357600080fd5b50610713612780565b348015610d7857600080fd5b506105806139e0565b348015610d8d57600080fd5b50610da1610d9c366004618093565b6139e6565b60405161054093929190618f19565b348015610dbc57600080fd5b50610580613aa8565b6000610dd033612621565b9050600b8181548110610ddf57fe5b600091825260209091206001601690920201015460ff16610e1b5760405162461bcd60e51b8152600401610e1290618b1c565b60405180910390fd5b6000610e256131af565b9050610e343383836001613aae565b505050565b60095481565b606481565b61200181565b60005460609060ff16610e6f5760405162461bcd60e51b8152600401610e12906185dd565b3361200014610e905760405162461bcd60e51b8152600401610e1290618d1d565b600b54610f4e57610e9f617a00565b60015460005b81811015610f4a57600b8054600181018255600091909152835160008051602061901d833981519152601690920291820190815560208086015160008051602061964c8339815191528401805460ff1916911515919091179055604086015180518794610f269360008051602061903d833981519152909101920190617a2f565b506060820151610f3c9060038301906013617aa9565b505050806001019050610ea5565b5050505b610f56617ad6565b6000610f9785858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613d8392505050565b9150915080610fb357610faa6064613f3f565b92505050611160565b815160009060ff16610fd857610fd183602001518460400151613fa0565b905061112c565b825160ff16600114156111285782602001515160011461101d57600080516020618ffd83398151915260405161100d906189d5565b60405180910390a1506067611123565b6000836020015160008151811061103057fe5b602090810291909101810151516001600160a01b03811660009081526004909252604090912054909150801580611091575060018082038154811061107157fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b156110cf576040516001600160a01b038316907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a261111c565b60006110de8360018403615162565b90508061111a576040516001600160a01b038416907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a25b505b6000925050505b61112c565b5060655b63ffffffff811661115157505060408051600081526020810190915291506111609050565b61115a81613f3f565b93505050505b9392505050565b60075460ff1681565b33411461118f5760405162461bcd60e51b8152600401610e1290618d6c565b3a156111ad5760405162461bcd60e51b8152600401610e1290618a5b565b82516040805182815260208084028201019091526060908280156111eb57816020015b6111d8617afa565b8152602001906001900390816111d05790505b50905060005b82811015611295576040518060c0016040528087838151811061121057fe5b60200260200101516001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b0316815260200186838151811061125257fe5b60200260200101516001600160401b03168152602001600015158152602001600081525082828151811061128257fe5b60209081029190910101526001016111f1565b5060405163d31f968d60e01b81526120009063d31f968d906112c09061100090600890600401618292565b60206040518083038186803b1580156112d857600080fd5b505afa1580156112ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113109190617fd8565b15611633578051601554818111156113b257815b818110156113b057601580548061133757fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055601680548061138a57fe5b6001900381819060005260206000200160006113a69190617b2f565b9055600101611324565b505b60005b828110156115f2578181106114da5760158482815181106113d257fe5b602090810291909101810151825460018181018555600094855293839020825160049092020180546001600160a01b039283166001600160a01b0319918216178255938301519481018054958316958516959095179094556040820151600285018054606085015160808601511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590961692909716919091179290921692909217169290921790915560a0015160039091015585516016908790839081106114a257fe5b602090810291909101810151825460018101845560009384529282902081516114d49491909101929190910190617a2f565b506115ea565b8381815181106114e657fe5b6020026020010151601582815481106114fb57fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a09091015160039091015585518690829081106115b657fe5b6020026020010151601682815481106115cb57fe5b9060005260206000200190805190602001906115e8929190617a2f565b505b6001016113b5565b507fb8e726330a0dad1cf3d04e925663b17e391f1ed547d79b7f4e5f344119b44246826040516116229190618f10565b60405180910390a150505050610e34565b6060806116408386615525565b9150915060005b6001548110156117365760006001828154811061166057fe5b90600052602060002090600402016003015490508060001461172d5760006001838154811061168b57fe5b9060005260206000209060040201600301819055506120026001600160a01b031663092193ab82600185815481106116bf57fe5b60009182526020909120600491820201546040516001600160e01b031960e086901b1681526116fa926001600160a01b039092169101618200565b6000604051808303818588803b15801561171357600080fd5b505af1158015611727573d6000803e3d6000fd5b50505050505b50600101611647565b5047156117a4577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d4760405161176c9190618f10565b60405180910390a1604051611002904780156108fc02916000818181858888f193505050501580156117a2573d6000803e3d6000fd5b505b600060038190556005558151156117bf576117bf8282615a0f565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156117fc57600080fd5b505af1158015611810573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a150505050505050565b60035481565b606881565b61200581565b33612002146118785760405162461bcd60e51b8152600401610e1290618eca565b60005b60155481101561190057816001600160a01b03166015828154811061189c57fe5b60009182526020909120600490910201546001600160a01b031614156118f8576001601582815481106118cb57fe5b9060005260206000209060040201600201601c6101000a81548160ff021916908315150217905550611900565b60010161187b565b5050565b3341146119235760405162461bcd60e51b8152600401610e1290618d6c565b60105443116119445760405162461bcd60e51b8152600401610e1290618770565b3a156119625760405162461bcd60e51b8152600401610e1290618a5b565b60005460ff166119845760405162461bcd60e51b8152600401610e12906185dd565b60006110023168056bc75e2d631000008111156119bb576119b48168056bc75e2d6310000063ffffffff6161fe16565b91506119c2565b5050611c43565b6040516309a99b4f60e41b815261100290639a99b4f0906119e99030908690600401618214565b602060405180830381600087803b158015611a0357600080fd5b505af1158015611a17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3b91906180ab565b915081611a49575050611c43565b6000805b84811015611a7757858582818110611a6157fe5b9050602002013582019150806001019050611a4d565b5080611a8557505050611c43565b6000806000805b89811015611c3b5784898983818110611aa157fe5b90506020020135880281611ab157fe5b0493508a8a82818110611ac057fe5b9050602002016020810190611ad59190617e54565b6001600160a01b03811660009081526004602052604090205490935091508115611bf1576000600180840381548110611b0a57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff1615611b7757836001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d8586604051611b6a9190618f10565b60405180910390a2611beb565b600354611b8a908663ffffffff61624016565b6003908155810154611ba2908663ffffffff61624016565b60038201556040516001600160a01b038516907fcb0aad6cf9cd03bdf6137e359f541c42f38b39f007cae8e89e88aa7d8c6617b290611be2908890618f10565b60405180910390a25b50611c33565b826001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d8585604051611c2a9190618f10565b60405180910390a25b600101611a8c565b505050505050505b5050436010555050565b6001546000908210611c6157506000611d17565b60006001600160a01b031660018381548110611c7957fe5b60009182526020909120600490910201546001600160a01b03161480611ca957506008541580611ca95750600a54155b80611cb8575060085460095410155b80611cc95750611cc782611d1c565b155b80611cf257506000600b8381548110611cde57fe5b906000526020600020906016020160000154115b80611d0657506001611d026130a5565b5111155b15611d1357506000611d17565b5060015b919050565b6001546000908210611d3057506000611d17565b600b548210611d6d5760018281548110611d4657fe5b9060005260206000209060040201600201601c9054906101000a900460ff16159050611d17565b60018281548110611d7a57fe5b9060005260206000209060040201600201601c9054906101000a900460ff16158015611dc75750600b8281548110611dae57fe5b600091825260209091206001601690920201015460ff16155b92915050565b600b54611e8b57611ddc617a00565b60015460005b81811015611e8757600b8054600181018255600091909152835160008051602061901d833981519152601690920291820190815560208086015160008051602061964c8339815191528401805460ff1916911515919091179055604086015180518794611e639360008051602061903d833981519152909101920190617a2f565b506060820151611e799060038301906013617aa9565b505050806001019050611de2565b5050505b336110011480611e9c575033612002145b611eb85760405162461bcd60e51b8152600401610e1290618614565b6001600160a01b03811660009081526004602052604090205480611edc5750611f2f565b6001810390506000600b8281548110611ef157fe5b600091825260209091206001601690920201015460ff169050611f148383615162565b8015611f1d5750805b15610e34576009805460001901905550505b50565b60015460609081906000805b82811015611f855760018181548110611f5357fe5b9060005260206000209060040201600201601c9054906101000a900460ff16611f7d576001909101905b600101611f3e565b50606081604051908082528060200260200182016040528015611fb2578160200160208202803683370190505b509050606082604051908082528060200260200182016040528015611feb57816020015b6060815260200190600190039081611fd65790505b50600b54600094509091508414156121665760005b84811015612160576001818154811061201557fe5b9060005260206000209060040201600201601c9054906101000a900460ff16612158576001818154811061204557fe5b600091825260209091206004909102015483516001600160a01b039091169084908690811061207057fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600b818154811061209d57fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156121355780601f1061210a57610100808354040283529160200191612135565b820191906000526020600020905b81548152906001019060200180831161211857829003601f168201915b505050505082858151811061214657fe5b60209081029190910101526001909301925b600101612000565b50612202565b60005b84811015612200576001818154811061217e57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166121f857600181815481106121ae57fe5b600091825260209091206004909102015483516001600160a01b03909116908490869081106121d957fe5b6001600160a01b03909216602092830291909101909101526001909301925b600101612169565b505b909450925050505b9091565b600181565b61100181565b60085481565b603881565b600881565b6060806000600e549050600080600c5411612245576015612249565b600c545b905060606122556130a5565b9050606061226282616265565b90508282511161227957909450925061220a915050565b8383835103101561228b578282510393505b83156122c15760c843046122a783838388880360008a8a6163d3565b6122bf8383838888038989038a8b8b8b5103016163d3565b505b6060836040519080825280602002602001820160405280156122ed578160200160208202803683370190505b50905060608460405190808252806020026020018201604052801561232657816020015b60608152602001906001900390816123115790505b50905060005b858110156123a75784818151811061234057fe5b602002602001015183828151811061235457fe5b60200260200101906001600160a01b031690816001600160a01b03168152505083818151811061238057fe5b602002602001015182828151811061239457fe5b602090810291909101015260010161232c565b509096509450505050509091565b60065481565b61200681565b61200081565b6001600160a01b038116600090815260046020526040812054806123ef576000915050611d17565b6000190161116081611d1c565b6001600160a01b03811660009081526004602052604081205480612424576000915050611d17565b60018082038154811061243357fe5b906000526020600020906004020160030154915050919050565b600081565b606781565b600f5481565b6012818154811061246a57fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152935090918301828280156124fb5780601f106124d0576101008083540402835291602001916124fb565b820191906000526020600020905b8154815290600101906020018083116124de57829003601f168201915b505050505081565b60105481565b6001818154811061251657fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b601081565b61100881565b6103e881565b600b81565b600c5481565b61200381565b606681565b61271081565b33612000146125c65760405162461bcd60e51b8152600401610e1290618d1d565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f389021016058383836040516125f993929190618f59565b60405180910390a1505050565b60025481565b60115481565b60145460ff1681565b600a5481565b6001600160a01b038116600090815260046020526040812054806126575760405162461bcd60e51b8152600401610e1290618ca5565b6000190192915050565b600b5461271f57612670617a00565b60015460005b8181101561271b57600b8054600181018255600091909152835160008051602061901d833981519152601690920291820190815560208086015160008051602061964c8339815191528401805460ff19169115159190911790556040860151805187946126f79360008051602061903d833981519152909101920190617a2f565b50606082015161270d9060038301906013617aa9565b505050806001019050612676565b5050505b60085461272c5760036008555b600a54612739576002600a555b600061274433612621565b905061274f81611c4d565b61276b5760405162461bcd60e51b8152600401610e1290618992565b611f2f338261652a565b600981565b61100781565b600381565b60c881565b61100681565b6040518061062001604052806105ef815260200161905d6105ef913981565b60005460ff1681565b61200281565b61300081565b6402540be40081565b60005460ff166127ef5760405162461bcd60e51b8152600401610e12906185dd565b33611007146128105760405162461bcd60e51b8152600401610e1290618a89565b61287a84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b602082015291506165c29050565b15612917576020811461289f5760405162461bcd60e51b8152600401610e1290618c5f565b604080516020601f84018190048102820181019092528281526000916128dd9185858083850183828082843760009201919091525061661b92505050565b9050606481101580156128f35750620186a08111155b61290f5760405162461bcd60e51b8152600401610e1290618882565b600255613043565b61297784848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260098152686275726e526174696f60b81b602082015291506165c29050565b15612a1a576020811461299c5760405162461bcd60e51b8152600401610e12906183fb565b604080516020601f84018190048102820181019092528281526000916129da9185858083850183828082843760009201919091525061661b92505050565b90506127106129f4600f548361624090919063ffffffff16565b1115612a125760405162461bcd60e51b8152600401610e1290618432565b600655613043565b612a8484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260138152726d61784e756d4f664d61696e7461696e696e6760681b602082015291506165c29050565b15612b1e5760208114612aa95760405162461bcd60e51b8152600401610e129061849a565b604080516020601f8401819004810282018101909252828152600091612ae79185858083850183828082843760009201919091525061661b92505050565b600c5490915080612af6575060155b808210612b155760405162461bcd60e51b8152600401610e12906187da565b50600855613043565b612b8784848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61696e7461696e536c6173685363616c6560701b602082015291506165c29050565b15612c205760208114612bac5760405162461bcd60e51b8152600401610e1290618563565b604080516020601f8401819004810282018101909252828152600091612bea9185858083850183828082843760009201919091525061661b92505050565b9050600081118015612bfc5750600a81105b612c185760405162461bcd60e51b8152600401610e1290618dfd565b600a55613043565b612c9484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601981527f6d61784e756d4f66576f726b696e6743616e6469646174657300000000000000602082015291506165c29050565b15612d235760208114612cb95760405162461bcd60e51b8152600401610e1290618517565b604080516020601f8401819004810282018101909252828152600091612cf79185858083850183828082843760009201919091525061661b92505050565b9050600d54811115612d1b5760405162461bcd60e51b8152600401610e12906188f8565b600e55613043565b612d8c84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61784e756d4f6643616e6469646174657360701b602082015291506165c29050565b15612e0e5760208114612db15760405162461bcd60e51b8152600401610e1290618ad7565b604080516020601f8401819004810282018101909252828152600091612def9185858083850183828082843760009201919091525061661b92505050565b600d819055600e54909150811015612e0857600d54600e555b50613043565b612e7284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c6e756d4f66436162696e65747360981b602082015291506165c29050565b15612f205760208114612e975760405162461bcd60e51b8152600401610e12906185a8565b604080516020601f8401819004810282018101909252828152600091612ed59185858083850183828082843760009201919091525061661b92505050565b905060008111612ef75760405162461bcd60e51b8152600401610e1290618682565b6064811115612f185760405162461bcd60e51b8152600401610e12906186ca565b600c55613043565b612f8884848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601181527073797374656d526577617264526174696f60781b602082015291506165c29050565b1561302b5760208114612fad5760405162461bcd60e51b8152600401610e1290618db9565b604080516020601f8401819004810282018101909252828152600091612feb9185858083850183828082843760009201919091525061661b92505050565b90506127106130056006548361624090919063ffffffff16565b11156130235760405162461bcd60e51b8152600401610e1290618bc0565b600f55613043565b60405162461bcd60e51b8152600401610e1290618e5a565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a8484848460405161307894939291906183c9565b60405180910390a150505050565b60046020526000908152604090205481565b68056bc75e2d6310000081565b6001546060906000805b828110156130d4576130c081611d1c565b156130cc578160010191505b6001016130af565b50606081604051908082528060200260200182016040528015613101578160200160208202803683370190505b5090506000915060005b838110156131885761311c81611d1c565b15613180576001818154811061312e57fe5b600091825260209091206004909102015482516001600160a01b039091169083908590811061315957fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508260010192505b60010161310b565b50925050505b90565b601581565b61027181565b61100281565b6013818154811061246a57fe5b60006131b96130a5565b519050600080600c54116131ce5760156131d2565b600c545b9050808211156131e0578091505b816131ea57600191505b5090565b67016345785d8a000081565b60055481565b61100381565b61200481565b60005460ff161561322f5760405162461bcd60e51b8152600401610e1290618b89565b613237617ad6565b600061325d6040518061062001604052806105ef815260200161905d6105ef9139613d83565b915091508061327e5760405162461bcd60e51b8152600401610e1290618cdc565b60005b8260200151518110156133a3576001836020015182815181106132a057fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a09093015160039093019290925591860151805191850193918590811061337657fe5b602090810291909101810151516001600160a01b0316825281019190915260400160002055600101613281565b50506103e8600255506000805460ff19166001179055565b600d5481565b601354600090815b818110156134ca576134b285858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060138054909250859150811061341a57fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156134a85780601f1061347d576101008083540402835291602001916134a8565b820191906000526020600020905b81548152906001019060200180831161348b57829003601f168201915b5050505050616620565b156134c257600192505050611dc7565b6001016133c9565b5060125460005b8181101561353b5761352286868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060128054909250859150811061341a57fe5b156135335760019350505050611dc7565b6001016134d1565b50600095945050505050565b33611001146135685760405162461bcd60e51b8152600401610e1290618e81565b600b5461362657613577617a00565b60015460005b8181101561362257600b8054600181018255600091909152835160008051602061901d833981519152601690920291820190815560208086015160008051602061964c8339815191528401805460ff19169115159190911790556040860151805187946135fe9360008051602061903d833981519152909101920190617a2f565b5060608201516136149060038301906013617aa9565b50505080600101905061357d565b5050505b600061363182616684565b905061363c81611c4d565b1561190057611900828261652a565b606581565b601181565b3341146136745760405162461bcd60e51b8152600401610e1290618d6c565b60005460ff166136965760405162461bcd60e51b8152600401610e12906185dd565b600034116136b65760405162461bcd60e51b8152600401610e12906188c9565b3a156136d45760405162461bcd60e51b8152600401610e1290618a5b565b6001600160a01b03811660009081526004602052604090205460145434919060ff1661371457610271600f556103e86006556014805460ff191660011790555b60008211801561372657506000600f54115b156137d8576000613754612710613748600f543461680790919063ffffffff16565b9063ffffffff61684116565b905080156137d6576040516110029082156108fc029083906000818181858888f1935050505015801561378b573d6000803e3d6000fd5b507f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d816040516137bb9190618f10565b60405180910390a16137d3838263ffffffff6161fe16565b92505b505b6000821180156137ea57506000600654115b1561389057600061380c6127106137486006543461680790919063ffffffff16565b9050801561388e5760405161dead9082156108fc029083906000818181858888f19350505050158015613843573d6000803e3d6000fd5b507f627059660ea01c4733a328effb2294d2f86905bf806da763a89cee254de8bee5816040516138739190618f10565b60405180910390a161388b838263ffffffff6161fe16565b92505b505b801561398e5760006001808303815481106138a757fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff161561391457836001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4846040516139079190618f10565b60405180910390a2613988565b600354613927908463ffffffff61624016565b600390815581015461393f908463ffffffff61624016565b60038201556040516001600160a01b038516907f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc0559061397f908690618f10565b60405180910390a25b50610e34565b826001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4836040516139c79190618f10565b60405180910390a2505050565b600e5481565b61100081565b61dead81565b600b81815481106139f357fe5b6000918252602091829020601691909102018054600180830154600280850180546040805161010096831615969096026000190190911692909204601f810188900488028501880190925281845293965060ff90911694919291830182828015613a9e5780601f10613a7357610100808354040283529160200191613a9e565b820191906000526020600020905b815481529060010190602001808311613a8157829003601f168201915b5050505050905083565b61100481565b6000600a5460001480613abf575082155b80613aca5750600954155b15613ad757506000613d7b565b60096000815460019003919050819055506000613b22600a5461374886613748600b8a81548110613b0457fe5b6000918252602090912060169091020154439063ffffffff6161fe16565b90506000600b8681548110613b3357fe5b906000526020600020906016020160010160006101000a81548160ff0219169083151502179055506000806110016001600160a01b0316638256ace66040518163ffffffff1660e01b8152600401604080518083038186803b158015613b9857600080fd5b505afa158015613bac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613bd091906180c3565b9150915060009350808310613d3157613be98888615162565b5060405163436aa28360e11b8152600090612002906386d5450690613c12908c90600401618200565b60206040518083038186803b158015613c2a57600080fd5b505afa158015613c3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c629190617e70565b6001600160a01b031614613cd0576040516328aa02b160e01b8152611001906328aa02b190613c99908b9087908a9060040161826f565b600060405180830381600087803b158015613cb357600080fd5b505af1158015613cc7573d6000803e3d6000fd5b50505050613d28565b6040516305bfb49960e41b815261100190635bfb499090613cf5908b90600401618200565b600060405180830381600087803b158015613d0f57600080fd5b505af1158015613d23573d6000803e3d6000fd5b505050505b60019350613d43565b818310613d4357613d4188616684565b505b6040516001600160a01b038916907fb9d38178dc641ff1817967a63c9078cbcd955a9f1fcd75e0e3636de615d44d3b90600090a25050505b949350505050565b613d8b617ad6565b6000613d95617ad6565b613d9d617b73565b613dae613da986616883565b6168a8565b90506000805b613dbd836168f2565b15613f315780613de257613dd8613dd384616913565b616961565b60ff168452613f29565b8060011415613f24576060613dfe613df985616913565b6169e1565b90508051604051908082528060200260200182016040528015613e3b57816020015b613e28617afa565b815260200190600190039081613e205790505b5085602001819052508051604051908082528060200260200182016040528015613e7957816020015b6060815260200190600190039081613e645790505b50604086015260005b8151811015613f1957613e93617afa565b60606000613eb3858581518110613ea657fe5b6020026020010151616ab2565b92509250925080613ed3578860009a509a50505050505050505050613f3a565b8289602001518581518110613ee457fe5b60200260200101819052508189604001518581518110613f0057fe5b6020026020010181905250505050806001019050613e82565b506001925050613f29565b613f31565b600101613db4565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b6060815260200190600190039081613f59579050509050613f7f8363ffffffff16616bcc565b81600081518110613f8c57fe5b602002602001018190525061116081616bdf565b6000606483511115613fd757600080516020618ffd833981519152604051613fc790618727565b60405180910390a1506066611dc7565b60005b83518110156140755760005b8181101561406c57848181518110613ffa57fe5b6020026020010151600001516001600160a01b031685838151811061401b57fe5b6020026020010151600001516001600160a01b0316141561406457600080516020618ffd83398151915260405161405190618837565b60405180910390a1606692505050611dc7565b600101613fe6565b50600101613fda565b5060608060606015805480602002602001604051908101604052809291908181526020016000905b828210156141275760008481526020908190206040805160c0810182526004860290920180546001600160a01b039081168452600180830154821685870152600283015491821693850193909352600160a01b81046001600160401b03166060850152600160e01b900460ff16151560808401526003015460a0830152908352909201910161409d565b50505050905060606016805480602002602001604051908101604052809291908181526020016000905b828210156141fc5760008481526020908190208301805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156141e85780601f106141bd576101008083540402835291602001916141e8565b820191906000526020600020905b8154815290600101906020018083116141cb57829003601f168201915b505050505081526020019060010190614151565b50505050905060005b82518110156142595782818151811061421a57fe5b60200260200101516060015160030283828151811061423557fe5b60209081029190910101516001600160401b03909116606090910152600101614205565b5060608061426989898686616c69565b915091506142778282615525565b600154604080518281526020808402820101909152929850909650600095508594509250606091508280156142b6578160200160208202803683370190505b50905060005b828110156144475760006001600160a01b03166120026001600160a01b03166386d54506600184815481106142ed57fe5b60009182526020909120600491820201546040516001600160e01b031960e085901b168152614328926001600160a01b039092169101618200565b60206040518083038186803b15801561434057600080fd5b505afa158015614354573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143789190617e70565b6001600160a01b0316146143da57600182828151811061439457fe5b602002602001019060ff16908160ff1681525050600181815481106143b557fe5b9060005260206000209060040201600301546000146143d5578360010193505b61443f565b67016345785d8a0000600182815481106143f057fe5b906000526020600020906004020160030154106144125784600101945061443f565b6001818154811061441f57fe5b90600052602060002090600402016003015460001461443f578360010193505b6001016142bc565b50606084604051908082528060200260200182016040528015614474578160200160208202803683370190505b5090506060856040519080825280602002602001820160405280156144a3578160200160208202803683370190505b5090506060866040519080825280602002602001820160405280156144d2578160200160208202803683370190505b509050606087604051908082528060200260200182016040528015614501578160200160208202803683370190505b5090506000606088604051908082528060200260200182016040528015614532578160200160208202803683370190505b509050606089604051908082528060200260200182016040528015614561578160200160208202803683370190505b50905060009a506000995060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b1580156145a957600080fd5b505afa1580156145bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145e191906180ab565b905067016345785d8a000081111561462d57600080516020618ffd83398151915260405161460e90618b48565b60405180910390a160689e505050505050505050505050505050611dc7565b60005b8a8110156149c15789818151811061464457fe5b602002602001015160ff166001141561473a576001818154811061466457fe5b906000526020600020906004020160030154600014614735576001818154811061468a57fe5b600091825260209091206004909102015484516001600160a01b039091169085908e9081106146b557fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600181815481106146e257fe5b906000526020600020906004020160030154838d8151811061470057fe5b60200260200101818152505060018a8d8151811061471a57fe5b602002602001019060ff16908160ff16815250508b6001019b505b6149b9565b67016345785d8a00006001828154811061475057fe5b906000526020600020906004020160030154106148d5576001818154811061477457fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316898e815181106147a557fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be400600183815481106147da57fe5b906000526020600020906004020160030154816147f357fe5b066001838154811061480157fe5b90600052602060002090600402016003015403905061482983826161fe90919063ffffffff16565b898f8151811061483557fe5b6020026020010181815250506001828154811061484e57fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316878f8151811061487f57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081888f815181106148ac57fe5b60209081029190910101526148c7868263ffffffff61624016565b95508d6001019d50506149b9565b600181815481106148e257fe5b9060005260206000209060040201600301546000146149b9576001818154811061490857fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316848d8151811061493957fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506001818154811061496657fe5b906000526020600020906004020160030154838d8151811061498457fe5b60200260200101818152505060008a8d8151811061499e57fe5b602002602001019060ff16908160ff16815250508b6001019b505b600101614630565b5060008415614c37576002546040516303702b2960e51b815261100491636e0565209188916149fb918e918e918d91420190600401618331565b6020604051808303818588803b158015614a1457600080fd5b505af193505050508015614a45575060408051601f3d908101601f19168201909252614a4291810190617fd8565b60015b614bbc576040516000815260443d1015614a6157506000614afc565b60046000803e60005160e01c6308c379a08114614a82576000915050614afc565b60043d036004833e81513d60248201116001600160401b0382111715614aad57600092505050614afc565b80830180516001600160401b03811115614ace576000945050505050614afc565b8060208301013d8601811115614aec57600095505050505050614afc565b601f01601f191660405250925050505b80614b075750614b49565b60019150857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf28082604051614b3b91906183b6565b60405180910390a250614bb7565b3d808015614b73576040519150601f19603f3d011682016040523d82523d6000602084013e614b78565b606091505b5060019150857fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a4582604051614bad91906183b6565b60405180910390a2505b614c37565b8015614bfe577fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b7086604051614bf19190618f10565b60405180910390a1614c35565b857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280604051614c2c906184e0565b60405180910390a25b505b8015614ded5760005b8751811015614deb576000888281518110614c5757fe5b60200260200101519050600060018281548110614c7057fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc9185908110614ca157fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f1935050505090508015614d5d5760018281548110614ce257fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d9185908110614d3157fe5b906000526020600020906004020160030154604051614d509190618f10565b60405180910390a2614de1565b60018281548110614d6a57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d9185908110614db957fe5b906000526020600020906004020160030154604051614dd89190618f10565b60405180910390a25b5050600101614c40565b505b835115614fe35760005b8451811015614fe1578a8181518110614e0c57fe5b602002602001015160ff1660011415614eab576120026001600160a01b031663092193ab858381518110614e3c57fe5b6020026020010151878481518110614e5057fe5b60200260200101516040518363ffffffff1660e01b8152600401614e749190618200565b6000604051808303818588803b158015614e8d57600080fd5b505af1158015614ea1573d6000803e3d6000fd5b5050505050614fd9565b6000858281518110614eb957fe5b60200260200101516001600160a01b03166108fc868481518110614ed957fe5b60200260200101519081150290604051600060405180830381858888f1935050505090508015614f6f57858281518110614f0f57fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d868481518110614f4d57fe5b6020026020010151604051614f629190618f10565b60405180910390a2614fd7565b858281518110614f7b57fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d868481518110614fb957fe5b6020026020010151604051614fce9190618f10565b60405180910390a25b505b600101614df7565b505b5050505050505050505050505060005b600154811015615050576001818154811061500a57fe5b9060005260206000209060040201600301546000146150485760006001828154811061503257fe5b9060005260206000209060040201600301819055505b600101614ff3565b5047156150be577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d476040516150869190618f10565b60405180910390a1604051611002904780156108fc02916000818181858888f193505050501580156150bc573d6000803e3d6000fd5b505b600060038190556005558151156150d9576150d98282615a0f565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561511657600080fd5b505af115801561512a573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a1506000949350505050565b6000806001838154811061517257fe5b9060005260206000209060040201600301549050600060018080549050039050600161519c6130a5565b51116151d1576000600185815481106151b157fe5b906000526020600020906004020160030181905550600092505050611dc7565b846001600160a01b03167f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a708360405161520a9190618f10565b60405180910390a26001600160a01b038516600090815260046020526040812055835b600154600019018110156153f7576001816001018154811061524b57fe5b90600052602060002090600402016001828154811061526657fe5b60009182526020909120825460049092020180546001600160a01b03199081166001600160a01b0393841617825560018085015481840180548416918616919091179055600280860180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b19909416939093179055600392830154920191909155600b80549091830190811061532757fe5b9060005260206000209060160201600b828154811061534257fe5b600091825260209091208254601690920201908155600180830154818301805460ff909216151560ff1990921691909117905560028084018054615399938386019390821615610100026000190190911604617b93565b506153ac60038281019084016013617c08565b509050508060010160046000600184815481106153c557fe5b600091825260208083206004909202909101546001600160a01b0316835282019290925260400190205560010161522d565b50600180548061540357fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b80548061545657fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906154886002830182617b2f565b615496600383016000617c32565b5050905560008183816154a557fe5b04905080156155195760015460005b81811015615516576154ed83600183815481106154cd57fe5b90600052602060002090600402016003015461624090919063ffffffff16565b600182815481106154fa57fe5b60009182526020909120600360049092020101556001016154b4565b50505b50600195945050505050565b6060806000808080806155366131af565b6001549091505b801561576857600181039250600b838154811061555657fe5b600091825260209091206001601690920201015460ff166155765761575f565b6001838154811061558357fe5b600091825260208220600490910201546001600160a01b031695506155ad90869085908590613aae565b9350836155b95761575f565b60405163436aa28360e11b81526000908190612002906386d54506906155e3908a90600401618200565b60206040518083038186803b1580156155fb57600080fd5b505afa15801561560f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906156339190617e70565b90506001600160a01b038116156156bc576040516302ceee9160e11b81526120029063059ddd2290615669908490600401618200565b60206040518083038186803b15801561568157600080fd5b505afa158015615695573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906156b99190617e70565b91505b60005b8c5181101561575b57876001600160a01b03168d82815181106156de57fe5b6020026020010151600001516001600160a01b031614806157275750826001600160a01b03168d828151811061571057fe5b6020026020010151600001516001600160a01b0316145b156157535760018d828151811061573a57fe5b602090810291909101015190151560809091015261575b565b6001016156bf565b5050505b6000190161553d565b5060005b89518110156157d55789818151811061578157fe5b602002602001015160800151806157c1575060006001600160a01b03168a82815181106157aa57fe5b6020026020010151600001516001600160a01b0316145b156157cd578560010195505b60010161576c565b50885185106158bd5760408051600180825281830190925290816020015b6157fb617afa565b8152602001906001900390816157f3575050604080516001808252818301909252919850602082015b60608152602001906001900390816158245790505095508860008151811061584857fe5b60200260200101518760008151811061585d57fe5b60200260200101819052508760008151811061587557fe5b60200260200101518660008151811061588a57fe5b60200260200101819052506000876000815181106158a457fe5b6020908102919091010151901515608090910152615a02565b848951036040519080825280602002602001820160405280156158fa57816020015b6158e7617afa565b8152602001906001900390816158df5790505b5096508489510360405190808252806020026020018201604052801561593457816020015b606081526020019060019003908161591f5790505b5095506000915060005b8951811015615a005789818151811061595357fe5b602002602001015160800151158015615996575060006001600160a01b03168a828151811061597e57fe5b6020026020010151600001516001600160a01b031614155b156159f8578981815181106159a757fe5b60200260200101518884815181106159bb57fe5b60200260200101819052508881815181106159d257fe5b60200260200101518784815181106159e657fe5b60200260200101819052508260010192505b60010161593e565b505b50505050505b9250929050565b600154825160005b82811015615b2c576001615a29617afa565b60018381548110615a3657fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b84811015615b0057878181518110615ac657fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b03161415615af85760009250615b00565b600101615ab2565b508115615b225780516001600160a01b03166000908152600460205260408120555b5050600101615a17565b5080821115615beb57805b82811015615be9576001805480615b4a57fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b805480615b9d57fe5b60008281526020812060166000199093019283020181815560018101805460ff1916905590615bcf6002830182617b2f565b615bdd600383016000617c32565b50509055600101615b37565b505b6000818310615bfa5781615bfc565b825b905060005b81811015615fa057615cae868281518110615c1857fe5b602002602001015160018381548110615c2d57fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a0820152617035565b615e62578060010160046000888481518110615cc657fe5b6020026020010151600001516001600160a01b03166001600160a01b0316815260200190815260200160002081905550858181518110615d0257fe5b602002602001015160018281548110615d1757fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a0909101516003909101558451859082908110615dd257fe5b6020026020010151600b8281548110615de757fe5b90600052602060002090601602016002019080519060200190615e0b929190617a2f565b506000600b8281548110615e1b57fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b805483908110615e4c57fe5b6000918252602090912060169091020155615f98565b858181518110615e6e57fe5b60200260200101516060015160018281548110615e8757fe5b906000526020600020906004020160020160146101000a8154816001600160401b0302191690836001600160401b03160217905550615f4d858281518110615ecb57fe5b6020026020010151600b8381548110615ee057fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156134a85780601f1061347d576101008083540402835291602001916134a8565b615f9857848181518110615f5d57fe5b6020026020010151600b8281548110615f7257fe5b90600052602060002090601602016002019080519060200190615f96929190617a2f565b505b600101615c01565b508282111561617857615fb1617a00565b835b8381101561617557858181518110615fc757fe5b602002602001015182604001819052506001878281518110615fe557fe5b6020908102919091018101518254600181810185556000948552838520835160049093020180546001600160a01b039384166001600160a01b0319918216178255848601518284018054918616918316919091179055604080860151600284018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909a1692909616919091179290921696909617169190911790935560a090930151600390930192909255600b805492830181559093528451601690910260008051602061901d83398151915281019182558583015160008051602061964c8339815191528201805491151560ff199092169190911790559285015180518694929361611b9360008051602061903d83398151915201920190617a2f565b5060608201516161319060038301906013617aa9565b505050806001016004600089848151811061614857fe5b602090810291909101810151516001600160a01b0316825281019190915260400160002055600101615fb3565b50505b616180617091565b616188617279565b6000600981905560015493505b838110156161f6576000600b82815481106161ac57fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b8054839081106161dd57fe5b6000918252602090912060169091020155600101616195565b505050505050565b600061116083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250617467565b6000828201838110156111605760405162461bcd60e51b8152600401610e129061864b565b6001548151604080518281526020808402820101909152606092919083908280156162a457816020015b606081526020019060019003908161628f5790505b50600b5490915083146162bb579250611d17915050565b60005b828110156163ca57600b6001600460008985815181106162da57fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054038154811061630e57fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156163a65780601f1061637b576101008083540402835291602001916163a6565b820191906000526020600020905b81548152906001019060200180831161638957829003601f168201915b50505050508282815181106163b757fe5b60209081029190910101526001016162be565b50949350505050565b60005b8281101561652057600082878388016040516020016163f69291906181f2565b6040516020818303038152906040528051906020012060001c8161641657fe5b06905080850182870114616517576000898388018151811061643457fe5b602002602001015190506060898489018151811061644e57fe5b602002602001015190508a8388018151811061646657fe5b60200260200101518b858a018151811061647c57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050818b848901815181106164ab57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505089838801815181106164d957fe5b60200260200101518a858a01815181106164ef57fe5b6020026020010181905250808a8489018151811061650957fe5b602002602001018190525050505b506001016163d6565b5050505050505050565b600980546001908101909155600b80548390811061654457fe5b906000526020600020906016020160010160006101000a81548160ff02191690831515021790555043600b828154811061657a57fe5b600091825260208220601690910201919091556040516001600160a01b038416917ff62981a567ec3cec866c6fa93c55bcdf841d6292d18b8d522ececa769375d82d91a25050565b6000816040516020016165d591906181d6565b60405160208183030381529060405280519060200120836040516020016165fc91906181d6565b6040516020818303038152906040528051906020012014905092915050565b015190565b81518151600091600191811480831461663c576000925061667a565b600160208701838101602088015b6002848385100114156166755780518351146166695760009650600093505b6020928301920161664a565b505050505b5090949350505050565b6001600160a01b038116600090815260046020526040812054806166ad57506000199050611d17565b6001810390506000600182815481106166c257fe5b90600052602060002090600402016003015490506000600183815481106166e557fe5b6000918252602090912060036004909202010155600154604051600019909101906001600160a01b038616907f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d9061673e908590618f10565b60405180910390a28061675657829350505050611d17565b600081838161676157fe5b04905080156167fd5760005b848110156167af5761678682600183815481106154cd57fe5b6001828154811061679357fe5b600091825260209091206003600490920201015560010161676d565b50600180549085015b818110156167fa576167d183600183815481106154cd57fe5b600182815481106167de57fe5b60009182526020909120600360049092020101556001016167b8565b50505b5091949350505050565b60008261681657506000611dc7565b8282028284828161682357fe5b04146111605760405162461bcd60e51b8152600401610e1290618a1a565b600061116083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250617493565b61688b617c41565b506040805180820190915281518152602082810190820152919050565b6168b0617b73565b6168b9826174ca565b6168c257600080fd5b60006168d18360200151617504565b60208085015160408051808201909152868152920190820152915050919050565b60006168fc617c41565b505080518051602091820151919092015191011190565b61691b617c41565b616924826168f2565b61692d57600080fd5b6020820151600061693d82617567565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061697657508151602110155b61697f57600080fd5b600061698e8360200151617504565b905080836000015110156169b45760405162461bcd60e51b8152600401610e1290618c28565b8251602080850151830180519284900392918310156163ca57506020919091036101000a90049392505050565b60606169ec826174ca565b6169f557600080fd5b6000616a0083617648565b9050606081604051908082528060200260200182016040528015616a3e57816020015b616a2b617c41565b815260200190600190039081616a235790505b5090506000616a508560200151617504565b60208601510190506000805b84811015616aa757616a6d83617567565b9150604051806040016040528083815260200184815250848281518110616a9057fe5b602090810291909101015291810191600101616a5c565b509195945050505050565b616aba617afa565b60606000616ac6617afa565b6060616ad0617b73565b616ad9876168a8565b90506000805b616ae8836168f2565b15616bbd5780616b1357616b03616afe84616913565b6176a4565b6001600160a01b03168552616bb5565b8060011415616b3b57616b28616afe84616913565b6001600160a01b03166020860152616bb5565b8060021415616b6357616b50616afe84616913565b6001600160a01b03166040860152616bb5565b8060031415616b8f57616b78613dd384616913565b6001600160401b0316606086015260019150616bb5565b8060041415616bb057616ba9616ba484616913565b6176be565b9350616bb5565b616bbd565b600101616adf565b50929791965091945092505050565b6060611dc7616bda8361772e565b617814565b6060815160001415616c005750604080516000815260208101909152611d17565b606082600081518110616c0f57fe5b602002602001015190506000600190505b8351811015616c5057616c4682858381518110616c3957fe5b6020026020010151617866565b9150600101616c20565b50611160616c63825160c060ff166178e3565b82617866565b60608060006120026001600160a01b031663c473318f6040518163ffffffff1660e01b815260040160206040518083038186803b158015616ca957600080fd5b505afa158015616cbd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190616ce191906180ab565b90508085518851011015616cf6575083518651015b606081604051908082528060200260200182016040528015616d3257816020015b616d1f617afa565b815260200190600190039081616d175790505b509050606082604051908082528060200260200182016040528015616d6b57816020015b6060815260200190600190039081616d565790505b50905060008060005b8b51831080616d835750895182105b8015616d8e57508581105b15617023578b51831415616dfe57898281518110616da857fe5b6020026020010151858281518110616dbc57fe5b6020026020010181905250888281518110616dd357fe5b6020026020010151848281518110616de757fe5b602090810291909101015260019182019101616d74565b8951821415616e69578b8381518110616e1357fe5b6020026020010151858281518110616e2757fe5b60200260200101819052508a8381518110616e3e57fe5b6020026020010151848281518110616e5257fe5b602090810291909101015260019283019201616d74565b898281518110616e7557fe5b6020026020010151606001516001600160401b03168c8481518110616e9657fe5b6020026020010151606001516001600160401b03161115616f12578b8381518110616ebd57fe5b6020026020010151858281518110616ed157fe5b60200260200101819052508a8381518110616ee857fe5b6020026020010151848281518110616efc57fe5b602002602001018190525082600101925061701b565b898281518110616f1e57fe5b6020026020010151606001516001600160401b03168c8481518110616f3f57fe5b6020026020010151606001516001600160401b03161015616fbb57898281518110616f6657fe5b6020026020010151858281518110616f7a57fe5b6020026020010181905250888281518110616f9157fe5b6020026020010151848281518110616fa557fe5b602002602001018190525081600101915061701b565b898281518110616fc757fe5b6020026020010151600001516001600160a01b03168c8481518110616fe857fe5b6020026020010151600001516001600160a01b0316101561700f578b8381518110616ebd57fe5b898281518110616da857fe5b600101616d74565b50929a91995090975050505050505050565b805182516000916001600160a01b03918216911614801561706f575081602001516001600160a01b031683602001516001600160a01b0316145b80156111605750506040908101519101516001600160a01b0390811691161490565b601254601354808211156170dc57805b828110156170da5760128054806170b457fe5b6001900381819060005260206000200160006170d09190617b2f565b90556001016170a1565b505b60008183106170eb57816170ed565b825b905060005b81811015617205576171aa6012828154811061710a57fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156171985780601f1061716d57610100808354040283529160200191617198565b820191906000526020600020905b81548152906001019060200180831161717b57829003601f168201915b50505050506013838154811061341a57fe5b6171fd57601381815481106171bb57fe5b90600052602060002001601282815481106171d257fe5b9060005260206000200190805460018160011615610100020316600290046171fb929190617b93565b505b6001016170f2565b5082821115610e3457825b828110156172735760126013828154811061722757fe5b600091825260208083208454600181810187559585529190932092909101805461726a949390920192909160026101009282161592909202600019011604617b93565b50600101617210565b50505050565b601354600b54808211156172c457805b828110156172c257601380548061729c57fe5b6001900381819060005260206000200160006172b89190617b2f565b9055600101617289565b505b60008183106172d357816172d5565b825b905060005b818110156173f457617392601382815481106172f257fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156173805780601f1061735557610100808354040283529160200191617380565b820191906000526020600020905b81548152906001019060200180831161736357829003601f168201915b5050505050600b8381548110615ee057fe5b6173ec57600b81815481106173a357fe5b9060005260206000209060160201600201601382815481106173c157fe5b9060005260206000200190805460018160011615610100020316600290046173ea929190617b93565b505b6001016172da565b5082821115610e3457825b82811015617273576013600b828154811061741657fe5b60009182526020808320845460018082018755958552919093206016929092029092016002908101805461745e95939094019390926000199082161561010002011604617b93565b506001016173ff565b6000818484111561748b5760405162461bcd60e51b8152600401610e1291906183b6565b505050900390565b600081836174b45760405162461bcd60e51b8152600401610e1291906183b6565b5060008385816174c057fe5b0495945050505050565b80516000906174db57506000611d17565b6020820151805160001a9060c08210156174fa57600092505050611d17565b5060019392505050565b8051600090811a608081101561751e576000915050611d17565b60b8811080617539575060c08110801590617539575060f881105b15617548576001915050611d17565b60c081101561755c5760b519019050611d17565b60f519019050611d17565b80516000908190811a60808110156175825760019150617641565b60b881101561759757607e1981019150617641565b60c08110156175e857600060b78203600186019550806020036101000a8651049150600181018201935050808310156175e25760405162461bcd60e51b8152600401610e1290618967565b50617641565b60f88110156175fd5760be1981019150617641565b600060f78203600186019550806020036101000a86510491506001810182019350508083101561763f5760405162461bcd60e51b8152600401610e1290618967565b505b5092915050565b805160009061765957506000611d17565b6000809050600061766d8460200151617504565b602085015185519181019250015b8082101561769b5761768c82617567565b8201915082600101925061767b565b50909392505050565b80516000906015146176b557600080fd5b611dc782616961565b80516060906176cc57600080fd5b60006176db8360200151617504565b83516040805191839003808352601f19601f8201168301602001909152919250606090828015617712576020820181803683370190505b50905060008160200190506163ca8487602001510182856179b5565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff19841661777257506018617796565b6fffffffffffffffffffffffffffffffff19841661779257506010617796565b5060005b60208110156177cc578181815181106177ab57fe5b01602001516001600160f81b031916156177c4576177cc565b600101617796565b60008160200390506060816040519080825280601f01601f191660200182016040528015617801576020820181803683370190505b5080830196909652508452509192915050565b6060815160011480156178465750607f60f81b8260008151811061783457fe5b01602001516001600160f81b03191611155b15617852575080611d17565b611dc76178648351608060ff166178e3565b835b6060806040519050835180825260208201818101602087015b8183101561789757805183526020928301920161787f565b50855184518101855292509050808201602086015b818310156178c45780518352602092830192016178ac565b508651929092011591909101601f01601f191660405250905092915050565b606068010000000000000000831061790d5760405162461bcd60e51b8152600401610e12906187b2565b604080516001808252818301909252606091602082018180368337019050509050603784116179675782840160f81b8160008151811061794957fe5b60200101906001600160f81b031916908160001a9053509050611dc7565b60606179728561772e565b90508381510160370160f81b8260008151811061798b57fe5b60200101906001600160f81b031916908160001a9053506179ac8282617866565b95945050505050565b806179bf57610e34565b5b602081106179df578251825260209283019290910190601f19016179c0565b915181516020939093036101000a6000190180199091169216919091179052565b60405180608001604052806000815260200160001515815260200160608152602001617a2a617c5b565b905290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10617a7057805160ff1916838001178555617a9d565b82800160010185558215617a9d579182015b82811115617a9d578251825591602001919060010190617a82565b506131ea929150617c7a565b8260138101928215617a9d5791602002820182811115617a9d578251825591602001919060010190617a82565b6040518060600160405280600060ff16815260200160608152602001606081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b50805460018160011615610100020316600290046000825580601f10617b555750611f2f565b601f016020900490600052602060002090810190611f2f9190617c7a565b6040518060400160405280617b86617c41565b8152602001600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10617bcc5780548555617a9d565b82800160010185558215617a9d57600052602060002091601f016020900482015b82811115617a9d578254825591600101919060010190617bed565b8260138101928215617a9d5791820182811115617a9d578254825591600101919060010190617bed565b50611f2f906013810190617c7a565b604051806040016040528060008152602001600081525090565b6040518061026001604052806013906020820280368337509192915050565b61318e91905b808211156131ea5760008155600101617c80565b8035611dc781618fe7565b60008083601f840112617cb0578182fd5b5081356001600160401b03811115617cc6578182fd5b6020830191508360208083028501011115615a0857600080fd5b6000601f8381840112617cf1578182fd5b8235617d04617cff82618f9c565b618f76565b818152925060208084019085810160005b84811015617d96578135880189603f820112617d3057600080fd5b838101356001600160401b03811115617d4857600080fd5b617d59818901601f19168601618f76565b81815260408c81848601011115617d6f57600080fd5b82818501888401375060009181018601919091528552509282019290820190600101617d15565b50505050505092915050565b600082601f830112617db2578081fd5b8135617dc0617cff82618f9c565b818152915060208083019084810181840286018201871015617de157600080fd5b6000805b85811015617d965782356001600160401b0381168114617e03578283fd5b85529383019391830191600101617de5565b60008083601f840112617e26578182fd5b5081356001600160401b03811115617e3c578182fd5b602083019150836020828501011115615a0857600080fd5b600060208284031215617e65578081fd5b813561116081618fe7565b600060208284031215617e81578081fd5b815161116081618fe7565b60008060008060408587031215617ea1578283fd5b84356001600160401b0380821115617eb7578485fd5b617ec388838901617c9f565b90965094506020870135915080821115617edb578384fd5b50617ee887828801617c9f565b95989497509550505050565b600080600060608486031215617f08578283fd5b83356001600160401b0380821115617f1e578485fd5b81860187601f820112617f2f578586fd5b80359250617f3f617cff84618f9c565b80848252602080830192508084018b828389028701011115617f5f57898afd5b8994505b86851015617f8957617f758c82617c94565b845260019490940193928101928101617f63565b509097508801359350505080821115617fa0578384fd5b617fac87838801617da2565b93506040860135915080821115617fc1578283fd5b50617fce86828701617ce0565b9150509250925092565b600060208284031215617fe9578081fd5b81518015158114611160578182fd5b6000806020838503121561800a578182fd5b82356001600160401b0381111561801f578283fd5b61802b85828601617e15565b90969095509350505050565b6000806000806040858703121561804c578384fd5b84356001600160401b0380821115618062578586fd5b61806e88838901617e15565b90965094506020870135915080821115618086578384fd5b50617ee887828801617e15565b6000602082840312156180a4578081fd5b5035919050565b6000602082840312156180bc578081fd5b5051919050565b600080604083850312156180d5578182fd5b505080516020909101519092909150565b6000806000604084860312156180fa578081fd5b833560ff8116811461810a578182fd5b925060208401356001600160401b03811115618124578182fd5b61813086828701617e15565b9497909650939450505050565b6000815180845260208085019450808401835b838110156181755781516001600160a01b031687529582019590820190600101618150565b509495945050505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b600081518084526181c2816020860160208601618fbb565b601f01601f19169290920160200192915050565b600082516181e8818460208701618fbb565b9190910192915050565b918252602082015260400190565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b03968716815294861660208601529290941660408401526001600160401b03166060830152911515608082015260a081019190915260c00190565b6001600160a01b0393909316835260208301919091521515604082015260600190565b6001600160a01b0392909216825260ff16602082015260400190565b600060208252611160602083018461813d565b6000604082526182d4604083018561813d565b602083820381850152818551808452828401915082838202850101838801865b8381101561832257601f198784030185526183108383516181aa565b948601949250908501906001016182f4565b50909998505050505050505050565b600060808252618344608083018761813d565b828103602084810191909152865180835287820192820190845b8181101561837a5784518352938301939183019160010161835e565b5050848103604086015261838e818861813d565b93505050506001600160401b038316606083015295945050505050565b901515815260200190565b60006020825261116060208301846181aa565b6000604082526183dd604083018688618180565b82810360208401526183f0818587618180565b979650505050505050565b6020808252601c908201527f6c656e677468206f66206275726e526174696f206d69736d6174636800000000604082015260600190565b60208082526042908201527f746865206275726e526174696f20706c75732073797374656d5265776172645260408201527f6174696f206d757374206265206e6f2067726561746572207468616e20313030606082015261030360f41b608082015260a00190565b60208082526026908201527f6c656e677468206f66206d61784e756d4f664d61696e7461696e696e67206d696040820152650e6dac2e8c6d60d31b606082015260800190565b6020808252601b908201527f6261746368207472616e736665722072657475726e2066616c73650000000000604082015260600190565b6020808252602c908201527f6c656e677468206f66206d61784e756d4f66576f726b696e6743616e6469646160408201526b0e8cae640dad2e6dac2e8c6d60a31b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61696e7461696e536c6173685363616c65206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252818101527f6c656e677468206f66206e756d4f66436162696e657473206d69736d61746368604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252601f908201527f6f6e6c7920736c617368206f72207374616b6548756220636f6e747261637400604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526028908201527f746865206e756d4f66436162696e657473206d75737420626520677265617465604082015267072207468616e20360c41b606082015260800190565b60208082526039908201527f746865206e756d4f66436162696e657473206d757374206265206c657373207460408201527f68616e204d41585f4e554d5f4f465f56414c494441544f525300000000000000606082015260800190565b60208082526029908201527f746865206e756d626572206f662076616c696461746f727320657863656564206040820152681d1a19481b1a5b5a5d60ba1b606082015260800190565b60208082526022908201527f63616e206e6f7420646f207468697320747769636520696e206f6e6520626c6f604082015261636b60f01b606082015260800190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526037908201527f746865206d61784e756d4f664d61696e7461696e696e67206d7573742062652060408201527f6c657373207468616e206e756d4f66436162696e657473000000000000000000606082015260800190565b6020808252602b908201527f6475706c696361746520636f6e73656e7375732061646472657373206f66207660408201526a185b1a59185d1bdc94d95d60aa1b606082015260800190565b60208082526027908201527f7468652065787069726554696d655365636f6e64476170206973206f7574206f604082015266662072616e676560c81b606082015260800190565b6020808252601590820152746465706f7369742076616c7565206973207a65726f60581b604082015260600190565b60208082526049908201527f746865206d61784e756d4f66576f726b696e6743616e64696461746573206d7560408201527f7374206265206e6f742067726561746572207468616e206d61784e756d4f6643606082015268616e6469646174657360b81b608082015260a00190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b60208082526023908201527f63616e206e6f7420656e7465722054656d706f72617279204d61696e74656e616040820152626e636560e81b606082015260800190565b60208082526025908201527f6c656e677468206f66206a61696c2076616c696461746f7273206d757374206260408201526465206f6e6560d81b606082015260800190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61784e756d4f6643616e64696461746573206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252601290820152716e6f7420696e206d61696e74656e616e636560701b604082015260600190565b60208082526021908201527f666565206973206c6172676572207468616e2044555354595f494e434f4d494e6040820152604760f81b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b60208082526042908201527f7468652073797374656d526577617264526174696f20706c7573206275726e5260408201527f6174696f206d757374206265206e6f2067726561746572207468616e20313030606082015261030360f41b608082015260a00190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526026908201527f6c656e677468206f662065787069726554696d655365636f6e64476170206d696040820152650e6dac2e8c6d60d31b606082015260800190565b60208082526017908201527f6f6e6c792063757272656e742076616c696461746f7273000000000000000000604082015260600190565b60208082526021908201527f6661696c656420746f20706172736520696e69742076616c696461746f7253656040820152601d60fa1b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b60208082526024908201527f6c656e677468206f662073797374656d526577617264526174696f206d69736d6040820152630c2e8c6d60e31b606082015260800190565b6020808252603e908201527f746865206d61696e7461696e536c6173685363616c65206d757374206265206760408201527f726561746572207468616e203020616e64206c657373207468616e2031300000606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b60208082526029908201527f746865206d6573736167652073656e646572206d75737420626520736c6173686040820152680818dbdb9d1c9858dd60ba1b606082015260800190565b6020808252601f908201527f746865206d73672073656e646572206d757374206265207374616b6548756200604082015260600190565b61ffff91909116815260200190565b90815260200190565b60008482528315156020830152606060408301526179ac60608301846181aa565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff85168252604060208301526179ac604083018486618180565b6040518181016001600160401b0381118282101715618f9457600080fd5b604052919050565b60006001600160401b03821115618fb1578081fd5b5060209081020190565b60005b83811015618fd6578181015183820152602001618fbe565b838111156172735750506000910152565b6001600160a01b0381168114611f2f57600080fdfe70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb20175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbbf905ec80f905e8f846942a7cdd959bfe8d9487b2a43b33565295a698f7e294b6a7edd747c0554875d3fc531d19ba1497992c5e941ff80f3f7f110ffd8920a3ac38fdef318fe94a3f86048c27395000f846946488aa4d1955ee33403f8ccb1d4de5fb97c7ade294220f003d8bdfaadf52aa1e55ae4cc485e6794875941a87e90e440a39c99aa9cb5cea0ad6a3f0b2407b86048c27395000f846949ef9f4360c606c7ab4db26b016007d3ad0ab86a0946103af86a874b705854033438383c82575f25bc29418e2db06cbff3e3c5f856410a1838649e760175786048c27395000f84694ee01c3b1283aa067c58eab4709f85e99d46de5fe94ee4b9bfb1871c64e2bcabb1dc382dc8b7c4218a29415904ab26ab0e99d70b51c220ccdcccabee6e29786048c27395000f84694685b1ded8013785d6623cc18d214320b6bb6475994a20ef4e5e4e7e36258dbf51f4d905114cb1b34bc9413e39085dc88704f4394d35209a02b1a9520320c86048c27395000f8469478f3adfc719c99674c072166708589033e2d9afe9448a30d5eaa7b64492a160f139e2da2800ec3834e94055838358c29edf4dcc1ba1985ad58aedbb6be2b86048c27395000f84694c2be4ec20253b8642161bc3f444f53679c1f3d479466f50c616d737e60d7ca6311ff0d9c434197898a94d1d678a2506eeaa365056fe565df8bc8659f28b086048c27395000f846942f7be8361c80a4c1e7e9aaf001d0877f1cfde218945f93992ac37f3e61db2ef8a587a436a161fd210b94ecbc4fb1a97861344dad0867ca3cba2b860411f086048c27395000f84694ce2fd7544e0b2cc94692d4a704debef7bcb613289444abc67b4b2fba283c582387f54c9cba7c34bafa948acc2ab395ded08bb75ce85bf0f95ad2abc51ad586048c27395000f84694b8f7166496996a7da21cf1f1b04d9b3e26a3d077946770572763289aac606e4f327c2f6cc1aa3b3e3b94882d745ed97d4422ca8da1c22ec49d880c4c097286048c27395000f846942d4c407bbe49438ed859fe965b140dcf1aab71a9943ad0939e120f33518fbba04631afe7a3ed6327b194b2bbb170ca4e499a2b0f3cc85ebfa6e8c4dfcbea86048c27395000f846946bbad7cf34b5fa511d8e963dbba288b1960e75d694853b0f6c324d1f4e76c8266942337ac1b0af1a229442498946a51ca5924552ead6fc2af08b94fcba648601d1a94a2000f846944430b3230294d12c6ab2aac5c2cd68e80b16b581947b107f4976a252a6939b771202c28e64e03f52d694795811a7f214084116949fc4f53cedbf189eeab28601d1a94a2000f84694ea0a6e3c511bbd10f4519ece37dc24887e11b55d946811ca77acfb221a49393c193f3a22db829fcc8e9464feb7c04830dd9ace164fc5c52b3f5a29e5018a8601d1a94a2000f846947ae2f5b9e386cd1b50a4550696d957cb4900f03a94e83bcc5077e6b873995c24bac871b5ad856047e19464e48d4057a90b233e026c1041e6012ada897fe88601d1a94a2000f8469482012708dafc9e1b880fd083b32182b869be8e09948e5adc73a2d233a1b496ed3115464dd6c7b887509428b383d324bc9a37f4e276190796ba5a8947f5ed8601d1a94a2000f8469422b81f8e175ffde54d797fe11eb03f9e3bf75f1d94a1c3ef7ca38d8ba80cce3bfc53ebd2903ed21658942767f7447f7b9b70313d4147b795414aecea54718601d1a94a2000f8469468bf0b8b6fb4e317a0f9d6f03eaf8ce6675bc60d94675cfe570b7902623f47e7f59c9664b5f5065dcf94d84f0d2e50bcf00f2fc476e1c57f5ca2d57f625b8601d1a94a2000f846948c4d90829ce8f72d0163c1d5cf348a862d5506309485c42a7b34309bee2ed6a235f86d16f059deec5894cc2cedc53f0fa6d376336efb67e43d167169f3b78601d1a94a2000f8469435e7a025f4da968de7e4d7e4004197917f4070f194b1182abaeeb3b4d8eba7e6a4162eac7ace23d57394c4fd0d870da52e73de2dd8ded19fe3d26f43a1138601d1a94a2000f84694d6caa02bbebaebb5d7e581e4b66559e635f805ff94c07335cf083c1c46a487f0325769d88e163b653694efaff03b42e41f953a925fc43720e45fb61a19938601d1a94a20000175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbaa164736f6c6343000604000a", + }, + { + ContractAddr: SlashContract, + CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/b743ce3f1f1e94c349b175cd6593bc263463b33b", + Code: "608060405234801561001057600080fd5b506004361061035d5760003560e01c80637942fd05116101d3578063c80d4b8f11610104578063df8079e9116100a2578063f9a2bbc71161007c578063f9a2bbc714610601578063fc3e590814610609578063fc4333cd14610611578063fd6a6879146106195761035d565b8063df8079e9146105e9578063e1c7392a146105f1578063f1fad104146105f95761035d565b8063c96be4cb116100de578063c96be4cb146105b3578063cc844b73146105c6578063dc927faf146105d9578063dcc6f156146105e15761035d565b8063c80d4b8f14610590578063c81b166214610598578063c8509d81146105a05761035d565b8063a1a11bf511610171578063aad560631161014b578063aad5606314610565578063ab51bb961461056d578063ac0af62914610575578063ac4317511461057d5761035d565b8063a1a11bf51461054d578063a78abc1614610555578063aa82dce11461055d5761035d565b8063831d65d1116101ad578063831d65d11461052257806396713da9146105355780639dc092621461053d5780639f804f5f146105455761035d565b80637942fd051461050a5780637e434d54146105125780638256ace61461051a5761035d565b806343756e5c116102ad5780635bfb49901161024b57806370fd5bad1161022557806370fd5bad146104ea578063718a8aa8146104f257806375d47a0a146104fa5780637912a65d146105025761035d565b80635bfb4990146104c757806362b72cf5146104da5780636e47b482146104e25761035d565b806350055f901161028757806350055f90146104a757806351b4dce3146104af57806351e80672146104b7578063567a372d146104bf5761035d565b806343756e5c14610482578063493279b11461048a5780634bf6c8821461049f5761035d565b8063280870281161031a57806335aa2e44116102f457806335aa2e441461043157806337c8dab914610444578063389f4f71146104655780633dffc3871461046d5761035d565b8063280870281461040157806328aa02b1146104095780633306ccca1461041c5761035d565b80630bee7a67146103625780630e2374a5146103805780631182b8751461039557806322d1e80b146103b557806323bac5a2146103ca57806327962118146103ec575b600080fd5b61036a610621565b6040516103779190613d96565b60405180910390f35b610388610626565b6040516103779190613574565b6103a86103a33660046134aa565b61062c565b60405161037791906135ac565b6103bd610692565b60405161037791906135a1565b6103dd6103d83660046131af565b61069b565b60405161037793929190613d7e565b6103ff6103fa366004613307565b6106be565b005b610388610a13565b6103ff6104173660046131e7565b610a19565b610424610a4a565b6040516103779190613d67565b61038861043f36600461347a565b610a50565b6104576104523660046131af565b610a77565b604051610377929190613d70565b610424610ace565b610475610ad4565b6040516103779190613da7565b610388610ad9565b610492610adf565b6040516103779190613d58565b610475610ae4565b610424610ae9565b610388610aef565b610388610af5565b610424610afb565b6103ff6104d53660046131af565b610b01565b610424610c0d565b610388610c13565b610475610c19565b610475610c1e565b610388610c23565b610424610c29565b610475610c2e565b610388610c33565b610457610c39565b6103ff6105303660046134aa565b610c43565b610475610d56565b610388610d5b565b610424610d61565b610388610d67565b6103bd610d6d565b610388610d76565b610388610d7c565b61036a610d82565b610424610d87565b6103ff61058b36600461335e565b610d8c565b610424611328565b61038861132d565b6103ff6105ae3660046134aa565b611333565b6103ff6105c13660046131af565b6113a4565b6103ff6105d43660046133c7565b611815565b610388611df4565b610424611dfa565b610388611dff565b6103ff611e05565b610475611e41565b610388611e46565b610475611e4c565b6103ff611e51565b61038861229a565b606481565b61200181565b606033612000146106585760405162461bcd60e51b815260040161064f90613bfb565b60405180910390fd5b60005460ff1661067a5760405162461bcd60e51b815260040161064f906136a1565b60405162461bcd60e51b815260040161064f90613cec565b60075460ff1681565b600260208190526000918252604090912080546001820154919092015460ff1683565b60005460ff166106e05760405162461bcd60e51b815260040161064f906136a1565b6006546106ed5760146006555b6008546106fb576170806008555b81511580159061070b5750805115155b6107275760405162461bcd60e51b815260040161064f90613b59565b60408051600380825260808201909252606091816020015b606081526020019060019003908161073f57905050905061076060386122a0565b8160008151811061076d57fe5b6020026020010181905250610781836122bb565b8160018151811061078e57fe5b60200260200101819052506107a2826122bb565b816002815181106107af57fe5b602002602001018190525060606107c582612311565b60408051603480825260608281019093529293509091602082018180368337019050509050815160346020830182602086016068600019fa61080657600080fd5b506014810151603482015160405163436aa28360e11b8152600090612002906386d5450690610839908690600401613574565b60206040518083038186803b15801561085157600080fd5b505afa158015610865573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088991906131cb565b6001600160a01b031614156108b05760405162461bcd60e51b815260040161064f90613671565b43600854820110156108d45760405162461bcd60e51b815260040161064f90613612565b604051631871f7d960e31b81526120029063c38fbec8906108f9908590600401613574565b600060405180830381600087803b15801561091357600080fd5b505af1158015610927573d6000803e3d6000fd5b50506040516335409f7f60e01b815261100092506335409f7f9150610950908590600401613574565b600060405180830381600087803b15801561096a57600080fd5b505af115801561097e573d6000803e3d6000fd5b50506006546040516309a99b4f60e41b815260646110028031909302049350909150639a99b4f0906109b69033908590600401613588565b602060405180830381600087803b1580156109d057600080fd5b505af11580156109e4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a089190613492565b505050505050505050565b61200581565b3361100014610a3a5760405162461bcd60e51b815260040161064f906138e4565b610a458383836123a2565b505050565b61708081565b60018181548110610a5d57fe5b6000918252602090912001546001600160a01b0316905081565b600080610a82612f96565b5050506001600160a01b0316600090815260026020818152604092839020835160608101855281548082526001830154938201849052919093015460ff16151592909301919091529091565b60055481565b600181565b61100181565b603881565b600881565b60065481565b61200681565b61200081565b60045481565b3361100014610b225760405162461bcd60e51b815260040161064f906138e4565b60005460ff16610b445760405162461bcd60e51b815260040161064f906136a1565b61200063f7a251d7600b610b5784612580565b60006040518463ffffffff1660e01b8152600401610b7793929190613db5565b600060405180830381600087803b158015610b9157600080fd5b505af1925050508015610ba2575060015b610c0a573d808015610bd0576040519150601f19603f3d011682016040523d82523d6000602084013e610bd5565b606091505b50816001600160a01b0316600080516020613ea0833981519152600083604051610c009291906135bf565b60405180910390a2505b50565b60035481565b61100581565b600281565b601081565b61100881565b603281565b600b81565b61200381565b6004546005549091565b3361200014610c645760405162461bcd60e51b815260040161064f90613bfb565b60005460ff16610c865760405162461bcd60e51b815260040161064f906136a1565b610c8e612fb9565b6000610ccf84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061264992505050565b915091508015610d165781516040517f7f0956d47419b9525356e7111652b653b530ec6f5096dccc04589bc38e62996791610d0991613d96565b60405180910390a1610d4f565b81516040517f7d45f62d17443dd4547bca8a8112c60e2385669318dc300ec61a5d2492f262e791610d4691613d96565b60405180910390a15b5050505050565b600981565b61100781565b60085481565b61100681565b60005460ff1681565b61200281565b61300081565b600081565b600481565b60005460ff16610dae5760405162461bcd60e51b815260040161064f906136a1565b3361100714610dcf5760405162461bcd60e51b815260040161064f90613a48565b610e3a84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260148152731b5a5cd9195b59585b9bdc951a1c995cda1bdb1960621b602082015291506126c99050565b15610ed55760208114610e5f5760405162461bcd60e51b815260040161064f90613870565b604080516020601f8401819004810282018101909252828152600091610e9d9185858083850183828082843760009201919091525061272392505050565b905060018110158015610eb1575060055481105b610ecd5760405162461bcd60e51b815260040161064f90613bb6565b6004556112e5565b610f3b84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e19995b1bdb9e551a1c995cda1bdb19608a1b602082015291506126c99050565b15610fd75760208114610f605760405162461bcd60e51b815260040161064f90613a96565b604080516020601f8401819004810282018101909252828152600091610f9e9185858083850183828082843760009201919091525061272392505050565b90506103e88111158015610fb3575060045481115b610fcf5760405162461bcd60e51b815260040161064f9061375a565b6005556112e5565b61104484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601681527566656c6f6e79536c617368526577617264526174696f60501b602082015291506126c99050565b156110de57602081146110695760405162461bcd60e51b815260040161064f906139d0565b604080516020601f84018190048102820181019092528281526000916110a79185858083850183828082843760009201919091525061272392505050565b9050600a81101580156110ba5750606481105b6110d65760405162461bcd60e51b815260040161064f90613ad8565b6006556112e5565b61115284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f656e61626c654d616c6963696f7573566f7465536c6173680000000000000000602082015291506126c99050565b156111c957602081146111775760405162461bcd60e51b815260040161064f9061378f565b604080516020601f84018190048102820181019092528281526111b3919084848083850183828082843760009201919091525061272892505050565b6007805460ff19169115159190911790556112e5565b61123084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601081526f66656c6f6e79536c61736853636f706560801b602082015291506126c99050565b156112cd57602081146112555760405162461bcd60e51b815260040161064f9061395f565b604080516020601f84018190048102820181019092528281526000916112939185858083850183828082843760009201919091525061272392505050565b905061708081101580156112a95750620d2f0081105b6112c55760405162461bcd60e51b815260040161064f906136d8565b6008556112e5565b60405162461bcd60e51b815260040161064f90613c97565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a8484848460405161131a94939291906135e0565b60405180910390a150505050565b609681565b61100281565b33612000146113545760405162461bcd60e51b815260040161064f90613bfb565b60005460ff166113765760405162461bcd60e51b815260040161064f906136a1565b6040517f07db600eebe2ac176be8dcebad61858c245a4961bb32ca2aa3d159b09aa0810e90600090a1505050565b3341146113c35760405162461bcd60e51b815260040161064f90613c4a565b60005460ff166113e55760405162461bcd60e51b815260040161064f906136a1565b60035443116114065760405162461bcd60e51b815260040161064f90613d23565b3a156114245760405162461bcd60e51b815260040161064f906139a2565b60405163155853f360e21b8152611000906355614fcc90611449908490600401613574565b60206040518083038186803b15801561146157600080fd5b505afa158015611475573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149991906132eb565b6114a25761180e565b6114aa612f96565b506001600160a01b0381166000908152600260208181526040928390208351606081018552815481526001820154928101929092529091015460ff16158015928201929092529061150557602081018051600101905261155e565b60016040820181905260208201819052805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0384161790555b43815260055460208201518161157057fe5b0661173c57600060208201526040516335409f7f60e01b8152611000906335409f7f906115a1908590600401613574565b600060405180830381600087803b1580156115bb57600080fd5b505af11580156115cf573d6000803e3d6000fd5b505060405163436aa28360e11b81526000925061200291506386d54506906115fb908690600401613574565b60206040518083038186803b15801561161357600080fd5b505afa158015611627573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061164b91906131cb565b6001600160a01b03161461166e5761166982826020015160006123a2565b611737565b61200063f7a251d7600b61168185612580565b60006040518463ffffffff1660e01b81526004016116a193929190613db5565b600060405180830381600087803b1580156116bb57600080fd5b505af19250505080156116cc575060015b611737573d8080156116fa576040519150601f19603f3d011682016040523d82523d6000602084013e6116ff565b606091505b50826001600160a01b0316600080516020613ea083398151915283602001518360405161172d9291906135bf565b60405180910390a2505b6117a8565b60045481602001518161174b57fe5b066117a8576040516375abf10160e11b81526110009063eb57e20290611775908590600401613574565b600060405180830381600087803b15801561178f57600080fd5b505af11580156117a3573d6000803e3d6000fd5b505050505b6001600160a01b0382166000818152600260208181526040808420865181559186015160018301558581015191909201805460ff1916911515919091179055517fddb6012116e51abf5436d956a4f0ebd927e92c576ff96d7918290c8782291e3e9190a2505b5043600355565b60005460ff166118375760405162461bcd60e51b815260040161064f906136a1565b60075460ff166118595760405162461bcd60e51b815260040161064f9061363c565b6006546118665760146006555b600854611874576170806008555b60085481516040015143910111801561189857504360085482602001516040015101115b6118b45760405162461bcd60e51b815260040161064f90613cbe565b8060200151602001518160000151602001511480156118e25750806020015160600151816000015160600151145b156118ff5760405162461bcd60e51b815260040161064f906138b7565b80516040810151905110801561191e5750602081015160408101519051105b61193a5760405162461bcd60e51b815260040161064f90613839565b60208101515181515110801561195f5750806000015160400151816020015160400151105b8061198a575080515160208201515110801561198a5750806020015160400151816000015160400151105b806119a45750806020015160400151816000015160400151145b6119c05760405162461bcd60e51b815260040161064f90613723565b604080820151905163ea321e4960e01b81526110009163ea321e49916119e991906004016135ac565b60206040518083038186803b158015611a0157600080fd5b505afa158015611a15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3991906132eb565b611a555760405162461bcd60e51b815260040161064f90613a19565b611a6781600001518260400151612750565b8015611a805750611a8081602001518260400151612750565b611a9c5760405162461bcd60e51b815260040161064f906137da565b6060806110006001600160a01b0316633b071dcc6040518163ffffffff1660e01b815260040160006040518083038186803b158015611ada57600080fd5b505afa158015611aee573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611b169190810190613228565b9150915060005b8151811015611c5357611b47828281518110611b3557fe5b60200260200101518560400151612928565b15611c4b576006546040516309a99b4f60e41b815260646110028031909302049190639a99b4f090611b7f9033908590600401613588565b602060405180830381600087803b158015611b9957600080fd5b505af1158015611bad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bd19190613492565b506110006001600160a01b03166335409f7f858481518110611bef57fe5b60200260200101516040518263ffffffff1660e01b8152600401611c139190613574565b600060405180830381600087803b158015611c2d57600080fd5b505af1158015611c41573d6000803e3d6000fd5b5050505050611c53565b600101611b1d565b5060408084015190516317b4f35360e01b8152600091612002916317b4f35391611c7f916004016135ac565b60206040518083038186803b158015611c9757600080fd5b505afa158015611cab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ccf91906131cb565b6001600160a01b031614611d3d576040808401519051630e9fbf5160e01b815261200291630e9fbf5191611d0691906004016135ac565b600060405180830381600087803b158015611d2057600080fd5b505af1158015611d34573d6000803e3d6000fd5b50505050610a45565b6120006001600160a01b031663f7a251d7600b611d5d866040015161298c565b60006040518463ffffffff1660e01b8152600401611d7d93929190613db5565b600060405180830381600087803b158015611d9757600080fd5b505af1158015611dab573d6000803e3d6000fd5b505050506000611dc0846040015160006129c7565b60405190915081907f7b78aadacff901d8b63d0dba4f86283d4db8aef27f9ed70413dd860f1c9532b690600090a250505050565b61100381565b601481565b61200481565b60005460ff1615611e285760405162461bcd60e51b815260040161064f90613b22565b603260045560966005556000805460ff19166001179055565b601181565b61100081565b600381565b3361100014611e725760405162461bcd60e51b815260040161064f906138e4565b60005460ff16611e945760405162461bcd60e51b815260040161064f906136a1565b600154611ea057612298565b600154600090600019015b80821161226c576000805b82841015611fcf57611ec6612f96565b6002600060018781548110611ed757fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff161515908201526005549091506004900481602001511115611fb957600460055481611f4457fe5b04816020015103816020018181525050806002600060018881548110611f6657fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208351815591830151600183015591909101516002909101805460ff1916911515919091179055611fc3565b6001925050611fcf565b50836001019350611eb6565b82841161216657611fde612f96565b6002600060018681548110611fef57fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff1615159082015260055490915060049004816020015111156120d75760046005548161205c57fe5b0481602001510381602001818152505080600260006001878154811061207e57fe5b6000918252602080832091909101546001600160a01b03168352828101939093526040918201902083518155918301516001808401919091559201516002909101805460ff191691151591909117905591506121669050565b60026000600186815481106120e857fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff1916905580548061212c57fe5b600082815260209020810160001990810180546001600160a01b0319169055019055836121595750612166565b5060001990920191611fcf565b8180156121705750805b1561224f57600260006001868154811061218657fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff191690558054849081106121cd57fe5b600091825260209091200154600180546001600160a01b0390921691869081106121f357fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600180548061222c57fe5b600082815260209020810160001990810180546001600160a01b03191690550190555b8261225b57505061226c565b505060019091019060001901611eab565b6040517fcfdb3b6ccaeccbdc68be3c59c840e3b3c90f0a7c491f5fff1cf56cfda200dd9c90600090a150505b565b61100481565b60606122b36122ae836129e3565b6122bb565b90505b919050565b6060815160011480156122ed5750607f60f81b826000815181106122db57fe5b01602001516001600160f81b03191611155b156122f95750806122b6565b6122b361230b8351608060ff16612ac9565b83612b9b565b606081516000141561233257506040805160008152602081019091526122b6565b60608260008151811061234157fe5b602002602001015190506000600190505b8351811015612382576123788285838151811061236b57fe5b6020026020010151612b9b565b9150600101612352565b5061239b612395825160c060ff16612ac9565b82612b9b565b9392505050565b80156123cd576040516375cc7d8960e01b8152612002906375cc7d8990611d06908690600401613574565b6040516375cc7d8960e01b8152612002906375cc7d89906123f2908690600401613574565b600060405180830381600087803b15801561240c57600080fd5b505af192505050801561241d575060015b610a45576040516000815260443d1015612439575060006124d6565b60046000803e60005160e01c6308c379a0811461245a5760009150506124d6565b60043d036004833e81513d602482011167ffffffffffffffff82111715612486576000925050506124d6565b808301805167ffffffffffffffff8111156124a85760009450505050506124d6565b8060208301013d86018111156124c6576000955050505050506124d6565b601f01601f191660405250925050505b806124e15750612518565b836001600160a01b0316600080516020613ea0833981519152848360405161250a9291906135bf565b60405180910390a25061257b565b3d808015612542576040519150601f19603f3d011682016040523d82523d6000602084013e612547565b606091505b50836001600160a01b0316600080516020613ea083398151915284836040516125719291906135bf565b60405180910390a2505b610a45565b60408051600480825260a08201909252606091829190816020015b606081526020019060019003908161259b5790505090506125c4836001600160a01b0316612c18565b816000815181106125d157fe5b60200260200101819052506125e5436122a0565b816001815181106125f257fe5b602090810291909101015261260760386122a0565b8160028151811061261457fe5b6020026020010181905250612628426122a0565b8160038151811061263557fe5b602002602001018190525061239b81612311565b612651612fb9565b600061265b612fb9565b612663612fcb565b61267461266f86612c3b565b612c60565b90506000805b61268383612caa565b156126bc57806126af5761269e61269984612ccb565b612d19565b63ffffffff168452600191506126b4565b6126bc565b60010161267a565b5091935090915050915091565b6000816040516020016126dc9190613558565b60405160208183030381529060405280519060200120836040516020016127039190613558565b604051602081830303815290604052805190602001201490505b92915050565b015190565b8082015160009060ff811615612742576001915081612748565b60009150815b505092915050565b60408051600480825260a0820190925260009160609190816020015b606081526020019060019003908161276c5750506040805160208082528183019092529192506060919080820181803683370190505090506127b185600001516122a0565b826000815181106127be57fe5b60200260200101819052506127d96020866020015183612d9b565b6127e2816122bb565b826001815181106127ef57fe5b602002602001018190525061280785604001516122a0565b8260028151811061281457fe5b602002602001018190525061282f6020866060015183612d9b565b612838816122bb565b8260038151811061284557fe5b602002602001018190525061286b602061285e84612311565b8051906020012083612d9b565b6040805160b080825260e0820190925260609160208201818036833701905050905061289b818360006020612dab565b6128ad81876080015160206060612dab565b6128bb818660806030612dab565b604080516001808252818301909252606091602082018180368337019050509050815160016020830182602086016066600019fa6128f857600080fd5b506001612906826000612dfe565b60ff161461291b57600094505050505061271d565b5060019695505050505050565b8151815160009160019181148083146129445760009250612982565b600160208701838101602088015b60028483851001141561297d5780518351146129715760009650600093505b60209283019201612952565b505050505b5090949350505050565b60408051600480825260a08201909252606091829190816020015b60608152602001906001900390816129a75790505090506125c4836122bb565b600081602001835110156129da57600080fd5b50016020015190565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416612a2757506018612a4b565b6fffffffffffffffffffffffffffffffff198416612a4757506010612a4b565b5060005b6020811015612a8157818181518110612a6057fe5b01602001516001600160f81b03191615612a7957612a81565b600101612a4b565b60008160200390506060816040519080825280601f01601f191660200182016040528015612ab6576020820181803683370190505b5080830196909652508452509192915050565b6060680100000000000000008310612af35760405162461bcd60e51b815260040161064f90613811565b60408051600180825281830190925260609160208201818036833701905050905060378411612b4d5782840160f81b81600081518110612b2f57fe5b60200101906001600160f81b031916908160001a905350905061271d565b6060612b58856129e3565b90508381510160370160f81b82600081518110612b7157fe5b60200101906001600160f81b031916908160001a905350612b928282612b9b565b95945050505050565b6060806040519050835180825260208201818101602087015b81831015612bcc578051835260209283019201612bb4565b50855184518101855292509050808201602086015b81831015612bf9578051835260209283019201612be1565b508651929092011591909101601f01601f191660405250905092915050565b60408051600560a21b831860148201526034810190915260609061239b816122bb565b612c43612feb565b506040805180820190915281518152602082810190820152919050565b612c68612fcb565b612c7182612e1a565b612c7a57600080fd5b6000612c898360200151612e54565b60208085015160408051808201909152868152920190820152915050919050565b6000612cb4612feb565b505080518051602091820151919092015191011190565b612cd3612feb565b612cdc82612caa565b612ce557600080fd5b60208201516000612cf582612eb7565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590612d2e57508151602110155b612d3757600080fd5b6000612d468360200151612e54565b90508083600001511015612d6c5760405162461bcd60e51b815260040161064f90613b7f565b825160208085015183018051928490039291831015612d9257826020036101000a820491505b50949350505050565b9091018181526020918201910152565b60005b81811015610d4f57838181518110612dc257fe5b602001015160f81c60f81b858480600101955081518110612ddf57fe5b60200101906001600160f81b031916908160001a905350600101612dae565b60008160010183511015612e1157600080fd5b50016001015190565b8051600090612e2b575060006122b6565b6020820151805160001a9060c0821015612e4a576000925050506122b6565b5060019392505050565b8051600090811a6080811015612e6e5760009150506122b6565b60b8811080612e89575060c08110801590612e89575060f881105b15612e985760019150506122b6565b60c0811015612eac5760b5190190506122b6565b60f5190190506122b6565b80516000908190811a6080811015612ed25760019150612f8f565b60b8811015612ee757607e1981019150612f8f565b60c0811015612f3857600060b78203600186019550806020036101000a865104915060018101820193505080831015612f325760405162461bcd60e51b815260040161064f90613934565b50612f8f565b60f8811015612f4d5760be1981019150612f8f565b600060f78203600186019550806020036101000a8651049150600181018201935050808310156127485760405162461bcd60e51b815260040161064f90613934565b5092915050565b604051806060016040528060008152602001600081526020016000151581525090565b60408051602081019091526000815290565b6040518060400160405280612fde612feb565b8152602001600081525090565b604051806040016040528060008152602001600081525090565b600082601f830112613015578081fd5b815161302861302382613e08565b613de1565b818152915060208083019084810160005b8481101561309e578151870188603f82011261305457600080fd5b8381015161306461302382613e28565b81815260408b8184860101111561307a57600080fd5b61308983888401838701613e4c565b50865250509282019290820190600101613039565b505050505092915050565b60008083601f8401126130ba578182fd5b50813567ffffffffffffffff8111156130d1578182fd5b6020830191508360208285010111156130e957600080fd5b9250929050565b600082601f830112613100578081fd5b813561310e61302382613e28565b915080825283602082850101111561312557600080fd5b8060208401602084013760009082016020015292915050565b600060a0828403121561314f578081fd5b61315960a0613de1565b905081358152602082013560208201526040820135604082015260608201356060820152608082013567ffffffffffffffff81111561319757600080fd5b6131a3848285016130f0565b60808301525092915050565b6000602082840312156131c0578081fd5b813561239b81613e7c565b6000602082840312156131dc578081fd5b815161239b81613e7c565b6000806000606084860312156131fb578182fd5b833561320681613e7c565b925060208401359150604084013561321d81613e91565b809150509250925092565b6000806040838503121561323a578182fd5b825167ffffffffffffffff80821115613251578384fd5b81850186601f820112613262578485fd5b8051925061327261302384613e08565b80848252602080830192508084018a828389028701011115613292578889fd5b8894505b868510156132bd5780516132a981613e7c565b845260019490940193928101928101613296565b5088015190965093505050808211156132d4578283fd5b506132e185828601613005565b9150509250929050565b6000602082840312156132fc578081fd5b815161239b81613e91565b60008060408385031215613319578182fd5b823567ffffffffffffffff80821115613330578384fd5b61333c868387016130f0565b93506020850135915080821115613351578283fd5b506132e1858286016130f0565b60008060008060408587031215613373578182fd5b843567ffffffffffffffff8082111561338a578384fd5b613396888389016130a9565b909650945060208701359150808211156133ae578384fd5b506133bb878288016130a9565b95989497509550505050565b6000602082840312156133d8578081fd5b813567ffffffffffffffff808211156133ef578283fd5b81840160608187031215613401578384fd5b61340b6060613de1565b925080358281111561341b578485fd5b6134278782840161313e565b84525060208101358281111561343b578485fd5b6134478782840161313e565b60208501525060408101358281111561345e578485fd5b61346a878284016130f0565b6040850152509195945050505050565b60006020828403121561348b578081fd5b5035919050565b6000602082840312156134a3578081fd5b5051919050565b6000806000604084860312156134be578081fd5b833560ff811681146134ce578182fd5b9250602084013567ffffffffffffffff8111156134e9578182fd5b6134f5868287016130a9565b9497909650939450505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008151808452613544816020860160208601613e4c565b601f01601f19169290920160200192915050565b6000825161356a818460208701613e4c565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b60006020825261239b602083018461352c565b6000838252604060208301526135d8604083018461352c565b949350505050565b6000604082526135f4604083018688613502565b8281036020840152613607818587613502565b979650505050505050565b60208082526010908201526f195d9a59195b98d9481d1bdbc81bdb1960821b604082015260600190565b6020808252818101527f6d616c6963696f757320766f746520736c617368206e6f7420656e61626c6564604082015260600190565b6020808252601690820152751d985b1a59185d1bdc881b9bdd081b5a59dc985d195960521b604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252602b908201527f746865206d616c6963696f757320766f746520736c6173682073636f7065206f60408201526a7574206f662072616e676560a81b606082015260800190565b6020808252601a908201527f6e6f2076696f6c6174696f6e206f6620766f74652072756c6573000000000000604082015260600190565b6020808252818101527f7468652066656c6f6e795468726573686f6c64206f7574206f662072616e6765604082015260600190565b6020808252602b908201527f6c656e677468206f6620656e61626c654d616c6963696f7573566f7465536c6160408201526a0e6d040dad2e6dac2e8c6d60ab1b606082015260800190565b60208082526017908201527f766572696679207369676e6174757265206661696c6564000000000000000000604082015260600190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526019908201527f7372634e756d20626967676572207468616e207461724e756d00000000000000604082015260600190565b60208082526027908201527f6c656e677468206f66206d697364656d65616e6f725468726573686f6c64206d6040820152660d2e6dac2e8c6d60cb1b606082015260800190565b60208082526013908201527274776f206964656e746963616c20766f74657360681b604082015260600190565b60208082526030908201527f746865206d6573736167652073656e646572206d7573742062652076616c696460408201526f185d1bdc94d95d0818dbdb9d1c9858dd60821b606082015260800190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b60208082526023908201527f6c656e677468206f662066656c6f6e79536c61736853636f7065206d69736d616040820152620e8c6d60eb1b606082015260800190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b60208082526029908201527f6c656e677468206f662066656c6f6e79536c617368526577617264526174696f604082015268040dad2e6dac2e8c6d60bb1b606082015260800190565b6020808252601590820152741d9bdd195059191c881a5cc81b9bdd08199bdd5b99605a1b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526022908201527f6c656e677468206f662066656c6f6e795468726573686f6c64206d69736d61746040820152610c6d60f31b606082015260800190565b6020808252602a908201527f7468652066656c6f6e7920736c6173682072657761726420726174696f206f7560408201526974206f662072616e676560b01b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b6020808252600c908201526b32b6b83a3c903432b0b232b960a11b604082015260600190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526025908201527f746865206d697364656d65616e6f725468726573686f6c64206f7574206f662060408201526472616e676560d81b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b6020808252601490820152731d185c99d95d08189b1bd8dac81d1bdbc81bdb1960621b604082015260600190565b6020808252601e908201527f7265636569766520756e65787065637465642073796e207061636b6167650000604082015260600190565b6020808252818101527f63616e206e6f7420736c61736820747769636520696e206f6e6520626c6f636b604082015260600190565b61ffff91909116815260200190565b90815260200190565b918252602082015260400190565b92835260208301919091521515604082015260600190565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff8516825260606020830152613dd1606083018561352c565b9050826040830152949350505050565b60405181810167ffffffffffffffff81118282101715613e0057600080fd5b604052919050565b600067ffffffffffffffff821115613e1e578081fd5b5060209081020190565b600067ffffffffffffffff821115613e3e578081fd5b50601f01601f191660200190565b60005b83811015613e67578181015183820152602001613e4f565b83811115613e76576000848401525b50505050565b6001600160a01b0381168114610c0a57600080fd5b8015158114610c0a57600080fdfed7bc86ff5d08c8ab043edec743302aba2520e6635172a428bc956721db9e2d1ca164736f6c6343000604000a", + }, + }, + } + + HaberFixUpgrade[networkname.ChapelChainName] = &Upgrade{ + UpgradeName: "haberFix", + Configs: []*UpgradeConfig{ + { + ContractAddr: ValidatorContract, + CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/b743ce3f1f1e94c349b175cd6593bc263463b33b", + Code: "6080604052600436106104fb5760003560e01c806388b32f111161028c578063c6d339451161015a578063e40716a1116100cc578063f92eb86b11610085578063f92eb86b14610d2d578063f9a2bbc714610d42578063fc3e590814610d57578063fccc281314610d6c578063fd4ad81f14610d81578063fd6a687914610db057610502565b8063e40716a114610c9b578063ea321e4914610cb0578063eb57e20214610cd0578063eda5868c14610cf0578063f1fad10414610d05578063f340fa0114610d1a57610502565b8063d86222d51161011e578063d86222d514610c1d578063daacdb6614610c32578063dc927faf14610c47578063df8079e914610c5c578063e086c7b114610c71578063e1c7392a14610c8657610502565b8063c6d3394514610bbe578063c81b166214610bd3578063c8509d811461098d578063ce910b0c14610be8578063d68fb56a14610c0857610502565b8063a78abc16116101fe578063ad3c9da6116101b7578063ad3c9da614610b3d578063aef198a914610b5d578063b7ab4db514610b72578063b8cf4ef114610b94578063bf9f4995146106fe578063c466689d14610ba957610502565b8063a78abc1614610ab4578063aa82dce114610ac9578063aad5606314610ade578063aaf5eb6814610af3578063ab51bb9614610b08578063ac43175114610b1d57610502565b806396713da91161025057806396713da914610a365780639dc0926214610a4b5780639fe0f81614610a60578063a0dc275814610a75578063a1a11bf514610a8a578063a5422d5c14610a9f57610502565b806388b32f11146109c25780638a7beb01146109d75780638b5ad0c9146109ec5780638d19a41014610a015780639369d7de14610a2157610502565b806351b4dce3116103c957806370fd5bad1161033b5780637e434d54116102f45780637e434d541461094e57806381650b6214610963578063820dcaa814610978578063831d65d11461098d578063853230aa1461090f57806386249882146109ad57610502565b806370fd5bad146108d0578063718a8aa8146108e557806375d47a0a146108fa57806378dfed4a1461090f5780637942fd05146109245780637a84ca2a1461093957610502565b80635d77156c1161038d5780635d77156c1461082a5780635de1e22c1461083f57806360eba4fe1461085457806362b72cf5146108745780636969a25c146108895780636e47b482146108bb57610502565b806351b4dce3146107ab57806351e80672146107c057806355614fcc146107d5578063565c56b3146107f55780635667515a1461081557610502565b8063300c35671161046d57806343756e5c1161042657806343756e5c1461072057806345cf9daf14610735578063493279b11461074a5780634bf6c8821461076c5780634df6e0c3146107815780635192c82c1461079657610502565b8063300c35671461065b578063321d398a1461067b5780633365af3a1461069b57806335409f7f146106bb5780633b071dcc146106db5780633dffc387146106fe57610502565b8063152ad3b8116104bf578063152ad3b8146105ba5780631e4c1524146105dc5780631ff18069146105fc578063219f22d51461061157806328087028146106265780632a0ffb6e1461063b57610502565b806304c4fec61461050757806307a568471461051e5780630bee7a67146105495780630e2374a51461056b5780631182b8751461058d57610502565b3661050257005b600080fd5b34801561051357600080fd5b5061051c610dc5565b005b34801561052a57600080fd5b50610533610e39565b6040516105409190618f10565b60405180910390f35b34801561055557600080fd5b5061055e610e3f565b6040516105409190618f3a565b34801561057757600080fd5b50610580610e44565b6040516105409190618200565b34801561059957600080fd5b506105ad6105a83660046180e6565b610e4a565b60405161054091906183b6565b3480156105c657600080fd5b506105cf611167565b60405161054091906183ab565b3480156105e857600080fd5b5061051c6105f7366004617ef4565b611170565b34801561060857600080fd5b50610533611846565b34801561061d57600080fd5b5061055e61184c565b34801561063257600080fd5b50610580611851565b34801561064757600080fd5b5061051c610656366004617e54565b611857565b34801561066757600080fd5b5061051c610676366004617e8c565b611904565b34801561068757600080fd5b506105cf610696366004618093565b611c4d565b3480156106a757600080fd5b506105cf6106b6366004618093565b611d1c565b3480156106c757600080fd5b5061051c6106d6366004617e54565b611dcd565b3480156106e757600080fd5b506106f0611f32565b6040516105409291906182c1565b34801561070a57600080fd5b5061071361220e565b6040516105409190618f4b565b34801561072c57600080fd5b50610580612213565b34801561074157600080fd5b50610533612219565b34801561075657600080fd5b5061075f61221f565b6040516105409190618f01565b34801561077857600080fd5b50610713612224565b34801561078d57600080fd5b506106f0612229565b3480156107a257600080fd5b506105336123b5565b3480156107b757600080fd5b506105806123bb565b3480156107cc57600080fd5b506105806123c1565b3480156107e157600080fd5b506105cf6107f0366004617e54565b6123c7565b34801561080157600080fd5b50610533610810366004617e54565b6123fc565b34801561082157600080fd5b5061071361244d565b34801561083657600080fd5b5061055e612452565b34801561084b57600080fd5b50610533612457565b34801561086057600080fd5b506105ad61086f366004618093565b61245d565b34801561088057600080fd5b50610533612503565b34801561089557600080fd5b506108a96108a4366004618093565b612509565b6040516105409695949392919061822d565b3480156108c757600080fd5b5061058061256d565b3480156108dc57600080fd5b50610713612573565b3480156108f157600080fd5b50610713612578565b34801561090657600080fd5b5061058061257d565b34801561091b57600080fd5b50610533612583565b34801561093057600080fd5b50610713612589565b34801561094557600080fd5b5061053361258e565b34801561095a57600080fd5b50610580612594565b34801561096f57600080fd5b5061055e61259a565b34801561098457600080fd5b5061053361259f565b34801561099957600080fd5b5061051c6109a83660046180e6565b6125a5565b3480156109b957600080fd5b50610533612606565b3480156109ce57600080fd5b5061053361260c565b3480156109e357600080fd5b506105cf612612565b3480156109f857600080fd5b5061053361261b565b348015610a0d57600080fd5b50610533610a1c366004617e54565b612621565b348015610a2d57600080fd5b5061051c612661565b348015610a4257600080fd5b50610713612775565b348015610a5757600080fd5b5061058061277a565b348015610a6c57600080fd5b50610533612780565b348015610a8157600080fd5b50610533612785565b348015610a9657600080fd5b5061058061278a565b348015610aab57600080fd5b506105ad612790565b348015610ac057600080fd5b506105cf6127af565b348015610ad557600080fd5b506105806127b8565b348015610aea57600080fd5b506105806127be565b348015610aff57600080fd5b506105336127c4565b348015610b1457600080fd5b5061055e61244d565b348015610b2957600080fd5b5061051c610b38366004618037565b6127cd565b348015610b4957600080fd5b50610533610b58366004617e54565b613086565b348015610b6957600080fd5b50610533613098565b348015610b7e57600080fd5b50610b876130a5565b60405161054091906182ae565b348015610ba057600080fd5b50610533613191565b348015610bb557600080fd5b50610533613196565b348015610bca57600080fd5b50610533612573565b348015610bdf57600080fd5b5061058061319c565b348015610bf457600080fd5b506105ad610c03366004618093565b6131a2565b348015610c1457600080fd5b506105336131af565b348015610c2957600080fd5b506105336131ee565b348015610c3e57600080fd5b506105336131fa565b348015610c5357600080fd5b50610580613200565b348015610c6857600080fd5b50610580613206565b348015610c7d57600080fd5b50610533610e3f565b348015610c9257600080fd5b5061051c61320c565b348015610ca757600080fd5b506105336133bb565b348015610cbc57600080fd5b506105cf610ccb366004617ff8565b6133c1565b348015610cdc57600080fd5b5061051c610ceb366004617e54565b613547565b348015610cfc57600080fd5b5061055e61364b565b348015610d1157600080fd5b50610713613650565b61051c610d28366004617e54565b613655565b348015610d3957600080fd5b506105336139d4565b348015610d4e57600080fd5b506105806139da565b348015610d6357600080fd5b50610713612780565b348015610d7857600080fd5b506105806139e0565b348015610d8d57600080fd5b50610da1610d9c366004618093565b6139e6565b60405161054093929190618f19565b348015610dbc57600080fd5b50610580613aa8565b6000610dd033612621565b9050600b8181548110610ddf57fe5b600091825260209091206001601690920201015460ff16610e1b5760405162461bcd60e51b8152600401610e1290618b1c565b60405180910390fd5b6000610e256131af565b9050610e343383836001613aae565b505050565b60095481565b606481565b61200181565b60005460609060ff16610e6f5760405162461bcd60e51b8152600401610e12906185dd565b3361200014610e905760405162461bcd60e51b8152600401610e1290618d1d565b600b54610f4e57610e9f617a00565b60015460005b81811015610f4a57600b805460018101825560009190915283516000805160206191c883398151915260169092029182019081556020808601516000805160206192088339815191528401805460ff1916911515919091179055604086015180518794610f26936000805160206191e8833981519152909101920190617a2f565b506060820151610f3c9060038301906013617aa9565b505050806001019050610ea5565b5050505b610f56617ad6565b6000610f9785858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613d8392505050565b9150915080610fb357610faa6064613f3f565b92505050611160565b815160009060ff16610fd857610fd183602001518460400151613fa0565b905061112c565b825160ff16600114156111285782602001515160011461101d576000805160206191a883398151915260405161100d906189d5565b60405180910390a1506067611123565b6000836020015160008151811061103057fe5b602090810291909101810151516001600160a01b03811660009081526004909252604090912054909150801580611091575060018082038154811061107157fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b156110cf576040516001600160a01b038316907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a261111c565b60006110de8360018403615162565b90508061111a576040516001600160a01b038416907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a25b505b6000925050505b61112c565b5060655b63ffffffff811661115157505060408051600081526020810190915291506111609050565b61115a81613f3f565b93505050505b9392505050565b60075460ff1681565b33411461118f5760405162461bcd60e51b8152600401610e1290618d6c565b3a156111ad5760405162461bcd60e51b8152600401610e1290618a5b565b82516040805182815260208084028201019091526060908280156111eb57816020015b6111d8617afa565b8152602001906001900390816111d05790505b50905060005b82811015611295576040518060c0016040528087838151811061121057fe5b60200260200101516001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b0316815260200186838151811061125257fe5b60200260200101516001600160401b03168152602001600015158152602001600081525082828151811061128257fe5b60209081029190910101526001016111f1565b5060405163d31f968d60e01b81526120009063d31f968d906112c09061100090600890600401618292565b60206040518083038186803b1580156112d857600080fd5b505afa1580156112ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113109190617fd8565b15611633578051601554818111156113b257815b818110156113b057601580548061133757fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055601680548061138a57fe5b6001900381819060005260206000200160006113a69190617b2f565b9055600101611324565b505b60005b828110156115f2578181106114da5760158482815181106113d257fe5b602090810291909101810151825460018181018555600094855293839020825160049092020180546001600160a01b039283166001600160a01b0319918216178255938301519481018054958316958516959095179094556040820151600285018054606085015160808601511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590961692909716919091179290921692909217169290921790915560a0015160039091015585516016908790839081106114a257fe5b602090810291909101810151825460018101845560009384529282902081516114d49491909101929190910190617a2f565b506115ea565b8381815181106114e657fe5b6020026020010151601582815481106114fb57fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a09091015160039091015585518690829081106115b657fe5b6020026020010151601682815481106115cb57fe5b9060005260206000200190805190602001906115e8929190617a2f565b505b6001016113b5565b507fb8e726330a0dad1cf3d04e925663b17e391f1ed547d79b7f4e5f344119b44246826040516116229190618f10565b60405180910390a150505050610e34565b6060806116408386615525565b9150915060005b6001548110156117365760006001828154811061166057fe5b90600052602060002090600402016003015490508060001461172d5760006001838154811061168b57fe5b9060005260206000209060040201600301819055506120026001600160a01b031663092193ab82600185815481106116bf57fe5b60009182526020909120600491820201546040516001600160e01b031960e086901b1681526116fa926001600160a01b039092169101618200565b6000604051808303818588803b15801561171357600080fd5b505af1158015611727573d6000803e3d6000fd5b50505050505b50600101611647565b5047156117a4577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d4760405161176c9190618f10565b60405180910390a1604051611002904780156108fc02916000818181858888f193505050501580156117a2573d6000803e3d6000fd5b505b600060038190556005558151156117bf576117bf8282615a0f565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156117fc57600080fd5b505af1158015611810573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a150505050505050565b60035481565b606881565b61200581565b33612002146118785760405162461bcd60e51b8152600401610e1290618eca565b60005b60155481101561190057816001600160a01b03166015828154811061189c57fe5b60009182526020909120600490910201546001600160a01b031614156118f8576001601582815481106118cb57fe5b9060005260206000209060040201600201601c6101000a81548160ff021916908315150217905550611900565b60010161187b565b5050565b3341146119235760405162461bcd60e51b8152600401610e1290618d6c565b60105443116119445760405162461bcd60e51b8152600401610e1290618770565b3a156119625760405162461bcd60e51b8152600401610e1290618a5b565b60005460ff166119845760405162461bcd60e51b8152600401610e12906185dd565b60006110023168056bc75e2d631000008111156119bb576119b48168056bc75e2d6310000063ffffffff6161fe16565b91506119c2565b5050611c43565b6040516309a99b4f60e41b815261100290639a99b4f0906119e99030908690600401618214565b602060405180830381600087803b158015611a0357600080fd5b505af1158015611a17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3b91906180ab565b915081611a49575050611c43565b6000805b84811015611a7757858582818110611a6157fe5b9050602002013582019150806001019050611a4d565b5080611a8557505050611c43565b6000806000805b89811015611c3b5784898983818110611aa157fe5b90506020020135880281611ab157fe5b0493508a8a82818110611ac057fe5b9050602002016020810190611ad59190617e54565b6001600160a01b03811660009081526004602052604090205490935091508115611bf1576000600180840381548110611b0a57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff1615611b7757836001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d8586604051611b6a9190618f10565b60405180910390a2611beb565b600354611b8a908663ffffffff61624016565b6003908155810154611ba2908663ffffffff61624016565b60038201556040516001600160a01b038516907fcb0aad6cf9cd03bdf6137e359f541c42f38b39f007cae8e89e88aa7d8c6617b290611be2908890618f10565b60405180910390a25b50611c33565b826001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d8585604051611c2a9190618f10565b60405180910390a25b600101611a8c565b505050505050505b5050436010555050565b6001546000908210611c6157506000611d17565b60006001600160a01b031660018381548110611c7957fe5b60009182526020909120600490910201546001600160a01b03161480611ca957506008541580611ca95750600a54155b80611cb8575060085460095410155b80611cc95750611cc782611d1c565b155b80611cf257506000600b8381548110611cde57fe5b906000526020600020906016020160000154115b80611d0657506001611d026130a5565b5111155b15611d1357506000611d17565b5060015b919050565b6001546000908210611d3057506000611d17565b600b548210611d6d5760018281548110611d4657fe5b9060005260206000209060040201600201601c9054906101000a900460ff16159050611d17565b60018281548110611d7a57fe5b9060005260206000209060040201600201601c9054906101000a900460ff16158015611dc75750600b8281548110611dae57fe5b600091825260209091206001601690920201015460ff16155b92915050565b600b54611e8b57611ddc617a00565b60015460005b81811015611e8757600b805460018101825560009190915283516000805160206191c883398151915260169092029182019081556020808601516000805160206192088339815191528401805460ff1916911515919091179055604086015180518794611e63936000805160206191e8833981519152909101920190617a2f565b506060820151611e799060038301906013617aa9565b505050806001019050611de2565b5050505b336110011480611e9c575033612002145b611eb85760405162461bcd60e51b8152600401610e1290618614565b6001600160a01b03811660009081526004602052604090205480611edc5750611f2f565b6001810390506000600b8281548110611ef157fe5b600091825260209091206001601690920201015460ff169050611f148383615162565b8015611f1d5750805b15610e34576009805460001901905550505b50565b60015460609081906000805b82811015611f855760018181548110611f5357fe5b9060005260206000209060040201600201601c9054906101000a900460ff16611f7d576001909101905b600101611f3e565b50606081604051908082528060200260200182016040528015611fb2578160200160208202803683370190505b509050606082604051908082528060200260200182016040528015611feb57816020015b6060815260200190600190039081611fd65790505b50600b54600094509091508414156121665760005b84811015612160576001818154811061201557fe5b9060005260206000209060040201600201601c9054906101000a900460ff16612158576001818154811061204557fe5b600091825260209091206004909102015483516001600160a01b039091169084908690811061207057fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600b818154811061209d57fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156121355780601f1061210a57610100808354040283529160200191612135565b820191906000526020600020905b81548152906001019060200180831161211857829003601f168201915b505050505082858151811061214657fe5b60209081029190910101526001909301925b600101612000565b50612202565b60005b84811015612200576001818154811061217e57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166121f857600181815481106121ae57fe5b600091825260209091206004909102015483516001600160a01b03909116908490869081106121d957fe5b6001600160a01b03909216602092830291909101909101526001909301925b600101612169565b505b909450925050505b9091565b600181565b61100181565b60085481565b606181565b600881565b6060806000600e549050600080600c5411612245576015612249565b600c545b905060606122556130a5565b9050606061226282616265565b90508282511161227957909450925061220a915050565b8383835103101561228b578282510393505b83156122c15760c843046122a783838388880360008a8a6163d3565b6122bf8383838888038989038a8b8b8b5103016163d3565b505b6060836040519080825280602002602001820160405280156122ed578160200160208202803683370190505b50905060608460405190808252806020026020018201604052801561232657816020015b60608152602001906001900390816123115790505b50905060005b858110156123a75784818151811061234057fe5b602002602001015183828151811061235457fe5b60200260200101906001600160a01b031690816001600160a01b03168152505083818151811061238057fe5b602002602001015182828151811061239457fe5b602090810291909101015260010161232c565b509096509450505050509091565b60065481565b61200681565b61200081565b6001600160a01b038116600090815260046020526040812054806123ef576000915050611d17565b6000190161116081611d1c565b6001600160a01b03811660009081526004602052604081205480612424576000915050611d17565b60018082038154811061243357fe5b906000526020600020906004020160030154915050919050565b600081565b606781565b600f5481565b6012818154811061246a57fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152935090918301828280156124fb5780601f106124d0576101008083540402835291602001916124fb565b820191906000526020600020905b8154815290600101906020018083116124de57829003601f168201915b505050505081565b60105481565b6001818154811061251657fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b601081565b61100881565b6103e881565b600b81565b600c5481565b61200381565b606681565b61271081565b33612000146125c65760405162461bcd60e51b8152600401610e1290618d1d565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f389021016058383836040516125f993929190618f59565b60405180910390a1505050565b60025481565b60115481565b60145460ff1681565b600a5481565b6001600160a01b038116600090815260046020526040812054806126575760405162461bcd60e51b8152600401610e1290618ca5565b6000190192915050565b600b5461271f57612670617a00565b60015460005b8181101561271b57600b805460018101825560009190915283516000805160206191c883398151915260169092029182019081556020808601516000805160206192088339815191528401805460ff19169115159190911790556040860151805187946126f7936000805160206191e8833981519152909101920190617a2f565b50606082015161270d9060038301906013617aa9565b505050806001019050612676565b5050505b60085461272c5760036008555b600a54612739576002600a555b600061274433612621565b905061274f81611c4d565b61276b5760405162461bcd60e51b8152600401610e1290618992565b611f2f338261652a565b600981565b61100781565b600381565b60c881565b61100681565b604051806101e001604052806101ab8152602001618ffd6101ab913981565b60005460ff1681565b61200281565b61300081565b6402540be40081565b60005460ff166127ef5760405162461bcd60e51b8152600401610e12906185dd565b33611007146128105760405162461bcd60e51b8152600401610e1290618a89565b61287a84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b602082015291506165c29050565b15612917576020811461289f5760405162461bcd60e51b8152600401610e1290618c5f565b604080516020601f84018190048102820181019092528281526000916128dd9185858083850183828082843760009201919091525061661b92505050565b9050606481101580156128f35750620186a08111155b61290f5760405162461bcd60e51b8152600401610e1290618882565b600255613043565b61297784848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260098152686275726e526174696f60b81b602082015291506165c29050565b15612a1a576020811461299c5760405162461bcd60e51b8152600401610e12906183fb565b604080516020601f84018190048102820181019092528281526000916129da9185858083850183828082843760009201919091525061661b92505050565b90506127106129f4600f548361624090919063ffffffff16565b1115612a125760405162461bcd60e51b8152600401610e1290618432565b600655613043565b612a8484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260138152726d61784e756d4f664d61696e7461696e696e6760681b602082015291506165c29050565b15612b1e5760208114612aa95760405162461bcd60e51b8152600401610e129061849a565b604080516020601f8401819004810282018101909252828152600091612ae79185858083850183828082843760009201919091525061661b92505050565b600c5490915080612af6575060155b808210612b155760405162461bcd60e51b8152600401610e12906187da565b50600855613043565b612b8784848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61696e7461696e536c6173685363616c6560701b602082015291506165c29050565b15612c205760208114612bac5760405162461bcd60e51b8152600401610e1290618563565b604080516020601f8401819004810282018101909252828152600091612bea9185858083850183828082843760009201919091525061661b92505050565b9050600081118015612bfc5750600a81105b612c185760405162461bcd60e51b8152600401610e1290618dfd565b600a55613043565b612c9484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601981527f6d61784e756d4f66576f726b696e6743616e6469646174657300000000000000602082015291506165c29050565b15612d235760208114612cb95760405162461bcd60e51b8152600401610e1290618517565b604080516020601f8401819004810282018101909252828152600091612cf79185858083850183828082843760009201919091525061661b92505050565b9050600d54811115612d1b5760405162461bcd60e51b8152600401610e12906188f8565b600e55613043565b612d8c84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61784e756d4f6643616e6469646174657360701b602082015291506165c29050565b15612e0e5760208114612db15760405162461bcd60e51b8152600401610e1290618ad7565b604080516020601f8401819004810282018101909252828152600091612def9185858083850183828082843760009201919091525061661b92505050565b600d819055600e54909150811015612e0857600d54600e555b50613043565b612e7284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c6e756d4f66436162696e65747360981b602082015291506165c29050565b15612f205760208114612e975760405162461bcd60e51b8152600401610e12906185a8565b604080516020601f8401819004810282018101909252828152600091612ed59185858083850183828082843760009201919091525061661b92505050565b905060008111612ef75760405162461bcd60e51b8152600401610e1290618682565b6064811115612f185760405162461bcd60e51b8152600401610e12906186ca565b600c55613043565b612f8884848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601181527073797374656d526577617264526174696f60781b602082015291506165c29050565b1561302b5760208114612fad5760405162461bcd60e51b8152600401610e1290618db9565b604080516020601f8401819004810282018101909252828152600091612feb9185858083850183828082843760009201919091525061661b92505050565b90506127106130056006548361624090919063ffffffff16565b11156130235760405162461bcd60e51b8152600401610e1290618bc0565b600f55613043565b60405162461bcd60e51b8152600401610e1290618e5a565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a8484848460405161307894939291906183c9565b60405180910390a150505050565b60046020526000908152604090205481565b68056bc75e2d6310000081565b6001546060906000805b828110156130d4576130c081611d1c565b156130cc578160010191505b6001016130af565b50606081604051908082528060200260200182016040528015613101578160200160208202803683370190505b5090506000915060005b838110156131885761311c81611d1c565b15613180576001818154811061312e57fe5b600091825260209091206004909102015482516001600160a01b039091169083908590811061315957fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508260010192505b60010161310b565b50925050505b90565b601581565b61027181565b61100281565b6013818154811061246a57fe5b60006131b96130a5565b519050600080600c54116131ce5760156131d2565b600c545b9050808211156131e0578091505b816131ea57600191505b5090565b67016345785d8a000081565b60055481565b61100381565b61200481565b60005460ff161561322f5760405162461bcd60e51b8152600401610e1290618b89565b613237617ad6565b600061325d604051806101e001604052806101ab8152602001618ffd6101ab9139613d83565b915091508061327e5760405162461bcd60e51b8152600401610e1290618cdc565b60005b8260200151518110156133a3576001836020015182815181106132a057fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a09093015160039093019290925591860151805191850193918590811061337657fe5b602090810291909101810151516001600160a01b0316825281019190915260400160002055600101613281565b50506103e8600255506000805460ff19166001179055565b600d5481565b601354600090815b818110156134ca576134b285858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060138054909250859150811061341a57fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156134a85780601f1061347d576101008083540402835291602001916134a8565b820191906000526020600020905b81548152906001019060200180831161348b57829003601f168201915b5050505050616620565b156134c257600192505050611dc7565b6001016133c9565b5060125460005b8181101561353b5761352286868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060128054909250859150811061341a57fe5b156135335760019350505050611dc7565b6001016134d1565b50600095945050505050565b33611001146135685760405162461bcd60e51b8152600401610e1290618e81565b600b5461362657613577617a00565b60015460005b8181101561362257600b805460018101825560009190915283516000805160206191c883398151915260169092029182019081556020808601516000805160206192088339815191528401805460ff19169115159190911790556040860151805187946135fe936000805160206191e8833981519152909101920190617a2f565b5060608201516136149060038301906013617aa9565b50505080600101905061357d565b5050505b600061363182616684565b905061363c81611c4d565b1561190057611900828261652a565b606581565b601181565b3341146136745760405162461bcd60e51b8152600401610e1290618d6c565b60005460ff166136965760405162461bcd60e51b8152600401610e12906185dd565b600034116136b65760405162461bcd60e51b8152600401610e12906188c9565b3a156136d45760405162461bcd60e51b8152600401610e1290618a5b565b6001600160a01b03811660009081526004602052604090205460145434919060ff1661371457610271600f556103e86006556014805460ff191660011790555b60008211801561372657506000600f54115b156137d8576000613754612710613748600f543461680790919063ffffffff16565b9063ffffffff61684116565b905080156137d6576040516110029082156108fc029083906000818181858888f1935050505015801561378b573d6000803e3d6000fd5b507f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d816040516137bb9190618f10565b60405180910390a16137d3838263ffffffff6161fe16565b92505b505b6000821180156137ea57506000600654115b1561389057600061380c6127106137486006543461680790919063ffffffff16565b9050801561388e5760405161dead9082156108fc029083906000818181858888f19350505050158015613843573d6000803e3d6000fd5b507f627059660ea01c4733a328effb2294d2f86905bf806da763a89cee254de8bee5816040516138739190618f10565b60405180910390a161388b838263ffffffff6161fe16565b92505b505b801561398e5760006001808303815481106138a757fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff161561391457836001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4846040516139079190618f10565b60405180910390a2613988565b600354613927908463ffffffff61624016565b600390815581015461393f908463ffffffff61624016565b60038201556040516001600160a01b038516907f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc0559061397f908690618f10565b60405180910390a25b50610e34565b826001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4836040516139c79190618f10565b60405180910390a2505050565b600e5481565b61100081565b61dead81565b600b81815481106139f357fe5b6000918252602091829020601691909102018054600180830154600280850180546040805161010096831615969096026000190190911692909204601f810188900488028501880190925281845293965060ff90911694919291830182828015613a9e5780601f10613a7357610100808354040283529160200191613a9e565b820191906000526020600020905b815481529060010190602001808311613a8157829003601f168201915b5050505050905083565b61100481565b6000600a5460001480613abf575082155b80613aca5750600954155b15613ad757506000613d7b565b60096000815460019003919050819055506000613b22600a5461374886613748600b8a81548110613b0457fe5b6000918252602090912060169091020154439063ffffffff6161fe16565b90506000600b8681548110613b3357fe5b906000526020600020906016020160010160006101000a81548160ff0219169083151502179055506000806110016001600160a01b0316638256ace66040518163ffffffff1660e01b8152600401604080518083038186803b158015613b9857600080fd5b505afa158015613bac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613bd091906180c3565b9150915060009350808310613d3157613be98888615162565b5060405163436aa28360e11b8152600090612002906386d5450690613c12908c90600401618200565b60206040518083038186803b158015613c2a57600080fd5b505afa158015613c3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c629190617e70565b6001600160a01b031614613cd0576040516328aa02b160e01b8152611001906328aa02b190613c99908b9087908a9060040161826f565b600060405180830381600087803b158015613cb357600080fd5b505af1158015613cc7573d6000803e3d6000fd5b50505050613d28565b6040516305bfb49960e41b815261100190635bfb499090613cf5908b90600401618200565b600060405180830381600087803b158015613d0f57600080fd5b505af1158015613d23573d6000803e3d6000fd5b505050505b60019350613d43565b818310613d4357613d4188616684565b505b6040516001600160a01b038916907fb9d38178dc641ff1817967a63c9078cbcd955a9f1fcd75e0e3636de615d44d3b90600090a25050505b949350505050565b613d8b617ad6565b6000613d95617ad6565b613d9d617b73565b613dae613da986616883565b6168a8565b90506000805b613dbd836168f2565b15613f315780613de257613dd8613dd384616913565b616961565b60ff168452613f29565b8060011415613f24576060613dfe613df985616913565b6169e1565b90508051604051908082528060200260200182016040528015613e3b57816020015b613e28617afa565b815260200190600190039081613e205790505b5085602001819052508051604051908082528060200260200182016040528015613e7957816020015b6060815260200190600190039081613e645790505b50604086015260005b8151811015613f1957613e93617afa565b60606000613eb3858581518110613ea657fe5b6020026020010151616ab2565b92509250925080613ed3578860009a509a50505050505050505050613f3a565b8289602001518581518110613ee457fe5b60200260200101819052508189604001518581518110613f0057fe5b6020026020010181905250505050806001019050613e82565b506001925050613f29565b613f31565b600101613db4565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b6060815260200190600190039081613f59579050509050613f7f8363ffffffff16616bcc565b81600081518110613f8c57fe5b602002602001018190525061116081616bdf565b6000606483511115613fd7576000805160206191a8833981519152604051613fc790618727565b60405180910390a1506066611dc7565b60005b83518110156140755760005b8181101561406c57848181518110613ffa57fe5b6020026020010151600001516001600160a01b031685838151811061401b57fe5b6020026020010151600001516001600160a01b03161415614064576000805160206191a883398151915260405161405190618837565b60405180910390a1606692505050611dc7565b600101613fe6565b50600101613fda565b5060608060606015805480602002602001604051908101604052809291908181526020016000905b828210156141275760008481526020908190206040805160c0810182526004860290920180546001600160a01b039081168452600180830154821685870152600283015491821693850193909352600160a01b81046001600160401b03166060850152600160e01b900460ff16151560808401526003015460a0830152908352909201910161409d565b50505050905060606016805480602002602001604051908101604052809291908181526020016000905b828210156141fc5760008481526020908190208301805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156141e85780601f106141bd576101008083540402835291602001916141e8565b820191906000526020600020905b8154815290600101906020018083116141cb57829003601f168201915b505050505081526020019060010190614151565b50505050905060005b82518110156142595782818151811061421a57fe5b60200260200101516060015160030283828151811061423557fe5b60209081029190910101516001600160401b03909116606090910152600101614205565b5060608061426989898686616c69565b915091506142778282615525565b600154604080518281526020808402820101909152929850909650600095508594509250606091508280156142b6578160200160208202803683370190505b50905060005b828110156144475760006001600160a01b03166120026001600160a01b03166386d54506600184815481106142ed57fe5b60009182526020909120600491820201546040516001600160e01b031960e085901b168152614328926001600160a01b039092169101618200565b60206040518083038186803b15801561434057600080fd5b505afa158015614354573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143789190617e70565b6001600160a01b0316146143da57600182828151811061439457fe5b602002602001019060ff16908160ff1681525050600181815481106143b557fe5b9060005260206000209060040201600301546000146143d5578360010193505b61443f565b67016345785d8a0000600182815481106143f057fe5b906000526020600020906004020160030154106144125784600101945061443f565b6001818154811061441f57fe5b90600052602060002090600402016003015460001461443f578360010193505b6001016142bc565b50606084604051908082528060200260200182016040528015614474578160200160208202803683370190505b5090506060856040519080825280602002602001820160405280156144a3578160200160208202803683370190505b5090506060866040519080825280602002602001820160405280156144d2578160200160208202803683370190505b509050606087604051908082528060200260200182016040528015614501578160200160208202803683370190505b5090506000606088604051908082528060200260200182016040528015614532578160200160208202803683370190505b509050606089604051908082528060200260200182016040528015614561578160200160208202803683370190505b50905060009a506000995060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b1580156145a957600080fd5b505afa1580156145bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145e191906180ab565b905067016345785d8a000081111561462d576000805160206191a883398151915260405161460e90618b48565b60405180910390a160689e505050505050505050505050505050611dc7565b60005b8a8110156149c15789818151811061464457fe5b602002602001015160ff166001141561473a576001818154811061466457fe5b906000526020600020906004020160030154600014614735576001818154811061468a57fe5b600091825260209091206004909102015484516001600160a01b039091169085908e9081106146b557fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600181815481106146e257fe5b906000526020600020906004020160030154838d8151811061470057fe5b60200260200101818152505060018a8d8151811061471a57fe5b602002602001019060ff16908160ff16815250508b6001019b505b6149b9565b67016345785d8a00006001828154811061475057fe5b906000526020600020906004020160030154106148d5576001818154811061477457fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316898e815181106147a557fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be400600183815481106147da57fe5b906000526020600020906004020160030154816147f357fe5b066001838154811061480157fe5b90600052602060002090600402016003015403905061482983826161fe90919063ffffffff16565b898f8151811061483557fe5b6020026020010181815250506001828154811061484e57fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316878f8151811061487f57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081888f815181106148ac57fe5b60209081029190910101526148c7868263ffffffff61624016565b95508d6001019d50506149b9565b600181815481106148e257fe5b9060005260206000209060040201600301546000146149b9576001818154811061490857fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316848d8151811061493957fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506001818154811061496657fe5b906000526020600020906004020160030154838d8151811061498457fe5b60200260200101818152505060008a8d8151811061499e57fe5b602002602001019060ff16908160ff16815250508b6001019b505b600101614630565b5060008415614c37576002546040516303702b2960e51b815261100491636e0565209188916149fb918e918e918d91420190600401618331565b6020604051808303818588803b158015614a1457600080fd5b505af193505050508015614a45575060408051601f3d908101601f19168201909252614a4291810190617fd8565b60015b614bbc576040516000815260443d1015614a6157506000614afc565b60046000803e60005160e01c6308c379a08114614a82576000915050614afc565b60043d036004833e81513d60248201116001600160401b0382111715614aad57600092505050614afc565b80830180516001600160401b03811115614ace576000945050505050614afc565b8060208301013d8601811115614aec57600095505050505050614afc565b601f01601f191660405250925050505b80614b075750614b49565b60019150857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf28082604051614b3b91906183b6565b60405180910390a250614bb7565b3d808015614b73576040519150601f19603f3d011682016040523d82523d6000602084013e614b78565b606091505b5060019150857fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a4582604051614bad91906183b6565b60405180910390a2505b614c37565b8015614bfe577fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b7086604051614bf19190618f10565b60405180910390a1614c35565b857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280604051614c2c906184e0565b60405180910390a25b505b8015614ded5760005b8751811015614deb576000888281518110614c5757fe5b60200260200101519050600060018281548110614c7057fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc9185908110614ca157fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f1935050505090508015614d5d5760018281548110614ce257fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d9185908110614d3157fe5b906000526020600020906004020160030154604051614d509190618f10565b60405180910390a2614de1565b60018281548110614d6a57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d9185908110614db957fe5b906000526020600020906004020160030154604051614dd89190618f10565b60405180910390a25b5050600101614c40565b505b835115614fe35760005b8451811015614fe1578a8181518110614e0c57fe5b602002602001015160ff1660011415614eab576120026001600160a01b031663092193ab858381518110614e3c57fe5b6020026020010151878481518110614e5057fe5b60200260200101516040518363ffffffff1660e01b8152600401614e749190618200565b6000604051808303818588803b158015614e8d57600080fd5b505af1158015614ea1573d6000803e3d6000fd5b5050505050614fd9565b6000858281518110614eb957fe5b60200260200101516001600160a01b03166108fc868481518110614ed957fe5b60200260200101519081150290604051600060405180830381858888f1935050505090508015614f6f57858281518110614f0f57fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d868481518110614f4d57fe5b6020026020010151604051614f629190618f10565b60405180910390a2614fd7565b858281518110614f7b57fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d868481518110614fb957fe5b6020026020010151604051614fce9190618f10565b60405180910390a25b505b600101614df7565b505b5050505050505050505050505060005b600154811015615050576001818154811061500a57fe5b9060005260206000209060040201600301546000146150485760006001828154811061503257fe5b9060005260206000209060040201600301819055505b600101614ff3565b5047156150be577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d476040516150869190618f10565b60405180910390a1604051611002904780156108fc02916000818181858888f193505050501580156150bc573d6000803e3d6000fd5b505b600060038190556005558151156150d9576150d98282615a0f565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561511657600080fd5b505af115801561512a573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a1506000949350505050565b6000806001838154811061517257fe5b9060005260206000209060040201600301549050600060018080549050039050600161519c6130a5565b51116151d1576000600185815481106151b157fe5b906000526020600020906004020160030181905550600092505050611dc7565b846001600160a01b03167f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a708360405161520a9190618f10565b60405180910390a26001600160a01b038516600090815260046020526040812055835b600154600019018110156153f7576001816001018154811061524b57fe5b90600052602060002090600402016001828154811061526657fe5b60009182526020909120825460049092020180546001600160a01b03199081166001600160a01b0393841617825560018085015481840180548416918616919091179055600280860180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b19909416939093179055600392830154920191909155600b80549091830190811061532757fe5b9060005260206000209060160201600b828154811061534257fe5b600091825260209091208254601690920201908155600180830154818301805460ff909216151560ff1990921691909117905560028084018054615399938386019390821615610100026000190190911604617b93565b506153ac60038281019084016013617c08565b509050508060010160046000600184815481106153c557fe5b600091825260208083206004909202909101546001600160a01b0316835282019290925260400190205560010161522d565b50600180548061540357fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b80548061545657fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906154886002830182617b2f565b615496600383016000617c32565b5050905560008183816154a557fe5b04905080156155195760015460005b81811015615516576154ed83600183815481106154cd57fe5b90600052602060002090600402016003015461624090919063ffffffff16565b600182815481106154fa57fe5b60009182526020909120600360049092020101556001016154b4565b50505b50600195945050505050565b6060806000808080806155366131af565b6001549091505b801561576857600181039250600b838154811061555657fe5b600091825260209091206001601690920201015460ff166155765761575f565b6001838154811061558357fe5b600091825260208220600490910201546001600160a01b031695506155ad90869085908590613aae565b9350836155b95761575f565b60405163436aa28360e11b81526000908190612002906386d54506906155e3908a90600401618200565b60206040518083038186803b1580156155fb57600080fd5b505afa15801561560f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906156339190617e70565b90506001600160a01b038116156156bc576040516302ceee9160e11b81526120029063059ddd2290615669908490600401618200565b60206040518083038186803b15801561568157600080fd5b505afa158015615695573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906156b99190617e70565b91505b60005b8c5181101561575b57876001600160a01b03168d82815181106156de57fe5b6020026020010151600001516001600160a01b031614806157275750826001600160a01b03168d828151811061571057fe5b6020026020010151600001516001600160a01b0316145b156157535760018d828151811061573a57fe5b602090810291909101015190151560809091015261575b565b6001016156bf565b5050505b6000190161553d565b5060005b89518110156157d55789818151811061578157fe5b602002602001015160800151806157c1575060006001600160a01b03168a82815181106157aa57fe5b6020026020010151600001516001600160a01b0316145b156157cd578560010195505b60010161576c565b50885185106158bd5760408051600180825281830190925290816020015b6157fb617afa565b8152602001906001900390816157f3575050604080516001808252818301909252919850602082015b60608152602001906001900390816158245790505095508860008151811061584857fe5b60200260200101518760008151811061585d57fe5b60200260200101819052508760008151811061587557fe5b60200260200101518660008151811061588a57fe5b60200260200101819052506000876000815181106158a457fe5b6020908102919091010151901515608090910152615a02565b848951036040519080825280602002602001820160405280156158fa57816020015b6158e7617afa565b8152602001906001900390816158df5790505b5096508489510360405190808252806020026020018201604052801561593457816020015b606081526020019060019003908161591f5790505b5095506000915060005b8951811015615a005789818151811061595357fe5b602002602001015160800151158015615996575060006001600160a01b03168a828151811061597e57fe5b6020026020010151600001516001600160a01b031614155b156159f8578981815181106159a757fe5b60200260200101518884815181106159bb57fe5b60200260200101819052508881815181106159d257fe5b60200260200101518784815181106159e657fe5b60200260200101819052508260010192505b60010161593e565b505b50505050505b9250929050565b600154825160005b82811015615b2c576001615a29617afa565b60018381548110615a3657fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b84811015615b0057878181518110615ac657fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b03161415615af85760009250615b00565b600101615ab2565b508115615b225780516001600160a01b03166000908152600460205260408120555b5050600101615a17565b5080821115615beb57805b82811015615be9576001805480615b4a57fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b805480615b9d57fe5b60008281526020812060166000199093019283020181815560018101805460ff1916905590615bcf6002830182617b2f565b615bdd600383016000617c32565b50509055600101615b37565b505b6000818310615bfa5781615bfc565b825b905060005b81811015615fa057615cae868281518110615c1857fe5b602002602001015160018381548110615c2d57fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a0820152617035565b615e62578060010160046000888481518110615cc657fe5b6020026020010151600001516001600160a01b03166001600160a01b0316815260200190815260200160002081905550858181518110615d0257fe5b602002602001015160018281548110615d1757fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a0909101516003909101558451859082908110615dd257fe5b6020026020010151600b8281548110615de757fe5b90600052602060002090601602016002019080519060200190615e0b929190617a2f565b506000600b8281548110615e1b57fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b805483908110615e4c57fe5b6000918252602090912060169091020155615f98565b858181518110615e6e57fe5b60200260200101516060015160018281548110615e8757fe5b906000526020600020906004020160020160146101000a8154816001600160401b0302191690836001600160401b03160217905550615f4d858281518110615ecb57fe5b6020026020010151600b8381548110615ee057fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156134a85780601f1061347d576101008083540402835291602001916134a8565b615f9857848181518110615f5d57fe5b6020026020010151600b8281548110615f7257fe5b90600052602060002090601602016002019080519060200190615f96929190617a2f565b505b600101615c01565b508282111561617857615fb1617a00565b835b8381101561617557858181518110615fc757fe5b602002602001015182604001819052506001878281518110615fe557fe5b6020908102919091018101518254600181810185556000948552838520835160049093020180546001600160a01b039384166001600160a01b0319918216178255848601518284018054918616918316919091179055604080860151600284018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909a1692909616919091179290921696909617169190911790935560a090930151600390930192909255600b80549283018155909352845160169091026000805160206191c88339815191528101918255858301516000805160206192088339815191528201805491151560ff199092169190911790559285015180518694929361611b936000805160206191e883398151915201920190617a2f565b5060608201516161319060038301906013617aa9565b505050806001016004600089848151811061614857fe5b602090810291909101810151516001600160a01b0316825281019190915260400160002055600101615fb3565b50505b616180617091565b616188617279565b6000600981905560015493505b838110156161f6576000600b82815481106161ac57fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b8054839081106161dd57fe5b6000918252602090912060169091020155600101616195565b505050505050565b600061116083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250617467565b6000828201838110156111605760405162461bcd60e51b8152600401610e129061864b565b6001548151604080518281526020808402820101909152606092919083908280156162a457816020015b606081526020019060019003908161628f5790505b50600b5490915083146162bb579250611d17915050565b60005b828110156163ca57600b6001600460008985815181106162da57fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054038154811061630e57fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156163a65780601f1061637b576101008083540402835291602001916163a6565b820191906000526020600020905b81548152906001019060200180831161638957829003601f168201915b50505050508282815181106163b757fe5b60209081029190910101526001016162be565b50949350505050565b60005b8281101561652057600082878388016040516020016163f69291906181f2565b6040516020818303038152906040528051906020012060001c8161641657fe5b06905080850182870114616517576000898388018151811061643457fe5b602002602001015190506060898489018151811061644e57fe5b602002602001015190508a8388018151811061646657fe5b60200260200101518b858a018151811061647c57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050818b848901815181106164ab57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505089838801815181106164d957fe5b60200260200101518a858a01815181106164ef57fe5b6020026020010181905250808a8489018151811061650957fe5b602002602001018190525050505b506001016163d6565b5050505050505050565b600980546001908101909155600b80548390811061654457fe5b906000526020600020906016020160010160006101000a81548160ff02191690831515021790555043600b828154811061657a57fe5b600091825260208220601690910201919091556040516001600160a01b038416917ff62981a567ec3cec866c6fa93c55bcdf841d6292d18b8d522ececa769375d82d91a25050565b6000816040516020016165d591906181d6565b60405160208183030381529060405280519060200120836040516020016165fc91906181d6565b6040516020818303038152906040528051906020012014905092915050565b015190565b81518151600091600191811480831461663c576000925061667a565b600160208701838101602088015b6002848385100114156166755780518351146166695760009650600093505b6020928301920161664a565b505050505b5090949350505050565b6001600160a01b038116600090815260046020526040812054806166ad57506000199050611d17565b6001810390506000600182815481106166c257fe5b90600052602060002090600402016003015490506000600183815481106166e557fe5b6000918252602090912060036004909202010155600154604051600019909101906001600160a01b038616907f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d9061673e908590618f10565b60405180910390a28061675657829350505050611d17565b600081838161676157fe5b04905080156167fd5760005b848110156167af5761678682600183815481106154cd57fe5b6001828154811061679357fe5b600091825260209091206003600490920201015560010161676d565b50600180549085015b818110156167fa576167d183600183815481106154cd57fe5b600182815481106167de57fe5b60009182526020909120600360049092020101556001016167b8565b50505b5091949350505050565b60008261681657506000611dc7565b8282028284828161682357fe5b04146111605760405162461bcd60e51b8152600401610e1290618a1a565b600061116083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250617493565b61688b617c41565b506040805180820190915281518152602082810190820152919050565b6168b0617b73565b6168b9826174ca565b6168c257600080fd5b60006168d18360200151617504565b60208085015160408051808201909152868152920190820152915050919050565b60006168fc617c41565b505080518051602091820151919092015191011190565b61691b617c41565b616924826168f2565b61692d57600080fd5b6020820151600061693d82617567565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061697657508151602110155b61697f57600080fd5b600061698e8360200151617504565b905080836000015110156169b45760405162461bcd60e51b8152600401610e1290618c28565b8251602080850151830180519284900392918310156163ca57506020919091036101000a90049392505050565b60606169ec826174ca565b6169f557600080fd5b6000616a0083617648565b9050606081604051908082528060200260200182016040528015616a3e57816020015b616a2b617c41565b815260200190600190039081616a235790505b5090506000616a508560200151617504565b60208601510190506000805b84811015616aa757616a6d83617567565b9150604051806040016040528083815260200184815250848281518110616a9057fe5b602090810291909101015291810191600101616a5c565b509195945050505050565b616aba617afa565b60606000616ac6617afa565b6060616ad0617b73565b616ad9876168a8565b90506000805b616ae8836168f2565b15616bbd5780616b1357616b03616afe84616913565b6176a4565b6001600160a01b03168552616bb5565b8060011415616b3b57616b28616afe84616913565b6001600160a01b03166020860152616bb5565b8060021415616b6357616b50616afe84616913565b6001600160a01b03166040860152616bb5565b8060031415616b8f57616b78613dd384616913565b6001600160401b0316606086015260019150616bb5565b8060041415616bb057616ba9616ba484616913565b6176be565b9350616bb5565b616bbd565b600101616adf565b50929791965091945092505050565b6060611dc7616bda8361772e565b617814565b6060815160001415616c005750604080516000815260208101909152611d17565b606082600081518110616c0f57fe5b602002602001015190506000600190505b8351811015616c5057616c4682858381518110616c3957fe5b6020026020010151617866565b9150600101616c20565b50611160616c63825160c060ff166178e3565b82617866565b60608060006120026001600160a01b031663c473318f6040518163ffffffff1660e01b815260040160206040518083038186803b158015616ca957600080fd5b505afa158015616cbd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190616ce191906180ab565b90508085518851011015616cf6575083518651015b606081604051908082528060200260200182016040528015616d3257816020015b616d1f617afa565b815260200190600190039081616d175790505b509050606082604051908082528060200260200182016040528015616d6b57816020015b6060815260200190600190039081616d565790505b50905060008060005b8b51831080616d835750895182105b8015616d8e57508581105b15617023578b51831415616dfe57898281518110616da857fe5b6020026020010151858281518110616dbc57fe5b6020026020010181905250888281518110616dd357fe5b6020026020010151848281518110616de757fe5b602090810291909101015260019182019101616d74565b8951821415616e69578b8381518110616e1357fe5b6020026020010151858281518110616e2757fe5b60200260200101819052508a8381518110616e3e57fe5b6020026020010151848281518110616e5257fe5b602090810291909101015260019283019201616d74565b898281518110616e7557fe5b6020026020010151606001516001600160401b03168c8481518110616e9657fe5b6020026020010151606001516001600160401b03161115616f12578b8381518110616ebd57fe5b6020026020010151858281518110616ed157fe5b60200260200101819052508a8381518110616ee857fe5b6020026020010151848281518110616efc57fe5b602002602001018190525082600101925061701b565b898281518110616f1e57fe5b6020026020010151606001516001600160401b03168c8481518110616f3f57fe5b6020026020010151606001516001600160401b03161015616fbb57898281518110616f6657fe5b6020026020010151858281518110616f7a57fe5b6020026020010181905250888281518110616f9157fe5b6020026020010151848281518110616fa557fe5b602002602001018190525081600101915061701b565b898281518110616fc757fe5b6020026020010151600001516001600160a01b03168c8481518110616fe857fe5b6020026020010151600001516001600160a01b0316101561700f578b8381518110616ebd57fe5b898281518110616da857fe5b600101616d74565b50929a91995090975050505050505050565b805182516000916001600160a01b03918216911614801561706f575081602001516001600160a01b031683602001516001600160a01b0316145b80156111605750506040908101519101516001600160a01b0390811691161490565b601254601354808211156170dc57805b828110156170da5760128054806170b457fe5b6001900381819060005260206000200160006170d09190617b2f565b90556001016170a1565b505b60008183106170eb57816170ed565b825b905060005b81811015617205576171aa6012828154811061710a57fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156171985780601f1061716d57610100808354040283529160200191617198565b820191906000526020600020905b81548152906001019060200180831161717b57829003601f168201915b50505050506013838154811061341a57fe5b6171fd57601381815481106171bb57fe5b90600052602060002001601282815481106171d257fe5b9060005260206000200190805460018160011615610100020316600290046171fb929190617b93565b505b6001016170f2565b5082821115610e3457825b828110156172735760126013828154811061722757fe5b600091825260208083208454600181810187559585529190932092909101805461726a949390920192909160026101009282161592909202600019011604617b93565b50600101617210565b50505050565b601354600b54808211156172c457805b828110156172c257601380548061729c57fe5b6001900381819060005260206000200160006172b89190617b2f565b9055600101617289565b505b60008183106172d357816172d5565b825b905060005b818110156173f457617392601382815481106172f257fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156173805780601f1061735557610100808354040283529160200191617380565b820191906000526020600020905b81548152906001019060200180831161736357829003601f168201915b5050505050600b8381548110615ee057fe5b6173ec57600b81815481106173a357fe5b9060005260206000209060160201600201601382815481106173c157fe5b9060005260206000200190805460018160011615610100020316600290046173ea929190617b93565b505b6001016172da565b5082821115610e3457825b82811015617273576013600b828154811061741657fe5b60009182526020808320845460018082018755958552919093206016929092029092016002908101805461745e95939094019390926000199082161561010002011604617b93565b506001016173ff565b6000818484111561748b5760405162461bcd60e51b8152600401610e1291906183b6565b505050900390565b600081836174b45760405162461bcd60e51b8152600401610e1291906183b6565b5060008385816174c057fe5b0495945050505050565b80516000906174db57506000611d17565b6020820151805160001a9060c08210156174fa57600092505050611d17565b5060019392505050565b8051600090811a608081101561751e576000915050611d17565b60b8811080617539575060c08110801590617539575060f881105b15617548576001915050611d17565b60c081101561755c5760b519019050611d17565b60f519019050611d17565b80516000908190811a60808110156175825760019150617641565b60b881101561759757607e1981019150617641565b60c08110156175e857600060b78203600186019550806020036101000a8651049150600181018201935050808310156175e25760405162461bcd60e51b8152600401610e1290618967565b50617641565b60f88110156175fd5760be1981019150617641565b600060f78203600186019550806020036101000a86510491506001810182019350508083101561763f5760405162461bcd60e51b8152600401610e1290618967565b505b5092915050565b805160009061765957506000611d17565b6000809050600061766d8460200151617504565b602085015185519181019250015b8082101561769b5761768c82617567565b8201915082600101925061767b565b50909392505050565b80516000906015146176b557600080fd5b611dc782616961565b80516060906176cc57600080fd5b60006176db8360200151617504565b83516040805191839003808352601f19601f8201168301602001909152919250606090828015617712576020820181803683370190505b50905060008160200190506163ca8487602001510182856179b5565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff19841661777257506018617796565b6fffffffffffffffffffffffffffffffff19841661779257506010617796565b5060005b60208110156177cc578181815181106177ab57fe5b01602001516001600160f81b031916156177c4576177cc565b600101617796565b60008160200390506060816040519080825280601f01601f191660200182016040528015617801576020820181803683370190505b5080830196909652508452509192915050565b6060815160011480156178465750607f60f81b8260008151811061783457fe5b01602001516001600160f81b03191611155b15617852575080611d17565b611dc76178648351608060ff166178e3565b835b6060806040519050835180825260208201818101602087015b8183101561789757805183526020928301920161787f565b50855184518101855292509050808201602086015b818310156178c45780518352602092830192016178ac565b508651929092011591909101601f01601f191660405250905092915050565b606068010000000000000000831061790d5760405162461bcd60e51b8152600401610e12906187b2565b604080516001808252818301909252606091602082018180368337019050509050603784116179675782840160f81b8160008151811061794957fe5b60200101906001600160f81b031916908160001a9053509050611dc7565b60606179728561772e565b90508381510160370160f81b8260008151811061798b57fe5b60200101906001600160f81b031916908160001a9053506179ac8282617866565b95945050505050565b806179bf57610e34565b5b602081106179df578251825260209283019290910190601f19016179c0565b915181516020939093036101000a6000190180199091169216919091179052565b60405180608001604052806000815260200160001515815260200160608152602001617a2a617c5b565b905290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10617a7057805160ff1916838001178555617a9d565b82800160010185558215617a9d579182015b82811115617a9d578251825591602001919060010190617a82565b506131ea929150617c7a565b8260138101928215617a9d5791602002820182811115617a9d578251825591602001919060010190617a82565b6040518060600160405280600060ff16815260200160608152602001606081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b50805460018160011615610100020316600290046000825580601f10617b555750611f2f565b601f016020900490600052602060002090810190611f2f9190617c7a565b6040518060400160405280617b86617c41565b8152602001600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10617bcc5780548555617a9d565b82800160010185558215617a9d57600052602060002091601f016020900482015b82811115617a9d578254825591600101919060010190617bed565b8260138101928215617a9d5791820182811115617a9d578254825591600101919060010190617bed565b50611f2f906013810190617c7a565b604051806040016040528060008152602001600081525090565b6040518061026001604052806013906020820280368337509192915050565b61318e91905b808211156131ea5760008155600101617c80565b8035611dc781618fe7565b60008083601f840112617cb0578182fd5b5081356001600160401b03811115617cc6578182fd5b6020830191508360208083028501011115615a0857600080fd5b6000601f8381840112617cf1578182fd5b8235617d04617cff82618f9c565b618f76565b818152925060208084019085810160005b84811015617d96578135880189603f820112617d3057600080fd5b838101356001600160401b03811115617d4857600080fd5b617d59818901601f19168601618f76565b81815260408c81848601011115617d6f57600080fd5b82818501888401375060009181018601919091528552509282019290820190600101617d15565b50505050505092915050565b600082601f830112617db2578081fd5b8135617dc0617cff82618f9c565b818152915060208083019084810181840286018201871015617de157600080fd5b6000805b85811015617d965782356001600160401b0381168114617e03578283fd5b85529383019391830191600101617de5565b60008083601f840112617e26578182fd5b5081356001600160401b03811115617e3c578182fd5b602083019150836020828501011115615a0857600080fd5b600060208284031215617e65578081fd5b813561116081618fe7565b600060208284031215617e81578081fd5b815161116081618fe7565b60008060008060408587031215617ea1578283fd5b84356001600160401b0380821115617eb7578485fd5b617ec388838901617c9f565b90965094506020870135915080821115617edb578384fd5b50617ee887828801617c9f565b95989497509550505050565b600080600060608486031215617f08578283fd5b83356001600160401b0380821115617f1e578485fd5b81860187601f820112617f2f578586fd5b80359250617f3f617cff84618f9c565b80848252602080830192508084018b828389028701011115617f5f57898afd5b8994505b86851015617f8957617f758c82617c94565b845260019490940193928101928101617f63565b509097508801359350505080821115617fa0578384fd5b617fac87838801617da2565b93506040860135915080821115617fc1578283fd5b50617fce86828701617ce0565b9150509250925092565b600060208284031215617fe9578081fd5b81518015158114611160578182fd5b6000806020838503121561800a578182fd5b82356001600160401b0381111561801f578283fd5b61802b85828601617e15565b90969095509350505050565b6000806000806040858703121561804c578384fd5b84356001600160401b0380821115618062578586fd5b61806e88838901617e15565b90965094506020870135915080821115618086578384fd5b50617ee887828801617e15565b6000602082840312156180a4578081fd5b5035919050565b6000602082840312156180bc578081fd5b5051919050565b600080604083850312156180d5578182fd5b505080516020909101519092909150565b6000806000604084860312156180fa578081fd5b833560ff8116811461810a578182fd5b925060208401356001600160401b03811115618124578182fd5b61813086828701617e15565b9497909650939450505050565b6000815180845260208085019450808401835b838110156181755781516001600160a01b031687529582019590820190600101618150565b509495945050505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b600081518084526181c2816020860160208601618fbb565b601f01601f19169290920160200192915050565b600082516181e8818460208701618fbb565b9190910192915050565b918252602082015260400190565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b03968716815294861660208601529290941660408401526001600160401b03166060830152911515608082015260a081019190915260c00190565b6001600160a01b0393909316835260208301919091521515604082015260600190565b6001600160a01b0392909216825260ff16602082015260400190565b600060208252611160602083018461813d565b6000604082526182d4604083018561813d565b602083820381850152818551808452828401915082838202850101838801865b8381101561832257601f198784030185526183108383516181aa565b948601949250908501906001016182f4565b50909998505050505050505050565b600060808252618344608083018761813d565b828103602084810191909152865180835287820192820190845b8181101561837a5784518352938301939183019160010161835e565b5050848103604086015261838e818861813d565b93505050506001600160401b038316606083015295945050505050565b901515815260200190565b60006020825261116060208301846181aa565b6000604082526183dd604083018688618180565b82810360208401526183f0818587618180565b979650505050505050565b6020808252601c908201527f6c656e677468206f66206275726e526174696f206d69736d6174636800000000604082015260600190565b60208082526042908201527f746865206275726e526174696f20706c75732073797374656d5265776172645260408201527f6174696f206d757374206265206e6f2067726561746572207468616e20313030606082015261030360f41b608082015260a00190565b60208082526026908201527f6c656e677468206f66206d61784e756d4f664d61696e7461696e696e67206d696040820152650e6dac2e8c6d60d31b606082015260800190565b6020808252601b908201527f6261746368207472616e736665722072657475726e2066616c73650000000000604082015260600190565b6020808252602c908201527f6c656e677468206f66206d61784e756d4f66576f726b696e6743616e6469646160408201526b0e8cae640dad2e6dac2e8c6d60a31b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61696e7461696e536c6173685363616c65206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252818101527f6c656e677468206f66206e756d4f66436162696e657473206d69736d61746368604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252601f908201527f6f6e6c7920736c617368206f72207374616b6548756220636f6e747261637400604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526028908201527f746865206e756d4f66436162696e657473206d75737420626520677265617465604082015267072207468616e20360c41b606082015260800190565b60208082526039908201527f746865206e756d4f66436162696e657473206d757374206265206c657373207460408201527f68616e204d41585f4e554d5f4f465f56414c494441544f525300000000000000606082015260800190565b60208082526029908201527f746865206e756d626572206f662076616c696461746f727320657863656564206040820152681d1a19481b1a5b5a5d60ba1b606082015260800190565b60208082526022908201527f63616e206e6f7420646f207468697320747769636520696e206f6e6520626c6f604082015261636b60f01b606082015260800190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526037908201527f746865206d61784e756d4f664d61696e7461696e696e67206d7573742062652060408201527f6c657373207468616e206e756d4f66436162696e657473000000000000000000606082015260800190565b6020808252602b908201527f6475706c696361746520636f6e73656e7375732061646472657373206f66207660408201526a185b1a59185d1bdc94d95d60aa1b606082015260800190565b60208082526027908201527f7468652065787069726554696d655365636f6e64476170206973206f7574206f604082015266662072616e676560c81b606082015260800190565b6020808252601590820152746465706f7369742076616c7565206973207a65726f60581b604082015260600190565b60208082526049908201527f746865206d61784e756d4f66576f726b696e6743616e64696461746573206d7560408201527f7374206265206e6f742067726561746572207468616e206d61784e756d4f6643606082015268616e6469646174657360b81b608082015260a00190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b60208082526023908201527f63616e206e6f7420656e7465722054656d706f72617279204d61696e74656e616040820152626e636560e81b606082015260800190565b60208082526025908201527f6c656e677468206f66206a61696c2076616c696461746f7273206d757374206260408201526465206f6e6560d81b606082015260800190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61784e756d4f6643616e64696461746573206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252601290820152716e6f7420696e206d61696e74656e616e636560701b604082015260600190565b60208082526021908201527f666565206973206c6172676572207468616e2044555354595f494e434f4d494e6040820152604760f81b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b60208082526042908201527f7468652073797374656d526577617264526174696f20706c7573206275726e5260408201527f6174696f206d757374206265206e6f2067726561746572207468616e20313030606082015261030360f41b608082015260a00190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526026908201527f6c656e677468206f662065787069726554696d655365636f6e64476170206d696040820152650e6dac2e8c6d60d31b606082015260800190565b60208082526017908201527f6f6e6c792063757272656e742076616c696461746f7273000000000000000000604082015260600190565b60208082526021908201527f6661696c656420746f20706172736520696e69742076616c696461746f7253656040820152601d60fa1b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b60208082526024908201527f6c656e677468206f662073797374656d526577617264526174696f206d69736d6040820152630c2e8c6d60e31b606082015260800190565b6020808252603e908201527f746865206d61696e7461696e536c6173685363616c65206d757374206265206760408201527f726561746572207468616e203020616e64206c657373207468616e2031300000606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b60208082526029908201527f746865206d6573736167652073656e646572206d75737420626520736c6173686040820152680818dbdb9d1c9858dd60ba1b606082015260800190565b6020808252601f908201527f746865206d73672073656e646572206d757374206265207374616b6548756200604082015260600190565b61ffff91909116815260200190565b90815260200190565b60008482528315156020830152606060408301526179ac60608301846181aa565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff85168252604060208301526179ac604083018486618180565b6040518181016001600160401b0381118282101715618f9457600080fd5b604052919050565b60006001600160401b03821115618fb1578081fd5b5060209081020190565b60005b83811015618fd6578181015183820152602001618fbe565b838111156172735750506000910152565b6001600160a01b0381168114611f2f57600080fdfef901a880f901a4f844941284214b9b9c85549ab3d2b972df0deef66ac2c9946ddf42a51534fc98d0c0a3b42c963cace8441ddf946ddf42a51534fc98d0c0a3b42c963cace8441ddf8410000000f84494a2959d3f95eae5dc7d70144ce1b73b403b7eb6e0948081ef03f1d9e0bb4a5bf38f16285c879299f07f948081ef03f1d9e0bb4a5bf38f16285c879299f07f8410000000f8449435552c16704d214347f29fa77f77da6d75d7c75294dc4973e838e3949c77aced16ac2315dc2d7ab11194dc4973e838e3949c77aced16ac2315dc2d7ab1118410000000f84494980a75ecd1309ea12fa2ed87a8744fbfc9b863d594cc6ac05c95a99c1f7b5f88de0e3486c82293b27094cc6ac05c95a99c1f7b5f88de0e3486c82293b2708410000000f84494f474cf03cceff28abc65c9cbae594f725c80e12d94e61a183325a18a173319dd8e19c8d069459e217594e61a183325a18a173319dd8e19c8d069459e21758410000000f84494b71b214cb885500844365e95cd9942c7276e7fd894d22ca3ba2141d23adab65ce4940eb7665ea2b6a794d22ca3ba2141d23adab65ce4940eb7665ea2b6a7841000000070e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb20175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbb0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbaa164736f6c6343000604000a", + }, + { + ContractAddr: SlashContract, + CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/b743ce3f1f1e94c349b175cd6593bc263463b33b", + Code: "608060405234801561001057600080fd5b506004361061035d5760003560e01c80637942fd05116101d3578063c80d4b8f11610104578063df8079e9116100a2578063f9a2bbc71161007c578063f9a2bbc714610601578063fc3e590814610609578063fc4333cd14610611578063fd6a6879146106195761035d565b8063df8079e9146105e9578063e1c7392a146105f1578063f1fad104146105f95761035d565b8063c96be4cb116100de578063c96be4cb146105b3578063cc844b73146105c6578063dc927faf146105d9578063dcc6f156146105e15761035d565b8063c80d4b8f14610590578063c81b166214610598578063c8509d81146105a05761035d565b8063a1a11bf511610171578063aad560631161014b578063aad5606314610565578063ab51bb961461056d578063ac0af62914610575578063ac4317511461057d5761035d565b8063a1a11bf51461054d578063a78abc1614610555578063aa82dce11461055d5761035d565b8063831d65d1116101ad578063831d65d11461052257806396713da9146105355780639dc092621461053d5780639f804f5f146105455761035d565b80637942fd051461050a5780637e434d54146105125780638256ace61461051a5761035d565b806343756e5c116102ad5780635bfb49901161024b57806370fd5bad1161022557806370fd5bad146104ea578063718a8aa8146104f257806375d47a0a146104fa5780637912a65d146105025761035d565b80635bfb4990146104c757806362b72cf5146104da5780636e47b482146104e25761035d565b806350055f901161028757806350055f90146104a757806351b4dce3146104af57806351e80672146104b7578063567a372d146104bf5761035d565b806343756e5c14610482578063493279b11461048a5780634bf6c8821461049f5761035d565b8063280870281161031a57806335aa2e44116102f457806335aa2e441461043157806337c8dab914610444578063389f4f71146104655780633dffc3871461046d5761035d565b8063280870281461040157806328aa02b1146104095780633306ccca1461041c5761035d565b80630bee7a67146103625780630e2374a5146103805780631182b8751461039557806322d1e80b146103b557806323bac5a2146103ca57806327962118146103ec575b600080fd5b61036a610621565b6040516103779190613d96565b60405180910390f35b610388610626565b6040516103779190613574565b6103a86103a33660046134aa565b61062c565b60405161037791906135ac565b6103bd610692565b60405161037791906135a1565b6103dd6103d83660046131af565b61069b565b60405161037793929190613d7e565b6103ff6103fa366004613307565b6106be565b005b610388610a13565b6103ff6104173660046131e7565b610a19565b610424610a4a565b6040516103779190613d67565b61038861043f36600461347a565b610a50565b6104576104523660046131af565b610a77565b604051610377929190613d70565b610424610ace565b610475610ad4565b6040516103779190613da7565b610388610ad9565b610492610adf565b6040516103779190613d58565b610475610ae4565b610424610ae9565b610388610aef565b610388610af5565b610424610afb565b6103ff6104d53660046131af565b610b01565b610424610c0d565b610388610c13565b610475610c19565b610475610c1e565b610388610c23565b610424610c29565b610475610c2e565b610388610c33565b610457610c39565b6103ff6105303660046134aa565b610c43565b610475610d56565b610388610d5b565b610424610d61565b610388610d67565b6103bd610d6d565b610388610d76565b610388610d7c565b61036a610d82565b610424610d87565b6103ff61058b36600461335e565b610d8c565b610424611328565b61038861132d565b6103ff6105ae3660046134aa565b611333565b6103ff6105c13660046131af565b6113a4565b6103ff6105d43660046133c7565b611815565b610388611df4565b610424611dfa565b610388611dff565b6103ff611e05565b610475611e41565b610388611e46565b610475611e4c565b6103ff611e51565b61038861229a565b606481565b61200181565b606033612000146106585760405162461bcd60e51b815260040161064f90613bfb565b60405180910390fd5b60005460ff1661067a5760405162461bcd60e51b815260040161064f906136a1565b60405162461bcd60e51b815260040161064f90613cec565b60075460ff1681565b600260208190526000918252604090912080546001820154919092015460ff1683565b60005460ff166106e05760405162461bcd60e51b815260040161064f906136a1565b6006546106ed5760146006555b6008546106fb576170806008555b81511580159061070b5750805115155b6107275760405162461bcd60e51b815260040161064f90613b59565b60408051600380825260808201909252606091816020015b606081526020019060019003908161073f57905050905061076060616122a0565b8160008151811061076d57fe5b6020026020010181905250610781836122bb565b8160018151811061078e57fe5b60200260200101819052506107a2826122bb565b816002815181106107af57fe5b602002602001018190525060606107c582612311565b60408051603480825260608281019093529293509091602082018180368337019050509050815160346020830182602086016068600019fa61080657600080fd5b506014810151603482015160405163436aa28360e11b8152600090612002906386d5450690610839908690600401613574565b60206040518083038186803b15801561085157600080fd5b505afa158015610865573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088991906131cb565b6001600160a01b031614156108b05760405162461bcd60e51b815260040161064f90613671565b43600854820110156108d45760405162461bcd60e51b815260040161064f90613612565b604051631871f7d960e31b81526120029063c38fbec8906108f9908590600401613574565b600060405180830381600087803b15801561091357600080fd5b505af1158015610927573d6000803e3d6000fd5b50506040516335409f7f60e01b815261100092506335409f7f9150610950908590600401613574565b600060405180830381600087803b15801561096a57600080fd5b505af115801561097e573d6000803e3d6000fd5b50506006546040516309a99b4f60e41b815260646110028031909302049350909150639a99b4f0906109b69033908590600401613588565b602060405180830381600087803b1580156109d057600080fd5b505af11580156109e4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a089190613492565b505050505050505050565b61200581565b3361100014610a3a5760405162461bcd60e51b815260040161064f906138e4565b610a458383836123a2565b505050565b61708081565b60018181548110610a5d57fe5b6000918252602090912001546001600160a01b0316905081565b600080610a82612f96565b5050506001600160a01b0316600090815260026020818152604092839020835160608101855281548082526001830154938201849052919093015460ff16151592909301919091529091565b60055481565b600181565b61100181565b606181565b600881565b60065481565b61200681565b61200081565b60045481565b3361100014610b225760405162461bcd60e51b815260040161064f906138e4565b60005460ff16610b445760405162461bcd60e51b815260040161064f906136a1565b61200063f7a251d7600b610b5784612580565b60006040518463ffffffff1660e01b8152600401610b7793929190613db5565b600060405180830381600087803b158015610b9157600080fd5b505af1925050508015610ba2575060015b610c0a573d808015610bd0576040519150601f19603f3d011682016040523d82523d6000602084013e610bd5565b606091505b50816001600160a01b0316600080516020613ea0833981519152600083604051610c009291906135bf565b60405180910390a2505b50565b60035481565b61100581565b600281565b601081565b61100881565b603281565b600b81565b61200381565b6004546005549091565b3361200014610c645760405162461bcd60e51b815260040161064f90613bfb565b60005460ff16610c865760405162461bcd60e51b815260040161064f906136a1565b610c8e612fb9565b6000610ccf84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061264992505050565b915091508015610d165781516040517f7f0956d47419b9525356e7111652b653b530ec6f5096dccc04589bc38e62996791610d0991613d96565b60405180910390a1610d4f565b81516040517f7d45f62d17443dd4547bca8a8112c60e2385669318dc300ec61a5d2492f262e791610d4691613d96565b60405180910390a15b5050505050565b600981565b61100781565b60085481565b61100681565b60005460ff1681565b61200281565b61300081565b600081565b600481565b60005460ff16610dae5760405162461bcd60e51b815260040161064f906136a1565b3361100714610dcf5760405162461bcd60e51b815260040161064f90613a48565b610e3a84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260148152731b5a5cd9195b59585b9bdc951a1c995cda1bdb1960621b602082015291506126c99050565b15610ed55760208114610e5f5760405162461bcd60e51b815260040161064f90613870565b604080516020601f8401819004810282018101909252828152600091610e9d9185858083850183828082843760009201919091525061272392505050565b905060018110158015610eb1575060055481105b610ecd5760405162461bcd60e51b815260040161064f90613bb6565b6004556112e5565b610f3b84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e19995b1bdb9e551a1c995cda1bdb19608a1b602082015291506126c99050565b15610fd75760208114610f605760405162461bcd60e51b815260040161064f90613a96565b604080516020601f8401819004810282018101909252828152600091610f9e9185858083850183828082843760009201919091525061272392505050565b90506103e88111158015610fb3575060045481115b610fcf5760405162461bcd60e51b815260040161064f9061375a565b6005556112e5565b61104484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601681527566656c6f6e79536c617368526577617264526174696f60501b602082015291506126c99050565b156110de57602081146110695760405162461bcd60e51b815260040161064f906139d0565b604080516020601f84018190048102820181019092528281526000916110a79185858083850183828082843760009201919091525061272392505050565b9050600a81101580156110ba5750606481105b6110d65760405162461bcd60e51b815260040161064f90613ad8565b6006556112e5565b61115284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f656e61626c654d616c6963696f7573566f7465536c6173680000000000000000602082015291506126c99050565b156111c957602081146111775760405162461bcd60e51b815260040161064f9061378f565b604080516020601f84018190048102820181019092528281526111b3919084848083850183828082843760009201919091525061272892505050565b6007805460ff19169115159190911790556112e5565b61123084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601081526f66656c6f6e79536c61736853636f706560801b602082015291506126c99050565b156112cd57602081146112555760405162461bcd60e51b815260040161064f9061395f565b604080516020601f84018190048102820181019092528281526000916112939185858083850183828082843760009201919091525061272392505050565b905061708081101580156112a95750620d2f0081105b6112c55760405162461bcd60e51b815260040161064f906136d8565b6008556112e5565b60405162461bcd60e51b815260040161064f90613c97565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a8484848460405161131a94939291906135e0565b60405180910390a150505050565b609681565b61100281565b33612000146113545760405162461bcd60e51b815260040161064f90613bfb565b60005460ff166113765760405162461bcd60e51b815260040161064f906136a1565b6040517f07db600eebe2ac176be8dcebad61858c245a4961bb32ca2aa3d159b09aa0810e90600090a1505050565b3341146113c35760405162461bcd60e51b815260040161064f90613c4a565b60005460ff166113e55760405162461bcd60e51b815260040161064f906136a1565b60035443116114065760405162461bcd60e51b815260040161064f90613d23565b3a156114245760405162461bcd60e51b815260040161064f906139a2565b60405163155853f360e21b8152611000906355614fcc90611449908490600401613574565b60206040518083038186803b15801561146157600080fd5b505afa158015611475573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149991906132eb565b6114a25761180e565b6114aa612f96565b506001600160a01b0381166000908152600260208181526040928390208351606081018552815481526001820154928101929092529091015460ff16158015928201929092529061150557602081018051600101905261155e565b60016040820181905260208201819052805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0384161790555b43815260055460208201518161157057fe5b0661173c57600060208201526040516335409f7f60e01b8152611000906335409f7f906115a1908590600401613574565b600060405180830381600087803b1580156115bb57600080fd5b505af11580156115cf573d6000803e3d6000fd5b505060405163436aa28360e11b81526000925061200291506386d54506906115fb908690600401613574565b60206040518083038186803b15801561161357600080fd5b505afa158015611627573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061164b91906131cb565b6001600160a01b03161461166e5761166982826020015160006123a2565b611737565b61200063f7a251d7600b61168185612580565b60006040518463ffffffff1660e01b81526004016116a193929190613db5565b600060405180830381600087803b1580156116bb57600080fd5b505af19250505080156116cc575060015b611737573d8080156116fa576040519150601f19603f3d011682016040523d82523d6000602084013e6116ff565b606091505b50826001600160a01b0316600080516020613ea083398151915283602001518360405161172d9291906135bf565b60405180910390a2505b6117a8565b60045481602001518161174b57fe5b066117a8576040516375abf10160e11b81526110009063eb57e20290611775908590600401613574565b600060405180830381600087803b15801561178f57600080fd5b505af11580156117a3573d6000803e3d6000fd5b505050505b6001600160a01b0382166000818152600260208181526040808420865181559186015160018301558581015191909201805460ff1916911515919091179055517fddb6012116e51abf5436d956a4f0ebd927e92c576ff96d7918290c8782291e3e9190a2505b5043600355565b60005460ff166118375760405162461bcd60e51b815260040161064f906136a1565b60075460ff166118595760405162461bcd60e51b815260040161064f9061363c565b6006546118665760146006555b600854611874576170806008555b60085481516040015143910111801561189857504360085482602001516040015101115b6118b45760405162461bcd60e51b815260040161064f90613cbe565b8060200151602001518160000151602001511480156118e25750806020015160600151816000015160600151145b156118ff5760405162461bcd60e51b815260040161064f906138b7565b80516040810151905110801561191e5750602081015160408101519051105b61193a5760405162461bcd60e51b815260040161064f90613839565b60208101515181515110801561195f5750806000015160400151816020015160400151105b8061198a575080515160208201515110801561198a5750806020015160400151816000015160400151105b806119a45750806020015160400151816000015160400151145b6119c05760405162461bcd60e51b815260040161064f90613723565b604080820151905163ea321e4960e01b81526110009163ea321e49916119e991906004016135ac565b60206040518083038186803b158015611a0157600080fd5b505afa158015611a15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3991906132eb565b611a555760405162461bcd60e51b815260040161064f90613a19565b611a6781600001518260400151612750565b8015611a805750611a8081602001518260400151612750565b611a9c5760405162461bcd60e51b815260040161064f906137da565b6060806110006001600160a01b0316633b071dcc6040518163ffffffff1660e01b815260040160006040518083038186803b158015611ada57600080fd5b505afa158015611aee573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611b169190810190613228565b9150915060005b8151811015611c5357611b47828281518110611b3557fe5b60200260200101518560400151612928565b15611c4b576006546040516309a99b4f60e41b815260646110028031909302049190639a99b4f090611b7f9033908590600401613588565b602060405180830381600087803b158015611b9957600080fd5b505af1158015611bad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bd19190613492565b506110006001600160a01b03166335409f7f858481518110611bef57fe5b60200260200101516040518263ffffffff1660e01b8152600401611c139190613574565b600060405180830381600087803b158015611c2d57600080fd5b505af1158015611c41573d6000803e3d6000fd5b5050505050611c53565b600101611b1d565b5060408084015190516317b4f35360e01b8152600091612002916317b4f35391611c7f916004016135ac565b60206040518083038186803b158015611c9757600080fd5b505afa158015611cab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ccf91906131cb565b6001600160a01b031614611d3d576040808401519051630e9fbf5160e01b815261200291630e9fbf5191611d0691906004016135ac565b600060405180830381600087803b158015611d2057600080fd5b505af1158015611d34573d6000803e3d6000fd5b50505050610a45565b6120006001600160a01b031663f7a251d7600b611d5d866040015161298c565b60006040518463ffffffff1660e01b8152600401611d7d93929190613db5565b600060405180830381600087803b158015611d9757600080fd5b505af1158015611dab573d6000803e3d6000fd5b505050506000611dc0846040015160006129c7565b60405190915081907f7b78aadacff901d8b63d0dba4f86283d4db8aef27f9ed70413dd860f1c9532b690600090a250505050565b61100381565b601481565b61200481565b60005460ff1615611e285760405162461bcd60e51b815260040161064f90613b22565b603260045560966005556000805460ff19166001179055565b601181565b61100081565b600381565b3361100014611e725760405162461bcd60e51b815260040161064f906138e4565b60005460ff16611e945760405162461bcd60e51b815260040161064f906136a1565b600154611ea057612298565b600154600090600019015b80821161226c576000805b82841015611fcf57611ec6612f96565b6002600060018781548110611ed757fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff161515908201526005549091506004900481602001511115611fb957600460055481611f4457fe5b04816020015103816020018181525050806002600060018881548110611f6657fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208351815591830151600183015591909101516002909101805460ff1916911515919091179055611fc3565b6001925050611fcf565b50836001019350611eb6565b82841161216657611fde612f96565b6002600060018681548110611fef57fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff1615159082015260055490915060049004816020015111156120d75760046005548161205c57fe5b0481602001510381602001818152505080600260006001878154811061207e57fe5b6000918252602080832091909101546001600160a01b03168352828101939093526040918201902083518155918301516001808401919091559201516002909101805460ff191691151591909117905591506121669050565b60026000600186815481106120e857fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff1916905580548061212c57fe5b600082815260209020810160001990810180546001600160a01b0319169055019055836121595750612166565b5060001990920191611fcf565b8180156121705750805b1561224f57600260006001868154811061218657fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff191690558054849081106121cd57fe5b600091825260209091200154600180546001600160a01b0390921691869081106121f357fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600180548061222c57fe5b600082815260209020810160001990810180546001600160a01b03191690550190555b8261225b57505061226c565b505060019091019060001901611eab565b6040517fcfdb3b6ccaeccbdc68be3c59c840e3b3c90f0a7c491f5fff1cf56cfda200dd9c90600090a150505b565b61100481565b60606122b36122ae836129e3565b6122bb565b90505b919050565b6060815160011480156122ed5750607f60f81b826000815181106122db57fe5b01602001516001600160f81b03191611155b156122f95750806122b6565b6122b361230b8351608060ff16612ac9565b83612b9b565b606081516000141561233257506040805160008152602081019091526122b6565b60608260008151811061234157fe5b602002602001015190506000600190505b8351811015612382576123788285838151811061236b57fe5b6020026020010151612b9b565b9150600101612352565b5061239b612395825160c060ff16612ac9565b82612b9b565b9392505050565b80156123cd576040516375cc7d8960e01b8152612002906375cc7d8990611d06908690600401613574565b6040516375cc7d8960e01b8152612002906375cc7d89906123f2908690600401613574565b600060405180830381600087803b15801561240c57600080fd5b505af192505050801561241d575060015b610a45576040516000815260443d1015612439575060006124d6565b60046000803e60005160e01c6308c379a0811461245a5760009150506124d6565b60043d036004833e81513d602482011167ffffffffffffffff82111715612486576000925050506124d6565b808301805167ffffffffffffffff8111156124a85760009450505050506124d6565b8060208301013d86018111156124c6576000955050505050506124d6565b601f01601f191660405250925050505b806124e15750612518565b836001600160a01b0316600080516020613ea0833981519152848360405161250a9291906135bf565b60405180910390a25061257b565b3d808015612542576040519150601f19603f3d011682016040523d82523d6000602084013e612547565b606091505b50836001600160a01b0316600080516020613ea083398151915284836040516125719291906135bf565b60405180910390a2505b610a45565b60408051600480825260a08201909252606091829190816020015b606081526020019060019003908161259b5790505090506125c4836001600160a01b0316612c18565b816000815181106125d157fe5b60200260200101819052506125e5436122a0565b816001815181106125f257fe5b602090810291909101015261260760616122a0565b8160028151811061261457fe5b6020026020010181905250612628426122a0565b8160038151811061263557fe5b602002602001018190525061239b81612311565b612651612fb9565b600061265b612fb9565b612663612fcb565b61267461266f86612c3b565b612c60565b90506000805b61268383612caa565b156126bc57806126af5761269e61269984612ccb565b612d19565b63ffffffff168452600191506126b4565b6126bc565b60010161267a565b5091935090915050915091565b6000816040516020016126dc9190613558565b60405160208183030381529060405280519060200120836040516020016127039190613558565b604051602081830303815290604052805190602001201490505b92915050565b015190565b8082015160009060ff811615612742576001915081612748565b60009150815b505092915050565b60408051600480825260a0820190925260009160609190816020015b606081526020019060019003908161276c5750506040805160208082528183019092529192506060919080820181803683370190505090506127b185600001516122a0565b826000815181106127be57fe5b60200260200101819052506127d96020866020015183612d9b565b6127e2816122bb565b826001815181106127ef57fe5b602002602001018190525061280785604001516122a0565b8260028151811061281457fe5b602002602001018190525061282f6020866060015183612d9b565b612838816122bb565b8260038151811061284557fe5b602002602001018190525061286b602061285e84612311565b8051906020012083612d9b565b6040805160b080825260e0820190925260609160208201818036833701905050905061289b818360006020612dab565b6128ad81876080015160206060612dab565b6128bb818660806030612dab565b604080516001808252818301909252606091602082018180368337019050509050815160016020830182602086016066600019fa6128f857600080fd5b506001612906826000612dfe565b60ff161461291b57600094505050505061271d565b5060019695505050505050565b8151815160009160019181148083146129445760009250612982565b600160208701838101602088015b60028483851001141561297d5780518351146129715760009650600093505b60209283019201612952565b505050505b5090949350505050565b60408051600480825260a08201909252606091829190816020015b60608152602001906001900390816129a75790505090506125c4836122bb565b600081602001835110156129da57600080fd5b50016020015190565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416612a2757506018612a4b565b6fffffffffffffffffffffffffffffffff198416612a4757506010612a4b565b5060005b6020811015612a8157818181518110612a6057fe5b01602001516001600160f81b03191615612a7957612a81565b600101612a4b565b60008160200390506060816040519080825280601f01601f191660200182016040528015612ab6576020820181803683370190505b5080830196909652508452509192915050565b6060680100000000000000008310612af35760405162461bcd60e51b815260040161064f90613811565b60408051600180825281830190925260609160208201818036833701905050905060378411612b4d5782840160f81b81600081518110612b2f57fe5b60200101906001600160f81b031916908160001a905350905061271d565b6060612b58856129e3565b90508381510160370160f81b82600081518110612b7157fe5b60200101906001600160f81b031916908160001a905350612b928282612b9b565b95945050505050565b6060806040519050835180825260208201818101602087015b81831015612bcc578051835260209283019201612bb4565b50855184518101855292509050808201602086015b81831015612bf9578051835260209283019201612be1565b508651929092011591909101601f01601f191660405250905092915050565b60408051600560a21b831860148201526034810190915260609061239b816122bb565b612c43612feb565b506040805180820190915281518152602082810190820152919050565b612c68612fcb565b612c7182612e1a565b612c7a57600080fd5b6000612c898360200151612e54565b60208085015160408051808201909152868152920190820152915050919050565b6000612cb4612feb565b505080518051602091820151919092015191011190565b612cd3612feb565b612cdc82612caa565b612ce557600080fd5b60208201516000612cf582612eb7565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590612d2e57508151602110155b612d3757600080fd5b6000612d468360200151612e54565b90508083600001511015612d6c5760405162461bcd60e51b815260040161064f90613b7f565b825160208085015183018051928490039291831015612d9257826020036101000a820491505b50949350505050565b9091018181526020918201910152565b60005b81811015610d4f57838181518110612dc257fe5b602001015160f81c60f81b858480600101955081518110612ddf57fe5b60200101906001600160f81b031916908160001a905350600101612dae565b60008160010183511015612e1157600080fd5b50016001015190565b8051600090612e2b575060006122b6565b6020820151805160001a9060c0821015612e4a576000925050506122b6565b5060019392505050565b8051600090811a6080811015612e6e5760009150506122b6565b60b8811080612e89575060c08110801590612e89575060f881105b15612e985760019150506122b6565b60c0811015612eac5760b5190190506122b6565b60f5190190506122b6565b80516000908190811a6080811015612ed25760019150612f8f565b60b8811015612ee757607e1981019150612f8f565b60c0811015612f3857600060b78203600186019550806020036101000a865104915060018101820193505080831015612f325760405162461bcd60e51b815260040161064f90613934565b50612f8f565b60f8811015612f4d5760be1981019150612f8f565b600060f78203600186019550806020036101000a8651049150600181018201935050808310156127485760405162461bcd60e51b815260040161064f90613934565b5092915050565b604051806060016040528060008152602001600081526020016000151581525090565b60408051602081019091526000815290565b6040518060400160405280612fde612feb565b8152602001600081525090565b604051806040016040528060008152602001600081525090565b600082601f830112613015578081fd5b815161302861302382613e08565b613de1565b818152915060208083019084810160005b8481101561309e578151870188603f82011261305457600080fd5b8381015161306461302382613e28565b81815260408b8184860101111561307a57600080fd5b61308983888401838701613e4c565b50865250509282019290820190600101613039565b505050505092915050565b60008083601f8401126130ba578182fd5b50813567ffffffffffffffff8111156130d1578182fd5b6020830191508360208285010111156130e957600080fd5b9250929050565b600082601f830112613100578081fd5b813561310e61302382613e28565b915080825283602082850101111561312557600080fd5b8060208401602084013760009082016020015292915050565b600060a0828403121561314f578081fd5b61315960a0613de1565b905081358152602082013560208201526040820135604082015260608201356060820152608082013567ffffffffffffffff81111561319757600080fd5b6131a3848285016130f0565b60808301525092915050565b6000602082840312156131c0578081fd5b813561239b81613e7c565b6000602082840312156131dc578081fd5b815161239b81613e7c565b6000806000606084860312156131fb578182fd5b833561320681613e7c565b925060208401359150604084013561321d81613e91565b809150509250925092565b6000806040838503121561323a578182fd5b825167ffffffffffffffff80821115613251578384fd5b81850186601f820112613262578485fd5b8051925061327261302384613e08565b80848252602080830192508084018a828389028701011115613292578889fd5b8894505b868510156132bd5780516132a981613e7c565b845260019490940193928101928101613296565b5088015190965093505050808211156132d4578283fd5b506132e185828601613005565b9150509250929050565b6000602082840312156132fc578081fd5b815161239b81613e91565b60008060408385031215613319578182fd5b823567ffffffffffffffff80821115613330578384fd5b61333c868387016130f0565b93506020850135915080821115613351578283fd5b506132e1858286016130f0565b60008060008060408587031215613373578182fd5b843567ffffffffffffffff8082111561338a578384fd5b613396888389016130a9565b909650945060208701359150808211156133ae578384fd5b506133bb878288016130a9565b95989497509550505050565b6000602082840312156133d8578081fd5b813567ffffffffffffffff808211156133ef578283fd5b81840160608187031215613401578384fd5b61340b6060613de1565b925080358281111561341b578485fd5b6134278782840161313e565b84525060208101358281111561343b578485fd5b6134478782840161313e565b60208501525060408101358281111561345e578485fd5b61346a878284016130f0565b6040850152509195945050505050565b60006020828403121561348b578081fd5b5035919050565b6000602082840312156134a3578081fd5b5051919050565b6000806000604084860312156134be578081fd5b833560ff811681146134ce578182fd5b9250602084013567ffffffffffffffff8111156134e9578182fd5b6134f5868287016130a9565b9497909650939450505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008151808452613544816020860160208601613e4c565b601f01601f19169290920160200192915050565b6000825161356a818460208701613e4c565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b60006020825261239b602083018461352c565b6000838252604060208301526135d8604083018461352c565b949350505050565b6000604082526135f4604083018688613502565b8281036020840152613607818587613502565b979650505050505050565b60208082526010908201526f195d9a59195b98d9481d1bdbc81bdb1960821b604082015260600190565b6020808252818101527f6d616c6963696f757320766f746520736c617368206e6f7420656e61626c6564604082015260600190565b6020808252601690820152751d985b1a59185d1bdc881b9bdd081b5a59dc985d195960521b604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252602b908201527f746865206d616c6963696f757320766f746520736c6173682073636f7065206f60408201526a7574206f662072616e676560a81b606082015260800190565b6020808252601a908201527f6e6f2076696f6c6174696f6e206f6620766f74652072756c6573000000000000604082015260600190565b6020808252818101527f7468652066656c6f6e795468726573686f6c64206f7574206f662072616e6765604082015260600190565b6020808252602b908201527f6c656e677468206f6620656e61626c654d616c6963696f7573566f7465536c6160408201526a0e6d040dad2e6dac2e8c6d60ab1b606082015260800190565b60208082526017908201527f766572696679207369676e6174757265206661696c6564000000000000000000604082015260600190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526019908201527f7372634e756d20626967676572207468616e207461724e756d00000000000000604082015260600190565b60208082526027908201527f6c656e677468206f66206d697364656d65616e6f725468726573686f6c64206d6040820152660d2e6dac2e8c6d60cb1b606082015260800190565b60208082526013908201527274776f206964656e746963616c20766f74657360681b604082015260600190565b60208082526030908201527f746865206d6573736167652073656e646572206d7573742062652076616c696460408201526f185d1bdc94d95d0818dbdb9d1c9858dd60821b606082015260800190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b60208082526023908201527f6c656e677468206f662066656c6f6e79536c61736853636f7065206d69736d616040820152620e8c6d60eb1b606082015260800190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b60208082526029908201527f6c656e677468206f662066656c6f6e79536c617368526577617264526174696f604082015268040dad2e6dac2e8c6d60bb1b606082015260800190565b6020808252601590820152741d9bdd195059191c881a5cc81b9bdd08199bdd5b99605a1b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526022908201527f6c656e677468206f662066656c6f6e795468726573686f6c64206d69736d61746040820152610c6d60f31b606082015260800190565b6020808252602a908201527f7468652066656c6f6e7920736c6173682072657761726420726174696f206f7560408201526974206f662072616e676560b01b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b6020808252600c908201526b32b6b83a3c903432b0b232b960a11b604082015260600190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526025908201527f746865206d697364656d65616e6f725468726573686f6c64206f7574206f662060408201526472616e676560d81b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b6020808252601490820152731d185c99d95d08189b1bd8dac81d1bdbc81bdb1960621b604082015260600190565b6020808252601e908201527f7265636569766520756e65787065637465642073796e207061636b6167650000604082015260600190565b6020808252818101527f63616e206e6f7420736c61736820747769636520696e206f6e6520626c6f636b604082015260600190565b61ffff91909116815260200190565b90815260200190565b918252602082015260400190565b92835260208301919091521515604082015260600190565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff8516825260606020830152613dd1606083018561352c565b9050826040830152949350505050565b60405181810167ffffffffffffffff81118282101715613e0057600080fd5b604052919050565b600067ffffffffffffffff821115613e1e578081fd5b5060209081020190565b600067ffffffffffffffff821115613e3e578081fd5b50601f01601f191660200190565b60005b83811015613e67578181015183820152602001613e4f565b83811115613e76576000848401525b50505050565b6001600160a01b0381168114610c0a57600080fd5b8015158114610c0a57600080fdfed7bc86ff5d08c8ab043edec743302aba2520e6635172a428bc956721db9e2d1ca164736f6c6343000604000a", + }, + }, + } + HaberFixUpgrade[networkname.RialtoChainName] = &Upgrade{ + UpgradeName: "haberFix", + Configs: []*UpgradeConfig{}, + } + LatestUpgrade[networkname.DefaultChainName] = LatestUpgrade[networkname.RialtoChainName] } @@ -1087,6 +1126,10 @@ func UpgradeBuildInSystemContract(config *chain.Config, blockNumber *big.Int, la if config.IsOnFeynmanFix(blockNumber, lastBlockTime, blockTime) { applySystemContractUpgrade(FeynmanFixUpgrade[network], blockNumber, statedb, logger) } + + if config.IsOnHaberFix(blockNumber, lastBlockTime, blockTime) { + applySystemContractUpgrade(HaberFixUpgrade[network], blockNumber, statedb, logger) + } /* apply other upgrades */ @@ -1109,7 +1152,7 @@ func applySystemContractUpgrade(upgrade *Upgrade, blockNumber *big.Int, statedb } } - newContractCode, err := hex.DecodeString(cfg.Code) + newContractCode, err := hex.DecodeString(strings.TrimSpace(cfg.Code)) if err != nil { panic(fmt.Errorf("failed to decode new contract code: %s", err.Error())) } diff --git a/erigon-lib/chain/chain_config.go b/erigon-lib/chain/chain_config.go index 3e61d2571fa..b81432ec6e1 100644 --- a/erigon-lib/chain/chain_config.go +++ b/erigon-lib/chain/chain_config.go @@ -70,6 +70,8 @@ type Config struct { FeynmanFixTime *big.Int `json:"feynmanFixTime,omitempty"` CancunTime *big.Int `json:"cancunTime,omitempty"` HaberTime *big.Int `json:"haberTime,omitempty"` + HaberFixTime *big.Int `json:"haberFixTime,omitempty"` + BohrTime *big.Int `json:"bohrTime,omitempty"` PragueTime *big.Int `json:"pragueTime,omitempty"` OsakaTime *big.Int `json:"osakaTime,omitempty"` @@ -124,7 +126,7 @@ func (c *Config) String() string { engine := c.getEngine() if c.Consensus == ParliaConsensus { - return fmt.Sprintf("{ChainID: %v Ramanujan: %v, Niels: %v, MirrorSync: %v, Bruno: %v, Euler: %v, Gibbs: %v, Nano: %v, Moran: %v, Planck: %v, Luban: %v, Plato: %v, Hertz: %v, Hertzfix: %v, ShanghaiTime: %v, KeplerTime %v, FeynmanTime %v, FeynmanFixTime %v, CancunTime %v, HaberTime %v, Engine: %v}", + return fmt.Sprintf("{ChainID: %v Ramanujan: %v, Niels: %v, MirrorSync: %v, Bruno: %v, Euler: %v, Gibbs: %v, Nano: %v, Moran: %v, Planck: %v, Luban: %v, Plato: %v, Hertz: %v, Hertzfix: %v, ShanghaiTime: %v, KeplerTime %v, FeynmanTime %v, FeynmanFixTime %v, CancunTime %v, HaberTime %v, HaberFixTime %v, Engine: %v}", c.ChainID, c.RamanujanBlock, c.NielsBlock, @@ -145,6 +147,7 @@ func (c *Config) String() string { c.FeynmanFixTime, c.CancunTime, c.HaberTime, + c.HaberFixTime, engine, ) } @@ -282,11 +285,6 @@ func (c *Config) IsCancun(num uint64, time uint64) bool { return c.IsLondon(num) && isForked(c.CancunTime, time) } -// IsHaber returns whether time is either equal to the Haber fork time or greater. -func (c *Config) IsHaber(num uint64, time uint64) bool { - return c.IsLondon(num) && isForked(c.HaberTime, time) -} - // IsPrague returns whether time is either equal to the Prague fork time or greater. func (c *Config) IsPrague(time uint64) bool { return isForked(c.PragueTime, time) @@ -493,6 +491,25 @@ func (c *Config) IsOnFeynmanFix(currentBlockNumber *big.Int, lastBlockTime uint6 return !c.IsFeynmanFix(lastBlockNumber.Uint64(), lastBlockTime) && c.IsFeynmanFix(currentBlockNumber.Uint64(), currentBlockTime) } +// IsHaber returns whether time is either equal to the Haber fork time or greater. +func (c *Config) IsHaber(num uint64, time uint64) bool { + return c.IsLondon(num) && isForked(c.HaberTime, time) +} + +// IsHaber returns whether time is either equal to the Haber fork time or greater. +func (c *Config) IsHaberFix(num uint64, time uint64) bool { + return c.IsLondon(num) && isForked(c.HaberFixTime, time) +} + +// IsOnHaberFix returns whether currentBlockTime is either equal to the HaberFix fork time or greater firstly. +func (c *Config) IsOnHaberFix(currentBlockNumber *big.Int, lastBlockTime uint64, currentBlockTime uint64) bool { + lastBlockNumber := new(big.Int) + if currentBlockNumber.Cmp(big.NewInt(1)) >= 0 { + lastBlockNumber.Sub(currentBlockNumber, big.NewInt(1)) + } + return !c.IsHaberFix(lastBlockNumber.Uint64(), lastBlockTime) && c.IsHaberFix(currentBlockNumber.Uint64(), currentBlockTime) +} + // CheckCompatible checks whether scheduled fork transitions have been imported // with a mismatching chain configuration. func (c *Config) CheckCompatible(newcfg *Config, height uint64) *ConfigCompatError { diff --git a/params/chainspecs/bsc.json b/params/chainspecs/bsc.json index 135a8288a95..d96cbf5ba53 100644 --- a/params/chainspecs/bsc.json +++ b/params/chainspecs/bsc.json @@ -31,6 +31,7 @@ "feynmanFixTime": 1713419340, "cancunTime": 1718863500, "haberTime": 1718863500, + "haberFixTime": 1720591588, "parlia": { "DBPath": "", "InMemory": false, diff --git a/params/chainspecs/chapel.json b/params/chainspecs/chapel.json index fb6ff20a4a7..82071b8ffa3 100644 --- a/params/chainspecs/chapel.json +++ b/params/chainspecs/chapel.json @@ -31,6 +31,7 @@ "feynmanFixTime": 1711342800, "cancunTime": 1713330442, "haberTime": 1716962820, + "haberFixTime": 1719986788, "parlia": { "DBPath": "", "InMemory": false, diff --git a/params/chainspecs/rialto.json b/params/chainspecs/rialto.json index ce7e7967ef4..42151fcd625 100644 --- a/params/chainspecs/rialto.json +++ b/params/chainspecs/rialto.json @@ -33,6 +33,7 @@ "feynmanFixTime":0, "cancunTime": 0, "haberTime": 0, + "haberFixTime": 0, "parlia": { "DBPath": "", "InMemory": false, From 72679895b9fe91d26e2fdc15ca81b02ec2ec96ae Mon Sep 17 00:00:00 2001 From: blxdyx <125243069+blxdyx@users.noreply.github.com> Date: Fri, 28 Jun 2024 20:37:01 +0800 Subject: [PATCH 07/22] bump version (#421) --- params/version.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/params/version.go b/params/version.go index 80881f5939f..4ff2a4c0e34 100644 --- a/params/version.go +++ b/params/version.go @@ -33,7 +33,7 @@ var ( const ( VersionMajor = 1 // Major version component of the current release VersionMinor = 2 // Minor version component of the current release - VersionMicro = 9 // Patch version component of the current release + VersionMicro = 11 // Patch version component of the current release VersionModifier = "dev" // Modifier component of the current release VersionKeyCreated = "ErigonVersionCreated" VersionKeyFinished = "ErigonVersionFinished" From e465cbc3088779818748c15ecc84307a61684ac7 Mon Sep 17 00:00:00 2001 From: blxdyx <125243069+blxdyx@users.noreply.github.com> Date: Wed, 3 Jul 2024 11:54:14 +0800 Subject: [PATCH 08/22] Refactor system contract upgrade. (#422) --- core/system_contract_lookup.go | 161 +-- core/systemcontracts/upgrade.go | 1144 +------------------ erigon-lib/chain/chain_config.go | 9 +- params/chainspecs/bsc.json | 178 ++- params/chainspecs/chapel.json | 276 ++++- turbo/stages/headerdownload/header_algos.go | 6 +- 6 files changed, 500 insertions(+), 1274 deletions(-) diff --git a/core/system_contract_lookup.go b/core/system_contract_lookup.go index bc00aa26d52..8f3468a572d 100644 --- a/core/system_contract_lookup.go +++ b/core/system_contract_lookup.go @@ -1,11 +1,10 @@ package core import ( - "encoding/hex" "fmt" "github.com/ledgerwatch/erigon-lib/chain/networkname" libcommon "github.com/ledgerwatch/erigon-lib/common" - "github.com/ledgerwatch/erigon-lib/common/hexutility" + "strconv" "github.com/ledgerwatch/erigon/core/systemcontracts" "github.com/ledgerwatch/erigon/core/types" @@ -19,99 +18,35 @@ func init() { systemcontracts.SystemContractCodeLookup[chainName] = byChain // Apply genesis with the block number 0 genesisBlock := GenesisBlockByChainName(chainName) - allocToCodeRecords(genesisBlock.Alloc, byChain, 0) + allocToCodeRecords(genesisBlock.Alloc, byChain, 0, 0) // Process upgrades chainConfig := params.ChainConfigByChainName(chainName) - if chainConfig.RamanujanBlock != nil { - blockNum := chainConfig.RamanujanBlock.Uint64() - if blockNum != 0 { - addCodeRecords(systemcontracts.RamanujanUpgrade[chainName], blockNum, 0, byChain) - } - } - if chainConfig.NielsBlock != nil { - blockNum := chainConfig.NielsBlock.Uint64() - if blockNum != 0 { - addCodeRecords(systemcontracts.NielsUpgrade[chainName], blockNum, 0, byChain) - } - } - if chainConfig.MirrorSyncBlock != nil { - blockNum := chainConfig.MirrorSyncBlock.Uint64() - if blockNum != 0 { - addCodeRecords(systemcontracts.MirrorUpgrade[chainName], blockNum, 0, byChain) - } - } - if chainConfig.BrunoBlock != nil { - blockNum := chainConfig.BrunoBlock.Uint64() - if blockNum != 0 { - addCodeRecords(systemcontracts.BrunoUpgrade[chainName], blockNum, 0, byChain) - } - } - if chainConfig.EulerBlock != nil { - blockNum := chainConfig.EulerBlock.Uint64() - if blockNum != 0 { - addCodeRecords(systemcontracts.EulerUpgrade[chainName], blockNum, 0, byChain) - } - } - if chainConfig.MoranBlock != nil { - blockNum := chainConfig.MoranBlock.Uint64() - if blockNum != 0 { - addCodeRecords(systemcontracts.MoranUpgrade[chainName], blockNum, 0, byChain) - } - } - if chainConfig.GibbsBlock != nil { - blockNum := chainConfig.GibbsBlock.Uint64() - if blockNum != 0 { - addCodeRecords(systemcontracts.GibbsUpgrade[chainName], blockNum, 0, byChain) - } - } - if chainConfig.PlanckBlock != nil { - blockNum := chainConfig.PlanckBlock.Uint64() - if blockNum != 0 { - addCodeRecords(systemcontracts.PlanckUpgrade[chainName], blockNum, 0, byChain) - } - } - if chainConfig.LubanBlock != nil { - blockNum := chainConfig.LubanBlock.Uint64() - if blockNum != 0 { - addCodeRecords(systemcontracts.LubanUpgrade[chainName], blockNum, 0, byChain) - } - } - if chainConfig.PlatoBlock != nil { - blockNum := chainConfig.PlatoBlock.Uint64() - if blockNum != 0 { - addCodeRecords(systemcontracts.PlatoUpgrade[chainName], blockNum, 0, byChain) - } - } - if chainConfig.KeplerTime != nil { - blockTime := chainConfig.KeplerTime.Uint64() - if blockTime != 0 { - addCodeRecords(systemcontracts.KeplerUpgrade[chainName], 0, blockTime, byChain) - } + parliaConfig := chainConfig.Parlia + if parliaConfig == nil || parliaConfig.BlockAlloc == nil { + return } - if chainConfig.FeynmanTime != nil { - blockTime := chainConfig.FeynmanTime.Uint64() - if blockTime != 0 { - addCodeRecords(systemcontracts.FeynmanUpgrade[chainName], 0, blockTime, byChain) + for blockNumOrTime, genesisAlloc := range parliaConfig.BlockAlloc { + numOrTime, err := strconv.ParseUint(blockNumOrTime, 10, 64) + if err != nil { + panic(fmt.Errorf("failed to parse block number in BlockAlloc: %s", err.Error())) } - } - if chainConfig.FeynmanFixTime != nil { - blockTime := chainConfig.FeynmanFixTime.Uint64() - if blockTime != 0 { - addCodeRecords(systemcontracts.FeynmanFixUpgrade[chainName], 0, blockTime, byChain) + alloc, err := types.DecodeGenesisAlloc(genesisAlloc) + if err != nil { + panic(fmt.Errorf("failed to decode block alloc: %v", err)) } - } - if chainConfig.HaberFixTime != nil { - blockTime := chainConfig.HaberFixTime.Uint64() - if blockTime != 0 { - addCodeRecords(systemcontracts.HaberFixUpgrade[chainName], 0, blockTime, byChain) + var blockNum, blockTime uint64 + if numOrTime >= chainConfig.ShanghaiTime.Uint64() { + blockTime = numOrTime + } else { + blockNum = numOrTime } + allocToCodeRecords(alloc, byChain, blockNum, blockTime) } } - addGnosisSpecialCase() } -func allocToCodeRecords(alloc types.GenesisAlloc, byChain map[libcommon.Address][]libcommon.CodeRecord, blockNum uint64) { +func allocToCodeRecords(alloc types.GenesisAlloc, byChain map[libcommon.Address][]libcommon.CodeRecord, blockNum, blockTime uint64) { for addr, account := range alloc { if len(account.Code) > 0 { list := byChain[addr] @@ -119,60 +54,12 @@ func allocToCodeRecords(alloc types.GenesisAlloc, byChain map[libcommon.Address] if err != nil { panic(fmt.Errorf("failed to hash system contract code: %s", err.Error())) } - list = append(list, libcommon.CodeRecord{BlockNumber: blockNum, CodeHash: codeHash}) + if blockTime == 0 { + list = append(list, libcommon.CodeRecord{BlockNumber: blockNum, CodeHash: codeHash}) + } else { + list = append(list, libcommon.CodeRecord{BlockTime: blockTime, CodeHash: codeHash}) + } byChain[addr] = list } } } - -// some hard coding for gnosis chain here to solve a historical problem with the token contract being re-written -// and losing the history for it in the DB. Temporary hack until erigon 3 arrives -func addGnosisSpecialCase() { - byChain := map[libcommon.Address][]libcommon.CodeRecord{} - systemcontracts.SystemContractCodeLookup[networkname.GnosisChainName] = byChain - address := libcommon.HexToAddress("0xf8d1677c8a0c961938bf2f9adc3f3cfda759a9d9") - list := byChain[address] - - oldContractCode := hexutility.FromHex("0x6080604052600436106101b65763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166305d2035b81146101bb57806306fdde03146101e4578063095ea7b31461026e5780630b26cf661461029257806318160ddd146102b557806323b872dd146102dc57806330adf81f14610306578063313ce5671461031b5780633644e51514610346578063395093511461035b5780634000aea01461037f57806340c10f19146103b057806342966c68146103d457806354fd4d50146103ec578063661884631461040157806369ffa08a1461042557806370a082311461044c578063715018a61461046d578063726600ce146104825780637d64bcb4146104a35780637ecebe00146104b8578063859ba28c146104d95780638da5cb5b1461051a5780638fcbaf0c1461054b57806395d89b4114610589578063a457c2d71461059e578063a9059cbb146105c2578063b753a98c146105e6578063bb35783b1461060a578063cd59658314610634578063d73dd62314610649578063dd62ed3e1461066d578063f2d5d56b14610694578063f2fde38b146106b8578063ff9e884d146106d9575b600080fd5b3480156101c757600080fd5b506101d0610700565b604080519115158252519081900360200190f35b3480156101f057600080fd5b506101f9610721565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561023357818101518382015260200161021b565b50505050905090810190601f1680156102605780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561027a57600080fd5b506101d0600160a060020a03600435166024356107af565b34801561029e57600080fd5b506102b3600160a060020a0360043516610803565b005b3480156102c157600080fd5b506102ca61085d565b60408051918252519081900360200190f35b3480156102e857600080fd5b506101d0600160a060020a0360043581169060243516604435610863565b34801561031257600080fd5b506102ca610a32565b34801561032757600080fd5b50610330610a56565b6040805160ff9092168252519081900360200190f35b34801561035257600080fd5b506102ca610a5f565b34801561036757600080fd5b506101d0600160a060020a0360043516602435610a65565b34801561038b57600080fd5b506101d060048035600160a060020a0316906024803591604435918201910135610a78565b3480156103bc57600080fd5b506101d0600160a060020a0360043516602435610b89565b3480156103e057600080fd5b506102b3600435610c94565b3480156103f857600080fd5b506101f9610ca1565b34801561040d57600080fd5b506101d0600160a060020a0360043516602435610cd8565b34801561043157600080fd5b506102b3600160a060020a0360043581169060243516610db5565b34801561045857600080fd5b506102ca600160a060020a0360043516610df1565b34801561047957600080fd5b506102b3610e0c565b34801561048e57600080fd5b506101d0600160a060020a0360043516610e23565b3480156104af57600080fd5b506101d0610e37565b3480156104c457600080fd5b506102ca600160a060020a0360043516610e3e565b3480156104e557600080fd5b506104ee610e50565b6040805167ffffffffffffffff9485168152928416602084015292168183015290519081900360600190f35b34801561052657600080fd5b5061052f610e5b565b60408051600160a060020a039092168252519081900360200190f35b34801561055757600080fd5b506102b3600160a060020a0360043581169060243516604435606435608435151560ff60a4351660c43560e435610e6a565b34801561059557600080fd5b506101f9611171565b3480156105aa57600080fd5b506101d0600160a060020a03600435166024356111cb565b3480156105ce57600080fd5b506101d0600160a060020a03600435166024356111d7565b3480156105f257600080fd5b506102b3600160a060020a0360043516602435611202565b34801561061657600080fd5b506102b3600160a060020a036004358116906024351660443561120d565b34801561064057600080fd5b5061052f61121e565b34801561065557600080fd5b506101d0600160a060020a036004351660243561122d565b34801561067957600080fd5b506102ca600160a060020a03600435811690602435166112b4565b3480156106a057600080fd5b506102b3600160a060020a03600435166024356112df565b3480156106c457600080fd5b506102b3600160a060020a03600435166112ea565b3480156106e557600080fd5b506102ca600160a060020a036004358116906024351661130a565b60065474010000000000000000000000000000000000000000900460ff1681565b6000805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156107a75780601f1061077c576101008083540402835291602001916107a7565b820191906000526020600020905b81548152906001019060200180831161078a57829003601f168201915b505050505081565b336000818152600560209081526040808320600160a060020a03871680855290835281842086905581518681529151939490939092600080516020611a13833981519152928290030190a350600192915050565b600654600160a060020a0316331461081a57600080fd5b61082381611327565b151561082e57600080fd5b6007805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60045490565b600080600160a060020a038516151561087b57600080fd5b600160a060020a038416151561089057600080fd5b600160a060020a0385166000908152600360205260409020546108b9908463ffffffff61132f16565b600160a060020a0380871660009081526003602052604080822093909355908616815220546108ee908463ffffffff61134116565b600160a060020a0380861660008181526003602090815260409182902094909455805187815290519193928916926000805160206119f383398151915292918290030190a3600160a060020a0385163314610a1c5761094d85336112b4565b905060001981146109b757610968818463ffffffff61132f16565b600160a060020a038616600081815260056020908152604080832033808552908352928190208590558051948552519193600080516020611a13833981519152929081900390910190a3610a1c565b600160a060020a0385166000908152600a602090815260408083203384529091529020541580610a1157506109ea611354565b600160a060020a0386166000908152600a6020908152604080832033845290915290205410155b1515610a1c57600080fd5b610a27858585611358565b506001949350505050565b7fea2aa0a1be11a07ed86d755c93467f4f82362b452371d1ba94d1715123511acb81565b60025460ff1681565b60085481565b6000610a71838361122d565b9392505050565b600084600160a060020a03811615801590610a9c5750600160a060020a0381163014155b1515610aa757600080fd5b610ab186866113ef565b1515610abc57600080fd5b85600160a060020a031633600160a060020a03167fe19260aff97b920c7df27010903aeb9c8d2be5d310a2c67824cf3f15396e4c16878787604051808481526020018060200182810382528484828181526020019250808284376040519201829003965090945050505050a3610b3186611327565b15610b7d57610b7233878787878080601f016020809104026020016040519081016040528093929190818152602001838380828437506113fb945050505050565b1515610b7d57600080fd5b50600195945050505050565b600654600090600160a060020a03163314610ba357600080fd5b60065474010000000000000000000000000000000000000000900460ff1615610bcb57600080fd5b600454610bde908363ffffffff61134116565b600455600160a060020a038316600090815260036020526040902054610c0a908363ffffffff61134116565b600160a060020a038416600081815260036020908152604091829020939093558051858152905191927f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d412139688592918290030190a2604080518381529051600160a060020a038516916000916000805160206119f38339815191529181900360200190a350600192915050565b610c9e3382611591565b50565b60408051808201909152600181527f3100000000000000000000000000000000000000000000000000000000000000602082015281565b336000908152600560209081526040808320600160a060020a0386168452909152812054808310610d2c57336000908152600560209081526040808320600160a060020a0388168452909152812055610d61565b610d3c818463ffffffff61132f16565b336000908152600560209081526040808320600160a060020a03891684529091529020555b336000818152600560209081526040808320600160a060020a038916808552908352928190205481519081529051929392600080516020611a13833981519152929181900390910190a35060019392505050565b600654600160a060020a03163314610dcc57600080fd5b80600160a060020a0381161515610de257600080fd5b610dec8383611680565b505050565b600160a060020a031660009081526003602052604090205490565b600654600160a060020a031633146101b657600080fd5b600754600160a060020a0390811691161490565b6000806000fd5b60096020526000908152604090205481565b600260036000909192565b600654600160a060020a031681565b600080600160a060020a038a161515610e8257600080fd5b600160a060020a0389161515610e9757600080fd5b861580610eab575086610ea8611354565b11155b1515610eb657600080fd5b600854604080517fea2aa0a1be11a07ed86d755c93467f4f82362b452371d1ba94d1715123511acb602080830191909152600160a060020a03808f16838501528d166060830152608082018c905260a082018b905289151560c0808401919091528351808403909101815260e090920192839052815191929182918401908083835b60208310610f575780518252601f199092019160209182019101610f38565b51815160209384036101000a6000190180199092169116179052604080519290940182900382207f190100000000000000000000000000000000000000000000000000000000000083830152602283019790975260428083019790975283518083039097018752606290910192839052855192945084935085019190508083835b60208310610ff75780518252601f199092019160209182019101610fd8565b51815160209384036101000a600019018019909216911617905260408051929094018290038220600080845283830180875282905260ff8d1684870152606084018c9052608084018b905294519098506001965060a080840196509194601f19820194509281900390910191865af1158015611077573d6000803e3d6000fd5b50505060206040510351600160a060020a03168a600160a060020a03161415156110a057600080fd5b600160a060020a038a16600090815260096020526040902080546001810190915588146110cc57600080fd5b856110d85760006110dc565b6000195b600160a060020a03808c166000908152600560209081526040808320938e16835292905220819055905085611112576000611114565b865b600160a060020a03808c166000818152600a60209081526040808320948f1680845294825291829020949094558051858152905192939192600080516020611a13833981519152929181900390910190a350505050505050505050565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156107a75780601f1061077c576101008083540402835291602001916107a7565b6000610a718383610cd8565b60006111e383836113ef565b15156111ee57600080fd5b6111f9338484611358565b50600192915050565b610dec338383610863565b611218838383610863565b50505050565b600754600160a060020a031690565b336000908152600560209081526040808320600160a060020a0386168452909152812054611261908363ffffffff61134116565b336000818152600560209081526040808320600160a060020a038916808552908352928190208590558051948552519193600080516020611a13833981519152929081900390910190a350600192915050565b600160a060020a03918216600090815260056020908152604080832093909416825291909152205490565b610dec823383610863565b600654600160a060020a0316331461130157600080fd5b610c9e816116ac565b600a60209081526000928352604080842090915290825290205481565b6000903b1190565b60008282111561133b57fe5b50900390565b8181018281101561134e57fe5b92915050565b4290565b61136182611327565b80156113885750604080516000815260208101909152611386908490849084906113fb565b155b15610dec5761139682610e23565b156113a057600080fd5b60408051600160a060020a0380861682528416602082015280820183905290517f11249f0fc79fc134a15a10d1da8291b79515bf987e036ced05b9ec119614070b9181900360600190a1505050565b6000610a71838361172a565b600083600160a060020a031663a4c0ed367c0100000000000000000000000000000000000000000000000000000000028685856040516024018084600160a060020a0316600160a060020a0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561148c578181015183820152602001611474565b50505050905090810190601f1680156114b95780820380516001836020036101000a031916815260200191505b5060408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909916989098178852518151919790965086955093509150819050838360005b8381101561154757818101518382015260200161152f565b50505050905090810190601f1680156115745780820380516001836020036101000a031916815260200191505b509150506000604051808303816000865af1979650505050505050565b600160a060020a0382166000908152600360205260409020548111156115b657600080fd5b600160a060020a0382166000908152600360205260409020546115df908263ffffffff61132f16565b600160a060020a03831660009081526003602052604090205560045461160b908263ffffffff61132f16565b600455604080518281529051600160a060020a038416917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a2604080518281529051600091600160a060020a038516916000805160206119f38339815191529181900360200190a35050565b600160a060020a038216151561169e57611699816117f9565b6116a8565b6116a88282611805565b5050565b600160a060020a03811615156116c157600080fd5b600654604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b3360009081526003602052604081205482111561174657600080fd5b600160a060020a038316151561175b57600080fd5b3360009081526003602052604090205461177b908363ffffffff61132f16565b3360009081526003602052604080822092909255600160a060020a038516815220546117ad908363ffffffff61134116565b600160a060020a0384166000818152600360209081526040918290209390935580518581529051919233926000805160206119f38339815191529281900390910190a350600192915050565b30316116a882826118a3565b604080517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290518391600091600160a060020a038416916370a0823191602480830192602092919082900301818787803b15801561186a57600080fd5b505af115801561187e573d6000803e3d6000fd5b505050506040513d602081101561189457600080fd5b5051905061121884848361190b565b604051600160a060020a0383169082156108fc029083906000818181858888f1935050505015156116a85780826118d86119c2565b600160a060020a039091168152604051908190036020019082f080158015611904573d6000803e3d6000fd5b5050505050565b60408051600160a060020a03841660248201526044808201849052825180830390910181526064909101909152602081810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781528251606093600093909290918491828a5af160005193508392508080156101b65750506000835111156119ba578115156119ba57600080fd5b505050505050565b6040516021806119d2833901905600608060405260405160208060218339810160405251600160a060020a038116ff00ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a165627a7a72305820da715ff88e0288dbae664bb8af2f148726bdc8c499fecf88153280d022031e780029") - newContractCode := hexutility.FromHex("0x6080604052600436106101b35763ffffffff60e060020a60003504166305d2035b81146101b857806306fdde03146101e1578063095ea7b31461026b5780630b26cf661461028f57806318160ddd146102b257806323b872dd146102d957806330adf81f14610303578063313ce567146103185780633644e5151461034357806339509351146103585780634000aea01461037c57806340c10f19146103ad57806342966c68146103d157806354fd4d50146103e957806366188463146103fe57806369ffa08a1461042257806370a0823114610449578063715018a61461046a578063726600ce1461047f5780637d64bcb4146104a05780637ecebe00146104b5578063859ba28c146104d65780638da5cb5b146105175780638fcbaf0c1461054857806395d89b4114610586578063a457c2d71461059b578063a9059cbb146105bf578063b753a98c146105e3578063bb35783b14610607578063c6a1dedf14610631578063cd59658314610646578063d505accf1461065b578063d73dd62314610694578063dd62ed3e146106b8578063f2d5d56b146106df578063f2fde38b14610703578063ff9e884d14610724575b600080fd5b3480156101c457600080fd5b506101cd61074b565b604080519115158252519081900360200190f35b3480156101ed57600080fd5b506101f661076c565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610230578181015183820152602001610218565b50505050905090810190601f16801561025d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561027757600080fd5b506101cd600160a060020a03600435166024356107fa565b34801561029b57600080fd5b506102b0600160a060020a0360043516610810565b005b3480156102be57600080fd5b506102c761086a565b60408051918252519081900360200190f35b3480156102e557600080fd5b506101cd600160a060020a0360043581169060243516604435610870565b34801561030f57600080fd5b506102c7610a38565b34801561032457600080fd5b5061032d610a5c565b6040805160ff9092168252519081900360200190f35b34801561034f57600080fd5b506102c7610a65565b34801561036457600080fd5b506101cd600160a060020a0360043516602435610a6b565b34801561038857600080fd5b506101cd60048035600160a060020a0316906024803591604435918201910135610aac565b3480156103b957600080fd5b506101cd600160a060020a0360043516602435610bbd565b3480156103dd57600080fd5b506102b0600435610cc8565b3480156103f557600080fd5b506101f6610cd5565b34801561040a57600080fd5b506101cd600160a060020a0360043516602435610d0c565b34801561042e57600080fd5b506102b0600160a060020a0360043581169060243516610de9565b34801561045557600080fd5b506102c7600160a060020a0360043516610e0e565b34801561047657600080fd5b506102b0610e29565b34801561048b57600080fd5b506101cd600160a060020a0360043516610e40565b3480156104ac57600080fd5b506101cd610e54565b3480156104c157600080fd5b506102c7600160a060020a0360043516610e5b565b3480156104e257600080fd5b506104eb610e6d565b6040805167ffffffffffffffff9485168152928416602084015292168183015290519081900360600190f35b34801561052357600080fd5b5061052c610e78565b60408051600160a060020a039092168252519081900360200190f35b34801561055457600080fd5b506102b0600160a060020a0360043581169060243516604435606435608435151560ff60a4351660c43560e435610e87565b34801561059257600080fd5b506101f6610fc5565b3480156105a757600080fd5b506101cd600160a060020a036004351660243561101f565b3480156105cb57600080fd5b506101cd600160a060020a0360043516602435611032565b3480156105ef57600080fd5b506102b0600160a060020a0360043516602435611054565b34801561061357600080fd5b506102b0600160a060020a0360043581169060243516604435611064565b34801561063d57600080fd5b506102c7611075565b34801561065257600080fd5b5061052c611099565b34801561066757600080fd5b506102b0600160a060020a036004358116906024351660443560643560ff6084351660a43560c4356110a8565b3480156106a057600080fd5b506101cd600160a060020a0360043516602435611184565b3480156106c457600080fd5b506102c7600160a060020a036004358116906024351661120b565b3480156106eb57600080fd5b506102b0600160a060020a0360043516602435611236565b34801561070f57600080fd5b506102b0600160a060020a0360043516611241565b34801561073057600080fd5b506102c7600160a060020a0360043581169060243516611261565b60065474010000000000000000000000000000000000000000900460ff1681565b6000805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156107f25780601f106107c7576101008083540402835291602001916107f2565b820191906000526020600020905b8154815290600101906020018083116107d557829003601f168201915b505050505081565b600061080733848461127e565b50600192915050565b600654600160a060020a0316331461082757600080fd5b610830816112c0565b151561083b57600080fd5b6007805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60045490565b600080600160a060020a038516151561088857600080fd5b600160a060020a038416151561089d57600080fd5b600160a060020a0385166000908152600360205260409020546108c6908463ffffffff6112c816565b600160a060020a0380871660009081526003602052604080822093909355908616815220546108fb908463ffffffff6112da16565b600160a060020a038086166000818152600360209081526040918290209490945580518781529051919392891692600080516020611d7283398151915292918290030190a3600160a060020a0385163314610a225761095a853361120b565b905060001981146109c457610975818463ffffffff6112c816565b600160a060020a038616600081815260056020908152604080832033808552908352928190208590558051948552519193600080516020611d92833981519152929081900390910190a3610a22565b600160a060020a0385166000908152600a602090815260408083203384529091529020541580610a175750600160a060020a0385166000908152600a602090815260408083203384529091529020544211155b1515610a2257600080fd5b610a2d8585856112ed565b506001949350505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b60025460ff1681565b60085481565b336000818152600560209081526040808320600160a060020a03871684529091528120549091610807918590610aa7908663ffffffff6112da16565b61127e565b600084600160a060020a03811615801590610ad05750600160a060020a0381163014155b1515610adb57600080fd5b610ae58686611324565b1515610af057600080fd5b85600160a060020a031633600160a060020a03167fe19260aff97b920c7df27010903aeb9c8d2be5d310a2c67824cf3f15396e4c16878787604051808481526020018060200182810382528484828181526020019250808284376040519201829003965090945050505050a3610b65866112c0565b15610bb157610ba633878787878080601f01602080910402602001604051908101604052809392919081815260200183838082843750611330945050505050565b1515610bb157600080fd5b50600195945050505050565b600654600090600160a060020a03163314610bd757600080fd5b60065474010000000000000000000000000000000000000000900460ff1615610bff57600080fd5b600454610c12908363ffffffff6112da16565b600455600160a060020a038316600090815260036020526040902054610c3e908363ffffffff6112da16565b600160a060020a038416600081815260036020908152604091829020939093558051858152905191927f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d412139688592918290030190a2604080518381529051600160a060020a03851691600091600080516020611d728339815191529181900360200190a350600192915050565b610cd233826114ad565b50565b60408051808201909152600181527f3100000000000000000000000000000000000000000000000000000000000000602082015281565b336000908152600560209081526040808320600160a060020a0386168452909152812054808310610d6057336000908152600560209081526040808320600160a060020a0388168452909152812055610d95565b610d70818463ffffffff6112c816565b336000908152600560209081526040808320600160a060020a03891684529091529020555b336000818152600560209081526040808320600160a060020a038916808552908352928190205481519081529051929392600080516020611d92833981519152929181900390910190a35060019392505050565b600654600160a060020a03163314610e0057600080fd5b610e0a828261159c565b5050565b600160a060020a031660009081526003602052604090205490565b600654600160a060020a031633146101b357600080fd5b600754600160a060020a0390811691161490565b6000806000fd5b60096020526000908152604090205481565b600260056000909192565b600654600160a060020a031681565b600080861580610e975750864211155b1515610ea257600080fd5b604080517fea2aa0a1be11a07ed86d755c93467f4f82362b452371d1ba94d1715123511acb6020820152600160a060020a03808d16828401528b166060820152608081018a905260a0810189905287151560c0808301919091528251808303909101815260e0909101909152610f17906115da565b9150610f25828686866116e1565b600160a060020a038b8116911614610f3c57600080fd5b600160a060020a038a1660009081526009602052604090208054600181019091558814610f6857600080fd5b85610f74576000610f78565b6000195b905085610f86576000610f88565b865b600160a060020a03808c166000908152600a60209081526040808320938e1683529290522055610fb98a8a836118e3565b50505050505050505050565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156107f25780601f106107c7576101008083540402835291602001916107f2565b600061102b8383610d0c565b9392505050565b600061103e8383611324565b151561104957600080fd5b6108073384846112ed565b61105f338383610870565b505050565b61106f838383610870565b50505050565b7fea2aa0a1be11a07ed86d755c93467f4f82362b452371d1ba94d1715123511acb81565b600754600160a060020a031690565b600080428610156110b857600080fd5b600160a060020a03808a1660008181526009602090815260409182902080546001810190915582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c99281019290925281830193909352928b166060840152608083018a905260a0830182905260c08084018a90528151808503909101815260e090930190529250611149906115da565b9050611157818686866116e1565b600160a060020a038a811691161461116e57600080fd5b61117989898961127e565b505050505050505050565b336000908152600560209081526040808320600160a060020a03861684529091528120546111b8908363ffffffff6112da16565b336000818152600560209081526040808320600160a060020a038916808552908352928190208590558051948552519193600080516020611d92833981519152929081900390910190a350600192915050565b600160a060020a03918216600090815260056020908152604080832093909416825291909152205490565b61105f823383610870565b600654600160a060020a0316331461125857600080fd5b610cd281611a3e565b600a60209081526000928352604080842090915290825290205481565b6112898383836118e3565b60001981141561105f57600160a060020a038084166000908152600a60209081526040808320938616835292905290812055505050565b6000903b1190565b6000828211156112d457fe5b50900390565b818101828110156112e757fe5b92915050565b6112f682610e40565b1561105f5760408051600081526020810190915261131990849084908490611330565b151561105f57600080fd5b600061102b8383611abc565b600083600160a060020a031663a4c0ed3660e060020a028685856040516024018084600160a060020a0316600160a060020a0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156113a8578181015183820152602001611390565b50505050905090810190601f1680156113d55780820380516001836020036101000a031916815260200191505b5060408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909916989098178852518151919790965086955093509150819050838360005b8381101561146357818101518382015260200161144b565b50505050905090810190601f1680156114905780820380516001836020036101000a031916815260200191505b509150506000604051808303816000865af1979650505050505050565b600160a060020a0382166000908152600360205260409020548111156114d257600080fd5b600160a060020a0382166000908152600360205260409020546114fb908263ffffffff6112c816565b600160a060020a038316600090815260036020526040902055600454611527908263ffffffff6112c816565b600455604080518281529051600160a060020a038416917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a2604080518281529051600091600160a060020a03851691600080516020611d728339815191529181900360200190a35050565b80600160a060020a03811615156115b257600080fd5b600160a060020a03831615156115d0576115cb82611b8b565b61105f565b61105f8383611b97565b6000600854826040518082805190602001908083835b6020831061160f5780518252601f1990920191602091820191016115f0565b51815160209384036101000a6000190180199092169116179052604080519290940182900382207f190100000000000000000000000000000000000000000000000000000000000083830152602283019790975260428083019790975283518083039097018752606290910192839052855192945084935085019190508083835b602083106116af5780518252601f199092019160209182019101611690565b5181516020939093036101000a6000190180199091169216919091179052604051920182900390912095945050505050565b6000808460ff16601b14806116f957508460ff16601c145b1515611775576040805160e560020a62461bcd02815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c60448201527f7565000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115611813576040805160e560020a62461bcd02815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f7565000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60408051600080825260208083018085528a905260ff8916838501526060830188905260808301879052925160019360a0808501949193601f19840193928390039091019190865af115801561186d573d6000803e3d6000fd5b5050604051601f190151915050600160a060020a03811615156118da576040805160e560020a62461bcd02815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b95945050505050565b600160a060020a0383161515611968576040805160e560020a62461bcd028152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a03821615156119ee576040805160e560020a62461bcd02815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0380841660008181526005602090815260408083209487168084529482529182902085905581518581529151600080516020611d928339815191529281900390910190a3505050565b600160a060020a0381161515611a5357600080fd5b600654604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b33600090815260036020526040812054821115611ad857600080fd5b600160a060020a0383161515611aed57600080fd5b33600090815260036020526040902054611b0d908363ffffffff6112c816565b3360009081526003602052604080822092909255600160a060020a03851681522054611b3f908363ffffffff6112da16565b600160a060020a038416600081815260036020908152604091829020939093558051858152905191923392600080516020611d728339815191529281900390910190a350600192915050565b3031610e0a8282611c44565b604080517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290518391600091600160a060020a038416916370a0823191602480830192602092919082900301818787803b158015611bfc57600080fd5b505af1158015611c10573d6000803e3d6000fd5b505050506040513d6020811015611c2657600080fd5b5051905061106f600160a060020a038516848363ffffffff611cac16565b604051600160a060020a0383169082156108fc029083906000818181858888f193505050501515610e0a578082611c79611d41565b600160a060020a039091168152604051908190036020019082f080158015611ca5573d6000803e3d6000fd5b5050505050565b82600160a060020a031663a9059cbb83836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050600060405180830381600087803b158015611d0f57600080fd5b505af1158015611d23573d6000803e3d6000fd5b505050503d1561105f5760206000803e600051151561105f57600080fd5b604051602180611d51833901905600608060405260405160208060218339810160405251600160a060020a038116ff00ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a165627a7a72305820b96bb0733a3e45fdddafa592f51114d0cf16cad047ad60b9b91ae91eb772c6940029") - - codeHash, err := libcommon.HashData(oldContractCode) - if err != nil { - panic("could not get code hash from old gnosis token contract") - } - list = append(list, libcommon.CodeRecord{ - BlockNumber: 0, - CodeHash: codeHash, - }) - - codeHash, err = libcommon.HashData(newContractCode) - if err != nil { - panic("could not get code hash from new gnosis token contract") - } - list = append(list, libcommon.CodeRecord{ - BlockNumber: 21735000, - CodeHash: codeHash, - }) - - byChain[address] = list -} - -func addCodeRecords(upgrade *systemcontracts.Upgrade, blockNum uint64, blockTime uint64, byChain map[libcommon.Address][]libcommon.CodeRecord) { - for _, config := range upgrade.Configs { - list := byChain[config.ContractAddr] - code, err := hex.DecodeString(config.Code) - if err != nil { - panic(fmt.Errorf("failed to decode system contract code: %s", err.Error())) - } - codeHash, err := libcommon.HashData(code) - if err != nil { - panic(fmt.Errorf("failed to hash system contract code: %s", err.Error())) - } - if blockTime == 0 { - list = append(list, libcommon.CodeRecord{BlockNumber: blockNum, CodeHash: codeHash}) - } else { - list = append(list, libcommon.CodeRecord{BlockTime: blockTime, CodeHash: codeHash}) - } - byChain[config.ContractAddr] = list - } -} diff --git a/core/systemcontracts/upgrade.go b/core/systemcontracts/upgrade.go index 3dce76031db..0a995f28414 100644 --- a/core/systemcontracts/upgrade.go +++ b/core/systemcontracts/upgrade.go @@ -1,16 +1,14 @@ package systemcontracts import ( - "encoding/hex" "fmt" "github.com/ledgerwatch/erigon-lib/chain" libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon/core/state" + "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/log/v3" "math/big" - "strings" - - "github.com/ledgerwatch/erigon-lib/chain/networkname" - "github.com/ledgerwatch/erigon/core/state" + "strconv" ) type UpgradeConfig struct { @@ -29,39 +27,6 @@ type Upgrade struct { type upgradeHook func(blockNumber *big.Int, contractAddr libcommon.Address, statedb *state.IntraBlockState) error var ( - //upgrade config - RamanujanUpgrade = make(map[string]*Upgrade) - - NielsUpgrade = make(map[string]*Upgrade) - - MirrorUpgrade = make(map[string]*Upgrade) - - BrunoUpgrade = make(map[string]*Upgrade) - - EulerUpgrade = make(map[string]*Upgrade) - - GibbsUpgrade = make(map[string]*Upgrade) - - MoranUpgrade = make(map[string]*Upgrade) - - PlanckUpgrade = make(map[string]*Upgrade) - - LubanUpgrade = make(map[string]*Upgrade) - - PlatoUpgrade = make(map[string]*Upgrade) - - KeplerUpgrade = make(map[string]*Upgrade) - - FeynmanUpgrade = make(map[string]*Upgrade) - - FeynmanFixUpgrade = make(map[string]*Upgrade) - - HaberFixUpgrade = make(map[string]*Upgrade) - - LatestUpgrade = FeynmanUpgrade - - CalcuttaUpgrade = make(map[string]*Upgrade) - // SystemContractCodeLookup is used to address a flaw in the upgrade logic of the system contracts. Since they are updated directly, without first being self-destructed // and then re-created, the usual incarnation logic does not get activated, and all historical records of the code of these contracts are retrieved as the most // recent version. This problem will not exist in erigon3, but until then, a workaround will be used to access code of such contracts through this structure @@ -70,1105 +35,28 @@ var ( SystemContractCodeLookup = map[string]map[libcommon.Address][]libcommon.CodeRecord{} ) -func init() { - RamanujanUpgrade[networkname.RialtoChainName] = &Upgrade{ - UpgradeName: "ramanujan", - Configs: []*UpgradeConfig{ - { - ContractAddr: ValidatorContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/f4bc161dac5937b8cbd4fe3089c7514c415430f9", - Code: "60806040526004361061027d5760003560e01c80639dc092621161014f578063c8509d81116100c1578063eb57e2021161007a578063eb57e20214610940578063eda5868c14610973578063f340fa0114610988578063f9a2bbc7146109ae578063fc3e5908146109c3578063fd6a6879146109d85761027d565b8063c8509d8114610609578063d86222d5146108d7578063daacdb66146108ec578063dc927faf14610901578063e086c7b114610916578063e1c7392a1461092b5761027d565b8063ab51bb9611610113578063ab51bb961461074a578063ac4317511461075f578063ad3c9da61461082a578063b7ab4db51461085d578063bf9f49951461041b578063c81b1662146108c25761027d565b80639dc09262146106cd578063a1a11bf5146106e2578063a5422d5c146106f7578063a78abc161461070c578063aaf5eb68146107355761027d565b80635667515a116101f35780637942fd05116101ac5780637942fd05146105df57806381650b62146105f4578063831d65d114610609578063853230aa1461068e57806386249882146106a357806396713da9146106b85761027d565b80635667515a146105005780635d77156c146105155780636969a25c1461052a5780636e47b482146105a057806370fd5bad146105b557806375d47a0a146105ca5761027d565b80633dffc387116102455780633dffc3871461041b57806343756e5c14610446578063493279b1146104775780634bf6c882146104a357806351e80672146104b8578063565c56b3146104cd5761027d565b80630bee7a67146102825780631182b875146102b05780631ff18069146103aa578063219f22d5146103d157806335409f7f146103e6575b600080fd5b34801561028e57600080fd5b506102976109ed565b6040805163ffffffff9092168252519081900360200190f35b3480156102bc57600080fd5b50610335600480360360408110156102d357600080fd5b60ff8235169190810190604081016020820135600160201b8111156102f757600080fd5b82018360208201111561030957600080fd5b803590602001918460018302840111600160201b8311171561032a57600080fd5b5090925090506109f2565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561036f578181015183820152602001610357565b50505050905090810190601f16801561039c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103b657600080fd5b506103bf610bdf565b60408051918252519081900360200190f35b3480156103dd57600080fd5b50610297610be5565b3480156103f257600080fd5b506104196004803603602081101561040957600080fd5b50356001600160a01b0316610bea565b005b34801561042757600080fd5b50610430610efe565b6040805160ff9092168252519081900360200190f35b34801561045257600080fd5b5061045b610f03565b604080516001600160a01b039092168252519081900360200190f35b34801561048357600080fd5b5061048c610f09565b6040805161ffff9092168252519081900360200190f35b3480156104af57600080fd5b50610430610f0e565b3480156104c457600080fd5b5061045b610f13565b3480156104d957600080fd5b506103bf600480360360208110156104f057600080fd5b50356001600160a01b0316610f19565b34801561050c57600080fd5b50610430610f6b565b34801561052157600080fd5b50610297610f70565b34801561053657600080fd5b506105546004803603602081101561054d57600080fd5b5035610f75565b604080516001600160a01b039788168152958716602087015293909516848401526001600160401b0390911660608401521515608083015260a082019290925290519081900360c00190f35b3480156105ac57600080fd5b5061045b610fd9565b3480156105c157600080fd5b50610430610fdf565b3480156105d657600080fd5b5061045b610fe4565b3480156105eb57600080fd5b50610430610fea565b34801561060057600080fd5b50610297610fef565b34801561061557600080fd5b506104196004803603604081101561062c57600080fd5b60ff8235169190810190604081016020820135600160201b81111561065057600080fd5b82018360208201111561066257600080fd5b803590602001918460018302840111600160201b8311171561068357600080fd5b509092509050610ff4565b34801561069a57600080fd5b506103bf6110a7565b3480156106af57600080fd5b506103bf6110ad565b3480156106c457600080fd5b506104306110b3565b3480156106d957600080fd5b5061045b6110b8565b3480156106ee57600080fd5b5061045b6110be565b34801561070357600080fd5b506103356110c4565b34801561071857600080fd5b506107216110e1565b604080519115158252519081900360200190f35b34801561074157600080fd5b506103bf6110ea565b34801561075657600080fd5b50610297610f6b565b34801561076b57600080fd5b506104196004803603604081101561078257600080fd5b810190602081018135600160201b81111561079c57600080fd5b8201836020820111156107ae57600080fd5b803590602001918460018302840111600160201b831117156107cf57600080fd5b919390929091602081019035600160201b8111156107ec57600080fd5b8201836020820111156107fe57600080fd5b803590602001918460018302840111600160201b8311171561081f57600080fd5b5090925090506110f3565b34801561083657600080fd5b506103bf6004803603602081101561084d57600080fd5b50356001600160a01b031661139a565b34801561086957600080fd5b506108726113ac565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156108ae578181015183820152602001610896565b505050509050019250505060405180910390f35b3480156108ce57600080fd5b5061045b6114d2565b3480156108e357600080fd5b506103bf6114d8565b3480156108f857600080fd5b506103bf6114e4565b34801561090d57600080fd5b5061045b6114ea565b34801561092257600080fd5b506103bf6114f0565b34801561093757600080fd5b506104196114f5565b34801561094c57600080fd5b506104196004803603602081101561096357600080fd5b50356001600160a01b03166116f6565b34801561097f57600080fd5b506102976118c5565b6104196004803603602081101561099e57600080fd5b50356001600160a01b03166118ca565b3480156109ba57600080fd5b5061045b611b00565b3480156109cf57600080fd5b50610430611b06565b3480156109e457600080fd5b5061045b611b0b565b606481565b60005460609060ff16610a48576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b3361200014610a885760405162461bcd60e51b815260040180806020018281038252602f815260200180614000602f913960400191505060405180910390fd5b610a90613d65565b6000610ad185858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611b1192505050565b9150915080610aed57610ae46064611c6a565b92505050610bd8565b815160009060ff16610b0d57610b068360200151611ccb565b9050610ba4565b825160ff1660011415610ba057826020015151600114610b7a577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2604051808060200182810382526025815260200180613e686025913960400191505060405180910390a1506067610b9b565b610b068360200151600081518110610b8e57fe5b6020026020010151612ad1565b610ba4565b5060655b63ffffffff8116610bc95750506040805160008152602081019091529150610bd89050565b610bd281611c6a565b93505050505b9392505050565b60035481565b606881565b3361100114610c2a5760405162461bcd60e51b815260040180806020018281038252602981526020018061405c6029913960400191505060405180910390fd5b6001600160a01b03811660009081526004602052604090205480610c4e5750610efb565b600181039050600060018281548110610c6357fe5b60009182526020909120600360049092020101546001549091506000190180610cb257600060018481548110610c9557fe5b906000526020600020906004020160030181905550505050610efb565b6040805183815290516001600160a01b038616917f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a70919081900360200190a26001600160a01b038416600090815260046020526040812055600154600019018314610e3457600180546000198101908110610d2957fe5b906000526020600020906004020160018481548110610d4457fe5b6000918252602082208354600492830290910180546001600160a01b03199081166001600160a01b0393841617825560018087015481840180548416918616919091179055600280880180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b199094169390931790556003948501549401939093558254868401939192919087908110610e0957fe5b600091825260208083206004909202909101546001600160a01b031683528201929092526040019020555b6001805480610e3f57fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b03191690556003018190559155818381610e9257fe5b0490508015610ef65760015460005b81811015610ef3578260018281548110610eb757fe5b9060005260206000209060040201600301540160018281548110610ed757fe5b6000918252602090912060036004909202010155600101610ea1565b50505b505050505b50565b600181565b61100181565b606081565b600881565b61200081565b6001600160a01b03811660009081526004602052604081205480610f41576000915050610f66565b600180820381548110610f5057fe5b9060005260206000209060040201600301549150505b919050565b600081565b606781565b60018181548110610f8257fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b61100881565b600b81565b606681565b33612000146110345760405162461bcd60e51b815260040180806020018281038252602f815260200180614000602f913960400191505060405180910390fd5b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a1505050565b6103e881565b60025481565b600981565b61100781565b61100681565b60405180610100016040528060dd8152602001613edc60dd913981565b60005460ff1681565b6402540be40081565b60005460ff16611146576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b33611007146111865760405162461bcd60e51b815260040180806020018281038252602e815260200180613e8d602e913960400191505060405180910390fd5b6111f084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b60208201529150612c489050565b156112cb57602081146112345760405162461bcd60e51b8152600401808060200182810382526026815260200180613fb96026913960400191505060405180910390fd5b604080516020601f840181900481028201810190925282815260009161127291858580838501838280828437600092019190915250612d3092505050565b9050606481101580156112885750620186a08111155b6112c35760405162461bcd60e51b8152600401808060200182810382526027815260200180613e416027913960400191505060405180910390fd5b600255611308565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b60046020526000908152604090205481565b6001546060906000805b828110156113fd57600181815481106113cb57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166113f5576001909101905b6001016113b6565b5060608160405190808252806020026020018201604052801561142a578160200160208202803683370190505b50600092509050815b838110156114ca576001818154811061144857fe5b9060005260206000209060040201600201601c9054906101000a900460ff166114c2576001818154811061147857fe5b600091825260209091206004909102015482516001600160a01b03909116908390859081106114a357fe5b6001600160a01b03909216602092830291909101909101526001909201915b600101611433565b509250505090565b61100281565b67016345785d8a000081565b60055481565b61100381565b602981565b60005460ff161561154d576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b611555613d65565b600061157960405180610100016040528060dd8152602001613edc60dd9139611b11565b91509150806115b95760405162461bcd60e51b8152600401808060200182810382526021815260200180613fdf6021913960400191505060405180910390fd5b60005b8260200151518110156116de576001836020015182815181106115db57fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a0909301516003909301929092559186015180519185019391859081106116b157fe5b602090810291909101810151516001600160a01b03168252810191909152604001600020556001016115bc565b50506103e8600255506000805460ff19166001179055565b33611001146117365760405162461bcd60e51b815260040180806020018281038252602981526020018061405c6029913960400191505060405180910390fd5b6001600160a01b0381166000908152600460205260409020548061175a5750610efb565b60018103905060006001828154811061176f57fe5b906000526020600020906004020160030154905060006001838154811061179257fe5b906000526020600020906004020160030181905550600060018080549050039050836001600160a01b03167f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d836040518082815260200191505060405180910390a28061180157505050610efb565b600081838161180c57fe5b0490508015610ef65760005b8481101561186a57816001828154811061182e57fe5b906000526020600020906004020160030154016001828154811061184e57fe5b6000918252602090912060036004909202010155600101611818565b50600180549085015b81811015610ef357826001828154811061188957fe5b90600052602060002090600402016003015401600182815481106118a957fe5b6000918252602090912060036004909202010155600101611873565b606581565b3341146119085760405162461bcd60e51b815260040180806020018281038252602d81526020018061402f602d913960400191505060405180910390fd5b60005460ff1661195b576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b600034116119a8576040805162461bcd60e51b81526020600482015260156024820152746465706f7369742076616c7565206973207a65726f60581b604482015290519081900360640190fd5b6001600160a01b03811660009081526004602052604090205434908015611abb5760006001808303815481106119da57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff1615611a45576040805184815290516001600160a01b038616917ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4919081900360200190a2611ab5565b600354611a58908463ffffffff612d3516565b6003908155810154611a70908463ffffffff612d3516565b60038201556040805184815290516001600160a01b038616917f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc055919081900360200190a25b50611afb565b6040805183815290516001600160a01b038516917ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4919081900360200190a25b505050565b61100081565b600381565b61100481565b611b19613d65565b6000611b23613d65565b611b2b613d7d565b611b3c611b3786612d8f565b612db4565b90506000805b611b4b83612dfe565b15611c5c5780611b7057611b66611b6184612e1f565b612e6d565b60ff168452611c54565b8060011415611c4f576060611b8c611b8785612e1f565b612f24565b90508051604051908082528060200260200182016040528015611bc957816020015b611bb6613d9d565b815260200190600190039081611bae5790505b50602086015260005b8151811015611c4457611be3613d9d565b6000611c01848481518110611bf457fe5b6020026020010151612ff5565b9150915080611c1e57876000995099505050505050505050611c65565b8188602001518481518110611c2f57fe5b60209081029190910101525050600101611bd2565b506001925050611c54565b611c5c565b600101611b42565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b6060815260200190600190039081611c84579050509050611caa8363ffffffff166130d2565b81600081518110611cb757fe5b6020026020010181905250610bd8816130e5565b6000806060611cd98461316f565b9150915081611d86577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2816040518080602001828103825283818151815260200191508051906020019080838360005b83811015611d41578181015183820152602001611d29565b50505050905090810190601f168015611d6e5780820380516001836020036101000a031916815260200191505b509250505060405180910390a1606692505050610f66565b600080805b600154811015611e035767016345785d8a000060018281548110611dab57fe5b90600052602060002090600402016003015410611dcd57600190920191611dfb565b600060018281548110611ddc57fe5b9060005260206000209060040201600301541115611dfb576001909101905b600101611d8b565b50606082604051908082528060200260200182016040528015611e30578160200160208202803683370190505b509050606083604051908082528060200260200182016040528015611e5f578160200160208202803683370190505b509050606084604051908082528060200260200182016040528015611e8e578160200160208202803683370190505b509050606085604051908082528060200260200182016040528015611ebd578160200160208202803683370190505b5090506000606086604051908082528060200260200182016040528015611eee578160200160208202803683370190505b509050606087604051908082528060200260200182016040528015611f1d578160200160208202803683370190505b509050600098506000975060608d905060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b158015611f6a57600080fd5b505afa158015611f7e573d6000803e3d6000fd5b505050506040513d6020811015611f9457600080fd5b5051905067016345785d8a0000811115612009577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2604051808060200182810382526021815260200180613ebb6021913960400191505060405180910390a160689d5050505050505050505050505050610f66565b60005b60015481101561227c5767016345785d8a00006001828154811061202c57fe5b906000526020600020906004020160030154106121b2576001818154811061205057fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b03168a8d8151811061208157fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be400600183815481106120b657fe5b906000526020600020906004020160030154816120cf57fe5b06600183815481106120dd57fe5b906000526020600020906004020160030154039050612105838261325190919063ffffffff16565b8a8e8151811061211157fe5b6020026020010181815250506001828154811061212a57fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316888e8151811061215b57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081898e8151811061218857fe5b60209081029190910101526121a3878263ffffffff612d3516565b6001909d019c96506122749050565b6000600182815481106121c157fe5b906000526020600020906004020160030154111561227457600181815481106121e657fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316858c8151811061221757fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506001818154811061224457fe5b906000526020600020906004020160030154848c8151811061226257fe5b60209081029190910101526001909a01995b60010161200c565b50600085156126ba576110046001600160a01b0316636e056520878c8c8b60025442016040518663ffffffff1660e01b815260040180806020018060200180602001856001600160401b03166001600160401b03168152602001848103845288818151815260200191508051906020019060200280838360005b8381101561230e5781810151838201526020016122f6565b50505050905001848103835287818151815260200191508051906020019060200280838360005b8381101561234d578181015183820152602001612335565b50505050905001848103825286818151815260200191508051906020019060200280838360005b8381101561238c578181015183820152602001612374565b505050509050019750505050505050506020604051808303818588803b1580156123b557600080fd5b505af1935050505080156123db57506040513d60208110156123d657600080fd5b505160015b612616576040516000815260443d10156123f757506000612492565b60046000803e60005160e01c6308c379a08114612418576000915050612492565b60043d036004833e81513d60248201116001600160401b038211171561244357600092505050612492565b80830180516001600160401b03811115612464576000945050505050612492565b8060208301013d860181111561248257600095505050505050612492565b601f01601f191660405250925050505b8061249d5750612541565b60019150867fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280826040518080602001828103825283818151815260200191508051906020019080838360005b838110156125015781810151838201526020016124e9565b50505050905090810190601f16801561252e5780820380516001836020036101000a031916815260200191505b509250505060405180910390a250612611565b3d80801561256b576040519150601f19603f3d011682016040523d82523d6000602084013e612570565b606091505b5060019150867fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a45826040518080602001828103825283818151815260200191508051906020019080838360005b838110156125d55781810151838201526020016125bd565b50505050905090810190601f1680156126025780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b6126ba565b8015612654576040805188815290517fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b709181900360200190a16126b8565b604080516020808252601b908201527f6261746368207472616e736665722072657475726e2066616c7365000000000081830152905188917fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280919081900360600190a25b505b80156128705760005b885181101561286e5760008982815181106126da57fe5b602002602001015190506000600182815481106126f357fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc918590811061272457fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f19350505050905080156127e0576001828154811061276557fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d91859081106127b457fe5b9060005260206000209060040201600301546040518082815260200191505060405180910390a2612864565b600182815481106127ed57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d918590811061283c57fe5b9060005260206000209060040201600301546040518082815260200191505060405180910390a25b50506001016126c3565b505b8451156129ba5760005b85518110156129b857600086828151811061289157fe5b60200260200101516001600160a01b03166108fc8784815181106128b157fe5b60200260200101519081150290604051600060405180830381858888f1935050505090508015612947578682815181106128e757fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d87848151811061292557fe5b60200260200101516040518082815260200191505060405180910390a26129af565b86828151811061295357fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d87848151811061299157fe5b60200260200101516040518082815260200191505060405180910390a25b5060010161287a565b505b4715612a23576040805147815290517f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d9181900360200190a1604051611002904780156108fc02916000818181858888f19350505050158015612a21573d6000803e3d6000fd5b505b60006003819055600555825115612a3d57612a3d83613293565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015612a7a57600080fd5b505af1158015612a8e573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a15060009f9e505050505050505050505050505050565b80516001600160a01b0316600090815260046020526040812054801580612b225750600180820381548110612b0257fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b15612b685782516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a26000915050610f66565b600154600554600019820111801590612bbe5784516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a260009350505050610f66565b600580546001908101909155805481906000198601908110612bdc57fe5b6000918252602082206002600490920201018054921515600160e01b0260ff60e01b199093169290921790915585516040516001600160a01b03909116917ff226e7d8f547ff903d9d419cf5f54e0d7d07efa9584135a53a057c5f1f27f49a91a2506000949350505050565b6000816040516020018082805190602001908083835b60208310612c7d5780518252601f199092019160209182019101612c5e565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310612ceb5780518252601f199092019160209182019101612ccc565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052805190602001201490505b92915050565b015190565b600082820183811015610bd8576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b612d97613dd2565b506040805180820190915281518152602082810190820152919050565b612dbc613d7d565b612dc58261375a565b612dce57600080fd5b6000612ddd8360200151613794565b60208085015160408051808201909152868152920190820152915050919050565b6000612e08613dd2565b505080518051602091820151919092015191011190565b612e27613dd2565b612e3082612dfe565b612e3957600080fd5b60208201516000612e49826137f7565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590612e8257508151602110155b612e8b57600080fd5b6000612e9a8360200151613794565b90508083600001511015612ef5576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015612f1b57826020036101000a820491505b50949350505050565b6060612f2f8261375a565b612f3857600080fd5b6000612f438361392a565b9050606081604051908082528060200260200182016040528015612f8157816020015b612f6e613dd2565b815260200190600190039081612f665790505b5090506000612f938560200151613794565b60208601510190506000805b84811015612fea57612fb0836137f7565b9150604051806040016040528083815260200184815250848281518110612fd357fe5b602090810291909101015291810191600101612f9f565b509195945050505050565b612ffd613d9d565b6000613007613d9d565b61300f613d7d565b61301885612db4565b90506000805b61302783612dfe565b15611c5c57806130525761304261303d84612e1f565b613986565b6001600160a01b031684526130ca565b806001141561307a5761306761303d84612e1f565b6001600160a01b031660208501526130ca565b80600214156130a25761308f61303d84612e1f565b6001600160a01b031660408501526130ca565b8060031415611c4f576130b7611b6184612e1f565b6001600160401b03166060850152600191505b60010161301e565b6060612d2a6130e0836139a0565b613a86565b60608151600014156131065750604080516000815260208101909152610f66565b60608260008151811061311557fe5b602002602001015190506000600190505b83518110156131565761314c8285838151811061313f57fe5b6020026020010151613ad8565b9150600101613126565b50610bd8613169825160c060ff16613b55565b82613ad8565b600060606029835111156131a1576000604051806060016040528060298152602001613ded6029913991509150611c65565b60005b83518110156132375760005b8181101561322e578481815181106131c457fe5b6020026020010151600001516001600160a01b03168583815181106131e557fe5b6020026020010151600001516001600160a01b031614156132265760006040518060600160405280602b8152602001613e16602b9139935093505050611c65565b6001016131b0565b506001016131a4565b505060408051602081019091526000815260019150915091565b6000610bd883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613c4d565b600154815160005b828110156133b05760016132ad613d9d565b600183815481106132ba57fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b848110156133845786818151811061334a57fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b0316141561337c5760009250613384565b600101613336565b5081156133a65780516001600160a01b03166000908152600460205260408120555b505060010161329b565b508082111561342557805b828110156134235760018054806133ce57fe5b60008281526020812060046000199093019283020180546001600160a01b03199081168255600182810180549092169091556002820180546001600160e81b03191690556003909101919091559155016133bb565b505b60008183106134345781613436565b825b905060005b81811015613630576134e885828151811061345257fe5b60200260200101516001838154811061346757fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a0820152613ce4565b61360357806001016004600087848151811061350057fe5b6020026020010151600001516001600160a01b03166001600160a01b031681526020019081526020016000208190555084818151811061353c57fe5b60200260200101516001828154811061355157fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a090910151600390910155613628565b60006001828154811061361257fe5b9060005260206000209060040201600301819055505b60010161343b565b508282111561375457825b82811015610ef657600185828151811061365157fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782559585015181840180549184169188169190911790556040850151600282018054606088015160808901511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590971692909a169190911792909216939093171695909517905560a0909201516003909301929092558751908401929088908590811061372757fe5b602090810291909101810151516001600160a01b031682528101919091526040016000205560010161363b565b50505050565b805160009061376b57506000610f66565b6020820151805160001a9060c082101561378a57600092505050610f66565b5060019392505050565b8051600090811a60808110156137ae576000915050610f66565b60b88110806137c9575060c081108015906137c9575060f881105b156137d8576001915050610f66565b60c08110156137ec5760b519019050610f66565b60f519019050610f66565b80516000908190811a60808110156138125760019150613923565b60b881101561382757607e1981019150613923565b60c08110156138a157600060b78203600186019550806020036101000a86510491506001810182019350508083101561389b576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50613923565b60f88110156138b65760be1981019150613923565b600060f78203600186019550806020036101000a865104915060018101820193505080831015613921576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b805160009061393b57506000610f66565b6000809050600061394f8460200151613794565b602085015185519181019250015b8082101561397d5761396e826137f7565b6001909301929091019061395d565b50909392505050565b805160009060151461399757600080fd5b612d2a82612e6d565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166139e457506018613a08565b6fffffffffffffffffffffffffffffffff198416613a0457506010613a08565b5060005b6020811015613a3e57818181518110613a1d57fe5b01602001516001600160f81b03191615613a3657613a3e565b600101613a08565b60008160200390506060816040519080825280601f01601f191660200182016040528015613a73576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015613ab85750607f60f81b82600081518110613aa657fe5b01602001516001600160f81b03191611155b15613ac4575080610f66565b612d2a613ad68351608060ff16613b55565b835b6060806040519050835180825260208201818101602087015b81831015613b09578051835260209283019201613af1565b50855184518101855292509050808201602086015b81831015613b36578051835260209283019201613b1e565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310613ba5576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b60408051600180825281830190925260609160208201818036833701905050905060378411613bff5782840160f81b81600081518110613be157fe5b60200101906001600160f81b031916908160001a9053509050612d2a565b6060613c0a856139a0565b90508381510160370160f81b82600081518110613c2357fe5b60200101906001600160f81b031916908160001a905350613c448282613ad8565b95945050505050565b60008184841115613cdc5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613ca1578181015183820152602001613c89565b50505050905090810190601f168015613cce5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b805182516000916001600160a01b039182169116148015613d1e575081602001516001600160a01b031683602001516001600160a01b0316145b8015613d43575081604001516001600160a01b031683604001516001600160a01b0316145b8015610bd85750506060908101519101516001600160401b0390811691161490565b60408051808201909152600081526060602082015290565b6040518060400160405280613d90613dd2565b8152602001600081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b60405180604001604052806000815260200160008152509056fe746865206e756d626572206f662076616c696461746f72732065786365656420746865206c696d69746475706c696361746520636f6e73656e7375732061646472657373206f662076616c696461746f725365747468652065787069726554696d655365636f6e64476170206973206f7574206f662072616e67656c656e677468206f66206a61696c2076616c696461746f7273206d757374206265206f6e65746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374666565206973206c6172676572207468616e2044555354595f494e434f4d494e47f8db80f8d8f84694a50381a86cd38ca23f6136556fc604329a054a85945d2287739da12be1f3e3b1aeaf14f888e9d63795942ae1ace6a7e31c76ee3c7d2f0b5977c21d5a2a3a86048c27395000f846940dd11a413972d8b1e1367c4b9196f75348424e7094c9c121c762d1e349dc3e38324d1c108c0b08abf99451f1512d6bfac004c862e761c43ad87dd8235dc486048c27395000f84694a5f6a270f60c83624dd1849038ee7c9e8a3e55fc94c9ff491fd30c1026b24b975274cf3d4286d36fa194a86cfcf4753a5df58d89bd6524f69b0e1ae072a986048c273950006c656e677468206f662065787069726554696d655365636f6e64476170206d69736d617463686661696c656420746f20706172736520696e69742076616c696461746f72536574746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d6573736167652073656e646572206d7573742062652074686520626c6f636b2070726f6475636572746865206d6573736167652073656e646572206d75737420626520736c61736820636f6e7472616374a2646970667358221220fdcf56e550bb645c25bbb322f7eea0d3ca90b5bb689e2fd4e559c38f5e858cb564736f6c63430006040033", - }, - { - ContractAddr: SlashContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/f4bc161dac5937b8cbd4fe3089c7514c415430f9", - Code: "608060405234801561001057600080fd5b50600436106102275760003560e01c8063831d65d111610130578063c80d4b8f116100b8578063e1c7392a1161007c578063e1c7392a146106d9578063f9a2bbc7146106e1578063fc3e5908146106e9578063fc4333cd146106f1578063fd6a6879146106f957610227565b8063c80d4b8f14610623578063c81b16621461062b578063c8509d8114610633578063c96be4cb146106ab578063dc927faf146106d157610227565b8063a1a11bf5116100ff578063a1a11bf514610531578063a78abc1614610539578063ab51bb9614610555578063ac0af6291461055d578063ac4317511461056557610227565b8063831d65d11461049f57806396713da9146105195780639bc8e4f2146105215780639dc092621461052957610227565b80634bf6c882116101b35780636e47b482116101825780636e47b4821461047757806370fd5bad1461047f57806375d47a0a146104875780637912a65d1461048f5780637942fd051461049757610227565b80634bf6c8821461045757806351e806721461045f578063567a372d1461046757806362b72cf51461046f57610227565b806337c8dab9116101fa57806337c8dab9146103b9578063389f4f71146103f85780633dffc3871461041257806343756e5c14610430578063493279b11461043857610227565b80630bee7a671461022c5780631182b8751461024d57806323bac5a21461033a57806335aa2e4414610380575b600080fd5b610234610701565b6040805163ffffffff9092168252519081900360200190f35b6102c56004803603604081101561026357600080fd5b60ff8235169190810190604081016020820135600160201b81111561028757600080fd5b82018360208201111561029957600080fd5b803590602001918460018302840111600160201b831117156102ba57600080fd5b509092509050610706565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102ff5781810151838201526020016102e7565b50505050905090810190601f16801561032c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103606004803603602081101561035057600080fd5b50356001600160a01b03166107da565b604080519384526020840192909252151582820152519081900360600190f35b61039d6004803603602081101561039657600080fd5b50356107fd565b604080516001600160a01b039092168252519081900360200190f35b6103df600480360360208110156103cf57600080fd5b50356001600160a01b0316610824565b6040805192835260208301919091528051918290030190f35b61040061087b565b60408051918252519081900360200190f35b61041a610881565b6040805160ff9092168252519081900360200190f35b61039d610886565b61044061088c565b6040805161ffff9092168252519081900360200190f35b61041a610891565b61039d610896565b61040061089c565b6104006108a2565b61039d6108a8565b61041a6108ae565b61039d6108b3565b6104006108b9565b61041a6108be565b610517600480360360408110156104b557600080fd5b60ff8235169190810190604081016020820135600160201b8111156104d957600080fd5b8201836020820111156104eb57600080fd5b803590602001918460018302840111600160201b8311171561050c57600080fd5b5090925090506108c3565b005b61041a610a1e565b610400610a23565b61039d610a2e565b61039d610a34565b610541610a3a565b604080519115158252519081900360200190f35b610234610a43565b610400610a48565b6105176004803603604081101561057b57600080fd5b810190602081018135600160201b81111561059557600080fd5b8201836020820111156105a757600080fd5b803590602001918460018302840111600160201b831117156105c857600080fd5b919390929091602081019035600160201b8111156105e557600080fd5b8201836020820111156105f757600080fd5b803590602001918460018302840111600160201b8311171561061857600080fd5b509092509050610a4d565b610400610e3b565b61039d610e40565b6105176004803603604081101561064957600080fd5b60ff8235169190810190604081016020820135600160201b81111561066d57600080fd5b82018360208201111561067f57600080fd5b803590602001918460018302840111600160201b831117156106a057600080fd5b509092509050610e46565b610517600480360360208110156106c157600080fd5b50356001600160a01b0316610ef9565b61039d61131e565b610517611324565b61039d611395565b61041a61139b565b6105176113a0565b61039d61182b565b606481565b606033612000146107485760405162461bcd60e51b815260040180806020018281038252602f815260200180612282602f913960400191505060405180910390fd5b60005460ff1661078d576040805162461bcd60e51b815260206004820152601960248201526000805160206122de833981519152604482015290519081900360640190fd5b6040805162461bcd60e51b815260206004820152601e60248201527f7265636569766520756e65787065637465642073796e207061636b6167650000604482015290519081900360640190fd5b600260208190526000918252604090912080546001820154919092015460ff1683565b6001818154811061080a57fe5b6000918252602090912001546001600160a01b0316905081565b60008061082f612146565b5050506001600160a01b0316600090815260026020818152604092839020835160608101855281548082526001830154938201849052919093015460ff16151592909301919091529091565b60055481565b600181565b61100181565b606081565b600881565b61200081565b60045481565b60035481565b61100581565b600281565b61100881565b603281565b600b81565b33612000146109035760405162461bcd60e51b815260040180806020018281038252602f815260200180612282602f913960400191505060405180910390fd5b60005460ff16610948576040805162461bcd60e51b815260206004820152601960248201526000805160206122de833981519152604482015290519081900360640190fd5b610950612169565b600061099184848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061183192505050565b9150915080156109db5781516040805163ffffffff9092168252517f7f0956d47419b9525356e7111652b653b530ec6f5096dccc04589bc38e6299679181900360200190a1610a17565b81516040805163ffffffff9092168252517f7d45f62d17443dd4547bca8a8112c60e2385669318dc300ec61a5d2492f262e79181900360200190a15b5050505050565b600981565b662386f26fc1000081565b61100781565b61100681565b60005460ff1681565b600081565b600481565b60005460ff16610a92576040805162461bcd60e51b815260206004820152601960248201526000805160206122de833981519152604482015290519081900360640190fd5b3361100714610ad25760405162461bcd60e51b815260040180806020018281038252602e81526020018061220d602e913960400191505060405180910390fd5b610b3d84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260148152731b5a5cd9195b59585b9bdc951a1c995cda1bdb1960621b602082015291506118b19050565b15610c165760208114610b815760405162461bcd60e51b81526004018080602001828103825260278152602001806121b66027913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610bbf9185858083850183828082843760009201919091525061199992505050565b905060018110158015610bd3575060055481105b610c0e5760405162461bcd60e51b815260040180806020018281038252602581526020018061225d6025913960400191505060405180910390fd5b600455610da9565b610c7c84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e19995b1bdb9e551a1c995cda1bdb19608a1b602082015291506118b19050565b15610d6c5760208114610cc05760405162461bcd60e51b815260040180806020018281038252602281526020018061223b6022913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610cfe9185858083850183828082843760009201919091525061199992505050565b90506103e88111158015610d13575060045481115b610d64576040805162461bcd60e51b815260206004820181905260248201527f7468652066656c6f6e795468726573686f6c64206f7574206f662072616e6765604482015290519081900360640190fd5b600555610da9565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b609681565b61100281565b3361200014610e865760405162461bcd60e51b815260040180806020018281038252602f815260200180612282602f913960400191505060405180910390fd5b60005460ff16610ecb576040805162461bcd60e51b815260206004820152601960248201526000805160206122de833981519152604482015290519081900360640190fd5b6040517f07db600eebe2ac176be8dcebad61858c245a4961bb32ca2aa3d159b09aa0810e90600090a1505050565b334114610f375760405162461bcd60e51b815260040180806020018281038252602d8152602001806122b1602d913960400191505060405180910390fd5b60005460ff16610f7c576040805162461bcd60e51b815260206004820152601960248201526000805160206122de833981519152604482015290519081900360640190fd5b6003544311610fd2576040805162461bcd60e51b815260206004820181905260248201527f63616e206e6f7420736c61736820747769636520696e206f6e6520626c6f636b604482015290519081900360640190fd5b3a1561101c576040805162461bcd60e51b81526020600482015260146024820152736761737072696365206973206e6f74207a65726f60601b604482015290519081900360640190fd5b611024612146565b506001600160a01b0381166000908152600260208181526040928390208351606081018552815481526001820154928101929092529091015460ff16158015928201929092529061107f5760208101805160010190526110d8565b60016040820181905260208201819052805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0384161790555b4381526005546020820151816110ea57fe5b0661123c57600060208201819052604080516335409f7f60e01b81526001600160a01b03851660048201529051611000926335409f7f926024808201939182900301818387803b15801561113d57600080fd5b505af1158015611151573d6000803e3d6000fd5b505050506120006001600160a01b031663f7a251d7600b6111718561199e565b60006040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156111d15781810151838201526020016111b9565b50505050905090810190601f1680156111fe5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561121f57600080fd5b505af1158015611233573d6000803e3d6000fd5b505050506112b2565b60045481602001518161124b57fe5b066112b257604080516375abf10160e11b81526001600160a01b038416600482015290516110009163eb57e20291602480830192600092919082900301818387803b15801561129957600080fd5b505af11580156112ad573d6000803e3d6000fd5b505050505b6001600160a01b0382166000818152600260208181526040808420865181559186015160018301558581015191909201805460ff1916911515919091179055517fddb6012116e51abf5436d956a4f0ebd927e92c576ff96d7918290c8782291e3e9190a2505043600355565b61100381565b60005460ff161561137c576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b603260045560966005556000805460ff19166001179055565b61100081565b600381565b33611000146113e05760405162461bcd60e51b81526004018080602001828103825260308152602001806121dd6030913960400191505060405180910390fd5b60005460ff16611425576040805162461bcd60e51b815260206004820152601960248201526000805160206122de833981519152604482015290519081900360640190fd5b60015461143157611829565b600154600090600019015b8082116117fd576000805b8284101561156057611457612146565b600260006001878154811061146857fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff16151590820152600554909150600490048160200151111561154a576004600554816114d557fe5b048160200151038160200181815250508060026000600188815481106114f757fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208351815591830151600183015591909101516002909101805460ff1916911515919091179055611554565b6001925050611560565b50600190930192611447565b8284116116f75761156f612146565b600260006001868154811061158057fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff161515908201526005549091506004900481602001511115611668576004600554816115ed57fe5b0481602001510381602001818152505080600260006001878154811061160f57fe5b6000918252602080832091909101546001600160a01b03168352828101939093526040918201902083518155918301516001808401919091559201516002909101805460ff191691151591909117905591506116f79050565b600260006001868154811061167957fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff191690558054806116bd57fe5b600082815260209020810160001990810180546001600160a01b0319169055019055836116ea57506116f7565b5060001990920191611560565b8180156117015750805b156117e057600260006001868154811061171757fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff1916905580548490811061175e57fe5b600091825260209091200154600180546001600160a01b03909216918690811061178457fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060018054806117bd57fe5b600082815260209020810160001990810180546001600160a01b03191690550190555b826117ec5750506117fd565b50506001909101906000190161143c565b6040517fcfdb3b6ccaeccbdc68be3c59c840e3b3c90f0a7c491f5fff1cf56cfda200dd9c90600090a150505b565b61100481565b611839612169565b6000611843612169565b61184b61217b565b61185c61185786611a70565b611a95565b90506000805b61186b83611adf565b156118a457806118975761188661188184611b00565b611b4e565b63ffffffff1684526001915061189c565b6118a4565b600101611862565b5091935090915050915091565b6000816040516020018082805190602001908083835b602083106118e65780518252601f1990920191602091820191016118c7565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106119545780518252601f199092019160209182019101611935565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052805190602001201490505b92915050565b015190565b60408051600480825260a08201909252606091829190816020015b60608152602001906001900390816119b95790505090506119e2836001600160a01b0316611c05565b816000815181106119ef57fe5b6020026020010181905250611a0343611c28565b81600181518110611a1057fe5b6020908102919091010152611a256060611c28565b81600281518110611a3257fe5b6020026020010181905250611a4642611c28565b81600381518110611a5357fe5b6020026020010181905250611a6781611c3b565b9150505b919050565b611a7861219b565b506040805180820190915281518152602082810190820152919050565b611a9d61217b565b611aa682611cc5565b611aaf57600080fd5b6000611abe8360200151611cff565b60208085015160408051808201909152868152920190820152915050919050565b6000611ae961219b565b505080518051602091820151919092015191011190565b611b0861219b565b611b1182611adf565b611b1a57600080fd5b60208201516000611b2a82611d62565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590611b6357508151602110155b611b6c57600080fd5b6000611b7b8360200151611cff565b90508083600001511015611bd6576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015611bfc57826020036101000a820491505b50949350505050565b60408051600560a21b8318601482015260348101909152606090611a6781611e95565b6060611993611c3683611eeb565b611e95565b6060815160001415611c5c5750604080516000815260208101909152611a6b565b606082600081518110611c6b57fe5b602002602001015190506000600190505b8351811015611cac57611ca282858381518110611c9557fe5b6020026020010151611fd1565b9150600101611c7c565b50611a67611cbf825160c060ff1661204e565b82611fd1565b8051600090611cd657506000611a6b565b6020820151805160001a9060c0821015611cf557600092505050611a6b565b5060019392505050565b8051600090811a6080811015611d19576000915050611a6b565b60b8811080611d34575060c08110801590611d34575060f881105b15611d43576001915050611a6b565b60c0811015611d575760b519019050611a6b565b60f519019050611a6b565b80516000908190811a6080811015611d7d5760019150611e8e565b60b8811015611d9257607e1981019150611e8e565b60c0811015611e0c57600060b78203600186019550806020036101000a865104915060018101820193505080831015611e06576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50611e8e565b60f8811015611e215760be1981019150611e8e565b600060f78203600186019550806020036101000a865104915060018101820193505080831015611e8c576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b606081516001148015611ec75750607f60f81b82600081518110611eb557fe5b01602001516001600160f81b03191611155b15611ed3575080611a6b565b611993611ee58351608060ff1661204e565b83611fd1565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416611f2f57506018611f53565b6fffffffffffffffffffffffffffffffff198416611f4f57506010611f53565b5060005b6020811015611f8957818181518110611f6857fe5b01602001516001600160f81b03191615611f8157611f89565b600101611f53565b60008160200390506060816040519080825280601f01601f191660200182016040528015611fbe576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b81831015612002578051835260209283019201611fea565b50855184518101855292509050808201602086015b8183101561202f578051835260209283019201612017565b508651929092011591909101601f01601f191660405250905092915050565b606068010000000000000000831061209e576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b604080516001808252818301909252606091602082018180368337019050509050603784116120f85782840160f81b816000815181106120da57fe5b60200101906001600160f81b031916908160001a9053509050611993565b606061210385611eeb565b90508381510160370160f81b8260008151811061211c57fe5b60200101906001600160f81b031916908160001a90535061213d8282611fd1565b95945050505050565b604051806060016040528060008152602001600081526020016000151581525090565b60408051602081019091526000815290565b604051806040016040528061218e61219b565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe6c656e677468206f66206d697364656d65616e6f725468726573686f6c64206d69736d61746368746865206d6573736167652073656e646572206d7573742062652076616c696461746f7253657420636f6e7472616374746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662066656c6f6e795468726573686f6c64206d69736d61746368746865206d697364656d65616e6f725468726573686f6c64206f7574206f662072616e6765746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d6573736167652073656e646572206d7573742062652074686520626c6f636b2070726f647563657274686520636f6e7472616374206e6f7420696e69742079657400000000000000a26469706673582212204ff575d7be356d691e7b7eae41716a4ccc366ec84f8235486e935261df61a18a64736f6c63430006040033", - }, - { - ContractAddr: SystemRewardContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/f4bc161dac5937b8cbd4fe3089c7514c415430f9", - Code: "60806040526004361061014f5760003560e01c806396713da9116100b6578063c81b16621161006f578063c81b1662146103dc578063dc927faf146103f1578063f9a2bbc714610406578063fb5478b31461041b578063fc3e590814610430578063fd6a68791461044557610193565b806396713da91461033a5780639a99b4f01461034f5780639dc0926214610388578063a1a11bf51461039d578063a78abc16146103b2578063ab51bb96146103c757610193565b806351e806721161010857806351e806721461028a5780636d70f7ae1461029f5780636e47b482146102e657806370fd5bad146102fb57806375d47a0a146103105780637942fd051461032557610193565b80630bee7a67146101985780633a0b0eff146101c65780633dffc387146101ed57806343756e5c14610218578063493279b1146102495780634bf6c8821461027557610193565b366101935734156101915760408051348152905133917f6c98249d85d88c3753a04a22230f595e4dc8d3dc86c34af35deeeedc861b89db919081900360200190a25b005b600080fd5b3480156101a457600080fd5b506101ad61045a565b6040805163ffffffff9092168252519081900360200190f35b3480156101d257600080fd5b506101db61045f565b60408051918252519081900360200190f35b3480156101f957600080fd5b50610202610465565b6040805160ff9092168252519081900360200190f35b34801561022457600080fd5b5061022d61046a565b604080516001600160a01b039092168252519081900360200190f35b34801561025557600080fd5b5061025e610470565b6040805161ffff9092168252519081900360200190f35b34801561028157600080fd5b50610202610475565b34801561029657600080fd5b5061022d61047a565b3480156102ab57600080fd5b506102d2600480360360208110156102c257600080fd5b50356001600160a01b0316610480565b604080519115158252519081900360200190f35b3480156102f257600080fd5b5061022d61049e565b34801561030757600080fd5b506102026104a4565b34801561031c57600080fd5b5061022d6104a9565b34801561033157600080fd5b506102026104af565b34801561034657600080fd5b506102026104b4565b34801561035b57600080fd5b506101db6004803603604081101561037257600080fd5b506001600160a01b0381351690602001356104b9565b34801561039457600080fd5b5061022d610664565b3480156103a957600080fd5b5061022d61066a565b3480156103be57600080fd5b506102d2610670565b3480156103d357600080fd5b506101ad610679565b3480156103e857600080fd5b5061022d61067e565b3480156103fd57600080fd5b5061022d610684565b34801561041257600080fd5b5061022d61068a565b34801561042757600080fd5b506101db610690565b34801561043c57600080fd5b5061020261069c565b34801561045157600080fd5b5061022d6106a1565b606481565b60015481565b600181565b61100181565b606081565b600881565b61200081565b6001600160a01b031660009081526002602052604090205460ff1690565b61100581565b600281565b61100881565b600b81565b600981565b6000805460ff1661053657600260208190527fe57bda0a954a7c7381b17b2c763e646ba2c60f67292d287ba583603e2c1c41668054600160ff19918216811790925561100560009081527fe25235fc0de9d7165652bef0846fefda506174abb9a190f03d0f7bcc6146dbce80548316841790559282558254161790555b3360009081526002602052604090205460ff166105845760405162461bcd60e51b815260040180806020018281038252602b8152602001806106a8602b913960400191505060405180910390fd5b60004783106105935747610595565b825b9050670de0b6b3a76400008111156105b25750670de0b6b3a76400005b8015610633576040516001600160a01b0385169082156108fc029083906000818181858888f193505050501580156105ee573d6000803e3d6000fd5b506040805182815290516001600160a01b038616917ff8b71c64315fc33b2ead2adfa487955065152a8ac33d9d5193aafd7f45dc15a0919081900360200190a261065d565b6040517fe589651933c2457488cc0d8e0941518abf748e799435e4e396d9c4d0b2db2d4d90600090a15b9392505050565b61100781565b61100681565b60005460ff1681565b600081565b61100281565b61100381565b61100081565b670de0b6b3a764000081565b600381565b6110048156fe6f6e6c79206f70657261746f7220697320616c6c6f77656420746f2063616c6c20746865206d6574686f64a2646970667358221220d0a7618a32d393c0757994fad066c9aaf7342a982498e0748019ec232f5dc86764736f6c63430006040033", - }, - { - ContractAddr: LightClientContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/f4bc161dac5937b8cbd4fe3089c7514c415430f9", - Code: "608060405234801561001057600080fd5b50600436106102115760003560e01c8063a78abc1611610125578063dda83148116100ad578063e405bbc31161007c578063e405bbc314610681578063ea54b2aa14610689578063f9a2bbc714610691578063fc3e590814610699578063fd6a6879146106a157610211565b8063dda8314814610609578063df5fe7041461062f578063e1c7392a14610655578063e2761af01461065d57610211565b8063c81b1662116100f4578063c81b166214610534578063cba510a91461053c578063d816987914610562578063da8d08f0146105db578063dc927faf1461060157610211565b8063a78abc1614610444578063ab51bb9614610460578063ac43175114610468578063adc879e91461052c57610211565b8063564b81ef116101a857806375d47a0a1161017757806375d47a0a1461041c5780637942fd051461042457806396713da91461042c5780639dc0926214610434578063a1a11bf51461043c57610211565b8063564b81ef146102ca5780635c5ae8db146103475780636e47b4821461040c57806370fd5bad1461041457610211565b806343756e5c116101e457806343756e5c14610277578063493279b11461029b5780634bf6c882146102ba57806351e80672146102c257610211565b80630bee7a67146102165780632657e9b61461023757806333f7798d146102515780633dffc38714610259575b600080fd5b61021e6106a9565b6040805163ffffffff9092168252519081900360200190f35b61023f6106ae565b60408051918252519081900360200190f35b61023f6106b9565b6102616106bf565b6040805160ff9092168252519081900360200190f35b61027f6106c4565b604080516001600160a01b039092168252519081900360200190f35b6102a36106ca565b6040805161ffff9092168252519081900360200190f35b6102616106cf565b61027f6106d4565b6102d26106da565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561030c5781810151838201526020016102f4565b50505050905090810190601f1680156103395780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61036d6004803603602081101561035d57600080fd5b50356001600160401b03166107e6565b60405180856001600160401b03166001600160401b0316815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156103ce5781810151838201526020016103b6565b50505050905090810190601f1680156103fb5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b61027f6108a1565b6102616108a7565b61027f6108ac565b6102616108b2565b6102616108b7565b61027f6108bc565b61027f6108c2565b61044c6108c8565b604080519115158252519081900360200190f35b61021e6108d1565b61052a6004803603604081101561047e57600080fd5b81019060208101813564010000000081111561049957600080fd5b8201836020820111156104ab57600080fd5b803590602001918460018302840111640100000000831117156104cd57600080fd5b9193909290916020810190356401000000008111156104eb57600080fd5b8201836020820111156104fd57600080fd5b8035906020019184600183028401116401000000008311171561051f57600080fd5b5090925090506108d6565b005b61023f610b8f565b61027f610b95565b61023f6004803603602081101561055257600080fd5b50356001600160401b0316610b9b565b61044c6004803603604081101561057857600080fd5b81019060208101813564010000000081111561059357600080fd5b8201836020820111156105a557600080fd5b803590602001918460018302840111640100000000831117156105c757600080fd5b9193509150356001600160401b0316610bba565b61027f600480360360208110156105f157600080fd5b50356001600160401b031661139b565b61027f6113b6565b61027f6004803603602081101561061f57600080fd5b50356001600160401b03166113bc565b61044c6004803603602081101561064557600080fd5b50356001600160401b03166113e0565b61052a611422565b6106656115c9565b604080516001600160401b039092168252519081900360200190f35b6106656115d8565b6102d26115ee565b61027f61160d565b610261611613565b61027f611618565b606481565b662386f26fc1000081565b60055481565b600181565b61100181565b606081565b600881565b61200081565b604080516020808252818301909252606091829190602082018180368337505060045460208301525090506000805b60208160ff16101561075057828160ff168151811061072457fe5b01602001516001600160f81b0319161561074357600190910190610748565b610750565b600101610709565b5060608160ff166040519080825280601f01601f191660200182016040528015610781576020820181803683370190505b50905060005b8260ff168160ff1610156107dd57838160ff16815181106107a457fe5b602001015160f81c60f81b828260ff16815181106107be57fe5b60200101906001600160f81b031916908160001a905350600101610787565b50925050505b90565b60016020818152600092835260409283902080548184015460028084015460038501805489516101009982161599909902600019011692909204601f81018790048702880187019098528787526001600160401b0390931696919592949091908301828280156108975780601f1061086c57610100808354040283529160200191610897565b820191906000526020600020905b81548152906001019060200180831161087a57829003601f168201915b5050505050905084565b61100581565b600281565b61100881565b600b81565b600981565b61100781565b61100681565b60005460ff1681565b600081565b60005460ff1661092d576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604482015290519081900360640190fd5b336110071461096d5760405162461bcd60e51b815260040180806020018281038252602e815260200180611c0a602e913960400191505060405180910390fd5b6109e184848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601b81527f726577617264466f7256616c696461746f725365744368616e676500000000006020820152915061161e9050565b15610ac05760208114610a255760405162461bcd60e51b815260040180806020018281038252602e815260200180611ba9602e913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610a639185858083850183828082843760009201919091525061170592505050565b9050600081118015610a7d5750670de0b6b3a76400008111155b610ab85760405162461bcd60e51b815260040180806020018281038252602f815260200180611c38602f913960400191505060405180910390fd5b600555610afd565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b60045481565b61100281565b6001600160401b03166000908152600160208190526040909120015490565b60408051630a83aaa960e31b815233600482015290516000916110069163541d554891602480820192602092909190829003018186803b158015610bfd57600080fd5b505afa158015610c11573d6000803e3d6000fd5b505050506040513d6020811015610c2757600080fd5b5051610c7a576040805162461bcd60e51b815260206004820152601f60248201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604482015290519081900360640190fd5b6001600160401b0382166000908152600260205260409020546001600160a01b031615610cee576040805162461bcd60e51b815260206004820152601c60248201527f63616e27742073796e63206475706c6963617465642068656164657200000000604482015290519081900360640190fd5b6003546001600160401b0390811690831611610d3b5760405162461bcd60e51b8152600401808060200182810382526026815260200180611c676026913960400191505060405180910390fd5b600354600160401b90046001600160401b0316610d56611867565b6001600160401b0382811660009081526001602081815260409283902083516080810185528154909516855280830154858301526002808201548686015260038201805486516101009682161596909602600019011691909104601f81018490048402850184019095528484529093606086019392830182828015610e1c5780601f10610df157610100808354040283529160200191610e1c565b820191906000526020600020905b815481529060010190602001808311610dff57829003601f168201915b50505050508152505090505b836001600160401b0316826001600160401b031610158015610e5957506003546001600160401b0390811690831610155b15610f3a5780516001600160401b0380821660009081526001602081815260409283902083516080810185528154909516855280830154858301526002808201548686015260038201805486516101009682161596909602600019011691909104601f8101849004840285018401909552848452959750939460608601939091830182828015610f2a5780601f10610eff57610100808354040283529160200191610f2a565b820191906000526020600020905b815481529060010190602001808311610f0d57829003601f168201915b5050505050815250509050610e28565b6060810151516110315780516001600160401b03811660009081526001602081815260409283902060030180548451600294821615610100026000190190911693909304601f810183900483028401830190945283835293955090929190830182828015610fe95780601f10610fbe57610100808354040283529160200191610fe9565b820191906000526020600020905b815481529060010190602001808311610fcc57829003601f168201915b505050506060830182905250516110315760405162461bcd60e51b8152600401808060200182810382526021815260200180611b886021913960400191505060405180910390fd5b6000816060015151608801905060608787905082016040519080825280601f01601f191660200182016040528015611070576020820181803683370190505b509050600061107e8261170a565b905061108c84868386611710565b6110c75760405162461bcd60e51b81526004018080602001828103825260238152602001806119456023913960400191505060405180910390fd5b6000838201915061110d8a8a8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061177c92505050565b9450905061111c818386611786565b8251602001935061112b61188d565b6110008186866064600019fa61114057600080fd5b805194506000600160f81b8616156111cf5750600554604080516309a99b4f60e41b815233600482015260248101929092525160019161100291639a99b4f0916044808201926020929091908290030181600087803b1580156111a257600080fd5b505af11580156111b6573d6000803e3d6000fd5b505050506040513d60208110156111cc57600080fd5b50505b856001600160401b0316955060208201935060006111ef858884156117c7565b90985090506001600160401b03808216908c161461123e5760405162461bcd60e51b8152600401808060200182810382526033815260200180611bd76033913960400191505060405180910390fd5b6001600160401b03808c16600081815260026020818152604080842080546001600160a01b031916331790558e86168e529383526001808252928490208d518154961667ffffffffffffffff199096169590951785558c81015192850192909255918b01519183019190915560608a015180518b93926112c59260038501929101906118ac565b50506003546001600160401b03600160401b9091048116908d161115905061130d576003805467ffffffffffffffff60401b1916600160401b6001600160401b038e16021790555b7f4042c1020a8f410fb1c8859d276ab436aeb2c3074960e48467299cf1c966d3b48b8a8a602001518560405180856001600160401b03166001600160401b03168152602001846001600160401b03166001600160401b031681526020018381526020018215151515815260200194505050505060405180910390a15060019c9b505050505050505050505050565b6002602052600090815260409020546001600160a01b031681565b61100381565b6001600160401b03166000908152600260205260409020546001600160a01b031690565b6001600160401b0381166000908152600260205260408120546001600160a01b031615158061141c57506003546001600160401b038381169116145b92915050565b60005460ff161561147a576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b6000806114a16040518061024001604052806102208152602001611968610220913961177c565b815160045590925090506114b3611867565b60006114c1848460006117c7565b60008083526001600160401b038281168252600160208181526040938490208651815467ffffffffffffffff191694169390931783558086015191830191909155918401516002820155606084015180519496509294508593909261152d9260038501929101906118ac565b50506003805467ffffffffffffffff19166001600160401b0384811691821767ffffffffffffffff60401b1916600160401b9290920291909117918290556000805460ff19166001179055662386f26fc10000600555602085810151604080519490931684529083015280517f5ac9b37d571677b80957ca05693f371526c602fd08042b416a29fdab7efefa499350918290030190a150505050565b6003546001600160401b031681565b600354600160401b90046001600160401b031681565b6040518061024001604052806102208152602001611968610220913981565b61100081565b600381565b61100481565b6000816040516020018082805190602001908083835b602083106116535780518252601f199092019160209182019101611634565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106116c15780518252601f1990920191602091820191016116a2565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b60200190565b600084606001515182840103925060008061172e876060015161177c565b909250905061173e828683611786565b5050506040840151601f1983810191909152602090940151603f19830152605f19820192909252600454606719820152910160871990910152600190565b8051602090910191565b5b602081106117a6578251825260209283019290910190601f1901611787565b915181516020939093036101000a6000190180199091169216919091179052565b6117cf611867565b60088401516028850151604890950180519095600092916117ee611867565b6020810183905260408101829052866118595760008060688a036040519080825280601f01601f191660200182016040528015611832576020820181803683370190505b50606084018190526118439061177c565b909250905061185660208c018383611786565b50505b989297509195505050505050565b604080516080810182526000808252602082018190529181019190915260608082015290565b6040518061100001604052806080906020820280368337509192915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106118ed57805160ff191683800117855561191a565b8280016001018555821561191a579182015b8281111561191a5782518255916020019190600101906118ff565b5061192692915061192a565b5090565b6107e391905b80821115611926576000815560010161193056fe6661696c656420746f2073657269616c697a6520636f6e73656e73757320737461746542696e616e63652d436861696e2d4e696c6500000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000089496eba7b813d8eb37621a6983f05e98801eff557b3ba1c79872f27db06bb8ab4a3dfe007b6270d81a63acbb4432a0fc884fee651e4fbc4c40150d8f99c43f5000000e8d4a51000cad7bd770c1dd0397e33e9d9d3add62d34abd8a30dc5b616525baaaf8df417d6000000e8d4a5100034044e0606196391d09dffeb7671a2a2be43abe37f684ef406545660882e2d0b000000e8d4a5100073e0b195030b79529b8fedd12106ab9523ba23b1510c9bc0cead1d8265dc05c0000000e8d4a5100045356ac26abb1ca953a2bdf0e28229f70b2c1c7b85f837f072cc604d0d4779d5000000e8d4a510003b22dfb3b0d3764283106bc93fd24b5f4ee1a955f04e36ce5da6a014d1dcd18b000000e8d4a51000ae4ccacf75b148552a3a5bd5b410ee4381a288d44895218246e4762d5e8dfff4000000e8d4a5100071559e8cb1d83cad1db470e29fc45fa1c42724820545166b49a72ab2ba223dd2000000e8d4a51000319dac1531d185b9f4542749cd115af5970c717cee23d730dd98737de4fbcc89000000e8d4a5100078a98a1177c61a44306387dd986f056d3460ae8bf05980b3c20e5c5ddd81ca6e000000e8d4a51000df33205d0974d06f3f5d32e6fd98e5debd7ec39a796455f93c63aeef0dadb31a000000e8d4a510006661696c656420746f206c6f61642076616c696461746f722073657420646174616c656e677468206f6620726577617264466f7256616c696461746f725365744368616e6765206d69736d617463686865616465722068656967687420646f65736e277420657175616c20746f207468652073706563696669656420686569676874746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374746865206e6577526577617264466f7256616c696461746f725365744368616e6765206f7574206f662072616e676563616e27742073796e6320686561646572206265666f726520696e697469616c486569676874a264697066735822122083e44fd9d22eaf3b42c9fd118b0a6cfa12136f8079295814965549488d9c308064736f6c63430006040033", - }, - { - ContractAddr: TokenHubContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/f4bc161dac5937b8cbd4fe3089c7514c415430f9", - Code: "60806040526004361061031e5760003560e01c80639a99b4f0116101ab578063bd466461116100f7578063f014847211610095578063fc1a598f1161006f578063fc1a598f14610cb3578063fc3e5908146109c9578063fd6a687914610ce6578063ff9c0027146107c757610366565b8063f014847214610c74578063f9a2bbc714610c89578063fa9e915914610c9e57610366565b8063dc6f5e90116100d1578063dc6f5e90146109c9578063dc927faf14610c35578063e1c7392a14610c4a578063ebf71d5314610c5f57610366565b8063bd46646114610b68578063c81b166214610b9b578063c8509d8114610bb057610366565b8063a7c9f02d11610164578063ac4317511161013e578063ac43175114610a3a578063b770186114610b05578063b99328c514610b1a578063b9fd21e314610b5357610366565b8063a7c9f02d146109c9578063aa7415f5146109de578063ab51bb9614610a2557610366565b80639a99b4f0146109095780639dc0926214610942578063a1a11bf514610957578063a496fba21461096c578063a5cd588b14610981578063a78abc16146109b457610366565b80635d499b1b1161026a57806375d47a0a116102235780638b87b21f116101fd5780638b87b21f146105b25780638eff336c146108a057806396713da9146108df5780639a854bbd146108f457610366565b806375d47a0a146107f15780637942fd0514610806578063831d65d11461081b57610366565b80635d499b1b14610671578063613684751461036b5780636e056520146106865780636e47b482146107b257806370fd5bad146107c757806371d30863146107dc57610366565b806343756e5c116102d75780634bf6c882116102b15780634bf6c8821461036b57806350432d321461061d57806351e806721461063257806359b927891461064757610366565b806343756e5c146105c757806343a368b9146105dc578063493279b1146105f157610366565b8063077b8f351461036b5780630bee7a67146103965780631182b875146103c4578063149d14d9146104be5780633d713223146104e55780633dffc387146105b257610366565b36610366573415610364576040805133815234602082015281517f6c98249d85d88c3753a04a22230f595e4dc8d3dc86c34af35deeeedc861b89db929181900390910190a15b005b600080fd5b34801561037757600080fd5b50610380610cfb565b6040805160ff9092168252519081900360200190f35b3480156103a257600080fd5b506103ab610d00565b6040805163ffffffff9092168252519081900360200190f35b3480156103d057600080fd5b50610449600480360360408110156103e757600080fd5b60ff8235169190810190604081016020820135600160201b81111561040b57600080fd5b82018360208201111561041d57600080fd5b803590602001918460018302840111600160201b8311171561043e57600080fd5b509092509050610d05565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561048357818101518382015260200161046b565b50505050905090810190601f1680156104b05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156104ca57600080fd5b506104d3610e33565b60408051918252519081900360200190f35b3480156104f157600080fd5b506105966004803603602081101561050857600080fd5b810190602081018135600160201b81111561052257600080fd5b82018360208201111561053457600080fd5b803590602001918460018302840111600160201b8311171561055557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610e39945050505050565b604080516001600160a01b039092168252519081900360200190f35b3480156105be57600080fd5b50610380610e5d565b3480156105d357600080fd5b50610596610e62565b3480156105e857600080fd5b506104d3610e68565b3480156105fd57600080fd5b50610606610e74565b6040805161ffff9092168252519081900360200190f35b34801561062957600080fd5b506104d3610e79565b34801561063e57600080fd5b50610596610e84565b34801561065357600080fd5b506105966004803603602081101561066a57600080fd5b5035610e8a565b34801561067d57600080fd5b506104d3610ea5565b61079e6004803603608081101561069c57600080fd5b810190602081018135600160201b8111156106b657600080fd5b8201836020820111156106c857600080fd5b803590602001918460208302840111600160201b831117156106e957600080fd5b919390929091602081019035600160201b81111561070657600080fd5b82018360208201111561071857600080fd5b803590602001918460208302840111600160201b8311171561073957600080fd5b919390929091602081019035600160201b81111561075657600080fd5b82018360208201111561076857600080fd5b803590602001918460208302840111600160201b8311171561078957600080fd5b91935091503567ffffffffffffffff16610eae565b604080519115158252519081900360200190f35b3480156107be57600080fd5b50610596611383565b3480156107d357600080fd5b50610380611389565b3480156107e857600080fd5b506104d361138e565b3480156107fd57600080fd5b50610596611394565b34801561081257600080fd5b5061038061139a565b34801561082757600080fd5b506103646004803603604081101561083e57600080fd5b60ff8235169190810190604081016020820135600160201b81111561086257600080fd5b82018360208201111561087457600080fd5b803590602001918460018302840111600160201b8311171561089557600080fd5b50909250905061139f565b3480156108ac57600080fd5b50610364600480360360608110156108c357600080fd5b508035906001600160a01b0360208201351690604001356114e8565b3480156108eb57600080fd5b5061038061156e565b34801561090057600080fd5b506104d3611573565b34801561091557600080fd5b506104d36004803603604081101561092c57600080fd5b506001600160a01b03813516906020013561157f565b34801561094e57600080fd5b506105966116bd565b34801561096357600080fd5b506105966116c3565b34801561097857600080fd5b506103806116c9565b34801561098d57600080fd5b506104d3600480360360208110156109a457600080fd5b50356001600160a01b03166116ce565b3480156109c057600080fd5b5061079e6116e0565b3480156109d557600080fd5b506103806116e9565b61079e600480360360808110156109f457600080fd5b5080356001600160a01b03908116916020810135909116906040810135906060013567ffffffffffffffff166116ee565b348015610a3157600080fd5b506103ab6116c9565b348015610a4657600080fd5b5061036460048036036040811015610a5d57600080fd5b810190602081018135600160201b811115610a7757600080fd5b820183602082011115610a8957600080fd5b803590602001918460018302840111600160201b83111715610aaa57600080fd5b919390929091602081019035600160201b811115610ac757600080fd5b820183602082011115610ad957600080fd5b803590602001918460018302840111600160201b83111715610afa57600080fd5b509092509050611daf565b348015610b1157600080fd5b506104d361201e565b348015610b2657600080fd5b5061036460048036036040811015610b3d57600080fd5b50803590602001356001600160a01b0316612024565b348015610b5f57600080fd5b506104d361209a565b348015610b7457600080fd5b506104d360048036036020811015610b8b57600080fd5b50356001600160a01b03166120a4565b348015610ba757600080fd5b506105966120bf565b348015610bbc57600080fd5b5061036460048036036040811015610bd357600080fd5b60ff8235169190810190604081016020820135600160201b811115610bf757600080fd5b820183602082011115610c0957600080fd5b803590602001918460018302840111600160201b83111715610c2a57600080fd5b5090925090506120c5565b348015610c4157600080fd5b50610596612195565b348015610c5657600080fd5b5061036461219b565b348015610c6b57600080fd5b5061038061223b565b348015610c8057600080fd5b50610380612240565b348015610c9557600080fd5b50610596612245565b348015610caa57600080fd5b506104d361224b565b348015610cbf57600080fd5b5061044960048036036020811015610cd657600080fd5b50356001600160a01b0316612251565b348015610cf257600080fd5b50610596612378565b600881565b606481565b60005460609060ff16610d4d576040805162461bcd60e51b815260206004820152601960248201526000805160206147bf833981519152604482015290519081900360640190fd5b3361200014610d8d5760405162461bcd60e51b815260040180806020018281038252602f81526020018061476d602f913960400191505060405180910390fd5b60ff841660021415610ddf57610dd883838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061237e92505050565b9050610e2c565b6040805162461bcd60e51b815260206004820152601860248201527f756e7265636f676e697a65642073796e207061636b6167650000000000000000604482015290519081900360640190fd5b9392505050565b60015490565b6020818101516000908152600490915260409020546001600160a01b03165b919050565b600181565b61100181565b670de0b6b3a764000081565b606081565b662386f26fc1000081565b61200081565b6000908152600460205260409020546001600160a01b031690565b6402540be40081565b6000805460ff16610ef4576040805162461bcd60e51b815260206004820152601960248201526000805160206147bf833981519152604482015290519081900360640190fd5b868514610f325760405162461bcd60e51b815260040180806020018281038252603b815260200180614732603b913960400191505060405180910390fd5b868314610f705760405162461bcd60e51b815260040180806020018281038252603f815260200180614605603f913960400191505060405180910390fd5b426078018267ffffffffffffffff161015610fbc5760405162461bcd60e51b81526004018080602001828103825260248152602001806144f56024913960400191505060405180910390fd5b6402540be4003406156110005760405162461bcd60e51b81526004018080602001828103825260408152602001806148356040913960400191505060405180910390fd5b60408051868152602080880282010190915285906000908190606090848015611033578160200160208202803683370190505b50905060005b8481101561110e576402540be4008b8b8381811061105357fe5b905060200201358161106157fe5b061561109e5760405162461bcd60e51b815260040180806020018281038252603c815260200180614644603c913960400191505060405180910390fd5b6110c38b8b838181106110ad57fe5b90506020020135856124a290919063ffffffff16565b93506110ef6402540be4008c8c848181106110da57fe5b905060200201356124fc90919063ffffffff16565b8282815181106110fb57fe5b6020908102919091010152600101611039565b5060015461113390611126908663ffffffff61253e16565b849063ffffffff6124a216565b3410156111715760405162461bcd60e51b81526004018080602001828103825260568152602001806147df6056913960600191505060405180910390fd5b611181348463ffffffff61259716565b915061118b61434e565b6040518060c001604052806221272160e91b60001b815260200160006001600160a01b031681526020018381526020018e8e808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505050908252506040805160208c810282810182019093528c82529283019290918d918d91829185019084908082843760009201919091525050509082525067ffffffffffffffff8916602090910152905061200063f7a251d7600361124f846125d9565b611264876402540be40063ffffffff6124fc16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156112c25781810151838201526020016112aa565b50505050905090810190601f1680156112ef5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561131057600080fd5b505af1158015611324573d6000803e3d6000fd5b505060408051600081523360208201528082018890526060810187905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a15060019c9b505050505050505050505050565b61100581565b600281565b60015481565b61100881565b600b81565b60005460ff166113e4576040805162461bcd60e51b815260206004820152601960248201526000805160206147bf833981519152604482015290519081900360640190fd5b33612000146114245760405162461bcd60e51b815260040180806020018281038252602f81526020018061476d602f913960400191505060405180910390fd5b60ff8316600314156114745761146f82828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061289492505050565b6114e3565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a15b505050565b33611008146115285760405162461bcd60e51b815260040180806020018281038252602381526020018061479c6023913960400191505060405180910390fd5b600083815260046020908152604080832080546001600160a01b039096166001600160a01b03199096168617905593825260038152838220949094556002909352912055565b600981565b677ce66c50e284000081565b6000805460ff166115c5576040805162461bcd60e51b815260206004820152601960248201526000805160206147bf833981519152604482015290519081900360640190fd5b33611005146116055760405162461bcd60e51b815260040180806020018281038252602f815260200180614468602f913960400191505060405180910390fd5b60004783106116145747611616565b825b9050670de0b6b3a76400008111156116325760009150506116b7565b80156116b4576040516001600160a01b0385169082156108fc029083906000818181858888f1935050505015801561166e573d6000803e3d6000fd5b50604080516001600160a01b03861681526020810183905281517ff8b71c64315fc33b2ead2adfa487955065152a8ac33d9d5193aafd7f45dc15a0929181900390910190a15b90505b92915050565b61100781565b61100681565b600081565b60026020526000908152604090205481565b60005460ff1681565b600381565b6000805460ff16611734576040805162461bcd60e51b815260206004820152601960248201526000805160206147bf833981519152604482015290519081900360640190fd5b426078018267ffffffffffffffff1610156117805760405162461bcd60e51b81526004018080602001828103825260248152602001806144f56024913960400191505060405180910390fd5b6402540be4003406156117c45760405162461bcd60e51b81526004018080602001828103825260408152602001806148356040913960400191505060405180910390fd5b600080806001600160a01b0388166118a3576001546117ea90879063ffffffff6124a216565b3410156118285760405162461bcd60e51b815260040180806020018281038252606181526020018061457f6061913960800191505060405180910390fd5b6402540be40086061561186c5760405162461bcd60e51b815260040180806020018281038252603c815260200180614644603c913960400191505060405180910390fd5b61187c348763ffffffff61259716565b9050611893866402540be40063ffffffff6124fc16565b6221272160e91b93509150611b46565b6001600160a01b0388166000908152600360205260409020549250826118fa5760405162461bcd60e51b815260040180806020018281038252603181526020018061454e6031913960400191505060405180910390fd5b60015434101561193b5760405162461bcd60e51b815260040180806020018281038252603f8152602001806146a1603f913960400191505060405180910390fd5b506001600160a01b038716600090815260026020526040902054349060088111158061198657506008811180156119865750611984876007198301600a0a63ffffffff6128f016565b155b6119c15760405162461bcd60e51b815260040180806020018281038252603c815260200180614644603c913960400191505060405180910390fd5b6119cb8782612932565b92506119d684612972565b15611a1e576305f5e100831015611a1e5760405162461bcd60e51b815260040180806020018281038252603a815260200180614497603a913960400191505060405180910390fd5b600881101580611a385750600881108015611a3857508683115b611a735760405162461bcd60e51b81526004018080602001828103825260258152602001806145e06025913960400191505060405180910390fd5b677ce66c50e2840000831115611aba5760405162461bcd60e51b81526004018080602001828103825260358152602001806145196035913960400191505060405180910390fd5b604080516323b872dd60e01b81523360048201523060248201526044810189905290516001600160a01b038b16916323b872dd9160648083019260209291908290030181600087803b158015611b0f57600080fd5b505af1158015611b23573d6000803e3d6000fd5b505050506040513d6020811015611b3957600080fd5b5051611b4457600080fd5b505b611b4e61434e565b6040805160c0810182528581526001600160a01b038b166020820152815160018082528184018452919283019181602001602082028036833750505081526040805160018082528183019092526020928301929091908083019080368337505050815260408051600180825281830190925260209283019290919080830190803683370190505081526020018767ffffffffffffffff168152509050828160400151600081518110611bfc57fe5b602002602001018181525050878160600151600081518110611c1a57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050338160800151600081518110611c4c57fe5b6001600160a01b039092166020928302919091019091015261200063f7a251d76003611c77846125d9565b611c8c866402540be40063ffffffff6124fc16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611cea578181015183820152602001611cd2565b50505050905090810190601f168015611d175780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015611d3857600080fd5b505af1158015611d4c573d6000803e3d6000fd5b5050604080516001600160a01b038d1681523360208201528082018b90526060810186905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a150600198975050505050505050565b3361100714611def5760405162461bcd60e51b815260040180806020018281038252602e8152602001806146e0602e913960400191505060405180910390fd5b60208114611e44576040805162461bcd60e51b815260206004820152601b60248201527f65787065637465642076616c7565206c656e6774682069732033320000000000604482015290519081900360640190fd5b606084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8801819004810282018101909252868152939450606093925086915085908190840183828082843760009201919091525050505060208301519091506772656c617946656560c01b811415611f4c576020820151670de0b6b3a76400008111801590611ef357506402540be4008106155b611f44576040805162461bcd60e51b815260206004820152601960248201527f7468652072656c6179466565206f7574206f662072616e676500000000000000604482015290519081900360640190fd5b600155611f89565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a878787876040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050505050565b61c35081565b33611008146120645760405162461bcd60e51b815260040180806020018281038252602381526020018061479c6023913960400191505060405180910390fd5b600091825260046020908152604080842080546001600160a01b03191690556001600160a01b0392909216835260039052812055565b6221272160e91b81565b6001600160a01b031660009081526003602052604090205490565b61100281565b60005460ff1661210a576040805162461bcd60e51b815260206004820152601960248201526000805160206147bf833981519152604482015290519081900360640190fd5b336120001461214a5760405162461bcd60e51b815260040180806020018281038252602f81526020018061476d602f913960400191505060405180910390fd5b60ff8316600314156114745761146f82828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612a7892505050565b61100381565b60005460ff16156121f3576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b662386f26fc1000060019081556000808052600260205260127fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b55805460ff19169091179055565b600481565b600581565b61100081565b61271081565b6001600160a01b03811660009081526003602090815260409182902054825182815280840190935260609290918391906020820181803683375050506020810183905290506000805b60208160ff1610156122e157828160ff16815181106122b557fe5b01602001516001600160f81b031916156122d4576001909101906122d9565b6122e1565b60010161229a565b5060608160ff166040519080825280601f01601f191660200182016040528015612312576020820181803683370190505b50905060005b8260ff168160ff16101561236e57838160ff168151811061233557fe5b602001015160f81c60f81b828260ff168151811061234f57fe5b60200101906001600160f81b031916908160001a905350600101612318565b5095945050505050565b61100481565b606061238861439a565b600061239384612b76565b91509150806123e9576040805162461bcd60e51b815260206004820152601f60248201527f756e7265636f676e697a6564207472616e73666572496e207061636b61676500604482015290519081900360640190fd5b60006123f483612cb5565b905063ffffffff811615612488576040808401516020808601516001600160a01b0316600090815260029091529182205461242f9190612932565b90506124396143cf565b60405180608001604052808660000151815260200183815260200186608001516001600160a01b031681526020018463ffffffff16815250905061247c81613002565b95505050505050610e58565b50506040805160008152602081019091529150610e589050565b6000828201838110156116b4576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60006116b483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506130de565b60008261254d575060006116b7565b8282028284828161255a57fe5b04146116b45760405162461bcd60e51b81526004018080602001828103825260218152602001806146806021913960400191505060405180910390fd5b60006116b483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613180565b60408051600680825260e08201909252606091829190816020015b60608152602001906001900390816125f45750508351909150612616906131da565b8160008151811061262357fe5b602002602001018190525061264483602001516001600160a01b03166131ed565b8160018151811061265157fe5b60200260200101819052506000836040015151905060608160405190808252806020026020018201604052801561269c57816020015b60608152602001906001900390816126875790505b50905060005b828110156126e9576126ca866040015182815181106126bd57fe5b60200260200101516131da565b8282815181106126d657fe5b60209081029190910101526001016126a2565b506126f381613210565b8360028151811061270057fe5b602002602001018190525060608260405190808252806020026020018201604052801561274157816020015b606081526020019060019003908161272c5790505b50905060005b83811015612797576127788760600151828151811061276257fe5b60200260200101516001600160a01b03166131ed565b82828151811061278457fe5b6020908102919091010152600101612747565b506127a181613210565b846003815181106127ae57fe5b60200260200101819052506060836040519080825280602002602001820160405280156127ef57816020015b60608152602001906001900390816127da5790505b50905060005b8481101561282f576128108860800151828151811061276257fe5b82828151811061281c57fe5b60209081029190910101526001016127f5565b5061283981613210565b8560048151811061284657fe5b60200260200101819052506128688760a0015167ffffffffffffffff166131da565b8560058151811061287557fe5b602002602001018190525061288985613210565b979650505050505050565b61289c6143f6565b60006128a78361329a565b91509150806128e75760405162461bcd60e51b815260040180806020018281038252602481526020018061470e6024913960400191505060405180910390fd5b6114e382613465565b60006116b483836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f00000000000000008152506138e9565b6000600882111561295b57612954836007198401600a0a63ffffffff6124fc16565b90506116b7565b6116b4836008849003600a0a63ffffffff61253e16565b604080516020808252818301909252600091606091906020820181803683375050506020810184905290506000805b60208160ff1610156129e857828160ff16815181106129bc57fe5b01602001516001600160f81b031916156129db576001909101906129e0565b6129e8565b6001016129a1565b50600860ff82161015612a0057600092505050610e58565b816005820360ff1681518110612a1257fe5b6020910101516001600160f81b031916602d60f81b14612a3757600092505050610e58565b816001820360ff1681518110612a4957fe5b6020910101516001600160f81b031916604d60f81b14612a6e57600092505050610e58565b5060019392505050565b612a8061434e565b6000612a8b8361394b565b9150915080612acb5760405162461bcd60e51b81526004018080602001828103825260248152602001806144d16024913960400191505060405180910390fd5b612ad36143f6565b602080840180516001600160a01b0390811684526040808701518585015291511660009081526002909252812054905b846040015151811015612b5457612b3185604001518281518110612b2357fe5b602002602001015183613bc6565b85604001518281518110612b4157fe5b6020908102919091010152600101612b03565b506080840151604083015260056060830152612b6f82613465565b5050505050565b612b7e61439a565b6000612b8861439a565b612b9061442d565b612ba1612b9c86613bff565b613c24565b90506000805b612bb083613c6e565b15612ca85780612bd257612bcb612bc684613c8f565b613cdd565b8452612ca0565b8060011415612bff57612bec612be784613c8f565b613d94565b6001600160a01b03166020850152612ca0565b8060021415612c1e57612c14612bc684613c8f565b6040850152612ca0565b8060031415612c4657612c33612be784613c8f565b6001600160a01b03166060850152612ca0565b8060041415612c6e57612c5b612be784613c8f565b6001600160a01b03166080850152612ca0565b8060051415612c9b57612c83612bc684613c8f565b67ffffffffffffffff1660a085015260019150612ca0565b612ca8565b600101612ba7565b5091935090915050915091565b60208101516000906001600160a01b0316612dec578160a0015167ffffffffffffffff16421115612ce857506001610e58565b8160400151471015612cfc57506003610e58565b606082015160408084015190516000926001600160a01b0316916127109184818181858888f193505050503d8060008114612d53576040519150601f19603f3d011682016040523d82523d6000602084013e612d58565b606091505b5050905080612d6b575060049050610e58565b7f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5983602001518460600151856040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a15060009050610e58565b8160a0015167ffffffffffffffff16421115612e0a57506001610e58565b81516020808401516001600160a01b031660009081526003909152604090205414612e3757506002610e58565b602080830151604080516370a0823160e01b815230600482015290516000936001600160a01b03909316926370a082319261c3509260248083019392829003018187803b158015612e8757600080fd5b5086fa158015612e9b573d6000803e3d6000fd5b50505050506040513d6020811015612eb257600080fd5b50516040840151909150811015612ecd575060039050610e58565b600083602001516001600160a01b031663a9059cbb61c350866060015187604001516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b158015612f3e57600080fd5b5087f1158015612f52573d6000803e3d6000fd5b50505050506040513d6020811015612f6957600080fd5b505190508015612ff6577f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5984602001518560600151866040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a15060009150610e589050565b5060059150610e589050565b60408051600480825260a08201909252606091829190816020015b606081526020019060019003908161301d575050835190915061303f906131da565b8160008151811061304c57fe5b602002602001018190525061306483602001516131da565b8160018151811061307157fe5b602002602001018190525061309283604001516001600160a01b03166131ed565b8160028151811061309f57fe5b60200260200101819052506130bd836060015163ffffffff166131da565b816003815181106130ca57fe5b6020026020010181905250610e2c81613210565b6000818361316a5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561312f578181015183820152602001613117565b50505050905090810190601f16801561315c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161317657fe5b0495945050505050565b600081848411156131d25760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561312f578181015183820152602001613117565b505050900390565b60606116b76131e883613dae565b613e94565b60408051600560a21b8318601482015260348101909152606090610e2c81613e94565b60608151600014156132315750604080516000815260208101909152610e58565b60608260008151811061324057fe5b602002602001015190506000600190505b8351811015613281576132778285838151811061326a57fe5b6020026020010151613ee6565b9150600101613251565b50610e2c613294825160c060ff16613f63565b82613ee6565b6132a26143f6565b60006132ac6143f6565b6132b461442d565b6132c0612b9c86613bff565b90506000805b6132cf83613c6e565b15612ca857806132f5576132e5612be784613c8f565b6001600160a01b0316845261345d565b806001141561339657606061331161330c85613c8f565b61405b565b9050805160405190808252806020026020018201604052801561333e578160200160208202803683370190505b50602086015260005b815181101561338f5761336c82828151811061335f57fe5b6020026020010151613cdd565b8660200151828151811061337c57fe5b6020908102919091010152600101613347565b505061345d565b80600214156134385760606133ad61330c85613c8f565b905080516040519080825280602002602001820160405280156133da578160200160208202803683370190505b50604086015260005b815181101561338f576134088282815181106133fb57fe5b6020026020010151613d94565b8660400151828151811061341857fe5b6001600160a01b03909216602092830291909101909101526001016133e3565b8060031415612c9b5761344d612bc684613c8f565b63ffffffff166060850152600191505b6001016132c6565b80516001600160a01b031661368f5760005b8160200151518110156136895760008260400151828151811061349657fe5b60200260200101516001600160a01b0316612710846020015184815181106134ba57fe5b60209081029190910101516040516000818181858888f193505050503d8060008114613502576040519150601f19603f3d011682016040523d82523d6000602084013e613507565b606091505b50509050806135ca577f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061354657fe5b60200260200101518560200151858151811061355e57fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a1613680565b7fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a83600001518460400151848151811061360057fe5b60200260200101518560200151858151811061361857fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b50600101613477565b506138e6565b60005b8160200151518110156138e457600082600001516001600160a01b031663a9059cbb61c350856040015185815181106136c757fe5b6020026020010151866020015186815181106136df57fe5b60200260200101516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b15801561373657600080fd5b5087f115801561374a573d6000803e3d6000fd5b50505050506040513d602081101561376157600080fd5b505190508015613825577fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a8360000151846040015184815181106137a157fe5b6020026020010151856020015185815181106137b957fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a16138db565b7f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061385b57fe5b60200260200101518560200151858151811061387357fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b50600101613692565b505b50565b600081836139385760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561312f578181015183820152602001613117565b5082848161394257fe5b06949350505050565b61395361434e565b600061395d61434e565b61396561442d565b613971612b9c86613bff565b90506000805b61398083613c6e565b15613bb8578061399d57613996612bc684613c8f565b8452613bb0565b80600114156139c5576139b2612be784613c8f565b6001600160a01b03166020850152613bb0565b8060021415613a545760606139dc61330c85613c8f565b90508051604051908082528060200260200182016040528015613a09578160200160208202803683370190505b50604086015260005b8151811015613a4d57613a2a82828151811061335f57fe5b86604001518281518110613a3a57fe5b6020908102919091010152600101613a12565b5050613bb0565b8060031415613ae9576060613a6b61330c85613c8f565b90508051604051908082528060200260200182016040528015613a98578160200160208202803683370190505b50606086015260005b8151811015613a4d57613ab98282815181106133fb57fe5b86606001518281518110613ac957fe5b6001600160a01b0390921660209283029190910190910152600101613aa1565b8060041415613b7e576060613b0061330c85613c8f565b90508051604051908082528060200260200182016040528015613b2d578160200160208202803683370190505b50608086015260005b8151811015613a4d57613b4e8282815181106133fb57fe5b86608001518281518110613b5e57fe5b6001600160a01b0390921660209283029190910190910152600101613b36565b8060051415613bab57613b93612bc684613c8f565b67ffffffffffffffff1660a085015260019150613bb0565b613bb8565b600101613977565b509195600195509350505050565b60006008821115613be857612954836007198401600a0a63ffffffff61253e16565b6116b4836008849003600a0a63ffffffff6124fc16565b613c0761444d565b506040805180820190915281518152602082810190820152919050565b613c2c61442d565b613c358261412c565b613c3e57600080fd5b6000613c4d836020015161415c565b60208085015160408051808201909152868152920190820152915050919050565b6000613c7861444d565b505080518051602091820151919092015191011190565b613c9761444d565b613ca082613c6e565b613ca957600080fd5b60208201516000613cb9826141bf565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590613cf257508151602110155b613cfb57600080fd5b6000613d0a836020015161415c565b90508083600001511015613d65576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015613d8b57826020036101000a820491505b50949350505050565b8051600090601514613da557600080fd5b6116b782613cdd565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416613df257506018613e16565b6fffffffffffffffffffffffffffffffff198416613e1257506010613e16565b5060005b6020811015613e4c57818181518110613e2b57fe5b01602001516001600160f81b03191615613e4457613e4c565b600101613e16565b60008160200390506060816040519080825280601f01601f191660200182016040528015613e81576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015613ec65750607f60f81b82600081518110613eb457fe5b01602001516001600160f81b03191611155b15613ed2575080610e58565b6116b7613ee48351608060ff16613f63565b835b6060806040519050835180825260208201818101602087015b81831015613f17578051835260209283019201613eff565b50855184518101855292509050808201602086015b81831015613f44578051835260209283019201613f2c565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310613fb3576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b6040805160018082528183019092526060916020820181803683370190505090506037841161400d5782840160f81b81600081518110613fef57fe5b60200101906001600160f81b031916908160001a90535090506116b7565b606061401885613dae565b90508381510160370160f81b8260008151811061403157fe5b60200101906001600160f81b031916908160001a9053506140528282613ee6565b95945050505050565b60606140668261412c565b61406f57600080fd5b600061407a836142f2565b90506060816040519080825280602002602001820160405280156140b857816020015b6140a561444d565b81526020019060019003908161409d5790505b50905060006140ca856020015161415c565b60208601510190506000805b84811015614121576140e7836141bf565b915060405180604001604052808381526020018481525084828151811061410a57fe5b6020908102919091010152918101916001016140d6565b509195945050505050565b805160009061413d57506000610e58565b6020820151805160001a9060c0821015612a6e57600092505050610e58565b8051600090811a6080811015614176576000915050610e58565b60b8811080614191575060c08110801590614191575060f881105b156141a0576001915050610e58565b60c08110156141b45760b519019050610e58565b60f519019050610e58565b80516000908190811a60808110156141da57600191506142eb565b60b88110156141ef57607e19810191506142eb565b60c081101561426957600060b78203600186019550806020036101000a865104915060018101820193505080831015614263576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b506142eb565b60f881101561427e5760be19810191506142eb565b600060f78203600186019550806020036101000a8651049150600181018201935050808310156142e9576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b805160009061430357506000610e58565b60008090506000614317846020015161415c565b602085015185519181019250015b8082101561434557614336826141bf565b60019093019290910190614325565b50909392505050565b6040518060c001604052806000801916815260200160006001600160a01b03168152602001606081526020016060815260200160608152602001600067ffffffffffffffff1681525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b60408051608081018252600080825260208201819052918101829052606081019190915290565b604051806080016040528060006001600160a01b031681526020016060815260200160608152602001600063ffffffff1681525090565b604051806040016040528061444061444d565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe746865206d6573736167652073656e646572206d75737420626520696e63656e746976697a6520636f6e7472616374466f72206d696e69546f6b656e2c20746865207472616e7366657220616d6f756e74206d757374206e6f74206265206c657373207468616e2031756e7265636f676e697a6564207472616e736665724f75742073796e207061636b61676565787069726554696d65206d7573742062652074776f206d696e75746573206c61746572616d6f756e7420697320746f6f206c617267652c20657863656564206d6178696d756d206265703220746f6b656e20616d6f756e7474686520636f6e747261637420686173206e6f74206265656e20626f756e6420746f20616e79206265703220746f6b656e726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e736665724f757420424e4220616d6f756e7420616e64206d696e696d756d2072656c6179466565616d6f756e7420697320746f6f206c617267652c2075696e74323536206f766572666c6f774c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620726566756e644164647273696e76616c6964207472616e7366657220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e20746865206d696e696d756d2072656c6179466565746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374756e7265636f676e697a6564207472616e736665724f75742061636b207061636b6167654c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620616d6f756e7473746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d73672073656e646572206d75737420626520746f6b656e4d616e6167657274686520636f6e7472616374206e6f7420696e69742079657400000000000000726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e7366657220424e4220616d6f756e7420616e642072656c6179466565696e76616c696420726563656976656420424e4220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6ea2646970667358221220560ad3b1f9184c6b58a836a4c111faf5fdf5dc0e93dc1c013cd41cea18c69cbb64736f6c63430006040033", - }, - { - ContractAddr: RelayerIncentivizeContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/f4bc161dac5937b8cbd4fe3089c7514c415430f9", - Code: "6080604052600436106102765760003560e01c80637e146cc51161014f578063af400681116100c1578063e75d72c71161007a578063e75d72c714610795578063e89a3020146107c8578063f9a2bbc7146107f2578063fc3e590814610807578063fd6a68791461081c578063fdd31fcd146108315761027d565b8063af400681146106ed578063bd4cc83014610717578063c81b166214610741578063dc927faf14610756578063dcae76ab1461076b578063e1c7392a146107805761027d565b8063a3c3c0ad11610113578063a3c3c0ad146105b3578063a78abc16146105c8578063a7c6a59d146105dd578063ab51bb96146105f2578063ac43175114610607578063ace9fcc2146106d85761027d565b80637e146cc51461052c578063930e1b091461054157806396713da9146105745780639dc0926214610589578063a1a11bf51461059e5761027d565b806343756e5c116101e85780636e47b482116101ac5780636e47b482146104645780636f93d2e61461047957806370fd5bad146104d857806374f2272d146104ed57806375d47a0a146105025780637942fd05146105175761027d565b806343756e5c146103e4578063493279b1146103f95780634bf6c8821461042557806351e806721461043a578063541333071461044f5761027d565b806312950c461161023a57806312950c46146103165780631b20087c1461032b5780631c643312146103405780633a975612146102825780633dffc3871461038657806340bb43c0146103b15761027d565b8063081e9d131461028257806308f2ec06146102a9578063093f2fc4146102be5780630bee7a67146102d357806310e06a76146103015761027d565b3661027d57005b600080fd5b34801561028e57600080fd5b50610297610864565b60408051918252519081900360200190f35b3480156102b557600080fd5b50610297610869565b3480156102ca57600080fd5b5061029761086e565b3480156102df57600080fd5b506102e8610873565b6040805163ffffffff9092168252519081900360200190f35b34801561030d57600080fd5b50610297610878565b34801561032257600080fd5b5061029761087e565b34801561033757600080fd5b50610297610884565b34801561034c57600080fd5b5061036a6004803603602081101561036357600080fd5b503561088a565b604080516001600160a01b039092168252519081900360200190f35b34801561039257600080fd5b5061039b610864565b6040805160ff9092168252519081900360200190f35b3480156103bd57600080fd5b50610297600480360360208110156103d457600080fd5b50356001600160a01b03166108b1565b3480156103f057600080fd5b5061036a6108c3565b34801561040557600080fd5b5061040e6108c9565b6040805161ffff9092168252519081900360200190f35b34801561043157600080fd5b5061039b6108ce565b34801561044657600080fd5b5061036a6108d3565b34801561045b57600080fd5b50610297610873565b34801561047057600080fd5b5061036a6108d9565b34801561048557600080fd5b506104c46004803603608081101561049c57600080fd5b506001600160a01b0381358116916020810135909116906040810135906060013515156108df565b604080519115158252519081900360200190f35b3480156104e457600080fd5b5061039b610cae565b3480156104f957600080fd5b50610297610cb3565b34801561050e57600080fd5b5061036a610cb9565b34801561052357600080fd5b5061039b610cbf565b34801561053857600080fd5b50610297610cc4565b34801561054d57600080fd5b506102976004803603602081101561056457600080fd5b50356001600160a01b0316610cc9565b34801561058057600080fd5b5061039b610cdb565b34801561059557600080fd5b5061036a610ce0565b3480156105aa57600080fd5b5061036a610ce6565b3480156105bf57600080fd5b50610297610cec565b3480156105d457600080fd5b506104c4610cf2565b3480156105e957600080fd5b50610297610cfb565b3480156105fe57600080fd5b506102e8610d01565b34801561061357600080fd5b506106d66004803603604081101561062a57600080fd5b81019060208101813564010000000081111561064557600080fd5b82018360208201111561065757600080fd5b8035906020019184600183028401116401000000008311171561067957600080fd5b91939092909160208101903564010000000081111561069757600080fd5b8201836020820111156106a957600080fd5b803590602001918460018302840111640100000000831117156106cb57600080fd5b509092509050610d06565b005b3480156106e457600080fd5b50610297611355565b3480156106f957600080fd5b506102976004803603602081101561071057600080fd5b503561135b565b34801561072357600080fd5b506102976004803603602081101561073a57600080fd5b50356113b6565b34801561074d57600080fd5b5061036a6113cf565b34801561076257600080fd5b5061036a6113d5565b34801561077757600080fd5b506102976113db565b34801561078c57600080fd5b506106d66113e1565b3480156107a157600080fd5b506106d6600480360360208110156107b857600080fd5b50356001600160a01b03166114aa565b3480156107d457600080fd5b5061036a600480360360208110156107eb57600080fd5b5035611603565b3480156107fe57600080fd5b5061036a611610565b34801561081357600080fd5b5061039b611616565b34801561082857600080fd5b5061036a61161b565b34801561083d57600080fd5b506102976004803603602081101561085457600080fd5b50356001600160a01b0316611621565b600181565b602881565b605081565b606481565b600b5481565b60015481565b600c5481565b6006818154811061089757fe5b6000918252602090912001546001600160a01b0316905081565b60076020526000908152604090205481565b61100181565b606081565b600881565b61200081565b61100581565b6000805460ff16610937576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604482015290519081900360640190fd5b33612000146109775760405162461bcd60e51b815260040180806020018281038252602f815260200180612165602f913960400191505060405180910390fd5b600082156109fc57604080516309a99b4f60e41b8152611005600482015260248101869052905161100291639a99b4f09160448083019260209291908290030181600087803b1580156109c957600080fd5b505af11580156109dd573d6000803e3d6000fd5b505050506040513d60208110156109f357600080fd5b50519050610a75565b604080516309a99b4f60e41b8152611005600482015260248101869052905161100491639a99b4f09160448083019260209291908290030181600087803b158015610a4657600080fd5b505af1158015610a5a573d6000803e3d6000fd5b505050506040513d6020811015610a7057600080fd5b505190505b600c805460010190556000610a8982611633565b600954909150610a9f908263ffffffff61166216565b600955600a54610ac7908290610abb908563ffffffff61166216565b9063ffffffff6116c316565b600a556001600160a01b038716600090815260056020526040902054610b3357600680546001810182556000919091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319166001600160a01b0389161790555b6001600160a01b038088166000908152600560209081526040808320805460010190559289168252600790522054610bb157600880546001810182556000919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319166001600160a01b0388161790555b6001600160a01b038616600090815260076020526040902080546001019055600c5460641415610ca157600b54600954600a5460408051938452602084019290925282820152517f2649b1b772a1a74bd332a67695e285317dd722941166595741c60a00fa65bb759181900360600190a16000610c2c611705565b90506000610c386119e9565b6001600160a01b0389166000908152600d6020526040902054909150610c76908290610c6a908563ffffffff61166216565b9063ffffffff61166216565b6001600160a01b0389166000908152600d6020526040812091909155600b80546001019055600c5550505b5060019695505050505050565b600281565b60035481565b61100881565b600b81565b600581565b60056020526000908152604090205481565b600981565b61100781565b61100681565b600a5481565b60005460ff1681565b60045481565b600081565b3361100714610d465760405162461bcd60e51b815260040180806020018281038252602e8152602001806120aa602e913960400191505060405180910390fd5b60005460ff16610d875760405162461bcd60e51b81526004018080602001828103825260218152602001806120d86021913960400191505060405180910390fd5b610dfb84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601f81527f68656164657252656c61796572526577617264526174654d6f6c6563756c650060208201529150611c679050565b15610ec85760208114610e3f5760405162461bcd60e51b81526004018080602001828103825260328152602001806121946032913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610e7d91858580838501838280828437600092019190915250611d4e92505050565b9050600254811115610ec05760405162461bcd60e51b8152600401808060200182810382526060815260200180611f836060913960600191505060405180910390fd5b6001556112c3565b610f2184848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805160608101909152602280825290925090506120886020830139611c67565b15610ff95760208114610f655760405162461bcd60e51b815260040180806020018281038252602e815260200180612039602e913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610fa391858580838501838280828437600092019190915250611d4e92505050565b90508015801590610fb657506001548110155b610ff15760405162461bcd60e51b815260040180806020018281038252606c8152602001806120f9606c913960800191505060405180910390fd5b6002556112c3565b61106d84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601a81527f63616c6c6572436f6d70656e736174696f6e4d6f6c6563756c6500000000000060208201529150611c679050565b1561113a57602081146110b15760405162461bcd60e51b815260040180806020018281038252602e815260200180612039602e913960400191505060405180910390fd5b604080516020601f84018190048102820181019092528281526000916110ef91858580838501838280828437600092019190915250611d4e92505050565b90506004548111156111325760405162461bcd60e51b8152600401808060200182810382526056815260200180611fe36056913960600191505060405180910390fd5b6003556112c3565b6111ae84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601d81527f63616c6c6572436f6d70656e736174696f6e44656e6f6d696e61746f7200000060208201529150611c679050565b1561128657602081146111f25760405162461bcd60e51b815260040180806020018281038252602e815260200180612039602e913960400191505060405180910390fd5b604080516020601f840181900481028201810190925282815260009161123091858580838501838280828437600092019190915250611d4e92505050565b9050801580159061124357506003548110155b61127e5760405162461bcd60e51b8152600401808060200182810382526061815260200180611f226061913960800191505060405180910390fd5b6004556112c3565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b60025481565b60006028821161136c5750806113b1565b81602810801561137d575060508211155b1561138a575060286113b1565b60508211801561139b5750606e8211155b156113ab575060788190036113b1565b50600481045b919050565b6000602882116113c75750806113b1565b5060286113b1565b61100281565b61100381565b60095481565b60005460ff1615611439576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b60005460ff1615611487576040805162461bcd60e51b8152602060048201526013602482015272185b1c9958591e481a5b9a5d1a585b1a5e9959606a1b604482015290519081900360640190fd5b60018080556005600255600381905560506004556000805460ff19169091179055565b6001600160a01b0381166000908152600d602052604090205480611509576040805162461bcd60e51b81526020600482015260116024820152701b9bc81c995b185e595c881c995dd85c99607a1b604482015290519081900360640190fd5b6001600160a01b0382166000818152600d60205260408082208290555184929184156108fc02918591818181858888f193505050506115b95760405161100290819084156108fc029085906000818181858888f19350505050158015611573573d6000803e3d6000fd5b506040805161100281526020810185905281517f24502838a334c8f2bb2ee1f8262a4fa7183e4489a717e96cc824e325f8b39e11929181900390910190a1505050611600565b604080516001600160a01b03851681526020810184905281517f24502838a334c8f2bb2ee1f8262a4fa7183e4489a717e96cc824e325f8b39e11929181900390910190a150505b50565b6008818154811061089757fe5b61100081565b600381565b61100481565b600d6020526000908152604090205481565b600061165c60025461165060015485611d5390919063ffffffff16565b9063ffffffff611dac16565b92915050565b6000828201838110156116bc576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b60006116bc83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611dee565b600954600680546040805160208084028201810190925282815260009493859360609383018282801561176157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611743575b5050505050905060608151604051908082528060200260200182016040528015611795578160200160208202803683370190505b50905060005b82518110156118225760008382815181106117b257fe5b6020026020010151905060006117ec60056000846001600160a01b03166001600160a01b03168152602001908152602001600020546113b6565b9050808484815181106117fb57fe5b6020908102919091010152611816868263ffffffff61166216565b9550505060010161179b565b50600061184060045461165060035488611d5390919063ffffffff16565b9050611852858263ffffffff6116c316565b94508460015b845181101561192957600061188d876116508a88868151811061187757fe5b6020026020010151611d5390919063ffffffff16565b90506118da81600d60008986815181106118a357fe5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205461166290919063ffffffff16565b600d60008885815181106118ea57fe5b6020908102919091018101516001600160a01b031682528101919091526040016000205561191e838263ffffffff6116c316565b925050600101611858565b5061193f81600d6000876000815181106118a357fe5b600d60008660008151811061195057fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002081905550600060098190555060008090505b84518110156119d157600560008683815181106119a357fe5b6020908102919091018101516001600160a01b0316825281019190915260400160009081205560010161198a565b506119de60066000611eea565b509450505050505b90565b600a546008805460408051602080840282018101909252828152600094938593606093830182828015611a4557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611a27575b5050505050905060608151604051908082528060200260200182016040528015611a79578160200160208202803683370190505b50905060005b8251811015611af8576000838281518110611a9657fe5b602002602001015190506000611ad060076000846001600160a01b03166001600160a01b031681526020019081526020016000205461135b565b905080848481518110611adf57fe5b6020908102919091010152949094019350600101611a7f565b506000611b1660045461165060035488611d5390919063ffffffff16565b9050611b28858263ffffffff6116c316565b94508460015b8451811015611bb2576000611b4d876116508a88868151811061187757fe5b9050611b6381600d60008986815181106118a357fe5b600d6000888581518110611b7357fe5b6020908102919091018101516001600160a01b0316825281019190915260400160002055611ba7838263ffffffff6116c316565b925050600101611b2e565b50611bc881600d6000876000815181106118a357fe5b600d600086600081518110611bd957fe5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020819055506000600a8190555060008090505b8451811015611c5a5760076000868381518110611c2c57fe5b6020908102919091018101516001600160a01b03168252810191909152604001600090812055600101611c13565b506119de60086000611eea565b6000816040516020018082805190602001908083835b60208310611c9c5780518252601f199092019160209182019101611c7d565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310611d0a5780518252601f199092019160209182019101611ceb565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b600082611d625750600061165c565b82820282848281611d6f57fe5b04146116bc5760405162461bcd60e51b81526004018080602001828103825260218152602001806120676021913960400191505060405180910390fd5b60006116bc83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611e85565b60008184841115611e7d5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e42578181015183820152602001611e2a565b50505050905090810190601f168015611e6f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008183611ed45760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315611e42578181015183820152602001611e2a565b506000838581611ee057fe5b0495945050505050565b508054600082559060005260206000209081019061160091906119e691905b80821115611f1d5760008155600101611f09565b509056fe746865206e657743616c6c6572436f6d70656e736174696f6e44656e6f6d696e61746f72206d757374206e6f74206265207a65726f20616e64206e6f206c657373207468616e2063616c6c6572436f6d70656e736174696f6e4d6f6c6563756c656e65772068656164657252656c61796572526577617264526174654d6f6c6563756c652073686f756c646e27742062652067726561746572207468616e2068656164657252656c617965725265776172645261746544656e6f6d696e61746f726e65772063616c6c6572436f6d70656e736174696f6e4d6f6c6563756c652073686f756c646e27742062652067726561746572207468616e2063616c6c6572436f6d70656e736174696f6e44656e6f6d696e61746f726c656e677468206f6620726577617264466f7256616c696461746f725365744368616e6765206d69736d61746368536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7768656164657252656c617965725265776172645261746544656e6f6d696e61746f72746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374636f6e747261637420686173206e6f74206265656e20696e697469616c697a6564746865206e65772068656164657252656c617965725265776172645261746544656e6f6d696e61746f72206d757374206e6f74206265207a65726f20616e64206e6f206c657373207468616e2068656164657252656c61796572526577617264526174654d6f6c6563756c65746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e74726163746c656e677468206f662068656164657252656c61796572526577617264526174654d6f6c6563756c65206d69736d61746368a26469706673582212209942fb859157a9a570f5d4a9dbba6573b75155e0372793b0dd76c49a6ff6fbbb64736f6c63430006040033", - }, - { - ContractAddr: RelayerHubContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/f4bc161dac5937b8cbd4fe3089c7514c415430f9", - Code: "6080604052600436106101c25760003560e01c806395468d26116100f7578063c81b166211610095578063f9a2bbc711610064578063f9a2bbc714610529578063fb7cfdd71461053e578063fc3e590814610553578063fd6a687914610568576101c2565b8063c81b1662146104d5578063dc927faf146104ea578063e1c7392a146104ff578063e79a198f14610514576101c2565b8063a1a11bf5116100d1578063a1a11bf5146103c7578063a78abc16146103dc578063ab51bb96146103f1578063ac43175114610406576101c2565b806395468d261461038857806396713da91461039d5780639dc09262146103b2576101c2565b8063541d55481161016457806370fd5bad1161013e57806370fd5bad1461033457806375d47a0a146103495780637942fd051461035e5780637ae2308814610373576101c2565b8063541d5548146102b15780636a87d780146102f85780636e47b4821461031f576101c2565b806343756e5c116101a057806343756e5c1461022a578063493279b11461025b5780634bf6c8821461028757806351e806721461029c576101c2565b80630bee7a67146101c75780631aa3a008146101f55780633dffc387146101ff575b600080fd5b3480156101d357600080fd5b506101dc61057d565b6040805163ffffffff9092168252519081900360200190f35b6101fd610582565b005b34801561020b57600080fd5b5061021461077d565b6040805160ff9092168252519081900360200190f35b34801561023657600080fd5b5061023f610782565b604080516001600160a01b039092168252519081900360200190f35b34801561026757600080fd5b50610270610788565b6040805161ffff9092168252519081900360200190f35b34801561029357600080fd5b5061021461078d565b3480156102a857600080fd5b5061023f610792565b3480156102bd57600080fd5b506102e4600480360360208110156102d457600080fd5b50356001600160a01b0316610798565b604080519115158252519081900360200190f35b34801561030457600080fd5b5061030d6107b6565b60408051918252519081900360200190f35b34801561032b57600080fd5b5061023f6107bc565b34801561034057600080fd5b506102146107c2565b34801561035557600080fd5b5061023f6107c7565b34801561036a57600080fd5b506102146107cd565b34801561037f57600080fd5b5061030d6107d2565b34801561039457600080fd5b5061030d6107df565b3480156103a957600080fd5b506102146107eb565b3480156103be57600080fd5b5061023f6107f0565b3480156103d357600080fd5b5061023f6107f6565b3480156103e857600080fd5b506102e46107fc565b3480156103fd57600080fd5b506101dc610805565b34801561041257600080fd5b506101fd6004803603604081101561042957600080fd5b81019060208101813564010000000081111561044457600080fd5b82018360208201111561045657600080fd5b8035906020019184600183028401116401000000008311171561047857600080fd5b91939092909160208101903564010000000081111561049657600080fd5b8201836020820111156104a857600080fd5b803590602001918460018302840111640100000000831117156104ca57600080fd5b50909250905061080a565b3480156104e157600080fd5b5061023f610c2c565b3480156104f657600080fd5b5061023f610c32565b34801561050b57600080fd5b506101fd610c38565b34801561052057600080fd5b506101fd610cba565b34801561053557600080fd5b5061023f610e73565b34801561054a57600080fd5b5061030d610e79565b34801561055f57600080fd5b50610214610e7f565b34801561057457600080fd5b5061023f610e84565b606481565b3360009081526004602052604090205460ff16156105df576040805162461bcd60e51b81526020600482015260156024820152741c995b185e595c88185b1c9958591e48195e1a5cdd605a1b604482015290519081900360640190fd5b60005460ff16610632576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b61063b33610e8a565b156106775760405162461bcd60e51b815260040180806020018281038252602781526020018061109c6027913960400191505060405180910390fd5b3332146106c1576040805162461bcd60e51b81526020600482015260136024820152721b9bc81c1c9bde1e481a5cc8185b1b1bddd959606a1b604482015290519081900360640190fd5b60015434146107015760405162461bcd60e51b81526004018080602001828103825260258152602001806110776025913960400191505060405180910390fd5b604080518082018252600180548252600254602080840191825233600081815260038352868120955186559251948401949094556004815290849020805460ff1916909217909155825191825291517fdb33a09d38b59a8fa8b7d92a1d82c8015e99f05f67ae9c9ae623157767959496929181900390910190a1565b600181565b61100181565b606081565b600881565b61200081565b6001600160a01b031660009081526004602052604090205460ff1690565b60025481565b61100581565b600281565b61100881565b600b81565b68056bc75e2d6310000081565b67016345785d8a000081565b600981565b61100781565b61100681565b60005460ff1681565b600081565b60005460ff1661085d576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b336110071461089d5760405162461bcd60e51b815260040180806020018281038252602e8152602001806110c3602e913960400191505060405180910390fd5b61090384848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e1c995c5d5a5c995911195c1bdcda5d608a1b60208201529150610e909050565b15610a0657602081146109475760405162461bcd60e51b81526004018080602001828103825260228152602001806110f16022913960400191505060405180910390fd5b604080516020601f840181900481028201810190925282815260009161098591858580838501838280828437600092019190915250610f7792505050565b90506001811180156109a05750683635c9adc5dea000008111155b80156109ad575060025481115b6109fe576040805162461bcd60e51b815260206004820181905260248201527f7468652072657175697265644465706f736974206f7574206f662072616e6765604482015290519081900360640190fd5b600155610b9a565b610a6184848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260048152636475657360e01b60208201529150610e909050565b15610b5d5760208114610abb576040805162461bcd60e51b815260206004820152601760248201527f6c656e677468206f662064756573206d69736d61746368000000000000000000604482015290519081900360640190fd5b604080516020601f8401819004810282018101909252828152600091610af991858580838501838280828437600092019190915250610f7792505050565b9050600081118015610b0c575060015481105b610b55576040805162461bcd60e51b81526020600482015260156024820152747468652064756573206f7574206f662072616e676560581b604482015290519081900360640190fd5b600255610b9a565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b61100281565b61100381565b60005460ff1615610c90576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b68056bc75e2d63100000600190815567016345785d8a00006002556000805460ff19169091179055565b3360009081526004602052604090205460ff16610d15576040805162461bcd60e51b81526020600482015260146024820152731c995b185e595c88191bc81b9bdd08195e1a5cdd60621b604482015290519081900360640190fd5b60005460ff16610d68576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b610d7061105c565b5033600081815260036020908152604091829020825180840190935280548084526001909101549183018290529192916108fc91610db4919063ffffffff610f7c16565b6040518115909202916000818181858888f19350505050158015610ddc573d6000803e3d6000fd5b50602081015160405161100291829181156108fc0291906000818181858888f19350505050158015610e12573d6000803e3d6000fd5b50336000818152600460209081526040808320805460ff191690556003825280832083815560010192909255815192835290517fd17202129b83db7880d6b9f25df81c58ad46f7e0e2c92236b1aa10663a4876679281900390910190a15050565b61100081565b60015481565b600381565b61100481565b3b151590565b6000816040516020018082805190602001908083835b60208310610ec55780518252601f199092019160209182019101610ea6565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310610f335780518252601f199092019160209182019101610f14565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b6000610fbe83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610fc5565b9392505050565b600081848411156110545760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611019578181015183820152602001611001565b50505050905090810190601f1680156110465780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60405180604001604052806000815260200160008152509056fe6465706f7369742076616c7565206973206e6f742065786163746c79207468652073616d65636f6e7472616374206973206e6f7420616c6c6f77656420746f20626520612072656c61796572746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662072657175697265644465706f736974206d69736d61746368a264697066735822122011778451ed6d3e3757ce2e74acfc7fa17bf5d16f07168a6ce073d7c91e583c8c64736f6c63430006040033", - }, - { - ContractAddr: GovHubContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/f4bc161dac5937b8cbd4fe3089c7514c415430f9", - Code: "608060405234801561001057600080fd5b506004361061018e5760003560e01c8063831d65d1116100de578063ab51bb9611610097578063dc927faf11610071578063dc927faf14610486578063f9a2bbc71461048e578063fc3e590814610496578063fd6a68791461049e5761018e565b8063ab51bb96146103fc578063c81b166214610404578063c8509d811461040c5761018e565b8063831d65d11461034457806396713da9146103c05780639ab1a373146103c85780639dc09262146103d0578063a1a11bf5146103d8578063a78abc16146103e05761018e565b8063493279b11161014b5780636e47b482116101255780636e47b4821461032457806370fd5bad1461032c57806375d47a0a146103345780637942fd051461033c5761018e565b8063493279b1146102f55780634bf6c8821461031457806351e806721461031c5761018e565b80630bee7a67146101935780631182b875146101b45780633a21baae146102a35780633dffc387146102ab57806343756e5c146102c95780634900c4ea146102ed575b600080fd5b61019b6104a6565b6040805163ffffffff9092168252519081900360200190f35b61022e600480360360408110156101ca57600080fd5b60ff82351691908101906040810160208201356401000000008111156101ef57600080fd5b82018360208201111561020157600080fd5b8035906020019184600183028401116401000000008311171561022357600080fd5b5090925090506104ab565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610268578181015183820152602001610250565b50505050905090810190601f1680156102955780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61019b61059a565b6102b361059f565b6040805160ff9092168252519081900360200190f35b6102d16105a4565b604080516001600160a01b039092168252519081900360200190f35b6102b36105aa565b6102fd6105af565b6040805161ffff9092168252519081900360200190f35b6102b36105b4565b6102d16105b9565b6102d16105bf565b6102b36105c5565b6102d16105ca565b6102b36105d0565b6103be6004803603604081101561035a57600080fd5b60ff823516919081019060408101602082013564010000000081111561037f57600080fd5b82018360208201111561039157600080fd5b803590602001918460018302840111640100000000831117156103b357600080fd5b5090925090506105d5565b005b6102b3610667565b61019b61066c565b6102d1610671565b6102d1610677565b6103e861067d565b604080519115158252519081900360200190f35b61019b6105aa565b6102d1610686565b6103be6004803603604081101561042257600080fd5b60ff823516919081019060408101602082013564010000000081111561044757600080fd5b82018360208201111561045957600080fd5b8035906020019184600183028401116401000000008311171561047b57600080fd5b50909250905061068c565b6102d1610703565b6102d1610709565b6102b361070f565b6102d1610714565b606481565b606033612000146104ed5760405162461bcd60e51b815260040180806020018281038252602f8152602001806113e7602f913960400191505060405180910390fd5b6104f5611382565b600061053685858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061071a92505050565b91509150806105525761054960646107e0565b92505050610593565b600061055d8361084a565b905063ffffffff811661058457505060408051600081526020810190915291506105939050565b61058d816107e0565b93505050505b9392505050565b606681565b600181565b61100181565b600081565b606081565b600881565b61200081565b61100581565b600281565b61100881565b600b81565b33612000146106155760405162461bcd60e51b815260040180806020018281038252602f8152602001806113e7602f913960400191505060405180910390fd5b6040805162461bcd60e51b815260206004820152601e60248201527f7265636569766520756e65787065637465642061636b207061636b6167650000604482015290519081900360640190fd5b505050565b600981565b606581565b61100781565b61100681565b60005460ff1681565b61100281565b33612000146106cc5760405162461bcd60e51b815260040180806020018281038252602f8152602001806113e7602f913960400191505060405180910390fd5b60405162461bcd60e51b81526004018080602001828103825260238152602001806114166023913960400191505060405180910390fd5b61100381565b61100081565b600381565b61100481565b610722611382565b600061072c611382565b6107346113ac565b61074561074086610beb565b610c10565b90506000805b61075483610c5a565b156107d357806107765761076f61076a84610c7b565b610cc9565b84526107cb565b80600114156107955761078b61076a84610c7b565b60208501526107cb565b80600214156107c6576107af6107aa84610c7b565b610d42565b6001600160a01b03166040850152600191506107cb565b6107d3565b60010161074b565b5091935090915050915091565b604080516001808252818301909252606091829190816020015b60608152602001906001900390816107fa5790505090506108208363ffffffff16610d62565b8160008151811061082d57fe5b602002602001018190525061084181610d75565b9150505b919050565b60006108598260400151610dff565b6108c557604080516020808252601c908201527f74686520746172676574206973206e6f74206120636f6e7472616374000000008183015290517f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb29181900360600190a1506065610845565b81604001516001600160a01b031663ac431751836000015184602001516040518363ffffffff1660e01b8152600401808060200180602001838103835285818151815260200191508051906020019080838360005b8381101561093257818101518382015260200161091a565b50505050905090810190601f16801561095f5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b8381101561099257818101518382015260200161097a565b50505050905090810190601f1680156109bf5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156109e057600080fd5b505af19250505080156109f1575060015b610be3576040516000815260443d1015610a0d57506000610aaa565b60046000803e60005160e01c6308c379a08114610a2e576000915050610aaa565b60043d036004833e81513d602482011167ffffffffffffffff82111715610a5a57600092505050610aaa565b808301805167ffffffffffffffff811115610a7c576000945050505050610aaa565b8060208301013d8601811115610a9a57600095505050505050610aaa565b601f01601f191660405250925050505b80610ab55750610b58565b7f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2816040518080602001828103825283818151815260200191508051906020019080838360005b83811015610b14578181015183820152602001610afc565b50505050905090810190601f168015610b415780820380516001836020036101000a031916815260200191505b509250505060405180910390a16066915050610845565b3d808015610b82576040519150601f19603f3d011682016040523d82523d6000602084013e610b87565b606091505b5060408051602080825283518183015283517f1279f84165b4fd69c35e1f338ff107231b036c655cd1688851e011ce617c4e8d938593928392918301919085019080838360008315610b14578181015183820152602001610afc565b506000919050565b610bf36113cc565b506040805180820190915281518152602082810190820152919050565b610c186113ac565b610c2182610e05565b610c2a57600080fd5b6000610c398360200151610e3f565b60208085015160408051808201909152868152920190820152915050919050565b6000610c646113cc565b505080518051602091820151919092015191011190565b610c836113cc565b610c8c82610c5a565b610c9557600080fd5b60208201516000610ca582610ea2565b80830160209586015260408051808201909152908152938401919091525090919050565b8051606090610cd757600080fd5b6000610ce68360200151610e3f565b83516040805191839003808352601f19601f8201168301602001909152919250606090828015610d1d576020820181803683370190505b5090506000816020019050610d39848760200151018285610fd5565b50949350505050565b8051600090601514610d5357600080fd5b610d5c82611020565b92915050565b6060610d5c610d70836110d5565b6111bb565b6060815160001415610d965750604080516000815260208101909152610845565b606082600081518110610da557fe5b602002602001015190506000600190505b8351811015610de657610ddc82858381518110610dcf57fe5b602002602001015161120d565b9150600101610db6565b50610841610df9825160c060ff1661128a565b8261120d565b3b151590565b8051600090610e1657506000610845565b6020820151805160001a9060c0821015610e3557600092505050610845565b5060019392505050565b8051600090811a6080811015610e59576000915050610845565b60b8811080610e74575060c08110801590610e74575060f881105b15610e83576001915050610845565b60c0811015610e975760b519019050610845565b60f519019050610845565b80516000908190811a6080811015610ebd5760019150610fce565b60b8811015610ed257607e1981019150610fce565b60c0811015610f4c57600060b78203600186019550806020036101000a865104915060018101820193505080831015610f46576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50610fce565b60f8811015610f615760be1981019150610fce565b600060f78203600186019550806020036101000a865104915060018101820193505080831015610fcc576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b80610fdf57610662565b5b60208110610fff578251825260209283019290910190601f1901610fe0565b915181516020939093036101000a6000190180199091169216919091179052565b80516000901580159061103557508151602110155b61103e57600080fd5b600061104d8360200151610e3f565b905080836000015110156110a8576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015610d3957506020919091036101000a90049392505050565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166111195750601861113d565b6fffffffffffffffffffffffffffffffff1984166111395750601061113d565b5060005b60208110156111735781818151811061115257fe5b01602001516001600160f81b0319161561116b57611173565b60010161113d565b60008160200390506060816040519080825280601f01601f1916602001820160405280156111a8576020820181803683370190505b5080830196909652508452509192915050565b6060815160011480156111ed5750607f60f81b826000815181106111db57fe5b01602001516001600160f81b03191611155b156111f9575080610845565b610d5c61120b8351608060ff1661128a565b835b6060806040519050835180825260208201818101602087015b8183101561123e578051835260209283019201611226565b50855184518101855292509050808201602086015b8183101561126b578051835260209283019201611253565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106112da576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b604080516001808252818301909252606091602082018180368337019050509050603784116113345782840160f81b8160008151811061131657fe5b60200101906001600160f81b031916908160001a9053509050610d5c565b606061133f856110d5565b90508381510160370160f81b8260008151811061135857fe5b60200101906001600160f81b031916908160001a905350611379828261120d565b95945050505050565b6040518060600160405280606081526020016060815260200160006001600160a01b031681525090565b60405180604001604052806113bf6113cc565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e74726163747265636569766520756e6578706563746564206661696c2061636b207061636b616765a2646970667358221220ea2b2b402a564a222b3f3e7c0f671622652543c9c5f6cb6c7b8db265ae9ebe4564736f6c63430006040033", - }, - { - ContractAddr: TokenManagerContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/f4bc161dac5937b8cbd4fe3089c7514c415430f9", - Code: "6080604052600436106102465760003560e01c806375d47a0a11610139578063ab51bb96116100b6578063dc6f5e901161007a578063dc6f5e90146108df578063dc927faf14610975578063f9a2bbc71461098a578063fc3e5908146108df578063fd6a68791461099f578063fe3a2af5146104fd57610246565b8063ab51bb96146108b5578063c81b1662146108ca578063c8509d81146107c5578063c8e704a4146108df578063d117a110146108f457610246565b806395b9ad26116100fd57806395b9ad261461084c57806396713da9146108615780639dc0926214610876578063a1a11bf51461088b578063a78abc16146108a057610246565b806375d47a0a146106e757806377d9dae8146106fc5780637942fd05146107b05780637d078e13146103c8578063831d65d1146107c557610246565b80634a688818116101c75780635f558f861161018b5780635f558f86146105515780636b3f1307146105665780636e47b4821461062e57806370fd5bad1461055157806372c4e0861461064357610246565b80634a688818146104fd5780634bc81c00146105125780634bf6c8821461024b57806351e80672146105275780635d499b1b1461053c57610246565b806323996b531161020e57806323996b53146103c85780633dffc387146103c857806343756e5c146103dd578063445fcefe1461040e578063493279b1146104d157610246565b8063077b8f351461024b5780630bee7a67146102765780630f212b1b146102a45780631182b875146102b95780631f91600b146103b3575b600080fd5b34801561025757600080fd5b506102606109b4565b6040805160ff9092168252519081900360200190f35b34801561028257600080fd5b5061028b6109b9565b6040805163ffffffff9092168252519081900360200190f35b3480156102b057600080fd5b506102606109be565b3480156102c557600080fd5b5061033e600480360360408110156102dc57600080fd5b60ff8235169190810190604081016020820135600160201b81111561030057600080fd5b82018360208201111561031257600080fd5b803590602001918460018302840111600160201b8311171561033357600080fd5b5090925090506109c3565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610378578181015183820152602001610360565b50505050905090810190601f1680156103a55780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103bf57600080fd5b50610260610a4c565b3480156103d457600080fd5b50610260610a51565b3480156103e957600080fd5b506103f2610a56565b604080516001600160a01b039092168252519081900360200190f35b34801561041a57600080fd5b506104bf6004803603602081101561043157600080fd5b810190602081018135600160201b81111561044b57600080fd5b82018360208201111561045d57600080fd5b803590602001918460018302840111600160201b8311171561047e57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610a5c945050505050565b60408051918252519081900360200190f35b3480156104dd57600080fd5b506104e6610bbb565b6040805161ffff9092168252519081900360200190f35b34801561050957600080fd5b50610260610bc0565b34801561051e57600080fd5b50610260610bc5565b34801561053357600080fd5b506103f2610bca565b34801561054857600080fd5b506104bf610bd0565b34801561055d57600080fd5b50610260610bd9565b61061a6004803603604081101561057c57600080fd5b6001600160a01b038235169190810190604081016020820135600160201b8111156105a657600080fd5b8201836020820111156105b857600080fd5b803590602001918460018302840111600160201b831117156105d957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610bde945050505050565b604080519115158252519081900360200190f35b34801561063a57600080fd5b506103f2611460565b61061a6004803603602081101561065957600080fd5b810190602081018135600160201b81111561067357600080fd5b82018360208201111561068557600080fd5b803590602001918460018302840111600160201b831117156106a657600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611466945050505050565b3480156106f357600080fd5b506103f26118b4565b61061a6004803603604081101561071257600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561073c57600080fd5b82018360208201111561074e57600080fd5b803590602001918460018302840111600160201b8311171561076f57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506118ba945050505050565b3480156107bc57600080fd5b50610260611dc1565b3480156107d157600080fd5b5061084a600480360360408110156107e857600080fd5b60ff8235169190810190604081016020820135600160201b81111561080c57600080fd5b82018360208201111561081e57600080fd5b803590602001918460018302840111600160201b8311171561083f57600080fd5b509092509050611dc6565b005b34801561085857600080fd5b50610260611e79565b34801561086d57600080fd5b50610260611e7e565b34801561088257600080fd5b506103f2611e83565b34801561089757600080fd5b506103f2611e89565b3480156108ac57600080fd5b5061061a611e8f565b3480156108c157600080fd5b5061028b610bc0565b3480156108d657600080fd5b506103f2611e98565b3480156108eb57600080fd5b50610260611e9e565b34801561090057600080fd5b5061091e6004803603602081101561091757600080fd5b5035611ea3565b6040805160ff988916815260208101979097526001600160a01b03909516868601526060860193909352608085019190915290931660a083015267ffffffffffffffff90921660c082015290519081900360e00190f35b34801561098157600080fd5b506103f2611efb565b34801561099657600080fd5b506103f2611f01565b3480156109ab57600080fd5b506103f2611f07565b600881565b606481565b600681565b60603361200014610a055760405162461bcd60e51b815260040180806020018281038252602f8152602001806132a0602f913960400191505060405180910390fd5b610a4483838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611f0d92505050565b949350505050565b600481565b600181565b61100181565b6020810151600090610a6c613168565b50600081815260016020818152604092839020835160e081018552815460ff9081168252938201549281019290925260028101546001600160a01b031693820184905260038101546060830152600481015460808301526005015491821660a082015261010090910467ffffffffffffffff1660c082015290610af457600092505050610bb6565b600081604001516001600160a01b03166370a082316110046040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015610b5257600080fd5b505afa158015610b66573d6000803e3d6000fd5b505050506040513d6020811015610b7c57600080fd5b505160808301516060840151919250600091610b9d9163ffffffff61219e16565b9050610baf818363ffffffff61219e16565b9450505050505b919050565b606081565b600081565b600581565b61200081565b6402540be40081565b600281565b600080610bea836121e7565b9050610bf4613168565b50600081815260016020818152604092839020835160e081018552815460ff90811682529382015492810183905260028201546001600160a01b03169481019490945260038101546060850152600481015460808501526005015491821660a084015261010090910467ffffffffffffffff1660c0830152610cba576040805162461bcd60e51b815260206004820152601a602482015279189a5b99081c995c5d595cdd08191bd95cdb89dd08195e1a5cdd60321b604482015290519081900360640190fd5b6000610cd78260800151836060015161219e90919063ffffffff16565b905081604001516001600160a01b0316866001600160a01b031614610d2d5760405162461bcd60e51b815260040180806020018281038252604581526020018061322d6045913960600191505060405180910390fd5b336001600160a01b0316866001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b158015610d7057600080fd5b505afa158015610d84573d6000803e3d6000fd5b505050506040513d6020811015610d9a57600080fd5b50516001600160a01b031614610de15760405162461bcd60e51b815260040180806020018281038252602e815260200180613272602e913960400191505060405180910390fd5b604080516370a0823160e01b8152611004600482015290516000916001600160a01b038916916370a0823191602480820192602092909190829003018186803b158015610e2d57600080fd5b505afa158015610e41573d6000803e3d6000fd5b505050506040513d6020811015610e5757600080fd5b505160408051636eb1769f60e11b815233600482015230602482015290519192508391610ee89184916001600160a01b038c169163dd62ed3e916044808301926020929190829003018186803b158015610eb057600080fd5b505afa158015610ec4573d6000803e3d6000fd5b505050506040513d6020811015610eda57600080fd5b50519063ffffffff6121ee16565b1015610f3b576040805162461bcd60e51b815260206004820152601760248201527f616c6c6f77616e6365206973206e6f7420656e6f756768000000000000000000604482015290519081900360640190fd5b600034905060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b158015610f7d57600080fd5b505afa158015610f91573d6000803e3d6000fd5b505050506040513d6020811015610fa757600080fd5b50519050808210801590610fc057506402540be4008206155b610ffb5760405162461bcd60e51b81526004018080602001828103825260378152602001806131f66037913960400191505060405180910390fd5b6000611007868b612248565b905063ffffffff8116611206576001600160a01b038a166323b872dd33611004611037898963ffffffff61219e16565b6040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b031681526020018281526020019350505050602060405180830381600087803b15801561109f57600080fd5b505af11580156110b3573d6000803e3d6000fd5b505050506040513d60208110156110c957600080fd5b5050602086015160408088015160a089015182516323bfccdb60e21b815260048101949094526001600160a01b03909116602484015260ff1660448301525161100491638eff336c91606480830192600092919082900301818387803b15801561113257600080fd5b505af1158015611146573d6000803e3d6000fd5b50505050896001600160a01b03167f78e7dd9aefcdbf795c4936a66f7dc6d41bb56637b54f561a6bf7829dca3348a88a8860600151886040518080602001848152602001838152602001828103825285818151815260200191508051906020019080838360005b838110156111c55781810151838201526020016111ad565b50505050905090810190601f1680156111f25780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a26112be565b896001600160a01b03167f831c0ef4d93bda3bce08b69ae3f29ef1a6e052b833200988554158494405a1078a8360405180806020018363ffffffff1663ffffffff168152602001828103825284818151815260200191508051906020019080838360005b8381101561128257818101518382015260200161126a565b50505050905090810190601f1680156112af5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a25b60008781526001602081905260408220805460ff191681559081018290556002810180546001600160a01b0319169055600381018290556004810191909155600501805468ffffffffffffffffff191690556113186131a4565b5060408051808201825263ffffffff831681526020810189905290516110049085156108fc029086906000818181858888f19350505050158015611360573d6000803e3d6000fd5b5061200063f7a251d760016113748461269f565b611389886402540be40063ffffffff61272916565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156113e75781810151838201526020016113cf565b50505050905090810190601f1680156114145780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561143557600080fd5b505af1158015611449573d6000803e3d6000fd5b505050506001985050505050505050505b92915050565b61100581565b600080611472836121e7565b905061147c613168565b50600081815260016020818152604092839020835160e081018552815460ff90811682529382015492810183905260028201546001600160a01b03169481019490945260038101546060850152600481015460808501526005015491821660a084015261010090910467ffffffffffffffff1660c0830152611542576040805162461bcd60e51b815260206004820152601a602482015279189a5b99081c995c5d595cdd08191bd95cdb89dd08195e1a5cdd60321b604482015290519081900360640190fd5b428160c0015167ffffffffffffffff16106115a4576040805162461bcd60e51b815260206004820152601b60248201527f62696e642072657175657374206973206e6f7420657870697265640000000000604482015290519081900360640190fd5b600034905060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b1580156115e657600080fd5b505afa1580156115fa573d6000803e3d6000fd5b505050506040513d602081101561161057600080fd5b5051905080821080159061162957506402540be4008206155b6116645760405162461bcd60e51b81526004018080602001828103825260378152602001806131f66037913960400191505060405180910390fd5b60008481526001602081905260408220805460ff191681559081018290556002810180546001600160a01b0319169055600381018290556004810191909155600501805468ffffffffffffffffff191690556116be6131a4565b50604080518082018252600181526020810186905290516110049084156108fc029085906000818181858888f19350505050158015611701573d6000803e3d6000fd5b5061200063f7a251d760016117158461269f565b61172a876402540be40063ffffffff61272916565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611788578181015183820152602001611770565b50505050905090810190601f1680156117b55780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156117d657600080fd5b505af11580156117ea573d6000803e3d6000fd5b5050505083604001516001600160a01b03167f831c0ef4d93bda3bce08b69ae3f29ef1a6e052b833200988554158494405a10788600160405180806020018360ff1663ffffffff168152602001828103825284818151815260200191508051906020019080838360005b8381101561186c578181015183820152602001611854565b50505050905090810190601f1680156118995780820380516001836020036101000a031916815260200191505b50935050505060405180910390a25060019695505050505050565b61100881565b6000806118c6836121e7565b90506118d0613168565b50600081815260016020818152604092839020835160e081018552815460ff90811682529382015492810183905260028201546001600160a01b03169481019490945260038101546060850152600481015460808501526005015491821660a084015261010090910467ffffffffffffffff1660c0830152611996576040805162461bcd60e51b815260206004820152601a602482015279189a5b99081c995c5d595cdd08191bd95cdb89dd08195e1a5cdd60321b604482015290519081900360640190fd5b80604001516001600160a01b0316856001600160a01b0316146119ea5760405162461bcd60e51b815260040180806020018281038252604581526020018061322d6045913960600191505060405180910390fd5b336001600160a01b0316856001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b158015611a2d57600080fd5b505afa158015611a41573d6000803e3d6000fd5b505050506040513d6020811015611a5757600080fd5b50516001600160a01b031614611ab4576040805162461bcd60e51b815260206004820152601b60248201527f6f6e6c79206265703265206f776e65722063616e2072656a6563740000000000604482015290519081900360640190fd5b600034905060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b158015611af657600080fd5b505afa158015611b0a573d6000803e3d6000fd5b505050506040513d6020811015611b2057600080fd5b50519050808210801590611b3957506402540be4008206155b611b745760405162461bcd60e51b81526004018080602001828103825260378152602001806131f66037913960400191505060405180910390fd5b60008481526001602081905260408220805460ff191681559081018290556002810180546001600160a01b0319169055600381018290556004810191909155600501805468ffffffffffffffffff19169055611bce6131a4565b50604080518082018252600781526020810186905290516110049084156108fc029085906000818181858888f19350505050158015611c11573d6000803e3d6000fd5b5061200063f7a251d76001611c258461269f565b611c3a876402540be40063ffffffff61272916565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611c98578181015183820152602001611c80565b50505050905090810190601f168015611cc55780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015611ce657600080fd5b505af1158015611cfa573d6000803e3d6000fd5b50505050876001600160a01b03167f831c0ef4d93bda3bce08b69ae3f29ef1a6e052b833200988554158494405a10788600760405180806020018360ff1663ffffffff168152602001828103825284818151815260200191508051906020019080838360005b83811015611d78578181015183820152602001611d60565b50505050905090810190601f168015611da55780820380516001836020036101000a031916815260200191505b50935050505060405180910390a2506001979650505050505050565b600b81565b3361200014611e065760405162461bcd60e51b815260040180806020018281038252602f8152602001806132a0602f913960400191505060405180910390fd5b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a1505050565b600781565b600981565b61100781565b61100681565b60005460ff1681565b61100281565b600381565b600160208190526000918252604090912080549181015460028201546003830154600484015460059094015460ff9586169593946001600160a01b0390931693919291811690610100900467ffffffffffffffff1687565b61100381565b61100081565b61100481565b6060611f17613168565b6000611f228461276b565b9150915080611f78576040805162461bcd60e51b815260206004820152601f60248201527f756e7265636f676e697a6564207472616e73666572496e207061636b61676500604482015290519081900360640190fd5b815160ff1661202c576020828101805160009081526001928390526040908190208551815460ff1990811660ff928316178355935194820194909455908501516002820180546001600160a01b0319166001600160a01b03909216919091179055606085015160038201556080850151600482015560a08501516005909101805460c08701519316919093161768ffffffffffffffff00191661010067ffffffffffffffff90921691909102179055612183565b815160ff16600114156121365760006110046001600160a01b03166359b9278984602001516040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561208557600080fd5b505afa158015612099573d6000803e3d6000fd5b505050506040513d60208110156120af57600080fd5b505190506001600160a01b038116156121305760208301516040805163b99328c560e01b815260048101929092526001600160a01b0383166024830152516110049163b99328c591604480830192600092919082900301818387803b15801561211757600080fd5b505af115801561212b573d6000803e3d6000fd5b505050505b50612183565b6040805162461bcd60e51b815260206004820152601960248201527f756e7265636f676e697a65642062696e64207061636b61676500000000000000604482015290519081900360640190fd5b60408051600080825260208201909252905b50949350505050565b60006121e083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506128bd565b9392505050565b6020015190565b6000828201838110156121e0576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600080826001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561228457600080fd5b505afa158015612298573d6000803e3d6000fd5b505050506040513d60208110156122ae57600080fd5b5051604080516395d89b4160e01b815290519192506060916001600160a01b038616916395d89b41916004808301926000929190829003018186803b1580156122f657600080fd5b505afa15801561230a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561233357600080fd5b8101908080516040519392919084600160201b82111561235257600080fd5b90830190602082018581111561236757600080fd5b8251600160201b81118282018810171561238057600080fd5b82525081516020918201929091019080838360005b838110156123ad578181015183820152602001612395565b50505050905090810190601f1680156123da5780820380516001836020036101000a031916815260200191505b5060408181526370a0823160e01b82526110046004830152519495506000946001600160a01b038a1694506370a08231935060248083019350602092829003018186803b15801561242a57600080fd5b505afa15801561243e573d6000803e3d6000fd5b505050506040513d602081101561245457600080fd5b5051608087015160608801519192506000916124759163ffffffff61219e16565b9050428760c0015167ffffffffffffffff16101561249b57506001935061145a92505050565b6124a9838860200151612954565b6124bb57506002935061145a92505050565b808211156124d157506003935061145a92505050565b866060015187604001516001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561251357600080fd5b505afa158015612527573d6000803e3d6000fd5b505050506040513d602081101561253d57600080fd5b50511461255257506004935061145a92505050565b8660a0015160ff16841461256e57506005935061145a92505050565b602080880151604080516359b9278960e01b8152600481019290925251600092611004926359b927899260248083019392829003018186803b1580156125b357600080fd5b505afa1580156125c7573d6000803e3d6000fd5b505050506040513d60208110156125dd57600080fd5b50516001600160a01b031614158061267f57506000801b6110046001600160a01b031663bd46646189604001516040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561265057600080fd5b505afa158015612664573d6000803e3d6000fd5b505050506040513d602081101561267a57600080fd5b505114155b1561269257506006935061145a92505050565b5060009695505050505050565b6040805160028082526060828101909352829190816020015b60608152602001906001900390816126b857505083519091506126e09063ffffffff16612a3c565b816000815181106126ed57fe5b6020026020010181905250612708836020015160001c612a3c565b8160018151811061271557fe5b60200260200101819052506121e081612a4f565b60006121e083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612ad9565b612773613168565b600061277d613168565b6127856131bb565b61279661279186612b3e565b612b63565b90506000805b6127a583612bad565b156128b057806127ca576127c06127bb84612bce565b612c1c565b60ff1684526128a8565b80600114156127e9576127df6127bb84612bce565b60208501526128a8565b8060021415612816576128036127fe84612bce565b612cd1565b6001600160a01b031660408501526128a8565b80600314156128355761282b6127bb84612bce565b60608501526128a8565b80600414156128545761284a6127bb84612bce565b60808501526128a8565b8060051415612876576128696127bb84612bce565b60ff1660a08501526128a8565b80600614156128a35761288b6127bb84612bce565b67ffffffffffffffff1660c0850152600191506128a8565b6128b0565b60010161279c565b5091935090915050915091565b6000818484111561294c5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156129115781810151838201526020016128f9565b50505050905090810190601f16801561293e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b815160009083906008108061296a575080516003115b1561297957600091505061145a565b604080516020808252818301909252606091602082018180368337019050509050836020820152808251815181106129ad57fe5b6020910101516001600160f81b031916602d60f81b146129d25760009250505061145a565b600160005b8351811015612a32578281815181106129ec57fe5b602001015160f81c60f81b6001600160f81b031916848281518110612a0d57fe5b01602001516001600160f81b03191614612a2a5760009150612a32565b6001016129d7565b5095945050505050565b606061145a612a4a83612ceb565b612dd1565b6060815160001415612a705750604080516000815260208101909152610bb6565b606082600081518110612a7f57fe5b602002602001015190506000600190505b8351811015612ac057612ab682858381518110612aa957fe5b6020026020010151612e23565b9150600101612a90565b506121e0612ad3825160c060ff16612ea0565b82612e23565b60008183612b285760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156129115781810151838201526020016128f9565b506000838581612b3457fe5b0495945050505050565b612b466131db565b506040805180820190915281518152602082810190820152919050565b612b6b6131bb565b612b7482612f98565b612b7d57600080fd5b6000612b8c8360200151612fd2565b60208085015160408051808201909152868152920190820152915050919050565b6000612bb76131db565b505080518051602091820151919092015191011190565b612bd66131db565b612bdf82612bad565b612be857600080fd5b60208201516000612bf882613035565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590612c3157508151602110155b612c3a57600080fd5b6000612c498360200151612fd2565b90508083600001511015612ca4576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b82516020808501518301805192849003929183101561219557506020919091036101000a90049392505050565b8051600090601514612ce257600080fd5b61145a82612c1c565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416612d2f57506018612d53565b6fffffffffffffffffffffffffffffffff198416612d4f57506010612d53565b5060005b6020811015612d8957818181518110612d6857fe5b01602001516001600160f81b03191615612d8157612d89565b600101612d53565b60008160200390506060816040519080825280601f01601f191660200182016040528015612dbe576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015612e035750607f60f81b82600081518110612df157fe5b01602001516001600160f81b03191611155b15612e0f575080610bb6565b61145a612e218351608060ff16612ea0565b835b6060806040519050835180825260208201818101602087015b81831015612e54578051835260209283019201612e3c565b50855184518101855292509050808201602086015b81831015612e81578051835260209283019201612e69565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310612ef0576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b60408051600180825281830190925260609160208201818036833701905050905060378411612f4a5782840160f81b81600081518110612f2c57fe5b60200101906001600160f81b031916908160001a905350905061145a565b6060612f5585612ceb565b90508381510160370160f81b82600081518110612f6e57fe5b60200101906001600160f81b031916908160001a905350612f8f8282612e23565b95945050505050565b8051600090612fa957506000610bb6565b6020820151805160001a9060c0821015612fc857600092505050610bb6565b5060019392505050565b8051600090811a6080811015612fec576000915050610bb6565b60b8811080613007575060c08110801590613007575060f881105b15613016576001915050610bb6565b60c081101561302a5760b519019050610bb6565b60f519019050610bb6565b80516000908190811a60808110156130505760019150613161565b60b881101561306557607e1981019150613161565b60c08110156130df57600060b78203600186019550806020036101000a8651049150600181018201935050808310156130d9576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50613161565b60f88110156130f45760be1981019150613161565b600060f78203600186019550806020036101000a86510491506001810182019350508083101561315f576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c081019190915290565b604080518082019091526000808252602082015290565b60405180604001604052806131ce6131db565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe72656c6179466565206d757374206265204e202a203165313020616e642067726561746572207468616e206d696e6952656c6179466565636f6e74616374206164647265737320646f65736e277420657175616c20746f2074686520636f6e7472616374206164647265737320696e2062696e6420726571756573746f6e6c79206265703265206f776e65722063616e20617070726f766520746869732062696e642072657175657374746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374a2646970667358221220f5905eb90e4a072fe66973705300bc7792e1c43c73c571a09629b9153e6b871864736f6c63430006040033", - }, - { - ContractAddr: CrossChainContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/f4bc161dac5937b8cbd4fe3089c7514c415430f9", - Code: "608060405234801561001057600080fd5b50600436106102485760003560e01c8063863fe4ab1161013b578063c81b1662116100b8578063e3b048051161007c578063e3b048051461072c578063f7a251d71461074c578063f9a2bbc7146107c4578063fc3e5908146107cc578063fd6a6879146107d457610248565b8063c81b1662146106dd578063d31f968d146106e5578063d76a867514610714578063dc927faf1461071c578063e1c7392a1461072457610248565b8063a78abc16116100ff578063a78abc16146105d3578063ab51bb96146105db578063ac431751146105e3578063b0355f5b146103ff578063c27cdcfb146106a157610248565b8063863fe4ab146105b35780638cc8f561146104b657806396713da9146105bb5780639dc09262146105c3578063a1a11bf5146105cb57610248565b8063493279b1116101c957806370fd5bad1161018d57806370fd5bad146104b657806374f079b8146104be57806375d47a0a146104c65780637942fd05146104ce57806384013b6a146104d657610248565b8063493279b11461045f5780634bf6c8821461047e57806351e80672146104865780636e47a51a1461048e5780636e47b482146104ae57610248565b8063308325f411610210578063308325f4146102cf5780633bdc47a6146102d75780633dffc387146103ff578063422f90501461040757806343756e5c1461043b57610248565b806305e682581461024d5780630bee7a671461026b57806314b3023b1461028c57806322556cdc146102a65780632ff32aea146102ae575b600080fd5b6102556107dc565b6040805160ff9092168252519081900360200190f35b6102736107e1565b6040805163ffffffff9092168252519081900360200190f35b6102946107e6565b60408051918252519081900360200190f35b6102946107ec565b6102b66107f1565b60408051600792830b90920b8252519081900360200190f35b6102946107fa565b61038a600480360360608110156102ed57600080fd5b60ff82351691602081013591810190606081016040820135600160201b81111561031657600080fd5b82018360208201111561032857600080fd5b803590602001918460018302840111600160201b8311171561034957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610800945050505050565b6040805160208082528351818301528351919283929083019185019080838360005b838110156103c45781810151838201526020016103ac565b50505050905090810190601f1680156103f15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610255610876565b6104276004803603602081101561041d57600080fd5b503560ff1661087b565b604080519115158252519081900360200190f35b610443610890565b604080516001600160a01b039092168252519081900360200190f35b610467610896565b6040805161ffff9092168252519081900360200190f35b61025561089b565b6104436108a0565b610443600480360360208110156104a457600080fd5b503560ff166108a6565b6104436108c1565b6102556108c7565b6102946108cc565b6104436108d2565b6102556108d8565b6105b1600480360360a08110156104ec57600080fd5b810190602081018135600160201b81111561050657600080fd5b82018360208201111561051857600080fd5b803590602001918460018302840111600160201b8311171561053957600080fd5b919390929091602081019035600160201b81111561055657600080fd5b82018360208201111561056857600080fd5b803590602001918460018302840111600160201b8311171561058957600080fd5b919350915080356001600160401b03908116916020810135909116906040013560ff166108dd565b005b610294611a8d565b610255611a95565b610443611a9a565b610443611aa0565b610427611aa6565b6102736107dc565b6105b1600480360360408110156105f957600080fd5b810190602081018135600160201b81111561061357600080fd5b82018360208201111561062557600080fd5b803590602001918460018302840111600160201b8311171561064657600080fd5b919390929091602081019035600160201b81111561066357600080fd5b82018360208201111561067557600080fd5b803590602001918460018302840111600160201b8311171561069657600080fd5b509092509050611aaf565b6106c1600480360360208110156106b757600080fd5b503560ff16612051565b604080516001600160401b039092168252519081900360200190f35b61044361206c565b610427600480360360408110156106fb57600080fd5b5080356001600160a01b0316906020013560ff16612072565b61038a612092565b6104436120b1565b6105b16120b7565b6106c16004803603602081101561074257600080fd5b503560ff1661246e565b6105b16004803603606081101561076257600080fd5b60ff8235169190810190604081016020820135600160201b81111561078657600080fd5b82018360208201111561079857600080fd5b803590602001918460018302840111600160201b831117156107b957600080fd5b919350915035612489565b6104436125da565b6102556125e0565b6104436125e5565b600081565b606481565b60015481565b603281565b60045460070b81565b60025481565b60606000825160210190506060816040519080825280601f01601f191660200182016040528015610838576020820181803683370190505b506021810186905260018101879052828152905060418101600061085b866125eb565b50905061086a818388516125f5565b50909695505050505050565b600181565b60096020526000908152604090205460ff1681565b61100181565b606081565b600881565b61200081565b6005602052600090815260409020546001600160a01b031681565b61100581565b600281565b60035481565b61100881565b600b81565b60005460ff16610930576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b60408051630a83aaa960e31b815233600482015290516110069163541d5548916024808301926020929190829003018186803b15801561096f57600080fd5b505afa158015610983573d6000803e3d6000fd5b505050506040513d602081101561099957600080fd5b50516109ec576040805162461bcd60e51b815260206004820152601f60248201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604482015290519081900360640190fd5b60ff8116600090815260086020526040902054829082906001600160401b039081169083168114610a5c576040805162461bcd60e51b815260206004820152601560248201527439b2b8bab2b731b2903737ba1034b71037b93232b960591b604482015290519081900360640190fd5b60ff8216600090815260086020908152604091829020805467ffffffffffffffff1916600185016001600160401b039081169190911790915582516337d7f9c160e21b81529089166004820152915188926110039263df5fe70492602480840193829003018186803b158015610ad157600080fd5b505afa158015610ae5573d6000803e3d6000fd5b505050506040513d6020811015610afb57600080fd5b5051610b385760405162461bcd60e51b8152600401808060200182810382526023815260200180612bcc6023913960400191505060405180910390fd5b60ff851660009081526005602052604090205485906001600160a01b0316610ba7576040805162461bcd60e51b815260206004820152601860248201527f6368616e6e656c206973206e6f7420737570706f727465640000000000000000604482015290519081900360640190fd5b60608c8c8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060608b8b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805163cba510a960e01b81526001600160401b038f1660048201529051939450610cce93611003935063cba510a992506024808301926020929190829003018186803b158015610c7757600080fd5b505afa158015610c8b573d6000803e3d6000fd5b505050506040513d6020811015610ca157600080fd5b505160408051808201909152600381526269626360e81b6020820152610cc78c8c612636565b858561267d565b610d16576040805162461bcd60e51b815260206004820152601460248201527334b73b30b634b21036b2b935b63290383937b7b360611b604482015290519081900360640190fd5b60408051631bb5062960e31b81526001600160401b038c16600482015290516000916110039163dda8314891602480820192602092909190829003018186803b158015610d6257600080fd5b505afa158015610d76573d6000803e3d6000fd5b505050506040513d6020811015610d8c57600080fd5b5051905088600080806060610da08861277a565b935093509350935083610e61578460ff168f6001600160401b03167ff7b2e42d694eb1100184aae86d4245d9e46966100b1dc7e723275b98326854ac8a6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610e1a578181015183820152602001610e02565b50505050905090810190601f168015610e475780820380516001836020036101000a031916815260200191505b509250505060405180910390a35050505050505050611a7f565b8460ff168f6001600160401b03167f36afdaf439a8f43fe72135135d804ae620b37a474f0943b5b85f6788312cad4085604051808260ff1660ff16815260200191505060405180910390a360ff83166113ea5760ff85166000818152600560209081526040808320548151631182b87560e01b815260048101958652602481019283528651604482015286516001600160a01b03909216958695631182b875958d958a9593949093606490910192918601918190849084905b83811015610f32578181015183820152602001610f1a565b50505050905090810190601f168015610f5f5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b158015610f7f57600080fd5b505af192505050801561106357506040513d6000823e601f3d908101601f191682016040526020811015610fb257600080fd5b8101908080516040519392919084600160201b821115610fd157600080fd5b908301906020820185811115610fe657600080fd5b8251600160201b811182820188101715610fff57600080fd5b82525081516020918201929091019080838360005b8381101561102c578181015183820152602001611014565b50505050905090810190601f1680156110595780820380516001836020036101000a031916815260200191505b5060405250505060015b611375576040516000815260443d101561107f5750600061111a565b60046000803e60005160e01c6308c379a081146110a057600091505061111a565b60043d036004833e81513d60248201116001600160401b03821117156110cb5760009250505061111a565b80830180516001600160401b038111156110ec57600094505050505061111a565b8060208301013d860181111561110a5760009550505050505061111a565b601f01601f191660405250925050505b806111255750611237565b60ff871660009081526007602052604081205461115c916001600160401b039091169089906111579060029088610800565b61282a565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf948794849390840192918601918190849084905b838110156111f75781810151838201526020016111df565b50505050905090810190601f1680156112245780820380516001836020036101000a031916815260200191505b509250505060405180910390a250611370565b3d808015611261576040519150601f19603f3d011682016040523d82523d6000602084013e611266565b606091505b5060ff8716600090815260076020526040812054611299916001600160401b039091169089906111579060029088610800565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351948794849390840192918601918190849084905b8381101561133457818101518382015260200161131c565b50505050905090810190601f1680156113615780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b6113e4565b8051156113e25760ff87166000908152600760205260408120546113ae916001600160401b039091169089906111579060019086610800565b60ff8716600090815260076020526040902080546001600160401b038082166001011667ffffffffffffffff199091161790555b505b506119b8565b60ff83166001141561168e5760ff8516600081815260056020908152604080832054815163831d65d160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563831d65d1958d958a9593949093606490910192918601918190849084905b8381101561147457818101518382015260200161145c565b50505050905090810190601f1680156114a15780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b1580156114c157600080fd5b505af19250505080156114d2575060015b6113e4576040516000815260443d10156114ee57506000611589565b60046000803e60005160e01c6308c379a0811461150f576000915050611589565b60043d036004833e81513d60248201116001600160401b038211171561153a57600092505050611589565b80830180516001600160401b0381111561155b576000945050505050611589565b8060208301013d860181111561157957600095505050505050611589565b601f01601f191660405250925050505b8061159457506115f9565b60408051602080825283518183015283516001600160a01b038616937ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf93869390928392830191850190808383600083156111f75781810151838201526020016111df565b3d808015611623576040519150601f19603f3d011682016040523d82523d6000602084013e611628565b606091505b5060408051602080825283518183015283516001600160a01b038616937f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351938693909283928301918501908083836000831561133457818101518382015260200161131c565b60ff8316600214156119b85760ff8516600081815260056020908152604080832054815163c8509d8160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563c8509d81958d958a9593949093606490910192918601918190849084905b83811015611718578181015183820152602001611700565b50505050905090810190601f1680156117455780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561176557600080fd5b505af1925050508015611776575060015b6119b6576040516000815260443d10156117925750600061182d565b60046000803e60005160e01c6308c379a081146117b357600091505061182d565b60043d036004833e81513d60248201116001600160401b03821117156117de5760009250505061182d565b80830180516001600160401b038111156117ff57600094505050505061182d565b8060208301013d860181111561181d5760009550505050505061182d565b601f01601f191660405250925050505b8061183857506118e1565b816001600160a01b03167ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf826040518080602001828103825283818151815260200191508051906020019080838360005b838110156118a1578181015183820152602001611889565b50505050905090810190601f1680156118ce5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2506119b6565b3d80801561190b576040519150601f19603f3d011682016040523d82523d6000602084013e611910565b606091505b50816001600160a01b03167f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351826040518080602001828103825283818151815260200191508051906020019080838360005b8381101561197a578181015183820152602001611962565b50505050905090810190601f1680156119a75780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b505b60ff80861660009081526009602052604090205461100591636f93d2e69189913391879116806119ea575060ff881615155b604080516001600160e01b031960e088901b1681526001600160a01b039586166004820152939094166024840152604483019190915215156064820152905160848083019260209291908290030181600087803b158015611a4a57600080fd5b505af1158015611a5e573d6000803e3d6000fd5b505050506040513d6020811015611a7457600080fd5b505050505050505050505b505050505050505050505050565b630100600081565b600981565b61100781565b61100681565b60005460ff1681565b3361100714611aef5760405162461bcd60e51b815260040180806020018281038252602e815260200180612b22602e913960400191505060405180910390fd5b611b5884848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526012815271626174636853697a65466f724f7261636c6560701b602082015291506129809050565b15611bf357604080516020601f8401819004810282018101909252828152600091611b9b91858580838501838280828437600092019190915250612a6792505050565b90506127108111158015611bb05750600a8110155b611beb5760405162461bcd60e51b8152600401808060200182810382526032815260200180612b9a6032913960400191505060405180910390fd5b600155611fbf565b611c5c84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601281527118591913dc955c19185d1950da185b9b995b60721b602082015291506129809050565b15611de457606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060169091149050611cdf5760405162461bcd60e51b815260040180806020018281038252605a815260200180612ac8605a913960600191505060405180910390fd5b60018101516002820151601683015160ff82161590611cfd81612a6c565b611d4e576040805162461bcd60e51b815260206004820152601960248201527f61646472657373206973206e6f74206120636f6e747261637400000000000000604482015290519081900360640190fd5b60ff8416600081815260056020908152604080832080546001600160a01b0319166001600160a01b038716908117909155808452600683528184208585528352818420805460ff199081166001179091556009909352818420805490931687151517909255519092917f7e3b6af43092577ee20e60eaa1d9b114a7031305c895ee7dd3ffe17196d2e1e091a35050505050611fbf565b611e5184848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526016815275195b98589b1953dc911a5cd8589b1950da185b9b995b60521b602082015291506129809050565b15611f8257606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060029091149050611ed45760405162461bcd60e51b815260040180806020018281038252604a815260200180612b50604a913960600191505060405180910390fd5b600181810151600283015160ff80831660009081526005602052604090205492939192908316909114906001600160a01b03168015611f78576001600160a01b038116600090815260066020908152604080832060ff881680855290835292819020805460ff1916861515908117909155815190815290517fa3132e3f9819fbddc7f0ed6d38d7feef59aa95112090b7c592f5cb5bc4aa4adc929181900390910190a25b5050505050611fbf565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b6008602052600090815260409020546001600160401b031681565b61100281565b600660209081526000928352604080842090915290825290205460ff1681565b6040518060400160405280600381526020016269626360e81b81525081565b61100381565b60005460ff161561210f576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b7f1471eb6eb2c5e789fc3de43f8ce62938c7d1836ec861730447e2ada8fd81017b80546001600160a01b0319908116611008179091557f92e85d02570a8092d09a6e3a57665bc3815a2699a4074001bf1ccabf660f5a36805460ff199081169091557fd8af288fc1c8680b4f4706064cf021e264efb6828fcaf7eb5ca36818eb365bcc8054821660019081179091557f89832631fb3c3307a103ba2c84ab569c64d6182a18893dcd163f0f1c2090733a805484166110049081179091557f6cde3cea4b3a3fb2488b2808bae7556f4a405e50f65e1794383bc026131b13c38054841690557f72e4efa1513b071517c6c74dba31b5934a81aa83cddd400e7081df5529c9943680548416831790557fa9bc9a3a348c357ba16b37005d7e6b3236198c0e939f4af8c5f19b8deeb8ebc08054851690911790557fc575c31fea594a6eb97c8e9d3f9caee4c16218c6ef37e923234c0fe9014a61e78054831690557f4e523af77f034e9810f1c94057f5e931fb3d16a51511a4c3add793617d18610580548316821790557ffb33122aa9f93cc639ebe80a7bc4784c11e6053dde89c6f4f7e268c6a623da1e805484166110001790557fc7694af312c4f286114180fd0ba6a52461fcee8a381636770b19a343af92538a80548316821790557f01112dd68e482ba8d68a7e828cff8b3abcea08eab88941953c180a7e650e9cd480548316821790557fc0a4a8be475dfebc377ebef2d7c4ff47656f572a08dd92b81017efcdba0febe1805484166110071790557f87e8a52529e8ece4ef759037313542a6429ff494a9fab9027fb79db90124eba680548316821790557f4c7666bbcb22d46469f7cc282f70764a7012dca2cce630ff8d83db9a9cdd48f080548316821790557f40f28f99a40bc9f6beea1013afdbc3cdcc689eb76b82c4de06c0acf1e1932ed58054909316611001179092557f0d9cf2cd531699eed8dd34e40ff2884a14a698c4898184fba85194e6f6772d248054821683179055600b60009081527f23f68c9bd22b8a93d06adabe17481c87c016bcbd20adc8bfd707a4d813a572176020527fdf0d5d05428057f5455c2dc8e810dd86d1e9350faa72f16bda8a45443c5b39328054831684179055603283556004805467ffffffffffffffff19166001600160401b031790556002819055600381905580549091169091179055565b6007602052600090815260409020546001600160401b031681565b60005460ff166124dc576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b33600090815260066020908152604080832060ff80891685529252909120548591166125395760405162461bcd60e51b8152600401808060200182810382526031815260200180612a976031913960400191505060405180910390fd5b60ff85166000908152600760209081526040808320548151601f88018490048402810184019092528682526001600160401b03169261259e9284928a9261115792909189918c908c908190840183828082843760009201919091525061080092505050565b60ff959095166000908152600760205260409020805467ffffffffffffffff191660019096016001600160401b03169590951790945550505050565b61100081565b600381565b61100481565b8051602090910191565b5b60208110612615578251825260209283019290910190601f19016125f6565b915181516020939093036101000a6000190180199091169216919091179052565b60408051600e808252818301909252606091630100600060ff851617918391602082018180368337505050600e818101969096526006810192909252509283525090919050565b60008561268c57506000612771565b606082518451865160800101016040519080825280601f01601f1916602001820160405280156126c3576020820181803683370190505b50905060006126d182612a72565b6020808901518252019050866000806126e9896125eb565b80865260209095019490925090506127028285836125f5565b9283019261270f886125eb565b80865260209095019490925090506127288285836125f5565b9283018a81526020019261273b876125eb565b909250905061274b8285836125f5565b508351602001612759612a78565b60208183886065600019fa5051600114955050505050505b95945050505050565b600080600060606021855110156127aa575050604080516000808252602082019092529092508291508190612823565b600185015160218601518651604080516020198301808252601f19600119909401939093168101602001909152604189019392916060919080156127f5576020820181803683370190505b5090506000612803826125eb565b509050612815858260218d51036125f5565b506001975091955093509150505b9193509193565b600254431115612869576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b1617909155600355436002556128aa565b600380546001908101918290555410156128aa576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b16179091556003555b8160ff16836001600160401b0316600460009054906101000a900460070b6001600160401b03167f3a6e0fc61675aa2a100bcba0568368bb92bcec91c97673391074f11138f0cffe606085604051808361ffff1661ffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015612940578181015183820152602001612928565b50505050905090810190601f16801561296d5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a4505050565b6000816040516020018082805190602001908083835b602083106129b55780518252601f199092019160209182019101612996565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310612a235780518252601f199092019160209182019101612a04565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b3b151590565b60200190565b6040518060200160405280600190602082028036833750919291505056fe74686520636f6e747261637420616e64206368616e6e656c2068617665206e6f74206265656e20726567697374657265646c656e677468206f662076616c756520666f72206164644f725570646174654368616e6e656c2073686f756c642062652032322c206368616e6e656c49643a697346726f6d53797374656d3a68616e646c657241646472657373746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662076616c756520666f7220656e61626c654f7244697361626c654368616e6e656c2073686f756c6420626520322c206368616e6e656c49643a6973456e61626c65746865206e6577426174636853697a65466f724f7261636c652073686f756c6420626520696e205b31302c2031303030305d6c6967687420636c69656e74206e6f742073796e632074686520626c6f636b20796574a264697066735822122033c2492ac02e70488d9ed3adb95888d7f5998dff786cf03d72be0cde759a14d064736f6c63430006040033", - }, - }, - } - - RamanujanUpgrade[networkname.ChapelChainName] = &Upgrade{ - UpgradeName: "ramanujan", - Configs: []*UpgradeConfig{ - { - ContractAddr: ValidatorContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/823b953232a344ba3c32d6690e70a245477e5760", - Code: "60806040526004361061027d5760003560e01c80639dc092621161014f578063c8509d81116100c1578063eb57e2021161007a578063eb57e20214610940578063eda5868c14610973578063f340fa0114610988578063f9a2bbc7146109ae578063fc3e5908146109c3578063fd6a6879146109d85761027d565b8063c8509d8114610609578063d86222d5146108d7578063daacdb66146108ec578063dc927faf14610901578063e086c7b114610916578063e1c7392a1461092b5761027d565b8063ab51bb9611610113578063ab51bb961461074a578063ac4317511461075f578063ad3c9da61461082a578063b7ab4db51461085d578063bf9f49951461041b578063c81b1662146108c25761027d565b80639dc09262146106cd578063a1a11bf5146106e2578063a5422d5c146106f7578063a78abc161461070c578063aaf5eb68146107355761027d565b80635667515a116101f35780637942fd05116101ac5780637942fd05146105df57806381650b62146105f4578063831d65d114610609578063853230aa1461068e57806386249882146106a357806396713da9146106b85761027d565b80635667515a146105005780635d77156c146105155780636969a25c1461052a5780636e47b482146105a057806370fd5bad146105b557806375d47a0a146105ca5761027d565b80633dffc387116102455780633dffc3871461041b57806343756e5c14610446578063493279b1146104775780634bf6c882146104a357806351e80672146104b8578063565c56b3146104cd5761027d565b80630bee7a67146102825780631182b875146102b05780631ff18069146103aa578063219f22d5146103d157806335409f7f146103e6575b600080fd5b34801561028e57600080fd5b506102976109ed565b6040805163ffffffff9092168252519081900360200190f35b3480156102bc57600080fd5b50610335600480360360408110156102d357600080fd5b60ff8235169190810190604081016020820135600160201b8111156102f757600080fd5b82018360208201111561030957600080fd5b803590602001918460018302840111600160201b8311171561032a57600080fd5b5090925090506109f2565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561036f578181015183820152602001610357565b50505050905090810190601f16801561039c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103b657600080fd5b506103bf610bdf565b60408051918252519081900360200190f35b3480156103dd57600080fd5b50610297610be5565b3480156103f257600080fd5b506104196004803603602081101561040957600080fd5b50356001600160a01b0316610bea565b005b34801561042757600080fd5b50610430610efe565b6040805160ff9092168252519081900360200190f35b34801561045257600080fd5b5061045b610f03565b604080516001600160a01b039092168252519081900360200190f35b34801561048357600080fd5b5061048c610f09565b6040805161ffff9092168252519081900360200190f35b3480156104af57600080fd5b50610430610f0e565b3480156104c457600080fd5b5061045b610f13565b3480156104d957600080fd5b506103bf600480360360208110156104f057600080fd5b50356001600160a01b0316610f19565b34801561050c57600080fd5b50610430610f6b565b34801561052157600080fd5b50610297610f70565b34801561053657600080fd5b506105546004803603602081101561054d57600080fd5b5035610f75565b604080516001600160a01b039788168152958716602087015293909516848401526001600160401b0390911660608401521515608083015260a082019290925290519081900360c00190f35b3480156105ac57600080fd5b5061045b610fd9565b3480156105c157600080fd5b50610430610fdf565b3480156105d657600080fd5b5061045b610fe4565b3480156105eb57600080fd5b50610430610fea565b34801561060057600080fd5b50610297610fef565b34801561061557600080fd5b506104196004803603604081101561062c57600080fd5b60ff8235169190810190604081016020820135600160201b81111561065057600080fd5b82018360208201111561066257600080fd5b803590602001918460018302840111600160201b8311171561068357600080fd5b509092509050610ff4565b34801561069a57600080fd5b506103bf6110a7565b3480156106af57600080fd5b506103bf6110ad565b3480156106c457600080fd5b506104306110b3565b3480156106d957600080fd5b5061045b6110b8565b3480156106ee57600080fd5b5061045b6110be565b34801561070357600080fd5b506103356110c4565b34801561071857600080fd5b506107216110e3565b604080519115158252519081900360200190f35b34801561074157600080fd5b506103bf6110ec565b34801561075657600080fd5b50610297610f6b565b34801561076b57600080fd5b506104196004803603604081101561078257600080fd5b810190602081018135600160201b81111561079c57600080fd5b8201836020820111156107ae57600080fd5b803590602001918460018302840111600160201b831117156107cf57600080fd5b919390929091602081019035600160201b8111156107ec57600080fd5b8201836020820111156107fe57600080fd5b803590602001918460018302840111600160201b8311171561081f57600080fd5b5090925090506110f5565b34801561083657600080fd5b506103bf6004803603602081101561084d57600080fd5b50356001600160a01b031661139c565b34801561086957600080fd5b506108726113ae565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156108ae578181015183820152602001610896565b505050509050019250505060405180910390f35b3480156108ce57600080fd5b5061045b6114d4565b3480156108e357600080fd5b506103bf6114da565b3480156108f857600080fd5b506103bf6114e6565b34801561090d57600080fd5b5061045b6114ec565b34801561092257600080fd5b506103bf6114f2565b34801561093757600080fd5b506104196114f7565b34801561094c57600080fd5b506104196004803603602081101561096357600080fd5b50356001600160a01b03166116fa565b34801561097f57600080fd5b506102976118c9565b6104196004803603602081101561099e57600080fd5b50356001600160a01b03166118ce565b3480156109ba57600080fd5b5061045b611b04565b3480156109cf57600080fd5b50610430611b0a565b3480156109e457600080fd5b5061045b611b0f565b606481565b60005460609060ff16610a48576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b3361200014610a885760405162461bcd60e51b815260040180806020018281038252602f8152602001806140de602f913960400191505060405180910390fd5b610a90613d69565b6000610ad185858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611b1592505050565b9150915080610aed57610ae46064611c6e565b92505050610bd8565b815160009060ff16610b0d57610b068360200151611ccf565b9050610ba4565b825160ff1660011415610ba057826020015151600114610b7a577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2604051808060200182810382526025815260200180613e6c6025913960400191505060405180910390a1506067610b9b565b610b068360200151600081518110610b8e57fe5b6020026020010151612ad5565b610ba4565b5060655b63ffffffff8116610bc95750506040805160008152602081019091529150610bd89050565b610bd281611c6e565b93505050505b9392505050565b60035481565b606881565b3361100114610c2a5760405162461bcd60e51b815260040180806020018281038252602981526020018061413a6029913960400191505060405180910390fd5b6001600160a01b03811660009081526004602052604090205480610c4e5750610efb565b600181039050600060018281548110610c6357fe5b60009182526020909120600360049092020101546001549091506000190180610cb257600060018481548110610c9557fe5b906000526020600020906004020160030181905550505050610efb565b6040805183815290516001600160a01b038616917f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a70919081900360200190a26001600160a01b038416600090815260046020526040812055600154600019018314610e3457600180546000198101908110610d2957fe5b906000526020600020906004020160018481548110610d4457fe5b6000918252602082208354600492830290910180546001600160a01b03199081166001600160a01b0393841617825560018087015481840180548416918616919091179055600280880180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b199094169390931790556003948501549401939093558254868401939192919087908110610e0957fe5b600091825260208083206004909202909101546001600160a01b031683528201929092526040019020555b6001805480610e3f57fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b03191690556003018190559155818381610e9257fe5b0490508015610ef65760015460005b81811015610ef3578260018281548110610eb757fe5b9060005260206000209060040201600301540160018281548110610ed757fe5b6000918252602090912060036004909202010155600101610ea1565b50505b505050505b50565b600181565b61100181565b606081565b600881565b61200081565b6001600160a01b03811660009081526004602052604081205480610f41576000915050610f66565b600180820381548110610f5057fe5b9060005260206000209060040201600301549150505b919050565b600081565b606781565b60018181548110610f8257fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b61100881565b600b81565b606681565b33612000146110345760405162461bcd60e51b815260040180806020018281038252602f8152602001806140de602f913960400191505060405180910390fd5b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a1505050565b6103e881565b60025481565b600981565b61100781565b61100681565b604051806101e001604052806101b78152602001613f066101b7913981565b60005460ff1681565b6402540be40081565b60005460ff16611148576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b33611007146111885760405162461bcd60e51b815260040180806020018281038252602e815260200180613e91602e913960400191505060405180910390fd5b6111f284848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b60208201529150612c4c9050565b156112cd57602081146112365760405162461bcd60e51b8152600401808060200182810382526026815260200180613ee06026913960400191505060405180910390fd5b604080516020601f840181900481028201810190925282815260009161127491858580838501838280828437600092019190915250612d3492505050565b90506064811015801561128a5750620186a08111155b6112c55760405162461bcd60e51b8152600401808060200182810382526027815260200180613e456027913960400191505060405180910390fd5b60025561130a565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b60046020526000908152604090205481565b6001546060906000805b828110156113ff57600181815481106113cd57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166113f7576001909101905b6001016113b8565b5060608160405190808252806020026020018201604052801561142c578160200160208202803683370190505b50600092509050815b838110156114cc576001818154811061144a57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166114c4576001818154811061147a57fe5b600091825260209091206004909102015482516001600160a01b03909116908390859081106114a557fe5b6001600160a01b03909216602092830291909101909101526001909201915b600101611435565b509250505090565b61100281565b67016345785d8a000081565b60055481565b61100381565b602981565b60005460ff161561154f576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b611557613d69565b600061157d604051806101e001604052806101b78152602001613f066101b79139611b15565b91509150806115bd5760405162461bcd60e51b81526004018080602001828103825260218152602001806140bd6021913960400191505060405180910390fd5b60005b8260200151518110156116e2576001836020015182815181106115df57fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a0909301516003909301929092559186015180519185019391859081106116b557fe5b602090810291909101810151516001600160a01b03168252810191909152604001600020556001016115c0565b50506103e8600255506000805460ff19166001179055565b336110011461173a5760405162461bcd60e51b815260040180806020018281038252602981526020018061413a6029913960400191505060405180910390fd5b6001600160a01b0381166000908152600460205260409020548061175e5750610efb565b60018103905060006001828154811061177357fe5b906000526020600020906004020160030154905060006001838154811061179657fe5b906000526020600020906004020160030181905550600060018080549050039050836001600160a01b03167f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d836040518082815260200191505060405180910390a28061180557505050610efb565b600081838161181057fe5b0490508015610ef65760005b8481101561186e57816001828154811061183257fe5b906000526020600020906004020160030154016001828154811061185257fe5b600091825260209091206003600490920201015560010161181c565b50600180549085015b81811015610ef357826001828154811061188d57fe5b90600052602060002090600402016003015401600182815481106118ad57fe5b6000918252602090912060036004909202010155600101611877565b606581565b33411461190c5760405162461bcd60e51b815260040180806020018281038252602d81526020018061410d602d913960400191505060405180910390fd5b60005460ff1661195f576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b600034116119ac576040805162461bcd60e51b81526020600482015260156024820152746465706f7369742076616c7565206973207a65726f60581b604482015290519081900360640190fd5b6001600160a01b03811660009081526004602052604090205434908015611abf5760006001808303815481106119de57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff1615611a49576040805184815290516001600160a01b038616917ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4919081900360200190a2611ab9565b600354611a5c908463ffffffff612d3916565b6003908155810154611a74908463ffffffff612d3916565b60038201556040805184815290516001600160a01b038616917f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc055919081900360200190a25b50611aff565b6040805183815290516001600160a01b038516917ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4919081900360200190a25b505050565b61100081565b600381565b61100481565b611b1d613d69565b6000611b27613d69565b611b2f613d81565b611b40611b3b86612d93565b612db8565b90506000805b611b4f83612e02565b15611c605780611b7457611b6a611b6584612e23565b612e71565b60ff168452611c58565b8060011415611c53576060611b90611b8b85612e23565b612f28565b90508051604051908082528060200260200182016040528015611bcd57816020015b611bba613da1565b815260200190600190039081611bb25790505b50602086015260005b8151811015611c4857611be7613da1565b6000611c05848481518110611bf857fe5b6020026020010151612ff9565b9150915080611c2257876000995099505050505050505050611c69565b8188602001518481518110611c3357fe5b60209081029190910101525050600101611bd6565b506001925050611c58565b611c60565b600101611b46565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b6060815260200190600190039081611c88579050509050611cae8363ffffffff166130d6565b81600081518110611cbb57fe5b6020026020010181905250610bd8816130e9565b6000806060611cdd84613173565b9150915081611d8a577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2816040518080602001828103825283818151815260200191508051906020019080838360005b83811015611d45578181015183820152602001611d2d565b50505050905090810190601f168015611d725780820380516001836020036101000a031916815260200191505b509250505060405180910390a1606692505050610f66565b600080805b600154811015611e075767016345785d8a000060018281548110611daf57fe5b90600052602060002090600402016003015410611dd157600190920191611dff565b600060018281548110611de057fe5b9060005260206000209060040201600301541115611dff576001909101905b600101611d8f565b50606082604051908082528060200260200182016040528015611e34578160200160208202803683370190505b509050606083604051908082528060200260200182016040528015611e63578160200160208202803683370190505b509050606084604051908082528060200260200182016040528015611e92578160200160208202803683370190505b509050606085604051908082528060200260200182016040528015611ec1578160200160208202803683370190505b5090506000606086604051908082528060200260200182016040528015611ef2578160200160208202803683370190505b509050606087604051908082528060200260200182016040528015611f21578160200160208202803683370190505b509050600098506000975060608d905060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b158015611f6e57600080fd5b505afa158015611f82573d6000803e3d6000fd5b505050506040513d6020811015611f9857600080fd5b5051905067016345785d8a000081111561200d577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2604051808060200182810382526021815260200180613ebf6021913960400191505060405180910390a160689d5050505050505050505050505050610f66565b60005b6001548110156122805767016345785d8a00006001828154811061203057fe5b906000526020600020906004020160030154106121b6576001818154811061205457fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b03168a8d8151811061208557fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be400600183815481106120ba57fe5b906000526020600020906004020160030154816120d357fe5b06600183815481106120e157fe5b906000526020600020906004020160030154039050612109838261325590919063ffffffff16565b8a8e8151811061211557fe5b6020026020010181815250506001828154811061212e57fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316888e8151811061215f57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081898e8151811061218c57fe5b60209081029190910101526121a7878263ffffffff612d3916565b6001909d019c96506122789050565b6000600182815481106121c557fe5b906000526020600020906004020160030154111561227857600181815481106121ea57fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316858c8151811061221b57fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506001818154811061224857fe5b906000526020600020906004020160030154848c8151811061226657fe5b60209081029190910101526001909a01995b600101612010565b50600085156126be576110046001600160a01b0316636e056520878c8c8b60025442016040518663ffffffff1660e01b815260040180806020018060200180602001856001600160401b03166001600160401b03168152602001848103845288818151815260200191508051906020019060200280838360005b838110156123125781810151838201526020016122fa565b50505050905001848103835287818151815260200191508051906020019060200280838360005b83811015612351578181015183820152602001612339565b50505050905001848103825286818151815260200191508051906020019060200280838360005b83811015612390578181015183820152602001612378565b505050509050019750505050505050506020604051808303818588803b1580156123b957600080fd5b505af1935050505080156123df57506040513d60208110156123da57600080fd5b505160015b61261a576040516000815260443d10156123fb57506000612496565b60046000803e60005160e01c6308c379a0811461241c576000915050612496565b60043d036004833e81513d60248201116001600160401b038211171561244757600092505050612496565b80830180516001600160401b03811115612468576000945050505050612496565b8060208301013d860181111561248657600095505050505050612496565b601f01601f191660405250925050505b806124a15750612545565b60019150867fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280826040518080602001828103825283818151815260200191508051906020019080838360005b838110156125055781810151838201526020016124ed565b50505050905090810190601f1680156125325780820380516001836020036101000a031916815260200191505b509250505060405180910390a250612615565b3d80801561256f576040519150601f19603f3d011682016040523d82523d6000602084013e612574565b606091505b5060019150867fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a45826040518080602001828103825283818151815260200191508051906020019080838360005b838110156125d95781810151838201526020016125c1565b50505050905090810190601f1680156126065780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b6126be565b8015612658576040805188815290517fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b709181900360200190a16126bc565b604080516020808252601b908201527f6261746368207472616e736665722072657475726e2066616c7365000000000081830152905188917fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280919081900360600190a25b505b80156128745760005b88518110156128725760008982815181106126de57fe5b602002602001015190506000600182815481106126f757fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc918590811061272857fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f19350505050905080156127e4576001828154811061276957fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d91859081106127b857fe5b9060005260206000209060040201600301546040518082815260200191505060405180910390a2612868565b600182815481106127f157fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d918590811061284057fe5b9060005260206000209060040201600301546040518082815260200191505060405180910390a25b50506001016126c7565b505b8451156129be5760005b85518110156129bc57600086828151811061289557fe5b60200260200101516001600160a01b03166108fc8784815181106128b557fe5b60200260200101519081150290604051600060405180830381858888f193505050509050801561294b578682815181106128eb57fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d87848151811061292957fe5b60200260200101516040518082815260200191505060405180910390a26129b3565b86828151811061295757fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d87848151811061299557fe5b60200260200101516040518082815260200191505060405180910390a25b5060010161287e565b505b4715612a27576040805147815290517f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d9181900360200190a1604051611002904780156108fc02916000818181858888f19350505050158015612a25573d6000803e3d6000fd5b505b60006003819055600555825115612a4157612a4183613297565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015612a7e57600080fd5b505af1158015612a92573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a15060009f9e505050505050505050505050505050565b80516001600160a01b0316600090815260046020526040812054801580612b265750600180820381548110612b0657fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b15612b6c5782516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a26000915050610f66565b600154600554600019820111801590612bc25784516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a260009350505050610f66565b600580546001908101909155805481906000198601908110612be057fe5b6000918252602082206002600490920201018054921515600160e01b0260ff60e01b199093169290921790915585516040516001600160a01b03909116917ff226e7d8f547ff903d9d419cf5f54e0d7d07efa9584135a53a057c5f1f27f49a91a2506000949350505050565b6000816040516020018082805190602001908083835b60208310612c815780518252601f199092019160209182019101612c62565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310612cef5780518252601f199092019160209182019101612cd0565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052805190602001201490505b92915050565b015190565b600082820183811015610bd8576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b612d9b613dd6565b506040805180820190915281518152602082810190820152919050565b612dc0613d81565b612dc98261375e565b612dd257600080fd5b6000612de18360200151613798565b60208085015160408051808201909152868152920190820152915050919050565b6000612e0c613dd6565b505080518051602091820151919092015191011190565b612e2b613dd6565b612e3482612e02565b612e3d57600080fd5b60208201516000612e4d826137fb565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590612e8657508151602110155b612e8f57600080fd5b6000612e9e8360200151613798565b90508083600001511015612ef9576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015612f1f57826020036101000a820491505b50949350505050565b6060612f338261375e565b612f3c57600080fd5b6000612f478361392e565b9050606081604051908082528060200260200182016040528015612f8557816020015b612f72613dd6565b815260200190600190039081612f6a5790505b5090506000612f978560200151613798565b60208601510190506000805b84811015612fee57612fb4836137fb565b9150604051806040016040528083815260200184815250848281518110612fd757fe5b602090810291909101015291810191600101612fa3565b509195945050505050565b613001613da1565b600061300b613da1565b613013613d81565b61301c85612db8565b90506000805b61302b83612e02565b15611c6057806130565761304661304184612e23565b61398a565b6001600160a01b031684526130ce565b806001141561307e5761306b61304184612e23565b6001600160a01b031660208501526130ce565b80600214156130a65761309361304184612e23565b6001600160a01b031660408501526130ce565b8060031415611c53576130bb611b6584612e23565b6001600160401b03166060850152600191505b600101613022565b6060612d2e6130e4836139a4565b613a8a565b606081516000141561310a5750604080516000815260208101909152610f66565b60608260008151811061311957fe5b602002602001015190506000600190505b835181101561315a576131508285838151811061314357fe5b6020026020010151613adc565b915060010161312a565b50610bd861316d825160c060ff16613b59565b82613adc565b600060606029835111156131a5576000604051806060016040528060298152602001613df16029913991509150611c69565b60005b835181101561323b5760005b81811015613232578481815181106131c857fe5b6020026020010151600001516001600160a01b03168583815181106131e957fe5b6020026020010151600001516001600160a01b0316141561322a5760006040518060600160405280602b8152602001613e1a602b9139935093505050611c69565b6001016131b4565b506001016131a8565b505060408051602081019091526000815260019150915091565b6000610bd883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613c51565b600154815160005b828110156133b45760016132b1613da1565b600183815481106132be57fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b848110156133885786818151811061334e57fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b031614156133805760009250613388565b60010161333a565b5081156133aa5780516001600160a01b03166000908152600460205260408120555b505060010161329f565b508082111561342957805b828110156134275760018054806133d257fe5b60008281526020812060046000199093019283020180546001600160a01b03199081168255600182810180549092169091556002820180546001600160e81b03191690556003909101919091559155016133bf565b505b6000818310613438578161343a565b825b905060005b81811015613634576134ec85828151811061345657fe5b60200260200101516001838154811061346b57fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a0820152613ce8565b61360757806001016004600087848151811061350457fe5b6020026020010151600001516001600160a01b03166001600160a01b031681526020019081526020016000208190555084818151811061354057fe5b60200260200101516001828154811061355557fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a09091015160039091015561362c565b60006001828154811061361657fe5b9060005260206000209060040201600301819055505b60010161343f565b508282111561375857825b82811015610ef657600185828151811061365557fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782559585015181840180549184169188169190911790556040850151600282018054606088015160808901511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590971692909a169190911792909216939093171695909517905560a0909201516003909301929092558751908401929088908590811061372b57fe5b602090810291909101810151516001600160a01b031682528101919091526040016000205560010161363f565b50505050565b805160009061376f57506000610f66565b6020820151805160001a9060c082101561378e57600092505050610f66565b5060019392505050565b8051600090811a60808110156137b2576000915050610f66565b60b88110806137cd575060c081108015906137cd575060f881105b156137dc576001915050610f66565b60c08110156137f05760b519019050610f66565b60f519019050610f66565b80516000908190811a60808110156138165760019150613927565b60b881101561382b57607e1981019150613927565b60c08110156138a557600060b78203600186019550806020036101000a86510491506001810182019350508083101561389f576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50613927565b60f88110156138ba5760be1981019150613927565b600060f78203600186019550806020036101000a865104915060018101820193505080831015613925576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b805160009061393f57506000610f66565b600080905060006139538460200151613798565b602085015185519181019250015b8082101561398157613972826137fb565b60019093019290910190613961565b50909392505050565b805160009060151461399b57600080fd5b612d2e82612e71565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166139e857506018613a0c565b6fffffffffffffffffffffffffffffffff198416613a0857506010613a0c565b5060005b6020811015613a4257818181518110613a2157fe5b01602001516001600160f81b03191615613a3a57613a42565b600101613a0c565b60008160200390506060816040519080825280601f01601f191660200182016040528015613a77576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015613abc5750607f60f81b82600081518110613aaa57fe5b01602001516001600160f81b03191611155b15613ac8575080610f66565b612d2e613ada8351608060ff16613b59565b835b6060806040519050835180825260208201818101602087015b81831015613b0d578051835260209283019201613af5565b50855184518101855292509050808201602086015b81831015613b3a578051835260209283019201613b22565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310613ba9576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b60408051600180825281830190925260609160208201818036833701905050905060378411613c035782840160f81b81600081518110613be557fe5b60200101906001600160f81b031916908160001a9053509050612d2e565b6060613c0e856139a4565b90508381510160370160f81b82600081518110613c2757fe5b60200101906001600160f81b031916908160001a905350613c488282613adc565b95945050505050565b60008184841115613ce05760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613ca5578181015183820152602001613c8d565b50505050905090810190601f168015613cd25780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b805182516000916001600160a01b039182169116148015613d22575081602001516001600160a01b031683602001516001600160a01b0316145b8015613d47575081604001516001600160a01b031683604001516001600160a01b0316145b8015610bd85750506060908101519101516001600160401b0390811691161490565b60408051808201909152600081526060602082015290565b6040518060400160405280613d94613dd6565b8152602001600081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b60405180604001604052806000815260200160008152509056fe746865206e756d626572206f662076616c696461746f72732065786365656420746865206c696d69746475706c696361746520636f6e73656e7375732061646472657373206f662076616c696461746f725365747468652065787069726554696d655365636f6e64476170206973206f7574206f662072616e67656c656e677468206f66206a61696c2076616c696461746f7273206d757374206265206f6e65746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374666565206973206c6172676572207468616e2044555354595f494e434f4d494e476c656e677468206f662065787069726554696d655365636f6e64476170206d69736d61746368f901b480f901b0f846941284214b9b9c85549ab3d2b972df0deef66ac2c9946ddf42a51534fc98d0c0a3b42c963cace8441ddf9477f066f3fb515bb97015e4b4afddbcb25c94286b86048c27395000f84694b71b214cb885500844365e95cd9942c7276e7fd894d22ca3ba2141d23adab65ce4940eb7665ea2b6a794748c284f46ab87fd492326f1e2fe731d22ad2db386048c27395000f84694a2959d3f95eae5dc7d70144ce1b73b403b7eb6e0948081ef03f1d9e0bb4a5bf38f16285c879299f07f940ce09b38374887cb564b7efa60be130d99ed5f9586048c27395000f84694980a75ecd1309ea12fa2ed87a8744fbfc9b863d594cc6ac05c95a99c1f7b5f88de0e3486c82293b2709407eecf36cf0901fefe4bc505d6ba03c7480c7b5786048c27395000f8469435552c16704d214347f29fa77f77da6d75d7c75294dc4973e838e3949c77aced16ac2315dc2d7ab11194f57d36e129881a3a13a024fe8072507e5b2e70f886048c27395000f84694f474cf03cceff28abc65c9cbae594f725c80e12d94e61a183325a18a173319dd8e19c8d069459e217594ddfcaedf9bb451098c9917a45f02bd61342cca6686048c273950006661696c656420746f20706172736520696e69742076616c696461746f72536574746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d6573736167652073656e646572206d7573742062652074686520626c6f636b2070726f6475636572746865206d6573736167652073656e646572206d75737420626520736c61736820636f6e7472616374a26469706673582212203ab4e2f538c9084d689a3e9fdfcee54d2149c820c48e01a03c7f65be805a8edf64736f6c63430006040033", - }, - { - ContractAddr: SlashContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/823b953232a344ba3c32d6690e70a245477e5760", - Code: "608060405234801561001057600080fd5b50600436106102275760003560e01c8063831d65d111610130578063c80d4b8f116100b8578063e1c7392a1161007c578063e1c7392a146106d9578063f9a2bbc7146106e1578063fc3e5908146106e9578063fc4333cd146106f1578063fd6a6879146106f957610227565b8063c80d4b8f14610623578063c81b16621461062b578063c8509d8114610633578063c96be4cb146106ab578063dc927faf146106d157610227565b8063a1a11bf5116100ff578063a1a11bf514610531578063a78abc1614610539578063ab51bb9614610555578063ac0af6291461055d578063ac4317511461056557610227565b8063831d65d11461049f57806396713da9146105195780639bc8e4f2146105215780639dc092621461052957610227565b80634bf6c882116101b35780636e47b482116101825780636e47b4821461047757806370fd5bad1461047f57806375d47a0a146104875780637912a65d1461048f5780637942fd051461049757610227565b80634bf6c8821461045757806351e806721461045f578063567a372d1461046757806362b72cf51461046f57610227565b806337c8dab9116101fa57806337c8dab9146103b9578063389f4f71146103f85780633dffc3871461041257806343756e5c14610430578063493279b11461043857610227565b80630bee7a671461022c5780631182b8751461024d57806323bac5a21461033a57806335aa2e4414610380575b600080fd5b610234610701565b6040805163ffffffff9092168252519081900360200190f35b6102c56004803603604081101561026357600080fd5b60ff8235169190810190604081016020820135600160201b81111561028757600080fd5b82018360208201111561029957600080fd5b803590602001918460018302840111600160201b831117156102ba57600080fd5b509092509050610706565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102ff5781810151838201526020016102e7565b50505050905090810190601f16801561032c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103606004803603602081101561035057600080fd5b50356001600160a01b03166107da565b604080519384526020840192909252151582820152519081900360600190f35b61039d6004803603602081101561039657600080fd5b50356107fd565b604080516001600160a01b039092168252519081900360200190f35b6103df600480360360208110156103cf57600080fd5b50356001600160a01b0316610824565b6040805192835260208301919091528051918290030190f35b61040061087b565b60408051918252519081900360200190f35b61041a610881565b6040805160ff9092168252519081900360200190f35b61039d610886565b61044061088c565b6040805161ffff9092168252519081900360200190f35b61041a610891565b61039d610896565b61040061089c565b6104006108a2565b61039d6108a8565b61041a6108ae565b61039d6108b3565b6104006108b9565b61041a6108be565b610517600480360360408110156104b557600080fd5b60ff8235169190810190604081016020820135600160201b8111156104d957600080fd5b8201836020820111156104eb57600080fd5b803590602001918460018302840111600160201b8311171561050c57600080fd5b5090925090506108c3565b005b61041a610a1e565b610400610a23565b61039d610a2e565b61039d610a34565b610541610a3a565b604080519115158252519081900360200190f35b610234610a43565b610400610a48565b6105176004803603604081101561057b57600080fd5b810190602081018135600160201b81111561059557600080fd5b8201836020820111156105a757600080fd5b803590602001918460018302840111600160201b831117156105c857600080fd5b919390929091602081019035600160201b8111156105e557600080fd5b8201836020820111156105f757600080fd5b803590602001918460018302840111600160201b8311171561061857600080fd5b509092509050610a4d565b610400610e3b565b61039d610e40565b6105176004803603604081101561064957600080fd5b60ff8235169190810190604081016020820135600160201b81111561066d57600080fd5b82018360208201111561067f57600080fd5b803590602001918460018302840111600160201b831117156106a057600080fd5b509092509050610e46565b610517600480360360208110156106c157600080fd5b50356001600160a01b0316610ef9565b61039d61131e565b610517611324565b61039d611395565b61041a61139b565b6105176113a0565b61039d61182b565b606481565b606033612000146107485760405162461bcd60e51b815260040180806020018281038252602f815260200180612282602f913960400191505060405180910390fd5b60005460ff1661078d576040805162461bcd60e51b815260206004820152601960248201526000805160206122de833981519152604482015290519081900360640190fd5b6040805162461bcd60e51b815260206004820152601e60248201527f7265636569766520756e65787065637465642073796e207061636b6167650000604482015290519081900360640190fd5b600260208190526000918252604090912080546001820154919092015460ff1683565b6001818154811061080a57fe5b6000918252602090912001546001600160a01b0316905081565b60008061082f612146565b5050506001600160a01b0316600090815260026020818152604092839020835160608101855281548082526001830154938201849052919093015460ff16151592909301919091529091565b60055481565b600181565b61100181565b606081565b600881565b61200081565b60045481565b60035481565b61100581565b600281565b61100881565b603281565b600b81565b33612000146109035760405162461bcd60e51b815260040180806020018281038252602f815260200180612282602f913960400191505060405180910390fd5b60005460ff16610948576040805162461bcd60e51b815260206004820152601960248201526000805160206122de833981519152604482015290519081900360640190fd5b610950612169565b600061099184848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061183192505050565b9150915080156109db5781516040805163ffffffff9092168252517f7f0956d47419b9525356e7111652b653b530ec6f5096dccc04589bc38e6299679181900360200190a1610a17565b81516040805163ffffffff9092168252517f7d45f62d17443dd4547bca8a8112c60e2385669318dc300ec61a5d2492f262e79181900360200190a15b5050505050565b600981565b662386f26fc1000081565b61100781565b61100681565b60005460ff1681565b600081565b600481565b60005460ff16610a92576040805162461bcd60e51b815260206004820152601960248201526000805160206122de833981519152604482015290519081900360640190fd5b3361100714610ad25760405162461bcd60e51b815260040180806020018281038252602e81526020018061220d602e913960400191505060405180910390fd5b610b3d84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260148152731b5a5cd9195b59585b9bdc951a1c995cda1bdb1960621b602082015291506118b19050565b15610c165760208114610b815760405162461bcd60e51b81526004018080602001828103825260278152602001806121b66027913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610bbf9185858083850183828082843760009201919091525061199992505050565b905060018110158015610bd3575060055481105b610c0e5760405162461bcd60e51b815260040180806020018281038252602581526020018061225d6025913960400191505060405180910390fd5b600455610da9565b610c7c84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e19995b1bdb9e551a1c995cda1bdb19608a1b602082015291506118b19050565b15610d6c5760208114610cc05760405162461bcd60e51b815260040180806020018281038252602281526020018061223b6022913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610cfe9185858083850183828082843760009201919091525061199992505050565b90506103e88111158015610d13575060045481115b610d64576040805162461bcd60e51b815260206004820181905260248201527f7468652066656c6f6e795468726573686f6c64206f7574206f662072616e6765604482015290519081900360640190fd5b600555610da9565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b609681565b61100281565b3361200014610e865760405162461bcd60e51b815260040180806020018281038252602f815260200180612282602f913960400191505060405180910390fd5b60005460ff16610ecb576040805162461bcd60e51b815260206004820152601960248201526000805160206122de833981519152604482015290519081900360640190fd5b6040517f07db600eebe2ac176be8dcebad61858c245a4961bb32ca2aa3d159b09aa0810e90600090a1505050565b334114610f375760405162461bcd60e51b815260040180806020018281038252602d8152602001806122b1602d913960400191505060405180910390fd5b60005460ff16610f7c576040805162461bcd60e51b815260206004820152601960248201526000805160206122de833981519152604482015290519081900360640190fd5b6003544311610fd2576040805162461bcd60e51b815260206004820181905260248201527f63616e206e6f7420736c61736820747769636520696e206f6e6520626c6f636b604482015290519081900360640190fd5b3a1561101c576040805162461bcd60e51b81526020600482015260146024820152736761737072696365206973206e6f74207a65726f60601b604482015290519081900360640190fd5b611024612146565b506001600160a01b0381166000908152600260208181526040928390208351606081018552815481526001820154928101929092529091015460ff16158015928201929092529061107f5760208101805160010190526110d8565b60016040820181905260208201819052805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0384161790555b4381526005546020820151816110ea57fe5b0661123c57600060208201819052604080516335409f7f60e01b81526001600160a01b03851660048201529051611000926335409f7f926024808201939182900301818387803b15801561113d57600080fd5b505af1158015611151573d6000803e3d6000fd5b505050506120006001600160a01b031663f7a251d7600b6111718561199e565b60006040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156111d15781810151838201526020016111b9565b50505050905090810190601f1680156111fe5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561121f57600080fd5b505af1158015611233573d6000803e3d6000fd5b505050506112b2565b60045481602001518161124b57fe5b066112b257604080516375abf10160e11b81526001600160a01b038416600482015290516110009163eb57e20291602480830192600092919082900301818387803b15801561129957600080fd5b505af11580156112ad573d6000803e3d6000fd5b505050505b6001600160a01b0382166000818152600260208181526040808420865181559186015160018301558581015191909201805460ff1916911515919091179055517fddb6012116e51abf5436d956a4f0ebd927e92c576ff96d7918290c8782291e3e9190a2505043600355565b61100381565b60005460ff161561137c576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b603260045560966005556000805460ff19166001179055565b61100081565b600381565b33611000146113e05760405162461bcd60e51b81526004018080602001828103825260308152602001806121dd6030913960400191505060405180910390fd5b60005460ff16611425576040805162461bcd60e51b815260206004820152601960248201526000805160206122de833981519152604482015290519081900360640190fd5b60015461143157611829565b600154600090600019015b8082116117fd576000805b8284101561156057611457612146565b600260006001878154811061146857fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff16151590820152600554909150600490048160200151111561154a576004600554816114d557fe5b048160200151038160200181815250508060026000600188815481106114f757fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208351815591830151600183015591909101516002909101805460ff1916911515919091179055611554565b6001925050611560565b50600190930192611447565b8284116116f75761156f612146565b600260006001868154811061158057fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff161515908201526005549091506004900481602001511115611668576004600554816115ed57fe5b0481602001510381602001818152505080600260006001878154811061160f57fe5b6000918252602080832091909101546001600160a01b03168352828101939093526040918201902083518155918301516001808401919091559201516002909101805460ff191691151591909117905591506116f79050565b600260006001868154811061167957fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff191690558054806116bd57fe5b600082815260209020810160001990810180546001600160a01b0319169055019055836116ea57506116f7565b5060001990920191611560565b8180156117015750805b156117e057600260006001868154811061171757fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff1916905580548490811061175e57fe5b600091825260209091200154600180546001600160a01b03909216918690811061178457fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060018054806117bd57fe5b600082815260209020810160001990810180546001600160a01b03191690550190555b826117ec5750506117fd565b50506001909101906000190161143c565b6040517fcfdb3b6ccaeccbdc68be3c59c840e3b3c90f0a7c491f5fff1cf56cfda200dd9c90600090a150505b565b61100481565b611839612169565b6000611843612169565b61184b61217b565b61185c61185786611a70565b611a95565b90506000805b61186b83611adf565b156118a457806118975761188661188184611b00565b611b4e565b63ffffffff1684526001915061189c565b6118a4565b600101611862565b5091935090915050915091565b6000816040516020018082805190602001908083835b602083106118e65780518252601f1990920191602091820191016118c7565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106119545780518252601f199092019160209182019101611935565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052805190602001201490505b92915050565b015190565b60408051600480825260a08201909252606091829190816020015b60608152602001906001900390816119b95790505090506119e2836001600160a01b0316611c05565b816000815181106119ef57fe5b6020026020010181905250611a0343611c28565b81600181518110611a1057fe5b6020908102919091010152611a256060611c28565b81600281518110611a3257fe5b6020026020010181905250611a4642611c28565b81600381518110611a5357fe5b6020026020010181905250611a6781611c3b565b9150505b919050565b611a7861219b565b506040805180820190915281518152602082810190820152919050565b611a9d61217b565b611aa682611cc5565b611aaf57600080fd5b6000611abe8360200151611cff565b60208085015160408051808201909152868152920190820152915050919050565b6000611ae961219b565b505080518051602091820151919092015191011190565b611b0861219b565b611b1182611adf565b611b1a57600080fd5b60208201516000611b2a82611d62565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590611b6357508151602110155b611b6c57600080fd5b6000611b7b8360200151611cff565b90508083600001511015611bd6576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015611bfc57826020036101000a820491505b50949350505050565b60408051600560a21b8318601482015260348101909152606090611a6781611e95565b6060611993611c3683611eeb565b611e95565b6060815160001415611c5c5750604080516000815260208101909152611a6b565b606082600081518110611c6b57fe5b602002602001015190506000600190505b8351811015611cac57611ca282858381518110611c9557fe5b6020026020010151611fd1565b9150600101611c7c565b50611a67611cbf825160c060ff1661204e565b82611fd1565b8051600090611cd657506000611a6b565b6020820151805160001a9060c0821015611cf557600092505050611a6b565b5060019392505050565b8051600090811a6080811015611d19576000915050611a6b565b60b8811080611d34575060c08110801590611d34575060f881105b15611d43576001915050611a6b565b60c0811015611d575760b519019050611a6b565b60f519019050611a6b565b80516000908190811a6080811015611d7d5760019150611e8e565b60b8811015611d9257607e1981019150611e8e565b60c0811015611e0c57600060b78203600186019550806020036101000a865104915060018101820193505080831015611e06576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50611e8e565b60f8811015611e215760be1981019150611e8e565b600060f78203600186019550806020036101000a865104915060018101820193505080831015611e8c576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b606081516001148015611ec75750607f60f81b82600081518110611eb557fe5b01602001516001600160f81b03191611155b15611ed3575080611a6b565b611993611ee58351608060ff1661204e565b83611fd1565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416611f2f57506018611f53565b6fffffffffffffffffffffffffffffffff198416611f4f57506010611f53565b5060005b6020811015611f8957818181518110611f6857fe5b01602001516001600160f81b03191615611f8157611f89565b600101611f53565b60008160200390506060816040519080825280601f01601f191660200182016040528015611fbe576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b81831015612002578051835260209283019201611fea565b50855184518101855292509050808201602086015b8183101561202f578051835260209283019201612017565b508651929092011591909101601f01601f191660405250905092915050565b606068010000000000000000831061209e576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b604080516001808252818301909252606091602082018180368337019050509050603784116120f85782840160f81b816000815181106120da57fe5b60200101906001600160f81b031916908160001a9053509050611993565b606061210385611eeb565b90508381510160370160f81b8260008151811061211c57fe5b60200101906001600160f81b031916908160001a90535061213d8282611fd1565b95945050505050565b604051806060016040528060008152602001600081526020016000151581525090565b60408051602081019091526000815290565b604051806040016040528061218e61219b565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe6c656e677468206f66206d697364656d65616e6f725468726573686f6c64206d69736d61746368746865206d6573736167652073656e646572206d7573742062652076616c696461746f7253657420636f6e7472616374746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662066656c6f6e795468726573686f6c64206d69736d61746368746865206d697364656d65616e6f725468726573686f6c64206f7574206f662072616e6765746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d6573736167652073656e646572206d7573742062652074686520626c6f636b2070726f647563657274686520636f6e7472616374206e6f7420696e69742079657400000000000000a26469706673582212204ff575d7be356d691e7b7eae41716a4ccc366ec84f8235486e935261df61a18a64736f6c63430006040033", - }, - { - ContractAddr: SystemRewardContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/823b953232a344ba3c32d6690e70a245477e5760", - Code: "60806040526004361061014f5760003560e01c806396713da9116100b6578063c81b16621161006f578063c81b1662146103dc578063dc927faf146103f1578063f9a2bbc714610406578063fb5478b31461041b578063fc3e590814610430578063fd6a68791461044557610193565b806396713da91461033a5780639a99b4f01461034f5780639dc0926214610388578063a1a11bf51461039d578063a78abc16146103b2578063ab51bb96146103c757610193565b806351e806721161010857806351e806721461028a5780636d70f7ae1461029f5780636e47b482146102e657806370fd5bad146102fb57806375d47a0a146103105780637942fd051461032557610193565b80630bee7a67146101985780633a0b0eff146101c65780633dffc387146101ed57806343756e5c14610218578063493279b1146102495780634bf6c8821461027557610193565b366101935734156101915760408051348152905133917f6c98249d85d88c3753a04a22230f595e4dc8d3dc86c34af35deeeedc861b89db919081900360200190a25b005b600080fd5b3480156101a457600080fd5b506101ad61045a565b6040805163ffffffff9092168252519081900360200190f35b3480156101d257600080fd5b506101db61045f565b60408051918252519081900360200190f35b3480156101f957600080fd5b50610202610465565b6040805160ff9092168252519081900360200190f35b34801561022457600080fd5b5061022d61046a565b604080516001600160a01b039092168252519081900360200190f35b34801561025557600080fd5b5061025e610470565b6040805161ffff9092168252519081900360200190f35b34801561028157600080fd5b50610202610475565b34801561029657600080fd5b5061022d61047a565b3480156102ab57600080fd5b506102d2600480360360208110156102c257600080fd5b50356001600160a01b0316610480565b604080519115158252519081900360200190f35b3480156102f257600080fd5b5061022d61049e565b34801561030757600080fd5b506102026104a4565b34801561031c57600080fd5b5061022d6104a9565b34801561033157600080fd5b506102026104af565b34801561034657600080fd5b506102026104b4565b34801561035b57600080fd5b506101db6004803603604081101561037257600080fd5b506001600160a01b0381351690602001356104b9565b34801561039457600080fd5b5061022d610664565b3480156103a957600080fd5b5061022d61066a565b3480156103be57600080fd5b506102d2610670565b3480156103d357600080fd5b506101ad610679565b3480156103e857600080fd5b5061022d61067e565b3480156103fd57600080fd5b5061022d610684565b34801561041257600080fd5b5061022d61068a565b34801561042757600080fd5b506101db610690565b34801561043c57600080fd5b5061020261069c565b34801561045157600080fd5b5061022d6106a1565b606481565b60015481565b600181565b61100181565b606081565b600881565b61200081565b6001600160a01b031660009081526002602052604090205460ff1690565b61100581565b600281565b61100881565b600b81565b600981565b6000805460ff1661053657600260208190527fe57bda0a954a7c7381b17b2c763e646ba2c60f67292d287ba583603e2c1c41668054600160ff19918216811790925561100560009081527fe25235fc0de9d7165652bef0846fefda506174abb9a190f03d0f7bcc6146dbce80548316841790559282558254161790555b3360009081526002602052604090205460ff166105845760405162461bcd60e51b815260040180806020018281038252602b8152602001806106a8602b913960400191505060405180910390fd5b60004783106105935747610595565b825b9050670de0b6b3a76400008111156105b25750670de0b6b3a76400005b8015610633576040516001600160a01b0385169082156108fc029083906000818181858888f193505050501580156105ee573d6000803e3d6000fd5b506040805182815290516001600160a01b038616917ff8b71c64315fc33b2ead2adfa487955065152a8ac33d9d5193aafd7f45dc15a0919081900360200190a261065d565b6040517fe589651933c2457488cc0d8e0941518abf748e799435e4e396d9c4d0b2db2d4d90600090a15b9392505050565b61100781565b61100681565b60005460ff1681565b600081565b61100281565b61100381565b61100081565b670de0b6b3a764000081565b600381565b6110048156fe6f6e6c79206f70657261746f7220697320616c6c6f77656420746f2063616c6c20746865206d6574686f64a2646970667358221220d0a7618a32d393c0757994fad066c9aaf7342a982498e0748019ec232f5dc86764736f6c63430006040033", - }, - { - ContractAddr: LightClientContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/823b953232a344ba3c32d6690e70a245477e5760", - Code: "608060405234801561001057600080fd5b50600436106102115760003560e01c8063a78abc1611610125578063dda83148116100ad578063e405bbc31161007c578063e405bbc314610681578063ea54b2aa14610689578063f9a2bbc714610691578063fc3e590814610699578063fd6a6879146106a157610211565b8063dda8314814610609578063df5fe7041461062f578063e1c7392a14610655578063e2761af01461065d57610211565b8063c81b1662116100f4578063c81b166214610534578063cba510a91461053c578063d816987914610562578063da8d08f0146105db578063dc927faf1461060157610211565b8063a78abc1614610444578063ab51bb9614610460578063ac43175114610468578063adc879e91461052c57610211565b8063564b81ef116101a857806375d47a0a1161017757806375d47a0a1461041c5780637942fd051461042457806396713da91461042c5780639dc0926214610434578063a1a11bf51461043c57610211565b8063564b81ef146102ca5780635c5ae8db146103475780636e47b4821461040c57806370fd5bad1461041457610211565b806343756e5c116101e457806343756e5c14610277578063493279b11461029b5780634bf6c882146102ba57806351e80672146102c257610211565b80630bee7a67146102165780632657e9b61461023757806333f7798d146102515780633dffc38714610259575b600080fd5b61021e6106a9565b6040805163ffffffff9092168252519081900360200190f35b61023f6106ae565b60408051918252519081900360200190f35b61023f6106b9565b6102616106bf565b6040805160ff9092168252519081900360200190f35b61027f6106c4565b604080516001600160a01b039092168252519081900360200190f35b6102a36106ca565b6040805161ffff9092168252519081900360200190f35b6102616106cf565b61027f6106d4565b6102d26106da565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561030c5781810151838201526020016102f4565b50505050905090810190601f1680156103395780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61036d6004803603602081101561035d57600080fd5b50356001600160401b03166107e6565b60405180856001600160401b03166001600160401b0316815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156103ce5781810151838201526020016103b6565b50505050905090810190601f1680156103fb5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b61027f6108a1565b6102616108a7565b61027f6108ac565b6102616108b2565b6102616108b7565b61027f6108bc565b61027f6108c2565b61044c6108c8565b604080519115158252519081900360200190f35b61021e6108d1565b61052a6004803603604081101561047e57600080fd5b81019060208101813564010000000081111561049957600080fd5b8201836020820111156104ab57600080fd5b803590602001918460018302840111640100000000831117156104cd57600080fd5b9193909290916020810190356401000000008111156104eb57600080fd5b8201836020820111156104fd57600080fd5b8035906020019184600183028401116401000000008311171561051f57600080fd5b5090925090506108d6565b005b61023f610b8f565b61027f610b95565b61023f6004803603602081101561055257600080fd5b50356001600160401b0316610b9b565b61044c6004803603604081101561057857600080fd5b81019060208101813564010000000081111561059357600080fd5b8201836020820111156105a557600080fd5b803590602001918460018302840111640100000000831117156105c757600080fd5b9193509150356001600160401b0316610bba565b61027f600480360360208110156105f157600080fd5b50356001600160401b031661139b565b61027f6113b6565b61027f6004803603602081101561061f57600080fd5b50356001600160401b03166113bc565b61044c6004803603602081101561064557600080fd5b50356001600160401b03166113e0565b61052a611422565b6106656115c7565b604080516001600160401b039092168252519081900360200190f35b6106656115d6565b6102d26115ec565b61027f611609565b61026161160f565b61027f611614565b606481565b662386f26fc1000081565b60055481565b600181565b61100181565b606081565b600881565b61200081565b604080516020808252818301909252606091829190602082018180368337505060045460208301525090506000805b60208160ff16101561075057828160ff168151811061072457fe5b01602001516001600160f81b0319161561074357600190910190610748565b610750565b600101610709565b5060608160ff166040519080825280601f01601f191660200182016040528015610781576020820181803683370190505b50905060005b8260ff168160ff1610156107dd57838160ff16815181106107a457fe5b602001015160f81c60f81b828260ff16815181106107be57fe5b60200101906001600160f81b031916908160001a905350600101610787565b50925050505b90565b60016020818152600092835260409283902080548184015460028084015460038501805489516101009982161599909902600019011692909204601f81018790048702880187019098528787526001600160401b0390931696919592949091908301828280156108975780601f1061086c57610100808354040283529160200191610897565b820191906000526020600020905b81548152906001019060200180831161087a57829003601f168201915b5050505050905084565b61100581565b600281565b61100881565b600b81565b600981565b61100781565b61100681565b60005460ff1681565b600081565b60005460ff1661092d576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604482015290519081900360640190fd5b336110071461096d5760405162461bcd60e51b815260040180806020018281038252602e815260200180611ac6602e913960400191505060405180910390fd5b6109e184848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601b81527f726577617264466f7256616c696461746f725365744368616e676500000000006020820152915061161a9050565b15610ac05760208114610a255760405162461bcd60e51b815260040180806020018281038252602e815260200180611a65602e913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610a639185858083850183828082843760009201919091525061170192505050565b9050600081118015610a7d5750670de0b6b3a76400008111155b610ab85760405162461bcd60e51b815260040180806020018281038252602f815260200180611af4602f913960400191505060405180910390fd5b600555610afd565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b60045481565b61100281565b6001600160401b03166000908152600160208190526040909120015490565b60408051630a83aaa960e31b815233600482015290516000916110069163541d554891602480820192602092909190829003018186803b158015610bfd57600080fd5b505afa158015610c11573d6000803e3d6000fd5b505050506040513d6020811015610c2757600080fd5b5051610c7a576040805162461bcd60e51b815260206004820152601f60248201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604482015290519081900360640190fd5b6001600160401b0382166000908152600260205260409020546001600160a01b031615610cee576040805162461bcd60e51b815260206004820152601c60248201527f63616e27742073796e63206475706c6963617465642068656164657200000000604482015290519081900360640190fd5b6003546001600160401b0390811690831611610d3b5760405162461bcd60e51b8152600401808060200182810382526026815260200180611b236026913960400191505060405180910390fd5b600354600160401b90046001600160401b0316610d56611863565b6001600160401b0382811660009081526001602081815260409283902083516080810185528154909516855280830154858301526002808201548686015260038201805486516101009682161596909602600019011691909104601f81018490048402850184019095528484529093606086019392830182828015610e1c5780601f10610df157610100808354040283529160200191610e1c565b820191906000526020600020905b815481529060010190602001808311610dff57829003601f168201915b50505050508152505090505b836001600160401b0316826001600160401b031610158015610e5957506003546001600160401b0390811690831610155b15610f3a5780516001600160401b0380821660009081526001602081815260409283902083516080810185528154909516855280830154858301526002808201548686015260038201805486516101009682161596909602600019011691909104601f8101849004840285018401909552848452959750939460608601939091830182828015610f2a5780601f10610eff57610100808354040283529160200191610f2a565b820191906000526020600020905b815481529060010190602001808311610f0d57829003601f168201915b5050505050815250509050610e28565b6060810151516110315780516001600160401b03811660009081526001602081815260409283902060030180548451600294821615610100026000190190911693909304601f810183900483028401830190945283835293955090929190830182828015610fe95780601f10610fbe57610100808354040283529160200191610fe9565b820191906000526020600020905b815481529060010190602001808311610fcc57829003601f168201915b505050506060830182905250516110315760405162461bcd60e51b8152600401808060200182810382526021815260200180611a446021913960400191505060405180910390fd5b6000816060015151608801905060608787905082016040519080825280601f01601f191660200182016040528015611070576020820181803683370190505b509050600061107e82611706565b905061108c8486838661170c565b6110c75760405162461bcd60e51b81526004018080602001828103825260238152602001806119416023913960400191505060405180910390fd5b6000838201915061110d8a8a8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061177892505050565b9450905061111c818386611782565b8251602001935061112b611889565b6110008186866064600019fa61114057600080fd5b805194506000600160f81b8616156111cf5750600554604080516309a99b4f60e41b815233600482015260248101929092525160019161100291639a99b4f0916044808201926020929091908290030181600087803b1580156111a257600080fd5b505af11580156111b6573d6000803e3d6000fd5b505050506040513d60208110156111cc57600080fd5b50505b856001600160401b0316955060208201935060006111ef858884156117c3565b90985090506001600160401b03808216908c161461123e5760405162461bcd60e51b8152600401808060200182810382526033815260200180611a936033913960400191505060405180910390fd5b6001600160401b03808c16600081815260026020818152604080842080546001600160a01b031916331790558e86168e529383526001808252928490208d518154961667ffffffffffffffff199096169590951785558c81015192850192909255918b01519183019190915560608a015180518b93926112c59260038501929101906118a8565b50506003546001600160401b03600160401b9091048116908d161115905061130d576003805467ffffffffffffffff60401b1916600160401b6001600160401b038e16021790555b7f4042c1020a8f410fb1c8859d276ab436aeb2c3074960e48467299cf1c966d3b48b8a8a602001518560405180856001600160401b03166001600160401b03168152602001846001600160401b03166001600160401b031681526020018381526020018215151515815260200194505050505060405180910390a15060019c9b505050505050505050505050565b6002602052600090815260409020546001600160a01b031681565b61100381565b6001600160401b03166000908152600260205260409020546001600160a01b031690565b6001600160401b0381166000908152600260205260408120546001600160a01b031615158061141c57506003546001600160401b038381169116145b92915050565b60005460ff161561147a576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b60008061149f60405180610100016040528060e0815260200161196460e09139611778565b815160045590925090506114b1611863565b60006114bf848460006117c3565b60008083526001600160401b038281168252600160208181526040938490208651815467ffffffffffffffff191694169390931783558086015191830191909155918401516002820155606084015180519496509294508593909261152b9260038501929101906118a8565b50506003805467ffffffffffffffff19166001600160401b0384811691821767ffffffffffffffff60401b1916600160401b9290920291909117918290556000805460ff19166001179055662386f26fc10000600555602085810151604080519490931684529083015280517f5ac9b37d571677b80957ca05693f371526c602fd08042b416a29fdab7efefa499350918290030190a150505050565b6003546001600160401b031681565b600354600160401b90046001600160401b031681565b60405180610100016040528060e0815260200161196460e0913981565b61100081565b600381565b61100481565b6000816040516020018082805190602001908083835b6020831061164f5780518252601f199092019160209182019101611630565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106116bd5780518252601f19909201916020918201910161169e565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b60200190565b600084606001515182840103925060008061172a8760600151611778565b909250905061173a828683611782565b5050506040840151601f1983810191909152602090940151603f19830152605f19820192909252600454606719820152910160871990910152600190565b8051602090910191565b5b602081106117a2578251825260209283019290910190601f1901611783565b915181516020939093036101000a6000190180199091169216919091179052565b6117cb611863565b60088401516028850151604890950180519095600092916117ea611863565b6020810183905260408101829052866118555760008060688a036040519080825280601f01601f19166020018201604052801561182e576020820181803683370190505b506060840181905261183f90611778565b909250905061185260208c018383611782565b50505b989297509195505050505050565b604080516080810182526000808252602082018190529181019190915260608082015290565b6040518061100001604052806080906020820280368337509192915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106118e957805160ff1916838001178555611916565b82800160010185558215611916579182015b828111156119165782518255916020019190600101906118fb565b50611922929150611926565b5090565b6107e391905b80821115611922576000815560010161192c56fe6661696c656420746f2073657269616c697a6520636f6e73656e73757320737461746542696e616e63652d436861696e2d47616e67657300000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000aea1ac326886b992a991d21a6eb155f41b77867cbf659e78f31d89d8205122a84d1be64f0e9a466c2e66a53433928192783e29f8fa21beb2133499b5ef770f60000000e8d4a5100099308aa365c40554bc89982af505d85da95251445d5dd4a9bb37dd2584fd92d3000000e8d4a5100001776920ff0b0f38d78cf95c033c21adf7045785114e392a7544179652e0a612000000e8d4a510006661696c656420746f206c6f61642076616c696461746f722073657420646174616c656e677468206f6620726577617264466f7256616c696461746f725365744368616e6765206d69736d617463686865616465722068656967687420646f65736e277420657175616c20746f207468652073706563696669656420686569676874746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374746865206e6577526577617264466f7256616c696461746f725365744368616e6765206f7574206f662072616e676563616e27742073796e6320686561646572206265666f726520696e697469616c486569676874a26469706673582212205276b0300b4926074c5521abe49ba680eda1820c6f75c2779994658ed250924164736f6c63430006040033", - }, - { - ContractAddr: TokenHubContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/823b953232a344ba3c32d6690e70a245477e5760", - Code: "60806040526004361061031e5760003560e01c80639a99b4f0116101ab578063bd466461116100f7578063f014847211610095578063fc1a598f1161006f578063fc1a598f14610cb3578063fc3e5908146109c9578063fd6a687914610ce6578063ff9c0027146107c757610366565b8063f014847214610c74578063f9a2bbc714610c89578063fa9e915914610c9e57610366565b8063dc6f5e90116100d1578063dc6f5e90146109c9578063dc927faf14610c35578063e1c7392a14610c4a578063ebf71d5314610c5f57610366565b8063bd46646114610b68578063c81b166214610b9b578063c8509d8114610bb057610366565b8063a7c9f02d11610164578063ac4317511161013e578063ac43175114610a3a578063b770186114610b05578063b99328c514610b1a578063b9fd21e314610b5357610366565b8063a7c9f02d146109c9578063aa7415f5146109de578063ab51bb9614610a2557610366565b80639a99b4f0146109095780639dc0926214610942578063a1a11bf514610957578063a496fba21461096c578063a5cd588b14610981578063a78abc16146109b457610366565b80635d499b1b1161026a57806375d47a0a116102235780638b87b21f116101fd5780638b87b21f146105b25780638eff336c146108a057806396713da9146108df5780639a854bbd146108f457610366565b806375d47a0a146107f15780637942fd0514610806578063831d65d11461081b57610366565b80635d499b1b14610671578063613684751461036b5780636e056520146106865780636e47b482146107b257806370fd5bad146107c757806371d30863146107dc57610366565b806343756e5c116102d75780634bf6c882116102b15780634bf6c8821461036b57806350432d321461061d57806351e806721461063257806359b927891461064757610366565b806343756e5c146105c757806343a368b9146105dc578063493279b1146105f157610366565b8063077b8f351461036b5780630bee7a67146103965780631182b875146103c4578063149d14d9146104be5780633d713223146104e55780633dffc387146105b257610366565b36610366573415610364576040805133815234602082015281517f6c98249d85d88c3753a04a22230f595e4dc8d3dc86c34af35deeeedc861b89db929181900390910190a15b005b600080fd5b34801561037757600080fd5b50610380610cfb565b6040805160ff9092168252519081900360200190f35b3480156103a257600080fd5b506103ab610d00565b6040805163ffffffff9092168252519081900360200190f35b3480156103d057600080fd5b50610449600480360360408110156103e757600080fd5b60ff8235169190810190604081016020820135600160201b81111561040b57600080fd5b82018360208201111561041d57600080fd5b803590602001918460018302840111600160201b8311171561043e57600080fd5b509092509050610d05565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561048357818101518382015260200161046b565b50505050905090810190601f1680156104b05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156104ca57600080fd5b506104d3610e33565b60408051918252519081900360200190f35b3480156104f157600080fd5b506105966004803603602081101561050857600080fd5b810190602081018135600160201b81111561052257600080fd5b82018360208201111561053457600080fd5b803590602001918460018302840111600160201b8311171561055557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610e39945050505050565b604080516001600160a01b039092168252519081900360200190f35b3480156105be57600080fd5b50610380610e5d565b3480156105d357600080fd5b50610596610e62565b3480156105e857600080fd5b506104d3610e68565b3480156105fd57600080fd5b50610606610e74565b6040805161ffff9092168252519081900360200190f35b34801561062957600080fd5b506104d3610e79565b34801561063e57600080fd5b50610596610e84565b34801561065357600080fd5b506105966004803603602081101561066a57600080fd5b5035610e8a565b34801561067d57600080fd5b506104d3610ea5565b61079e6004803603608081101561069c57600080fd5b810190602081018135600160201b8111156106b657600080fd5b8201836020820111156106c857600080fd5b803590602001918460208302840111600160201b831117156106e957600080fd5b919390929091602081019035600160201b81111561070657600080fd5b82018360208201111561071857600080fd5b803590602001918460208302840111600160201b8311171561073957600080fd5b919390929091602081019035600160201b81111561075657600080fd5b82018360208201111561076857600080fd5b803590602001918460208302840111600160201b8311171561078957600080fd5b91935091503567ffffffffffffffff16610eae565b604080519115158252519081900360200190f35b3480156107be57600080fd5b50610596611383565b3480156107d357600080fd5b50610380611389565b3480156107e857600080fd5b506104d361138e565b3480156107fd57600080fd5b50610596611394565b34801561081257600080fd5b5061038061139a565b34801561082757600080fd5b506103646004803603604081101561083e57600080fd5b60ff8235169190810190604081016020820135600160201b81111561086257600080fd5b82018360208201111561087457600080fd5b803590602001918460018302840111600160201b8311171561089557600080fd5b50909250905061139f565b3480156108ac57600080fd5b50610364600480360360608110156108c357600080fd5b508035906001600160a01b0360208201351690604001356114e8565b3480156108eb57600080fd5b5061038061156e565b34801561090057600080fd5b506104d3611573565b34801561091557600080fd5b506104d36004803603604081101561092c57600080fd5b506001600160a01b03813516906020013561157f565b34801561094e57600080fd5b506105966116bd565b34801561096357600080fd5b506105966116c3565b34801561097857600080fd5b506103806116c9565b34801561098d57600080fd5b506104d3600480360360208110156109a457600080fd5b50356001600160a01b03166116ce565b3480156109c057600080fd5b5061079e6116e0565b3480156109d557600080fd5b506103806116e9565b61079e600480360360808110156109f457600080fd5b5080356001600160a01b03908116916020810135909116906040810135906060013567ffffffffffffffff166116ee565b348015610a3157600080fd5b506103ab6116c9565b348015610a4657600080fd5b5061036460048036036040811015610a5d57600080fd5b810190602081018135600160201b811115610a7757600080fd5b820183602082011115610a8957600080fd5b803590602001918460018302840111600160201b83111715610aaa57600080fd5b919390929091602081019035600160201b811115610ac757600080fd5b820183602082011115610ad957600080fd5b803590602001918460018302840111600160201b83111715610afa57600080fd5b509092509050611daf565b348015610b1157600080fd5b506104d361201e565b348015610b2657600080fd5b5061036460048036036040811015610b3d57600080fd5b50803590602001356001600160a01b0316612024565b348015610b5f57600080fd5b506104d361209a565b348015610b7457600080fd5b506104d360048036036020811015610b8b57600080fd5b50356001600160a01b03166120a4565b348015610ba757600080fd5b506105966120bf565b348015610bbc57600080fd5b5061036460048036036040811015610bd357600080fd5b60ff8235169190810190604081016020820135600160201b811115610bf757600080fd5b820183602082011115610c0957600080fd5b803590602001918460018302840111600160201b83111715610c2a57600080fd5b5090925090506120c5565b348015610c4157600080fd5b50610596612195565b348015610c5657600080fd5b5061036461219b565b348015610c6b57600080fd5b5061038061223b565b348015610c8057600080fd5b50610380612240565b348015610c9557600080fd5b50610596612245565b348015610caa57600080fd5b506104d361224b565b348015610cbf57600080fd5b5061044960048036036020811015610cd657600080fd5b50356001600160a01b0316612251565b348015610cf257600080fd5b50610596612378565b600881565b606481565b60005460609060ff16610d4d576040805162461bcd60e51b815260206004820152601960248201526000805160206147bf833981519152604482015290519081900360640190fd5b3361200014610d8d5760405162461bcd60e51b815260040180806020018281038252602f81526020018061476d602f913960400191505060405180910390fd5b60ff841660021415610ddf57610dd883838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061237e92505050565b9050610e2c565b6040805162461bcd60e51b815260206004820152601860248201527f756e7265636f676e697a65642073796e207061636b6167650000000000000000604482015290519081900360640190fd5b9392505050565b60015490565b6020818101516000908152600490915260409020546001600160a01b03165b919050565b600181565b61100181565b670de0b6b3a764000081565b606081565b662386f26fc1000081565b61200081565b6000908152600460205260409020546001600160a01b031690565b6402540be40081565b6000805460ff16610ef4576040805162461bcd60e51b815260206004820152601960248201526000805160206147bf833981519152604482015290519081900360640190fd5b868514610f325760405162461bcd60e51b815260040180806020018281038252603b815260200180614732603b913960400191505060405180910390fd5b868314610f705760405162461bcd60e51b815260040180806020018281038252603f815260200180614605603f913960400191505060405180910390fd5b426078018267ffffffffffffffff161015610fbc5760405162461bcd60e51b81526004018080602001828103825260248152602001806144f56024913960400191505060405180910390fd5b6402540be4003406156110005760405162461bcd60e51b81526004018080602001828103825260408152602001806148356040913960400191505060405180910390fd5b60408051868152602080880282010190915285906000908190606090848015611033578160200160208202803683370190505b50905060005b8481101561110e576402540be4008b8b8381811061105357fe5b905060200201358161106157fe5b061561109e5760405162461bcd60e51b815260040180806020018281038252603c815260200180614644603c913960400191505060405180910390fd5b6110c38b8b838181106110ad57fe5b90506020020135856124a290919063ffffffff16565b93506110ef6402540be4008c8c848181106110da57fe5b905060200201356124fc90919063ffffffff16565b8282815181106110fb57fe5b6020908102919091010152600101611039565b5060015461113390611126908663ffffffff61253e16565b849063ffffffff6124a216565b3410156111715760405162461bcd60e51b81526004018080602001828103825260568152602001806147df6056913960600191505060405180910390fd5b611181348463ffffffff61259716565b915061118b61434e565b6040518060c001604052806221272160e91b60001b815260200160006001600160a01b031681526020018381526020018e8e808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505050908252506040805160208c810282810182019093528c82529283019290918d918d91829185019084908082843760009201919091525050509082525067ffffffffffffffff8916602090910152905061200063f7a251d7600361124f846125d9565b611264876402540be40063ffffffff6124fc16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156112c25781810151838201526020016112aa565b50505050905090810190601f1680156112ef5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561131057600080fd5b505af1158015611324573d6000803e3d6000fd5b505060408051600081523360208201528082018890526060810187905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a15060019c9b505050505050505050505050565b61100581565b600281565b60015481565b61100881565b600b81565b60005460ff166113e4576040805162461bcd60e51b815260206004820152601960248201526000805160206147bf833981519152604482015290519081900360640190fd5b33612000146114245760405162461bcd60e51b815260040180806020018281038252602f81526020018061476d602f913960400191505060405180910390fd5b60ff8316600314156114745761146f82828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061289492505050565b6114e3565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a15b505050565b33611008146115285760405162461bcd60e51b815260040180806020018281038252602381526020018061479c6023913960400191505060405180910390fd5b600083815260046020908152604080832080546001600160a01b039096166001600160a01b03199096168617905593825260038152838220949094556002909352912055565b600981565b677ce66c50e284000081565b6000805460ff166115c5576040805162461bcd60e51b815260206004820152601960248201526000805160206147bf833981519152604482015290519081900360640190fd5b33611005146116055760405162461bcd60e51b815260040180806020018281038252602f815260200180614468602f913960400191505060405180910390fd5b60004783106116145747611616565b825b9050670de0b6b3a76400008111156116325760009150506116b7565b80156116b4576040516001600160a01b0385169082156108fc029083906000818181858888f1935050505015801561166e573d6000803e3d6000fd5b50604080516001600160a01b03861681526020810183905281517ff8b71c64315fc33b2ead2adfa487955065152a8ac33d9d5193aafd7f45dc15a0929181900390910190a15b90505b92915050565b61100781565b61100681565b600081565b60026020526000908152604090205481565b60005460ff1681565b600381565b6000805460ff16611734576040805162461bcd60e51b815260206004820152601960248201526000805160206147bf833981519152604482015290519081900360640190fd5b426078018267ffffffffffffffff1610156117805760405162461bcd60e51b81526004018080602001828103825260248152602001806144f56024913960400191505060405180910390fd5b6402540be4003406156117c45760405162461bcd60e51b81526004018080602001828103825260408152602001806148356040913960400191505060405180910390fd5b600080806001600160a01b0388166118a3576001546117ea90879063ffffffff6124a216565b3410156118285760405162461bcd60e51b815260040180806020018281038252606181526020018061457f6061913960800191505060405180910390fd5b6402540be40086061561186c5760405162461bcd60e51b815260040180806020018281038252603c815260200180614644603c913960400191505060405180910390fd5b61187c348763ffffffff61259716565b9050611893866402540be40063ffffffff6124fc16565b6221272160e91b93509150611b46565b6001600160a01b0388166000908152600360205260409020549250826118fa5760405162461bcd60e51b815260040180806020018281038252603181526020018061454e6031913960400191505060405180910390fd5b60015434101561193b5760405162461bcd60e51b815260040180806020018281038252603f8152602001806146a1603f913960400191505060405180910390fd5b506001600160a01b038716600090815260026020526040902054349060088111158061198657506008811180156119865750611984876007198301600a0a63ffffffff6128f016565b155b6119c15760405162461bcd60e51b815260040180806020018281038252603c815260200180614644603c913960400191505060405180910390fd5b6119cb8782612932565b92506119d684612972565b15611a1e576305f5e100831015611a1e5760405162461bcd60e51b815260040180806020018281038252603a815260200180614497603a913960400191505060405180910390fd5b600881101580611a385750600881108015611a3857508683115b611a735760405162461bcd60e51b81526004018080602001828103825260258152602001806145e06025913960400191505060405180910390fd5b677ce66c50e2840000831115611aba5760405162461bcd60e51b81526004018080602001828103825260358152602001806145196035913960400191505060405180910390fd5b604080516323b872dd60e01b81523360048201523060248201526044810189905290516001600160a01b038b16916323b872dd9160648083019260209291908290030181600087803b158015611b0f57600080fd5b505af1158015611b23573d6000803e3d6000fd5b505050506040513d6020811015611b3957600080fd5b5051611b4457600080fd5b505b611b4e61434e565b6040805160c0810182528581526001600160a01b038b166020820152815160018082528184018452919283019181602001602082028036833750505081526040805160018082528183019092526020928301929091908083019080368337505050815260408051600180825281830190925260209283019290919080830190803683370190505081526020018767ffffffffffffffff168152509050828160400151600081518110611bfc57fe5b602002602001018181525050878160600151600081518110611c1a57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050338160800151600081518110611c4c57fe5b6001600160a01b039092166020928302919091019091015261200063f7a251d76003611c77846125d9565b611c8c866402540be40063ffffffff6124fc16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611cea578181015183820152602001611cd2565b50505050905090810190601f168015611d175780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015611d3857600080fd5b505af1158015611d4c573d6000803e3d6000fd5b5050604080516001600160a01b038d1681523360208201528082018b90526060810186905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a150600198975050505050505050565b3361100714611def5760405162461bcd60e51b815260040180806020018281038252602e8152602001806146e0602e913960400191505060405180910390fd5b60208114611e44576040805162461bcd60e51b815260206004820152601b60248201527f65787065637465642076616c7565206c656e6774682069732033320000000000604482015290519081900360640190fd5b606084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8801819004810282018101909252868152939450606093925086915085908190840183828082843760009201919091525050505060208301519091506772656c617946656560c01b811415611f4c576020820151670de0b6b3a76400008111801590611ef357506402540be4008106155b611f44576040805162461bcd60e51b815260206004820152601960248201527f7468652072656c6179466565206f7574206f662072616e676500000000000000604482015290519081900360640190fd5b600155611f89565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a878787876040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050505050565b61c35081565b33611008146120645760405162461bcd60e51b815260040180806020018281038252602381526020018061479c6023913960400191505060405180910390fd5b600091825260046020908152604080842080546001600160a01b03191690556001600160a01b0392909216835260039052812055565b6221272160e91b81565b6001600160a01b031660009081526003602052604090205490565b61100281565b60005460ff1661210a576040805162461bcd60e51b815260206004820152601960248201526000805160206147bf833981519152604482015290519081900360640190fd5b336120001461214a5760405162461bcd60e51b815260040180806020018281038252602f81526020018061476d602f913960400191505060405180910390fd5b60ff8316600314156114745761146f82828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612a7892505050565b61100381565b60005460ff16156121f3576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b662386f26fc1000060019081556000808052600260205260127fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b55805460ff19169091179055565b600481565b600581565b61100081565b61271081565b6001600160a01b03811660009081526003602090815260409182902054825182815280840190935260609290918391906020820181803683375050506020810183905290506000805b60208160ff1610156122e157828160ff16815181106122b557fe5b01602001516001600160f81b031916156122d4576001909101906122d9565b6122e1565b60010161229a565b5060608160ff166040519080825280601f01601f191660200182016040528015612312576020820181803683370190505b50905060005b8260ff168160ff16101561236e57838160ff168151811061233557fe5b602001015160f81c60f81b828260ff168151811061234f57fe5b60200101906001600160f81b031916908160001a905350600101612318565b5095945050505050565b61100481565b606061238861439a565b600061239384612b76565b91509150806123e9576040805162461bcd60e51b815260206004820152601f60248201527f756e7265636f676e697a6564207472616e73666572496e207061636b61676500604482015290519081900360640190fd5b60006123f483612cb5565b905063ffffffff811615612488576040808401516020808601516001600160a01b0316600090815260029091529182205461242f9190612932565b90506124396143cf565b60405180608001604052808660000151815260200183815260200186608001516001600160a01b031681526020018463ffffffff16815250905061247c81613002565b95505050505050610e58565b50506040805160008152602081019091529150610e589050565b6000828201838110156116b4576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60006116b483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506130de565b60008261254d575060006116b7565b8282028284828161255a57fe5b04146116b45760405162461bcd60e51b81526004018080602001828103825260218152602001806146806021913960400191505060405180910390fd5b60006116b483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613180565b60408051600680825260e08201909252606091829190816020015b60608152602001906001900390816125f45750508351909150612616906131da565b8160008151811061262357fe5b602002602001018190525061264483602001516001600160a01b03166131ed565b8160018151811061265157fe5b60200260200101819052506000836040015151905060608160405190808252806020026020018201604052801561269c57816020015b60608152602001906001900390816126875790505b50905060005b828110156126e9576126ca866040015182815181106126bd57fe5b60200260200101516131da565b8282815181106126d657fe5b60209081029190910101526001016126a2565b506126f381613210565b8360028151811061270057fe5b602002602001018190525060608260405190808252806020026020018201604052801561274157816020015b606081526020019060019003908161272c5790505b50905060005b83811015612797576127788760600151828151811061276257fe5b60200260200101516001600160a01b03166131ed565b82828151811061278457fe5b6020908102919091010152600101612747565b506127a181613210565b846003815181106127ae57fe5b60200260200101819052506060836040519080825280602002602001820160405280156127ef57816020015b60608152602001906001900390816127da5790505b50905060005b8481101561282f576128108860800151828151811061276257fe5b82828151811061281c57fe5b60209081029190910101526001016127f5565b5061283981613210565b8560048151811061284657fe5b60200260200101819052506128688760a0015167ffffffffffffffff166131da565b8560058151811061287557fe5b602002602001018190525061288985613210565b979650505050505050565b61289c6143f6565b60006128a78361329a565b91509150806128e75760405162461bcd60e51b815260040180806020018281038252602481526020018061470e6024913960400191505060405180910390fd5b6114e382613465565b60006116b483836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f00000000000000008152506138e9565b6000600882111561295b57612954836007198401600a0a63ffffffff6124fc16565b90506116b7565b6116b4836008849003600a0a63ffffffff61253e16565b604080516020808252818301909252600091606091906020820181803683375050506020810184905290506000805b60208160ff1610156129e857828160ff16815181106129bc57fe5b01602001516001600160f81b031916156129db576001909101906129e0565b6129e8565b6001016129a1565b50600860ff82161015612a0057600092505050610e58565b816005820360ff1681518110612a1257fe5b6020910101516001600160f81b031916602d60f81b14612a3757600092505050610e58565b816001820360ff1681518110612a4957fe5b6020910101516001600160f81b031916604d60f81b14612a6e57600092505050610e58565b5060019392505050565b612a8061434e565b6000612a8b8361394b565b9150915080612acb5760405162461bcd60e51b81526004018080602001828103825260248152602001806144d16024913960400191505060405180910390fd5b612ad36143f6565b602080840180516001600160a01b0390811684526040808701518585015291511660009081526002909252812054905b846040015151811015612b5457612b3185604001518281518110612b2357fe5b602002602001015183613bc6565b85604001518281518110612b4157fe5b6020908102919091010152600101612b03565b506080840151604083015260056060830152612b6f82613465565b5050505050565b612b7e61439a565b6000612b8861439a565b612b9061442d565b612ba1612b9c86613bff565b613c24565b90506000805b612bb083613c6e565b15612ca85780612bd257612bcb612bc684613c8f565b613cdd565b8452612ca0565b8060011415612bff57612bec612be784613c8f565b613d94565b6001600160a01b03166020850152612ca0565b8060021415612c1e57612c14612bc684613c8f565b6040850152612ca0565b8060031415612c4657612c33612be784613c8f565b6001600160a01b03166060850152612ca0565b8060041415612c6e57612c5b612be784613c8f565b6001600160a01b03166080850152612ca0565b8060051415612c9b57612c83612bc684613c8f565b67ffffffffffffffff1660a085015260019150612ca0565b612ca8565b600101612ba7565b5091935090915050915091565b60208101516000906001600160a01b0316612dec578160a0015167ffffffffffffffff16421115612ce857506001610e58565b8160400151471015612cfc57506003610e58565b606082015160408084015190516000926001600160a01b0316916127109184818181858888f193505050503d8060008114612d53576040519150601f19603f3d011682016040523d82523d6000602084013e612d58565b606091505b5050905080612d6b575060049050610e58565b7f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5983602001518460600151856040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a15060009050610e58565b8160a0015167ffffffffffffffff16421115612e0a57506001610e58565b81516020808401516001600160a01b031660009081526003909152604090205414612e3757506002610e58565b602080830151604080516370a0823160e01b815230600482015290516000936001600160a01b03909316926370a082319261c3509260248083019392829003018187803b158015612e8757600080fd5b5086fa158015612e9b573d6000803e3d6000fd5b50505050506040513d6020811015612eb257600080fd5b50516040840151909150811015612ecd575060039050610e58565b600083602001516001600160a01b031663a9059cbb61c350866060015187604001516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b158015612f3e57600080fd5b5087f1158015612f52573d6000803e3d6000fd5b50505050506040513d6020811015612f6957600080fd5b505190508015612ff6577f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5984602001518560600151866040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a15060009150610e589050565b5060059150610e589050565b60408051600480825260a08201909252606091829190816020015b606081526020019060019003908161301d575050835190915061303f906131da565b8160008151811061304c57fe5b602002602001018190525061306483602001516131da565b8160018151811061307157fe5b602002602001018190525061309283604001516001600160a01b03166131ed565b8160028151811061309f57fe5b60200260200101819052506130bd836060015163ffffffff166131da565b816003815181106130ca57fe5b6020026020010181905250610e2c81613210565b6000818361316a5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561312f578181015183820152602001613117565b50505050905090810190601f16801561315c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161317657fe5b0495945050505050565b600081848411156131d25760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561312f578181015183820152602001613117565b505050900390565b60606116b76131e883613dae565b613e94565b60408051600560a21b8318601482015260348101909152606090610e2c81613e94565b60608151600014156132315750604080516000815260208101909152610e58565b60608260008151811061324057fe5b602002602001015190506000600190505b8351811015613281576132778285838151811061326a57fe5b6020026020010151613ee6565b9150600101613251565b50610e2c613294825160c060ff16613f63565b82613ee6565b6132a26143f6565b60006132ac6143f6565b6132b461442d565b6132c0612b9c86613bff565b90506000805b6132cf83613c6e565b15612ca857806132f5576132e5612be784613c8f565b6001600160a01b0316845261345d565b806001141561339657606061331161330c85613c8f565b61405b565b9050805160405190808252806020026020018201604052801561333e578160200160208202803683370190505b50602086015260005b815181101561338f5761336c82828151811061335f57fe5b6020026020010151613cdd565b8660200151828151811061337c57fe5b6020908102919091010152600101613347565b505061345d565b80600214156134385760606133ad61330c85613c8f565b905080516040519080825280602002602001820160405280156133da578160200160208202803683370190505b50604086015260005b815181101561338f576134088282815181106133fb57fe5b6020026020010151613d94565b8660400151828151811061341857fe5b6001600160a01b03909216602092830291909101909101526001016133e3565b8060031415612c9b5761344d612bc684613c8f565b63ffffffff166060850152600191505b6001016132c6565b80516001600160a01b031661368f5760005b8160200151518110156136895760008260400151828151811061349657fe5b60200260200101516001600160a01b0316612710846020015184815181106134ba57fe5b60209081029190910101516040516000818181858888f193505050503d8060008114613502576040519150601f19603f3d011682016040523d82523d6000602084013e613507565b606091505b50509050806135ca577f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061354657fe5b60200260200101518560200151858151811061355e57fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a1613680565b7fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a83600001518460400151848151811061360057fe5b60200260200101518560200151858151811061361857fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b50600101613477565b506138e6565b60005b8160200151518110156138e457600082600001516001600160a01b031663a9059cbb61c350856040015185815181106136c757fe5b6020026020010151866020015186815181106136df57fe5b60200260200101516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b15801561373657600080fd5b5087f115801561374a573d6000803e3d6000fd5b50505050506040513d602081101561376157600080fd5b505190508015613825577fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a8360000151846040015184815181106137a157fe5b6020026020010151856020015185815181106137b957fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a16138db565b7f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061385b57fe5b60200260200101518560200151858151811061387357fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b50600101613692565b505b50565b600081836139385760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561312f578181015183820152602001613117565b5082848161394257fe5b06949350505050565b61395361434e565b600061395d61434e565b61396561442d565b613971612b9c86613bff565b90506000805b61398083613c6e565b15613bb8578061399d57613996612bc684613c8f565b8452613bb0565b80600114156139c5576139b2612be784613c8f565b6001600160a01b03166020850152613bb0565b8060021415613a545760606139dc61330c85613c8f565b90508051604051908082528060200260200182016040528015613a09578160200160208202803683370190505b50604086015260005b8151811015613a4d57613a2a82828151811061335f57fe5b86604001518281518110613a3a57fe5b6020908102919091010152600101613a12565b5050613bb0565b8060031415613ae9576060613a6b61330c85613c8f565b90508051604051908082528060200260200182016040528015613a98578160200160208202803683370190505b50606086015260005b8151811015613a4d57613ab98282815181106133fb57fe5b86606001518281518110613ac957fe5b6001600160a01b0390921660209283029190910190910152600101613aa1565b8060041415613b7e576060613b0061330c85613c8f565b90508051604051908082528060200260200182016040528015613b2d578160200160208202803683370190505b50608086015260005b8151811015613a4d57613b4e8282815181106133fb57fe5b86608001518281518110613b5e57fe5b6001600160a01b0390921660209283029190910190910152600101613b36565b8060051415613bab57613b93612bc684613c8f565b67ffffffffffffffff1660a085015260019150613bb0565b613bb8565b600101613977565b509195600195509350505050565b60006008821115613be857612954836007198401600a0a63ffffffff61253e16565b6116b4836008849003600a0a63ffffffff6124fc16565b613c0761444d565b506040805180820190915281518152602082810190820152919050565b613c2c61442d565b613c358261412c565b613c3e57600080fd5b6000613c4d836020015161415c565b60208085015160408051808201909152868152920190820152915050919050565b6000613c7861444d565b505080518051602091820151919092015191011190565b613c9761444d565b613ca082613c6e565b613ca957600080fd5b60208201516000613cb9826141bf565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590613cf257508151602110155b613cfb57600080fd5b6000613d0a836020015161415c565b90508083600001511015613d65576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015613d8b57826020036101000a820491505b50949350505050565b8051600090601514613da557600080fd5b6116b782613cdd565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416613df257506018613e16565b6fffffffffffffffffffffffffffffffff198416613e1257506010613e16565b5060005b6020811015613e4c57818181518110613e2b57fe5b01602001516001600160f81b03191615613e4457613e4c565b600101613e16565b60008160200390506060816040519080825280601f01601f191660200182016040528015613e81576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015613ec65750607f60f81b82600081518110613eb457fe5b01602001516001600160f81b03191611155b15613ed2575080610e58565b6116b7613ee48351608060ff16613f63565b835b6060806040519050835180825260208201818101602087015b81831015613f17578051835260209283019201613eff565b50855184518101855292509050808201602086015b81831015613f44578051835260209283019201613f2c565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310613fb3576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b6040805160018082528183019092526060916020820181803683370190505090506037841161400d5782840160f81b81600081518110613fef57fe5b60200101906001600160f81b031916908160001a90535090506116b7565b606061401885613dae565b90508381510160370160f81b8260008151811061403157fe5b60200101906001600160f81b031916908160001a9053506140528282613ee6565b95945050505050565b60606140668261412c565b61406f57600080fd5b600061407a836142f2565b90506060816040519080825280602002602001820160405280156140b857816020015b6140a561444d565b81526020019060019003908161409d5790505b50905060006140ca856020015161415c565b60208601510190506000805b84811015614121576140e7836141bf565b915060405180604001604052808381526020018481525084828151811061410a57fe5b6020908102919091010152918101916001016140d6565b509195945050505050565b805160009061413d57506000610e58565b6020820151805160001a9060c0821015612a6e57600092505050610e58565b8051600090811a6080811015614176576000915050610e58565b60b8811080614191575060c08110801590614191575060f881105b156141a0576001915050610e58565b60c08110156141b45760b519019050610e58565b60f519019050610e58565b80516000908190811a60808110156141da57600191506142eb565b60b88110156141ef57607e19810191506142eb565b60c081101561426957600060b78203600186019550806020036101000a865104915060018101820193505080831015614263576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b506142eb565b60f881101561427e5760be19810191506142eb565b600060f78203600186019550806020036101000a8651049150600181018201935050808310156142e9576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b805160009061430357506000610e58565b60008090506000614317846020015161415c565b602085015185519181019250015b8082101561434557614336826141bf565b60019093019290910190614325565b50909392505050565b6040518060c001604052806000801916815260200160006001600160a01b03168152602001606081526020016060815260200160608152602001600067ffffffffffffffff1681525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b60408051608081018252600080825260208201819052918101829052606081019190915290565b604051806080016040528060006001600160a01b031681526020016060815260200160608152602001600063ffffffff1681525090565b604051806040016040528061444061444d565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe746865206d6573736167652073656e646572206d75737420626520696e63656e746976697a6520636f6e7472616374466f72206d696e69546f6b656e2c20746865207472616e7366657220616d6f756e74206d757374206e6f74206265206c657373207468616e2031756e7265636f676e697a6564207472616e736665724f75742073796e207061636b61676565787069726554696d65206d7573742062652074776f206d696e75746573206c61746572616d6f756e7420697320746f6f206c617267652c20657863656564206d6178696d756d206265703220746f6b656e20616d6f756e7474686520636f6e747261637420686173206e6f74206265656e20626f756e6420746f20616e79206265703220746f6b656e726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e736665724f757420424e4220616d6f756e7420616e64206d696e696d756d2072656c6179466565616d6f756e7420697320746f6f206c617267652c2075696e74323536206f766572666c6f774c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620726566756e644164647273696e76616c6964207472616e7366657220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e20746865206d696e696d756d2072656c6179466565746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374756e7265636f676e697a6564207472616e736665724f75742061636b207061636b6167654c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620616d6f756e7473746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d73672073656e646572206d75737420626520746f6b656e4d616e6167657274686520636f6e7472616374206e6f7420696e69742079657400000000000000726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e7366657220424e4220616d6f756e7420616e642072656c6179466565696e76616c696420726563656976656420424e4220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6ea2646970667358221220560ad3b1f9184c6b58a836a4c111faf5fdf5dc0e93dc1c013cd41cea18c69cbb64736f6c63430006040033", - }, - { - ContractAddr: RelayerIncentivizeContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/823b953232a344ba3c32d6690e70a245477e5760", - Code: "6080604052600436106102765760003560e01c80637e146cc51161014f578063af400681116100c1578063e75d72c71161007a578063e75d72c714610795578063e89a3020146107c8578063f9a2bbc7146107f2578063fc3e590814610807578063fd6a68791461081c578063fdd31fcd146108315761027d565b8063af400681146106ed578063bd4cc83014610717578063c81b166214610741578063dc927faf14610756578063dcae76ab1461076b578063e1c7392a146107805761027d565b8063a3c3c0ad11610113578063a3c3c0ad146105b3578063a78abc16146105c8578063a7c6a59d146105dd578063ab51bb96146105f2578063ac43175114610607578063ace9fcc2146106d85761027d565b80637e146cc51461052c578063930e1b091461054157806396713da9146105745780639dc0926214610589578063a1a11bf51461059e5761027d565b806343756e5c116101e85780636e47b482116101ac5780636e47b482146104645780636f93d2e61461047957806370fd5bad146104d857806374f2272d146104ed57806375d47a0a146105025780637942fd05146105175761027d565b806343756e5c146103e4578063493279b1146103f95780634bf6c8821461042557806351e806721461043a578063541333071461044f5761027d565b806312950c461161023a57806312950c46146103165780631b20087c1461032b5780631c643312146103405780633a975612146102825780633dffc3871461038657806340bb43c0146103b15761027d565b8063081e9d131461028257806308f2ec06146102a9578063093f2fc4146102be5780630bee7a67146102d357806310e06a76146103015761027d565b3661027d57005b600080fd5b34801561028e57600080fd5b50610297610864565b60408051918252519081900360200190f35b3480156102b557600080fd5b50610297610869565b3480156102ca57600080fd5b5061029761086e565b3480156102df57600080fd5b506102e8610873565b6040805163ffffffff9092168252519081900360200190f35b34801561030d57600080fd5b50610297610878565b34801561032257600080fd5b5061029761087e565b34801561033757600080fd5b50610297610884565b34801561034c57600080fd5b5061036a6004803603602081101561036357600080fd5b503561088a565b604080516001600160a01b039092168252519081900360200190f35b34801561039257600080fd5b5061039b610864565b6040805160ff9092168252519081900360200190f35b3480156103bd57600080fd5b50610297600480360360208110156103d457600080fd5b50356001600160a01b03166108b1565b3480156103f057600080fd5b5061036a6108c3565b34801561040557600080fd5b5061040e6108c9565b6040805161ffff9092168252519081900360200190f35b34801561043157600080fd5b5061039b6108ce565b34801561044657600080fd5b5061036a6108d3565b34801561045b57600080fd5b50610297610873565b34801561047057600080fd5b5061036a6108d9565b34801561048557600080fd5b506104c46004803603608081101561049c57600080fd5b506001600160a01b0381358116916020810135909116906040810135906060013515156108df565b604080519115158252519081900360200190f35b3480156104e457600080fd5b5061039b610cad565b3480156104f957600080fd5b50610297610cb2565b34801561050e57600080fd5b5061036a610cb8565b34801561052357600080fd5b5061039b610cbe565b34801561053857600080fd5b50610297610cc3565b34801561054d57600080fd5b506102976004803603602081101561056457600080fd5b50356001600160a01b0316610cc8565b34801561058057600080fd5b5061039b610cda565b34801561059557600080fd5b5061036a610cdf565b3480156105aa57600080fd5b5061036a610ce5565b3480156105bf57600080fd5b50610297610ceb565b3480156105d457600080fd5b506104c4610cf1565b3480156105e957600080fd5b50610297610cfa565b3480156105fe57600080fd5b506102e8610d00565b34801561061357600080fd5b506106d66004803603604081101561062a57600080fd5b81019060208101813564010000000081111561064557600080fd5b82018360208201111561065757600080fd5b8035906020019184600183028401116401000000008311171561067957600080fd5b91939092909160208101903564010000000081111561069757600080fd5b8201836020820111156106a957600080fd5b803590602001918460018302840111640100000000831117156106cb57600080fd5b509092509050610d05565b005b3480156106e457600080fd5b50610297611354565b3480156106f957600080fd5b506102976004803603602081101561071057600080fd5b503561135a565b34801561072357600080fd5b506102976004803603602081101561073a57600080fd5b50356113b5565b34801561074d57600080fd5b5061036a6113ce565b34801561076257600080fd5b5061036a6113d4565b34801561077757600080fd5b506102976113da565b34801561078c57600080fd5b506106d66113e0565b3480156107a157600080fd5b506106d6600480360360208110156107b857600080fd5b50356001600160a01b03166114a9565b3480156107d457600080fd5b5061036a600480360360208110156107eb57600080fd5b5035611602565b3480156107fe57600080fd5b5061036a61160f565b34801561081357600080fd5b5061039b611615565b34801561082857600080fd5b5061036a61161a565b34801561083d57600080fd5b506102976004803603602081101561085457600080fd5b50356001600160a01b0316611620565b600181565b602881565b605081565b606481565b600b5481565b60015481565b600c5481565b6006818154811061089757fe5b6000918252602090912001546001600160a01b0316905081565b60076020526000908152604090205481565b61100181565b606081565b600881565b61200081565b61100581565b6000805460ff16610937576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604482015290519081900360640190fd5b33612000146109775760405162461bcd60e51b815260040180806020018281038252602f815260200180612164602f913960400191505060405180910390fd5b600082156109fc57604080516309a99b4f60e41b8152611005600482015260248101869052905161100291639a99b4f09160448083019260209291908290030181600087803b1580156109c957600080fd5b505af11580156109dd573d6000803e3d6000fd5b505050506040513d60208110156109f357600080fd5b50519050610a75565b604080516309a99b4f60e41b8152611005600482015260248101869052905161100491639a99b4f09160448083019260209291908290030181600087803b158015610a4657600080fd5b505af1158015610a5a573d6000803e3d6000fd5b505050506040513d6020811015610a7057600080fd5b505190505b600c805460010190556000610a8982611632565b600954909150610a9f908263ffffffff61166116565b600955600a54610ac7908290610abb908563ffffffff61166116565b9063ffffffff6116c216565b600a556001600160a01b038716600090815260056020526040902054610b3357600680546001810182556000919091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319166001600160a01b0389161790555b6001600160a01b038088166000908152600560209081526040808320805460010190559289168252600790522054610bb157600880546001810182556000919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319166001600160a01b0388161790555b6001600160a01b038616600090815260076020526040902080546001019055600c54606411610ca057600b54600954600a5460408051938452602084019290925282820152517f2649b1b772a1a74bd332a67695e285317dd722941166595741c60a00fa65bb759181900360600190a16000610c2b611704565b90506000610c376119e8565b6001600160a01b0389166000908152600d6020526040902054909150610c75908290610c69908563ffffffff61166116565b9063ffffffff61166116565b6001600160a01b0389166000908152600d6020526040812091909155600b80546001019055600c5550505b5060019695505050505050565b600281565b60035481565b61100881565b600b81565b600581565b60056020526000908152604090205481565b600981565b61100781565b61100681565b600a5481565b60005460ff1681565b60045481565b600081565b3361100714610d455760405162461bcd60e51b815260040180806020018281038252602e8152602001806120a9602e913960400191505060405180910390fd5b60005460ff16610d865760405162461bcd60e51b81526004018080602001828103825260218152602001806120d76021913960400191505060405180910390fd5b610dfa84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601f81527f68656164657252656c61796572526577617264526174654d6f6c6563756c650060208201529150611c669050565b15610ec75760208114610e3e5760405162461bcd60e51b81526004018080602001828103825260328152602001806121936032913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610e7c91858580838501838280828437600092019190915250611d4d92505050565b9050600254811115610ebf5760405162461bcd60e51b8152600401808060200182810382526060815260200180611f826060913960600191505060405180910390fd5b6001556112c2565b610f2084848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805160608101909152602280825290925090506120876020830139611c66565b15610ff85760208114610f645760405162461bcd60e51b815260040180806020018281038252602e815260200180612038602e913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610fa291858580838501838280828437600092019190915250611d4d92505050565b90508015801590610fb557506001548110155b610ff05760405162461bcd60e51b815260040180806020018281038252606c8152602001806120f8606c913960800191505060405180910390fd5b6002556112c2565b61106c84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601a81527f63616c6c6572436f6d70656e736174696f6e4d6f6c6563756c6500000000000060208201529150611c669050565b1561113957602081146110b05760405162461bcd60e51b815260040180806020018281038252602e815260200180612038602e913960400191505060405180910390fd5b604080516020601f84018190048102820181019092528281526000916110ee91858580838501838280828437600092019190915250611d4d92505050565b90506004548111156111315760405162461bcd60e51b8152600401808060200182810382526056815260200180611fe26056913960600191505060405180910390fd5b6003556112c2565b6111ad84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601d81527f63616c6c6572436f6d70656e736174696f6e44656e6f6d696e61746f7200000060208201529150611c669050565b1561128557602081146111f15760405162461bcd60e51b815260040180806020018281038252602e815260200180612038602e913960400191505060405180910390fd5b604080516020601f840181900481028201810190925282815260009161122f91858580838501838280828437600092019190915250611d4d92505050565b9050801580159061124257506003548110155b61127d5760405162461bcd60e51b8152600401808060200182810382526061815260200180611f216061913960800191505060405180910390fd5b6004556112c2565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b60025481565b60006028821161136b5750806113b0565b81602810801561137c575060508211155b15611389575060286113b0565b60508211801561139a5750606e8211155b156113aa575060788190036113b0565b50600481045b919050565b6000602882116113c65750806113b0565b5060286113b0565b61100281565b61100381565b60095481565b60005460ff1615611438576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b60005460ff1615611486576040805162461bcd60e51b8152602060048201526013602482015272185b1c9958591e481a5b9a5d1a585b1a5e9959606a1b604482015290519081900360640190fd5b60018080556005600255600381905560506004556000805460ff19169091179055565b6001600160a01b0381166000908152600d602052604090205480611508576040805162461bcd60e51b81526020600482015260116024820152701b9bc81c995b185e595c881c995dd85c99607a1b604482015290519081900360640190fd5b6001600160a01b0382166000818152600d60205260408082208290555184929184156108fc02918591818181858888f193505050506115b85760405161100290819084156108fc029085906000818181858888f19350505050158015611572573d6000803e3d6000fd5b506040805161100281526020810185905281517f24502838a334c8f2bb2ee1f8262a4fa7183e4489a717e96cc824e325f8b39e11929181900390910190a15050506115ff565b604080516001600160a01b03851681526020810184905281517f24502838a334c8f2bb2ee1f8262a4fa7183e4489a717e96cc824e325f8b39e11929181900390910190a150505b50565b6008818154811061089757fe5b61100081565b600381565b61100481565b600d6020526000908152604090205481565b600061165b60025461164f60015485611d5290919063ffffffff16565b9063ffffffff611dab16565b92915050565b6000828201838110156116bb576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b60006116bb83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ded565b600954600680546040805160208084028201810190925282815260009493859360609383018282801561176057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611742575b5050505050905060608151604051908082528060200260200182016040528015611794578160200160208202803683370190505b50905060005b82518110156118215760008382815181106117b157fe5b6020026020010151905060006117eb60056000846001600160a01b03166001600160a01b03168152602001908152602001600020546113b5565b9050808484815181106117fa57fe5b6020908102919091010152611815868263ffffffff61166116565b9550505060010161179a565b50600061183f60045461164f60035488611d5290919063ffffffff16565b9050611851858263ffffffff6116c216565b94508460015b845181101561192857600061188c8761164f8a88868151811061187657fe5b6020026020010151611d5290919063ffffffff16565b90506118d981600d60008986815181106118a257fe5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205461166190919063ffffffff16565b600d60008885815181106118e957fe5b6020908102919091018101516001600160a01b031682528101919091526040016000205561191d838263ffffffff6116c216565b925050600101611857565b5061193e81600d6000876000815181106118a257fe5b600d60008660008151811061194f57fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002081905550600060098190555060008090505b84518110156119d057600560008683815181106119a257fe5b6020908102919091018101516001600160a01b03168252810191909152604001600090812055600101611989565b506119dd60066000611ee9565b509450505050505b90565b600a546008805460408051602080840282018101909252828152600094938593606093830182828015611a4457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611a26575b5050505050905060608151604051908082528060200260200182016040528015611a78578160200160208202803683370190505b50905060005b8251811015611af7576000838281518110611a9557fe5b602002602001015190506000611acf60076000846001600160a01b03166001600160a01b031681526020019081526020016000205461135a565b905080848481518110611ade57fe5b6020908102919091010152949094019350600101611a7e565b506000611b1560045461164f60035488611d5290919063ffffffff16565b9050611b27858263ffffffff6116c216565b94508460015b8451811015611bb1576000611b4c8761164f8a88868151811061187657fe5b9050611b6281600d60008986815181106118a257fe5b600d6000888581518110611b7257fe5b6020908102919091018101516001600160a01b0316825281019190915260400160002055611ba6838263ffffffff6116c216565b925050600101611b2d565b50611bc781600d6000876000815181106118a257fe5b600d600086600081518110611bd857fe5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020819055506000600a8190555060008090505b8451811015611c595760076000868381518110611c2b57fe5b6020908102919091018101516001600160a01b03168252810191909152604001600090812055600101611c12565b506119dd60086000611ee9565b6000816040516020018082805190602001908083835b60208310611c9b5780518252601f199092019160209182019101611c7c565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310611d095780518252601f199092019160209182019101611cea565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b600082611d615750600061165b565b82820282848281611d6e57fe5b04146116bb5760405162461bcd60e51b81526004018080602001828103825260218152602001806120666021913960400191505060405180910390fd5b60006116bb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611e84565b60008184841115611e7c5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e41578181015183820152602001611e29565b50505050905090810190601f168015611e6e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008183611ed35760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315611e41578181015183820152602001611e29565b506000838581611edf57fe5b0495945050505050565b50805460008255906000526020600020908101906115ff91906119e591905b80821115611f1c5760008155600101611f08565b509056fe746865206e657743616c6c6572436f6d70656e736174696f6e44656e6f6d696e61746f72206d757374206e6f74206265207a65726f20616e64206e6f206c657373207468616e2063616c6c6572436f6d70656e736174696f6e4d6f6c6563756c656e65772068656164657252656c61796572526577617264526174654d6f6c6563756c652073686f756c646e27742062652067726561746572207468616e2068656164657252656c617965725265776172645261746544656e6f6d696e61746f726e65772063616c6c6572436f6d70656e736174696f6e4d6f6c6563756c652073686f756c646e27742062652067726561746572207468616e2063616c6c6572436f6d70656e736174696f6e44656e6f6d696e61746f726c656e677468206f6620726577617264466f7256616c696461746f725365744368616e6765206d69736d61746368536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7768656164657252656c617965725265776172645261746544656e6f6d696e61746f72746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374636f6e747261637420686173206e6f74206265656e20696e697469616c697a6564746865206e65772068656164657252656c617965725265776172645261746544656e6f6d696e61746f72206d757374206e6f74206265207a65726f20616e64206e6f206c657373207468616e2068656164657252656c61796572526577617264526174654d6f6c6563756c65746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e74726163746c656e677468206f662068656164657252656c61796572526577617264526174654d6f6c6563756c65206d69736d61746368a264697066735822122046aa8f3564133ae19cf0f29fe8a7ebdf2a5f74f0268c42431d82384fe137b2ed64736f6c63430006040033", - }, - { - ContractAddr: RelayerHubContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/823b953232a344ba3c32d6690e70a245477e5760", - Code: "6080604052600436106101c25760003560e01c806395468d26116100f7578063c81b166211610095578063f9a2bbc711610064578063f9a2bbc714610529578063fb7cfdd71461053e578063fc3e590814610553578063fd6a687914610568576101c2565b8063c81b1662146104d5578063dc927faf146104ea578063e1c7392a146104ff578063e79a198f14610514576101c2565b8063a1a11bf5116100d1578063a1a11bf5146103c7578063a78abc16146103dc578063ab51bb96146103f1578063ac43175114610406576101c2565b806395468d261461038857806396713da91461039d5780639dc09262146103b2576101c2565b8063541d55481161016457806370fd5bad1161013e57806370fd5bad1461033457806375d47a0a146103495780637942fd051461035e5780637ae2308814610373576101c2565b8063541d5548146102b15780636a87d780146102f85780636e47b4821461031f576101c2565b806343756e5c116101a057806343756e5c1461022a578063493279b11461025b5780634bf6c8821461028757806351e806721461029c576101c2565b80630bee7a67146101c75780631aa3a008146101f55780633dffc387146101ff575b600080fd5b3480156101d357600080fd5b506101dc61057d565b6040805163ffffffff9092168252519081900360200190f35b6101fd610582565b005b34801561020b57600080fd5b5061021461077d565b6040805160ff9092168252519081900360200190f35b34801561023657600080fd5b5061023f610782565b604080516001600160a01b039092168252519081900360200190f35b34801561026757600080fd5b50610270610788565b6040805161ffff9092168252519081900360200190f35b34801561029357600080fd5b5061021461078d565b3480156102a857600080fd5b5061023f610792565b3480156102bd57600080fd5b506102e4600480360360208110156102d457600080fd5b50356001600160a01b0316610798565b604080519115158252519081900360200190f35b34801561030457600080fd5b5061030d6107b6565b60408051918252519081900360200190f35b34801561032b57600080fd5b5061023f6107bc565b34801561034057600080fd5b506102146107c2565b34801561035557600080fd5b5061023f6107c7565b34801561036a57600080fd5b506102146107cd565b34801561037f57600080fd5b5061030d6107d2565b34801561039457600080fd5b5061030d6107df565b3480156103a957600080fd5b506102146107eb565b3480156103be57600080fd5b5061023f6107f0565b3480156103d357600080fd5b5061023f6107f6565b3480156103e857600080fd5b506102e46107fc565b3480156103fd57600080fd5b506101dc610805565b34801561041257600080fd5b506101fd6004803603604081101561042957600080fd5b81019060208101813564010000000081111561044457600080fd5b82018360208201111561045657600080fd5b8035906020019184600183028401116401000000008311171561047857600080fd5b91939092909160208101903564010000000081111561049657600080fd5b8201836020820111156104a857600080fd5b803590602001918460018302840111640100000000831117156104ca57600080fd5b50909250905061080a565b3480156104e157600080fd5b5061023f610c2c565b3480156104f657600080fd5b5061023f610c32565b34801561050b57600080fd5b506101fd610c38565b34801561052057600080fd5b506101fd610cba565b34801561053557600080fd5b5061023f610e73565b34801561054a57600080fd5b5061030d610e79565b34801561055f57600080fd5b50610214610e7f565b34801561057457600080fd5b5061023f610e84565b606481565b3360009081526004602052604090205460ff16156105df576040805162461bcd60e51b81526020600482015260156024820152741c995b185e595c88185b1c9958591e48195e1a5cdd605a1b604482015290519081900360640190fd5b60005460ff16610632576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b61063b33610e8a565b156106775760405162461bcd60e51b815260040180806020018281038252602781526020018061109c6027913960400191505060405180910390fd5b3332146106c1576040805162461bcd60e51b81526020600482015260136024820152721b9bc81c1c9bde1e481a5cc8185b1b1bddd959606a1b604482015290519081900360640190fd5b60015434146107015760405162461bcd60e51b81526004018080602001828103825260258152602001806110776025913960400191505060405180910390fd5b604080518082018252600180548252600254602080840191825233600081815260038352868120955186559251948401949094556004815290849020805460ff1916909217909155825191825291517fdb33a09d38b59a8fa8b7d92a1d82c8015e99f05f67ae9c9ae623157767959496929181900390910190a1565b600181565b61100181565b606081565b600881565b61200081565b6001600160a01b031660009081526004602052604090205460ff1690565b60025481565b61100581565b600281565b61100881565b600b81565b68056bc75e2d6310000081565b67016345785d8a000081565b600981565b61100781565b61100681565b60005460ff1681565b600081565b60005460ff1661085d576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b336110071461089d5760405162461bcd60e51b815260040180806020018281038252602e8152602001806110c3602e913960400191505060405180910390fd5b61090384848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e1c995c5d5a5c995911195c1bdcda5d608a1b60208201529150610e909050565b15610a0657602081146109475760405162461bcd60e51b81526004018080602001828103825260228152602001806110f16022913960400191505060405180910390fd5b604080516020601f840181900481028201810190925282815260009161098591858580838501838280828437600092019190915250610f7792505050565b90506001811180156109a05750683635c9adc5dea000008111155b80156109ad575060025481115b6109fe576040805162461bcd60e51b815260206004820181905260248201527f7468652072657175697265644465706f736974206f7574206f662072616e6765604482015290519081900360640190fd5b600155610b9a565b610a6184848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260048152636475657360e01b60208201529150610e909050565b15610b5d5760208114610abb576040805162461bcd60e51b815260206004820152601760248201527f6c656e677468206f662064756573206d69736d61746368000000000000000000604482015290519081900360640190fd5b604080516020601f8401819004810282018101909252828152600091610af991858580838501838280828437600092019190915250610f7792505050565b9050600081118015610b0c575060015481105b610b55576040805162461bcd60e51b81526020600482015260156024820152747468652064756573206f7574206f662072616e676560581b604482015290519081900360640190fd5b600255610b9a565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b61100281565b61100381565b60005460ff1615610c90576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b68056bc75e2d63100000600190815567016345785d8a00006002556000805460ff19169091179055565b3360009081526004602052604090205460ff16610d15576040805162461bcd60e51b81526020600482015260146024820152731c995b185e595c88191bc81b9bdd08195e1a5cdd60621b604482015290519081900360640190fd5b60005460ff16610d68576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b610d7061105c565b5033600081815260036020908152604091829020825180840190935280548084526001909101549183018290529192916108fc91610db4919063ffffffff610f7c16565b6040518115909202916000818181858888f19350505050158015610ddc573d6000803e3d6000fd5b50602081015160405161100291829181156108fc0291906000818181858888f19350505050158015610e12573d6000803e3d6000fd5b50336000818152600460209081526040808320805460ff191690556003825280832083815560010192909255815192835290517fd17202129b83db7880d6b9f25df81c58ad46f7e0e2c92236b1aa10663a4876679281900390910190a15050565b61100081565b60015481565b600381565b61100481565b3b151590565b6000816040516020018082805190602001908083835b60208310610ec55780518252601f199092019160209182019101610ea6565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310610f335780518252601f199092019160209182019101610f14565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b6000610fbe83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610fc5565b9392505050565b600081848411156110545760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611019578181015183820152602001611001565b50505050905090810190601f1680156110465780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60405180604001604052806000815260200160008152509056fe6465706f7369742076616c7565206973206e6f742065786163746c79207468652073616d65636f6e7472616374206973206e6f7420616c6c6f77656420746f20626520612072656c61796572746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662072657175697265644465706f736974206d69736d61746368a264697066735822122011778451ed6d3e3757ce2e74acfc7fa17bf5d16f07168a6ce073d7c91e583c8c64736f6c63430006040033", - }, - { - ContractAddr: GovHubContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/823b953232a344ba3c32d6690e70a245477e5760", - Code: "608060405234801561001057600080fd5b506004361061018e5760003560e01c8063831d65d1116100de578063ab51bb9611610097578063dc927faf11610071578063dc927faf14610486578063f9a2bbc71461048e578063fc3e590814610496578063fd6a68791461049e5761018e565b8063ab51bb96146103fc578063c81b166214610404578063c8509d811461040c5761018e565b8063831d65d11461034457806396713da9146103c05780639ab1a373146103c85780639dc09262146103d0578063a1a11bf5146103d8578063a78abc16146103e05761018e565b8063493279b11161014b5780636e47b482116101255780636e47b4821461032457806370fd5bad1461032c57806375d47a0a146103345780637942fd051461033c5761018e565b8063493279b1146102f55780634bf6c8821461031457806351e806721461031c5761018e565b80630bee7a67146101935780631182b875146101b45780633a21baae146102a35780633dffc387146102ab57806343756e5c146102c95780634900c4ea146102ed575b600080fd5b61019b6104a6565b6040805163ffffffff9092168252519081900360200190f35b61022e600480360360408110156101ca57600080fd5b60ff82351691908101906040810160208201356401000000008111156101ef57600080fd5b82018360208201111561020157600080fd5b8035906020019184600183028401116401000000008311171561022357600080fd5b5090925090506104ab565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610268578181015183820152602001610250565b50505050905090810190601f1680156102955780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61019b61059a565b6102b361059f565b6040805160ff9092168252519081900360200190f35b6102d16105a4565b604080516001600160a01b039092168252519081900360200190f35b6102b36105aa565b6102fd6105af565b6040805161ffff9092168252519081900360200190f35b6102b36105b4565b6102d16105b9565b6102d16105bf565b6102b36105c5565b6102d16105ca565b6102b36105d0565b6103be6004803603604081101561035a57600080fd5b60ff823516919081019060408101602082013564010000000081111561037f57600080fd5b82018360208201111561039157600080fd5b803590602001918460018302840111640100000000831117156103b357600080fd5b5090925090506105d5565b005b6102b3610667565b61019b61066c565b6102d1610671565b6102d1610677565b6103e861067d565b604080519115158252519081900360200190f35b61019b6105aa565b6102d1610686565b6103be6004803603604081101561042257600080fd5b60ff823516919081019060408101602082013564010000000081111561044757600080fd5b82018360208201111561045957600080fd5b8035906020019184600183028401116401000000008311171561047b57600080fd5b50909250905061068c565b6102d1610703565b6102d1610709565b6102b361070f565b6102d1610714565b606481565b606033612000146104ed5760405162461bcd60e51b815260040180806020018281038252602f8152602001806113e7602f913960400191505060405180910390fd5b6104f5611382565b600061053685858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061071a92505050565b91509150806105525761054960646107e0565b92505050610593565b600061055d8361084a565b905063ffffffff811661058457505060408051600081526020810190915291506105939050565b61058d816107e0565b93505050505b9392505050565b606681565b600181565b61100181565b600081565b606081565b600881565b61200081565b61100581565b600281565b61100881565b600b81565b33612000146106155760405162461bcd60e51b815260040180806020018281038252602f8152602001806113e7602f913960400191505060405180910390fd5b6040805162461bcd60e51b815260206004820152601e60248201527f7265636569766520756e65787065637465642061636b207061636b6167650000604482015290519081900360640190fd5b505050565b600981565b606581565b61100781565b61100681565b60005460ff1681565b61100281565b33612000146106cc5760405162461bcd60e51b815260040180806020018281038252602f8152602001806113e7602f913960400191505060405180910390fd5b60405162461bcd60e51b81526004018080602001828103825260238152602001806114166023913960400191505060405180910390fd5b61100381565b61100081565b600381565b61100481565b610722611382565b600061072c611382565b6107346113ac565b61074561074086610beb565b610c10565b90506000805b61075483610c5a565b156107d357806107765761076f61076a84610c7b565b610cc9565b84526107cb565b80600114156107955761078b61076a84610c7b565b60208501526107cb565b80600214156107c6576107af6107aa84610c7b565b610d42565b6001600160a01b03166040850152600191506107cb565b6107d3565b60010161074b565b5091935090915050915091565b604080516001808252818301909252606091829190816020015b60608152602001906001900390816107fa5790505090506108208363ffffffff16610d62565b8160008151811061082d57fe5b602002602001018190525061084181610d75565b9150505b919050565b60006108598260400151610dff565b6108c557604080516020808252601c908201527f74686520746172676574206973206e6f74206120636f6e7472616374000000008183015290517f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb29181900360600190a1506065610845565b81604001516001600160a01b031663ac431751836000015184602001516040518363ffffffff1660e01b8152600401808060200180602001838103835285818151815260200191508051906020019080838360005b8381101561093257818101518382015260200161091a565b50505050905090810190601f16801561095f5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b8381101561099257818101518382015260200161097a565b50505050905090810190601f1680156109bf5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156109e057600080fd5b505af19250505080156109f1575060015b610be3576040516000815260443d1015610a0d57506000610aaa565b60046000803e60005160e01c6308c379a08114610a2e576000915050610aaa565b60043d036004833e81513d602482011167ffffffffffffffff82111715610a5a57600092505050610aaa565b808301805167ffffffffffffffff811115610a7c576000945050505050610aaa565b8060208301013d8601811115610a9a57600095505050505050610aaa565b601f01601f191660405250925050505b80610ab55750610b58565b7f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2816040518080602001828103825283818151815260200191508051906020019080838360005b83811015610b14578181015183820152602001610afc565b50505050905090810190601f168015610b415780820380516001836020036101000a031916815260200191505b509250505060405180910390a16066915050610845565b3d808015610b82576040519150601f19603f3d011682016040523d82523d6000602084013e610b87565b606091505b5060408051602080825283518183015283517f1279f84165b4fd69c35e1f338ff107231b036c655cd1688851e011ce617c4e8d938593928392918301919085019080838360008315610b14578181015183820152602001610afc565b506000919050565b610bf36113cc565b506040805180820190915281518152602082810190820152919050565b610c186113ac565b610c2182610e05565b610c2a57600080fd5b6000610c398360200151610e3f565b60208085015160408051808201909152868152920190820152915050919050565b6000610c646113cc565b505080518051602091820151919092015191011190565b610c836113cc565b610c8c82610c5a565b610c9557600080fd5b60208201516000610ca582610ea2565b80830160209586015260408051808201909152908152938401919091525090919050565b8051606090610cd757600080fd5b6000610ce68360200151610e3f565b83516040805191839003808352601f19601f8201168301602001909152919250606090828015610d1d576020820181803683370190505b5090506000816020019050610d39848760200151018285610fd5565b50949350505050565b8051600090601514610d5357600080fd5b610d5c82611020565b92915050565b6060610d5c610d70836110d5565b6111bb565b6060815160001415610d965750604080516000815260208101909152610845565b606082600081518110610da557fe5b602002602001015190506000600190505b8351811015610de657610ddc82858381518110610dcf57fe5b602002602001015161120d565b9150600101610db6565b50610841610df9825160c060ff1661128a565b8261120d565b3b151590565b8051600090610e1657506000610845565b6020820151805160001a9060c0821015610e3557600092505050610845565b5060019392505050565b8051600090811a6080811015610e59576000915050610845565b60b8811080610e74575060c08110801590610e74575060f881105b15610e83576001915050610845565b60c0811015610e975760b519019050610845565b60f519019050610845565b80516000908190811a6080811015610ebd5760019150610fce565b60b8811015610ed257607e1981019150610fce565b60c0811015610f4c57600060b78203600186019550806020036101000a865104915060018101820193505080831015610f46576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50610fce565b60f8811015610f615760be1981019150610fce565b600060f78203600186019550806020036101000a865104915060018101820193505080831015610fcc576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b80610fdf57610662565b5b60208110610fff578251825260209283019290910190601f1901610fe0565b915181516020939093036101000a6000190180199091169216919091179052565b80516000901580159061103557508151602110155b61103e57600080fd5b600061104d8360200151610e3f565b905080836000015110156110a8576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015610d3957506020919091036101000a90049392505050565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166111195750601861113d565b6fffffffffffffffffffffffffffffffff1984166111395750601061113d565b5060005b60208110156111735781818151811061115257fe5b01602001516001600160f81b0319161561116b57611173565b60010161113d565b60008160200390506060816040519080825280601f01601f1916602001820160405280156111a8576020820181803683370190505b5080830196909652508452509192915050565b6060815160011480156111ed5750607f60f81b826000815181106111db57fe5b01602001516001600160f81b03191611155b156111f9575080610845565b610d5c61120b8351608060ff1661128a565b835b6060806040519050835180825260208201818101602087015b8183101561123e578051835260209283019201611226565b50855184518101855292509050808201602086015b8183101561126b578051835260209283019201611253565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106112da576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b604080516001808252818301909252606091602082018180368337019050509050603784116113345782840160f81b8160008151811061131657fe5b60200101906001600160f81b031916908160001a9053509050610d5c565b606061133f856110d5565b90508381510160370160f81b8260008151811061135857fe5b60200101906001600160f81b031916908160001a905350611379828261120d565b95945050505050565b6040518060600160405280606081526020016060815260200160006001600160a01b031681525090565b60405180604001604052806113bf6113cc565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e74726163747265636569766520756e6578706563746564206661696c2061636b207061636b616765a2646970667358221220ea2b2b402a564a222b3f3e7c0f671622652543c9c5f6cb6c7b8db265ae9ebe4564736f6c63430006040033", - }, - { - ContractAddr: TokenManagerContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/823b953232a344ba3c32d6690e70a245477e5760", - Code: "6080604052600436106102465760003560e01c806375d47a0a11610139578063ab51bb96116100b6578063dc6f5e901161007a578063dc6f5e90146108df578063dc927faf14610975578063f9a2bbc71461098a578063fc3e5908146108df578063fd6a68791461099f578063fe3a2af5146104fd57610246565b8063ab51bb96146108b5578063c81b1662146108ca578063c8509d81146107c5578063c8e704a4146108df578063d117a110146108f457610246565b806395b9ad26116100fd57806395b9ad261461084c57806396713da9146108615780639dc0926214610876578063a1a11bf51461088b578063a78abc16146108a057610246565b806375d47a0a146106e757806377d9dae8146106fc5780637942fd05146107b05780637d078e13146103c8578063831d65d1146107c557610246565b80634a688818116101c75780635f558f861161018b5780635f558f86146105515780636b3f1307146105665780636e47b4821461062e57806370fd5bad1461055157806372c4e0861461064357610246565b80634a688818146104fd5780634bc81c00146105125780634bf6c8821461024b57806351e80672146105275780635d499b1b1461053c57610246565b806323996b531161020e57806323996b53146103c85780633dffc387146103c857806343756e5c146103dd578063445fcefe1461040e578063493279b1146104d157610246565b8063077b8f351461024b5780630bee7a67146102765780630f212b1b146102a45780631182b875146102b95780631f91600b146103b3575b600080fd5b34801561025757600080fd5b506102606109b4565b6040805160ff9092168252519081900360200190f35b34801561028257600080fd5b5061028b6109b9565b6040805163ffffffff9092168252519081900360200190f35b3480156102b057600080fd5b506102606109be565b3480156102c557600080fd5b5061033e600480360360408110156102dc57600080fd5b60ff8235169190810190604081016020820135600160201b81111561030057600080fd5b82018360208201111561031257600080fd5b803590602001918460018302840111600160201b8311171561033357600080fd5b5090925090506109c3565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610378578181015183820152602001610360565b50505050905090810190601f1680156103a55780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103bf57600080fd5b50610260610a4c565b3480156103d457600080fd5b50610260610a51565b3480156103e957600080fd5b506103f2610a56565b604080516001600160a01b039092168252519081900360200190f35b34801561041a57600080fd5b506104bf6004803603602081101561043157600080fd5b810190602081018135600160201b81111561044b57600080fd5b82018360208201111561045d57600080fd5b803590602001918460018302840111600160201b8311171561047e57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610a5c945050505050565b60408051918252519081900360200190f35b3480156104dd57600080fd5b506104e6610bbb565b6040805161ffff9092168252519081900360200190f35b34801561050957600080fd5b50610260610bc0565b34801561051e57600080fd5b50610260610bc5565b34801561053357600080fd5b506103f2610bca565b34801561054857600080fd5b506104bf610bd0565b34801561055d57600080fd5b50610260610bd9565b61061a6004803603604081101561057c57600080fd5b6001600160a01b038235169190810190604081016020820135600160201b8111156105a657600080fd5b8201836020820111156105b857600080fd5b803590602001918460018302840111600160201b831117156105d957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610bde945050505050565b604080519115158252519081900360200190f35b34801561063a57600080fd5b506103f2611460565b61061a6004803603602081101561065957600080fd5b810190602081018135600160201b81111561067357600080fd5b82018360208201111561068557600080fd5b803590602001918460018302840111600160201b831117156106a657600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611466945050505050565b3480156106f357600080fd5b506103f26118b4565b61061a6004803603604081101561071257600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561073c57600080fd5b82018360208201111561074e57600080fd5b803590602001918460018302840111600160201b8311171561076f57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506118ba945050505050565b3480156107bc57600080fd5b50610260611dc1565b3480156107d157600080fd5b5061084a600480360360408110156107e857600080fd5b60ff8235169190810190604081016020820135600160201b81111561080c57600080fd5b82018360208201111561081e57600080fd5b803590602001918460018302840111600160201b8311171561083f57600080fd5b509092509050611dc6565b005b34801561085857600080fd5b50610260611e79565b34801561086d57600080fd5b50610260611e7e565b34801561088257600080fd5b506103f2611e83565b34801561089757600080fd5b506103f2611e89565b3480156108ac57600080fd5b5061061a611e8f565b3480156108c157600080fd5b5061028b610bc0565b3480156108d657600080fd5b506103f2611e98565b3480156108eb57600080fd5b50610260611e9e565b34801561090057600080fd5b5061091e6004803603602081101561091757600080fd5b5035611ea3565b6040805160ff988916815260208101979097526001600160a01b03909516868601526060860193909352608085019190915290931660a083015267ffffffffffffffff90921660c082015290519081900360e00190f35b34801561098157600080fd5b506103f2611efb565b34801561099657600080fd5b506103f2611f01565b3480156109ab57600080fd5b506103f2611f07565b600881565b606481565b600681565b60603361200014610a055760405162461bcd60e51b815260040180806020018281038252602f8152602001806132a0602f913960400191505060405180910390fd5b610a4483838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611f0d92505050565b949350505050565b600481565b600181565b61100181565b6020810151600090610a6c613168565b50600081815260016020818152604092839020835160e081018552815460ff9081168252938201549281019290925260028101546001600160a01b031693820184905260038101546060830152600481015460808301526005015491821660a082015261010090910467ffffffffffffffff1660c082015290610af457600092505050610bb6565b600081604001516001600160a01b03166370a082316110046040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015610b5257600080fd5b505afa158015610b66573d6000803e3d6000fd5b505050506040513d6020811015610b7c57600080fd5b505160808301516060840151919250600091610b9d9163ffffffff61219e16565b9050610baf818363ffffffff61219e16565b9450505050505b919050565b606081565b600081565b600581565b61200081565b6402540be40081565b600281565b600080610bea836121e7565b9050610bf4613168565b50600081815260016020818152604092839020835160e081018552815460ff90811682529382015492810183905260028201546001600160a01b03169481019490945260038101546060850152600481015460808501526005015491821660a084015261010090910467ffffffffffffffff1660c0830152610cba576040805162461bcd60e51b815260206004820152601a602482015279189a5b99081c995c5d595cdd08191bd95cdb89dd08195e1a5cdd60321b604482015290519081900360640190fd5b6000610cd78260800151836060015161219e90919063ffffffff16565b905081604001516001600160a01b0316866001600160a01b031614610d2d5760405162461bcd60e51b815260040180806020018281038252604581526020018061322d6045913960600191505060405180910390fd5b336001600160a01b0316866001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b158015610d7057600080fd5b505afa158015610d84573d6000803e3d6000fd5b505050506040513d6020811015610d9a57600080fd5b50516001600160a01b031614610de15760405162461bcd60e51b815260040180806020018281038252602e815260200180613272602e913960400191505060405180910390fd5b604080516370a0823160e01b8152611004600482015290516000916001600160a01b038916916370a0823191602480820192602092909190829003018186803b158015610e2d57600080fd5b505afa158015610e41573d6000803e3d6000fd5b505050506040513d6020811015610e5757600080fd5b505160408051636eb1769f60e11b815233600482015230602482015290519192508391610ee89184916001600160a01b038c169163dd62ed3e916044808301926020929190829003018186803b158015610eb057600080fd5b505afa158015610ec4573d6000803e3d6000fd5b505050506040513d6020811015610eda57600080fd5b50519063ffffffff6121ee16565b1015610f3b576040805162461bcd60e51b815260206004820152601760248201527f616c6c6f77616e6365206973206e6f7420656e6f756768000000000000000000604482015290519081900360640190fd5b600034905060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b158015610f7d57600080fd5b505afa158015610f91573d6000803e3d6000fd5b505050506040513d6020811015610fa757600080fd5b50519050808210801590610fc057506402540be4008206155b610ffb5760405162461bcd60e51b81526004018080602001828103825260378152602001806131f66037913960400191505060405180910390fd5b6000611007868b612248565b905063ffffffff8116611206576001600160a01b038a166323b872dd33611004611037898963ffffffff61219e16565b6040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b031681526020018281526020019350505050602060405180830381600087803b15801561109f57600080fd5b505af11580156110b3573d6000803e3d6000fd5b505050506040513d60208110156110c957600080fd5b5050602086015160408088015160a089015182516323bfccdb60e21b815260048101949094526001600160a01b03909116602484015260ff1660448301525161100491638eff336c91606480830192600092919082900301818387803b15801561113257600080fd5b505af1158015611146573d6000803e3d6000fd5b50505050896001600160a01b03167f78e7dd9aefcdbf795c4936a66f7dc6d41bb56637b54f561a6bf7829dca3348a88a8860600151886040518080602001848152602001838152602001828103825285818151815260200191508051906020019080838360005b838110156111c55781810151838201526020016111ad565b50505050905090810190601f1680156111f25780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a26112be565b896001600160a01b03167f831c0ef4d93bda3bce08b69ae3f29ef1a6e052b833200988554158494405a1078a8360405180806020018363ffffffff1663ffffffff168152602001828103825284818151815260200191508051906020019080838360005b8381101561128257818101518382015260200161126a565b50505050905090810190601f1680156112af5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a25b60008781526001602081905260408220805460ff191681559081018290556002810180546001600160a01b0319169055600381018290556004810191909155600501805468ffffffffffffffffff191690556113186131a4565b5060408051808201825263ffffffff831681526020810189905290516110049085156108fc029086906000818181858888f19350505050158015611360573d6000803e3d6000fd5b5061200063f7a251d760016113748461269f565b611389886402540be40063ffffffff61272916565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156113e75781810151838201526020016113cf565b50505050905090810190601f1680156114145780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561143557600080fd5b505af1158015611449573d6000803e3d6000fd5b505050506001985050505050505050505b92915050565b61100581565b600080611472836121e7565b905061147c613168565b50600081815260016020818152604092839020835160e081018552815460ff90811682529382015492810183905260028201546001600160a01b03169481019490945260038101546060850152600481015460808501526005015491821660a084015261010090910467ffffffffffffffff1660c0830152611542576040805162461bcd60e51b815260206004820152601a602482015279189a5b99081c995c5d595cdd08191bd95cdb89dd08195e1a5cdd60321b604482015290519081900360640190fd5b428160c0015167ffffffffffffffff16106115a4576040805162461bcd60e51b815260206004820152601b60248201527f62696e642072657175657374206973206e6f7420657870697265640000000000604482015290519081900360640190fd5b600034905060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b1580156115e657600080fd5b505afa1580156115fa573d6000803e3d6000fd5b505050506040513d602081101561161057600080fd5b5051905080821080159061162957506402540be4008206155b6116645760405162461bcd60e51b81526004018080602001828103825260378152602001806131f66037913960400191505060405180910390fd5b60008481526001602081905260408220805460ff191681559081018290556002810180546001600160a01b0319169055600381018290556004810191909155600501805468ffffffffffffffffff191690556116be6131a4565b50604080518082018252600181526020810186905290516110049084156108fc029085906000818181858888f19350505050158015611701573d6000803e3d6000fd5b5061200063f7a251d760016117158461269f565b61172a876402540be40063ffffffff61272916565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611788578181015183820152602001611770565b50505050905090810190601f1680156117b55780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156117d657600080fd5b505af11580156117ea573d6000803e3d6000fd5b5050505083604001516001600160a01b03167f831c0ef4d93bda3bce08b69ae3f29ef1a6e052b833200988554158494405a10788600160405180806020018360ff1663ffffffff168152602001828103825284818151815260200191508051906020019080838360005b8381101561186c578181015183820152602001611854565b50505050905090810190601f1680156118995780820380516001836020036101000a031916815260200191505b50935050505060405180910390a25060019695505050505050565b61100881565b6000806118c6836121e7565b90506118d0613168565b50600081815260016020818152604092839020835160e081018552815460ff90811682529382015492810183905260028201546001600160a01b03169481019490945260038101546060850152600481015460808501526005015491821660a084015261010090910467ffffffffffffffff1660c0830152611996576040805162461bcd60e51b815260206004820152601a602482015279189a5b99081c995c5d595cdd08191bd95cdb89dd08195e1a5cdd60321b604482015290519081900360640190fd5b80604001516001600160a01b0316856001600160a01b0316146119ea5760405162461bcd60e51b815260040180806020018281038252604581526020018061322d6045913960600191505060405180910390fd5b336001600160a01b0316856001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b158015611a2d57600080fd5b505afa158015611a41573d6000803e3d6000fd5b505050506040513d6020811015611a5757600080fd5b50516001600160a01b031614611ab4576040805162461bcd60e51b815260206004820152601b60248201527f6f6e6c79206265703265206f776e65722063616e2072656a6563740000000000604482015290519081900360640190fd5b600034905060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b158015611af657600080fd5b505afa158015611b0a573d6000803e3d6000fd5b505050506040513d6020811015611b2057600080fd5b50519050808210801590611b3957506402540be4008206155b611b745760405162461bcd60e51b81526004018080602001828103825260378152602001806131f66037913960400191505060405180910390fd5b60008481526001602081905260408220805460ff191681559081018290556002810180546001600160a01b0319169055600381018290556004810191909155600501805468ffffffffffffffffff19169055611bce6131a4565b50604080518082018252600781526020810186905290516110049084156108fc029085906000818181858888f19350505050158015611c11573d6000803e3d6000fd5b5061200063f7a251d76001611c258461269f565b611c3a876402540be40063ffffffff61272916565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611c98578181015183820152602001611c80565b50505050905090810190601f168015611cc55780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015611ce657600080fd5b505af1158015611cfa573d6000803e3d6000fd5b50505050876001600160a01b03167f831c0ef4d93bda3bce08b69ae3f29ef1a6e052b833200988554158494405a10788600760405180806020018360ff1663ffffffff168152602001828103825284818151815260200191508051906020019080838360005b83811015611d78578181015183820152602001611d60565b50505050905090810190601f168015611da55780820380516001836020036101000a031916815260200191505b50935050505060405180910390a2506001979650505050505050565b600b81565b3361200014611e065760405162461bcd60e51b815260040180806020018281038252602f8152602001806132a0602f913960400191505060405180910390fd5b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a1505050565b600781565b600981565b61100781565b61100681565b60005460ff1681565b61100281565b600381565b600160208190526000918252604090912080549181015460028201546003830154600484015460059094015460ff9586169593946001600160a01b0390931693919291811690610100900467ffffffffffffffff1687565b61100381565b61100081565b61100481565b6060611f17613168565b6000611f228461276b565b9150915080611f78576040805162461bcd60e51b815260206004820152601f60248201527f756e7265636f676e697a6564207472616e73666572496e207061636b61676500604482015290519081900360640190fd5b815160ff1661202c576020828101805160009081526001928390526040908190208551815460ff1990811660ff928316178355935194820194909455908501516002820180546001600160a01b0319166001600160a01b03909216919091179055606085015160038201556080850151600482015560a08501516005909101805460c08701519316919093161768ffffffffffffffff00191661010067ffffffffffffffff90921691909102179055612183565b815160ff16600114156121365760006110046001600160a01b03166359b9278984602001516040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561208557600080fd5b505afa158015612099573d6000803e3d6000fd5b505050506040513d60208110156120af57600080fd5b505190506001600160a01b038116156121305760208301516040805163b99328c560e01b815260048101929092526001600160a01b0383166024830152516110049163b99328c591604480830192600092919082900301818387803b15801561211757600080fd5b505af115801561212b573d6000803e3d6000fd5b505050505b50612183565b6040805162461bcd60e51b815260206004820152601960248201527f756e7265636f676e697a65642062696e64207061636b61676500000000000000604482015290519081900360640190fd5b60408051600080825260208201909252905b50949350505050565b60006121e083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506128bd565b9392505050565b6020015190565b6000828201838110156121e0576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600080826001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561228457600080fd5b505afa158015612298573d6000803e3d6000fd5b505050506040513d60208110156122ae57600080fd5b5051604080516395d89b4160e01b815290519192506060916001600160a01b038616916395d89b41916004808301926000929190829003018186803b1580156122f657600080fd5b505afa15801561230a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561233357600080fd5b8101908080516040519392919084600160201b82111561235257600080fd5b90830190602082018581111561236757600080fd5b8251600160201b81118282018810171561238057600080fd5b82525081516020918201929091019080838360005b838110156123ad578181015183820152602001612395565b50505050905090810190601f1680156123da5780820380516001836020036101000a031916815260200191505b5060408181526370a0823160e01b82526110046004830152519495506000946001600160a01b038a1694506370a08231935060248083019350602092829003018186803b15801561242a57600080fd5b505afa15801561243e573d6000803e3d6000fd5b505050506040513d602081101561245457600080fd5b5051608087015160608801519192506000916124759163ffffffff61219e16565b9050428760c0015167ffffffffffffffff16101561249b57506001935061145a92505050565b6124a9838860200151612954565b6124bb57506002935061145a92505050565b808211156124d157506003935061145a92505050565b866060015187604001516001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561251357600080fd5b505afa158015612527573d6000803e3d6000fd5b505050506040513d602081101561253d57600080fd5b50511461255257506004935061145a92505050565b8660a0015160ff16841461256e57506005935061145a92505050565b602080880151604080516359b9278960e01b8152600481019290925251600092611004926359b927899260248083019392829003018186803b1580156125b357600080fd5b505afa1580156125c7573d6000803e3d6000fd5b505050506040513d60208110156125dd57600080fd5b50516001600160a01b031614158061267f57506000801b6110046001600160a01b031663bd46646189604001516040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561265057600080fd5b505afa158015612664573d6000803e3d6000fd5b505050506040513d602081101561267a57600080fd5b505114155b1561269257506006935061145a92505050565b5060009695505050505050565b6040805160028082526060828101909352829190816020015b60608152602001906001900390816126b857505083519091506126e09063ffffffff16612a3c565b816000815181106126ed57fe5b6020026020010181905250612708836020015160001c612a3c565b8160018151811061271557fe5b60200260200101819052506121e081612a4f565b60006121e083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612ad9565b612773613168565b600061277d613168565b6127856131bb565b61279661279186612b3e565b612b63565b90506000805b6127a583612bad565b156128b057806127ca576127c06127bb84612bce565b612c1c565b60ff1684526128a8565b80600114156127e9576127df6127bb84612bce565b60208501526128a8565b8060021415612816576128036127fe84612bce565b612cd1565b6001600160a01b031660408501526128a8565b80600314156128355761282b6127bb84612bce565b60608501526128a8565b80600414156128545761284a6127bb84612bce565b60808501526128a8565b8060051415612876576128696127bb84612bce565b60ff1660a08501526128a8565b80600614156128a35761288b6127bb84612bce565b67ffffffffffffffff1660c0850152600191506128a8565b6128b0565b60010161279c565b5091935090915050915091565b6000818484111561294c5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156129115781810151838201526020016128f9565b50505050905090810190601f16801561293e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b815160009083906008108061296a575080516003115b1561297957600091505061145a565b604080516020808252818301909252606091602082018180368337019050509050836020820152808251815181106129ad57fe5b6020910101516001600160f81b031916602d60f81b146129d25760009250505061145a565b600160005b8351811015612a32578281815181106129ec57fe5b602001015160f81c60f81b6001600160f81b031916848281518110612a0d57fe5b01602001516001600160f81b03191614612a2a5760009150612a32565b6001016129d7565b5095945050505050565b606061145a612a4a83612ceb565b612dd1565b6060815160001415612a705750604080516000815260208101909152610bb6565b606082600081518110612a7f57fe5b602002602001015190506000600190505b8351811015612ac057612ab682858381518110612aa957fe5b6020026020010151612e23565b9150600101612a90565b506121e0612ad3825160c060ff16612ea0565b82612e23565b60008183612b285760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156129115781810151838201526020016128f9565b506000838581612b3457fe5b0495945050505050565b612b466131db565b506040805180820190915281518152602082810190820152919050565b612b6b6131bb565b612b7482612f98565b612b7d57600080fd5b6000612b8c8360200151612fd2565b60208085015160408051808201909152868152920190820152915050919050565b6000612bb76131db565b505080518051602091820151919092015191011190565b612bd66131db565b612bdf82612bad565b612be857600080fd5b60208201516000612bf882613035565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590612c3157508151602110155b612c3a57600080fd5b6000612c498360200151612fd2565b90508083600001511015612ca4576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b82516020808501518301805192849003929183101561219557506020919091036101000a90049392505050565b8051600090601514612ce257600080fd5b61145a82612c1c565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416612d2f57506018612d53565b6fffffffffffffffffffffffffffffffff198416612d4f57506010612d53565b5060005b6020811015612d8957818181518110612d6857fe5b01602001516001600160f81b03191615612d8157612d89565b600101612d53565b60008160200390506060816040519080825280601f01601f191660200182016040528015612dbe576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015612e035750607f60f81b82600081518110612df157fe5b01602001516001600160f81b03191611155b15612e0f575080610bb6565b61145a612e218351608060ff16612ea0565b835b6060806040519050835180825260208201818101602087015b81831015612e54578051835260209283019201612e3c565b50855184518101855292509050808201602086015b81831015612e81578051835260209283019201612e69565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310612ef0576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b60408051600180825281830190925260609160208201818036833701905050905060378411612f4a5782840160f81b81600081518110612f2c57fe5b60200101906001600160f81b031916908160001a905350905061145a565b6060612f5585612ceb565b90508381510160370160f81b82600081518110612f6e57fe5b60200101906001600160f81b031916908160001a905350612f8f8282612e23565b95945050505050565b8051600090612fa957506000610bb6565b6020820151805160001a9060c0821015612fc857600092505050610bb6565b5060019392505050565b8051600090811a6080811015612fec576000915050610bb6565b60b8811080613007575060c08110801590613007575060f881105b15613016576001915050610bb6565b60c081101561302a5760b519019050610bb6565b60f519019050610bb6565b80516000908190811a60808110156130505760019150613161565b60b881101561306557607e1981019150613161565b60c08110156130df57600060b78203600186019550806020036101000a8651049150600181018201935050808310156130d9576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50613161565b60f88110156130f45760be1981019150613161565b600060f78203600186019550806020036101000a86510491506001810182019350508083101561315f576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c081019190915290565b604080518082019091526000808252602082015290565b60405180604001604052806131ce6131db565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe72656c6179466565206d757374206265204e202a203165313020616e642067726561746572207468616e206d696e6952656c6179466565636f6e74616374206164647265737320646f65736e277420657175616c20746f2074686520636f6e7472616374206164647265737320696e2062696e6420726571756573746f6e6c79206265703265206f776e65722063616e20617070726f766520746869732062696e642072657175657374746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374a2646970667358221220f5905eb90e4a072fe66973705300bc7792e1c43c73c571a09629b9153e6b871864736f6c63430006040033", - }, - { - ContractAddr: CrossChainContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/823b953232a344ba3c32d6690e70a245477e5760", - Code: "608060405234801561001057600080fd5b50600436106102485760003560e01c8063863fe4ab1161013b578063c81b1662116100b8578063e3b048051161007c578063e3b048051461072c578063f7a251d71461074c578063f9a2bbc7146107c4578063fc3e5908146107cc578063fd6a6879146107d457610248565b8063c81b1662146106dd578063d31f968d146106e5578063d76a867514610714578063dc927faf1461071c578063e1c7392a1461072457610248565b8063a78abc16116100ff578063a78abc16146105d3578063ab51bb96146105db578063ac431751146105e3578063b0355f5b146103ff578063c27cdcfb146106a157610248565b8063863fe4ab146105b35780638cc8f561146104b657806396713da9146105bb5780639dc09262146105c3578063a1a11bf5146105cb57610248565b8063493279b1116101c957806370fd5bad1161018d57806370fd5bad146104b657806374f079b8146104be57806375d47a0a146104c65780637942fd05146104ce57806384013b6a146104d657610248565b8063493279b11461045f5780634bf6c8821461047e57806351e80672146104865780636e47a51a1461048e5780636e47b482146104ae57610248565b8063308325f411610210578063308325f4146102cf5780633bdc47a6146102d75780633dffc387146103ff578063422f90501461040757806343756e5c1461043b57610248565b806305e682581461024d5780630bee7a671461026b57806314b3023b1461028c57806322556cdc146102a65780632ff32aea146102ae575b600080fd5b6102556107dc565b6040805160ff9092168252519081900360200190f35b6102736107e1565b6040805163ffffffff9092168252519081900360200190f35b6102946107e6565b60408051918252519081900360200190f35b6102946107ec565b6102b66107f1565b60408051600792830b90920b8252519081900360200190f35b6102946107fa565b61038a600480360360608110156102ed57600080fd5b60ff82351691602081013591810190606081016040820135600160201b81111561031657600080fd5b82018360208201111561032857600080fd5b803590602001918460018302840111600160201b8311171561034957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610800945050505050565b6040805160208082528351818301528351919283929083019185019080838360005b838110156103c45781810151838201526020016103ac565b50505050905090810190601f1680156103f15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610255610876565b6104276004803603602081101561041d57600080fd5b503560ff1661087b565b604080519115158252519081900360200190f35b610443610890565b604080516001600160a01b039092168252519081900360200190f35b610467610896565b6040805161ffff9092168252519081900360200190f35b61025561089b565b6104436108a0565b610443600480360360208110156104a457600080fd5b503560ff166108a6565b6104436108c1565b6102556108c7565b6102946108cc565b6104436108d2565b6102556108d8565b6105b1600480360360a08110156104ec57600080fd5b810190602081018135600160201b81111561050657600080fd5b82018360208201111561051857600080fd5b803590602001918460018302840111600160201b8311171561053957600080fd5b919390929091602081019035600160201b81111561055657600080fd5b82018360208201111561056857600080fd5b803590602001918460018302840111600160201b8311171561058957600080fd5b919350915080356001600160401b03908116916020810135909116906040013560ff166108dd565b005b610294611a8d565b610255611a95565b610443611a9a565b610443611aa0565b610427611aa6565b6102736107dc565b6105b1600480360360408110156105f957600080fd5b810190602081018135600160201b81111561061357600080fd5b82018360208201111561062557600080fd5b803590602001918460018302840111600160201b8311171561064657600080fd5b919390929091602081019035600160201b81111561066357600080fd5b82018360208201111561067557600080fd5b803590602001918460018302840111600160201b8311171561069657600080fd5b509092509050611aaf565b6106c1600480360360208110156106b757600080fd5b503560ff16612051565b604080516001600160401b039092168252519081900360200190f35b61044361206c565b610427600480360360408110156106fb57600080fd5b5080356001600160a01b0316906020013560ff16612072565b61038a612092565b6104436120b1565b6105b16120b7565b6106c16004803603602081101561074257600080fd5b503560ff1661246e565b6105b16004803603606081101561076257600080fd5b60ff8235169190810190604081016020820135600160201b81111561078657600080fd5b82018360208201111561079857600080fd5b803590602001918460018302840111600160201b831117156107b957600080fd5b919350915035612489565b6104436125da565b6102556125e0565b6104436125e5565b600081565b606481565b60015481565b603281565b60045460070b81565b60025481565b60606000825160210190506060816040519080825280601f01601f191660200182016040528015610838576020820181803683370190505b506021810186905260018101879052828152905060418101600061085b866125eb565b50905061086a818388516125f5565b50909695505050505050565b600181565b60096020526000908152604090205460ff1681565b61100181565b606081565b600881565b61200081565b6005602052600090815260409020546001600160a01b031681565b61100581565b600281565b60035481565b61100881565b600b81565b60005460ff16610930576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b60408051630a83aaa960e31b815233600482015290516110069163541d5548916024808301926020929190829003018186803b15801561096f57600080fd5b505afa158015610983573d6000803e3d6000fd5b505050506040513d602081101561099957600080fd5b50516109ec576040805162461bcd60e51b815260206004820152601f60248201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604482015290519081900360640190fd5b60ff8116600090815260086020526040902054829082906001600160401b039081169083168114610a5c576040805162461bcd60e51b815260206004820152601560248201527439b2b8bab2b731b2903737ba1034b71037b93232b960591b604482015290519081900360640190fd5b60ff8216600090815260086020908152604091829020805467ffffffffffffffff1916600185016001600160401b039081169190911790915582516337d7f9c160e21b81529089166004820152915188926110039263df5fe70492602480840193829003018186803b158015610ad157600080fd5b505afa158015610ae5573d6000803e3d6000fd5b505050506040513d6020811015610afb57600080fd5b5051610b385760405162461bcd60e51b8152600401808060200182810382526023815260200180612bcc6023913960400191505060405180910390fd5b60ff851660009081526005602052604090205485906001600160a01b0316610ba7576040805162461bcd60e51b815260206004820152601860248201527f6368616e6e656c206973206e6f7420737570706f727465640000000000000000604482015290519081900360640190fd5b60608c8c8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060608b8b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805163cba510a960e01b81526001600160401b038f1660048201529051939450610cce93611003935063cba510a992506024808301926020929190829003018186803b158015610c7757600080fd5b505afa158015610c8b573d6000803e3d6000fd5b505050506040513d6020811015610ca157600080fd5b505160408051808201909152600381526269626360e81b6020820152610cc78c8c612636565b858561267d565b610d16576040805162461bcd60e51b815260206004820152601460248201527334b73b30b634b21036b2b935b63290383937b7b360611b604482015290519081900360640190fd5b60408051631bb5062960e31b81526001600160401b038c16600482015290516000916110039163dda8314891602480820192602092909190829003018186803b158015610d6257600080fd5b505afa158015610d76573d6000803e3d6000fd5b505050506040513d6020811015610d8c57600080fd5b5051905088600080806060610da08861277a565b935093509350935083610e61578460ff168f6001600160401b03167ff7b2e42d694eb1100184aae86d4245d9e46966100b1dc7e723275b98326854ac8a6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610e1a578181015183820152602001610e02565b50505050905090810190601f168015610e475780820380516001836020036101000a031916815260200191505b509250505060405180910390a35050505050505050611a7f565b8460ff168f6001600160401b03167f36afdaf439a8f43fe72135135d804ae620b37a474f0943b5b85f6788312cad4085604051808260ff1660ff16815260200191505060405180910390a360ff83166113ea5760ff85166000818152600560209081526040808320548151631182b87560e01b815260048101958652602481019283528651604482015286516001600160a01b03909216958695631182b875958d958a9593949093606490910192918601918190849084905b83811015610f32578181015183820152602001610f1a565b50505050905090810190601f168015610f5f5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b158015610f7f57600080fd5b505af192505050801561106357506040513d6000823e601f3d908101601f191682016040526020811015610fb257600080fd5b8101908080516040519392919084600160201b821115610fd157600080fd5b908301906020820185811115610fe657600080fd5b8251600160201b811182820188101715610fff57600080fd5b82525081516020918201929091019080838360005b8381101561102c578181015183820152602001611014565b50505050905090810190601f1680156110595780820380516001836020036101000a031916815260200191505b5060405250505060015b611375576040516000815260443d101561107f5750600061111a565b60046000803e60005160e01c6308c379a081146110a057600091505061111a565b60043d036004833e81513d60248201116001600160401b03821117156110cb5760009250505061111a565b80830180516001600160401b038111156110ec57600094505050505061111a565b8060208301013d860181111561110a5760009550505050505061111a565b601f01601f191660405250925050505b806111255750611237565b60ff871660009081526007602052604081205461115c916001600160401b039091169089906111579060029088610800565b61282a565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf948794849390840192918601918190849084905b838110156111f75781810151838201526020016111df565b50505050905090810190601f1680156112245780820380516001836020036101000a031916815260200191505b509250505060405180910390a250611370565b3d808015611261576040519150601f19603f3d011682016040523d82523d6000602084013e611266565b606091505b5060ff8716600090815260076020526040812054611299916001600160401b039091169089906111579060029088610800565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351948794849390840192918601918190849084905b8381101561133457818101518382015260200161131c565b50505050905090810190601f1680156113615780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b6113e4565b8051156113e25760ff87166000908152600760205260408120546113ae916001600160401b039091169089906111579060019086610800565b60ff8716600090815260076020526040902080546001600160401b038082166001011667ffffffffffffffff199091161790555b505b506119b8565b60ff83166001141561168e5760ff8516600081815260056020908152604080832054815163831d65d160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563831d65d1958d958a9593949093606490910192918601918190849084905b8381101561147457818101518382015260200161145c565b50505050905090810190601f1680156114a15780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b1580156114c157600080fd5b505af19250505080156114d2575060015b6113e4576040516000815260443d10156114ee57506000611589565b60046000803e60005160e01c6308c379a0811461150f576000915050611589565b60043d036004833e81513d60248201116001600160401b038211171561153a57600092505050611589565b80830180516001600160401b0381111561155b576000945050505050611589565b8060208301013d860181111561157957600095505050505050611589565b601f01601f191660405250925050505b8061159457506115f9565b60408051602080825283518183015283516001600160a01b038616937ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf93869390928392830191850190808383600083156111f75781810151838201526020016111df565b3d808015611623576040519150601f19603f3d011682016040523d82523d6000602084013e611628565b606091505b5060408051602080825283518183015283516001600160a01b038616937f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351938693909283928301918501908083836000831561133457818101518382015260200161131c565b60ff8316600214156119b85760ff8516600081815260056020908152604080832054815163c8509d8160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563c8509d81958d958a9593949093606490910192918601918190849084905b83811015611718578181015183820152602001611700565b50505050905090810190601f1680156117455780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561176557600080fd5b505af1925050508015611776575060015b6119b6576040516000815260443d10156117925750600061182d565b60046000803e60005160e01c6308c379a081146117b357600091505061182d565b60043d036004833e81513d60248201116001600160401b03821117156117de5760009250505061182d565b80830180516001600160401b038111156117ff57600094505050505061182d565b8060208301013d860181111561181d5760009550505050505061182d565b601f01601f191660405250925050505b8061183857506118e1565b816001600160a01b03167ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf826040518080602001828103825283818151815260200191508051906020019080838360005b838110156118a1578181015183820152602001611889565b50505050905090810190601f1680156118ce5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2506119b6565b3d80801561190b576040519150601f19603f3d011682016040523d82523d6000602084013e611910565b606091505b50816001600160a01b03167f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351826040518080602001828103825283818151815260200191508051906020019080838360005b8381101561197a578181015183820152602001611962565b50505050905090810190601f1680156119a75780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b505b60ff80861660009081526009602052604090205461100591636f93d2e69189913391879116806119ea575060ff881615155b604080516001600160e01b031960e088901b1681526001600160a01b039586166004820152939094166024840152604483019190915215156064820152905160848083019260209291908290030181600087803b158015611a4a57600080fd5b505af1158015611a5e573d6000803e3d6000fd5b505050506040513d6020811015611a7457600080fd5b505050505050505050505b505050505050505050505050565b630100600081565b600981565b61100781565b61100681565b60005460ff1681565b3361100714611aef5760405162461bcd60e51b815260040180806020018281038252602e815260200180612b22602e913960400191505060405180910390fd5b611b5884848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526012815271626174636853697a65466f724f7261636c6560701b602082015291506129809050565b15611bf357604080516020601f8401819004810282018101909252828152600091611b9b91858580838501838280828437600092019190915250612a6792505050565b90506127108111158015611bb05750600a8110155b611beb5760405162461bcd60e51b8152600401808060200182810382526032815260200180612b9a6032913960400191505060405180910390fd5b600155611fbf565b611c5c84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601281527118591913dc955c19185d1950da185b9b995b60721b602082015291506129809050565b15611de457606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060169091149050611cdf5760405162461bcd60e51b815260040180806020018281038252605a815260200180612ac8605a913960600191505060405180910390fd5b60018101516002820151601683015160ff82161590611cfd81612a6c565b611d4e576040805162461bcd60e51b815260206004820152601960248201527f61646472657373206973206e6f74206120636f6e747261637400000000000000604482015290519081900360640190fd5b60ff8416600081815260056020908152604080832080546001600160a01b0319166001600160a01b038716908117909155808452600683528184208585528352818420805460ff199081166001179091556009909352818420805490931687151517909255519092917f7e3b6af43092577ee20e60eaa1d9b114a7031305c895ee7dd3ffe17196d2e1e091a35050505050611fbf565b611e5184848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526016815275195b98589b1953dc911a5cd8589b1950da185b9b995b60521b602082015291506129809050565b15611f8257606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060029091149050611ed45760405162461bcd60e51b815260040180806020018281038252604a815260200180612b50604a913960600191505060405180910390fd5b600181810151600283015160ff80831660009081526005602052604090205492939192908316909114906001600160a01b03168015611f78576001600160a01b038116600090815260066020908152604080832060ff881680855290835292819020805460ff1916861515908117909155815190815290517fa3132e3f9819fbddc7f0ed6d38d7feef59aa95112090b7c592f5cb5bc4aa4adc929181900390910190a25b5050505050611fbf565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b6008602052600090815260409020546001600160401b031681565b61100281565b600660209081526000928352604080842090915290825290205460ff1681565b6040518060400160405280600381526020016269626360e81b81525081565b61100381565b60005460ff161561210f576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b7f1471eb6eb2c5e789fc3de43f8ce62938c7d1836ec861730447e2ada8fd81017b80546001600160a01b0319908116611008179091557f92e85d02570a8092d09a6e3a57665bc3815a2699a4074001bf1ccabf660f5a36805460ff199081169091557fd8af288fc1c8680b4f4706064cf021e264efb6828fcaf7eb5ca36818eb365bcc8054821660019081179091557f89832631fb3c3307a103ba2c84ab569c64d6182a18893dcd163f0f1c2090733a805484166110049081179091557f6cde3cea4b3a3fb2488b2808bae7556f4a405e50f65e1794383bc026131b13c38054841690557f72e4efa1513b071517c6c74dba31b5934a81aa83cddd400e7081df5529c9943680548416831790557fa9bc9a3a348c357ba16b37005d7e6b3236198c0e939f4af8c5f19b8deeb8ebc08054851690911790557fc575c31fea594a6eb97c8e9d3f9caee4c16218c6ef37e923234c0fe9014a61e78054831690557f4e523af77f034e9810f1c94057f5e931fb3d16a51511a4c3add793617d18610580548316821790557ffb33122aa9f93cc639ebe80a7bc4784c11e6053dde89c6f4f7e268c6a623da1e805484166110001790557fc7694af312c4f286114180fd0ba6a52461fcee8a381636770b19a343af92538a80548316821790557f01112dd68e482ba8d68a7e828cff8b3abcea08eab88941953c180a7e650e9cd480548316821790557fc0a4a8be475dfebc377ebef2d7c4ff47656f572a08dd92b81017efcdba0febe1805484166110071790557f87e8a52529e8ece4ef759037313542a6429ff494a9fab9027fb79db90124eba680548316821790557f4c7666bbcb22d46469f7cc282f70764a7012dca2cce630ff8d83db9a9cdd48f080548316821790557f40f28f99a40bc9f6beea1013afdbc3cdcc689eb76b82c4de06c0acf1e1932ed58054909316611001179092557f0d9cf2cd531699eed8dd34e40ff2884a14a698c4898184fba85194e6f6772d248054821683179055600b60009081527f23f68c9bd22b8a93d06adabe17481c87c016bcbd20adc8bfd707a4d813a572176020527fdf0d5d05428057f5455c2dc8e810dd86d1e9350faa72f16bda8a45443c5b39328054831684179055603283556004805467ffffffffffffffff19166001600160401b031790556002819055600381905580549091169091179055565b6007602052600090815260409020546001600160401b031681565b60005460ff166124dc576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b33600090815260066020908152604080832060ff80891685529252909120548591166125395760405162461bcd60e51b8152600401808060200182810382526031815260200180612a976031913960400191505060405180910390fd5b60ff85166000908152600760209081526040808320548151601f88018490048402810184019092528682526001600160401b03169261259e9284928a9261115792909189918c908c908190840183828082843760009201919091525061080092505050565b60ff959095166000908152600760205260409020805467ffffffffffffffff191660019096016001600160401b03169590951790945550505050565b61100081565b600381565b61100481565b8051602090910191565b5b60208110612615578251825260209283019290910190601f19016125f6565b915181516020939093036101000a6000190180199091169216919091179052565b60408051600e808252818301909252606091630100600060ff851617918391602082018180368337505050600e818101969096526006810192909252509283525090919050565b60008561268c57506000612771565b606082518451865160800101016040519080825280601f01601f1916602001820160405280156126c3576020820181803683370190505b50905060006126d182612a72565b6020808901518252019050866000806126e9896125eb565b80865260209095019490925090506127028285836125f5565b9283019261270f886125eb565b80865260209095019490925090506127288285836125f5565b9283018a81526020019261273b876125eb565b909250905061274b8285836125f5565b508351602001612759612a78565b60208183886065600019fa5051600114955050505050505b95945050505050565b600080600060606021855110156127aa575050604080516000808252602082019092529092508291508190612823565b600185015160218601518651604080516020198301808252601f19600119909401939093168101602001909152604189019392916060919080156127f5576020820181803683370190505b5090506000612803826125eb565b509050612815858260218d51036125f5565b506001975091955093509150505b9193509193565b600254431115612869576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b1617909155600355436002556128aa565b600380546001908101918290555410156128aa576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b16179091556003555b8160ff16836001600160401b0316600460009054906101000a900460070b6001600160401b03167f3a6e0fc61675aa2a100bcba0568368bb92bcec91c97673391074f11138f0cffe606085604051808361ffff1661ffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015612940578181015183820152602001612928565b50505050905090810190601f16801561296d5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a4505050565b6000816040516020018082805190602001908083835b602083106129b55780518252601f199092019160209182019101612996565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310612a235780518252601f199092019160209182019101612a04565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b3b151590565b60200190565b6040518060200160405280600190602082028036833750919291505056fe74686520636f6e747261637420616e64206368616e6e656c2068617665206e6f74206265656e20726567697374657265646c656e677468206f662076616c756520666f72206164644f725570646174654368616e6e656c2073686f756c642062652032322c206368616e6e656c49643a697346726f6d53797374656d3a68616e646c657241646472657373746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662076616c756520666f7220656e61626c654f7244697361626c654368616e6e656c2073686f756c6420626520322c206368616e6e656c49643a6973456e61626c65746865206e6577426174636853697a65466f724f7261636c652073686f756c6420626520696e205b31302c2031303030305d6c6967687420636c69656e74206e6f742073796e632074686520626c6f636b20796574a264697066735822122033c2492ac02e70488d9ed3adb95888d7f5998dff786cf03d72be0cde759a14d064736f6c63430006040033", - }, - }, - } - - NielsUpgrade[networkname.ChapelChainName] = &Upgrade{ - UpgradeName: "niels", - Configs: []*UpgradeConfig{ - { - ContractAddr: ValidatorContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/823b953232a344ba3c32d6690e70a245477e5760", - Code: "60806040526004361061027d5760003560e01c80639dc092621161014f578063c8509d81116100c1578063eb57e2021161007a578063eb57e20214610940578063eda5868c14610973578063f340fa0114610988578063f9a2bbc7146109ae578063fc3e5908146109c3578063fd6a6879146109d85761027d565b8063c8509d8114610609578063d86222d5146108d7578063daacdb66146108ec578063dc927faf14610901578063e086c7b114610916578063e1c7392a1461092b5761027d565b8063ab51bb9611610113578063ab51bb961461074a578063ac4317511461075f578063ad3c9da61461082a578063b7ab4db51461085d578063bf9f49951461041b578063c81b1662146108c25761027d565b80639dc09262146106cd578063a1a11bf5146106e2578063a5422d5c146106f7578063a78abc161461070c578063aaf5eb68146107355761027d565b80635667515a116101f35780637942fd05116101ac5780637942fd05146105df57806381650b62146105f4578063831d65d114610609578063853230aa1461068e57806386249882146106a357806396713da9146106b85761027d565b80635667515a146105005780635d77156c146105155780636969a25c1461052a5780636e47b482146105a057806370fd5bad146105b557806375d47a0a146105ca5761027d565b80633dffc387116102455780633dffc3871461041b57806343756e5c14610446578063493279b1146104775780634bf6c882146104a357806351e80672146104b8578063565c56b3146104cd5761027d565b80630bee7a67146102825780631182b875146102b05780631ff18069146103aa578063219f22d5146103d157806335409f7f146103e6575b600080fd5b34801561028e57600080fd5b506102976109ed565b6040805163ffffffff9092168252519081900360200190f35b3480156102bc57600080fd5b50610335600480360360408110156102d357600080fd5b60ff8235169190810190604081016020820135600160201b8111156102f757600080fd5b82018360208201111561030957600080fd5b803590602001918460018302840111600160201b8311171561032a57600080fd5b5090925090506109f2565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561036f578181015183820152602001610357565b50505050905090810190601f16801561039c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103b657600080fd5b506103bf610bdf565b60408051918252519081900360200190f35b3480156103dd57600080fd5b50610297610be5565b3480156103f257600080fd5b506104196004803603602081101561040957600080fd5b50356001600160a01b0316610bea565b005b34801561042757600080fd5b50610430610efe565b6040805160ff9092168252519081900360200190f35b34801561045257600080fd5b5061045b610f03565b604080516001600160a01b039092168252519081900360200190f35b34801561048357600080fd5b5061048c610f09565b6040805161ffff9092168252519081900360200190f35b3480156104af57600080fd5b50610430610f0e565b3480156104c457600080fd5b5061045b610f13565b3480156104d957600080fd5b506103bf600480360360208110156104f057600080fd5b50356001600160a01b0316610f19565b34801561050c57600080fd5b50610430610f6b565b34801561052157600080fd5b50610297610f70565b34801561053657600080fd5b506105546004803603602081101561054d57600080fd5b5035610f75565b604080516001600160a01b039788168152958716602087015293909516848401526001600160401b0390911660608401521515608083015260a082019290925290519081900360c00190f35b3480156105ac57600080fd5b5061045b610fd9565b3480156105c157600080fd5b50610430610fdf565b3480156105d657600080fd5b5061045b610fe4565b3480156105eb57600080fd5b50610430610fea565b34801561060057600080fd5b50610297610fef565b34801561061557600080fd5b506104196004803603604081101561062c57600080fd5b60ff8235169190810190604081016020820135600160201b81111561065057600080fd5b82018360208201111561066257600080fd5b803590602001918460018302840111600160201b8311171561068357600080fd5b509092509050610ff4565b34801561069a57600080fd5b506103bf6110a7565b3480156106af57600080fd5b506103bf6110ad565b3480156106c457600080fd5b506104306110b3565b3480156106d957600080fd5b5061045b6110b8565b3480156106ee57600080fd5b5061045b6110be565b34801561070357600080fd5b506103356110c4565b34801561071857600080fd5b506107216110e3565b604080519115158252519081900360200190f35b34801561074157600080fd5b506103bf6110ec565b34801561075657600080fd5b50610297610f6b565b34801561076b57600080fd5b506104196004803603604081101561078257600080fd5b810190602081018135600160201b81111561079c57600080fd5b8201836020820111156107ae57600080fd5b803590602001918460018302840111600160201b831117156107cf57600080fd5b919390929091602081019035600160201b8111156107ec57600080fd5b8201836020820111156107fe57600080fd5b803590602001918460018302840111600160201b8311171561081f57600080fd5b5090925090506110f5565b34801561083657600080fd5b506103bf6004803603602081101561084d57600080fd5b50356001600160a01b031661139c565b34801561086957600080fd5b506108726113ae565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156108ae578181015183820152602001610896565b505050509050019250505060405180910390f35b3480156108ce57600080fd5b5061045b6114d4565b3480156108e357600080fd5b506103bf6114da565b3480156108f857600080fd5b506103bf6114e6565b34801561090d57600080fd5b5061045b6114ec565b34801561092257600080fd5b506103bf6114f2565b34801561093757600080fd5b506104196114f7565b34801561094c57600080fd5b506104196004803603602081101561096357600080fd5b50356001600160a01b03166116fa565b34801561097f57600080fd5b506102976118c9565b6104196004803603602081101561099e57600080fd5b50356001600160a01b03166118ce565b3480156109ba57600080fd5b5061045b611b04565b3480156109cf57600080fd5b50610430611b0a565b3480156109e457600080fd5b5061045b611b0f565b606481565b60005460609060ff16610a48576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b3361200014610a885760405162461bcd60e51b815260040180806020018281038252602f8152602001806140de602f913960400191505060405180910390fd5b610a90613d69565b6000610ad185858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611b1592505050565b9150915080610aed57610ae46064611c6e565b92505050610bd8565b815160009060ff16610b0d57610b068360200151611ccf565b9050610ba4565b825160ff1660011415610ba057826020015151600114610b7a577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2604051808060200182810382526025815260200180613e6c6025913960400191505060405180910390a1506067610b9b565b610b068360200151600081518110610b8e57fe5b6020026020010151612ad5565b610ba4565b5060655b63ffffffff8116610bc95750506040805160008152602081019091529150610bd89050565b610bd281611c6e565b93505050505b9392505050565b60035481565b606881565b3361100114610c2a5760405162461bcd60e51b815260040180806020018281038252602981526020018061413a6029913960400191505060405180910390fd5b6001600160a01b03811660009081526004602052604090205480610c4e5750610efb565b600181039050600060018281548110610c6357fe5b60009182526020909120600360049092020101546001549091506000190180610cb257600060018481548110610c9557fe5b906000526020600020906004020160030181905550505050610efb565b6040805183815290516001600160a01b038616917f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a70919081900360200190a26001600160a01b038416600090815260046020526040812055600154600019018314610e3457600180546000198101908110610d2957fe5b906000526020600020906004020160018481548110610d4457fe5b6000918252602082208354600492830290910180546001600160a01b03199081166001600160a01b0393841617825560018087015481840180548416918616919091179055600280880180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b199094169390931790556003948501549401939093558254868401939192919087908110610e0957fe5b600091825260208083206004909202909101546001600160a01b031683528201929092526040019020555b6001805480610e3f57fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b03191690556003018190559155818381610e9257fe5b0490508015610ef65760015460005b81811015610ef3578260018281548110610eb757fe5b9060005260206000209060040201600301540160018281548110610ed757fe5b6000918252602090912060036004909202010155600101610ea1565b50505b505050505b50565b600181565b61100181565b606181565b600881565b61200081565b6001600160a01b03811660009081526004602052604081205480610f41576000915050610f66565b600180820381548110610f5057fe5b9060005260206000209060040201600301549150505b919050565b600081565b606781565b60018181548110610f8257fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b61100881565b600b81565b606681565b33612000146110345760405162461bcd60e51b815260040180806020018281038252602f8152602001806140de602f913960400191505060405180910390fd5b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a1505050565b6103e881565b60025481565b600981565b61100781565b61100681565b604051806101e001604052806101b78152602001613f066101b7913981565b60005460ff1681565b6402540be40081565b60005460ff16611148576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b33611007146111885760405162461bcd60e51b815260040180806020018281038252602e815260200180613e91602e913960400191505060405180910390fd5b6111f284848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b60208201529150612c4c9050565b156112cd57602081146112365760405162461bcd60e51b8152600401808060200182810382526026815260200180613ee06026913960400191505060405180910390fd5b604080516020601f840181900481028201810190925282815260009161127491858580838501838280828437600092019190915250612d3492505050565b90506064811015801561128a5750620186a08111155b6112c55760405162461bcd60e51b8152600401808060200182810382526027815260200180613e456027913960400191505060405180910390fd5b60025561130a565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b60046020526000908152604090205481565b6001546060906000805b828110156113ff57600181815481106113cd57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166113f7576001909101905b6001016113b8565b5060608160405190808252806020026020018201604052801561142c578160200160208202803683370190505b50600092509050815b838110156114cc576001818154811061144a57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166114c4576001818154811061147a57fe5b600091825260209091206004909102015482516001600160a01b03909116908390859081106114a557fe5b6001600160a01b03909216602092830291909101909101526001909201915b600101611435565b509250505090565b61100281565b67016345785d8a000081565b60055481565b61100381565b602981565b60005460ff161561154f576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b611557613d69565b600061157d604051806101e001604052806101b78152602001613f066101b79139611b15565b91509150806115bd5760405162461bcd60e51b81526004018080602001828103825260218152602001806140bd6021913960400191505060405180910390fd5b60005b8260200151518110156116e2576001836020015182815181106115df57fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a0909301516003909301929092559186015180519185019391859081106116b557fe5b602090810291909101810151516001600160a01b03168252810191909152604001600020556001016115c0565b50506103e8600255506000805460ff19166001179055565b336110011461173a5760405162461bcd60e51b815260040180806020018281038252602981526020018061413a6029913960400191505060405180910390fd5b6001600160a01b0381166000908152600460205260409020548061175e5750610efb565b60018103905060006001828154811061177357fe5b906000526020600020906004020160030154905060006001838154811061179657fe5b906000526020600020906004020160030181905550600060018080549050039050836001600160a01b03167f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d836040518082815260200191505060405180910390a28061180557505050610efb565b600081838161181057fe5b0490508015610ef65760005b8481101561186e57816001828154811061183257fe5b906000526020600020906004020160030154016001828154811061185257fe5b600091825260209091206003600490920201015560010161181c565b50600180549085015b81811015610ef357826001828154811061188d57fe5b90600052602060002090600402016003015401600182815481106118ad57fe5b6000918252602090912060036004909202010155600101611877565b606581565b33411461190c5760405162461bcd60e51b815260040180806020018281038252602d81526020018061410d602d913960400191505060405180910390fd5b60005460ff1661195f576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b600034116119ac576040805162461bcd60e51b81526020600482015260156024820152746465706f7369742076616c7565206973207a65726f60581b604482015290519081900360640190fd5b6001600160a01b03811660009081526004602052604090205434908015611abf5760006001808303815481106119de57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff1615611a49576040805184815290516001600160a01b038616917ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4919081900360200190a2611ab9565b600354611a5c908463ffffffff612d3916565b6003908155810154611a74908463ffffffff612d3916565b60038201556040805184815290516001600160a01b038616917f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc055919081900360200190a25b50611aff565b6040805183815290516001600160a01b038516917ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4919081900360200190a25b505050565b61100081565b600381565b61100481565b611b1d613d69565b6000611b27613d69565b611b2f613d81565b611b40611b3b86612d93565b612db8565b90506000805b611b4f83612e02565b15611c605780611b7457611b6a611b6584612e23565b612e71565b60ff168452611c58565b8060011415611c53576060611b90611b8b85612e23565b612f28565b90508051604051908082528060200260200182016040528015611bcd57816020015b611bba613da1565b815260200190600190039081611bb25790505b50602086015260005b8151811015611c4857611be7613da1565b6000611c05848481518110611bf857fe5b6020026020010151612ff9565b9150915080611c2257876000995099505050505050505050611c69565b8188602001518481518110611c3357fe5b60209081029190910101525050600101611bd6565b506001925050611c58565b611c60565b600101611b46565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b6060815260200190600190039081611c88579050509050611cae8363ffffffff166130d6565b81600081518110611cbb57fe5b6020026020010181905250610bd8816130e9565b6000806060611cdd84613173565b9150915081611d8a577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2816040518080602001828103825283818151815260200191508051906020019080838360005b83811015611d45578181015183820152602001611d2d565b50505050905090810190601f168015611d725780820380516001836020036101000a031916815260200191505b509250505060405180910390a1606692505050610f66565b600080805b600154811015611e075767016345785d8a000060018281548110611daf57fe5b90600052602060002090600402016003015410611dd157600190920191611dff565b600060018281548110611de057fe5b9060005260206000209060040201600301541115611dff576001909101905b600101611d8f565b50606082604051908082528060200260200182016040528015611e34578160200160208202803683370190505b509050606083604051908082528060200260200182016040528015611e63578160200160208202803683370190505b509050606084604051908082528060200260200182016040528015611e92578160200160208202803683370190505b509050606085604051908082528060200260200182016040528015611ec1578160200160208202803683370190505b5090506000606086604051908082528060200260200182016040528015611ef2578160200160208202803683370190505b509050606087604051908082528060200260200182016040528015611f21578160200160208202803683370190505b509050600098506000975060608d905060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b158015611f6e57600080fd5b505afa158015611f82573d6000803e3d6000fd5b505050506040513d6020811015611f9857600080fd5b5051905067016345785d8a000081111561200d577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2604051808060200182810382526021815260200180613ebf6021913960400191505060405180910390a160689d5050505050505050505050505050610f66565b60005b6001548110156122805767016345785d8a00006001828154811061203057fe5b906000526020600020906004020160030154106121b6576001818154811061205457fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b03168a8d8151811061208557fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be400600183815481106120ba57fe5b906000526020600020906004020160030154816120d357fe5b06600183815481106120e157fe5b906000526020600020906004020160030154039050612109838261325590919063ffffffff16565b8a8e8151811061211557fe5b6020026020010181815250506001828154811061212e57fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316888e8151811061215f57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081898e8151811061218c57fe5b60209081029190910101526121a7878263ffffffff612d3916565b6001909d019c96506122789050565b6000600182815481106121c557fe5b906000526020600020906004020160030154111561227857600181815481106121ea57fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316858c8151811061221b57fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506001818154811061224857fe5b906000526020600020906004020160030154848c8151811061226657fe5b60209081029190910101526001909a01995b600101612010565b50600085156126be576110046001600160a01b0316636e056520878c8c8b60025442016040518663ffffffff1660e01b815260040180806020018060200180602001856001600160401b03166001600160401b03168152602001848103845288818151815260200191508051906020019060200280838360005b838110156123125781810151838201526020016122fa565b50505050905001848103835287818151815260200191508051906020019060200280838360005b83811015612351578181015183820152602001612339565b50505050905001848103825286818151815260200191508051906020019060200280838360005b83811015612390578181015183820152602001612378565b505050509050019750505050505050506020604051808303818588803b1580156123b957600080fd5b505af1935050505080156123df57506040513d60208110156123da57600080fd5b505160015b61261a576040516000815260443d10156123fb57506000612496565b60046000803e60005160e01c6308c379a0811461241c576000915050612496565b60043d036004833e81513d60248201116001600160401b038211171561244757600092505050612496565b80830180516001600160401b03811115612468576000945050505050612496565b8060208301013d860181111561248657600095505050505050612496565b601f01601f191660405250925050505b806124a15750612545565b60019150867fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280826040518080602001828103825283818151815260200191508051906020019080838360005b838110156125055781810151838201526020016124ed565b50505050905090810190601f1680156125325780820380516001836020036101000a031916815260200191505b509250505060405180910390a250612615565b3d80801561256f576040519150601f19603f3d011682016040523d82523d6000602084013e612574565b606091505b5060019150867fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a45826040518080602001828103825283818151815260200191508051906020019080838360005b838110156125d95781810151838201526020016125c1565b50505050905090810190601f1680156126065780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b6126be565b8015612658576040805188815290517fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b709181900360200190a16126bc565b604080516020808252601b908201527f6261746368207472616e736665722072657475726e2066616c7365000000000081830152905188917fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280919081900360600190a25b505b80156128745760005b88518110156128725760008982815181106126de57fe5b602002602001015190506000600182815481106126f757fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc918590811061272857fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f19350505050905080156127e4576001828154811061276957fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d91859081106127b857fe5b9060005260206000209060040201600301546040518082815260200191505060405180910390a2612868565b600182815481106127f157fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d918590811061284057fe5b9060005260206000209060040201600301546040518082815260200191505060405180910390a25b50506001016126c7565b505b8451156129be5760005b85518110156129bc57600086828151811061289557fe5b60200260200101516001600160a01b03166108fc8784815181106128b557fe5b60200260200101519081150290604051600060405180830381858888f193505050509050801561294b578682815181106128eb57fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d87848151811061292957fe5b60200260200101516040518082815260200191505060405180910390a26129b3565b86828151811061295757fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d87848151811061299557fe5b60200260200101516040518082815260200191505060405180910390a25b5060010161287e565b505b4715612a27576040805147815290517f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d9181900360200190a1604051611002904780156108fc02916000818181858888f19350505050158015612a25573d6000803e3d6000fd5b505b60006003819055600555825115612a4157612a4183613297565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015612a7e57600080fd5b505af1158015612a92573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a15060009f9e505050505050505050505050505050565b80516001600160a01b0316600090815260046020526040812054801580612b265750600180820381548110612b0657fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b15612b6c5782516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a26000915050610f66565b600154600554600019820111801590612bc25784516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a260009350505050610f66565b600580546001908101909155805481906000198601908110612be057fe5b6000918252602082206002600490920201018054921515600160e01b0260ff60e01b199093169290921790915585516040516001600160a01b03909116917ff226e7d8f547ff903d9d419cf5f54e0d7d07efa9584135a53a057c5f1f27f49a91a2506000949350505050565b6000816040516020018082805190602001908083835b60208310612c815780518252601f199092019160209182019101612c62565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310612cef5780518252601f199092019160209182019101612cd0565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052805190602001201490505b92915050565b015190565b600082820183811015610bd8576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b612d9b613dd6565b506040805180820190915281518152602082810190820152919050565b612dc0613d81565b612dc98261375e565b612dd257600080fd5b6000612de18360200151613798565b60208085015160408051808201909152868152920190820152915050919050565b6000612e0c613dd6565b505080518051602091820151919092015191011190565b612e2b613dd6565b612e3482612e02565b612e3d57600080fd5b60208201516000612e4d826137fb565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590612e8657508151602110155b612e8f57600080fd5b6000612e9e8360200151613798565b90508083600001511015612ef9576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015612f1f57826020036101000a820491505b50949350505050565b6060612f338261375e565b612f3c57600080fd5b6000612f478361392e565b9050606081604051908082528060200260200182016040528015612f8557816020015b612f72613dd6565b815260200190600190039081612f6a5790505b5090506000612f978560200151613798565b60208601510190506000805b84811015612fee57612fb4836137fb565b9150604051806040016040528083815260200184815250848281518110612fd757fe5b602090810291909101015291810191600101612fa3565b509195945050505050565b613001613da1565b600061300b613da1565b613013613d81565b61301c85612db8565b90506000805b61302b83612e02565b15611c6057806130565761304661304184612e23565b61398a565b6001600160a01b031684526130ce565b806001141561307e5761306b61304184612e23565b6001600160a01b031660208501526130ce565b80600214156130a65761309361304184612e23565b6001600160a01b031660408501526130ce565b8060031415611c53576130bb611b6584612e23565b6001600160401b03166060850152600191505b600101613022565b6060612d2e6130e4836139a4565b613a8a565b606081516000141561310a5750604080516000815260208101909152610f66565b60608260008151811061311957fe5b602002602001015190506000600190505b835181101561315a576131508285838151811061314357fe5b6020026020010151613adc565b915060010161312a565b50610bd861316d825160c060ff16613b59565b82613adc565b600060606029835111156131a5576000604051806060016040528060298152602001613df16029913991509150611c69565b60005b835181101561323b5760005b81811015613232578481815181106131c857fe5b6020026020010151600001516001600160a01b03168583815181106131e957fe5b6020026020010151600001516001600160a01b0316141561322a5760006040518060600160405280602b8152602001613e1a602b9139935093505050611c69565b6001016131b4565b506001016131a8565b505060408051602081019091526000815260019150915091565b6000610bd883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613c51565b600154815160005b828110156133b45760016132b1613da1565b600183815481106132be57fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b848110156133885786818151811061334e57fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b031614156133805760009250613388565b60010161333a565b5081156133aa5780516001600160a01b03166000908152600460205260408120555b505060010161329f565b508082111561342957805b828110156134275760018054806133d257fe5b60008281526020812060046000199093019283020180546001600160a01b03199081168255600182810180549092169091556002820180546001600160e81b03191690556003909101919091559155016133bf565b505b6000818310613438578161343a565b825b905060005b81811015613634576134ec85828151811061345657fe5b60200260200101516001838154811061346b57fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a0820152613ce8565b61360757806001016004600087848151811061350457fe5b6020026020010151600001516001600160a01b03166001600160a01b031681526020019081526020016000208190555084818151811061354057fe5b60200260200101516001828154811061355557fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a09091015160039091015561362c565b60006001828154811061361657fe5b9060005260206000209060040201600301819055505b60010161343f565b508282111561375857825b82811015610ef657600185828151811061365557fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782559585015181840180549184169188169190911790556040850151600282018054606088015160808901511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590971692909a169190911792909216939093171695909517905560a0909201516003909301929092558751908401929088908590811061372b57fe5b602090810291909101810151516001600160a01b031682528101919091526040016000205560010161363f565b50505050565b805160009061376f57506000610f66565b6020820151805160001a9060c082101561378e57600092505050610f66565b5060019392505050565b8051600090811a60808110156137b2576000915050610f66565b60b88110806137cd575060c081108015906137cd575060f881105b156137dc576001915050610f66565b60c08110156137f05760b519019050610f66565b60f519019050610f66565b80516000908190811a60808110156138165760019150613927565b60b881101561382b57607e1981019150613927565b60c08110156138a557600060b78203600186019550806020036101000a86510491506001810182019350508083101561389f576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50613927565b60f88110156138ba5760be1981019150613927565b600060f78203600186019550806020036101000a865104915060018101820193505080831015613925576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b805160009061393f57506000610f66565b600080905060006139538460200151613798565b602085015185519181019250015b8082101561398157613972826137fb565b60019093019290910190613961565b50909392505050565b805160009060151461399b57600080fd5b612d2e82612e71565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166139e857506018613a0c565b6fffffffffffffffffffffffffffffffff198416613a0857506010613a0c565b5060005b6020811015613a4257818181518110613a2157fe5b01602001516001600160f81b03191615613a3a57613a42565b600101613a0c565b60008160200390506060816040519080825280601f01601f191660200182016040528015613a77576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015613abc5750607f60f81b82600081518110613aaa57fe5b01602001516001600160f81b03191611155b15613ac8575080610f66565b612d2e613ada8351608060ff16613b59565b835b6060806040519050835180825260208201818101602087015b81831015613b0d578051835260209283019201613af5565b50855184518101855292509050808201602086015b81831015613b3a578051835260209283019201613b22565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310613ba9576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b60408051600180825281830190925260609160208201818036833701905050905060378411613c035782840160f81b81600081518110613be557fe5b60200101906001600160f81b031916908160001a9053509050612d2e565b6060613c0e856139a4565b90508381510160370160f81b82600081518110613c2757fe5b60200101906001600160f81b031916908160001a905350613c488282613adc565b95945050505050565b60008184841115613ce05760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613ca5578181015183820152602001613c8d565b50505050905090810190601f168015613cd25780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b805182516000916001600160a01b039182169116148015613d22575081602001516001600160a01b031683602001516001600160a01b0316145b8015613d47575081604001516001600160a01b031683604001516001600160a01b0316145b8015610bd85750506060908101519101516001600160401b0390811691161490565b60408051808201909152600081526060602082015290565b6040518060400160405280613d94613dd6565b8152602001600081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b60405180604001604052806000815260200160008152509056fe746865206e756d626572206f662076616c696461746f72732065786365656420746865206c696d69746475706c696361746520636f6e73656e7375732061646472657373206f662076616c696461746f725365747468652065787069726554696d655365636f6e64476170206973206f7574206f662072616e67656c656e677468206f66206a61696c2076616c696461746f7273206d757374206265206f6e65746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374666565206973206c6172676572207468616e2044555354595f494e434f4d494e476c656e677468206f662065787069726554696d655365636f6e64476170206d69736d61746368f901b480f901b0f846941284214b9b9c85549ab3d2b972df0deef66ac2c9946ddf42a51534fc98d0c0a3b42c963cace8441ddf9477f066f3fb515bb97015e4b4afddbcb25c94286b86048c27395000f84694b71b214cb885500844365e95cd9942c7276e7fd894d22ca3ba2141d23adab65ce4940eb7665ea2b6a794748c284f46ab87fd492326f1e2fe731d22ad2db386048c27395000f84694a2959d3f95eae5dc7d70144ce1b73b403b7eb6e0948081ef03f1d9e0bb4a5bf38f16285c879299f07f940ce09b38374887cb564b7efa60be130d99ed5f9586048c27395000f84694980a75ecd1309ea12fa2ed87a8744fbfc9b863d594cc6ac05c95a99c1f7b5f88de0e3486c82293b2709407eecf36cf0901fefe4bc505d6ba03c7480c7b5786048c27395000f8469435552c16704d214347f29fa77f77da6d75d7c75294dc4973e838e3949c77aced16ac2315dc2d7ab11194f57d36e129881a3a13a024fe8072507e5b2e70f886048c27395000f84694f474cf03cceff28abc65c9cbae594f725c80e12d94e61a183325a18a173319dd8e19c8d069459e217594ddfcaedf9bb451098c9917a45f02bd61342cca6686048c273950006661696c656420746f20706172736520696e69742076616c696461746f72536574746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d6573736167652073656e646572206d7573742062652074686520626c6f636b2070726f6475636572746865206d6573736167652073656e646572206d75737420626520736c61736820636f6e7472616374a2646970667358221220ccbabefa423adb1cc63a2da2811a349dd54007c9dc3bd490ac200572c4e8eb1064736f6c63430006040033", - }, - { - ContractAddr: SlashContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/823b953232a344ba3c32d6690e70a245477e5760", - Code: "608060405234801561001057600080fd5b50600436106102275760003560e01c8063831d65d111610130578063c80d4b8f116100b8578063e1c7392a1161007c578063e1c7392a146106d9578063f9a2bbc7146106e1578063fc3e5908146106e9578063fc4333cd146106f1578063fd6a6879146106f957610227565b8063c80d4b8f14610623578063c81b16621461062b578063c8509d8114610633578063c96be4cb146106ab578063dc927faf146106d157610227565b8063a1a11bf5116100ff578063a1a11bf514610531578063a78abc1614610539578063ab51bb9614610555578063ac0af6291461055d578063ac4317511461056557610227565b8063831d65d11461049f57806396713da9146105195780639bc8e4f2146105215780639dc092621461052957610227565b80634bf6c882116101b35780636e47b482116101825780636e47b4821461047757806370fd5bad1461047f57806375d47a0a146104875780637912a65d1461048f5780637942fd051461049757610227565b80634bf6c8821461045757806351e806721461045f578063567a372d1461046757806362b72cf51461046f57610227565b806337c8dab9116101fa57806337c8dab9146103b9578063389f4f71146103f85780633dffc3871461041257806343756e5c14610430578063493279b11461043857610227565b80630bee7a671461022c5780631182b8751461024d57806323bac5a21461033a57806335aa2e4414610380575b600080fd5b610234610701565b6040805163ffffffff9092168252519081900360200190f35b6102c56004803603604081101561026357600080fd5b60ff8235169190810190604081016020820135600160201b81111561028757600080fd5b82018360208201111561029957600080fd5b803590602001918460018302840111600160201b831117156102ba57600080fd5b509092509050610706565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102ff5781810151838201526020016102e7565b50505050905090810190601f16801561032c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103606004803603602081101561035057600080fd5b50356001600160a01b03166107da565b604080519384526020840192909252151582820152519081900360600190f35b61039d6004803603602081101561039657600080fd5b50356107fd565b604080516001600160a01b039092168252519081900360200190f35b6103df600480360360208110156103cf57600080fd5b50356001600160a01b0316610824565b6040805192835260208301919091528051918290030190f35b61040061087b565b60408051918252519081900360200190f35b61041a610881565b6040805160ff9092168252519081900360200190f35b61039d610886565b61044061088c565b6040805161ffff9092168252519081900360200190f35b61041a610891565b61039d610896565b61040061089c565b6104006108a2565b61039d6108a8565b61041a6108ae565b61039d6108b3565b6104006108b9565b61041a6108be565b610517600480360360408110156104b557600080fd5b60ff8235169190810190604081016020820135600160201b8111156104d957600080fd5b8201836020820111156104eb57600080fd5b803590602001918460018302840111600160201b8311171561050c57600080fd5b5090925090506108c3565b005b61041a610a1e565b610400610a23565b61039d610a2e565b61039d610a34565b610541610a3a565b604080519115158252519081900360200190f35b610234610a43565b610400610a48565b6105176004803603604081101561057b57600080fd5b810190602081018135600160201b81111561059557600080fd5b8201836020820111156105a757600080fd5b803590602001918460018302840111600160201b831117156105c857600080fd5b919390929091602081019035600160201b8111156105e557600080fd5b8201836020820111156105f757600080fd5b803590602001918460018302840111600160201b8311171561061857600080fd5b509092509050610a4d565b610400610e3b565b61039d610e40565b6105176004803603604081101561064957600080fd5b60ff8235169190810190604081016020820135600160201b81111561066d57600080fd5b82018360208201111561067f57600080fd5b803590602001918460018302840111600160201b831117156106a057600080fd5b509092509050610e46565b610517600480360360208110156106c157600080fd5b50356001600160a01b0316610ef9565b61039d61131e565b610517611324565b61039d611395565b61041a61139b565b6105176113a0565b61039d61182b565b606481565b606033612000146107485760405162461bcd60e51b815260040180806020018281038252602f815260200180612282602f913960400191505060405180910390fd5b60005460ff1661078d576040805162461bcd60e51b815260206004820152601960248201526000805160206122de833981519152604482015290519081900360640190fd5b6040805162461bcd60e51b815260206004820152601e60248201527f7265636569766520756e65787065637465642073796e207061636b6167650000604482015290519081900360640190fd5b600260208190526000918252604090912080546001820154919092015460ff1683565b6001818154811061080a57fe5b6000918252602090912001546001600160a01b0316905081565b60008061082f612146565b5050506001600160a01b0316600090815260026020818152604092839020835160608101855281548082526001830154938201849052919093015460ff16151592909301919091529091565b60055481565b600181565b61100181565b606181565b600881565b61200081565b60045481565b60035481565b61100581565b600281565b61100881565b603281565b600b81565b33612000146109035760405162461bcd60e51b815260040180806020018281038252602f815260200180612282602f913960400191505060405180910390fd5b60005460ff16610948576040805162461bcd60e51b815260206004820152601960248201526000805160206122de833981519152604482015290519081900360640190fd5b610950612169565b600061099184848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061183192505050565b9150915080156109db5781516040805163ffffffff9092168252517f7f0956d47419b9525356e7111652b653b530ec6f5096dccc04589bc38e6299679181900360200190a1610a17565b81516040805163ffffffff9092168252517f7d45f62d17443dd4547bca8a8112c60e2385669318dc300ec61a5d2492f262e79181900360200190a15b5050505050565b600981565b662386f26fc1000081565b61100781565b61100681565b60005460ff1681565b600081565b600481565b60005460ff16610a92576040805162461bcd60e51b815260206004820152601960248201526000805160206122de833981519152604482015290519081900360640190fd5b3361100714610ad25760405162461bcd60e51b815260040180806020018281038252602e81526020018061220d602e913960400191505060405180910390fd5b610b3d84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260148152731b5a5cd9195b59585b9bdc951a1c995cda1bdb1960621b602082015291506118b19050565b15610c165760208114610b815760405162461bcd60e51b81526004018080602001828103825260278152602001806121b66027913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610bbf9185858083850183828082843760009201919091525061199992505050565b905060018110158015610bd3575060055481105b610c0e5760405162461bcd60e51b815260040180806020018281038252602581526020018061225d6025913960400191505060405180910390fd5b600455610da9565b610c7c84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e19995b1bdb9e551a1c995cda1bdb19608a1b602082015291506118b19050565b15610d6c5760208114610cc05760405162461bcd60e51b815260040180806020018281038252602281526020018061223b6022913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610cfe9185858083850183828082843760009201919091525061199992505050565b90506103e88111158015610d13575060045481115b610d64576040805162461bcd60e51b815260206004820181905260248201527f7468652066656c6f6e795468726573686f6c64206f7574206f662072616e6765604482015290519081900360640190fd5b600555610da9565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b609681565b61100281565b3361200014610e865760405162461bcd60e51b815260040180806020018281038252602f815260200180612282602f913960400191505060405180910390fd5b60005460ff16610ecb576040805162461bcd60e51b815260206004820152601960248201526000805160206122de833981519152604482015290519081900360640190fd5b6040517f07db600eebe2ac176be8dcebad61858c245a4961bb32ca2aa3d159b09aa0810e90600090a1505050565b334114610f375760405162461bcd60e51b815260040180806020018281038252602d8152602001806122b1602d913960400191505060405180910390fd5b60005460ff16610f7c576040805162461bcd60e51b815260206004820152601960248201526000805160206122de833981519152604482015290519081900360640190fd5b6003544311610fd2576040805162461bcd60e51b815260206004820181905260248201527f63616e206e6f7420736c61736820747769636520696e206f6e6520626c6f636b604482015290519081900360640190fd5b3a1561101c576040805162461bcd60e51b81526020600482015260146024820152736761737072696365206973206e6f74207a65726f60601b604482015290519081900360640190fd5b611024612146565b506001600160a01b0381166000908152600260208181526040928390208351606081018552815481526001820154928101929092529091015460ff16158015928201929092529061107f5760208101805160010190526110d8565b60016040820181905260208201819052805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0384161790555b4381526005546020820151816110ea57fe5b0661123c57600060208201819052604080516335409f7f60e01b81526001600160a01b03851660048201529051611000926335409f7f926024808201939182900301818387803b15801561113d57600080fd5b505af1158015611151573d6000803e3d6000fd5b505050506120006001600160a01b031663f7a251d7600b6111718561199e565b60006040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156111d15781810151838201526020016111b9565b50505050905090810190601f1680156111fe5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561121f57600080fd5b505af1158015611233573d6000803e3d6000fd5b505050506112b2565b60045481602001518161124b57fe5b066112b257604080516375abf10160e11b81526001600160a01b038416600482015290516110009163eb57e20291602480830192600092919082900301818387803b15801561129957600080fd5b505af11580156112ad573d6000803e3d6000fd5b505050505b6001600160a01b0382166000818152600260208181526040808420865181559186015160018301558581015191909201805460ff1916911515919091179055517fddb6012116e51abf5436d956a4f0ebd927e92c576ff96d7918290c8782291e3e9190a2505043600355565b61100381565b60005460ff161561137c576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b603260045560966005556000805460ff19166001179055565b61100081565b600381565b33611000146113e05760405162461bcd60e51b81526004018080602001828103825260308152602001806121dd6030913960400191505060405180910390fd5b60005460ff16611425576040805162461bcd60e51b815260206004820152601960248201526000805160206122de833981519152604482015290519081900360640190fd5b60015461143157611829565b600154600090600019015b8082116117fd576000805b8284101561156057611457612146565b600260006001878154811061146857fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff16151590820152600554909150600490048160200151111561154a576004600554816114d557fe5b048160200151038160200181815250508060026000600188815481106114f757fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208351815591830151600183015591909101516002909101805460ff1916911515919091179055611554565b6001925050611560565b50600190930192611447565b8284116116f75761156f612146565b600260006001868154811061158057fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff161515908201526005549091506004900481602001511115611668576004600554816115ed57fe5b0481602001510381602001818152505080600260006001878154811061160f57fe5b6000918252602080832091909101546001600160a01b03168352828101939093526040918201902083518155918301516001808401919091559201516002909101805460ff191691151591909117905591506116f79050565b600260006001868154811061167957fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff191690558054806116bd57fe5b600082815260209020810160001990810180546001600160a01b0319169055019055836116ea57506116f7565b5060001990920191611560565b8180156117015750805b156117e057600260006001868154811061171757fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff1916905580548490811061175e57fe5b600091825260209091200154600180546001600160a01b03909216918690811061178457fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060018054806117bd57fe5b600082815260209020810160001990810180546001600160a01b03191690550190555b826117ec5750506117fd565b50506001909101906000190161143c565b6040517fcfdb3b6ccaeccbdc68be3c59c840e3b3c90f0a7c491f5fff1cf56cfda200dd9c90600090a150505b565b61100481565b611839612169565b6000611843612169565b61184b61217b565b61185c61185786611a70565b611a95565b90506000805b61186b83611adf565b156118a457806118975761188661188184611b00565b611b4e565b63ffffffff1684526001915061189c565b6118a4565b600101611862565b5091935090915050915091565b6000816040516020018082805190602001908083835b602083106118e65780518252601f1990920191602091820191016118c7565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106119545780518252601f199092019160209182019101611935565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052805190602001201490505b92915050565b015190565b60408051600480825260a08201909252606091829190816020015b60608152602001906001900390816119b95790505090506119e2836001600160a01b0316611c05565b816000815181106119ef57fe5b6020026020010181905250611a0343611c28565b81600181518110611a1057fe5b6020908102919091010152611a256061611c28565b81600281518110611a3257fe5b6020026020010181905250611a4642611c28565b81600381518110611a5357fe5b6020026020010181905250611a6781611c3b565b9150505b919050565b611a7861219b565b506040805180820190915281518152602082810190820152919050565b611a9d61217b565b611aa682611cc5565b611aaf57600080fd5b6000611abe8360200151611cff565b60208085015160408051808201909152868152920190820152915050919050565b6000611ae961219b565b505080518051602091820151919092015191011190565b611b0861219b565b611b1182611adf565b611b1a57600080fd5b60208201516000611b2a82611d62565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590611b6357508151602110155b611b6c57600080fd5b6000611b7b8360200151611cff565b90508083600001511015611bd6576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015611bfc57826020036101000a820491505b50949350505050565b60408051600560a21b8318601482015260348101909152606090611a6781611e95565b6060611993611c3683611eeb565b611e95565b6060815160001415611c5c5750604080516000815260208101909152611a6b565b606082600081518110611c6b57fe5b602002602001015190506000600190505b8351811015611cac57611ca282858381518110611c9557fe5b6020026020010151611fd1565b9150600101611c7c565b50611a67611cbf825160c060ff1661204e565b82611fd1565b8051600090611cd657506000611a6b565b6020820151805160001a9060c0821015611cf557600092505050611a6b565b5060019392505050565b8051600090811a6080811015611d19576000915050611a6b565b60b8811080611d34575060c08110801590611d34575060f881105b15611d43576001915050611a6b565b60c0811015611d575760b519019050611a6b565b60f519019050611a6b565b80516000908190811a6080811015611d7d5760019150611e8e565b60b8811015611d9257607e1981019150611e8e565b60c0811015611e0c57600060b78203600186019550806020036101000a865104915060018101820193505080831015611e06576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50611e8e565b60f8811015611e215760be1981019150611e8e565b600060f78203600186019550806020036101000a865104915060018101820193505080831015611e8c576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b606081516001148015611ec75750607f60f81b82600081518110611eb557fe5b01602001516001600160f81b03191611155b15611ed3575080611a6b565b611993611ee58351608060ff1661204e565b83611fd1565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416611f2f57506018611f53565b6fffffffffffffffffffffffffffffffff198416611f4f57506010611f53565b5060005b6020811015611f8957818181518110611f6857fe5b01602001516001600160f81b03191615611f8157611f89565b600101611f53565b60008160200390506060816040519080825280601f01601f191660200182016040528015611fbe576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b81831015612002578051835260209283019201611fea565b50855184518101855292509050808201602086015b8183101561202f578051835260209283019201612017565b508651929092011591909101601f01601f191660405250905092915050565b606068010000000000000000831061209e576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b604080516001808252818301909252606091602082018180368337019050509050603784116120f85782840160f81b816000815181106120da57fe5b60200101906001600160f81b031916908160001a9053509050611993565b606061210385611eeb565b90508381510160370160f81b8260008151811061211c57fe5b60200101906001600160f81b031916908160001a90535061213d8282611fd1565b95945050505050565b604051806060016040528060008152602001600081526020016000151581525090565b60408051602081019091526000815290565b604051806040016040528061218e61219b565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe6c656e677468206f66206d697364656d65616e6f725468726573686f6c64206d69736d61746368746865206d6573736167652073656e646572206d7573742062652076616c696461746f7253657420636f6e7472616374746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662066656c6f6e795468726573686f6c64206d69736d61746368746865206d697364656d65616e6f725468726573686f6c64206f7574206f662072616e6765746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d6573736167652073656e646572206d7573742062652074686520626c6f636b2070726f647563657274686520636f6e7472616374206e6f7420696e69742079657400000000000000a2646970667358221220928e8ab9d0213bb25ef35f991d92a3bba9ae0b32c8a4041abe55fcb03c7709dd64736f6c63430006040033", - }, - { - ContractAddr: SystemRewardContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/823b953232a344ba3c32d6690e70a245477e5760", - Code: "60806040526004361061014f5760003560e01c806396713da9116100b6578063c81b16621161006f578063c81b1662146103dc578063dc927faf146103f1578063f9a2bbc714610406578063fb5478b31461041b578063fc3e590814610430578063fd6a68791461044557610193565b806396713da91461033a5780639a99b4f01461034f5780639dc0926214610388578063a1a11bf51461039d578063a78abc16146103b2578063ab51bb96146103c757610193565b806351e806721161010857806351e806721461028a5780636d70f7ae1461029f5780636e47b482146102e657806370fd5bad146102fb57806375d47a0a146103105780637942fd051461032557610193565b80630bee7a67146101985780633a0b0eff146101c65780633dffc387146101ed57806343756e5c14610218578063493279b1146102495780634bf6c8821461027557610193565b366101935734156101915760408051348152905133917f6c98249d85d88c3753a04a22230f595e4dc8d3dc86c34af35deeeedc861b89db919081900360200190a25b005b600080fd5b3480156101a457600080fd5b506101ad61045a565b6040805163ffffffff9092168252519081900360200190f35b3480156101d257600080fd5b506101db61045f565b60408051918252519081900360200190f35b3480156101f957600080fd5b50610202610465565b6040805160ff9092168252519081900360200190f35b34801561022457600080fd5b5061022d61046a565b604080516001600160a01b039092168252519081900360200190f35b34801561025557600080fd5b5061025e610470565b6040805161ffff9092168252519081900360200190f35b34801561028157600080fd5b50610202610475565b34801561029657600080fd5b5061022d61047a565b3480156102ab57600080fd5b506102d2600480360360208110156102c257600080fd5b50356001600160a01b0316610480565b604080519115158252519081900360200190f35b3480156102f257600080fd5b5061022d61049e565b34801561030757600080fd5b506102026104a4565b34801561031c57600080fd5b5061022d6104a9565b34801561033157600080fd5b506102026104af565b34801561034657600080fd5b506102026104b4565b34801561035b57600080fd5b506101db6004803603604081101561037257600080fd5b506001600160a01b0381351690602001356104b9565b34801561039457600080fd5b5061022d610664565b3480156103a957600080fd5b5061022d61066a565b3480156103be57600080fd5b506102d2610670565b3480156103d357600080fd5b506101ad610679565b3480156103e857600080fd5b5061022d61067e565b3480156103fd57600080fd5b5061022d610684565b34801561041257600080fd5b5061022d61068a565b34801561042757600080fd5b506101db610690565b34801561043c57600080fd5b5061020261069c565b34801561045157600080fd5b5061022d6106a1565b606481565b60015481565b600181565b61100181565b606181565b600881565b61200081565b6001600160a01b031660009081526002602052604090205460ff1690565b61100581565b600281565b61100881565b600b81565b600981565b6000805460ff1661053657600260208190527fe57bda0a954a7c7381b17b2c763e646ba2c60f67292d287ba583603e2c1c41668054600160ff19918216811790925561100560009081527fe25235fc0de9d7165652bef0846fefda506174abb9a190f03d0f7bcc6146dbce80548316841790559282558254161790555b3360009081526002602052604090205460ff166105845760405162461bcd60e51b815260040180806020018281038252602b8152602001806106a8602b913960400191505060405180910390fd5b60004783106105935747610595565b825b9050670de0b6b3a76400008111156105b25750670de0b6b3a76400005b8015610633576040516001600160a01b0385169082156108fc029083906000818181858888f193505050501580156105ee573d6000803e3d6000fd5b506040805182815290516001600160a01b038616917ff8b71c64315fc33b2ead2adfa487955065152a8ac33d9d5193aafd7f45dc15a0919081900360200190a261065d565b6040517fe589651933c2457488cc0d8e0941518abf748e799435e4e396d9c4d0b2db2d4d90600090a15b9392505050565b61100781565b61100681565b60005460ff1681565b600081565b61100281565b61100381565b61100081565b670de0b6b3a764000081565b600381565b6110048156fe6f6e6c79206f70657261746f7220697320616c6c6f77656420746f2063616c6c20746865206d6574686f64a2646970667358221220276887b515b756cf3ef5b38df18fd3a11174ee7fd973bdd337fc09d6b0e42f3b64736f6c63430006040033", - }, - { - ContractAddr: LightClientContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/823b953232a344ba3c32d6690e70a245477e5760", - Code: "608060405234801561001057600080fd5b50600436106102115760003560e01c8063a78abc1611610125578063dda83148116100ad578063e405bbc31161007c578063e405bbc314610681578063ea54b2aa14610689578063f9a2bbc714610691578063fc3e590814610699578063fd6a6879146106a157610211565b8063dda8314814610609578063df5fe7041461062f578063e1c7392a14610655578063e2761af01461065d57610211565b8063c81b1662116100f4578063c81b166214610534578063cba510a91461053c578063d816987914610562578063da8d08f0146105db578063dc927faf1461060157610211565b8063a78abc1614610444578063ab51bb9614610460578063ac43175114610468578063adc879e91461052c57610211565b8063564b81ef116101a857806375d47a0a1161017757806375d47a0a1461041c5780637942fd051461042457806396713da91461042c5780639dc0926214610434578063a1a11bf51461043c57610211565b8063564b81ef146102ca5780635c5ae8db146103475780636e47b4821461040c57806370fd5bad1461041457610211565b806343756e5c116101e457806343756e5c14610277578063493279b11461029b5780634bf6c882146102ba57806351e80672146102c257610211565b80630bee7a67146102165780632657e9b61461023757806333f7798d146102515780633dffc38714610259575b600080fd5b61021e6106a9565b6040805163ffffffff9092168252519081900360200190f35b61023f6106ae565b60408051918252519081900360200190f35b61023f6106b9565b6102616106bf565b6040805160ff9092168252519081900360200190f35b61027f6106c4565b604080516001600160a01b039092168252519081900360200190f35b6102a36106ca565b6040805161ffff9092168252519081900360200190f35b6102616106cf565b61027f6106d4565b6102d26106da565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561030c5781810151838201526020016102f4565b50505050905090810190601f1680156103395780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61036d6004803603602081101561035d57600080fd5b50356001600160401b03166107e6565b60405180856001600160401b03166001600160401b0316815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156103ce5781810151838201526020016103b6565b50505050905090810190601f1680156103fb5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b61027f6108a1565b6102616108a7565b61027f6108ac565b6102616108b2565b6102616108b7565b61027f6108bc565b61027f6108c2565b61044c6108c8565b604080519115158252519081900360200190f35b61021e6108d1565b61052a6004803603604081101561047e57600080fd5b81019060208101813564010000000081111561049957600080fd5b8201836020820111156104ab57600080fd5b803590602001918460018302840111640100000000831117156104cd57600080fd5b9193909290916020810190356401000000008111156104eb57600080fd5b8201836020820111156104fd57600080fd5b8035906020019184600183028401116401000000008311171561051f57600080fd5b5090925090506108d6565b005b61023f610b8f565b61027f610b95565b61023f6004803603602081101561055257600080fd5b50356001600160401b0316610b9b565b61044c6004803603604081101561057857600080fd5b81019060208101813564010000000081111561059357600080fd5b8201836020820111156105a557600080fd5b803590602001918460018302840111640100000000831117156105c757600080fd5b9193509150356001600160401b0316610bba565b61027f600480360360208110156105f157600080fd5b50356001600160401b031661139b565b61027f6113b6565b61027f6004803603602081101561061f57600080fd5b50356001600160401b03166113bc565b61044c6004803603602081101561064557600080fd5b50356001600160401b03166113e0565b61052a611422565b6106656115c7565b604080516001600160401b039092168252519081900360200190f35b6106656115d6565b6102d26115ec565b61027f611609565b61026161160f565b61027f611614565b606481565b662386f26fc1000081565b60055481565b600181565b61100181565b606181565b600881565b61200081565b604080516020808252818301909252606091829190602082018180368337505060045460208301525090506000805b60208160ff16101561075057828160ff168151811061072457fe5b01602001516001600160f81b0319161561074357600190910190610748565b610750565b600101610709565b5060608160ff166040519080825280601f01601f191660200182016040528015610781576020820181803683370190505b50905060005b8260ff168160ff1610156107dd57838160ff16815181106107a457fe5b602001015160f81c60f81b828260ff16815181106107be57fe5b60200101906001600160f81b031916908160001a905350600101610787565b50925050505b90565b60016020818152600092835260409283902080548184015460028084015460038501805489516101009982161599909902600019011692909204601f81018790048702880187019098528787526001600160401b0390931696919592949091908301828280156108975780601f1061086c57610100808354040283529160200191610897565b820191906000526020600020905b81548152906001019060200180831161087a57829003601f168201915b5050505050905084565b61100581565b600281565b61100881565b600b81565b600981565b61100781565b61100681565b60005460ff1681565b600081565b60005460ff1661092d576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604482015290519081900360640190fd5b336110071461096d5760405162461bcd60e51b815260040180806020018281038252602e815260200180611ac6602e913960400191505060405180910390fd5b6109e184848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601b81527f726577617264466f7256616c696461746f725365744368616e676500000000006020820152915061161a9050565b15610ac05760208114610a255760405162461bcd60e51b815260040180806020018281038252602e815260200180611a65602e913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610a639185858083850183828082843760009201919091525061170192505050565b9050600081118015610a7d5750670de0b6b3a76400008111155b610ab85760405162461bcd60e51b815260040180806020018281038252602f815260200180611af4602f913960400191505060405180910390fd5b600555610afd565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b60045481565b61100281565b6001600160401b03166000908152600160208190526040909120015490565b60408051630a83aaa960e31b815233600482015290516000916110069163541d554891602480820192602092909190829003018186803b158015610bfd57600080fd5b505afa158015610c11573d6000803e3d6000fd5b505050506040513d6020811015610c2757600080fd5b5051610c7a576040805162461bcd60e51b815260206004820152601f60248201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604482015290519081900360640190fd5b6001600160401b0382166000908152600260205260409020546001600160a01b031615610cee576040805162461bcd60e51b815260206004820152601c60248201527f63616e27742073796e63206475706c6963617465642068656164657200000000604482015290519081900360640190fd5b6003546001600160401b0390811690831611610d3b5760405162461bcd60e51b8152600401808060200182810382526026815260200180611b236026913960400191505060405180910390fd5b600354600160401b90046001600160401b0316610d56611863565b6001600160401b0382811660009081526001602081815260409283902083516080810185528154909516855280830154858301526002808201548686015260038201805486516101009682161596909602600019011691909104601f81018490048402850184019095528484529093606086019392830182828015610e1c5780601f10610df157610100808354040283529160200191610e1c565b820191906000526020600020905b815481529060010190602001808311610dff57829003601f168201915b50505050508152505090505b836001600160401b0316826001600160401b031610158015610e5957506003546001600160401b0390811690831610155b15610f3a5780516001600160401b0380821660009081526001602081815260409283902083516080810185528154909516855280830154858301526002808201548686015260038201805486516101009682161596909602600019011691909104601f8101849004840285018401909552848452959750939460608601939091830182828015610f2a5780601f10610eff57610100808354040283529160200191610f2a565b820191906000526020600020905b815481529060010190602001808311610f0d57829003601f168201915b5050505050815250509050610e28565b6060810151516110315780516001600160401b03811660009081526001602081815260409283902060030180548451600294821615610100026000190190911693909304601f810183900483028401830190945283835293955090929190830182828015610fe95780601f10610fbe57610100808354040283529160200191610fe9565b820191906000526020600020905b815481529060010190602001808311610fcc57829003601f168201915b505050506060830182905250516110315760405162461bcd60e51b8152600401808060200182810382526021815260200180611a446021913960400191505060405180910390fd5b6000816060015151608801905060608787905082016040519080825280601f01601f191660200182016040528015611070576020820181803683370190505b509050600061107e82611706565b905061108c8486838661170c565b6110c75760405162461bcd60e51b81526004018080602001828103825260238152602001806119416023913960400191505060405180910390fd5b6000838201915061110d8a8a8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061177892505050565b9450905061111c818386611782565b8251602001935061112b611889565b6110008186866064600019fa61114057600080fd5b805194506000600160f81b8616156111cf5750600554604080516309a99b4f60e41b815233600482015260248101929092525160019161100291639a99b4f0916044808201926020929091908290030181600087803b1580156111a257600080fd5b505af11580156111b6573d6000803e3d6000fd5b505050506040513d60208110156111cc57600080fd5b50505b856001600160401b0316955060208201935060006111ef858884156117c3565b90985090506001600160401b03808216908c161461123e5760405162461bcd60e51b8152600401808060200182810382526033815260200180611a936033913960400191505060405180910390fd5b6001600160401b03808c16600081815260026020818152604080842080546001600160a01b031916331790558e86168e529383526001808252928490208d518154961667ffffffffffffffff199096169590951785558c81015192850192909255918b01519183019190915560608a015180518b93926112c59260038501929101906118a8565b50506003546001600160401b03600160401b9091048116908d161115905061130d576003805467ffffffffffffffff60401b1916600160401b6001600160401b038e16021790555b7f4042c1020a8f410fb1c8859d276ab436aeb2c3074960e48467299cf1c966d3b48b8a8a602001518560405180856001600160401b03166001600160401b03168152602001846001600160401b03166001600160401b031681526020018381526020018215151515815260200194505050505060405180910390a15060019c9b505050505050505050505050565b6002602052600090815260409020546001600160a01b031681565b61100381565b6001600160401b03166000908152600260205260409020546001600160a01b031690565b6001600160401b0381166000908152600260205260408120546001600160a01b031615158061141c57506003546001600160401b038381169116145b92915050565b60005460ff161561147a576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b60008061149f60405180610100016040528060e0815260200161196460e09139611778565b815160045590925090506114b1611863565b60006114bf848460006117c3565b60008083526001600160401b038281168252600160208181526040938490208651815467ffffffffffffffff191694169390931783558086015191830191909155918401516002820155606084015180519496509294508593909261152b9260038501929101906118a8565b50506003805467ffffffffffffffff19166001600160401b0384811691821767ffffffffffffffff60401b1916600160401b9290920291909117918290556000805460ff19166001179055662386f26fc10000600555602085810151604080519490931684529083015280517f5ac9b37d571677b80957ca05693f371526c602fd08042b416a29fdab7efefa499350918290030190a150505050565b6003546001600160401b031681565b600354600160401b90046001600160401b031681565b60405180610100016040528060e0815260200161196460e0913981565b61100081565b600381565b61100481565b6000816040516020018082805190602001908083835b6020831061164f5780518252601f199092019160209182019101611630565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106116bd5780518252601f19909201916020918201910161169e565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b60200190565b600084606001515182840103925060008061172a8760600151611778565b909250905061173a828683611782565b5050506040840151601f1983810191909152602090940151603f19830152605f19820192909252600454606719820152910160871990910152600190565b8051602090910191565b5b602081106117a2578251825260209283019290910190601f1901611783565b915181516020939093036101000a6000190180199091169216919091179052565b6117cb611863565b60088401516028850151604890950180519095600092916117ea611863565b6020810183905260408101829052866118555760008060688a036040519080825280601f01601f19166020018201604052801561182e576020820181803683370190505b506060840181905261183f90611778565b909250905061185260208c018383611782565b50505b989297509195505050505050565b604080516080810182526000808252602082018190529181019190915260608082015290565b6040518061100001604052806080906020820280368337509192915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106118e957805160ff1916838001178555611916565b82800160010185558215611916579182015b828111156119165782518255916020019190600101906118fb565b50611922929150611926565b5090565b6107e391905b80821115611922576000815560010161192c56fe6661696c656420746f2073657269616c697a6520636f6e73656e73757320737461746542696e616e63652d436861696e2d47616e67657300000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000aea1ac326886b992a991d21a6eb155f41b77867cbf659e78f31d89d8205122a84d1be64f0e9a466c2e66a53433928192783e29f8fa21beb2133499b5ef770f60000000e8d4a5100099308aa365c40554bc89982af505d85da95251445d5dd4a9bb37dd2584fd92d3000000e8d4a5100001776920ff0b0f38d78cf95c033c21adf7045785114e392a7544179652e0a612000000e8d4a510006661696c656420746f206c6f61642076616c696461746f722073657420646174616c656e677468206f6620726577617264466f7256616c696461746f725365744368616e6765206d69736d617463686865616465722068656967687420646f65736e277420657175616c20746f207468652073706563696669656420686569676874746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374746865206e6577526577617264466f7256616c696461746f725365744368616e6765206f7574206f662072616e676563616e27742073796e6320686561646572206265666f726520696e697469616c486569676874a2646970667358221220137a8776113e727049f523a5f1486edaec611d89ff3d19f099dfe799b6b5e66f64736f6c63430006040033", - }, - { - ContractAddr: TokenHubContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/823b953232a344ba3c32d6690e70a245477e5760", - Code: "60806040526004361061031e5760003560e01c80639a99b4f0116101ab578063bd466461116100f7578063f014847211610095578063fc1a598f1161006f578063fc1a598f14610cb3578063fc3e5908146109c9578063fd6a687914610ce6578063ff9c0027146107c757610366565b8063f014847214610c74578063f9a2bbc714610c89578063fa9e915914610c9e57610366565b8063dc6f5e90116100d1578063dc6f5e90146109c9578063dc927faf14610c35578063e1c7392a14610c4a578063ebf71d5314610c5f57610366565b8063bd46646114610b68578063c81b166214610b9b578063c8509d8114610bb057610366565b8063a7c9f02d11610164578063ac4317511161013e578063ac43175114610a3a578063b770186114610b05578063b99328c514610b1a578063b9fd21e314610b5357610366565b8063a7c9f02d146109c9578063aa7415f5146109de578063ab51bb9614610a2557610366565b80639a99b4f0146109095780639dc0926214610942578063a1a11bf514610957578063a496fba21461096c578063a5cd588b14610981578063a78abc16146109b457610366565b80635d499b1b1161026a57806375d47a0a116102235780638b87b21f116101fd5780638b87b21f146105b25780638eff336c146108a057806396713da9146108df5780639a854bbd146108f457610366565b806375d47a0a146107f15780637942fd0514610806578063831d65d11461081b57610366565b80635d499b1b14610671578063613684751461036b5780636e056520146106865780636e47b482146107b257806370fd5bad146107c757806371d30863146107dc57610366565b806343756e5c116102d75780634bf6c882116102b15780634bf6c8821461036b57806350432d321461061d57806351e806721461063257806359b927891461064757610366565b806343756e5c146105c757806343a368b9146105dc578063493279b1146105f157610366565b8063077b8f351461036b5780630bee7a67146103965780631182b875146103c4578063149d14d9146104be5780633d713223146104e55780633dffc387146105b257610366565b36610366573415610364576040805133815234602082015281517f6c98249d85d88c3753a04a22230f595e4dc8d3dc86c34af35deeeedc861b89db929181900390910190a15b005b600080fd5b34801561037757600080fd5b50610380610cfb565b6040805160ff9092168252519081900360200190f35b3480156103a257600080fd5b506103ab610d00565b6040805163ffffffff9092168252519081900360200190f35b3480156103d057600080fd5b50610449600480360360408110156103e757600080fd5b60ff8235169190810190604081016020820135600160201b81111561040b57600080fd5b82018360208201111561041d57600080fd5b803590602001918460018302840111600160201b8311171561043e57600080fd5b509092509050610d05565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561048357818101518382015260200161046b565b50505050905090810190601f1680156104b05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156104ca57600080fd5b506104d3610e33565b60408051918252519081900360200190f35b3480156104f157600080fd5b506105966004803603602081101561050857600080fd5b810190602081018135600160201b81111561052257600080fd5b82018360208201111561053457600080fd5b803590602001918460018302840111600160201b8311171561055557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610e39945050505050565b604080516001600160a01b039092168252519081900360200190f35b3480156105be57600080fd5b50610380610e5d565b3480156105d357600080fd5b50610596610e62565b3480156105e857600080fd5b506104d3610e68565b3480156105fd57600080fd5b50610606610e74565b6040805161ffff9092168252519081900360200190f35b34801561062957600080fd5b506104d3610e79565b34801561063e57600080fd5b50610596610e84565b34801561065357600080fd5b506105966004803603602081101561066a57600080fd5b5035610e8a565b34801561067d57600080fd5b506104d3610ea5565b61079e6004803603608081101561069c57600080fd5b810190602081018135600160201b8111156106b657600080fd5b8201836020820111156106c857600080fd5b803590602001918460208302840111600160201b831117156106e957600080fd5b919390929091602081019035600160201b81111561070657600080fd5b82018360208201111561071857600080fd5b803590602001918460208302840111600160201b8311171561073957600080fd5b919390929091602081019035600160201b81111561075657600080fd5b82018360208201111561076857600080fd5b803590602001918460208302840111600160201b8311171561078957600080fd5b91935091503567ffffffffffffffff16610eae565b604080519115158252519081900360200190f35b3480156107be57600080fd5b50610596611383565b3480156107d357600080fd5b50610380611389565b3480156107e857600080fd5b506104d361138e565b3480156107fd57600080fd5b50610596611394565b34801561081257600080fd5b5061038061139a565b34801561082757600080fd5b506103646004803603604081101561083e57600080fd5b60ff8235169190810190604081016020820135600160201b81111561086257600080fd5b82018360208201111561087457600080fd5b803590602001918460018302840111600160201b8311171561089557600080fd5b50909250905061139f565b3480156108ac57600080fd5b50610364600480360360608110156108c357600080fd5b508035906001600160a01b0360208201351690604001356114e8565b3480156108eb57600080fd5b5061038061156e565b34801561090057600080fd5b506104d3611573565b34801561091557600080fd5b506104d36004803603604081101561092c57600080fd5b506001600160a01b03813516906020013561157f565b34801561094e57600080fd5b506105966116bd565b34801561096357600080fd5b506105966116c3565b34801561097857600080fd5b506103806116c9565b34801561098d57600080fd5b506104d3600480360360208110156109a457600080fd5b50356001600160a01b03166116ce565b3480156109c057600080fd5b5061079e6116e0565b3480156109d557600080fd5b506103806116e9565b61079e600480360360808110156109f457600080fd5b5080356001600160a01b03908116916020810135909116906040810135906060013567ffffffffffffffff166116ee565b348015610a3157600080fd5b506103ab6116c9565b348015610a4657600080fd5b5061036460048036036040811015610a5d57600080fd5b810190602081018135600160201b811115610a7757600080fd5b820183602082011115610a8957600080fd5b803590602001918460018302840111600160201b83111715610aaa57600080fd5b919390929091602081019035600160201b811115610ac757600080fd5b820183602082011115610ad957600080fd5b803590602001918460018302840111600160201b83111715610afa57600080fd5b509092509050611daf565b348015610b1157600080fd5b506104d361201e565b348015610b2657600080fd5b5061036460048036036040811015610b3d57600080fd5b50803590602001356001600160a01b0316612024565b348015610b5f57600080fd5b506104d361209a565b348015610b7457600080fd5b506104d360048036036020811015610b8b57600080fd5b50356001600160a01b03166120a4565b348015610ba757600080fd5b506105966120bf565b348015610bbc57600080fd5b5061036460048036036040811015610bd357600080fd5b60ff8235169190810190604081016020820135600160201b811115610bf757600080fd5b820183602082011115610c0957600080fd5b803590602001918460018302840111600160201b83111715610c2a57600080fd5b5090925090506120c5565b348015610c4157600080fd5b50610596612195565b348015610c5657600080fd5b5061036461219b565b348015610c6b57600080fd5b5061038061223b565b348015610c8057600080fd5b50610380612240565b348015610c9557600080fd5b50610596612245565b348015610caa57600080fd5b506104d361224b565b348015610cbf57600080fd5b5061044960048036036020811015610cd657600080fd5b50356001600160a01b0316612251565b348015610cf257600080fd5b50610596612378565b600881565b606481565b60005460609060ff16610d4d576040805162461bcd60e51b815260206004820152601960248201526000805160206147bf833981519152604482015290519081900360640190fd5b3361200014610d8d5760405162461bcd60e51b815260040180806020018281038252602f81526020018061476d602f913960400191505060405180910390fd5b60ff841660021415610ddf57610dd883838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061237e92505050565b9050610e2c565b6040805162461bcd60e51b815260206004820152601860248201527f756e7265636f676e697a65642073796e207061636b6167650000000000000000604482015290519081900360640190fd5b9392505050565b60015490565b6020818101516000908152600490915260409020546001600160a01b03165b919050565b600181565b61100181565b670de0b6b3a764000081565b606181565b662386f26fc1000081565b61200081565b6000908152600460205260409020546001600160a01b031690565b6402540be40081565b6000805460ff16610ef4576040805162461bcd60e51b815260206004820152601960248201526000805160206147bf833981519152604482015290519081900360640190fd5b868514610f325760405162461bcd60e51b815260040180806020018281038252603b815260200180614732603b913960400191505060405180910390fd5b868314610f705760405162461bcd60e51b815260040180806020018281038252603f815260200180614605603f913960400191505060405180910390fd5b426078018267ffffffffffffffff161015610fbc5760405162461bcd60e51b81526004018080602001828103825260248152602001806144f56024913960400191505060405180910390fd5b6402540be4003406156110005760405162461bcd60e51b81526004018080602001828103825260408152602001806148356040913960400191505060405180910390fd5b60408051868152602080880282010190915285906000908190606090848015611033578160200160208202803683370190505b50905060005b8481101561110e576402540be4008b8b8381811061105357fe5b905060200201358161106157fe5b061561109e5760405162461bcd60e51b815260040180806020018281038252603c815260200180614644603c913960400191505060405180910390fd5b6110c38b8b838181106110ad57fe5b90506020020135856124a290919063ffffffff16565b93506110ef6402540be4008c8c848181106110da57fe5b905060200201356124fc90919063ffffffff16565b8282815181106110fb57fe5b6020908102919091010152600101611039565b5060015461113390611126908663ffffffff61253e16565b849063ffffffff6124a216565b3410156111715760405162461bcd60e51b81526004018080602001828103825260568152602001806147df6056913960600191505060405180910390fd5b611181348463ffffffff61259716565b915061118b61434e565b6040518060c001604052806221272160e91b60001b815260200160006001600160a01b031681526020018381526020018e8e808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505050908252506040805160208c810282810182019093528c82529283019290918d918d91829185019084908082843760009201919091525050509082525067ffffffffffffffff8916602090910152905061200063f7a251d7600361124f846125d9565b611264876402540be40063ffffffff6124fc16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156112c25781810151838201526020016112aa565b50505050905090810190601f1680156112ef5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561131057600080fd5b505af1158015611324573d6000803e3d6000fd5b505060408051600081523360208201528082018890526060810187905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a15060019c9b505050505050505050505050565b61100581565b600281565b60015481565b61100881565b600b81565b60005460ff166113e4576040805162461bcd60e51b815260206004820152601960248201526000805160206147bf833981519152604482015290519081900360640190fd5b33612000146114245760405162461bcd60e51b815260040180806020018281038252602f81526020018061476d602f913960400191505060405180910390fd5b60ff8316600314156114745761146f82828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061289492505050565b6114e3565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a15b505050565b33611008146115285760405162461bcd60e51b815260040180806020018281038252602381526020018061479c6023913960400191505060405180910390fd5b600083815260046020908152604080832080546001600160a01b039096166001600160a01b03199096168617905593825260038152838220949094556002909352912055565b600981565b677ce66c50e284000081565b6000805460ff166115c5576040805162461bcd60e51b815260206004820152601960248201526000805160206147bf833981519152604482015290519081900360640190fd5b33611005146116055760405162461bcd60e51b815260040180806020018281038252602f815260200180614468602f913960400191505060405180910390fd5b60004783106116145747611616565b825b9050670de0b6b3a76400008111156116325760009150506116b7565b80156116b4576040516001600160a01b0385169082156108fc029083906000818181858888f1935050505015801561166e573d6000803e3d6000fd5b50604080516001600160a01b03861681526020810183905281517ff8b71c64315fc33b2ead2adfa487955065152a8ac33d9d5193aafd7f45dc15a0929181900390910190a15b90505b92915050565b61100781565b61100681565b600081565b60026020526000908152604090205481565b60005460ff1681565b600381565b6000805460ff16611734576040805162461bcd60e51b815260206004820152601960248201526000805160206147bf833981519152604482015290519081900360640190fd5b426078018267ffffffffffffffff1610156117805760405162461bcd60e51b81526004018080602001828103825260248152602001806144f56024913960400191505060405180910390fd5b6402540be4003406156117c45760405162461bcd60e51b81526004018080602001828103825260408152602001806148356040913960400191505060405180910390fd5b600080806001600160a01b0388166118a3576001546117ea90879063ffffffff6124a216565b3410156118285760405162461bcd60e51b815260040180806020018281038252606181526020018061457f6061913960800191505060405180910390fd5b6402540be40086061561186c5760405162461bcd60e51b815260040180806020018281038252603c815260200180614644603c913960400191505060405180910390fd5b61187c348763ffffffff61259716565b9050611893866402540be40063ffffffff6124fc16565b6221272160e91b93509150611b46565b6001600160a01b0388166000908152600360205260409020549250826118fa5760405162461bcd60e51b815260040180806020018281038252603181526020018061454e6031913960400191505060405180910390fd5b60015434101561193b5760405162461bcd60e51b815260040180806020018281038252603f8152602001806146a1603f913960400191505060405180910390fd5b506001600160a01b038716600090815260026020526040902054349060088111158061198657506008811180156119865750611984876007198301600a0a63ffffffff6128f016565b155b6119c15760405162461bcd60e51b815260040180806020018281038252603c815260200180614644603c913960400191505060405180910390fd5b6119cb8782612932565b92506119d684612972565b15611a1e576305f5e100831015611a1e5760405162461bcd60e51b815260040180806020018281038252603a815260200180614497603a913960400191505060405180910390fd5b600881101580611a385750600881108015611a3857508683115b611a735760405162461bcd60e51b81526004018080602001828103825260258152602001806145e06025913960400191505060405180910390fd5b677ce66c50e2840000831115611aba5760405162461bcd60e51b81526004018080602001828103825260358152602001806145196035913960400191505060405180910390fd5b604080516323b872dd60e01b81523360048201523060248201526044810189905290516001600160a01b038b16916323b872dd9160648083019260209291908290030181600087803b158015611b0f57600080fd5b505af1158015611b23573d6000803e3d6000fd5b505050506040513d6020811015611b3957600080fd5b5051611b4457600080fd5b505b611b4e61434e565b6040805160c0810182528581526001600160a01b038b166020820152815160018082528184018452919283019181602001602082028036833750505081526040805160018082528183019092526020928301929091908083019080368337505050815260408051600180825281830190925260209283019290919080830190803683370190505081526020018767ffffffffffffffff168152509050828160400151600081518110611bfc57fe5b602002602001018181525050878160600151600081518110611c1a57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050338160800151600081518110611c4c57fe5b6001600160a01b039092166020928302919091019091015261200063f7a251d76003611c77846125d9565b611c8c866402540be40063ffffffff6124fc16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611cea578181015183820152602001611cd2565b50505050905090810190601f168015611d175780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015611d3857600080fd5b505af1158015611d4c573d6000803e3d6000fd5b5050604080516001600160a01b038d1681523360208201528082018b90526060810186905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a150600198975050505050505050565b3361100714611def5760405162461bcd60e51b815260040180806020018281038252602e8152602001806146e0602e913960400191505060405180910390fd5b60208114611e44576040805162461bcd60e51b815260206004820152601b60248201527f65787065637465642076616c7565206c656e6774682069732033320000000000604482015290519081900360640190fd5b606084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8801819004810282018101909252868152939450606093925086915085908190840183828082843760009201919091525050505060208301519091506772656c617946656560c01b811415611f4c576020820151670de0b6b3a76400008111801590611ef357506402540be4008106155b611f44576040805162461bcd60e51b815260206004820152601960248201527f7468652072656c6179466565206f7574206f662072616e676500000000000000604482015290519081900360640190fd5b600155611f89565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a878787876040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050505050565b61c35081565b33611008146120645760405162461bcd60e51b815260040180806020018281038252602381526020018061479c6023913960400191505060405180910390fd5b600091825260046020908152604080842080546001600160a01b03191690556001600160a01b0392909216835260039052812055565b6221272160e91b81565b6001600160a01b031660009081526003602052604090205490565b61100281565b60005460ff1661210a576040805162461bcd60e51b815260206004820152601960248201526000805160206147bf833981519152604482015290519081900360640190fd5b336120001461214a5760405162461bcd60e51b815260040180806020018281038252602f81526020018061476d602f913960400191505060405180910390fd5b60ff8316600314156114745761146f82828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612a7892505050565b61100381565b60005460ff16156121f3576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b662386f26fc1000060019081556000808052600260205260127fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b55805460ff19169091179055565b600481565b600581565b61100081565b61271081565b6001600160a01b03811660009081526003602090815260409182902054825182815280840190935260609290918391906020820181803683375050506020810183905290506000805b60208160ff1610156122e157828160ff16815181106122b557fe5b01602001516001600160f81b031916156122d4576001909101906122d9565b6122e1565b60010161229a565b5060608160ff166040519080825280601f01601f191660200182016040528015612312576020820181803683370190505b50905060005b8260ff168160ff16101561236e57838160ff168151811061233557fe5b602001015160f81c60f81b828260ff168151811061234f57fe5b60200101906001600160f81b031916908160001a905350600101612318565b5095945050505050565b61100481565b606061238861439a565b600061239384612b76565b91509150806123e9576040805162461bcd60e51b815260206004820152601f60248201527f756e7265636f676e697a6564207472616e73666572496e207061636b61676500604482015290519081900360640190fd5b60006123f483612cb5565b905063ffffffff811615612488576040808401516020808601516001600160a01b0316600090815260029091529182205461242f9190612932565b90506124396143cf565b60405180608001604052808660000151815260200183815260200186608001516001600160a01b031681526020018463ffffffff16815250905061247c81613002565b95505050505050610e58565b50506040805160008152602081019091529150610e589050565b6000828201838110156116b4576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60006116b483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506130de565b60008261254d575060006116b7565b8282028284828161255a57fe5b04146116b45760405162461bcd60e51b81526004018080602001828103825260218152602001806146806021913960400191505060405180910390fd5b60006116b483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613180565b60408051600680825260e08201909252606091829190816020015b60608152602001906001900390816125f45750508351909150612616906131da565b8160008151811061262357fe5b602002602001018190525061264483602001516001600160a01b03166131ed565b8160018151811061265157fe5b60200260200101819052506000836040015151905060608160405190808252806020026020018201604052801561269c57816020015b60608152602001906001900390816126875790505b50905060005b828110156126e9576126ca866040015182815181106126bd57fe5b60200260200101516131da565b8282815181106126d657fe5b60209081029190910101526001016126a2565b506126f381613210565b8360028151811061270057fe5b602002602001018190525060608260405190808252806020026020018201604052801561274157816020015b606081526020019060019003908161272c5790505b50905060005b83811015612797576127788760600151828151811061276257fe5b60200260200101516001600160a01b03166131ed565b82828151811061278457fe5b6020908102919091010152600101612747565b506127a181613210565b846003815181106127ae57fe5b60200260200101819052506060836040519080825280602002602001820160405280156127ef57816020015b60608152602001906001900390816127da5790505b50905060005b8481101561282f576128108860800151828151811061276257fe5b82828151811061281c57fe5b60209081029190910101526001016127f5565b5061283981613210565b8560048151811061284657fe5b60200260200101819052506128688760a0015167ffffffffffffffff166131da565b8560058151811061287557fe5b602002602001018190525061288985613210565b979650505050505050565b61289c6143f6565b60006128a78361329a565b91509150806128e75760405162461bcd60e51b815260040180806020018281038252602481526020018061470e6024913960400191505060405180910390fd5b6114e382613465565b60006116b483836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f00000000000000008152506138e9565b6000600882111561295b57612954836007198401600a0a63ffffffff6124fc16565b90506116b7565b6116b4836008849003600a0a63ffffffff61253e16565b604080516020808252818301909252600091606091906020820181803683375050506020810184905290506000805b60208160ff1610156129e857828160ff16815181106129bc57fe5b01602001516001600160f81b031916156129db576001909101906129e0565b6129e8565b6001016129a1565b50600860ff82161015612a0057600092505050610e58565b816005820360ff1681518110612a1257fe5b6020910101516001600160f81b031916602d60f81b14612a3757600092505050610e58565b816001820360ff1681518110612a4957fe5b6020910101516001600160f81b031916604d60f81b14612a6e57600092505050610e58565b5060019392505050565b612a8061434e565b6000612a8b8361394b565b9150915080612acb5760405162461bcd60e51b81526004018080602001828103825260248152602001806144d16024913960400191505060405180910390fd5b612ad36143f6565b602080840180516001600160a01b0390811684526040808701518585015291511660009081526002909252812054905b846040015151811015612b5457612b3185604001518281518110612b2357fe5b602002602001015183613bc6565b85604001518281518110612b4157fe5b6020908102919091010152600101612b03565b506080840151604083015260056060830152612b6f82613465565b5050505050565b612b7e61439a565b6000612b8861439a565b612b9061442d565b612ba1612b9c86613bff565b613c24565b90506000805b612bb083613c6e565b15612ca85780612bd257612bcb612bc684613c8f565b613cdd565b8452612ca0565b8060011415612bff57612bec612be784613c8f565b613d94565b6001600160a01b03166020850152612ca0565b8060021415612c1e57612c14612bc684613c8f565b6040850152612ca0565b8060031415612c4657612c33612be784613c8f565b6001600160a01b03166060850152612ca0565b8060041415612c6e57612c5b612be784613c8f565b6001600160a01b03166080850152612ca0565b8060051415612c9b57612c83612bc684613c8f565b67ffffffffffffffff1660a085015260019150612ca0565b612ca8565b600101612ba7565b5091935090915050915091565b60208101516000906001600160a01b0316612dec578160a0015167ffffffffffffffff16421115612ce857506001610e58565b8160400151471015612cfc57506003610e58565b606082015160408084015190516000926001600160a01b0316916127109184818181858888f193505050503d8060008114612d53576040519150601f19603f3d011682016040523d82523d6000602084013e612d58565b606091505b5050905080612d6b575060049050610e58565b7f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5983602001518460600151856040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a15060009050610e58565b8160a0015167ffffffffffffffff16421115612e0a57506001610e58565b81516020808401516001600160a01b031660009081526003909152604090205414612e3757506002610e58565b602080830151604080516370a0823160e01b815230600482015290516000936001600160a01b03909316926370a082319261c3509260248083019392829003018187803b158015612e8757600080fd5b5086fa158015612e9b573d6000803e3d6000fd5b50505050506040513d6020811015612eb257600080fd5b50516040840151909150811015612ecd575060039050610e58565b600083602001516001600160a01b031663a9059cbb61c350866060015187604001516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b158015612f3e57600080fd5b5087f1158015612f52573d6000803e3d6000fd5b50505050506040513d6020811015612f6957600080fd5b505190508015612ff6577f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5984602001518560600151866040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a15060009150610e589050565b5060059150610e589050565b60408051600480825260a08201909252606091829190816020015b606081526020019060019003908161301d575050835190915061303f906131da565b8160008151811061304c57fe5b602002602001018190525061306483602001516131da565b8160018151811061307157fe5b602002602001018190525061309283604001516001600160a01b03166131ed565b8160028151811061309f57fe5b60200260200101819052506130bd836060015163ffffffff166131da565b816003815181106130ca57fe5b6020026020010181905250610e2c81613210565b6000818361316a5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561312f578181015183820152602001613117565b50505050905090810190601f16801561315c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161317657fe5b0495945050505050565b600081848411156131d25760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561312f578181015183820152602001613117565b505050900390565b60606116b76131e883613dae565b613e94565b60408051600560a21b8318601482015260348101909152606090610e2c81613e94565b60608151600014156132315750604080516000815260208101909152610e58565b60608260008151811061324057fe5b602002602001015190506000600190505b8351811015613281576132778285838151811061326a57fe5b6020026020010151613ee6565b9150600101613251565b50610e2c613294825160c060ff16613f63565b82613ee6565b6132a26143f6565b60006132ac6143f6565b6132b461442d565b6132c0612b9c86613bff565b90506000805b6132cf83613c6e565b15612ca857806132f5576132e5612be784613c8f565b6001600160a01b0316845261345d565b806001141561339657606061331161330c85613c8f565b61405b565b9050805160405190808252806020026020018201604052801561333e578160200160208202803683370190505b50602086015260005b815181101561338f5761336c82828151811061335f57fe5b6020026020010151613cdd565b8660200151828151811061337c57fe5b6020908102919091010152600101613347565b505061345d565b80600214156134385760606133ad61330c85613c8f565b905080516040519080825280602002602001820160405280156133da578160200160208202803683370190505b50604086015260005b815181101561338f576134088282815181106133fb57fe5b6020026020010151613d94565b8660400151828151811061341857fe5b6001600160a01b03909216602092830291909101909101526001016133e3565b8060031415612c9b5761344d612bc684613c8f565b63ffffffff166060850152600191505b6001016132c6565b80516001600160a01b031661368f5760005b8160200151518110156136895760008260400151828151811061349657fe5b60200260200101516001600160a01b0316612710846020015184815181106134ba57fe5b60209081029190910101516040516000818181858888f193505050503d8060008114613502576040519150601f19603f3d011682016040523d82523d6000602084013e613507565b606091505b50509050806135ca577f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061354657fe5b60200260200101518560200151858151811061355e57fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a1613680565b7fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a83600001518460400151848151811061360057fe5b60200260200101518560200151858151811061361857fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b50600101613477565b506138e6565b60005b8160200151518110156138e457600082600001516001600160a01b031663a9059cbb61c350856040015185815181106136c757fe5b6020026020010151866020015186815181106136df57fe5b60200260200101516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b15801561373657600080fd5b5087f115801561374a573d6000803e3d6000fd5b50505050506040513d602081101561376157600080fd5b505190508015613825577fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a8360000151846040015184815181106137a157fe5b6020026020010151856020015185815181106137b957fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a16138db565b7f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061385b57fe5b60200260200101518560200151858151811061387357fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b50600101613692565b505b50565b600081836139385760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561312f578181015183820152602001613117565b5082848161394257fe5b06949350505050565b61395361434e565b600061395d61434e565b61396561442d565b613971612b9c86613bff565b90506000805b61398083613c6e565b15613bb8578061399d57613996612bc684613c8f565b8452613bb0565b80600114156139c5576139b2612be784613c8f565b6001600160a01b03166020850152613bb0565b8060021415613a545760606139dc61330c85613c8f565b90508051604051908082528060200260200182016040528015613a09578160200160208202803683370190505b50604086015260005b8151811015613a4d57613a2a82828151811061335f57fe5b86604001518281518110613a3a57fe5b6020908102919091010152600101613a12565b5050613bb0565b8060031415613ae9576060613a6b61330c85613c8f565b90508051604051908082528060200260200182016040528015613a98578160200160208202803683370190505b50606086015260005b8151811015613a4d57613ab98282815181106133fb57fe5b86606001518281518110613ac957fe5b6001600160a01b0390921660209283029190910190910152600101613aa1565b8060041415613b7e576060613b0061330c85613c8f565b90508051604051908082528060200260200182016040528015613b2d578160200160208202803683370190505b50608086015260005b8151811015613a4d57613b4e8282815181106133fb57fe5b86608001518281518110613b5e57fe5b6001600160a01b0390921660209283029190910190910152600101613b36565b8060051415613bab57613b93612bc684613c8f565b67ffffffffffffffff1660a085015260019150613bb0565b613bb8565b600101613977565b509195600195509350505050565b60006008821115613be857612954836007198401600a0a63ffffffff61253e16565b6116b4836008849003600a0a63ffffffff6124fc16565b613c0761444d565b506040805180820190915281518152602082810190820152919050565b613c2c61442d565b613c358261412c565b613c3e57600080fd5b6000613c4d836020015161415c565b60208085015160408051808201909152868152920190820152915050919050565b6000613c7861444d565b505080518051602091820151919092015191011190565b613c9761444d565b613ca082613c6e565b613ca957600080fd5b60208201516000613cb9826141bf565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590613cf257508151602110155b613cfb57600080fd5b6000613d0a836020015161415c565b90508083600001511015613d65576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015613d8b57826020036101000a820491505b50949350505050565b8051600090601514613da557600080fd5b6116b782613cdd565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416613df257506018613e16565b6fffffffffffffffffffffffffffffffff198416613e1257506010613e16565b5060005b6020811015613e4c57818181518110613e2b57fe5b01602001516001600160f81b03191615613e4457613e4c565b600101613e16565b60008160200390506060816040519080825280601f01601f191660200182016040528015613e81576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015613ec65750607f60f81b82600081518110613eb457fe5b01602001516001600160f81b03191611155b15613ed2575080610e58565b6116b7613ee48351608060ff16613f63565b835b6060806040519050835180825260208201818101602087015b81831015613f17578051835260209283019201613eff565b50855184518101855292509050808201602086015b81831015613f44578051835260209283019201613f2c565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310613fb3576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b6040805160018082528183019092526060916020820181803683370190505090506037841161400d5782840160f81b81600081518110613fef57fe5b60200101906001600160f81b031916908160001a90535090506116b7565b606061401885613dae565b90508381510160370160f81b8260008151811061403157fe5b60200101906001600160f81b031916908160001a9053506140528282613ee6565b95945050505050565b60606140668261412c565b61406f57600080fd5b600061407a836142f2565b90506060816040519080825280602002602001820160405280156140b857816020015b6140a561444d565b81526020019060019003908161409d5790505b50905060006140ca856020015161415c565b60208601510190506000805b84811015614121576140e7836141bf565b915060405180604001604052808381526020018481525084828151811061410a57fe5b6020908102919091010152918101916001016140d6565b509195945050505050565b805160009061413d57506000610e58565b6020820151805160001a9060c0821015612a6e57600092505050610e58565b8051600090811a6080811015614176576000915050610e58565b60b8811080614191575060c08110801590614191575060f881105b156141a0576001915050610e58565b60c08110156141b45760b519019050610e58565b60f519019050610e58565b80516000908190811a60808110156141da57600191506142eb565b60b88110156141ef57607e19810191506142eb565b60c081101561426957600060b78203600186019550806020036101000a865104915060018101820193505080831015614263576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b506142eb565b60f881101561427e5760be19810191506142eb565b600060f78203600186019550806020036101000a8651049150600181018201935050808310156142e9576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b805160009061430357506000610e58565b60008090506000614317846020015161415c565b602085015185519181019250015b8082101561434557614336826141bf565b60019093019290910190614325565b50909392505050565b6040518060c001604052806000801916815260200160006001600160a01b03168152602001606081526020016060815260200160608152602001600067ffffffffffffffff1681525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b60408051608081018252600080825260208201819052918101829052606081019190915290565b604051806080016040528060006001600160a01b031681526020016060815260200160608152602001600063ffffffff1681525090565b604051806040016040528061444061444d565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe746865206d6573736167652073656e646572206d75737420626520696e63656e746976697a6520636f6e7472616374466f72206d696e69546f6b656e2c20746865207472616e7366657220616d6f756e74206d757374206e6f74206265206c657373207468616e2031756e7265636f676e697a6564207472616e736665724f75742073796e207061636b61676565787069726554696d65206d7573742062652074776f206d696e75746573206c61746572616d6f756e7420697320746f6f206c617267652c20657863656564206d6178696d756d206265703220746f6b656e20616d6f756e7474686520636f6e747261637420686173206e6f74206265656e20626f756e6420746f20616e79206265703220746f6b656e726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e736665724f757420424e4220616d6f756e7420616e64206d696e696d756d2072656c6179466565616d6f756e7420697320746f6f206c617267652c2075696e74323536206f766572666c6f774c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620726566756e644164647273696e76616c6964207472616e7366657220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e20746865206d696e696d756d2072656c6179466565746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374756e7265636f676e697a6564207472616e736665724f75742061636b207061636b6167654c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620616d6f756e7473746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d73672073656e646572206d75737420626520746f6b656e4d616e6167657274686520636f6e7472616374206e6f7420696e69742079657400000000000000726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e7366657220424e4220616d6f756e7420616e642072656c6179466565696e76616c696420726563656976656420424e4220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6ea2646970667358221220e59d62bf5fb2933f655143755e397406da6b105ef90a69a8209ff1a057bc41c964736f6c63430006040033", - }, - { - ContractAddr: RelayerIncentivizeContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/823b953232a344ba3c32d6690e70a245477e5760", - Code: "6080604052600436106102765760003560e01c80637e146cc51161014f578063af400681116100c1578063e75d72c71161007a578063e75d72c714610795578063e89a3020146107c8578063f9a2bbc7146107f2578063fc3e590814610807578063fd6a68791461081c578063fdd31fcd146108315761027d565b8063af400681146106ed578063bd4cc83014610717578063c81b166214610741578063dc927faf14610756578063dcae76ab1461076b578063e1c7392a146107805761027d565b8063a3c3c0ad11610113578063a3c3c0ad146105b3578063a78abc16146105c8578063a7c6a59d146105dd578063ab51bb96146105f2578063ac43175114610607578063ace9fcc2146106d85761027d565b80637e146cc51461052c578063930e1b091461054157806396713da9146105745780639dc0926214610589578063a1a11bf51461059e5761027d565b806343756e5c116101e85780636e47b482116101ac5780636e47b482146104645780636f93d2e61461047957806370fd5bad146104d857806374f2272d146104ed57806375d47a0a146105025780637942fd05146105175761027d565b806343756e5c146103e4578063493279b1146103f95780634bf6c8821461042557806351e806721461043a578063541333071461044f5761027d565b806312950c461161023a57806312950c46146103165780631b20087c1461032b5780631c643312146103405780633a975612146102825780633dffc3871461038657806340bb43c0146103b15761027d565b8063081e9d131461028257806308f2ec06146102a9578063093f2fc4146102be5780630bee7a67146102d357806310e06a76146103015761027d565b3661027d57005b600080fd5b34801561028e57600080fd5b50610297610864565b60408051918252519081900360200190f35b3480156102b557600080fd5b50610297610869565b3480156102ca57600080fd5b5061029761086e565b3480156102df57600080fd5b506102e8610873565b6040805163ffffffff9092168252519081900360200190f35b34801561030d57600080fd5b50610297610878565b34801561032257600080fd5b5061029761087e565b34801561033757600080fd5b50610297610884565b34801561034c57600080fd5b5061036a6004803603602081101561036357600080fd5b503561088a565b604080516001600160a01b039092168252519081900360200190f35b34801561039257600080fd5b5061039b610864565b6040805160ff9092168252519081900360200190f35b3480156103bd57600080fd5b50610297600480360360208110156103d457600080fd5b50356001600160a01b03166108b1565b3480156103f057600080fd5b5061036a6108c3565b34801561040557600080fd5b5061040e6108c9565b6040805161ffff9092168252519081900360200190f35b34801561043157600080fd5b5061039b6108ce565b34801561044657600080fd5b5061036a6108d3565b34801561045b57600080fd5b50610297610873565b34801561047057600080fd5b5061036a6108d9565b34801561048557600080fd5b506104c46004803603608081101561049c57600080fd5b506001600160a01b0381358116916020810135909116906040810135906060013515156108df565b604080519115158252519081900360200190f35b3480156104e457600080fd5b5061039b610cad565b3480156104f957600080fd5b50610297610cb2565b34801561050e57600080fd5b5061036a610cb8565b34801561052357600080fd5b5061039b610cbe565b34801561053857600080fd5b50610297610cc3565b34801561054d57600080fd5b506102976004803603602081101561056457600080fd5b50356001600160a01b0316610cc8565b34801561058057600080fd5b5061039b610cda565b34801561059557600080fd5b5061036a610cdf565b3480156105aa57600080fd5b5061036a610ce5565b3480156105bf57600080fd5b50610297610ceb565b3480156105d457600080fd5b506104c4610cf1565b3480156105e957600080fd5b50610297610cfa565b3480156105fe57600080fd5b506102e8610d00565b34801561061357600080fd5b506106d66004803603604081101561062a57600080fd5b81019060208101813564010000000081111561064557600080fd5b82018360208201111561065757600080fd5b8035906020019184600183028401116401000000008311171561067957600080fd5b91939092909160208101903564010000000081111561069757600080fd5b8201836020820111156106a957600080fd5b803590602001918460018302840111640100000000831117156106cb57600080fd5b509092509050610d05565b005b3480156106e457600080fd5b50610297611354565b3480156106f957600080fd5b506102976004803603602081101561071057600080fd5b503561135a565b34801561072357600080fd5b506102976004803603602081101561073a57600080fd5b50356113b5565b34801561074d57600080fd5b5061036a6113ce565b34801561076257600080fd5b5061036a6113d4565b34801561077757600080fd5b506102976113da565b34801561078c57600080fd5b506106d66113e0565b3480156107a157600080fd5b506106d6600480360360208110156107b857600080fd5b50356001600160a01b03166114a9565b3480156107d457600080fd5b5061036a600480360360208110156107eb57600080fd5b5035611602565b3480156107fe57600080fd5b5061036a61160f565b34801561081357600080fd5b5061039b611615565b34801561082857600080fd5b5061036a61161a565b34801561083d57600080fd5b506102976004803603602081101561085457600080fd5b50356001600160a01b0316611620565b600181565b602881565b605081565b606481565b600b5481565b60015481565b600c5481565b6006818154811061089757fe5b6000918252602090912001546001600160a01b0316905081565b60076020526000908152604090205481565b61100181565b606181565b600881565b61200081565b61100581565b6000805460ff16610937576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604482015290519081900360640190fd5b33612000146109775760405162461bcd60e51b815260040180806020018281038252602f815260200180612164602f913960400191505060405180910390fd5b600082156109fc57604080516309a99b4f60e41b8152611005600482015260248101869052905161100291639a99b4f09160448083019260209291908290030181600087803b1580156109c957600080fd5b505af11580156109dd573d6000803e3d6000fd5b505050506040513d60208110156109f357600080fd5b50519050610a75565b604080516309a99b4f60e41b8152611005600482015260248101869052905161100491639a99b4f09160448083019260209291908290030181600087803b158015610a4657600080fd5b505af1158015610a5a573d6000803e3d6000fd5b505050506040513d6020811015610a7057600080fd5b505190505b600c805460010190556000610a8982611632565b600954909150610a9f908263ffffffff61166116565b600955600a54610ac7908290610abb908563ffffffff61166116565b9063ffffffff6116c216565b600a556001600160a01b038716600090815260056020526040902054610b3357600680546001810182556000919091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319166001600160a01b0389161790555b6001600160a01b038088166000908152600560209081526040808320805460010190559289168252600790522054610bb157600880546001810182556000919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319166001600160a01b0388161790555b6001600160a01b038616600090815260076020526040902080546001019055600c54606411610ca057600b54600954600a5460408051938452602084019290925282820152517f2649b1b772a1a74bd332a67695e285317dd722941166595741c60a00fa65bb759181900360600190a16000610c2b611704565b90506000610c376119e8565b6001600160a01b0389166000908152600d6020526040902054909150610c75908290610c69908563ffffffff61166116565b9063ffffffff61166116565b6001600160a01b0389166000908152600d6020526040812091909155600b80546001019055600c5550505b5060019695505050505050565b600281565b60035481565b61100881565b600b81565b600581565b60056020526000908152604090205481565b600981565b61100781565b61100681565b600a5481565b60005460ff1681565b60045481565b600081565b3361100714610d455760405162461bcd60e51b815260040180806020018281038252602e8152602001806120a9602e913960400191505060405180910390fd5b60005460ff16610d865760405162461bcd60e51b81526004018080602001828103825260218152602001806120d76021913960400191505060405180910390fd5b610dfa84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601f81527f68656164657252656c61796572526577617264526174654d6f6c6563756c650060208201529150611c669050565b15610ec75760208114610e3e5760405162461bcd60e51b81526004018080602001828103825260328152602001806121936032913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610e7c91858580838501838280828437600092019190915250611d4d92505050565b9050600254811115610ebf5760405162461bcd60e51b8152600401808060200182810382526060815260200180611f826060913960600191505060405180910390fd5b6001556112c2565b610f2084848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805160608101909152602280825290925090506120876020830139611c66565b15610ff85760208114610f645760405162461bcd60e51b815260040180806020018281038252602e815260200180612038602e913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610fa291858580838501838280828437600092019190915250611d4d92505050565b90508015801590610fb557506001548110155b610ff05760405162461bcd60e51b815260040180806020018281038252606c8152602001806120f8606c913960800191505060405180910390fd5b6002556112c2565b61106c84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601a81527f63616c6c6572436f6d70656e736174696f6e4d6f6c6563756c6500000000000060208201529150611c669050565b1561113957602081146110b05760405162461bcd60e51b815260040180806020018281038252602e815260200180612038602e913960400191505060405180910390fd5b604080516020601f84018190048102820181019092528281526000916110ee91858580838501838280828437600092019190915250611d4d92505050565b90506004548111156111315760405162461bcd60e51b8152600401808060200182810382526056815260200180611fe26056913960600191505060405180910390fd5b6003556112c2565b6111ad84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601d81527f63616c6c6572436f6d70656e736174696f6e44656e6f6d696e61746f7200000060208201529150611c669050565b1561128557602081146111f15760405162461bcd60e51b815260040180806020018281038252602e815260200180612038602e913960400191505060405180910390fd5b604080516020601f840181900481028201810190925282815260009161122f91858580838501838280828437600092019190915250611d4d92505050565b9050801580159061124257506003548110155b61127d5760405162461bcd60e51b8152600401808060200182810382526061815260200180611f216061913960800191505060405180910390fd5b6004556112c2565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b60025481565b60006028821161136b5750806113b0565b81602810801561137c575060508211155b15611389575060286113b0565b60508211801561139a5750606e8211155b156113aa575060788190036113b0565b50600481045b919050565b6000602882116113c65750806113b0565b5060286113b0565b61100281565b61100381565b60095481565b60005460ff1615611438576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b60005460ff1615611486576040805162461bcd60e51b8152602060048201526013602482015272185b1c9958591e481a5b9a5d1a585b1a5e9959606a1b604482015290519081900360640190fd5b60018080556005600255600381905560506004556000805460ff19169091179055565b6001600160a01b0381166000908152600d602052604090205480611508576040805162461bcd60e51b81526020600482015260116024820152701b9bc81c995b185e595c881c995dd85c99607a1b604482015290519081900360640190fd5b6001600160a01b0382166000818152600d60205260408082208290555184929184156108fc02918591818181858888f193505050506115b85760405161100290819084156108fc029085906000818181858888f19350505050158015611572573d6000803e3d6000fd5b506040805161100281526020810185905281517f24502838a334c8f2bb2ee1f8262a4fa7183e4489a717e96cc824e325f8b39e11929181900390910190a15050506115ff565b604080516001600160a01b03851681526020810184905281517f24502838a334c8f2bb2ee1f8262a4fa7183e4489a717e96cc824e325f8b39e11929181900390910190a150505b50565b6008818154811061089757fe5b61100081565b600381565b61100481565b600d6020526000908152604090205481565b600061165b60025461164f60015485611d5290919063ffffffff16565b9063ffffffff611dab16565b92915050565b6000828201838110156116bb576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b60006116bb83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ded565b600954600680546040805160208084028201810190925282815260009493859360609383018282801561176057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611742575b5050505050905060608151604051908082528060200260200182016040528015611794578160200160208202803683370190505b50905060005b82518110156118215760008382815181106117b157fe5b6020026020010151905060006117eb60056000846001600160a01b03166001600160a01b03168152602001908152602001600020546113b5565b9050808484815181106117fa57fe5b6020908102919091010152611815868263ffffffff61166116565b9550505060010161179a565b50600061183f60045461164f60035488611d5290919063ffffffff16565b9050611851858263ffffffff6116c216565b94508460015b845181101561192857600061188c8761164f8a88868151811061187657fe5b6020026020010151611d5290919063ffffffff16565b90506118d981600d60008986815181106118a257fe5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205461166190919063ffffffff16565b600d60008885815181106118e957fe5b6020908102919091018101516001600160a01b031682528101919091526040016000205561191d838263ffffffff6116c216565b925050600101611857565b5061193e81600d6000876000815181106118a257fe5b600d60008660008151811061194f57fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002081905550600060098190555060008090505b84518110156119d057600560008683815181106119a257fe5b6020908102919091018101516001600160a01b03168252810191909152604001600090812055600101611989565b506119dd60066000611ee9565b509450505050505b90565b600a546008805460408051602080840282018101909252828152600094938593606093830182828015611a4457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611a26575b5050505050905060608151604051908082528060200260200182016040528015611a78578160200160208202803683370190505b50905060005b8251811015611af7576000838281518110611a9557fe5b602002602001015190506000611acf60076000846001600160a01b03166001600160a01b031681526020019081526020016000205461135a565b905080848481518110611ade57fe5b6020908102919091010152949094019350600101611a7e565b506000611b1560045461164f60035488611d5290919063ffffffff16565b9050611b27858263ffffffff6116c216565b94508460015b8451811015611bb1576000611b4c8761164f8a88868151811061187657fe5b9050611b6281600d60008986815181106118a257fe5b600d6000888581518110611b7257fe5b6020908102919091018101516001600160a01b0316825281019190915260400160002055611ba6838263ffffffff6116c216565b925050600101611b2d565b50611bc781600d6000876000815181106118a257fe5b600d600086600081518110611bd857fe5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020819055506000600a8190555060008090505b8451811015611c595760076000868381518110611c2b57fe5b6020908102919091018101516001600160a01b03168252810191909152604001600090812055600101611c12565b506119dd60086000611ee9565b6000816040516020018082805190602001908083835b60208310611c9b5780518252601f199092019160209182019101611c7c565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310611d095780518252601f199092019160209182019101611cea565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b600082611d615750600061165b565b82820282848281611d6e57fe5b04146116bb5760405162461bcd60e51b81526004018080602001828103825260218152602001806120666021913960400191505060405180910390fd5b60006116bb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611e84565b60008184841115611e7c5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e41578181015183820152602001611e29565b50505050905090810190601f168015611e6e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008183611ed35760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315611e41578181015183820152602001611e29565b506000838581611edf57fe5b0495945050505050565b50805460008255906000526020600020908101906115ff91906119e591905b80821115611f1c5760008155600101611f08565b509056fe746865206e657743616c6c6572436f6d70656e736174696f6e44656e6f6d696e61746f72206d757374206e6f74206265207a65726f20616e64206e6f206c657373207468616e2063616c6c6572436f6d70656e736174696f6e4d6f6c6563756c656e65772068656164657252656c61796572526577617264526174654d6f6c6563756c652073686f756c646e27742062652067726561746572207468616e2068656164657252656c617965725265776172645261746544656e6f6d696e61746f726e65772063616c6c6572436f6d70656e736174696f6e4d6f6c6563756c652073686f756c646e27742062652067726561746572207468616e2063616c6c6572436f6d70656e736174696f6e44656e6f6d696e61746f726c656e677468206f6620726577617264466f7256616c696461746f725365744368616e6765206d69736d61746368536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7768656164657252656c617965725265776172645261746544656e6f6d696e61746f72746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374636f6e747261637420686173206e6f74206265656e20696e697469616c697a6564746865206e65772068656164657252656c617965725265776172645261746544656e6f6d696e61746f72206d757374206e6f74206265207a65726f20616e64206e6f206c657373207468616e2068656164657252656c61796572526577617264526174654d6f6c6563756c65746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e74726163746c656e677468206f662068656164657252656c61796572526577617264526174654d6f6c6563756c65206d69736d61746368a2646970667358221220b0f586134d92421afeb7764dfa9711bf04e0920aa1729c40e9183ccccafbb49d64736f6c63430006040033", - }, - { - ContractAddr: RelayerHubContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/823b953232a344ba3c32d6690e70a245477e5760", - Code: "6080604052600436106101c25760003560e01c806395468d26116100f7578063c81b166211610095578063f9a2bbc711610064578063f9a2bbc714610529578063fb7cfdd71461053e578063fc3e590814610553578063fd6a687914610568576101c2565b8063c81b1662146104d5578063dc927faf146104ea578063e1c7392a146104ff578063e79a198f14610514576101c2565b8063a1a11bf5116100d1578063a1a11bf5146103c7578063a78abc16146103dc578063ab51bb96146103f1578063ac43175114610406576101c2565b806395468d261461038857806396713da91461039d5780639dc09262146103b2576101c2565b8063541d55481161016457806370fd5bad1161013e57806370fd5bad1461033457806375d47a0a146103495780637942fd051461035e5780637ae2308814610373576101c2565b8063541d5548146102b15780636a87d780146102f85780636e47b4821461031f576101c2565b806343756e5c116101a057806343756e5c1461022a578063493279b11461025b5780634bf6c8821461028757806351e806721461029c576101c2565b80630bee7a67146101c75780631aa3a008146101f55780633dffc387146101ff575b600080fd5b3480156101d357600080fd5b506101dc61057d565b6040805163ffffffff9092168252519081900360200190f35b6101fd610582565b005b34801561020b57600080fd5b5061021461077d565b6040805160ff9092168252519081900360200190f35b34801561023657600080fd5b5061023f610782565b604080516001600160a01b039092168252519081900360200190f35b34801561026757600080fd5b50610270610788565b6040805161ffff9092168252519081900360200190f35b34801561029357600080fd5b5061021461078d565b3480156102a857600080fd5b5061023f610792565b3480156102bd57600080fd5b506102e4600480360360208110156102d457600080fd5b50356001600160a01b0316610798565b604080519115158252519081900360200190f35b34801561030457600080fd5b5061030d6107b6565b60408051918252519081900360200190f35b34801561032b57600080fd5b5061023f6107bc565b34801561034057600080fd5b506102146107c2565b34801561035557600080fd5b5061023f6107c7565b34801561036a57600080fd5b506102146107cd565b34801561037f57600080fd5b5061030d6107d2565b34801561039457600080fd5b5061030d6107df565b3480156103a957600080fd5b506102146107eb565b3480156103be57600080fd5b5061023f6107f0565b3480156103d357600080fd5b5061023f6107f6565b3480156103e857600080fd5b506102e46107fc565b3480156103fd57600080fd5b506101dc610805565b34801561041257600080fd5b506101fd6004803603604081101561042957600080fd5b81019060208101813564010000000081111561044457600080fd5b82018360208201111561045657600080fd5b8035906020019184600183028401116401000000008311171561047857600080fd5b91939092909160208101903564010000000081111561049657600080fd5b8201836020820111156104a857600080fd5b803590602001918460018302840111640100000000831117156104ca57600080fd5b50909250905061080a565b3480156104e157600080fd5b5061023f610c2c565b3480156104f657600080fd5b5061023f610c32565b34801561050b57600080fd5b506101fd610c38565b34801561052057600080fd5b506101fd610cba565b34801561053557600080fd5b5061023f610e73565b34801561054a57600080fd5b5061030d610e79565b34801561055f57600080fd5b50610214610e7f565b34801561057457600080fd5b5061023f610e84565b606481565b3360009081526004602052604090205460ff16156105df576040805162461bcd60e51b81526020600482015260156024820152741c995b185e595c88185b1c9958591e48195e1a5cdd605a1b604482015290519081900360640190fd5b60005460ff16610632576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b61063b33610e8a565b156106775760405162461bcd60e51b815260040180806020018281038252602781526020018061109c6027913960400191505060405180910390fd5b3332146106c1576040805162461bcd60e51b81526020600482015260136024820152721b9bc81c1c9bde1e481a5cc8185b1b1bddd959606a1b604482015290519081900360640190fd5b60015434146107015760405162461bcd60e51b81526004018080602001828103825260258152602001806110776025913960400191505060405180910390fd5b604080518082018252600180548252600254602080840191825233600081815260038352868120955186559251948401949094556004815290849020805460ff1916909217909155825191825291517fdb33a09d38b59a8fa8b7d92a1d82c8015e99f05f67ae9c9ae623157767959496929181900390910190a1565b600181565b61100181565b606181565b600881565b61200081565b6001600160a01b031660009081526004602052604090205460ff1690565b60025481565b61100581565b600281565b61100881565b600b81565b68056bc75e2d6310000081565b67016345785d8a000081565b600981565b61100781565b61100681565b60005460ff1681565b600081565b60005460ff1661085d576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b336110071461089d5760405162461bcd60e51b815260040180806020018281038252602e8152602001806110c3602e913960400191505060405180910390fd5b61090384848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e1c995c5d5a5c995911195c1bdcda5d608a1b60208201529150610e909050565b15610a0657602081146109475760405162461bcd60e51b81526004018080602001828103825260228152602001806110f16022913960400191505060405180910390fd5b604080516020601f840181900481028201810190925282815260009161098591858580838501838280828437600092019190915250610f7792505050565b90506001811180156109a05750683635c9adc5dea000008111155b80156109ad575060025481115b6109fe576040805162461bcd60e51b815260206004820181905260248201527f7468652072657175697265644465706f736974206f7574206f662072616e6765604482015290519081900360640190fd5b600155610b9a565b610a6184848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260048152636475657360e01b60208201529150610e909050565b15610b5d5760208114610abb576040805162461bcd60e51b815260206004820152601760248201527f6c656e677468206f662064756573206d69736d61746368000000000000000000604482015290519081900360640190fd5b604080516020601f8401819004810282018101909252828152600091610af991858580838501838280828437600092019190915250610f7792505050565b9050600081118015610b0c575060015481105b610b55576040805162461bcd60e51b81526020600482015260156024820152747468652064756573206f7574206f662072616e676560581b604482015290519081900360640190fd5b600255610b9a565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b61100281565b61100381565b60005460ff1615610c90576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b68056bc75e2d63100000600190815567016345785d8a00006002556000805460ff19169091179055565b3360009081526004602052604090205460ff16610d15576040805162461bcd60e51b81526020600482015260146024820152731c995b185e595c88191bc81b9bdd08195e1a5cdd60621b604482015290519081900360640190fd5b60005460ff16610d68576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b610d7061105c565b5033600081815260036020908152604091829020825180840190935280548084526001909101549183018290529192916108fc91610db4919063ffffffff610f7c16565b6040518115909202916000818181858888f19350505050158015610ddc573d6000803e3d6000fd5b50602081015160405161100291829181156108fc0291906000818181858888f19350505050158015610e12573d6000803e3d6000fd5b50336000818152600460209081526040808320805460ff191690556003825280832083815560010192909255815192835290517fd17202129b83db7880d6b9f25df81c58ad46f7e0e2c92236b1aa10663a4876679281900390910190a15050565b61100081565b60015481565b600381565b61100481565b3b151590565b6000816040516020018082805190602001908083835b60208310610ec55780518252601f199092019160209182019101610ea6565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310610f335780518252601f199092019160209182019101610f14565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b6000610fbe83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610fc5565b9392505050565b600081848411156110545760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611019578181015183820152602001611001565b50505050905090810190601f1680156110465780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60405180604001604052806000815260200160008152509056fe6465706f7369742076616c7565206973206e6f742065786163746c79207468652073616d65636f6e7472616374206973206e6f7420616c6c6f77656420746f20626520612072656c61796572746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662072657175697265644465706f736974206d69736d61746368a26469706673582212205b3719dbe352a0da1c7c0fda084d877d745e453695a354811ae82144145a56ae64736f6c63430006040033", - }, - { - ContractAddr: GovHubContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/823b953232a344ba3c32d6690e70a245477e5760", - Code: "608060405234801561001057600080fd5b506004361061018e5760003560e01c8063831d65d1116100de578063ab51bb9611610097578063dc927faf11610071578063dc927faf14610486578063f9a2bbc71461048e578063fc3e590814610496578063fd6a68791461049e5761018e565b8063ab51bb96146103fc578063c81b166214610404578063c8509d811461040c5761018e565b8063831d65d11461034457806396713da9146103c05780639ab1a373146103c85780639dc09262146103d0578063a1a11bf5146103d8578063a78abc16146103e05761018e565b8063493279b11161014b5780636e47b482116101255780636e47b4821461032457806370fd5bad1461032c57806375d47a0a146103345780637942fd051461033c5761018e565b8063493279b1146102f55780634bf6c8821461031457806351e806721461031c5761018e565b80630bee7a67146101935780631182b875146101b45780633a21baae146102a35780633dffc387146102ab57806343756e5c146102c95780634900c4ea146102ed575b600080fd5b61019b6104a6565b6040805163ffffffff9092168252519081900360200190f35b61022e600480360360408110156101ca57600080fd5b60ff82351691908101906040810160208201356401000000008111156101ef57600080fd5b82018360208201111561020157600080fd5b8035906020019184600183028401116401000000008311171561022357600080fd5b5090925090506104ab565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610268578181015183820152602001610250565b50505050905090810190601f1680156102955780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61019b61059a565b6102b361059f565b6040805160ff9092168252519081900360200190f35b6102d16105a4565b604080516001600160a01b039092168252519081900360200190f35b6102b36105aa565b6102fd6105af565b6040805161ffff9092168252519081900360200190f35b6102b36105b4565b6102d16105b9565b6102d16105bf565b6102b36105c5565b6102d16105ca565b6102b36105d0565b6103be6004803603604081101561035a57600080fd5b60ff823516919081019060408101602082013564010000000081111561037f57600080fd5b82018360208201111561039157600080fd5b803590602001918460018302840111640100000000831117156103b357600080fd5b5090925090506105d5565b005b6102b3610667565b61019b61066c565b6102d1610671565b6102d1610677565b6103e861067d565b604080519115158252519081900360200190f35b61019b6105aa565b6102d1610686565b6103be6004803603604081101561042257600080fd5b60ff823516919081019060408101602082013564010000000081111561044757600080fd5b82018360208201111561045957600080fd5b8035906020019184600183028401116401000000008311171561047b57600080fd5b50909250905061068c565b6102d1610703565b6102d1610709565b6102b361070f565b6102d1610714565b606481565b606033612000146104ed5760405162461bcd60e51b815260040180806020018281038252602f8152602001806113e7602f913960400191505060405180910390fd5b6104f5611382565b600061053685858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061071a92505050565b91509150806105525761054960646107e0565b92505050610593565b600061055d8361084a565b905063ffffffff811661058457505060408051600081526020810190915291506105939050565b61058d816107e0565b93505050505b9392505050565b606681565b600181565b61100181565b600081565b606181565b600881565b61200081565b61100581565b600281565b61100881565b600b81565b33612000146106155760405162461bcd60e51b815260040180806020018281038252602f8152602001806113e7602f913960400191505060405180910390fd5b6040805162461bcd60e51b815260206004820152601e60248201527f7265636569766520756e65787065637465642061636b207061636b6167650000604482015290519081900360640190fd5b505050565b600981565b606581565b61100781565b61100681565b60005460ff1681565b61100281565b33612000146106cc5760405162461bcd60e51b815260040180806020018281038252602f8152602001806113e7602f913960400191505060405180910390fd5b60405162461bcd60e51b81526004018080602001828103825260238152602001806114166023913960400191505060405180910390fd5b61100381565b61100081565b600381565b61100481565b610722611382565b600061072c611382565b6107346113ac565b61074561074086610beb565b610c10565b90506000805b61075483610c5a565b156107d357806107765761076f61076a84610c7b565b610cc9565b84526107cb565b80600114156107955761078b61076a84610c7b565b60208501526107cb565b80600214156107c6576107af6107aa84610c7b565b610d42565b6001600160a01b03166040850152600191506107cb565b6107d3565b60010161074b565b5091935090915050915091565b604080516001808252818301909252606091829190816020015b60608152602001906001900390816107fa5790505090506108208363ffffffff16610d62565b8160008151811061082d57fe5b602002602001018190525061084181610d75565b9150505b919050565b60006108598260400151610dff565b6108c557604080516020808252601c908201527f74686520746172676574206973206e6f74206120636f6e7472616374000000008183015290517f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb29181900360600190a1506065610845565b81604001516001600160a01b031663ac431751836000015184602001516040518363ffffffff1660e01b8152600401808060200180602001838103835285818151815260200191508051906020019080838360005b8381101561093257818101518382015260200161091a565b50505050905090810190601f16801561095f5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b8381101561099257818101518382015260200161097a565b50505050905090810190601f1680156109bf5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156109e057600080fd5b505af19250505080156109f1575060015b610be3576040516000815260443d1015610a0d57506000610aaa565b60046000803e60005160e01c6308c379a08114610a2e576000915050610aaa565b60043d036004833e81513d602482011167ffffffffffffffff82111715610a5a57600092505050610aaa565b808301805167ffffffffffffffff811115610a7c576000945050505050610aaa565b8060208301013d8601811115610a9a57600095505050505050610aaa565b601f01601f191660405250925050505b80610ab55750610b58565b7f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2816040518080602001828103825283818151815260200191508051906020019080838360005b83811015610b14578181015183820152602001610afc565b50505050905090810190601f168015610b415780820380516001836020036101000a031916815260200191505b509250505060405180910390a16066915050610845565b3d808015610b82576040519150601f19603f3d011682016040523d82523d6000602084013e610b87565b606091505b5060408051602080825283518183015283517f1279f84165b4fd69c35e1f338ff107231b036c655cd1688851e011ce617c4e8d938593928392918301919085019080838360008315610b14578181015183820152602001610afc565b506000919050565b610bf36113cc565b506040805180820190915281518152602082810190820152919050565b610c186113ac565b610c2182610e05565b610c2a57600080fd5b6000610c398360200151610e3f565b60208085015160408051808201909152868152920190820152915050919050565b6000610c646113cc565b505080518051602091820151919092015191011190565b610c836113cc565b610c8c82610c5a565b610c9557600080fd5b60208201516000610ca582610ea2565b80830160209586015260408051808201909152908152938401919091525090919050565b8051606090610cd757600080fd5b6000610ce68360200151610e3f565b83516040805191839003808352601f19601f8201168301602001909152919250606090828015610d1d576020820181803683370190505b5090506000816020019050610d39848760200151018285610fd5565b50949350505050565b8051600090601514610d5357600080fd5b610d5c82611020565b92915050565b6060610d5c610d70836110d5565b6111bb565b6060815160001415610d965750604080516000815260208101909152610845565b606082600081518110610da557fe5b602002602001015190506000600190505b8351811015610de657610ddc82858381518110610dcf57fe5b602002602001015161120d565b9150600101610db6565b50610841610df9825160c060ff1661128a565b8261120d565b3b151590565b8051600090610e1657506000610845565b6020820151805160001a9060c0821015610e3557600092505050610845565b5060019392505050565b8051600090811a6080811015610e59576000915050610845565b60b8811080610e74575060c08110801590610e74575060f881105b15610e83576001915050610845565b60c0811015610e975760b519019050610845565b60f519019050610845565b80516000908190811a6080811015610ebd5760019150610fce565b60b8811015610ed257607e1981019150610fce565b60c0811015610f4c57600060b78203600186019550806020036101000a865104915060018101820193505080831015610f46576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50610fce565b60f8811015610f615760be1981019150610fce565b600060f78203600186019550806020036101000a865104915060018101820193505080831015610fcc576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b80610fdf57610662565b5b60208110610fff578251825260209283019290910190601f1901610fe0565b915181516020939093036101000a6000190180199091169216919091179052565b80516000901580159061103557508151602110155b61103e57600080fd5b600061104d8360200151610e3f565b905080836000015110156110a8576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015610d3957506020919091036101000a90049392505050565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166111195750601861113d565b6fffffffffffffffffffffffffffffffff1984166111395750601061113d565b5060005b60208110156111735781818151811061115257fe5b01602001516001600160f81b0319161561116b57611173565b60010161113d565b60008160200390506060816040519080825280601f01601f1916602001820160405280156111a8576020820181803683370190505b5080830196909652508452509192915050565b6060815160011480156111ed5750607f60f81b826000815181106111db57fe5b01602001516001600160f81b03191611155b156111f9575080610845565b610d5c61120b8351608060ff1661128a565b835b6060806040519050835180825260208201818101602087015b8183101561123e578051835260209283019201611226565b50855184518101855292509050808201602086015b8183101561126b578051835260209283019201611253565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106112da576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b604080516001808252818301909252606091602082018180368337019050509050603784116113345782840160f81b8160008151811061131657fe5b60200101906001600160f81b031916908160001a9053509050610d5c565b606061133f856110d5565b90508381510160370160f81b8260008151811061135857fe5b60200101906001600160f81b031916908160001a905350611379828261120d565b95945050505050565b6040518060600160405280606081526020016060815260200160006001600160a01b031681525090565b60405180604001604052806113bf6113cc565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e74726163747265636569766520756e6578706563746564206661696c2061636b207061636b616765a2646970667358221220401be81505a1aa0dde70753881234490b5e4c39ce009cb7950f994eead5c3f9064736f6c63430006040033", - }, - { - ContractAddr: TokenManagerContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/823b953232a344ba3c32d6690e70a245477e5760", - Code: "6080604052600436106102465760003560e01c806375d47a0a11610139578063ab51bb96116100b6578063dc6f5e901161007a578063dc6f5e90146108df578063dc927faf14610975578063f9a2bbc71461098a578063fc3e5908146108df578063fd6a68791461099f578063fe3a2af5146104fd57610246565b8063ab51bb96146108b5578063c81b1662146108ca578063c8509d81146107c5578063c8e704a4146108df578063d117a110146108f457610246565b806395b9ad26116100fd57806395b9ad261461084c57806396713da9146108615780639dc0926214610876578063a1a11bf51461088b578063a78abc16146108a057610246565b806375d47a0a146106e757806377d9dae8146106fc5780637942fd05146107b05780637d078e13146103c8578063831d65d1146107c557610246565b80634a688818116101c75780635f558f861161018b5780635f558f86146105515780636b3f1307146105665780636e47b4821461062e57806370fd5bad1461055157806372c4e0861461064357610246565b80634a688818146104fd5780634bc81c00146105125780634bf6c8821461024b57806351e80672146105275780635d499b1b1461053c57610246565b806323996b531161020e57806323996b53146103c85780633dffc387146103c857806343756e5c146103dd578063445fcefe1461040e578063493279b1146104d157610246565b8063077b8f351461024b5780630bee7a67146102765780630f212b1b146102a45780631182b875146102b95780631f91600b146103b3575b600080fd5b34801561025757600080fd5b506102606109b4565b6040805160ff9092168252519081900360200190f35b34801561028257600080fd5b5061028b6109b9565b6040805163ffffffff9092168252519081900360200190f35b3480156102b057600080fd5b506102606109be565b3480156102c557600080fd5b5061033e600480360360408110156102dc57600080fd5b60ff8235169190810190604081016020820135600160201b81111561030057600080fd5b82018360208201111561031257600080fd5b803590602001918460018302840111600160201b8311171561033357600080fd5b5090925090506109c3565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610378578181015183820152602001610360565b50505050905090810190601f1680156103a55780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103bf57600080fd5b50610260610a4c565b3480156103d457600080fd5b50610260610a51565b3480156103e957600080fd5b506103f2610a56565b604080516001600160a01b039092168252519081900360200190f35b34801561041a57600080fd5b506104bf6004803603602081101561043157600080fd5b810190602081018135600160201b81111561044b57600080fd5b82018360208201111561045d57600080fd5b803590602001918460018302840111600160201b8311171561047e57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610a5c945050505050565b60408051918252519081900360200190f35b3480156104dd57600080fd5b506104e6610bbb565b6040805161ffff9092168252519081900360200190f35b34801561050957600080fd5b50610260610bc0565b34801561051e57600080fd5b50610260610bc5565b34801561053357600080fd5b506103f2610bca565b34801561054857600080fd5b506104bf610bd0565b34801561055d57600080fd5b50610260610bd9565b61061a6004803603604081101561057c57600080fd5b6001600160a01b038235169190810190604081016020820135600160201b8111156105a657600080fd5b8201836020820111156105b857600080fd5b803590602001918460018302840111600160201b831117156105d957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610bde945050505050565b604080519115158252519081900360200190f35b34801561063a57600080fd5b506103f2611460565b61061a6004803603602081101561065957600080fd5b810190602081018135600160201b81111561067357600080fd5b82018360208201111561068557600080fd5b803590602001918460018302840111600160201b831117156106a657600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611466945050505050565b3480156106f357600080fd5b506103f26118b4565b61061a6004803603604081101561071257600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561073c57600080fd5b82018360208201111561074e57600080fd5b803590602001918460018302840111600160201b8311171561076f57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506118ba945050505050565b3480156107bc57600080fd5b50610260611dc1565b3480156107d157600080fd5b5061084a600480360360408110156107e857600080fd5b60ff8235169190810190604081016020820135600160201b81111561080c57600080fd5b82018360208201111561081e57600080fd5b803590602001918460018302840111600160201b8311171561083f57600080fd5b509092509050611dc6565b005b34801561085857600080fd5b50610260611e79565b34801561086d57600080fd5b50610260611e7e565b34801561088257600080fd5b506103f2611e83565b34801561089757600080fd5b506103f2611e89565b3480156108ac57600080fd5b5061061a611e8f565b3480156108c157600080fd5b5061028b610bc0565b3480156108d657600080fd5b506103f2611e98565b3480156108eb57600080fd5b50610260611e9e565b34801561090057600080fd5b5061091e6004803603602081101561091757600080fd5b5035611ea3565b6040805160ff988916815260208101979097526001600160a01b03909516868601526060860193909352608085019190915290931660a083015267ffffffffffffffff90921660c082015290519081900360e00190f35b34801561098157600080fd5b506103f2611efb565b34801561099657600080fd5b506103f2611f01565b3480156109ab57600080fd5b506103f2611f07565b600881565b606481565b600681565b60603361200014610a055760405162461bcd60e51b815260040180806020018281038252602f8152602001806132a0602f913960400191505060405180910390fd5b610a4483838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611f0d92505050565b949350505050565b600481565b600181565b61100181565b6020810151600090610a6c613168565b50600081815260016020818152604092839020835160e081018552815460ff9081168252938201549281019290925260028101546001600160a01b031693820184905260038101546060830152600481015460808301526005015491821660a082015261010090910467ffffffffffffffff1660c082015290610af457600092505050610bb6565b600081604001516001600160a01b03166370a082316110046040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015610b5257600080fd5b505afa158015610b66573d6000803e3d6000fd5b505050506040513d6020811015610b7c57600080fd5b505160808301516060840151919250600091610b9d9163ffffffff61219e16565b9050610baf818363ffffffff61219e16565b9450505050505b919050565b606181565b600081565b600581565b61200081565b6402540be40081565b600281565b600080610bea836121e7565b9050610bf4613168565b50600081815260016020818152604092839020835160e081018552815460ff90811682529382015492810183905260028201546001600160a01b03169481019490945260038101546060850152600481015460808501526005015491821660a084015261010090910467ffffffffffffffff1660c0830152610cba576040805162461bcd60e51b815260206004820152601a602482015279189a5b99081c995c5d595cdd08191bd95cdb89dd08195e1a5cdd60321b604482015290519081900360640190fd5b6000610cd78260800151836060015161219e90919063ffffffff16565b905081604001516001600160a01b0316866001600160a01b031614610d2d5760405162461bcd60e51b815260040180806020018281038252604581526020018061322d6045913960600191505060405180910390fd5b336001600160a01b0316866001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b158015610d7057600080fd5b505afa158015610d84573d6000803e3d6000fd5b505050506040513d6020811015610d9a57600080fd5b50516001600160a01b031614610de15760405162461bcd60e51b815260040180806020018281038252602e815260200180613272602e913960400191505060405180910390fd5b604080516370a0823160e01b8152611004600482015290516000916001600160a01b038916916370a0823191602480820192602092909190829003018186803b158015610e2d57600080fd5b505afa158015610e41573d6000803e3d6000fd5b505050506040513d6020811015610e5757600080fd5b505160408051636eb1769f60e11b815233600482015230602482015290519192508391610ee89184916001600160a01b038c169163dd62ed3e916044808301926020929190829003018186803b158015610eb057600080fd5b505afa158015610ec4573d6000803e3d6000fd5b505050506040513d6020811015610eda57600080fd5b50519063ffffffff6121ee16565b1015610f3b576040805162461bcd60e51b815260206004820152601760248201527f616c6c6f77616e6365206973206e6f7420656e6f756768000000000000000000604482015290519081900360640190fd5b600034905060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b158015610f7d57600080fd5b505afa158015610f91573d6000803e3d6000fd5b505050506040513d6020811015610fa757600080fd5b50519050808210801590610fc057506402540be4008206155b610ffb5760405162461bcd60e51b81526004018080602001828103825260378152602001806131f66037913960400191505060405180910390fd5b6000611007868b612248565b905063ffffffff8116611206576001600160a01b038a166323b872dd33611004611037898963ffffffff61219e16565b6040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b031681526020018281526020019350505050602060405180830381600087803b15801561109f57600080fd5b505af11580156110b3573d6000803e3d6000fd5b505050506040513d60208110156110c957600080fd5b5050602086015160408088015160a089015182516323bfccdb60e21b815260048101949094526001600160a01b03909116602484015260ff1660448301525161100491638eff336c91606480830192600092919082900301818387803b15801561113257600080fd5b505af1158015611146573d6000803e3d6000fd5b50505050896001600160a01b03167f78e7dd9aefcdbf795c4936a66f7dc6d41bb56637b54f561a6bf7829dca3348a88a8860600151886040518080602001848152602001838152602001828103825285818151815260200191508051906020019080838360005b838110156111c55781810151838201526020016111ad565b50505050905090810190601f1680156111f25780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a26112be565b896001600160a01b03167f831c0ef4d93bda3bce08b69ae3f29ef1a6e052b833200988554158494405a1078a8360405180806020018363ffffffff1663ffffffff168152602001828103825284818151815260200191508051906020019080838360005b8381101561128257818101518382015260200161126a565b50505050905090810190601f1680156112af5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a25b60008781526001602081905260408220805460ff191681559081018290556002810180546001600160a01b0319169055600381018290556004810191909155600501805468ffffffffffffffffff191690556113186131a4565b5060408051808201825263ffffffff831681526020810189905290516110049085156108fc029086906000818181858888f19350505050158015611360573d6000803e3d6000fd5b5061200063f7a251d760016113748461269f565b611389886402540be40063ffffffff61272916565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156113e75781810151838201526020016113cf565b50505050905090810190601f1680156114145780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561143557600080fd5b505af1158015611449573d6000803e3d6000fd5b505050506001985050505050505050505b92915050565b61100581565b600080611472836121e7565b905061147c613168565b50600081815260016020818152604092839020835160e081018552815460ff90811682529382015492810183905260028201546001600160a01b03169481019490945260038101546060850152600481015460808501526005015491821660a084015261010090910467ffffffffffffffff1660c0830152611542576040805162461bcd60e51b815260206004820152601a602482015279189a5b99081c995c5d595cdd08191bd95cdb89dd08195e1a5cdd60321b604482015290519081900360640190fd5b428160c0015167ffffffffffffffff16106115a4576040805162461bcd60e51b815260206004820152601b60248201527f62696e642072657175657374206973206e6f7420657870697265640000000000604482015290519081900360640190fd5b600034905060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b1580156115e657600080fd5b505afa1580156115fa573d6000803e3d6000fd5b505050506040513d602081101561161057600080fd5b5051905080821080159061162957506402540be4008206155b6116645760405162461bcd60e51b81526004018080602001828103825260378152602001806131f66037913960400191505060405180910390fd5b60008481526001602081905260408220805460ff191681559081018290556002810180546001600160a01b0319169055600381018290556004810191909155600501805468ffffffffffffffffff191690556116be6131a4565b50604080518082018252600181526020810186905290516110049084156108fc029085906000818181858888f19350505050158015611701573d6000803e3d6000fd5b5061200063f7a251d760016117158461269f565b61172a876402540be40063ffffffff61272916565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611788578181015183820152602001611770565b50505050905090810190601f1680156117b55780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156117d657600080fd5b505af11580156117ea573d6000803e3d6000fd5b5050505083604001516001600160a01b03167f831c0ef4d93bda3bce08b69ae3f29ef1a6e052b833200988554158494405a10788600160405180806020018360ff1663ffffffff168152602001828103825284818151815260200191508051906020019080838360005b8381101561186c578181015183820152602001611854565b50505050905090810190601f1680156118995780820380516001836020036101000a031916815260200191505b50935050505060405180910390a25060019695505050505050565b61100881565b6000806118c6836121e7565b90506118d0613168565b50600081815260016020818152604092839020835160e081018552815460ff90811682529382015492810183905260028201546001600160a01b03169481019490945260038101546060850152600481015460808501526005015491821660a084015261010090910467ffffffffffffffff1660c0830152611996576040805162461bcd60e51b815260206004820152601a602482015279189a5b99081c995c5d595cdd08191bd95cdb89dd08195e1a5cdd60321b604482015290519081900360640190fd5b80604001516001600160a01b0316856001600160a01b0316146119ea5760405162461bcd60e51b815260040180806020018281038252604581526020018061322d6045913960600191505060405180910390fd5b336001600160a01b0316856001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b158015611a2d57600080fd5b505afa158015611a41573d6000803e3d6000fd5b505050506040513d6020811015611a5757600080fd5b50516001600160a01b031614611ab4576040805162461bcd60e51b815260206004820152601b60248201527f6f6e6c79206265703265206f776e65722063616e2072656a6563740000000000604482015290519081900360640190fd5b600034905060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b158015611af657600080fd5b505afa158015611b0a573d6000803e3d6000fd5b505050506040513d6020811015611b2057600080fd5b50519050808210801590611b3957506402540be4008206155b611b745760405162461bcd60e51b81526004018080602001828103825260378152602001806131f66037913960400191505060405180910390fd5b60008481526001602081905260408220805460ff191681559081018290556002810180546001600160a01b0319169055600381018290556004810191909155600501805468ffffffffffffffffff19169055611bce6131a4565b50604080518082018252600781526020810186905290516110049084156108fc029085906000818181858888f19350505050158015611c11573d6000803e3d6000fd5b5061200063f7a251d76001611c258461269f565b611c3a876402540be40063ffffffff61272916565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611c98578181015183820152602001611c80565b50505050905090810190601f168015611cc55780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015611ce657600080fd5b505af1158015611cfa573d6000803e3d6000fd5b50505050876001600160a01b03167f831c0ef4d93bda3bce08b69ae3f29ef1a6e052b833200988554158494405a10788600760405180806020018360ff1663ffffffff168152602001828103825284818151815260200191508051906020019080838360005b83811015611d78578181015183820152602001611d60565b50505050905090810190601f168015611da55780820380516001836020036101000a031916815260200191505b50935050505060405180910390a2506001979650505050505050565b600b81565b3361200014611e065760405162461bcd60e51b815260040180806020018281038252602f8152602001806132a0602f913960400191505060405180910390fd5b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a1505050565b600781565b600981565b61100781565b61100681565b60005460ff1681565b61100281565b600381565b600160208190526000918252604090912080549181015460028201546003830154600484015460059094015460ff9586169593946001600160a01b0390931693919291811690610100900467ffffffffffffffff1687565b61100381565b61100081565b61100481565b6060611f17613168565b6000611f228461276b565b9150915080611f78576040805162461bcd60e51b815260206004820152601f60248201527f756e7265636f676e697a6564207472616e73666572496e207061636b61676500604482015290519081900360640190fd5b815160ff1661202c576020828101805160009081526001928390526040908190208551815460ff1990811660ff928316178355935194820194909455908501516002820180546001600160a01b0319166001600160a01b03909216919091179055606085015160038201556080850151600482015560a08501516005909101805460c08701519316919093161768ffffffffffffffff00191661010067ffffffffffffffff90921691909102179055612183565b815160ff16600114156121365760006110046001600160a01b03166359b9278984602001516040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561208557600080fd5b505afa158015612099573d6000803e3d6000fd5b505050506040513d60208110156120af57600080fd5b505190506001600160a01b038116156121305760208301516040805163b99328c560e01b815260048101929092526001600160a01b0383166024830152516110049163b99328c591604480830192600092919082900301818387803b15801561211757600080fd5b505af115801561212b573d6000803e3d6000fd5b505050505b50612183565b6040805162461bcd60e51b815260206004820152601960248201527f756e7265636f676e697a65642062696e64207061636b61676500000000000000604482015290519081900360640190fd5b60408051600080825260208201909252905b50949350505050565b60006121e083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506128bd565b9392505050565b6020015190565b6000828201838110156121e0576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600080826001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561228457600080fd5b505afa158015612298573d6000803e3d6000fd5b505050506040513d60208110156122ae57600080fd5b5051604080516395d89b4160e01b815290519192506060916001600160a01b038616916395d89b41916004808301926000929190829003018186803b1580156122f657600080fd5b505afa15801561230a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561233357600080fd5b8101908080516040519392919084600160201b82111561235257600080fd5b90830190602082018581111561236757600080fd5b8251600160201b81118282018810171561238057600080fd5b82525081516020918201929091019080838360005b838110156123ad578181015183820152602001612395565b50505050905090810190601f1680156123da5780820380516001836020036101000a031916815260200191505b5060408181526370a0823160e01b82526110046004830152519495506000946001600160a01b038a1694506370a08231935060248083019350602092829003018186803b15801561242a57600080fd5b505afa15801561243e573d6000803e3d6000fd5b505050506040513d602081101561245457600080fd5b5051608087015160608801519192506000916124759163ffffffff61219e16565b9050428760c0015167ffffffffffffffff16101561249b57506001935061145a92505050565b6124a9838860200151612954565b6124bb57506002935061145a92505050565b808211156124d157506003935061145a92505050565b866060015187604001516001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561251357600080fd5b505afa158015612527573d6000803e3d6000fd5b505050506040513d602081101561253d57600080fd5b50511461255257506004935061145a92505050565b8660a0015160ff16841461256e57506005935061145a92505050565b602080880151604080516359b9278960e01b8152600481019290925251600092611004926359b927899260248083019392829003018186803b1580156125b357600080fd5b505afa1580156125c7573d6000803e3d6000fd5b505050506040513d60208110156125dd57600080fd5b50516001600160a01b031614158061267f57506000801b6110046001600160a01b031663bd46646189604001516040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561265057600080fd5b505afa158015612664573d6000803e3d6000fd5b505050506040513d602081101561267a57600080fd5b505114155b1561269257506006935061145a92505050565b5060009695505050505050565b6040805160028082526060828101909352829190816020015b60608152602001906001900390816126b857505083519091506126e09063ffffffff16612a3c565b816000815181106126ed57fe5b6020026020010181905250612708836020015160001c612a3c565b8160018151811061271557fe5b60200260200101819052506121e081612a4f565b60006121e083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612ad9565b612773613168565b600061277d613168565b6127856131bb565b61279661279186612b3e565b612b63565b90506000805b6127a583612bad565b156128b057806127ca576127c06127bb84612bce565b612c1c565b60ff1684526128a8565b80600114156127e9576127df6127bb84612bce565b60208501526128a8565b8060021415612816576128036127fe84612bce565b612cd1565b6001600160a01b031660408501526128a8565b80600314156128355761282b6127bb84612bce565b60608501526128a8565b80600414156128545761284a6127bb84612bce565b60808501526128a8565b8060051415612876576128696127bb84612bce565b60ff1660a08501526128a8565b80600614156128a35761288b6127bb84612bce565b67ffffffffffffffff1660c0850152600191506128a8565b6128b0565b60010161279c565b5091935090915050915091565b6000818484111561294c5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156129115781810151838201526020016128f9565b50505050905090810190601f16801561293e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b815160009083906008108061296a575080516003115b1561297957600091505061145a565b604080516020808252818301909252606091602082018180368337019050509050836020820152808251815181106129ad57fe5b6020910101516001600160f81b031916602d60f81b146129d25760009250505061145a565b600160005b8351811015612a32578281815181106129ec57fe5b602001015160f81c60f81b6001600160f81b031916848281518110612a0d57fe5b01602001516001600160f81b03191614612a2a5760009150612a32565b6001016129d7565b5095945050505050565b606061145a612a4a83612ceb565b612dd1565b6060815160001415612a705750604080516000815260208101909152610bb6565b606082600081518110612a7f57fe5b602002602001015190506000600190505b8351811015612ac057612ab682858381518110612aa957fe5b6020026020010151612e23565b9150600101612a90565b506121e0612ad3825160c060ff16612ea0565b82612e23565b60008183612b285760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156129115781810151838201526020016128f9565b506000838581612b3457fe5b0495945050505050565b612b466131db565b506040805180820190915281518152602082810190820152919050565b612b6b6131bb565b612b7482612f98565b612b7d57600080fd5b6000612b8c8360200151612fd2565b60208085015160408051808201909152868152920190820152915050919050565b6000612bb76131db565b505080518051602091820151919092015191011190565b612bd66131db565b612bdf82612bad565b612be857600080fd5b60208201516000612bf882613035565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590612c3157508151602110155b612c3a57600080fd5b6000612c498360200151612fd2565b90508083600001511015612ca4576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b82516020808501518301805192849003929183101561219557506020919091036101000a90049392505050565b8051600090601514612ce257600080fd5b61145a82612c1c565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416612d2f57506018612d53565b6fffffffffffffffffffffffffffffffff198416612d4f57506010612d53565b5060005b6020811015612d8957818181518110612d6857fe5b01602001516001600160f81b03191615612d8157612d89565b600101612d53565b60008160200390506060816040519080825280601f01601f191660200182016040528015612dbe576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015612e035750607f60f81b82600081518110612df157fe5b01602001516001600160f81b03191611155b15612e0f575080610bb6565b61145a612e218351608060ff16612ea0565b835b6060806040519050835180825260208201818101602087015b81831015612e54578051835260209283019201612e3c565b50855184518101855292509050808201602086015b81831015612e81578051835260209283019201612e69565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310612ef0576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b60408051600180825281830190925260609160208201818036833701905050905060378411612f4a5782840160f81b81600081518110612f2c57fe5b60200101906001600160f81b031916908160001a905350905061145a565b6060612f5585612ceb565b90508381510160370160f81b82600081518110612f6e57fe5b60200101906001600160f81b031916908160001a905350612f8f8282612e23565b95945050505050565b8051600090612fa957506000610bb6565b6020820151805160001a9060c0821015612fc857600092505050610bb6565b5060019392505050565b8051600090811a6080811015612fec576000915050610bb6565b60b8811080613007575060c08110801590613007575060f881105b15613016576001915050610bb6565b60c081101561302a5760b519019050610bb6565b60f519019050610bb6565b80516000908190811a60808110156130505760019150613161565b60b881101561306557607e1981019150613161565b60c08110156130df57600060b78203600186019550806020036101000a8651049150600181018201935050808310156130d9576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50613161565b60f88110156130f45760be1981019150613161565b600060f78203600186019550806020036101000a86510491506001810182019350508083101561315f576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c081019190915290565b604080518082019091526000808252602082015290565b60405180604001604052806131ce6131db565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe72656c6179466565206d757374206265204e202a203165313020616e642067726561746572207468616e206d696e6952656c6179466565636f6e74616374206164647265737320646f65736e277420657175616c20746f2074686520636f6e7472616374206164647265737320696e2062696e6420726571756573746f6e6c79206265703265206f776e65722063616e20617070726f766520746869732062696e642072657175657374746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374a2646970667358221220914ada54d09b696ad62036cb65a565d2a3c3d1be8ef0e6805b9a955ec5783d0864736f6c63430006040033", - }, - { - ContractAddr: CrossChainContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/823b953232a344ba3c32d6690e70a245477e5760", - Code: "608060405234801561001057600080fd5b50600436106102485760003560e01c8063863fe4ab1161013b578063c81b1662116100b8578063e3b048051161007c578063e3b048051461072c578063f7a251d71461074c578063f9a2bbc7146107c4578063fc3e5908146107cc578063fd6a6879146107d457610248565b8063c81b1662146106dd578063d31f968d146106e5578063d76a867514610714578063dc927faf1461071c578063e1c7392a1461072457610248565b8063a78abc16116100ff578063a78abc16146105d3578063ab51bb96146105db578063ac431751146105e3578063b0355f5b146103ff578063c27cdcfb146106a157610248565b8063863fe4ab146105b35780638cc8f561146104b657806396713da9146105bb5780639dc09262146105c3578063a1a11bf5146105cb57610248565b8063493279b1116101c957806370fd5bad1161018d57806370fd5bad146104b657806374f079b8146104be57806375d47a0a146104c65780637942fd05146104ce57806384013b6a146104d657610248565b8063493279b11461045f5780634bf6c8821461047e57806351e80672146104865780636e47a51a1461048e5780636e47b482146104ae57610248565b8063308325f411610210578063308325f4146102cf5780633bdc47a6146102d75780633dffc387146103ff578063422f90501461040757806343756e5c1461043b57610248565b806305e682581461024d5780630bee7a671461026b57806314b3023b1461028c57806322556cdc146102a65780632ff32aea146102ae575b600080fd5b6102556107dc565b6040805160ff9092168252519081900360200190f35b6102736107e1565b6040805163ffffffff9092168252519081900360200190f35b6102946107e6565b60408051918252519081900360200190f35b6102946107ec565b6102b66107f1565b60408051600792830b90920b8252519081900360200190f35b6102946107fa565b61038a600480360360608110156102ed57600080fd5b60ff82351691602081013591810190606081016040820135600160201b81111561031657600080fd5b82018360208201111561032857600080fd5b803590602001918460018302840111600160201b8311171561034957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610800945050505050565b6040805160208082528351818301528351919283929083019185019080838360005b838110156103c45781810151838201526020016103ac565b50505050905090810190601f1680156103f15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610255610876565b6104276004803603602081101561041d57600080fd5b503560ff1661087b565b604080519115158252519081900360200190f35b610443610890565b604080516001600160a01b039092168252519081900360200190f35b610467610896565b6040805161ffff9092168252519081900360200190f35b61025561089b565b6104436108a0565b610443600480360360208110156104a457600080fd5b503560ff166108a6565b6104436108c1565b6102556108c7565b6102946108cc565b6104436108d2565b6102556108d8565b6105b1600480360360a08110156104ec57600080fd5b810190602081018135600160201b81111561050657600080fd5b82018360208201111561051857600080fd5b803590602001918460018302840111600160201b8311171561053957600080fd5b919390929091602081019035600160201b81111561055657600080fd5b82018360208201111561056857600080fd5b803590602001918460018302840111600160201b8311171561058957600080fd5b919350915080356001600160401b03908116916020810135909116906040013560ff166108dd565b005b610294611a8d565b610255611a95565b610443611a9a565b610443611aa0565b610427611aa6565b6102736107dc565b6105b1600480360360408110156105f957600080fd5b810190602081018135600160201b81111561061357600080fd5b82018360208201111561062557600080fd5b803590602001918460018302840111600160201b8311171561064657600080fd5b919390929091602081019035600160201b81111561066357600080fd5b82018360208201111561067557600080fd5b803590602001918460018302840111600160201b8311171561069657600080fd5b509092509050611aaf565b6106c1600480360360208110156106b757600080fd5b503560ff16612051565b604080516001600160401b039092168252519081900360200190f35b61044361206c565b610427600480360360408110156106fb57600080fd5b5080356001600160a01b0316906020013560ff16612072565b61038a612092565b6104436120b1565b6105b16120b7565b6106c16004803603602081101561074257600080fd5b503560ff1661246e565b6105b16004803603606081101561076257600080fd5b60ff8235169190810190604081016020820135600160201b81111561078657600080fd5b82018360208201111561079857600080fd5b803590602001918460018302840111600160201b831117156107b957600080fd5b919350915035612489565b6104436125da565b6102556125e0565b6104436125e5565b600081565b606481565b60015481565b603281565b60045460070b81565b60025481565b60606000825160210190506060816040519080825280601f01601f191660200182016040528015610838576020820181803683370190505b506021810186905260018101879052828152905060418101600061085b866125eb565b50905061086a818388516125f5565b50909695505050505050565b600181565b60096020526000908152604090205460ff1681565b61100181565b606181565b600881565b61200081565b6005602052600090815260409020546001600160a01b031681565b61100581565b600281565b60035481565b61100881565b600b81565b60005460ff16610930576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b60408051630a83aaa960e31b815233600482015290516110069163541d5548916024808301926020929190829003018186803b15801561096f57600080fd5b505afa158015610983573d6000803e3d6000fd5b505050506040513d602081101561099957600080fd5b50516109ec576040805162461bcd60e51b815260206004820152601f60248201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604482015290519081900360640190fd5b60ff8116600090815260086020526040902054829082906001600160401b039081169083168114610a5c576040805162461bcd60e51b815260206004820152601560248201527439b2b8bab2b731b2903737ba1034b71037b93232b960591b604482015290519081900360640190fd5b60ff8216600090815260086020908152604091829020805467ffffffffffffffff1916600185016001600160401b039081169190911790915582516337d7f9c160e21b81529089166004820152915188926110039263df5fe70492602480840193829003018186803b158015610ad157600080fd5b505afa158015610ae5573d6000803e3d6000fd5b505050506040513d6020811015610afb57600080fd5b5051610b385760405162461bcd60e51b8152600401808060200182810382526023815260200180612bcc6023913960400191505060405180910390fd5b60ff851660009081526005602052604090205485906001600160a01b0316610ba7576040805162461bcd60e51b815260206004820152601860248201527f6368616e6e656c206973206e6f7420737570706f727465640000000000000000604482015290519081900360640190fd5b60608c8c8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060608b8b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805163cba510a960e01b81526001600160401b038f1660048201529051939450610cce93611003935063cba510a992506024808301926020929190829003018186803b158015610c7757600080fd5b505afa158015610c8b573d6000803e3d6000fd5b505050506040513d6020811015610ca157600080fd5b505160408051808201909152600381526269626360e81b6020820152610cc78c8c612636565b858561267d565b610d16576040805162461bcd60e51b815260206004820152601460248201527334b73b30b634b21036b2b935b63290383937b7b360611b604482015290519081900360640190fd5b60408051631bb5062960e31b81526001600160401b038c16600482015290516000916110039163dda8314891602480820192602092909190829003018186803b158015610d6257600080fd5b505afa158015610d76573d6000803e3d6000fd5b505050506040513d6020811015610d8c57600080fd5b5051905088600080806060610da08861277a565b935093509350935083610e61578460ff168f6001600160401b03167ff7b2e42d694eb1100184aae86d4245d9e46966100b1dc7e723275b98326854ac8a6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610e1a578181015183820152602001610e02565b50505050905090810190601f168015610e475780820380516001836020036101000a031916815260200191505b509250505060405180910390a35050505050505050611a7f565b8460ff168f6001600160401b03167f36afdaf439a8f43fe72135135d804ae620b37a474f0943b5b85f6788312cad4085604051808260ff1660ff16815260200191505060405180910390a360ff83166113ea5760ff85166000818152600560209081526040808320548151631182b87560e01b815260048101958652602481019283528651604482015286516001600160a01b03909216958695631182b875958d958a9593949093606490910192918601918190849084905b83811015610f32578181015183820152602001610f1a565b50505050905090810190601f168015610f5f5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b158015610f7f57600080fd5b505af192505050801561106357506040513d6000823e601f3d908101601f191682016040526020811015610fb257600080fd5b8101908080516040519392919084600160201b821115610fd157600080fd5b908301906020820185811115610fe657600080fd5b8251600160201b811182820188101715610fff57600080fd5b82525081516020918201929091019080838360005b8381101561102c578181015183820152602001611014565b50505050905090810190601f1680156110595780820380516001836020036101000a031916815260200191505b5060405250505060015b611375576040516000815260443d101561107f5750600061111a565b60046000803e60005160e01c6308c379a081146110a057600091505061111a565b60043d036004833e81513d60248201116001600160401b03821117156110cb5760009250505061111a565b80830180516001600160401b038111156110ec57600094505050505061111a565b8060208301013d860181111561110a5760009550505050505061111a565b601f01601f191660405250925050505b806111255750611237565b60ff871660009081526007602052604081205461115c916001600160401b039091169089906111579060029088610800565b61282a565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf948794849390840192918601918190849084905b838110156111f75781810151838201526020016111df565b50505050905090810190601f1680156112245780820380516001836020036101000a031916815260200191505b509250505060405180910390a250611370565b3d808015611261576040519150601f19603f3d011682016040523d82523d6000602084013e611266565b606091505b5060ff8716600090815260076020526040812054611299916001600160401b039091169089906111579060029088610800565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351948794849390840192918601918190849084905b8381101561133457818101518382015260200161131c565b50505050905090810190601f1680156113615780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b6113e4565b8051156113e25760ff87166000908152600760205260408120546113ae916001600160401b039091169089906111579060019086610800565b60ff8716600090815260076020526040902080546001600160401b038082166001011667ffffffffffffffff199091161790555b505b506119b8565b60ff83166001141561168e5760ff8516600081815260056020908152604080832054815163831d65d160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563831d65d1958d958a9593949093606490910192918601918190849084905b8381101561147457818101518382015260200161145c565b50505050905090810190601f1680156114a15780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b1580156114c157600080fd5b505af19250505080156114d2575060015b6113e4576040516000815260443d10156114ee57506000611589565b60046000803e60005160e01c6308c379a0811461150f576000915050611589565b60043d036004833e81513d60248201116001600160401b038211171561153a57600092505050611589565b80830180516001600160401b0381111561155b576000945050505050611589565b8060208301013d860181111561157957600095505050505050611589565b601f01601f191660405250925050505b8061159457506115f9565b60408051602080825283518183015283516001600160a01b038616937ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf93869390928392830191850190808383600083156111f75781810151838201526020016111df565b3d808015611623576040519150601f19603f3d011682016040523d82523d6000602084013e611628565b606091505b5060408051602080825283518183015283516001600160a01b038616937f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351938693909283928301918501908083836000831561133457818101518382015260200161131c565b60ff8316600214156119b85760ff8516600081815260056020908152604080832054815163c8509d8160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563c8509d81958d958a9593949093606490910192918601918190849084905b83811015611718578181015183820152602001611700565b50505050905090810190601f1680156117455780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561176557600080fd5b505af1925050508015611776575060015b6119b6576040516000815260443d10156117925750600061182d565b60046000803e60005160e01c6308c379a081146117b357600091505061182d565b60043d036004833e81513d60248201116001600160401b03821117156117de5760009250505061182d565b80830180516001600160401b038111156117ff57600094505050505061182d565b8060208301013d860181111561181d5760009550505050505061182d565b601f01601f191660405250925050505b8061183857506118e1565b816001600160a01b03167ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf826040518080602001828103825283818151815260200191508051906020019080838360005b838110156118a1578181015183820152602001611889565b50505050905090810190601f1680156118ce5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2506119b6565b3d80801561190b576040519150601f19603f3d011682016040523d82523d6000602084013e611910565b606091505b50816001600160a01b03167f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351826040518080602001828103825283818151815260200191508051906020019080838360005b8381101561197a578181015183820152602001611962565b50505050905090810190601f1680156119a75780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b505b60ff80861660009081526009602052604090205461100591636f93d2e69189913391879116806119ea575060ff881615155b604080516001600160e01b031960e088901b1681526001600160a01b039586166004820152939094166024840152604483019190915215156064820152905160848083019260209291908290030181600087803b158015611a4a57600080fd5b505af1158015611a5e573d6000803e3d6000fd5b505050506040513d6020811015611a7457600080fd5b505050505050505050505b505050505050505050505050565b630100610081565b600981565b61100781565b61100681565b60005460ff1681565b3361100714611aef5760405162461bcd60e51b815260040180806020018281038252602e815260200180612b22602e913960400191505060405180910390fd5b611b5884848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526012815271626174636853697a65466f724f7261636c6560701b602082015291506129809050565b15611bf357604080516020601f8401819004810282018101909252828152600091611b9b91858580838501838280828437600092019190915250612a6792505050565b90506127108111158015611bb05750600a8110155b611beb5760405162461bcd60e51b8152600401808060200182810382526032815260200180612b9a6032913960400191505060405180910390fd5b600155611fbf565b611c5c84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601281527118591913dc955c19185d1950da185b9b995b60721b602082015291506129809050565b15611de457606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060169091149050611cdf5760405162461bcd60e51b815260040180806020018281038252605a815260200180612ac8605a913960600191505060405180910390fd5b60018101516002820151601683015160ff82161590611cfd81612a6c565b611d4e576040805162461bcd60e51b815260206004820152601960248201527f61646472657373206973206e6f74206120636f6e747261637400000000000000604482015290519081900360640190fd5b60ff8416600081815260056020908152604080832080546001600160a01b0319166001600160a01b038716908117909155808452600683528184208585528352818420805460ff199081166001179091556009909352818420805490931687151517909255519092917f7e3b6af43092577ee20e60eaa1d9b114a7031305c895ee7dd3ffe17196d2e1e091a35050505050611fbf565b611e5184848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526016815275195b98589b1953dc911a5cd8589b1950da185b9b995b60521b602082015291506129809050565b15611f8257606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060029091149050611ed45760405162461bcd60e51b815260040180806020018281038252604a815260200180612b50604a913960600191505060405180910390fd5b600181810151600283015160ff80831660009081526005602052604090205492939192908316909114906001600160a01b03168015611f78576001600160a01b038116600090815260066020908152604080832060ff881680855290835292819020805460ff1916861515908117909155815190815290517fa3132e3f9819fbddc7f0ed6d38d7feef59aa95112090b7c592f5cb5bc4aa4adc929181900390910190a25b5050505050611fbf565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b6008602052600090815260409020546001600160401b031681565b61100281565b600660209081526000928352604080842090915290825290205460ff1681565b6040518060400160405280600381526020016269626360e81b81525081565b61100381565b60005460ff161561210f576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b7f1471eb6eb2c5e789fc3de43f8ce62938c7d1836ec861730447e2ada8fd81017b80546001600160a01b0319908116611008179091557f92e85d02570a8092d09a6e3a57665bc3815a2699a4074001bf1ccabf660f5a36805460ff199081169091557fd8af288fc1c8680b4f4706064cf021e264efb6828fcaf7eb5ca36818eb365bcc8054821660019081179091557f89832631fb3c3307a103ba2c84ab569c64d6182a18893dcd163f0f1c2090733a805484166110049081179091557f6cde3cea4b3a3fb2488b2808bae7556f4a405e50f65e1794383bc026131b13c38054841690557f72e4efa1513b071517c6c74dba31b5934a81aa83cddd400e7081df5529c9943680548416831790557fa9bc9a3a348c357ba16b37005d7e6b3236198c0e939f4af8c5f19b8deeb8ebc08054851690911790557fc575c31fea594a6eb97c8e9d3f9caee4c16218c6ef37e923234c0fe9014a61e78054831690557f4e523af77f034e9810f1c94057f5e931fb3d16a51511a4c3add793617d18610580548316821790557ffb33122aa9f93cc639ebe80a7bc4784c11e6053dde89c6f4f7e268c6a623da1e805484166110001790557fc7694af312c4f286114180fd0ba6a52461fcee8a381636770b19a343af92538a80548316821790557f01112dd68e482ba8d68a7e828cff8b3abcea08eab88941953c180a7e650e9cd480548316821790557fc0a4a8be475dfebc377ebef2d7c4ff47656f572a08dd92b81017efcdba0febe1805484166110071790557f87e8a52529e8ece4ef759037313542a6429ff494a9fab9027fb79db90124eba680548316821790557f4c7666bbcb22d46469f7cc282f70764a7012dca2cce630ff8d83db9a9cdd48f080548316821790557f40f28f99a40bc9f6beea1013afdbc3cdcc689eb76b82c4de06c0acf1e1932ed58054909316611001179092557f0d9cf2cd531699eed8dd34e40ff2884a14a698c4898184fba85194e6f6772d248054821683179055600b60009081527f23f68c9bd22b8a93d06adabe17481c87c016bcbd20adc8bfd707a4d813a572176020527fdf0d5d05428057f5455c2dc8e810dd86d1e9350faa72f16bda8a45443c5b39328054831684179055603283556004805467ffffffffffffffff19166001600160401b031790556002819055600381905580549091169091179055565b6007602052600090815260409020546001600160401b031681565b60005460ff166124dc576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b33600090815260066020908152604080832060ff80891685529252909120548591166125395760405162461bcd60e51b8152600401808060200182810382526031815260200180612a976031913960400191505060405180910390fd5b60ff85166000908152600760209081526040808320548151601f88018490048402810184019092528682526001600160401b03169261259e9284928a9261115792909189918c908c908190840183828082843760009201919091525061080092505050565b60ff959095166000908152600760205260409020805467ffffffffffffffff191660019096016001600160401b03169590951790945550505050565b61100081565b600381565b61100481565b8051602090910191565b5b60208110612615578251825260209283019290910190601f19016125f6565b915181516020939093036101000a6000190180199091169216919091179052565b60408051600e808252818301909252606091630100610060ff851617918391602082018180368337505050600e818101969096526006810192909252509283525090919050565b60008561268c57506000612771565b606082518451865160800101016040519080825280601f01601f1916602001820160405280156126c3576020820181803683370190505b50905060006126d182612a72565b6020808901518252019050866000806126e9896125eb565b80865260209095019490925090506127028285836125f5565b9283019261270f886125eb565b80865260209095019490925090506127288285836125f5565b9283018a81526020019261273b876125eb565b909250905061274b8285836125f5565b508351602001612759612a78565b60208183886065600019fa5051600114955050505050505b95945050505050565b600080600060606021855110156127aa575050604080516000808252602082019092529092508291508190612823565b600185015160218601518651604080516020198301808252601f19600119909401939093168101602001909152604189019392916060919080156127f5576020820181803683370190505b5090506000612803826125eb565b509050612815858260218d51036125f5565b506001975091955093509150505b9193509193565b600254431115612869576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b1617909155600355436002556128aa565b600380546001908101918290555410156128aa576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b16179091556003555b8160ff16836001600160401b0316600460009054906101000a900460070b6001600160401b03167f3a6e0fc61675aa2a100bcba0568368bb92bcec91c97673391074f11138f0cffe606185604051808361ffff1661ffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015612940578181015183820152602001612928565b50505050905090810190601f16801561296d5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a4505050565b6000816040516020018082805190602001908083835b602083106129b55780518252601f199092019160209182019101612996565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310612a235780518252601f199092019160209182019101612a04565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b3b151590565b60200190565b6040518060200160405280600190602082028036833750919291505056fe74686520636f6e747261637420616e64206368616e6e656c2068617665206e6f74206265656e20726567697374657265646c656e677468206f662076616c756520666f72206164644f725570646174654368616e6e656c2073686f756c642062652032322c206368616e6e656c49643a697346726f6d53797374656d3a68616e646c657241646472657373746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662076616c756520666f7220656e61626c654f7244697361626c654368616e6e656c2073686f756c6420626520322c206368616e6e656c49643a6973456e61626c65746865206e6577426174636853697a65466f724f7261636c652073686f756c6420626520696e205b31302c2031303030305d6c6967687420636c69656e74206e6f742073796e632074686520626c6f636b20796574a26469706673582212207ab71aabd28c992023fb9ff6fe581825d14cb96a7bc39321484311e85804154864736f6c63430006040033", - }, - }, - } - - MirrorUpgrade[networkname.BSCChainName] = &Upgrade{ - UpgradeName: "mirror", - Configs: []*UpgradeConfig{ - { - ContractAddr: TokenManagerContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/af4f3993303213052222f55c721e661862d19638", - Code: "6080604052600436106103815760003560e01c80637d078e13116101d1578063b795031711610102578063d9e6dae9116100a0578063fa9e91591161006f578063fa9e915914610d38578063fc3e5908146105b2578063fd6a687914610d4d578063fe3a2af514610d6257610381565b8063d9e6dae9146106fc578063dc927faf14610cf9578063e605bca014610d0e578063f9a2bbc714610d2357610381565b8063c8509d81116100dc578063c8509d8114610bdf578063c8e704a4146105b2578063d117a11014610c64578063d7109ce614610ce457610381565b8063b79503171461073b578063bd32d3f9146104d9578063c81b166214610bca57610381565b80639a854bbd1161016f578063a78abc1611610149578063a78abc1614610ad5578063ab51bb9614610aea578063ab67a4851461073b578063ac43175114610aff57610381565b80639a854bbd14610a965780639dc0926214610aab578063a1a11bf514610ac057610381565b8063859180fb116101ab578063859180fb146106e757806394553a4e14610a3757806395b9ad2614610a6c57806396713da914610a8157610381565b80637d078e13146104ee5780637ec816dd1461099b578063831d65d1146109b057610381565b8063493279b1116102b657806366dea52a1161025457806372c4e0861161022357806372c4e0861461081957806375d47a0a146108bd57806377d9dae8146108d25780637942fd051461098657610381565b806366dea52a1461073b5780636b3f1307146107505780636e47b4821461080457806370fd5bad1461073b57610381565b806351e806721161029057806351e80672146107115780635d499b1b146107265780635f558f861461073b57806361368475146106fc57610381565b8063493279b1146106bb5780634bc81c00146106e75780634bf6c882146106fc57610381565b80632e02d77611610323578063401809f9116102fd578063401809f9146105b257806343756e5c146105c7578063445fcefe146105f8578063487c88ac146104ee57610381565b80632e02d7761461054c57806337e6ecda1461057f5780633dffc387146104ee57610381565b80631f91600b1161035f5780631f91600b146104d957806323996b53146104ee57806325c751b7146105035780632d89ac32146104ee57610381565b80630bee7a67146103865780630f212b1b146103b45780631182b875146103df575b600080fd5b34801561039257600080fd5b5061039b610d77565b6040805163ffffffff9092168252519081900360200190f35b3480156103c057600080fd5b506103c9610d7c565b6040805160ff9092168252519081900360200190f35b3480156103eb57600080fd5b506104646004803603604081101561040257600080fd5b60ff8235169190810190604081016020820135600160201b81111561042657600080fd5b82018360208201111561043857600080fd5b803590602001918460018302840111600160201b8311171561045957600080fd5b509092509050610d81565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561049e578181015183820152602001610486565b50505050905090810190601f1680156104cb5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156104e557600080fd5b506103c9610e9b565b3480156104fa57600080fd5b506103c9610ea0565b6105386004803603604081101561051957600080fd5b5080356001600160a01b031690602001356001600160401b0316610ea5565b604080519115158252519081900360200190f35b34801561055857600080fd5b506105386004803603602081101561056f57600080fd5b50356001600160a01b03166113f1565b34801561058b57600080fd5b50610538600480360360208110156105a257600080fd5b50356001600160a01b0316611406565b3480156105be57600080fd5b506103c961141b565b3480156105d357600080fd5b506105dc611420565b604080516001600160a01b039092168252519081900360200190f35b34801561060457600080fd5b506106a96004803603602081101561061b57600080fd5b810190602081018135600160201b81111561063557600080fd5b82018360208201111561064757600080fd5b803590602001918460018302840111600160201b8311171561066857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611426945050505050565b60408051918252519081900360200190f35b3480156106c757600080fd5b506106d0611584565b6040805161ffff9092168252519081900360200190f35b3480156106f357600080fd5b506103c9611589565b34801561070857600080fd5b506103c961158e565b34801561071d57600080fd5b506105dc611593565b34801561073257600080fd5b506106a9611599565b34801561074757600080fd5b506103c96115a2565b6105386004803603604081101561076657600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561079057600080fd5b8201836020820111156107a257600080fd5b803590602001918460018302840111600160201b831117156107c357600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506115a7945050505050565b34801561081057600080fd5b506105dc611e7d565b6105386004803603602081101561082f57600080fd5b810190602081018135600160201b81111561084957600080fd5b82018360208201111561085b57600080fd5b803590602001918460018302840111600160201b8311171561087c57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611e83945050505050565b3480156108c957600080fd5b506105dc6122cf565b610538600480360360408110156108e857600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561091257600080fd5b82018360208201111561092457600080fd5b803590602001918460018302840111600160201b8311171561094557600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506122d5945050505050565b34801561099257600080fd5b506103c96127db565b3480156109a757600080fd5b506106a96127e0565b3480156109bc57600080fd5b50610a35600480360360408110156109d357600080fd5b60ff8235169190810190604081016020820135600160201b8111156109f757600080fd5b820183602082011115610a0957600080fd5b803590602001918460018302840111600160201b83111715610a2a57600080fd5b5090925090506127e6565b005b61053860048036036040811015610a4d57600080fd5b5080356001600160a01b031690602001356001600160401b0316612935565b348015610a7857600080fd5b506103c961332c565b348015610a8d57600080fd5b506103c9613331565b348015610aa257600080fd5b506106a9613336565b348015610ab757600080fd5b506105dc613342565b348015610acc57600080fd5b506105dc613348565b348015610ae157600080fd5b5061053861334e565b348015610af657600080fd5b5061039b613357565b348015610b0b57600080fd5b50610a3560048036036040811015610b2257600080fd5b810190602081018135600160201b811115610b3c57600080fd5b820183602082011115610b4e57600080fd5b803590602001918460018302840111600160201b83111715610b6f57600080fd5b919390929091602081019035600160201b811115610b8c57600080fd5b820183602082011115610b9e57600080fd5b803590602001918460018302840111600160201b83111715610bbf57600080fd5b50909250905061335c565b348015610bd657600080fd5b506105dc613631565b348015610beb57600080fd5b50610a3560048036036040811015610c0257600080fd5b60ff8235169190810190604081016020820135600160201b811115610c2657600080fd5b820183602082011115610c3857600080fd5b803590602001918460018302840111600160201b83111715610c5957600080fd5b509092509050613637565b348015610c7057600080fd5b50610c8e60048036036020811015610c8757600080fd5b503561370d565b6040805160ff988916815260208101979097526001600160a01b03909516868601526060860193909352608085019190915290931660a08301526001600160401b0390921660c082015290519081900360e00190f35b348015610cf057600080fd5b506106a9613764565b348015610d0557600080fd5b506105dc613769565b348015610d1a57600080fd5b506106a961376f565b348015610d2f57600080fd5b506105dc613775565b348015610d4457600080fd5b506106a961377b565b348015610d5957600080fd5b506105dc613781565b348015610d6e57600080fd5b506103c9613357565b606481565b600681565b60603361200014610dc35760405162461bcd60e51b815260040180806020018281038252602f815260200180615b89602f913960400191505060405180910390fd5b60ff841660011415610e1557610e0e83838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061378792505050565b9050610e94565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605848484604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a1506040805160008152602081019091525b9392505050565b600481565b600181565b6040805163bd46646160e01b81526001600160a01b0384166004820152905160009182916110049163bd466461916024808301926020929190829003018186803b158015610ef257600080fd5b505afa158015610f06573d6000803e3d6000fd5b505050506040513d6020811015610f1c57600080fd5b5051905080610f5e576040805162461bcd60e51b81526020600482015260096024820152681b9bdd08189bdd5b9960ba1b604482015290519081900360640190fd5b6001600160a01b03841660009081526003602052604090205460ff16610fc1576040805162461bcd60e51b81526020600482015260136024820152723737ba103137bab73210313c9036b4b93937b960691b604482015290519081900360640190fd5b60006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b158015610ffe57600080fd5b505afa158015611012573d6000803e3d6000fd5b505050506040513d602081101561102857600080fd5b505190506402540be4003406158015611053575060055461104f908263ffffffff613a1716565b3410155b61108e5760405162461bcd60e51b8152600401808060200182810382526046815260200180615b156046913960600191505060405180910390fd5b42607801846001600160401b0316101580156110b85750426201518001846001600160401b031611155b6110f35760405162461bcd60e51b8152600401808060200182810382526038815260200180615a126038913960400191505060405180910390fd5b6000856001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561112e57600080fd5b505afa158015611142573d6000803e3d6000fd5b505050506040513d602081101561115857600080fd5b50516040805163313ce56760e01b815290519192506000916001600160a01b0389169163313ce567916004808301926020929190829003018186803b1580156111a057600080fd5b505afa1580156111b4573d6000803e3d6000fd5b505050506040513d60208110156111ca57600080fd5b50519050677ce66c50e28400006111e48360ff8416613a71565b1115611230576040805162461bcd60e51b8152602060048201526016602482015275746f6f206c6172676520746f74616c20737570706c7960501b604482015290519081900360640190fd5b600554611004906108fc9061124c90349063ffffffff613b0016565b6040518115909202916000818181858888f19350505050158015611274573d6000803e3d6000fd5b5061127d615869565b6040518060c00160405280336001600160a01b03168152602001896001600160a01b031681526020018681526020018481526020016112cc6402540be400600554613b4290919063ffffffff16565b81526001600160401b038916602090910152905061200063f7a251d760056112f384613b84565b61131d6402540be40061131160055434613b0090919063ffffffff16565b9063ffffffff613b4216565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561137b578181015183820152602001611363565b50505050905090810190601f1680156113a85780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156113c957600080fd5b505af11580156113dd573d6000803e3d6000fd5b505050506001955050505050505b92915050565b60036020526000908152604090205460ff1681565b60026020526000908152604090205460ff1681565b600381565b61100181565b602081015160009061143661589e565b50600081815260016020818152604092839020835160e081018552815460ff9081168252938201549281019290925260028101546001600160a01b031693820184905260038101546060830152600481015460808301526005015491821660a08201526101009091046001600160401b031660c0820152906114bd5760009250505061157f565b600081604001516001600160a01b03166370a082316110046040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561151b57600080fd5b505afa15801561152f573d6000803e3d6000fd5b505050506040513d602081101561154557600080fd5b5051608083015160608401519192506000916115669163ffffffff613b0016565b9050611578818363ffffffff613b0016565b9450505050505b919050565b603881565b600581565b600881565b61200081565b6402540be40081565b600281565b6001600160a01b03821660009081526002602052604081205460ff16156115ff5760405162461bcd60e51b815260040180806020018281038252602b815260200180615bb8602b913960400191505060405180910390fd5b600061160a83613cb9565b905061161461589e565b50600081815260016020818152604092839020835160e081018552815460ff90811682529382015492810183905260028201546001600160a01b03169481019490945260038101546060850152600481015460808501526005015491821660a08401526101009091046001600160401b031660c08301526116d9576040805162461bcd60e51b815260206004820152601a602482015279189a5b99081c995c5d595cdd08191bd95cdb89dd08195e1a5cdd60321b604482015290519081900360640190fd5b60006116f682608001518360600151613b0090919063ffffffff16565b905081604001516001600160a01b0316866001600160a01b03161461174c5760405162461bcd60e51b8152600401808060200182810382526045815260200180615a816045913960600191505060405180910390fd5b336001600160a01b0316866001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b15801561178f57600080fd5b505afa1580156117a3573d6000803e3d6000fd5b505050506040513d60208110156117b957600080fd5b50516001600160a01b0316146118005760405162461bcd60e51b815260040180806020018281038252602e8152602001806159e4602e913960400191505060405180910390fd5b604080516370a0823160e01b8152611004600482015290516000916001600160a01b038916916370a0823191602480820192602092909190829003018186803b15801561184c57600080fd5b505afa158015611860573d6000803e3d6000fd5b505050506040513d602081101561187657600080fd5b505160408051636eb1769f60e11b8152336004820152306024820152905191925083916119079184916001600160a01b038c169163dd62ed3e916044808301926020929190829003018186803b1580156118cf57600080fd5b505afa1580156118e3573d6000803e3d6000fd5b505050506040513d60208110156118f957600080fd5b50519063ffffffff613a1716565b101561195a576040805162461bcd60e51b815260206004820152601760248201527f616c6c6f77616e6365206973206e6f7420656e6f756768000000000000000000604482015290519081900360640190fd5b600034905060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b15801561199c57600080fd5b505afa1580156119b0573d6000803e3d6000fd5b505050506040513d60208110156119c657600080fd5b505190508082108015906119df57506402540be4008206155b611a1a5760405162461bcd60e51b8152600401808060200182810382526037815260200180615a4a6037913960400191505060405180910390fd5b6000611a26868b613cc0565b905063ffffffff8116611c25576001600160a01b038a166323b872dd33611004611a56898963ffffffff613b0016565b6040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b031681526020018281526020019350505050602060405180830381600087803b158015611abe57600080fd5b505af1158015611ad2573d6000803e3d6000fd5b505050506040513d6020811015611ae857600080fd5b5050602086015160408088015160a089015182516323bfccdb60e21b815260048101949094526001600160a01b03909116602484015260ff1660448301525161100491638eff336c91606480830192600092919082900301818387803b158015611b5157600080fd5b505af1158015611b65573d6000803e3d6000fd5b50505050896001600160a01b03167f78e7dd9aefcdbf795c4936a66f7dc6d41bb56637b54f561a6bf7829dca3348a88a8860600151886040518080602001848152602001838152602001828103825285818151815260200191508051906020019080838360005b83811015611be4578181015183820152602001611bcc565b50505050905090810190601f168015611c115780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a2611cdd565b896001600160a01b03167f831c0ef4d93bda3bce08b69ae3f29ef1a6e052b833200988554158494405a1078a8360405180806020018363ffffffff1663ffffffff168152602001828103825284818151815260200191508051906020019080838360005b83811015611ca1578181015183820152602001611c89565b50505050905090810190601f168015611cce5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a25b60008781526001602081905260408220805460ff191681559081018290556002810180546001600160a01b0319169055600381018290556004810191909155600501805468ffffffffffffffffff19169055611d376158da565b5060408051808201825263ffffffff831681526020810189905290516110049085156108fc029086906000818181858888f19350505050158015611d7f573d6000803e3d6000fd5b5061200063f7a251d76001611d938461411a565b611da8886402540be40063ffffffff613b4216565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611e06578181015183820152602001611dee565b50505050905090810190601f168015611e335780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015611e5457600080fd5b505af1158015611e68573d6000803e3d6000fd5b5060019e9d5050505050505050505050505050565b61100581565b600080611e8f83613cb9565b9050611e9961589e565b50600081815260016020818152604092839020835160e081018552815460ff90811682529382015492810183905260028201546001600160a01b03169481019490945260038101546060850152600481015460808501526005015491821660a08401526101009091046001600160401b031660c0830152611f5e576040805162461bcd60e51b815260206004820152601a602482015279189a5b99081c995c5d595cdd08191bd95cdb89dd08195e1a5cdd60321b604482015290519081900360640190fd5b428160c001516001600160401b031610611fbf576040805162461bcd60e51b815260206004820152601b60248201527f62696e642072657175657374206973206e6f7420657870697265640000000000604482015290519081900360640190fd5b600034905060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b15801561200157600080fd5b505afa158015612015573d6000803e3d6000fd5b505050506040513d602081101561202b57600080fd5b5051905080821080159061204457506402540be4008206155b61207f5760405162461bcd60e51b8152600401808060200182810382526037815260200180615a4a6037913960400191505060405180910390fd5b60008481526001602081905260408220805460ff191681559081018290556002810180546001600160a01b0319169055600381018290556004810191909155600501805468ffffffffffffffffff191690556120d96158da565b50604080518082018252600181526020810186905290516110049084156108fc029085906000818181858888f1935050505015801561211c573d6000803e3d6000fd5b5061200063f7a251d760016121308461411a565b612145876402540be40063ffffffff613b4216565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156121a357818101518382015260200161218b565b50505050905090810190601f1680156121d05780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156121f157600080fd5b505af1158015612205573d6000803e3d6000fd5b5050505083604001516001600160a01b03167f831c0ef4d93bda3bce08b69ae3f29ef1a6e052b833200988554158494405a10788600160405180806020018360ff1663ffffffff168152602001828103825284818151815260200191508051906020019080838360005b8381101561228757818101518382015260200161226f565b50505050905090810190601f1680156122b45780820380516001836020036101000a031916815260200191505b50935050505060405180910390a25060019695505050505050565b61100881565b6000806122e183613cb9565b90506122eb61589e565b50600081815260016020818152604092839020835160e081018552815460ff90811682529382015492810183905260028201546001600160a01b03169481019490945260038101546060850152600481015460808501526005015491821660a08401526101009091046001600160401b031660c08301526123b0576040805162461bcd60e51b815260206004820152601a602482015279189a5b99081c995c5d595cdd08191bd95cdb89dd08195e1a5cdd60321b604482015290519081900360640190fd5b80604001516001600160a01b0316856001600160a01b0316146124045760405162461bcd60e51b8152600401808060200182810382526045815260200180615a816045913960600191505060405180910390fd5b336001600160a01b0316856001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b15801561244757600080fd5b505afa15801561245b573d6000803e3d6000fd5b505050506040513d602081101561247157600080fd5b50516001600160a01b0316146124ce576040805162461bcd60e51b815260206004820152601b60248201527f6f6e6c79206265703230206f776e65722063616e2072656a6563740000000000604482015290519081900360640190fd5b600034905060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b15801561251057600080fd5b505afa158015612524573d6000803e3d6000fd5b505050506040513d602081101561253a57600080fd5b5051905080821080159061255357506402540be4008206155b61258e5760405162461bcd60e51b8152600401808060200182810382526037815260200180615a4a6037913960400191505060405180910390fd5b60008481526001602081905260408220805460ff191681559081018290556002810180546001600160a01b0319169055600381018290556004810191909155600501805468ffffffffffffffffff191690556125e86158da565b50604080518082018252600781526020810186905290516110049084156108fc029085906000818181858888f1935050505015801561262b573d6000803e3d6000fd5b5061200063f7a251d7600161263f8461411a565b612654876402540be40063ffffffff613b4216565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156126b257818101518382015260200161269a565b50505050905090810190601f1680156126df5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561270057600080fd5b505af1158015612714573d6000803e3d6000fd5b50505050876001600160a01b03167f831c0ef4d93bda3bce08b69ae3f29ef1a6e052b833200988554158494405a10788600760405180806020018360ff1663ffffffff168152602001828103825284818151815260200191508051906020019080838360005b8381101561279257818101518382015260200161277a565b50505050905090810190601f1680156127bf5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a2506001979650505050505050565b600b81565b60045481565b33612000146128265760405162461bcd60e51b815260040180806020018281038252602f815260200180615b89602f913960400191505060405180910390fd5b60ff8316600414156128765761287182828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061419092505050565b612930565b60ff8316600514156128c15761287182828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061443d92505050565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a15b505050565b6040805163bd46646160e01b81526001600160a01b0384166004820152905160009182916110049163bd466461916024808301926020929190829003018186803b15801561298257600080fd5b505afa158015612996573d6000803e3d6000fd5b505050506040513d60208110156129ac57600080fd5b5051146129f0576040805162461bcd60e51b815260206004820152600d60248201526c185b1c9958591e48189bdd5b99609a1b604482015290519081900360640190fd5b6001600160a01b03831660009081526002602052604090205460ff1615612a4f576040805162461bcd60e51b815260206004820152600e60248201526d6d6972726f722070656e64696e6760901b604482015290519081900360640190fd5b60006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b158015612a8c57600080fd5b505afa158015612aa0573d6000803e3d6000fd5b505050506040513d6020811015612ab657600080fd5b505190506402540be4003406158015612ae15750600454612add908263ffffffff613a1716565b3410155b612b1c5760405162461bcd60e51b815260040180806020018281038252604d815260200180615997604d913960600191505060405180910390fd5b42607801836001600160401b031610158015612b465750426201518001836001600160401b031611155b612b815760405162461bcd60e51b8152600401808060200182810382526038815260200180615a126038913960400191505060405180910390fd5b6000846001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015612bbc57600080fd5b505afa158015612bd0573d6000803e3d6000fd5b505050506040513d6020811015612be657600080fd5b5051604080516318160ddd60e01b815290519192506000916001600160a01b038816916318160ddd916004808301926020929190829003018186803b158015612c2e57600080fd5b505afa158015612c42573d6000803e3d6000fd5b505050506040513d6020811015612c5857600080fd5b50519050677ce66c50e2840000612c728260ff8516613a71565b1115612cbe576040805162461bcd60e51b8152602060048201526016602482015275746f6f206c6172676520746f74616c20737570706c7960501b604482015290519081900360640190fd5b6060866001600160a01b03166306fdde036040518163ffffffff1660e01b815260040160006040518083038186803b158015612cf957600080fd5b505afa158015612d0d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015612d3657600080fd5b8101908080516040519392919084600160201b821115612d5557600080fd5b908301906020820185811115612d6a57600080fd5b8251600160201b811182820188101715612d8357600080fd5b82525081516020918201929091019080838360005b83811015612db0578181015183820152602001612d98565b50505050905090810190601f168015612ddd5780820380516001836020036101000a031916815260200191505b50604052505050905060608190506001815110158015612dff57506020815111155b612e50576040805162461bcd60e51b815260206004820152601d60248201527f6e616d65206c656e677468206d75737420626520696e205b312c33325d000000604482015290519081900360640190fd5b6060886001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b158015612e8b57600080fd5b505afa158015612e9f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015612ec857600080fd5b8101908080516040519392919084600160201b821115612ee757600080fd5b908301906020820185811115612efc57600080fd5b8251600160201b811182820188101715612f1557600080fd5b82525081516020918201929091019080838360005b83811015612f42578181015183820152602001612f2a565b50505050905090810190601f168015612f6f5780820380516001836020036101000a031916815260200191505b5060405250508151919250829160021180159150612f8f57508051600810155b612fe0576040805162461bcd60e51b815260206004820152601e60248201527f73796d626f6c206c656e677468206d75737420626520696e205b322c385d0000604482015290519081900360640190fd5b60005b81518160ff16101561313457604160f81b828260ff168151811061300357fe5b01602001516001600160f81b031916108015906130415750602d60f91b828260ff168151811061302f57fe5b01602001516001600160f81b03191611155b806130995750606160f81b828260ff168151811061305b57fe5b01602001516001600160f81b031916108015906130995750603d60f91b828260ff168151811061308757fe5b01602001516001600160f81b03191611155b806130f15750600360fc1b828260ff16815181106130b357fe5b01602001516001600160f81b031916108015906130f15750603960f81b828260ff16815181106130df57fe5b01602001516001600160f81b03191611155b61312c5760405162461bcd60e51b815260040180806020018281038252602e815260200180615ac6602e913960400191505060405180910390fd5b600101612fe3565b50600454611004906108fc9061315190349063ffffffff613b0016565b6040518115909202916000818181858888f19350505050158015613179573d6000803e3d6000fd5b506001600160a01b038a166000908152600260209081526040909120805460ff1916600117905584810151908301516131b06158f1565b604051806101000160405280336001600160a01b031681526020018e6001600160a01b031681526020018481526020018381526020018981526020018a60ff16815260200161320f6402540be400600454613b4290919063ffffffff16565b81526001600160401b038e16602090910152905061200063f7a251d7600461323684614608565b6132546402540be40061131160045434613b0090919063ffffffff16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156132b257818101518382015260200161329a565b50505050905090810190601f1680156132df5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561330057600080fd5b505af1158015613314573d6000803e3d6000fd5b5050505060019a505050505050505050505092915050565b600781565b600981565b677ce66c50e284000081565b61100781565b61100681565b60005460ff1681565b600081565b336110071461339c5760405162461bcd60e51b815260040180806020018281038252602e815260200180615b5b602e913960400191505060405180910390fd5b602081146133f1576040805162461bcd60e51b815260206004820152601860248201527f65787065637465642076616c7565206c656e6774682033320000000000000000604482015290519081900360640190fd5b606084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f880181900481028201810190925286815293945060609392508691508590819084018382808284376000920191909152505050506020830151909150686d6972726f7246656560b81b8114156134e65760208201516402540be4008106156134de576040805162461bcd60e51b815260206004820152601a60248201527f6d6972726f72466565206d757374206265204e202a2031653130000000000000604482015290519081900360640190fd5b60045561359c565b6673796e6346656560c81b81141561355f5760208201516402540be400810615613557576040805162461bcd60e51b815260206004820152601860248201527f73796e63466565206d757374206265204e202a20316531300000000000000000604482015290519081900360640190fd5b60055561359c565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a878787876040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050505050565b61100281565b33612000146136775760405162461bcd60e51b815260040180806020018281038252602f815260200180615b89602f913960400191505060405180910390fd5b60ff8316600414156136c25761287182828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061477a92505050565b60ff8316600514156128c15761287182828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506148b992505050565b600160208190526000918252604090912080549181015460028201546003830154600484015460059094015460ff9586169593946001600160a01b039093169391929181169061010090046001600160401b031687565b604d81565b61100381565b60055481565b61100081565b61271081565b61100481565b606061379161589e565b600061379c846149b3565b91509150806137f2576040805162461bcd60e51b815260206004820152601f60248201527f756e7265636f676e697a6564207472616e73666572496e207061636b61676500604482015290519081900360640190fd5b815160ff166138a5576020828101805160009081526001928390526040908190208551815460ff1990811660ff928316178355935194820194909455908501516002820180546001600160a01b0319166001600160a01b03909216919091179055606085015160038201556080850151600482015560a08501516005909101805460c08701519316919093161768ffffffffffffffff0019166101006001600160401b03909216919091021790556139fc565b815160ff16600114156139af5760006110046001600160a01b03166359b9278984602001516040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156138fe57600080fd5b505afa158015613912573d6000803e3d6000fd5b505050506040513d602081101561392857600080fd5b505190506001600160a01b038116156139a95760208301516040805163b99328c560e01b815260048101929092526001600160a01b0383166024830152516110049163b99328c591604480830192600092919082900301818387803b15801561399057600080fd5b505af11580156139a4573d6000803e3d6000fd5b505050505b506139fc565b6040805162461bcd60e51b815260206004820152601960248201527f756e7265636f676e697a65642062696e64207061636b61676500000000000000604482015290519081900360640190fd5b60408051600080825260208201909252905b50949350505050565b600082820183811015610e94576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60006008821115613ae957604d60071983011115613acb576040805162461bcd60e51b8152602060048201526012602482015271746f6f206c6172676520646563696d616c7360701b604482015290519081900360640190fd5b613ae2836007198401600a0a63ffffffff613b4216565b90506113eb565b610e94836008849003600a0a63ffffffff614b0416565b6000610e9483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250614b5d565b6000610e9483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250614bf4565b60408051600680825260e08201909252606091829190816020015b6060815260200190600190039081613b9f5750508351909150613bca906001600160a01b0316614c59565b81600081518110613bd757fe5b6020026020010181905250613bf883602001516001600160a01b0316614c59565b81600181518110613c0557fe5b6020026020010181905250613c20836040015160001c614c7c565b81600281518110613c2d57fe5b6020026020010181905250613c458360600151614c7c565b81600381518110613c5257fe5b6020026020010181905250613c6a8360800151614c7c565b81600481518110613c7757fe5b6020026020010181905250613c988360a001516001600160401b0316614c7c565b81600581518110613ca557fe5b6020026020010181905250610e9481614c8f565b6020015190565b600080826001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015613cfc57600080fd5b505afa158015613d10573d6000803e3d6000fd5b505050506040513d6020811015613d2657600080fd5b5051604080516395d89b4160e01b8152905160ff90921692506060916001600160a01b038616916395d89b41916004808301926000929190829003018186803b158015613d7257600080fd5b505afa158015613d86573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015613daf57600080fd5b8101908080516040519392919084600160201b821115613dce57600080fd5b908301906020820185811115613de357600080fd5b8251600160201b811182820188101715613dfc57600080fd5b82525081516020918201929091019080838360005b83811015613e29578181015183820152602001613e11565b50505050905090810190601f168015613e565780820380516001836020036101000a031916815260200191505b5060408181526370a0823160e01b82526110046004830152519495506000946001600160a01b038a1694506370a08231935060248083019350602092829003018186803b158015613ea657600080fd5b505afa158015613eba573d6000803e3d6000fd5b505050506040513d6020811015613ed057600080fd5b505160808701516060880151919250600091613ef19163ffffffff613b0016565b9050428760c001516001600160401b03161015613f165750600193506113eb92505050565b613f24838860200151614d19565b613f365750600293506113eb92505050565b80821115613f4c5750600393506113eb92505050565b866060015187604001516001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015613f8e57600080fd5b505afa158015613fa2573d6000803e3d6000fd5b505050506040513d6020811015613fb857600080fd5b505114613fcd5750600493506113eb92505050565b8660a0015160ff168414613fe95750600593506113eb92505050565b602080880151604080516359b9278960e01b8152600481019290925251600092611004926359b927899260248083019392829003018186803b15801561402e57600080fd5b505afa158015614042573d6000803e3d6000fd5b505050506040513d602081101561405857600080fd5b50516001600160a01b03161415806140fa57506000801b6110046001600160a01b031663bd46646189604001516040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156140cb57600080fd5b505afa1580156140df573d6000803e3d6000fd5b505050506040513d60208110156140f557600080fd5b505114155b1561410d5750600693506113eb92505050565b5060009695505050505050565b6040805160028082526060828101909352829190816020015b6060815260200190600190039081614133575050835190915061415b9063ffffffff16614c7c565b8160008151811061416857fe5b6020026020010181905250614183836020015160001c614c7c565b81600181518110613ca557fe5b614198615869565b60006141a383614e01565b91509150806141f0576040805162461bcd60e51b8152602060048201526014602482015273756e7265636f676e697a6564207061636b61676560601b604482015290519081900360640190fd5b6020808301516001600160a01b03166000908152600290915260409020805460ff1916905560a082015160ff166143515760808201516040516110049180156108fc02916000818181858888f19350505050158015614253573d6000803e3d6000fd5b506110046001600160a01b0316638eff336c8360600151846020015185604001516040518463ffffffff1660e01b815260040180848152602001836001600160a01b03166001600160a01b031681526020018260ff1681526020019350505050600060405180830381600087803b1580156142cd57600080fd5b505af11580156142e1573d6000803e3d6000fd5b50505050602082810180516001600160a01b03908116600090815260038452604090819020805460ff1916600117905591516060860151835190815292519116927f41787d7db08fc5907641ee8343379f28215727eb123d4b462099afab4300b036928290030190a2505061443a565b815160808301516040516000926001600160a01b0316916127109184818181858888f193505050503d80600081146143a5576040519150601f19603f3d011682016040523d82523d6000602084013e6143aa565b606091505b50509050806143e75760808301516040516110029180156108fc02916000818181858888f193505050501580156143e5573d6000803e3d6000fd5b505b82602001516001600160a01b03167fefe400ad0042ebf81a245de9ae669616105e0ca9fc946352c085da0c2bc524e58460a00151604051808260ff1660ff16815260200191505060405180910390a25050505b50565b614445615935565b600061445083614f0e565b915091508061449d576040805162461bcd60e51b8152602060048201526014602482015273756e7265636f676e697a6564207061636b61676560601b604482015290519081900360640190fd5b606082015160ff1661451d5760408083015190516110049180156108fc02916000818181858888f193505050501580156144db573d6000803e3d6000fd5b5081602001516001600160a01b03167fbb7d3a9a559080d8281b0e4fb39dacbe2fdcafd5ef765e9a6ed871c9167dc60f60405160405180910390a2505061443a565b81602001516001600160a01b03167ff1e25fa536da84053644fd788b1d6a27ea6edd1f3af80c7d36ca253c4c82c9c38360600151604051808260ff1660ff16815260200191505060405180910390a2815160408084015190516000926001600160a01b0316916127109184818181858888f193505050503d80600081146145c0576040519150601f19603f3d011682016040523d82523d6000602084013e6145c5565b606091505b50509050806146025760408084015190516110029180156108fc02916000818181858888f19350505050158015614600573d6000803e3d6000fd5b505b50505050565b6040805160088082526101208201909252606091829190816020015b6060815260200190600190039081614624575050835190915061464f906001600160a01b0316614c59565b8160008151811061465c57fe5b602002602001018190525061467d83602001516001600160a01b0316614c59565b8160018151811061468a57fe5b60200260200101819052506146a5836040015160001c614c7c565b816002815181106146b257fe5b60200260200101819052506146cd836060015160001c614c7c565b816003815181106146da57fe5b60200260200101819052506146f28360800151614c7c565b816004815181106146ff57fe5b602002602001018190525061471a8360a0015160ff16614c7c565b8160058151811061472757fe5b602002602001018190525061473f8360c00151614c7c565b8160068151811061474c57fe5b602002602001018190525061476d8360e001516001600160401b0316614c7c565b81600781518110613ca557fe5b6147826158f1565b600061478d83614fda565b91509150806147da576040805162461bcd60e51b8152602060048201526014602482015273756e7265636f676e697a6564207061636b61676560601b604482015290519081900360640190fd5b6020808301516001600160a01b039081166000908152600290925260408220805460ff19169055835160c085015191169061271090614824906402540be40063ffffffff614b0416565b6040516000818181858888f193505050503d8060008114614861576040519150601f19603f3d011682016040523d82523d6000602084013e614866565b606091505b50509050806146025760c0830151611002906108fc90614891906402540be40063ffffffff614b0416565b6040518115909202916000818181858888f19350505050158015614600573d6000803e3d6000fd5b6148c1615869565b60006148cc8361512b565b9150915080614919576040805162461bcd60e51b8152602060048201526014602482015273756e7265636f676e697a6564207061636b61676560601b604482015290519081900360640190fd5b815160808301516000916001600160a01b03169061271090614946906402540be40063ffffffff614b0416565b6040516000818181858888f193505050503d8060008114614983576040519150601f19603f3d011682016040523d82523d6000602084013e614988565b606091505b5050905080614602576080830151611002906108fc90614891906402540be40063ffffffff614b0416565b6149bb61589e565b60006149c561589e565b6149cd61595c565b6149de6149d98661523b565b615260565b90506000805b6149ed836152aa565b15614af75780614a1257614a08614a03846152cb565b615319565b60ff168452614aef565b8060011415614a3157614a27614a03846152cb565b6020850152614aef565b8060021415614a5e57614a4b614a46846152cb565b6153ce565b6001600160a01b03166040850152614aef565b8060031415614a7d57614a73614a03846152cb565b6060850152614aef565b8060041415614a9c57614a92614a03846152cb565b6080850152614aef565b8060051415614abe57614ab1614a03846152cb565b60ff1660a0850152614aef565b8060061415614aea57614ad3614a03846152cb565b6001600160401b031660c085015260019150614aef565b614af7565b6001016149e4565b5091935090915050915091565b600082614b13575060006113eb565b82820282848281614b2057fe5b0414610e945760405162461bcd60e51b8152600401808060200182810382526021815260200180615af46021913960400191505060405180910390fd5b60008184841115614bec5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015614bb1578181015183820152602001614b99565b50505050905090810190601f168015614bde5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008183614c435760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315614bb1578181015183820152602001614b99565b506000838581614c4f57fe5b0495945050505050565b60408051600560a21b8318601482015260348101909152606090610e94816153e8565b60606113eb614c8a8361543e565b6153e8565b6060815160001415614cb0575060408051600081526020810190915261157f565b606082600081518110614cbf57fe5b602002602001015190506000600190505b8351811015614d0057614cf682858381518110614ce957fe5b6020026020010151615524565b9150600101614cd0565b50610e94614d13825160c060ff166155a1565b82615524565b8151600090839060081080614d2f575080516002115b15614d3e5760009150506113eb565b60408051602080825281830190925260609160208201818036833701905050905083602082015280825181518110614d7257fe5b6020910101516001600160f81b031916602d60f81b14614d97576000925050506113eb565b600160005b8351811015614df757828181518110614db157fe5b602001015160f81c60f81b6001600160f81b031916848281518110614dd257fe5b01602001516001600160f81b03191614614def5760009150614df7565b600101614d9c565b5095945050505050565b614e09615869565b6000614e13615869565b614e1b61595c565b614e276149d98661523b565b90506000805b614e36836152aa565b15614af75780614e5c57614e4c614a46846152cb565b6001600160a01b03168452614f06565b8060011415614e8457614e71614a46846152cb565b6001600160a01b03166020850152614f06565b8060021415614ea657614e99614a03846152cb565b60ff166040850152614f06565b8060031415614ec557614ebb614a03846152cb565b6060850152614f06565b8060041415614ee457614eda614a03846152cb565b6080850152614f06565b8060051415614aea57614ef9614a03846152cb565b60ff1660a0850152600191505b600101614e2d565b614f16615935565b6000614f20615935565b614f2861595c565b614f346149d98661523b565b90506000805b614f43836152aa565b15614af75780614f6957614f59614a46846152cb565b6001600160a01b03168452614fd2565b8060011415614f9157614f7e614a46846152cb565b6001600160a01b03166020850152614fd2565b8060021415614fb057614fa6614a03846152cb565b6040850152614fd2565b8060031415614aea57614fc5614a03846152cb565b60ff166060850152600191505b600101614f3a565b614fe26158f1565b6000614fec6158f1565b614ff461595c565b6150006149d98661523b565b90506000805b61500f836152aa565b15614af7578061503557615025614a46846152cb565b6001600160a01b03168452615123565b806001141561505d5761504a614a46846152cb565b6001600160a01b03166020850152615123565b806002141561507c57615072614a03846152cb565b6040850152615123565b806003141561509b57615091614a03846152cb565b6060850152615123565b80600414156150ba576150b0614a03846152cb565b6080850152615123565b80600514156150dc576150cf614a03846152cb565b60ff1660a0850152615123565b80600614156150fb576150f1614a03846152cb565b60c0850152615123565b8060071415614aea57615110614a03846152cb565b6001600160401b031660e0850152600191505b600101615006565b615133615869565b600061513d615869565b61514561595c565b6151516149d98661523b565b90506000805b615160836152aa565b15614af7578061518657615176614a46846152cb565b6001600160a01b03168452615233565b80600114156151ae5761519b614a46846152cb565b6001600160a01b03166020850152615233565b80600214156151cd576151c3614a03846152cb565b6040850152615233565b80600314156151ec576151e2614a03846152cb565b6060850152615233565b806004141561520b57615201614a03846152cb565b6080850152615233565b8060051415614aea57615220614a03846152cb565b6001600160401b031660a0850152600191505b600101615157565b61524361597c565b506040805180820190915281518152602082810190820152919050565b61526861595c565b61527182615699565b61527a57600080fd5b600061528983602001516156d3565b60208085015160408051808201909152868152920190820152915050919050565b60006152b461597c565b505080518051602091820151919092015191011190565b6152d361597c565b6152dc826152aa565b6152e557600080fd5b602082015160006152f582615736565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061532e57508151602110155b61533757600080fd5b600061534683602001516156d3565b905080836000015110156153a1576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015613a0e57506020919091036101000a90049392505050565b80516000906015146153df57600080fd5b6113eb82615319565b60608151600114801561541a5750607f60f81b8260008151811061540857fe5b01602001516001600160f81b03191611155b1561542657508061157f565b6113eb6154388351608060ff166155a1565b83615524565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416615482575060186154a6565b6fffffffffffffffffffffffffffffffff1984166154a2575060106154a6565b5060005b60208110156154dc578181815181106154bb57fe5b01602001516001600160f81b031916156154d4576154dc565b6001016154a6565b60008160200390506060816040519080825280601f01601f191660200182016040528015615511576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b8183101561555557805183526020928301920161553d565b50855184518101855292509050808201602086015b8183101561558257805183526020928301920161556a565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106155f1576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b6040805160018082528183019092526060916020820181803683370190505090506037841161564b5782840160f81b8160008151811061562d57fe5b60200101906001600160f81b031916908160001a90535090506113eb565b60606156568561543e565b90508381510160370160f81b8260008151811061566f57fe5b60200101906001600160f81b031916908160001a9053506156908282615524565b95945050505050565b80516000906156aa5750600061157f565b6020820151805160001a9060c08210156156c95760009250505061157f565b5060019392505050565b8051600090811a60808110156156ed57600091505061157f565b60b8811080615708575060c08110801590615708575060f881105b1561571757600191505061157f565b60c081101561572b5760b51901905061157f565b60f51901905061157f565b80516000908190811a60808110156157515760019150615862565b60b881101561576657607e1981019150615862565b60c08110156157e057600060b78203600186019550806020036101000a8651049150600181018201935050808310156157da576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50615862565b60f88110156157f55760be1981019150615862565b600060f78203600186019550806020036101000a865104915060018101820193505080831015615860576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c081019190915290565b604080518082019091526000808252602082015290565b6040805161010081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081019190915290565b60408051608081018252600080825260208201819052918101829052606081019190915290565b604051806040016040528061596f61597c565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe6d73672e76616c7565206d757374206265204e202a203165313020616e642067726561746572207468616e2073756d206f66206d696e6952656c617946656520616e64206d6972726f724665656f6e6c79206265703230206f776e65722063616e20617070726f766520746869732062696e64207265717565737465787069726554696d65206d7573742062652074776f206d696e75746573206c6174657220616e64206f6e6520646179206561726c69657272656c6179466565206d757374206265204e202a203165313020616e642067726561746572207468616e206d696e6952656c6179466565636f6e74616374206164647265737320646f65736e277420657175616c20746f2074686520636f6e7472616374206164647265737320696e2062696e64207265717565737473796d626f6c2073686f756c64206f6e6c7920636f6e7461696e20616c70686162657420616e64206e756d626572536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f776d73672e76616c7565206d757374206265204e202a203165313020616e64206e6f206c6573732073756d206f66206d696e6952656c617946656520616e642073796e63466565746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e747261637474686520626570323020746f6b656e20697320696e206d6972726f722070656e64696e6720737461747573a2646970667358221220ab8dfdd9914857b55fc1c6e49c911de2d861380dc81004c5ff0a4e67915545b764736f6c63430006040033", - }, - { - ContractAddr: TokenHubContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/af4f3993303213052222f55c721e661862d19638", - Code: "60806040526004361061031e5760003560e01c80639a99b4f0116101ab578063bd466461116100f7578063f014847211610095578063fc1a598f1161006f578063fc1a598f14610cb3578063fc3e590814610996578063fd6a687914610ce6578063ff9c00271461068657610366565b8063f014847214610c74578063f9a2bbc714610c89578063fa9e915914610c9e57610366565b8063d9e6dae9116100d1578063d9e6dae914610608578063dc927faf14610c35578063e1c7392a14610c4a578063ebf71d5314610c5f57610366565b8063bd46646114610b68578063c81b166214610b9b578063c8509d8114610bb057610366565b8063aa7415f511610164578063b99328c51161013e578063b99328c514610ad2578063b9fd21e314610b0b578063ba35ead614610b20578063bbface1f14610b3557610366565b8063aa7415f5146109ab578063ab51bb96146109f2578063ac43175114610a0757610366565b80639a99b4f0146109095780639dc0926214610942578063a1a11bf514610957578063a496fba21461096c578063a78abc1614610981578063a7c9f02d1461099657610366565b8063613684751161026a57806375d47a0a116102235780638b87b21f116101fd5780638b87b21f146105875780638eff336c146108a057806396713da9146108df5780639a854bbd146108f457610366565b806375d47a0a146107f15780637942fd0514610806578063831d65d11461081b57610366565b8063613684751461060857806366dea52a146106865780636e0565201461069b5780636e47b482146107c757806370fd5bad1461068657806371d30863146107dc57610366565b806343a368b9116102d757806350432d32116102b157806350432d321461061d57806351e806721461063257806359b92789146106475780635d499b1b1461067157610366565b806343a368b9146105c7578063493279b1146105dc5780634bf6c8821461060857610366565b80630bee7a671461036b5780631182b87514610399578063149d14d9146104935780633d713223146104ba5780633dffc3871461058757806343756e5c146105b257610366565b36610366573415610364576040805133815234602082015281517f6c98249d85d88c3753a04a22230f595e4dc8d3dc86c34af35deeeedc861b89db929181900390910190a15b005b600080fd5b34801561037757600080fd5b50610380610cfb565b6040805163ffffffff9092168252519081900360200190f35b3480156103a557600080fd5b5061041e600480360360408110156103bc57600080fd5b60ff8235169190810190604081016020820135600160201b8111156103e057600080fd5b8201836020820111156103f257600080fd5b803590602001918460018302840111600160201b8311171561041357600080fd5b509092509050610d00565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610458578181015183820152602001610440565b50505050905090810190601f1680156104855780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561049f57600080fd5b506104a8610e2e565b60408051918252519081900360200190f35b3480156104c657600080fd5b5061056b600480360360208110156104dd57600080fd5b810190602081018135600160201b8111156104f757600080fd5b82018360208201111561050957600080fd5b803590602001918460018302840111600160201b8311171561052a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610e34945050505050565b604080516001600160a01b039092168252519081900360200190f35b34801561059357600080fd5b5061059c610e58565b6040805160ff9092168252519081900360200190f35b3480156105be57600080fd5b5061056b610e5d565b3480156105d357600080fd5b506104a8610e63565b3480156105e857600080fd5b506105f1610e6f565b6040805161ffff9092168252519081900360200190f35b34801561061457600080fd5b5061059c610e74565b34801561062957600080fd5b506104a8610e79565b34801561063e57600080fd5b5061056b610e84565b34801561065357600080fd5b5061056b6004803603602081101561066a57600080fd5b5035610e8a565b34801561067d57600080fd5b506104a8610ea5565b34801561069257600080fd5b5061059c610eae565b6107b3600480360360808110156106b157600080fd5b810190602081018135600160201b8111156106cb57600080fd5b8201836020820111156106dd57600080fd5b803590602001918460208302840111600160201b831117156106fe57600080fd5b919390929091602081019035600160201b81111561071b57600080fd5b82018360208201111561072d57600080fd5b803590602001918460208302840111600160201b8311171561074e57600080fd5b919390929091602081019035600160201b81111561076b57600080fd5b82018360208201111561077d57600080fd5b803590602001918460208302840111600160201b8311171561079e57600080fd5b91935091503567ffffffffffffffff16610eb3565b604080519115158252519081900360200190f35b3480156107d357600080fd5b5061056b611388565b3480156107e857600080fd5b506104a861138e565b3480156107fd57600080fd5b5061056b611394565b34801561081257600080fd5b5061059c61139a565b34801561082757600080fd5b506103646004803603604081101561083e57600080fd5b60ff8235169190810190604081016020820135600160201b81111561086257600080fd5b82018360208201111561087457600080fd5b803590602001918460018302840111600160201b8311171561089557600080fd5b50909250905061139f565b3480156108ac57600080fd5b50610364600480360360608110156108c357600080fd5b508035906001600160a01b0360208201351690604001356114e8565b3480156108eb57600080fd5b5061059c61156e565b34801561090057600080fd5b506104a8611573565b34801561091557600080fd5b506104a86004803603604081101561092c57600080fd5b506001600160a01b03813516906020013561157f565b34801561094e57600080fd5b5061056b6116bd565b34801561096357600080fd5b5061056b6116c3565b34801561097857600080fd5b5061059c6116c9565b34801561098d57600080fd5b506107b36116ce565b3480156109a257600080fd5b5061059c6116d7565b6107b3600480360360808110156109c157600080fd5b5080356001600160a01b03908116916020810135909116906040810135906060013567ffffffffffffffff166116dc565b3480156109fe57600080fd5b506103806116c9565b348015610a1357600080fd5b5061036460048036036040811015610a2a57600080fd5b810190602081018135600160201b811115610a4457600080fd5b820183602082011115610a5657600080fd5b803590602001918460018302840111600160201b83111715610a7757600080fd5b919390929091602081019035600160201b811115610a9457600080fd5b820183602082011115610aa657600080fd5b803590602001918460018302840111600160201b83111715610ac757600080fd5b509092509050611d9d565b348015610ade57600080fd5b5061036460048036036040811015610af557600080fd5b50803590602001356001600160a01b031661200c565b348015610b1757600080fd5b506104a8612082565b348015610b2c57600080fd5b506104a861208c565b348015610b4157600080fd5b506104a860048036036020811015610b5857600080fd5b50356001600160a01b0316612092565b348015610b7457600080fd5b506104a860048036036020811015610b8b57600080fd5b50356001600160a01b03166120a4565b348015610ba757600080fd5b5061056b6120bf565b348015610bbc57600080fd5b5061036460048036036040811015610bd357600080fd5b60ff8235169190810190604081016020820135600160201b811115610bf757600080fd5b820183602082011115610c0957600080fd5b803590602001918460018302840111600160201b83111715610c2a57600080fd5b5090925090506120c5565b348015610c4157600080fd5b5061056b612195565b348015610c5657600080fd5b5061036461219b565b348015610c6b57600080fd5b5061059c61223b565b348015610c8057600080fd5b5061059c612240565b348015610c9557600080fd5b5061056b612245565b348015610caa57600080fd5b506104a861224b565b348015610cbf57600080fd5b5061041e60048036036020811015610cd657600080fd5b50356001600160a01b0316612251565b348015610cf257600080fd5b5061056b612378565b606481565b60005460609060ff16610d48576040805162461bcd60e51b815260206004820152601960248201526000805160206147a8833981519152604482015290519081900360640190fd5b3361200014610d885760405162461bcd60e51b815260040180806020018281038252602f815260200180614756602f913960400191505060405180910390fd5b60ff841660021415610dda57610dd383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061237e92505050565b9050610e27565b6040805162461bcd60e51b815260206004820152601860248201527f756e7265636f676e697a65642073796e207061636b6167650000000000000000604482015290519081900360640190fd5b9392505050565b60015490565b6020818101516000908152600490915260409020546001600160a01b03165b919050565b600181565b61100181565b670de0b6b3a764000081565b603881565b600881565b66071afd498d000081565b61200081565b6000908152600460205260409020546001600160a01b031690565b6402540be40081565b600281565b6000805460ff16610ef9576040805162461bcd60e51b815260206004820152601960248201526000805160206147a8833981519152604482015290519081900360640190fd5b868514610f375760405162461bcd60e51b815260040180806020018281038252603b81526020018061471b603b913960400191505060405180910390fd5b868314610f755760405162461bcd60e51b815260040180806020018281038252603f8152602001806145ee603f913960400191505060405180910390fd5b426078018267ffffffffffffffff161015610fc15760405162461bcd60e51b81526004018080602001828103825260248152602001806144de6024913960400191505060405180910390fd5b6402540be4003406156110055760405162461bcd60e51b815260040180806020018281038252604081526020018061481e6040913960400191505060405180910390fd5b60408051868152602080880282010190915285906000908190606090848015611038578160200160208202803683370190505b50905060005b84811015611113576402540be4008b8b8381811061105857fe5b905060200201358161106657fe5b06156110a35760405162461bcd60e51b815260040180806020018281038252603c81526020018061462d603c913960400191505060405180910390fd5b6110c88b8b838181106110b257fe5b90506020020135856124a290919063ffffffff16565b93506110f46402540be4008c8c848181106110df57fe5b905060200201356124fc90919063ffffffff16565b82828151811061110057fe5b602090810291909101015260010161103e565b506001546111389061112b908663ffffffff61253e16565b849063ffffffff6124a216565b3410156111765760405162461bcd60e51b81526004018080602001828103825260568152602001806147c86056913960600191505060405180910390fd5b611186348463ffffffff61259716565b9150611190614337565b6040518060c001604052806221272160e91b60001b815260200160006001600160a01b031681526020018381526020018e8e808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505050908252506040805160208c810282810182019093528c82529283019290918d918d91829185019084908082843760009201919091525050509082525067ffffffffffffffff8916602090910152905061200063f7a251d76003611254846125d9565b611269876402540be40063ffffffff6124fc16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156112c75781810151838201526020016112af565b50505050905090810190601f1680156112f45780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561131557600080fd5b505af1158015611329573d6000803e3d6000fd5b505060408051600081523360208201528082018890526060810187905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a15060019c9b505050505050505050505050565b61100581565b60015481565b61100881565b600b81565b60005460ff166113e4576040805162461bcd60e51b815260206004820152601960248201526000805160206147a8833981519152604482015290519081900360640190fd5b33612000146114245760405162461bcd60e51b815260040180806020018281038252602f815260200180614756602f913960400191505060405180910390fd5b60ff8316600314156114745761146f82828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061289492505050565b6114e3565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a15b505050565b33611008146115285760405162461bcd60e51b81526004018080602001828103825260238152602001806147856023913960400191505060405180910390fd5b600083815260046020908152604080832080546001600160a01b039096166001600160a01b03199096168617905593825260038152838220949094556002909352912055565b600981565b677ce66c50e284000081565b6000805460ff166115c5576040805162461bcd60e51b815260206004820152601960248201526000805160206147a8833981519152604482015290519081900360640190fd5b33611005146116055760405162461bcd60e51b815260040180806020018281038252602f815260200180614451602f913960400191505060405180910390fd5b60004783106116145747611616565b825b9050670de0b6b3a76400008111156116325760009150506116b7565b80156116b4576040516001600160a01b0385169082156108fc029083906000818181858888f1935050505015801561166e573d6000803e3d6000fd5b50604080516001600160a01b03861681526020810183905281517ff8b71c64315fc33b2ead2adfa487955065152a8ac33d9d5193aafd7f45dc15a0929181900390910190a15b90505b92915050565b61100781565b61100681565b600081565b60005460ff1681565b600381565b6000805460ff16611722576040805162461bcd60e51b815260206004820152601960248201526000805160206147a8833981519152604482015290519081900360640190fd5b426078018267ffffffffffffffff16101561176e5760405162461bcd60e51b81526004018080602001828103825260248152602001806144de6024913960400191505060405180910390fd5b6402540be4003406156117b25760405162461bcd60e51b815260040180806020018281038252604081526020018061481e6040913960400191505060405180910390fd5b600080806001600160a01b038816611891576001546117d890879063ffffffff6124a216565b3410156118165760405162461bcd60e51b81526004018080602001828103825260618152602001806145686061913960800191505060405180910390fd5b6402540be40086061561185a5760405162461bcd60e51b815260040180806020018281038252603c81526020018061462d603c913960400191505060405180910390fd5b61186a348763ffffffff61259716565b9050611881866402540be40063ffffffff6124fc16565b6221272160e91b93509150611b34565b6001600160a01b0388166000908152600360205260409020549250826118e85760405162461bcd60e51b81526004018080602001828103825260318152602001806145376031913960400191505060405180910390fd5b6001543410156119295760405162461bcd60e51b815260040180806020018281038252603f81526020018061468a603f913960400191505060405180910390fd5b506001600160a01b038716600090815260026020526040902054349060088111158061197457506008811180156119745750611972876007198301600a0a63ffffffff6128f016565b155b6119af5760405162461bcd60e51b815260040180806020018281038252603c81526020018061462d603c913960400191505060405180910390fd5b6119b98782612932565b92506119c484612972565b15611a0c576305f5e100831015611a0c5760405162461bcd60e51b815260040180806020018281038252603a815260200180614480603a913960400191505060405180910390fd5b600881101580611a265750600881108015611a2657508683115b611a615760405162461bcd60e51b81526004018080602001828103825260258152602001806145c96025913960400191505060405180910390fd5b677ce66c50e2840000831115611aa85760405162461bcd60e51b81526004018080602001828103825260358152602001806145026035913960400191505060405180910390fd5b604080516323b872dd60e01b81523360048201523060248201526044810189905290516001600160a01b038b16916323b872dd9160648083019260209291908290030181600087803b158015611afd57600080fd5b505af1158015611b11573d6000803e3d6000fd5b505050506040513d6020811015611b2757600080fd5b5051611b3257600080fd5b505b611b3c614337565b6040805160c0810182528581526001600160a01b038b166020820152815160018082528184018452919283019181602001602082028036833750505081526040805160018082528183019092526020928301929091908083019080368337505050815260408051600180825281830190925260209283019290919080830190803683370190505081526020018767ffffffffffffffff168152509050828160400151600081518110611bea57fe5b602002602001018181525050878160600151600081518110611c0857fe5b60200260200101906001600160a01b031690816001600160a01b031681525050338160800151600081518110611c3a57fe5b6001600160a01b039092166020928302919091019091015261200063f7a251d76003611c65846125d9565b611c7a866402540be40063ffffffff6124fc16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611cd8578181015183820152602001611cc0565b50505050905090810190601f168015611d055780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015611d2657600080fd5b505af1158015611d3a573d6000803e3d6000fd5b5050604080516001600160a01b038d1681523360208201528082018b90526060810186905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a150600198975050505050505050565b3361100714611ddd5760405162461bcd60e51b815260040180806020018281038252602e8152602001806146c9602e913960400191505060405180910390fd5b60208114611e32576040805162461bcd60e51b815260206004820152601b60248201527f65787065637465642076616c7565206c656e6774682069732033320000000000604482015290519081900360640190fd5b606084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8801819004810282018101909252868152939450606093925086915085908190840183828082843760009201919091525050505060208301519091506772656c617946656560c01b811415611f3a576020820151670de0b6b3a76400008111801590611ee157506402540be4008106155b611f32576040805162461bcd60e51b815260206004820152601960248201527f7468652072656c6179466565206f7574206f662072616e676500000000000000604482015290519081900360640190fd5b600155611f77565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a878787876040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050505050565b336110081461204c5760405162461bcd60e51b81526004018080602001828103825260238152602001806147856023913960400191505060405180910390fd5b600091825260046020908152604080842080546001600160a01b03191690556001600160a01b0392909216835260039052812055565b6221272160e91b81565b61c35081565b60026020526000908152604090205481565b6001600160a01b031660009081526003602052604090205490565b61100281565b60005460ff1661210a576040805162461bcd60e51b815260206004820152601960248201526000805160206147a8833981519152604482015290519081900360640190fd5b336120001461214a5760405162461bcd60e51b815260040180806020018281038252602f815260200180614756602f913960400191505060405180910390fd5b60ff8316600314156114745761146f82828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612a7892505050565b61100381565b60005460ff16156121f3576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b66071afd498d000060019081556000808052600260205260127fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b55805460ff19169091179055565b600481565b600581565b61100081565b61271081565b6001600160a01b03811660009081526003602090815260409182902054825182815280840190935260609290918391906020820181803683375050506020810183905290506000805b60208160ff1610156122e157828160ff16815181106122b557fe5b01602001516001600160f81b031916156122d4576001909101906122d9565b6122e1565b60010161229a565b5060608160ff166040519080825280601f01601f191660200182016040528015612312576020820181803683370190505b50905060005b8260ff168160ff16101561236e57838160ff168151811061233557fe5b602001015160f81c60f81b828260ff168151811061234f57fe5b60200101906001600160f81b031916908160001a905350600101612318565b5095945050505050565b61100481565b6060612388614383565b600061239384612b76565b91509150806123e9576040805162461bcd60e51b815260206004820152601f60248201527f756e7265636f676e697a6564207472616e73666572496e207061636b61676500604482015290519081900360640190fd5b60006123f483612cb5565b905063ffffffff811615612488576040808401516020808601516001600160a01b0316600090815260029091529182205461242f9190612932565b90506124396143b8565b60405180608001604052808660000151815260200183815260200186608001516001600160a01b031681526020018463ffffffff16815250905061247c81613002565b95505050505050610e53565b50506040805160008152602081019091529150610e539050565b6000828201838110156116b4576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60006116b483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506130de565b60008261254d575060006116b7565b8282028284828161255a57fe5b04146116b45760405162461bcd60e51b81526004018080602001828103825260218152602001806146696021913960400191505060405180910390fd5b60006116b483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613180565b60408051600680825260e08201909252606091829190816020015b60608152602001906001900390816125f45750508351909150612616906131da565b8160008151811061262357fe5b602002602001018190525061264483602001516001600160a01b03166131ed565b8160018151811061265157fe5b60200260200101819052506000836040015151905060608160405190808252806020026020018201604052801561269c57816020015b60608152602001906001900390816126875790505b50905060005b828110156126e9576126ca866040015182815181106126bd57fe5b60200260200101516131da565b8282815181106126d657fe5b60209081029190910101526001016126a2565b506126f381613210565b8360028151811061270057fe5b602002602001018190525060608260405190808252806020026020018201604052801561274157816020015b606081526020019060019003908161272c5790505b50905060005b83811015612797576127788760600151828151811061276257fe5b60200260200101516001600160a01b03166131ed565b82828151811061278457fe5b6020908102919091010152600101612747565b506127a181613210565b846003815181106127ae57fe5b60200260200101819052506060836040519080825280602002602001820160405280156127ef57816020015b60608152602001906001900390816127da5790505b50905060005b8481101561282f576128108860800151828151811061276257fe5b82828151811061281c57fe5b60209081029190910101526001016127f5565b5061283981613210565b8560048151811061284657fe5b60200260200101819052506128688760a0015167ffffffffffffffff166131da565b8560058151811061287557fe5b602002602001018190525061288985613210565b979650505050505050565b61289c6143df565b60006128a78361329a565b91509150806128e75760405162461bcd60e51b81526004018080602001828103825260248152602001806146f76024913960400191505060405180910390fd5b6114e382613465565b60006116b483836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f00000000000000008152506138e9565b6000600882111561295b57612954836007198401600a0a63ffffffff6124fc16565b90506116b7565b6116b4836008849003600a0a63ffffffff61253e16565b604080516020808252818301909252600091606091906020820181803683375050506020810184905290506000805b60208160ff1610156129e857828160ff16815181106129bc57fe5b01602001516001600160f81b031916156129db576001909101906129e0565b6129e8565b6001016129a1565b50600760ff82161015612a0057600092505050610e53565b816005820360ff1681518110612a1257fe5b6020910101516001600160f81b031916602d60f81b14612a3757600092505050610e53565b816001820360ff1681518110612a4957fe5b6020910101516001600160f81b031916604d60f81b14612a6e57600092505050610e53565b5060019392505050565b612a80614337565b6000612a8b8361394b565b9150915080612acb5760405162461bcd60e51b81526004018080602001828103825260248152602001806144ba6024913960400191505060405180910390fd5b612ad36143df565b602080840180516001600160a01b0390811684526040808701518585015291511660009081526002909252812054905b846040015151811015612b5457612b3185604001518281518110612b2357fe5b602002602001015183613baf565b85604001518281518110612b4157fe5b6020908102919091010152600101612b03565b506080840151604083015260056060830152612b6f82613465565b5050505050565b612b7e614383565b6000612b88614383565b612b90614416565b612ba1612b9c86613be8565b613c0d565b90506000805b612bb083613c57565b15612ca85780612bd257612bcb612bc684613c78565b613cc6565b8452612ca0565b8060011415612bff57612bec612be784613c78565b613d7d565b6001600160a01b03166020850152612ca0565b8060021415612c1e57612c14612bc684613c78565b6040850152612ca0565b8060031415612c4657612c33612be784613c78565b6001600160a01b03166060850152612ca0565b8060041415612c6e57612c5b612be784613c78565b6001600160a01b03166080850152612ca0565b8060051415612c9b57612c83612bc684613c78565b67ffffffffffffffff1660a085015260019150612ca0565b612ca8565b600101612ba7565b5091935090915050915091565b60208101516000906001600160a01b0316612dec578160a0015167ffffffffffffffff16421115612ce857506001610e53565b8160400151471015612cfc57506003610e53565b606082015160408084015190516000926001600160a01b0316916127109184818181858888f193505050503d8060008114612d53576040519150601f19603f3d011682016040523d82523d6000602084013e612d58565b606091505b5050905080612d6b575060049050610e53565b7f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5983602001518460600151856040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a15060009050610e53565b8160a0015167ffffffffffffffff16421115612e0a57506001610e53565b81516020808401516001600160a01b031660009081526003909152604090205414612e3757506002610e53565b602080830151604080516370a0823160e01b815230600482015290516000936001600160a01b03909316926370a082319261c3509260248083019392829003018187803b158015612e8757600080fd5b5086fa158015612e9b573d6000803e3d6000fd5b50505050506040513d6020811015612eb257600080fd5b50516040840151909150811015612ecd575060039050610e53565b600083602001516001600160a01b031663a9059cbb61c350866060015187604001516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b158015612f3e57600080fd5b5087f1158015612f52573d6000803e3d6000fd5b50505050506040513d6020811015612f6957600080fd5b505190508015612ff6577f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5984602001518560600151866040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a15060009150610e539050565b5060059150610e539050565b60408051600480825260a08201909252606091829190816020015b606081526020019060019003908161301d575050835190915061303f906131da565b8160008151811061304c57fe5b602002602001018190525061306483602001516131da565b8160018151811061307157fe5b602002602001018190525061309283604001516001600160a01b03166131ed565b8160028151811061309f57fe5b60200260200101819052506130bd836060015163ffffffff166131da565b816003815181106130ca57fe5b6020026020010181905250610e2781613210565b6000818361316a5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561312f578181015183820152602001613117565b50505050905090810190601f16801561315c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161317657fe5b0495945050505050565b600081848411156131d25760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561312f578181015183820152602001613117565b505050900390565b60606116b76131e883613d97565b613e7d565b60408051600560a21b8318601482015260348101909152606090610e2781613e7d565b60608151600014156132315750604080516000815260208101909152610e53565b60608260008151811061324057fe5b602002602001015190506000600190505b8351811015613281576132778285838151811061326a57fe5b6020026020010151613ecf565b9150600101613251565b50610e27613294825160c060ff16613f4c565b82613ecf565b6132a26143df565b60006132ac6143df565b6132b4614416565b6132c0612b9c86613be8565b90506000805b6132cf83613c57565b15612ca857806132f5576132e5612be784613c78565b6001600160a01b0316845261345d565b806001141561339657606061331161330c85613c78565b614044565b9050805160405190808252806020026020018201604052801561333e578160200160208202803683370190505b50602086015260005b815181101561338f5761336c82828151811061335f57fe5b6020026020010151613cc6565b8660200151828151811061337c57fe5b6020908102919091010152600101613347565b505061345d565b80600214156134385760606133ad61330c85613c78565b905080516040519080825280602002602001820160405280156133da578160200160208202803683370190505b50604086015260005b815181101561338f576134088282815181106133fb57fe5b6020026020010151613d7d565b8660400151828151811061341857fe5b6001600160a01b03909216602092830291909101909101526001016133e3565b8060031415612c9b5761344d612bc684613c78565b63ffffffff166060850152600191505b6001016132c6565b80516001600160a01b031661368f5760005b8160200151518110156136895760008260400151828151811061349657fe5b60200260200101516001600160a01b0316612710846020015184815181106134ba57fe5b60209081029190910101516040516000818181858888f193505050503d8060008114613502576040519150601f19603f3d011682016040523d82523d6000602084013e613507565b606091505b50509050806135ca577f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061354657fe5b60200260200101518560200151858151811061355e57fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a1613680565b7fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a83600001518460400151848151811061360057fe5b60200260200101518560200151858151811061361857fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b50600101613477565b506138e6565b60005b8160200151518110156138e457600082600001516001600160a01b031663a9059cbb61c350856040015185815181106136c757fe5b6020026020010151866020015186815181106136df57fe5b60200260200101516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b15801561373657600080fd5b5087f115801561374a573d6000803e3d6000fd5b50505050506040513d602081101561376157600080fd5b505190508015613825577fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a8360000151846040015184815181106137a157fe5b6020026020010151856020015185815181106137b957fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a16138db565b7f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061385b57fe5b60200260200101518560200151858151811061387357fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b50600101613692565b505b50565b600081836139385760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561312f578181015183820152602001613117565b5082848161394257fe5b06949350505050565b613953614337565b600061395d614337565b613965614416565b613971612b9c86613be8565b90506000805b61398083613c57565b15612ca8578061399d57613996612bc684613c78565b8452613ba7565b80600114156139c5576139b2612be784613c78565b6001600160a01b03166020850152613ba7565b8060021415613a545760606139dc61330c85613c78565b90508051604051908082528060200260200182016040528015613a09578160200160208202803683370190505b50604086015260005b8151811015613a4d57613a2a82828151811061335f57fe5b86604001518281518110613a3a57fe5b6020908102919091010152600101613a12565b5050613ba7565b8060031415613ae9576060613a6b61330c85613c78565b90508051604051908082528060200260200182016040528015613a98578160200160208202803683370190505b50606086015260005b8151811015613a4d57613ab98282815181106133fb57fe5b86606001518281518110613ac957fe5b6001600160a01b0390921660209283029190910190910152600101613aa1565b8060041415613b7e576060613b0061330c85613c78565b90508051604051908082528060200260200182016040528015613b2d578160200160208202803683370190505b50608086015260005b8151811015613a4d57613b4e8282815181106133fb57fe5b86608001518281518110613b5e57fe5b6001600160a01b0390921660209283029190910190910152600101613b36565b8060051415612c9b57613b93612bc684613c78565b67ffffffffffffffff1660a0850152600191505b600101613977565b60006008821115613bd157612954836007198401600a0a63ffffffff61253e16565b6116b4836008849003600a0a63ffffffff6124fc16565b613bf0614436565b506040805180820190915281518152602082810190820152919050565b613c15614416565b613c1e82614115565b613c2757600080fd5b6000613c368360200151614145565b60208085015160408051808201909152868152920190820152915050919050565b6000613c61614436565b505080518051602091820151919092015191011190565b613c80614436565b613c8982613c57565b613c9257600080fd5b60208201516000613ca2826141a8565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590613cdb57508151602110155b613ce457600080fd5b6000613cf38360200151614145565b90508083600001511015613d4e576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015613d7457826020036101000a820491505b50949350505050565b8051600090601514613d8e57600080fd5b6116b782613cc6565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416613ddb57506018613dff565b6fffffffffffffffffffffffffffffffff198416613dfb57506010613dff565b5060005b6020811015613e3557818181518110613e1457fe5b01602001516001600160f81b03191615613e2d57613e35565b600101613dff565b60008160200390506060816040519080825280601f01601f191660200182016040528015613e6a576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015613eaf5750607f60f81b82600081518110613e9d57fe5b01602001516001600160f81b03191611155b15613ebb575080610e53565b6116b7613ecd8351608060ff16613f4c565b835b6060806040519050835180825260208201818101602087015b81831015613f00578051835260209283019201613ee8565b50855184518101855292509050808201602086015b81831015613f2d578051835260209283019201613f15565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310613f9c576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b60408051600180825281830190925260609160208201818036833701905050905060378411613ff65782840160f81b81600081518110613fd857fe5b60200101906001600160f81b031916908160001a90535090506116b7565b606061400185613d97565b90508381510160370160f81b8260008151811061401a57fe5b60200101906001600160f81b031916908160001a90535061403b8282613ecf565b95945050505050565b606061404f82614115565b61405857600080fd5b6000614063836142db565b90506060816040519080825280602002602001820160405280156140a157816020015b61408e614436565b8152602001906001900390816140865790505b50905060006140b38560200151614145565b60208601510190506000805b8481101561410a576140d0836141a8565b91506040518060400160405280838152602001848152508482815181106140f357fe5b6020908102919091010152918101916001016140bf565b509195945050505050565b805160009061412657506000610e53565b6020820151805160001a9060c0821015612a6e57600092505050610e53565b8051600090811a608081101561415f576000915050610e53565b60b881108061417a575060c0811080159061417a575060f881105b15614189576001915050610e53565b60c081101561419d5760b519019050610e53565b60f519019050610e53565b80516000908190811a60808110156141c357600191506142d4565b60b88110156141d857607e19810191506142d4565b60c081101561425257600060b78203600186019550806020036101000a86510491506001810182019350508083101561424c576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b506142d4565b60f88110156142675760be19810191506142d4565b600060f78203600186019550806020036101000a8651049150600181018201935050808310156142d2576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b80516000906142ec57506000610e53565b600080905060006143008460200151614145565b602085015185519181019250015b8082101561432e5761431f826141a8565b6001909301929091019061430e565b50909392505050565b6040518060c001604052806000801916815260200160006001600160a01b03168152602001606081526020016060815260200160608152602001600067ffffffffffffffff1681525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b60408051608081018252600080825260208201819052918101829052606081019190915290565b604051806080016040528060006001600160a01b031681526020016060815260200160608152602001600063ffffffff1681525090565b6040518060400160405280614429614436565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe746865206d6573736167652073656e646572206d75737420626520696e63656e746976697a6520636f6e7472616374466f72206d696e69546f6b656e2c20746865207472616e7366657220616d6f756e74206d757374206e6f74206265206c657373207468616e2031756e7265636f676e697a6564207472616e736665724f75742073796e207061636b61676565787069726554696d65206d7573742062652074776f206d696e75746573206c61746572616d6f756e7420697320746f6f206c617267652c20657863656564206d6178696d756d206265703220746f6b656e20616d6f756e7474686520636f6e747261637420686173206e6f74206265656e20626f756e6420746f20616e79206265703220746f6b656e726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e736665724f757420424e4220616d6f756e7420616e64206d696e696d756d2072656c6179466565616d6f756e7420697320746f6f206c617267652c2075696e74323536206f766572666c6f774c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620726566756e644164647273696e76616c6964207472616e7366657220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e20746865206d696e696d756d2072656c6179466565746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374756e7265636f676e697a6564207472616e736665724f75742061636b207061636b6167654c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620616d6f756e7473746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d73672073656e646572206d75737420626520746f6b656e4d616e6167657274686520636f6e7472616374206e6f7420696e69742079657400000000000000726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e7366657220424e4220616d6f756e7420616e642072656c6179466565696e76616c696420726563656976656420424e4220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6ea2646970667358221220c72f4ad63f8f84b0b15ae9d71fffb0d09b3b3b97a728e64b385305ecb6431b0e64736f6c63430006040033", - }, - { - ContractAddr: RelayerIncentivizeContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/af4f3993303213052222f55c721e661862d19638", - Code: "6080604052600436106102815760003560e01c8063930e1b091161014f578063bd4cc830116100c1578063e75d72c71161007a578063e75d72c7146107b5578063e89a3020146107e8578063f9a2bbc714610812578063fc3e590814610827578063fd6a68791461083c578063fdd31fcd1461085157610288565b8063bd4cc83014610722578063c81b16621461074c578063d0ab528a14610761578063dc927faf14610776578063dcae76ab1461078b578063e1c7392a146107a057610288565b8063a78abc1611610113578063a78abc16146105d3578063a7c6a59d146105e8578063ab51bb96146105fd578063ac43175114610612578063ace9fcc2146106e3578063af400681146106f857610288565b8063930e1b091461054c57806396713da91461057f5780639dc0926214610594578063a1a11bf5146105a9578063a3c3c0ad146105be57610288565b806343756e5c116101f35780636f93d2e6116101ac5780636f93d2e61461048457806370fd5bad146104e357806374f2272d146104f857806375d47a0a1461050d5780637942fd05146105225780637e146cc51461053757610288565b806343756e5c146103ef578063493279b1146104045780634bf6c8821461043057806351e8067214610445578063541333071461045a5780636e47b4821461046f57610288565b806312950c461161024557806312950c46146103215780631b20087c146103365780631c6433121461034b5780633a9756121461028d5780633dffc3871461039157806340bb43c0146103bc57610288565b8063081e9d131461028d57806308f2ec06146102b4578063093f2fc4146102c95780630bee7a67146102de57806310e06a761461030c57610288565b3661028857005b600080fd5b34801561029957600080fd5b506102a2610884565b60408051918252519081900360200190f35b3480156102c057600080fd5b506102a2610889565b3480156102d557600080fd5b506102a261088e565b3480156102ea57600080fd5b506102f3610893565b6040805163ffffffff9092168252519081900360200190f35b34801561031857600080fd5b506102a2610898565b34801561032d57600080fd5b506102a261089e565b34801561034257600080fd5b506102a26108a4565b34801561035757600080fd5b506103756004803603602081101561036e57600080fd5b50356108aa565b604080516001600160a01b039092168252519081900360200190f35b34801561039d57600080fd5b506103a6610884565b6040805160ff9092168252519081900360200190f35b3480156103c857600080fd5b506102a2600480360360208110156103df57600080fd5b50356001600160a01b03166108d1565b3480156103fb57600080fd5b506103756108e3565b34801561041057600080fd5b506104196108e9565b6040805161ffff9092168252519081900360200190f35b34801561043c57600080fd5b506103a66108ee565b34801561045157600080fd5b506103756108f3565b34801561046657600080fd5b506102a2610893565b34801561047b57600080fd5b506103756108f9565b34801561049057600080fd5b506104cf600480360360808110156104a757600080fd5b506001600160a01b0381358116916020810135909116906040810135906060013515156108ff565b604080519115158252519081900360200190f35b3480156104ef57600080fd5b506103a6610d91565b34801561050457600080fd5b506102a2610d96565b34801561051957600080fd5b50610375610d9c565b34801561052e57600080fd5b506103a6610da2565b34801561054357600080fd5b506102a2610da7565b34801561055857600080fd5b506102a26004803603602081101561056f57600080fd5b50356001600160a01b0316610dac565b34801561058b57600080fd5b506103a6610dbe565b3480156105a057600080fd5b50610375610dc3565b3480156105b557600080fd5b50610375610dc9565b3480156105ca57600080fd5b506102a2610dcf565b3480156105df57600080fd5b506104cf610dd5565b3480156105f457600080fd5b506102a2610dde565b34801561060957600080fd5b506102f3610de4565b34801561061e57600080fd5b506106e16004803603604081101561063557600080fd5b81019060208101813564010000000081111561065057600080fd5b82018360208201111561066257600080fd5b8035906020019184600183028401116401000000008311171561068457600080fd5b9193909290916020810190356401000000008111156106a257600080fd5b8201836020820111156106b457600080fd5b803590602001918460018302840111640100000000831117156106d657600080fd5b509092509050610de9565b005b3480156106ef57600080fd5b506102a2611537565b34801561070457600080fd5b506102a26004803603602081101561071b57600080fd5b503561153d565b34801561072e57600080fd5b506102a26004803603602081101561074557600080fd5b5035611598565b34801561075857600080fd5b506103756115b1565b34801561076d57600080fd5b506102a26115b7565b34801561078257600080fd5b506103756115bd565b34801561079757600080fd5b506102a26115c3565b3480156107ac57600080fd5b506106e16115c9565b3480156107c157600080fd5b506106e1600480360360208110156107d857600080fd5b50356001600160a01b0316611692565b3480156107f457600080fd5b506103756004803603602081101561080b57600080fd5b50356117eb565b34801561081e57600080fd5b506103756117f8565b34801561083357600080fd5b506103a66117fe565b34801561084857600080fd5b50610375611803565b34801561085d57600080fd5b506102a26004803603602081101561087457600080fd5b50356001600160a01b0316611809565b600181565b602881565b605081565b606481565b600b5481565b60015481565b600c5481565b600681815481106108b757fe5b6000918252602090912001546001600160a01b0316905081565b60076020526000908152604090205481565b61100181565b603881565b600881565b61200081565b61100581565b6000805460ff16610957576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604482015290519081900360640190fd5b33612000146109975760405162461bcd60e51b815260040180806020018281038252602f815260200180612377602f913960400191505060405180910390fd5b60008215610a4a576110026001600160a01b0316639a99b4f06110056109c8600e548861181b90919063ffffffff16565b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015610a1757600080fd5b505af1158015610a2b573d6000803e3d6000fd5b505050506040513d6020811015610a4157600080fd5b50519050610b59565b604080516309a99b4f60e41b8152611005600482015260248101869052905161100491639a99b4f09160448083019260209291908290030181600087803b158015610a9457600080fd5b505af1158015610aa8573d6000803e3d6000fd5b505050506040513d6020811015610abe57600080fd5b5051600e5490915015610b5957600e54604080516309a99b4f60e41b81526110056004820152602481019290925251610b569161100291639a99b4f0916044808201926020929091908290030181600087803b158015610b1d57600080fd5b505af1158015610b31573d6000803e3d6000fd5b505050506040513d6020811015610b4757600080fd5b5051829063ffffffff61181b16565b90505b600c805460010190556000610b6d8261187e565b600954909150610b83908263ffffffff61181b16565b600955600a54610bab908290610b9f908563ffffffff61181b16565b9063ffffffff6118a716565b600a556001600160a01b038716600090815260056020526040902054610c1757600680546001810182556000919091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319166001600160a01b0389161790555b6001600160a01b038088166000908152600560209081526040808320805460010190559289168252600790522054610c9557600880546001810182556000919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319166001600160a01b0388161790555b6001600160a01b038616600090815260076020526040902080546001019055600c54606411610d8457600b54600954600a5460408051938452602084019290925282820152517f2649b1b772a1a74bd332a67695e285317dd722941166595741c60a00fa65bb759181900360600190a16000610d0f6118e9565b90506000610d1b611bcd565b6001600160a01b0389166000908152600d6020526040902054909150610d59908290610d4d908563ffffffff61181b16565b9063ffffffff61181b16565b6001600160a01b0389166000908152600d6020526040812091909155600b80546001019055600c5550505b5060019695505050505050565b600281565b60035481565b61100881565b600b81565b600581565b60056020526000908152604090205481565b600981565b61100781565b61100681565b600a5481565b60005460ff1681565b60045481565b600081565b3361100714610e295760405162461bcd60e51b815260040180806020018281038252602e8152602001806122bc602e913960400191505060405180910390fd5b60005460ff16610e6a5760405162461bcd60e51b81526004018080602001828103825260218152602001806122ea6021913960400191505060405180910390fd5b610ede84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601f81527f68656164657252656c61796572526577617264526174654d6f6c6563756c650060208201529150611e4b9050565b15610fab5760208114610f225760405162461bcd60e51b81526004018080602001828103825260328152602001806123a66032913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610f6091858580838501838280828437600092019190915250611f3292505050565b9050600254811115610fa35760405162461bcd60e51b81526004018080602001828103825260608152602001806121956060913960600191505060405180910390fd5b6001556114a5565b61100484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051606081019091526022808252909250905061229a6020830139611e4b565b156110dc57602081146110485760405162461bcd60e51b815260040180806020018281038252602e81526020018061224b602e913960400191505060405180910390fd5b604080516020601f840181900481028201810190925282815260009161108691858580838501838280828437600092019190915250611f3292505050565b9050801580159061109957506001548110155b6110d45760405162461bcd60e51b815260040180806020018281038252606c81526020018061230b606c913960800191505060405180910390fd5b6002556114a5565b61115084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601a81527f63616c6c6572436f6d70656e736174696f6e4d6f6c6563756c6500000000000060208201529150611e4b9050565b1561121d57602081146111945760405162461bcd60e51b815260040180806020018281038252602e81526020018061224b602e913960400191505060405180910390fd5b604080516020601f84018190048102820181019092528281526000916111d291858580838501838280828437600092019190915250611f3292505050565b90506004548111156112155760405162461bcd60e51b81526004018080602001828103825260568152602001806121f56056913960600191505060405180910390fd5b6003556114a5565b61129184848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601d81527f63616c6c6572436f6d70656e736174696f6e44656e6f6d696e61746f7200000060208201529150611e4b9050565b1561136957602081146112d55760405162461bcd60e51b815260040180806020018281038252602e81526020018061224b602e913960400191505060405180910390fd5b604080516020601f840181900481028201810190925282815260009161131391858580838501838280828437600092019190915250611f3292505050565b9050801580159061132657506003548110155b6113615760405162461bcd60e51b81526004018080602001828103825260618152602001806121066061913960800191505060405180910390fd5b6004556114a5565b6113dd84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601b81527f64796e616d69634578747261496e63656e74697665416d6f756e74000000000060208201529150611e4b9050565b1561146857602081146114215760405162461bcd60e51b815260040180806020018281038252602e815260200180612167602e913960400191505060405180910390fd5b604080516020601f840181900481028201810190925282815260009161145f91858580838501838280828437600092019190915250611f3292505050565b600e55506114a5565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b60025481565b60006028821161154e575080611593565b81602810801561155f575060508211155b1561156c57506028611593565b60508211801561157d5750606e8211155b1561158d57506078819003611593565b50600481045b919050565b6000602882116115a9575080611593565b506028611593565b61100281565b600e5481565b61100381565b60095481565b60005460ff1615611621576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b60005460ff161561166f576040805162461bcd60e51b8152602060048201526013602482015272185b1c9958591e481a5b9a5d1a585b1a5e9959606a1b604482015290519081900360640190fd5b60018080556005600255600381905560506004556000805460ff19169091179055565b6001600160a01b0381166000908152600d6020526040902054806116f1576040805162461bcd60e51b81526020600482015260116024820152701b9bc81c995b185e595c881c995dd85c99607a1b604482015290519081900360640190fd5b6001600160a01b0382166000818152600d60205260408082208290555184929184156108fc02918591818181858888f193505050506117a15760405161100290819084156108fc029085906000818181858888f1935050505015801561175b573d6000803e3d6000fd5b506040805161100281526020810185905281517f24502838a334c8f2bb2ee1f8262a4fa7183e4489a717e96cc824e325f8b39e11929181900390910190a15050506117e8565b604080516001600160a01b03851681526020810184905281517f24502838a334c8f2bb2ee1f8262a4fa7183e4489a717e96cc824e325f8b39e11929181900390910190a150505b50565b600881815481106108b757fe5b61100081565b600381565b61100481565b600d6020526000908152604090205481565b600082820183811015611875576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b90505b92915050565b600061187860025461189b60015485611f3790919063ffffffff16565b9063ffffffff611f9016565b600061187583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611fd2565b600954600680546040805160208084028201810190925282815260009493859360609383018282801561194557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611927575b5050505050905060608151604051908082528060200260200182016040528015611979578160200160208202803683370190505b50905060005b8251811015611a0657600083828151811061199657fe5b6020026020010151905060006119d060056000846001600160a01b03166001600160a01b0316815260200190815260200160002054611598565b9050808484815181106119df57fe5b60209081029190910101526119fa868263ffffffff61181b16565b9550505060010161197f565b506000611a2460045461189b60035488611f3790919063ffffffff16565b9050611a36858263ffffffff6118a716565b94508460015b8451811015611b0d576000611a718761189b8a888681518110611a5b57fe5b6020026020010151611f3790919063ffffffff16565b9050611abe81600d6000898681518110611a8757fe5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205461181b90919063ffffffff16565b600d6000888581518110611ace57fe5b6020908102919091018101516001600160a01b0316825281019190915260400160002055611b02838263ffffffff6118a716565b925050600101611a3c565b50611b2381600d600087600081518110611a8757fe5b600d600086600081518110611b3457fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002081905550600060098190555060008090505b8451811015611bb55760056000868381518110611b8757fe5b6020908102919091018101516001600160a01b03168252810191909152604001600090812055600101611b6e565b50611bc2600660006120ce565b509450505050505b90565b600a546008805460408051602080840282018101909252828152600094938593606093830182828015611c2957602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611c0b575b5050505050905060608151604051908082528060200260200182016040528015611c5d578160200160208202803683370190505b50905060005b8251811015611cdc576000838281518110611c7a57fe5b602002602001015190506000611cb460076000846001600160a01b03166001600160a01b031681526020019081526020016000205461153d565b905080848481518110611cc357fe5b6020908102919091010152949094019350600101611c63565b506000611cfa60045461189b60035488611f3790919063ffffffff16565b9050611d0c858263ffffffff6118a716565b94508460015b8451811015611d96576000611d318761189b8a888681518110611a5b57fe5b9050611d4781600d6000898681518110611a8757fe5b600d6000888581518110611d5757fe5b6020908102919091018101516001600160a01b0316825281019190915260400160002055611d8b838263ffffffff6118a716565b925050600101611d12565b50611dac81600d600087600081518110611a8757fe5b600d600086600081518110611dbd57fe5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020819055506000600a8190555060008090505b8451811015611e3e5760076000868381518110611e1057fe5b6020908102919091018101516001600160a01b03168252810191909152604001600090812055600101611df7565b50611bc2600860006120ce565b6000816040516020018082805190602001908083835b60208310611e805780518252601f199092019160209182019101611e61565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310611eee5780518252601f199092019160209182019101611ecf565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b600082611f4657506000611878565b82820282848281611f5357fe5b04146118755760405162461bcd60e51b81526004018080602001828103825260218152602001806122796021913960400191505060405180910390fd5b600061187583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612069565b600081848411156120615760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561202657818101518382015260200161200e565b50505050905090810190601f1680156120535780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600081836120b85760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561202657818101518382015260200161200e565b5060008385816120c457fe5b0495945050505050565b50805460008255906000526020600020908101906117e89190611bca91905b8082111561210157600081556001016120ed565b509056fe746865206e657743616c6c6572436f6d70656e736174696f6e44656e6f6d696e61746f72206d757374206e6f74206265207a65726f20616e64206e6f206c657373207468616e2063616c6c6572436f6d70656e736174696f6e4d6f6c6563756c656c656e677468206f662064796e616d69634578747261496e63656e74697665416d6f756e74206d69736d617463686e65772068656164657252656c61796572526577617264526174654d6f6c6563756c652073686f756c646e27742062652067726561746572207468616e2068656164657252656c617965725265776172645261746544656e6f6d696e61746f726e65772063616c6c6572436f6d70656e736174696f6e4d6f6c6563756c652073686f756c646e27742062652067726561746572207468616e2063616c6c6572436f6d70656e736174696f6e44656e6f6d696e61746f726c656e677468206f6620726577617264466f7256616c696461746f725365744368616e6765206d69736d61746368536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7768656164657252656c617965725265776172645261746544656e6f6d696e61746f72746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374636f6e747261637420686173206e6f74206265656e20696e697469616c697a6564746865206e65772068656164657252656c617965725265776172645261746544656e6f6d696e61746f72206d757374206e6f74206265207a65726f20616e64206e6f206c657373207468616e2068656164657252656c61796572526577617264526174654d6f6c6563756c65746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e74726163746c656e677468206f662068656164657252656c61796572526577617264526174654d6f6c6563756c65206d69736d61746368a2646970667358221220ed761a0a8bb4eac3f5f94897efb6059f8cb261a19ed73bef336cbc05af2a532064736f6c63430006040033", - }, - }, - } - - MirrorUpgrade[networkname.ChapelChainName] = &Upgrade{ - UpgradeName: "mirror", - Configs: []*UpgradeConfig{ - { - ContractAddr: TokenManagerContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/af4f3993303213052222f55c721e661862d19638", - Code: "6080604052600436106103815760003560e01c80637d078e13116101d1578063b795031711610102578063d9e6dae9116100a0578063fa9e91591161006f578063fa9e915914610d38578063fc3e5908146105b2578063fd6a687914610d4d578063fe3a2af514610d6257610381565b8063d9e6dae9146106fc578063dc927faf14610cf9578063e605bca014610d0e578063f9a2bbc714610d2357610381565b8063c8509d81116100dc578063c8509d8114610bdf578063c8e704a4146105b2578063d117a11014610c64578063d7109ce614610ce457610381565b8063b79503171461073b578063bd32d3f9146104d9578063c81b166214610bca57610381565b80639a854bbd1161016f578063a78abc1611610149578063a78abc1614610ad5578063ab51bb9614610aea578063ab67a4851461073b578063ac43175114610aff57610381565b80639a854bbd14610a965780639dc0926214610aab578063a1a11bf514610ac057610381565b8063859180fb116101ab578063859180fb146106e757806394553a4e14610a3757806395b9ad2614610a6c57806396713da914610a8157610381565b80637d078e13146104ee5780637ec816dd1461099b578063831d65d1146109b057610381565b8063493279b1116102b657806366dea52a1161025457806372c4e0861161022357806372c4e0861461081957806375d47a0a146108bd57806377d9dae8146108d25780637942fd051461098657610381565b806366dea52a1461073b5780636b3f1307146107505780636e47b4821461080457806370fd5bad1461073b57610381565b806351e806721161029057806351e80672146107115780635d499b1b146107265780635f558f861461073b57806361368475146106fc57610381565b8063493279b1146106bb5780634bc81c00146106e75780634bf6c882146106fc57610381565b80632e02d77611610323578063401809f9116102fd578063401809f9146105b257806343756e5c146105c7578063445fcefe146105f8578063487c88ac146104ee57610381565b80632e02d7761461054c57806337e6ecda1461057f5780633dffc387146104ee57610381565b80631f91600b1161035f5780631f91600b146104d957806323996b53146104ee57806325c751b7146105035780632d89ac32146104ee57610381565b80630bee7a67146103865780630f212b1b146103b45780631182b875146103df575b600080fd5b34801561039257600080fd5b5061039b610d77565b6040805163ffffffff9092168252519081900360200190f35b3480156103c057600080fd5b506103c9610d7c565b6040805160ff9092168252519081900360200190f35b3480156103eb57600080fd5b506104646004803603604081101561040257600080fd5b60ff8235169190810190604081016020820135600160201b81111561042657600080fd5b82018360208201111561043857600080fd5b803590602001918460018302840111600160201b8311171561045957600080fd5b509092509050610d81565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561049e578181015183820152602001610486565b50505050905090810190601f1680156104cb5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156104e557600080fd5b506103c9610e9b565b3480156104fa57600080fd5b506103c9610ea0565b6105386004803603604081101561051957600080fd5b5080356001600160a01b031690602001356001600160401b0316610ea5565b604080519115158252519081900360200190f35b34801561055857600080fd5b506105386004803603602081101561056f57600080fd5b50356001600160a01b03166113f1565b34801561058b57600080fd5b50610538600480360360208110156105a257600080fd5b50356001600160a01b0316611406565b3480156105be57600080fd5b506103c961141b565b3480156105d357600080fd5b506105dc611420565b604080516001600160a01b039092168252519081900360200190f35b34801561060457600080fd5b506106a96004803603602081101561061b57600080fd5b810190602081018135600160201b81111561063557600080fd5b82018360208201111561064757600080fd5b803590602001918460018302840111600160201b8311171561066857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611426945050505050565b60408051918252519081900360200190f35b3480156106c757600080fd5b506106d0611584565b6040805161ffff9092168252519081900360200190f35b3480156106f357600080fd5b506103c9611589565b34801561070857600080fd5b506103c961158e565b34801561071d57600080fd5b506105dc611593565b34801561073257600080fd5b506106a9611599565b34801561074757600080fd5b506103c96115a2565b6105386004803603604081101561076657600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561079057600080fd5b8201836020820111156107a257600080fd5b803590602001918460018302840111600160201b831117156107c357600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506115a7945050505050565b34801561081057600080fd5b506105dc611e7d565b6105386004803603602081101561082f57600080fd5b810190602081018135600160201b81111561084957600080fd5b82018360208201111561085b57600080fd5b803590602001918460018302840111600160201b8311171561087c57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611e83945050505050565b3480156108c957600080fd5b506105dc6122cf565b610538600480360360408110156108e857600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561091257600080fd5b82018360208201111561092457600080fd5b803590602001918460018302840111600160201b8311171561094557600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506122d5945050505050565b34801561099257600080fd5b506103c96127db565b3480156109a757600080fd5b506106a96127e0565b3480156109bc57600080fd5b50610a35600480360360408110156109d357600080fd5b60ff8235169190810190604081016020820135600160201b8111156109f757600080fd5b820183602082011115610a0957600080fd5b803590602001918460018302840111600160201b83111715610a2a57600080fd5b5090925090506127e6565b005b61053860048036036040811015610a4d57600080fd5b5080356001600160a01b031690602001356001600160401b0316612935565b348015610a7857600080fd5b506103c961332c565b348015610a8d57600080fd5b506103c9613331565b348015610aa257600080fd5b506106a9613336565b348015610ab757600080fd5b506105dc613342565b348015610acc57600080fd5b506105dc613348565b348015610ae157600080fd5b5061053861334e565b348015610af657600080fd5b5061039b613357565b348015610b0b57600080fd5b50610a3560048036036040811015610b2257600080fd5b810190602081018135600160201b811115610b3c57600080fd5b820183602082011115610b4e57600080fd5b803590602001918460018302840111600160201b83111715610b6f57600080fd5b919390929091602081019035600160201b811115610b8c57600080fd5b820183602082011115610b9e57600080fd5b803590602001918460018302840111600160201b83111715610bbf57600080fd5b50909250905061335c565b348015610bd657600080fd5b506105dc613631565b348015610beb57600080fd5b50610a3560048036036040811015610c0257600080fd5b60ff8235169190810190604081016020820135600160201b811115610c2657600080fd5b820183602082011115610c3857600080fd5b803590602001918460018302840111600160201b83111715610c5957600080fd5b509092509050613637565b348015610c7057600080fd5b50610c8e60048036036020811015610c8757600080fd5b503561370d565b6040805160ff988916815260208101979097526001600160a01b03909516868601526060860193909352608085019190915290931660a08301526001600160401b0390921660c082015290519081900360e00190f35b348015610cf057600080fd5b506106a9613764565b348015610d0557600080fd5b506105dc613769565b348015610d1a57600080fd5b506106a961376f565b348015610d2f57600080fd5b506105dc613775565b348015610d4457600080fd5b506106a961377b565b348015610d5957600080fd5b506105dc613781565b348015610d6e57600080fd5b506103c9613357565b606481565b600681565b60603361200014610dc35760405162461bcd60e51b815260040180806020018281038252602f815260200180615b89602f913960400191505060405180910390fd5b60ff841660011415610e1557610e0e83838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061378792505050565b9050610e94565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605848484604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a1506040805160008152602081019091525b9392505050565b600481565b600181565b6040805163bd46646160e01b81526001600160a01b0384166004820152905160009182916110049163bd466461916024808301926020929190829003018186803b158015610ef257600080fd5b505afa158015610f06573d6000803e3d6000fd5b505050506040513d6020811015610f1c57600080fd5b5051905080610f5e576040805162461bcd60e51b81526020600482015260096024820152681b9bdd08189bdd5b9960ba1b604482015290519081900360640190fd5b6001600160a01b03841660009081526003602052604090205460ff16610fc1576040805162461bcd60e51b81526020600482015260136024820152723737ba103137bab73210313c9036b4b93937b960691b604482015290519081900360640190fd5b60006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b158015610ffe57600080fd5b505afa158015611012573d6000803e3d6000fd5b505050506040513d602081101561102857600080fd5b505190506402540be4003406158015611053575060055461104f908263ffffffff613a1716565b3410155b61108e5760405162461bcd60e51b8152600401808060200182810382526046815260200180615b156046913960600191505060405180910390fd5b42607801846001600160401b0316101580156110b85750426201518001846001600160401b031611155b6110f35760405162461bcd60e51b8152600401808060200182810382526038815260200180615a126038913960400191505060405180910390fd5b6000856001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561112e57600080fd5b505afa158015611142573d6000803e3d6000fd5b505050506040513d602081101561115857600080fd5b50516040805163313ce56760e01b815290519192506000916001600160a01b0389169163313ce567916004808301926020929190829003018186803b1580156111a057600080fd5b505afa1580156111b4573d6000803e3d6000fd5b505050506040513d60208110156111ca57600080fd5b50519050677ce66c50e28400006111e48360ff8416613a71565b1115611230576040805162461bcd60e51b8152602060048201526016602482015275746f6f206c6172676520746f74616c20737570706c7960501b604482015290519081900360640190fd5b600554611004906108fc9061124c90349063ffffffff613b0016565b6040518115909202916000818181858888f19350505050158015611274573d6000803e3d6000fd5b5061127d615869565b6040518060c00160405280336001600160a01b03168152602001896001600160a01b031681526020018681526020018481526020016112cc6402540be400600554613b4290919063ffffffff16565b81526001600160401b038916602090910152905061200063f7a251d760056112f384613b84565b61131d6402540be40061131160055434613b0090919063ffffffff16565b9063ffffffff613b4216565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561137b578181015183820152602001611363565b50505050905090810190601f1680156113a85780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156113c957600080fd5b505af11580156113dd573d6000803e3d6000fd5b505050506001955050505050505b92915050565b60036020526000908152604090205460ff1681565b60026020526000908152604090205460ff1681565b600381565b61100181565b602081015160009061143661589e565b50600081815260016020818152604092839020835160e081018552815460ff9081168252938201549281019290925260028101546001600160a01b031693820184905260038101546060830152600481015460808301526005015491821660a08201526101009091046001600160401b031660c0820152906114bd5760009250505061157f565b600081604001516001600160a01b03166370a082316110046040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561151b57600080fd5b505afa15801561152f573d6000803e3d6000fd5b505050506040513d602081101561154557600080fd5b5051608083015160608401519192506000916115669163ffffffff613b0016565b9050611578818363ffffffff613b0016565b9450505050505b919050565b606181565b600581565b600881565b61200081565b6402540be40081565b600281565b6001600160a01b03821660009081526002602052604081205460ff16156115ff5760405162461bcd60e51b815260040180806020018281038252602b815260200180615bb8602b913960400191505060405180910390fd5b600061160a83613cb9565b905061161461589e565b50600081815260016020818152604092839020835160e081018552815460ff90811682529382015492810183905260028201546001600160a01b03169481019490945260038101546060850152600481015460808501526005015491821660a08401526101009091046001600160401b031660c08301526116d9576040805162461bcd60e51b815260206004820152601a602482015279189a5b99081c995c5d595cdd08191bd95cdb89dd08195e1a5cdd60321b604482015290519081900360640190fd5b60006116f682608001518360600151613b0090919063ffffffff16565b905081604001516001600160a01b0316866001600160a01b03161461174c5760405162461bcd60e51b8152600401808060200182810382526045815260200180615a816045913960600191505060405180910390fd5b336001600160a01b0316866001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b15801561178f57600080fd5b505afa1580156117a3573d6000803e3d6000fd5b505050506040513d60208110156117b957600080fd5b50516001600160a01b0316146118005760405162461bcd60e51b815260040180806020018281038252602e8152602001806159e4602e913960400191505060405180910390fd5b604080516370a0823160e01b8152611004600482015290516000916001600160a01b038916916370a0823191602480820192602092909190829003018186803b15801561184c57600080fd5b505afa158015611860573d6000803e3d6000fd5b505050506040513d602081101561187657600080fd5b505160408051636eb1769f60e11b8152336004820152306024820152905191925083916119079184916001600160a01b038c169163dd62ed3e916044808301926020929190829003018186803b1580156118cf57600080fd5b505afa1580156118e3573d6000803e3d6000fd5b505050506040513d60208110156118f957600080fd5b50519063ffffffff613a1716565b101561195a576040805162461bcd60e51b815260206004820152601760248201527f616c6c6f77616e6365206973206e6f7420656e6f756768000000000000000000604482015290519081900360640190fd5b600034905060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b15801561199c57600080fd5b505afa1580156119b0573d6000803e3d6000fd5b505050506040513d60208110156119c657600080fd5b505190508082108015906119df57506402540be4008206155b611a1a5760405162461bcd60e51b8152600401808060200182810382526037815260200180615a4a6037913960400191505060405180910390fd5b6000611a26868b613cc0565b905063ffffffff8116611c25576001600160a01b038a166323b872dd33611004611a56898963ffffffff613b0016565b6040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b031681526020018281526020019350505050602060405180830381600087803b158015611abe57600080fd5b505af1158015611ad2573d6000803e3d6000fd5b505050506040513d6020811015611ae857600080fd5b5050602086015160408088015160a089015182516323bfccdb60e21b815260048101949094526001600160a01b03909116602484015260ff1660448301525161100491638eff336c91606480830192600092919082900301818387803b158015611b5157600080fd5b505af1158015611b65573d6000803e3d6000fd5b50505050896001600160a01b03167f78e7dd9aefcdbf795c4936a66f7dc6d41bb56637b54f561a6bf7829dca3348a88a8860600151886040518080602001848152602001838152602001828103825285818151815260200191508051906020019080838360005b83811015611be4578181015183820152602001611bcc565b50505050905090810190601f168015611c115780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a2611cdd565b896001600160a01b03167f831c0ef4d93bda3bce08b69ae3f29ef1a6e052b833200988554158494405a1078a8360405180806020018363ffffffff1663ffffffff168152602001828103825284818151815260200191508051906020019080838360005b83811015611ca1578181015183820152602001611c89565b50505050905090810190601f168015611cce5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a25b60008781526001602081905260408220805460ff191681559081018290556002810180546001600160a01b0319169055600381018290556004810191909155600501805468ffffffffffffffffff19169055611d376158da565b5060408051808201825263ffffffff831681526020810189905290516110049085156108fc029086906000818181858888f19350505050158015611d7f573d6000803e3d6000fd5b5061200063f7a251d76001611d938461411a565b611da8886402540be40063ffffffff613b4216565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611e06578181015183820152602001611dee565b50505050905090810190601f168015611e335780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015611e5457600080fd5b505af1158015611e68573d6000803e3d6000fd5b5060019e9d5050505050505050505050505050565b61100581565b600080611e8f83613cb9565b9050611e9961589e565b50600081815260016020818152604092839020835160e081018552815460ff90811682529382015492810183905260028201546001600160a01b03169481019490945260038101546060850152600481015460808501526005015491821660a08401526101009091046001600160401b031660c0830152611f5e576040805162461bcd60e51b815260206004820152601a602482015279189a5b99081c995c5d595cdd08191bd95cdb89dd08195e1a5cdd60321b604482015290519081900360640190fd5b428160c001516001600160401b031610611fbf576040805162461bcd60e51b815260206004820152601b60248201527f62696e642072657175657374206973206e6f7420657870697265640000000000604482015290519081900360640190fd5b600034905060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b15801561200157600080fd5b505afa158015612015573d6000803e3d6000fd5b505050506040513d602081101561202b57600080fd5b5051905080821080159061204457506402540be4008206155b61207f5760405162461bcd60e51b8152600401808060200182810382526037815260200180615a4a6037913960400191505060405180910390fd5b60008481526001602081905260408220805460ff191681559081018290556002810180546001600160a01b0319169055600381018290556004810191909155600501805468ffffffffffffffffff191690556120d96158da565b50604080518082018252600181526020810186905290516110049084156108fc029085906000818181858888f1935050505015801561211c573d6000803e3d6000fd5b5061200063f7a251d760016121308461411a565b612145876402540be40063ffffffff613b4216565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156121a357818101518382015260200161218b565b50505050905090810190601f1680156121d05780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156121f157600080fd5b505af1158015612205573d6000803e3d6000fd5b5050505083604001516001600160a01b03167f831c0ef4d93bda3bce08b69ae3f29ef1a6e052b833200988554158494405a10788600160405180806020018360ff1663ffffffff168152602001828103825284818151815260200191508051906020019080838360005b8381101561228757818101518382015260200161226f565b50505050905090810190601f1680156122b45780820380516001836020036101000a031916815260200191505b50935050505060405180910390a25060019695505050505050565b61100881565b6000806122e183613cb9565b90506122eb61589e565b50600081815260016020818152604092839020835160e081018552815460ff90811682529382015492810183905260028201546001600160a01b03169481019490945260038101546060850152600481015460808501526005015491821660a08401526101009091046001600160401b031660c08301526123b0576040805162461bcd60e51b815260206004820152601a602482015279189a5b99081c995c5d595cdd08191bd95cdb89dd08195e1a5cdd60321b604482015290519081900360640190fd5b80604001516001600160a01b0316856001600160a01b0316146124045760405162461bcd60e51b8152600401808060200182810382526045815260200180615a816045913960600191505060405180910390fd5b336001600160a01b0316856001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b15801561244757600080fd5b505afa15801561245b573d6000803e3d6000fd5b505050506040513d602081101561247157600080fd5b50516001600160a01b0316146124ce576040805162461bcd60e51b815260206004820152601b60248201527f6f6e6c79206265703230206f776e65722063616e2072656a6563740000000000604482015290519081900360640190fd5b600034905060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b15801561251057600080fd5b505afa158015612524573d6000803e3d6000fd5b505050506040513d602081101561253a57600080fd5b5051905080821080159061255357506402540be4008206155b61258e5760405162461bcd60e51b8152600401808060200182810382526037815260200180615a4a6037913960400191505060405180910390fd5b60008481526001602081905260408220805460ff191681559081018290556002810180546001600160a01b0319169055600381018290556004810191909155600501805468ffffffffffffffffff191690556125e86158da565b50604080518082018252600781526020810186905290516110049084156108fc029085906000818181858888f1935050505015801561262b573d6000803e3d6000fd5b5061200063f7a251d7600161263f8461411a565b612654876402540be40063ffffffff613b4216565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156126b257818101518382015260200161269a565b50505050905090810190601f1680156126df5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561270057600080fd5b505af1158015612714573d6000803e3d6000fd5b50505050876001600160a01b03167f831c0ef4d93bda3bce08b69ae3f29ef1a6e052b833200988554158494405a10788600760405180806020018360ff1663ffffffff168152602001828103825284818151815260200191508051906020019080838360005b8381101561279257818101518382015260200161277a565b50505050905090810190601f1680156127bf5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a2506001979650505050505050565b600b81565b60045481565b33612000146128265760405162461bcd60e51b815260040180806020018281038252602f815260200180615b89602f913960400191505060405180910390fd5b60ff8316600414156128765761287182828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061419092505050565b612930565b60ff8316600514156128c15761287182828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061443d92505050565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a15b505050565b6040805163bd46646160e01b81526001600160a01b0384166004820152905160009182916110049163bd466461916024808301926020929190829003018186803b15801561298257600080fd5b505afa158015612996573d6000803e3d6000fd5b505050506040513d60208110156129ac57600080fd5b5051146129f0576040805162461bcd60e51b815260206004820152600d60248201526c185b1c9958591e48189bdd5b99609a1b604482015290519081900360640190fd5b6001600160a01b03831660009081526002602052604090205460ff1615612a4f576040805162461bcd60e51b815260206004820152600e60248201526d6d6972726f722070656e64696e6760901b604482015290519081900360640190fd5b60006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b158015612a8c57600080fd5b505afa158015612aa0573d6000803e3d6000fd5b505050506040513d6020811015612ab657600080fd5b505190506402540be4003406158015612ae15750600454612add908263ffffffff613a1716565b3410155b612b1c5760405162461bcd60e51b815260040180806020018281038252604d815260200180615997604d913960600191505060405180910390fd5b42607801836001600160401b031610158015612b465750426201518001836001600160401b031611155b612b815760405162461bcd60e51b8152600401808060200182810382526038815260200180615a126038913960400191505060405180910390fd5b6000846001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015612bbc57600080fd5b505afa158015612bd0573d6000803e3d6000fd5b505050506040513d6020811015612be657600080fd5b5051604080516318160ddd60e01b815290519192506000916001600160a01b038816916318160ddd916004808301926020929190829003018186803b158015612c2e57600080fd5b505afa158015612c42573d6000803e3d6000fd5b505050506040513d6020811015612c5857600080fd5b50519050677ce66c50e2840000612c728260ff8516613a71565b1115612cbe576040805162461bcd60e51b8152602060048201526016602482015275746f6f206c6172676520746f74616c20737570706c7960501b604482015290519081900360640190fd5b6060866001600160a01b03166306fdde036040518163ffffffff1660e01b815260040160006040518083038186803b158015612cf957600080fd5b505afa158015612d0d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015612d3657600080fd5b8101908080516040519392919084600160201b821115612d5557600080fd5b908301906020820185811115612d6a57600080fd5b8251600160201b811182820188101715612d8357600080fd5b82525081516020918201929091019080838360005b83811015612db0578181015183820152602001612d98565b50505050905090810190601f168015612ddd5780820380516001836020036101000a031916815260200191505b50604052505050905060608190506001815110158015612dff57506020815111155b612e50576040805162461bcd60e51b815260206004820152601d60248201527f6e616d65206c656e677468206d75737420626520696e205b312c33325d000000604482015290519081900360640190fd5b6060886001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b158015612e8b57600080fd5b505afa158015612e9f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015612ec857600080fd5b8101908080516040519392919084600160201b821115612ee757600080fd5b908301906020820185811115612efc57600080fd5b8251600160201b811182820188101715612f1557600080fd5b82525081516020918201929091019080838360005b83811015612f42578181015183820152602001612f2a565b50505050905090810190601f168015612f6f5780820380516001836020036101000a031916815260200191505b5060405250508151919250829160021180159150612f8f57508051600810155b612fe0576040805162461bcd60e51b815260206004820152601e60248201527f73796d626f6c206c656e677468206d75737420626520696e205b322c385d0000604482015290519081900360640190fd5b60005b81518160ff16101561313457604160f81b828260ff168151811061300357fe5b01602001516001600160f81b031916108015906130415750602d60f91b828260ff168151811061302f57fe5b01602001516001600160f81b03191611155b806130995750606160f81b828260ff168151811061305b57fe5b01602001516001600160f81b031916108015906130995750603d60f91b828260ff168151811061308757fe5b01602001516001600160f81b03191611155b806130f15750600360fc1b828260ff16815181106130b357fe5b01602001516001600160f81b031916108015906130f15750603960f81b828260ff16815181106130df57fe5b01602001516001600160f81b03191611155b61312c5760405162461bcd60e51b815260040180806020018281038252602e815260200180615ac6602e913960400191505060405180910390fd5b600101612fe3565b50600454611004906108fc9061315190349063ffffffff613b0016565b6040518115909202916000818181858888f19350505050158015613179573d6000803e3d6000fd5b506001600160a01b038a166000908152600260209081526040909120805460ff1916600117905584810151908301516131b06158f1565b604051806101000160405280336001600160a01b031681526020018e6001600160a01b031681526020018481526020018381526020018981526020018a60ff16815260200161320f6402540be400600454613b4290919063ffffffff16565b81526001600160401b038e16602090910152905061200063f7a251d7600461323684614608565b6132546402540be40061131160045434613b0090919063ffffffff16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156132b257818101518382015260200161329a565b50505050905090810190601f1680156132df5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561330057600080fd5b505af1158015613314573d6000803e3d6000fd5b5050505060019a505050505050505050505092915050565b600781565b600981565b677ce66c50e284000081565b61100781565b61100681565b60005460ff1681565b600081565b336110071461339c5760405162461bcd60e51b815260040180806020018281038252602e815260200180615b5b602e913960400191505060405180910390fd5b602081146133f1576040805162461bcd60e51b815260206004820152601860248201527f65787065637465642076616c7565206c656e6774682033320000000000000000604482015290519081900360640190fd5b606084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f880181900481028201810190925286815293945060609392508691508590819084018382808284376000920191909152505050506020830151909150686d6972726f7246656560b81b8114156134e65760208201516402540be4008106156134de576040805162461bcd60e51b815260206004820152601a60248201527f6d6972726f72466565206d757374206265204e202a2031653130000000000000604482015290519081900360640190fd5b60045561359c565b6673796e6346656560c81b81141561355f5760208201516402540be400810615613557576040805162461bcd60e51b815260206004820152601860248201527f73796e63466565206d757374206265204e202a20316531300000000000000000604482015290519081900360640190fd5b60055561359c565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a878787876040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050505050565b61100281565b33612000146136775760405162461bcd60e51b815260040180806020018281038252602f815260200180615b89602f913960400191505060405180910390fd5b60ff8316600414156136c25761287182828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061477a92505050565b60ff8316600514156128c15761287182828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506148b992505050565b600160208190526000918252604090912080549181015460028201546003830154600484015460059094015460ff9586169593946001600160a01b039093169391929181169061010090046001600160401b031687565b604d81565b61100381565b60055481565b61100081565b61271081565b61100481565b606061379161589e565b600061379c846149b3565b91509150806137f2576040805162461bcd60e51b815260206004820152601f60248201527f756e7265636f676e697a6564207472616e73666572496e207061636b61676500604482015290519081900360640190fd5b815160ff166138a5576020828101805160009081526001928390526040908190208551815460ff1990811660ff928316178355935194820194909455908501516002820180546001600160a01b0319166001600160a01b03909216919091179055606085015160038201556080850151600482015560a08501516005909101805460c08701519316919093161768ffffffffffffffff0019166101006001600160401b03909216919091021790556139fc565b815160ff16600114156139af5760006110046001600160a01b03166359b9278984602001516040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156138fe57600080fd5b505afa158015613912573d6000803e3d6000fd5b505050506040513d602081101561392857600080fd5b505190506001600160a01b038116156139a95760208301516040805163b99328c560e01b815260048101929092526001600160a01b0383166024830152516110049163b99328c591604480830192600092919082900301818387803b15801561399057600080fd5b505af11580156139a4573d6000803e3d6000fd5b505050505b506139fc565b6040805162461bcd60e51b815260206004820152601960248201527f756e7265636f676e697a65642062696e64207061636b61676500000000000000604482015290519081900360640190fd5b60408051600080825260208201909252905b50949350505050565b600082820183811015610e94576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60006008821115613ae957604d60071983011115613acb576040805162461bcd60e51b8152602060048201526012602482015271746f6f206c6172676520646563696d616c7360701b604482015290519081900360640190fd5b613ae2836007198401600a0a63ffffffff613b4216565b90506113eb565b610e94836008849003600a0a63ffffffff614b0416565b6000610e9483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250614b5d565b6000610e9483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250614bf4565b60408051600680825260e08201909252606091829190816020015b6060815260200190600190039081613b9f5750508351909150613bca906001600160a01b0316614c59565b81600081518110613bd757fe5b6020026020010181905250613bf883602001516001600160a01b0316614c59565b81600181518110613c0557fe5b6020026020010181905250613c20836040015160001c614c7c565b81600281518110613c2d57fe5b6020026020010181905250613c458360600151614c7c565b81600381518110613c5257fe5b6020026020010181905250613c6a8360800151614c7c565b81600481518110613c7757fe5b6020026020010181905250613c988360a001516001600160401b0316614c7c565b81600581518110613ca557fe5b6020026020010181905250610e9481614c8f565b6020015190565b600080826001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015613cfc57600080fd5b505afa158015613d10573d6000803e3d6000fd5b505050506040513d6020811015613d2657600080fd5b5051604080516395d89b4160e01b8152905160ff90921692506060916001600160a01b038616916395d89b41916004808301926000929190829003018186803b158015613d7257600080fd5b505afa158015613d86573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015613daf57600080fd5b8101908080516040519392919084600160201b821115613dce57600080fd5b908301906020820185811115613de357600080fd5b8251600160201b811182820188101715613dfc57600080fd5b82525081516020918201929091019080838360005b83811015613e29578181015183820152602001613e11565b50505050905090810190601f168015613e565780820380516001836020036101000a031916815260200191505b5060408181526370a0823160e01b82526110046004830152519495506000946001600160a01b038a1694506370a08231935060248083019350602092829003018186803b158015613ea657600080fd5b505afa158015613eba573d6000803e3d6000fd5b505050506040513d6020811015613ed057600080fd5b505160808701516060880151919250600091613ef19163ffffffff613b0016565b9050428760c001516001600160401b03161015613f165750600193506113eb92505050565b613f24838860200151614d19565b613f365750600293506113eb92505050565b80821115613f4c5750600393506113eb92505050565b866060015187604001516001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015613f8e57600080fd5b505afa158015613fa2573d6000803e3d6000fd5b505050506040513d6020811015613fb857600080fd5b505114613fcd5750600493506113eb92505050565b8660a0015160ff168414613fe95750600593506113eb92505050565b602080880151604080516359b9278960e01b8152600481019290925251600092611004926359b927899260248083019392829003018186803b15801561402e57600080fd5b505afa158015614042573d6000803e3d6000fd5b505050506040513d602081101561405857600080fd5b50516001600160a01b03161415806140fa57506000801b6110046001600160a01b031663bd46646189604001516040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156140cb57600080fd5b505afa1580156140df573d6000803e3d6000fd5b505050506040513d60208110156140f557600080fd5b505114155b1561410d5750600693506113eb92505050565b5060009695505050505050565b6040805160028082526060828101909352829190816020015b6060815260200190600190039081614133575050835190915061415b9063ffffffff16614c7c565b8160008151811061416857fe5b6020026020010181905250614183836020015160001c614c7c565b81600181518110613ca557fe5b614198615869565b60006141a383614e01565b91509150806141f0576040805162461bcd60e51b8152602060048201526014602482015273756e7265636f676e697a6564207061636b61676560601b604482015290519081900360640190fd5b6020808301516001600160a01b03166000908152600290915260409020805460ff1916905560a082015160ff166143515760808201516040516110049180156108fc02916000818181858888f19350505050158015614253573d6000803e3d6000fd5b506110046001600160a01b0316638eff336c8360600151846020015185604001516040518463ffffffff1660e01b815260040180848152602001836001600160a01b03166001600160a01b031681526020018260ff1681526020019350505050600060405180830381600087803b1580156142cd57600080fd5b505af11580156142e1573d6000803e3d6000fd5b50505050602082810180516001600160a01b03908116600090815260038452604090819020805460ff1916600117905591516060860151835190815292519116927f41787d7db08fc5907641ee8343379f28215727eb123d4b462099afab4300b036928290030190a2505061443a565b815160808301516040516000926001600160a01b0316916127109184818181858888f193505050503d80600081146143a5576040519150601f19603f3d011682016040523d82523d6000602084013e6143aa565b606091505b50509050806143e75760808301516040516110029180156108fc02916000818181858888f193505050501580156143e5573d6000803e3d6000fd5b505b82602001516001600160a01b03167fefe400ad0042ebf81a245de9ae669616105e0ca9fc946352c085da0c2bc524e58460a00151604051808260ff1660ff16815260200191505060405180910390a25050505b50565b614445615935565b600061445083614f0e565b915091508061449d576040805162461bcd60e51b8152602060048201526014602482015273756e7265636f676e697a6564207061636b61676560601b604482015290519081900360640190fd5b606082015160ff1661451d5760408083015190516110049180156108fc02916000818181858888f193505050501580156144db573d6000803e3d6000fd5b5081602001516001600160a01b03167fbb7d3a9a559080d8281b0e4fb39dacbe2fdcafd5ef765e9a6ed871c9167dc60f60405160405180910390a2505061443a565b81602001516001600160a01b03167ff1e25fa536da84053644fd788b1d6a27ea6edd1f3af80c7d36ca253c4c82c9c38360600151604051808260ff1660ff16815260200191505060405180910390a2815160408084015190516000926001600160a01b0316916127109184818181858888f193505050503d80600081146145c0576040519150601f19603f3d011682016040523d82523d6000602084013e6145c5565b606091505b50509050806146025760408084015190516110029180156108fc02916000818181858888f19350505050158015614600573d6000803e3d6000fd5b505b50505050565b6040805160088082526101208201909252606091829190816020015b6060815260200190600190039081614624575050835190915061464f906001600160a01b0316614c59565b8160008151811061465c57fe5b602002602001018190525061467d83602001516001600160a01b0316614c59565b8160018151811061468a57fe5b60200260200101819052506146a5836040015160001c614c7c565b816002815181106146b257fe5b60200260200101819052506146cd836060015160001c614c7c565b816003815181106146da57fe5b60200260200101819052506146f28360800151614c7c565b816004815181106146ff57fe5b602002602001018190525061471a8360a0015160ff16614c7c565b8160058151811061472757fe5b602002602001018190525061473f8360c00151614c7c565b8160068151811061474c57fe5b602002602001018190525061476d8360e001516001600160401b0316614c7c565b81600781518110613ca557fe5b6147826158f1565b600061478d83614fda565b91509150806147da576040805162461bcd60e51b8152602060048201526014602482015273756e7265636f676e697a6564207061636b61676560601b604482015290519081900360640190fd5b6020808301516001600160a01b039081166000908152600290925260408220805460ff19169055835160c085015191169061271090614824906402540be40063ffffffff614b0416565b6040516000818181858888f193505050503d8060008114614861576040519150601f19603f3d011682016040523d82523d6000602084013e614866565b606091505b50509050806146025760c0830151611002906108fc90614891906402540be40063ffffffff614b0416565b6040518115909202916000818181858888f19350505050158015614600573d6000803e3d6000fd5b6148c1615869565b60006148cc8361512b565b9150915080614919576040805162461bcd60e51b8152602060048201526014602482015273756e7265636f676e697a6564207061636b61676560601b604482015290519081900360640190fd5b815160808301516000916001600160a01b03169061271090614946906402540be40063ffffffff614b0416565b6040516000818181858888f193505050503d8060008114614983576040519150601f19603f3d011682016040523d82523d6000602084013e614988565b606091505b5050905080614602576080830151611002906108fc90614891906402540be40063ffffffff614b0416565b6149bb61589e565b60006149c561589e565b6149cd61595c565b6149de6149d98661523b565b615260565b90506000805b6149ed836152aa565b15614af75780614a1257614a08614a03846152cb565b615319565b60ff168452614aef565b8060011415614a3157614a27614a03846152cb565b6020850152614aef565b8060021415614a5e57614a4b614a46846152cb565b6153ce565b6001600160a01b03166040850152614aef565b8060031415614a7d57614a73614a03846152cb565b6060850152614aef565b8060041415614a9c57614a92614a03846152cb565b6080850152614aef565b8060051415614abe57614ab1614a03846152cb565b60ff1660a0850152614aef565b8060061415614aea57614ad3614a03846152cb565b6001600160401b031660c085015260019150614aef565b614af7565b6001016149e4565b5091935090915050915091565b600082614b13575060006113eb565b82820282848281614b2057fe5b0414610e945760405162461bcd60e51b8152600401808060200182810382526021815260200180615af46021913960400191505060405180910390fd5b60008184841115614bec5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015614bb1578181015183820152602001614b99565b50505050905090810190601f168015614bde5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008183614c435760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315614bb1578181015183820152602001614b99565b506000838581614c4f57fe5b0495945050505050565b60408051600560a21b8318601482015260348101909152606090610e94816153e8565b60606113eb614c8a8361543e565b6153e8565b6060815160001415614cb0575060408051600081526020810190915261157f565b606082600081518110614cbf57fe5b602002602001015190506000600190505b8351811015614d0057614cf682858381518110614ce957fe5b6020026020010151615524565b9150600101614cd0565b50610e94614d13825160c060ff166155a1565b82615524565b8151600090839060081080614d2f575080516002115b15614d3e5760009150506113eb565b60408051602080825281830190925260609160208201818036833701905050905083602082015280825181518110614d7257fe5b6020910101516001600160f81b031916602d60f81b14614d97576000925050506113eb565b600160005b8351811015614df757828181518110614db157fe5b602001015160f81c60f81b6001600160f81b031916848281518110614dd257fe5b01602001516001600160f81b03191614614def5760009150614df7565b600101614d9c565b5095945050505050565b614e09615869565b6000614e13615869565b614e1b61595c565b614e276149d98661523b565b90506000805b614e36836152aa565b15614af75780614e5c57614e4c614a46846152cb565b6001600160a01b03168452614f06565b8060011415614e8457614e71614a46846152cb565b6001600160a01b03166020850152614f06565b8060021415614ea657614e99614a03846152cb565b60ff166040850152614f06565b8060031415614ec557614ebb614a03846152cb565b6060850152614f06565b8060041415614ee457614eda614a03846152cb565b6080850152614f06565b8060051415614aea57614ef9614a03846152cb565b60ff1660a0850152600191505b600101614e2d565b614f16615935565b6000614f20615935565b614f2861595c565b614f346149d98661523b565b90506000805b614f43836152aa565b15614af75780614f6957614f59614a46846152cb565b6001600160a01b03168452614fd2565b8060011415614f9157614f7e614a46846152cb565b6001600160a01b03166020850152614fd2565b8060021415614fb057614fa6614a03846152cb565b6040850152614fd2565b8060031415614aea57614fc5614a03846152cb565b60ff166060850152600191505b600101614f3a565b614fe26158f1565b6000614fec6158f1565b614ff461595c565b6150006149d98661523b565b90506000805b61500f836152aa565b15614af7578061503557615025614a46846152cb565b6001600160a01b03168452615123565b806001141561505d5761504a614a46846152cb565b6001600160a01b03166020850152615123565b806002141561507c57615072614a03846152cb565b6040850152615123565b806003141561509b57615091614a03846152cb565b6060850152615123565b80600414156150ba576150b0614a03846152cb565b6080850152615123565b80600514156150dc576150cf614a03846152cb565b60ff1660a0850152615123565b80600614156150fb576150f1614a03846152cb565b60c0850152615123565b8060071415614aea57615110614a03846152cb565b6001600160401b031660e0850152600191505b600101615006565b615133615869565b600061513d615869565b61514561595c565b6151516149d98661523b565b90506000805b615160836152aa565b15614af7578061518657615176614a46846152cb565b6001600160a01b03168452615233565b80600114156151ae5761519b614a46846152cb565b6001600160a01b03166020850152615233565b80600214156151cd576151c3614a03846152cb565b6040850152615233565b80600314156151ec576151e2614a03846152cb565b6060850152615233565b806004141561520b57615201614a03846152cb565b6080850152615233565b8060051415614aea57615220614a03846152cb565b6001600160401b031660a0850152600191505b600101615157565b61524361597c565b506040805180820190915281518152602082810190820152919050565b61526861595c565b61527182615699565b61527a57600080fd5b600061528983602001516156d3565b60208085015160408051808201909152868152920190820152915050919050565b60006152b461597c565b505080518051602091820151919092015191011190565b6152d361597c565b6152dc826152aa565b6152e557600080fd5b602082015160006152f582615736565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061532e57508151602110155b61533757600080fd5b600061534683602001516156d3565b905080836000015110156153a1576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015613a0e57506020919091036101000a90049392505050565b80516000906015146153df57600080fd5b6113eb82615319565b60608151600114801561541a5750607f60f81b8260008151811061540857fe5b01602001516001600160f81b03191611155b1561542657508061157f565b6113eb6154388351608060ff166155a1565b83615524565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416615482575060186154a6565b6fffffffffffffffffffffffffffffffff1984166154a2575060106154a6565b5060005b60208110156154dc578181815181106154bb57fe5b01602001516001600160f81b031916156154d4576154dc565b6001016154a6565b60008160200390506060816040519080825280601f01601f191660200182016040528015615511576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b8183101561555557805183526020928301920161553d565b50855184518101855292509050808201602086015b8183101561558257805183526020928301920161556a565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106155f1576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b6040805160018082528183019092526060916020820181803683370190505090506037841161564b5782840160f81b8160008151811061562d57fe5b60200101906001600160f81b031916908160001a90535090506113eb565b60606156568561543e565b90508381510160370160f81b8260008151811061566f57fe5b60200101906001600160f81b031916908160001a9053506156908282615524565b95945050505050565b80516000906156aa5750600061157f565b6020820151805160001a9060c08210156156c95760009250505061157f565b5060019392505050565b8051600090811a60808110156156ed57600091505061157f565b60b8811080615708575060c08110801590615708575060f881105b1561571757600191505061157f565b60c081101561572b5760b51901905061157f565b60f51901905061157f565b80516000908190811a60808110156157515760019150615862565b60b881101561576657607e1981019150615862565b60c08110156157e057600060b78203600186019550806020036101000a8651049150600181018201935050808310156157da576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50615862565b60f88110156157f55760be1981019150615862565b600060f78203600186019550806020036101000a865104915060018101820193505080831015615860576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c081019190915290565b604080518082019091526000808252602082015290565b6040805161010081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081019190915290565b60408051608081018252600080825260208201819052918101829052606081019190915290565b604051806040016040528061596f61597c565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe6d73672e76616c7565206d757374206265204e202a203165313020616e642067726561746572207468616e2073756d206f66206d696e6952656c617946656520616e64206d6972726f724665656f6e6c79206265703230206f776e65722063616e20617070726f766520746869732062696e64207265717565737465787069726554696d65206d7573742062652074776f206d696e75746573206c6174657220616e64206f6e6520646179206561726c69657272656c6179466565206d757374206265204e202a203165313020616e642067726561746572207468616e206d696e6952656c6179466565636f6e74616374206164647265737320646f65736e277420657175616c20746f2074686520636f6e7472616374206164647265737320696e2062696e64207265717565737473796d626f6c2073686f756c64206f6e6c7920636f6e7461696e20616c70686162657420616e64206e756d626572536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f776d73672e76616c7565206d757374206265204e202a203165313020616e64206e6f206c6573732073756d206f66206d696e6952656c617946656520616e642073796e63466565746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e747261637474686520626570323020746f6b656e20697320696e206d6972726f722070656e64696e6720737461747573a2646970667358221220d5a978e7f66cfd1df68dce9198b278a4a761278f29fe7aab4682c9ea36b909d264736f6c63430006040033", - }, - { - ContractAddr: TokenHubContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/af4f3993303213052222f55c721e661862d19638", - Code: "60806040526004361061031e5760003560e01c80639a99b4f0116101ab578063bd466461116100f7578063f014847211610095578063fc1a598f1161006f578063fc1a598f14610cb3578063fc3e590814610996578063fd6a687914610ce6578063ff9c00271461068657610366565b8063f014847214610c74578063f9a2bbc714610c89578063fa9e915914610c9e57610366565b8063d9e6dae9116100d1578063d9e6dae914610608578063dc927faf14610c35578063e1c7392a14610c4a578063ebf71d5314610c5f57610366565b8063bd46646114610b68578063c81b166214610b9b578063c8509d8114610bb057610366565b8063aa7415f511610164578063b99328c51161013e578063b99328c514610ad2578063b9fd21e314610b0b578063ba35ead614610b20578063bbface1f14610b3557610366565b8063aa7415f5146109ab578063ab51bb96146109f2578063ac43175114610a0757610366565b80639a99b4f0146109095780639dc0926214610942578063a1a11bf514610957578063a496fba21461096c578063a78abc1614610981578063a7c9f02d1461099657610366565b8063613684751161026a57806375d47a0a116102235780638b87b21f116101fd5780638b87b21f146105875780638eff336c146108a057806396713da9146108df5780639a854bbd146108f457610366565b806375d47a0a146107f15780637942fd0514610806578063831d65d11461081b57610366565b8063613684751461060857806366dea52a146106865780636e0565201461069b5780636e47b482146107c757806370fd5bad1461068657806371d30863146107dc57610366565b806343a368b9116102d757806350432d32116102b157806350432d321461061d57806351e806721461063257806359b92789146106475780635d499b1b1461067157610366565b806343a368b9146105c7578063493279b1146105dc5780634bf6c8821461060857610366565b80630bee7a671461036b5780631182b87514610399578063149d14d9146104935780633d713223146104ba5780633dffc3871461058757806343756e5c146105b257610366565b36610366573415610364576040805133815234602082015281517f6c98249d85d88c3753a04a22230f595e4dc8d3dc86c34af35deeeedc861b89db929181900390910190a15b005b600080fd5b34801561037757600080fd5b50610380610cfb565b6040805163ffffffff9092168252519081900360200190f35b3480156103a557600080fd5b5061041e600480360360408110156103bc57600080fd5b60ff8235169190810190604081016020820135600160201b8111156103e057600080fd5b8201836020820111156103f257600080fd5b803590602001918460018302840111600160201b8311171561041357600080fd5b509092509050610d00565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610458578181015183820152602001610440565b50505050905090810190601f1680156104855780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561049f57600080fd5b506104a8610e2e565b60408051918252519081900360200190f35b3480156104c657600080fd5b5061056b600480360360208110156104dd57600080fd5b810190602081018135600160201b8111156104f757600080fd5b82018360208201111561050957600080fd5b803590602001918460018302840111600160201b8311171561052a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610e34945050505050565b604080516001600160a01b039092168252519081900360200190f35b34801561059357600080fd5b5061059c610e58565b6040805160ff9092168252519081900360200190f35b3480156105be57600080fd5b5061056b610e5d565b3480156105d357600080fd5b506104a8610e63565b3480156105e857600080fd5b506105f1610e6f565b6040805161ffff9092168252519081900360200190f35b34801561061457600080fd5b5061059c610e74565b34801561062957600080fd5b506104a8610e79565b34801561063e57600080fd5b5061056b610e84565b34801561065357600080fd5b5061056b6004803603602081101561066a57600080fd5b5035610e8a565b34801561067d57600080fd5b506104a8610ea5565b34801561069257600080fd5b5061059c610eae565b6107b3600480360360808110156106b157600080fd5b810190602081018135600160201b8111156106cb57600080fd5b8201836020820111156106dd57600080fd5b803590602001918460208302840111600160201b831117156106fe57600080fd5b919390929091602081019035600160201b81111561071b57600080fd5b82018360208201111561072d57600080fd5b803590602001918460208302840111600160201b8311171561074e57600080fd5b919390929091602081019035600160201b81111561076b57600080fd5b82018360208201111561077d57600080fd5b803590602001918460208302840111600160201b8311171561079e57600080fd5b91935091503567ffffffffffffffff16610eb3565b604080519115158252519081900360200190f35b3480156107d357600080fd5b5061056b611388565b3480156107e857600080fd5b506104a861138e565b3480156107fd57600080fd5b5061056b611394565b34801561081257600080fd5b5061059c61139a565b34801561082757600080fd5b506103646004803603604081101561083e57600080fd5b60ff8235169190810190604081016020820135600160201b81111561086257600080fd5b82018360208201111561087457600080fd5b803590602001918460018302840111600160201b8311171561089557600080fd5b50909250905061139f565b3480156108ac57600080fd5b50610364600480360360608110156108c357600080fd5b508035906001600160a01b0360208201351690604001356114e8565b3480156108eb57600080fd5b5061059c61156e565b34801561090057600080fd5b506104a8611573565b34801561091557600080fd5b506104a86004803603604081101561092c57600080fd5b506001600160a01b03813516906020013561157f565b34801561094e57600080fd5b5061056b6116bd565b34801561096357600080fd5b5061056b6116c3565b34801561097857600080fd5b5061059c6116c9565b34801561098d57600080fd5b506107b36116ce565b3480156109a257600080fd5b5061059c6116d7565b6107b3600480360360808110156109c157600080fd5b5080356001600160a01b03908116916020810135909116906040810135906060013567ffffffffffffffff166116dc565b3480156109fe57600080fd5b506103806116c9565b348015610a1357600080fd5b5061036460048036036040811015610a2a57600080fd5b810190602081018135600160201b811115610a4457600080fd5b820183602082011115610a5657600080fd5b803590602001918460018302840111600160201b83111715610a7757600080fd5b919390929091602081019035600160201b811115610a9457600080fd5b820183602082011115610aa657600080fd5b803590602001918460018302840111600160201b83111715610ac757600080fd5b509092509050611d9d565b348015610ade57600080fd5b5061036460048036036040811015610af557600080fd5b50803590602001356001600160a01b031661200c565b348015610b1757600080fd5b506104a8612082565b348015610b2c57600080fd5b506104a861208c565b348015610b4157600080fd5b506104a860048036036020811015610b5857600080fd5b50356001600160a01b0316612092565b348015610b7457600080fd5b506104a860048036036020811015610b8b57600080fd5b50356001600160a01b03166120a4565b348015610ba757600080fd5b5061056b6120bf565b348015610bbc57600080fd5b5061036460048036036040811015610bd357600080fd5b60ff8235169190810190604081016020820135600160201b811115610bf757600080fd5b820183602082011115610c0957600080fd5b803590602001918460018302840111600160201b83111715610c2a57600080fd5b5090925090506120c5565b348015610c4157600080fd5b5061056b612195565b348015610c5657600080fd5b5061036461219b565b348015610c6b57600080fd5b5061059c61223b565b348015610c8057600080fd5b5061059c612240565b348015610c9557600080fd5b5061056b612245565b348015610caa57600080fd5b506104a861224b565b348015610cbf57600080fd5b5061041e60048036036020811015610cd657600080fd5b50356001600160a01b0316612251565b348015610cf257600080fd5b5061056b612378565b606481565b60005460609060ff16610d48576040805162461bcd60e51b815260206004820152601960248201526000805160206147a8833981519152604482015290519081900360640190fd5b3361200014610d885760405162461bcd60e51b815260040180806020018281038252602f815260200180614756602f913960400191505060405180910390fd5b60ff841660021415610dda57610dd383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061237e92505050565b9050610e27565b6040805162461bcd60e51b815260206004820152601860248201527f756e7265636f676e697a65642073796e207061636b6167650000000000000000604482015290519081900360640190fd5b9392505050565b60015490565b6020818101516000908152600490915260409020546001600160a01b03165b919050565b600181565b61100181565b670de0b6b3a764000081565b606181565b600881565b66071afd498d000081565b61200081565b6000908152600460205260409020546001600160a01b031690565b6402540be40081565b600281565b6000805460ff16610ef9576040805162461bcd60e51b815260206004820152601960248201526000805160206147a8833981519152604482015290519081900360640190fd5b868514610f375760405162461bcd60e51b815260040180806020018281038252603b81526020018061471b603b913960400191505060405180910390fd5b868314610f755760405162461bcd60e51b815260040180806020018281038252603f8152602001806145ee603f913960400191505060405180910390fd5b426078018267ffffffffffffffff161015610fc15760405162461bcd60e51b81526004018080602001828103825260248152602001806144de6024913960400191505060405180910390fd5b6402540be4003406156110055760405162461bcd60e51b815260040180806020018281038252604081526020018061481e6040913960400191505060405180910390fd5b60408051868152602080880282010190915285906000908190606090848015611038578160200160208202803683370190505b50905060005b84811015611113576402540be4008b8b8381811061105857fe5b905060200201358161106657fe5b06156110a35760405162461bcd60e51b815260040180806020018281038252603c81526020018061462d603c913960400191505060405180910390fd5b6110c88b8b838181106110b257fe5b90506020020135856124a290919063ffffffff16565b93506110f46402540be4008c8c848181106110df57fe5b905060200201356124fc90919063ffffffff16565b82828151811061110057fe5b602090810291909101015260010161103e565b506001546111389061112b908663ffffffff61253e16565b849063ffffffff6124a216565b3410156111765760405162461bcd60e51b81526004018080602001828103825260568152602001806147c86056913960600191505060405180910390fd5b611186348463ffffffff61259716565b9150611190614337565b6040518060c001604052806221272160e91b60001b815260200160006001600160a01b031681526020018381526020018e8e808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505050908252506040805160208c810282810182019093528c82529283019290918d918d91829185019084908082843760009201919091525050509082525067ffffffffffffffff8916602090910152905061200063f7a251d76003611254846125d9565b611269876402540be40063ffffffff6124fc16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156112c75781810151838201526020016112af565b50505050905090810190601f1680156112f45780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561131557600080fd5b505af1158015611329573d6000803e3d6000fd5b505060408051600081523360208201528082018890526060810187905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a15060019c9b505050505050505050505050565b61100581565b60015481565b61100881565b600b81565b60005460ff166113e4576040805162461bcd60e51b815260206004820152601960248201526000805160206147a8833981519152604482015290519081900360640190fd5b33612000146114245760405162461bcd60e51b815260040180806020018281038252602f815260200180614756602f913960400191505060405180910390fd5b60ff8316600314156114745761146f82828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061289492505050565b6114e3565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a15b505050565b33611008146115285760405162461bcd60e51b81526004018080602001828103825260238152602001806147856023913960400191505060405180910390fd5b600083815260046020908152604080832080546001600160a01b039096166001600160a01b03199096168617905593825260038152838220949094556002909352912055565b600981565b677ce66c50e284000081565b6000805460ff166115c5576040805162461bcd60e51b815260206004820152601960248201526000805160206147a8833981519152604482015290519081900360640190fd5b33611005146116055760405162461bcd60e51b815260040180806020018281038252602f815260200180614451602f913960400191505060405180910390fd5b60004783106116145747611616565b825b9050670de0b6b3a76400008111156116325760009150506116b7565b80156116b4576040516001600160a01b0385169082156108fc029083906000818181858888f1935050505015801561166e573d6000803e3d6000fd5b50604080516001600160a01b03861681526020810183905281517ff8b71c64315fc33b2ead2adfa487955065152a8ac33d9d5193aafd7f45dc15a0929181900390910190a15b90505b92915050565b61100781565b61100681565b600081565b60005460ff1681565b600381565b6000805460ff16611722576040805162461bcd60e51b815260206004820152601960248201526000805160206147a8833981519152604482015290519081900360640190fd5b426078018267ffffffffffffffff16101561176e5760405162461bcd60e51b81526004018080602001828103825260248152602001806144de6024913960400191505060405180910390fd5b6402540be4003406156117b25760405162461bcd60e51b815260040180806020018281038252604081526020018061481e6040913960400191505060405180910390fd5b600080806001600160a01b038816611891576001546117d890879063ffffffff6124a216565b3410156118165760405162461bcd60e51b81526004018080602001828103825260618152602001806145686061913960800191505060405180910390fd5b6402540be40086061561185a5760405162461bcd60e51b815260040180806020018281038252603c81526020018061462d603c913960400191505060405180910390fd5b61186a348763ffffffff61259716565b9050611881866402540be40063ffffffff6124fc16565b6221272160e91b93509150611b34565b6001600160a01b0388166000908152600360205260409020549250826118e85760405162461bcd60e51b81526004018080602001828103825260318152602001806145376031913960400191505060405180910390fd5b6001543410156119295760405162461bcd60e51b815260040180806020018281038252603f81526020018061468a603f913960400191505060405180910390fd5b506001600160a01b038716600090815260026020526040902054349060088111158061197457506008811180156119745750611972876007198301600a0a63ffffffff6128f016565b155b6119af5760405162461bcd60e51b815260040180806020018281038252603c81526020018061462d603c913960400191505060405180910390fd5b6119b98782612932565b92506119c484612972565b15611a0c576305f5e100831015611a0c5760405162461bcd60e51b815260040180806020018281038252603a815260200180614480603a913960400191505060405180910390fd5b600881101580611a265750600881108015611a2657508683115b611a615760405162461bcd60e51b81526004018080602001828103825260258152602001806145c96025913960400191505060405180910390fd5b677ce66c50e2840000831115611aa85760405162461bcd60e51b81526004018080602001828103825260358152602001806145026035913960400191505060405180910390fd5b604080516323b872dd60e01b81523360048201523060248201526044810189905290516001600160a01b038b16916323b872dd9160648083019260209291908290030181600087803b158015611afd57600080fd5b505af1158015611b11573d6000803e3d6000fd5b505050506040513d6020811015611b2757600080fd5b5051611b3257600080fd5b505b611b3c614337565b6040805160c0810182528581526001600160a01b038b166020820152815160018082528184018452919283019181602001602082028036833750505081526040805160018082528183019092526020928301929091908083019080368337505050815260408051600180825281830190925260209283019290919080830190803683370190505081526020018767ffffffffffffffff168152509050828160400151600081518110611bea57fe5b602002602001018181525050878160600151600081518110611c0857fe5b60200260200101906001600160a01b031690816001600160a01b031681525050338160800151600081518110611c3a57fe5b6001600160a01b039092166020928302919091019091015261200063f7a251d76003611c65846125d9565b611c7a866402540be40063ffffffff6124fc16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611cd8578181015183820152602001611cc0565b50505050905090810190601f168015611d055780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015611d2657600080fd5b505af1158015611d3a573d6000803e3d6000fd5b5050604080516001600160a01b038d1681523360208201528082018b90526060810186905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a150600198975050505050505050565b3361100714611ddd5760405162461bcd60e51b815260040180806020018281038252602e8152602001806146c9602e913960400191505060405180910390fd5b60208114611e32576040805162461bcd60e51b815260206004820152601b60248201527f65787065637465642076616c7565206c656e6774682069732033320000000000604482015290519081900360640190fd5b606084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8801819004810282018101909252868152939450606093925086915085908190840183828082843760009201919091525050505060208301519091506772656c617946656560c01b811415611f3a576020820151670de0b6b3a76400008111801590611ee157506402540be4008106155b611f32576040805162461bcd60e51b815260206004820152601960248201527f7468652072656c6179466565206f7574206f662072616e676500000000000000604482015290519081900360640190fd5b600155611f77565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a878787876040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050505050565b336110081461204c5760405162461bcd60e51b81526004018080602001828103825260238152602001806147856023913960400191505060405180910390fd5b600091825260046020908152604080842080546001600160a01b03191690556001600160a01b0392909216835260039052812055565b6221272160e91b81565b61c35081565b60026020526000908152604090205481565b6001600160a01b031660009081526003602052604090205490565b61100281565b60005460ff1661210a576040805162461bcd60e51b815260206004820152601960248201526000805160206147a8833981519152604482015290519081900360640190fd5b336120001461214a5760405162461bcd60e51b815260040180806020018281038252602f815260200180614756602f913960400191505060405180910390fd5b60ff8316600314156114745761146f82828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612a7892505050565b61100381565b60005460ff16156121f3576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b66071afd498d000060019081556000808052600260205260127fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b55805460ff19169091179055565b600481565b600581565b61100081565b61271081565b6001600160a01b03811660009081526003602090815260409182902054825182815280840190935260609290918391906020820181803683375050506020810183905290506000805b60208160ff1610156122e157828160ff16815181106122b557fe5b01602001516001600160f81b031916156122d4576001909101906122d9565b6122e1565b60010161229a565b5060608160ff166040519080825280601f01601f191660200182016040528015612312576020820181803683370190505b50905060005b8260ff168160ff16101561236e57838160ff168151811061233557fe5b602001015160f81c60f81b828260ff168151811061234f57fe5b60200101906001600160f81b031916908160001a905350600101612318565b5095945050505050565b61100481565b6060612388614383565b600061239384612b76565b91509150806123e9576040805162461bcd60e51b815260206004820152601f60248201527f756e7265636f676e697a6564207472616e73666572496e207061636b61676500604482015290519081900360640190fd5b60006123f483612cb5565b905063ffffffff811615612488576040808401516020808601516001600160a01b0316600090815260029091529182205461242f9190612932565b90506124396143b8565b60405180608001604052808660000151815260200183815260200186608001516001600160a01b031681526020018463ffffffff16815250905061247c81613002565b95505050505050610e53565b50506040805160008152602081019091529150610e539050565b6000828201838110156116b4576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60006116b483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506130de565b60008261254d575060006116b7565b8282028284828161255a57fe5b04146116b45760405162461bcd60e51b81526004018080602001828103825260218152602001806146696021913960400191505060405180910390fd5b60006116b483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613180565b60408051600680825260e08201909252606091829190816020015b60608152602001906001900390816125f45750508351909150612616906131da565b8160008151811061262357fe5b602002602001018190525061264483602001516001600160a01b03166131ed565b8160018151811061265157fe5b60200260200101819052506000836040015151905060608160405190808252806020026020018201604052801561269c57816020015b60608152602001906001900390816126875790505b50905060005b828110156126e9576126ca866040015182815181106126bd57fe5b60200260200101516131da565b8282815181106126d657fe5b60209081029190910101526001016126a2565b506126f381613210565b8360028151811061270057fe5b602002602001018190525060608260405190808252806020026020018201604052801561274157816020015b606081526020019060019003908161272c5790505b50905060005b83811015612797576127788760600151828151811061276257fe5b60200260200101516001600160a01b03166131ed565b82828151811061278457fe5b6020908102919091010152600101612747565b506127a181613210565b846003815181106127ae57fe5b60200260200101819052506060836040519080825280602002602001820160405280156127ef57816020015b60608152602001906001900390816127da5790505b50905060005b8481101561282f576128108860800151828151811061276257fe5b82828151811061281c57fe5b60209081029190910101526001016127f5565b5061283981613210565b8560048151811061284657fe5b60200260200101819052506128688760a0015167ffffffffffffffff166131da565b8560058151811061287557fe5b602002602001018190525061288985613210565b979650505050505050565b61289c6143df565b60006128a78361329a565b91509150806128e75760405162461bcd60e51b81526004018080602001828103825260248152602001806146f76024913960400191505060405180910390fd5b6114e382613465565b60006116b483836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f00000000000000008152506138e9565b6000600882111561295b57612954836007198401600a0a63ffffffff6124fc16565b90506116b7565b6116b4836008849003600a0a63ffffffff61253e16565b604080516020808252818301909252600091606091906020820181803683375050506020810184905290506000805b60208160ff1610156129e857828160ff16815181106129bc57fe5b01602001516001600160f81b031916156129db576001909101906129e0565b6129e8565b6001016129a1565b50600760ff82161015612a0057600092505050610e53565b816005820360ff1681518110612a1257fe5b6020910101516001600160f81b031916602d60f81b14612a3757600092505050610e53565b816001820360ff1681518110612a4957fe5b6020910101516001600160f81b031916604d60f81b14612a6e57600092505050610e53565b5060019392505050565b612a80614337565b6000612a8b8361394b565b9150915080612acb5760405162461bcd60e51b81526004018080602001828103825260248152602001806144ba6024913960400191505060405180910390fd5b612ad36143df565b602080840180516001600160a01b0390811684526040808701518585015291511660009081526002909252812054905b846040015151811015612b5457612b3185604001518281518110612b2357fe5b602002602001015183613baf565b85604001518281518110612b4157fe5b6020908102919091010152600101612b03565b506080840151604083015260056060830152612b6f82613465565b5050505050565b612b7e614383565b6000612b88614383565b612b90614416565b612ba1612b9c86613be8565b613c0d565b90506000805b612bb083613c57565b15612ca85780612bd257612bcb612bc684613c78565b613cc6565b8452612ca0565b8060011415612bff57612bec612be784613c78565b613d7d565b6001600160a01b03166020850152612ca0565b8060021415612c1e57612c14612bc684613c78565b6040850152612ca0565b8060031415612c4657612c33612be784613c78565b6001600160a01b03166060850152612ca0565b8060041415612c6e57612c5b612be784613c78565b6001600160a01b03166080850152612ca0565b8060051415612c9b57612c83612bc684613c78565b67ffffffffffffffff1660a085015260019150612ca0565b612ca8565b600101612ba7565b5091935090915050915091565b60208101516000906001600160a01b0316612dec578160a0015167ffffffffffffffff16421115612ce857506001610e53565b8160400151471015612cfc57506003610e53565b606082015160408084015190516000926001600160a01b0316916127109184818181858888f193505050503d8060008114612d53576040519150601f19603f3d011682016040523d82523d6000602084013e612d58565b606091505b5050905080612d6b575060049050610e53565b7f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5983602001518460600151856040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a15060009050610e53565b8160a0015167ffffffffffffffff16421115612e0a57506001610e53565b81516020808401516001600160a01b031660009081526003909152604090205414612e3757506002610e53565b602080830151604080516370a0823160e01b815230600482015290516000936001600160a01b03909316926370a082319261c3509260248083019392829003018187803b158015612e8757600080fd5b5086fa158015612e9b573d6000803e3d6000fd5b50505050506040513d6020811015612eb257600080fd5b50516040840151909150811015612ecd575060039050610e53565b600083602001516001600160a01b031663a9059cbb61c350866060015187604001516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b158015612f3e57600080fd5b5087f1158015612f52573d6000803e3d6000fd5b50505050506040513d6020811015612f6957600080fd5b505190508015612ff6577f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5984602001518560600151866040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a15060009150610e539050565b5060059150610e539050565b60408051600480825260a08201909252606091829190816020015b606081526020019060019003908161301d575050835190915061303f906131da565b8160008151811061304c57fe5b602002602001018190525061306483602001516131da565b8160018151811061307157fe5b602002602001018190525061309283604001516001600160a01b03166131ed565b8160028151811061309f57fe5b60200260200101819052506130bd836060015163ffffffff166131da565b816003815181106130ca57fe5b6020026020010181905250610e2781613210565b6000818361316a5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561312f578181015183820152602001613117565b50505050905090810190601f16801561315c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161317657fe5b0495945050505050565b600081848411156131d25760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561312f578181015183820152602001613117565b505050900390565b60606116b76131e883613d97565b613e7d565b60408051600560a21b8318601482015260348101909152606090610e2781613e7d565b60608151600014156132315750604080516000815260208101909152610e53565b60608260008151811061324057fe5b602002602001015190506000600190505b8351811015613281576132778285838151811061326a57fe5b6020026020010151613ecf565b9150600101613251565b50610e27613294825160c060ff16613f4c565b82613ecf565b6132a26143df565b60006132ac6143df565b6132b4614416565b6132c0612b9c86613be8565b90506000805b6132cf83613c57565b15612ca857806132f5576132e5612be784613c78565b6001600160a01b0316845261345d565b806001141561339657606061331161330c85613c78565b614044565b9050805160405190808252806020026020018201604052801561333e578160200160208202803683370190505b50602086015260005b815181101561338f5761336c82828151811061335f57fe5b6020026020010151613cc6565b8660200151828151811061337c57fe5b6020908102919091010152600101613347565b505061345d565b80600214156134385760606133ad61330c85613c78565b905080516040519080825280602002602001820160405280156133da578160200160208202803683370190505b50604086015260005b815181101561338f576134088282815181106133fb57fe5b6020026020010151613d7d565b8660400151828151811061341857fe5b6001600160a01b03909216602092830291909101909101526001016133e3565b8060031415612c9b5761344d612bc684613c78565b63ffffffff166060850152600191505b6001016132c6565b80516001600160a01b031661368f5760005b8160200151518110156136895760008260400151828151811061349657fe5b60200260200101516001600160a01b0316612710846020015184815181106134ba57fe5b60209081029190910101516040516000818181858888f193505050503d8060008114613502576040519150601f19603f3d011682016040523d82523d6000602084013e613507565b606091505b50509050806135ca577f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061354657fe5b60200260200101518560200151858151811061355e57fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a1613680565b7fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a83600001518460400151848151811061360057fe5b60200260200101518560200151858151811061361857fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b50600101613477565b506138e6565b60005b8160200151518110156138e457600082600001516001600160a01b031663a9059cbb61c350856040015185815181106136c757fe5b6020026020010151866020015186815181106136df57fe5b60200260200101516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b15801561373657600080fd5b5087f115801561374a573d6000803e3d6000fd5b50505050506040513d602081101561376157600080fd5b505190508015613825577fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a8360000151846040015184815181106137a157fe5b6020026020010151856020015185815181106137b957fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a16138db565b7f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061385b57fe5b60200260200101518560200151858151811061387357fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b50600101613692565b505b50565b600081836139385760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561312f578181015183820152602001613117565b5082848161394257fe5b06949350505050565b613953614337565b600061395d614337565b613965614416565b613971612b9c86613be8565b90506000805b61398083613c57565b15612ca8578061399d57613996612bc684613c78565b8452613ba7565b80600114156139c5576139b2612be784613c78565b6001600160a01b03166020850152613ba7565b8060021415613a545760606139dc61330c85613c78565b90508051604051908082528060200260200182016040528015613a09578160200160208202803683370190505b50604086015260005b8151811015613a4d57613a2a82828151811061335f57fe5b86604001518281518110613a3a57fe5b6020908102919091010152600101613a12565b5050613ba7565b8060031415613ae9576060613a6b61330c85613c78565b90508051604051908082528060200260200182016040528015613a98578160200160208202803683370190505b50606086015260005b8151811015613a4d57613ab98282815181106133fb57fe5b86606001518281518110613ac957fe5b6001600160a01b0390921660209283029190910190910152600101613aa1565b8060041415613b7e576060613b0061330c85613c78565b90508051604051908082528060200260200182016040528015613b2d578160200160208202803683370190505b50608086015260005b8151811015613a4d57613b4e8282815181106133fb57fe5b86608001518281518110613b5e57fe5b6001600160a01b0390921660209283029190910190910152600101613b36565b8060051415612c9b57613b93612bc684613c78565b67ffffffffffffffff1660a0850152600191505b600101613977565b60006008821115613bd157612954836007198401600a0a63ffffffff61253e16565b6116b4836008849003600a0a63ffffffff6124fc16565b613bf0614436565b506040805180820190915281518152602082810190820152919050565b613c15614416565b613c1e82614115565b613c2757600080fd5b6000613c368360200151614145565b60208085015160408051808201909152868152920190820152915050919050565b6000613c61614436565b505080518051602091820151919092015191011190565b613c80614436565b613c8982613c57565b613c9257600080fd5b60208201516000613ca2826141a8565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590613cdb57508151602110155b613ce457600080fd5b6000613cf38360200151614145565b90508083600001511015613d4e576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015613d7457826020036101000a820491505b50949350505050565b8051600090601514613d8e57600080fd5b6116b782613cc6565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416613ddb57506018613dff565b6fffffffffffffffffffffffffffffffff198416613dfb57506010613dff565b5060005b6020811015613e3557818181518110613e1457fe5b01602001516001600160f81b03191615613e2d57613e35565b600101613dff565b60008160200390506060816040519080825280601f01601f191660200182016040528015613e6a576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015613eaf5750607f60f81b82600081518110613e9d57fe5b01602001516001600160f81b03191611155b15613ebb575080610e53565b6116b7613ecd8351608060ff16613f4c565b835b6060806040519050835180825260208201818101602087015b81831015613f00578051835260209283019201613ee8565b50855184518101855292509050808201602086015b81831015613f2d578051835260209283019201613f15565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310613f9c576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b60408051600180825281830190925260609160208201818036833701905050905060378411613ff65782840160f81b81600081518110613fd857fe5b60200101906001600160f81b031916908160001a90535090506116b7565b606061400185613d97565b90508381510160370160f81b8260008151811061401a57fe5b60200101906001600160f81b031916908160001a90535061403b8282613ecf565b95945050505050565b606061404f82614115565b61405857600080fd5b6000614063836142db565b90506060816040519080825280602002602001820160405280156140a157816020015b61408e614436565b8152602001906001900390816140865790505b50905060006140b38560200151614145565b60208601510190506000805b8481101561410a576140d0836141a8565b91506040518060400160405280838152602001848152508482815181106140f357fe5b6020908102919091010152918101916001016140bf565b509195945050505050565b805160009061412657506000610e53565b6020820151805160001a9060c0821015612a6e57600092505050610e53565b8051600090811a608081101561415f576000915050610e53565b60b881108061417a575060c0811080159061417a575060f881105b15614189576001915050610e53565b60c081101561419d5760b519019050610e53565b60f519019050610e53565b80516000908190811a60808110156141c357600191506142d4565b60b88110156141d857607e19810191506142d4565b60c081101561425257600060b78203600186019550806020036101000a86510491506001810182019350508083101561424c576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b506142d4565b60f88110156142675760be19810191506142d4565b600060f78203600186019550806020036101000a8651049150600181018201935050808310156142d2576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b80516000906142ec57506000610e53565b600080905060006143008460200151614145565b602085015185519181019250015b8082101561432e5761431f826141a8565b6001909301929091019061430e565b50909392505050565b6040518060c001604052806000801916815260200160006001600160a01b03168152602001606081526020016060815260200160608152602001600067ffffffffffffffff1681525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b60408051608081018252600080825260208201819052918101829052606081019190915290565b604051806080016040528060006001600160a01b031681526020016060815260200160608152602001600063ffffffff1681525090565b6040518060400160405280614429614436565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe746865206d6573736167652073656e646572206d75737420626520696e63656e746976697a6520636f6e7472616374466f72206d696e69546f6b656e2c20746865207472616e7366657220616d6f756e74206d757374206e6f74206265206c657373207468616e2031756e7265636f676e697a6564207472616e736665724f75742073796e207061636b61676565787069726554696d65206d7573742062652074776f206d696e75746573206c61746572616d6f756e7420697320746f6f206c617267652c20657863656564206d6178696d756d206265703220746f6b656e20616d6f756e7474686520636f6e747261637420686173206e6f74206265656e20626f756e6420746f20616e79206265703220746f6b656e726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e736665724f757420424e4220616d6f756e7420616e64206d696e696d756d2072656c6179466565616d6f756e7420697320746f6f206c617267652c2075696e74323536206f766572666c6f774c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620726566756e644164647273696e76616c6964207472616e7366657220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e20746865206d696e696d756d2072656c6179466565746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374756e7265636f676e697a6564207472616e736665724f75742061636b207061636b6167654c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620616d6f756e7473746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d73672073656e646572206d75737420626520746f6b656e4d616e6167657274686520636f6e7472616374206e6f7420696e69742079657400000000000000726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e7366657220424e4220616d6f756e7420616e642072656c6179466565696e76616c696420726563656976656420424e4220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6ea2646970667358221220835eacc2107a8d1718a0f05e56e1f7d7731256afbbcfccbe6551048c3c72819b64736f6c63430006040033", - }, - { - ContractAddr: RelayerIncentivizeContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/af4f3993303213052222f55c721e661862d19638", - Code: "6080604052600436106102815760003560e01c8063930e1b091161014f578063bd4cc830116100c1578063e75d72c71161007a578063e75d72c7146107b5578063e89a3020146107e8578063f9a2bbc714610812578063fc3e590814610827578063fd6a68791461083c578063fdd31fcd1461085157610288565b8063bd4cc83014610722578063c81b16621461074c578063d0ab528a14610761578063dc927faf14610776578063dcae76ab1461078b578063e1c7392a146107a057610288565b8063a78abc1611610113578063a78abc16146105d3578063a7c6a59d146105e8578063ab51bb96146105fd578063ac43175114610612578063ace9fcc2146106e3578063af400681146106f857610288565b8063930e1b091461054c57806396713da91461057f5780639dc0926214610594578063a1a11bf5146105a9578063a3c3c0ad146105be57610288565b806343756e5c116101f35780636f93d2e6116101ac5780636f93d2e61461048457806370fd5bad146104e357806374f2272d146104f857806375d47a0a1461050d5780637942fd05146105225780637e146cc51461053757610288565b806343756e5c146103ef578063493279b1146104045780634bf6c8821461043057806351e8067214610445578063541333071461045a5780636e47b4821461046f57610288565b806312950c461161024557806312950c46146103215780631b20087c146103365780631c6433121461034b5780633a9756121461028d5780633dffc3871461039157806340bb43c0146103bc57610288565b8063081e9d131461028d57806308f2ec06146102b4578063093f2fc4146102c95780630bee7a67146102de57806310e06a761461030c57610288565b3661028857005b600080fd5b34801561029957600080fd5b506102a2610884565b60408051918252519081900360200190f35b3480156102c057600080fd5b506102a2610889565b3480156102d557600080fd5b506102a261088e565b3480156102ea57600080fd5b506102f3610893565b6040805163ffffffff9092168252519081900360200190f35b34801561031857600080fd5b506102a2610898565b34801561032d57600080fd5b506102a261089e565b34801561034257600080fd5b506102a26108a4565b34801561035757600080fd5b506103756004803603602081101561036e57600080fd5b50356108aa565b604080516001600160a01b039092168252519081900360200190f35b34801561039d57600080fd5b506103a6610884565b6040805160ff9092168252519081900360200190f35b3480156103c857600080fd5b506102a2600480360360208110156103df57600080fd5b50356001600160a01b03166108d1565b3480156103fb57600080fd5b506103756108e3565b34801561041057600080fd5b506104196108e9565b6040805161ffff9092168252519081900360200190f35b34801561043c57600080fd5b506103a66108ee565b34801561045157600080fd5b506103756108f3565b34801561046657600080fd5b506102a2610893565b34801561047b57600080fd5b506103756108f9565b34801561049057600080fd5b506104cf600480360360808110156104a757600080fd5b506001600160a01b0381358116916020810135909116906040810135906060013515156108ff565b604080519115158252519081900360200190f35b3480156104ef57600080fd5b506103a6610d91565b34801561050457600080fd5b506102a2610d96565b34801561051957600080fd5b50610375610d9c565b34801561052e57600080fd5b506103a6610da2565b34801561054357600080fd5b506102a2610da7565b34801561055857600080fd5b506102a26004803603602081101561056f57600080fd5b50356001600160a01b0316610dac565b34801561058b57600080fd5b506103a6610dbe565b3480156105a057600080fd5b50610375610dc3565b3480156105b557600080fd5b50610375610dc9565b3480156105ca57600080fd5b506102a2610dcf565b3480156105df57600080fd5b506104cf610dd5565b3480156105f457600080fd5b506102a2610dde565b34801561060957600080fd5b506102f3610de4565b34801561061e57600080fd5b506106e16004803603604081101561063557600080fd5b81019060208101813564010000000081111561065057600080fd5b82018360208201111561066257600080fd5b8035906020019184600183028401116401000000008311171561068457600080fd5b9193909290916020810190356401000000008111156106a257600080fd5b8201836020820111156106b457600080fd5b803590602001918460018302840111640100000000831117156106d657600080fd5b509092509050610de9565b005b3480156106ef57600080fd5b506102a2611537565b34801561070457600080fd5b506102a26004803603602081101561071b57600080fd5b503561153d565b34801561072e57600080fd5b506102a26004803603602081101561074557600080fd5b5035611598565b34801561075857600080fd5b506103756115b1565b34801561076d57600080fd5b506102a26115b7565b34801561078257600080fd5b506103756115bd565b34801561079757600080fd5b506102a26115c3565b3480156107ac57600080fd5b506106e16115c9565b3480156107c157600080fd5b506106e1600480360360208110156107d857600080fd5b50356001600160a01b0316611692565b3480156107f457600080fd5b506103756004803603602081101561080b57600080fd5b50356117eb565b34801561081e57600080fd5b506103756117f8565b34801561083357600080fd5b506103a66117fe565b34801561084857600080fd5b50610375611803565b34801561085d57600080fd5b506102a26004803603602081101561087457600080fd5b50356001600160a01b0316611809565b600181565b602881565b605081565b606481565b600b5481565b60015481565b600c5481565b600681815481106108b757fe5b6000918252602090912001546001600160a01b0316905081565b60076020526000908152604090205481565b61100181565b606181565b600881565b61200081565b61100581565b6000805460ff16610957576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604482015290519081900360640190fd5b33612000146109975760405162461bcd60e51b815260040180806020018281038252602f815260200180612377602f913960400191505060405180910390fd5b60008215610a4a576110026001600160a01b0316639a99b4f06110056109c8600e548861181b90919063ffffffff16565b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015610a1757600080fd5b505af1158015610a2b573d6000803e3d6000fd5b505050506040513d6020811015610a4157600080fd5b50519050610b59565b604080516309a99b4f60e41b8152611005600482015260248101869052905161100491639a99b4f09160448083019260209291908290030181600087803b158015610a9457600080fd5b505af1158015610aa8573d6000803e3d6000fd5b505050506040513d6020811015610abe57600080fd5b5051600e5490915015610b5957600e54604080516309a99b4f60e41b81526110056004820152602481019290925251610b569161100291639a99b4f0916044808201926020929091908290030181600087803b158015610b1d57600080fd5b505af1158015610b31573d6000803e3d6000fd5b505050506040513d6020811015610b4757600080fd5b5051829063ffffffff61181b16565b90505b600c805460010190556000610b6d8261187e565b600954909150610b83908263ffffffff61181b16565b600955600a54610bab908290610b9f908563ffffffff61181b16565b9063ffffffff6118a716565b600a556001600160a01b038716600090815260056020526040902054610c1757600680546001810182556000919091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319166001600160a01b0389161790555b6001600160a01b038088166000908152600560209081526040808320805460010190559289168252600790522054610c9557600880546001810182556000919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319166001600160a01b0388161790555b6001600160a01b038616600090815260076020526040902080546001019055600c54606411610d8457600b54600954600a5460408051938452602084019290925282820152517f2649b1b772a1a74bd332a67695e285317dd722941166595741c60a00fa65bb759181900360600190a16000610d0f6118e9565b90506000610d1b611bcd565b6001600160a01b0389166000908152600d6020526040902054909150610d59908290610d4d908563ffffffff61181b16565b9063ffffffff61181b16565b6001600160a01b0389166000908152600d6020526040812091909155600b80546001019055600c5550505b5060019695505050505050565b600281565b60035481565b61100881565b600b81565b600581565b60056020526000908152604090205481565b600981565b61100781565b61100681565b600a5481565b60005460ff1681565b60045481565b600081565b3361100714610e295760405162461bcd60e51b815260040180806020018281038252602e8152602001806122bc602e913960400191505060405180910390fd5b60005460ff16610e6a5760405162461bcd60e51b81526004018080602001828103825260218152602001806122ea6021913960400191505060405180910390fd5b610ede84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601f81527f68656164657252656c61796572526577617264526174654d6f6c6563756c650060208201529150611e4b9050565b15610fab5760208114610f225760405162461bcd60e51b81526004018080602001828103825260328152602001806123a66032913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610f6091858580838501838280828437600092019190915250611f3292505050565b9050600254811115610fa35760405162461bcd60e51b81526004018080602001828103825260608152602001806121956060913960600191505060405180910390fd5b6001556114a5565b61100484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051606081019091526022808252909250905061229a6020830139611e4b565b156110dc57602081146110485760405162461bcd60e51b815260040180806020018281038252602e81526020018061224b602e913960400191505060405180910390fd5b604080516020601f840181900481028201810190925282815260009161108691858580838501838280828437600092019190915250611f3292505050565b9050801580159061109957506001548110155b6110d45760405162461bcd60e51b815260040180806020018281038252606c81526020018061230b606c913960800191505060405180910390fd5b6002556114a5565b61115084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601a81527f63616c6c6572436f6d70656e736174696f6e4d6f6c6563756c6500000000000060208201529150611e4b9050565b1561121d57602081146111945760405162461bcd60e51b815260040180806020018281038252602e81526020018061224b602e913960400191505060405180910390fd5b604080516020601f84018190048102820181019092528281526000916111d291858580838501838280828437600092019190915250611f3292505050565b90506004548111156112155760405162461bcd60e51b81526004018080602001828103825260568152602001806121f56056913960600191505060405180910390fd5b6003556114a5565b61129184848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601d81527f63616c6c6572436f6d70656e736174696f6e44656e6f6d696e61746f7200000060208201529150611e4b9050565b1561136957602081146112d55760405162461bcd60e51b815260040180806020018281038252602e81526020018061224b602e913960400191505060405180910390fd5b604080516020601f840181900481028201810190925282815260009161131391858580838501838280828437600092019190915250611f3292505050565b9050801580159061132657506003548110155b6113615760405162461bcd60e51b81526004018080602001828103825260618152602001806121066061913960800191505060405180910390fd5b6004556114a5565b6113dd84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601b81527f64796e616d69634578747261496e63656e74697665416d6f756e74000000000060208201529150611e4b9050565b1561146857602081146114215760405162461bcd60e51b815260040180806020018281038252602e815260200180612167602e913960400191505060405180910390fd5b604080516020601f840181900481028201810190925282815260009161145f91858580838501838280828437600092019190915250611f3292505050565b600e55506114a5565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b60025481565b60006028821161154e575080611593565b81602810801561155f575060508211155b1561156c57506028611593565b60508211801561157d5750606e8211155b1561158d57506078819003611593565b50600481045b919050565b6000602882116115a9575080611593565b506028611593565b61100281565b600e5481565b61100381565b60095481565b60005460ff1615611621576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b60005460ff161561166f576040805162461bcd60e51b8152602060048201526013602482015272185b1c9958591e481a5b9a5d1a585b1a5e9959606a1b604482015290519081900360640190fd5b60018080556005600255600381905560506004556000805460ff19169091179055565b6001600160a01b0381166000908152600d6020526040902054806116f1576040805162461bcd60e51b81526020600482015260116024820152701b9bc81c995b185e595c881c995dd85c99607a1b604482015290519081900360640190fd5b6001600160a01b0382166000818152600d60205260408082208290555184929184156108fc02918591818181858888f193505050506117a15760405161100290819084156108fc029085906000818181858888f1935050505015801561175b573d6000803e3d6000fd5b506040805161100281526020810185905281517f24502838a334c8f2bb2ee1f8262a4fa7183e4489a717e96cc824e325f8b39e11929181900390910190a15050506117e8565b604080516001600160a01b03851681526020810184905281517f24502838a334c8f2bb2ee1f8262a4fa7183e4489a717e96cc824e325f8b39e11929181900390910190a150505b50565b600881815481106108b757fe5b61100081565b600381565b61100481565b600d6020526000908152604090205481565b600082820183811015611875576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b90505b92915050565b600061187860025461189b60015485611f3790919063ffffffff16565b9063ffffffff611f9016565b600061187583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611fd2565b600954600680546040805160208084028201810190925282815260009493859360609383018282801561194557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611927575b5050505050905060608151604051908082528060200260200182016040528015611979578160200160208202803683370190505b50905060005b8251811015611a0657600083828151811061199657fe5b6020026020010151905060006119d060056000846001600160a01b03166001600160a01b0316815260200190815260200160002054611598565b9050808484815181106119df57fe5b60209081029190910101526119fa868263ffffffff61181b16565b9550505060010161197f565b506000611a2460045461189b60035488611f3790919063ffffffff16565b9050611a36858263ffffffff6118a716565b94508460015b8451811015611b0d576000611a718761189b8a888681518110611a5b57fe5b6020026020010151611f3790919063ffffffff16565b9050611abe81600d6000898681518110611a8757fe5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205461181b90919063ffffffff16565b600d6000888581518110611ace57fe5b6020908102919091018101516001600160a01b0316825281019190915260400160002055611b02838263ffffffff6118a716565b925050600101611a3c565b50611b2381600d600087600081518110611a8757fe5b600d600086600081518110611b3457fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002081905550600060098190555060008090505b8451811015611bb55760056000868381518110611b8757fe5b6020908102919091018101516001600160a01b03168252810191909152604001600090812055600101611b6e565b50611bc2600660006120ce565b509450505050505b90565b600a546008805460408051602080840282018101909252828152600094938593606093830182828015611c2957602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611c0b575b5050505050905060608151604051908082528060200260200182016040528015611c5d578160200160208202803683370190505b50905060005b8251811015611cdc576000838281518110611c7a57fe5b602002602001015190506000611cb460076000846001600160a01b03166001600160a01b031681526020019081526020016000205461153d565b905080848481518110611cc357fe5b6020908102919091010152949094019350600101611c63565b506000611cfa60045461189b60035488611f3790919063ffffffff16565b9050611d0c858263ffffffff6118a716565b94508460015b8451811015611d96576000611d318761189b8a888681518110611a5b57fe5b9050611d4781600d6000898681518110611a8757fe5b600d6000888581518110611d5757fe5b6020908102919091018101516001600160a01b0316825281019190915260400160002055611d8b838263ffffffff6118a716565b925050600101611d12565b50611dac81600d600087600081518110611a8757fe5b600d600086600081518110611dbd57fe5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020819055506000600a8190555060008090505b8451811015611e3e5760076000868381518110611e1057fe5b6020908102919091018101516001600160a01b03168252810191909152604001600090812055600101611df7565b50611bc2600860006120ce565b6000816040516020018082805190602001908083835b60208310611e805780518252601f199092019160209182019101611e61565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310611eee5780518252601f199092019160209182019101611ecf565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b600082611f4657506000611878565b82820282848281611f5357fe5b04146118755760405162461bcd60e51b81526004018080602001828103825260218152602001806122796021913960400191505060405180910390fd5b600061187583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612069565b600081848411156120615760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561202657818101518382015260200161200e565b50505050905090810190601f1680156120535780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600081836120b85760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561202657818101518382015260200161200e565b5060008385816120c457fe5b0495945050505050565b50805460008255906000526020600020908101906117e89190611bca91905b8082111561210157600081556001016120ed565b509056fe746865206e657743616c6c6572436f6d70656e736174696f6e44656e6f6d696e61746f72206d757374206e6f74206265207a65726f20616e64206e6f206c657373207468616e2063616c6c6572436f6d70656e736174696f6e4d6f6c6563756c656c656e677468206f662064796e616d69634578747261496e63656e74697665416d6f756e74206d69736d617463686e65772068656164657252656c61796572526577617264526174654d6f6c6563756c652073686f756c646e27742062652067726561746572207468616e2068656164657252656c617965725265776172645261746544656e6f6d696e61746f726e65772063616c6c6572436f6d70656e736174696f6e4d6f6c6563756c652073686f756c646e27742062652067726561746572207468616e2063616c6c6572436f6d70656e736174696f6e44656e6f6d696e61746f726c656e677468206f6620726577617264466f7256616c696461746f725365744368616e6765206d69736d61746368536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7768656164657252656c617965725265776172645261746544656e6f6d696e61746f72746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374636f6e747261637420686173206e6f74206265656e20696e697469616c697a6564746865206e65772068656164657252656c617965725265776172645261746544656e6f6d696e61746f72206d757374206e6f74206265207a65726f20616e64206e6f206c657373207468616e2068656164657252656c61796572526577617264526174654d6f6c6563756c65746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e74726163746c656e677468206f662068656164657252656c61796572526577617264526174654d6f6c6563756c65206d69736d61746368a2646970667358221220627dba6e536686005f0eaa9f77c130ba330278d37049b690a78442862109871c64736f6c63430006040033", - }, - }, - } - - MirrorUpgrade[networkname.RialtoChainName] = &Upgrade{ - UpgradeName: "mirror", - Configs: []*UpgradeConfig{ - { - ContractAddr: TokenManagerContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/af4f3993303213052222f55c721e661862d19638", - Code: "6080604052600436106103815760003560e01c80637d078e13116101d1578063b795031711610102578063d9e6dae9116100a0578063fa9e91591161006f578063fa9e915914610d38578063fc3e5908146105b2578063fd6a687914610d4d578063fe3a2af514610d6257610381565b8063d9e6dae9146106fc578063dc927faf14610cf9578063e605bca014610d0e578063f9a2bbc714610d2357610381565b8063c8509d81116100dc578063c8509d8114610bdf578063c8e704a4146105b2578063d117a11014610c64578063d7109ce614610ce457610381565b8063b79503171461073b578063bd32d3f9146104d9578063c81b166214610bca57610381565b80639a854bbd1161016f578063a78abc1611610149578063a78abc1614610ad5578063ab51bb9614610aea578063ab67a4851461073b578063ac43175114610aff57610381565b80639a854bbd14610a965780639dc0926214610aab578063a1a11bf514610ac057610381565b8063859180fb116101ab578063859180fb146106e757806394553a4e14610a3757806395b9ad2614610a6c57806396713da914610a8157610381565b80637d078e13146104ee5780637ec816dd1461099b578063831d65d1146109b057610381565b8063493279b1116102b657806366dea52a1161025457806372c4e0861161022357806372c4e0861461081957806375d47a0a146108bd57806377d9dae8146108d25780637942fd051461098657610381565b806366dea52a1461073b5780636b3f1307146107505780636e47b4821461080457806370fd5bad1461073b57610381565b806351e806721161029057806351e80672146107115780635d499b1b146107265780635f558f861461073b57806361368475146106fc57610381565b8063493279b1146106bb5780634bc81c00146106e75780634bf6c882146106fc57610381565b80632e02d77611610323578063401809f9116102fd578063401809f9146105b257806343756e5c146105c7578063445fcefe146105f8578063487c88ac146104ee57610381565b80632e02d7761461054c57806337e6ecda1461057f5780633dffc387146104ee57610381565b80631f91600b1161035f5780631f91600b146104d957806323996b53146104ee57806325c751b7146105035780632d89ac32146104ee57610381565b80630bee7a67146103865780630f212b1b146103b45780631182b875146103df575b600080fd5b34801561039257600080fd5b5061039b610d77565b6040805163ffffffff9092168252519081900360200190f35b3480156103c057600080fd5b506103c9610d7c565b6040805160ff9092168252519081900360200190f35b3480156103eb57600080fd5b506104646004803603604081101561040257600080fd5b60ff8235169190810190604081016020820135600160201b81111561042657600080fd5b82018360208201111561043857600080fd5b803590602001918460018302840111600160201b8311171561045957600080fd5b509092509050610d81565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561049e578181015183820152602001610486565b50505050905090810190601f1680156104cb5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156104e557600080fd5b506103c9610e9b565b3480156104fa57600080fd5b506103c9610ea0565b6105386004803603604081101561051957600080fd5b5080356001600160a01b031690602001356001600160401b0316610ea5565b604080519115158252519081900360200190f35b34801561055857600080fd5b506105386004803603602081101561056f57600080fd5b50356001600160a01b03166113f1565b34801561058b57600080fd5b50610538600480360360208110156105a257600080fd5b50356001600160a01b0316611406565b3480156105be57600080fd5b506103c961141b565b3480156105d357600080fd5b506105dc611420565b604080516001600160a01b039092168252519081900360200190f35b34801561060457600080fd5b506106a96004803603602081101561061b57600080fd5b810190602081018135600160201b81111561063557600080fd5b82018360208201111561064757600080fd5b803590602001918460018302840111600160201b8311171561066857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611426945050505050565b60408051918252519081900360200190f35b3480156106c757600080fd5b506106d0611584565b6040805161ffff9092168252519081900360200190f35b3480156106f357600080fd5b506103c961158a565b34801561070857600080fd5b506103c961158f565b34801561071d57600080fd5b506105dc611594565b34801561073257600080fd5b506106a961159a565b34801561074757600080fd5b506103c96115a3565b6105386004803603604081101561076657600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561079057600080fd5b8201836020820111156107a257600080fd5b803590602001918460018302840111600160201b831117156107c357600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506115a8945050505050565b34801561081057600080fd5b506105dc611e7e565b6105386004803603602081101561082f57600080fd5b810190602081018135600160201b81111561084957600080fd5b82018360208201111561085b57600080fd5b803590602001918460018302840111600160201b8311171561087c57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611e84945050505050565b3480156108c957600080fd5b506105dc6122d0565b610538600480360360408110156108e857600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561091257600080fd5b82018360208201111561092457600080fd5b803590602001918460018302840111600160201b8311171561094557600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506122d6945050505050565b34801561099257600080fd5b506103c96127dc565b3480156109a757600080fd5b506106a96127e1565b3480156109bc57600080fd5b50610a35600480360360408110156109d357600080fd5b60ff8235169190810190604081016020820135600160201b8111156109f757600080fd5b820183602082011115610a0957600080fd5b803590602001918460018302840111600160201b83111715610a2a57600080fd5b5090925090506127e7565b005b61053860048036036040811015610a4d57600080fd5b5080356001600160a01b031690602001356001600160401b0316612936565b348015610a7857600080fd5b506103c961332d565b348015610a8d57600080fd5b506103c9613332565b348015610aa257600080fd5b506106a9613337565b348015610ab757600080fd5b506105dc613343565b348015610acc57600080fd5b506105dc613349565b348015610ae157600080fd5b5061053861334f565b348015610af657600080fd5b5061039b613358565b348015610b0b57600080fd5b50610a3560048036036040811015610b2257600080fd5b810190602081018135600160201b811115610b3c57600080fd5b820183602082011115610b4e57600080fd5b803590602001918460018302840111600160201b83111715610b6f57600080fd5b919390929091602081019035600160201b811115610b8c57600080fd5b820183602082011115610b9e57600080fd5b803590602001918460018302840111600160201b83111715610bbf57600080fd5b50909250905061335d565b348015610bd657600080fd5b506105dc613632565b348015610beb57600080fd5b50610a3560048036036040811015610c0257600080fd5b60ff8235169190810190604081016020820135600160201b811115610c2657600080fd5b820183602082011115610c3857600080fd5b803590602001918460018302840111600160201b83111715610c5957600080fd5b509092509050613638565b348015610c7057600080fd5b50610c8e60048036036020811015610c8757600080fd5b503561370e565b6040805160ff988916815260208101979097526001600160a01b03909516868601526060860193909352608085019190915290931660a08301526001600160401b0390921660c082015290519081900360e00190f35b348015610cf057600080fd5b506106a9613765565b348015610d0557600080fd5b506105dc61376a565b348015610d1a57600080fd5b506106a9613770565b348015610d2f57600080fd5b506105dc613776565b348015610d4457600080fd5b506106a961377c565b348015610d5957600080fd5b506105dc613782565b348015610d6e57600080fd5b506103c9613358565b606481565b600681565b60603361200014610dc35760405162461bcd60e51b815260040180806020018281038252602f815260200180615b8a602f913960400191505060405180910390fd5b60ff841660011415610e1557610e0e83838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061378892505050565b9050610e94565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605848484604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a1506040805160008152602081019091525b9392505050565b600481565b600181565b6040805163bd46646160e01b81526001600160a01b0384166004820152905160009182916110049163bd466461916024808301926020929190829003018186803b158015610ef257600080fd5b505afa158015610f06573d6000803e3d6000fd5b505050506040513d6020811015610f1c57600080fd5b5051905080610f5e576040805162461bcd60e51b81526020600482015260096024820152681b9bdd08189bdd5b9960ba1b604482015290519081900360640190fd5b6001600160a01b03841660009081526003602052604090205460ff16610fc1576040805162461bcd60e51b81526020600482015260136024820152723737ba103137bab73210313c9036b4b93937b960691b604482015290519081900360640190fd5b60006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b158015610ffe57600080fd5b505afa158015611012573d6000803e3d6000fd5b505050506040513d602081101561102857600080fd5b505190506402540be4003406158015611053575060055461104f908263ffffffff613a1816565b3410155b61108e5760405162461bcd60e51b8152600401808060200182810382526046815260200180615b166046913960600191505060405180910390fd5b42607801846001600160401b0316101580156110b85750426201518001846001600160401b031611155b6110f35760405162461bcd60e51b8152600401808060200182810382526038815260200180615a136038913960400191505060405180910390fd5b6000856001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561112e57600080fd5b505afa158015611142573d6000803e3d6000fd5b505050506040513d602081101561115857600080fd5b50516040805163313ce56760e01b815290519192506000916001600160a01b0389169163313ce567916004808301926020929190829003018186803b1580156111a057600080fd5b505afa1580156111b4573d6000803e3d6000fd5b505050506040513d60208110156111ca57600080fd5b50519050677ce66c50e28400006111e48360ff8416613a72565b1115611230576040805162461bcd60e51b8152602060048201526016602482015275746f6f206c6172676520746f74616c20737570706c7960501b604482015290519081900360640190fd5b600554611004906108fc9061124c90349063ffffffff613b0116565b6040518115909202916000818181858888f19350505050158015611274573d6000803e3d6000fd5b5061127d61586a565b6040518060c00160405280336001600160a01b03168152602001896001600160a01b031681526020018681526020018481526020016112cc6402540be400600554613b4390919063ffffffff16565b81526001600160401b038916602090910152905061200063f7a251d760056112f384613b85565b61131d6402540be40061131160055434613b0190919063ffffffff16565b9063ffffffff613b4316565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561137b578181015183820152602001611363565b50505050905090810190601f1680156113a85780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156113c957600080fd5b505af11580156113dd573d6000803e3d6000fd5b505050506001955050505050505b92915050565b60036020526000908152604090205460ff1681565b60026020526000908152604090205460ff1681565b600381565b61100181565b602081015160009061143661589f565b50600081815260016020818152604092839020835160e081018552815460ff9081168252938201549281019290925260028101546001600160a01b031693820184905260038101546060830152600481015460808301526005015491821660a08201526101009091046001600160401b031660c0820152906114bd5760009250505061157f565b600081604001516001600160a01b03166370a082316110046040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561151b57600080fd5b505afa15801561152f573d6000803e3d6000fd5b505050506040513d602081101561154557600080fd5b5051608083015160608401519192506000916115669163ffffffff613b0116565b9050611578818363ffffffff613b0116565b9450505050505b919050565b61058981565b600581565b600881565b61200081565b6402540be40081565b600281565b6001600160a01b03821660009081526002602052604081205460ff16156116005760405162461bcd60e51b815260040180806020018281038252602b815260200180615bb9602b913960400191505060405180910390fd5b600061160b83613cba565b905061161561589f565b50600081815260016020818152604092839020835160e081018552815460ff90811682529382015492810183905260028201546001600160a01b03169481019490945260038101546060850152600481015460808501526005015491821660a08401526101009091046001600160401b031660c08301526116da576040805162461bcd60e51b815260206004820152601a602482015279189a5b99081c995c5d595cdd08191bd95cdb89dd08195e1a5cdd60321b604482015290519081900360640190fd5b60006116f782608001518360600151613b0190919063ffffffff16565b905081604001516001600160a01b0316866001600160a01b03161461174d5760405162461bcd60e51b8152600401808060200182810382526045815260200180615a826045913960600191505060405180910390fd5b336001600160a01b0316866001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b15801561179057600080fd5b505afa1580156117a4573d6000803e3d6000fd5b505050506040513d60208110156117ba57600080fd5b50516001600160a01b0316146118015760405162461bcd60e51b815260040180806020018281038252602e8152602001806159e5602e913960400191505060405180910390fd5b604080516370a0823160e01b8152611004600482015290516000916001600160a01b038916916370a0823191602480820192602092909190829003018186803b15801561184d57600080fd5b505afa158015611861573d6000803e3d6000fd5b505050506040513d602081101561187757600080fd5b505160408051636eb1769f60e11b8152336004820152306024820152905191925083916119089184916001600160a01b038c169163dd62ed3e916044808301926020929190829003018186803b1580156118d057600080fd5b505afa1580156118e4573d6000803e3d6000fd5b505050506040513d60208110156118fa57600080fd5b50519063ffffffff613a1816565b101561195b576040805162461bcd60e51b815260206004820152601760248201527f616c6c6f77616e6365206973206e6f7420656e6f756768000000000000000000604482015290519081900360640190fd5b600034905060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b15801561199d57600080fd5b505afa1580156119b1573d6000803e3d6000fd5b505050506040513d60208110156119c757600080fd5b505190508082108015906119e057506402540be4008206155b611a1b5760405162461bcd60e51b8152600401808060200182810382526037815260200180615a4b6037913960400191505060405180910390fd5b6000611a27868b613cc1565b905063ffffffff8116611c26576001600160a01b038a166323b872dd33611004611a57898963ffffffff613b0116565b6040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b031681526020018281526020019350505050602060405180830381600087803b158015611abf57600080fd5b505af1158015611ad3573d6000803e3d6000fd5b505050506040513d6020811015611ae957600080fd5b5050602086015160408088015160a089015182516323bfccdb60e21b815260048101949094526001600160a01b03909116602484015260ff1660448301525161100491638eff336c91606480830192600092919082900301818387803b158015611b5257600080fd5b505af1158015611b66573d6000803e3d6000fd5b50505050896001600160a01b03167f78e7dd9aefcdbf795c4936a66f7dc6d41bb56637b54f561a6bf7829dca3348a88a8860600151886040518080602001848152602001838152602001828103825285818151815260200191508051906020019080838360005b83811015611be5578181015183820152602001611bcd565b50505050905090810190601f168015611c125780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a2611cde565b896001600160a01b03167f831c0ef4d93bda3bce08b69ae3f29ef1a6e052b833200988554158494405a1078a8360405180806020018363ffffffff1663ffffffff168152602001828103825284818151815260200191508051906020019080838360005b83811015611ca2578181015183820152602001611c8a565b50505050905090810190601f168015611ccf5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a25b60008781526001602081905260408220805460ff191681559081018290556002810180546001600160a01b0319169055600381018290556004810191909155600501805468ffffffffffffffffff19169055611d386158db565b5060408051808201825263ffffffff831681526020810189905290516110049085156108fc029086906000818181858888f19350505050158015611d80573d6000803e3d6000fd5b5061200063f7a251d76001611d948461411b565b611da9886402540be40063ffffffff613b4316565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611e07578181015183820152602001611def565b50505050905090810190601f168015611e345780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015611e5557600080fd5b505af1158015611e69573d6000803e3d6000fd5b5060019e9d5050505050505050505050505050565b61100581565b600080611e9083613cba565b9050611e9a61589f565b50600081815260016020818152604092839020835160e081018552815460ff90811682529382015492810183905260028201546001600160a01b03169481019490945260038101546060850152600481015460808501526005015491821660a08401526101009091046001600160401b031660c0830152611f5f576040805162461bcd60e51b815260206004820152601a602482015279189a5b99081c995c5d595cdd08191bd95cdb89dd08195e1a5cdd60321b604482015290519081900360640190fd5b428160c001516001600160401b031610611fc0576040805162461bcd60e51b815260206004820152601b60248201527f62696e642072657175657374206973206e6f7420657870697265640000000000604482015290519081900360640190fd5b600034905060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b15801561200257600080fd5b505afa158015612016573d6000803e3d6000fd5b505050506040513d602081101561202c57600080fd5b5051905080821080159061204557506402540be4008206155b6120805760405162461bcd60e51b8152600401808060200182810382526037815260200180615a4b6037913960400191505060405180910390fd5b60008481526001602081905260408220805460ff191681559081018290556002810180546001600160a01b0319169055600381018290556004810191909155600501805468ffffffffffffffffff191690556120da6158db565b50604080518082018252600181526020810186905290516110049084156108fc029085906000818181858888f1935050505015801561211d573d6000803e3d6000fd5b5061200063f7a251d760016121318461411b565b612146876402540be40063ffffffff613b4316565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156121a457818101518382015260200161218c565b50505050905090810190601f1680156121d15780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156121f257600080fd5b505af1158015612206573d6000803e3d6000fd5b5050505083604001516001600160a01b03167f831c0ef4d93bda3bce08b69ae3f29ef1a6e052b833200988554158494405a10788600160405180806020018360ff1663ffffffff168152602001828103825284818151815260200191508051906020019080838360005b83811015612288578181015183820152602001612270565b50505050905090810190601f1680156122b55780820380516001836020036101000a031916815260200191505b50935050505060405180910390a25060019695505050505050565b61100881565b6000806122e283613cba565b90506122ec61589f565b50600081815260016020818152604092839020835160e081018552815460ff90811682529382015492810183905260028201546001600160a01b03169481019490945260038101546060850152600481015460808501526005015491821660a08401526101009091046001600160401b031660c08301526123b1576040805162461bcd60e51b815260206004820152601a602482015279189a5b99081c995c5d595cdd08191bd95cdb89dd08195e1a5cdd60321b604482015290519081900360640190fd5b80604001516001600160a01b0316856001600160a01b0316146124055760405162461bcd60e51b8152600401808060200182810382526045815260200180615a826045913960600191505060405180910390fd5b336001600160a01b0316856001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b15801561244857600080fd5b505afa15801561245c573d6000803e3d6000fd5b505050506040513d602081101561247257600080fd5b50516001600160a01b0316146124cf576040805162461bcd60e51b815260206004820152601b60248201527f6f6e6c79206265703230206f776e65722063616e2072656a6563740000000000604482015290519081900360640190fd5b600034905060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b15801561251157600080fd5b505afa158015612525573d6000803e3d6000fd5b505050506040513d602081101561253b57600080fd5b5051905080821080159061255457506402540be4008206155b61258f5760405162461bcd60e51b8152600401808060200182810382526037815260200180615a4b6037913960400191505060405180910390fd5b60008481526001602081905260408220805460ff191681559081018290556002810180546001600160a01b0319169055600381018290556004810191909155600501805468ffffffffffffffffff191690556125e96158db565b50604080518082018252600781526020810186905290516110049084156108fc029085906000818181858888f1935050505015801561262c573d6000803e3d6000fd5b5061200063f7a251d760016126408461411b565b612655876402540be40063ffffffff613b4316565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156126b357818101518382015260200161269b565b50505050905090810190601f1680156126e05780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561270157600080fd5b505af1158015612715573d6000803e3d6000fd5b50505050876001600160a01b03167f831c0ef4d93bda3bce08b69ae3f29ef1a6e052b833200988554158494405a10788600760405180806020018360ff1663ffffffff168152602001828103825284818151815260200191508051906020019080838360005b8381101561279357818101518382015260200161277b565b50505050905090810190601f1680156127c05780820380516001836020036101000a031916815260200191505b50935050505060405180910390a2506001979650505050505050565b600b81565b60045481565b33612000146128275760405162461bcd60e51b815260040180806020018281038252602f815260200180615b8a602f913960400191505060405180910390fd5b60ff8316600414156128775761287282828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061419192505050565b612931565b60ff8316600514156128c25761287282828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061443e92505050565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a15b505050565b6040805163bd46646160e01b81526001600160a01b0384166004820152905160009182916110049163bd466461916024808301926020929190829003018186803b15801561298357600080fd5b505afa158015612997573d6000803e3d6000fd5b505050506040513d60208110156129ad57600080fd5b5051146129f1576040805162461bcd60e51b815260206004820152600d60248201526c185b1c9958591e48189bdd5b99609a1b604482015290519081900360640190fd5b6001600160a01b03831660009081526002602052604090205460ff1615612a50576040805162461bcd60e51b815260206004820152600e60248201526d6d6972726f722070656e64696e6760901b604482015290519081900360640190fd5b60006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b158015612a8d57600080fd5b505afa158015612aa1573d6000803e3d6000fd5b505050506040513d6020811015612ab757600080fd5b505190506402540be4003406158015612ae25750600454612ade908263ffffffff613a1816565b3410155b612b1d5760405162461bcd60e51b815260040180806020018281038252604d815260200180615998604d913960600191505060405180910390fd5b42607801836001600160401b031610158015612b475750426201518001836001600160401b031611155b612b825760405162461bcd60e51b8152600401808060200182810382526038815260200180615a136038913960400191505060405180910390fd5b6000846001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015612bbd57600080fd5b505afa158015612bd1573d6000803e3d6000fd5b505050506040513d6020811015612be757600080fd5b5051604080516318160ddd60e01b815290519192506000916001600160a01b038816916318160ddd916004808301926020929190829003018186803b158015612c2f57600080fd5b505afa158015612c43573d6000803e3d6000fd5b505050506040513d6020811015612c5957600080fd5b50519050677ce66c50e2840000612c738260ff8516613a72565b1115612cbf576040805162461bcd60e51b8152602060048201526016602482015275746f6f206c6172676520746f74616c20737570706c7960501b604482015290519081900360640190fd5b6060866001600160a01b03166306fdde036040518163ffffffff1660e01b815260040160006040518083038186803b158015612cfa57600080fd5b505afa158015612d0e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015612d3757600080fd5b8101908080516040519392919084600160201b821115612d5657600080fd5b908301906020820185811115612d6b57600080fd5b8251600160201b811182820188101715612d8457600080fd5b82525081516020918201929091019080838360005b83811015612db1578181015183820152602001612d99565b50505050905090810190601f168015612dde5780820380516001836020036101000a031916815260200191505b50604052505050905060608190506001815110158015612e0057506020815111155b612e51576040805162461bcd60e51b815260206004820152601d60248201527f6e616d65206c656e677468206d75737420626520696e205b312c33325d000000604482015290519081900360640190fd5b6060886001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b158015612e8c57600080fd5b505afa158015612ea0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015612ec957600080fd5b8101908080516040519392919084600160201b821115612ee857600080fd5b908301906020820185811115612efd57600080fd5b8251600160201b811182820188101715612f1657600080fd5b82525081516020918201929091019080838360005b83811015612f43578181015183820152602001612f2b565b50505050905090810190601f168015612f705780820380516001836020036101000a031916815260200191505b5060405250508151919250829160021180159150612f9057508051600810155b612fe1576040805162461bcd60e51b815260206004820152601e60248201527f73796d626f6c206c656e677468206d75737420626520696e205b322c385d0000604482015290519081900360640190fd5b60005b81518160ff16101561313557604160f81b828260ff168151811061300457fe5b01602001516001600160f81b031916108015906130425750602d60f91b828260ff168151811061303057fe5b01602001516001600160f81b03191611155b8061309a5750606160f81b828260ff168151811061305c57fe5b01602001516001600160f81b0319161080159061309a5750603d60f91b828260ff168151811061308857fe5b01602001516001600160f81b03191611155b806130f25750600360fc1b828260ff16815181106130b457fe5b01602001516001600160f81b031916108015906130f25750603960f81b828260ff16815181106130e057fe5b01602001516001600160f81b03191611155b61312d5760405162461bcd60e51b815260040180806020018281038252602e815260200180615ac7602e913960400191505060405180910390fd5b600101612fe4565b50600454611004906108fc9061315290349063ffffffff613b0116565b6040518115909202916000818181858888f1935050505015801561317a573d6000803e3d6000fd5b506001600160a01b038a166000908152600260209081526040909120805460ff1916600117905584810151908301516131b16158f2565b604051806101000160405280336001600160a01b031681526020018e6001600160a01b031681526020018481526020018381526020018981526020018a60ff1681526020016132106402540be400600454613b4390919063ffffffff16565b81526001600160401b038e16602090910152905061200063f7a251d7600461323784614609565b6132556402540be40061131160045434613b0190919063ffffffff16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156132b357818101518382015260200161329b565b50505050905090810190601f1680156132e05780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561330157600080fd5b505af1158015613315573d6000803e3d6000fd5b5050505060019a505050505050505050505092915050565b600781565b600981565b677ce66c50e284000081565b61100781565b61100681565b60005460ff1681565b600081565b336110071461339d5760405162461bcd60e51b815260040180806020018281038252602e815260200180615b5c602e913960400191505060405180910390fd5b602081146133f2576040805162461bcd60e51b815260206004820152601860248201527f65787065637465642076616c7565206c656e6774682033320000000000000000604482015290519081900360640190fd5b606084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f880181900481028201810190925286815293945060609392508691508590819084018382808284376000920191909152505050506020830151909150686d6972726f7246656560b81b8114156134e75760208201516402540be4008106156134df576040805162461bcd60e51b815260206004820152601a60248201527f6d6972726f72466565206d757374206265204e202a2031653130000000000000604482015290519081900360640190fd5b60045561359d565b6673796e6346656560c81b8114156135605760208201516402540be400810615613558576040805162461bcd60e51b815260206004820152601860248201527f73796e63466565206d757374206265204e202a20316531300000000000000000604482015290519081900360640190fd5b60055561359d565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a878787876040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050505050565b61100281565b33612000146136785760405162461bcd60e51b815260040180806020018281038252602f815260200180615b8a602f913960400191505060405180910390fd5b60ff8316600414156136c35761287282828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061477b92505050565b60ff8316600514156128c25761287282828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506148ba92505050565b600160208190526000918252604090912080549181015460028201546003830154600484015460059094015460ff9586169593946001600160a01b039093169391929181169061010090046001600160401b031687565b604d81565b61100381565b60055481565b61100081565b61271081565b61100481565b606061379261589f565b600061379d846149b4565b91509150806137f3576040805162461bcd60e51b815260206004820152601f60248201527f756e7265636f676e697a6564207472616e73666572496e207061636b61676500604482015290519081900360640190fd5b815160ff166138a6576020828101805160009081526001928390526040908190208551815460ff1990811660ff928316178355935194820194909455908501516002820180546001600160a01b0319166001600160a01b03909216919091179055606085015160038201556080850151600482015560a08501516005909101805460c08701519316919093161768ffffffffffffffff0019166101006001600160401b03909216919091021790556139fd565b815160ff16600114156139b05760006110046001600160a01b03166359b9278984602001516040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156138ff57600080fd5b505afa158015613913573d6000803e3d6000fd5b505050506040513d602081101561392957600080fd5b505190506001600160a01b038116156139aa5760208301516040805163b99328c560e01b815260048101929092526001600160a01b0383166024830152516110049163b99328c591604480830192600092919082900301818387803b15801561399157600080fd5b505af11580156139a5573d6000803e3d6000fd5b505050505b506139fd565b6040805162461bcd60e51b815260206004820152601960248201527f756e7265636f676e697a65642062696e64207061636b61676500000000000000604482015290519081900360640190fd5b60408051600080825260208201909252905b50949350505050565b600082820183811015610e94576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60006008821115613aea57604d60071983011115613acc576040805162461bcd60e51b8152602060048201526012602482015271746f6f206c6172676520646563696d616c7360701b604482015290519081900360640190fd5b613ae3836007198401600a0a63ffffffff613b4316565b90506113eb565b610e94836008849003600a0a63ffffffff614b0516565b6000610e9483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250614b5e565b6000610e9483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250614bf5565b60408051600680825260e08201909252606091829190816020015b6060815260200190600190039081613ba05750508351909150613bcb906001600160a01b0316614c5a565b81600081518110613bd857fe5b6020026020010181905250613bf983602001516001600160a01b0316614c5a565b81600181518110613c0657fe5b6020026020010181905250613c21836040015160001c614c7d565b81600281518110613c2e57fe5b6020026020010181905250613c468360600151614c7d565b81600381518110613c5357fe5b6020026020010181905250613c6b8360800151614c7d565b81600481518110613c7857fe5b6020026020010181905250613c998360a001516001600160401b0316614c7d565b81600581518110613ca657fe5b6020026020010181905250610e9481614c90565b6020015190565b600080826001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015613cfd57600080fd5b505afa158015613d11573d6000803e3d6000fd5b505050506040513d6020811015613d2757600080fd5b5051604080516395d89b4160e01b8152905160ff90921692506060916001600160a01b038616916395d89b41916004808301926000929190829003018186803b158015613d7357600080fd5b505afa158015613d87573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015613db057600080fd5b8101908080516040519392919084600160201b821115613dcf57600080fd5b908301906020820185811115613de457600080fd5b8251600160201b811182820188101715613dfd57600080fd5b82525081516020918201929091019080838360005b83811015613e2a578181015183820152602001613e12565b50505050905090810190601f168015613e575780820380516001836020036101000a031916815260200191505b5060408181526370a0823160e01b82526110046004830152519495506000946001600160a01b038a1694506370a08231935060248083019350602092829003018186803b158015613ea757600080fd5b505afa158015613ebb573d6000803e3d6000fd5b505050506040513d6020811015613ed157600080fd5b505160808701516060880151919250600091613ef29163ffffffff613b0116565b9050428760c001516001600160401b03161015613f175750600193506113eb92505050565b613f25838860200151614d1a565b613f375750600293506113eb92505050565b80821115613f4d5750600393506113eb92505050565b866060015187604001516001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015613f8f57600080fd5b505afa158015613fa3573d6000803e3d6000fd5b505050506040513d6020811015613fb957600080fd5b505114613fce5750600493506113eb92505050565b8660a0015160ff168414613fea5750600593506113eb92505050565b602080880151604080516359b9278960e01b8152600481019290925251600092611004926359b927899260248083019392829003018186803b15801561402f57600080fd5b505afa158015614043573d6000803e3d6000fd5b505050506040513d602081101561405957600080fd5b50516001600160a01b03161415806140fb57506000801b6110046001600160a01b031663bd46646189604001516040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156140cc57600080fd5b505afa1580156140e0573d6000803e3d6000fd5b505050506040513d60208110156140f657600080fd5b505114155b1561410e5750600693506113eb92505050565b5060009695505050505050565b6040805160028082526060828101909352829190816020015b6060815260200190600190039081614134575050835190915061415c9063ffffffff16614c7d565b8160008151811061416957fe5b6020026020010181905250614184836020015160001c614c7d565b81600181518110613ca657fe5b61419961586a565b60006141a483614e02565b91509150806141f1576040805162461bcd60e51b8152602060048201526014602482015273756e7265636f676e697a6564207061636b61676560601b604482015290519081900360640190fd5b6020808301516001600160a01b03166000908152600290915260409020805460ff1916905560a082015160ff166143525760808201516040516110049180156108fc02916000818181858888f19350505050158015614254573d6000803e3d6000fd5b506110046001600160a01b0316638eff336c8360600151846020015185604001516040518463ffffffff1660e01b815260040180848152602001836001600160a01b03166001600160a01b031681526020018260ff1681526020019350505050600060405180830381600087803b1580156142ce57600080fd5b505af11580156142e2573d6000803e3d6000fd5b50505050602082810180516001600160a01b03908116600090815260038452604090819020805460ff1916600117905591516060860151835190815292519116927f41787d7db08fc5907641ee8343379f28215727eb123d4b462099afab4300b036928290030190a2505061443b565b815160808301516040516000926001600160a01b0316916127109184818181858888f193505050503d80600081146143a6576040519150601f19603f3d011682016040523d82523d6000602084013e6143ab565b606091505b50509050806143e85760808301516040516110029180156108fc02916000818181858888f193505050501580156143e6573d6000803e3d6000fd5b505b82602001516001600160a01b03167fefe400ad0042ebf81a245de9ae669616105e0ca9fc946352c085da0c2bc524e58460a00151604051808260ff1660ff16815260200191505060405180910390a25050505b50565b614446615936565b600061445183614f0f565b915091508061449e576040805162461bcd60e51b8152602060048201526014602482015273756e7265636f676e697a6564207061636b61676560601b604482015290519081900360640190fd5b606082015160ff1661451e5760408083015190516110049180156108fc02916000818181858888f193505050501580156144dc573d6000803e3d6000fd5b5081602001516001600160a01b03167fbb7d3a9a559080d8281b0e4fb39dacbe2fdcafd5ef765e9a6ed871c9167dc60f60405160405180910390a2505061443b565b81602001516001600160a01b03167ff1e25fa536da84053644fd788b1d6a27ea6edd1f3af80c7d36ca253c4c82c9c38360600151604051808260ff1660ff16815260200191505060405180910390a2815160408084015190516000926001600160a01b0316916127109184818181858888f193505050503d80600081146145c1576040519150601f19603f3d011682016040523d82523d6000602084013e6145c6565b606091505b50509050806146035760408084015190516110029180156108fc02916000818181858888f19350505050158015614601573d6000803e3d6000fd5b505b50505050565b6040805160088082526101208201909252606091829190816020015b60608152602001906001900390816146255750508351909150614650906001600160a01b0316614c5a565b8160008151811061465d57fe5b602002602001018190525061467e83602001516001600160a01b0316614c5a565b8160018151811061468b57fe5b60200260200101819052506146a6836040015160001c614c7d565b816002815181106146b357fe5b60200260200101819052506146ce836060015160001c614c7d565b816003815181106146db57fe5b60200260200101819052506146f38360800151614c7d565b8160048151811061470057fe5b602002602001018190525061471b8360a0015160ff16614c7d565b8160058151811061472857fe5b60200260200101819052506147408360c00151614c7d565b8160068151811061474d57fe5b602002602001018190525061476e8360e001516001600160401b0316614c7d565b81600781518110613ca657fe5b6147836158f2565b600061478e83614fdb565b91509150806147db576040805162461bcd60e51b8152602060048201526014602482015273756e7265636f676e697a6564207061636b61676560601b604482015290519081900360640190fd5b6020808301516001600160a01b039081166000908152600290925260408220805460ff19169055835160c085015191169061271090614825906402540be40063ffffffff614b0516565b6040516000818181858888f193505050503d8060008114614862576040519150601f19603f3d011682016040523d82523d6000602084013e614867565b606091505b50509050806146035760c0830151611002906108fc90614892906402540be40063ffffffff614b0516565b6040518115909202916000818181858888f19350505050158015614601573d6000803e3d6000fd5b6148c261586a565b60006148cd8361512c565b915091508061491a576040805162461bcd60e51b8152602060048201526014602482015273756e7265636f676e697a6564207061636b61676560601b604482015290519081900360640190fd5b815160808301516000916001600160a01b03169061271090614947906402540be40063ffffffff614b0516565b6040516000818181858888f193505050503d8060008114614984576040519150601f19603f3d011682016040523d82523d6000602084013e614989565b606091505b5050905080614603576080830151611002906108fc90614892906402540be40063ffffffff614b0516565b6149bc61589f565b60006149c661589f565b6149ce61595d565b6149df6149da8661523c565b615261565b90506000805b6149ee836152ab565b15614af85780614a1357614a09614a04846152cc565b61531a565b60ff168452614af0565b8060011415614a3257614a28614a04846152cc565b6020850152614af0565b8060021415614a5f57614a4c614a47846152cc565b6153cf565b6001600160a01b03166040850152614af0565b8060031415614a7e57614a74614a04846152cc565b6060850152614af0565b8060041415614a9d57614a93614a04846152cc565b6080850152614af0565b8060051415614abf57614ab2614a04846152cc565b60ff1660a0850152614af0565b8060061415614aeb57614ad4614a04846152cc565b6001600160401b031660c085015260019150614af0565b614af8565b6001016149e5565b5091935090915050915091565b600082614b14575060006113eb565b82820282848281614b2157fe5b0414610e945760405162461bcd60e51b8152600401808060200182810382526021815260200180615af56021913960400191505060405180910390fd5b60008184841115614bed5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015614bb2578181015183820152602001614b9a565b50505050905090810190601f168015614bdf5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008183614c445760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315614bb2578181015183820152602001614b9a565b506000838581614c5057fe5b0495945050505050565b60408051600560a21b8318601482015260348101909152606090610e94816153e9565b60606113eb614c8b8361543f565b6153e9565b6060815160001415614cb1575060408051600081526020810190915261157f565b606082600081518110614cc057fe5b602002602001015190506000600190505b8351811015614d0157614cf782858381518110614cea57fe5b6020026020010151615525565b9150600101614cd1565b50610e94614d14825160c060ff166155a2565b82615525565b8151600090839060081080614d30575080516002115b15614d3f5760009150506113eb565b60408051602080825281830190925260609160208201818036833701905050905083602082015280825181518110614d7357fe5b6020910101516001600160f81b031916602d60f81b14614d98576000925050506113eb565b600160005b8351811015614df857828181518110614db257fe5b602001015160f81c60f81b6001600160f81b031916848281518110614dd357fe5b01602001516001600160f81b03191614614df05760009150614df8565b600101614d9d565b5095945050505050565b614e0a61586a565b6000614e1461586a565b614e1c61595d565b614e286149da8661523c565b90506000805b614e37836152ab565b15614af85780614e5d57614e4d614a47846152cc565b6001600160a01b03168452614f07565b8060011415614e8557614e72614a47846152cc565b6001600160a01b03166020850152614f07565b8060021415614ea757614e9a614a04846152cc565b60ff166040850152614f07565b8060031415614ec657614ebc614a04846152cc565b6060850152614f07565b8060041415614ee557614edb614a04846152cc565b6080850152614f07565b8060051415614aeb57614efa614a04846152cc565b60ff1660a0850152600191505b600101614e2e565b614f17615936565b6000614f21615936565b614f2961595d565b614f356149da8661523c565b90506000805b614f44836152ab565b15614af85780614f6a57614f5a614a47846152cc565b6001600160a01b03168452614fd3565b8060011415614f9257614f7f614a47846152cc565b6001600160a01b03166020850152614fd3565b8060021415614fb157614fa7614a04846152cc565b6040850152614fd3565b8060031415614aeb57614fc6614a04846152cc565b60ff166060850152600191505b600101614f3b565b614fe36158f2565b6000614fed6158f2565b614ff561595d565b6150016149da8661523c565b90506000805b615010836152ab565b15614af8578061503657615026614a47846152cc565b6001600160a01b03168452615124565b806001141561505e5761504b614a47846152cc565b6001600160a01b03166020850152615124565b806002141561507d57615073614a04846152cc565b6040850152615124565b806003141561509c57615092614a04846152cc565b6060850152615124565b80600414156150bb576150b1614a04846152cc565b6080850152615124565b80600514156150dd576150d0614a04846152cc565b60ff1660a0850152615124565b80600614156150fc576150f2614a04846152cc565b60c0850152615124565b8060071415614aeb57615111614a04846152cc565b6001600160401b031660e0850152600191505b600101615007565b61513461586a565b600061513e61586a565b61514661595d565b6151526149da8661523c565b90506000805b615161836152ab565b15614af8578061518757615177614a47846152cc565b6001600160a01b03168452615234565b80600114156151af5761519c614a47846152cc565b6001600160a01b03166020850152615234565b80600214156151ce576151c4614a04846152cc565b6040850152615234565b80600314156151ed576151e3614a04846152cc565b6060850152615234565b806004141561520c57615202614a04846152cc565b6080850152615234565b8060051415614aeb57615221614a04846152cc565b6001600160401b031660a0850152600191505b600101615158565b61524461597d565b506040805180820190915281518152602082810190820152919050565b61526961595d565b6152728261569a565b61527b57600080fd5b600061528a83602001516156d4565b60208085015160408051808201909152868152920190820152915050919050565b60006152b561597d565b505080518051602091820151919092015191011190565b6152d461597d565b6152dd826152ab565b6152e657600080fd5b602082015160006152f682615737565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061532f57508151602110155b61533857600080fd5b600061534783602001516156d4565b905080836000015110156153a2576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015613a0f57506020919091036101000a90049392505050565b80516000906015146153e057600080fd5b6113eb8261531a565b60608151600114801561541b5750607f60f81b8260008151811061540957fe5b01602001516001600160f81b03191611155b1561542757508061157f565b6113eb6154398351608060ff166155a2565b83615525565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416615483575060186154a7565b6fffffffffffffffffffffffffffffffff1984166154a3575060106154a7565b5060005b60208110156154dd578181815181106154bc57fe5b01602001516001600160f81b031916156154d5576154dd565b6001016154a7565b60008160200390506060816040519080825280601f01601f191660200182016040528015615512576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b8183101561555657805183526020928301920161553e565b50855184518101855292509050808201602086015b8183101561558357805183526020928301920161556b565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106155f2576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b6040805160018082528183019092526060916020820181803683370190505090506037841161564c5782840160f81b8160008151811061562e57fe5b60200101906001600160f81b031916908160001a90535090506113eb565b60606156578561543f565b90508381510160370160f81b8260008151811061567057fe5b60200101906001600160f81b031916908160001a9053506156918282615525565b95945050505050565b80516000906156ab5750600061157f565b6020820151805160001a9060c08210156156ca5760009250505061157f565b5060019392505050565b8051600090811a60808110156156ee57600091505061157f565b60b8811080615709575060c08110801590615709575060f881105b1561571857600191505061157f565b60c081101561572c5760b51901905061157f565b60f51901905061157f565b80516000908190811a60808110156157525760019150615863565b60b881101561576757607e1981019150615863565b60c08110156157e157600060b78203600186019550806020036101000a8651049150600181018201935050808310156157db576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50615863565b60f88110156157f65760be1981019150615863565b600060f78203600186019550806020036101000a865104915060018101820193505080831015615861576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c081019190915290565b604080518082019091526000808252602082015290565b6040805161010081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081019190915290565b60408051608081018252600080825260208201819052918101829052606081019190915290565b604051806040016040528061597061597d565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe6d73672e76616c7565206d757374206265204e202a203165313020616e642067726561746572207468616e2073756d206f66206d696e6952656c617946656520616e64206d6972726f724665656f6e6c79206265703230206f776e65722063616e20617070726f766520746869732062696e64207265717565737465787069726554696d65206d7573742062652074776f206d696e75746573206c6174657220616e64206f6e6520646179206561726c69657272656c6179466565206d757374206265204e202a203165313020616e642067726561746572207468616e206d696e6952656c6179466565636f6e74616374206164647265737320646f65736e277420657175616c20746f2074686520636f6e7472616374206164647265737320696e2062696e64207265717565737473796d626f6c2073686f756c64206f6e6c7920636f6e7461696e20616c70686162657420616e64206e756d626572536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f776d73672e76616c7565206d757374206265204e202a203165313020616e64206e6f206c6573732073756d206f66206d696e6952656c617946656520616e642073796e63466565746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e747261637474686520626570323020746f6b656e20697320696e206d6972726f722070656e64696e6720737461747573a264697066735822122011643b1904024d40f68eeffb1121551fe6c8ee6c1d494c4463b904655149b5e264736f6c63430006040033", - }, - { - ContractAddr: TokenHubContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/af4f3993303213052222f55c721e661862d19638", - Code: "60806040526004361061031e5760003560e01c80639a99b4f0116101ab578063bd466461116100f7578063f014847211610095578063fc1a598f1161006f578063fc1a598f14610cb3578063fc3e590814610996578063fd6a687914610ce6578063ff9c00271461068657610366565b8063f014847214610c74578063f9a2bbc714610c89578063fa9e915914610c9e57610366565b8063d9e6dae9116100d1578063d9e6dae914610608578063dc927faf14610c35578063e1c7392a14610c4a578063ebf71d5314610c5f57610366565b8063bd46646114610b68578063c81b166214610b9b578063c8509d8114610bb057610366565b8063aa7415f511610164578063b99328c51161013e578063b99328c514610ad2578063b9fd21e314610b0b578063ba35ead614610b20578063bbface1f14610b3557610366565b8063aa7415f5146109ab578063ab51bb96146109f2578063ac43175114610a0757610366565b80639a99b4f0146109095780639dc0926214610942578063a1a11bf514610957578063a496fba21461096c578063a78abc1614610981578063a7c9f02d1461099657610366565b8063613684751161026a57806375d47a0a116102235780638b87b21f116101fd5780638b87b21f146105875780638eff336c146108a057806396713da9146108df5780639a854bbd146108f457610366565b806375d47a0a146107f15780637942fd0514610806578063831d65d11461081b57610366565b8063613684751461060857806366dea52a146106865780636e0565201461069b5780636e47b482146107c757806370fd5bad1461068657806371d30863146107dc57610366565b806343a368b9116102d757806350432d32116102b157806350432d321461061d57806351e806721461063257806359b92789146106475780635d499b1b1461067157610366565b806343a368b9146105c7578063493279b1146105dc5780634bf6c8821461060857610366565b80630bee7a671461036b5780631182b87514610399578063149d14d9146104935780633d713223146104ba5780633dffc3871461058757806343756e5c146105b257610366565b36610366573415610364576040805133815234602082015281517f6c98249d85d88c3753a04a22230f595e4dc8d3dc86c34af35deeeedc861b89db929181900390910190a15b005b600080fd5b34801561037757600080fd5b50610380610cfb565b6040805163ffffffff9092168252519081900360200190f35b3480156103a557600080fd5b5061041e600480360360408110156103bc57600080fd5b60ff8235169190810190604081016020820135600160201b8111156103e057600080fd5b8201836020820111156103f257600080fd5b803590602001918460018302840111600160201b8311171561041357600080fd5b509092509050610d00565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610458578181015183820152602001610440565b50505050905090810190601f1680156104855780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561049f57600080fd5b506104a8610e2e565b60408051918252519081900360200190f35b3480156104c657600080fd5b5061056b600480360360208110156104dd57600080fd5b810190602081018135600160201b8111156104f757600080fd5b82018360208201111561050957600080fd5b803590602001918460018302840111600160201b8311171561052a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610e34945050505050565b604080516001600160a01b039092168252519081900360200190f35b34801561059357600080fd5b5061059c610e58565b6040805160ff9092168252519081900360200190f35b3480156105be57600080fd5b5061056b610e5d565b3480156105d357600080fd5b506104a8610e63565b3480156105e857600080fd5b506105f1610e6f565b6040805161ffff9092168252519081900360200190f35b34801561061457600080fd5b5061059c610e75565b34801561062957600080fd5b506104a8610e7a565b34801561063e57600080fd5b5061056b610e85565b34801561065357600080fd5b5061056b6004803603602081101561066a57600080fd5b5035610e8b565b34801561067d57600080fd5b506104a8610ea6565b34801561069257600080fd5b5061059c610eaf565b6107b3600480360360808110156106b157600080fd5b810190602081018135600160201b8111156106cb57600080fd5b8201836020820111156106dd57600080fd5b803590602001918460208302840111600160201b831117156106fe57600080fd5b919390929091602081019035600160201b81111561071b57600080fd5b82018360208201111561072d57600080fd5b803590602001918460208302840111600160201b8311171561074e57600080fd5b919390929091602081019035600160201b81111561076b57600080fd5b82018360208201111561077d57600080fd5b803590602001918460208302840111600160201b8311171561079e57600080fd5b91935091503567ffffffffffffffff16610eb4565b604080519115158252519081900360200190f35b3480156107d357600080fd5b5061056b611389565b3480156107e857600080fd5b506104a861138f565b3480156107fd57600080fd5b5061056b611395565b34801561081257600080fd5b5061059c61139b565b34801561082757600080fd5b506103646004803603604081101561083e57600080fd5b60ff8235169190810190604081016020820135600160201b81111561086257600080fd5b82018360208201111561087457600080fd5b803590602001918460018302840111600160201b8311171561089557600080fd5b5090925090506113a0565b3480156108ac57600080fd5b50610364600480360360608110156108c357600080fd5b508035906001600160a01b0360208201351690604001356114e9565b3480156108eb57600080fd5b5061059c61156f565b34801561090057600080fd5b506104a8611574565b34801561091557600080fd5b506104a86004803603604081101561092c57600080fd5b506001600160a01b038135169060200135611580565b34801561094e57600080fd5b5061056b6116be565b34801561096357600080fd5b5061056b6116c4565b34801561097857600080fd5b5061059c6116ca565b34801561098d57600080fd5b506107b36116cf565b3480156109a257600080fd5b5061059c6116d8565b6107b3600480360360808110156109c157600080fd5b5080356001600160a01b03908116916020810135909116906040810135906060013567ffffffffffffffff166116dd565b3480156109fe57600080fd5b506103806116ca565b348015610a1357600080fd5b5061036460048036036040811015610a2a57600080fd5b810190602081018135600160201b811115610a4457600080fd5b820183602082011115610a5657600080fd5b803590602001918460018302840111600160201b83111715610a7757600080fd5b919390929091602081019035600160201b811115610a9457600080fd5b820183602082011115610aa657600080fd5b803590602001918460018302840111600160201b83111715610ac757600080fd5b509092509050611d9e565b348015610ade57600080fd5b5061036460048036036040811015610af557600080fd5b50803590602001356001600160a01b031661200d565b348015610b1757600080fd5b506104a8612083565b348015610b2c57600080fd5b506104a861208d565b348015610b4157600080fd5b506104a860048036036020811015610b5857600080fd5b50356001600160a01b0316612093565b348015610b7457600080fd5b506104a860048036036020811015610b8b57600080fd5b50356001600160a01b03166120a5565b348015610ba757600080fd5b5061056b6120c0565b348015610bbc57600080fd5b5061036460048036036040811015610bd357600080fd5b60ff8235169190810190604081016020820135600160201b811115610bf757600080fd5b820183602082011115610c0957600080fd5b803590602001918460018302840111600160201b83111715610c2a57600080fd5b5090925090506120c6565b348015610c4157600080fd5b5061056b612196565b348015610c5657600080fd5b5061036461219c565b348015610c6b57600080fd5b5061059c61223c565b348015610c8057600080fd5b5061059c612241565b348015610c9557600080fd5b5061056b612246565b348015610caa57600080fd5b506104a861224c565b348015610cbf57600080fd5b5061041e60048036036020811015610cd657600080fd5b50356001600160a01b0316612252565b348015610cf257600080fd5b5061056b612379565b606481565b60005460609060ff16610d48576040805162461bcd60e51b815260206004820152601960248201526000805160206147a9833981519152604482015290519081900360640190fd5b3361200014610d885760405162461bcd60e51b815260040180806020018281038252602f815260200180614757602f913960400191505060405180910390fd5b60ff841660021415610dda57610dd383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061237f92505050565b9050610e27565b6040805162461bcd60e51b815260206004820152601860248201527f756e7265636f676e697a65642073796e207061636b6167650000000000000000604482015290519081900360640190fd5b9392505050565b60015490565b6020818101516000908152600490915260409020546001600160a01b03165b919050565b600181565b61100181565b670de0b6b3a764000081565b61058981565b600881565b66071afd498d000081565b61200081565b6000908152600460205260409020546001600160a01b031690565b6402540be40081565b600281565b6000805460ff16610efa576040805162461bcd60e51b815260206004820152601960248201526000805160206147a9833981519152604482015290519081900360640190fd5b868514610f385760405162461bcd60e51b815260040180806020018281038252603b81526020018061471c603b913960400191505060405180910390fd5b868314610f765760405162461bcd60e51b815260040180806020018281038252603f8152602001806145ef603f913960400191505060405180910390fd5b426078018267ffffffffffffffff161015610fc25760405162461bcd60e51b81526004018080602001828103825260248152602001806144df6024913960400191505060405180910390fd5b6402540be4003406156110065760405162461bcd60e51b815260040180806020018281038252604081526020018061481f6040913960400191505060405180910390fd5b60408051868152602080880282010190915285906000908190606090848015611039578160200160208202803683370190505b50905060005b84811015611114576402540be4008b8b8381811061105957fe5b905060200201358161106757fe5b06156110a45760405162461bcd60e51b815260040180806020018281038252603c81526020018061462e603c913960400191505060405180910390fd5b6110c98b8b838181106110b357fe5b90506020020135856124a390919063ffffffff16565b93506110f56402540be4008c8c848181106110e057fe5b905060200201356124fd90919063ffffffff16565b82828151811061110157fe5b602090810291909101015260010161103f565b506001546111399061112c908663ffffffff61253f16565b849063ffffffff6124a316565b3410156111775760405162461bcd60e51b81526004018080602001828103825260568152602001806147c96056913960600191505060405180910390fd5b611187348463ffffffff61259816565b9150611191614338565b6040518060c001604052806221272160e91b60001b815260200160006001600160a01b031681526020018381526020018e8e808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505050908252506040805160208c810282810182019093528c82529283019290918d918d91829185019084908082843760009201919091525050509082525067ffffffffffffffff8916602090910152905061200063f7a251d76003611255846125da565b61126a876402540be40063ffffffff6124fd16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156112c85781810151838201526020016112b0565b50505050905090810190601f1680156112f55780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561131657600080fd5b505af115801561132a573d6000803e3d6000fd5b505060408051600081523360208201528082018890526060810187905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a15060019c9b505050505050505050505050565b61100581565b60015481565b61100881565b600b81565b60005460ff166113e5576040805162461bcd60e51b815260206004820152601960248201526000805160206147a9833981519152604482015290519081900360640190fd5b33612000146114255760405162461bcd60e51b815260040180806020018281038252602f815260200180614757602f913960400191505060405180910390fd5b60ff8316600314156114755761147082828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061289592505050565b6114e4565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a15b505050565b33611008146115295760405162461bcd60e51b81526004018080602001828103825260238152602001806147866023913960400191505060405180910390fd5b600083815260046020908152604080832080546001600160a01b039096166001600160a01b03199096168617905593825260038152838220949094556002909352912055565b600981565b677ce66c50e284000081565b6000805460ff166115c6576040805162461bcd60e51b815260206004820152601960248201526000805160206147a9833981519152604482015290519081900360640190fd5b33611005146116065760405162461bcd60e51b815260040180806020018281038252602f815260200180614452602f913960400191505060405180910390fd5b60004783106116155747611617565b825b9050670de0b6b3a76400008111156116335760009150506116b8565b80156116b5576040516001600160a01b0385169082156108fc029083906000818181858888f1935050505015801561166f573d6000803e3d6000fd5b50604080516001600160a01b03861681526020810183905281517ff8b71c64315fc33b2ead2adfa487955065152a8ac33d9d5193aafd7f45dc15a0929181900390910190a15b90505b92915050565b61100781565b61100681565b600081565b60005460ff1681565b600381565b6000805460ff16611723576040805162461bcd60e51b815260206004820152601960248201526000805160206147a9833981519152604482015290519081900360640190fd5b426078018267ffffffffffffffff16101561176f5760405162461bcd60e51b81526004018080602001828103825260248152602001806144df6024913960400191505060405180910390fd5b6402540be4003406156117b35760405162461bcd60e51b815260040180806020018281038252604081526020018061481f6040913960400191505060405180910390fd5b600080806001600160a01b038816611892576001546117d990879063ffffffff6124a316565b3410156118175760405162461bcd60e51b81526004018080602001828103825260618152602001806145696061913960800191505060405180910390fd5b6402540be40086061561185b5760405162461bcd60e51b815260040180806020018281038252603c81526020018061462e603c913960400191505060405180910390fd5b61186b348763ffffffff61259816565b9050611882866402540be40063ffffffff6124fd16565b6221272160e91b93509150611b35565b6001600160a01b0388166000908152600360205260409020549250826118e95760405162461bcd60e51b81526004018080602001828103825260318152602001806145386031913960400191505060405180910390fd5b60015434101561192a5760405162461bcd60e51b815260040180806020018281038252603f81526020018061468b603f913960400191505060405180910390fd5b506001600160a01b038716600090815260026020526040902054349060088111158061197557506008811180156119755750611973876007198301600a0a63ffffffff6128f116565b155b6119b05760405162461bcd60e51b815260040180806020018281038252603c81526020018061462e603c913960400191505060405180910390fd5b6119ba8782612933565b92506119c584612973565b15611a0d576305f5e100831015611a0d5760405162461bcd60e51b815260040180806020018281038252603a815260200180614481603a913960400191505060405180910390fd5b600881101580611a275750600881108015611a2757508683115b611a625760405162461bcd60e51b81526004018080602001828103825260258152602001806145ca6025913960400191505060405180910390fd5b677ce66c50e2840000831115611aa95760405162461bcd60e51b81526004018080602001828103825260358152602001806145036035913960400191505060405180910390fd5b604080516323b872dd60e01b81523360048201523060248201526044810189905290516001600160a01b038b16916323b872dd9160648083019260209291908290030181600087803b158015611afe57600080fd5b505af1158015611b12573d6000803e3d6000fd5b505050506040513d6020811015611b2857600080fd5b5051611b3357600080fd5b505b611b3d614338565b6040805160c0810182528581526001600160a01b038b166020820152815160018082528184018452919283019181602001602082028036833750505081526040805160018082528183019092526020928301929091908083019080368337505050815260408051600180825281830190925260209283019290919080830190803683370190505081526020018767ffffffffffffffff168152509050828160400151600081518110611beb57fe5b602002602001018181525050878160600151600081518110611c0957fe5b60200260200101906001600160a01b031690816001600160a01b031681525050338160800151600081518110611c3b57fe5b6001600160a01b039092166020928302919091019091015261200063f7a251d76003611c66846125da565b611c7b866402540be40063ffffffff6124fd16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611cd9578181015183820152602001611cc1565b50505050905090810190601f168015611d065780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015611d2757600080fd5b505af1158015611d3b573d6000803e3d6000fd5b5050604080516001600160a01b038d1681523360208201528082018b90526060810186905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a150600198975050505050505050565b3361100714611dde5760405162461bcd60e51b815260040180806020018281038252602e8152602001806146ca602e913960400191505060405180910390fd5b60208114611e33576040805162461bcd60e51b815260206004820152601b60248201527f65787065637465642076616c7565206c656e6774682069732033320000000000604482015290519081900360640190fd5b606084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8801819004810282018101909252868152939450606093925086915085908190840183828082843760009201919091525050505060208301519091506772656c617946656560c01b811415611f3b576020820151670de0b6b3a76400008111801590611ee257506402540be4008106155b611f33576040805162461bcd60e51b815260206004820152601960248201527f7468652072656c6179466565206f7574206f662072616e676500000000000000604482015290519081900360640190fd5b600155611f78565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a878787876040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050505050565b336110081461204d5760405162461bcd60e51b81526004018080602001828103825260238152602001806147866023913960400191505060405180910390fd5b600091825260046020908152604080842080546001600160a01b03191690556001600160a01b0392909216835260039052812055565b6221272160e91b81565b61c35081565b60026020526000908152604090205481565b6001600160a01b031660009081526003602052604090205490565b61100281565b60005460ff1661210b576040805162461bcd60e51b815260206004820152601960248201526000805160206147a9833981519152604482015290519081900360640190fd5b336120001461214b5760405162461bcd60e51b815260040180806020018281038252602f815260200180614757602f913960400191505060405180910390fd5b60ff8316600314156114755761147082828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612a7992505050565b61100381565b60005460ff16156121f4576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b66071afd498d000060019081556000808052600260205260127fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b55805460ff19169091179055565b600481565b600581565b61100081565b61271081565b6001600160a01b03811660009081526003602090815260409182902054825182815280840190935260609290918391906020820181803683375050506020810183905290506000805b60208160ff1610156122e257828160ff16815181106122b657fe5b01602001516001600160f81b031916156122d5576001909101906122da565b6122e2565b60010161229b565b5060608160ff166040519080825280601f01601f191660200182016040528015612313576020820181803683370190505b50905060005b8260ff168160ff16101561236f57838160ff168151811061233657fe5b602001015160f81c60f81b828260ff168151811061235057fe5b60200101906001600160f81b031916908160001a905350600101612319565b5095945050505050565b61100481565b6060612389614384565b600061239484612b77565b91509150806123ea576040805162461bcd60e51b815260206004820152601f60248201527f756e7265636f676e697a6564207472616e73666572496e207061636b61676500604482015290519081900360640190fd5b60006123f583612cb6565b905063ffffffff811615612489576040808401516020808601516001600160a01b031660009081526002909152918220546124309190612933565b905061243a6143b9565b60405180608001604052808660000151815260200183815260200186608001516001600160a01b031681526020018463ffffffff16815250905061247d81613003565b95505050505050610e53565b50506040805160008152602081019091529150610e539050565b6000828201838110156116b5576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60006116b583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506130df565b60008261254e575060006116b8565b8282028284828161255b57fe5b04146116b55760405162461bcd60e51b815260040180806020018281038252602181526020018061466a6021913960400191505060405180910390fd5b60006116b583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613181565b60408051600680825260e08201909252606091829190816020015b60608152602001906001900390816125f55750508351909150612617906131db565b8160008151811061262457fe5b602002602001018190525061264583602001516001600160a01b03166131ee565b8160018151811061265257fe5b60200260200101819052506000836040015151905060608160405190808252806020026020018201604052801561269d57816020015b60608152602001906001900390816126885790505b50905060005b828110156126ea576126cb866040015182815181106126be57fe5b60200260200101516131db565b8282815181106126d757fe5b60209081029190910101526001016126a3565b506126f481613211565b8360028151811061270157fe5b602002602001018190525060608260405190808252806020026020018201604052801561274257816020015b606081526020019060019003908161272d5790505b50905060005b83811015612798576127798760600151828151811061276357fe5b60200260200101516001600160a01b03166131ee565b82828151811061278557fe5b6020908102919091010152600101612748565b506127a281613211565b846003815181106127af57fe5b60200260200101819052506060836040519080825280602002602001820160405280156127f057816020015b60608152602001906001900390816127db5790505b50905060005b84811015612830576128118860800151828151811061276357fe5b82828151811061281d57fe5b60209081029190910101526001016127f6565b5061283a81613211565b8560048151811061284757fe5b60200260200101819052506128698760a0015167ffffffffffffffff166131db565b8560058151811061287657fe5b602002602001018190525061288a85613211565b979650505050505050565b61289d6143e0565b60006128a88361329b565b91509150806128e85760405162461bcd60e51b81526004018080602001828103825260248152602001806146f86024913960400191505060405180910390fd5b6114e482613466565b60006116b583836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f00000000000000008152506138ea565b6000600882111561295c57612955836007198401600a0a63ffffffff6124fd16565b90506116b8565b6116b5836008849003600a0a63ffffffff61253f16565b604080516020808252818301909252600091606091906020820181803683375050506020810184905290506000805b60208160ff1610156129e957828160ff16815181106129bd57fe5b01602001516001600160f81b031916156129dc576001909101906129e1565b6129e9565b6001016129a2565b50600760ff82161015612a0157600092505050610e53565b816005820360ff1681518110612a1357fe5b6020910101516001600160f81b031916602d60f81b14612a3857600092505050610e53565b816001820360ff1681518110612a4a57fe5b6020910101516001600160f81b031916604d60f81b14612a6f57600092505050610e53565b5060019392505050565b612a81614338565b6000612a8c8361394c565b9150915080612acc5760405162461bcd60e51b81526004018080602001828103825260248152602001806144bb6024913960400191505060405180910390fd5b612ad46143e0565b602080840180516001600160a01b0390811684526040808701518585015291511660009081526002909252812054905b846040015151811015612b5557612b3285604001518281518110612b2457fe5b602002602001015183613bb0565b85604001518281518110612b4257fe5b6020908102919091010152600101612b04565b506080840151604083015260056060830152612b7082613466565b5050505050565b612b7f614384565b6000612b89614384565b612b91614417565b612ba2612b9d86613be9565b613c0e565b90506000805b612bb183613c58565b15612ca95780612bd357612bcc612bc784613c79565b613cc7565b8452612ca1565b8060011415612c0057612bed612be884613c79565b613d7e565b6001600160a01b03166020850152612ca1565b8060021415612c1f57612c15612bc784613c79565b6040850152612ca1565b8060031415612c4757612c34612be884613c79565b6001600160a01b03166060850152612ca1565b8060041415612c6f57612c5c612be884613c79565b6001600160a01b03166080850152612ca1565b8060051415612c9c57612c84612bc784613c79565b67ffffffffffffffff1660a085015260019150612ca1565b612ca9565b600101612ba8565b5091935090915050915091565b60208101516000906001600160a01b0316612ded578160a0015167ffffffffffffffff16421115612ce957506001610e53565b8160400151471015612cfd57506003610e53565b606082015160408084015190516000926001600160a01b0316916127109184818181858888f193505050503d8060008114612d54576040519150601f19603f3d011682016040523d82523d6000602084013e612d59565b606091505b5050905080612d6c575060049050610e53565b7f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5983602001518460600151856040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a15060009050610e53565b8160a0015167ffffffffffffffff16421115612e0b57506001610e53565b81516020808401516001600160a01b031660009081526003909152604090205414612e3857506002610e53565b602080830151604080516370a0823160e01b815230600482015290516000936001600160a01b03909316926370a082319261c3509260248083019392829003018187803b158015612e8857600080fd5b5086fa158015612e9c573d6000803e3d6000fd5b50505050506040513d6020811015612eb357600080fd5b50516040840151909150811015612ece575060039050610e53565b600083602001516001600160a01b031663a9059cbb61c350866060015187604001516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b158015612f3f57600080fd5b5087f1158015612f53573d6000803e3d6000fd5b50505050506040513d6020811015612f6a57600080fd5b505190508015612ff7577f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5984602001518560600151866040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a15060009150610e539050565b5060059150610e539050565b60408051600480825260a08201909252606091829190816020015b606081526020019060019003908161301e5750508351909150613040906131db565b8160008151811061304d57fe5b602002602001018190525061306583602001516131db565b8160018151811061307257fe5b602002602001018190525061309383604001516001600160a01b03166131ee565b816002815181106130a057fe5b60200260200101819052506130be836060015163ffffffff166131db565b816003815181106130cb57fe5b6020026020010181905250610e2781613211565b6000818361316b5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613130578181015183820152602001613118565b50505050905090810190601f16801561315d5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161317757fe5b0495945050505050565b600081848411156131d35760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315613130578181015183820152602001613118565b505050900390565b60606116b86131e983613d98565b613e7e565b60408051600560a21b8318601482015260348101909152606090610e2781613e7e565b60608151600014156132325750604080516000815260208101909152610e53565b60608260008151811061324157fe5b602002602001015190506000600190505b8351811015613282576132788285838151811061326b57fe5b6020026020010151613ed0565b9150600101613252565b50610e27613295825160c060ff16613f4d565b82613ed0565b6132a36143e0565b60006132ad6143e0565b6132b5614417565b6132c1612b9d86613be9565b90506000805b6132d083613c58565b15612ca957806132f6576132e6612be884613c79565b6001600160a01b0316845261345e565b806001141561339757606061331261330d85613c79565b614045565b9050805160405190808252806020026020018201604052801561333f578160200160208202803683370190505b50602086015260005b81518110156133905761336d82828151811061336057fe5b6020026020010151613cc7565b8660200151828151811061337d57fe5b6020908102919091010152600101613348565b505061345e565b80600214156134395760606133ae61330d85613c79565b905080516040519080825280602002602001820160405280156133db578160200160208202803683370190505b50604086015260005b8151811015613390576134098282815181106133fc57fe5b6020026020010151613d7e565b8660400151828151811061341957fe5b6001600160a01b03909216602092830291909101909101526001016133e4565b8060031415612c9c5761344e612bc784613c79565b63ffffffff166060850152600191505b6001016132c7565b80516001600160a01b03166136905760005b81602001515181101561368a5760008260400151828151811061349757fe5b60200260200101516001600160a01b0316612710846020015184815181106134bb57fe5b60209081029190910101516040516000818181858888f193505050503d8060008114613503576040519150601f19603f3d011682016040523d82523d6000602084013e613508565b606091505b50509050806135cb577f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061354757fe5b60200260200101518560200151858151811061355f57fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a1613681565b7fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a83600001518460400151848151811061360157fe5b60200260200101518560200151858151811061361957fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b50600101613478565b506138e7565b60005b8160200151518110156138e557600082600001516001600160a01b031663a9059cbb61c350856040015185815181106136c857fe5b6020026020010151866020015186815181106136e057fe5b60200260200101516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b15801561373757600080fd5b5087f115801561374b573d6000803e3d6000fd5b50505050506040513d602081101561376257600080fd5b505190508015613826577fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a8360000151846040015184815181106137a257fe5b6020026020010151856020015185815181106137ba57fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a16138dc565b7f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061385c57fe5b60200260200101518560200151858151811061387457fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b50600101613693565b505b50565b600081836139395760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315613130578181015183820152602001613118565b5082848161394357fe5b06949350505050565b613954614338565b600061395e614338565b613966614417565b613972612b9d86613be9565b90506000805b61398183613c58565b15612ca9578061399e57613997612bc784613c79565b8452613ba8565b80600114156139c6576139b3612be884613c79565b6001600160a01b03166020850152613ba8565b8060021415613a555760606139dd61330d85613c79565b90508051604051908082528060200260200182016040528015613a0a578160200160208202803683370190505b50604086015260005b8151811015613a4e57613a2b82828151811061336057fe5b86604001518281518110613a3b57fe5b6020908102919091010152600101613a13565b5050613ba8565b8060031415613aea576060613a6c61330d85613c79565b90508051604051908082528060200260200182016040528015613a99578160200160208202803683370190505b50606086015260005b8151811015613a4e57613aba8282815181106133fc57fe5b86606001518281518110613aca57fe5b6001600160a01b0390921660209283029190910190910152600101613aa2565b8060041415613b7f576060613b0161330d85613c79565b90508051604051908082528060200260200182016040528015613b2e578160200160208202803683370190505b50608086015260005b8151811015613a4e57613b4f8282815181106133fc57fe5b86608001518281518110613b5f57fe5b6001600160a01b0390921660209283029190910190910152600101613b37565b8060051415612c9c57613b94612bc784613c79565b67ffffffffffffffff1660a0850152600191505b600101613978565b60006008821115613bd257612955836007198401600a0a63ffffffff61253f16565b6116b5836008849003600a0a63ffffffff6124fd16565b613bf1614437565b506040805180820190915281518152602082810190820152919050565b613c16614417565b613c1f82614116565b613c2857600080fd5b6000613c378360200151614146565b60208085015160408051808201909152868152920190820152915050919050565b6000613c62614437565b505080518051602091820151919092015191011190565b613c81614437565b613c8a82613c58565b613c9357600080fd5b60208201516000613ca3826141a9565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590613cdc57508151602110155b613ce557600080fd5b6000613cf48360200151614146565b90508083600001511015613d4f576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015613d7557826020036101000a820491505b50949350505050565b8051600090601514613d8f57600080fd5b6116b882613cc7565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416613ddc57506018613e00565b6fffffffffffffffffffffffffffffffff198416613dfc57506010613e00565b5060005b6020811015613e3657818181518110613e1557fe5b01602001516001600160f81b03191615613e2e57613e36565b600101613e00565b60008160200390506060816040519080825280601f01601f191660200182016040528015613e6b576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015613eb05750607f60f81b82600081518110613e9e57fe5b01602001516001600160f81b03191611155b15613ebc575080610e53565b6116b8613ece8351608060ff16613f4d565b835b6060806040519050835180825260208201818101602087015b81831015613f01578051835260209283019201613ee9565b50855184518101855292509050808201602086015b81831015613f2e578051835260209283019201613f16565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310613f9d576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b60408051600180825281830190925260609160208201818036833701905050905060378411613ff75782840160f81b81600081518110613fd957fe5b60200101906001600160f81b031916908160001a90535090506116b8565b606061400285613d98565b90508381510160370160f81b8260008151811061401b57fe5b60200101906001600160f81b031916908160001a90535061403c8282613ed0565b95945050505050565b606061405082614116565b61405957600080fd5b6000614064836142dc565b90506060816040519080825280602002602001820160405280156140a257816020015b61408f614437565b8152602001906001900390816140875790505b50905060006140b48560200151614146565b60208601510190506000805b8481101561410b576140d1836141a9565b91506040518060400160405280838152602001848152508482815181106140f457fe5b6020908102919091010152918101916001016140c0565b509195945050505050565b805160009061412757506000610e53565b6020820151805160001a9060c0821015612a6f57600092505050610e53565b8051600090811a6080811015614160576000915050610e53565b60b881108061417b575060c0811080159061417b575060f881105b1561418a576001915050610e53565b60c081101561419e5760b519019050610e53565b60f519019050610e53565b80516000908190811a60808110156141c457600191506142d5565b60b88110156141d957607e19810191506142d5565b60c081101561425357600060b78203600186019550806020036101000a86510491506001810182019350508083101561424d576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b506142d5565b60f88110156142685760be19810191506142d5565b600060f78203600186019550806020036101000a8651049150600181018201935050808310156142d3576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b80516000906142ed57506000610e53565b600080905060006143018460200151614146565b602085015185519181019250015b8082101561432f57614320826141a9565b6001909301929091019061430f565b50909392505050565b6040518060c001604052806000801916815260200160006001600160a01b03168152602001606081526020016060815260200160608152602001600067ffffffffffffffff1681525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b60408051608081018252600080825260208201819052918101829052606081019190915290565b604051806080016040528060006001600160a01b031681526020016060815260200160608152602001600063ffffffff1681525090565b604051806040016040528061442a614437565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe746865206d6573736167652073656e646572206d75737420626520696e63656e746976697a6520636f6e7472616374466f72206d696e69546f6b656e2c20746865207472616e7366657220616d6f756e74206d757374206e6f74206265206c657373207468616e2031756e7265636f676e697a6564207472616e736665724f75742073796e207061636b61676565787069726554696d65206d7573742062652074776f206d696e75746573206c61746572616d6f756e7420697320746f6f206c617267652c20657863656564206d6178696d756d206265703220746f6b656e20616d6f756e7474686520636f6e747261637420686173206e6f74206265656e20626f756e6420746f20616e79206265703220746f6b656e726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e736665724f757420424e4220616d6f756e7420616e64206d696e696d756d2072656c6179466565616d6f756e7420697320746f6f206c617267652c2075696e74323536206f766572666c6f774c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620726566756e644164647273696e76616c6964207472616e7366657220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e20746865206d696e696d756d2072656c6179466565746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374756e7265636f676e697a6564207472616e736665724f75742061636b207061636b6167654c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620616d6f756e7473746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d73672073656e646572206d75737420626520746f6b656e4d616e6167657274686520636f6e7472616374206e6f7420696e69742079657400000000000000726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e7366657220424e4220616d6f756e7420616e642072656c6179466565696e76616c696420726563656976656420424e4220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6ea26469706673582212206bf288411e92c39e8bfa404a8ee503fc38d3755589e06dd625f2e66aefbcbd2264736f6c63430006040033", - }, - { - ContractAddr: RelayerIncentivizeContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/af4f3993303213052222f55c721e661862d19638", - Code: "6080604052600436106102815760003560e01c8063930e1b091161014f578063bd4cc830116100c1578063e75d72c71161007a578063e75d72c7146107b5578063e89a3020146107e8578063f9a2bbc714610812578063fc3e590814610827578063fd6a68791461083c578063fdd31fcd1461085157610288565b8063bd4cc83014610722578063c81b16621461074c578063d0ab528a14610761578063dc927faf14610776578063dcae76ab1461078b578063e1c7392a146107a057610288565b8063a78abc1611610113578063a78abc16146105d3578063a7c6a59d146105e8578063ab51bb96146105fd578063ac43175114610612578063ace9fcc2146106e3578063af400681146106f857610288565b8063930e1b091461054c57806396713da91461057f5780639dc0926214610594578063a1a11bf5146105a9578063a3c3c0ad146105be57610288565b806343756e5c116101f35780636f93d2e6116101ac5780636f93d2e61461048457806370fd5bad146104e357806374f2272d146104f857806375d47a0a1461050d5780637942fd05146105225780637e146cc51461053757610288565b806343756e5c146103ef578063493279b1146104045780634bf6c8821461043057806351e8067214610445578063541333071461045a5780636e47b4821461046f57610288565b806312950c461161024557806312950c46146103215780631b20087c146103365780631c6433121461034b5780633a9756121461028d5780633dffc3871461039157806340bb43c0146103bc57610288565b8063081e9d131461028d57806308f2ec06146102b4578063093f2fc4146102c95780630bee7a67146102de57806310e06a761461030c57610288565b3661028857005b600080fd5b34801561029957600080fd5b506102a2610884565b60408051918252519081900360200190f35b3480156102c057600080fd5b506102a2610889565b3480156102d557600080fd5b506102a261088e565b3480156102ea57600080fd5b506102f3610893565b6040805163ffffffff9092168252519081900360200190f35b34801561031857600080fd5b506102a2610898565b34801561032d57600080fd5b506102a261089e565b34801561034257600080fd5b506102a26108a4565b34801561035757600080fd5b506103756004803603602081101561036e57600080fd5b50356108aa565b604080516001600160a01b039092168252519081900360200190f35b34801561039d57600080fd5b506103a6610884565b6040805160ff9092168252519081900360200190f35b3480156103c857600080fd5b506102a2600480360360208110156103df57600080fd5b50356001600160a01b03166108d1565b3480156103fb57600080fd5b506103756108e3565b34801561041057600080fd5b506104196108e9565b6040805161ffff9092168252519081900360200190f35b34801561043c57600080fd5b506103a66108ef565b34801561045157600080fd5b506103756108f4565b34801561046657600080fd5b506102a2610893565b34801561047b57600080fd5b506103756108fa565b34801561049057600080fd5b506104cf600480360360808110156104a757600080fd5b506001600160a01b038135811691602081013590911690604081013590606001351515610900565b604080519115158252519081900360200190f35b3480156104ef57600080fd5b506103a6610d92565b34801561050457600080fd5b506102a2610d97565b34801561051957600080fd5b50610375610d9d565b34801561052e57600080fd5b506103a6610da3565b34801561054357600080fd5b506102a2610da8565b34801561055857600080fd5b506102a26004803603602081101561056f57600080fd5b50356001600160a01b0316610dad565b34801561058b57600080fd5b506103a6610dbf565b3480156105a057600080fd5b50610375610dc4565b3480156105b557600080fd5b50610375610dca565b3480156105ca57600080fd5b506102a2610dd0565b3480156105df57600080fd5b506104cf610dd6565b3480156105f457600080fd5b506102a2610ddf565b34801561060957600080fd5b506102f3610de5565b34801561061e57600080fd5b506106e16004803603604081101561063557600080fd5b81019060208101813564010000000081111561065057600080fd5b82018360208201111561066257600080fd5b8035906020019184600183028401116401000000008311171561068457600080fd5b9193909290916020810190356401000000008111156106a257600080fd5b8201836020820111156106b457600080fd5b803590602001918460018302840111640100000000831117156106d657600080fd5b509092509050610dea565b005b3480156106ef57600080fd5b506102a2611538565b34801561070457600080fd5b506102a26004803603602081101561071b57600080fd5b503561153e565b34801561072e57600080fd5b506102a26004803603602081101561074557600080fd5b5035611599565b34801561075857600080fd5b506103756115b2565b34801561076d57600080fd5b506102a26115b8565b34801561078257600080fd5b506103756115be565b34801561079757600080fd5b506102a26115c4565b3480156107ac57600080fd5b506106e16115ca565b3480156107c157600080fd5b506106e1600480360360208110156107d857600080fd5b50356001600160a01b0316611693565b3480156107f457600080fd5b506103756004803603602081101561080b57600080fd5b50356117ec565b34801561081e57600080fd5b506103756117f9565b34801561083357600080fd5b506103a66117ff565b34801561084857600080fd5b50610375611804565b34801561085d57600080fd5b506102a26004803603602081101561087457600080fd5b50356001600160a01b031661180a565b600181565b602881565b605081565b606481565b600b5481565b60015481565b600c5481565b600681815481106108b757fe5b6000918252602090912001546001600160a01b0316905081565b60076020526000908152604090205481565b61100181565b61058981565b600881565b61200081565b61100581565b6000805460ff16610958576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604482015290519081900360640190fd5b33612000146109985760405162461bcd60e51b815260040180806020018281038252602f815260200180612378602f913960400191505060405180910390fd5b60008215610a4b576110026001600160a01b0316639a99b4f06110056109c9600e548861181c90919063ffffffff16565b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015610a1857600080fd5b505af1158015610a2c573d6000803e3d6000fd5b505050506040513d6020811015610a4257600080fd5b50519050610b5a565b604080516309a99b4f60e41b8152611005600482015260248101869052905161100491639a99b4f09160448083019260209291908290030181600087803b158015610a9557600080fd5b505af1158015610aa9573d6000803e3d6000fd5b505050506040513d6020811015610abf57600080fd5b5051600e5490915015610b5a57600e54604080516309a99b4f60e41b81526110056004820152602481019290925251610b579161100291639a99b4f0916044808201926020929091908290030181600087803b158015610b1e57600080fd5b505af1158015610b32573d6000803e3d6000fd5b505050506040513d6020811015610b4857600080fd5b5051829063ffffffff61181c16565b90505b600c805460010190556000610b6e8261187f565b600954909150610b84908263ffffffff61181c16565b600955600a54610bac908290610ba0908563ffffffff61181c16565b9063ffffffff6118a816565b600a556001600160a01b038716600090815260056020526040902054610c1857600680546001810182556000919091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319166001600160a01b0389161790555b6001600160a01b038088166000908152600560209081526040808320805460010190559289168252600790522054610c9657600880546001810182556000919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319166001600160a01b0388161790555b6001600160a01b038616600090815260076020526040902080546001019055600c54606411610d8557600b54600954600a5460408051938452602084019290925282820152517f2649b1b772a1a74bd332a67695e285317dd722941166595741c60a00fa65bb759181900360600190a16000610d106118ea565b90506000610d1c611bce565b6001600160a01b0389166000908152600d6020526040902054909150610d5a908290610d4e908563ffffffff61181c16565b9063ffffffff61181c16565b6001600160a01b0389166000908152600d6020526040812091909155600b80546001019055600c5550505b5060019695505050505050565b600281565b60035481565b61100881565b600b81565b600581565b60056020526000908152604090205481565b600981565b61100781565b61100681565b600a5481565b60005460ff1681565b60045481565b600081565b3361100714610e2a5760405162461bcd60e51b815260040180806020018281038252602e8152602001806122bd602e913960400191505060405180910390fd5b60005460ff16610e6b5760405162461bcd60e51b81526004018080602001828103825260218152602001806122eb6021913960400191505060405180910390fd5b610edf84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601f81527f68656164657252656c61796572526577617264526174654d6f6c6563756c650060208201529150611e4c9050565b15610fac5760208114610f235760405162461bcd60e51b81526004018080602001828103825260328152602001806123a76032913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610f6191858580838501838280828437600092019190915250611f3392505050565b9050600254811115610fa45760405162461bcd60e51b81526004018080602001828103825260608152602001806121966060913960600191505060405180910390fd5b6001556114a6565b61100584848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051606081019091526022808252909250905061229b6020830139611e4c565b156110dd57602081146110495760405162461bcd60e51b815260040180806020018281038252602e81526020018061224c602e913960400191505060405180910390fd5b604080516020601f840181900481028201810190925282815260009161108791858580838501838280828437600092019190915250611f3392505050565b9050801580159061109a57506001548110155b6110d55760405162461bcd60e51b815260040180806020018281038252606c81526020018061230c606c913960800191505060405180910390fd5b6002556114a6565b61115184848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601a81527f63616c6c6572436f6d70656e736174696f6e4d6f6c6563756c6500000000000060208201529150611e4c9050565b1561121e57602081146111955760405162461bcd60e51b815260040180806020018281038252602e81526020018061224c602e913960400191505060405180910390fd5b604080516020601f84018190048102820181019092528281526000916111d391858580838501838280828437600092019190915250611f3392505050565b90506004548111156112165760405162461bcd60e51b81526004018080602001828103825260568152602001806121f66056913960600191505060405180910390fd5b6003556114a6565b61129284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601d81527f63616c6c6572436f6d70656e736174696f6e44656e6f6d696e61746f7200000060208201529150611e4c9050565b1561136a57602081146112d65760405162461bcd60e51b815260040180806020018281038252602e81526020018061224c602e913960400191505060405180910390fd5b604080516020601f840181900481028201810190925282815260009161131491858580838501838280828437600092019190915250611f3392505050565b9050801580159061132757506003548110155b6113625760405162461bcd60e51b81526004018080602001828103825260618152602001806121076061913960800191505060405180910390fd5b6004556114a6565b6113de84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601b81527f64796e616d69634578747261496e63656e74697665416d6f756e74000000000060208201529150611e4c9050565b1561146957602081146114225760405162461bcd60e51b815260040180806020018281038252602e815260200180612168602e913960400191505060405180910390fd5b604080516020601f840181900481028201810190925282815260009161146091858580838501838280828437600092019190915250611f3392505050565b600e55506114a6565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b60025481565b60006028821161154f575080611594565b816028108015611560575060508211155b1561156d57506028611594565b60508211801561157e5750606e8211155b1561158e57506078819003611594565b50600481045b919050565b6000602882116115aa575080611594565b506028611594565b61100281565b600e5481565b61100381565b60095481565b60005460ff1615611622576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b60005460ff1615611670576040805162461bcd60e51b8152602060048201526013602482015272185b1c9958591e481a5b9a5d1a585b1a5e9959606a1b604482015290519081900360640190fd5b60018080556005600255600381905560506004556000805460ff19169091179055565b6001600160a01b0381166000908152600d6020526040902054806116f2576040805162461bcd60e51b81526020600482015260116024820152701b9bc81c995b185e595c881c995dd85c99607a1b604482015290519081900360640190fd5b6001600160a01b0382166000818152600d60205260408082208290555184929184156108fc02918591818181858888f193505050506117a25760405161100290819084156108fc029085906000818181858888f1935050505015801561175c573d6000803e3d6000fd5b506040805161100281526020810185905281517f24502838a334c8f2bb2ee1f8262a4fa7183e4489a717e96cc824e325f8b39e11929181900390910190a15050506117e9565b604080516001600160a01b03851681526020810184905281517f24502838a334c8f2bb2ee1f8262a4fa7183e4489a717e96cc824e325f8b39e11929181900390910190a150505b50565b600881815481106108b757fe5b61100081565b600381565b61100481565b600d6020526000908152604090205481565b600082820183811015611876576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b90505b92915050565b600061187960025461189c60015485611f3890919063ffffffff16565b9063ffffffff611f9116565b600061187683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611fd3565b600954600680546040805160208084028201810190925282815260009493859360609383018282801561194657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611928575b505050505090506060815160405190808252806020026020018201604052801561197a578160200160208202803683370190505b50905060005b8251811015611a0757600083828151811061199757fe5b6020026020010151905060006119d160056000846001600160a01b03166001600160a01b0316815260200190815260200160002054611599565b9050808484815181106119e057fe5b60209081029190910101526119fb868263ffffffff61181c16565b95505050600101611980565b506000611a2560045461189c60035488611f3890919063ffffffff16565b9050611a37858263ffffffff6118a816565b94508460015b8451811015611b0e576000611a728761189c8a888681518110611a5c57fe5b6020026020010151611f3890919063ffffffff16565b9050611abf81600d6000898681518110611a8857fe5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205461181c90919063ffffffff16565b600d6000888581518110611acf57fe5b6020908102919091018101516001600160a01b0316825281019190915260400160002055611b03838263ffffffff6118a816565b925050600101611a3d565b50611b2481600d600087600081518110611a8857fe5b600d600086600081518110611b3557fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002081905550600060098190555060008090505b8451811015611bb65760056000868381518110611b8857fe5b6020908102919091018101516001600160a01b03168252810191909152604001600090812055600101611b6f565b50611bc3600660006120cf565b509450505050505b90565b600a546008805460408051602080840282018101909252828152600094938593606093830182828015611c2a57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611c0c575b5050505050905060608151604051908082528060200260200182016040528015611c5e578160200160208202803683370190505b50905060005b8251811015611cdd576000838281518110611c7b57fe5b602002602001015190506000611cb560076000846001600160a01b03166001600160a01b031681526020019081526020016000205461153e565b905080848481518110611cc457fe5b6020908102919091010152949094019350600101611c64565b506000611cfb60045461189c60035488611f3890919063ffffffff16565b9050611d0d858263ffffffff6118a816565b94508460015b8451811015611d97576000611d328761189c8a888681518110611a5c57fe5b9050611d4881600d6000898681518110611a8857fe5b600d6000888581518110611d5857fe5b6020908102919091018101516001600160a01b0316825281019190915260400160002055611d8c838263ffffffff6118a816565b925050600101611d13565b50611dad81600d600087600081518110611a8857fe5b600d600086600081518110611dbe57fe5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020819055506000600a8190555060008090505b8451811015611e3f5760076000868381518110611e1157fe5b6020908102919091018101516001600160a01b03168252810191909152604001600090812055600101611df8565b50611bc3600860006120cf565b6000816040516020018082805190602001908083835b60208310611e815780518252601f199092019160209182019101611e62565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310611eef5780518252601f199092019160209182019101611ed0565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b600082611f4757506000611879565b82820282848281611f5457fe5b04146118765760405162461bcd60e51b815260040180806020018281038252602181526020018061227a6021913960400191505060405180910390fd5b600061187683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061206a565b600081848411156120625760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561202757818101518382015260200161200f565b50505050905090810190601f1680156120545780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600081836120b95760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561202757818101518382015260200161200f565b5060008385816120c557fe5b0495945050505050565b50805460008255906000526020600020908101906117e99190611bcb91905b8082111561210257600081556001016120ee565b509056fe746865206e657743616c6c6572436f6d70656e736174696f6e44656e6f6d696e61746f72206d757374206e6f74206265207a65726f20616e64206e6f206c657373207468616e2063616c6c6572436f6d70656e736174696f6e4d6f6c6563756c656c656e677468206f662064796e616d69634578747261496e63656e74697665416d6f756e74206d69736d617463686e65772068656164657252656c61796572526577617264526174654d6f6c6563756c652073686f756c646e27742062652067726561746572207468616e2068656164657252656c617965725265776172645261746544656e6f6d696e61746f726e65772063616c6c6572436f6d70656e736174696f6e4d6f6c6563756c652073686f756c646e27742062652067726561746572207468616e2063616c6c6572436f6d70656e736174696f6e44656e6f6d696e61746f726c656e677468206f6620726577617264466f7256616c696461746f725365744368616e6765206d69736d61746368536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7768656164657252656c617965725265776172645261746544656e6f6d696e61746f72746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374636f6e747261637420686173206e6f74206265656e20696e697469616c697a6564746865206e65772068656164657252656c617965725265776172645261746544656e6f6d696e61746f72206d757374206e6f74206265207a65726f20616e64206e6f206c657373207468616e2068656164657252656c61796572526577617264526174654d6f6c6563756c65746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e74726163746c656e677468206f662068656164657252656c61796572526577617264526174654d6f6c6563756c65206d69736d61746368a26469706673582212207a24978ed859d46a1f36ba9c4c45eceb74a8f17d4d915a392823cce41e2fa19e64736f6c63430006040033", - }, - }, - } - - BrunoUpgrade[networkname.BSCChainName] = &Upgrade{ - UpgradeName: "bruno", - Configs: []*UpgradeConfig{ - { - ContractAddr: ValidatorContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/ce622fef469d84ee418fa6181f3ac962412a5f4f", - Code: "6080604052600436106102e45760003560e01c80638624988211610190578063c8509d81116100dc578063eb57e20211610095578063f9a2bbc71161006f578063f9a2bbc714610a54578063fc3e590814610a69578063fccc281314610a7e578063fd6a687914610a93576102e4565b8063eb57e202146109e6578063eda5868c14610a19578063f340fa0114610a2e576102e4565b8063c8509d81146106d8578063d86222d51461097d578063daacdb6614610992578063dc927faf146109a7578063e086c7b1146109bc578063e1c7392a146109d1576102e4565b8063aaf5eb6811610149578063ad3c9da611610123578063ad3c9da6146108d0578063b7ab4db514610903578063bf9f4995146104c0578063c81b166214610968576102e4565b8063aaf5eb68146107db578063ab51bb96146107f0578063ac43175114610805576102e4565b8063862498821461075d57806396713da9146107725780639dc0926214610787578063a1a11bf51461079c578063a5422d5c146107b1578063a78abc16146107c6576102e4565b806351e806721161024f57806370fd5bad116102085780637942fd05116101e25780637942fd05146106ae57806381650b62146106c3578063831d65d1146106d8578063853230aa14610699576102e4565b806370fd5bad1461066f57806375d47a0a1461068457806378dfed4a14610699576102e4565b806351e8067214610572578063565c56b3146105875780635667515a146105ba5780635d77156c146105cf5780636969a25c146105e45780636e47b4821461065a576102e4565b80633de0f0d8116102a15780633de0f0d8146104ab5780633dffc387146104c057806343756e5c146104eb578063493279b11461051c5780634bf6c882146105485780635192c82c1461055d576102e4565b80630bee7a67146102e95780631182b87514610317578063152ad3b8146104115780631ff180691461043a578063219f22d51461046157806335409f7f14610476575b600080fd5b3480156102f557600080fd5b506102fe610aa8565b6040805163ffffffff9092168252519081900360200190f35b34801561032357600080fd5b5061039c6004803603604081101561033a57600080fd5b60ff8235169190810190604081016020820135600160201b81111561035e57600080fd5b82018360208201111561037057600080fd5b803590602001918460018302840111600160201b8311171561039157600080fd5b509092509050610aad565b6040805160208082528351818301528351919283929083019185019080838360005b838110156103d65781810151838201526020016103be565b50505050905090810190601f1680156104035780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561041d57600080fd5b50610426610c9a565b604080519115158252519081900360200190f35b34801561044657600080fd5b5061044f610ca3565b60408051918252519081900360200190f35b34801561046d57600080fd5b506102fe610ca9565b34801561048257600080fd5b506104a96004803603602081101561049957600080fd5b50356001600160a01b0316610cae565b005b3480156104b757600080fd5b5061044f610fc2565b3480156104cc57600080fd5b506104d5610fc8565b6040805160ff9092168252519081900360200190f35b3480156104f757600080fd5b50610500610fcd565b604080516001600160a01b039092168252519081900360200190f35b34801561052857600080fd5b50610531610fd3565b6040805161ffff9092168252519081900360200190f35b34801561055457600080fd5b506104d5610fd8565b34801561056957600080fd5b5061044f610fdd565b34801561057e57600080fd5b50610500610fe3565b34801561059357600080fd5b5061044f600480360360208110156105aa57600080fd5b50356001600160a01b0316610fe9565b3480156105c657600080fd5b506104d561103b565b3480156105db57600080fd5b506102fe611040565b3480156105f057600080fd5b5061060e6004803603602081101561060757600080fd5b5035611045565b604080516001600160a01b039788168152958716602087015293909516848401526001600160401b0390911660608401521515608083015260a082019290925290519081900360c00190f35b34801561066657600080fd5b506105006110a9565b34801561067b57600080fd5b506104d56110af565b34801561069057600080fd5b506105006110b4565b3480156106a557600080fd5b5061044f6110ba565b3480156106ba57600080fd5b506104d56110c0565b3480156106cf57600080fd5b506102fe6110c5565b3480156106e457600080fd5b506104a9600480360360408110156106fb57600080fd5b60ff8235169190810190604081016020820135600160201b81111561071f57600080fd5b82018360208201111561073157600080fd5b803590602001918460018302840111600160201b8311171561075257600080fd5b5090925090506110ca565b34801561076957600080fd5b5061044f61117d565b34801561077e57600080fd5b506104d5611183565b34801561079357600080fd5b50610500611188565b3480156107a857600080fd5b5061050061118e565b3480156107bd57600080fd5b5061039c611194565b3480156107d257600080fd5b506104266111b3565b3480156107e757600080fd5b5061044f6111bc565b3480156107fc57600080fd5b506102fe61103b565b34801561081157600080fd5b506104a96004803603604081101561082857600080fd5b810190602081018135600160201b81111561084257600080fd5b82018360208201111561085457600080fd5b803590602001918460018302840111600160201b8311171561087557600080fd5b919390929091602081019035600160201b81111561089257600080fd5b8201836020820111156108a457600080fd5b803590602001918460018302840111600160201b831117156108c557600080fd5b5090925090506111c5565b3480156108dc57600080fd5b5061044f600480360360208110156108f357600080fd5b50356001600160a01b03166115bc565b34801561090f57600080fd5b506109186115ce565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561095457818101518382015260200161093c565b505050509050019250505060405180910390f35b34801561097457600080fd5b506105006116f4565b34801561098957600080fd5b5061044f6116fa565b34801561099e57600080fd5b5061044f611706565b3480156109b357600080fd5b5061050061170c565b3480156109c857600080fd5b5061044f611712565b3480156109dd57600080fd5b506104a9611717565b3480156109f257600080fd5b506104a960048036036020811015610a0957600080fd5b50356001600160a01b031661191a565b348015610a2557600080fd5b506102fe611ae9565b6104a960048036036020811015610a4457600080fd5b50356001600160a01b0316611aee565b348015610a6057600080fd5b50610500611df3565b348015610a7557600080fd5b506104d5611df9565b348015610a8a57600080fd5b50610500611dfe565b348015610a9f57600080fd5b50610500611e04565b606481565b60005460609060ff16610b03576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b3361200014610b435760405162461bcd60e51b815260040180806020018281038252602f815260200180614951602f913960400191505060405180910390fd5b610b4b614158565b6000610b8c85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611e0a92505050565b9150915080610ba857610b9f6064611f63565b92505050610c93565b815160009060ff16610bc857610bc18360200151611fc4565b9050610c5f565b825160ff1660011415610c5b57826020015151600114610c35577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb26040518080602001828103825260258152602001806142866025913960400191505060405180910390a1506067610c56565b610bc18360200151600081518110610c4957fe5b6020026020010151612dca565b610c5f565b5060655b63ffffffff8116610c845750506040805160008152602081019091529150610c939050565b610c8d81611f63565b93505050505b9392505050565b60075460ff1681565b60035481565b606881565b3361100114610cee5760405162461bcd60e51b81526004018080602001828103825260298152602001806149ad6029913960400191505060405180910390fd5b6001600160a01b03811660009081526004602052604090205480610d125750610fbf565b600181039050600060018281548110610d2757fe5b60009182526020909120600360049092020101546001549091506000190180610d7657600060018481548110610d5957fe5b906000526020600020906004020160030181905550505050610fbf565b6040805183815290516001600160a01b038616917f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a70919081900360200190a26001600160a01b038416600090815260046020526040812055600154600019018314610ef857600180546000198101908110610ded57fe5b906000526020600020906004020160018481548110610e0857fe5b6000918252602082208354600492830290910180546001600160a01b03199081166001600160a01b0393841617825560018087015481840180548416918616919091179055600280880180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b199094169390931790556003948501549401939093558254868401939192919087908110610ecd57fe5b600091825260208083206004909202909101546001600160a01b031683528201929092526040019020555b6001805480610f0357fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b03191690556003018190559155818381610f5657fe5b0490508015610fba5760015460005b81811015610fb7578260018281548110610f7b57fe5b9060005260206000209060040201600301540160018281548110610f9b57fe5b6000918252602090912060036004909202010155600101610f65565b50505b505050505b50565b61271081565b600181565b61100181565b603881565b600881565b60065481565b61200081565b6001600160a01b03811660009081526004602052604081205480611011576000915050611036565b60018082038154811061102057fe5b9060005260206000209060040201600301549150505b919050565b600081565b606781565b6001818154811061105257fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b61100881565b6103e881565b600b81565b606681565b336120001461110a5760405162461bcd60e51b815260040180806020018281038252602f815260200180614951602f913960400191505060405180910390fd5b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a1505050565b60025481565b600981565b61100781565b61100681565b6040518061062001604052806105ef81526020016143626105ef913981565b60005460ff1681565b6402540be40081565b60005460ff16611218576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b33611007146112585760405162461bcd60e51b815260040180806020018281038252602e8152602001806142cc602e913960400191505060405180910390fd5b6112c284848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b60208201529150612f419050565b1561139d57602081146113065760405162461bcd60e51b815260040180806020018281038252602681526020018061431b6026913960400191505060405180910390fd5b604080516020601f84018190048102820181019092528281526000916113449185858083850183828082843760009201919091525061302992505050565b90506064811015801561135a5750620186a08111155b6113955760405162461bcd60e51b815260040180806020018281038252602781526020018061425f6027913960400191505060405180910390fd5b60025561152a565b6113fd84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260098152686275726e526174696f60b81b60208201529150612f419050565b156114ed5760208114611457576040805162461bcd60e51b815260206004820152601c60248201527f6c656e677468206f66206275726e526174696f206d69736d6174636800000000604482015290519081900360640190fd5b604080516020601f84018190048102820181019092528281526000916114959185858083850183828082843760009201919091525061302992505050565b90506127108111156114d85760405162461bcd60e51b815260040180806020018281038252602b815260200180614209602b913960400191505060405180910390fd5b6006556007805460ff1916600117905561152a565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b60046020526000908152604090205481565b6001546060906000805b8281101561161f57600181815481106115ed57fe5b9060005260206000209060040201600201601c9054906101000a900460ff16611617576001909101905b6001016115d8565b5060608160405190808252806020026020018201604052801561164c578160200160208202803683370190505b50600092509050815b838110156116ec576001818154811061166a57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166116e4576001818154811061169a57fe5b600091825260209091206004909102015482516001600160a01b03909116908390859081106116c557fe5b6001600160a01b03909216602092830291909101909101526001909201915b600101611655565b509250505090565b61100281565b67016345785d8a000081565b60055481565b61100381565b602981565b60005460ff161561176f576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b611777614158565b600061179d6040518061062001604052806105ef81526020016143626105ef9139611e0a565b91509150806117dd5760405162461bcd60e51b81526004018080602001828103825260218152602001806143416021913960400191505060405180910390fd5b60005b826020015151811015611902576001836020015182815181106117ff57fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a0909301516003909301929092559186015180519185019391859081106118d557fe5b602090810291909101810151516001600160a01b03168252810191909152604001600020556001016117e0565b50506103e8600255506000805460ff19166001179055565b336110011461195a5760405162461bcd60e51b81526004018080602001828103825260298152602001806149ad6029913960400191505060405180910390fd5b6001600160a01b0381166000908152600460205260409020548061197e5750610fbf565b60018103905060006001828154811061199357fe5b90600052602060002090600402016003015490506000600183815481106119b657fe5b906000526020600020906004020160030181905550600060018080549050039050836001600160a01b03167f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d836040518082815260200191505060405180910390a280611a2557505050610fbf565b6000818381611a3057fe5b0490508015610fba5760005b84811015611a8e578160018281548110611a5257fe5b9060005260206000209060040201600301540160018281548110611a7257fe5b6000918252602090912060036004909202010155600101611a3c565b50600180549085015b81811015610fb7578260018281548110611aad57fe5b9060005260206000209060040201600301540160018281548110611acd57fe5b6000918252602090912060036004909202010155600101611a97565b606581565b334114611b2c5760405162461bcd60e51b815260040180806020018281038252602d815260200180614980602d913960400191505060405180910390fd5b60005460ff16611b7f576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b60003411611bcc576040805162461bcd60e51b81526020600482015260156024820152746465706f7369742076616c7565206973207a65726f60581b604482015290519081900360640190fd5b6001600160a01b0381166000908152600460205260409020546007543491906103e89060ff1615611bfc57506006545b600083118015611c0c5750600081115b15611cb5576000611c35612710611c29868563ffffffff61302e16565b9063ffffffff61308716565b90508015611cb35760405161dead9082156108fc029083906000818181858888f19350505050158015611c6c573d6000803e3d6000fd5b506040805182815290517f627059660ea01c4733a328effb2294d2f86905bf806da763a89cee254de8bee59181900360200190a1611cb0848263ffffffff6130c916565b93505b505b8115611dad576000600180840381548110611ccc57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff1615611d37576040805185815290516001600160a01b038716917ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4919081900360200190a2611da7565b600354611d4a908563ffffffff61310b16565b6003908155810154611d62908563ffffffff61310b16565b60038201556040805185815290516001600160a01b038716917f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc055919081900360200190a25b50611ded565b6040805184815290516001600160a01b038616917ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4919081900360200190a25b50505050565b61100081565b600381565b61dead81565b61100481565b611e12614158565b6000611e1c614158565b611e24614170565b611e35611e3086613165565b61318a565b90506000805b611e44836131d4565b15611f555780611e6957611e5f611e5a846131f5565b613243565b60ff168452611f4d565b8060011415611f48576060611e85611e80856131f5565b6132fa565b90508051604051908082528060200260200182016040528015611ec257816020015b611eaf614190565b815260200190600190039081611ea75790505b50602086015260005b8151811015611f3d57611edc614190565b6000611efa848481518110611eed57fe5b60200260200101516133cb565b9150915080611f1757876000995099505050505050505050611f5e565b8188602001518481518110611f2857fe5b60209081029190910101525050600101611ecb565b506001925050611f4d565b611f55565b600101611e3b565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b6060815260200190600190039081611f7d579050509050611fa38363ffffffff166134a8565b81600081518110611fb057fe5b6020026020010181905250610c93816134bb565b6000806060611fd284613545565b915091508161207f577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2816040518080602001828103825283818151815260200191508051906020019080838360005b8381101561203a578181015183820152602001612022565b50505050905090810190601f1680156120675780820380516001836020036101000a031916815260200191505b509250505060405180910390a1606692505050611036565b600080805b6001548110156120fc5767016345785d8a0000600182815481106120a457fe5b906000526020600020906004020160030154106120c6576001909201916120f4565b6000600182815481106120d557fe5b90600052602060002090600402016003015411156120f4576001909101905b600101612084565b50606082604051908082528060200260200182016040528015612129578160200160208202803683370190505b509050606083604051908082528060200260200182016040528015612158578160200160208202803683370190505b509050606084604051908082528060200260200182016040528015612187578160200160208202803683370190505b5090506060856040519080825280602002602001820160405280156121b6578160200160208202803683370190505b50905060006060866040519080825280602002602001820160405280156121e7578160200160208202803683370190505b509050606087604051908082528060200260200182016040528015612216578160200160208202803683370190505b509050600098506000975060608d905060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b15801561226357600080fd5b505afa158015612277573d6000803e3d6000fd5b505050506040513d602081101561228d57600080fd5b5051905067016345785d8a0000811115612302577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb26040518080602001828103825260218152602001806142fa6021913960400191505060405180910390a160689d5050505050505050505050505050611036565b60005b6001548110156125755767016345785d8a00006001828154811061232557fe5b906000526020600020906004020160030154106124ab576001818154811061234957fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b03168a8d8151811061237a57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be400600183815481106123af57fe5b906000526020600020906004020160030154816123c857fe5b06600183815481106123d657fe5b9060005260206000209060040201600301540390506123fe83826130c990919063ffffffff16565b8a8e8151811061240a57fe5b6020026020010181815250506001828154811061242357fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316888e8151811061245457fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081898e8151811061248157fe5b602090810291909101015261249c878263ffffffff61310b16565b6001909d019c965061256d9050565b6000600182815481106124ba57fe5b906000526020600020906004020160030154111561256d57600181815481106124df57fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316858c8151811061251057fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506001818154811061253d57fe5b906000526020600020906004020160030154848c8151811061255b57fe5b60209081029190910101526001909a01995b600101612305565b50600085156129b3576110046001600160a01b0316636e056520878c8c8b60025442016040518663ffffffff1660e01b815260040180806020018060200180602001856001600160401b03166001600160401b03168152602001848103845288818151815260200191508051906020019060200280838360005b838110156126075781810151838201526020016125ef565b50505050905001848103835287818151815260200191508051906020019060200280838360005b8381101561264657818101518382015260200161262e565b50505050905001848103825286818151815260200191508051906020019060200280838360005b8381101561268557818101518382015260200161266d565b505050509050019750505050505050506020604051808303818588803b1580156126ae57600080fd5b505af1935050505080156126d457506040513d60208110156126cf57600080fd5b505160015b61290f576040516000815260443d10156126f05750600061278b565b60046000803e60005160e01c6308c379a0811461271157600091505061278b565b60043d036004833e81513d60248201116001600160401b038211171561273c5760009250505061278b565b80830180516001600160401b0381111561275d57600094505050505061278b565b8060208301013d860181111561277b5760009550505050505061278b565b601f01601f191660405250925050505b80612796575061283a565b60019150867fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280826040518080602001828103825283818151815260200191508051906020019080838360005b838110156127fa5781810151838201526020016127e2565b50505050905090810190601f1680156128275780820380516001836020036101000a031916815260200191505b509250505060405180910390a25061290a565b3d808015612864576040519150601f19603f3d011682016040523d82523d6000602084013e612869565b606091505b5060019150867fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a45826040518080602001828103825283818151815260200191508051906020019080838360005b838110156128ce5781810151838201526020016128b6565b50505050905090810190601f1680156128fb5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b6129b3565b801561294d576040805188815290517fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b709181900360200190a16129b1565b604080516020808252601b908201527f6261746368207472616e736665722072657475726e2066616c7365000000000081830152905188917fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280919081900360600190a25b505b8015612b695760005b8851811015612b675760008982815181106129d357fe5b602002602001015190506000600182815481106129ec57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc9185908110612a1d57fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f1935050505090508015612ad95760018281548110612a5e57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d9185908110612aad57fe5b9060005260206000209060040201600301546040518082815260200191505060405180910390a2612b5d565b60018281548110612ae657fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d9185908110612b3557fe5b9060005260206000209060040201600301546040518082815260200191505060405180910390a25b50506001016129bc565b505b845115612cb35760005b8551811015612cb1576000868281518110612b8a57fe5b60200260200101516001600160a01b03166108fc878481518110612baa57fe5b60200260200101519081150290604051600060405180830381858888f1935050505090508015612c4057868281518110612be057fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d878481518110612c1e57fe5b60200260200101516040518082815260200191505060405180910390a2612ca8565b868281518110612c4c57fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d878481518110612c8a57fe5b60200260200101516040518082815260200191505060405180910390a25b50600101612b73565b505b4715612d1c576040805147815290517f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d9181900360200190a1604051611002904780156108fc02916000818181858888f19350505050158015612d1a573d6000803e3d6000fd5b505b60006003819055600555825115612d3657612d3683613627565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015612d7357600080fd5b505af1158015612d87573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a15060009f9e505050505050505050505050505050565b80516001600160a01b0316600090815260046020526040812054801580612e1b5750600180820381548110612dfb57fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b15612e615782516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a26000915050611036565b600154600554600019820111801590612eb75784516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a260009350505050611036565b600580546001908101909155805481906000198601908110612ed557fe5b6000918252602082206002600490920201018054921515600160e01b0260ff60e01b199093169290921790915585516040516001600160a01b03909116917ff226e7d8f547ff903d9d419cf5f54e0d7d07efa9584135a53a057c5f1f27f49a91a2506000949350505050565b6000816040516020018082805190602001908083835b60208310612f765780518252601f199092019160209182019101612f57565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310612fe45780518252601f199092019160209182019101612fc5565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052805190602001201490505b92915050565b015190565b60008261303d57506000613023565b8282028284828161304a57fe5b0414610c935760405162461bcd60e51b81526004018080602001828103825260218152602001806142ab6021913960400191505060405180910390fd5b6000610c9383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613ae8565b6000610c9383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613b8a565b600082820183811015610c93576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b61316d6141c5565b506040805180820190915281518152602082810190820152919050565b613192614170565b61319b82613be4565b6131a457600080fd5b60006131b38360200151613c1e565b60208085015160408051808201909152868152920190820152915050919050565b60006131de6141c5565b505080518051602091820151919092015191011190565b6131fd6141c5565b613206826131d4565b61320f57600080fd5b6020820151600061321f82613c81565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061325857508151602110155b61326157600080fd5b60006132708360200151613c1e565b905080836000015110156132cb576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b8251602080850151830180519284900392918310156132f157826020036101000a820491505b50949350505050565b606061330582613be4565b61330e57600080fd5b600061331983613db4565b905060608160405190808252806020026020018201604052801561335757816020015b6133446141c5565b81526020019060019003908161333c5790505b50905060006133698560200151613c1e565b60208601510190506000805b848110156133c05761338683613c81565b91506040518060400160405280838152602001848152508482815181106133a957fe5b602090810291909101015291810191600101613375565b509195945050505050565b6133d3614190565b60006133dd614190565b6133e5614170565b6133ee8561318a565b90506000805b6133fd836131d4565b15611f55578061342857613418613413846131f5565b613e10565b6001600160a01b031684526134a0565b80600114156134505761343d613413846131f5565b6001600160a01b031660208501526134a0565b806002141561347857613465613413846131f5565b6001600160a01b031660408501526134a0565b8060031415611f485761348d611e5a846131f5565b6001600160401b03166060850152600191505b6001016133f4565b60606130236134b683613e2a565b613f10565b60608151600014156134dc5750604080516000815260208101909152611036565b6060826000815181106134eb57fe5b602002602001015190506000600190505b835181101561352c576135228285838151811061351557fe5b6020026020010151613f62565b91506001016134fc565b50610c9361353f825160c060ff16613fdf565b82613f62565b600060606029835111156135775760006040518060600160405280602981526020016141e06029913991509150611f5e565b60005b835181101561360d5760005b818110156136045784818151811061359a57fe5b6020026020010151600001516001600160a01b03168583815181106135bb57fe5b6020026020010151600001516001600160a01b031614156135fc5760006040518060600160405280602b8152602001614234602b9139935093505050611f5e565b600101613586565b5060010161357a565b505060408051602081019091526000815260019150915091565b600154815160005b82811015613744576001613641614190565b6001838154811061364e57fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b84811015613718578681815181106136de57fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b031614156137105760009250613718565b6001016136ca565b50811561373a5780516001600160a01b03166000908152600460205260408120555b505060010161362f565b50808211156137b957805b828110156137b757600180548061376257fe5b60008281526020812060046000199093019283020180546001600160a01b03199081168255600182810180549092169091556002820180546001600160e81b031916905560039091019190915591550161374f565b505b60008183106137c857816137ca565b825b905060005b818110156139c45761387c8582815181106137e657fe5b6020026020010151600183815481106137fb57fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a08201526140d7565b61399757806001016004600087848151811061389457fe5b6020026020010151600001516001600160a01b03166001600160a01b03168152602001908152602001600020819055508481815181106138d057fe5b6020026020010151600182815481106138e557fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a0909101516003909101556139bc565b6000600182815481106139a657fe5b9060005260206000209060040201600301819055505b6001016137cf565b5082821115611ded57825b82811015610fba5760018582815181106139e557fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782559585015181840180549184169188169190911790556040850151600282018054606088015160808901511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590971692909a169190911792909216939093171695909517905560a09092015160039093019290925587519084019290889085908110613abb57fe5b602090810291909101810151516001600160a01b03168252810191909152604001600020556001016139cf565b60008183613b745760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613b39578181015183820152602001613b21565b50505050905090810190601f168015613b665780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581613b8057fe5b0495945050505050565b60008184841115613bdc5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315613b39578181015183820152602001613b21565b505050900390565b8051600090613bf557506000611036565b6020820151805160001a9060c0821015613c1457600092505050611036565b5060019392505050565b8051600090811a6080811015613c38576000915050611036565b60b8811080613c53575060c08110801590613c53575060f881105b15613c62576001915050611036565b60c0811015613c765760b519019050611036565b60f519019050611036565b80516000908190811a6080811015613c9c5760019150613dad565b60b8811015613cb157607e1981019150613dad565b60c0811015613d2b57600060b78203600186019550806020036101000a865104915060018101820193505080831015613d25576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50613dad565b60f8811015613d405760be1981019150613dad565b600060f78203600186019550806020036101000a865104915060018101820193505080831015613dab576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b8051600090613dc557506000611036565b60008090506000613dd98460200151613c1e565b602085015185519181019250015b80821015613e0757613df882613c81565b60019093019290910190613de7565b50909392505050565b8051600090601514613e2157600080fd5b61302382613243565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416613e6e57506018613e92565b6fffffffffffffffffffffffffffffffff198416613e8e57506010613e92565b5060005b6020811015613ec857818181518110613ea757fe5b01602001516001600160f81b03191615613ec057613ec8565b600101613e92565b60008160200390506060816040519080825280601f01601f191660200182016040528015613efd576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015613f425750607f60f81b82600081518110613f3057fe5b01602001516001600160f81b03191611155b15613f4e575080611036565b613023613f608351608060ff16613fdf565b835b6060806040519050835180825260208201818101602087015b81831015613f93578051835260209283019201613f7b565b50855184518101855292509050808201602086015b81831015613fc0578051835260209283019201613fa8565b508651929092011591909101601f01601f191660405250905092915050565b606068010000000000000000831061402f576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b604080516001808252818301909252606091602082018180368337019050509050603784116140895782840160f81b8160008151811061406b57fe5b60200101906001600160f81b031916908160001a9053509050613023565b606061409485613e2a565b90508381510160370160f81b826000815181106140ad57fe5b60200101906001600160f81b031916908160001a9053506140ce8282613f62565b95945050505050565b805182516000916001600160a01b039182169116148015614111575081602001516001600160a01b031683602001516001600160a01b0316145b8015614136575081604001516001600160a01b031683604001516001600160a01b0316145b8015610c935750506060908101519101516001600160401b0390811691161490565b60408051808201909152600081526060602082015290565b60405180604001604052806141836141c5565b8152602001600081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b60405180604001604052806000815260200160008152509056fe746865206e756d626572206f662076616c696461746f72732065786365656420746865206c696d6974746865206275726e526174696f206d757374206265206e6f2067726561746572207468616e2031303030306475706c696361746520636f6e73656e7375732061646472657373206f662076616c696461746f725365747468652065787069726554696d655365636f6e64476170206973206f7574206f662072616e67656c656e677468206f66206a61696c2076616c696461746f7273206d757374206265206f6e65536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374666565206973206c6172676572207468616e2044555354595f494e434f4d494e476c656e677468206f662065787069726554696d655365636f6e64476170206d69736d617463686661696c656420746f20706172736520696e69742076616c696461746f72536574f905ec80f905e8f846942a7cdd959bfe8d9487b2a43b33565295a698f7e294b6a7edd747c0554875d3fc531d19ba1497992c5e941ff80f3f7f110ffd8920a3ac38fdef318fe94a3f86048c27395000f846946488aa4d1955ee33403f8ccb1d4de5fb97c7ade294220f003d8bdfaadf52aa1e55ae4cc485e6794875941a87e90e440a39c99aa9cb5cea0ad6a3f0b2407b86048c27395000f846949ef9f4360c606c7ab4db26b016007d3ad0ab86a0946103af86a874b705854033438383c82575f25bc29418e2db06cbff3e3c5f856410a1838649e760175786048c27395000f84694ee01c3b1283aa067c58eab4709f85e99d46de5fe94ee4b9bfb1871c64e2bcabb1dc382dc8b7c4218a29415904ab26ab0e99d70b51c220ccdcccabee6e29786048c27395000f84694685b1ded8013785d6623cc18d214320b6bb6475994a20ef4e5e4e7e36258dbf51f4d905114cb1b34bc9413e39085dc88704f4394d35209a02b1a9520320c86048c27395000f8469478f3adfc719c99674c072166708589033e2d9afe9448a30d5eaa7b64492a160f139e2da2800ec3834e94055838358c29edf4dcc1ba1985ad58aedbb6be2b86048c27395000f84694c2be4ec20253b8642161bc3f444f53679c1f3d479466f50c616d737e60d7ca6311ff0d9c434197898a94d1d678a2506eeaa365056fe565df8bc8659f28b086048c27395000f846942f7be8361c80a4c1e7e9aaf001d0877f1cfde218945f93992ac37f3e61db2ef8a587a436a161fd210b94ecbc4fb1a97861344dad0867ca3cba2b860411f086048c27395000f84694ce2fd7544e0b2cc94692d4a704debef7bcb613289444abc67b4b2fba283c582387f54c9cba7c34bafa948acc2ab395ded08bb75ce85bf0f95ad2abc51ad586048c27395000f84694b8f7166496996a7da21cf1f1b04d9b3e26a3d077946770572763289aac606e4f327c2f6cc1aa3b3e3b94882d745ed97d4422ca8da1c22ec49d880c4c097286048c27395000f846942d4c407bbe49438ed859fe965b140dcf1aab71a9943ad0939e120f33518fbba04631afe7a3ed6327b194b2bbb170ca4e499a2b0f3cc85ebfa6e8c4dfcbea86048c27395000f846946bbad7cf34b5fa511d8e963dbba288b1960e75d694853b0f6c324d1f4e76c8266942337ac1b0af1a229442498946a51ca5924552ead6fc2af08b94fcba648601d1a94a2000f846944430b3230294d12c6ab2aac5c2cd68e80b16b581947b107f4976a252a6939b771202c28e64e03f52d694795811a7f214084116949fc4f53cedbf189eeab28601d1a94a2000f84694ea0a6e3c511bbd10f4519ece37dc24887e11b55d946811ca77acfb221a49393c193f3a22db829fcc8e9464feb7c04830dd9ace164fc5c52b3f5a29e5018a8601d1a94a2000f846947ae2f5b9e386cd1b50a4550696d957cb4900f03a94e83bcc5077e6b873995c24bac871b5ad856047e19464e48d4057a90b233e026c1041e6012ada897fe88601d1a94a2000f8469482012708dafc9e1b880fd083b32182b869be8e09948e5adc73a2d233a1b496ed3115464dd6c7b887509428b383d324bc9a37f4e276190796ba5a8947f5ed8601d1a94a2000f8469422b81f8e175ffde54d797fe11eb03f9e3bf75f1d94a1c3ef7ca38d8ba80cce3bfc53ebd2903ed21658942767f7447f7b9b70313d4147b795414aecea54718601d1a94a2000f8469468bf0b8b6fb4e317a0f9d6f03eaf8ce6675bc60d94675cfe570b7902623f47e7f59c9664b5f5065dcf94d84f0d2e50bcf00f2fc476e1c57f5ca2d57f625b8601d1a94a2000f846948c4d90829ce8f72d0163c1d5cf348a862d5506309485c42a7b34309bee2ed6a235f86d16f059deec5894cc2cedc53f0fa6d376336efb67e43d167169f3b78601d1a94a2000f8469435e7a025f4da968de7e4d7e4004197917f4070f194b1182abaeeb3b4d8eba7e6a4162eac7ace23d57394c4fd0d870da52e73de2dd8ded19fe3d26f43a1138601d1a94a2000f84694d6caa02bbebaebb5d7e581e4b66559e635f805ff94c07335cf083c1c46a487f0325769d88e163b653694efaff03b42e41f953a925fc43720e45fb61a19938601d1a94a2000746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d6573736167652073656e646572206d7573742062652074686520626c6f636b2070726f6475636572746865206d6573736167652073656e646572206d75737420626520736c61736820636f6e7472616374a2646970667358221220b806ba3d9dd9e078bac9726f79b32c9b62db327924a189cc1a9e4e106ffbe50d64736f6c63430006040033", - }, - }, - } - - BrunoUpgrade[networkname.ChapelChainName] = &Upgrade{ - UpgradeName: "bruno", - Configs: []*UpgradeConfig{ - { - ContractAddr: ValidatorContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/ce622fef469d84ee418fa6181f3ac962412a5f4f", - Code: "6080604052600436106102e45760003560e01c80638624988211610190578063c8509d81116100dc578063eb57e20211610095578063f9a2bbc71161006f578063f9a2bbc714610a54578063fc3e590814610a69578063fccc281314610a7e578063fd6a687914610a93576102e4565b8063eb57e202146109e6578063eda5868c14610a19578063f340fa0114610a2e576102e4565b8063c8509d81146106d8578063d86222d51461097d578063daacdb6614610992578063dc927faf146109a7578063e086c7b1146109bc578063e1c7392a146109d1576102e4565b8063aaf5eb6811610149578063ad3c9da611610123578063ad3c9da6146108d0578063b7ab4db514610903578063bf9f4995146104c0578063c81b166214610968576102e4565b8063aaf5eb68146107db578063ab51bb96146107f0578063ac43175114610805576102e4565b8063862498821461075d57806396713da9146107725780639dc0926214610787578063a1a11bf51461079c578063a5422d5c146107b1578063a78abc16146107c6576102e4565b806351e806721161024f57806370fd5bad116102085780637942fd05116101e25780637942fd05146106ae57806381650b62146106c3578063831d65d1146106d8578063853230aa14610699576102e4565b806370fd5bad1461066f57806375d47a0a1461068457806378dfed4a14610699576102e4565b806351e8067214610572578063565c56b3146105875780635667515a146105ba5780635d77156c146105cf5780636969a25c146105e45780636e47b4821461065a576102e4565b80633de0f0d8116102a15780633de0f0d8146104ab5780633dffc387146104c057806343756e5c146104eb578063493279b11461051c5780634bf6c882146105485780635192c82c1461055d576102e4565b80630bee7a67146102e95780631182b87514610317578063152ad3b8146104115780631ff180691461043a578063219f22d51461046157806335409f7f14610476575b600080fd5b3480156102f557600080fd5b506102fe610aa8565b6040805163ffffffff9092168252519081900360200190f35b34801561032357600080fd5b5061039c6004803603604081101561033a57600080fd5b60ff8235169190810190604081016020820135600160201b81111561035e57600080fd5b82018360208201111561037057600080fd5b803590602001918460018302840111600160201b8311171561039157600080fd5b509092509050610aad565b6040805160208082528351818301528351919283929083019185019080838360005b838110156103d65781810151838201526020016103be565b50505050905090810190601f1680156104035780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561041d57600080fd5b50610426610c9a565b604080519115158252519081900360200190f35b34801561044657600080fd5b5061044f610ca3565b60408051918252519081900360200190f35b34801561046d57600080fd5b506102fe610ca9565b34801561048257600080fd5b506104a96004803603602081101561049957600080fd5b50356001600160a01b0316610cae565b005b3480156104b757600080fd5b5061044f610fc2565b3480156104cc57600080fd5b506104d5610fc8565b6040805160ff9092168252519081900360200190f35b3480156104f757600080fd5b50610500610fcd565b604080516001600160a01b039092168252519081900360200190f35b34801561052857600080fd5b50610531610fd3565b6040805161ffff9092168252519081900360200190f35b34801561055457600080fd5b506104d5610fd8565b34801561056957600080fd5b5061044f610fdd565b34801561057e57600080fd5b50610500610fe3565b34801561059357600080fd5b5061044f600480360360208110156105aa57600080fd5b50356001600160a01b0316610fe9565b3480156105c657600080fd5b506104d561103b565b3480156105db57600080fd5b506102fe611040565b3480156105f057600080fd5b5061060e6004803603602081101561060757600080fd5b5035611045565b604080516001600160a01b039788168152958716602087015293909516848401526001600160401b0390911660608401521515608083015260a082019290925290519081900360c00190f35b34801561066657600080fd5b506105006110a9565b34801561067b57600080fd5b506104d56110af565b34801561069057600080fd5b506105006110b4565b3480156106a557600080fd5b5061044f6110ba565b3480156106ba57600080fd5b506104d56110c0565b3480156106cf57600080fd5b506102fe6110c5565b3480156106e457600080fd5b506104a9600480360360408110156106fb57600080fd5b60ff8235169190810190604081016020820135600160201b81111561071f57600080fd5b82018360208201111561073157600080fd5b803590602001918460018302840111600160201b8311171561075257600080fd5b5090925090506110ca565b34801561076957600080fd5b5061044f61117d565b34801561077e57600080fd5b506104d5611183565b34801561079357600080fd5b50610500611188565b3480156107a857600080fd5b5061050061118e565b3480156107bd57600080fd5b5061039c611194565b3480156107d257600080fd5b506104266111b3565b3480156107e757600080fd5b5061044f6111bc565b3480156107fc57600080fd5b506102fe61103b565b34801561081157600080fd5b506104a96004803603604081101561082857600080fd5b810190602081018135600160201b81111561084257600080fd5b82018360208201111561085457600080fd5b803590602001918460018302840111600160201b8311171561087557600080fd5b919390929091602081019035600160201b81111561089257600080fd5b8201836020820111156108a457600080fd5b803590602001918460018302840111600160201b831117156108c557600080fd5b5090925090506111c5565b3480156108dc57600080fd5b5061044f600480360360208110156108f357600080fd5b50356001600160a01b03166115bc565b34801561090f57600080fd5b506109186115ce565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561095457818101518382015260200161093c565b505050509050019250505060405180910390f35b34801561097457600080fd5b506105006116f4565b34801561098957600080fd5b5061044f6116fa565b34801561099e57600080fd5b5061044f611706565b3480156109b357600080fd5b5061050061170c565b3480156109c857600080fd5b5061044f611712565b3480156109dd57600080fd5b506104a9611717565b3480156109f257600080fd5b506104a960048036036020811015610a0957600080fd5b50356001600160a01b031661191a565b348015610a2557600080fd5b506102fe611ae9565b6104a960048036036020811015610a4457600080fd5b50356001600160a01b0316611aee565b348015610a6057600080fd5b50610500611df3565b348015610a7557600080fd5b506104d5611df9565b348015610a8a57600080fd5b50610500611dfe565b348015610a9f57600080fd5b50610500611e04565b606481565b60005460609060ff16610b03576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b3361200014610b435760405162461bcd60e51b815260040180806020018281038252602f81526020018061450d602f913960400191505060405180910390fd5b610b4b614158565b6000610b8c85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611e0a92505050565b9150915080610ba857610b9f6064611f63565b92505050610c93565b815160009060ff16610bc857610bc18360200151611fc4565b9050610c5f565b825160ff1660011415610c5b57826020015151600114610c35577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb26040518080602001828103825260258152602001806144316025913960400191505060405180910390a1506067610c56565b610bc18360200151600081518110610c4957fe5b6020026020010151612dca565b610c5f565b5060655b63ffffffff8116610c845750506040805160008152602081019091529150610c939050565b610c8d81611f63565b93505050505b9392505050565b60075460ff1681565b60035481565b606881565b3361100114610cee5760405162461bcd60e51b81526004018080602001828103825260298152602001806145696029913960400191505060405180910390fd5b6001600160a01b03811660009081526004602052604090205480610d125750610fbf565b600181039050600060018281548110610d2757fe5b60009182526020909120600360049092020101546001549091506000190180610d7657600060018481548110610d5957fe5b906000526020600020906004020160030181905550505050610fbf565b6040805183815290516001600160a01b038616917f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a70919081900360200190a26001600160a01b038416600090815260046020526040812055600154600019018314610ef857600180546000198101908110610ded57fe5b906000526020600020906004020160018481548110610e0857fe5b6000918252602082208354600492830290910180546001600160a01b03199081166001600160a01b0393841617825560018087015481840180548416918616919091179055600280880180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b199094169390931790556003948501549401939093558254868401939192919087908110610ecd57fe5b600091825260208083206004909202909101546001600160a01b031683528201929092526040019020555b6001805480610f0357fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b03191690556003018190559155818381610f5657fe5b0490508015610fba5760015460005b81811015610fb7578260018281548110610f7b57fe5b9060005260206000209060040201600301540160018281548110610f9b57fe5b6000918252602090912060036004909202010155600101610f65565b50505b505050505b50565b61271081565b600181565b61100181565b606181565b600881565b60065481565b61200081565b6001600160a01b03811660009081526004602052604081205480611011576000915050611036565b60018082038154811061102057fe5b9060005260206000209060040201600301549150505b919050565b600081565b606781565b6001818154811061105257fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b61100881565b6103e881565b600b81565b606681565b336120001461110a5760405162461bcd60e51b815260040180806020018281038252602f81526020018061450d602f913960400191505060405180910390fd5b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a1505050565b60025481565b600981565b61100781565b61100681565b604051806101e001604052806101ab81526020016141e06101ab913981565b60005460ff1681565b6402540be40081565b60005460ff16611218576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b33611007146112585760405162461bcd60e51b815260040180806020018281038252602e815260200180614477602e913960400191505060405180910390fd5b6112c284848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b60208201529150612f419050565b1561139d57602081146113065760405162461bcd60e51b81526004018080602001828103825260268152602001806144c66026913960400191505060405180910390fd5b604080516020601f84018190048102820181019092528281526000916113449185858083850183828082843760009201919091525061302992505050565b90506064811015801561135a5750620186a08111155b6113955760405162461bcd60e51b815260040180806020018281038252602781526020018061440a6027913960400191505060405180910390fd5b60025561152a565b6113fd84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260098152686275726e526174696f60b81b60208201529150612f419050565b156114ed5760208114611457576040805162461bcd60e51b815260206004820152601c60248201527f6c656e677468206f66206275726e526174696f206d69736d6174636800000000604482015290519081900360640190fd5b604080516020601f84018190048102820181019092528281526000916114959185858083850183828082843760009201919091525061302992505050565b90506127108111156114d85760405162461bcd60e51b815260040180806020018281038252602b8152602001806143b4602b913960400191505060405180910390fd5b6006556007805460ff1916600117905561152a565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b60046020526000908152604090205481565b6001546060906000805b8281101561161f57600181815481106115ed57fe5b9060005260206000209060040201600201601c9054906101000a900460ff16611617576001909101905b6001016115d8565b5060608160405190808252806020026020018201604052801561164c578160200160208202803683370190505b50600092509050815b838110156116ec576001818154811061166a57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166116e4576001818154811061169a57fe5b600091825260209091206004909102015482516001600160a01b03909116908390859081106116c557fe5b6001600160a01b03909216602092830291909101909101526001909201915b600101611655565b509250505090565b61100281565b67016345785d8a000081565b60055481565b61100381565b602981565b60005460ff161561176f576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b611777614158565b600061179d604051806101e001604052806101ab81526020016141e06101ab9139611e0a565b91509150806117dd5760405162461bcd60e51b81526004018080602001828103825260218152602001806144ec6021913960400191505060405180910390fd5b60005b826020015151811015611902576001836020015182815181106117ff57fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a0909301516003909301929092559186015180519185019391859081106118d557fe5b602090810291909101810151516001600160a01b03168252810191909152604001600020556001016117e0565b50506103e8600255506000805460ff19166001179055565b336110011461195a5760405162461bcd60e51b81526004018080602001828103825260298152602001806145696029913960400191505060405180910390fd5b6001600160a01b0381166000908152600460205260409020548061197e5750610fbf565b60018103905060006001828154811061199357fe5b90600052602060002090600402016003015490506000600183815481106119b657fe5b906000526020600020906004020160030181905550600060018080549050039050836001600160a01b03167f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d836040518082815260200191505060405180910390a280611a2557505050610fbf565b6000818381611a3057fe5b0490508015610fba5760005b84811015611a8e578160018281548110611a5257fe5b9060005260206000209060040201600301540160018281548110611a7257fe5b6000918252602090912060036004909202010155600101611a3c565b50600180549085015b81811015610fb7578260018281548110611aad57fe5b9060005260206000209060040201600301540160018281548110611acd57fe5b6000918252602090912060036004909202010155600101611a97565b606581565b334114611b2c5760405162461bcd60e51b815260040180806020018281038252602d81526020018061453c602d913960400191505060405180910390fd5b60005460ff16611b7f576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b60003411611bcc576040805162461bcd60e51b81526020600482015260156024820152746465706f7369742076616c7565206973207a65726f60581b604482015290519081900360640190fd5b6001600160a01b0381166000908152600460205260409020546007543491906103e89060ff1615611bfc57506006545b600083118015611c0c5750600081115b15611cb5576000611c35612710611c29868563ffffffff61302e16565b9063ffffffff61308716565b90508015611cb35760405161dead9082156108fc029083906000818181858888f19350505050158015611c6c573d6000803e3d6000fd5b506040805182815290517f627059660ea01c4733a328effb2294d2f86905bf806da763a89cee254de8bee59181900360200190a1611cb0848263ffffffff6130c916565b93505b505b8115611dad576000600180840381548110611ccc57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff1615611d37576040805185815290516001600160a01b038716917ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4919081900360200190a2611da7565b600354611d4a908563ffffffff61310b16565b6003908155810154611d62908563ffffffff61310b16565b60038201556040805185815290516001600160a01b038716917f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc055919081900360200190a25b50611ded565b6040805184815290516001600160a01b038616917ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4919081900360200190a25b50505050565b61100081565b600381565b61dead81565b61100481565b611e12614158565b6000611e1c614158565b611e24614170565b611e35611e3086613165565b61318a565b90506000805b611e44836131d4565b15611f555780611e6957611e5f611e5a846131f5565b613243565b60ff168452611f4d565b8060011415611f48576060611e85611e80856131f5565b6132fa565b90508051604051908082528060200260200182016040528015611ec257816020015b611eaf614190565b815260200190600190039081611ea75790505b50602086015260005b8151811015611f3d57611edc614190565b6000611efa848481518110611eed57fe5b60200260200101516133cb565b9150915080611f1757876000995099505050505050505050611f5e565b8188602001518481518110611f2857fe5b60209081029190910101525050600101611ecb565b506001925050611f4d565b611f55565b600101611e3b565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b6060815260200190600190039081611f7d579050509050611fa38363ffffffff166134a8565b81600081518110611fb057fe5b6020026020010181905250610c93816134bb565b6000806060611fd284613545565b915091508161207f577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2816040518080602001828103825283818151815260200191508051906020019080838360005b8381101561203a578181015183820152602001612022565b50505050905090810190601f1680156120675780820380516001836020036101000a031916815260200191505b509250505060405180910390a1606692505050611036565b600080805b6001548110156120fc5767016345785d8a0000600182815481106120a457fe5b906000526020600020906004020160030154106120c6576001909201916120f4565b6000600182815481106120d557fe5b90600052602060002090600402016003015411156120f4576001909101905b600101612084565b50606082604051908082528060200260200182016040528015612129578160200160208202803683370190505b509050606083604051908082528060200260200182016040528015612158578160200160208202803683370190505b509050606084604051908082528060200260200182016040528015612187578160200160208202803683370190505b5090506060856040519080825280602002602001820160405280156121b6578160200160208202803683370190505b50905060006060866040519080825280602002602001820160405280156121e7578160200160208202803683370190505b509050606087604051908082528060200260200182016040528015612216578160200160208202803683370190505b509050600098506000975060608d905060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b15801561226357600080fd5b505afa158015612277573d6000803e3d6000fd5b505050506040513d602081101561228d57600080fd5b5051905067016345785d8a0000811115612302577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb26040518080602001828103825260218152602001806144a56021913960400191505060405180910390a160689d5050505050505050505050505050611036565b60005b6001548110156125755767016345785d8a00006001828154811061232557fe5b906000526020600020906004020160030154106124ab576001818154811061234957fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b03168a8d8151811061237a57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be400600183815481106123af57fe5b906000526020600020906004020160030154816123c857fe5b06600183815481106123d657fe5b9060005260206000209060040201600301540390506123fe83826130c990919063ffffffff16565b8a8e8151811061240a57fe5b6020026020010181815250506001828154811061242357fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316888e8151811061245457fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081898e8151811061248157fe5b602090810291909101015261249c878263ffffffff61310b16565b6001909d019c965061256d9050565b6000600182815481106124ba57fe5b906000526020600020906004020160030154111561256d57600181815481106124df57fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316858c8151811061251057fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506001818154811061253d57fe5b906000526020600020906004020160030154848c8151811061255b57fe5b60209081029190910101526001909a01995b600101612305565b50600085156129b3576110046001600160a01b0316636e056520878c8c8b60025442016040518663ffffffff1660e01b815260040180806020018060200180602001856001600160401b03166001600160401b03168152602001848103845288818151815260200191508051906020019060200280838360005b838110156126075781810151838201526020016125ef565b50505050905001848103835287818151815260200191508051906020019060200280838360005b8381101561264657818101518382015260200161262e565b50505050905001848103825286818151815260200191508051906020019060200280838360005b8381101561268557818101518382015260200161266d565b505050509050019750505050505050506020604051808303818588803b1580156126ae57600080fd5b505af1935050505080156126d457506040513d60208110156126cf57600080fd5b505160015b61290f576040516000815260443d10156126f05750600061278b565b60046000803e60005160e01c6308c379a0811461271157600091505061278b565b60043d036004833e81513d60248201116001600160401b038211171561273c5760009250505061278b565b80830180516001600160401b0381111561275d57600094505050505061278b565b8060208301013d860181111561277b5760009550505050505061278b565b601f01601f191660405250925050505b80612796575061283a565b60019150867fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280826040518080602001828103825283818151815260200191508051906020019080838360005b838110156127fa5781810151838201526020016127e2565b50505050905090810190601f1680156128275780820380516001836020036101000a031916815260200191505b509250505060405180910390a25061290a565b3d808015612864576040519150601f19603f3d011682016040523d82523d6000602084013e612869565b606091505b5060019150867fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a45826040518080602001828103825283818151815260200191508051906020019080838360005b838110156128ce5781810151838201526020016128b6565b50505050905090810190601f1680156128fb5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b6129b3565b801561294d576040805188815290517fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b709181900360200190a16129b1565b604080516020808252601b908201527f6261746368207472616e736665722072657475726e2066616c7365000000000081830152905188917fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280919081900360600190a25b505b8015612b695760005b8851811015612b675760008982815181106129d357fe5b602002602001015190506000600182815481106129ec57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc9185908110612a1d57fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f1935050505090508015612ad95760018281548110612a5e57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d9185908110612aad57fe5b9060005260206000209060040201600301546040518082815260200191505060405180910390a2612b5d565b60018281548110612ae657fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d9185908110612b3557fe5b9060005260206000209060040201600301546040518082815260200191505060405180910390a25b50506001016129bc565b505b845115612cb35760005b8551811015612cb1576000868281518110612b8a57fe5b60200260200101516001600160a01b03166108fc878481518110612baa57fe5b60200260200101519081150290604051600060405180830381858888f1935050505090508015612c4057868281518110612be057fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d878481518110612c1e57fe5b60200260200101516040518082815260200191505060405180910390a2612ca8565b868281518110612c4c57fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d878481518110612c8a57fe5b60200260200101516040518082815260200191505060405180910390a25b50600101612b73565b505b4715612d1c576040805147815290517f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d9181900360200190a1604051611002904780156108fc02916000818181858888f19350505050158015612d1a573d6000803e3d6000fd5b505b60006003819055600555825115612d3657612d3683613627565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015612d7357600080fd5b505af1158015612d87573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a15060009f9e505050505050505050505050505050565b80516001600160a01b0316600090815260046020526040812054801580612e1b5750600180820381548110612dfb57fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b15612e615782516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a26000915050611036565b600154600554600019820111801590612eb75784516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a260009350505050611036565b600580546001908101909155805481906000198601908110612ed557fe5b6000918252602082206002600490920201018054921515600160e01b0260ff60e01b199093169290921790915585516040516001600160a01b03909116917ff226e7d8f547ff903d9d419cf5f54e0d7d07efa9584135a53a057c5f1f27f49a91a2506000949350505050565b6000816040516020018082805190602001908083835b60208310612f765780518252601f199092019160209182019101612f57565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310612fe45780518252601f199092019160209182019101612fc5565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052805190602001201490505b92915050565b015190565b60008261303d57506000613023565b8282028284828161304a57fe5b0414610c935760405162461bcd60e51b81526004018080602001828103825260218152602001806144566021913960400191505060405180910390fd5b6000610c9383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613ae8565b6000610c9383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613b8a565b600082820183811015610c93576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b61316d6141c5565b506040805180820190915281518152602082810190820152919050565b613192614170565b61319b82613be4565b6131a457600080fd5b60006131b38360200151613c1e565b60208085015160408051808201909152868152920190820152915050919050565b60006131de6141c5565b505080518051602091820151919092015191011190565b6131fd6141c5565b613206826131d4565b61320f57600080fd5b6020820151600061321f82613c81565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061325857508151602110155b61326157600080fd5b60006132708360200151613c1e565b905080836000015110156132cb576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b8251602080850151830180519284900392918310156132f157826020036101000a820491505b50949350505050565b606061330582613be4565b61330e57600080fd5b600061331983613db4565b905060608160405190808252806020026020018201604052801561335757816020015b6133446141c5565b81526020019060019003908161333c5790505b50905060006133698560200151613c1e565b60208601510190506000805b848110156133c05761338683613c81565b91506040518060400160405280838152602001848152508482815181106133a957fe5b602090810291909101015291810191600101613375565b509195945050505050565b6133d3614190565b60006133dd614190565b6133e5614170565b6133ee8561318a565b90506000805b6133fd836131d4565b15611f55578061342857613418613413846131f5565b613e10565b6001600160a01b031684526134a0565b80600114156134505761343d613413846131f5565b6001600160a01b031660208501526134a0565b806002141561347857613465613413846131f5565b6001600160a01b031660408501526134a0565b8060031415611f485761348d611e5a846131f5565b6001600160401b03166060850152600191505b6001016133f4565b60606130236134b683613e2a565b613f10565b60608151600014156134dc5750604080516000815260208101909152611036565b6060826000815181106134eb57fe5b602002602001015190506000600190505b835181101561352c576135228285838151811061351557fe5b6020026020010151613f62565b91506001016134fc565b50610c9361353f825160c060ff16613fdf565b82613f62565b6000606060298351111561357757600060405180606001604052806029815260200161438b6029913991509150611f5e565b60005b835181101561360d5760005b818110156136045784818151811061359a57fe5b6020026020010151600001516001600160a01b03168583815181106135bb57fe5b6020026020010151600001516001600160a01b031614156135fc5760006040518060600160405280602b81526020016143df602b9139935093505050611f5e565b600101613586565b5060010161357a565b505060408051602081019091526000815260019150915091565b600154815160005b82811015613744576001613641614190565b6001838154811061364e57fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b84811015613718578681815181106136de57fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b031614156137105760009250613718565b6001016136ca565b50811561373a5780516001600160a01b03166000908152600460205260408120555b505060010161362f565b50808211156137b957805b828110156137b757600180548061376257fe5b60008281526020812060046000199093019283020180546001600160a01b03199081168255600182810180549092169091556002820180546001600160e81b031916905560039091019190915591550161374f565b505b60008183106137c857816137ca565b825b905060005b818110156139c45761387c8582815181106137e657fe5b6020026020010151600183815481106137fb57fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a08201526140d7565b61399757806001016004600087848151811061389457fe5b6020026020010151600001516001600160a01b03166001600160a01b03168152602001908152602001600020819055508481815181106138d057fe5b6020026020010151600182815481106138e557fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a0909101516003909101556139bc565b6000600182815481106139a657fe5b9060005260206000209060040201600301819055505b6001016137cf565b5082821115611ded57825b82811015610fba5760018582815181106139e557fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782559585015181840180549184169188169190911790556040850151600282018054606088015160808901511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590971692909a169190911792909216939093171695909517905560a09092015160039093019290925587519084019290889085908110613abb57fe5b602090810291909101810151516001600160a01b03168252810191909152604001600020556001016139cf565b60008183613b745760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613b39578181015183820152602001613b21565b50505050905090810190601f168015613b665780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581613b8057fe5b0495945050505050565b60008184841115613bdc5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315613b39578181015183820152602001613b21565b505050900390565b8051600090613bf557506000611036565b6020820151805160001a9060c0821015613c1457600092505050611036565b5060019392505050565b8051600090811a6080811015613c38576000915050611036565b60b8811080613c53575060c08110801590613c53575060f881105b15613c62576001915050611036565b60c0811015613c765760b519019050611036565b60f519019050611036565b80516000908190811a6080811015613c9c5760019150613dad565b60b8811015613cb157607e1981019150613dad565b60c0811015613d2b57600060b78203600186019550806020036101000a865104915060018101820193505080831015613d25576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50613dad565b60f8811015613d405760be1981019150613dad565b600060f78203600186019550806020036101000a865104915060018101820193505080831015613dab576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b8051600090613dc557506000611036565b60008090506000613dd98460200151613c1e565b602085015185519181019250015b80821015613e0757613df882613c81565b60019093019290910190613de7565b50909392505050565b8051600090601514613e2157600080fd5b61302382613243565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416613e6e57506018613e92565b6fffffffffffffffffffffffffffffffff198416613e8e57506010613e92565b5060005b6020811015613ec857818181518110613ea757fe5b01602001516001600160f81b03191615613ec057613ec8565b600101613e92565b60008160200390506060816040519080825280601f01601f191660200182016040528015613efd576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015613f425750607f60f81b82600081518110613f3057fe5b01602001516001600160f81b03191611155b15613f4e575080611036565b613023613f608351608060ff16613fdf565b835b6060806040519050835180825260208201818101602087015b81831015613f93578051835260209283019201613f7b565b50855184518101855292509050808201602086015b81831015613fc0578051835260209283019201613fa8565b508651929092011591909101601f01601f191660405250905092915050565b606068010000000000000000831061402f576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b604080516001808252818301909252606091602082018180368337019050509050603784116140895782840160f81b8160008151811061406b57fe5b60200101906001600160f81b031916908160001a9053509050613023565b606061409485613e2a565b90508381510160370160f81b826000815181106140ad57fe5b60200101906001600160f81b031916908160001a9053506140ce8282613f62565b95945050505050565b805182516000916001600160a01b039182169116148015614111575081602001516001600160a01b031683602001516001600160a01b0316145b8015614136575081604001516001600160a01b031683604001516001600160a01b0316145b8015610c935750506060908101519101516001600160401b0390811691161490565b60408051808201909152600081526060602082015290565b60405180604001604052806141836141c5565b8152602001600081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b60405180604001604052806000815260200160008152509056fef901a880f901a4f844941284214b9b9c85549ab3d2b972df0deef66ac2c9946ddf42a51534fc98d0c0a3b42c963cace8441ddf946ddf42a51534fc98d0c0a3b42c963cace8441ddf8410000000f84494a2959d3f95eae5dc7d70144ce1b73b403b7eb6e0948081ef03f1d9e0bb4a5bf38f16285c879299f07f948081ef03f1d9e0bb4a5bf38f16285c879299f07f8410000000f8449435552c16704d214347f29fa77f77da6d75d7c75294dc4973e838e3949c77aced16ac2315dc2d7ab11194dc4973e838e3949c77aced16ac2315dc2d7ab1118410000000f84494980a75ecd1309ea12fa2ed87a8744fbfc9b863d594cc6ac05c95a99c1f7b5f88de0e3486c82293b27094cc6ac05c95a99c1f7b5f88de0e3486c82293b2708410000000f84494f474cf03cceff28abc65c9cbae594f725c80e12d94e61a183325a18a173319dd8e19c8d069459e217594e61a183325a18a173319dd8e19c8d069459e21758410000000f84494b71b214cb885500844365e95cd9942c7276e7fd894d22ca3ba2141d23adab65ce4940eb7665ea2b6a794d22ca3ba2141d23adab65ce4940eb7665ea2b6a78410000000746865206e756d626572206f662076616c696461746f72732065786365656420746865206c696d6974746865206275726e526174696f206d757374206265206e6f2067726561746572207468616e2031303030306475706c696361746520636f6e73656e7375732061646472657373206f662076616c696461746f725365747468652065787069726554696d655365636f6e64476170206973206f7574206f662072616e67656c656e677468206f66206a61696c2076616c696461746f7273206d757374206265206f6e65536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374666565206973206c6172676572207468616e2044555354595f494e434f4d494e476c656e677468206f662065787069726554696d655365636f6e64476170206d69736d617463686661696c656420746f20706172736520696e69742076616c696461746f72536574746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d6573736167652073656e646572206d7573742062652074686520626c6f636b2070726f6475636572746865206d6573736167652073656e646572206d75737420626520736c61736820636f6e7472616374a26469706673582212206138cbef6a4ba7db6b97f06990dc0d96f124bc0b841fa4a56690968e7b85982b64736f6c63430006040033", - }, - }, - } - - BrunoUpgrade[networkname.RialtoChainName] = &Upgrade{ - UpgradeName: "bruno", - Configs: []*UpgradeConfig{ - { - ContractAddr: ValidatorContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/ce622fef469d84ee418fa6181f3ac962412a5f4f", - Code: "6080604052600436106102e45760003560e01c80638624988211610190578063c8509d81116100dc578063eb57e20211610095578063f9a2bbc71161006f578063f9a2bbc714610a54578063fc3e590814610a69578063fccc281314610a7e578063fd6a687914610a93576102e4565b8063eb57e202146109e6578063eda5868c14610a19578063f340fa0114610a2e576102e4565b8063c8509d81146106d8578063d86222d51461097d578063daacdb6614610992578063dc927faf146109a7578063e086c7b1146109bc578063e1c7392a146109d1576102e4565b8063aaf5eb6811610149578063ad3c9da611610123578063ad3c9da6146108d0578063b7ab4db514610903578063bf9f4995146104c0578063c81b166214610968576102e4565b8063aaf5eb68146107db578063ab51bb96146107f0578063ac43175114610805576102e4565b8063862498821461075d57806396713da9146107725780639dc0926214610787578063a1a11bf51461079c578063a5422d5c146107b1578063a78abc16146107c6576102e4565b806351e806721161024f57806370fd5bad116102085780637942fd05116101e25780637942fd05146106ae57806381650b62146106c3578063831d65d1146106d8578063853230aa14610699576102e4565b806370fd5bad1461066f57806375d47a0a1461068457806378dfed4a14610699576102e4565b806351e8067214610572578063565c56b3146105875780635667515a146105ba5780635d77156c146105cf5780636969a25c146105e45780636e47b4821461065a576102e4565b80633de0f0d8116102a15780633de0f0d8146104ab5780633dffc387146104c057806343756e5c146104eb578063493279b11461051c5780634bf6c882146105485780635192c82c1461055d576102e4565b80630bee7a67146102e95780631182b87514610317578063152ad3b8146104115780631ff180691461043a578063219f22d51461046157806335409f7f14610476575b600080fd5b3480156102f557600080fd5b506102fe610aa8565b6040805163ffffffff9092168252519081900360200190f35b34801561032357600080fd5b5061039c6004803603604081101561033a57600080fd5b60ff8235169190810190604081016020820135600160201b81111561035e57600080fd5b82018360208201111561037057600080fd5b803590602001918460018302840111600160201b8311171561039157600080fd5b509092509050610aad565b6040805160208082528351818301528351919283929083019185019080838360005b838110156103d65781810151838201526020016103be565b50505050905090810190601f1680156104035780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561041d57600080fd5b50610426610c9a565b604080519115158252519081900360200190f35b34801561044657600080fd5b5061044f610ca3565b60408051918252519081900360200190f35b34801561046d57600080fd5b506102fe610ca9565b34801561048257600080fd5b506104a96004803603602081101561049957600080fd5b50356001600160a01b0316610cae565b005b3480156104b757600080fd5b5061044f610fc2565b3480156104cc57600080fd5b506104d5610fc8565b6040805160ff9092168252519081900360200190f35b3480156104f757600080fd5b50610500610fcd565b604080516001600160a01b039092168252519081900360200190f35b34801561052857600080fd5b50610531610fd3565b6040805161ffff9092168252519081900360200190f35b34801561055457600080fd5b506104d5610fd9565b34801561056957600080fd5b5061044f610fde565b34801561057e57600080fd5b50610500610fe4565b34801561059357600080fd5b5061044f600480360360208110156105aa57600080fd5b50356001600160a01b0316610fea565b3480156105c657600080fd5b506104d561103c565b3480156105db57600080fd5b506102fe611041565b3480156105f057600080fd5b5061060e6004803603602081101561060757600080fd5b5035611046565b604080516001600160a01b039788168152958716602087015293909516848401526001600160401b0390911660608401521515608083015260a082019290925290519081900360c00190f35b34801561066657600080fd5b506105006110aa565b34801561067b57600080fd5b506104d56110b0565b34801561069057600080fd5b506105006110b5565b3480156106a557600080fd5b5061044f6110bb565b3480156106ba57600080fd5b506104d56110c1565b3480156106cf57600080fd5b506102fe6110c6565b3480156106e457600080fd5b506104a9600480360360408110156106fb57600080fd5b60ff8235169190810190604081016020820135600160201b81111561071f57600080fd5b82018360208201111561073157600080fd5b803590602001918460018302840111600160201b8311171561075257600080fd5b5090925090506110cb565b34801561076957600080fd5b5061044f61117e565b34801561077e57600080fd5b506104d5611184565b34801561079357600080fd5b50610500611189565b3480156107a857600080fd5b5061050061118f565b3480156107bd57600080fd5b5061039c611195565b3480156107d257600080fd5b506104266111b4565b3480156107e757600080fd5b5061044f6111bd565b3480156107fc57600080fd5b506102fe61103c565b34801561081157600080fd5b506104a96004803603604081101561082857600080fd5b810190602081018135600160201b81111561084257600080fd5b82018360208201111561085457600080fd5b803590602001918460018302840111600160201b8311171561087557600080fd5b919390929091602081019035600160201b81111561089257600080fd5b8201836020820111156108a457600080fd5b803590602001918460018302840111600160201b831117156108c557600080fd5b5090925090506111c6565b3480156108dc57600080fd5b5061044f600480360360208110156108f357600080fd5b50356001600160a01b03166115bd565b34801561090f57600080fd5b506109186115cf565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561095457818101518382015260200161093c565b505050509050019250505060405180910390f35b34801561097457600080fd5b506105006116f5565b34801561098957600080fd5b5061044f6116fb565b34801561099e57600080fd5b5061044f611707565b3480156109b357600080fd5b5061050061170d565b3480156109c857600080fd5b5061044f611713565b3480156109dd57600080fd5b506104a9611718565b3480156109f257600080fd5b506104a960048036036020811015610a0957600080fd5b50356001600160a01b031661191b565b348015610a2557600080fd5b506102fe611aea565b6104a960048036036020811015610a4457600080fd5b50356001600160a01b0316611aef565b348015610a6057600080fd5b50610500611df4565b348015610a7557600080fd5b506104d5611dfa565b348015610a8a57600080fd5b50610500611dff565b348015610a9f57600080fd5b50610500611e05565b606481565b60005460609060ff16610b03576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b3361200014610b435760405162461bcd60e51b815260040180806020018281038252602f815260200180614952602f913960400191505060405180910390fd5b610b4b614159565b6000610b8c85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611e0b92505050565b9150915080610ba857610b9f6064611f64565b92505050610c93565b815160009060ff16610bc857610bc18360200151611fc5565b9050610c5f565b825160ff1660011415610c5b57826020015151600114610c35577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb26040518080602001828103825260258152602001806142876025913960400191505060405180910390a1506067610c56565b610bc18360200151600081518110610c4957fe5b6020026020010151612dcb565b610c5f565b5060655b63ffffffff8116610c845750506040805160008152602081019091529150610c939050565b610c8d81611f64565b93505050505b9392505050565b60075460ff1681565b60035481565b606881565b3361100114610cee5760405162461bcd60e51b81526004018080602001828103825260298152602001806149ae6029913960400191505060405180910390fd5b6001600160a01b03811660009081526004602052604090205480610d125750610fbf565b600181039050600060018281548110610d2757fe5b60009182526020909120600360049092020101546001549091506000190180610d7657600060018481548110610d5957fe5b906000526020600020906004020160030181905550505050610fbf565b6040805183815290516001600160a01b038616917f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a70919081900360200190a26001600160a01b038416600090815260046020526040812055600154600019018314610ef857600180546000198101908110610ded57fe5b906000526020600020906004020160018481548110610e0857fe5b6000918252602082208354600492830290910180546001600160a01b03199081166001600160a01b0393841617825560018087015481840180548416918616919091179055600280880180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b199094169390931790556003948501549401939093558254868401939192919087908110610ecd57fe5b600091825260208083206004909202909101546001600160a01b031683528201929092526040019020555b6001805480610f0357fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b03191690556003018190559155818381610f5657fe5b0490508015610fba5760015460005b81811015610fb7578260018281548110610f7b57fe5b9060005260206000209060040201600301540160018281548110610f9b57fe5b6000918252602090912060036004909202010155600101610f65565b50505b505050505b50565b61271081565b600181565b61100181565b6102ca81565b600881565b60065481565b61200081565b6001600160a01b03811660009081526004602052604081205480611012576000915050611037565b60018082038154811061102157fe5b9060005260206000209060040201600301549150505b919050565b600081565b606781565b6001818154811061105357fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b61100881565b6103e881565b600b81565b606681565b336120001461110b5760405162461bcd60e51b815260040180806020018281038252602f815260200180614952602f913960400191505060405180910390fd5b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a1505050565b60025481565b600981565b61100781565b61100681565b6040518061062001604052806105ef81526020016143636105ef913981565b60005460ff1681565b6402540be40081565b60005460ff16611219576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b33611007146112595760405162461bcd60e51b815260040180806020018281038252602e8152602001806142cd602e913960400191505060405180910390fd5b6112c384848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b60208201529150612f429050565b1561139e57602081146113075760405162461bcd60e51b815260040180806020018281038252602681526020018061431c6026913960400191505060405180910390fd5b604080516020601f84018190048102820181019092528281526000916113459185858083850183828082843760009201919091525061302a92505050565b90506064811015801561135b5750620186a08111155b6113965760405162461bcd60e51b81526004018080602001828103825260278152602001806142606027913960400191505060405180910390fd5b60025561152b565b6113fe84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260098152686275726e526174696f60b81b60208201529150612f429050565b156114ee5760208114611458576040805162461bcd60e51b815260206004820152601c60248201527f6c656e677468206f66206275726e526174696f206d69736d6174636800000000604482015290519081900360640190fd5b604080516020601f84018190048102820181019092528281526000916114969185858083850183828082843760009201919091525061302a92505050565b90506127108111156114d95760405162461bcd60e51b815260040180806020018281038252602b81526020018061420a602b913960400191505060405180910390fd5b6006556007805460ff1916600117905561152b565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b60046020526000908152604090205481565b6001546060906000805b8281101561162057600181815481106115ee57fe5b9060005260206000209060040201600201601c9054906101000a900460ff16611618576001909101905b6001016115d9565b5060608160405190808252806020026020018201604052801561164d578160200160208202803683370190505b50600092509050815b838110156116ed576001818154811061166b57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166116e5576001818154811061169b57fe5b600091825260209091206004909102015482516001600160a01b03909116908390859081106116c657fe5b6001600160a01b03909216602092830291909101909101526001909201915b600101611656565b509250505090565b61100281565b67016345785d8a000081565b60055481565b61100381565b602981565b60005460ff1615611770576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b611778614159565b600061179e6040518061062001604052806105ef81526020016143636105ef9139611e0b565b91509150806117de5760405162461bcd60e51b81526004018080602001828103825260218152602001806143426021913960400191505060405180910390fd5b60005b8260200151518110156119035760018360200151828151811061180057fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a0909301516003909301929092559186015180519185019391859081106118d657fe5b602090810291909101810151516001600160a01b03168252810191909152604001600020556001016117e1565b50506103e8600255506000805460ff19166001179055565b336110011461195b5760405162461bcd60e51b81526004018080602001828103825260298152602001806149ae6029913960400191505060405180910390fd5b6001600160a01b0381166000908152600460205260409020548061197f5750610fbf565b60018103905060006001828154811061199457fe5b90600052602060002090600402016003015490506000600183815481106119b757fe5b906000526020600020906004020160030181905550600060018080549050039050836001600160a01b03167f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d836040518082815260200191505060405180910390a280611a2657505050610fbf565b6000818381611a3157fe5b0490508015610fba5760005b84811015611a8f578160018281548110611a5357fe5b9060005260206000209060040201600301540160018281548110611a7357fe5b6000918252602090912060036004909202010155600101611a3d565b50600180549085015b81811015610fb7578260018281548110611aae57fe5b9060005260206000209060040201600301540160018281548110611ace57fe5b6000918252602090912060036004909202010155600101611a98565b606581565b334114611b2d5760405162461bcd60e51b815260040180806020018281038252602d815260200180614981602d913960400191505060405180910390fd5b60005460ff16611b80576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b60003411611bcd576040805162461bcd60e51b81526020600482015260156024820152746465706f7369742076616c7565206973207a65726f60581b604482015290519081900360640190fd5b6001600160a01b0381166000908152600460205260409020546007543491906103e89060ff1615611bfd57506006545b600083118015611c0d5750600081115b15611cb6576000611c36612710611c2a868563ffffffff61302f16565b9063ffffffff61308816565b90508015611cb45760405161dead9082156108fc029083906000818181858888f19350505050158015611c6d573d6000803e3d6000fd5b506040805182815290517f627059660ea01c4733a328effb2294d2f86905bf806da763a89cee254de8bee59181900360200190a1611cb1848263ffffffff6130ca16565b93505b505b8115611dae576000600180840381548110611ccd57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff1615611d38576040805185815290516001600160a01b038716917ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4919081900360200190a2611da8565b600354611d4b908563ffffffff61310c16565b6003908155810154611d63908563ffffffff61310c16565b60038201556040805185815290516001600160a01b038716917f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc055919081900360200190a25b50611dee565b6040805184815290516001600160a01b038616917ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4919081900360200190a25b50505050565b61100081565b600381565b61dead81565b61100481565b611e13614159565b6000611e1d614159565b611e25614171565b611e36611e3186613166565b61318b565b90506000805b611e45836131d5565b15611f565780611e6a57611e60611e5b846131f6565b613244565b60ff168452611f4e565b8060011415611f49576060611e86611e81856131f6565b6132fb565b90508051604051908082528060200260200182016040528015611ec357816020015b611eb0614191565b815260200190600190039081611ea85790505b50602086015260005b8151811015611f3e57611edd614191565b6000611efb848481518110611eee57fe5b60200260200101516133cc565b9150915080611f1857876000995099505050505050505050611f5f565b8188602001518481518110611f2957fe5b60209081029190910101525050600101611ecc565b506001925050611f4e565b611f56565b600101611e3c565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b6060815260200190600190039081611f7e579050509050611fa48363ffffffff166134a9565b81600081518110611fb157fe5b6020026020010181905250610c93816134bc565b6000806060611fd384613546565b9150915081612080577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2816040518080602001828103825283818151815260200191508051906020019080838360005b8381101561203b578181015183820152602001612023565b50505050905090810190601f1680156120685780820380516001836020036101000a031916815260200191505b509250505060405180910390a1606692505050611037565b600080805b6001548110156120fd5767016345785d8a0000600182815481106120a557fe5b906000526020600020906004020160030154106120c7576001909201916120f5565b6000600182815481106120d657fe5b90600052602060002090600402016003015411156120f5576001909101905b600101612085565b5060608260405190808252806020026020018201604052801561212a578160200160208202803683370190505b509050606083604051908082528060200260200182016040528015612159578160200160208202803683370190505b509050606084604051908082528060200260200182016040528015612188578160200160208202803683370190505b5090506060856040519080825280602002602001820160405280156121b7578160200160208202803683370190505b50905060006060866040519080825280602002602001820160405280156121e8578160200160208202803683370190505b509050606087604051908082528060200260200182016040528015612217578160200160208202803683370190505b509050600098506000975060608d905060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b15801561226457600080fd5b505afa158015612278573d6000803e3d6000fd5b505050506040513d602081101561228e57600080fd5b5051905067016345785d8a0000811115612303577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb26040518080602001828103825260218152602001806142fb6021913960400191505060405180910390a160689d5050505050505050505050505050611037565b60005b6001548110156125765767016345785d8a00006001828154811061232657fe5b906000526020600020906004020160030154106124ac576001818154811061234a57fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b03168a8d8151811061237b57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be400600183815481106123b057fe5b906000526020600020906004020160030154816123c957fe5b06600183815481106123d757fe5b9060005260206000209060040201600301540390506123ff83826130ca90919063ffffffff16565b8a8e8151811061240b57fe5b6020026020010181815250506001828154811061242457fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316888e8151811061245557fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081898e8151811061248257fe5b602090810291909101015261249d878263ffffffff61310c16565b6001909d019c965061256e9050565b6000600182815481106124bb57fe5b906000526020600020906004020160030154111561256e57600181815481106124e057fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316858c8151811061251157fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506001818154811061253e57fe5b906000526020600020906004020160030154848c8151811061255c57fe5b60209081029190910101526001909a01995b600101612306565b50600085156129b4576110046001600160a01b0316636e056520878c8c8b60025442016040518663ffffffff1660e01b815260040180806020018060200180602001856001600160401b03166001600160401b03168152602001848103845288818151815260200191508051906020019060200280838360005b838110156126085781810151838201526020016125f0565b50505050905001848103835287818151815260200191508051906020019060200280838360005b8381101561264757818101518382015260200161262f565b50505050905001848103825286818151815260200191508051906020019060200280838360005b8381101561268657818101518382015260200161266e565b505050509050019750505050505050506020604051808303818588803b1580156126af57600080fd5b505af1935050505080156126d557506040513d60208110156126d057600080fd5b505160015b612910576040516000815260443d10156126f15750600061278c565b60046000803e60005160e01c6308c379a0811461271257600091505061278c565b60043d036004833e81513d60248201116001600160401b038211171561273d5760009250505061278c565b80830180516001600160401b0381111561275e57600094505050505061278c565b8060208301013d860181111561277c5760009550505050505061278c565b601f01601f191660405250925050505b80612797575061283b565b60019150867fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280826040518080602001828103825283818151815260200191508051906020019080838360005b838110156127fb5781810151838201526020016127e3565b50505050905090810190601f1680156128285780820380516001836020036101000a031916815260200191505b509250505060405180910390a25061290b565b3d808015612865576040519150601f19603f3d011682016040523d82523d6000602084013e61286a565b606091505b5060019150867fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a45826040518080602001828103825283818151815260200191508051906020019080838360005b838110156128cf5781810151838201526020016128b7565b50505050905090810190601f1680156128fc5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b6129b4565b801561294e576040805188815290517fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b709181900360200190a16129b2565b604080516020808252601b908201527f6261746368207472616e736665722072657475726e2066616c7365000000000081830152905188917fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280919081900360600190a25b505b8015612b6a5760005b8851811015612b685760008982815181106129d457fe5b602002602001015190506000600182815481106129ed57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc9185908110612a1e57fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f1935050505090508015612ada5760018281548110612a5f57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d9185908110612aae57fe5b9060005260206000209060040201600301546040518082815260200191505060405180910390a2612b5e565b60018281548110612ae757fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d9185908110612b3657fe5b9060005260206000209060040201600301546040518082815260200191505060405180910390a25b50506001016129bd565b505b845115612cb45760005b8551811015612cb2576000868281518110612b8b57fe5b60200260200101516001600160a01b03166108fc878481518110612bab57fe5b60200260200101519081150290604051600060405180830381858888f1935050505090508015612c4157868281518110612be157fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d878481518110612c1f57fe5b60200260200101516040518082815260200191505060405180910390a2612ca9565b868281518110612c4d57fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d878481518110612c8b57fe5b60200260200101516040518082815260200191505060405180910390a25b50600101612b74565b505b4715612d1d576040805147815290517f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d9181900360200190a1604051611002904780156108fc02916000818181858888f19350505050158015612d1b573d6000803e3d6000fd5b505b60006003819055600555825115612d3757612d3783613628565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015612d7457600080fd5b505af1158015612d88573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a15060009f9e505050505050505050505050505050565b80516001600160a01b0316600090815260046020526040812054801580612e1c5750600180820381548110612dfc57fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b15612e625782516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a26000915050611037565b600154600554600019820111801590612eb85784516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a260009350505050611037565b600580546001908101909155805481906000198601908110612ed657fe5b6000918252602082206002600490920201018054921515600160e01b0260ff60e01b199093169290921790915585516040516001600160a01b03909116917ff226e7d8f547ff903d9d419cf5f54e0d7d07efa9584135a53a057c5f1f27f49a91a2506000949350505050565b6000816040516020018082805190602001908083835b60208310612f775780518252601f199092019160209182019101612f58565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310612fe55780518252601f199092019160209182019101612fc6565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052805190602001201490505b92915050565b015190565b60008261303e57506000613024565b8282028284828161304b57fe5b0414610c935760405162461bcd60e51b81526004018080602001828103825260218152602001806142ac6021913960400191505060405180910390fd5b6000610c9383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613ae9565b6000610c9383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613b8b565b600082820183811015610c93576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b61316e6141c6565b506040805180820190915281518152602082810190820152919050565b613193614171565b61319c82613be5565b6131a557600080fd5b60006131b48360200151613c1f565b60208085015160408051808201909152868152920190820152915050919050565b60006131df6141c6565b505080518051602091820151919092015191011190565b6131fe6141c6565b613207826131d5565b61321057600080fd5b6020820151600061322082613c82565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061325957508151602110155b61326257600080fd5b60006132718360200151613c1f565b905080836000015110156132cc576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b8251602080850151830180519284900392918310156132f257826020036101000a820491505b50949350505050565b606061330682613be5565b61330f57600080fd5b600061331a83613db5565b905060608160405190808252806020026020018201604052801561335857816020015b6133456141c6565b81526020019060019003908161333d5790505b509050600061336a8560200151613c1f565b60208601510190506000805b848110156133c15761338783613c82565b91506040518060400160405280838152602001848152508482815181106133aa57fe5b602090810291909101015291810191600101613376565b509195945050505050565b6133d4614191565b60006133de614191565b6133e6614171565b6133ef8561318b565b90506000805b6133fe836131d5565b15611f56578061342957613419613414846131f6565b613e11565b6001600160a01b031684526134a1565b80600114156134515761343e613414846131f6565b6001600160a01b031660208501526134a1565b806002141561347957613466613414846131f6565b6001600160a01b031660408501526134a1565b8060031415611f495761348e611e5b846131f6565b6001600160401b03166060850152600191505b6001016133f5565b60606130246134b783613e2b565b613f11565b60608151600014156134dd5750604080516000815260208101909152611037565b6060826000815181106134ec57fe5b602002602001015190506000600190505b835181101561352d576135238285838151811061351657fe5b6020026020010151613f63565b91506001016134fd565b50610c93613540825160c060ff16613fe0565b82613f63565b600060606029835111156135785760006040518060600160405280602981526020016141e16029913991509150611f5f565b60005b835181101561360e5760005b818110156136055784818151811061359b57fe5b6020026020010151600001516001600160a01b03168583815181106135bc57fe5b6020026020010151600001516001600160a01b031614156135fd5760006040518060600160405280602b8152602001614235602b9139935093505050611f5f565b600101613587565b5060010161357b565b505060408051602081019091526000815260019150915091565b600154815160005b82811015613745576001613642614191565b6001838154811061364f57fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b84811015613719578681815181106136df57fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b031614156137115760009250613719565b6001016136cb565b50811561373b5780516001600160a01b03166000908152600460205260408120555b5050600101613630565b50808211156137ba57805b828110156137b857600180548061376357fe5b60008281526020812060046000199093019283020180546001600160a01b03199081168255600182810180549092169091556002820180546001600160e81b0319169055600390910191909155915501613750565b505b60008183106137c957816137cb565b825b905060005b818110156139c55761387d8582815181106137e757fe5b6020026020010151600183815481106137fc57fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a08201526140d8565b61399857806001016004600087848151811061389557fe5b6020026020010151600001516001600160a01b03166001600160a01b03168152602001908152602001600020819055508481815181106138d157fe5b6020026020010151600182815481106138e657fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a0909101516003909101556139bd565b6000600182815481106139a757fe5b9060005260206000209060040201600301819055505b6001016137d0565b5082821115611dee57825b82811015610fba5760018582815181106139e657fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782559585015181840180549184169188169190911790556040850151600282018054606088015160808901511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590971692909a169190911792909216939093171695909517905560a09092015160039093019290925587519084019290889085908110613abc57fe5b602090810291909101810151516001600160a01b03168252810191909152604001600020556001016139d0565b60008183613b755760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613b3a578181015183820152602001613b22565b50505050905090810190601f168015613b675780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581613b8157fe5b0495945050505050565b60008184841115613bdd5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315613b3a578181015183820152602001613b22565b505050900390565b8051600090613bf657506000611037565b6020820151805160001a9060c0821015613c1557600092505050611037565b5060019392505050565b8051600090811a6080811015613c39576000915050611037565b60b8811080613c54575060c08110801590613c54575060f881105b15613c63576001915050611037565b60c0811015613c775760b519019050611037565b60f519019050611037565b80516000908190811a6080811015613c9d5760019150613dae565b60b8811015613cb257607e1981019150613dae565b60c0811015613d2c57600060b78203600186019550806020036101000a865104915060018101820193505080831015613d26576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50613dae565b60f8811015613d415760be1981019150613dae565b600060f78203600186019550806020036101000a865104915060018101820193505080831015613dac576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b8051600090613dc657506000611037565b60008090506000613dda8460200151613c1f565b602085015185519181019250015b80821015613e0857613df982613c82565b60019093019290910190613de8565b50909392505050565b8051600090601514613e2257600080fd5b61302482613244565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416613e6f57506018613e93565b6fffffffffffffffffffffffffffffffff198416613e8f57506010613e93565b5060005b6020811015613ec957818181518110613ea857fe5b01602001516001600160f81b03191615613ec157613ec9565b600101613e93565b60008160200390506060816040519080825280601f01601f191660200182016040528015613efe576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015613f435750607f60f81b82600081518110613f3157fe5b01602001516001600160f81b03191611155b15613f4f575080611037565b613024613f618351608060ff16613fe0565b835b6060806040519050835180825260208201818101602087015b81831015613f94578051835260209283019201613f7c565b50855184518101855292509050808201602086015b81831015613fc1578051835260209283019201613fa9565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310614030576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b6040805160018082528183019092526060916020820181803683370190505090506037841161408a5782840160f81b8160008151811061406c57fe5b60200101906001600160f81b031916908160001a9053509050613024565b606061409585613e2b565b90508381510160370160f81b826000815181106140ae57fe5b60200101906001600160f81b031916908160001a9053506140cf8282613f63565b95945050505050565b805182516000916001600160a01b039182169116148015614112575081602001516001600160a01b031683602001516001600160a01b0316145b8015614137575081604001516001600160a01b031683604001516001600160a01b0316145b8015610c935750506060908101519101516001600160401b0390811691161490565b60408051808201909152600081526060602082015290565b60405180604001604052806141846141c6565b8152602001600081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b60405180604001604052806000815260200160008152509056fe746865206e756d626572206f662076616c696461746f72732065786365656420746865206c696d6974746865206275726e526174696f206d757374206265206e6f2067726561746572207468616e2031303030306475706c696361746520636f6e73656e7375732061646472657373206f662076616c696461746f725365747468652065787069726554696d655365636f6e64476170206973206f7574206f662072616e67656c656e677468206f66206a61696c2076616c696461746f7273206d757374206265206f6e65536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374666565206973206c6172676572207468616e2044555354595f494e434f4d494e476c656e677468206f662065787069726554696d655365636f6e64476170206d69736d617463686661696c656420746f20706172736520696e69742076616c696461746f72536574f905ec80f905e8f846942a7cdd959bfe8d9487b2a43b33565295a698f7e294b6a7edd747c0554875d3fc531d19ba1497992c5e941ff80f3f7f110ffd8920a3ac38fdef318fe94a3f86048c27395000f846946488aa4d1955ee33403f8ccb1d4de5fb97c7ade294220f003d8bdfaadf52aa1e55ae4cc485e6794875941a87e90e440a39c99aa9cb5cea0ad6a3f0b2407b86048c27395000f846949ef9f4360c606c7ab4db26b016007d3ad0ab86a0946103af86a874b705854033438383c82575f25bc29418e2db06cbff3e3c5f856410a1838649e760175786048c27395000f84694ee01c3b1283aa067c58eab4709f85e99d46de5fe94ee4b9bfb1871c64e2bcabb1dc382dc8b7c4218a29415904ab26ab0e99d70b51c220ccdcccabee6e29786048c27395000f84694685b1ded8013785d6623cc18d214320b6bb6475994a20ef4e5e4e7e36258dbf51f4d905114cb1b34bc9413e39085dc88704f4394d35209a02b1a9520320c86048c27395000f8469478f3adfc719c99674c072166708589033e2d9afe9448a30d5eaa7b64492a160f139e2da2800ec3834e94055838358c29edf4dcc1ba1985ad58aedbb6be2b86048c27395000f84694c2be4ec20253b8642161bc3f444f53679c1f3d479466f50c616d737e60d7ca6311ff0d9c434197898a94d1d678a2506eeaa365056fe565df8bc8659f28b086048c27395000f846942f7be8361c80a4c1e7e9aaf001d0877f1cfde218945f93992ac37f3e61db2ef8a587a436a161fd210b94ecbc4fb1a97861344dad0867ca3cba2b860411f086048c27395000f84694ce2fd7544e0b2cc94692d4a704debef7bcb613289444abc67b4b2fba283c582387f54c9cba7c34bafa948acc2ab395ded08bb75ce85bf0f95ad2abc51ad586048c27395000f84694b8f7166496996a7da21cf1f1b04d9b3e26a3d077946770572763289aac606e4f327c2f6cc1aa3b3e3b94882d745ed97d4422ca8da1c22ec49d880c4c097286048c27395000f846942d4c407bbe49438ed859fe965b140dcf1aab71a9943ad0939e120f33518fbba04631afe7a3ed6327b194b2bbb170ca4e499a2b0f3cc85ebfa6e8c4dfcbea86048c27395000f846946bbad7cf34b5fa511d8e963dbba288b1960e75d694853b0f6c324d1f4e76c8266942337ac1b0af1a229442498946a51ca5924552ead6fc2af08b94fcba648601d1a94a2000f846944430b3230294d12c6ab2aac5c2cd68e80b16b581947b107f4976a252a6939b771202c28e64e03f52d694795811a7f214084116949fc4f53cedbf189eeab28601d1a94a2000f84694ea0a6e3c511bbd10f4519ece37dc24887e11b55d946811ca77acfb221a49393c193f3a22db829fcc8e9464feb7c04830dd9ace164fc5c52b3f5a29e5018a8601d1a94a2000f846947ae2f5b9e386cd1b50a4550696d957cb4900f03a94e83bcc5077e6b873995c24bac871b5ad856047e19464e48d4057a90b233e026c1041e6012ada897fe88601d1a94a2000f8469482012708dafc9e1b880fd083b32182b869be8e09948e5adc73a2d233a1b496ed3115464dd6c7b887509428b383d324bc9a37f4e276190796ba5a8947f5ed8601d1a94a2000f8469422b81f8e175ffde54d797fe11eb03f9e3bf75f1d94a1c3ef7ca38d8ba80cce3bfc53ebd2903ed21658942767f7447f7b9b70313d4147b795414aecea54718601d1a94a2000f8469468bf0b8b6fb4e317a0f9d6f03eaf8ce6675bc60d94675cfe570b7902623f47e7f59c9664b5f5065dcf94d84f0d2e50bcf00f2fc476e1c57f5ca2d57f625b8601d1a94a2000f846948c4d90829ce8f72d0163c1d5cf348a862d5506309485c42a7b34309bee2ed6a235f86d16f059deec5894cc2cedc53f0fa6d376336efb67e43d167169f3b78601d1a94a2000f8469435e7a025f4da968de7e4d7e4004197917f4070f194b1182abaeeb3b4d8eba7e6a4162eac7ace23d57394c4fd0d870da52e73de2dd8ded19fe3d26f43a1138601d1a94a2000f84694d6caa02bbebaebb5d7e581e4b66559e635f805ff94c07335cf083c1c46a487f0325769d88e163b653694efaff03b42e41f953a925fc43720e45fb61a19938601d1a94a2000746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d6573736167652073656e646572206d7573742062652074686520626c6f636b2070726f6475636572746865206d6573736167652073656e646572206d75737420626520736c61736820636f6e7472616374a2646970667358221220b274d764256170addda41fb4f3d964ba036ef5f3a15a0341d0524406e0ac44e864736f6c63430006040033", - }, - }, - } - - EulerUpgrade[networkname.BSCChainName] = &Upgrade{ - UpgradeName: "euler", - Configs: []*UpgradeConfig{ - { - ContractAddr: ValidatorContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/db8bb560ac5a1265c685b719c7e976dced162310", - Code: "6080604052600436106104055760003560e01c80638d19a41011610213578063c81b166211610123578063eb57e202116100ab578063f9a2bbc71161007a578063f9a2bbc714610d55578063fc3e590814610d6a578063fccc281314610d7f578063fd4ad81f14610d94578063fd6a687914610dd757610405565b8063eb57e20214610cd2578063eda5868c14610d05578063f340fa0114610d1a578063f92eb86b14610d4057610405565b8063daacdb66116100f2578063daacdb6614610c69578063dc927faf14610c7e578063e086c7b114610c93578063e1c7392a14610ca8578063e40716a114610cbd57610405565b8063c81b166214610c2a578063c8509d8114610939578063d68fb56a14610c3f578063d86222d514610c5457610405565b8063a78abc16116101a6578063ad3c9da611610175578063ad3c9da614610bb8578063b7ab4db514610beb578063b8cf4ef114610c00578063bf9f49951461065f578063c6d3394514610c1557610405565b8063a78abc1614610aae578063aaf5eb6814610ac3578063ab51bb9614610ad8578063ac43175114610aed57610405565b80639fe0f816116101e25780639fe0f81614610a5a578063a0dc275814610a6f578063a1a11bf514610a84578063a5422d5c14610a9957610405565b80638d19a410146109e85780639369d7de14610a1b57806396713da914610a305780639dc0926214610a4557610405565b80635192c82c1161031957806375d47a0a116102a157806381650b621161027057806381650b6214610924578063831d65d114610939578063853230aa146108e557806386249882146109be5780638b5ad0c9146109d357610405565b806375d47a0a146108d057806378dfed4a146108e55780637942fd05146108fa5780637a84ca2a1461090f57610405565b80635667515a116102e85780635667515a146108065780635d77156c1461081b5780636969a25c146108305780636e47b482146108a657806370fd5bad146108bb57610405565b80635192c82c1461077657806351e806721461078b57806355614fcc146107a0578063565c56b3146107d357610405565b80633365af3a1161039c57806343756e5c1161036b57806343756e5c1461068a57806345cf9daf146106bb578063493279b1146106d05780634bf6c882146106fc5780634df6e0c31461071157610405565b80633365af3a146105ed57806335409f7f146106175780633de0f0d81461064a5780633dffc3871461065f57610405565b8063152ad3b8116103d8578063152ad3b8146105705780631ff1806914610599578063219f22d5146105ae578063321d398a146105c357610405565b806304c4fec61461040a57806307a56847146104215780630bee7a67146104485780631182b87514610476575b600080fd5b34801561041657600080fd5b5061041f610dec565b005b34801561042d57600080fd5b50610436610e7f565b60408051918252519081900360200190f35b34801561045457600080fd5b5061045d610e85565b6040805163ffffffff9092168252519081900360200190f35b34801561048257600080fd5b506104fb6004803603604081101561049957600080fd5b60ff8235169190810190604081016020820135600160201b8111156104bd57600080fd5b8201836020820111156104cf57600080fd5b803590602001918460018302840111600160201b831117156104f057600080fd5b509092509050610e8a565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561053557818101518382015260200161051d565b50505050905090810190601f1680156105625780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561057c57600080fd5b5061058561111c565b604080519115158252519081900360200190f35b3480156105a557600080fd5b50610436611125565b3480156105ba57600080fd5b5061045d61112b565b3480156105cf57600080fd5b50610585600480360360208110156105e657600080fd5b5035611130565b3480156105f957600080fd5b506105856004803603602081101561061057600080fd5b50356111ff565b34801561062357600080fd5b5061041f6004803603602081101561063a57600080fd5b50356001600160a01b03166112b0565b34801561065657600080fd5b5061043661140f565b34801561066b57600080fd5b50610674611415565b6040805160ff9092168252519081900360200190f35b34801561069657600080fd5b5061069f61141a565b604080516001600160a01b039092168252519081900360200190f35b3480156106c757600080fd5b50610436611420565b3480156106dc57600080fd5b506106e5611426565b6040805161ffff9092168252519081900360200190f35b34801561070857600080fd5b5061067461142b565b34801561071d57600080fd5b50610726611430565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561076257818101518382015260200161074a565b505050509050019250505060405180910390f35b34801561078257600080fd5b5061043661152b565b34801561079757600080fd5b5061069f611531565b3480156107ac57600080fd5b50610585600480360360208110156107c357600080fd5b50356001600160a01b0316611537565b3480156107df57600080fd5b50610436600480360360208110156107f657600080fd5b50356001600160a01b031661156c565b34801561081257600080fd5b506106746115bd565b34801561082757600080fd5b5061045d6115c2565b34801561083c57600080fd5b5061085a6004803603602081101561085357600080fd5b50356115c7565b604080516001600160a01b039788168152958716602087015293909516848401526001600160401b0390911660608401521515608083015260a082019290925290519081900360c00190f35b3480156108b257600080fd5b5061069f61162b565b3480156108c757600080fd5b50610674611631565b3480156108dc57600080fd5b5061069f611636565b3480156108f157600080fd5b5061043661163c565b34801561090657600080fd5b50610674611642565b34801561091b57600080fd5b50610436611647565b34801561093057600080fd5b5061045d61164d565b34801561094557600080fd5b5061041f6004803603604081101561095c57600080fd5b60ff8235169190810190604081016020820135600160201b81111561098057600080fd5b82018360208201111561099257600080fd5b803590602001918460018302840111600160201b831117156109b357600080fd5b509092509050611652565b3480156109ca57600080fd5b50610436611705565b3480156109df57600080fd5b5061043661170b565b3480156109f457600080fd5b5061043660048036036020811015610a0b57600080fd5b50356001600160a01b0316611711565b348015610a2757600080fd5b5061041f611786565b348015610a3c57600080fd5b506106746118a0565b348015610a5157600080fd5b5061069f6118a5565b348015610a6657600080fd5b506104366118ab565b348015610a7b57600080fd5b506104366118b0565b348015610a9057600080fd5b5061069f6118b5565b348015610aa557600080fd5b506104fb6118bb565b348015610aba57600080fd5b506105856118da565b348015610acf57600080fd5b506104366118e3565b348015610ae457600080fd5b5061045d6115bd565b348015610af957600080fd5b5061041f60048036036040811015610b1057600080fd5b810190602081018135600160201b811115610b2a57600080fd5b820183602082011115610b3c57600080fd5b803590602001918460018302840111600160201b83111715610b5d57600080fd5b919390929091602081019035600160201b811115610b7a57600080fd5b820183602082011115610b8c57600080fd5b803590602001918460018302840111600160201b83111715610bad57600080fd5b5090925090506118ec565b348015610bc457600080fd5b5061043660048036036020811015610bdb57600080fd5b50356001600160a01b0316612329565b348015610bf757600080fd5b5061072661233b565b348015610c0c57600080fd5b5061043661241e565b348015610c2157600080fd5b50610436611631565b348015610c3657600080fd5b5061069f612423565b348015610c4b57600080fd5b50610436612429565b348015610c6057600080fd5b50610436612468565b348015610c7557600080fd5b50610436612474565b348015610c8a57600080fd5b5061069f61247a565b348015610c9f57600080fd5b50610436612480565b348015610cb457600080fd5b5061041f612485565b348015610cc957600080fd5b50610436612688565b348015610cde57600080fd5b5061041f60048036036020811015610cf557600080fd5b50356001600160a01b031661268e565b348015610d1157600080fd5b5061045d61279c565b61041f60048036036020811015610d3057600080fd5b50356001600160a01b03166127a1565b348015610d4c57600080fd5b50610436612aa6565b348015610d6157600080fd5b5061069f612aac565b348015610d7657600080fd5b506106746118ab565b348015610d8b57600080fd5b5061069f612ab2565b348015610da057600080fd5b50610dbe60048036036020811015610db757600080fd5b5035612ab8565b6040805192835290151560208301528051918290030190f35b348015610de357600080fd5b5061069f612ae6565b6000610df733611711565b9050600b8181548110610e0657fe5b600091825260209091206001601690920201015460ff16610e63576040805162461bcd60e51b81526020600482015260126024820152716e6f7420696e206d61696e74656e616e636560701b604482015290519081900360640190fd5b6000610e6d612429565b9050610e7a338383612aec565b505050565b60095481565b606481565b60005460609060ff16610ee0576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b3361200014610f205760405162461bcd60e51b815260040180806020018281038252602f81526020018061648b602f913960400191505060405180910390fd5b600b54610fc557610f2f6159e0565b60015460005b81811015610fc157600b80546001810182556000919091528351600080516020615e15833981519152601690920291820190815560208501516000805160206165148339815191528301805460ff191691151591909117905560408501518592610fb391600080516020615e5b833981519152909101906014615a04565b505050806001019050610f35565b5050505b610fcd615a3e565b600061100e85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612ce092505050565b915091508061102a576110216064612e39565b92505050611115565b815160009060ff1661104a576110438360200151612e9a565b90506110e1565b825160ff16600114156110dd578260200151516001146110b7577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2604051808060200182810382526025815260200180615d5b6025913960400191505060405180910390a15060676110d8565b61104383602001516000815181106110cb57fe5b6020026020010151613caa565b6110e1565b5060655b63ffffffff811661110657505060408051600081526020810190915291506111159050565b61110f81612e39565b93505050505b9392505050565b60075460ff1681565b60035481565b606881565b6001546000908210611144575060006111fa565b60006001600160a01b03166001838154811061115c57fe5b60009182526020909120600490910201546001600160a01b0316148061118c5750600854158061118c5750600a54155b8061119b575060085460095410155b806111ac57506111aa826111ff565b155b806111d557506000600b83815481106111c157fe5b906000526020600020906016020160000154115b806111e9575060016111e561233b565b5111155b156111f6575060006111fa565b5060015b919050565b6001546000908210611213575060006111fa565b600b548210611250576001828154811061122957fe5b9060005260206000209060040201600201601c9054906101000a900460ff161590506111fa565b6001828154811061125d57fe5b9060005260206000209060040201600201601c9054906101000a900460ff161580156112aa5750600b828154811061129157fe5b600091825260209091206001601690920201015460ff16155b92915050565b33611001146112f05760405162461bcd60e51b81526004018080602001828103825260298152602001806165346029913960400191505060405180910390fd5b600b54611395576112ff6159e0565b60015460005b8181101561139157600b80546001810182556000919091528351600080516020615e15833981519152601690920291820190815560208501516000805160206165148339815191528301805460ff19169115159190911790556040850151859261138391600080516020615e5b833981519152909101906014615a04565b505050806001019050611305565b5050505b6001600160a01b038116600090815260046020526040902054806113b9575061140c565b6001810390506000600b82815481106113ce57fe5b600091825260209091206001601690920201015460ff1690506113f18383613e21565b80156113fa5750805b15610e7a576009805460001901905550505b50565b61271081565b600181565b61100181565b60085481565b603881565b600881565b600e54600c546060919080611443575060155b606061144d61233b565b905081815111611461579250611528915050565b82828251031015611473578181510392505b82156114a75760c8430461148e82828686036000888861419d565b6114a582828686038787038889898951030161419d565b505b6060826040519080825280602002602001820160405280156114d3578160200160208202803683370190505b50905060005b83811015611521578281815181106114ed57fe5b602002602001015182828151811061150157fe5b6001600160a01b03909216602092830291909101909101526001016114d9565b5093505050505b90565b60065481565b61200081565b6001600160a01b0381166000908152600460205260408120548061155f5760009150506111fa565b60001901611115816111ff565b6001600160a01b038116600090815260046020526040812054806115945760009150506111fa565b6001808203815481106115a357fe5b906000526020600020906004020160030154915050919050565b600081565b606781565b600181815481106115d457fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b61100881565b6103e881565b600b81565b600c5481565b606681565b33612000146116925760405162461bcd60e51b815260040180806020018281038252602f81526020018061648b602f913960400191505060405180910390fd5b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a1505050565b60025481565b600a5481565b6001600160a01b0381166000908152600460205260408120548061177c576040805162461bcd60e51b815260206004820152601760248201527f6f6e6c792063757272656e742076616c696461746f7273000000000000000000604482015290519081900360640190fd5b6000190192915050565b600b5461182b576117956159e0565b60015460005b8181101561182757600b80546001810182556000919091528351600080516020615e15833981519152601690920291820190815560208501516000805160206165148339815191528301805460ff19169115159190911790556040850151859261181991600080516020615e5b833981519152909101906014615a04565b50505080600101905061179b565b5050505b6008546118385760036008555b600a54611845576002600a555b600061185033611711565b905061185b81611130565b6118965760405162461bcd60e51b8152600401808060200182810382526023815260200180615d386023913960400191505060405180910390fd5b61140c338261428c565b600981565b61100781565b600381565b60c881565b61100681565b6040518061062001604052806105ef8152602001615e9c6105ef913981565b60005460ff1681565b6402540be40081565b60005460ff1661193f576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b336110071461197f5760405162461bcd60e51b815260040180806020018281038252602e815260200180615da1602e913960400191505060405180910390fd5b6119e984848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b602082015291506143249050565b15611ac45760208114611a2d5760405162461bcd60e51b8152600401808060200182810382526026815260200180615e356026913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091611a6b9185858083850183828082843760009201919091525061440b92505050565b905060648110158015611a815750620186a08111155b611abc5760405162461bcd60e51b8152600401808060200182810382526027815260200180615cc86027913960400191505060405180910390fd5b600255612297565b611b2484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260098152686275726e526174696f60b81b602082015291506143249050565b15611c145760208114611b7e576040805162461bcd60e51b815260206004820152601c60248201527f6c656e677468206f66206275726e526174696f206d69736d6174636800000000604482015290519081900360640190fd5b604080516020601f8401819004810282018101909252828152600091611bbc9185858083850183828082843760009201919091525061440b92505050565b9050612710811115611bff5760405162461bcd60e51b815260040180806020018281038252602b815260200180615c72602b913960400191505060405180910390fd5b6006556007805460ff19166001179055612297565b611c7e84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260138152726d61784e756d4f664d61696e7461696e696e6760681b602082015291506143249050565b15611d565760208114611cc25760405162461bcd60e51b8152600401808060200182810382526026815260200180615b396026913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091611d009185858083850183828082843760009201919091525061440b92505050565b600c5490915080611d0f575060155b808210611d4d5760405162461bcd60e51b8152600401808060200182810382526038815260200180615bb06038913960400191505060405180910390fd5b50600855612297565b611dbf84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61696e7461696e536c6173685363616c6560701b602082015291506143249050565b15611e8a5760208114611e035760405162461bcd60e51b8152600401808060200182810382526025815260200180615b8b6025913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091611e419185858083850183828082843760009201919091525061440b92505050565b905060008111611e825760405162461bcd60e51b815260040180806020018281038252602d8152602001806164e7602d913960400191505060405180910390fd5b600a55612297565b611efe84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601981527f6d61784e756d4f66576f726b696e6743616e6469646174657300000000000000602082015291506143249050565b15611fcb5760208114611f425760405162461bcd60e51b815260040180806020018281038252602c815260200180615b5f602c913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091611f809185858083850183828082843760009201919091525061440b92505050565b9050600d54811115611fc35760405162461bcd60e51b8152600401808060200182810382526049815260200180615cef6049913960600191505060405180910390fd5b600e55612297565b61203484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61784e756d4f6643616e6469646174657360701b602082015291506143249050565b156120d557602081146120785760405162461bcd60e51b8152600401808060200182810382526025815260200180615dcf6025913960400191505060405180910390fd5b604080516020601f84018190048102820181019092528281526000916120b69185858083850183828082843760009201919091525061440b92505050565b600d819055600e549091508110156120cf57600d54600e555b50612297565b61213984848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c6e756d4f66436162696e65747360981b602082015291506143249050565b1561225a5760208114612193576040805162461bcd60e51b815260206004820181905260248201527f6c656e677468206f66206e756d4f66436162696e657473206d69736d61746368604482015290519081900360640190fd5b604080516020601f84018190048102820181019092528281526000916121d19185858083850183828082843760009201919091525061440b92505050565b9050600081116122125760405162461bcd60e51b8152600401808060200182810382526028815260200180615be86028913960400191505060405180910390fd5b60298111156122525760405162461bcd60e51b8152600401808060200182810382526039815260200180615c106039913960400191505060405180910390fd5b600c55612297565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b60046020526000908152604090205481565b6001546060906000805b8281101561236a57612356816111ff565b15612362576001909101905b600101612345565b50606081604051908082528060200260200182016040528015612397578160200160208202803683370190505b5090506000915060005b83811015612416576123b2816111ff565b1561240e57600181815481106123c457fe5b600091825260209091206004909102015482516001600160a01b03909116908390859081106123ef57fe5b6001600160a01b03909216602092830291909101909101526001909201915b6001016123a1565b509250505090565b601581565b61100281565b600061243361233b565b519050600080600c541161244857601561244c565b600c545b90508082111561245a578091505b8161246457600191505b5090565b67016345785d8a000081565b60055481565b61100381565b602981565b60005460ff16156124dd576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b6124e5615a3e565b600061250b6040518061062001604052806105ef8152602001615e9c6105ef9139612ce0565b915091508061254b5760405162461bcd60e51b8152600401808060200182810382526021815260200180615e7b6021913960400191505060405180910390fd5b60005b8260200151518110156126705760018360200151828151811061256d57fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a09093015160039093019290925591860151805191850193918590811061264357fe5b602090810291909101810151516001600160a01b031682528101919091526040016000205560010161254e565b50506103e8600255506000805460ff19166001179055565b600d5481565b33611001146126ce5760405162461bcd60e51b81526004018080602001828103825260298152602001806165346029913960400191505060405180910390fd5b600b54612773576126dd6159e0565b60015460005b8181101561276f57600b80546001810182556000919091528351600080516020615e15833981519152601690920291820190815560208501516000805160206165148339815191528301805460ff19169115159190911790556040850151859261276191600080516020615e5b833981519152909101906014615a04565b5050508060010190506126e3565b5050505b600061277e82614410565b905061278981611130565b1561279857612798828261428c565b5050565b606581565b3341146127df5760405162461bcd60e51b815260040180806020018281038252602d8152602001806164ba602d913960400191505060405180910390fd5b60005460ff16612832576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b6000341161287f576040805162461bcd60e51b81526020600482015260156024820152746465706f7369742076616c7565206973207a65726f60581b604482015290519081900360640190fd5b6001600160a01b0381166000908152600460205260409020546007543491906103e89060ff16156128af57506006545b6000831180156128bf5750600081115b156129685760006128e86127106128dc868563ffffffff6145b416565b9063ffffffff61460d16565b905080156129665760405161dead9082156108fc029083906000818181858888f1935050505015801561291f573d6000803e3d6000fd5b506040805182815290517f627059660ea01c4733a328effb2294d2f86905bf806da763a89cee254de8bee59181900360200190a1612963848263ffffffff61464f16565b93505b505b8115612a6057600060018084038154811061297f57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff16156129ea576040805185815290516001600160a01b038716917ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4919081900360200190a2612a5a565b6003546129fd908563ffffffff61469116565b6003908155810154612a15908563ffffffff61469116565b60038201556040805185815290516001600160a01b038716917f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc055919081900360200190a25b50612aa0565b6040805184815290516001600160a01b038616917ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4919081900360200190a25b50505050565b600e5481565b61100081565b61dead81565b600b8181548110612ac557fe5b60009182526020909120601690910201805460019091015490915060ff1682565b61100481565b6000600a5460001480612afd575081155b80612b085750600954155b15612b1557506000611115565b600960008154809291906001900391905055506000612b62600a546128dc856128dc600b8981548110612b4457fe5b6000918252602090912060169091020154439063ffffffff61464f16565b90506000600b8581548110612b7357fe5b906000526020600020906016020160010160006101000a81548160ff0219169083151502179055506000806110016001600160a01b0316638256ace66040518163ffffffff1660e01b8152600401604080518083038186803b158015612bd857600080fd5b505afa158015612bec573d6000803e3d6000fd5b505050506040513d6040811015612c0257600080fd5b508051602090910151600095509092509050808310612c9057612c258787613e21565b50604080516305bfb49960e41b81526001600160a01b0389166004820152905161100191635bfb499091602480830192600092919082900301818387803b158015612c6f57600080fd5b505af1158015612c83573d6000803e3d6000fd5b5050505060019350612ca2565b818310612ca257612ca087614410565b505b6040516001600160a01b038816907fb9d38178dc641ff1817967a63c9078cbcd955a9f1fcd75e0e3636de615d44d3b90600090a25050509392505050565b612ce8615a3e565b6000612cf2615a3e565b612cfa615a56565b612d0b612d06866146eb565b614710565b90506000805b612d1a8361475a565b15612e2b5780612d3f57612d35612d308461477b565b6147c9565b60ff168452612e23565b8060011415612e1e576060612d5b612d568561477b565b614880565b90508051604051908082528060200260200182016040528015612d9857816020015b612d85615a76565b815260200190600190039081612d7d5790505b50602086015260005b8151811015612e1357612db2615a76565b6000612dd0848481518110612dc357fe5b6020026020010151614951565b9150915080612ded57876000995099505050505050505050612e34565b8188602001518481518110612dfe57fe5b60209081029190910101525050600101612da1565b506001925050612e23565b612e2b565b600101612d11565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b6060815260200190600190039081612e53579050509050612e798363ffffffff16614a2e565b81600081518110612e8657fe5b602002602001018190525061111581614a41565b6000806060612ea884614acb565b9150915081612f55577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2816040518080602001828103825283818151815260200191508051906020019080838360005b83811015612f10578181015183820152602001612ef8565b50505050905090810190601f168015612f3d5780820380516001836020036101000a031916815260200191505b509250505060405180910390a16066925050506111fa565b50506060612f6283614bad565b6001549091506000908190815b81811015612fe55767016345785d8a000060018281548110612f8d57fe5b90600052602060002090600402016003015410612faf57600190930192612fdd565b600060018281548110612fbe57fe5b9060005260206000209060040201600301541115612fdd576001909201915b600101612f6f565b50606083604051908082528060200260200182016040528015613012578160200160208202803683370190505b509050606084604051908082528060200260200182016040528015613041578160200160208202803683370190505b509050606085604051908082528060200260200182016040528015613070578160200160208202803683370190505b50905060608660405190808252806020026020018201604052801561309f578160200160208202803683370190505b50905060006060876040519080825280602002602001820160405280156130d0578160200160208202803683370190505b5090506060886040519080825280602002602001820160405280156130ff578160200160208202803683370190505b509050600099506000985060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b15801561314757600080fd5b505afa15801561315b573d6000803e3d6000fd5b505050506040513d602081101561317157600080fd5b5051905067016345785d8a00008111156131e5577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2604051808060200182810382526021815260200180615df46021913960400191505060405180910390a160689c505050505050505050505050506111fa565b60005b898110156134565767016345785d8a00006001828154811061320657fe5b9060005260206000209060040201600301541061338c576001818154811061322a57fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316898d8151811061325b57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be4006001838154811061329057fe5b906000526020600020906004020160030154816132a957fe5b06600183815481106132b757fe5b9060005260206000209060040201600301540390506132df838261464f90919063ffffffff16565b898e815181106132eb57fe5b6020026020010181815250506001828154811061330457fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316878e8151811061333557fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081888e8151811061336257fe5b602090810291909101015261337d868263ffffffff61469116565b6001909d019c955061344e9050565b60006001828154811061339b57fe5b906000526020600020906004020160030154111561344e57600181815481106133c057fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316848c815181106133f157fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506001818154811061341e57fe5b906000526020600020906004020160030154838c8151811061343c57fe5b60209081029190910101526001909a01995b6001016131e8565b5060008415613894576110046001600160a01b0316636e056520868b8b8a60025442016040518663ffffffff1660e01b815260040180806020018060200180602001856001600160401b03166001600160401b03168152602001848103845288818151815260200191508051906020019060200280838360005b838110156134e85781810151838201526020016134d0565b50505050905001848103835287818151815260200191508051906020019060200280838360005b8381101561352757818101518382015260200161350f565b50505050905001848103825286818151815260200191508051906020019060200280838360005b8381101561356657818101518382015260200161354e565b505050509050019750505050505050506020604051808303818588803b15801561358f57600080fd5b505af1935050505080156135b557506040513d60208110156135b057600080fd5b505160015b6137f0576040516000815260443d10156135d15750600061366c565b60046000803e60005160e01c6308c379a081146135f257600091505061366c565b60043d036004833e81513d60248201116001600160401b038211171561361d5760009250505061366c565b80830180516001600160401b0381111561363e57600094505050505061366c565b8060208301013d860181111561365c5760009550505050505061366c565b601f01601f191660405250925050505b80613677575061371b565b60019150857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280826040518080602001828103825283818151815260200191508051906020019080838360005b838110156136db5781810151838201526020016136c3565b50505050905090810190601f1680156137085780820380516001836020036101000a031916815260200191505b509250505060405180910390a2506137eb565b3d808015613745576040519150601f19603f3d011682016040523d82523d6000602084013e61374a565b606091505b5060019150857fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a45826040518080602001828103825283818151815260200191508051906020019080838360005b838110156137af578181015183820152602001613797565b50505050905090810190601f1680156137dc5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b613894565b801561382e576040805187815290517fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b709181900360200190a1613892565b604080516020808252601b908201527f6261746368207472616e736665722072657475726e2066616c7365000000000081830152905187917fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280919081900360600190a25b505b8015613a4a5760005b8751811015613a485760008882815181106138b457fe5b602002602001015190506000600182815481106138cd57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc91859081106138fe57fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f19350505050905080156139ba576001828154811061393f57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d918590811061398e57fe5b9060005260206000209060040201600301546040518082815260200191505060405180910390a2613a3e565b600182815481106139c757fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d9185908110613a1657fe5b9060005260206000209060040201600301546040518082815260200191505060405180910390a25b505060010161389d565b505b835115613b945760005b8451811015613b92576000858281518110613a6b57fe5b60200260200101516001600160a01b03166108fc868481518110613a8b57fe5b60200260200101519081150290604051600060405180830381858888f1935050505090508015613b2157858281518110613ac157fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d868481518110613aff57fe5b60200260200101516040518082815260200191505060405180910390a2613b89565b858281518110613b2d57fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d868481518110613b6b57fe5b60200260200101516040518082815260200191505060405180910390a25b50600101613a54565b505b4715613bfd576040805147815290517f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d9181900360200190a1604051611002904780156108fc02916000818181858888f19350505050158015613bfb573d6000803e3d6000fd5b505b600060038190556005558c5115613c1757613c178d614d7d565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015613c5457600080fd5b505af1158015613c68573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a15060009e9d5050505050505050505050505050565b80516001600160a01b0316600090815260046020526040812054801580613cfb5750600180820381548110613cdb57fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b15613d415782516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a260009150506111fa565b600154600554600019820111801590613d975784516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a2600093505050506111fa565b600580546001908101909155805481906000198601908110613db557fe5b6000918252602082206002600490920201018054921515600160e01b0260ff60e01b199093169290921790915585516040516001600160a01b03909116917ff226e7d8f547ff903d9d419cf5f54e0d7d07efa9584135a53a057c5f1f27f49a91a2506000949350505050565b60008060018381548110613e3157fe5b90600052602060002090600402016003015490506000600180805490500390506001613e5b61233b565b5111613e9057600060018581548110613e7057fe5b9060005260206000209060040201600301819055506000925050506112aa565b6040805183815290516001600160a01b038716917f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a70919081900360200190a26001600160a01b038516600090815260046020526040812055835b6001546000190181101561408d5760018160010181548110613f0857fe5b906000526020600020906004020160018281548110613f2357fe5b60009182526020909120825460049092020180546001600160a01b03199081166001600160a01b0393841617825560018085015481840180548416918616919091179055600280860180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b19909416939093179055600392830154920191909155600b805490918301908110613fe457fe5b9060005260206000209060160201600b8281548110613fff57fe5b600091825260209091208254601690920201908155600180830154908201805460ff191660ff909216151591909117905561404260028083019084016014615aab565b5090505080600101600460006001848154811061405b57fe5b600091825260208083206004909202909101546001600160a01b03168352820192909252604001902055600101613eea565b50600180548061409957fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b8054806140ec57fe5b60008281526020812060166000199093019283020181815560018101805460ff191690559061411e6002830182615ad6565b50509055600081838161412d57fe5b04905080156141915760015460005b8181101561418e57826001828154811061415257fe5b906000526020600020906004020160030154016001828154811061417257fe5b600091825260209091206003600490920201015560010161413c565b50505b50600195945050505050565b60005b828110156142835760408051602080820189905287840182840152825180830384018152606090920190925280519101206000908390816141dd57fe5b0690508085018287011461427a57600088838801815181106141fb57fe5b60200260200101519050888287018151811061421357fe5b6020026020010151898489018151811061422957fe5b60200260200101906001600160a01b031690816001600160a01b03168152505080898388018151811061425857fe5b60200260200101906001600160a01b031690816001600160a01b031681525050505b506001016141a0565b50505050505050565b600980546001908101909155600b8054839081106142a657fe5b906000526020600020906016020160010160006101000a81548160ff02191690831515021790555043600b82815481106142dc57fe5b600091825260208220601690910201919091556040516001600160a01b038416917ff62981a567ec3cec866c6fa93c55bcdf841d6292d18b8d522ececa769375d82d91a25050565b6000816040516020018082805190602001908083835b602083106143595780518252601f19909201916020918201910161433a565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106143c75780518252601f1990920191602091820191016143a8565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b6001600160a01b03811660009081526004602052604081205480614439575060001990506111fa565b60018103905060006001828154811061444e57fe5b906000526020600020906004020160030154905060006001838154811061447157fe5b906000526020600020906004020160030181905550600060018080549050039050846001600160a01b03167f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d836040518082815260200191505060405180910390a2806144e3578293505050506111fa565b60008183816144ee57fe5b04905080156145aa5760005b8481101561454c57816001828154811061451057fe5b906000526020600020906004020160030154016001828154811061453057fe5b60009182526020909120600360049092020101556001016144fa565b50600180549085015b818110156145a757826001828154811061456b57fe5b906000526020600020906004020160030154016001828154811061458b57fe5b6000918252602090912060036004909202010155600101614555565b50505b5091949350505050565b6000826145c3575060006112aa565b828202828482816145d057fe5b04146111155760405162461bcd60e51b8152600401808060200182810382526021815260200180615d806021913960400191505060405180910390fd5b600061111583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250615370565b600061111583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250615412565b600082820183811015611115576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6146f3615ae5565b506040805180820190915281518152602082810190820152919050565b614718615a56565b6147218261546c565b61472a57600080fd5b600061473983602001516154a6565b60208085015160408051808201909152868152920190820152915050919050565b6000614764615ae5565b505080518051602091820151919092015191011190565b614783615ae5565b61478c8261475a565b61479557600080fd5b602082015160006147a582615509565b80830160209586015260408051808201909152908152938401919091525090919050565b8051600090158015906147de57508151602110155b6147e757600080fd5b60006147f683602001516154a6565b90508083600001511015614851576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b82516020808501518301805192849003929183101561487757826020036101000a820491505b50949350505050565b606061488b8261546c565b61489457600080fd5b600061489f8361563c565b90506060816040519080825280602002602001820160405280156148dd57816020015b6148ca615ae5565b8152602001906001900390816148c25790505b50905060006148ef85602001516154a6565b60208601510190506000805b848110156149465761490c83615509565b915060405180604001604052808381526020018481525084828151811061492f57fe5b6020908102919091010152918101916001016148fb565b509195945050505050565b614959615a76565b6000614963615a76565b61496b615a56565b61497485614710565b90506000805b6149838361475a565b15612e2b57806149ae5761499e6149998461477b565b615698565b6001600160a01b03168452614a26565b80600114156149d6576149c36149998461477b565b6001600160a01b03166020850152614a26565b80600214156149fe576149eb6149998461477b565b6001600160a01b03166040850152614a26565b8060031415612e1e57614a13612d308461477b565b6001600160401b03166060850152600191505b60010161497a565b60606112aa614a3c836156b2565b615798565b6060815160001415614a6257506040805160008152602081019091526111fa565b606082600081518110614a7157fe5b602002602001015190506000600190505b8351811015614ab257614aa882858381518110614a9b57fe5b60200260200101516157ea565b9150600101614a82565b50611115614ac5825160c060ff16615867565b826157ea565b60006060602983511115614afd576000604051806060016040528060298152602001615c496029913991509150612e34565b60005b8351811015614b935760005b81811015614b8a57848181518110614b2057fe5b6020026020010151600001516001600160a01b0316858381518110614b4157fe5b6020026020010151600001516001600160a01b03161415614b825760006040518060600160405280602b8152602001615c9d602b9139935093505050612e34565b600101614b0c565b50600101614b00565b505060408051602081019091526000815260019150915091565b6060600080808080614bbd612429565b6001549091505b8015614ccb57600181039250600b8381548110614bdd57fe5b600091825260209091206001601690920201015460ff16614bfd57614cc2565b60018381548110614c0a57fe5b60009182526020909120600490910201546001600160a01b03169450614c31858484612aec565b9350831580614c44575060018851038610155b15614c4e57614cc2565b60005b8851811015614cc057856001600160a01b0316898281518110614c7057fe5b6020026020010151600001516001600160a01b03161415614cb8576001898281518110614c9957fe5b6020908102919091010151901515608090910152600190960195614cc0565b600101614c51565b505b60001901614bc4565b5084875103604051908082528060200260200182016040528015614d0957816020015b614cf6615a76565b815260200190600190039081614cee5790505b5095506000915060005b8751811015614d7257878181518110614d2857fe5b602002602001015160800151614d6a57878181518110614d4457fe5b6020026020010151878481518110614d5857fe5b60209081029190910101526001909201915b600101614d13565b505050505050919050565b600154815160005b82811015614e9a576001614d97615a76565b60018381548110614da457fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b84811015614e6e57868181518110614e3457fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b03161415614e665760009250614e6e565b600101614e20565b508115614e905780516001600160a01b03166000908152600460205260408120555b5050600101614d85565b5080821115614f4b57805b82811015614f49576001805480614eb857fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b805480614f0b57fe5b60008281526020812060166000199093019283020181815560018101805460ff1916905590614f3d6002830182615ad6565b50509055600101614ea5565b505b6000818310614f5a5781614f5c565b825b905060005b818110156151565761500e858281518110614f7857fe5b602002602001015160018381548110614f8d57fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a082015261595f565b61512957806001016004600087848151811061502657fe5b6020026020010151600001516001600160a01b03166001600160a01b031681526020019081526020016000208190555084818151811061506257fe5b60200260200101516001828154811061507757fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a09091015160039091015561514e565b60006001828154811061513857fe5b9060005260206000209060040201600301819055505b600101614f61565b50828211156152fb576151676159e0565b835b838110156152f857600186828151811061517f57fe5b6020908102919091018101518254600181810185556000948552838520835160049093020180546001600160a01b039384166001600160a01b0319918216178255848601518284018054918616918316919091179055604080860151600284018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909a1692909616919091179290921696909617169190911790935560a090930151600390930192909255600b8054928301815590935284516016909102600080516020615e158339815191528101918255918501516000805160206165148339815191528301805491151560ff19909216919091179055918401518492916152b491600080516020615e5b833981519152909101906014615a04565b50505080600101600460008884815181106152cb57fe5b602090810291909101810151516001600160a01b0316825281019190915260400160002055600101615169565b50505b6000600981905560015493505b83811015615369576000600b828154811061531f57fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b80548390811061535057fe5b6000918252602090912060169091020155600101615308565b5050505050565b600081836153fc5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156153c15781810151838201526020016153a9565b50505050905090810190601f1680156153ee5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161540857fe5b0495945050505050565b600081848411156154645760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156153c15781810151838201526020016153a9565b505050900390565b805160009061547d575060006111fa565b6020820151805160001a9060c082101561549c576000925050506111fa565b5060019392505050565b8051600090811a60808110156154c05760009150506111fa565b60b88110806154db575060c081108015906154db575060f881105b156154ea5760019150506111fa565b60c08110156154fe5760b5190190506111fa565b60f5190190506111fa565b80516000908190811a60808110156155245760019150615635565b60b881101561553957607e1981019150615635565b60c08110156155b357600060b78203600186019550806020036101000a8651049150600181018201935050808310156155ad576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50615635565b60f88110156155c85760be1981019150615635565b600060f78203600186019550806020036101000a865104915060018101820193505080831015615633576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b805160009061564d575060006111fa565b6000809050600061566184602001516154a6565b602085015185519181019250015b8082101561568f5761568082615509565b6001909301929091019061566f565b50909392505050565b80516000906015146156a957600080fd5b6112aa826147c9565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166156f65750601861571a565b6fffffffffffffffffffffffffffffffff1984166157165750601061571a565b5060005b60208110156157505781818151811061572f57fe5b01602001516001600160f81b0319161561574857615750565b60010161571a565b60008160200390506060816040519080825280601f01601f191660200182016040528015615785576020820181803683370190505b5080830196909652508452509192915050565b6060815160011480156157ca5750607f60f81b826000815181106157b857fe5b01602001516001600160f81b03191611155b156157d65750806111fa565b6112aa6157e88351608060ff16615867565b835b6060806040519050835180825260208201818101602087015b8183101561581b578051835260209283019201615803565b50855184518101855292509050808201602086015b81831015615848578051835260209283019201615830565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106158b7576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b604080516001808252818301909252606091602082018180368337019050509050603784116159115782840160f81b816000815181106158f357fe5b60200101906001600160f81b031916908160001a90535090506112aa565b606061591c856156b2565b90508381510160370160f81b8260008151811061593557fe5b60200101906001600160f81b031916908160001a90535061595682826157ea565b95945050505050565b805182516000916001600160a01b039182169116148015615999575081602001516001600160a01b031683602001516001600160a01b0316145b80156159be575081604001516001600160a01b031683604001516001600160a01b0316145b80156111155750506060908101519101516001600160401b0390811691161490565b60408051606081018252600080825260208201529081016159ff615aff565b905290565b8260148101928215615a32579160200282015b82811115615a32578251825591602001919060010190615a17565b50612464929150615b1e565b60408051808201909152600081526060602082015290565b6040518060400160405280615a69615ae5565b8152602001600081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b8260148101928215615a32579182015b82811115615a32578254825591600101919060010190615abb565b5061140c906014810190615b1e565b604051806040016040528060008152602001600081525090565b6040518061028001604052806014906020820280368337509192915050565b61152891905b808211156124645760008155600101615b2456fe6c656e677468206f66206d61784e756d4f664d61696e7461696e696e67206d69736d617463686c656e677468206f66206d61784e756d4f66576f726b696e6743616e64696461746573206d69736d617463686c656e677468206f66206d61696e7461696e536c6173685363616c65206d69736d61746368746865206d61784e756d4f664d61696e7461696e696e67206d757374206265206c657373207468616e206e756d4f6643616e696e61746573746865206e756d4f66436162696e657473206d7573742062652067726561746572207468616e2030746865206e756d4f66436162696e657473206d757374206265206c657373207468616e204d41585f4e554d5f4f465f56414c494441544f5253746865206e756d626572206f662076616c696461746f72732065786365656420746865206c696d6974746865206275726e526174696f206d757374206265206e6f2067726561746572207468616e2031303030306475706c696361746520636f6e73656e7375732061646472657373206f662076616c696461746f725365747468652065787069726554696d655365636f6e64476170206973206f7574206f662072616e6765746865206d61784e756d4f66576f726b696e6743616e64696461746573206d757374206265206e6f742067726561746572207468616e206d61784e756d4f6643616e6469646174657363616e206e6f7420656e7465722054656d706f72617279204d61696e74656e616e63656c656e677468206f66206a61696c2076616c696461746f7273206d757374206265206f6e65536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f66206d61784e756d4f6643616e64696461746573206d69736d61746368666565206973206c6172676572207468616e2044555354595f494e434f4d494e470175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db96c656e677468206f662065787069726554696d655365636f6e64476170206d69736d617463680175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbb6661696c656420746f20706172736520696e69742076616c696461746f72536574f905ec80f905e8f846942a7cdd959bfe8d9487b2a43b33565295a698f7e294b6a7edd747c0554875d3fc531d19ba1497992c5e941ff80f3f7f110ffd8920a3ac38fdef318fe94a3f86048c27395000f846946488aa4d1955ee33403f8ccb1d4de5fb97c7ade294220f003d8bdfaadf52aa1e55ae4cc485e6794875941a87e90e440a39c99aa9cb5cea0ad6a3f0b2407b86048c27395000f846949ef9f4360c606c7ab4db26b016007d3ad0ab86a0946103af86a874b705854033438383c82575f25bc29418e2db06cbff3e3c5f856410a1838649e760175786048c27395000f84694ee01c3b1283aa067c58eab4709f85e99d46de5fe94ee4b9bfb1871c64e2bcabb1dc382dc8b7c4218a29415904ab26ab0e99d70b51c220ccdcccabee6e29786048c27395000f84694685b1ded8013785d6623cc18d214320b6bb6475994a20ef4e5e4e7e36258dbf51f4d905114cb1b34bc9413e39085dc88704f4394d35209a02b1a9520320c86048c27395000f8469478f3adfc719c99674c072166708589033e2d9afe9448a30d5eaa7b64492a160f139e2da2800ec3834e94055838358c29edf4dcc1ba1985ad58aedbb6be2b86048c27395000f84694c2be4ec20253b8642161bc3f444f53679c1f3d479466f50c616d737e60d7ca6311ff0d9c434197898a94d1d678a2506eeaa365056fe565df8bc8659f28b086048c27395000f846942f7be8361c80a4c1e7e9aaf001d0877f1cfde218945f93992ac37f3e61db2ef8a587a436a161fd210b94ecbc4fb1a97861344dad0867ca3cba2b860411f086048c27395000f84694ce2fd7544e0b2cc94692d4a704debef7bcb613289444abc67b4b2fba283c582387f54c9cba7c34bafa948acc2ab395ded08bb75ce85bf0f95ad2abc51ad586048c27395000f84694b8f7166496996a7da21cf1f1b04d9b3e26a3d077946770572763289aac606e4f327c2f6cc1aa3b3e3b94882d745ed97d4422ca8da1c22ec49d880c4c097286048c27395000f846942d4c407bbe49438ed859fe965b140dcf1aab71a9943ad0939e120f33518fbba04631afe7a3ed6327b194b2bbb170ca4e499a2b0f3cc85ebfa6e8c4dfcbea86048c27395000f846946bbad7cf34b5fa511d8e963dbba288b1960e75d694853b0f6c324d1f4e76c8266942337ac1b0af1a229442498946a51ca5924552ead6fc2af08b94fcba648601d1a94a2000f846944430b3230294d12c6ab2aac5c2cd68e80b16b581947b107f4976a252a6939b771202c28e64e03f52d694795811a7f214084116949fc4f53cedbf189eeab28601d1a94a2000f84694ea0a6e3c511bbd10f4519ece37dc24887e11b55d946811ca77acfb221a49393c193f3a22db829fcc8e9464feb7c04830dd9ace164fc5c52b3f5a29e5018a8601d1a94a2000f846947ae2f5b9e386cd1b50a4550696d957cb4900f03a94e83bcc5077e6b873995c24bac871b5ad856047e19464e48d4057a90b233e026c1041e6012ada897fe88601d1a94a2000f8469482012708dafc9e1b880fd083b32182b869be8e09948e5adc73a2d233a1b496ed3115464dd6c7b887509428b383d324bc9a37f4e276190796ba5a8947f5ed8601d1a94a2000f8469422b81f8e175ffde54d797fe11eb03f9e3bf75f1d94a1c3ef7ca38d8ba80cce3bfc53ebd2903ed21658942767f7447f7b9b70313d4147b795414aecea54718601d1a94a2000f8469468bf0b8b6fb4e317a0f9d6f03eaf8ce6675bc60d94675cfe570b7902623f47e7f59c9664b5f5065dcf94d84f0d2e50bcf00f2fc476e1c57f5ca2d57f625b8601d1a94a2000f846948c4d90829ce8f72d0163c1d5cf348a862d5506309485c42a7b34309bee2ed6a235f86d16f059deec5894cc2cedc53f0fa6d376336efb67e43d167169f3b78601d1a94a2000f8469435e7a025f4da968de7e4d7e4004197917f4070f194b1182abaeeb3b4d8eba7e6a4162eac7ace23d57394c4fd0d870da52e73de2dd8ded19fe3d26f43a1138601d1a94a2000f84694d6caa02bbebaebb5d7e581e4b66559e635f805ff94c07335cf083c1c46a487f0325769d88e163b653694efaff03b42e41f953a925fc43720e45fb61a19938601d1a94a2000746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d6573736167652073656e646572206d7573742062652074686520626c6f636b2070726f6475636572746865206d61696e7461696e536c6173685363616c65206d7573742062652067726561746572207468616e20300175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dba746865206d6573736167652073656e646572206d75737420626520736c61736820636f6e7472616374a264697066735822122091dd90b1dd27923c787e9f55bd1bebe31e8416465e6ce432022dfeb252e6701e64736f6c63430006040033", - }, - { - ContractAddr: SlashContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/db8bb560ac5a1265c685b719c7e976dced162310", - Code: "608060405234801561001057600080fd5b506004361061023d5760003560e01c80638256ace61161013b578063c80d4b8f116100b8578063e1c7392a1161007c578063e1c7392a1461071d578063f9a2bbc714610725578063fc3e59081461072d578063fc4333cd14610735578063fd6a68791461073d5761023d565b8063c80d4b8f14610667578063c81b16621461066f578063c8509d8114610677578063c96be4cb146106ef578063dc927faf146107155761023d565b8063a1a11bf5116100ff578063a1a11bf514610575578063a78abc161461057d578063ab51bb9614610599578063ac0af629146105a1578063ac431751146105a95761023d565b80638256ace6146104dd578063831d65d1146104e557806396713da91461055d5780639bc8e4f2146105655780639dc092621461056d5761023d565b80634bf6c882116101c95780636e47b4821161018d5780636e47b482146104b557806370fd5bad146104bd57806375d47a0a146104c55780637912a65d146104cd5780637942fd05146104d55761023d565b80634bf6c8821461046d57806351e8067214610475578063567a372d1461047d5780635bfb49901461048557806362b72cf5146104ad5761023d565b806337c8dab91161021057806337c8dab9146103cf578063389f4f711461040e5780633dffc3871461042857806343756e5c14610446578063493279b11461044e5761023d565b80630bee7a67146102425780631182b8751461026357806323bac5a21461035057806335aa2e4414610396575b600080fd5b61024a610745565b6040805163ffffffff9092168252519081900360200190f35b6102db6004803603604081101561027957600080fd5b60ff8235169190810190604081016020820135600160201b81111561029d57600080fd5b8201836020820111156102af57600080fd5b803590602001918460018302840111600160201b831117156102d057600080fd5b50909250905061074a565b6040805160208082528351818301528351919283929083019185019080838360005b838110156103155781810151838201526020016102fd565b50505050905090810190601f1680156103425780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103766004803603602081101561036657600080fd5b50356001600160a01b031661081e565b604080519384526020840192909252151582820152519081900360600190f35b6103b3600480360360208110156103ac57600080fd5b5035610841565b604080516001600160a01b039092168252519081900360200190f35b6103f5600480360360208110156103e557600080fd5b50356001600160a01b0316610868565b6040805192835260208301919091528051918290030190f35b6104166108bf565b60408051918252519081900360200190f35b6104306108c5565b6040805160ff9092168252519081900360200190f35b6103b36108ca565b6104566108d0565b6040805161ffff9092168252519081900360200190f35b6104306108d5565b6103b36108da565b6104166108e0565b6104ab6004803603602081101561049b57600080fd5b50356001600160a01b03166108e6565b005b610416610a47565b6103b3610a4d565b610430610a53565b6103b3610a58565b610416610a5e565b610430610a63565b6103f5610a68565b6104ab600480360360408110156104fb57600080fd5b60ff8235169190810190604081016020820135600160201b81111561051f57600080fd5b82018360208201111561053157600080fd5b803590602001918460018302840111600160201b8311171561055257600080fd5b509092509050610a72565b610430610bcc565b610416610bd1565b6103b3610bdc565b6103b3610be2565b610585610be8565b604080519115158252519081900360200190f35b61024a610bf1565b610416610bf6565b6104ab600480360360408110156105bf57600080fd5b810190602081018135600160201b8111156105d957600080fd5b8201836020820111156105eb57600080fd5b803590602001918460018302840111600160201b8311171561060c57600080fd5b919390929091602081019035600160201b81111561062957600080fd5b82018360208201111561063b57600080fd5b803590602001918460018302840111600160201b8311171561065c57600080fd5b509092509050610bfb565b610416610fe9565b6103b3610fee565b6104ab6004803603604081101561068d57600080fd5b60ff8235169190810190604081016020820135600160201b8111156106b157600080fd5b8201836020820111156106c357600080fd5b803590602001918460018302840111600160201b831117156106e457600080fd5b509092509050610ff4565b6104ab6004803603602081101561070557600080fd5b50356001600160a01b03166110a7565b6103b361154a565b6104ab611550565b6103b36115c1565b6104306115c7565b6104ab6115cc565b6103b3611a57565b606481565b6060336120001461078c5760405162461bcd60e51b815260040180806020018281038252602f8152602001806124ae602f913960400191505060405180910390fd5b60005460ff166107d1576040805162461bcd60e51b8152602060048201526019602482015260008051602061250a833981519152604482015290519081900360640190fd5b6040805162461bcd60e51b815260206004820152601e60248201527f7265636569766520756e65787065637465642073796e207061636b6167650000604482015290519081900360640190fd5b600260208190526000918252604090912080546001820154919092015460ff1683565b6001818154811061084e57fe5b6000918252602090912001546001600160a01b0316905081565b600080610873612372565b5050506001600160a01b0316600090815260026020818152604092839020835160608101855281548082526001830154938201849052919093015460ff16151592909301919091529091565b60055481565b600181565b61100181565b603881565b600881565b61200081565b60045481565b33611000146109265760405162461bcd60e51b81526004018080602001828103825260308152602001806124096030913960400191505060405180910390fd5b60005460ff1661096b576040805162461bcd60e51b8152602060048201526019602482015260008051602061250a833981519152604482015290519081900360640190fd5b61200063f7a251d7600b61097e84611a5d565b60006040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156109de5781810151838201526020016109c6565b50505050905090810190601f168015610a0b5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015610a2c57600080fd5b505af1158015610a40573d6000803e3d6000fd5b5050505050565b60035481565b61100581565b600281565b61100881565b603281565b600b81565b6004546005549091565b3361200014610ab25760405162461bcd60e51b815260040180806020018281038252602f8152602001806124ae602f913960400191505060405180910390fd5b60005460ff16610af7576040805162461bcd60e51b8152602060048201526019602482015260008051602061250a833981519152604482015290519081900360640190fd5b610aff612395565b6000610b4084848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611b2f92505050565b915091508015610b8a5781516040805163ffffffff9092168252517f7f0956d47419b9525356e7111652b653b530ec6f5096dccc04589bc38e6299679181900360200190a1610a40565b81516040805163ffffffff9092168252517f7d45f62d17443dd4547bca8a8112c60e2385669318dc300ec61a5d2492f262e79181900360200190a15050505050565b600981565b662386f26fc1000081565b61100781565b61100681565b60005460ff1681565b600081565b600481565b60005460ff16610c40576040805162461bcd60e51b8152602060048201526019602482015260008051602061250a833981519152604482015290519081900360640190fd5b3361100714610c805760405162461bcd60e51b815260040180806020018281038252602e815260200180612439602e913960400191505060405180910390fd5b610ceb84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260148152731b5a5cd9195b59585b9bdc951a1c995cda1bdb1960621b60208201529150611baf9050565b15610dc45760208114610d2f5760405162461bcd60e51b81526004018080602001828103825260278152602001806123e26027913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610d6d91858580838501838280828437600092019190915250611c9792505050565b905060018110158015610d81575060055481105b610dbc5760405162461bcd60e51b81526004018080602001828103825260258152602001806124896025913960400191505060405180910390fd5b600455610f57565b610e2a84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e19995b1bdb9e551a1c995cda1bdb19608a1b60208201529150611baf9050565b15610f1a5760208114610e6e5760405162461bcd60e51b81526004018080602001828103825260228152602001806124676022913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610eac91858580838501838280828437600092019190915250611c9792505050565b90506103e88111158015610ec1575060045481115b610f12576040805162461bcd60e51b815260206004820181905260248201527f7468652066656c6f6e795468726573686f6c64206f7574206f662072616e6765604482015290519081900360640190fd5b600555610f57565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b609681565b61100281565b33612000146110345760405162461bcd60e51b815260040180806020018281038252602f8152602001806124ae602f913960400191505060405180910390fd5b60005460ff16611079576040805162461bcd60e51b8152602060048201526019602482015260008051602061250a833981519152604482015290519081900360640190fd5b6040517f07db600eebe2ac176be8dcebad61858c245a4961bb32ca2aa3d159b09aa0810e90600090a1505050565b3341146110e55760405162461bcd60e51b815260040180806020018281038252602d8152602001806124dd602d913960400191505060405180910390fd5b60005460ff1661112a576040805162461bcd60e51b8152602060048201526019602482015260008051602061250a833981519152604482015290519081900360640190fd5b6003544311611180576040805162461bcd60e51b815260206004820181905260248201527f63616e206e6f7420736c61736820747769636520696e206f6e6520626c6f636b604482015290519081900360640190fd5b3a156111ca576040805162461bcd60e51b81526020600482015260146024820152736761737072696365206973206e6f74207a65726f60601b604482015290519081900360640190fd5b6040805163155853f360e21b81526001600160a01b03831660048201529051611000916355614fcc916024808301926020929190829003018186803b15801561121257600080fd5b505afa158015611226573d6000803e3d6000fd5b505050506040513d602081101561123c57600080fd5b505161124757611543565b61124f612372565b506001600160a01b0381166000908152600260208181526040928390208351606081018552815481526001820154928101929092529091015460ff1615801592820192909252906112aa576020810180516001019052611303565b60016040820181905260208201819052805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0384161790555b43815260055460208201518161131557fe5b0661146757600060208201819052604080516335409f7f60e01b81526001600160a01b03851660048201529051611000926335409f7f926024808201939182900301818387803b15801561136857600080fd5b505af115801561137c573d6000803e3d6000fd5b505050506120006001600160a01b031663f7a251d7600b61139c85611a5d565b60006040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156113fc5781810151838201526020016113e4565b50505050905090810190601f1680156114295780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561144a57600080fd5b505af115801561145e573d6000803e3d6000fd5b505050506114dd565b60045481602001518161147657fe5b066114dd57604080516375abf10160e11b81526001600160a01b038416600482015290516110009163eb57e20291602480830192600092919082900301818387803b1580156114c457600080fd5b505af11580156114d8573d6000803e3d6000fd5b505050505b6001600160a01b0382166000818152600260208181526040808420865181559186015160018301558581015191909201805460ff1916911515919091179055517fddb6012116e51abf5436d956a4f0ebd927e92c576ff96d7918290c8782291e3e9190a2505b5043600355565b61100381565b60005460ff16156115a8576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b603260045560966005556000805460ff19166001179055565b61100081565b600381565b336110001461160c5760405162461bcd60e51b81526004018080602001828103825260308152602001806124096030913960400191505060405180910390fd5b60005460ff16611651576040805162461bcd60e51b8152602060048201526019602482015260008051602061250a833981519152604482015290519081900360640190fd5b60015461165d57611a55565b600154600090600019015b808211611a29576000805b8284101561178c57611683612372565b600260006001878154811061169457fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff1615159082015260055490915060049004816020015111156117765760046005548161170157fe5b0481602001510381602001818152505080600260006001888154811061172357fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208351815591830151600183015591909101516002909101805460ff1916911515919091179055611780565b600192505061178c565b50600190930192611673565b8284116119235761179b612372565b60026000600186815481106117ac57fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff1615159082015260055490915060049004816020015111156118945760046005548161181957fe5b0481602001510381602001818152505080600260006001878154811061183b57fe5b6000918252602080832091909101546001600160a01b03168352828101939093526040918201902083518155918301516001808401919091559201516002909101805460ff191691151591909117905591506119239050565b60026000600186815481106118a557fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff191690558054806118e957fe5b600082815260209020810160001990810180546001600160a01b0319169055019055836119165750611923565b506000199092019161178c565b81801561192d5750805b15611a0c57600260006001868154811061194357fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff1916905580548490811061198a57fe5b600091825260209091200154600180546001600160a01b0390921691869081106119b057fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060018054806119e957fe5b600082815260209020810160001990810180546001600160a01b03191690550190555b82611a18575050611a29565b505060019091019060001901611668565b6040517fcfdb3b6ccaeccbdc68be3c59c840e3b3c90f0a7c491f5fff1cf56cfda200dd9c90600090a150505b565b61100481565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081611a78579050509050611aa1836001600160a01b0316611c9c565b81600081518110611aae57fe5b6020026020010181905250611ac243611cbf565b81600181518110611acf57fe5b6020908102919091010152611ae46038611cbf565b81600281518110611af157fe5b6020026020010181905250611b0542611cbf565b81600381518110611b1257fe5b6020026020010181905250611b2681611cd2565b9150505b919050565b611b37612395565b6000611b41612395565b611b496123a7565b611b5a611b5586611d5c565b611d81565b90506000805b611b6983611dcb565b15611ba25780611b9557611b84611b7f84611dec565b611e3a565b63ffffffff16845260019150611b9a565b611ba2565b600101611b60565b5091935090915050915091565b6000816040516020018082805190602001908083835b60208310611be45780518252601f199092019160209182019101611bc5565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310611c525780518252601f199092019160209182019101611c33565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052805190602001201490505b92915050565b015190565b60408051600560a21b8318601482015260348101909152606090611b2681611ef1565b6060611c91611ccd83611f47565b611ef1565b6060815160001415611cf35750604080516000815260208101909152611b2a565b606082600081518110611d0257fe5b602002602001015190506000600190505b8351811015611d4357611d3982858381518110611d2c57fe5b602002602001015161202d565b9150600101611d13565b50611b26611d56825160c060ff166120aa565b8261202d565b611d646123c7565b506040805180820190915281518152602082810190820152919050565b611d896123a7565b611d92826121a2565b611d9b57600080fd5b6000611daa83602001516121dc565b60208085015160408051808201909152868152920190820152915050919050565b6000611dd56123c7565b505080518051602091820151919092015191011190565b611df46123c7565b611dfd82611dcb565b611e0657600080fd5b60208201516000611e168261223f565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590611e4f57508151602110155b611e5857600080fd5b6000611e6783602001516121dc565b90508083600001511015611ec2576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015611ee857826020036101000a820491505b50949350505050565b606081516001148015611f235750607f60f81b82600081518110611f1157fe5b01602001516001600160f81b03191611155b15611f2f575080611b2a565b611c91611f418351608060ff166120aa565b8361202d565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416611f8b57506018611faf565b6fffffffffffffffffffffffffffffffff198416611fab57506010611faf565b5060005b6020811015611fe557818181518110611fc457fe5b01602001516001600160f81b03191615611fdd57611fe5565b600101611faf565b60008160200390506060816040519080825280601f01601f19166020018201604052801561201a576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b8183101561205e578051835260209283019201612046565b50855184518101855292509050808201602086015b8183101561208b578051835260209283019201612073565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106120fa576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b604080516001808252818301909252606091602082018180368337019050509050603784116121545782840160f81b8160008151811061213657fe5b60200101906001600160f81b031916908160001a9053509050611c91565b606061215f85611f47565b90508381510160370160f81b8260008151811061217857fe5b60200101906001600160f81b031916908160001a905350612199828261202d565b95945050505050565b80516000906121b357506000611b2a565b6020820151805160001a9060c08210156121d257600092505050611b2a565b5060019392505050565b8051600090811a60808110156121f6576000915050611b2a565b60b8811080612211575060c08110801590612211575060f881105b15612220576001915050611b2a565b60c08110156122345760b519019050611b2a565b60f519019050611b2a565b80516000908190811a608081101561225a576001915061236b565b60b881101561226f57607e198101915061236b565b60c08110156122e957600060b78203600186019550806020036101000a8651049150600181018201935050808310156122e3576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b5061236b565b60f88110156122fe5760be198101915061236b565b600060f78203600186019550806020036101000a865104915060018101820193505080831015612369576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b604051806060016040528060008152602001600081526020016000151581525090565b60408051602081019091526000815290565b60405180604001604052806123ba6123c7565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe6c656e677468206f66206d697364656d65616e6f725468726573686f6c64206d69736d61746368746865206d6573736167652073656e646572206d7573742062652076616c696461746f7253657420636f6e7472616374746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662066656c6f6e795468726573686f6c64206d69736d61746368746865206d697364656d65616e6f725468726573686f6c64206f7574206f662072616e6765746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d6573736167652073656e646572206d7573742062652074686520626c6f636b2070726f647563657274686520636f6e7472616374206e6f7420696e69742079657400000000000000a264697066735822122018b8714d9e81a204e6cb56a28d2122ac3178937ed053b34fef2460106855598d64736f6c63430006040033", - }, - }, - } - - EulerUpgrade[networkname.ChapelChainName] = &Upgrade{ - UpgradeName: "euler", - Configs: []*UpgradeConfig{ - { - ContractAddr: ValidatorContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/db8bb560ac5a1265c685b719c7e976dced162310", - Code: "6080604052600436106104055760003560e01c80638d19a41011610213578063c81b166211610123578063eb57e202116100ab578063f9a2bbc71161007a578063f9a2bbc714610d55578063fc3e590814610d6a578063fccc281314610d7f578063fd4ad81f14610d94578063fd6a687914610dd757610405565b8063eb57e20214610cd2578063eda5868c14610d05578063f340fa0114610d1a578063f92eb86b14610d4057610405565b8063daacdb66116100f2578063daacdb6614610c69578063dc927faf14610c7e578063e086c7b114610c93578063e1c7392a14610ca8578063e40716a114610cbd57610405565b8063c81b166214610c2a578063c8509d8114610939578063d68fb56a14610c3f578063d86222d514610c5457610405565b8063a78abc16116101a6578063ad3c9da611610175578063ad3c9da614610bb8578063b7ab4db514610beb578063b8cf4ef114610c00578063bf9f49951461065f578063c6d3394514610c1557610405565b8063a78abc1614610aae578063aaf5eb6814610ac3578063ab51bb9614610ad8578063ac43175114610aed57610405565b80639fe0f816116101e25780639fe0f81614610a5a578063a0dc275814610a6f578063a1a11bf514610a84578063a5422d5c14610a9957610405565b80638d19a410146109e85780639369d7de14610a1b57806396713da914610a305780639dc0926214610a4557610405565b80635192c82c1161031957806375d47a0a116102a157806381650b621161027057806381650b6214610924578063831d65d114610939578063853230aa146108e557806386249882146109be5780638b5ad0c9146109d357610405565b806375d47a0a146108d057806378dfed4a146108e55780637942fd05146108fa5780637a84ca2a1461090f57610405565b80635667515a116102e85780635667515a146108065780635d77156c1461081b5780636969a25c146108305780636e47b482146108a657806370fd5bad146108bb57610405565b80635192c82c1461077657806351e806721461078b57806355614fcc146107a0578063565c56b3146107d357610405565b80633365af3a1161039c57806343756e5c1161036b57806343756e5c1461068a57806345cf9daf146106bb578063493279b1146106d05780634bf6c882146106fc5780634df6e0c31461071157610405565b80633365af3a146105ed57806335409f7f146106175780633de0f0d81461064a5780633dffc3871461065f57610405565b8063152ad3b8116103d8578063152ad3b8146105705780631ff1806914610599578063219f22d5146105ae578063321d398a146105c357610405565b806304c4fec61461040a57806307a56847146104215780630bee7a67146104485780631182b87514610476575b600080fd5b34801561041657600080fd5b5061041f610dec565b005b34801561042d57600080fd5b50610436610e7f565b60408051918252519081900360200190f35b34801561045457600080fd5b5061045d610e85565b6040805163ffffffff9092168252519081900360200190f35b34801561048257600080fd5b506104fb6004803603604081101561049957600080fd5b60ff8235169190810190604081016020820135600160201b8111156104bd57600080fd5b8201836020820111156104cf57600080fd5b803590602001918460018302840111600160201b831117156104f057600080fd5b509092509050610e8a565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561053557818101518382015260200161051d565b50505050905090810190601f1680156105625780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561057c57600080fd5b5061058561111c565b604080519115158252519081900360200190f35b3480156105a557600080fd5b50610436611125565b3480156105ba57600080fd5b5061045d61112b565b3480156105cf57600080fd5b50610585600480360360208110156105e657600080fd5b5035611130565b3480156105f957600080fd5b506105856004803603602081101561061057600080fd5b50356111ff565b34801561062357600080fd5b5061041f6004803603602081101561063a57600080fd5b50356001600160a01b03166112b0565b34801561065657600080fd5b5061043661140f565b34801561066b57600080fd5b50610674611415565b6040805160ff9092168252519081900360200190f35b34801561069657600080fd5b5061069f61141a565b604080516001600160a01b039092168252519081900360200190f35b3480156106c757600080fd5b50610436611420565b3480156106dc57600080fd5b506106e5611426565b6040805161ffff9092168252519081900360200190f35b34801561070857600080fd5b5061067461142b565b34801561071d57600080fd5b50610726611430565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561076257818101518382015260200161074a565b505050509050019250505060405180910390f35b34801561078257600080fd5b5061043661152b565b34801561079757600080fd5b5061069f611531565b3480156107ac57600080fd5b50610585600480360360208110156107c357600080fd5b50356001600160a01b0316611537565b3480156107df57600080fd5b50610436600480360360208110156107f657600080fd5b50356001600160a01b031661156c565b34801561081257600080fd5b506106746115bd565b34801561082757600080fd5b5061045d6115c2565b34801561083c57600080fd5b5061085a6004803603602081101561085357600080fd5b50356115c7565b604080516001600160a01b039788168152958716602087015293909516848401526001600160401b0390911660608401521515608083015260a082019290925290519081900360c00190f35b3480156108b257600080fd5b5061069f61162b565b3480156108c757600080fd5b50610674611631565b3480156108dc57600080fd5b5061069f611636565b3480156108f157600080fd5b5061043661163c565b34801561090657600080fd5b50610674611642565b34801561091b57600080fd5b50610436611647565b34801561093057600080fd5b5061045d61164d565b34801561094557600080fd5b5061041f6004803603604081101561095c57600080fd5b60ff8235169190810190604081016020820135600160201b81111561098057600080fd5b82018360208201111561099257600080fd5b803590602001918460018302840111600160201b831117156109b357600080fd5b509092509050611652565b3480156109ca57600080fd5b50610436611705565b3480156109df57600080fd5b5061043661170b565b3480156109f457600080fd5b5061043660048036036020811015610a0b57600080fd5b50356001600160a01b0316611711565b348015610a2757600080fd5b5061041f611786565b348015610a3c57600080fd5b506106746118a0565b348015610a5157600080fd5b5061069f6118a5565b348015610a6657600080fd5b506104366118ab565b348015610a7b57600080fd5b506104366118b0565b348015610a9057600080fd5b5061069f6118b5565b348015610aa557600080fd5b506104fb6118bb565b348015610aba57600080fd5b506105856118da565b348015610acf57600080fd5b506104366118e3565b348015610ae457600080fd5b5061045d6115bd565b348015610af957600080fd5b5061041f60048036036040811015610b1057600080fd5b810190602081018135600160201b811115610b2a57600080fd5b820183602082011115610b3c57600080fd5b803590602001918460018302840111600160201b83111715610b5d57600080fd5b919390929091602081019035600160201b811115610b7a57600080fd5b820183602082011115610b8c57600080fd5b803590602001918460018302840111600160201b83111715610bad57600080fd5b5090925090506118ec565b348015610bc457600080fd5b5061043660048036036020811015610bdb57600080fd5b50356001600160a01b0316612329565b348015610bf757600080fd5b5061072661233b565b348015610c0c57600080fd5b5061043661241e565b348015610c2157600080fd5b50610436611631565b348015610c3657600080fd5b5061069f612423565b348015610c4b57600080fd5b50610436612429565b348015610c6057600080fd5b50610436612468565b348015610c7557600080fd5b50610436612474565b348015610c8a57600080fd5b5061069f61247a565b348015610c9f57600080fd5b50610436612480565b348015610cb457600080fd5b5061041f612485565b348015610cc957600080fd5b50610436612688565b348015610cde57600080fd5b5061041f60048036036020811015610cf557600080fd5b50356001600160a01b031661268e565b348015610d1157600080fd5b5061045d61279c565b61041f60048036036020811015610d3057600080fd5b50356001600160a01b03166127a1565b348015610d4c57600080fd5b50610436612aa6565b348015610d6157600080fd5b5061069f612aac565b348015610d7657600080fd5b506106746118ab565b348015610d8b57600080fd5b5061069f612ab2565b348015610da057600080fd5b50610dbe60048036036020811015610db757600080fd5b5035612ab8565b6040805192835290151560208301528051918290030190f35b348015610de357600080fd5b5061069f612ae6565b6000610df733611711565b9050600b8181548110610e0657fe5b600091825260209091206001601690920201015460ff16610e63576040805162461bcd60e51b81526020600482015260126024820152716e6f7420696e206d61696e74656e616e636560701b604482015290519081900360640190fd5b6000610e6d612429565b9050610e7a338383612aec565b505050565b60095481565b606481565b60005460609060ff16610ee0576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b3361200014610f205760405162461bcd60e51b815260040180806020018281038252602f815260200180616047602f913960400191505060405180910390fd5b600b54610fc557610f2f6159e0565b60015460005b81811015610fc157600b80546001810182556000919091528351600080516020615fc0833981519152601690920291820190815560208501516000805160206160d08339815191528301805460ff191691151591909117905560408501518592610fb391600080516020616006833981519152909101906014615a04565b505050806001019050610f35565b5050505b610fcd615a3e565b600061100e85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612ce092505050565b915091508061102a576110216064612e39565b92505050611115565b815160009060ff1661104a576110438360200151612e9a565b90506110e1565b825160ff16600114156110dd578260200151516001146110b7577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2604051808060200182810382526025815260200180615f066025913960400191505060405180910390a15060676110d8565b61104383602001516000815181106110cb57fe5b6020026020010151613caa565b6110e1565b5060655b63ffffffff811661110657505060408051600081526020810190915291506111159050565b61110f81612e39565b93505050505b9392505050565b60075460ff1681565b60035481565b606881565b6001546000908210611144575060006111fa565b60006001600160a01b03166001838154811061115c57fe5b60009182526020909120600490910201546001600160a01b0316148061118c5750600854158061118c5750600a54155b8061119b575060085460095410155b806111ac57506111aa826111ff565b155b806111d557506000600b83815481106111c157fe5b906000526020600020906016020160000154115b806111e9575060016111e561233b565b5111155b156111f6575060006111fa565b5060015b919050565b6001546000908210611213575060006111fa565b600b548210611250576001828154811061122957fe5b9060005260206000209060040201600201601c9054906101000a900460ff161590506111fa565b6001828154811061125d57fe5b9060005260206000209060040201600201601c9054906101000a900460ff161580156112aa5750600b828154811061129157fe5b600091825260209091206001601690920201015460ff16155b92915050565b33611001146112f05760405162461bcd60e51b81526004018080602001828103825260298152602001806160f06029913960400191505060405180910390fd5b600b54611395576112ff6159e0565b60015460005b8181101561139157600b80546001810182556000919091528351600080516020615fc0833981519152601690920291820190815560208501516000805160206160d08339815191528301805460ff19169115159190911790556040850151859261138391600080516020616006833981519152909101906014615a04565b505050806001019050611305565b5050505b6001600160a01b038116600090815260046020526040902054806113b9575061140c565b6001810390506000600b82815481106113ce57fe5b600091825260209091206001601690920201015460ff1690506113f18383613e21565b80156113fa5750805b15610e7a576009805460001901905550505b50565b61271081565b600181565b61100181565b60085481565b606181565b600881565b600e54600c546060919080611443575060155b606061144d61233b565b905081815111611461579250611528915050565b82828251031015611473578181510392505b82156114a75760c8430461148e82828686036000888861419d565b6114a582828686038787038889898951030161419d565b505b6060826040519080825280602002602001820160405280156114d3578160200160208202803683370190505b50905060005b83811015611521578281815181106114ed57fe5b602002602001015182828151811061150157fe5b6001600160a01b03909216602092830291909101909101526001016114d9565b5093505050505b90565b60065481565b61200081565b6001600160a01b0381166000908152600460205260408120548061155f5760009150506111fa565b60001901611115816111ff565b6001600160a01b038116600090815260046020526040812054806115945760009150506111fa565b6001808203815481106115a357fe5b906000526020600020906004020160030154915050919050565b600081565b606781565b600181815481106115d457fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b61100881565b6103e881565b600b81565b600c5481565b606681565b33612000146116925760405162461bcd60e51b815260040180806020018281038252602f815260200180616047602f913960400191505060405180910390fd5b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a1505050565b60025481565b600a5481565b6001600160a01b0381166000908152600460205260408120548061177c576040805162461bcd60e51b815260206004820152601760248201527f6f6e6c792063757272656e742076616c696461746f7273000000000000000000604482015290519081900360640190fd5b6000190192915050565b600b5461182b576117956159e0565b60015460005b8181101561182757600b80546001810182556000919091528351600080516020615fc0833981519152601690920291820190815560208501516000805160206160d08339815191528301805460ff19169115159190911790556040850151859261181991600080516020616006833981519152909101906014615a04565b50505080600101905061179b565b5050505b6008546118385760036008555b600a54611845576002600a555b600061185033611711565b905061185b81611130565b6118965760405162461bcd60e51b8152600401808060200182810382526023815260200180615ee36023913960400191505060405180910390fd5b61140c338261428c565b600981565b61100781565b600381565b60c881565b61100681565b604051806101e001604052806101ab8152602001615b396101ab913981565b60005460ff1681565b6402540be40081565b60005460ff1661193f576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b336110071461197f5760405162461bcd60e51b815260040180806020018281038252602e815260200180615f4c602e913960400191505060405180910390fd5b6119e984848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b602082015291506143249050565b15611ac45760208114611a2d5760405162461bcd60e51b8152600401808060200182810382526026815260200180615fe06026913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091611a6b9185858083850183828082843760009201919091525061440b92505050565b905060648110158015611a815750620186a08111155b611abc5760405162461bcd60e51b8152600401808060200182810382526027815260200180615e736027913960400191505060405180910390fd5b600255612297565b611b2484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260098152686275726e526174696f60b81b602082015291506143249050565b15611c145760208114611b7e576040805162461bcd60e51b815260206004820152601c60248201527f6c656e677468206f66206275726e526174696f206d69736d6174636800000000604482015290519081900360640190fd5b604080516020601f8401819004810282018101909252828152600091611bbc9185858083850183828082843760009201919091525061440b92505050565b9050612710811115611bff5760405162461bcd60e51b815260040180806020018281038252602b815260200180615e1d602b913960400191505060405180910390fd5b6006556007805460ff19166001179055612297565b611c7e84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260138152726d61784e756d4f664d61696e7461696e696e6760681b602082015291506143249050565b15611d565760208114611cc25760405162461bcd60e51b8152600401808060200182810382526026815260200180615ce46026913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091611d009185858083850183828082843760009201919091525061440b92505050565b600c5490915080611d0f575060155b808210611d4d5760405162461bcd60e51b8152600401808060200182810382526038815260200180615d5b6038913960400191505060405180910390fd5b50600855612297565b611dbf84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61696e7461696e536c6173685363616c6560701b602082015291506143249050565b15611e8a5760208114611e035760405162461bcd60e51b8152600401808060200182810382526025815260200180615d366025913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091611e419185858083850183828082843760009201919091525061440b92505050565b905060008111611e825760405162461bcd60e51b815260040180806020018281038252602d8152602001806160a3602d913960400191505060405180910390fd5b600a55612297565b611efe84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601981527f6d61784e756d4f66576f726b696e6743616e6469646174657300000000000000602082015291506143249050565b15611fcb5760208114611f425760405162461bcd60e51b815260040180806020018281038252602c815260200180615d0a602c913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091611f809185858083850183828082843760009201919091525061440b92505050565b9050600d54811115611fc35760405162461bcd60e51b8152600401808060200182810382526049815260200180615e9a6049913960600191505060405180910390fd5b600e55612297565b61203484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61784e756d4f6643616e6469646174657360701b602082015291506143249050565b156120d557602081146120785760405162461bcd60e51b8152600401808060200182810382526025815260200180615f7a6025913960400191505060405180910390fd5b604080516020601f84018190048102820181019092528281526000916120b69185858083850183828082843760009201919091525061440b92505050565b600d819055600e549091508110156120cf57600d54600e555b50612297565b61213984848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c6e756d4f66436162696e65747360981b602082015291506143249050565b1561225a5760208114612193576040805162461bcd60e51b815260206004820181905260248201527f6c656e677468206f66206e756d4f66436162696e657473206d69736d61746368604482015290519081900360640190fd5b604080516020601f84018190048102820181019092528281526000916121d19185858083850183828082843760009201919091525061440b92505050565b9050600081116122125760405162461bcd60e51b8152600401808060200182810382526028815260200180615d936028913960400191505060405180910390fd5b60298111156122525760405162461bcd60e51b8152600401808060200182810382526039815260200180615dbb6039913960400191505060405180910390fd5b600c55612297565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b60046020526000908152604090205481565b6001546060906000805b8281101561236a57612356816111ff565b15612362576001909101905b600101612345565b50606081604051908082528060200260200182016040528015612397578160200160208202803683370190505b5090506000915060005b83811015612416576123b2816111ff565b1561240e57600181815481106123c457fe5b600091825260209091206004909102015482516001600160a01b03909116908390859081106123ef57fe5b6001600160a01b03909216602092830291909101909101526001909201915b6001016123a1565b509250505090565b601581565b61100281565b600061243361233b565b519050600080600c541161244857601561244c565b600c545b90508082111561245a578091505b8161246457600191505b5090565b67016345785d8a000081565b60055481565b61100381565b602981565b60005460ff16156124dd576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b6124e5615a3e565b600061250b604051806101e001604052806101ab8152602001615b396101ab9139612ce0565b915091508061254b5760405162461bcd60e51b81526004018080602001828103825260218152602001806160266021913960400191505060405180910390fd5b60005b8260200151518110156126705760018360200151828151811061256d57fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a09093015160039093019290925591860151805191850193918590811061264357fe5b602090810291909101810151516001600160a01b031682528101919091526040016000205560010161254e565b50506103e8600255506000805460ff19166001179055565b600d5481565b33611001146126ce5760405162461bcd60e51b81526004018080602001828103825260298152602001806160f06029913960400191505060405180910390fd5b600b54612773576126dd6159e0565b60015460005b8181101561276f57600b80546001810182556000919091528351600080516020615fc0833981519152601690920291820190815560208501516000805160206160d08339815191528301805460ff19169115159190911790556040850151859261276191600080516020616006833981519152909101906014615a04565b5050508060010190506126e3565b5050505b600061277e82614410565b905061278981611130565b1561279857612798828261428c565b5050565b606581565b3341146127df5760405162461bcd60e51b815260040180806020018281038252602d815260200180616076602d913960400191505060405180910390fd5b60005460ff16612832576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b6000341161287f576040805162461bcd60e51b81526020600482015260156024820152746465706f7369742076616c7565206973207a65726f60581b604482015290519081900360640190fd5b6001600160a01b0381166000908152600460205260409020546007543491906103e89060ff16156128af57506006545b6000831180156128bf5750600081115b156129685760006128e86127106128dc868563ffffffff6145b416565b9063ffffffff61460d16565b905080156129665760405161dead9082156108fc029083906000818181858888f1935050505015801561291f573d6000803e3d6000fd5b506040805182815290517f627059660ea01c4733a328effb2294d2f86905bf806da763a89cee254de8bee59181900360200190a1612963848263ffffffff61464f16565b93505b505b8115612a6057600060018084038154811061297f57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff16156129ea576040805185815290516001600160a01b038716917ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4919081900360200190a2612a5a565b6003546129fd908563ffffffff61469116565b6003908155810154612a15908563ffffffff61469116565b60038201556040805185815290516001600160a01b038716917f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc055919081900360200190a25b50612aa0565b6040805184815290516001600160a01b038616917ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4919081900360200190a25b50505050565b600e5481565b61100081565b61dead81565b600b8181548110612ac557fe5b60009182526020909120601690910201805460019091015490915060ff1682565b61100481565b6000600a5460001480612afd575081155b80612b085750600954155b15612b1557506000611115565b600960008154809291906001900391905055506000612b62600a546128dc856128dc600b8981548110612b4457fe5b6000918252602090912060169091020154439063ffffffff61464f16565b90506000600b8581548110612b7357fe5b906000526020600020906016020160010160006101000a81548160ff0219169083151502179055506000806110016001600160a01b0316638256ace66040518163ffffffff1660e01b8152600401604080518083038186803b158015612bd857600080fd5b505afa158015612bec573d6000803e3d6000fd5b505050506040513d6040811015612c0257600080fd5b508051602090910151600095509092509050808310612c9057612c258787613e21565b50604080516305bfb49960e41b81526001600160a01b0389166004820152905161100191635bfb499091602480830192600092919082900301818387803b158015612c6f57600080fd5b505af1158015612c83573d6000803e3d6000fd5b5050505060019350612ca2565b818310612ca257612ca087614410565b505b6040516001600160a01b038816907fb9d38178dc641ff1817967a63c9078cbcd955a9f1fcd75e0e3636de615d44d3b90600090a25050509392505050565b612ce8615a3e565b6000612cf2615a3e565b612cfa615a56565b612d0b612d06866146eb565b614710565b90506000805b612d1a8361475a565b15612e2b5780612d3f57612d35612d308461477b565b6147c9565b60ff168452612e23565b8060011415612e1e576060612d5b612d568561477b565b614880565b90508051604051908082528060200260200182016040528015612d9857816020015b612d85615a76565b815260200190600190039081612d7d5790505b50602086015260005b8151811015612e1357612db2615a76565b6000612dd0848481518110612dc357fe5b6020026020010151614951565b9150915080612ded57876000995099505050505050505050612e34565b8188602001518481518110612dfe57fe5b60209081029190910101525050600101612da1565b506001925050612e23565b612e2b565b600101612d11565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b6060815260200190600190039081612e53579050509050612e798363ffffffff16614a2e565b81600081518110612e8657fe5b602002602001018190525061111581614a41565b6000806060612ea884614acb565b9150915081612f55577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2816040518080602001828103825283818151815260200191508051906020019080838360005b83811015612f10578181015183820152602001612ef8565b50505050905090810190601f168015612f3d5780820380516001836020036101000a031916815260200191505b509250505060405180910390a16066925050506111fa565b50506060612f6283614bad565b6001549091506000908190815b81811015612fe55767016345785d8a000060018281548110612f8d57fe5b90600052602060002090600402016003015410612faf57600190930192612fdd565b600060018281548110612fbe57fe5b9060005260206000209060040201600301541115612fdd576001909201915b600101612f6f565b50606083604051908082528060200260200182016040528015613012578160200160208202803683370190505b509050606084604051908082528060200260200182016040528015613041578160200160208202803683370190505b509050606085604051908082528060200260200182016040528015613070578160200160208202803683370190505b50905060608660405190808252806020026020018201604052801561309f578160200160208202803683370190505b50905060006060876040519080825280602002602001820160405280156130d0578160200160208202803683370190505b5090506060886040519080825280602002602001820160405280156130ff578160200160208202803683370190505b509050600099506000985060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b15801561314757600080fd5b505afa15801561315b573d6000803e3d6000fd5b505050506040513d602081101561317157600080fd5b5051905067016345785d8a00008111156131e5577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2604051808060200182810382526021815260200180615f9f6021913960400191505060405180910390a160689c505050505050505050505050506111fa565b60005b898110156134565767016345785d8a00006001828154811061320657fe5b9060005260206000209060040201600301541061338c576001818154811061322a57fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316898d8151811061325b57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be4006001838154811061329057fe5b906000526020600020906004020160030154816132a957fe5b06600183815481106132b757fe5b9060005260206000209060040201600301540390506132df838261464f90919063ffffffff16565b898e815181106132eb57fe5b6020026020010181815250506001828154811061330457fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316878e8151811061333557fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081888e8151811061336257fe5b602090810291909101015261337d868263ffffffff61469116565b6001909d019c955061344e9050565b60006001828154811061339b57fe5b906000526020600020906004020160030154111561344e57600181815481106133c057fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316848c815181106133f157fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506001818154811061341e57fe5b906000526020600020906004020160030154838c8151811061343c57fe5b60209081029190910101526001909a01995b6001016131e8565b5060008415613894576110046001600160a01b0316636e056520868b8b8a60025442016040518663ffffffff1660e01b815260040180806020018060200180602001856001600160401b03166001600160401b03168152602001848103845288818151815260200191508051906020019060200280838360005b838110156134e85781810151838201526020016134d0565b50505050905001848103835287818151815260200191508051906020019060200280838360005b8381101561352757818101518382015260200161350f565b50505050905001848103825286818151815260200191508051906020019060200280838360005b8381101561356657818101518382015260200161354e565b505050509050019750505050505050506020604051808303818588803b15801561358f57600080fd5b505af1935050505080156135b557506040513d60208110156135b057600080fd5b505160015b6137f0576040516000815260443d10156135d15750600061366c565b60046000803e60005160e01c6308c379a081146135f257600091505061366c565b60043d036004833e81513d60248201116001600160401b038211171561361d5760009250505061366c565b80830180516001600160401b0381111561363e57600094505050505061366c565b8060208301013d860181111561365c5760009550505050505061366c565b601f01601f191660405250925050505b80613677575061371b565b60019150857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280826040518080602001828103825283818151815260200191508051906020019080838360005b838110156136db5781810151838201526020016136c3565b50505050905090810190601f1680156137085780820380516001836020036101000a031916815260200191505b509250505060405180910390a2506137eb565b3d808015613745576040519150601f19603f3d011682016040523d82523d6000602084013e61374a565b606091505b5060019150857fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a45826040518080602001828103825283818151815260200191508051906020019080838360005b838110156137af578181015183820152602001613797565b50505050905090810190601f1680156137dc5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b613894565b801561382e576040805187815290517fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b709181900360200190a1613892565b604080516020808252601b908201527f6261746368207472616e736665722072657475726e2066616c7365000000000081830152905187917fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280919081900360600190a25b505b8015613a4a5760005b8751811015613a485760008882815181106138b457fe5b602002602001015190506000600182815481106138cd57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc91859081106138fe57fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f19350505050905080156139ba576001828154811061393f57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d918590811061398e57fe5b9060005260206000209060040201600301546040518082815260200191505060405180910390a2613a3e565b600182815481106139c757fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d9185908110613a1657fe5b9060005260206000209060040201600301546040518082815260200191505060405180910390a25b505060010161389d565b505b835115613b945760005b8451811015613b92576000858281518110613a6b57fe5b60200260200101516001600160a01b03166108fc868481518110613a8b57fe5b60200260200101519081150290604051600060405180830381858888f1935050505090508015613b2157858281518110613ac157fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d868481518110613aff57fe5b60200260200101516040518082815260200191505060405180910390a2613b89565b858281518110613b2d57fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d868481518110613b6b57fe5b60200260200101516040518082815260200191505060405180910390a25b50600101613a54565b505b4715613bfd576040805147815290517f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d9181900360200190a1604051611002904780156108fc02916000818181858888f19350505050158015613bfb573d6000803e3d6000fd5b505b600060038190556005558c5115613c1757613c178d614d7d565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015613c5457600080fd5b505af1158015613c68573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a15060009e9d5050505050505050505050505050565b80516001600160a01b0316600090815260046020526040812054801580613cfb5750600180820381548110613cdb57fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b15613d415782516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a260009150506111fa565b600154600554600019820111801590613d975784516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a2600093505050506111fa565b600580546001908101909155805481906000198601908110613db557fe5b6000918252602082206002600490920201018054921515600160e01b0260ff60e01b199093169290921790915585516040516001600160a01b03909116917ff226e7d8f547ff903d9d419cf5f54e0d7d07efa9584135a53a057c5f1f27f49a91a2506000949350505050565b60008060018381548110613e3157fe5b90600052602060002090600402016003015490506000600180805490500390506001613e5b61233b565b5111613e9057600060018581548110613e7057fe5b9060005260206000209060040201600301819055506000925050506112aa565b6040805183815290516001600160a01b038716917f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a70919081900360200190a26001600160a01b038516600090815260046020526040812055835b6001546000190181101561408d5760018160010181548110613f0857fe5b906000526020600020906004020160018281548110613f2357fe5b60009182526020909120825460049092020180546001600160a01b03199081166001600160a01b0393841617825560018085015481840180548416918616919091179055600280860180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b19909416939093179055600392830154920191909155600b805490918301908110613fe457fe5b9060005260206000209060160201600b8281548110613fff57fe5b600091825260209091208254601690920201908155600180830154908201805460ff191660ff909216151591909117905561404260028083019084016014615aab565b5090505080600101600460006001848154811061405b57fe5b600091825260208083206004909202909101546001600160a01b03168352820192909252604001902055600101613eea565b50600180548061409957fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b8054806140ec57fe5b60008281526020812060166000199093019283020181815560018101805460ff191690559061411e6002830182615ad6565b50509055600081838161412d57fe5b04905080156141915760015460005b8181101561418e57826001828154811061415257fe5b906000526020600020906004020160030154016001828154811061417257fe5b600091825260209091206003600490920201015560010161413c565b50505b50600195945050505050565b60005b828110156142835760408051602080820189905287840182840152825180830384018152606090920190925280519101206000908390816141dd57fe5b0690508085018287011461427a57600088838801815181106141fb57fe5b60200260200101519050888287018151811061421357fe5b6020026020010151898489018151811061422957fe5b60200260200101906001600160a01b031690816001600160a01b03168152505080898388018151811061425857fe5b60200260200101906001600160a01b031690816001600160a01b031681525050505b506001016141a0565b50505050505050565b600980546001908101909155600b8054839081106142a657fe5b906000526020600020906016020160010160006101000a81548160ff02191690831515021790555043600b82815481106142dc57fe5b600091825260208220601690910201919091556040516001600160a01b038416917ff62981a567ec3cec866c6fa93c55bcdf841d6292d18b8d522ececa769375d82d91a25050565b6000816040516020018082805190602001908083835b602083106143595780518252601f19909201916020918201910161433a565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106143c75780518252601f1990920191602091820191016143a8565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b6001600160a01b03811660009081526004602052604081205480614439575060001990506111fa565b60018103905060006001828154811061444e57fe5b906000526020600020906004020160030154905060006001838154811061447157fe5b906000526020600020906004020160030181905550600060018080549050039050846001600160a01b03167f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d836040518082815260200191505060405180910390a2806144e3578293505050506111fa565b60008183816144ee57fe5b04905080156145aa5760005b8481101561454c57816001828154811061451057fe5b906000526020600020906004020160030154016001828154811061453057fe5b60009182526020909120600360049092020101556001016144fa565b50600180549085015b818110156145a757826001828154811061456b57fe5b906000526020600020906004020160030154016001828154811061458b57fe5b6000918252602090912060036004909202010155600101614555565b50505b5091949350505050565b6000826145c3575060006112aa565b828202828482816145d057fe5b04146111155760405162461bcd60e51b8152600401808060200182810382526021815260200180615f2b6021913960400191505060405180910390fd5b600061111583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250615370565b600061111583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250615412565b600082820183811015611115576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6146f3615ae5565b506040805180820190915281518152602082810190820152919050565b614718615a56565b6147218261546c565b61472a57600080fd5b600061473983602001516154a6565b60208085015160408051808201909152868152920190820152915050919050565b6000614764615ae5565b505080518051602091820151919092015191011190565b614783615ae5565b61478c8261475a565b61479557600080fd5b602082015160006147a582615509565b80830160209586015260408051808201909152908152938401919091525090919050565b8051600090158015906147de57508151602110155b6147e757600080fd5b60006147f683602001516154a6565b90508083600001511015614851576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b82516020808501518301805192849003929183101561487757826020036101000a820491505b50949350505050565b606061488b8261546c565b61489457600080fd5b600061489f8361563c565b90506060816040519080825280602002602001820160405280156148dd57816020015b6148ca615ae5565b8152602001906001900390816148c25790505b50905060006148ef85602001516154a6565b60208601510190506000805b848110156149465761490c83615509565b915060405180604001604052808381526020018481525084828151811061492f57fe5b6020908102919091010152918101916001016148fb565b509195945050505050565b614959615a76565b6000614963615a76565b61496b615a56565b61497485614710565b90506000805b6149838361475a565b15612e2b57806149ae5761499e6149998461477b565b615698565b6001600160a01b03168452614a26565b80600114156149d6576149c36149998461477b565b6001600160a01b03166020850152614a26565b80600214156149fe576149eb6149998461477b565b6001600160a01b03166040850152614a26565b8060031415612e1e57614a13612d308461477b565b6001600160401b03166060850152600191505b60010161497a565b60606112aa614a3c836156b2565b615798565b6060815160001415614a6257506040805160008152602081019091526111fa565b606082600081518110614a7157fe5b602002602001015190506000600190505b8351811015614ab257614aa882858381518110614a9b57fe5b60200260200101516157ea565b9150600101614a82565b50611115614ac5825160c060ff16615867565b826157ea565b60006060602983511115614afd576000604051806060016040528060298152602001615df46029913991509150612e34565b60005b8351811015614b935760005b81811015614b8a57848181518110614b2057fe5b6020026020010151600001516001600160a01b0316858381518110614b4157fe5b6020026020010151600001516001600160a01b03161415614b825760006040518060600160405280602b8152602001615e48602b9139935093505050612e34565b600101614b0c565b50600101614b00565b505060408051602081019091526000815260019150915091565b6060600080808080614bbd612429565b6001549091505b8015614ccb57600181039250600b8381548110614bdd57fe5b600091825260209091206001601690920201015460ff16614bfd57614cc2565b60018381548110614c0a57fe5b60009182526020909120600490910201546001600160a01b03169450614c31858484612aec565b9350831580614c44575060018851038610155b15614c4e57614cc2565b60005b8851811015614cc057856001600160a01b0316898281518110614c7057fe5b6020026020010151600001516001600160a01b03161415614cb8576001898281518110614c9957fe5b6020908102919091010151901515608090910152600190960195614cc0565b600101614c51565b505b60001901614bc4565b5084875103604051908082528060200260200182016040528015614d0957816020015b614cf6615a76565b815260200190600190039081614cee5790505b5095506000915060005b8751811015614d7257878181518110614d2857fe5b602002602001015160800151614d6a57878181518110614d4457fe5b6020026020010151878481518110614d5857fe5b60209081029190910101526001909201915b600101614d13565b505050505050919050565b600154815160005b82811015614e9a576001614d97615a76565b60018381548110614da457fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b84811015614e6e57868181518110614e3457fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b03161415614e665760009250614e6e565b600101614e20565b508115614e905780516001600160a01b03166000908152600460205260408120555b5050600101614d85565b5080821115614f4b57805b82811015614f49576001805480614eb857fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b805480614f0b57fe5b60008281526020812060166000199093019283020181815560018101805460ff1916905590614f3d6002830182615ad6565b50509055600101614ea5565b505b6000818310614f5a5781614f5c565b825b905060005b818110156151565761500e858281518110614f7857fe5b602002602001015160018381548110614f8d57fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a082015261595f565b61512957806001016004600087848151811061502657fe5b6020026020010151600001516001600160a01b03166001600160a01b031681526020019081526020016000208190555084818151811061506257fe5b60200260200101516001828154811061507757fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a09091015160039091015561514e565b60006001828154811061513857fe5b9060005260206000209060040201600301819055505b600101614f61565b50828211156152fb576151676159e0565b835b838110156152f857600186828151811061517f57fe5b6020908102919091018101518254600181810185556000948552838520835160049093020180546001600160a01b039384166001600160a01b0319918216178255848601518284018054918616918316919091179055604080860151600284018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909a1692909616919091179290921696909617169190911790935560a090930151600390930192909255600b8054928301815590935284516016909102600080516020615fc08339815191528101918255918501516000805160206160d08339815191528301805491151560ff19909216919091179055918401518492916152b491600080516020616006833981519152909101906014615a04565b50505080600101600460008884815181106152cb57fe5b602090810291909101810151516001600160a01b0316825281019190915260400160002055600101615169565b50505b6000600981905560015493505b83811015615369576000600b828154811061531f57fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b80548390811061535057fe5b6000918252602090912060169091020155600101615308565b5050505050565b600081836153fc5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156153c15781810151838201526020016153a9565b50505050905090810190601f1680156153ee5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161540857fe5b0495945050505050565b600081848411156154645760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156153c15781810151838201526020016153a9565b505050900390565b805160009061547d575060006111fa565b6020820151805160001a9060c082101561549c576000925050506111fa565b5060019392505050565b8051600090811a60808110156154c05760009150506111fa565b60b88110806154db575060c081108015906154db575060f881105b156154ea5760019150506111fa565b60c08110156154fe5760b5190190506111fa565b60f5190190506111fa565b80516000908190811a60808110156155245760019150615635565b60b881101561553957607e1981019150615635565b60c08110156155b357600060b78203600186019550806020036101000a8651049150600181018201935050808310156155ad576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50615635565b60f88110156155c85760be1981019150615635565b600060f78203600186019550806020036101000a865104915060018101820193505080831015615633576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b805160009061564d575060006111fa565b6000809050600061566184602001516154a6565b602085015185519181019250015b8082101561568f5761568082615509565b6001909301929091019061566f565b50909392505050565b80516000906015146156a957600080fd5b6112aa826147c9565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166156f65750601861571a565b6fffffffffffffffffffffffffffffffff1984166157165750601061571a565b5060005b60208110156157505781818151811061572f57fe5b01602001516001600160f81b0319161561574857615750565b60010161571a565b60008160200390506060816040519080825280601f01601f191660200182016040528015615785576020820181803683370190505b5080830196909652508452509192915050565b6060815160011480156157ca5750607f60f81b826000815181106157b857fe5b01602001516001600160f81b03191611155b156157d65750806111fa565b6112aa6157e88351608060ff16615867565b835b6060806040519050835180825260208201818101602087015b8183101561581b578051835260209283019201615803565b50855184518101855292509050808201602086015b81831015615848578051835260209283019201615830565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106158b7576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b604080516001808252818301909252606091602082018180368337019050509050603784116159115782840160f81b816000815181106158f357fe5b60200101906001600160f81b031916908160001a90535090506112aa565b606061591c856156b2565b90508381510160370160f81b8260008151811061593557fe5b60200101906001600160f81b031916908160001a90535061595682826157ea565b95945050505050565b805182516000916001600160a01b039182169116148015615999575081602001516001600160a01b031683602001516001600160a01b0316145b80156159be575081604001516001600160a01b031683604001516001600160a01b0316145b80156111155750506060908101519101516001600160401b0390811691161490565b60408051606081018252600080825260208201529081016159ff615aff565b905290565b8260148101928215615a32579160200282015b82811115615a32578251825591602001919060010190615a17565b50612464929150615b1e565b60408051808201909152600081526060602082015290565b6040518060400160405280615a69615ae5565b8152602001600081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b8260148101928215615a32579182015b82811115615a32578254825591600101919060010190615abb565b5061140c906014810190615b1e565b604051806040016040528060008152602001600081525090565b6040518061028001604052806014906020820280368337509192915050565b61152891905b808211156124645760008155600101615b2456fef901a880f901a4f844941284214b9b9c85549ab3d2b972df0deef66ac2c9946ddf42a51534fc98d0c0a3b42c963cace8441ddf946ddf42a51534fc98d0c0a3b42c963cace8441ddf8410000000f84494a2959d3f95eae5dc7d70144ce1b73b403b7eb6e0948081ef03f1d9e0bb4a5bf38f16285c879299f07f948081ef03f1d9e0bb4a5bf38f16285c879299f07f8410000000f8449435552c16704d214347f29fa77f77da6d75d7c75294dc4973e838e3949c77aced16ac2315dc2d7ab11194dc4973e838e3949c77aced16ac2315dc2d7ab1118410000000f84494980a75ecd1309ea12fa2ed87a8744fbfc9b863d594cc6ac05c95a99c1f7b5f88de0e3486c82293b27094cc6ac05c95a99c1f7b5f88de0e3486c82293b2708410000000f84494f474cf03cceff28abc65c9cbae594f725c80e12d94e61a183325a18a173319dd8e19c8d069459e217594e61a183325a18a173319dd8e19c8d069459e21758410000000f84494b71b214cb885500844365e95cd9942c7276e7fd894d22ca3ba2141d23adab65ce4940eb7665ea2b6a794d22ca3ba2141d23adab65ce4940eb7665ea2b6a784100000006c656e677468206f66206d61784e756d4f664d61696e7461696e696e67206d69736d617463686c656e677468206f66206d61784e756d4f66576f726b696e6743616e64696461746573206d69736d617463686c656e677468206f66206d61696e7461696e536c6173685363616c65206d69736d61746368746865206d61784e756d4f664d61696e7461696e696e67206d757374206265206c657373207468616e206e756d4f6643616e696e61746573746865206e756d4f66436162696e657473206d7573742062652067726561746572207468616e2030746865206e756d4f66436162696e657473206d757374206265206c657373207468616e204d41585f4e554d5f4f465f56414c494441544f5253746865206e756d626572206f662076616c696461746f72732065786365656420746865206c696d6974746865206275726e526174696f206d757374206265206e6f2067726561746572207468616e2031303030306475706c696361746520636f6e73656e7375732061646472657373206f662076616c696461746f725365747468652065787069726554696d655365636f6e64476170206973206f7574206f662072616e6765746865206d61784e756d4f66576f726b696e6743616e64696461746573206d757374206265206e6f742067726561746572207468616e206d61784e756d4f6643616e6469646174657363616e206e6f7420656e7465722054656d706f72617279204d61696e74656e616e63656c656e677468206f66206a61696c2076616c696461746f7273206d757374206265206f6e65536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f66206d61784e756d4f6643616e64696461746573206d69736d61746368666565206973206c6172676572207468616e2044555354595f494e434f4d494e470175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db96c656e677468206f662065787069726554696d655365636f6e64476170206d69736d617463680175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbb6661696c656420746f20706172736520696e69742076616c696461746f72536574746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d6573736167652073656e646572206d7573742062652074686520626c6f636b2070726f6475636572746865206d61696e7461696e536c6173685363616c65206d7573742062652067726561746572207468616e20300175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dba746865206d6573736167652073656e646572206d75737420626520736c61736820636f6e7472616374a2646970667358221220c0dc878fd08b0a4bf6659ead68604aefff201930a1931eca7eb88ebdf3b0a03e64736f6c63430006040033", - }, - { - ContractAddr: SlashContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/db8bb560ac5a1265c685b719c7e976dced162310", - Code: "608060405234801561001057600080fd5b506004361061023d5760003560e01c80638256ace61161013b578063c80d4b8f116100b8578063e1c7392a1161007c578063e1c7392a1461071d578063f9a2bbc714610725578063fc3e59081461072d578063fc4333cd14610735578063fd6a68791461073d5761023d565b8063c80d4b8f14610667578063c81b16621461066f578063c8509d8114610677578063c96be4cb146106ef578063dc927faf146107155761023d565b8063a1a11bf5116100ff578063a1a11bf514610575578063a78abc161461057d578063ab51bb9614610599578063ac0af629146105a1578063ac431751146105a95761023d565b80638256ace6146104dd578063831d65d1146104e557806396713da91461055d5780639bc8e4f2146105655780639dc092621461056d5761023d565b80634bf6c882116101c95780636e47b4821161018d5780636e47b482146104b557806370fd5bad146104bd57806375d47a0a146104c55780637912a65d146104cd5780637942fd05146104d55761023d565b80634bf6c8821461046d57806351e8067214610475578063567a372d1461047d5780635bfb49901461048557806362b72cf5146104ad5761023d565b806337c8dab91161021057806337c8dab9146103cf578063389f4f711461040e5780633dffc3871461042857806343756e5c14610446578063493279b11461044e5761023d565b80630bee7a67146102425780631182b8751461026357806323bac5a21461035057806335aa2e4414610396575b600080fd5b61024a610745565b6040805163ffffffff9092168252519081900360200190f35b6102db6004803603604081101561027957600080fd5b60ff8235169190810190604081016020820135600160201b81111561029d57600080fd5b8201836020820111156102af57600080fd5b803590602001918460018302840111600160201b831117156102d057600080fd5b50909250905061074a565b6040805160208082528351818301528351919283929083019185019080838360005b838110156103155781810151838201526020016102fd565b50505050905090810190601f1680156103425780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103766004803603602081101561036657600080fd5b50356001600160a01b031661081e565b604080519384526020840192909252151582820152519081900360600190f35b6103b3600480360360208110156103ac57600080fd5b5035610841565b604080516001600160a01b039092168252519081900360200190f35b6103f5600480360360208110156103e557600080fd5b50356001600160a01b0316610868565b6040805192835260208301919091528051918290030190f35b6104166108bf565b60408051918252519081900360200190f35b6104306108c5565b6040805160ff9092168252519081900360200190f35b6103b36108ca565b6104566108d0565b6040805161ffff9092168252519081900360200190f35b6104306108d5565b6103b36108da565b6104166108e0565b6104ab6004803603602081101561049b57600080fd5b50356001600160a01b03166108e6565b005b610416610a47565b6103b3610a4d565b610430610a53565b6103b3610a58565b610416610a5e565b610430610a63565b6103f5610a68565b6104ab600480360360408110156104fb57600080fd5b60ff8235169190810190604081016020820135600160201b81111561051f57600080fd5b82018360208201111561053157600080fd5b803590602001918460018302840111600160201b8311171561055257600080fd5b509092509050610a72565b610430610bcc565b610416610bd1565b6103b3610bdc565b6103b3610be2565b610585610be8565b604080519115158252519081900360200190f35b61024a610bf1565b610416610bf6565b6104ab600480360360408110156105bf57600080fd5b810190602081018135600160201b8111156105d957600080fd5b8201836020820111156105eb57600080fd5b803590602001918460018302840111600160201b8311171561060c57600080fd5b919390929091602081019035600160201b81111561062957600080fd5b82018360208201111561063b57600080fd5b803590602001918460018302840111600160201b8311171561065c57600080fd5b509092509050610bfb565b610416610fe9565b6103b3610fee565b6104ab6004803603604081101561068d57600080fd5b60ff8235169190810190604081016020820135600160201b8111156106b157600080fd5b8201836020820111156106c357600080fd5b803590602001918460018302840111600160201b831117156106e457600080fd5b509092509050610ff4565b6104ab6004803603602081101561070557600080fd5b50356001600160a01b03166110a7565b6103b361154a565b6104ab611550565b6103b36115c1565b6104306115c7565b6104ab6115cc565b6103b3611a57565b606481565b6060336120001461078c5760405162461bcd60e51b815260040180806020018281038252602f8152602001806124ae602f913960400191505060405180910390fd5b60005460ff166107d1576040805162461bcd60e51b8152602060048201526019602482015260008051602061250a833981519152604482015290519081900360640190fd5b6040805162461bcd60e51b815260206004820152601e60248201527f7265636569766520756e65787065637465642073796e207061636b6167650000604482015290519081900360640190fd5b600260208190526000918252604090912080546001820154919092015460ff1683565b6001818154811061084e57fe5b6000918252602090912001546001600160a01b0316905081565b600080610873612372565b5050506001600160a01b0316600090815260026020818152604092839020835160608101855281548082526001830154938201849052919093015460ff16151592909301919091529091565b60055481565b600181565b61100181565b606181565b600881565b61200081565b60045481565b33611000146109265760405162461bcd60e51b81526004018080602001828103825260308152602001806124096030913960400191505060405180910390fd5b60005460ff1661096b576040805162461bcd60e51b8152602060048201526019602482015260008051602061250a833981519152604482015290519081900360640190fd5b61200063f7a251d7600b61097e84611a5d565b60006040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156109de5781810151838201526020016109c6565b50505050905090810190601f168015610a0b5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015610a2c57600080fd5b505af1158015610a40573d6000803e3d6000fd5b5050505050565b60035481565b61100581565b600281565b61100881565b603281565b600b81565b6004546005549091565b3361200014610ab25760405162461bcd60e51b815260040180806020018281038252602f8152602001806124ae602f913960400191505060405180910390fd5b60005460ff16610af7576040805162461bcd60e51b8152602060048201526019602482015260008051602061250a833981519152604482015290519081900360640190fd5b610aff612395565b6000610b4084848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611b2f92505050565b915091508015610b8a5781516040805163ffffffff9092168252517f7f0956d47419b9525356e7111652b653b530ec6f5096dccc04589bc38e6299679181900360200190a1610a40565b81516040805163ffffffff9092168252517f7d45f62d17443dd4547bca8a8112c60e2385669318dc300ec61a5d2492f262e79181900360200190a15050505050565b600981565b662386f26fc1000081565b61100781565b61100681565b60005460ff1681565b600081565b600481565b60005460ff16610c40576040805162461bcd60e51b8152602060048201526019602482015260008051602061250a833981519152604482015290519081900360640190fd5b3361100714610c805760405162461bcd60e51b815260040180806020018281038252602e815260200180612439602e913960400191505060405180910390fd5b610ceb84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260148152731b5a5cd9195b59585b9bdc951a1c995cda1bdb1960621b60208201529150611baf9050565b15610dc45760208114610d2f5760405162461bcd60e51b81526004018080602001828103825260278152602001806123e26027913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610d6d91858580838501838280828437600092019190915250611c9792505050565b905060018110158015610d81575060055481105b610dbc5760405162461bcd60e51b81526004018080602001828103825260258152602001806124896025913960400191505060405180910390fd5b600455610f57565b610e2a84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e19995b1bdb9e551a1c995cda1bdb19608a1b60208201529150611baf9050565b15610f1a5760208114610e6e5760405162461bcd60e51b81526004018080602001828103825260228152602001806124676022913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610eac91858580838501838280828437600092019190915250611c9792505050565b90506103e88111158015610ec1575060045481115b610f12576040805162461bcd60e51b815260206004820181905260248201527f7468652066656c6f6e795468726573686f6c64206f7574206f662072616e6765604482015290519081900360640190fd5b600555610f57565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b609681565b61100281565b33612000146110345760405162461bcd60e51b815260040180806020018281038252602f8152602001806124ae602f913960400191505060405180910390fd5b60005460ff16611079576040805162461bcd60e51b8152602060048201526019602482015260008051602061250a833981519152604482015290519081900360640190fd5b6040517f07db600eebe2ac176be8dcebad61858c245a4961bb32ca2aa3d159b09aa0810e90600090a1505050565b3341146110e55760405162461bcd60e51b815260040180806020018281038252602d8152602001806124dd602d913960400191505060405180910390fd5b60005460ff1661112a576040805162461bcd60e51b8152602060048201526019602482015260008051602061250a833981519152604482015290519081900360640190fd5b6003544311611180576040805162461bcd60e51b815260206004820181905260248201527f63616e206e6f7420736c61736820747769636520696e206f6e6520626c6f636b604482015290519081900360640190fd5b3a156111ca576040805162461bcd60e51b81526020600482015260146024820152736761737072696365206973206e6f74207a65726f60601b604482015290519081900360640190fd5b6040805163155853f360e21b81526001600160a01b03831660048201529051611000916355614fcc916024808301926020929190829003018186803b15801561121257600080fd5b505afa158015611226573d6000803e3d6000fd5b505050506040513d602081101561123c57600080fd5b505161124757611543565b61124f612372565b506001600160a01b0381166000908152600260208181526040928390208351606081018552815481526001820154928101929092529091015460ff1615801592820192909252906112aa576020810180516001019052611303565b60016040820181905260208201819052805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0384161790555b43815260055460208201518161131557fe5b0661146757600060208201819052604080516335409f7f60e01b81526001600160a01b03851660048201529051611000926335409f7f926024808201939182900301818387803b15801561136857600080fd5b505af115801561137c573d6000803e3d6000fd5b505050506120006001600160a01b031663f7a251d7600b61139c85611a5d565b60006040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156113fc5781810151838201526020016113e4565b50505050905090810190601f1680156114295780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561144a57600080fd5b505af115801561145e573d6000803e3d6000fd5b505050506114dd565b60045481602001518161147657fe5b066114dd57604080516375abf10160e11b81526001600160a01b038416600482015290516110009163eb57e20291602480830192600092919082900301818387803b1580156114c457600080fd5b505af11580156114d8573d6000803e3d6000fd5b505050505b6001600160a01b0382166000818152600260208181526040808420865181559186015160018301558581015191909201805460ff1916911515919091179055517fddb6012116e51abf5436d956a4f0ebd927e92c576ff96d7918290c8782291e3e9190a2505b5043600355565b61100381565b60005460ff16156115a8576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b603260045560966005556000805460ff19166001179055565b61100081565b600381565b336110001461160c5760405162461bcd60e51b81526004018080602001828103825260308152602001806124096030913960400191505060405180910390fd5b60005460ff16611651576040805162461bcd60e51b8152602060048201526019602482015260008051602061250a833981519152604482015290519081900360640190fd5b60015461165d57611a55565b600154600090600019015b808211611a29576000805b8284101561178c57611683612372565b600260006001878154811061169457fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff1615159082015260055490915060049004816020015111156117765760046005548161170157fe5b0481602001510381602001818152505080600260006001888154811061172357fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208351815591830151600183015591909101516002909101805460ff1916911515919091179055611780565b600192505061178c565b50600190930192611673565b8284116119235761179b612372565b60026000600186815481106117ac57fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff1615159082015260055490915060049004816020015111156118945760046005548161181957fe5b0481602001510381602001818152505080600260006001878154811061183b57fe5b6000918252602080832091909101546001600160a01b03168352828101939093526040918201902083518155918301516001808401919091559201516002909101805460ff191691151591909117905591506119239050565b60026000600186815481106118a557fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff191690558054806118e957fe5b600082815260209020810160001990810180546001600160a01b0319169055019055836119165750611923565b506000199092019161178c565b81801561192d5750805b15611a0c57600260006001868154811061194357fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff1916905580548490811061198a57fe5b600091825260209091200154600180546001600160a01b0390921691869081106119b057fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060018054806119e957fe5b600082815260209020810160001990810180546001600160a01b03191690550190555b82611a18575050611a29565b505060019091019060001901611668565b6040517fcfdb3b6ccaeccbdc68be3c59c840e3b3c90f0a7c491f5fff1cf56cfda200dd9c90600090a150505b565b61100481565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081611a78579050509050611aa1836001600160a01b0316611c9c565b81600081518110611aae57fe5b6020026020010181905250611ac243611cbf565b81600181518110611acf57fe5b6020908102919091010152611ae46061611cbf565b81600281518110611af157fe5b6020026020010181905250611b0542611cbf565b81600381518110611b1257fe5b6020026020010181905250611b2681611cd2565b9150505b919050565b611b37612395565b6000611b41612395565b611b496123a7565b611b5a611b5586611d5c565b611d81565b90506000805b611b6983611dcb565b15611ba25780611b9557611b84611b7f84611dec565b611e3a565b63ffffffff16845260019150611b9a565b611ba2565b600101611b60565b5091935090915050915091565b6000816040516020018082805190602001908083835b60208310611be45780518252601f199092019160209182019101611bc5565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310611c525780518252601f199092019160209182019101611c33565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052805190602001201490505b92915050565b015190565b60408051600560a21b8318601482015260348101909152606090611b2681611ef1565b6060611c91611ccd83611f47565b611ef1565b6060815160001415611cf35750604080516000815260208101909152611b2a565b606082600081518110611d0257fe5b602002602001015190506000600190505b8351811015611d4357611d3982858381518110611d2c57fe5b602002602001015161202d565b9150600101611d13565b50611b26611d56825160c060ff166120aa565b8261202d565b611d646123c7565b506040805180820190915281518152602082810190820152919050565b611d896123a7565b611d92826121a2565b611d9b57600080fd5b6000611daa83602001516121dc565b60208085015160408051808201909152868152920190820152915050919050565b6000611dd56123c7565b505080518051602091820151919092015191011190565b611df46123c7565b611dfd82611dcb565b611e0657600080fd5b60208201516000611e168261223f565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590611e4f57508151602110155b611e5857600080fd5b6000611e6783602001516121dc565b90508083600001511015611ec2576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015611ee857826020036101000a820491505b50949350505050565b606081516001148015611f235750607f60f81b82600081518110611f1157fe5b01602001516001600160f81b03191611155b15611f2f575080611b2a565b611c91611f418351608060ff166120aa565b8361202d565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416611f8b57506018611faf565b6fffffffffffffffffffffffffffffffff198416611fab57506010611faf565b5060005b6020811015611fe557818181518110611fc457fe5b01602001516001600160f81b03191615611fdd57611fe5565b600101611faf565b60008160200390506060816040519080825280601f01601f19166020018201604052801561201a576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b8183101561205e578051835260209283019201612046565b50855184518101855292509050808201602086015b8183101561208b578051835260209283019201612073565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106120fa576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b604080516001808252818301909252606091602082018180368337019050509050603784116121545782840160f81b8160008151811061213657fe5b60200101906001600160f81b031916908160001a9053509050611c91565b606061215f85611f47565b90508381510160370160f81b8260008151811061217857fe5b60200101906001600160f81b031916908160001a905350612199828261202d565b95945050505050565b80516000906121b357506000611b2a565b6020820151805160001a9060c08210156121d257600092505050611b2a565b5060019392505050565b8051600090811a60808110156121f6576000915050611b2a565b60b8811080612211575060c08110801590612211575060f881105b15612220576001915050611b2a565b60c08110156122345760b519019050611b2a565b60f519019050611b2a565b80516000908190811a608081101561225a576001915061236b565b60b881101561226f57607e198101915061236b565b60c08110156122e957600060b78203600186019550806020036101000a8651049150600181018201935050808310156122e3576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b5061236b565b60f88110156122fe5760be198101915061236b565b600060f78203600186019550806020036101000a865104915060018101820193505080831015612369576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b604051806060016040528060008152602001600081526020016000151581525090565b60408051602081019091526000815290565b60405180604001604052806123ba6123c7565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe6c656e677468206f66206d697364656d65616e6f725468726573686f6c64206d69736d61746368746865206d6573736167652073656e646572206d7573742062652076616c696461746f7253657420636f6e7472616374746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662066656c6f6e795468726573686f6c64206d69736d61746368746865206d697364656d65616e6f725468726573686f6c64206f7574206f662072616e6765746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d6573736167652073656e646572206d7573742062652074686520626c6f636b2070726f647563657274686520636f6e7472616374206e6f7420696e69742079657400000000000000a2646970667358221220a288eb0fb37b1f80ed70929944f149856fbe848d775f3fe9d6a2f46faa67754564736f6c63430006040033", - }, - }, - } - - EulerUpgrade[networkname.RialtoChainName] = &Upgrade{ - UpgradeName: "euler", - Configs: []*UpgradeConfig{ - { - ContractAddr: ValidatorContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/db8bb560ac5a1265c685b719c7e976dced162310", - Code: "6080604052600436106104055760003560e01c80638d19a41011610213578063c81b166211610123578063eb57e202116100ab578063f9a2bbc71161007a578063f9a2bbc714610d55578063fc3e590814610d6a578063fccc281314610d7f578063fd4ad81f14610d94578063fd6a687914610dd757610405565b8063eb57e20214610cd2578063eda5868c14610d05578063f340fa0114610d1a578063f92eb86b14610d4057610405565b8063daacdb66116100f2578063daacdb6614610c69578063dc927faf14610c7e578063e086c7b114610c93578063e1c7392a14610ca8578063e40716a114610cbd57610405565b8063c81b166214610c2a578063c8509d8114610939578063d68fb56a14610c3f578063d86222d514610c5457610405565b8063a78abc16116101a6578063ad3c9da611610175578063ad3c9da614610bb8578063b7ab4db514610beb578063b8cf4ef114610c00578063bf9f49951461065f578063c6d3394514610c1557610405565b8063a78abc1614610aae578063aaf5eb6814610ac3578063ab51bb9614610ad8578063ac43175114610aed57610405565b80639fe0f816116101e25780639fe0f81614610a5a578063a0dc275814610a6f578063a1a11bf514610a84578063a5422d5c14610a9957610405565b80638d19a410146109e85780639369d7de14610a1b57806396713da914610a305780639dc0926214610a4557610405565b80635192c82c1161031957806375d47a0a116102a157806381650b621161027057806381650b6214610924578063831d65d114610939578063853230aa146108e557806386249882146109be5780638b5ad0c9146109d357610405565b806375d47a0a146108d057806378dfed4a146108e55780637942fd05146108fa5780637a84ca2a1461090f57610405565b80635667515a116102e85780635667515a146108065780635d77156c1461081b5780636969a25c146108305780636e47b482146108a657806370fd5bad146108bb57610405565b80635192c82c1461077657806351e806721461078b57806355614fcc146107a0578063565c56b3146107d357610405565b80633365af3a1161039c57806343756e5c1161036b57806343756e5c1461068a57806345cf9daf146106bb578063493279b1146106d05780634bf6c882146106fc5780634df6e0c31461071157610405565b80633365af3a146105ed57806335409f7f146106175780633de0f0d81461064a5780633dffc3871461065f57610405565b8063152ad3b8116103d8578063152ad3b8146105705780631ff1806914610599578063219f22d5146105ae578063321d398a146105c357610405565b806304c4fec61461040a57806307a56847146104215780630bee7a67146104485780631182b87514610476575b600080fd5b34801561041657600080fd5b5061041f610dec565b005b34801561042d57600080fd5b50610436610e7f565b60408051918252519081900360200190f35b34801561045457600080fd5b5061045d610e85565b6040805163ffffffff9092168252519081900360200190f35b34801561048257600080fd5b506104fb6004803603604081101561049957600080fd5b60ff8235169190810190604081016020820135600160201b8111156104bd57600080fd5b8201836020820111156104cf57600080fd5b803590602001918460018302840111600160201b831117156104f057600080fd5b509092509050610e8a565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561053557818101518382015260200161051d565b50505050905090810190601f1680156105625780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561057c57600080fd5b5061058561111c565b604080519115158252519081900360200190f35b3480156105a557600080fd5b50610436611125565b3480156105ba57600080fd5b5061045d61112b565b3480156105cf57600080fd5b50610585600480360360208110156105e657600080fd5b5035611130565b3480156105f957600080fd5b506105856004803603602081101561061057600080fd5b50356111ff565b34801561062357600080fd5b5061041f6004803603602081101561063a57600080fd5b50356001600160a01b03166112b0565b34801561065657600080fd5b5061043661140f565b34801561066b57600080fd5b50610674611415565b6040805160ff9092168252519081900360200190f35b34801561069657600080fd5b5061069f61141a565b604080516001600160a01b039092168252519081900360200190f35b3480156106c757600080fd5b50610436611420565b3480156106dc57600080fd5b506106e5611426565b6040805161ffff9092168252519081900360200190f35b34801561070857600080fd5b5061067461142c565b34801561071d57600080fd5b50610726611431565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561076257818101518382015260200161074a565b505050509050019250505060405180910390f35b34801561078257600080fd5b5061043661152c565b34801561079757600080fd5b5061069f611532565b3480156107ac57600080fd5b50610585600480360360208110156107c357600080fd5b50356001600160a01b0316611538565b3480156107df57600080fd5b50610436600480360360208110156107f657600080fd5b50356001600160a01b031661156d565b34801561081257600080fd5b506106746115be565b34801561082757600080fd5b5061045d6115c3565b34801561083c57600080fd5b5061085a6004803603602081101561085357600080fd5b50356115c8565b604080516001600160a01b039788168152958716602087015293909516848401526001600160401b0390911660608401521515608083015260a082019290925290519081900360c00190f35b3480156108b257600080fd5b5061069f61162c565b3480156108c757600080fd5b50610674611632565b3480156108dc57600080fd5b5061069f611637565b3480156108f157600080fd5b5061043661163d565b34801561090657600080fd5b50610674611643565b34801561091b57600080fd5b50610436611648565b34801561093057600080fd5b5061045d61164e565b34801561094557600080fd5b5061041f6004803603604081101561095c57600080fd5b60ff8235169190810190604081016020820135600160201b81111561098057600080fd5b82018360208201111561099257600080fd5b803590602001918460018302840111600160201b831117156109b357600080fd5b509092509050611653565b3480156109ca57600080fd5b50610436611706565b3480156109df57600080fd5b5061043661170c565b3480156109f457600080fd5b5061043660048036036020811015610a0b57600080fd5b50356001600160a01b0316611712565b348015610a2757600080fd5b5061041f611787565b348015610a3c57600080fd5b506106746118a1565b348015610a5157600080fd5b5061069f6118a6565b348015610a6657600080fd5b506104366118ac565b348015610a7b57600080fd5b506104366118b1565b348015610a9057600080fd5b5061069f6118b6565b348015610aa557600080fd5b506104fb6118bc565b348015610aba57600080fd5b506105856118db565b348015610acf57600080fd5b506104366118e4565b348015610ae457600080fd5b5061045d6115be565b348015610af957600080fd5b5061041f60048036036040811015610b1057600080fd5b810190602081018135600160201b811115610b2a57600080fd5b820183602082011115610b3c57600080fd5b803590602001918460018302840111600160201b83111715610b5d57600080fd5b919390929091602081019035600160201b811115610b7a57600080fd5b820183602082011115610b8c57600080fd5b803590602001918460018302840111600160201b83111715610bad57600080fd5b5090925090506118ed565b348015610bc457600080fd5b5061043660048036036020811015610bdb57600080fd5b50356001600160a01b031661232a565b348015610bf757600080fd5b5061072661233c565b348015610c0c57600080fd5b5061043661241f565b348015610c2157600080fd5b50610436611632565b348015610c3657600080fd5b5061069f612424565b348015610c4b57600080fd5b5061043661242a565b348015610c6057600080fd5b50610436612469565b348015610c7557600080fd5b50610436612475565b348015610c8a57600080fd5b5061069f61247b565b348015610c9f57600080fd5b50610436612481565b348015610cb457600080fd5b5061041f612486565b348015610cc957600080fd5b50610436612689565b348015610cde57600080fd5b5061041f60048036036020811015610cf557600080fd5b50356001600160a01b031661268f565b348015610d1157600080fd5b5061045d61279d565b61041f60048036036020811015610d3057600080fd5b50356001600160a01b03166127a2565b348015610d4c57600080fd5b50610436612aa7565b348015610d6157600080fd5b5061069f612aad565b348015610d7657600080fd5b506106746118ac565b348015610d8b57600080fd5b5061069f612ab3565b348015610da057600080fd5b50610dbe60048036036020811015610db757600080fd5b5035612ab9565b6040805192835290151560208301528051918290030190f35b348015610de357600080fd5b5061069f612ae7565b6000610df733611712565b9050600b8181548110610e0657fe5b600091825260209091206001601690920201015460ff16610e63576040805162461bcd60e51b81526020600482015260126024820152716e6f7420696e206d61696e74656e616e636560701b604482015290519081900360640190fd5b6000610e6d61242a565b9050610e7a338383612aed565b505050565b60095481565b606481565b60005460609060ff16610ee0576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b3361200014610f205760405162461bcd60e51b815260040180806020018281038252602f815260200180616048602f913960400191505060405180910390fd5b600b54610fc557610f2f6159e1565b60015460005b81811015610fc157600b80546001810182556000919091528351600080516020615fc1833981519152601690920291820190815560208501516000805160206160d18339815191528301805460ff191691151591909117905560408501518592610fb391600080516020616007833981519152909101906014615a05565b505050806001019050610f35565b5050505b610fcd615a3f565b600061100e85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612ce192505050565b915091508061102a576110216064612e3a565b92505050611115565b815160009060ff1661104a576110438360200151612e9b565b90506110e1565b825160ff16600114156110dd578260200151516001146110b7577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2604051808060200182810382526025815260200180615f076025913960400191505060405180910390a15060676110d8565b61104383602001516000815181106110cb57fe5b6020026020010151613cab565b6110e1565b5060655b63ffffffff811661110657505060408051600081526020810190915291506111159050565b61110f81612e3a565b93505050505b9392505050565b60075460ff1681565b60035481565b606881565b6001546000908210611144575060006111fa565b60006001600160a01b03166001838154811061115c57fe5b60009182526020909120600490910201546001600160a01b0316148061118c5750600854158061118c5750600a54155b8061119b575060085460095410155b806111ac57506111aa826111ff565b155b806111d557506000600b83815481106111c157fe5b906000526020600020906016020160000154115b806111e9575060016111e561233c565b5111155b156111f6575060006111fa565b5060015b919050565b6001546000908210611213575060006111fa565b600b548210611250576001828154811061122957fe5b9060005260206000209060040201600201601c9054906101000a900460ff161590506111fa565b6001828154811061125d57fe5b9060005260206000209060040201600201601c9054906101000a900460ff161580156112aa5750600b828154811061129157fe5b600091825260209091206001601690920201015460ff16155b92915050565b33611001146112f05760405162461bcd60e51b81526004018080602001828103825260298152602001806160f16029913960400191505060405180910390fd5b600b54611395576112ff6159e1565b60015460005b8181101561139157600b80546001810182556000919091528351600080516020615fc1833981519152601690920291820190815560208501516000805160206160d18339815191528301805460ff19169115159190911790556040850151859261138391600080516020616007833981519152909101906014615a05565b505050806001019050611305565b5050505b6001600160a01b038116600090815260046020526040902054806113b9575061140c565b6001810390506000600b82815481106113ce57fe5b600091825260209091206001601690920201015460ff1690506113f18383613e22565b80156113fa5750805b15610e7a576009805460001901905550505b50565b61271081565b600181565b61100181565b60085481565b6102ca81565b600881565b600e54600c546060919080611444575060155b606061144e61233c565b905081815111611462579250611529915050565b82828251031015611474578181510392505b82156114a85760c8430461148f82828686036000888861419e565b6114a682828686038787038889898951030161419e565b505b6060826040519080825280602002602001820160405280156114d4578160200160208202803683370190505b50905060005b83811015611522578281815181106114ee57fe5b602002602001015182828151811061150257fe5b6001600160a01b03909216602092830291909101909101526001016114da565b5093505050505b90565b60065481565b61200081565b6001600160a01b038116600090815260046020526040812054806115605760009150506111fa565b60001901611115816111ff565b6001600160a01b038116600090815260046020526040812054806115955760009150506111fa565b6001808203815481106115a457fe5b906000526020600020906004020160030154915050919050565b600081565b606781565b600181815481106115d557fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b61100881565b6103e881565b600b81565b600c5481565b606681565b33612000146116935760405162461bcd60e51b815260040180806020018281038252602f815260200180616048602f913960400191505060405180910390fd5b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a1505050565b60025481565b600a5481565b6001600160a01b0381166000908152600460205260408120548061177d576040805162461bcd60e51b815260206004820152601760248201527f6f6e6c792063757272656e742076616c696461746f7273000000000000000000604482015290519081900360640190fd5b6000190192915050565b600b5461182c576117966159e1565b60015460005b8181101561182857600b80546001810182556000919091528351600080516020615fc1833981519152601690920291820190815560208501516000805160206160d18339815191528301805460ff19169115159190911790556040850151859261181a91600080516020616007833981519152909101906014615a05565b50505080600101905061179c565b5050505b6008546118395760036008555b600a54611846576002600a555b600061185133611712565b905061185c81611130565b6118975760405162461bcd60e51b8152600401808060200182810382526023815260200180615ee46023913960400191505060405180910390fd5b61140c338261428d565b600981565b61100781565b600381565b60c881565b61100681565b604051806101e001604052806101ab8152602001615b3a6101ab913981565b60005460ff1681565b6402540be40081565b60005460ff16611940576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b33611007146119805760405162461bcd60e51b815260040180806020018281038252602e815260200180615f4d602e913960400191505060405180910390fd5b6119ea84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b602082015291506143259050565b15611ac55760208114611a2e5760405162461bcd60e51b8152600401808060200182810382526026815260200180615fe16026913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091611a6c9185858083850183828082843760009201919091525061440c92505050565b905060648110158015611a825750620186a08111155b611abd5760405162461bcd60e51b8152600401808060200182810382526027815260200180615e746027913960400191505060405180910390fd5b600255612298565b611b2584848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260098152686275726e526174696f60b81b602082015291506143259050565b15611c155760208114611b7f576040805162461bcd60e51b815260206004820152601c60248201527f6c656e677468206f66206275726e526174696f206d69736d6174636800000000604482015290519081900360640190fd5b604080516020601f8401819004810282018101909252828152600091611bbd9185858083850183828082843760009201919091525061440c92505050565b9050612710811115611c005760405162461bcd60e51b815260040180806020018281038252602b815260200180615e1e602b913960400191505060405180910390fd5b6006556007805460ff19166001179055612298565b611c7f84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260138152726d61784e756d4f664d61696e7461696e696e6760681b602082015291506143259050565b15611d575760208114611cc35760405162461bcd60e51b8152600401808060200182810382526026815260200180615ce56026913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091611d019185858083850183828082843760009201919091525061440c92505050565b600c5490915080611d10575060155b808210611d4e5760405162461bcd60e51b8152600401808060200182810382526038815260200180615d5c6038913960400191505060405180910390fd5b50600855612298565b611dc084848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61696e7461696e536c6173685363616c6560701b602082015291506143259050565b15611e8b5760208114611e045760405162461bcd60e51b8152600401808060200182810382526025815260200180615d376025913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091611e429185858083850183828082843760009201919091525061440c92505050565b905060008111611e835760405162461bcd60e51b815260040180806020018281038252602d8152602001806160a4602d913960400191505060405180910390fd5b600a55612298565b611eff84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601981527f6d61784e756d4f66576f726b696e6743616e6469646174657300000000000000602082015291506143259050565b15611fcc5760208114611f435760405162461bcd60e51b815260040180806020018281038252602c815260200180615d0b602c913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091611f819185858083850183828082843760009201919091525061440c92505050565b9050600d54811115611fc45760405162461bcd60e51b8152600401808060200182810382526049815260200180615e9b6049913960600191505060405180910390fd5b600e55612298565b61203584848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61784e756d4f6643616e6469646174657360701b602082015291506143259050565b156120d657602081146120795760405162461bcd60e51b8152600401808060200182810382526025815260200180615f7b6025913960400191505060405180910390fd5b604080516020601f84018190048102820181019092528281526000916120b79185858083850183828082843760009201919091525061440c92505050565b600d819055600e549091508110156120d057600d54600e555b50612298565b61213a84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c6e756d4f66436162696e65747360981b602082015291506143259050565b1561225b5760208114612194576040805162461bcd60e51b815260206004820181905260248201527f6c656e677468206f66206e756d4f66436162696e657473206d69736d61746368604482015290519081900360640190fd5b604080516020601f84018190048102820181019092528281526000916121d29185858083850183828082843760009201919091525061440c92505050565b9050600081116122135760405162461bcd60e51b8152600401808060200182810382526028815260200180615d946028913960400191505060405180910390fd5b60298111156122535760405162461bcd60e51b8152600401808060200182810382526039815260200180615dbc6039913960400191505060405180910390fd5b600c55612298565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b60046020526000908152604090205481565b6001546060906000805b8281101561236b57612357816111ff565b15612363576001909101905b600101612346565b50606081604051908082528060200260200182016040528015612398578160200160208202803683370190505b5090506000915060005b83811015612417576123b3816111ff565b1561240f57600181815481106123c557fe5b600091825260209091206004909102015482516001600160a01b03909116908390859081106123f057fe5b6001600160a01b03909216602092830291909101909101526001909201915b6001016123a2565b509250505090565b601581565b61100281565b600061243461233c565b519050600080600c541161244957601561244d565b600c545b90508082111561245b578091505b8161246557600191505b5090565b67016345785d8a000081565b60055481565b61100381565b602981565b60005460ff16156124de576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b6124e6615a3f565b600061250c604051806101e001604052806101ab8152602001615b3a6101ab9139612ce1565b915091508061254c5760405162461bcd60e51b81526004018080602001828103825260218152602001806160276021913960400191505060405180910390fd5b60005b8260200151518110156126715760018360200151828151811061256e57fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a09093015160039093019290925591860151805191850193918590811061264457fe5b602090810291909101810151516001600160a01b031682528101919091526040016000205560010161254f565b50506103e8600255506000805460ff19166001179055565b600d5481565b33611001146126cf5760405162461bcd60e51b81526004018080602001828103825260298152602001806160f16029913960400191505060405180910390fd5b600b54612774576126de6159e1565b60015460005b8181101561277057600b80546001810182556000919091528351600080516020615fc1833981519152601690920291820190815560208501516000805160206160d18339815191528301805460ff19169115159190911790556040850151859261276291600080516020616007833981519152909101906014615a05565b5050508060010190506126e4565b5050505b600061277f82614411565b905061278a81611130565b1561279957612799828261428d565b5050565b606581565b3341146127e05760405162461bcd60e51b815260040180806020018281038252602d815260200180616077602d913960400191505060405180910390fd5b60005460ff16612833576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b60003411612880576040805162461bcd60e51b81526020600482015260156024820152746465706f7369742076616c7565206973207a65726f60581b604482015290519081900360640190fd5b6001600160a01b0381166000908152600460205260409020546007543491906103e89060ff16156128b057506006545b6000831180156128c05750600081115b156129695760006128e96127106128dd868563ffffffff6145b516565b9063ffffffff61460e16565b905080156129675760405161dead9082156108fc029083906000818181858888f19350505050158015612920573d6000803e3d6000fd5b506040805182815290517f627059660ea01c4733a328effb2294d2f86905bf806da763a89cee254de8bee59181900360200190a1612964848263ffffffff61465016565b93505b505b8115612a6157600060018084038154811061298057fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff16156129eb576040805185815290516001600160a01b038716917ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4919081900360200190a2612a5b565b6003546129fe908563ffffffff61469216565b6003908155810154612a16908563ffffffff61469216565b60038201556040805185815290516001600160a01b038716917f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc055919081900360200190a25b50612aa1565b6040805184815290516001600160a01b038616917ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4919081900360200190a25b50505050565b600e5481565b61100081565b61dead81565b600b8181548110612ac657fe5b60009182526020909120601690910201805460019091015490915060ff1682565b61100481565b6000600a5460001480612afe575081155b80612b095750600954155b15612b1657506000611115565b600960008154809291906001900391905055506000612b63600a546128dd856128dd600b8981548110612b4557fe5b6000918252602090912060169091020154439063ffffffff61465016565b90506000600b8581548110612b7457fe5b906000526020600020906016020160010160006101000a81548160ff0219169083151502179055506000806110016001600160a01b0316638256ace66040518163ffffffff1660e01b8152600401604080518083038186803b158015612bd957600080fd5b505afa158015612bed573d6000803e3d6000fd5b505050506040513d6040811015612c0357600080fd5b508051602090910151600095509092509050808310612c9157612c268787613e22565b50604080516305bfb49960e41b81526001600160a01b0389166004820152905161100191635bfb499091602480830192600092919082900301818387803b158015612c7057600080fd5b505af1158015612c84573d6000803e3d6000fd5b5050505060019350612ca3565b818310612ca357612ca187614411565b505b6040516001600160a01b038816907fb9d38178dc641ff1817967a63c9078cbcd955a9f1fcd75e0e3636de615d44d3b90600090a25050509392505050565b612ce9615a3f565b6000612cf3615a3f565b612cfb615a57565b612d0c612d07866146ec565b614711565b90506000805b612d1b8361475b565b15612e2c5780612d4057612d36612d318461477c565b6147ca565b60ff168452612e24565b8060011415612e1f576060612d5c612d578561477c565b614881565b90508051604051908082528060200260200182016040528015612d9957816020015b612d86615a77565b815260200190600190039081612d7e5790505b50602086015260005b8151811015612e1457612db3615a77565b6000612dd1848481518110612dc457fe5b6020026020010151614952565b9150915080612dee57876000995099505050505050505050612e35565b8188602001518481518110612dff57fe5b60209081029190910101525050600101612da2565b506001925050612e24565b612e2c565b600101612d12565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b6060815260200190600190039081612e54579050509050612e7a8363ffffffff16614a2f565b81600081518110612e8757fe5b602002602001018190525061111581614a42565b6000806060612ea984614acc565b9150915081612f56577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2816040518080602001828103825283818151815260200191508051906020019080838360005b83811015612f11578181015183820152602001612ef9565b50505050905090810190601f168015612f3e5780820380516001836020036101000a031916815260200191505b509250505060405180910390a16066925050506111fa565b50506060612f6383614bae565b6001549091506000908190815b81811015612fe65767016345785d8a000060018281548110612f8e57fe5b90600052602060002090600402016003015410612fb057600190930192612fde565b600060018281548110612fbf57fe5b9060005260206000209060040201600301541115612fde576001909201915b600101612f70565b50606083604051908082528060200260200182016040528015613013578160200160208202803683370190505b509050606084604051908082528060200260200182016040528015613042578160200160208202803683370190505b509050606085604051908082528060200260200182016040528015613071578160200160208202803683370190505b5090506060866040519080825280602002602001820160405280156130a0578160200160208202803683370190505b50905060006060876040519080825280602002602001820160405280156130d1578160200160208202803683370190505b509050606088604051908082528060200260200182016040528015613100578160200160208202803683370190505b509050600099506000985060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b15801561314857600080fd5b505afa15801561315c573d6000803e3d6000fd5b505050506040513d602081101561317257600080fd5b5051905067016345785d8a00008111156131e6577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2604051808060200182810382526021815260200180615fa06021913960400191505060405180910390a160689c505050505050505050505050506111fa565b60005b898110156134575767016345785d8a00006001828154811061320757fe5b9060005260206000209060040201600301541061338d576001818154811061322b57fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316898d8151811061325c57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be4006001838154811061329157fe5b906000526020600020906004020160030154816132aa57fe5b06600183815481106132b857fe5b9060005260206000209060040201600301540390506132e0838261465090919063ffffffff16565b898e815181106132ec57fe5b6020026020010181815250506001828154811061330557fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316878e8151811061333657fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081888e8151811061336357fe5b602090810291909101015261337e868263ffffffff61469216565b6001909d019c955061344f9050565b60006001828154811061339c57fe5b906000526020600020906004020160030154111561344f57600181815481106133c157fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316848c815181106133f257fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506001818154811061341f57fe5b906000526020600020906004020160030154838c8151811061343d57fe5b60209081029190910101526001909a01995b6001016131e9565b5060008415613895576110046001600160a01b0316636e056520868b8b8a60025442016040518663ffffffff1660e01b815260040180806020018060200180602001856001600160401b03166001600160401b03168152602001848103845288818151815260200191508051906020019060200280838360005b838110156134e95781810151838201526020016134d1565b50505050905001848103835287818151815260200191508051906020019060200280838360005b83811015613528578181015183820152602001613510565b50505050905001848103825286818151815260200191508051906020019060200280838360005b8381101561356757818101518382015260200161354f565b505050509050019750505050505050506020604051808303818588803b15801561359057600080fd5b505af1935050505080156135b657506040513d60208110156135b157600080fd5b505160015b6137f1576040516000815260443d10156135d25750600061366d565b60046000803e60005160e01c6308c379a081146135f357600091505061366d565b60043d036004833e81513d60248201116001600160401b038211171561361e5760009250505061366d565b80830180516001600160401b0381111561363f57600094505050505061366d565b8060208301013d860181111561365d5760009550505050505061366d565b601f01601f191660405250925050505b80613678575061371c565b60019150857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280826040518080602001828103825283818151815260200191508051906020019080838360005b838110156136dc5781810151838201526020016136c4565b50505050905090810190601f1680156137095780820380516001836020036101000a031916815260200191505b509250505060405180910390a2506137ec565b3d808015613746576040519150601f19603f3d011682016040523d82523d6000602084013e61374b565b606091505b5060019150857fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a45826040518080602001828103825283818151815260200191508051906020019080838360005b838110156137b0578181015183820152602001613798565b50505050905090810190601f1680156137dd5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b613895565b801561382f576040805187815290517fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b709181900360200190a1613893565b604080516020808252601b908201527f6261746368207472616e736665722072657475726e2066616c7365000000000081830152905187917fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280919081900360600190a25b505b8015613a4b5760005b8751811015613a495760008882815181106138b557fe5b602002602001015190506000600182815481106138ce57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc91859081106138ff57fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f19350505050905080156139bb576001828154811061394057fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d918590811061398f57fe5b9060005260206000209060040201600301546040518082815260200191505060405180910390a2613a3f565b600182815481106139c857fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d9185908110613a1757fe5b9060005260206000209060040201600301546040518082815260200191505060405180910390a25b505060010161389e565b505b835115613b955760005b8451811015613b93576000858281518110613a6c57fe5b60200260200101516001600160a01b03166108fc868481518110613a8c57fe5b60200260200101519081150290604051600060405180830381858888f1935050505090508015613b2257858281518110613ac257fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d868481518110613b0057fe5b60200260200101516040518082815260200191505060405180910390a2613b8a565b858281518110613b2e57fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d868481518110613b6c57fe5b60200260200101516040518082815260200191505060405180910390a25b50600101613a55565b505b4715613bfe576040805147815290517f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d9181900360200190a1604051611002904780156108fc02916000818181858888f19350505050158015613bfc573d6000803e3d6000fd5b505b600060038190556005558c5115613c1857613c188d614d7e565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015613c5557600080fd5b505af1158015613c69573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a15060009e9d5050505050505050505050505050565b80516001600160a01b0316600090815260046020526040812054801580613cfc5750600180820381548110613cdc57fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b15613d425782516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a260009150506111fa565b600154600554600019820111801590613d985784516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a2600093505050506111fa565b600580546001908101909155805481906000198601908110613db657fe5b6000918252602082206002600490920201018054921515600160e01b0260ff60e01b199093169290921790915585516040516001600160a01b03909116917ff226e7d8f547ff903d9d419cf5f54e0d7d07efa9584135a53a057c5f1f27f49a91a2506000949350505050565b60008060018381548110613e3257fe5b90600052602060002090600402016003015490506000600180805490500390506001613e5c61233c565b5111613e9157600060018581548110613e7157fe5b9060005260206000209060040201600301819055506000925050506112aa565b6040805183815290516001600160a01b038716917f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a70919081900360200190a26001600160a01b038516600090815260046020526040812055835b6001546000190181101561408e5760018160010181548110613f0957fe5b906000526020600020906004020160018281548110613f2457fe5b60009182526020909120825460049092020180546001600160a01b03199081166001600160a01b0393841617825560018085015481840180548416918616919091179055600280860180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b19909416939093179055600392830154920191909155600b805490918301908110613fe557fe5b9060005260206000209060160201600b828154811061400057fe5b600091825260209091208254601690920201908155600180830154908201805460ff191660ff909216151591909117905561404360028083019084016014615aac565b5090505080600101600460006001848154811061405c57fe5b600091825260208083206004909202909101546001600160a01b03168352820192909252604001902055600101613eeb565b50600180548061409a57fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b8054806140ed57fe5b60008281526020812060166000199093019283020181815560018101805460ff191690559061411f6002830182615ad7565b50509055600081838161412e57fe5b04905080156141925760015460005b8181101561418f57826001828154811061415357fe5b906000526020600020906004020160030154016001828154811061417357fe5b600091825260209091206003600490920201015560010161413d565b50505b50600195945050505050565b60005b828110156142845760408051602080820189905287840182840152825180830384018152606090920190925280519101206000908390816141de57fe5b0690508085018287011461427b57600088838801815181106141fc57fe5b60200260200101519050888287018151811061421457fe5b6020026020010151898489018151811061422a57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505080898388018151811061425957fe5b60200260200101906001600160a01b031690816001600160a01b031681525050505b506001016141a1565b50505050505050565b600980546001908101909155600b8054839081106142a757fe5b906000526020600020906016020160010160006101000a81548160ff02191690831515021790555043600b82815481106142dd57fe5b600091825260208220601690910201919091556040516001600160a01b038416917ff62981a567ec3cec866c6fa93c55bcdf841d6292d18b8d522ececa769375d82d91a25050565b6000816040516020018082805190602001908083835b6020831061435a5780518252601f19909201916020918201910161433b565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106143c85780518252601f1990920191602091820191016143a9565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b6001600160a01b0381166000908152600460205260408120548061443a575060001990506111fa565b60018103905060006001828154811061444f57fe5b906000526020600020906004020160030154905060006001838154811061447257fe5b906000526020600020906004020160030181905550600060018080549050039050846001600160a01b03167f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d836040518082815260200191505060405180910390a2806144e4578293505050506111fa565b60008183816144ef57fe5b04905080156145ab5760005b8481101561454d57816001828154811061451157fe5b906000526020600020906004020160030154016001828154811061453157fe5b60009182526020909120600360049092020101556001016144fb565b50600180549085015b818110156145a857826001828154811061456c57fe5b906000526020600020906004020160030154016001828154811061458c57fe5b6000918252602090912060036004909202010155600101614556565b50505b5091949350505050565b6000826145c4575060006112aa565b828202828482816145d157fe5b04146111155760405162461bcd60e51b8152600401808060200182810382526021815260200180615f2c6021913960400191505060405180910390fd5b600061111583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250615371565b600061111583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250615413565b600082820183811015611115576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6146f4615ae6565b506040805180820190915281518152602082810190820152919050565b614719615a57565b6147228261546d565b61472b57600080fd5b600061473a83602001516154a7565b60208085015160408051808201909152868152920190820152915050919050565b6000614765615ae6565b505080518051602091820151919092015191011190565b614784615ae6565b61478d8261475b565b61479657600080fd5b602082015160006147a68261550a565b80830160209586015260408051808201909152908152938401919091525090919050565b8051600090158015906147df57508151602110155b6147e857600080fd5b60006147f783602001516154a7565b90508083600001511015614852576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b82516020808501518301805192849003929183101561487857826020036101000a820491505b50949350505050565b606061488c8261546d565b61489557600080fd5b60006148a08361563d565b90506060816040519080825280602002602001820160405280156148de57816020015b6148cb615ae6565b8152602001906001900390816148c35790505b50905060006148f085602001516154a7565b60208601510190506000805b848110156149475761490d8361550a565b915060405180604001604052808381526020018481525084828151811061493057fe5b6020908102919091010152918101916001016148fc565b509195945050505050565b61495a615a77565b6000614964615a77565b61496c615a57565b61497585614711565b90506000805b6149848361475b565b15612e2c57806149af5761499f61499a8461477c565b615699565b6001600160a01b03168452614a27565b80600114156149d7576149c461499a8461477c565b6001600160a01b03166020850152614a27565b80600214156149ff576149ec61499a8461477c565b6001600160a01b03166040850152614a27565b8060031415612e1f57614a14612d318461477c565b6001600160401b03166060850152600191505b60010161497b565b60606112aa614a3d836156b3565b615799565b6060815160001415614a6357506040805160008152602081019091526111fa565b606082600081518110614a7257fe5b602002602001015190506000600190505b8351811015614ab357614aa982858381518110614a9c57fe5b60200260200101516157eb565b9150600101614a83565b50611115614ac6825160c060ff16615868565b826157eb565b60006060602983511115614afe576000604051806060016040528060298152602001615df56029913991509150612e35565b60005b8351811015614b945760005b81811015614b8b57848181518110614b2157fe5b6020026020010151600001516001600160a01b0316858381518110614b4257fe5b6020026020010151600001516001600160a01b03161415614b835760006040518060600160405280602b8152602001615e49602b9139935093505050612e35565b600101614b0d565b50600101614b01565b505060408051602081019091526000815260019150915091565b6060600080808080614bbe61242a565b6001549091505b8015614ccc57600181039250600b8381548110614bde57fe5b600091825260209091206001601690920201015460ff16614bfe57614cc3565b60018381548110614c0b57fe5b60009182526020909120600490910201546001600160a01b03169450614c32858484612aed565b9350831580614c45575060018851038610155b15614c4f57614cc3565b60005b8851811015614cc157856001600160a01b0316898281518110614c7157fe5b6020026020010151600001516001600160a01b03161415614cb9576001898281518110614c9a57fe5b6020908102919091010151901515608090910152600190960195614cc1565b600101614c52565b505b60001901614bc5565b5084875103604051908082528060200260200182016040528015614d0a57816020015b614cf7615a77565b815260200190600190039081614cef5790505b5095506000915060005b8751811015614d7357878181518110614d2957fe5b602002602001015160800151614d6b57878181518110614d4557fe5b6020026020010151878481518110614d5957fe5b60209081029190910101526001909201915b600101614d14565b505050505050919050565b600154815160005b82811015614e9b576001614d98615a77565b60018381548110614da557fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b84811015614e6f57868181518110614e3557fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b03161415614e675760009250614e6f565b600101614e21565b508115614e915780516001600160a01b03166000908152600460205260408120555b5050600101614d86565b5080821115614f4c57805b82811015614f4a576001805480614eb957fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b805480614f0c57fe5b60008281526020812060166000199093019283020181815560018101805460ff1916905590614f3e6002830182615ad7565b50509055600101614ea6565b505b6000818310614f5b5781614f5d565b825b905060005b818110156151575761500f858281518110614f7957fe5b602002602001015160018381548110614f8e57fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a0820152615960565b61512a57806001016004600087848151811061502757fe5b6020026020010151600001516001600160a01b03166001600160a01b031681526020019081526020016000208190555084818151811061506357fe5b60200260200101516001828154811061507857fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a09091015160039091015561514f565b60006001828154811061513957fe5b9060005260206000209060040201600301819055505b600101614f62565b50828211156152fc576151686159e1565b835b838110156152f957600186828151811061518057fe5b6020908102919091018101518254600181810185556000948552838520835160049093020180546001600160a01b039384166001600160a01b0319918216178255848601518284018054918616918316919091179055604080860151600284018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909a1692909616919091179290921696909617169190911790935560a090930151600390930192909255600b8054928301815590935284516016909102600080516020615fc18339815191528101918255918501516000805160206160d18339815191528301805491151560ff19909216919091179055918401518492916152b591600080516020616007833981519152909101906014615a05565b50505080600101600460008884815181106152cc57fe5b602090810291909101810151516001600160a01b031682528101919091526040016000205560010161516a565b50505b6000600981905560015493505b8381101561536a576000600b828154811061532057fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b80548390811061535157fe5b6000918252602090912060169091020155600101615309565b5050505050565b600081836153fd5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156153c25781810151838201526020016153aa565b50505050905090810190601f1680156153ef5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161540957fe5b0495945050505050565b600081848411156154655760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156153c25781810151838201526020016153aa565b505050900390565b805160009061547e575060006111fa565b6020820151805160001a9060c082101561549d576000925050506111fa565b5060019392505050565b8051600090811a60808110156154c15760009150506111fa565b60b88110806154dc575060c081108015906154dc575060f881105b156154eb5760019150506111fa565b60c08110156154ff5760b5190190506111fa565b60f5190190506111fa565b80516000908190811a60808110156155255760019150615636565b60b881101561553a57607e1981019150615636565b60c08110156155b457600060b78203600186019550806020036101000a8651049150600181018201935050808310156155ae576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50615636565b60f88110156155c95760be1981019150615636565b600060f78203600186019550806020036101000a865104915060018101820193505080831015615634576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b805160009061564e575060006111fa565b6000809050600061566284602001516154a7565b602085015185519181019250015b80821015615690576156818261550a565b60019093019290910190615670565b50909392505050565b80516000906015146156aa57600080fd5b6112aa826147ca565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166156f75750601861571b565b6fffffffffffffffffffffffffffffffff1984166157175750601061571b565b5060005b60208110156157515781818151811061573057fe5b01602001516001600160f81b0319161561574957615751565b60010161571b565b60008160200390506060816040519080825280601f01601f191660200182016040528015615786576020820181803683370190505b5080830196909652508452509192915050565b6060815160011480156157cb5750607f60f81b826000815181106157b957fe5b01602001516001600160f81b03191611155b156157d75750806111fa565b6112aa6157e98351608060ff16615868565b835b6060806040519050835180825260208201818101602087015b8183101561581c578051835260209283019201615804565b50855184518101855292509050808201602086015b81831015615849578051835260209283019201615831565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106158b8576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b604080516001808252818301909252606091602082018180368337019050509050603784116159125782840160f81b816000815181106158f457fe5b60200101906001600160f81b031916908160001a90535090506112aa565b606061591d856156b3565b90508381510160370160f81b8260008151811061593657fe5b60200101906001600160f81b031916908160001a90535061595782826157eb565b95945050505050565b805182516000916001600160a01b03918216911614801561599a575081602001516001600160a01b031683602001516001600160a01b0316145b80156159bf575081604001516001600160a01b031683604001516001600160a01b0316145b80156111155750506060908101519101516001600160401b0390811691161490565b6040805160608101825260008082526020820152908101615a00615b00565b905290565b8260148101928215615a33579160200282015b82811115615a33578251825591602001919060010190615a18565b50612465929150615b1f565b60408051808201909152600081526060602082015290565b6040518060400160405280615a6a615ae6565b8152602001600081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b8260148101928215615a33579182015b82811115615a33578254825591600101919060010190615abc565b5061140c906014810190615b1f565b604051806040016040528060008152602001600081525090565b6040518061028001604052806014906020820280368337509192915050565b61152991905b808211156124655760008155600101615b2556fef901a880f901a4f844941284214b9b9c85549ab3d2b972df0deef66ac2c9946ddf42a51534fc98d0c0a3b42c963cace8441ddf946ddf42a51534fc98d0c0a3b42c963cace8441ddf8410000000f84494a2959d3f95eae5dc7d70144ce1b73b403b7eb6e0948081ef03f1d9e0bb4a5bf38f16285c879299f07f948081ef03f1d9e0bb4a5bf38f16285c879299f07f8410000000f8449435552c16704d214347f29fa77f77da6d75d7c75294dc4973e838e3949c77aced16ac2315dc2d7ab11194dc4973e838e3949c77aced16ac2315dc2d7ab1118410000000f84494980a75ecd1309ea12fa2ed87a8744fbfc9b863d594cc6ac05c95a99c1f7b5f88de0e3486c82293b27094cc6ac05c95a99c1f7b5f88de0e3486c82293b2708410000000f84494f474cf03cceff28abc65c9cbae594f725c80e12d94e61a183325a18a173319dd8e19c8d069459e217594e61a183325a18a173319dd8e19c8d069459e21758410000000f84494b71b214cb885500844365e95cd9942c7276e7fd894d22ca3ba2141d23adab65ce4940eb7665ea2b6a794d22ca3ba2141d23adab65ce4940eb7665ea2b6a784100000006c656e677468206f66206d61784e756d4f664d61696e7461696e696e67206d69736d617463686c656e677468206f66206d61784e756d4f66576f726b696e6743616e64696461746573206d69736d617463686c656e677468206f66206d61696e7461696e536c6173685363616c65206d69736d61746368746865206d61784e756d4f664d61696e7461696e696e67206d757374206265206c657373207468616e206e756d4f6643616e696e61746573746865206e756d4f66436162696e657473206d7573742062652067726561746572207468616e2030746865206e756d4f66436162696e657473206d757374206265206c657373207468616e204d41585f4e554d5f4f465f56414c494441544f5253746865206e756d626572206f662076616c696461746f72732065786365656420746865206c696d6974746865206275726e526174696f206d757374206265206e6f2067726561746572207468616e2031303030306475706c696361746520636f6e73656e7375732061646472657373206f662076616c696461746f725365747468652065787069726554696d655365636f6e64476170206973206f7574206f662072616e6765746865206d61784e756d4f66576f726b696e6743616e64696461746573206d757374206265206e6f742067726561746572207468616e206d61784e756d4f6643616e6469646174657363616e206e6f7420656e7465722054656d706f72617279204d61696e74656e616e63656c656e677468206f66206a61696c2076616c696461746f7273206d757374206265206f6e65536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f66206d61784e756d4f6643616e64696461746573206d69736d61746368666565206973206c6172676572207468616e2044555354595f494e434f4d494e470175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db96c656e677468206f662065787069726554696d655365636f6e64476170206d69736d617463680175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbb6661696c656420746f20706172736520696e69742076616c696461746f72536574746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d6573736167652073656e646572206d7573742062652074686520626c6f636b2070726f6475636572746865206d61696e7461696e536c6173685363616c65206d7573742062652067726561746572207468616e20300175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dba746865206d6573736167652073656e646572206d75737420626520736c61736820636f6e7472616374a26469706673582212207d06d87a731c4f784da075c7514dda45d8e95322210e57cff56c67307efa97d164736f6c63430006040033", - }, - { - ContractAddr: SlashContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/db8bb560ac5a1265c685b719c7e976dced162310", - Code: "608060405234801561001057600080fd5b506004361061023d5760003560e01c80638256ace61161013b578063c80d4b8f116100b8578063e1c7392a1161007c578063e1c7392a1461071d578063f9a2bbc714610725578063fc3e59081461072d578063fc4333cd14610735578063fd6a68791461073d5761023d565b8063c80d4b8f14610667578063c81b16621461066f578063c8509d8114610677578063c96be4cb146106ef578063dc927faf146107155761023d565b8063a1a11bf5116100ff578063a1a11bf514610575578063a78abc161461057d578063ab51bb9614610599578063ac0af629146105a1578063ac431751146105a95761023d565b80638256ace6146104dd578063831d65d1146104e557806396713da91461055d5780639bc8e4f2146105655780639dc092621461056d5761023d565b80634bf6c882116101c95780636e47b4821161018d5780636e47b482146104b557806370fd5bad146104bd57806375d47a0a146104c55780637912a65d146104cd5780637942fd05146104d55761023d565b80634bf6c8821461046d57806351e8067214610475578063567a372d1461047d5780635bfb49901461048557806362b72cf5146104ad5761023d565b806337c8dab91161021057806337c8dab9146103cf578063389f4f711461040e5780633dffc3871461042857806343756e5c14610446578063493279b11461044e5761023d565b80630bee7a67146102425780631182b8751461026357806323bac5a21461035057806335aa2e4414610396575b600080fd5b61024a610745565b6040805163ffffffff9092168252519081900360200190f35b6102db6004803603604081101561027957600080fd5b60ff8235169190810190604081016020820135600160201b81111561029d57600080fd5b8201836020820111156102af57600080fd5b803590602001918460018302840111600160201b831117156102d057600080fd5b50909250905061074a565b6040805160208082528351818301528351919283929083019185019080838360005b838110156103155781810151838201526020016102fd565b50505050905090810190601f1680156103425780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103766004803603602081101561036657600080fd5b50356001600160a01b031661081e565b604080519384526020840192909252151582820152519081900360600190f35b6103b3600480360360208110156103ac57600080fd5b5035610841565b604080516001600160a01b039092168252519081900360200190f35b6103f5600480360360208110156103e557600080fd5b50356001600160a01b0316610868565b6040805192835260208301919091528051918290030190f35b6104166108bf565b60408051918252519081900360200190f35b6104306108c5565b6040805160ff9092168252519081900360200190f35b6103b36108ca565b6104566108d0565b6040805161ffff9092168252519081900360200190f35b6104306108d6565b6103b36108db565b6104166108e1565b6104ab6004803603602081101561049b57600080fd5b50356001600160a01b03166108e7565b005b610416610a48565b6103b3610a4e565b610430610a54565b6103b3610a59565b610416610a5f565b610430610a64565b6103f5610a69565b6104ab600480360360408110156104fb57600080fd5b60ff8235169190810190604081016020820135600160201b81111561051f57600080fd5b82018360208201111561053157600080fd5b803590602001918460018302840111600160201b8311171561055257600080fd5b509092509050610a73565b610430610bcd565b610416610bd2565b6103b3610bdd565b6103b3610be3565b610585610be9565b604080519115158252519081900360200190f35b61024a610bf2565b610416610bf7565b6104ab600480360360408110156105bf57600080fd5b810190602081018135600160201b8111156105d957600080fd5b8201836020820111156105eb57600080fd5b803590602001918460018302840111600160201b8311171561060c57600080fd5b919390929091602081019035600160201b81111561062957600080fd5b82018360208201111561063b57600080fd5b803590602001918460018302840111600160201b8311171561065c57600080fd5b509092509050610bfc565b610416610fea565b6103b3610fef565b6104ab6004803603604081101561068d57600080fd5b60ff8235169190810190604081016020820135600160201b8111156106b157600080fd5b8201836020820111156106c357600080fd5b803590602001918460018302840111600160201b831117156106e457600080fd5b509092509050610ff5565b6104ab6004803603602081101561070557600080fd5b50356001600160a01b03166110a8565b6103b361154b565b6104ab611551565b6103b36115c2565b6104306115c8565b6104ab6115cd565b6103b3611a58565b606481565b6060336120001461078c5760405162461bcd60e51b815260040180806020018281038252602f8152602001806124b0602f913960400191505060405180910390fd5b60005460ff166107d1576040805162461bcd60e51b8152602060048201526019602482015260008051602061250c833981519152604482015290519081900360640190fd5b6040805162461bcd60e51b815260206004820152601e60248201527f7265636569766520756e65787065637465642073796e207061636b6167650000604482015290519081900360640190fd5b600260208190526000918252604090912080546001820154919092015460ff1683565b6001818154811061084e57fe5b6000918252602090912001546001600160a01b0316905081565b600080610873612374565b5050506001600160a01b0316600090815260026020818152604092839020835160608101855281548082526001830154938201849052919093015460ff16151592909301919091529091565b60055481565b600181565b61100181565b6102ca81565b600881565b61200081565b60045481565b33611000146109275760405162461bcd60e51b815260040180806020018281038252603081526020018061240b6030913960400191505060405180910390fd5b60005460ff1661096c576040805162461bcd60e51b8152602060048201526019602482015260008051602061250c833981519152604482015290519081900360640190fd5b61200063f7a251d7600b61097f84611a5e565b60006040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156109df5781810151838201526020016109c7565b50505050905090810190601f168015610a0c5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015610a2d57600080fd5b505af1158015610a41573d6000803e3d6000fd5b5050505050565b60035481565b61100581565b600281565b61100881565b603281565b600b81565b6004546005549091565b3361200014610ab35760405162461bcd60e51b815260040180806020018281038252602f8152602001806124b0602f913960400191505060405180910390fd5b60005460ff16610af8576040805162461bcd60e51b8152602060048201526019602482015260008051602061250c833981519152604482015290519081900360640190fd5b610b00612397565b6000610b4184848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611b3192505050565b915091508015610b8b5781516040805163ffffffff9092168252517f7f0956d47419b9525356e7111652b653b530ec6f5096dccc04589bc38e6299679181900360200190a1610a41565b81516040805163ffffffff9092168252517f7d45f62d17443dd4547bca8a8112c60e2385669318dc300ec61a5d2492f262e79181900360200190a15050505050565b600981565b662386f26fc1000081565b61100781565b61100681565b60005460ff1681565b600081565b600481565b60005460ff16610c41576040805162461bcd60e51b8152602060048201526019602482015260008051602061250c833981519152604482015290519081900360640190fd5b3361100714610c815760405162461bcd60e51b815260040180806020018281038252602e81526020018061243b602e913960400191505060405180910390fd5b610cec84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260148152731b5a5cd9195b59585b9bdc951a1c995cda1bdb1960621b60208201529150611bb19050565b15610dc55760208114610d305760405162461bcd60e51b81526004018080602001828103825260278152602001806123e46027913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610d6e91858580838501838280828437600092019190915250611c9992505050565b905060018110158015610d82575060055481105b610dbd5760405162461bcd60e51b815260040180806020018281038252602581526020018061248b6025913960400191505060405180910390fd5b600455610f58565b610e2b84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e19995b1bdb9e551a1c995cda1bdb19608a1b60208201529150611bb19050565b15610f1b5760208114610e6f5760405162461bcd60e51b81526004018080602001828103825260228152602001806124696022913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610ead91858580838501838280828437600092019190915250611c9992505050565b90506103e88111158015610ec2575060045481115b610f13576040805162461bcd60e51b815260206004820181905260248201527f7468652066656c6f6e795468726573686f6c64206f7574206f662072616e6765604482015290519081900360640190fd5b600555610f58565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b609681565b61100281565b33612000146110355760405162461bcd60e51b815260040180806020018281038252602f8152602001806124b0602f913960400191505060405180910390fd5b60005460ff1661107a576040805162461bcd60e51b8152602060048201526019602482015260008051602061250c833981519152604482015290519081900360640190fd5b6040517f07db600eebe2ac176be8dcebad61858c245a4961bb32ca2aa3d159b09aa0810e90600090a1505050565b3341146110e65760405162461bcd60e51b815260040180806020018281038252602d8152602001806124df602d913960400191505060405180910390fd5b60005460ff1661112b576040805162461bcd60e51b8152602060048201526019602482015260008051602061250c833981519152604482015290519081900360640190fd5b6003544311611181576040805162461bcd60e51b815260206004820181905260248201527f63616e206e6f7420736c61736820747769636520696e206f6e6520626c6f636b604482015290519081900360640190fd5b3a156111cb576040805162461bcd60e51b81526020600482015260146024820152736761737072696365206973206e6f74207a65726f60601b604482015290519081900360640190fd5b6040805163155853f360e21b81526001600160a01b03831660048201529051611000916355614fcc916024808301926020929190829003018186803b15801561121357600080fd5b505afa158015611227573d6000803e3d6000fd5b505050506040513d602081101561123d57600080fd5b505161124857611544565b611250612374565b506001600160a01b0381166000908152600260208181526040928390208351606081018552815481526001820154928101929092529091015460ff1615801592820192909252906112ab576020810180516001019052611304565b60016040820181905260208201819052805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0384161790555b43815260055460208201518161131657fe5b0661146857600060208201819052604080516335409f7f60e01b81526001600160a01b03851660048201529051611000926335409f7f926024808201939182900301818387803b15801561136957600080fd5b505af115801561137d573d6000803e3d6000fd5b505050506120006001600160a01b031663f7a251d7600b61139d85611a5e565b60006040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156113fd5781810151838201526020016113e5565b50505050905090810190601f16801561142a5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561144b57600080fd5b505af115801561145f573d6000803e3d6000fd5b505050506114de565b60045481602001518161147757fe5b066114de57604080516375abf10160e11b81526001600160a01b038416600482015290516110009163eb57e20291602480830192600092919082900301818387803b1580156114c557600080fd5b505af11580156114d9573d6000803e3d6000fd5b505050505b6001600160a01b0382166000818152600260208181526040808420865181559186015160018301558581015191909201805460ff1916911515919091179055517fddb6012116e51abf5436d956a4f0ebd927e92c576ff96d7918290c8782291e3e9190a2505b5043600355565b61100381565b60005460ff16156115a9576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b603260045560966005556000805460ff19166001179055565b61100081565b600381565b336110001461160d5760405162461bcd60e51b815260040180806020018281038252603081526020018061240b6030913960400191505060405180910390fd5b60005460ff16611652576040805162461bcd60e51b8152602060048201526019602482015260008051602061250c833981519152604482015290519081900360640190fd5b60015461165e57611a56565b600154600090600019015b808211611a2a576000805b8284101561178d57611684612374565b600260006001878154811061169557fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff1615159082015260055490915060049004816020015111156117775760046005548161170257fe5b0481602001510381602001818152505080600260006001888154811061172457fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208351815591830151600183015591909101516002909101805460ff1916911515919091179055611781565b600192505061178d565b50600190930192611674565b8284116119245761179c612374565b60026000600186815481106117ad57fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff1615159082015260055490915060049004816020015111156118955760046005548161181a57fe5b0481602001510381602001818152505080600260006001878154811061183c57fe5b6000918252602080832091909101546001600160a01b03168352828101939093526040918201902083518155918301516001808401919091559201516002909101805460ff191691151591909117905591506119249050565b60026000600186815481106118a657fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff191690558054806118ea57fe5b600082815260209020810160001990810180546001600160a01b0319169055019055836119175750611924565b506000199092019161178d565b81801561192e5750805b15611a0d57600260006001868154811061194457fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff1916905580548490811061198b57fe5b600091825260209091200154600180546001600160a01b0390921691869081106119b157fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060018054806119ea57fe5b600082815260209020810160001990810180546001600160a01b03191690550190555b82611a19575050611a2a565b505060019091019060001901611669565b6040517fcfdb3b6ccaeccbdc68be3c59c840e3b3c90f0a7c491f5fff1cf56cfda200dd9c90600090a150505b565b61100481565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081611a79579050509050611aa2836001600160a01b0316611c9e565b81600081518110611aaf57fe5b6020026020010181905250611ac343611cc1565b81600181518110611ad057fe5b6020908102919091010152611ae66102ca611cc1565b81600281518110611af357fe5b6020026020010181905250611b0742611cc1565b81600381518110611b1457fe5b6020026020010181905250611b2881611cd4565b9150505b919050565b611b39612397565b6000611b43612397565b611b4b6123a9565b611b5c611b5786611d5e565b611d83565b90506000805b611b6b83611dcd565b15611ba45780611b9757611b86611b8184611dee565b611e3c565b63ffffffff16845260019150611b9c565b611ba4565b600101611b62565b5091935090915050915091565b6000816040516020018082805190602001908083835b60208310611be65780518252601f199092019160209182019101611bc7565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310611c545780518252601f199092019160209182019101611c35565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052805190602001201490505b92915050565b015190565b60408051600560a21b8318601482015260348101909152606090611b2881611ef3565b6060611c93611ccf83611f49565b611ef3565b6060815160001415611cf55750604080516000815260208101909152611b2c565b606082600081518110611d0457fe5b602002602001015190506000600190505b8351811015611d4557611d3b82858381518110611d2e57fe5b602002602001015161202f565b9150600101611d15565b50611b28611d58825160c060ff166120ac565b8261202f565b611d666123c9565b506040805180820190915281518152602082810190820152919050565b611d8b6123a9565b611d94826121a4565b611d9d57600080fd5b6000611dac83602001516121de565b60208085015160408051808201909152868152920190820152915050919050565b6000611dd76123c9565b505080518051602091820151919092015191011190565b611df66123c9565b611dff82611dcd565b611e0857600080fd5b60208201516000611e1882612241565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590611e5157508151602110155b611e5a57600080fd5b6000611e6983602001516121de565b90508083600001511015611ec4576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015611eea57826020036101000a820491505b50949350505050565b606081516001148015611f255750607f60f81b82600081518110611f1357fe5b01602001516001600160f81b03191611155b15611f31575080611b2c565b611c93611f438351608060ff166120ac565b8361202f565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416611f8d57506018611fb1565b6fffffffffffffffffffffffffffffffff198416611fad57506010611fb1565b5060005b6020811015611fe757818181518110611fc657fe5b01602001516001600160f81b03191615611fdf57611fe7565b600101611fb1565b60008160200390506060816040519080825280601f01601f19166020018201604052801561201c576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b81831015612060578051835260209283019201612048565b50855184518101855292509050808201602086015b8183101561208d578051835260209283019201612075565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106120fc576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b604080516001808252818301909252606091602082018180368337019050509050603784116121565782840160f81b8160008151811061213857fe5b60200101906001600160f81b031916908160001a9053509050611c93565b606061216185611f49565b90508381510160370160f81b8260008151811061217a57fe5b60200101906001600160f81b031916908160001a90535061219b828261202f565b95945050505050565b80516000906121b557506000611b2c565b6020820151805160001a9060c08210156121d457600092505050611b2c565b5060019392505050565b8051600090811a60808110156121f8576000915050611b2c565b60b8811080612213575060c08110801590612213575060f881105b15612222576001915050611b2c565b60c08110156122365760b519019050611b2c565b60f519019050611b2c565b80516000908190811a608081101561225c576001915061236d565b60b881101561227157607e198101915061236d565b60c08110156122eb57600060b78203600186019550806020036101000a8651049150600181018201935050808310156122e5576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b5061236d565b60f88110156123005760be198101915061236d565b600060f78203600186019550806020036101000a86510491506001810182019350508083101561236b576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b604051806060016040528060008152602001600081526020016000151581525090565b60408051602081019091526000815290565b60405180604001604052806123bc6123c9565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe6c656e677468206f66206d697364656d65616e6f725468726573686f6c64206d69736d61746368746865206d6573736167652073656e646572206d7573742062652076616c696461746f7253657420636f6e7472616374746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662066656c6f6e795468726573686f6c64206d69736d61746368746865206d697364656d65616e6f725468726573686f6c64206f7574206f662072616e6765746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d6573736167652073656e646572206d7573742062652074686520626c6f636b2070726f647563657274686520636f6e7472616374206e6f7420696e69742079657400000000000000a2646970667358221220cc16be27360652de46deaec4be6263ad1d90d5a454d0f34c9ca0f4c36e67819264736f6c63430006040033", - }, - }, - } - - GibbsUpgrade[networkname.ChapelChainName] = &Upgrade{ - UpgradeName: "gibbs", - Configs: []*UpgradeConfig{ - { - ContractAddr: TokenHubContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/9d45b31c12b2c04757284717f4351cb44e81a3a7", - Code: "60806040526004361061036f5760003560e01c80639a854bbd116101c6578063bd466461116100f7578063f014847211610095578063fc1a598f1161006f578063fc1a598f14610d58578063fc3e590814610a3b578063fd6a687914610d8b578063ff9c0027146106ec576103b7565b8063f014847214610d19578063f9a2bbc714610d2e578063fa9e915914610d43576103b7565b8063d9e6dae9116100d1578063d9e6dae91461066e578063dc927faf14610cda578063e1c7392a14610cef578063ebf71d5314610d04576103b7565b8063bd46646114610c0d578063c81b166214610c40578063c8509d8114610c55576103b7565b8063aa7415f511610164578063b99328c51161013e578063b99328c514610b77578063b9fd21e314610bb0578063ba35ead614610bc5578063bbface1f14610bda576103b7565b8063aa7415f514610a50578063ab51bb9614610a97578063ac43175114610aac576103b7565b8063a1a11bf5116101a0578063a1a11bf5146109fc578063a496fba214610a11578063a78abc1614610a26578063a7c9f02d14610a3b576103b7565b80639a854bbd146109995780639a99b4f0146109ae5780639dc09262146109e7576103b7565b806361368475116102a0578063727be1f81161023e578063831d65d111610218578063831d65d1146108c05780638b87b21f146105ed5780638eff336c1461094557806396713da914610984576103b7565b8063727be1f81461086c57806375d47a0a146108965780637942fd05146108ab576103b7565b80636e47b4821161027a5780636e47b4821461082d57806370fd5bad146106ec578063718a8aa81461084257806371d3086314610857576103b7565b8063613684751461066e57806366dea52a146106ec5780636e05652014610701576103b7565b806343a368b91161030d57806350432d32116102e757806350432d321461068357806351e806721461069857806359b92789146106ad5780635d499b1b146106d7576103b7565b806343a368b91461062d578063493279b1146106425780634bf6c8821461066e576103b7565b8063149d14d911610349578063149d14d9146105155780633d7132231461053c5780633dffc387146105ed57806343756e5c14610618576103b7565b80630bee7a67146103bc5780630e2374a5146103ea5780631182b8751461041b576103b7565b366103b75734156103b5576040805133815234602082015281517f6c98249d85d88c3753a04a22230f595e4dc8d3dc86c34af35deeeedc861b89db929181900390910190a15b005b600080fd5b3480156103c857600080fd5b506103d1610da0565b6040805163ffffffff9092168252519081900360200190f35b3480156103f657600080fd5b506103ff610da5565b604080516001600160a01b039092168252519081900360200190f35b34801561042757600080fd5b506104a06004803603604081101561043e57600080fd5b60ff8235169190810190604081016020820135600160201b81111561046257600080fd5b82018360208201111561047457600080fd5b803590602001918460018302840111600160201b8311171561049557600080fd5b509092509050610dab565b6040805160208082528351818301528351919283929083019185019080838360005b838110156104da5781810151838201526020016104c2565b50505050905090810190601f1680156105075780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561052157600080fd5b5061052a610ed9565b60408051918252519081900360200190f35b34801561054857600080fd5b506103ff6004803603602081101561055f57600080fd5b810190602081018135600160201b81111561057957600080fd5b82018360208201111561058b57600080fd5b803590602001918460018302840111600160201b831117156105ac57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610edf945050505050565b3480156105f957600080fd5b50610602610f03565b6040805160ff9092168252519081900360200190f35b34801561062457600080fd5b506103ff610f08565b34801561063957600080fd5b5061052a610f0e565b34801561064e57600080fd5b50610657610f1a565b6040805161ffff9092168252519081900360200190f35b34801561067a57600080fd5b50610602610f1f565b34801561068f57600080fd5b5061052a610f24565b3480156106a457600080fd5b506103ff610f2f565b3480156106b957600080fd5b506103ff600480360360208110156106d057600080fd5b5035610f35565b3480156106e357600080fd5b5061052a610f50565b3480156106f857600080fd5b50610602610f59565b6108196004803603608081101561071757600080fd5b810190602081018135600160201b81111561073157600080fd5b82018360208201111561074357600080fd5b803590602001918460208302840111600160201b8311171561076457600080fd5b919390929091602081019035600160201b81111561078157600080fd5b82018360208201111561079357600080fd5b803590602001918460208302840111600160201b831117156107b457600080fd5b919390929091602081019035600160201b8111156107d157600080fd5b8201836020820111156107e357600080fd5b803590602001918460208302840111600160201b8311171561080457600080fd5b91935091503567ffffffffffffffff16610f5e565b604080519115158252519081900360200190f35b34801561083957600080fd5b506103ff611433565b34801561084e57600080fd5b50610602611439565b34801561086357600080fd5b5061052a61143e565b34801561087857600080fd5b506108196004803603602081101561088f57600080fd5b5035611444565b3480156108a257600080fd5b506103ff6114be565b3480156108b757600080fd5b506106026114c4565b3480156108cc57600080fd5b506103b5600480360360408110156108e357600080fd5b60ff8235169190810190604081016020820135600160201b81111561090757600080fd5b82018360208201111561091957600080fd5b803590602001918460018302840111600160201b8311171561093a57600080fd5b5090925090506114c9565b34801561095157600080fd5b506103b56004803603606081101561096857600080fd5b508035906001600160a01b036020820135169060400135611612565b34801561099057600080fd5b50610602611698565b3480156109a557600080fd5b5061052a61169d565b3480156109ba57600080fd5b5061052a600480360360408110156109d157600080fd5b506001600160a01b0381351690602001356116a9565b3480156109f357600080fd5b506103ff6117e7565b348015610a0857600080fd5b506103ff6117ed565b348015610a1d57600080fd5b506106026117f3565b348015610a3257600080fd5b506108196117f8565b348015610a4757600080fd5b50610602611801565b61081960048036036080811015610a6657600080fd5b5080356001600160a01b03908116916020810135909116906040810135906060013567ffffffffffffffff16611806565b348015610aa357600080fd5b506103d16117f3565b348015610ab857600080fd5b506103b560048036036040811015610acf57600080fd5b810190602081018135600160201b811115610ae957600080fd5b820183602082011115610afb57600080fd5b803590602001918460018302840111600160201b83111715610b1c57600080fd5b919390929091602081019035600160201b811115610b3957600080fd5b820183602082011115610b4b57600080fd5b803590602001918460018302840111600160201b83111715610b6c57600080fd5b509092509050611ec7565b348015610b8357600080fd5b506103b560048036036040811015610b9a57600080fd5b50803590602001356001600160a01b0316612136565b348015610bbc57600080fd5b5061052a6121ac565b348015610bd157600080fd5b5061052a6121b6565b348015610be657600080fd5b5061052a60048036036020811015610bfd57600080fd5b50356001600160a01b03166121bc565b348015610c1957600080fd5b5061052a60048036036020811015610c3057600080fd5b50356001600160a01b03166121ce565b348015610c4c57600080fd5b506103ff6121e9565b348015610c6157600080fd5b506103b560048036036040811015610c7857600080fd5b60ff8235169190810190604081016020820135600160201b811115610c9c57600080fd5b820183602082011115610cae57600080fd5b803590602001918460018302840111600160201b83111715610ccf57600080fd5b5090925090506121ef565b348015610ce657600080fd5b506103ff6122bf565b348015610cfb57600080fd5b506103b56122c5565b348015610d1057600080fd5b50610602612365565b348015610d2557600080fd5b5061060261236a565b348015610d3a57600080fd5b506103ff61236f565b348015610d4f57600080fd5b5061052a612375565b348015610d6457600080fd5b506104a060048036036020811015610d7b57600080fd5b50356001600160a01b031661237b565b348015610d9757600080fd5b506103ff6124a2565b606481565b61200181565b60005460609060ff16610df3576040805162461bcd60e51b81526020600482015260196024820152600080516020614905833981519152604482015290519081900360640190fd5b3361200014610e335760405162461bcd60e51b815260040180806020018281038252602f8152602001806148b3602f913960400191505060405180910390fd5b60ff841660021415610e8557610e7e83838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506124a892505050565b9050610ed2565b6040805162461bcd60e51b815260206004820152601860248201527f756e7265636f676e697a65642073796e207061636b6167650000000000000000604482015290519081900360640190fd5b9392505050565b60015490565b6020818101516000908152600490915260409020546001600160a01b03165b919050565b600181565b61100181565b670de0b6b3a764000081565b606181565b600881565b66071afd498d000081565b61200081565b6000908152600460205260409020546001600160a01b031690565b6402540be40081565b600281565b6000805460ff16610fa4576040805162461bcd60e51b81526020600482015260196024820152600080516020614905833981519152604482015290519081900360640190fd5b868514610fe25760405162461bcd60e51b815260040180806020018281038252603b815260200180614878603b913960400191505060405180910390fd5b8683146110205760405162461bcd60e51b815260040180806020018281038252603f81526020018061474b603f913960400191505060405180910390fd5b426078018267ffffffffffffffff16101561106c5760405162461bcd60e51b815260040180806020018281038252602481526020018061463b6024913960400191505060405180910390fd5b6402540be4003406156110b05760405162461bcd60e51b815260040180806020018281038252604081526020018061497b6040913960400191505060405180910390fd5b604080518681526020808802820101909152859060009081906060908480156110e3578160200160208202803683370190505b50905060005b848110156111be576402540be4008b8b8381811061110357fe5b905060200201358161111157fe5b061561114e5760405162461bcd60e51b815260040180806020018281038252603c81526020018061478a603c913960400191505060405180910390fd5b6111738b8b8381811061115d57fe5b90506020020135856125cc90919063ffffffff16565b935061119f6402540be4008c8c8481811061118a57fe5b9050602002013561262690919063ffffffff16565b8282815181106111ab57fe5b60209081029190910101526001016110e9565b506001546111e3906111d6908663ffffffff61266816565b849063ffffffff6125cc16565b3410156112215760405162461bcd60e51b81526004018080602001828103825260568152602001806149256056913960600191505060405180910390fd5b611231348463ffffffff6126c116565b915061123b614461565b6040518060c001604052806221272160e91b60001b815260200160006001600160a01b031681526020018381526020018e8e808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505050908252506040805160208c810282810182019093528c82529283019290918d918d91829185019084908082843760009201919091525050509082525067ffffffffffffffff8916602090910152905061200063f7a251d760036112ff84612703565b611314876402540be40063ffffffff61262616565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561137257818101518382015260200161135a565b50505050905090810190601f16801561139f5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156113c057600080fd5b505af11580156113d4573d6000803e3d6000fd5b505060408051600081523360208201528082018890526060810187905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a15060019c9b505050505050505050505050565b61100581565b601081565b60015481565b600033612001146114865760405162461bcd60e51b815260040180806020018281038252603381526020018061457b6033913960400191505060405180910390fd5b6040516120019083156108fc029084906000818181858888f193505050501580156114b5573d6000803e3d6000fd5b50600192915050565b61100881565b600b81565b60005460ff1661150e576040805162461bcd60e51b81526020600482015260196024820152600080516020614905833981519152604482015290519081900360640190fd5b336120001461154e5760405162461bcd60e51b815260040180806020018281038252602f8152602001806148b3602f913960400191505060405180910390fd5b60ff83166003141561159e5761159982828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506129be92505050565b61160d565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a15b505050565b33611008146116525760405162461bcd60e51b81526004018080602001828103825260238152602001806148e26023913960400191505060405180910390fd5b600083815260046020908152604080832080546001600160a01b039096166001600160a01b03199096168617905593825260038152838220949094556002909352912055565b600981565b677ce66c50e284000081565b6000805460ff166116ef576040805162461bcd60e51b81526020600482015260196024820152600080516020614905833981519152604482015290519081900360640190fd5b336110051461172f5760405162461bcd60e51b815260040180806020018281038252602f8152602001806145ae602f913960400191505060405180910390fd5b600047831061173e5747611740565b825b9050670de0b6b3a764000081111561175c5760009150506117e1565b80156117de576040516001600160a01b0385169082156108fc029083906000818181858888f19350505050158015611798573d6000803e3d6000fd5b50604080516001600160a01b03861681526020810183905281517ff8b71c64315fc33b2ead2adfa487955065152a8ac33d9d5193aafd7f45dc15a0929181900390910190a15b90505b92915050565b61100781565b61100681565b600081565b60005460ff1681565b600381565b6000805460ff1661184c576040805162461bcd60e51b81526020600482015260196024820152600080516020614905833981519152604482015290519081900360640190fd5b426078018267ffffffffffffffff1610156118985760405162461bcd60e51b815260040180806020018281038252602481526020018061463b6024913960400191505060405180910390fd5b6402540be4003406156118dc5760405162461bcd60e51b815260040180806020018281038252604081526020018061497b6040913960400191505060405180910390fd5b600080806001600160a01b0388166119bb5760015461190290879063ffffffff6125cc16565b3410156119405760405162461bcd60e51b81526004018080602001828103825260618152602001806146c56061913960800191505060405180910390fd5b6402540be4008606156119845760405162461bcd60e51b815260040180806020018281038252603c81526020018061478a603c913960400191505060405180910390fd5b611994348763ffffffff6126c116565b90506119ab866402540be40063ffffffff61262616565b6221272160e91b93509150611c5e565b6001600160a01b038816600090815260036020526040902054925082611a125760405162461bcd60e51b81526004018080602001828103825260318152602001806146946031913960400191505060405180910390fd5b600154341015611a535760405162461bcd60e51b815260040180806020018281038252603f8152602001806147e7603f913960400191505060405180910390fd5b506001600160a01b0387166000908152600260205260409020543490600881111580611a9e5750600881118015611a9e5750611a9c876007198301600a0a63ffffffff612a1a16565b155b611ad95760405162461bcd60e51b815260040180806020018281038252603c81526020018061478a603c913960400191505060405180910390fd5b611ae38782612a5c565b9250611aee84612a9c565b15611b36576305f5e100831015611b365760405162461bcd60e51b815260040180806020018281038252603a8152602001806145dd603a913960400191505060405180910390fd5b600881101580611b505750600881108015611b5057508683115b611b8b5760405162461bcd60e51b81526004018080602001828103825260258152602001806147266025913960400191505060405180910390fd5b677ce66c50e2840000831115611bd25760405162461bcd60e51b815260040180806020018281038252603581526020018061465f6035913960400191505060405180910390fd5b604080516323b872dd60e01b81523360048201523060248201526044810189905290516001600160a01b038b16916323b872dd9160648083019260209291908290030181600087803b158015611c2757600080fd5b505af1158015611c3b573d6000803e3d6000fd5b505050506040513d6020811015611c5157600080fd5b5051611c5c57600080fd5b505b611c66614461565b6040805160c0810182528581526001600160a01b038b166020820152815160018082528184018452919283019181602001602082028036833750505081526040805160018082528183019092526020928301929091908083019080368337505050815260408051600180825281830190925260209283019290919080830190803683370190505081526020018767ffffffffffffffff168152509050828160400151600081518110611d1457fe5b602002602001018181525050878160600151600081518110611d3257fe5b60200260200101906001600160a01b031690816001600160a01b031681525050338160800151600081518110611d6457fe5b6001600160a01b039092166020928302919091019091015261200063f7a251d76003611d8f84612703565b611da4866402540be40063ffffffff61262616565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611e02578181015183820152602001611dea565b50505050905090810190601f168015611e2f5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015611e5057600080fd5b505af1158015611e64573d6000803e3d6000fd5b5050604080516001600160a01b038d1681523360208201528082018b90526060810186905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a150600198975050505050505050565b3361100714611f075760405162461bcd60e51b815260040180806020018281038252602e815260200180614826602e913960400191505060405180910390fd5b60208114611f5c576040805162461bcd60e51b815260206004820152601b60248201527f65787065637465642076616c7565206c656e6774682069732033320000000000604482015290519081900360640190fd5b606084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8801819004810282018101909252868152939450606093925086915085908190840183828082843760009201919091525050505060208301519091506772656c617946656560c01b811415612064576020820151670de0b6b3a7640000811180159061200b57506402540be4008106155b61205c576040805162461bcd60e51b815260206004820152601960248201527f7468652072656c6179466565206f7574206f662072616e676500000000000000604482015290519081900360640190fd5b6001556120a1565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a878787876040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050505050565b33611008146121765760405162461bcd60e51b81526004018080602001828103825260238152602001806148e26023913960400191505060405180910390fd5b600091825260046020908152604080842080546001600160a01b03191690556001600160a01b0392909216835260039052812055565b6221272160e91b81565b61c35081565b60026020526000908152604090205481565b6001600160a01b031660009081526003602052604090205490565b61100281565b60005460ff16612234576040805162461bcd60e51b81526020600482015260196024820152600080516020614905833981519152604482015290519081900360640190fd5b33612000146122745760405162461bcd60e51b815260040180806020018281038252602f8152602001806148b3602f913960400191505060405180910390fd5b60ff83166003141561159e5761159982828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612ba292505050565b61100381565b60005460ff161561231d576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b66071afd498d000060019081556000808052600260205260127fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b55805460ff19169091179055565b600481565b600581565b61100081565b61271081565b6001600160a01b03811660009081526003602090815260409182902054825182815280840190935260609290918391906020820181803683375050506020810183905290506000805b60208160ff16101561240b57828160ff16815181106123df57fe5b01602001516001600160f81b031916156123fe57600190910190612403565b61240b565b6001016123c4565b5060608160ff166040519080825280601f01601f19166020018201604052801561243c576020820181803683370190505b50905060005b8260ff168160ff16101561249857838160ff168151811061245f57fe5b602001015160f81c60f81b828260ff168151811061247957fe5b60200101906001600160f81b031916908160001a905350600101612442565b5095945050505050565b61100481565b60606124b26144ad565b60006124bd84612ca0565b9150915080612513576040805162461bcd60e51b815260206004820152601f60248201527f756e7265636f676e697a6564207472616e73666572496e207061636b61676500604482015290519081900360640190fd5b600061251e83612ddf565b905063ffffffff8116156125b2576040808401516020808601516001600160a01b031660009081526002909152918220546125599190612a5c565b90506125636144e2565b60405180608001604052808660000151815260200183815260200186608001516001600160a01b031681526020018463ffffffff1681525090506125a68161312c565b95505050505050610efe565b50506040805160008152602081019091529150610efe9050565b6000828201838110156117de576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60006117de83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613208565b600082612677575060006117e1565b8282028284828161268457fe5b04146117de5760405162461bcd60e51b81526004018080602001828103825260218152602001806147c66021913960400191505060405180910390fd5b60006117de83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506132aa565b60408051600680825260e08201909252606091829190816020015b606081526020019060019003908161271e575050835190915061274090613304565b8160008151811061274d57fe5b602002602001018190525061276e83602001516001600160a01b0316613317565b8160018151811061277b57fe5b6020026020010181905250600083604001515190506060816040519080825280602002602001820160405280156127c657816020015b60608152602001906001900390816127b15790505b50905060005b82811015612813576127f4866040015182815181106127e757fe5b6020026020010151613304565b82828151811061280057fe5b60209081029190910101526001016127cc565b5061281d8161333a565b8360028151811061282a57fe5b602002602001018190525060608260405190808252806020026020018201604052801561286b57816020015b60608152602001906001900390816128565790505b50905060005b838110156128c1576128a28760600151828151811061288c57fe5b60200260200101516001600160a01b0316613317565b8282815181106128ae57fe5b6020908102919091010152600101612871565b506128cb8161333a565b846003815181106128d857fe5b602002602001018190525060608360405190808252806020026020018201604052801561291957816020015b60608152602001906001900390816129045790505b50905060005b848110156129595761293a8860800151828151811061288c57fe5b82828151811061294657fe5b602090810291909101015260010161291f565b506129638161333a565b8560048151811061297057fe5b60200260200101819052506129928760a0015167ffffffffffffffff16613304565b8560058151811061299f57fe5b60200260200101819052506129b38561333a565b979650505050505050565b6129c6614509565b60006129d1836133c4565b9150915080612a115760405162461bcd60e51b81526004018080602001828103825260248152602001806148546024913960400191505060405180910390fd5b61160d8261358f565b60006117de83836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f0000000000000000815250613a13565b60006008821115612a8557612a7e836007198401600a0a63ffffffff61262616565b90506117e1565b6117de836008849003600a0a63ffffffff61266816565b604080516020808252818301909252600091606091906020820181803683375050506020810184905290506000805b60208160ff161015612b1257828160ff1681518110612ae657fe5b01602001516001600160f81b03191615612b0557600190910190612b0a565b612b12565b600101612acb565b50600760ff82161015612b2a57600092505050610efe565b816005820360ff1681518110612b3c57fe5b6020910101516001600160f81b031916602d60f81b14612b6157600092505050610efe565b816001820360ff1681518110612b7357fe5b6020910101516001600160f81b031916604d60f81b14612b9857600092505050610efe565b5060019392505050565b612baa614461565b6000612bb583613a75565b9150915080612bf55760405162461bcd60e51b81526004018080602001828103825260248152602001806146176024913960400191505060405180910390fd5b612bfd614509565b602080840180516001600160a01b0390811684526040808701518585015291511660009081526002909252812054905b846040015151811015612c7e57612c5b85604001518281518110612c4d57fe5b602002602001015183613cd9565b85604001518281518110612c6b57fe5b6020908102919091010152600101612c2d565b506080840151604083015260056060830152612c998261358f565b5050505050565b612ca86144ad565b6000612cb26144ad565b612cba614540565b612ccb612cc686613d12565b613d37565b90506000805b612cda83613d81565b15612dd25780612cfc57612cf5612cf084613da2565b613df0565b8452612dca565b8060011415612d2957612d16612d1184613da2565b613ea7565b6001600160a01b03166020850152612dca565b8060021415612d4857612d3e612cf084613da2565b6040850152612dca565b8060031415612d7057612d5d612d1184613da2565b6001600160a01b03166060850152612dca565b8060041415612d9857612d85612d1184613da2565b6001600160a01b03166080850152612dca565b8060051415612dc557612dad612cf084613da2565b67ffffffffffffffff1660a085015260019150612dca565b612dd2565b600101612cd1565b5091935090915050915091565b60208101516000906001600160a01b0316612f16578160a0015167ffffffffffffffff16421115612e1257506001610efe565b8160400151471015612e2657506003610efe565b606082015160408084015190516000926001600160a01b0316916127109184818181858888f193505050503d8060008114612e7d576040519150601f19603f3d011682016040523d82523d6000602084013e612e82565b606091505b5050905080612e95575060049050610efe565b7f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5983602001518460600151856040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a15060009050610efe565b8160a0015167ffffffffffffffff16421115612f3457506001610efe565b81516020808401516001600160a01b031660009081526003909152604090205414612f6157506002610efe565b602080830151604080516370a0823160e01b815230600482015290516000936001600160a01b03909316926370a082319261c3509260248083019392829003018187803b158015612fb157600080fd5b5086fa158015612fc5573d6000803e3d6000fd5b50505050506040513d6020811015612fdc57600080fd5b50516040840151909150811015612ff7575060039050610efe565b600083602001516001600160a01b031663a9059cbb61c350866060015187604001516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b15801561306857600080fd5b5087f115801561307c573d6000803e3d6000fd5b50505050506040513d602081101561309357600080fd5b505190508015613120577f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5984602001518560600151866040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a15060009150610efe9050565b5060059150610efe9050565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081613147575050835190915061316990613304565b8160008151811061317657fe5b602002602001018190525061318e8360200151613304565b8160018151811061319b57fe5b60200260200101819052506131bc83604001516001600160a01b0316613317565b816002815181106131c957fe5b60200260200101819052506131e7836060015163ffffffff16613304565b816003815181106131f457fe5b6020026020010181905250610ed28161333a565b600081836132945760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613259578181015183820152602001613241565b50505050905090810190601f1680156132865780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816132a057fe5b0495945050505050565b600081848411156132fc5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315613259578181015183820152602001613241565b505050900390565b60606117e161331283613ec1565b613fa7565b60408051600560a21b8318601482015260348101909152606090610ed281613fa7565b606081516000141561335b5750604080516000815260208101909152610efe565b60608260008151811061336a57fe5b602002602001015190506000600190505b83518110156133ab576133a18285838151811061339457fe5b6020026020010151613ff9565b915060010161337b565b50610ed26133be825160c060ff16614076565b82613ff9565b6133cc614509565b60006133d6614509565b6133de614540565b6133ea612cc686613d12565b90506000805b6133f983613d81565b15612dd2578061341f5761340f612d1184613da2565b6001600160a01b03168452613587565b80600114156134c057606061343b61343685613da2565b61416e565b90508051604051908082528060200260200182016040528015613468578160200160208202803683370190505b50602086015260005b81518110156134b95761349682828151811061348957fe5b6020026020010151613df0565b866020015182815181106134a657fe5b6020908102919091010152600101613471565b5050613587565b80600214156135625760606134d761343685613da2565b90508051604051908082528060200260200182016040528015613504578160200160208202803683370190505b50604086015260005b81518110156134b95761353282828151811061352557fe5b6020026020010151613ea7565b8660400151828151811061354257fe5b6001600160a01b039092166020928302919091019091015260010161350d565b8060031415612dc557613577612cf084613da2565b63ffffffff166060850152600191505b6001016133f0565b80516001600160a01b03166137b95760005b8160200151518110156137b3576000826040015182815181106135c057fe5b60200260200101516001600160a01b0316612710846020015184815181106135e457fe5b60209081029190910101516040516000818181858888f193505050503d806000811461362c576040519150601f19603f3d011682016040523d82523d6000602084013e613631565b606091505b50509050806136f4577f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061367057fe5b60200260200101518560200151858151811061368857fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a16137aa565b7fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a83600001518460400151848151811061372a57fe5b60200260200101518560200151858151811061374257fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b506001016135a1565b50613a10565b60005b816020015151811015613a0e57600082600001516001600160a01b031663a9059cbb61c350856040015185815181106137f157fe5b60200260200101518660200151868151811061380957fe5b60200260200101516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b15801561386057600080fd5b5087f1158015613874573d6000803e3d6000fd5b50505050506040513d602081101561388b57600080fd5b50519050801561394f577fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a8360000151846040015184815181106138cb57fe5b6020026020010151856020015185815181106138e357fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a1613a05565b7f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061398557fe5b60200260200101518560200151858151811061399d57fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b506001016137bc565b505b50565b60008183613a625760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315613259578181015183820152602001613241565b50828481613a6c57fe5b06949350505050565b613a7d614461565b6000613a87614461565b613a8f614540565b613a9b612cc686613d12565b90506000805b613aaa83613d81565b15612dd25780613ac757613ac0612cf084613da2565b8452613cd1565b8060011415613aef57613adc612d1184613da2565b6001600160a01b03166020850152613cd1565b8060021415613b7e576060613b0661343685613da2565b90508051604051908082528060200260200182016040528015613b33578160200160208202803683370190505b50604086015260005b8151811015613b7757613b5482828151811061348957fe5b86604001518281518110613b6457fe5b6020908102919091010152600101613b3c565b5050613cd1565b8060031415613c13576060613b9561343685613da2565b90508051604051908082528060200260200182016040528015613bc2578160200160208202803683370190505b50606086015260005b8151811015613b7757613be382828151811061352557fe5b86606001518281518110613bf357fe5b6001600160a01b0390921660209283029190910190910152600101613bcb565b8060041415613ca8576060613c2a61343685613da2565b90508051604051908082528060200260200182016040528015613c57578160200160208202803683370190505b50608086015260005b8151811015613b7757613c7882828151811061352557fe5b86608001518281518110613c8857fe5b6001600160a01b0390921660209283029190910190910152600101613c60565b8060051415612dc557613cbd612cf084613da2565b67ffffffffffffffff1660a0850152600191505b600101613aa1565b60006008821115613cfb57612a7e836007198401600a0a63ffffffff61266816565b6117de836008849003600a0a63ffffffff61262616565b613d1a614560565b506040805180820190915281518152602082810190820152919050565b613d3f614540565b613d488261423f565b613d5157600080fd5b6000613d60836020015161426f565b60208085015160408051808201909152868152920190820152915050919050565b6000613d8b614560565b505080518051602091820151919092015191011190565b613daa614560565b613db382613d81565b613dbc57600080fd5b60208201516000613dcc826142d2565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590613e0557508151602110155b613e0e57600080fd5b6000613e1d836020015161426f565b90508083600001511015613e78576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015613e9e57826020036101000a820491505b50949350505050565b8051600090601514613eb857600080fd5b6117e182613df0565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416613f0557506018613f29565b6fffffffffffffffffffffffffffffffff198416613f2557506010613f29565b5060005b6020811015613f5f57818181518110613f3e57fe5b01602001516001600160f81b03191615613f5757613f5f565b600101613f29565b60008160200390506060816040519080825280601f01601f191660200182016040528015613f94576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015613fd95750607f60f81b82600081518110613fc757fe5b01602001516001600160f81b03191611155b15613fe5575080610efe565b6117e1613ff78351608060ff16614076565b835b6060806040519050835180825260208201818101602087015b8183101561402a578051835260209283019201614012565b50855184518101855292509050808201602086015b8183101561405757805183526020928301920161403f565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106140c6576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b604080516001808252818301909252606091602082018180368337019050509050603784116141205782840160f81b8160008151811061410257fe5b60200101906001600160f81b031916908160001a90535090506117e1565b606061412b85613ec1565b90508381510160370160f81b8260008151811061414457fe5b60200101906001600160f81b031916908160001a9053506141658282613ff9565b95945050505050565b60606141798261423f565b61418257600080fd5b600061418d83614405565b90506060816040519080825280602002602001820160405280156141cb57816020015b6141b8614560565b8152602001906001900390816141b05790505b50905060006141dd856020015161426f565b60208601510190506000805b84811015614234576141fa836142d2565b915060405180604001604052808381526020018481525084828151811061421d57fe5b6020908102919091010152918101916001016141e9565b509195945050505050565b805160009061425057506000610efe565b6020820151805160001a9060c0821015612b9857600092505050610efe565b8051600090811a6080811015614289576000915050610efe565b60b88110806142a4575060c081108015906142a4575060f881105b156142b3576001915050610efe565b60c08110156142c75760b519019050610efe565b60f519019050610efe565b80516000908190811a60808110156142ed57600191506143fe565b60b881101561430257607e19810191506143fe565b60c081101561437c57600060b78203600186019550806020036101000a865104915060018101820193505080831015614376576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b506143fe565b60f88110156143915760be19810191506143fe565b600060f78203600186019550806020036101000a8651049150600181018201935050808310156143fc576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b805160009061441657506000610efe565b6000809050600061442a846020015161426f565b602085015185519181019250015b8082101561445857614449826142d2565b60019093019290910190614438565b50909392505050565b6040518060c001604052806000801916815260200160006001600160a01b03168152602001606081526020016060815260200160608152602001600067ffffffffffffffff1681525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b60408051608081018252600080825260208201819052918101829052606081019190915290565b604051806080016040528060006001600160a01b031681526020016060815260200160608152602001600063ffffffff1681525090565b6040518060400160405280614553614560565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe6f6e6c79207374616b696e672073797374656d20636f6e74726163742063616e2063616c6c20746869732066756e6374696f6e746865206d6573736167652073656e646572206d75737420626520696e63656e746976697a6520636f6e7472616374466f72206d696e69546f6b656e2c20746865207472616e7366657220616d6f756e74206d757374206e6f74206265206c657373207468616e2031756e7265636f676e697a6564207472616e736665724f75742073796e207061636b61676565787069726554696d65206d7573742062652074776f206d696e75746573206c61746572616d6f756e7420697320746f6f206c617267652c20657863656564206d6178696d756d206265703220746f6b656e20616d6f756e7474686520636f6e747261637420686173206e6f74206265656e20626f756e6420746f20616e79206265703220746f6b656e726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e736665724f757420424e4220616d6f756e7420616e64206d696e696d756d2072656c6179466565616d6f756e7420697320746f6f206c617267652c2075696e74323536206f766572666c6f774c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620726566756e644164647273696e76616c6964207472616e7366657220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e20746865206d696e696d756d2072656c6179466565746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374756e7265636f676e697a6564207472616e736665724f75742061636b207061636b6167654c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620616d6f756e7473746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d73672073656e646572206d75737420626520746f6b656e4d616e6167657274686520636f6e7472616374206e6f7420696e69742079657400000000000000726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e7366657220424e4220616d6f756e7420616e642072656c6179466565696e76616c696420726563656976656420424e4220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6ea2646970667358221220caf56ff249aa6ca806ce69d2892ae51c7530b6d135624d7e27646a2095f0b01964736f6c63430006040033", - }, - { - ContractAddr: StakingContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/9d45b31c12b2c04757284717f4351cb44e81a3a7", - Code: "60806040526004361061036f5760003560e01c806370fd5bad116101c6578063b88a802f116100f7578063d7ecfcb611610095578063f45fd80b1161006f578063f45fd80b14610bd0578063f9a2bbc714610c15578063fc3e590814610646578063fd6a687914610c2a57610376565b8063d7ecfcb6146107ee578063dc927faf14610ba6578063edc1a5b014610bbb57610376565b8063c2117d82116100d1578063c2117d8214610abc578063c81b166214610ad1578063c8509d8114610ae6578063d61b9b9314610b6b57610376565b8063b88a802f14610a57578063baaafd3b14610a6c578063bf8546ca14610a8157610376565b806396713da911610164578063a78abc161161013e578063a78abc1614610939578063ab51bb9614610962578063ac43175114610977578063b14315df14610a4257610376565b806396713da9146108fa5780639dc092621461090f578063a1a11bf51461092457610376565b806375d47a0a116101a057806375d47a0a1461084b5780637942fd0514610860578063831d65d11461087557806392b888a4146105f257610376565b806370fd5bad146107ee578063718a8aa81461080357806375aca5931461081857610376565b8063413d9c3a116102a05780635d17c8bd1161023e57806369b635b61161021857806369b635b61461075b5780636bd8f804146107705780636e47b482146107a65780636fb7f7eb146107bb57610376565b80635d17c8bd1461071c5780635d499b1b1461073157806362b171d21461074657610376565b80634bf6c8821161027a5780634bf6c882146106b15780634d99dd16146106c657806351e80672146106f2578063552aaf931461070757610376565b8063413d9c3a1461065b57806343756e5c14610670578063493279b11461068557610376565b8063151817e31161030d578063333ad3e7116102e7578063333ad3e71461061c57806334c43354146106315780633dffc387146105f25780633fdfa7e41461064657610376565b8063151817e3146105c757806317c9efb0146105f25780632fdeb1111461060757610376565b80630bee7a67116103495780630bee7a671461043b5780630e2374a5146104695780631182b8751461049a57806311fe9ec61461059457610376565b8063026e402b1461037b57806302985992146103a9578063047636d1146103d057610376565b3661037657005b600080fd5b6103a76004803603604081101561039157600080fd5b506001600160a01b038135169060200135610c3f565b005b3480156103b557600080fd5b506103be611141565b60408051918252519081900360200190f35b3480156103dc57600080fd5b50610403600480360360208110156103f357600080fd5b50356001600160a01b0316611147565b6040518082606080838360005b83811015610428578181015183820152602001610410565b5050505090500191505060405180910390f35b34801561044757600080fd5b5061045061119b565b6040805163ffffffff9092168252519081900360200190f35b34801561047557600080fd5b5061047e6111a0565b604080516001600160a01b039092168252519081900360200190f35b3480156104a657600080fd5b5061051f600480360360408110156104bd57600080fd5b60ff8235169190810190604081016020820135600160201b8111156104e157600080fd5b8201836020820111156104f357600080fd5b803590602001918460018302840111600160201b8311171561051457600080fd5b5090925090506111a6565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610559578181015183820152602001610541565b50505050905090810190601f1680156105865780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156105a057600080fd5b506103be600480360360208110156105b757600080fd5b50356001600160a01b031661135c565b3480156105d357600080fd5b506105dc611377565b6040805160ff9092168252519081900360200190f35b3480156105fe57600080fd5b506105dc61137c565b34801561061357600080fd5b506103be611381565b34801561062857600080fd5b50610450611387565b34801561063d57600080fd5b506103be61138c565b34801561065257600080fd5b506105dc611397565b34801561066757600080fd5b506103be61139c565b34801561067c57600080fd5b5061047e6113a3565b34801561069157600080fd5b5061069a6113a9565b6040805161ffff9092168252519081900360200190f35b3480156106bd57600080fd5b506105dc6113ae565b6103a7600480360360408110156106dc57600080fd5b506001600160a01b0381351690602001356113b3565b3480156106fe57600080fd5b5061047e61199a565b34801561071357600080fd5b506105dc6119a0565b34801561072857600080fd5b506103be6119a5565b34801561073d57600080fd5b506103be6119ab565b34801561075257600080fd5b506103be6119b4565b34801561076757600080fd5b506103be611aec565b6103a76004803603606081101561078657600080fd5b506001600160a01b03813581169160208101359091169060400135611af2565b3480156107b257600080fd5b5061047e612160565b3480156107c757600080fd5b506103be600480360360208110156107de57600080fd5b50356001600160a01b0316612166565b3480156107fa57600080fd5b506105dc612181565b34801561080f57600080fd5b506105dc612186565b34801561082457600080fd5b506103be6004803603602081101561083b57600080fd5b50356001600160a01b031661218b565b34801561085757600080fd5b5061047e6121a6565b34801561086c57600080fd5b506105dc6121ac565b34801561088157600080fd5b506103a76004803603604081101561089857600080fd5b60ff8235169190810190604081016020820135600160201b8111156108bc57600080fd5b8201836020820111156108ce57600080fd5b803590602001918460018302840111600160201b831117156108ef57600080fd5b5090925090506121b1565b34801561090657600080fd5b506105dc612473565b34801561091b57600080fd5b5061047e612478565b34801561093057600080fd5b5061047e61247e565b34801561094557600080fd5b5061094e612484565b604080519115158252519081900360200190f35b34801561096e57600080fd5b506104506119a0565b34801561098357600080fd5b506103a76004803603604081101561099a57600080fd5b810190602081018135600160201b8111156109b457600080fd5b8201836020820111156109c657600080fd5b803590602001918460018302840111600160201b831117156109e757600080fd5b919390929091602081019035600160201b811115610a0457600080fd5b820183602082011115610a1657600080fd5b803590602001918460018302840111600160201b83111715610a3757600080fd5b50909250905061248d565b348015610a4e57600080fd5b506105dc612a8a565b348015610a6357600080fd5b506103be612a8f565b348015610a7857600080fd5b506103be612bc4565b348015610a8d57600080fd5b506103be60048036036040811015610aa457600080fd5b506001600160a01b0381358116916020013516612bcf565b348015610ac857600080fd5b506103be612bfc565b348015610add57600080fd5b5061047e612c02565b348015610af257600080fd5b506103a760048036036040811015610b0957600080fd5b60ff8235169190810190604081016020820135600160201b811115610b2d57600080fd5b820183602082011115610b3f57600080fd5b803590602001918460018302840111600160201b83111715610b6057600080fd5b509092509050612c08565b348015610b7757600080fd5b506103be60048036036040811015610b8e57600080fd5b506001600160a01b0381358116916020013516612e25565b348015610bb257600080fd5b5061047e612e50565b348015610bc757600080fd5b506103be612e56565b348015610bdc57600080fd5b506103be60048036036060811015610bf357600080fd5b506001600160a01b038135811691602081013582169160409091013516612e63565b348015610c2157600080fd5b5061047e612e98565b348015610c3657600080fd5b5061047e612e9e565b60105460ff1660021415610c8b576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b6010805460ff19166002179055806402540be4003406158015610cb357506402540be4008106155b610d04576040805162461bcd60e51b815260206004820152601c60248201527f707265636973696f6e206c6f737320696e20636f6e76657273696f6e00000000604482015290519081900360640190fd5b60005460ff16610d41576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556000805460ff191690911790555b600354821015610d98576040805162461bcd60e51b815260206004820152601760248201527f696e76616c69642064656c656761746520616d6f756e74000000000000000000604482015290519081900360640190fd5b600154610dac90839063ffffffff612ea416565b341015610df7576040805162461bcd60e51b81526020600482015260146024820152736e6f7420656e6f756768206d73672076616c756560601b604482015290519081900360640190fd5b60405133906108fc9060009081818181818888f19350505050610e55576040805162461bcd60e51b815260206004820152601160248201527034b73b30b634b2103232b632b3b0ba37b960791b604482015290519081900360640190fd5b6000610e6c836402540be40063ffffffff612f0516565b90506000610e80348563ffffffff612f4716565b90506000610e9960025483612f4790919063ffffffff16565b6040805160038082526080820190925291925060609190816020015b6060815260200190600190039081610eb5579050509050610ed533612f89565b81600081518110610ee257fe5b6020026020010181905250610eff876001600160a01b0316612f89565b81600181518110610f0c57fe5b6020026020010181905250610f2084612fac565b81600281518110610f2d57fe5b60200260200101819052506060610f4d6001610f4884612fbf565b613049565b8051602080830191909120600f80546000908152600a845260408082209390935581546001908101909255338152600b909352912080549091019055905061200063f7a251d7601083610fab876402540be40063ffffffff612f0516565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611009578181015183820152602001610ff1565b50505050905090810190601f1680156110365780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561105757600080fd5b505af115801561106b573d6000803e3d6000fd5b5061100492506108fc91506110889050898663ffffffff612ea416565b6040518115909202916000818181858888f193505050501580156110b0573d6000803e3d6000fd5b506002546040516110029180156108fc02916000818181858888f193505050501580156110e1573d6000803e3d6000fd5b50604080518881526020810185905281516001600160a01b038b169233927f5f32ed2794e2e72d19e3cb2320e8820a499c4204887372beba51f5e61c040867929081900390910190a350506010805460ff19166001179055505050505050565b60035481565b61114f614dd9565b611157614dd9565b6001600160a01b0383166000818152600b60209081526040808320548552838352600c82528083205485830152928252600d9052819020549082015290505b919050565b606481565b61200181565b606033612000146111e85760405162461bcd60e51b815260040180806020018281038252602f815260200180614f97602f913960400191505060405180910390fd5b60005460ff16611225576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556000805460ff191690911790555b61122d614df7565b61127461126f85858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506130cf92505050565b6130f4565b905060006112896112848361313e565b61318c565b90506000606060ff8316600414156112ae576112a484613243565b9092509050611305565b60ff8316600514156112c3576112a484613423565b6040805162461bcd60e51b8152602060048201526012602482015271756e6b6e6f776e206576656e74207479706560701b604482015290519081900360640190fd5b63ffffffff821615611351576040805163ffffffff84168152905160ff8516917f391d6e5ea6ab6c49b9a0abb1782cae5def8d711f973b00c729658c0b2a80b31b919081900360200190a25b979650505050505050565b6001600160a01b031660009081526006602052604090205490565b600581565b600181565b60015481565b606581565b662386f26fc1000081565b600381565b620a8c0081565b61100181565b606181565b600881565b60105460ff16600214156113ff576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b6010805460ff19166002179055806402540be400340615801561142757506402540be4008106155b611478576040805162461bcd60e51b815260206004820152601c60248201527f707265636973696f6e206c6f737320696e20636f6e76657273696f6e00000000604482015290519081900360640190fd5b60005460ff166114b5576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556000805460ff191690911790555b600154341015611503576040805162461bcd60e51b81526020600482015260146024820152736e6f7420656e6f7567682072656c61792066656560601b604482015290519081900360640190fd5b6003548210156115be576002548211611556576040805162461bcd60e51b815260206004820152601060248201526f6e6f7420656e6f7567682066756e647360801b604482015290519081900360640190fd5b3360009081526005602090815260408083206001600160a01b038716845290915290205482146115be576040805162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a5908185b5bdd5b9d60921b604482015290519081900360640190fd5b3360009081526005602090815260408083206001600160a01b0387168452909152902054821115611627576040805162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a5908185b5bdd5b9d60921b604482015290519081900360640190fd5b3360009081526007602090815260408083206001600160a01b038716845290915290205442101561169f576040805162461bcd60e51b815260206004820152601a60248201527f70656e64696e6720756e64656c65676174696f6e206578697374000000000000604482015290519081900360640190fd5b60006116b6836402540be40063ffffffff612f0516565b60025490915034906000906116d290839063ffffffff612f4716565b6040805160038082526080820190925291925060609190816020015b60608152602001906001900390816116ee57905050905061170e33612f89565b8160008151811061171b57fe5b6020026020010181905250611738876001600160a01b0316612f89565b8160018151811061174557fe5b602002602001018190525061175984612fac565b8160028151811061176657fe5b602002602001018190525060606117816002610f4884612fbf565b8051602080830191909120600f80546000908152600a845260408082209390935581546001908101909255338152600c90935291208054909101905590506117d242620a8c0063ffffffff612ea416565b3360009081526007602090815260408083206001600160a01b038d16845290915290205561200063f7a251d7601083611816876402540be40063ffffffff612f0516565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561187457818101518382015260200161185c565b50505050905090810190601f1680156118a15780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156118c257600080fd5b505af11580156118d6573d6000803e3d6000fd5b5050604051611004925085156108fc02915085906000818181858888f19350505050158015611909573d6000803e3d6000fd5b506002546040516110029180156108fc02916000818181858888f1935050505015801561193a573d6000803e3d6000fd5b50604080518881526020810185905281516001600160a01b038b169233927fdf0b6ac27f3f3bb31cee3dab0f4fe40cc19c6a3f8daaec52e06b261e58a12519929081900390910190a350506010805460ff19166001179055505050505050565b61200081565b600081565b60025481565b6402540be40081565b60105460009060ff1660021415611a03576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b506010805460ff191660021790553360009081526008602052604090205480611a6a576040805162461bcd60e51b81526020600482015260146024820152736e6f20756e64656c6567617465642066756e647360601b604482015290519081900360640190fd5b336000818152600860205260408082208290555183156108fc0291849190818181858888f19350505050158015611aa5573d6000803e3d6000fd5b5060408051828152905133917fc712d133b8d448221aaed2198ed1f0db6dfc860fb01bc3a630916fe6cbef946f919081900360200190a26010805460ff1916600117905590565b60035490565b60105460ff1660021415611b3e576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b6010805460ff19166002179055806402540be4003406158015611b6657506402540be4008106155b611bb7576040805162461bcd60e51b815260206004820152601c60248201527f707265636973696f6e206c6f737320696e20636f6e76657273696f6e00000000604482015290519081900360640190fd5b60005460ff16611bf4576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556000805460ff191690911790555b826001600160a01b0316846001600160a01b03161415611c52576040805162461bcd60e51b815260206004820152601460248201527334b73b30b634b2103932b232b632b3b0ba34b7b760611b604482015290519081900360640190fd5b600154341015611ca0576040805162461bcd60e51b81526020600482015260146024820152736e6f7420656e6f7567682072656c61792066656560601b604482015290519081900360640190fd5b6003548210158015611cd557503360009081526005602090815260408083206001600160a01b03881684529091529020548211155b611d17576040805162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a5908185b5bdd5b9d60921b604482015290519081900360640190fd5b3360009081526009602090815260408083206001600160a01b03888116855290835281842090871684529091529020544210801590611d8557503360009081526009602090815260408083206001600160a01b03878116855290835281842090881684529091529020544210155b611dd6576040805162461bcd60e51b815260206004820152601a60248201527f70656e64696e6720726564656c65676174696f6e206578697374000000000000604482015290519081900360640190fd5b6000611ded836402540be40063ffffffff612f0516565b6002549091503490600090611e0990839063ffffffff612f4716565b60408051600480825260a0820190925291925060609190816020015b6060815260200190600190039081611e25579050509050611e4533612f89565b81600081518110611e5257fe5b6020026020010181905250611e6f886001600160a01b0316612f89565b81600181518110611e7c57fe5b6020026020010181905250611e99876001600160a01b0316612f89565b81600281518110611ea657fe5b6020026020010181905250611eba84612fac565b81600381518110611ec757fe5b60200260200101819052506060611ee26003610f4884612fbf565b8051602080830191909120600f80546000908152600a845260408082209390935581546001908101909255338152600d9093529120805490910190559050611f3342620a8c0063ffffffff612ea416565b3360009081526009602090815260408083206001600160a01b038d81168552908352818420908e168452909152902055611f7642620a8c0063ffffffff612ea416565b3360009081526009602090815260408083206001600160a01b038e81168552908352818420908d16845290915290205561200063f7a251d7601083611fc6876402540be40063ffffffff612f0516565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561202457818101518382015260200161200c565b50505050905090810190601f1680156120515780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561207257600080fd5b505af1158015612086573d6000803e3d6000fd5b5050604051611004925085156108fc02915085906000818181858888f193505050501580156120b9573d6000803e3d6000fd5b506002546040516110029180156108fc02916000818181858888f193505050501580156120ea573d6000803e3d6000fd5b50876001600160a01b0316896001600160a01b0316336001600160a01b03167fdb0d03fdfcb145c486c442659e6a341a8828985505097cb5190afcf541e840158a87604051808381526020018281526020019250505060405180910390a450506010805460ff1916600117905550505050505050565b61100581565b6001600160a01b031660009081526004602052604090205490565b600281565b601081565b6001600160a01b031660009081526008602052604090205490565b61100881565b600b81565b33612000146121f15760405162461bcd60e51b815260040180806020018281038252602f815260200180614f97602f913960400191505060405180910390fd5b60005460ff1661222e576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556000805460ff191690911790555b612236614df7565b61227861126f84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506130cf92505050565b905060008060606000805b61228c8661363f565b156122f757806122a9576122a26112848761313e565b94506122ef565b80600114156122c5576122be6112848761313e565b93506122ef565b80600214156122ea576122df6122da8761313e565b613660565b9250600191506122ef565b6122f7565b600101612283565b8161233d576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b612346836136d0565b612389576040805162461bcd60e51b815260206004820152600f60248201526e0eee4dedcce40e0c2c6d640d0c2e6d608b1b604482015290519081900360640190fd5b61239561126f846130cf565b955060006123a56112848861313e565b90506123af614df7565b6123b88861363f565b156123db576123d461126f6123cf6122da8b61313e565b6130cf565b905061241c565b6040805162461bcd60e51b8152602060048201526011602482015270656d7074792061636b207061636b61676560781b604482015290519081900360640190fd5b60ff82166001141561243857612433818888613724565b612466565b60ff82166002141561244f57612433818888613adb565b60ff8216600314156112c357612433818888613da8565b5050505050505050505050565b600981565b61100781565b61100681565b60005460ff1681565b60005460ff166124e4576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604482015290519081900360640190fd5b33611007146125245760405162461bcd60e51b815260040180806020018281038252602e815260200180614f0d602e913960400191505060405180910390fd5b61258584848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600a81526972656c6179657246656560b01b6020820152915061410d9050565b156126eb57602081146125df576040805162461bcd60e51b815260206004820152601d60248201527f6c656e677468206f662072656c61796572466565206d69736d61746368000000604482015290519081900360640190fd5b604080516020601f840181900481028201810190925282815260009161261d918585808385018382808284376000920191909152506141f492505050565b9050600354811061265f5760405162461bcd60e51b815260040180806020018281038252602e815260200180614f3b602e913960400191505060405180910390fd5b600254811161269f5760405162461bcd60e51b815260040180806020018281038252602e815260200180614f69602e913960400191505060405180910390fd5b6402540be4008106156126e35760405162461bcd60e51b815260040180806020018281038252602c815260200180614ee1602c913960400191505060405180910390fd5b6001556129f8565b61274f84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c62534352656c6179657246656560981b6020820152915061410d9050565b1561287557602081146127a9576040805162461bcd60e51b815260206004820181905260248201527f6c656e677468206f662062534352656c61796572466565206d69736d61746368604482015290519081900360640190fd5b604080516020601f84018190048102820181019092528281526000916127e7918585808385018382808284376000920191909152506141f492505050565b905060015481106128295760405162461bcd60e51b815260040180806020018281038252602e815260200180614e61602e913960400191505060405180910390fd5b6402540be40081061561286d5760405162461bcd60e51b815260040180806020018281038252602f815260200180614e32602f913960400191505060405180910390fd5b6002556129f8565b6128d984848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c36b4b72232b632b3b0ba34b7b760991b6020820152915061410d9050565b156129bb5760208114612933576040805162461bcd60e51b815260206004820181905260248201527f6c656e677468206f66206d696e44656c65676174696f6e206d69736d61746368604482015290519081900360640190fd5b604080516020601f8401819004810282018101909252828152600091612971918585808385018382808284376000920191909152506141f492505050565b905060015481116129b35760405162461bcd60e51b8152600401808060200182810382526031815260200180614e8f6031913960400191505060405180910390fd5b6003556129f8565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b600481565b60105460009060ff1660021415612ade576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b506010805460ff191660021790553360009081526006602052604090205480612b42576040805162461bcd60e51b81526020600482015260116024820152701b9bc81c195b991a5b99c81c995dd85c99607a1b604482015290519081900360640190fd5b336000818152600660205260408082208290555183156108fc0291849190818181858888f19350505050158015612b7d573d6000803e3d6000fd5b5060408051828152905133917f83b78188b13346b2ffb484da70d42ee27de7fbf9f2bd8045269e10ed643ccd76919081900360200190a26010805460ff1916600117905590565b6638d7ea4c68000081565b6001600160a01b038083166000908152600760209081526040808320938516835292905220545b92915050565b60015490565b61100281565b3361200014612c485760405162461bcd60e51b815260040180806020018281038252602f815260200180614f97602f913960400191505060405180910390fd5b60005460ff16612c85576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556000805460ff191690911790555b612cc482828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506136d092505050565b612d07576040805162461bcd60e51b815260206004820152600f60248201526e0eee4dedcce40e0c2c6d640d0c2e6d608b1b604482015290519081900360640190fd5b612d0f614df7565b612d5161126f84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506130cf92505050565b90506000612d616112848361313e565b9050612d6b614df7565b612d748361363f565b15612d9257612d8b61126f6123cf6122da8661313e565b9050612dd8565b6040805162461bcd60e51b8152602060048201526016602482015275656d707479206661696c2061636b207061636b61676560501b604482015290519081900360640190fd5b60ff821660011415612df257612ded816141f9565b612e1c565b60ff821660021415612e0757612ded81614413565b60ff8216600314156112c357612ded8161453d565b5050505b505050565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b61100381565b68056bc75e2d6310000081565b6001600160a01b0392831660009081526009602090815260408083209486168352938152838220929094168152925290205490565b61100081565b61100481565b600082820183811015612efe576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6000612efe83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506146a2565b6000612efe83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250614744565b60408051600560a21b8318601482015260348101909152606090612efe8161479e565b6060612bf6612fba836147f4565b61479e565b6060815160001415612fe05750604080516000815260208101909152611196565b606082600081518110612fef57fe5b602002602001015190506000600190505b8351811015613030576130268285838151811061301957fe5b60200260200101516148da565b9150600101613000565b50612efe613043825160c060ff16614957565b826148da565b6040805160028082526060828101909352829190816020015b60608152602001906001900390816130625790505090506130858460ff16612fac565b8160008151811061309257fe5b60200260200101819052506130a68361479e565b816001815181106130b357fe5b60200260200101819052506130c781612fbf565b949350505050565b6130d7614e17565b506040805180820190915281518152602082810190820152919050565b6130fc614df7565b61310582614a4f565b61310e57600080fd5b600061311d8360200151614a89565b60208085015160408051808201909152868152920190820152915050919050565b613146614e17565b61314f8261363f565b61315857600080fd5b6020820151600061316882614aec565b80830160209586015260408051808201909152908152938401919091525090919050565b8051600090158015906131a157508151602110155b6131aa57600080fd5b60006131b98360200151614a89565b90508083600001511015613214576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b82516020808501518301805192849003929183101561323a57826020036101000a820491505b50949350505050565b600060606000806000805b6132578761363f565b156132a957826132795761327261326d8861313e565b614c1f565b915061329e565b82600114156132995761328e6112848861313e565b90506001935061329e565b6132a9565b82600101925061324e565b836132ef576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b60006110046001600160a01b031663727be1f8836040518263ffffffff1660e01b815260040180828152602001915050602060405180830381600087803b15801561333957600080fd5b505af115801561334d573d6000803e3d6000fd5b505050506040513d602081101561336357600080fd5b50519050806133885761337a600484846065614c39565b96509650505050505061341e565b6001600160a01b0383166000908152600660205260409020546133b1908363ffffffff612ea416565b6001600160a01b038416600081815260066020908152604091829020939093558051858152905191927f7cc266c7b444f808013fa187f7b904d470a051a6564e78f482aa496581ba4bf892918290030190a260408051600080825260208201909252909750955050505050505b915091565b6000606060008060008060005b6134398861363f565b156134a257836134565761344f61326d8961313e565b9250613497565b83600114156134725761346b61326d8961313e565b9150613497565b8360021415613492576134876112848961313e565b905060019450613497565b6134a2565b836001019350613430565b846134e8576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b60006110046001600160a01b031663727be1f8836040518263ffffffff1660e01b815260040180828152602001915050602060405180830381600087803b15801561353257600080fd5b505af1158015613546573d6000803e3d6000fd5b505050506040513d602081101561355c57600080fd5b505190508061358257613573600585846065614c39565b9750975050505050505061341e565b6001600160a01b0380851660008181526007602090815260408083209488168352938152838220829055918152600890915220546135c6908363ffffffff612ea416565b6001600160a01b0380861660008181526008602090815260409182902094909455805186815290519287169391927f35a799836f74fac7eccf5c73902823b970543d2274d3b93d8da3d37a255772a2929181900390910190a3604080516000808252602082019092529098509650505050505050915091565b6000613649614e17565b505080518051602091820151919092015191011190565b805160609061366e57600080fd5b600061367d8360200151614a89565b83516040805191839003808352601f19601f82011683016020019091529192506060908280156136b4576020820181803683370190505b509050600081602001905061323a848760200151018285614d35565b8051602080830191909120600e546000908152600a90925260408220548082146136ff57600092505050611196565b5050600e80546000908152600a60205260408120558054600190810190915592915050565b60008060008060005b6137368861363f565b1561379f57836137535761374c61326d8961313e565b9250613794565b836001141561376f5761376861326d8961313e565b9150613794565b836002141561378f576137846112848961313e565b905060019450613794565b61379f565b83600101935061372d565b846137e5576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b60006137fc826402540be40063ffffffff614d8016565b6001600160a01b0385166000908152600b602052604090208054600019019055905060ff8816600114156139425760ff87161561386f576040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b6001600160a01b038416600090815260046020526040902054613898908263ffffffff612ea416565b6001600160a01b038086166000908152600460209081526040808320949094556005815283822092871682529190915220546138da908263ffffffff612ea416565b6001600160a01b038086166000818152600560209081526040808320948916808452948252918290209490945580518581529051929391927f9a57c81564ab02642f34fd87e41baa9b074c18342cec3b7268b62bf752018fd1929181900390910190a3613ad0565b60ff8816613a94576001600160a01b038416600090815260086020526040902054613973908263ffffffff612ea416565b6001600160a01b0385166000908152600860209081526040808320939093558251630e4f7c3f60e31b81526004810185905292516110049363727be1f89360248083019493928390030190829087803b1580156139cf57600080fd5b505af11580156139e3573d6000803e3d6000fd5b505050506040513d60208110156139f957600080fd5b5051613a42576040805162461bcd60e51b81526020600482015260136024820152721dda5d1a191c985dc8189b988819985a5b1959606a1b604482015290519081900360640190fd5b6040805182815260ff8916602082015281516001600160a01b0380871693908816927fcbd481ae600289fad8c0484d07ce0ffe4f010d7c844ecfdeaf2a13fead52886e929081900390910190a3613ad0565b6040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b505050505050505050565b60008060008060005b613aed8861363f565b15613b565783613b0a57613b0361326d8961313e565b9250613b4b565b8360011415613b2657613b1f61326d8961313e565b9150613b4b565b8360021415613b4657613b3b6112848961313e565b905060019450613b4b565b613b56565b836001019350613ae4565b84613b9c576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6000613bb3826402540be40063ffffffff614d8016565b6001600160a01b0385166000908152600c602052604090208054600019019055905060ff881660011415613d325760ff871615613c26576040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b6001600160a01b038416600090815260046020526040902054613c4f908263ffffffff612f4716565b6001600160a01b03808616600090815260046020908152604080832094909455600581528382209287168252919091522054613c91908263ffffffff612f4716565b6001600160a01b03808616600090815260056020908152604080832093881683529290522055613cca42620a8c0063ffffffff612ea416565b6001600160a01b038086166000818152600760209081526040808320948916808452948252918290209490945580518581529051929391927fd6f878a5bcbbe79a64e6418bb0d56aaa20b9a60587d45749819df88dfc7c3c44929181900390910190a3613ad0565b60ff8816613a94576001600160a01b03808516600081815260076020908152604080832094881680845294825280832092909255815185815260ff8c169181019190915281517f4417d10c1e33efa83a770b8d4f47176e78c08c1298d534901ad3b16bb585fa2e929181900390910190a3613ad0565b6000806000806000805b613dbb8961363f565b15613e405784613dd857613dd161326d8a61313e565b9350613e35565b8460011415613df457613ded61326d8a61313e565b9250613e35565b8460021415613e1057613e0961326d8a61313e565b9150613e35565b8460031415613e3057613e256112848a61313e565b905060019550613e35565b613e40565b846001019450613db2565b85613e86576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6000613e9d826402540be40063ffffffff614d8016565b6001600160a01b0386166000908152600d602052604090208054600019019055905060ff8916600114156140705760ff881615613f10576040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b6001600160a01b03808616600090815260056020908152604080832093881683529290522054613f46908263ffffffff612f4716565b6001600160a01b03868116600090815260056020908152604080832089851684529091528082209390935590851681522054613f829082612ea4565b6001600160a01b03808716600090815260056020908152604080832093881683529290522055613fbb42620a8c0063ffffffff612ea416565b6001600160a01b0380871660009081526009602090815260408083208985168452825280832093881683529290522055613ffe42620a8c0063ffffffff612ea416565b6001600160a01b038087166000818152600960209081526040808320898616808552908352818420958b1680855295835292819020959095558451868152945191947f78bffae3f8c6691ac7fc1a3bff800cb2d612f5ad9ae5b0444cfe2eb15c189e18929081900390910190a4614101565b60ff8916613a94576001600160a01b038581166000818152600960209081526040808320898616808552818452828520968a16808652968452828520859055908352818420818552835281842093909355805186815260ff8e169281019290925280519293927fb93bee5c59f85ede6b074a99f4ffcd3e3fc0d5c3d8156de331de89a49e0ce77c9281900390910190a45b50505050505050505050565b6000816040516020018082805190602001908083835b602083106141425780518252601f199092019160209182019101614123565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106141b05780518252601f199092019160209182019101614191565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b60008060008060005b61420b8661363f565b1561427457836142285761422161326d8761313e565b9250614269565b83600114156142445761423d61326d8761313e565b9150614269565b8360021415614264576142596112848761313e565b905060019450614269565b614274565b836001019350614202565b846142ba576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b60006142d1826402540be40063ffffffff614d8016565b6001600160a01b0385166000908152600b602090815260408083208054600019019055600890915290205490915061430f908263ffffffff612ea416565b6001600160a01b0385166000908152600860209081526040808320939093558251630e4f7c3f60e31b81526004810185905292516110049363727be1f89360248083019493928390030190829087803b15801561436b57600080fd5b505af115801561437f573d6000803e3d6000fd5b505050506040513d602081101561439557600080fd5b50516143de576040805162461bcd60e51b81526020600482015260136024820152721dda5d1a191c985dc8189b988819985a5b1959606a1b604482015290519081900360640190fd5b6040516001907ff83de021914a4585482db5ca47d520a5657165b443fa2c7ef8ed4635f054da9b90600090a250505050505050565b60008060008060005b6144258661363f565b1561448e57836144425761443b61326d8761313e565b9250614483565b836001141561445e5761445761326d8761313e565b9150614483565b836002141561447e576144736112848761313e565b905060019450614483565b61448e565b83600101935061441c565b846144d4576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6001600160a01b038084166000908152600c60209081526040808320805460001901905560078252808320938616835292905281812081905590516002917ff83de021914a4585482db5ca47d520a5657165b443fa2c7ef8ed4635f054da9b91a2505050505050565b6000806000806000805b6145508761363f565b156145d5578461456d5761456661326d8861313e565b93506145ca565b84600114156145895761458261326d8861313e565b92506145ca565b84600214156145a55761459e61326d8861313e565b91506145ca565b84600314156145c5576145ba6112848861313e565b9050600195506145ca565b6145d5565b846001019450614547565b8561461b576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6001600160a01b038481166000908152600d602090815260408083208054600019019055600982528083208785168085528184528285209588168552948352818420849055825280832093835292905281812081905590516003917ff83de021914a4585482db5ca47d520a5657165b443fa2c7ef8ed4635f054da9b91a250505050505050565b6000818361472e5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156146f35781810151838201526020016146db565b50505050905090810190601f1680156147205780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161473a57fe5b0495945050505050565b600081848411156147965760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156146f35781810151838201526020016146db565b505050900390565b6060815160011480156147d05750607f60f81b826000815181106147be57fe5b01602001516001600160f81b03191611155b156147dc575080611196565b612bf66147ee8351608060ff16614957565b836148da565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166148385750601861485c565b6fffffffffffffffffffffffffffffffff1984166148585750601061485c565b5060005b60208110156148925781818151811061487157fe5b01602001516001600160f81b0319161561488a57614892565b60010161485c565b60008160200390506060816040519080825280601f01601f1916602001820160405280156148c7576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b8183101561490b5780518352602092830192016148f3565b50855184518101855292509050808201602086015b81831015614938578051835260209283019201614920565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106149a7576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b60408051600180825281830190925260609160208201818036833701905050905060378411614a015782840160f81b816000815181106149e357fe5b60200101906001600160f81b031916908160001a9053509050612bf6565b6060614a0c856147f4565b90508381510160370160f81b82600081518110614a2557fe5b60200101906001600160f81b031916908160001a905350614a4682826148da565b95945050505050565b8051600090614a6057506000611196565b6020820151805160001a9060c0821015614a7f57600092505050611196565b5060019392505050565b8051600090811a6080811015614aa3576000915050611196565b60b8811080614abe575060c08110801590614abe575060f881105b15614acd576001915050611196565b60c0811015614ae15760b519019050611196565b60f519019050611196565b80516000908190811a6080811015614b075760019150614c18565b60b8811015614b1c57607e1981019150614c18565b60c0811015614b9657600060b78203600186019550806020036101000a865104915060018101820193505080831015614b90576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50614c18565b60f8811015614bab5760be1981019150614c18565b600060f78203600186019550806020036101000a865104915060018101820193505080831015614c16576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b8051600090601514614c3057600080fd5b612bf68261318c565b60006060614c52846402540be40063ffffffff612f0516565b60408051600480825260a0820190925291955060609190816020015b6060815260200190600190039081614c6e579050509050614c918760ff16612fac565b81600081518110614c9e57fe5b6020026020010181905250614cbb866001600160a01b0316612f89565b81600181518110614cc857fe5b6020026020010181905250614cdc85612fac565b81600281518110614ce957fe5b6020026020010181905250614d038463ffffffff16612fac565b81600381518110614d1057fe5b60200260200101819052506060614d2682612fbf565b94989497509395505050505050565b80614d3f57612e20565b5b60208110614d5f578251825260209283019290910190601f1901614d40565b915181516020939093036101000a6000190180199091169216919091179052565b600082614d8f57506000612bf6565b82820282848281614d9c57fe5b0414612efe5760405162461bcd60e51b8152600401808060200182810382526021815260200180614ec06021913960400191505060405180910390fd5b60405180606001604052806003906020820280368337509192915050565b6040518060400160405280614e0a614e17565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe7468652042534352656c61796572466565206d6f642074656e20646563696d616c73206d757374206265207a65726f7468652042534352656c61796572466565206d757374206265206c657373207468616e2072656c61796572466565746865206d696e44656c65676174696f6e206d7573742062652067726561746572207468616e2072656c61796572466565536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f777468652072656c61796572466565206d6f642074656e20646563696d616c73206d757374206265207a65726f746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163747468652072656c61796572466565206d757374206265206c657373207468616e206d696e44656c65676174696f6e7468652072656c61796572466565206d757374206265206d6f7265207468616e2042534352656c61796572466565746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374a2646970667358221220066cc7c05d87e3cd20ecf3649deba7ac4ce8b389992969b6006793cbf330c73564736f6c63430006040033", - }, - }, - } - - GibbsUpgrade[networkname.RialtoChainName] = &Upgrade{ - UpgradeName: "gibbs", - Configs: []*UpgradeConfig{ - { - ContractAddr: TokenHubContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/9d45b31c12b2c04757284717f4351cb44e81a3a7", - Code: "60806040526004361061036f5760003560e01c80639a854bbd116101c6578063bd466461116100f7578063f014847211610095578063fc1a598f1161006f578063fc1a598f14610d58578063fc3e590814610a3b578063fd6a687914610d8b578063ff9c0027146106ec576103b7565b8063f014847214610d19578063f9a2bbc714610d2e578063fa9e915914610d43576103b7565b8063d9e6dae9116100d1578063d9e6dae91461066e578063dc927faf14610cda578063e1c7392a14610cef578063ebf71d5314610d04576103b7565b8063bd46646114610c0d578063c81b166214610c40578063c8509d8114610c55576103b7565b8063aa7415f511610164578063b99328c51161013e578063b99328c514610b77578063b9fd21e314610bb0578063ba35ead614610bc5578063bbface1f14610bda576103b7565b8063aa7415f514610a50578063ab51bb9614610a97578063ac43175114610aac576103b7565b8063a1a11bf5116101a0578063a1a11bf5146109fc578063a496fba214610a11578063a78abc1614610a26578063a7c9f02d14610a3b576103b7565b80639a854bbd146109995780639a99b4f0146109ae5780639dc09262146109e7576103b7565b806361368475116102a0578063727be1f81161023e578063831d65d111610218578063831d65d1146108c05780638b87b21f146105ed5780638eff336c1461094557806396713da914610984576103b7565b8063727be1f81461086c57806375d47a0a146108965780637942fd05146108ab576103b7565b80636e47b4821161027a5780636e47b4821461082d57806370fd5bad146106ec578063718a8aa81461084257806371d3086314610857576103b7565b8063613684751461066e57806366dea52a146106ec5780636e05652014610701576103b7565b806343a368b91161030d57806350432d32116102e757806350432d321461068357806351e806721461069857806359b92789146106ad5780635d499b1b146106d7576103b7565b806343a368b91461062d578063493279b1146106425780634bf6c8821461066e576103b7565b8063149d14d911610349578063149d14d9146105155780633d7132231461053c5780633dffc387146105ed57806343756e5c14610618576103b7565b80630bee7a67146103bc5780630e2374a5146103ea5780631182b8751461041b576103b7565b366103b75734156103b5576040805133815234602082015281517f6c98249d85d88c3753a04a22230f595e4dc8d3dc86c34af35deeeedc861b89db929181900390910190a15b005b600080fd5b3480156103c857600080fd5b506103d1610da0565b6040805163ffffffff9092168252519081900360200190f35b3480156103f657600080fd5b506103ff610da5565b604080516001600160a01b039092168252519081900360200190f35b34801561042757600080fd5b506104a06004803603604081101561043e57600080fd5b60ff8235169190810190604081016020820135600160201b81111561046257600080fd5b82018360208201111561047457600080fd5b803590602001918460018302840111600160201b8311171561049557600080fd5b509092509050610dab565b6040805160208082528351818301528351919283929083019185019080838360005b838110156104da5781810151838201526020016104c2565b50505050905090810190601f1680156105075780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561052157600080fd5b5061052a610ed9565b60408051918252519081900360200190f35b34801561054857600080fd5b506103ff6004803603602081101561055f57600080fd5b810190602081018135600160201b81111561057957600080fd5b82018360208201111561058b57600080fd5b803590602001918460018302840111600160201b831117156105ac57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610edf945050505050565b3480156105f957600080fd5b50610602610f03565b6040805160ff9092168252519081900360200190f35b34801561062457600080fd5b506103ff610f08565b34801561063957600080fd5b5061052a610f0e565b34801561064e57600080fd5b50610657610f1a565b6040805161ffff9092168252519081900360200190f35b34801561067a57600080fd5b50610602610f20565b34801561068f57600080fd5b5061052a610f25565b3480156106a457600080fd5b506103ff610f30565b3480156106b957600080fd5b506103ff600480360360208110156106d057600080fd5b5035610f36565b3480156106e357600080fd5b5061052a610f51565b3480156106f857600080fd5b50610602610f5a565b6108196004803603608081101561071757600080fd5b810190602081018135600160201b81111561073157600080fd5b82018360208201111561074357600080fd5b803590602001918460208302840111600160201b8311171561076457600080fd5b919390929091602081019035600160201b81111561078157600080fd5b82018360208201111561079357600080fd5b803590602001918460208302840111600160201b831117156107b457600080fd5b919390929091602081019035600160201b8111156107d157600080fd5b8201836020820111156107e357600080fd5b803590602001918460208302840111600160201b8311171561080457600080fd5b91935091503567ffffffffffffffff16610f5f565b604080519115158252519081900360200190f35b34801561083957600080fd5b506103ff611434565b34801561084e57600080fd5b5061060261143a565b34801561086357600080fd5b5061052a61143f565b34801561087857600080fd5b506108196004803603602081101561088f57600080fd5b5035611445565b3480156108a257600080fd5b506103ff6114bf565b3480156108b757600080fd5b506106026114c5565b3480156108cc57600080fd5b506103b5600480360360408110156108e357600080fd5b60ff8235169190810190604081016020820135600160201b81111561090757600080fd5b82018360208201111561091957600080fd5b803590602001918460018302840111600160201b8311171561093a57600080fd5b5090925090506114ca565b34801561095157600080fd5b506103b56004803603606081101561096857600080fd5b508035906001600160a01b036020820135169060400135611613565b34801561099057600080fd5b50610602611699565b3480156109a557600080fd5b5061052a61169e565b3480156109ba57600080fd5b5061052a600480360360408110156109d157600080fd5b506001600160a01b0381351690602001356116aa565b3480156109f357600080fd5b506103ff6117e8565b348015610a0857600080fd5b506103ff6117ee565b348015610a1d57600080fd5b506106026117f4565b348015610a3257600080fd5b506108196117f9565b348015610a4757600080fd5b50610602611802565b61081960048036036080811015610a6657600080fd5b5080356001600160a01b03908116916020810135909116906040810135906060013567ffffffffffffffff16611807565b348015610aa357600080fd5b506103d16117f4565b348015610ab857600080fd5b506103b560048036036040811015610acf57600080fd5b810190602081018135600160201b811115610ae957600080fd5b820183602082011115610afb57600080fd5b803590602001918460018302840111600160201b83111715610b1c57600080fd5b919390929091602081019035600160201b811115610b3957600080fd5b820183602082011115610b4b57600080fd5b803590602001918460018302840111600160201b83111715610b6c57600080fd5b509092509050611ec8565b348015610b8357600080fd5b506103b560048036036040811015610b9a57600080fd5b50803590602001356001600160a01b0316612137565b348015610bbc57600080fd5b5061052a6121ad565b348015610bd157600080fd5b5061052a6121b7565b348015610be657600080fd5b5061052a60048036036020811015610bfd57600080fd5b50356001600160a01b03166121bd565b348015610c1957600080fd5b5061052a60048036036020811015610c3057600080fd5b50356001600160a01b03166121cf565b348015610c4c57600080fd5b506103ff6121ea565b348015610c6157600080fd5b506103b560048036036040811015610c7857600080fd5b60ff8235169190810190604081016020820135600160201b811115610c9c57600080fd5b820183602082011115610cae57600080fd5b803590602001918460018302840111600160201b83111715610ccf57600080fd5b5090925090506121f0565b348015610ce657600080fd5b506103ff6122c0565b348015610cfb57600080fd5b506103b56122c6565b348015610d1057600080fd5b50610602612366565b348015610d2557600080fd5b5061060261236b565b348015610d3a57600080fd5b506103ff612370565b348015610d4f57600080fd5b5061052a612376565b348015610d6457600080fd5b506104a060048036036020811015610d7b57600080fd5b50356001600160a01b031661237c565b348015610d9757600080fd5b506103ff6124a3565b606481565b61200181565b60005460609060ff16610df3576040805162461bcd60e51b81526020600482015260196024820152600080516020614906833981519152604482015290519081900360640190fd5b3361200014610e335760405162461bcd60e51b815260040180806020018281038252602f8152602001806148b4602f913960400191505060405180910390fd5b60ff841660021415610e8557610e7e83838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506124a992505050565b9050610ed2565b6040805162461bcd60e51b815260206004820152601860248201527f756e7265636f676e697a65642073796e207061636b6167650000000000000000604482015290519081900360640190fd5b9392505050565b60015490565b6020818101516000908152600490915260409020546001600160a01b03165b919050565b600181565b61100181565b670de0b6b3a764000081565b6102ca81565b600881565b66071afd498d000081565b61200081565b6000908152600460205260409020546001600160a01b031690565b6402540be40081565b600281565b6000805460ff16610fa5576040805162461bcd60e51b81526020600482015260196024820152600080516020614906833981519152604482015290519081900360640190fd5b868514610fe35760405162461bcd60e51b815260040180806020018281038252603b815260200180614879603b913960400191505060405180910390fd5b8683146110215760405162461bcd60e51b815260040180806020018281038252603f81526020018061474c603f913960400191505060405180910390fd5b426078018267ffffffffffffffff16101561106d5760405162461bcd60e51b815260040180806020018281038252602481526020018061463c6024913960400191505060405180910390fd5b6402540be4003406156110b15760405162461bcd60e51b815260040180806020018281038252604081526020018061497c6040913960400191505060405180910390fd5b604080518681526020808802820101909152859060009081906060908480156110e4578160200160208202803683370190505b50905060005b848110156111bf576402540be4008b8b8381811061110457fe5b905060200201358161111257fe5b061561114f5760405162461bcd60e51b815260040180806020018281038252603c81526020018061478b603c913960400191505060405180910390fd5b6111748b8b8381811061115e57fe5b90506020020135856125cd90919063ffffffff16565b93506111a06402540be4008c8c8481811061118b57fe5b9050602002013561262790919063ffffffff16565b8282815181106111ac57fe5b60209081029190910101526001016110ea565b506001546111e4906111d7908663ffffffff61266916565b849063ffffffff6125cd16565b3410156112225760405162461bcd60e51b81526004018080602001828103825260568152602001806149266056913960600191505060405180910390fd5b611232348463ffffffff6126c216565b915061123c614462565b6040518060c001604052806221272160e91b60001b815260200160006001600160a01b031681526020018381526020018e8e808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505050908252506040805160208c810282810182019093528c82529283019290918d918d91829185019084908082843760009201919091525050509082525067ffffffffffffffff8916602090910152905061200063f7a251d7600361130084612704565b611315876402540be40063ffffffff61262716565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561137357818101518382015260200161135b565b50505050905090810190601f1680156113a05780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156113c157600080fd5b505af11580156113d5573d6000803e3d6000fd5b505060408051600081523360208201528082018890526060810187905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a15060019c9b505050505050505050505050565b61100581565b601081565b60015481565b600033612001146114875760405162461bcd60e51b815260040180806020018281038252603381526020018061457c6033913960400191505060405180910390fd5b6040516120019083156108fc029084906000818181858888f193505050501580156114b6573d6000803e3d6000fd5b50600192915050565b61100881565b600b81565b60005460ff1661150f576040805162461bcd60e51b81526020600482015260196024820152600080516020614906833981519152604482015290519081900360640190fd5b336120001461154f5760405162461bcd60e51b815260040180806020018281038252602f8152602001806148b4602f913960400191505060405180910390fd5b60ff83166003141561159f5761159a82828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506129bf92505050565b61160e565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a15b505050565b33611008146116535760405162461bcd60e51b81526004018080602001828103825260238152602001806148e36023913960400191505060405180910390fd5b600083815260046020908152604080832080546001600160a01b039096166001600160a01b03199096168617905593825260038152838220949094556002909352912055565b600981565b677ce66c50e284000081565b6000805460ff166116f0576040805162461bcd60e51b81526020600482015260196024820152600080516020614906833981519152604482015290519081900360640190fd5b33611005146117305760405162461bcd60e51b815260040180806020018281038252602f8152602001806145af602f913960400191505060405180910390fd5b600047831061173f5747611741565b825b9050670de0b6b3a764000081111561175d5760009150506117e2565b80156117df576040516001600160a01b0385169082156108fc029083906000818181858888f19350505050158015611799573d6000803e3d6000fd5b50604080516001600160a01b03861681526020810183905281517ff8b71c64315fc33b2ead2adfa487955065152a8ac33d9d5193aafd7f45dc15a0929181900390910190a15b90505b92915050565b61100781565b61100681565b600081565b60005460ff1681565b600381565b6000805460ff1661184d576040805162461bcd60e51b81526020600482015260196024820152600080516020614906833981519152604482015290519081900360640190fd5b426078018267ffffffffffffffff1610156118995760405162461bcd60e51b815260040180806020018281038252602481526020018061463c6024913960400191505060405180910390fd5b6402540be4003406156118dd5760405162461bcd60e51b815260040180806020018281038252604081526020018061497c6040913960400191505060405180910390fd5b600080806001600160a01b0388166119bc5760015461190390879063ffffffff6125cd16565b3410156119415760405162461bcd60e51b81526004018080602001828103825260618152602001806146c66061913960800191505060405180910390fd5b6402540be4008606156119855760405162461bcd60e51b815260040180806020018281038252603c81526020018061478b603c913960400191505060405180910390fd5b611995348763ffffffff6126c216565b90506119ac866402540be40063ffffffff61262716565b6221272160e91b93509150611c5f565b6001600160a01b038816600090815260036020526040902054925082611a135760405162461bcd60e51b81526004018080602001828103825260318152602001806146956031913960400191505060405180910390fd5b600154341015611a545760405162461bcd60e51b815260040180806020018281038252603f8152602001806147e8603f913960400191505060405180910390fd5b506001600160a01b0387166000908152600260205260409020543490600881111580611a9f5750600881118015611a9f5750611a9d876007198301600a0a63ffffffff612a1b16565b155b611ada5760405162461bcd60e51b815260040180806020018281038252603c81526020018061478b603c913960400191505060405180910390fd5b611ae48782612a5d565b9250611aef84612a9d565b15611b37576305f5e100831015611b375760405162461bcd60e51b815260040180806020018281038252603a8152602001806145de603a913960400191505060405180910390fd5b600881101580611b515750600881108015611b5157508683115b611b8c5760405162461bcd60e51b81526004018080602001828103825260258152602001806147276025913960400191505060405180910390fd5b677ce66c50e2840000831115611bd35760405162461bcd60e51b81526004018080602001828103825260358152602001806146606035913960400191505060405180910390fd5b604080516323b872dd60e01b81523360048201523060248201526044810189905290516001600160a01b038b16916323b872dd9160648083019260209291908290030181600087803b158015611c2857600080fd5b505af1158015611c3c573d6000803e3d6000fd5b505050506040513d6020811015611c5257600080fd5b5051611c5d57600080fd5b505b611c67614462565b6040805160c0810182528581526001600160a01b038b166020820152815160018082528184018452919283019181602001602082028036833750505081526040805160018082528183019092526020928301929091908083019080368337505050815260408051600180825281830190925260209283019290919080830190803683370190505081526020018767ffffffffffffffff168152509050828160400151600081518110611d1557fe5b602002602001018181525050878160600151600081518110611d3357fe5b60200260200101906001600160a01b031690816001600160a01b031681525050338160800151600081518110611d6557fe5b6001600160a01b039092166020928302919091019091015261200063f7a251d76003611d9084612704565b611da5866402540be40063ffffffff61262716565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611e03578181015183820152602001611deb565b50505050905090810190601f168015611e305780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015611e5157600080fd5b505af1158015611e65573d6000803e3d6000fd5b5050604080516001600160a01b038d1681523360208201528082018b90526060810186905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a150600198975050505050505050565b3361100714611f085760405162461bcd60e51b815260040180806020018281038252602e815260200180614827602e913960400191505060405180910390fd5b60208114611f5d576040805162461bcd60e51b815260206004820152601b60248201527f65787065637465642076616c7565206c656e6774682069732033320000000000604482015290519081900360640190fd5b606084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8801819004810282018101909252868152939450606093925086915085908190840183828082843760009201919091525050505060208301519091506772656c617946656560c01b811415612065576020820151670de0b6b3a7640000811180159061200c57506402540be4008106155b61205d576040805162461bcd60e51b815260206004820152601960248201527f7468652072656c6179466565206f7574206f662072616e676500000000000000604482015290519081900360640190fd5b6001556120a2565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a878787876040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050505050565b33611008146121775760405162461bcd60e51b81526004018080602001828103825260238152602001806148e36023913960400191505060405180910390fd5b600091825260046020908152604080842080546001600160a01b03191690556001600160a01b0392909216835260039052812055565b6221272160e91b81565b61c35081565b60026020526000908152604090205481565b6001600160a01b031660009081526003602052604090205490565b61100281565b60005460ff16612235576040805162461bcd60e51b81526020600482015260196024820152600080516020614906833981519152604482015290519081900360640190fd5b33612000146122755760405162461bcd60e51b815260040180806020018281038252602f8152602001806148b4602f913960400191505060405180910390fd5b60ff83166003141561159f5761159a82828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612ba392505050565b61100381565b60005460ff161561231e576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b66071afd498d000060019081556000808052600260205260127fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b55805460ff19169091179055565b600481565b600581565b61100081565b61271081565b6001600160a01b03811660009081526003602090815260409182902054825182815280840190935260609290918391906020820181803683375050506020810183905290506000805b60208160ff16101561240c57828160ff16815181106123e057fe5b01602001516001600160f81b031916156123ff57600190910190612404565b61240c565b6001016123c5565b5060608160ff166040519080825280601f01601f19166020018201604052801561243d576020820181803683370190505b50905060005b8260ff168160ff16101561249957838160ff168151811061246057fe5b602001015160f81c60f81b828260ff168151811061247a57fe5b60200101906001600160f81b031916908160001a905350600101612443565b5095945050505050565b61100481565b60606124b36144ae565b60006124be84612ca1565b9150915080612514576040805162461bcd60e51b815260206004820152601f60248201527f756e7265636f676e697a6564207472616e73666572496e207061636b61676500604482015290519081900360640190fd5b600061251f83612de0565b905063ffffffff8116156125b3576040808401516020808601516001600160a01b0316600090815260029091529182205461255a9190612a5d565b90506125646144e3565b60405180608001604052808660000151815260200183815260200186608001516001600160a01b031681526020018463ffffffff1681525090506125a78161312d565b95505050505050610efe565b50506040805160008152602081019091529150610efe9050565b6000828201838110156117df576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60006117df83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613209565b600082612678575060006117e2565b8282028284828161268557fe5b04146117df5760405162461bcd60e51b81526004018080602001828103825260218152602001806147c76021913960400191505060405180910390fd5b60006117df83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506132ab565b60408051600680825260e08201909252606091829190816020015b606081526020019060019003908161271f575050835190915061274190613305565b8160008151811061274e57fe5b602002602001018190525061276f83602001516001600160a01b0316613318565b8160018151811061277c57fe5b6020026020010181905250600083604001515190506060816040519080825280602002602001820160405280156127c757816020015b60608152602001906001900390816127b25790505b50905060005b82811015612814576127f5866040015182815181106127e857fe5b6020026020010151613305565b82828151811061280157fe5b60209081029190910101526001016127cd565b5061281e8161333b565b8360028151811061282b57fe5b602002602001018190525060608260405190808252806020026020018201604052801561286c57816020015b60608152602001906001900390816128575790505b50905060005b838110156128c2576128a38760600151828151811061288d57fe5b60200260200101516001600160a01b0316613318565b8282815181106128af57fe5b6020908102919091010152600101612872565b506128cc8161333b565b846003815181106128d957fe5b602002602001018190525060608360405190808252806020026020018201604052801561291a57816020015b60608152602001906001900390816129055790505b50905060005b8481101561295a5761293b8860800151828151811061288d57fe5b82828151811061294757fe5b6020908102919091010152600101612920565b506129648161333b565b8560048151811061297157fe5b60200260200101819052506129938760a0015167ffffffffffffffff16613305565b856005815181106129a057fe5b60200260200101819052506129b48561333b565b979650505050505050565b6129c761450a565b60006129d2836133c5565b9150915080612a125760405162461bcd60e51b81526004018080602001828103825260248152602001806148556024913960400191505060405180910390fd5b61160e82613590565b60006117df83836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f0000000000000000815250613a14565b60006008821115612a8657612a7f836007198401600a0a63ffffffff61262716565b90506117e2565b6117df836008849003600a0a63ffffffff61266916565b604080516020808252818301909252600091606091906020820181803683375050506020810184905290506000805b60208160ff161015612b1357828160ff1681518110612ae757fe5b01602001516001600160f81b03191615612b0657600190910190612b0b565b612b13565b600101612acc565b50600760ff82161015612b2b57600092505050610efe565b816005820360ff1681518110612b3d57fe5b6020910101516001600160f81b031916602d60f81b14612b6257600092505050610efe565b816001820360ff1681518110612b7457fe5b6020910101516001600160f81b031916604d60f81b14612b9957600092505050610efe565b5060019392505050565b612bab614462565b6000612bb683613a76565b9150915080612bf65760405162461bcd60e51b81526004018080602001828103825260248152602001806146186024913960400191505060405180910390fd5b612bfe61450a565b602080840180516001600160a01b0390811684526040808701518585015291511660009081526002909252812054905b846040015151811015612c7f57612c5c85604001518281518110612c4e57fe5b602002602001015183613cda565b85604001518281518110612c6c57fe5b6020908102919091010152600101612c2e565b506080840151604083015260056060830152612c9a82613590565b5050505050565b612ca96144ae565b6000612cb36144ae565b612cbb614541565b612ccc612cc786613d13565b613d38565b90506000805b612cdb83613d82565b15612dd35780612cfd57612cf6612cf184613da3565b613df1565b8452612dcb565b8060011415612d2a57612d17612d1284613da3565b613ea8565b6001600160a01b03166020850152612dcb565b8060021415612d4957612d3f612cf184613da3565b6040850152612dcb565b8060031415612d7157612d5e612d1284613da3565b6001600160a01b03166060850152612dcb565b8060041415612d9957612d86612d1284613da3565b6001600160a01b03166080850152612dcb565b8060051415612dc657612dae612cf184613da3565b67ffffffffffffffff1660a085015260019150612dcb565b612dd3565b600101612cd2565b5091935090915050915091565b60208101516000906001600160a01b0316612f17578160a0015167ffffffffffffffff16421115612e1357506001610efe565b8160400151471015612e2757506003610efe565b606082015160408084015190516000926001600160a01b0316916127109184818181858888f193505050503d8060008114612e7e576040519150601f19603f3d011682016040523d82523d6000602084013e612e83565b606091505b5050905080612e96575060049050610efe565b7f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5983602001518460600151856040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a15060009050610efe565b8160a0015167ffffffffffffffff16421115612f3557506001610efe565b81516020808401516001600160a01b031660009081526003909152604090205414612f6257506002610efe565b602080830151604080516370a0823160e01b815230600482015290516000936001600160a01b03909316926370a082319261c3509260248083019392829003018187803b158015612fb257600080fd5b5086fa158015612fc6573d6000803e3d6000fd5b50505050506040513d6020811015612fdd57600080fd5b50516040840151909150811015612ff8575060039050610efe565b600083602001516001600160a01b031663a9059cbb61c350866060015187604001516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b15801561306957600080fd5b5087f115801561307d573d6000803e3d6000fd5b50505050506040513d602081101561309457600080fd5b505190508015613121577f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5984602001518560600151866040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a15060009150610efe9050565b5060059150610efe9050565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081613148575050835190915061316a90613305565b8160008151811061317757fe5b602002602001018190525061318f8360200151613305565b8160018151811061319c57fe5b60200260200101819052506131bd83604001516001600160a01b0316613318565b816002815181106131ca57fe5b60200260200101819052506131e8836060015163ffffffff16613305565b816003815181106131f557fe5b6020026020010181905250610ed28161333b565b600081836132955760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561325a578181015183820152602001613242565b50505050905090810190601f1680156132875780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816132a157fe5b0495945050505050565b600081848411156132fd5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561325a578181015183820152602001613242565b505050900390565b60606117e261331383613ec2565b613fa8565b60408051600560a21b8318601482015260348101909152606090610ed281613fa8565b606081516000141561335c5750604080516000815260208101909152610efe565b60608260008151811061336b57fe5b602002602001015190506000600190505b83518110156133ac576133a28285838151811061339557fe5b6020026020010151613ffa565b915060010161337c565b50610ed26133bf825160c060ff16614077565b82613ffa565b6133cd61450a565b60006133d761450a565b6133df614541565b6133eb612cc786613d13565b90506000805b6133fa83613d82565b15612dd3578061342057613410612d1284613da3565b6001600160a01b03168452613588565b80600114156134c157606061343c61343785613da3565b61416f565b90508051604051908082528060200260200182016040528015613469578160200160208202803683370190505b50602086015260005b81518110156134ba5761349782828151811061348a57fe5b6020026020010151613df1565b866020015182815181106134a757fe5b6020908102919091010152600101613472565b5050613588565b80600214156135635760606134d861343785613da3565b90508051604051908082528060200260200182016040528015613505578160200160208202803683370190505b50604086015260005b81518110156134ba5761353382828151811061352657fe5b6020026020010151613ea8565b8660400151828151811061354357fe5b6001600160a01b039092166020928302919091019091015260010161350e565b8060031415612dc657613578612cf184613da3565b63ffffffff166060850152600191505b6001016133f1565b80516001600160a01b03166137ba5760005b8160200151518110156137b4576000826040015182815181106135c157fe5b60200260200101516001600160a01b0316612710846020015184815181106135e557fe5b60209081029190910101516040516000818181858888f193505050503d806000811461362d576040519150601f19603f3d011682016040523d82523d6000602084013e613632565b606091505b50509050806136f5577f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061367157fe5b60200260200101518560200151858151811061368957fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a16137ab565b7fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a83600001518460400151848151811061372b57fe5b60200260200101518560200151858151811061374357fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b506001016135a2565b50613a11565b60005b816020015151811015613a0f57600082600001516001600160a01b031663a9059cbb61c350856040015185815181106137f257fe5b60200260200101518660200151868151811061380a57fe5b60200260200101516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b15801561386157600080fd5b5087f1158015613875573d6000803e3d6000fd5b50505050506040513d602081101561388c57600080fd5b505190508015613950577fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a8360000151846040015184815181106138cc57fe5b6020026020010151856020015185815181106138e457fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a1613a06565b7f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061398657fe5b60200260200101518560200151858151811061399e57fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b506001016137bd565b505b50565b60008183613a635760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561325a578181015183820152602001613242565b50828481613a6d57fe5b06949350505050565b613a7e614462565b6000613a88614462565b613a90614541565b613a9c612cc786613d13565b90506000805b613aab83613d82565b15612dd35780613ac857613ac1612cf184613da3565b8452613cd2565b8060011415613af057613add612d1284613da3565b6001600160a01b03166020850152613cd2565b8060021415613b7f576060613b0761343785613da3565b90508051604051908082528060200260200182016040528015613b34578160200160208202803683370190505b50604086015260005b8151811015613b7857613b5582828151811061348a57fe5b86604001518281518110613b6557fe5b6020908102919091010152600101613b3d565b5050613cd2565b8060031415613c14576060613b9661343785613da3565b90508051604051908082528060200260200182016040528015613bc3578160200160208202803683370190505b50606086015260005b8151811015613b7857613be482828151811061352657fe5b86606001518281518110613bf457fe5b6001600160a01b0390921660209283029190910190910152600101613bcc565b8060041415613ca9576060613c2b61343785613da3565b90508051604051908082528060200260200182016040528015613c58578160200160208202803683370190505b50608086015260005b8151811015613b7857613c7982828151811061352657fe5b86608001518281518110613c8957fe5b6001600160a01b0390921660209283029190910190910152600101613c61565b8060051415612dc657613cbe612cf184613da3565b67ffffffffffffffff1660a0850152600191505b600101613aa2565b60006008821115613cfc57612a7f836007198401600a0a63ffffffff61266916565b6117df836008849003600a0a63ffffffff61262716565b613d1b614561565b506040805180820190915281518152602082810190820152919050565b613d40614541565b613d4982614240565b613d5257600080fd5b6000613d618360200151614270565b60208085015160408051808201909152868152920190820152915050919050565b6000613d8c614561565b505080518051602091820151919092015191011190565b613dab614561565b613db482613d82565b613dbd57600080fd5b60208201516000613dcd826142d3565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590613e0657508151602110155b613e0f57600080fd5b6000613e1e8360200151614270565b90508083600001511015613e79576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015613e9f57826020036101000a820491505b50949350505050565b8051600090601514613eb957600080fd5b6117e282613df1565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416613f0657506018613f2a565b6fffffffffffffffffffffffffffffffff198416613f2657506010613f2a565b5060005b6020811015613f6057818181518110613f3f57fe5b01602001516001600160f81b03191615613f5857613f60565b600101613f2a565b60008160200390506060816040519080825280601f01601f191660200182016040528015613f95576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015613fda5750607f60f81b82600081518110613fc857fe5b01602001516001600160f81b03191611155b15613fe6575080610efe565b6117e2613ff88351608060ff16614077565b835b6060806040519050835180825260208201818101602087015b8183101561402b578051835260209283019201614013565b50855184518101855292509050808201602086015b81831015614058578051835260209283019201614040565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106140c7576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b604080516001808252818301909252606091602082018180368337019050509050603784116141215782840160f81b8160008151811061410357fe5b60200101906001600160f81b031916908160001a90535090506117e2565b606061412c85613ec2565b90508381510160370160f81b8260008151811061414557fe5b60200101906001600160f81b031916908160001a9053506141668282613ffa565b95945050505050565b606061417a82614240565b61418357600080fd5b600061418e83614406565b90506060816040519080825280602002602001820160405280156141cc57816020015b6141b9614561565b8152602001906001900390816141b15790505b50905060006141de8560200151614270565b60208601510190506000805b84811015614235576141fb836142d3565b915060405180604001604052808381526020018481525084828151811061421e57fe5b6020908102919091010152918101916001016141ea565b509195945050505050565b805160009061425157506000610efe565b6020820151805160001a9060c0821015612b9957600092505050610efe565b8051600090811a608081101561428a576000915050610efe565b60b88110806142a5575060c081108015906142a5575060f881105b156142b4576001915050610efe565b60c08110156142c85760b519019050610efe565b60f519019050610efe565b80516000908190811a60808110156142ee57600191506143ff565b60b881101561430357607e19810191506143ff565b60c081101561437d57600060b78203600186019550806020036101000a865104915060018101820193505080831015614377576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b506143ff565b60f88110156143925760be19810191506143ff565b600060f78203600186019550806020036101000a8651049150600181018201935050808310156143fd576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b805160009061441757506000610efe565b6000809050600061442b8460200151614270565b602085015185519181019250015b808210156144595761444a826142d3565b60019093019290910190614439565b50909392505050565b6040518060c001604052806000801916815260200160006001600160a01b03168152602001606081526020016060815260200160608152602001600067ffffffffffffffff1681525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b60408051608081018252600080825260208201819052918101829052606081019190915290565b604051806080016040528060006001600160a01b031681526020016060815260200160608152602001600063ffffffff1681525090565b6040518060400160405280614554614561565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe6f6e6c79207374616b696e672073797374656d20636f6e74726163742063616e2063616c6c20746869732066756e6374696f6e746865206d6573736167652073656e646572206d75737420626520696e63656e746976697a6520636f6e7472616374466f72206d696e69546f6b656e2c20746865207472616e7366657220616d6f756e74206d757374206e6f74206265206c657373207468616e2031756e7265636f676e697a6564207472616e736665724f75742073796e207061636b61676565787069726554696d65206d7573742062652074776f206d696e75746573206c61746572616d6f756e7420697320746f6f206c617267652c20657863656564206d6178696d756d206265703220746f6b656e20616d6f756e7474686520636f6e747261637420686173206e6f74206265656e20626f756e6420746f20616e79206265703220746f6b656e726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e736665724f757420424e4220616d6f756e7420616e64206d696e696d756d2072656c6179466565616d6f756e7420697320746f6f206c617267652c2075696e74323536206f766572666c6f774c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620726566756e644164647273696e76616c6964207472616e7366657220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e20746865206d696e696d756d2072656c6179466565746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374756e7265636f676e697a6564207472616e736665724f75742061636b207061636b6167654c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620616d6f756e7473746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d73672073656e646572206d75737420626520746f6b656e4d616e6167657274686520636f6e7472616374206e6f7420696e69742079657400000000000000726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e7366657220424e4220616d6f756e7420616e642072656c6179466565696e76616c696420726563656976656420424e4220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6ea26469706673582212208f0455128650f210f452673f65fe656f790624ecf0bc6bbea21225e02413b67564736f6c63430006040033", - }, - { - ContractAddr: StakingContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/9d45b31c12b2c04757284717f4351cb44e81a3a7", - Code: "60806040526004361061036f5760003560e01c806370fd5bad116101c6578063b88a802f116100f7578063d7ecfcb611610095578063f45fd80b1161006f578063f45fd80b14610bd0578063f9a2bbc714610c15578063fc3e590814610646578063fd6a687914610c2a57610376565b8063d7ecfcb6146107ee578063dc927faf14610ba6578063edc1a5b014610bbb57610376565b8063c2117d82116100d1578063c2117d8214610abc578063c81b166214610ad1578063c8509d8114610ae6578063d61b9b9314610b6b57610376565b8063b88a802f14610a57578063baaafd3b14610a6c578063bf8546ca14610a8157610376565b806396713da911610164578063a78abc161161013e578063a78abc1614610939578063ab51bb9614610962578063ac43175114610977578063b14315df14610a4257610376565b806396713da9146108fa5780639dc092621461090f578063a1a11bf51461092457610376565b806375d47a0a116101a057806375d47a0a1461084b5780637942fd0514610860578063831d65d11461087557806392b888a4146105f257610376565b806370fd5bad146107ee578063718a8aa81461080357806375aca5931461081857610376565b8063413d9c3a116102a05780635d17c8bd1161023e57806369b635b61161021857806369b635b61461075b5780636bd8f804146107705780636e47b482146107a65780636fb7f7eb146107bb57610376565b80635d17c8bd1461071c5780635d499b1b1461073157806362b171d21461074657610376565b80634bf6c8821161027a5780634bf6c882146106b15780634d99dd16146106c657806351e80672146106f2578063552aaf931461070757610376565b8063413d9c3a1461065b57806343756e5c14610670578063493279b11461068557610376565b8063151817e31161030d578063333ad3e7116102e7578063333ad3e71461061c57806334c43354146106315780633dffc387146105f25780633fdfa7e41461064657610376565b8063151817e3146105c757806317c9efb0146105f25780632fdeb1111461060757610376565b80630bee7a67116103495780630bee7a671461043b5780630e2374a5146104695780631182b8751461049a57806311fe9ec61461059457610376565b8063026e402b1461037b57806302985992146103a9578063047636d1146103d057610376565b3661037657005b600080fd5b6103a76004803603604081101561039157600080fd5b506001600160a01b038135169060200135610c3f565b005b3480156103b557600080fd5b506103be611141565b60408051918252519081900360200190f35b3480156103dc57600080fd5b50610403600480360360208110156103f357600080fd5b50356001600160a01b0316611147565b6040518082606080838360005b83811015610428578181015183820152602001610410565b5050505090500191505060405180910390f35b34801561044757600080fd5b5061045061119b565b6040805163ffffffff9092168252519081900360200190f35b34801561047557600080fd5b5061047e6111a0565b604080516001600160a01b039092168252519081900360200190f35b3480156104a657600080fd5b5061051f600480360360408110156104bd57600080fd5b60ff8235169190810190604081016020820135600160201b8111156104e157600080fd5b8201836020820111156104f357600080fd5b803590602001918460018302840111600160201b8311171561051457600080fd5b5090925090506111a6565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610559578181015183820152602001610541565b50505050905090810190601f1680156105865780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156105a057600080fd5b506103be600480360360208110156105b757600080fd5b50356001600160a01b031661135c565b3480156105d357600080fd5b506105dc611377565b6040805160ff9092168252519081900360200190f35b3480156105fe57600080fd5b506105dc61137c565b34801561061357600080fd5b506103be611381565b34801561062857600080fd5b50610450611387565b34801561063d57600080fd5b506103be61138c565b34801561065257600080fd5b506105dc611397565b34801561066757600080fd5b506103be61139c565b34801561067c57600080fd5b5061047e6113a3565b34801561069157600080fd5b5061069a6113a9565b6040805161ffff9092168252519081900360200190f35b3480156106bd57600080fd5b506105dc6113af565b6103a7600480360360408110156106dc57600080fd5b506001600160a01b0381351690602001356113b4565b3480156106fe57600080fd5b5061047e61199b565b34801561071357600080fd5b506105dc6119a1565b34801561072857600080fd5b506103be6119a6565b34801561073d57600080fd5b506103be6119ac565b34801561075257600080fd5b506103be6119b5565b34801561076757600080fd5b506103be611aed565b6103a76004803603606081101561078657600080fd5b506001600160a01b03813581169160208101359091169060400135611af3565b3480156107b257600080fd5b5061047e612161565b3480156107c757600080fd5b506103be600480360360208110156107de57600080fd5b50356001600160a01b0316612167565b3480156107fa57600080fd5b506105dc612182565b34801561080f57600080fd5b506105dc612187565b34801561082457600080fd5b506103be6004803603602081101561083b57600080fd5b50356001600160a01b031661218c565b34801561085757600080fd5b5061047e6121a7565b34801561086c57600080fd5b506105dc6121ad565b34801561088157600080fd5b506103a76004803603604081101561089857600080fd5b60ff8235169190810190604081016020820135600160201b8111156108bc57600080fd5b8201836020820111156108ce57600080fd5b803590602001918460018302840111600160201b831117156108ef57600080fd5b5090925090506121b2565b34801561090657600080fd5b506105dc612474565b34801561091b57600080fd5b5061047e612479565b34801561093057600080fd5b5061047e61247f565b34801561094557600080fd5b5061094e612485565b604080519115158252519081900360200190f35b34801561096e57600080fd5b506104506119a1565b34801561098357600080fd5b506103a76004803603604081101561099a57600080fd5b810190602081018135600160201b8111156109b457600080fd5b8201836020820111156109c657600080fd5b803590602001918460018302840111600160201b831117156109e757600080fd5b919390929091602081019035600160201b811115610a0457600080fd5b820183602082011115610a1657600080fd5b803590602001918460018302840111600160201b83111715610a3757600080fd5b50909250905061248e565b348015610a4e57600080fd5b506105dc612a8b565b348015610a6357600080fd5b506103be612a90565b348015610a7857600080fd5b506103be612bc5565b348015610a8d57600080fd5b506103be60048036036040811015610aa457600080fd5b506001600160a01b0381358116916020013516612bd0565b348015610ac857600080fd5b506103be612bfd565b348015610add57600080fd5b5061047e612c03565b348015610af257600080fd5b506103a760048036036040811015610b0957600080fd5b60ff8235169190810190604081016020820135600160201b811115610b2d57600080fd5b820183602082011115610b3f57600080fd5b803590602001918460018302840111600160201b83111715610b6057600080fd5b509092509050612c09565b348015610b7757600080fd5b506103be60048036036040811015610b8e57600080fd5b506001600160a01b0381358116916020013516612e26565b348015610bb257600080fd5b5061047e612e51565b348015610bc757600080fd5b506103be612e57565b348015610bdc57600080fd5b506103be60048036036060811015610bf357600080fd5b506001600160a01b038135811691602081013582169160409091013516612e64565b348015610c2157600080fd5b5061047e612e99565b348015610c3657600080fd5b5061047e612e9f565b60105460ff1660021415610c8b576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b6010805460ff19166002179055806402540be4003406158015610cb357506402540be4008106155b610d04576040805162461bcd60e51b815260206004820152601c60248201527f707265636973696f6e206c6f737320696e20636f6e76657273696f6e00000000604482015290519081900360640190fd5b60005460ff16610d41576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556000805460ff191690911790555b600354821015610d98576040805162461bcd60e51b815260206004820152601760248201527f696e76616c69642064656c656761746520616d6f756e74000000000000000000604482015290519081900360640190fd5b600154610dac90839063ffffffff612ea516565b341015610df7576040805162461bcd60e51b81526020600482015260146024820152736e6f7420656e6f756768206d73672076616c756560601b604482015290519081900360640190fd5b60405133906108fc9060009081818181818888f19350505050610e55576040805162461bcd60e51b815260206004820152601160248201527034b73b30b634b2103232b632b3b0ba37b960791b604482015290519081900360640190fd5b6000610e6c836402540be40063ffffffff612f0616565b90506000610e80348563ffffffff612f4816565b90506000610e9960025483612f4890919063ffffffff16565b6040805160038082526080820190925291925060609190816020015b6060815260200190600190039081610eb5579050509050610ed533612f8a565b81600081518110610ee257fe5b6020026020010181905250610eff876001600160a01b0316612f8a565b81600181518110610f0c57fe5b6020026020010181905250610f2084612fad565b81600281518110610f2d57fe5b60200260200101819052506060610f4d6001610f4884612fc0565b61304a565b8051602080830191909120600f80546000908152600a845260408082209390935581546001908101909255338152600b909352912080549091019055905061200063f7a251d7601083610fab876402540be40063ffffffff612f0616565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611009578181015183820152602001610ff1565b50505050905090810190601f1680156110365780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561105757600080fd5b505af115801561106b573d6000803e3d6000fd5b5061100492506108fc91506110889050898663ffffffff612ea516565b6040518115909202916000818181858888f193505050501580156110b0573d6000803e3d6000fd5b506002546040516110029180156108fc02916000818181858888f193505050501580156110e1573d6000803e3d6000fd5b50604080518881526020810185905281516001600160a01b038b169233927f5f32ed2794e2e72d19e3cb2320e8820a499c4204887372beba51f5e61c040867929081900390910190a350506010805460ff19166001179055505050505050565b60035481565b61114f614dda565b611157614dda565b6001600160a01b0383166000818152600b60209081526040808320548552838352600c82528083205485830152928252600d9052819020549082015290505b919050565b606481565b61200181565b606033612000146111e85760405162461bcd60e51b815260040180806020018281038252602f815260200180614f98602f913960400191505060405180910390fd5b60005460ff16611225576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556000805460ff191690911790555b61122d614df8565b61127461126f85858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506130d092505050565b6130f5565b905060006112896112848361313f565b61318d565b90506000606060ff8316600414156112ae576112a484613244565b9092509050611305565b60ff8316600514156112c3576112a484613424565b6040805162461bcd60e51b8152602060048201526012602482015271756e6b6e6f776e206576656e74207479706560701b604482015290519081900360640190fd5b63ffffffff821615611351576040805163ffffffff84168152905160ff8516917f391d6e5ea6ab6c49b9a0abb1782cae5def8d711f973b00c729658c0b2a80b31b919081900360200190a25b979650505050505050565b6001600160a01b031660009081526006602052604090205490565b600581565b600181565b60015481565b606581565b662386f26fc1000081565b600381565b620a8c0081565b61100181565b6102ca81565b600881565b60105460ff1660021415611400576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b6010805460ff19166002179055806402540be400340615801561142857506402540be4008106155b611479576040805162461bcd60e51b815260206004820152601c60248201527f707265636973696f6e206c6f737320696e20636f6e76657273696f6e00000000604482015290519081900360640190fd5b60005460ff166114b6576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556000805460ff191690911790555b600154341015611504576040805162461bcd60e51b81526020600482015260146024820152736e6f7420656e6f7567682072656c61792066656560601b604482015290519081900360640190fd5b6003548210156115bf576002548211611557576040805162461bcd60e51b815260206004820152601060248201526f6e6f7420656e6f7567682066756e647360801b604482015290519081900360640190fd5b3360009081526005602090815260408083206001600160a01b038716845290915290205482146115bf576040805162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a5908185b5bdd5b9d60921b604482015290519081900360640190fd5b3360009081526005602090815260408083206001600160a01b0387168452909152902054821115611628576040805162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a5908185b5bdd5b9d60921b604482015290519081900360640190fd5b3360009081526007602090815260408083206001600160a01b03871684529091529020544210156116a0576040805162461bcd60e51b815260206004820152601a60248201527f70656e64696e6720756e64656c65676174696f6e206578697374000000000000604482015290519081900360640190fd5b60006116b7836402540be40063ffffffff612f0616565b60025490915034906000906116d390839063ffffffff612f4816565b6040805160038082526080820190925291925060609190816020015b60608152602001906001900390816116ef57905050905061170f33612f8a565b8160008151811061171c57fe5b6020026020010181905250611739876001600160a01b0316612f8a565b8160018151811061174657fe5b602002602001018190525061175a84612fad565b8160028151811061176757fe5b602002602001018190525060606117826002610f4884612fc0565b8051602080830191909120600f80546000908152600a845260408082209390935581546001908101909255338152600c90935291208054909101905590506117d342620a8c0063ffffffff612ea516565b3360009081526007602090815260408083206001600160a01b038d16845290915290205561200063f7a251d7601083611817876402540be40063ffffffff612f0616565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561187557818101518382015260200161185d565b50505050905090810190601f1680156118a25780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156118c357600080fd5b505af11580156118d7573d6000803e3d6000fd5b5050604051611004925085156108fc02915085906000818181858888f1935050505015801561190a573d6000803e3d6000fd5b506002546040516110029180156108fc02916000818181858888f1935050505015801561193b573d6000803e3d6000fd5b50604080518881526020810185905281516001600160a01b038b169233927fdf0b6ac27f3f3bb31cee3dab0f4fe40cc19c6a3f8daaec52e06b261e58a12519929081900390910190a350506010805460ff19166001179055505050505050565b61200081565b600081565b60025481565b6402540be40081565b60105460009060ff1660021415611a04576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b506010805460ff191660021790553360009081526008602052604090205480611a6b576040805162461bcd60e51b81526020600482015260146024820152736e6f20756e64656c6567617465642066756e647360601b604482015290519081900360640190fd5b336000818152600860205260408082208290555183156108fc0291849190818181858888f19350505050158015611aa6573d6000803e3d6000fd5b5060408051828152905133917fc712d133b8d448221aaed2198ed1f0db6dfc860fb01bc3a630916fe6cbef946f919081900360200190a26010805460ff1916600117905590565b60035490565b60105460ff1660021415611b3f576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b6010805460ff19166002179055806402540be4003406158015611b6757506402540be4008106155b611bb8576040805162461bcd60e51b815260206004820152601c60248201527f707265636973696f6e206c6f737320696e20636f6e76657273696f6e00000000604482015290519081900360640190fd5b60005460ff16611bf5576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556000805460ff191690911790555b826001600160a01b0316846001600160a01b03161415611c53576040805162461bcd60e51b815260206004820152601460248201527334b73b30b634b2103932b232b632b3b0ba34b7b760611b604482015290519081900360640190fd5b600154341015611ca1576040805162461bcd60e51b81526020600482015260146024820152736e6f7420656e6f7567682072656c61792066656560601b604482015290519081900360640190fd5b6003548210158015611cd657503360009081526005602090815260408083206001600160a01b03881684529091529020548211155b611d18576040805162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a5908185b5bdd5b9d60921b604482015290519081900360640190fd5b3360009081526009602090815260408083206001600160a01b03888116855290835281842090871684529091529020544210801590611d8657503360009081526009602090815260408083206001600160a01b03878116855290835281842090881684529091529020544210155b611dd7576040805162461bcd60e51b815260206004820152601a60248201527f70656e64696e6720726564656c65676174696f6e206578697374000000000000604482015290519081900360640190fd5b6000611dee836402540be40063ffffffff612f0616565b6002549091503490600090611e0a90839063ffffffff612f4816565b60408051600480825260a0820190925291925060609190816020015b6060815260200190600190039081611e26579050509050611e4633612f8a565b81600081518110611e5357fe5b6020026020010181905250611e70886001600160a01b0316612f8a565b81600181518110611e7d57fe5b6020026020010181905250611e9a876001600160a01b0316612f8a565b81600281518110611ea757fe5b6020026020010181905250611ebb84612fad565b81600381518110611ec857fe5b60200260200101819052506060611ee36003610f4884612fc0565b8051602080830191909120600f80546000908152600a845260408082209390935581546001908101909255338152600d9093529120805490910190559050611f3442620a8c0063ffffffff612ea516565b3360009081526009602090815260408083206001600160a01b038d81168552908352818420908e168452909152902055611f7742620a8c0063ffffffff612ea516565b3360009081526009602090815260408083206001600160a01b038e81168552908352818420908d16845290915290205561200063f7a251d7601083611fc7876402540be40063ffffffff612f0616565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561202557818101518382015260200161200d565b50505050905090810190601f1680156120525780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561207357600080fd5b505af1158015612087573d6000803e3d6000fd5b5050604051611004925085156108fc02915085906000818181858888f193505050501580156120ba573d6000803e3d6000fd5b506002546040516110029180156108fc02916000818181858888f193505050501580156120eb573d6000803e3d6000fd5b50876001600160a01b0316896001600160a01b0316336001600160a01b03167fdb0d03fdfcb145c486c442659e6a341a8828985505097cb5190afcf541e840158a87604051808381526020018281526020019250505060405180910390a450506010805460ff1916600117905550505050505050565b61100581565b6001600160a01b031660009081526004602052604090205490565b600281565b601081565b6001600160a01b031660009081526008602052604090205490565b61100881565b600b81565b33612000146121f25760405162461bcd60e51b815260040180806020018281038252602f815260200180614f98602f913960400191505060405180910390fd5b60005460ff1661222f576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556000805460ff191690911790555b612237614df8565b61227961126f84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506130d092505050565b905060008060606000805b61228d86613640565b156122f857806122aa576122a36112848761313f565b94506122f0565b80600114156122c6576122bf6112848761313f565b93506122f0565b80600214156122eb576122e06122db8761313f565b613661565b9250600191506122f0565b6122f8565b600101612284565b8161233e576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b612347836136d1565b61238a576040805162461bcd60e51b815260206004820152600f60248201526e0eee4dedcce40e0c2c6d640d0c2e6d608b1b604482015290519081900360640190fd5b61239661126f846130d0565b955060006123a66112848861313f565b90506123b0614df8565b6123b988613640565b156123dc576123d561126f6123d06122db8b61313f565b6130d0565b905061241d565b6040805162461bcd60e51b8152602060048201526011602482015270656d7074792061636b207061636b61676560781b604482015290519081900360640190fd5b60ff82166001141561243957612434818888613725565b612467565b60ff82166002141561245057612434818888613adc565b60ff8216600314156112c357612434818888613da9565b5050505050505050505050565b600981565b61100781565b61100681565b60005460ff1681565b60005460ff166124e5576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604482015290519081900360640190fd5b33611007146125255760405162461bcd60e51b815260040180806020018281038252602e815260200180614f0e602e913960400191505060405180910390fd5b61258684848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600a81526972656c6179657246656560b01b6020820152915061410e9050565b156126ec57602081146125e0576040805162461bcd60e51b815260206004820152601d60248201527f6c656e677468206f662072656c61796572466565206d69736d61746368000000604482015290519081900360640190fd5b604080516020601f840181900481028201810190925282815260009161261e918585808385018382808284376000920191909152506141f592505050565b905060035481106126605760405162461bcd60e51b815260040180806020018281038252602e815260200180614f3c602e913960400191505060405180910390fd5b60025481116126a05760405162461bcd60e51b815260040180806020018281038252602e815260200180614f6a602e913960400191505060405180910390fd5b6402540be4008106156126e45760405162461bcd60e51b815260040180806020018281038252602c815260200180614ee2602c913960400191505060405180910390fd5b6001556129f9565b61275084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c62534352656c6179657246656560981b6020820152915061410e9050565b1561287657602081146127aa576040805162461bcd60e51b815260206004820181905260248201527f6c656e677468206f662062534352656c61796572466565206d69736d61746368604482015290519081900360640190fd5b604080516020601f84018190048102820181019092528281526000916127e8918585808385018382808284376000920191909152506141f592505050565b9050600154811061282a5760405162461bcd60e51b815260040180806020018281038252602e815260200180614e62602e913960400191505060405180910390fd5b6402540be40081061561286e5760405162461bcd60e51b815260040180806020018281038252602f815260200180614e33602f913960400191505060405180910390fd5b6002556129f9565b6128da84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c36b4b72232b632b3b0ba34b7b760991b6020820152915061410e9050565b156129bc5760208114612934576040805162461bcd60e51b815260206004820181905260248201527f6c656e677468206f66206d696e44656c65676174696f6e206d69736d61746368604482015290519081900360640190fd5b604080516020601f8401819004810282018101909252828152600091612972918585808385018382808284376000920191909152506141f592505050565b905060015481116129b45760405162461bcd60e51b8152600401808060200182810382526031815260200180614e906031913960400191505060405180910390fd5b6003556129f9565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b600481565b60105460009060ff1660021415612adf576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b506010805460ff191660021790553360009081526006602052604090205480612b43576040805162461bcd60e51b81526020600482015260116024820152701b9bc81c195b991a5b99c81c995dd85c99607a1b604482015290519081900360640190fd5b336000818152600660205260408082208290555183156108fc0291849190818181858888f19350505050158015612b7e573d6000803e3d6000fd5b5060408051828152905133917f83b78188b13346b2ffb484da70d42ee27de7fbf9f2bd8045269e10ed643ccd76919081900360200190a26010805460ff1916600117905590565b6638d7ea4c68000081565b6001600160a01b038083166000908152600760209081526040808320938516835292905220545b92915050565b60015490565b61100281565b3361200014612c495760405162461bcd60e51b815260040180806020018281038252602f815260200180614f98602f913960400191505060405180910390fd5b60005460ff16612c86576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556000805460ff191690911790555b612cc582828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506136d192505050565b612d08576040805162461bcd60e51b815260206004820152600f60248201526e0eee4dedcce40e0c2c6d640d0c2e6d608b1b604482015290519081900360640190fd5b612d10614df8565b612d5261126f84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506130d092505050565b90506000612d626112848361313f565b9050612d6c614df8565b612d7583613640565b15612d9357612d8c61126f6123d06122db8661313f565b9050612dd9565b6040805162461bcd60e51b8152602060048201526016602482015275656d707479206661696c2061636b207061636b61676560501b604482015290519081900360640190fd5b60ff821660011415612df357612dee816141fa565b612e1d565b60ff821660021415612e0857612dee81614414565b60ff8216600314156112c357612dee8161453e565b5050505b505050565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b61100381565b68056bc75e2d6310000081565b6001600160a01b0392831660009081526009602090815260408083209486168352938152838220929094168152925290205490565b61100081565b61100481565b600082820183811015612eff576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6000612eff83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506146a3565b6000612eff83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250614745565b60408051600560a21b8318601482015260348101909152606090612eff8161479f565b6060612bf7612fbb836147f5565b61479f565b6060815160001415612fe15750604080516000815260208101909152611196565b606082600081518110612ff057fe5b602002602001015190506000600190505b8351811015613031576130278285838151811061301a57fe5b60200260200101516148db565b9150600101613001565b50612eff613044825160c060ff16614958565b826148db565b6040805160028082526060828101909352829190816020015b60608152602001906001900390816130635790505090506130868460ff16612fad565b8160008151811061309357fe5b60200260200101819052506130a78361479f565b816001815181106130b457fe5b60200260200101819052506130c881612fc0565b949350505050565b6130d8614e18565b506040805180820190915281518152602082810190820152919050565b6130fd614df8565b61310682614a50565b61310f57600080fd5b600061311e8360200151614a8a565b60208085015160408051808201909152868152920190820152915050919050565b613147614e18565b61315082613640565b61315957600080fd5b6020820151600061316982614aed565b80830160209586015260408051808201909152908152938401919091525090919050565b8051600090158015906131a257508151602110155b6131ab57600080fd5b60006131ba8360200151614a8a565b90508083600001511015613215576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b82516020808501518301805192849003929183101561323b57826020036101000a820491505b50949350505050565b600060606000806000805b61325887613640565b156132aa578261327a5761327361326e8861313f565b614c20565b915061329f565b826001141561329a5761328f6112848861313f565b90506001935061329f565b6132aa565b82600101925061324f565b836132f0576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b60006110046001600160a01b031663727be1f8836040518263ffffffff1660e01b815260040180828152602001915050602060405180830381600087803b15801561333a57600080fd5b505af115801561334e573d6000803e3d6000fd5b505050506040513d602081101561336457600080fd5b50519050806133895761337b600484846065614c3a565b96509650505050505061341f565b6001600160a01b0383166000908152600660205260409020546133b2908363ffffffff612ea516565b6001600160a01b038416600081815260066020908152604091829020939093558051858152905191927f7cc266c7b444f808013fa187f7b904d470a051a6564e78f482aa496581ba4bf892918290030190a260408051600080825260208201909252909750955050505050505b915091565b6000606060008060008060005b61343a88613640565b156134a357836134575761345061326e8961313f565b9250613498565b83600114156134735761346c61326e8961313f565b9150613498565b8360021415613493576134886112848961313f565b905060019450613498565b6134a3565b836001019350613431565b846134e9576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b60006110046001600160a01b031663727be1f8836040518263ffffffff1660e01b815260040180828152602001915050602060405180830381600087803b15801561353357600080fd5b505af1158015613547573d6000803e3d6000fd5b505050506040513d602081101561355d57600080fd5b505190508061358357613574600585846065614c3a565b9750975050505050505061341f565b6001600160a01b0380851660008181526007602090815260408083209488168352938152838220829055918152600890915220546135c7908363ffffffff612ea516565b6001600160a01b0380861660008181526008602090815260409182902094909455805186815290519287169391927f35a799836f74fac7eccf5c73902823b970543d2274d3b93d8da3d37a255772a2929181900390910190a3604080516000808252602082019092529098509650505050505050915091565b600061364a614e18565b505080518051602091820151919092015191011190565b805160609061366f57600080fd5b600061367e8360200151614a8a565b83516040805191839003808352601f19601f82011683016020019091529192506060908280156136b5576020820181803683370190505b509050600081602001905061323b848760200151018285614d36565b8051602080830191909120600e546000908152600a909252604082205480821461370057600092505050611196565b5050600e80546000908152600a60205260408120558054600190810190915592915050565b60008060008060005b61373788613640565b156137a057836137545761374d61326e8961313f565b9250613795565b83600114156137705761376961326e8961313f565b9150613795565b8360021415613790576137856112848961313f565b905060019450613795565b6137a0565b83600101935061372e565b846137e6576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b60006137fd826402540be40063ffffffff614d8116565b6001600160a01b0385166000908152600b602052604090208054600019019055905060ff8816600114156139435760ff871615613870576040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b6001600160a01b038416600090815260046020526040902054613899908263ffffffff612ea516565b6001600160a01b038086166000908152600460209081526040808320949094556005815283822092871682529190915220546138db908263ffffffff612ea516565b6001600160a01b038086166000818152600560209081526040808320948916808452948252918290209490945580518581529051929391927f9a57c81564ab02642f34fd87e41baa9b074c18342cec3b7268b62bf752018fd1929181900390910190a3613ad1565b60ff8816613a95576001600160a01b038416600090815260086020526040902054613974908263ffffffff612ea516565b6001600160a01b0385166000908152600860209081526040808320939093558251630e4f7c3f60e31b81526004810185905292516110049363727be1f89360248083019493928390030190829087803b1580156139d057600080fd5b505af11580156139e4573d6000803e3d6000fd5b505050506040513d60208110156139fa57600080fd5b5051613a43576040805162461bcd60e51b81526020600482015260136024820152721dda5d1a191c985dc8189b988819985a5b1959606a1b604482015290519081900360640190fd5b6040805182815260ff8916602082015281516001600160a01b0380871693908816927fcbd481ae600289fad8c0484d07ce0ffe4f010d7c844ecfdeaf2a13fead52886e929081900390910190a3613ad1565b6040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b505050505050505050565b60008060008060005b613aee88613640565b15613b575783613b0b57613b0461326e8961313f565b9250613b4c565b8360011415613b2757613b2061326e8961313f565b9150613b4c565b8360021415613b4757613b3c6112848961313f565b905060019450613b4c565b613b57565b836001019350613ae5565b84613b9d576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6000613bb4826402540be40063ffffffff614d8116565b6001600160a01b0385166000908152600c602052604090208054600019019055905060ff881660011415613d335760ff871615613c27576040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b6001600160a01b038416600090815260046020526040902054613c50908263ffffffff612f4816565b6001600160a01b03808616600090815260046020908152604080832094909455600581528382209287168252919091522054613c92908263ffffffff612f4816565b6001600160a01b03808616600090815260056020908152604080832093881683529290522055613ccb42620a8c0063ffffffff612ea516565b6001600160a01b038086166000818152600760209081526040808320948916808452948252918290209490945580518581529051929391927fd6f878a5bcbbe79a64e6418bb0d56aaa20b9a60587d45749819df88dfc7c3c44929181900390910190a3613ad1565b60ff8816613a95576001600160a01b03808516600081815260076020908152604080832094881680845294825280832092909255815185815260ff8c169181019190915281517f4417d10c1e33efa83a770b8d4f47176e78c08c1298d534901ad3b16bb585fa2e929181900390910190a3613ad1565b6000806000806000805b613dbc89613640565b15613e415784613dd957613dd261326e8a61313f565b9350613e36565b8460011415613df557613dee61326e8a61313f565b9250613e36565b8460021415613e1157613e0a61326e8a61313f565b9150613e36565b8460031415613e3157613e266112848a61313f565b905060019550613e36565b613e41565b846001019450613db3565b85613e87576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6000613e9e826402540be40063ffffffff614d8116565b6001600160a01b0386166000908152600d602052604090208054600019019055905060ff8916600114156140715760ff881615613f11576040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b6001600160a01b03808616600090815260056020908152604080832093881683529290522054613f47908263ffffffff612f4816565b6001600160a01b03868116600090815260056020908152604080832089851684529091528082209390935590851681522054613f839082612ea5565b6001600160a01b03808716600090815260056020908152604080832093881683529290522055613fbc42620a8c0063ffffffff612ea516565b6001600160a01b0380871660009081526009602090815260408083208985168452825280832093881683529290522055613fff42620a8c0063ffffffff612ea516565b6001600160a01b038087166000818152600960209081526040808320898616808552908352818420958b1680855295835292819020959095558451868152945191947f78bffae3f8c6691ac7fc1a3bff800cb2d612f5ad9ae5b0444cfe2eb15c189e18929081900390910190a4614102565b60ff8916613a95576001600160a01b038581166000818152600960209081526040808320898616808552818452828520968a16808652968452828520859055908352818420818552835281842093909355805186815260ff8e169281019290925280519293927fb93bee5c59f85ede6b074a99f4ffcd3e3fc0d5c3d8156de331de89a49e0ce77c9281900390910190a45b50505050505050505050565b6000816040516020018082805190602001908083835b602083106141435780518252601f199092019160209182019101614124565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106141b15780518252601f199092019160209182019101614192565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b60008060008060005b61420c86613640565b1561427557836142295761422261326e8761313f565b925061426a565b83600114156142455761423e61326e8761313f565b915061426a565b83600214156142655761425a6112848761313f565b90506001945061426a565b614275565b836001019350614203565b846142bb576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b60006142d2826402540be40063ffffffff614d8116565b6001600160a01b0385166000908152600b6020908152604080832080546000190190556008909152902054909150614310908263ffffffff612ea516565b6001600160a01b0385166000908152600860209081526040808320939093558251630e4f7c3f60e31b81526004810185905292516110049363727be1f89360248083019493928390030190829087803b15801561436c57600080fd5b505af1158015614380573d6000803e3d6000fd5b505050506040513d602081101561439657600080fd5b50516143df576040805162461bcd60e51b81526020600482015260136024820152721dda5d1a191c985dc8189b988819985a5b1959606a1b604482015290519081900360640190fd5b6040516001907ff83de021914a4585482db5ca47d520a5657165b443fa2c7ef8ed4635f054da9b90600090a250505050505050565b60008060008060005b61442686613640565b1561448f57836144435761443c61326e8761313f565b9250614484565b836001141561445f5761445861326e8761313f565b9150614484565b836002141561447f576144746112848761313f565b905060019450614484565b61448f565b83600101935061441d565b846144d5576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6001600160a01b038084166000908152600c60209081526040808320805460001901905560078252808320938616835292905281812081905590516002917ff83de021914a4585482db5ca47d520a5657165b443fa2c7ef8ed4635f054da9b91a2505050505050565b6000806000806000805b61455187613640565b156145d6578461456e5761456761326e8861313f565b93506145cb565b846001141561458a5761458361326e8861313f565b92506145cb565b84600214156145a65761459f61326e8861313f565b91506145cb565b84600314156145c6576145bb6112848861313f565b9050600195506145cb565b6145d6565b846001019450614548565b8561461c576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6001600160a01b038481166000908152600d602090815260408083208054600019019055600982528083208785168085528184528285209588168552948352818420849055825280832093835292905281812081905590516003917ff83de021914a4585482db5ca47d520a5657165b443fa2c7ef8ed4635f054da9b91a250505050505050565b6000818361472f5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156146f45781810151838201526020016146dc565b50505050905090810190601f1680156147215780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161473b57fe5b0495945050505050565b600081848411156147975760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156146f45781810151838201526020016146dc565b505050900390565b6060815160011480156147d15750607f60f81b826000815181106147bf57fe5b01602001516001600160f81b03191611155b156147dd575080611196565b612bf76147ef8351608060ff16614958565b836148db565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166148395750601861485d565b6fffffffffffffffffffffffffffffffff1984166148595750601061485d565b5060005b60208110156148935781818151811061487257fe5b01602001516001600160f81b0319161561488b57614893565b60010161485d565b60008160200390506060816040519080825280601f01601f1916602001820160405280156148c8576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b8183101561490c5780518352602092830192016148f4565b50855184518101855292509050808201602086015b81831015614939578051835260209283019201614921565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106149a8576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b60408051600180825281830190925260609160208201818036833701905050905060378411614a025782840160f81b816000815181106149e457fe5b60200101906001600160f81b031916908160001a9053509050612bf7565b6060614a0d856147f5565b90508381510160370160f81b82600081518110614a2657fe5b60200101906001600160f81b031916908160001a905350614a4782826148db565b95945050505050565b8051600090614a6157506000611196565b6020820151805160001a9060c0821015614a8057600092505050611196565b5060019392505050565b8051600090811a6080811015614aa4576000915050611196565b60b8811080614abf575060c08110801590614abf575060f881105b15614ace576001915050611196565b60c0811015614ae25760b519019050611196565b60f519019050611196565b80516000908190811a6080811015614b085760019150614c19565b60b8811015614b1d57607e1981019150614c19565b60c0811015614b9757600060b78203600186019550806020036101000a865104915060018101820193505080831015614b91576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50614c19565b60f8811015614bac5760be1981019150614c19565b600060f78203600186019550806020036101000a865104915060018101820193505080831015614c17576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b8051600090601514614c3157600080fd5b612bf78261318d565b60006060614c53846402540be40063ffffffff612f0616565b60408051600480825260a0820190925291955060609190816020015b6060815260200190600190039081614c6f579050509050614c928760ff16612fad565b81600081518110614c9f57fe5b6020026020010181905250614cbc866001600160a01b0316612f8a565b81600181518110614cc957fe5b6020026020010181905250614cdd85612fad565b81600281518110614cea57fe5b6020026020010181905250614d048463ffffffff16612fad565b81600381518110614d1157fe5b60200260200101819052506060614d2782612fc0565b94989497509395505050505050565b80614d4057612e21565b5b60208110614d60578251825260209283019290910190601f1901614d41565b915181516020939093036101000a6000190180199091169216919091179052565b600082614d9057506000612bf7565b82820282848281614d9d57fe5b0414612eff5760405162461bcd60e51b8152600401808060200182810382526021815260200180614ec16021913960400191505060405180910390fd5b60405180606001604052806003906020820280368337509192915050565b6040518060400160405280614e0b614e18565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe7468652042534352656c61796572466565206d6f642074656e20646563696d616c73206d757374206265207a65726f7468652042534352656c61796572466565206d757374206265206c657373207468616e2072656c61796572466565746865206d696e44656c65676174696f6e206d7573742062652067726561746572207468616e2072656c61796572466565536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f777468652072656c61796572466565206d6f642074656e20646563696d616c73206d757374206265207a65726f746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163747468652072656c61796572466565206d757374206265206c657373207468616e206d696e44656c65676174696f6e7468652072656c61796572466565206d757374206265206d6f7265207468616e2042534352656c61796572466565746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374a26469706673582212202d43db3e2ebde4487e0172cc743868769dac674a6b5ac4e5b38d932f5fe77d2964736f6c63430006040033", - }, - }, - } - - GibbsUpgrade[networkname.BSCChainName] = &Upgrade{ - UpgradeName: "gibbs", - Configs: []*UpgradeConfig{ - { - ContractAddr: TokenHubContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/8cfa94e657670d60ac1ff0563cddcf4664f77227", - Code: "60806040526004361061036f5760003560e01c80639a854bbd116101c6578063bd466461116100f7578063f014847211610095578063fc1a598f1161006f578063fc1a598f14610d58578063fc3e590814610a3b578063fd6a687914610d8b578063ff9c0027146106ec576103b7565b8063f014847214610d19578063f9a2bbc714610d2e578063fa9e915914610d43576103b7565b8063d9e6dae9116100d1578063d9e6dae91461066e578063dc927faf14610cda578063e1c7392a14610cef578063ebf71d5314610d04576103b7565b8063bd46646114610c0d578063c81b166214610c40578063c8509d8114610c55576103b7565b8063aa7415f511610164578063b99328c51161013e578063b99328c514610b77578063b9fd21e314610bb0578063ba35ead614610bc5578063bbface1f14610bda576103b7565b8063aa7415f514610a50578063ab51bb9614610a97578063ac43175114610aac576103b7565b8063a1a11bf5116101a0578063a1a11bf5146109fc578063a496fba214610a11578063a78abc1614610a26578063a7c9f02d14610a3b576103b7565b80639a854bbd146109995780639a99b4f0146109ae5780639dc09262146109e7576103b7565b806361368475116102a0578063727be1f81161023e578063831d65d111610218578063831d65d1146108c05780638b87b21f146105ed5780638eff336c1461094557806396713da914610984576103b7565b8063727be1f81461086c57806375d47a0a146108965780637942fd05146108ab576103b7565b80636e47b4821161027a5780636e47b4821461082d57806370fd5bad146106ec578063718a8aa81461084257806371d3086314610857576103b7565b8063613684751461066e57806366dea52a146106ec5780636e05652014610701576103b7565b806343a368b91161030d57806350432d32116102e757806350432d321461068357806351e806721461069857806359b92789146106ad5780635d499b1b146106d7576103b7565b806343a368b91461062d578063493279b1146106425780634bf6c8821461066e576103b7565b8063149d14d911610349578063149d14d9146105155780633d7132231461053c5780633dffc387146105ed57806343756e5c14610618576103b7565b80630bee7a67146103bc5780630e2374a5146103ea5780631182b8751461041b576103b7565b366103b75734156103b5576040805133815234602082015281517f6c98249d85d88c3753a04a22230f595e4dc8d3dc86c34af35deeeedc861b89db929181900390910190a15b005b600080fd5b3480156103c857600080fd5b506103d1610da0565b6040805163ffffffff9092168252519081900360200190f35b3480156103f657600080fd5b506103ff610da5565b604080516001600160a01b039092168252519081900360200190f35b34801561042757600080fd5b506104a06004803603604081101561043e57600080fd5b60ff8235169190810190604081016020820135600160201b81111561046257600080fd5b82018360208201111561047457600080fd5b803590602001918460018302840111600160201b8311171561049557600080fd5b509092509050610dab565b6040805160208082528351818301528351919283929083019185019080838360005b838110156104da5781810151838201526020016104c2565b50505050905090810190601f1680156105075780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561052157600080fd5b5061052a610ed9565b60408051918252519081900360200190f35b34801561054857600080fd5b506103ff6004803603602081101561055f57600080fd5b810190602081018135600160201b81111561057957600080fd5b82018360208201111561058b57600080fd5b803590602001918460018302840111600160201b831117156105ac57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610edf945050505050565b3480156105f957600080fd5b50610602610f03565b6040805160ff9092168252519081900360200190f35b34801561062457600080fd5b506103ff610f08565b34801561063957600080fd5b5061052a610f0e565b34801561064e57600080fd5b50610657610f1a565b6040805161ffff9092168252519081900360200190f35b34801561067a57600080fd5b50610602610f1f565b34801561068f57600080fd5b5061052a610f24565b3480156106a457600080fd5b506103ff610f2f565b3480156106b957600080fd5b506103ff600480360360208110156106d057600080fd5b5035610f35565b3480156106e357600080fd5b5061052a610f50565b3480156106f857600080fd5b50610602610f59565b6108196004803603608081101561071757600080fd5b810190602081018135600160201b81111561073157600080fd5b82018360208201111561074357600080fd5b803590602001918460208302840111600160201b8311171561076457600080fd5b919390929091602081019035600160201b81111561078157600080fd5b82018360208201111561079357600080fd5b803590602001918460208302840111600160201b831117156107b457600080fd5b919390929091602081019035600160201b8111156107d157600080fd5b8201836020820111156107e357600080fd5b803590602001918460208302840111600160201b8311171561080457600080fd5b91935091503567ffffffffffffffff16610f5e565b604080519115158252519081900360200190f35b34801561083957600080fd5b506103ff611433565b34801561084e57600080fd5b50610602611439565b34801561086357600080fd5b5061052a61143e565b34801561087857600080fd5b506108196004803603602081101561088f57600080fd5b5035611444565b3480156108a257600080fd5b506103ff6114c5565b3480156108b757600080fd5b506106026114cb565b3480156108cc57600080fd5b506103b5600480360360408110156108e357600080fd5b60ff8235169190810190604081016020820135600160201b81111561090757600080fd5b82018360208201111561091957600080fd5b803590602001918460018302840111600160201b8311171561093a57600080fd5b5090925090506114d0565b34801561095157600080fd5b506103b56004803603606081101561096857600080fd5b508035906001600160a01b036020820135169060400135611619565b34801561099057600080fd5b5061060261169f565b3480156109a557600080fd5b5061052a6116a4565b3480156109ba57600080fd5b5061052a600480360360408110156109d157600080fd5b506001600160a01b0381351690602001356116b0565b3480156109f357600080fd5b506103ff6117ee565b348015610a0857600080fd5b506103ff6117f4565b348015610a1d57600080fd5b506106026117fa565b348015610a3257600080fd5b506108196117ff565b348015610a4757600080fd5b50610602611808565b61081960048036036080811015610a6657600080fd5b5080356001600160a01b03908116916020810135909116906040810135906060013567ffffffffffffffff1661180d565b348015610aa357600080fd5b506103d16117fa565b348015610ab857600080fd5b506103b560048036036040811015610acf57600080fd5b810190602081018135600160201b811115610ae957600080fd5b820183602082011115610afb57600080fd5b803590602001918460018302840111600160201b83111715610b1c57600080fd5b919390929091602081019035600160201b811115610b3957600080fd5b820183602082011115610b4b57600080fd5b803590602001918460018302840111600160201b83111715610b6c57600080fd5b509092509050611ece565b348015610b8357600080fd5b506103b560048036036040811015610b9a57600080fd5b50803590602001356001600160a01b031661213d565b348015610bbc57600080fd5b5061052a6121b3565b348015610bd157600080fd5b5061052a6121bd565b348015610be657600080fd5b5061052a60048036036020811015610bfd57600080fd5b50356001600160a01b03166121c3565b348015610c1957600080fd5b5061052a60048036036020811015610c3057600080fd5b50356001600160a01b03166121d5565b348015610c4c57600080fd5b506103ff6121f0565b348015610c6157600080fd5b506103b560048036036040811015610c7857600080fd5b60ff8235169190810190604081016020820135600160201b811115610c9c57600080fd5b820183602082011115610cae57600080fd5b803590602001918460018302840111600160201b83111715610ccf57600080fd5b5090925090506121f6565b348015610ce657600080fd5b506103ff6122c6565b348015610cfb57600080fd5b506103b56122cc565b348015610d1057600080fd5b5061060261236c565b348015610d2557600080fd5b50610602612371565b348015610d3a57600080fd5b506103ff612376565b348015610d4f57600080fd5b5061052a61237c565b348015610d6457600080fd5b506104a060048036036020811015610d7b57600080fd5b50356001600160a01b0316612382565b348015610d9757600080fd5b506103ff6124a9565b606481565b61200181565b60005460609060ff16610df3576040805162461bcd60e51b8152602060048201526019602482015260008051602061490c833981519152604482015290519081900360640190fd5b3361200014610e335760405162461bcd60e51b815260040180806020018281038252602f8152602001806148ba602f913960400191505060405180910390fd5b60ff841660021415610e8557610e7e83838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506124af92505050565b9050610ed2565b6040805162461bcd60e51b815260206004820152601860248201527f756e7265636f676e697a65642073796e207061636b6167650000000000000000604482015290519081900360640190fd5b9392505050565b60015490565b6020818101516000908152600490915260409020546001600160a01b03165b919050565b600181565b61100181565b670de0b6b3a764000081565b603881565b600881565b66071afd498d000081565b61200081565b6000908152600460205260409020546001600160a01b031690565b6402540be40081565b600281565b6000805460ff16610fa4576040805162461bcd60e51b8152602060048201526019602482015260008051602061490c833981519152604482015290519081900360640190fd5b868514610fe25760405162461bcd60e51b815260040180806020018281038252603b81526020018061487f603b913960400191505060405180910390fd5b8683146110205760405162461bcd60e51b815260040180806020018281038252603f815260200180614752603f913960400191505060405180910390fd5b426078018267ffffffffffffffff16101561106c5760405162461bcd60e51b81526004018080602001828103825260248152602001806146426024913960400191505060405180910390fd5b6402540be4003406156110b05760405162461bcd60e51b81526004018080602001828103825260408152602001806149826040913960400191505060405180910390fd5b604080518681526020808802820101909152859060009081906060908480156110e3578160200160208202803683370190505b50905060005b848110156111be576402540be4008b8b8381811061110357fe5b905060200201358161111157fe5b061561114e5760405162461bcd60e51b815260040180806020018281038252603c815260200180614791603c913960400191505060405180910390fd5b6111738b8b8381811061115d57fe5b90506020020135856125d390919063ffffffff16565b935061119f6402540be4008c8c8481811061118a57fe5b9050602002013561262d90919063ffffffff16565b8282815181106111ab57fe5b60209081029190910101526001016110e9565b506001546111e3906111d6908663ffffffff61266f16565b849063ffffffff6125d316565b3410156112215760405162461bcd60e51b815260040180806020018281038252605681526020018061492c6056913960600191505060405180910390fd5b611231348463ffffffff6126c816565b915061123b614468565b6040518060c001604052806221272160e91b60001b815260200160006001600160a01b031681526020018381526020018e8e808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505050908252506040805160208c810282810182019093528c82529283019290918d918d91829185019084908082843760009201919091525050509082525067ffffffffffffffff8916602090910152905061200063f7a251d760036112ff8461270a565b611314876402540be40063ffffffff61262d16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561137257818101518382015260200161135a565b50505050905090810190601f16801561139f5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156113c057600080fd5b505af11580156113d4573d6000803e3d6000fd5b505060408051600081523360208201528082018890526060810187905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a15060019c9b505050505050505050505050565b61100581565b601081565b60015481565b600033612001146114865760405162461bcd60e51b81526004018080602001828103825260338152602001806145826033913960400191505060405180910390fd5b81156114bd576040516120019083156108fc029084906000818181858888f193505050501580156114bb573d6000803e3d6000fd5b505b506001919050565b61100881565b600b81565b60005460ff16611515576040805162461bcd60e51b8152602060048201526019602482015260008051602061490c833981519152604482015290519081900360640190fd5b33612000146115555760405162461bcd60e51b815260040180806020018281038252602f8152602001806148ba602f913960400191505060405180910390fd5b60ff8316600314156115a5576115a082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506129c592505050565b611614565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a15b505050565b33611008146116595760405162461bcd60e51b81526004018080602001828103825260238152602001806148e96023913960400191505060405180910390fd5b600083815260046020908152604080832080546001600160a01b039096166001600160a01b03199096168617905593825260038152838220949094556002909352912055565b600981565b677ce66c50e284000081565b6000805460ff166116f6576040805162461bcd60e51b8152602060048201526019602482015260008051602061490c833981519152604482015290519081900360640190fd5b33611005146117365760405162461bcd60e51b815260040180806020018281038252602f8152602001806145b5602f913960400191505060405180910390fd5b60004783106117455747611747565b825b9050670de0b6b3a76400008111156117635760009150506117e8565b80156117e5576040516001600160a01b0385169082156108fc029083906000818181858888f1935050505015801561179f573d6000803e3d6000fd5b50604080516001600160a01b03861681526020810183905281517ff8b71c64315fc33b2ead2adfa487955065152a8ac33d9d5193aafd7f45dc15a0929181900390910190a15b90505b92915050565b61100781565b61100681565b600081565b60005460ff1681565b600381565b6000805460ff16611853576040805162461bcd60e51b8152602060048201526019602482015260008051602061490c833981519152604482015290519081900360640190fd5b426078018267ffffffffffffffff16101561189f5760405162461bcd60e51b81526004018080602001828103825260248152602001806146426024913960400191505060405180910390fd5b6402540be4003406156118e35760405162461bcd60e51b81526004018080602001828103825260408152602001806149826040913960400191505060405180910390fd5b600080806001600160a01b0388166119c25760015461190990879063ffffffff6125d316565b3410156119475760405162461bcd60e51b81526004018080602001828103825260618152602001806146cc6061913960800191505060405180910390fd5b6402540be40086061561198b5760405162461bcd60e51b815260040180806020018281038252603c815260200180614791603c913960400191505060405180910390fd5b61199b348763ffffffff6126c816565b90506119b2866402540be40063ffffffff61262d16565b6221272160e91b93509150611c65565b6001600160a01b038816600090815260036020526040902054925082611a195760405162461bcd60e51b815260040180806020018281038252603181526020018061469b6031913960400191505060405180910390fd5b600154341015611a5a5760405162461bcd60e51b815260040180806020018281038252603f8152602001806147ee603f913960400191505060405180910390fd5b506001600160a01b0387166000908152600260205260409020543490600881111580611aa55750600881118015611aa55750611aa3876007198301600a0a63ffffffff612a2116565b155b611ae05760405162461bcd60e51b815260040180806020018281038252603c815260200180614791603c913960400191505060405180910390fd5b611aea8782612a63565b9250611af584612aa3565b15611b3d576305f5e100831015611b3d5760405162461bcd60e51b815260040180806020018281038252603a8152602001806145e4603a913960400191505060405180910390fd5b600881101580611b575750600881108015611b5757508683115b611b925760405162461bcd60e51b815260040180806020018281038252602581526020018061472d6025913960400191505060405180910390fd5b677ce66c50e2840000831115611bd95760405162461bcd60e51b81526004018080602001828103825260358152602001806146666035913960400191505060405180910390fd5b604080516323b872dd60e01b81523360048201523060248201526044810189905290516001600160a01b038b16916323b872dd9160648083019260209291908290030181600087803b158015611c2e57600080fd5b505af1158015611c42573d6000803e3d6000fd5b505050506040513d6020811015611c5857600080fd5b5051611c6357600080fd5b505b611c6d614468565b6040805160c0810182528581526001600160a01b038b166020820152815160018082528184018452919283019181602001602082028036833750505081526040805160018082528183019092526020928301929091908083019080368337505050815260408051600180825281830190925260209283019290919080830190803683370190505081526020018767ffffffffffffffff168152509050828160400151600081518110611d1b57fe5b602002602001018181525050878160600151600081518110611d3957fe5b60200260200101906001600160a01b031690816001600160a01b031681525050338160800151600081518110611d6b57fe5b6001600160a01b039092166020928302919091019091015261200063f7a251d76003611d968461270a565b611dab866402540be40063ffffffff61262d16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611e09578181015183820152602001611df1565b50505050905090810190601f168015611e365780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015611e5757600080fd5b505af1158015611e6b573d6000803e3d6000fd5b5050604080516001600160a01b038d1681523360208201528082018b90526060810186905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a150600198975050505050505050565b3361100714611f0e5760405162461bcd60e51b815260040180806020018281038252602e81526020018061482d602e913960400191505060405180910390fd5b60208114611f63576040805162461bcd60e51b815260206004820152601b60248201527f65787065637465642076616c7565206c656e6774682069732033320000000000604482015290519081900360640190fd5b606084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8801819004810282018101909252868152939450606093925086915085908190840183828082843760009201919091525050505060208301519091506772656c617946656560c01b81141561206b576020820151670de0b6b3a7640000811180159061201257506402540be4008106155b612063576040805162461bcd60e51b815260206004820152601960248201527f7468652072656c6179466565206f7574206f662072616e676500000000000000604482015290519081900360640190fd5b6001556120a8565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a878787876040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050505050565b336110081461217d5760405162461bcd60e51b81526004018080602001828103825260238152602001806148e96023913960400191505060405180910390fd5b600091825260046020908152604080842080546001600160a01b03191690556001600160a01b0392909216835260039052812055565b6221272160e91b81565b61c35081565b60026020526000908152604090205481565b6001600160a01b031660009081526003602052604090205490565b61100281565b60005460ff1661223b576040805162461bcd60e51b8152602060048201526019602482015260008051602061490c833981519152604482015290519081900360640190fd5b336120001461227b5760405162461bcd60e51b815260040180806020018281038252602f8152602001806148ba602f913960400191505060405180910390fd5b60ff8316600314156115a5576115a082828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612ba992505050565b61100381565b60005460ff1615612324576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b66071afd498d000060019081556000808052600260205260127fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b55805460ff19169091179055565b600481565b600581565b61100081565b61271081565b6001600160a01b03811660009081526003602090815260409182902054825182815280840190935260609290918391906020820181803683375050506020810183905290506000805b60208160ff16101561241257828160ff16815181106123e657fe5b01602001516001600160f81b031916156124055760019091019061240a565b612412565b6001016123cb565b5060608160ff166040519080825280601f01601f191660200182016040528015612443576020820181803683370190505b50905060005b8260ff168160ff16101561249f57838160ff168151811061246657fe5b602001015160f81c60f81b828260ff168151811061248057fe5b60200101906001600160f81b031916908160001a905350600101612449565b5095945050505050565b61100481565b60606124b96144b4565b60006124c484612ca7565b915091508061251a576040805162461bcd60e51b815260206004820152601f60248201527f756e7265636f676e697a6564207472616e73666572496e207061636b61676500604482015290519081900360640190fd5b600061252583612de6565b905063ffffffff8116156125b9576040808401516020808601516001600160a01b031660009081526002909152918220546125609190612a63565b905061256a6144e9565b60405180608001604052808660000151815260200183815260200186608001516001600160a01b031681526020018463ffffffff1681525090506125ad81613133565b95505050505050610efe565b50506040805160008152602081019091529150610efe9050565b6000828201838110156117e5576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60006117e583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061320f565b60008261267e575060006117e8565b8282028284828161268b57fe5b04146117e55760405162461bcd60e51b81526004018080602001828103825260218152602001806147cd6021913960400191505060405180910390fd5b60006117e583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506132b1565b60408051600680825260e08201909252606091829190816020015b606081526020019060019003908161272557505083519091506127479061330b565b8160008151811061275457fe5b602002602001018190525061277583602001516001600160a01b031661331e565b8160018151811061278257fe5b6020026020010181905250600083604001515190506060816040519080825280602002602001820160405280156127cd57816020015b60608152602001906001900390816127b85790505b50905060005b8281101561281a576127fb866040015182815181106127ee57fe5b602002602001015161330b565b82828151811061280757fe5b60209081029190910101526001016127d3565b5061282481613341565b8360028151811061283157fe5b602002602001018190525060608260405190808252806020026020018201604052801561287257816020015b606081526020019060019003908161285d5790505b50905060005b838110156128c8576128a98760600151828151811061289357fe5b60200260200101516001600160a01b031661331e565b8282815181106128b557fe5b6020908102919091010152600101612878565b506128d281613341565b846003815181106128df57fe5b602002602001018190525060608360405190808252806020026020018201604052801561292057816020015b606081526020019060019003908161290b5790505b50905060005b84811015612960576129418860800151828151811061289357fe5b82828151811061294d57fe5b6020908102919091010152600101612926565b5061296a81613341565b8560048151811061297757fe5b60200260200101819052506129998760a0015167ffffffffffffffff1661330b565b856005815181106129a657fe5b60200260200101819052506129ba85613341565b979650505050505050565b6129cd614510565b60006129d8836133cb565b9150915080612a185760405162461bcd60e51b815260040180806020018281038252602481526020018061485b6024913960400191505060405180910390fd5b61161482613596565b60006117e583836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f0000000000000000815250613a1a565b60006008821115612a8c57612a85836007198401600a0a63ffffffff61262d16565b90506117e8565b6117e5836008849003600a0a63ffffffff61266f16565b604080516020808252818301909252600091606091906020820181803683375050506020810184905290506000805b60208160ff161015612b1957828160ff1681518110612aed57fe5b01602001516001600160f81b03191615612b0c57600190910190612b11565b612b19565b600101612ad2565b50600760ff82161015612b3157600092505050610efe565b816005820360ff1681518110612b4357fe5b6020910101516001600160f81b031916602d60f81b14612b6857600092505050610efe565b816001820360ff1681518110612b7a57fe5b6020910101516001600160f81b031916604d60f81b14612b9f57600092505050610efe565b5060019392505050565b612bb1614468565b6000612bbc83613a7c565b9150915080612bfc5760405162461bcd60e51b815260040180806020018281038252602481526020018061461e6024913960400191505060405180910390fd5b612c04614510565b602080840180516001600160a01b0390811684526040808701518585015291511660009081526002909252812054905b846040015151811015612c8557612c6285604001518281518110612c5457fe5b602002602001015183613ce0565b85604001518281518110612c7257fe5b6020908102919091010152600101612c34565b506080840151604083015260056060830152612ca082613596565b5050505050565b612caf6144b4565b6000612cb96144b4565b612cc1614547565b612cd2612ccd86613d19565b613d3e565b90506000805b612ce183613d88565b15612dd95780612d0357612cfc612cf784613da9565b613df7565b8452612dd1565b8060011415612d3057612d1d612d1884613da9565b613eae565b6001600160a01b03166020850152612dd1565b8060021415612d4f57612d45612cf784613da9565b6040850152612dd1565b8060031415612d7757612d64612d1884613da9565b6001600160a01b03166060850152612dd1565b8060041415612d9f57612d8c612d1884613da9565b6001600160a01b03166080850152612dd1565b8060051415612dcc57612db4612cf784613da9565b67ffffffffffffffff1660a085015260019150612dd1565b612dd9565b600101612cd8565b5091935090915050915091565b60208101516000906001600160a01b0316612f1d578160a0015167ffffffffffffffff16421115612e1957506001610efe565b8160400151471015612e2d57506003610efe565b606082015160408084015190516000926001600160a01b0316916127109184818181858888f193505050503d8060008114612e84576040519150601f19603f3d011682016040523d82523d6000602084013e612e89565b606091505b5050905080612e9c575060049050610efe565b7f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5983602001518460600151856040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a15060009050610efe565b8160a0015167ffffffffffffffff16421115612f3b57506001610efe565b81516020808401516001600160a01b031660009081526003909152604090205414612f6857506002610efe565b602080830151604080516370a0823160e01b815230600482015290516000936001600160a01b03909316926370a082319261c3509260248083019392829003018187803b158015612fb857600080fd5b5086fa158015612fcc573d6000803e3d6000fd5b50505050506040513d6020811015612fe357600080fd5b50516040840151909150811015612ffe575060039050610efe565b600083602001516001600160a01b031663a9059cbb61c350866060015187604001516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b15801561306f57600080fd5b5087f1158015613083573d6000803e3d6000fd5b50505050506040513d602081101561309a57600080fd5b505190508015613127577f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5984602001518560600151866040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a15060009150610efe9050565b5060059150610efe9050565b60408051600480825260a08201909252606091829190816020015b606081526020019060019003908161314e57505083519091506131709061330b565b8160008151811061317d57fe5b6020026020010181905250613195836020015161330b565b816001815181106131a257fe5b60200260200101819052506131c383604001516001600160a01b031661331e565b816002815181106131d057fe5b60200260200101819052506131ee836060015163ffffffff1661330b565b816003815181106131fb57fe5b6020026020010181905250610ed281613341565b6000818361329b5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613260578181015183820152602001613248565b50505050905090810190601f16801561328d5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816132a757fe5b0495945050505050565b600081848411156133035760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315613260578181015183820152602001613248565b505050900390565b60606117e861331983613ec8565b613fae565b60408051600560a21b8318601482015260348101909152606090610ed281613fae565b60608151600014156133625750604080516000815260208101909152610efe565b60608260008151811061337157fe5b602002602001015190506000600190505b83518110156133b2576133a88285838151811061339b57fe5b6020026020010151614000565b9150600101613382565b50610ed26133c5825160c060ff1661407d565b82614000565b6133d3614510565b60006133dd614510565b6133e5614547565b6133f1612ccd86613d19565b90506000805b61340083613d88565b15612dd9578061342657613416612d1884613da9565b6001600160a01b0316845261358e565b80600114156134c757606061344261343d85613da9565b614175565b9050805160405190808252806020026020018201604052801561346f578160200160208202803683370190505b50602086015260005b81518110156134c05761349d82828151811061349057fe5b6020026020010151613df7565b866020015182815181106134ad57fe5b6020908102919091010152600101613478565b505061358e565b80600214156135695760606134de61343d85613da9565b9050805160405190808252806020026020018201604052801561350b578160200160208202803683370190505b50604086015260005b81518110156134c05761353982828151811061352c57fe5b6020026020010151613eae565b8660400151828151811061354957fe5b6001600160a01b0390921660209283029190910190910152600101613514565b8060031415612dcc5761357e612cf784613da9565b63ffffffff166060850152600191505b6001016133f7565b80516001600160a01b03166137c05760005b8160200151518110156137ba576000826040015182815181106135c757fe5b60200260200101516001600160a01b0316612710846020015184815181106135eb57fe5b60209081029190910101516040516000818181858888f193505050503d8060008114613633576040519150601f19603f3d011682016040523d82523d6000602084013e613638565b606091505b50509050806136fb577f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061367757fe5b60200260200101518560200151858151811061368f57fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a16137b1565b7fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a83600001518460400151848151811061373157fe5b60200260200101518560200151858151811061374957fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b506001016135a8565b50613a17565b60005b816020015151811015613a1557600082600001516001600160a01b031663a9059cbb61c350856040015185815181106137f857fe5b60200260200101518660200151868151811061381057fe5b60200260200101516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b15801561386757600080fd5b5087f115801561387b573d6000803e3d6000fd5b50505050506040513d602081101561389257600080fd5b505190508015613956577fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a8360000151846040015184815181106138d257fe5b6020026020010151856020015185815181106138ea57fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a1613a0c565b7f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061398c57fe5b6020026020010151856020015185815181106139a457fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b506001016137c3565b505b50565b60008183613a695760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315613260578181015183820152602001613248565b50828481613a7357fe5b06949350505050565b613a84614468565b6000613a8e614468565b613a96614547565b613aa2612ccd86613d19565b90506000805b613ab183613d88565b15612dd95780613ace57613ac7612cf784613da9565b8452613cd8565b8060011415613af657613ae3612d1884613da9565b6001600160a01b03166020850152613cd8565b8060021415613b85576060613b0d61343d85613da9565b90508051604051908082528060200260200182016040528015613b3a578160200160208202803683370190505b50604086015260005b8151811015613b7e57613b5b82828151811061349057fe5b86604001518281518110613b6b57fe5b6020908102919091010152600101613b43565b5050613cd8565b8060031415613c1a576060613b9c61343d85613da9565b90508051604051908082528060200260200182016040528015613bc9578160200160208202803683370190505b50606086015260005b8151811015613b7e57613bea82828151811061352c57fe5b86606001518281518110613bfa57fe5b6001600160a01b0390921660209283029190910190910152600101613bd2565b8060041415613caf576060613c3161343d85613da9565b90508051604051908082528060200260200182016040528015613c5e578160200160208202803683370190505b50608086015260005b8151811015613b7e57613c7f82828151811061352c57fe5b86608001518281518110613c8f57fe5b6001600160a01b0390921660209283029190910190910152600101613c67565b8060051415612dcc57613cc4612cf784613da9565b67ffffffffffffffff1660a0850152600191505b600101613aa8565b60006008821115613d0257612a85836007198401600a0a63ffffffff61266f16565b6117e5836008849003600a0a63ffffffff61262d16565b613d21614567565b506040805180820190915281518152602082810190820152919050565b613d46614547565b613d4f82614246565b613d5857600080fd5b6000613d678360200151614276565b60208085015160408051808201909152868152920190820152915050919050565b6000613d92614567565b505080518051602091820151919092015191011190565b613db1614567565b613dba82613d88565b613dc357600080fd5b60208201516000613dd3826142d9565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590613e0c57508151602110155b613e1557600080fd5b6000613e248360200151614276565b90508083600001511015613e7f576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015613ea557826020036101000a820491505b50949350505050565b8051600090601514613ebf57600080fd5b6117e882613df7565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416613f0c57506018613f30565b6fffffffffffffffffffffffffffffffff198416613f2c57506010613f30565b5060005b6020811015613f6657818181518110613f4557fe5b01602001516001600160f81b03191615613f5e57613f66565b600101613f30565b60008160200390506060816040519080825280601f01601f191660200182016040528015613f9b576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015613fe05750607f60f81b82600081518110613fce57fe5b01602001516001600160f81b03191611155b15613fec575080610efe565b6117e8613ffe8351608060ff1661407d565b835b6060806040519050835180825260208201818101602087015b81831015614031578051835260209283019201614019565b50855184518101855292509050808201602086015b8183101561405e578051835260209283019201614046565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106140cd576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b604080516001808252818301909252606091602082018180368337019050509050603784116141275782840160f81b8160008151811061410957fe5b60200101906001600160f81b031916908160001a90535090506117e8565b606061413285613ec8565b90508381510160370160f81b8260008151811061414b57fe5b60200101906001600160f81b031916908160001a90535061416c8282614000565b95945050505050565b606061418082614246565b61418957600080fd5b60006141948361440c565b90506060816040519080825280602002602001820160405280156141d257816020015b6141bf614567565b8152602001906001900390816141b75790505b50905060006141e48560200151614276565b60208601510190506000805b8481101561423b57614201836142d9565b915060405180604001604052808381526020018481525084828151811061422457fe5b6020908102919091010152918101916001016141f0565b509195945050505050565b805160009061425757506000610efe565b6020820151805160001a9060c0821015612b9f57600092505050610efe565b8051600090811a6080811015614290576000915050610efe565b60b88110806142ab575060c081108015906142ab575060f881105b156142ba576001915050610efe565b60c08110156142ce5760b519019050610efe565b60f519019050610efe565b80516000908190811a60808110156142f45760019150614405565b60b881101561430957607e1981019150614405565b60c081101561438357600060b78203600186019550806020036101000a86510491506001810182019350508083101561437d576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50614405565b60f88110156143985760be1981019150614405565b600060f78203600186019550806020036101000a865104915060018101820193505080831015614403576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b805160009061441d57506000610efe565b600080905060006144318460200151614276565b602085015185519181019250015b8082101561445f57614450826142d9565b6001909301929091019061443f565b50909392505050565b6040518060c001604052806000801916815260200160006001600160a01b03168152602001606081526020016060815260200160608152602001600067ffffffffffffffff1681525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b60408051608081018252600080825260208201819052918101829052606081019190915290565b604051806080016040528060006001600160a01b031681526020016060815260200160608152602001600063ffffffff1681525090565b604051806040016040528061455a614567565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe6f6e6c79207374616b696e672073797374656d20636f6e74726163742063616e2063616c6c20746869732066756e6374696f6e746865206d6573736167652073656e646572206d75737420626520696e63656e746976697a6520636f6e7472616374466f72206d696e69546f6b656e2c20746865207472616e7366657220616d6f756e74206d757374206e6f74206265206c657373207468616e2031756e7265636f676e697a6564207472616e736665724f75742073796e207061636b61676565787069726554696d65206d7573742062652074776f206d696e75746573206c61746572616d6f756e7420697320746f6f206c617267652c20657863656564206d6178696d756d206265703220746f6b656e20616d6f756e7474686520636f6e747261637420686173206e6f74206265656e20626f756e6420746f20616e79206265703220746f6b656e726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e736665724f757420424e4220616d6f756e7420616e64206d696e696d756d2072656c6179466565616d6f756e7420697320746f6f206c617267652c2075696e74323536206f766572666c6f774c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620726566756e644164647273696e76616c6964207472616e7366657220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e20746865206d696e696d756d2072656c6179466565746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374756e7265636f676e697a6564207472616e736665724f75742061636b207061636b6167654c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620616d6f756e7473746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d73672073656e646572206d75737420626520746f6b656e4d616e6167657274686520636f6e7472616374206e6f7420696e69742079657400000000000000726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e7366657220424e4220616d6f756e7420616e642072656c6179466565696e76616c696420726563656976656420424e4220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6ea264697066735822122012cb49df8f867c0c8903152f4f4e8058086f9ead137f1a15b2400e401b8e252f64736f6c63430006040033", - }, - { - ContractAddr: StakingContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/8cfa94e657670d60ac1ff0563cddcf4664f77227", - Code: "6080604052600436106103855760003560e01c806370fd5bad116101d1578063b88a802f11610102578063d7ecfcb6116100a0578063f9a2bbc71161006f578063f9a2bbc714610c40578063fa03f79714610c55578063fc3e590814610671578063fd6a687914610c6a5761038c565b8063d7ecfcb614610819578063dc927faf14610bd1578063edc1a5b014610be6578063f45fd80b14610bfb5761038c565b8063c2117d82116100dc578063c2117d8214610ae7578063c81b166214610afc578063c8509d8114610b11578063d61b9b9314610b965761038c565b8063b88a802f14610a82578063baaafd3b14610a97578063bf8546ca14610aac5761038c565b806396713da91161016f578063a78abc1611610149578063a78abc1614610964578063ab51bb961461098d578063ac431751146109a2578063b14315df14610a6d5761038c565b806396713da9146109255780639dc092621461093a578063a1a11bf51461094f5761038c565b806375d47a0a116101ab57806375d47a0a146108765780637942fd051461088b578063831d65d1146108a057806392b888a41461061d5761038c565b806370fd5bad14610819578063718a8aa81461082e57806375aca593146108435761038c565b80633fdfa7e4116102b6578063552aaf931161025457806369b635b61161022357806369b635b6146107865780636bd8f8041461079b5780636e47b482146107d15780636fb7f7eb146107e65761038c565b8063552aaf93146107325780635d17c8bd146107475780635d499b1b1461075c57806362b171d2146107715761038c565b8063493279b111610290578063493279b1146106b05780634bf6c882146106dc5780634d99dd16146106f157806351e806721461071d5761038c565b80633fdfa7e414610671578063413d9c3a1461068657806343756e5c1461069b5761038c565b806311fe9ec6116103235780632fdeb111116102fd5780632fdeb11114610632578063333ad3e71461064757806334c433541461065c5780633dffc3871461061d5761038c565b806311fe9ec6146105bf578063151817e3146105f257806317c9efb01461061d5761038c565b80630bee7a671161035f5780630bee7a67146104515780630c7957151461047f5780630e2374a5146104945780631182b875146104c55761038c565b8063026e402b1461039157806302985992146103bf578063047636d1146103e65761038c565b3661038c57005b600080fd5b6103bd600480360360408110156103a757600080fd5b506001600160a01b038135169060200135610c7f565b005b3480156103cb57600080fd5b506103d46111bc565b60408051918252519081900360200190f35b3480156103f257600080fd5b506104196004803603602081101561040957600080fd5b50356001600160a01b03166111c2565b6040518082606080838360005b8381101561043e578181015183820152602001610426565b5050505090500191505060405180910390f35b34801561045d57600080fd5b50610466611216565b6040805163ffffffff9092168252519081900360200190f35b34801561048b57600080fd5b506103d461121b565b3480156104a057600080fd5b506104a9611221565b604080516001600160a01b039092168252519081900360200190f35b3480156104d157600080fd5b5061054a600480360360408110156104e857600080fd5b60ff8235169190810190604081016020820135600160201b81111561050c57600080fd5b82018360208201111561051e57600080fd5b803590602001918460018302840111600160201b8311171561053f57600080fd5b509092509050611227565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561058457818101518382015260200161056c565b50505050905090810190601f1680156105b15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156105cb57600080fd5b506103d4600480360360208110156105e257600080fd5b50356001600160a01b03166113e3565b3480156105fe57600080fd5b506106076113fe565b6040805160ff9092168252519081900360200190f35b34801561062957600080fd5b50610607611403565b34801561063e57600080fd5b506103d4611408565b34801561065357600080fd5b5061046661140e565b34801561066857600080fd5b506103d4611413565b34801561067d57600080fd5b5061060761141e565b34801561069257600080fd5b506103d4611423565b3480156106a757600080fd5b506104a961142a565b3480156106bc57600080fd5b506106c5611430565b6040805161ffff9092168252519081900360200190f35b3480156106e857600080fd5b50610607611435565b6103bd6004803603604081101561070757600080fd5b506001600160a01b03813516906020013561143a565b34801561072957600080fd5b506104a9611a62565b34801561073e57600080fd5b50610607611a68565b34801561075357600080fd5b506103d4611a6d565b34801561076857600080fd5b506103d4611a73565b34801561077d57600080fd5b506103d4611a7c565b34801561079257600080fd5b506103d4611c1c565b6103bd600480360360608110156107b157600080fd5b506001600160a01b03813581169160208101359091169060400135611c22565b3480156107dd57600080fd5b506104a961230b565b3480156107f257600080fd5b506103d46004803603602081101561080957600080fd5b50356001600160a01b0316612311565b34801561082557600080fd5b5061060761232c565b34801561083a57600080fd5b50610607612331565b34801561084f57600080fd5b506103d46004803603602081101561086657600080fd5b50356001600160a01b0316612336565b34801561088257600080fd5b506104a9612351565b34801561089757600080fd5b50610607612357565b3480156108ac57600080fd5b506103bd600480360360408110156108c357600080fd5b60ff8235169190810190604081016020820135600160201b8111156108e757600080fd5b8201836020820111156108f957600080fd5b803590602001918460018302840111600160201b8311171561091a57600080fd5b50909250905061235c565b34801561093157600080fd5b50610607612624565b34801561094657600080fd5b506104a9612629565b34801561095b57600080fd5b506104a961262f565b34801561097057600080fd5b50610979612635565b604080519115158252519081900360200190f35b34801561099957600080fd5b50610466611a68565b3480156109ae57600080fd5b506103bd600480360360408110156109c557600080fd5b810190602081018135600160201b8111156109df57600080fd5b8201836020820111156109f157600080fd5b803590602001918460018302840111600160201b83111715610a1257600080fd5b919390929091602081019035600160201b811115610a2f57600080fd5b820183602082011115610a4157600080fd5b803590602001918460018302840111600160201b83111715610a6257600080fd5b50909250905061263e565b348015610a7957600080fd5b50610607612dd0565b348015610a8e57600080fd5b506103d4612dd5565b348015610aa357600080fd5b506103d4612f72565b348015610ab857600080fd5b506103d460048036036040811015610acf57600080fd5b506001600160a01b0381358116916020013516612f7d565b348015610af357600080fd5b506103d4612faa565b348015610b0857600080fd5b506104a9612fb0565b348015610b1d57600080fd5b506103bd60048036036040811015610b3457600080fd5b60ff8235169190810190604081016020820135600160201b811115610b5857600080fd5b820183602082011115610b6a57600080fd5b803590602001918460018302840111600160201b83111715610b8b57600080fd5b509092509050612fb6565b348015610ba257600080fd5b506103d460048036036040811015610bb957600080fd5b506001600160a01b03813581169160200135166131d9565b348015610bdd57600080fd5b506104a9613204565b348015610bf257600080fd5b506103d461320a565b348015610c0757600080fd5b506103d460048036036060811015610c1e57600080fd5b506001600160a01b038135811691602081013582169160409091013516613217565b348015610c4c57600080fd5b506104a961324c565b348015610c6157600080fd5b506103d4613252565b348015610c7657600080fd5b506104a9613258565b60105460ff1660021415610ccb576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b6010805460ff19166002179055806402540be4003406158015610cf357506402540be4008106155b610d44576040805162461bcd60e51b815260206004820152601c60248201527f707265636973696f6e206c6f737320696e20636f6e76657273696f6e00000000604482015290519081900360640190fd5b60005460ff16610d87576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b600354821015610dde576040805162461bcd60e51b815260206004820152601760248201527f696e76616c69642064656c656761746520616d6f756e74000000000000000000604482015290519081900360640190fd5b600154610df290839063ffffffff61325e16565b341015610e3d576040805162461bcd60e51b81526020600482015260146024820152736e6f7420656e6f756768206d73672076616c756560601b604482015290519081900360640190fd5b601154604051600091339183818181818787f1925050503d8060008114610e80576040519150601f19603f3d011682016040523d82523d6000602084013e610e85565b606091505b5050905080610ecf576040805162461bcd60e51b815260206004820152601160248201527034b73b30b634b2103232b632b3b0ba37b960791b604482015290519081900360640190fd5b6000610ee6846402540be40063ffffffff6132bf16565b90506000610efa348663ffffffff61330116565b90506000610f136002548361330190919063ffffffff16565b6040805160038082526080820190925291925060609190816020015b6060815260200190600190039081610f2f579050509050610f4f33613343565b81600081518110610f5c57fe5b6020026020010181905250610f79886001600160a01b0316613343565b81600181518110610f8657fe5b6020026020010181905250610f9a84613366565b81600281518110610fa757fe5b60200260200101819052506060610fc76001610fc284613379565b613403565b8051602080830191909120600f80546000908152600a845260408082209390935581546001908101909255338152600b909352912080549091019055905061200063f7a251d7601083611025876402540be40063ffffffff6132bf16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561108357818101518382015260200161106b565b50505050905090810190601f1680156110b05780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156110d157600080fd5b505af11580156110e5573d6000803e3d6000fd5b5061100492506108fc915061110290508a8663ffffffff61325e16565b6040518115909202916000818181858888f1935050505015801561112a573d6000803e3d6000fd5b506002546040516110029180156108fc02916000818181858888f1935050505015801561115b573d6000803e3d6000fd5b50604080518981526020810185905281516001600160a01b038c169233927f5f32ed2794e2e72d19e3cb2320e8820a499c4204887372beba51f5e61c040867929081900390910190a350506010805460ff1916600117905550505050505050565b60035481565b6111ca615193565b6111d2615193565b6001600160a01b0383166000818152600b60209081526040808320548552838352600c82528083205485830152928252600d9052819020549082015290505b919050565b606481565b6108fc81565b61200181565b606033612000146112695760405162461bcd60e51b815260040180806020018281038252602f81526020018061539b602f913960400191505060405180910390fd5b60005460ff166112ac576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b6112b46151b1565b6112fb6112f685858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061348992505050565b6134ae565b9050600061131061130b836134f8565b613546565b90506000606060ff8316600414156113355761132b846135fd565b909250905061138c565b60ff83166005141561134a5761132b846137dd565b6040805162461bcd60e51b8152602060048201526012602482015271756e6b6e6f776e206576656e74207479706560701b604482015290519081900360640190fd5b63ffffffff8216156113d8576040805163ffffffff84168152905160ff8516917f391d6e5ea6ab6c49b9a0abb1782cae5def8d711f973b00c729658c0b2a80b31b919081900360200190a25b979650505050505050565b6001600160a01b031660009081526006602052604090205490565b600581565b600181565b60015481565b606581565b662386f26fc1000081565b600381565b620a8c0081565b61100181565b603881565b600881565b60105460ff1660021415611486576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b6010805460ff19166002179055806402540be40034061580156114ae57506402540be4008106155b6114ff576040805162461bcd60e51b815260206004820152601c60248201527f707265636973696f6e206c6f737320696e20636f6e76657273696f6e00000000604482015290519081900360640190fd5b60005460ff16611542576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b600154341015611590576040805162461bcd60e51b81526020600482015260146024820152736e6f7420656e6f7567682072656c61792066656560601b604482015290519081900360640190fd5b60035482101561164b573360009081526005602090815260408083206001600160a01b03871684529091529020548214611602576040805162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a5908185b5bdd5b9d60921b604482015290519081900360640190fd5b600254821161164b576040805162461bcd60e51b815260206004820152601060248201526f6e6f7420656e6f7567682066756e647360801b604482015290519081900360640190fd5b3360009081526007602090815260408083206001600160a01b03871684529091529020544210156116c3576040805162461bcd60e51b815260206004820152601a60248201527f70656e64696e6720756e64656c65676174696f6e206578697374000000000000604482015290519081900360640190fd5b604080518082018252601081526f6e6f7420656e6f7567682066756e647360801b602080830191909152336000908152600582528381206001600160a01b03881682529091529182205461171e91859063ffffffff6139f916565b905080156117665760025481116117665760405162461bcd60e51b81526004018080602001828103825260258152602001806153766025913960400191505060405180910390fd5b600061177d846402540be40063ffffffff6132bf16565b600254909150349060009061179990839063ffffffff61330116565b6040805160038082526080820190925291925060609190816020015b60608152602001906001900390816117b55790505090506117d533613343565b816000815181106117e257fe5b60200260200101819052506117ff886001600160a01b0316613343565b8160018151811061180c57fe5b602002602001018190525061182084613366565b8160028151811061182d57fe5b602002602001018190525060606118486002610fc284613379565b8051602080830191909120600f80546000908152600a845260408082209390935581546001908101909255338152600c909352912080549091019055905061189942620a8c0063ffffffff61325e16565b3360009081526007602090815260408083206001600160a01b038e16845290915290205561200063f7a251d76010836118dd876402540be40063ffffffff6132bf16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561193b578181015183820152602001611923565b50505050905090810190601f1680156119685780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561198957600080fd5b505af115801561199d573d6000803e3d6000fd5b5050604051611004925085156108fc02915085906000818181858888f193505050501580156119d0573d6000803e3d6000fd5b506002546040516110029180156108fc02916000818181858888f19350505050158015611a01573d6000803e3d6000fd5b50604080518981526020810185905281516001600160a01b038c169233927fdf0b6ac27f3f3bb31cee3dab0f4fe40cc19c6a3f8daaec52e06b261e58a12519929081900390910190a350506010805460ff1916600117905550505050505050565b61200081565b600081565b60025481565b6402540be40081565b60105460009060ff1660021415611acb576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b506010805460ff191660021790553360009081526008602052604090205480611b32576040805162461bcd60e51b81526020600482015260146024820152736e6f20756e64656c6567617465642066756e647360601b604482015290519081900360640190fd5b336000818152600860205260408082208290556011549051919291849084818181858888f193505050503d8060008114611b88576040519150601f19603f3d011682016040523d82523d6000602084013e611b8d565b606091505b5050905080611bd5576040805162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b604482015290519081900360640190fd5b60408051838152905133917fc712d133b8d448221aaed2198ed1f0db6dfc860fb01bc3a630916fe6cbef946f919081900360200190a2506010805460ff1916600117905590565b60035490565b60105460ff1660021415611c6e576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b6010805460ff19166002179055806402540be4003406158015611c9657506402540be4008106155b611ce7576040805162461bcd60e51b815260206004820152601c60248201527f707265636973696f6e206c6f737320696e20636f6e76657273696f6e00000000604482015290519081900360640190fd5b60005460ff16611d2a576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b826001600160a01b0316846001600160a01b03161415611d88576040805162461bcd60e51b815260206004820152601460248201527334b73b30b634b2103932b232b632b3b0ba34b7b760611b604482015290519081900360640190fd5b600154341015611dd6576040805162461bcd60e51b81526020600482015260146024820152736e6f7420656e6f7567682072656c61792066656560601b604482015290519081900360640190fd5b600354821015611e1e576040805162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a5908185b5bdd5b9d60921b604482015290519081900360640190fd5b3360009081526009602090815260408083206001600160a01b03888116855290835281842090871684529091529020544210801590611e8c57503360009081526009602090815260408083206001600160a01b03878116855290835281842090881684529091529020544210155b611edd576040805162461bcd60e51b815260206004820152601a60248201527f70656e64696e6720726564656c65676174696f6e206578697374000000000000604482015290519081900360640190fd5b604080518082018252601081526f6e6f7420656e6f7567682066756e647360801b602080830191909152336000908152600582528381206001600160a01b038916825290915291822054611f3891859063ffffffff6139f916565b90508015611f80576002548111611f805760405162461bcd60e51b815260040180806020018281038252602581526020018061527a6025913960400191505060405180910390fd5b6000611f97846402540be40063ffffffff6132bf16565b6002549091503490600090611fb390839063ffffffff61330116565b60408051600480825260a0820190925291925060609190816020015b6060815260200190600190039081611fcf579050509050611fef33613343565b81600081518110611ffc57fe5b6020026020010181905250612019896001600160a01b0316613343565b8160018151811061202657fe5b6020026020010181905250612043886001600160a01b0316613343565b8160028151811061205057fe5b602002602001018190525061206484613366565b8160038151811061207157fe5b6020026020010181905250606061208c6003610fc284613379565b8051602080830191909120600f80546000908152600a845260408082209390935581546001908101909255338152600d90935291208054909101905590506120dd42620a8c0063ffffffff61325e16565b3360009081526009602090815260408083206001600160a01b038e81168552908352818420908f16845290915290205561212042620a8c0063ffffffff61325e16565b3360009081526009602090815260408083206001600160a01b038f81168552908352818420908e16845290915290205561200063f7a251d7601083612170876402540be40063ffffffff6132bf16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156121ce5781810151838201526020016121b6565b50505050905090810190601f1680156121fb5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561221c57600080fd5b505af1158015612230573d6000803e3d6000fd5b5050604051611004925085156108fc02915085906000818181858888f19350505050158015612263573d6000803e3d6000fd5b506002546040516110029180156108fc02916000818181858888f19350505050158015612294573d6000803e3d6000fd5b50886001600160a01b03168a6001600160a01b0316336001600160a01b03167fdb0d03fdfcb145c486c442659e6a341a8828985505097cb5190afcf541e840158b87604051808381526020018281526020019250505060405180910390a450506010805460ff191660011790555050505050505050565b61100581565b6001600160a01b031660009081526004602052604090205490565b600281565b601081565b6001600160a01b031660009081526008602052604090205490565b61100881565b600b81565b336120001461239c5760405162461bcd60e51b815260040180806020018281038252602f81526020018061539b602f913960400191505060405180910390fd5b60005460ff166123df576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b6123e76151b1565b6124296112f684848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061348992505050565b905060008060606000805b61243d86613a90565b156124a8578061245a5761245361130b876134f8565b94506124a0565b80600114156124765761246f61130b876134f8565b93506124a0565b806002141561249b5761249061248b876134f8565b613ab1565b9250600191506124a0565b6124a8565b600101612434565b816124ee576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6124f783613b21565b61253a576040805162461bcd60e51b815260206004820152600f60248201526e0eee4dedcce40e0c2c6d640d0c2e6d608b1b604482015290519081900360640190fd5b6125466112f684613489565b9550600061255661130b886134f8565b90506125606151b1565b61256988613a90565b1561258c576125856112f661258061248b8b6134f8565b613489565b90506125cd565b6040805162461bcd60e51b8152602060048201526011602482015270656d7074792061636b207061636b61676560781b604482015290519081900360640190fd5b60ff8216600114156125e9576125e4818888613b75565b612617565b60ff821660021415612600576125e4818888613f2c565b60ff82166003141561134a576125e48188886141f9565b5050505050505050505050565b600981565b61100781565b61100681565b60005460ff1681565b60005460ff16612695576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604482015290519081900360640190fd5b33611007146126d55760405162461bcd60e51b815260040180806020018281038252602e8152602001806152ec602e913960400191505060405180910390fd5b61273684848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600a81526972656c6179657246656560b01b6020820152915061455e9050565b1561289c5760208114612790576040805162461bcd60e51b815260206004820152601d60248201527f6c656e677468206f662072656c61796572466565206d69736d61746368000000604482015290519081900360640190fd5b604080516020601f84018190048102820181019092528281526000916127ce9185858083850183828082843760009201919091525061464592505050565b905060035481106128105760405162461bcd60e51b815260040180806020018281038252602e81526020018061531a602e913960400191505060405180910390fd5b60025481116128505760405162461bcd60e51b815260040180806020018281038252602e815260200180615348602e913960400191505060405180910390fd5b6402540be4008106156128945760405162461bcd60e51b815260040180806020018281038252602c8152602001806152c0602c913960400191505060405180910390fd5b600155612d3e565b61290084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c62534352656c6179657246656560981b6020820152915061455e9050565b15612a62576020811461295a576040805162461bcd60e51b815260206004820181905260248201527f6c656e677468206f662062534352656c61796572466565206d69736d61746368604482015290519081900360640190fd5b604080516020601f84018190048102820181019092528281526000916129989185858083850183828082843760009201919091525061464592505050565b9050806129d65760405162461bcd60e51b81526004018080602001828103825260228152602001806153ca6022913960400191505060405180910390fd5b6001548110612a165760405162461bcd60e51b815260040180806020018281038252602e81526020018061521b602e913960400191505060405180910390fd5b6402540be400810615612a5a5760405162461bcd60e51b815260040180806020018281038252602f8152602001806151ec602f913960400191505060405180910390fd5b600255612d3e565b612ac684848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c36b4b72232b632b3b0ba34b7b760991b6020820152915061455e9050565b15612ba85760208114612b20576040805162461bcd60e51b815260206004820181905260248201527f6c656e677468206f66206d696e44656c65676174696f6e206d69736d61746368604482015290519081900360640190fd5b604080516020601f8401819004810282018101909252828152600091612b5e9185858083850183828082843760009201919091525061464592505050565b90506001548111612ba05760405162461bcd60e51b81526004018080602001828103825260318152602001806152496031913960400191505060405180910390fd5b600355612d3e565b612c0a84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600b81526a7472616e7366657247617360a81b6020820152915061455e9050565b15612d015760208114612c64576040805162461bcd60e51b815260206004820152601e60248201527f6c656e677468206f66207472616e73666572476173206d69736d617463680000604482015290519081900360640190fd5b604080516020601f8401819004810282018101909252828152600091612ca29185858083850183828082843760009201919091525061464592505050565b905060008111612cf9576040805162461bcd60e51b815260206004820152601e60248201527f746865207472616e736665724761732063616e6e6f74206265207a65726f0000604482015290519081900360640190fd5b601155612d3e565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b600481565b60105460009060ff1660021415612e24576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b506010805460ff191660021790553360009081526006602052604090205480612e88576040805162461bcd60e51b81526020600482015260116024820152701b9bc81c195b991a5b99c81c995dd85c99607a1b604482015290519081900360640190fd5b336000818152600660205260408082208290556011549051919291849084818181858888f193505050503d8060008114612ede576040519150601f19603f3d011682016040523d82523d6000602084013e612ee3565b606091505b5050905080612f2b576040805162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b604482015290519081900360640190fd5b60408051838152905133917f83b78188b13346b2ffb484da70d42ee27de7fbf9f2bd8045269e10ed643ccd76919081900360200190a2506010805460ff1916600117905590565b6638d7ea4c68000081565b6001600160a01b038083166000908152600760209081526040808320938516835292905220545b92915050565b60015490565b61100281565b3361200014612ff65760405162461bcd60e51b815260040180806020018281038252602f81526020018061539b602f913960400191505060405180910390fd5b60005460ff16613039576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b61307882828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613b2192505050565b6130bb576040805162461bcd60e51b815260206004820152600f60248201526e0eee4dedcce40e0c2c6d640d0c2e6d608b1b604482015290519081900360640190fd5b6130c36151b1565b6131056112f684848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061348992505050565b9050600061311561130b836134f8565b905061311f6151b1565b61312883613a90565b156131465761313f6112f661258061248b866134f8565b905061318c565b6040805162461bcd60e51b8152602060048201526016602482015275656d707479206661696c2061636b207061636b61676560501b604482015290519081900360640190fd5b60ff8216600114156131a6576131a18161464a565b6131d0565b60ff8216600214156131bb576131a181614864565b60ff82166003141561134a576131a18161498e565b5050505b505050565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b61100381565b68056bc75e2d6310000081565b6001600160a01b0392831660009081526009602090815260408083209486168352938152838220929094168152925290205490565b61100081565b60115481565b61100481565b6000828201838110156132b8576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b60006132b883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250614af3565b60006132b883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506139f9565b60408051600560a21b83186014820152603481019091526060906132b881614b58565b6060612fa461337483614bae565b614b58565b606081516000141561339a5750604080516000815260208101909152611211565b6060826000815181106133a957fe5b602002602001015190506000600190505b83518110156133ea576133e0828583815181106133d357fe5b6020026020010151614c94565b91506001016133ba565b506132b86133fd825160c060ff16614d11565b82614c94565b6040805160028082526060828101909352829190816020015b606081526020019060019003908161341c57905050905061343f8460ff16613366565b8160008151811061344c57fe5b602002602001018190525061346083614b58565b8160018151811061346d57fe5b602002602001018190525061348181613379565b949350505050565b6134916151d1565b506040805180820190915281518152602082810190820152919050565b6134b66151b1565b6134bf82614e09565b6134c857600080fd5b60006134d78360200151614e43565b60208085015160408051808201909152868152920190820152915050919050565b6135006151d1565b61350982613a90565b61351257600080fd5b6020820151600061352282614ea6565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061355b57508151602110155b61356457600080fd5b60006135738360200151614e43565b905080836000015110156135ce576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b8251602080850151830180519284900392918310156135f457826020036101000a820491505b50949350505050565b600060606000806000805b61361187613a90565b1561366357826136335761362c613627886134f8565b614fd9565b9150613658565b82600114156136535761364861130b886134f8565b905060019350613658565b613663565b826001019250613608565b836136a9576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b60006110046001600160a01b031663727be1f8836040518263ffffffff1660e01b815260040180828152602001915050602060405180830381600087803b1580156136f357600080fd5b505af1158015613707573d6000803e3d6000fd5b505050506040513d602081101561371d57600080fd5b505190508061374257613734600484846065614ff3565b9650965050505050506137d8565b6001600160a01b03831660009081526006602052604090205461376b908363ffffffff61325e16565b6001600160a01b038416600081815260066020908152604091829020939093558051858152905191927f7cc266c7b444f808013fa187f7b904d470a051a6564e78f482aa496581ba4bf892918290030190a260408051600080825260208201909252909750955050505050505b915091565b6000606060008060008060005b6137f388613a90565b1561385c578361381057613809613627896134f8565b9250613851565b836001141561382c57613825613627896134f8565b9150613851565b836002141561384c5761384161130b896134f8565b905060019450613851565b61385c565b8360010193506137ea565b846138a2576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b60006110046001600160a01b031663727be1f8836040518263ffffffff1660e01b815260040180828152602001915050602060405180830381600087803b1580156138ec57600080fd5b505af1158015613900573d6000803e3d6000fd5b505050506040513d602081101561391657600080fd5b505190508061393c5761392d600585846065614ff3565b975097505050505050506137d8565b6001600160a01b038085166000818152600760209081526040808320948816835293815283822082905591815260089091522054613980908363ffffffff61325e16565b6001600160a01b0380861660008181526008602090815260409182902094909455805186815290519287169391927f35a799836f74fac7eccf5c73902823b970543d2274d3b93d8da3d37a255772a2929181900390910190a3604080516000808252602082019092529098509650505050505050915091565b60008184841115613a885760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613a4d578181015183820152602001613a35565b50505050905090810190601f168015613a7a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000613a9a6151d1565b505080518051602091820151919092015191011190565b8051606090613abf57600080fd5b6000613ace8360200151614e43565b83516040805191839003808352601f19601f8201168301602001909152919250606090828015613b05576020820181803683370190505b50905060008160200190506135f48487602001510182856150ef565b8051602080830191909120600e546000908152600a9092526040822054808214613b5057600092505050611211565b5050600e80546000908152600a60205260408120558054600190810190915592915050565b60008060008060005b613b8788613a90565b15613bf05783613ba457613b9d613627896134f8565b9250613be5565b8360011415613bc057613bb9613627896134f8565b9150613be5565b8360021415613be057613bd561130b896134f8565b905060019450613be5565b613bf0565b836001019350613b7e565b84613c36576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6000613c4d826402540be40063ffffffff61513a16565b6001600160a01b0385166000908152600b602052604090208054600019019055905060ff881660011415613d935760ff871615613cc0576040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b6001600160a01b038416600090815260046020526040902054613ce9908263ffffffff61325e16565b6001600160a01b03808616600090815260046020908152604080832094909455600581528382209287168252919091522054613d2b908263ffffffff61325e16565b6001600160a01b038086166000818152600560209081526040808320948916808452948252918290209490945580518581529051929391927f9a57c81564ab02642f34fd87e41baa9b074c18342cec3b7268b62bf752018fd1929181900390910190a3613f21565b60ff8816613ee5576001600160a01b038416600090815260086020526040902054613dc4908263ffffffff61325e16565b6001600160a01b0385166000908152600860209081526040808320939093558251630e4f7c3f60e31b81526004810185905292516110049363727be1f89360248083019493928390030190829087803b158015613e2057600080fd5b505af1158015613e34573d6000803e3d6000fd5b505050506040513d6020811015613e4a57600080fd5b5051613e93576040805162461bcd60e51b81526020600482015260136024820152721dda5d1a191c985dc8189b988819985a5b1959606a1b604482015290519081900360640190fd5b6040805182815260ff8916602082015281516001600160a01b0380871693908816927fcbd481ae600289fad8c0484d07ce0ffe4f010d7c844ecfdeaf2a13fead52886e929081900390910190a3613f21565b6040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b505050505050505050565b60008060008060005b613f3e88613a90565b15613fa75783613f5b57613f54613627896134f8565b9250613f9c565b8360011415613f7757613f70613627896134f8565b9150613f9c565b8360021415613f9757613f8c61130b896134f8565b905060019450613f9c565b613fa7565b836001019350613f35565b84613fed576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6000614004826402540be40063ffffffff61513a16565b6001600160a01b0385166000908152600c602052604090208054600019019055905060ff8816600114156141835760ff871615614077576040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b6001600160a01b0384166000908152600460205260409020546140a0908263ffffffff61330116565b6001600160a01b038086166000908152600460209081526040808320949094556005815283822092871682529190915220546140e2908263ffffffff61330116565b6001600160a01b0380861660009081526005602090815260408083209388168352929052205561411b42620a8c0063ffffffff61325e16565b6001600160a01b038086166000818152600760209081526040808320948916808452948252918290209490945580518581529051929391927fd6f878a5bcbbe79a64e6418bb0d56aaa20b9a60587d45749819df88dfc7c3c44929181900390910190a3613f21565b60ff8816613ee5576001600160a01b03808516600081815260076020908152604080832094881680845294825280832092909255815185815260ff8c169181019190915281517f4417d10c1e33efa83a770b8d4f47176e78c08c1298d534901ad3b16bb585fa2e929181900390910190a3613f21565b6000806000806000805b61420c89613a90565b156142915784614229576142226136278a6134f8565b9350614286565b84600114156142455761423e6136278a6134f8565b9250614286565b84600214156142615761425a6136278a6134f8565b9150614286565b84600314156142815761427661130b8a6134f8565b905060019550614286565b614291565b846001019450614203565b856142d7576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b60006142ee826402540be40063ffffffff61513a16565b6001600160a01b0386166000908152600d602052604090208054600019019055905060ff8916600114156144c15760ff881615614361576040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b6001600160a01b03808616600090815260056020908152604080832093881683529290522054614397908263ffffffff61330116565b6001600160a01b038681166000908152600560209081526040808320898516845290915280822093909355908516815220546143d3908261325e565b6001600160a01b0380871660009081526005602090815260408083209388168352929052205561440c42620a8c0063ffffffff61325e16565b6001600160a01b038087166000908152600960209081526040808320898516845282528083209388168352929052205561444f42620a8c0063ffffffff61325e16565b6001600160a01b038087166000818152600960209081526040808320898616808552908352818420958b1680855295835292819020959095558451868152945191947f78bffae3f8c6691ac7fc1a3bff800cb2d612f5ad9ae5b0444cfe2eb15c189e18929081900390910190a4614552565b60ff8916613ee5576001600160a01b038581166000818152600960209081526040808320898616808552818452828520968a16808652968452828520859055908352818420818552835281842093909355805186815260ff8e169281019290925280519293927fb93bee5c59f85ede6b074a99f4ffcd3e3fc0d5c3d8156de331de89a49e0ce77c9281900390910190a45b50505050505050505050565b6000816040516020018082805190602001908083835b602083106145935780518252601f199092019160209182019101614574565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106146015780518252601f1990920191602091820191016145e2565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b60008060008060005b61465c86613a90565b156146c5578361467957614672613627876134f8565b92506146ba565b83600114156146955761468e613627876134f8565b91506146ba565b83600214156146b5576146aa61130b876134f8565b9050600194506146ba565b6146c5565b836001019350614653565b8461470b576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6000614722826402540be40063ffffffff61513a16565b6001600160a01b0385166000908152600b6020908152604080832080546000190190556008909152902054909150614760908263ffffffff61325e16565b6001600160a01b0385166000908152600860209081526040808320939093558251630e4f7c3f60e31b81526004810185905292516110049363727be1f89360248083019493928390030190829087803b1580156147bc57600080fd5b505af11580156147d0573d6000803e3d6000fd5b505050506040513d60208110156147e657600080fd5b505161482f576040805162461bcd60e51b81526020600482015260136024820152721dda5d1a191c985dc8189b988819985a5b1959606a1b604482015290519081900360640190fd5b6040516001907ff83de021914a4585482db5ca47d520a5657165b443fa2c7ef8ed4635f054da9b90600090a250505050505050565b60008060008060005b61487686613a90565b156148df57836148935761488c613627876134f8565b92506148d4565b83600114156148af576148a8613627876134f8565b91506148d4565b83600214156148cf576148c461130b876134f8565b9050600194506148d4565b6148df565b83600101935061486d565b84614925576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6001600160a01b038084166000908152600c60209081526040808320805460001901905560078252808320938616835292905281812081905590516002917ff83de021914a4585482db5ca47d520a5657165b443fa2c7ef8ed4635f054da9b91a2505050505050565b6000806000806000805b6149a187613a90565b15614a2657846149be576149b7613627886134f8565b9350614a1b565b84600114156149da576149d3613627886134f8565b9250614a1b565b84600214156149f6576149ef613627886134f8565b9150614a1b565b8460031415614a1657614a0b61130b886134f8565b905060019550614a1b565b614a26565b846001019450614998565b85614a6c576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6001600160a01b038481166000908152600d602090815260408083208054600019019055600982528083208785168085528184528285209588168552948352818420849055825280832093835292905281812081905590516003917ff83de021914a4585482db5ca47d520a5657165b443fa2c7ef8ed4635f054da9b91a250505050505050565b60008183614b425760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315613a4d578181015183820152602001613a35565b506000838581614b4e57fe5b0495945050505050565b606081516001148015614b8a5750607f60f81b82600081518110614b7857fe5b01602001516001600160f81b03191611155b15614b96575080611211565b612fa4614ba88351608060ff16614d11565b83614c94565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416614bf257506018614c16565b6fffffffffffffffffffffffffffffffff198416614c1257506010614c16565b5060005b6020811015614c4c57818181518110614c2b57fe5b01602001516001600160f81b03191615614c4457614c4c565b600101614c16565b60008160200390506060816040519080825280601f01601f191660200182016040528015614c81576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b81831015614cc5578051835260209283019201614cad565b50855184518101855292509050808201602086015b81831015614cf2578051835260209283019201614cda565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310614d61576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b60408051600180825281830190925260609160208201818036833701905050905060378411614dbb5782840160f81b81600081518110614d9d57fe5b60200101906001600160f81b031916908160001a9053509050612fa4565b6060614dc685614bae565b90508381510160370160f81b82600081518110614ddf57fe5b60200101906001600160f81b031916908160001a905350614e008282614c94565b95945050505050565b8051600090614e1a57506000611211565b6020820151805160001a9060c0821015614e3957600092505050611211565b5060019392505050565b8051600090811a6080811015614e5d576000915050611211565b60b8811080614e78575060c08110801590614e78575060f881105b15614e87576001915050611211565b60c0811015614e9b5760b519019050611211565b60f519019050611211565b80516000908190811a6080811015614ec15760019150614fd2565b60b8811015614ed657607e1981019150614fd2565b60c0811015614f5057600060b78203600186019550806020036101000a865104915060018101820193505080831015614f4a576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50614fd2565b60f8811015614f655760be1981019150614fd2565b600060f78203600186019550806020036101000a865104915060018101820193505080831015614fd0576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b8051600090601514614fea57600080fd5b612fa482613546565b6000606061500c846402540be40063ffffffff6132bf16565b60408051600480825260a0820190925291955060609190816020015b606081526020019060019003908161502857905050905061504b8760ff16613366565b8160008151811061505857fe5b6020026020010181905250615075866001600160a01b0316613343565b8160018151811061508257fe5b602002602001018190525061509685613366565b816002815181106150a357fe5b60200260200101819052506150bd8463ffffffff16613366565b816003815181106150ca57fe5b602002602001018190525060606150e082613379565b94989497509395505050505050565b806150f9576131d4565b5b60208110615119578251825260209283019290910190601f19016150fa565b915181516020939093036101000a6000190180199091169216919091179052565b60008261514957506000612fa4565b8282028284828161515657fe5b04146132b85760405162461bcd60e51b815260040180806020018281038252602181526020018061529f6021913960400191505060405180910390fd5b60405180606001604052806003906020820280368337509192915050565b60405180604001604052806151c46151d1565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe7468652042534352656c61796572466565206d6f642074656e20646563696d616c73206d757374206265207a65726f7468652042534352656c61796572466565206d757374206265206c657373207468616e2072656c61796572466565746865206d696e44656c65676174696f6e206d7573742062652067726561746572207468616e2072656c61796572466565696e73756666696369656e742062616c616e636520616674657220726564656c6567617465536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f777468652072656c61796572466565206d6f642074656e20646563696d616c73206d757374206265207a65726f746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163747468652072656c61796572466565206d757374206265206c657373207468616e206d696e44656c65676174696f6e7468652072656c61796572466565206d757374206265206d6f7265207468616e2042534352656c61796572466565696e73756666696369656e742062616c616e636520616674657220756e64656c6567617465746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e74726163747468652042534352656c61796572466565206d757374206e6f74206265207a65726fa2646970667358221220f93b7c737ada8f392b296e539e2479e336344a76181ff9ba33d0303334f6a7c064736f6c63430006040033", - }, - }, - } - - MoranUpgrade[networkname.BSCChainName] = &Upgrade{ - UpgradeName: "moran", - Configs: []*UpgradeConfig{ - { - ContractAddr: RelayerHubContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/c184a00160b6a2d884b4d6efebe1358a047e9e57", - Code: "6080604052600436106101d85760003560e01c80637ae2308811610102578063c81b166211610095578063f9a2bbc711610064578063f9a2bbc714610569578063fb7cfdd71461057e578063fc3e590814610593578063fd6a6879146105a8576101d8565b8063c81b166214610515578063dc927faf1461052a578063e1c7392a1461053f578063e79a198f14610554576101d8565b8063a1a11bf5116100d1578063a1a11bf514610407578063a78abc161461041c578063ab51bb9614610431578063ac43175114610446576101d8565b80637ae23088146103b357806395468d26146103c857806396713da9146103dd5780639dc09262146103f2576101d8565b806351e806721161017a57806370fd5bad1161014957806370fd5bad1461035f578063718a8aa81461037457806375d47a0a146103895780637942fd051461039e576101d8565b806351e80672146102c7578063541d5548146102dc5780636a87d780146103235780636e47b4821461034a576101d8565b80633dffc387116101b65780633dffc3871461024657806343756e5c14610271578063493279b1146102865780634bf6c882146102b2576101d8565b80630bee7a67146101dd5780630e2374a51461020b5780631aa3a0081461023c575b600080fd5b3480156101e957600080fd5b506101f26105bd565b6040805163ffffffff9092168252519081900360200190f35b34801561021757600080fd5b506102206105c2565b604080516001600160a01b039092168252519081900360200190f35b6102446105c8565b005b34801561025257600080fd5b5061025b610749565b6040805160ff9092168252519081900360200190f35b34801561027d57600080fd5b5061022061074e565b34801561029257600080fd5b5061029b610754565b6040805161ffff9092168252519081900360200190f35b3480156102be57600080fd5b5061025b610759565b3480156102d357600080fd5b5061022061075e565b3480156102e857600080fd5b5061030f600480360360208110156102ff57600080fd5b50356001600160a01b0316610764565b604080519115158252519081900360200190f35b34801561032f57600080fd5b50610338610782565b60408051918252519081900360200190f35b34801561035657600080fd5b50610220610788565b34801561036b57600080fd5b5061025b61078e565b34801561038057600080fd5b5061025b610793565b34801561039557600080fd5b50610220610798565b3480156103aa57600080fd5b5061025b61079e565b3480156103bf57600080fd5b506103386107a3565b3480156103d457600080fd5b506103386107b0565b3480156103e957600080fd5b5061025b6107bc565b3480156103fe57600080fd5b506102206107c1565b34801561041357600080fd5b506102206107c7565b34801561042857600080fd5b5061030f6107cd565b34801561043d57600080fd5b506101f26107d6565b34801561045257600080fd5b506102446004803603604081101561046957600080fd5b81019060208101813564010000000081111561048457600080fd5b82018360208201111561049657600080fd5b803590602001918460018302840111640100000000831117156104b857600080fd5b9193909290916020810190356401000000008111156104d657600080fd5b8201836020820111156104e857600080fd5b8035906020019184600183028401116401000000008311171561050a57600080fd5b5090925090506107db565b34801561052157600080fd5b50610220610bfd565b34801561053657600080fd5b50610220610c03565b34801561054b57600080fd5b50610244610c09565b34801561056057600080fd5b50610244610c8b565b34801561057557600080fd5b50610220610e44565b34801561058a57600080fd5b50610338610e4a565b34801561059f57600080fd5b5061025b610e50565b3480156105b457600080fd5b50610220610e55565b606481565b61200181565b3360009081526004602052604090205460ff1615610625576040805162461bcd60e51b81526020600482015260156024820152741c995b185e595c88185b1c9958591e48195e1a5cdd605a1b604482015290519081900360640190fd5b60005460ff16610678576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b61068133610e5b565b156106bd5760405162461bcd60e51b81526004018080602001828103825260278152602001806110486027913960400191505060405180910390fd5b333214610707576040805162461bcd60e51b81526020600482015260136024820152721b9bc81c1c9bde1e481a5cc8185b1b1bddd959606a1b604482015290519081900360640190fd5b6040805162461bcd60e51b81526020600482015260126024820152711c9959da5cdd195c881cdd5cdc195b99195960721b604482015290519081900360640190fd5b600181565b61100181565b603881565b600881565b61200081565b6001600160a01b031660009081526004602052604090205460ff1690565b60025481565b61100581565b600281565b601081565b61100881565b600b81565b68056bc75e2d6310000081565b67016345785d8a000081565b600981565b61100781565b61100681565b60005460ff1681565b600081565b60005460ff1661082e576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b336110071461086e5760405162461bcd60e51b815260040180806020018281038252602e81526020018061106f602e913960400191505060405180910390fd5b6108d484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e1c995c5d5a5c995911195c1bdcda5d608a1b60208201529150610e619050565b156109d757602081146109185760405162461bcd60e51b815260040180806020018281038252602281526020018061109d6022913960400191505060405180910390fd5b604080516020601f840181900481028201810190925282815260009161095691858580838501838280828437600092019190915250610f4892505050565b90506001811180156109715750683635c9adc5dea000008111155b801561097e575060025481115b6109cf576040805162461bcd60e51b815260206004820181905260248201527f7468652072657175697265644465706f736974206f7574206f662072616e6765604482015290519081900360640190fd5b600155610b6b565b610a3284848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260048152636475657360e01b60208201529150610e619050565b15610b2e5760208114610a8c576040805162461bcd60e51b815260206004820152601760248201527f6c656e677468206f662064756573206d69736d61746368000000000000000000604482015290519081900360640190fd5b604080516020601f8401819004810282018101909252828152600091610aca91858580838501838280828437600092019190915250610f4892505050565b9050600081118015610add575060015481105b610b26576040805162461bcd60e51b81526020600482015260156024820152747468652064756573206f7574206f662072616e676560581b604482015290519081900360640190fd5b600255610b6b565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b61100281565b61100381565b60005460ff1615610c61576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b68056bc75e2d63100000600190815567016345785d8a00006002556000805460ff19169091179055565b3360009081526004602052604090205460ff16610ce6576040805162461bcd60e51b81526020600482015260146024820152731c995b185e595c88191bc81b9bdd08195e1a5cdd60621b604482015290519081900360640190fd5b60005460ff16610d39576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b610d4161102d565b5033600081815260036020908152604091829020825180840190935280548084526001909101549183018290529192916108fc91610d85919063ffffffff610f4d16565b6040518115909202916000818181858888f19350505050158015610dad573d6000803e3d6000fd5b50602081015160405161100291829181156108fc0291906000818181858888f19350505050158015610de3573d6000803e3d6000fd5b50336000818152600460209081526040808320805460ff191690556003825280832083815560010192909255815192835290517fd17202129b83db7880d6b9f25df81c58ad46f7e0e2c92236b1aa10663a4876679281900390910190a15050565b61100081565b60015481565b600381565b61100481565b3b151590565b6000816040516020018082805190602001908083835b60208310610e965780518252601f199092019160209182019101610e77565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310610f045780518252601f199092019160209182019101610ee5565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b6000610f8f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f96565b9392505050565b600081848411156110255760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610fea578181015183820152602001610fd2565b50505050905090810190601f1680156110175780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60405180604001604052806000815260200160008152509056fe636f6e7472616374206973206e6f7420616c6c6f77656420746f20626520612072656c61796572746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662072657175697265644465706f736974206d69736d61746368a26469706673582212201c4e7448b0b43bce697ca53ce9878e494069d8ceccfdd4081cee4d8b0deb5ae064736f6c63430006040033", - }, - { - ContractAddr: LightClientContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/c184a00160b6a2d884b4d6efebe1358a047e9e57", - Code: "608060405234801561001057600080fd5b50600436106102275760003560e01c8063a1a11bf511610130578063dc927faf116100b8578063e405bbc31161007c578063e405bbc3146106a7578063ea54b2aa146106af578063f9a2bbc7146106b7578063fc3e5908146106bf578063fd6a6879146106c757610227565b8063dc927faf14610627578063dda831481461062f578063df5fe70414610655578063e1c7392a1461067b578063e2761af01461068357610227565b8063adc879e9116100ff578063adc879e914610552578063c81b16621461055a578063cba510a914610562578063d816987914610588578063da8d08f01461060157610227565b8063a1a11bf514610462578063a78abc161461046a578063ab51bb9614610486578063ac4317511461048e57610227565b8063564b81ef116101b3578063718a8aa811610182578063718a8aa81461043a57806375d47a0a146104425780637942fd051461044a57806396713da9146104525780639dc092621461045a57610227565b8063564b81ef146102e85780635c5ae8db146103655780636e47b4821461042a57806370fd5bad1461043257610227565b80633dffc387116101fa5780633dffc3871461029357806343756e5c146102b1578063493279b1146102b95780634bf6c882146102d857806351e80672146102e057610227565b80630bee7a671461022c5780630e2374a51461024d5780632657e9b61461027157806333f7798d1461028b575b600080fd5b6102346106cf565b6040805163ffffffff9092168252519081900360200190f35b6102556106d4565b604080516001600160a01b039092168252519081900360200190f35b6102796106da565b60408051918252519081900360200190f35b6102796106e5565b61029b6106eb565b6040805160ff9092168252519081900360200190f35b6102556106f0565b6102c16106f6565b6040805161ffff9092168252519081900360200190f35b61029b6106fb565b610255610700565b6102f0610706565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561032a578181015183820152602001610312565b50505050905090810190601f1680156103575780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61038b6004803603602081101561037b57600080fd5b50356001600160401b0316610812565b60405180856001600160401b03166001600160401b0316815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156103ec5781810151838201526020016103d4565b50505050905090810190601f1680156104195780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b6102556108cd565b61029b6108d3565b61029b6108d8565b6102556108dd565b61029b6108e3565b61029b6108e8565b6102556108ed565b6102556108f3565b6104726108f9565b604080519115158252519081900360200190f35b610234610902565b610550600480360360408110156104a457600080fd5b8101906020810181356401000000008111156104bf57600080fd5b8201836020820111156104d157600080fd5b803590602001918460018302840111640100000000831117156104f357600080fd5b91939092909160208101903564010000000081111561051157600080fd5b82018360208201111561052357600080fd5b8035906020019184600183028401116401000000008311171561054557600080fd5b509092509050610907565b005b610279610bc0565b610255610bc6565b6102796004803603602081101561057857600080fd5b50356001600160401b0316610bcc565b6104726004803603604081101561059e57600080fd5b8101906020810181356401000000008111156105b957600080fd5b8201836020820111156105cb57600080fd5b803590602001918460018302840111640100000000831117156105ed57600080fd5b9193509150356001600160401b0316610beb565b6102556004803603602081101561061757600080fd5b50356001600160401b031661143c565b610255611457565b6102556004803603602081101561064557600080fd5b50356001600160401b031661145d565b6104726004803603602081101561066b57600080fd5b50356001600160401b0316611481565b6105506114c3565b61068b61166a565b604080516001600160401b039092168252519081900360200190f35b61068b611679565b6102f061168f565b6102556116ae565b61029b6116b4565b6102556116b9565b606481565b61200181565b662386f26fc1000081565b60055481565b600181565b61100181565b603881565b600881565b61200081565b604080516020808252818301909252606091829190602082018180368337505060045460208301525090506000805b60208160ff16101561077c57828160ff168151811061075057fe5b01602001516001600160f81b0319161561076f57600190910190610774565b61077c565b600101610735565b5060608160ff166040519080825280601f01601f1916602001820160405280156107ad576020820181803683370190505b50905060005b8260ff168160ff16101561080957838160ff16815181106107d057fe5b602001015160f81c60f81b828260ff16815181106107ea57fe5b60200101906001600160f81b031916908160001a9053506001016107b3565b50925050505b90565b60016020818152600092835260409283902080548184015460028084015460038501805489516101009982161599909902600019011692909204601f81018790048702880187019098528787526001600160401b0390931696919592949091908301828280156108c35780601f10610898576101008083540402835291602001916108c3565b820191906000526020600020905b8154815290600101906020018083116108a657829003601f168201915b5050505050905084565b61100581565b600281565b601081565b61100881565b600b81565b600981565b61100781565b61100681565b60005460ff1681565b600081565b60005460ff1661095e576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604482015290519081900360640190fd5b336110071461099e5760405162461bcd60e51b815260040180806020018281038252602e815260200180611a8b602e913960400191505060405180910390fd5b610a1284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601b81527f726577617264466f7256616c696461746f725365744368616e67650000000000602082015291506116bf9050565b15610af15760208114610a565760405162461bcd60e51b815260040180806020018281038252602e815260200180611a2a602e913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610a94918585808385018382808284376000920191909152506117a692505050565b9050600081118015610aae5750670de0b6b3a76400008111155b610ae95760405162461bcd60e51b815260040180806020018281038252602f815260200180611ab9602f913960400191505060405180910390fd5b600555610b2e565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b60045481565b61100281565b6001600160401b03166000908152600160208190526040909120015490565b60408051630a83aaa960e31b815233600482015290516000916110069163541d554891602480820192602092909190829003018186803b158015610c2e57600080fd5b505afa158015610c42573d6000803e3d6000fd5b505050506040513d6020811015610c5857600080fd5b5051610cab576040805162461bcd60e51b815260206004820152601f60248201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604482015290519081900360640190fd5b73b005741528b86f5952469d80a8614591e3c5b632331480610ce0575073446aa6e0dc65690403df3f127750da1322941f3e33145b610d1b5760405162461bcd60e51b815260040180806020018281038252602a815260200180611ae8602a913960400191505060405180910390fd5b6001600160401b0382166000908152600260205260409020546001600160a01b031615610d8f576040805162461bcd60e51b815260206004820152601c60248201527f63616e27742073796e63206475706c6963617465642068656164657200000000604482015290519081900360640190fd5b6003546001600160401b0390811690831611610ddc5760405162461bcd60e51b8152600401808060200182810382526026815260200180611b126026913960400191505060405180910390fd5b600354600160401b90046001600160401b0316610df7611908565b6001600160401b0382811660009081526001602081815260409283902083516080810185528154909516855280830154858301526002808201548686015260038201805486516101009682161596909602600019011691909104601f81018490048402850184019095528484529093606086019392830182828015610ebd5780601f10610e9257610100808354040283529160200191610ebd565b820191906000526020600020905b815481529060010190602001808311610ea057829003601f168201915b50505050508152505090505b836001600160401b0316826001600160401b031610158015610efa57506003546001600160401b0390811690831610155b15610fdb5780516001600160401b0380821660009081526001602081815260409283902083516080810185528154909516855280830154858301526002808201548686015260038201805486516101009682161596909602600019011691909104601f8101849004840285018401909552848452959750939460608601939091830182828015610fcb5780601f10610fa057610100808354040283529160200191610fcb565b820191906000526020600020905b815481529060010190602001808311610fae57829003601f168201915b5050505050815250509050610ec9565b6060810151516110d25780516001600160401b03811660009081526001602081815260409283902060030180548451600294821615610100026000190190911693909304601f81018390048302840183019094528383529395509092919083018282801561108a5780601f1061105f5761010080835404028352916020019161108a565b820191906000526020600020905b81548152906001019060200180831161106d57829003601f168201915b505050506060830182905250516110d25760405162461bcd60e51b8152600401808060200182810382526021815260200180611a096021913960400191505060405180910390fd5b6000816060015151608801905060608787905082016040519080825280601f01601f191660200182016040528015611111576020820181803683370190505b509050600061111f826117ab565b905061112d848683866117b1565b6111685760405162461bcd60e51b81526004018080602001828103825260238152602001806119e66023913960400191505060405180910390fd5b600083820191506111ae8a8a8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061181d92505050565b945090506111bd818386611827565b825160200193506111cc61192e565b6110008186866064600019fa6111e157600080fd5b805194506000600160f81b8616156112705750600554604080516309a99b4f60e41b815233600482015260248101929092525160019161100291639a99b4f0916044808201926020929091908290030181600087803b15801561124357600080fd5b505af1158015611257573d6000803e3d6000fd5b505050506040513d602081101561126d57600080fd5b50505b856001600160401b03169550602082019350600061129085888415611868565b90985090506001600160401b03808216908c16146112df5760405162461bcd60e51b8152600401808060200182810382526033815260200180611a586033913960400191505060405180910390fd5b6001600160401b03808c16600081815260026020818152604080842080546001600160a01b031916331790558e86168e529383526001808252928490208d518154961667ffffffffffffffff199096169590951785558c81015192850192909255918b01519183019190915560608a015180518b939261136692600385019291019061194d565b50506003546001600160401b03600160401b9091048116908d16111590506113ae576003805467ffffffffffffffff60401b1916600160401b6001600160401b038e16021790555b7f4042c1020a8f410fb1c8859d276ab436aeb2c3074960e48467299cf1c966d3b48b8a8a602001518560405180856001600160401b03166001600160401b03168152602001846001600160401b03166001600160401b031681526020018381526020018215151515815260200194505050505060405180910390a15060019c9b505050505050505050505050565b6002602052600090815260409020546001600160a01b031681565b61100381565b6001600160401b03166000908152600260205260409020546001600160a01b031690565b6001600160401b0381166000908152600260205260408120546001600160a01b03161515806114bd57506003546001600160401b038381169116145b92915050565b60005460ff161561151b576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b6000806115426040518061024001604052806102208152602001611b38610220913961181d565b81516004559092509050611554611908565b600061156284846000611868565b60008083526001600160401b038281168252600160208181526040938490208651815467ffffffffffffffff19169416939093178355808601519183019190915591840151600282015560608401518051949650929450859390926115ce92600385019291019061194d565b50506003805467ffffffffffffffff19166001600160401b0384811691821767ffffffffffffffff60401b1916600160401b9290920291909117918290556000805460ff19166001179055662386f26fc10000600555602085810151604080519490931684529083015280517f5ac9b37d571677b80957ca05693f371526c602fd08042b416a29fdab7efefa499350918290030190a150505050565b6003546001600160401b031681565b600354600160401b90046001600160401b031681565b6040518061024001604052806102208152602001611b38610220913981565b61100081565b600381565b61100481565b6000816040516020018082805190602001908083835b602083106116f45780518252601f1990920191602091820191016116d5565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106117625780518252601f199092019160209182019101611743565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b60200190565b60008460600151518284010392506000806117cf876060015161181d565b90925090506117df828683611827565b5050506040840151601f1983810191909152602090940151603f19830152605f19820192909252600454606719820152910160871990910152600190565b8051602090910191565b5b60208110611847578251825260209283019290910190601f1901611828565b915181516020939093036101000a6000190180199091169216919091179052565b611870611908565b600884015160288501516048909501805190956000929161188f611908565b6020810183905260408101829052866118fa5760008060688a036040519080825280601f01601f1916602001820160405280156118d3576020820181803683370190505b50606084018190526118e49061181d565b90925090506118f760208c018383611827565b50505b989297509195505050505050565b604080516080810182526000808252602082018190529181019190915260608082015290565b6040518061100001604052806080906020820280368337509192915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061198e57805160ff19168380011785556119bb565b828001600101855582156119bb579182015b828111156119bb5782518255916020019190600101906119a0565b506119c79291506119cb565b5090565b61080f91905b808211156119c757600081556001016119d156fe6661696c656420746f2073657269616c697a6520636f6e73656e7375732073746174656661696c656420746f206c6f61642076616c696461746f722073657420646174616c656e677468206f6620726577617264466f7256616c696461746f725365744368616e6765206d69736d617463686865616465722068656967687420646f65736e277420657175616c20746f207468652073706563696669656420686569676874746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374746865206e6577526577617264466f7256616c696461746f725365744368616e6765206f7574206f662072616e6765746865206d73672073656e646572206973206e6f7420612077686974656c6162656c2072656c6179657263616e27742073796e6320686561646572206265666f726520696e697469616c48656967687442696e616e63652d436861696e2d5469677269730000000000000000000000000000000006915167cedaf7bbf7df47d932fdda630527ee648562cf3e52c5e5f46156a3a971a4ceb443c53a50d8653ef8cf1e5716da68120fb51b636dc6d111ec3277b098ecd42d49d3769d8a1f78b4c17a965f7a30d4181fabbd1f969f46d3c8e83b5ad4845421d8000000e8d4a510002ba4e81542f437b7ae1f8a35ddb233c789a8dc22734377d9b6d63af1ca403b61000000e8d4a51000df8da8c5abfdb38595391308bb71e5a1e0aabdc1d0cf38315d50d6be939b2606000000e8d4a51000b6619edca4143484800281d698b70c935e9152ad57b31d85c05f2f79f64b39f3000000e8d4a510009446d14ad86c8d2d74780b0847110001a1c2e252eedfea4753ebbbfce3a22f52000000e8d4a510000353c639f80cc8015944436dab1032245d44f912edc31ef668ff9f4a45cd0599000000e8d4a51000e81d3797e0544c3a718e1f05f0fb782212e248e784c1a851be87e77ae0db230e000000e8d4a510005e3fcda30bd19d45c4b73688da35e7da1fce7c6859b2c1f20ed5202d24144e3e000000e8d4a51000b06a59a2d75bf5d014fce7c999b5e71e7a960870f725847d4ba3235baeaa08ef000000e8d4a510000c910e2fe650e4e01406b3310b489fb60a84bc3ff5c5bee3a56d5898b6a8af32000000e8d4a5100071f2d7b8ec1c8b99a653429b0118cd201f794f409d0fea4d65b1b662f2b00063000000e8d4a51000a2646970667358221220fb8b53bdce206113a24d3b8bc0be2f8f42197b57532be92e2ab23b199c941c8064736f6c63430006040033", - }, - { - ContractAddr: CrossChainContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/c184a00160b6a2d884b4d6efebe1358a047e9e57", - Code: "608060405234801561001057600080fd5b50600436106102695760003560e01c80637942fd0511610151578063c27cdcfb116100c3578063e1c7392a11610087578063e1c7392a14610775578063e3b048051461077d578063f7a251d71461079d578063f9a2bbc714610815578063fc3e59081461081d578063fd6a68791461082557610269565b8063c27cdcfb1461070e578063c81b16621461072e578063d31f968d14610736578063d76a867514610765578063dc927faf1461076d57610269565b80639dc09262116101155780639dc0926214610630578063a1a11bf514610638578063a78abc1614610640578063ab51bb9614610648578063ac43175114610650578063b0355f5b1461048057610269565b80637942fd051461053b57806384013b6a14610543578063863fe4ab146106205780638cc8f5611461051b57806396713da91461062857610269565b8063422f9050116101ea5780636e47a51a116101ae5780636e47a51a146104f35780636e47b4821461051357806370fd5bad1461051b578063718a8aa81461052357806374f079b81461052b57806375d47a0a1461053357610269565b8063422f90501461048857806343756e5c146104bc578063493279b1146104c45780634bf6c882146104e357806351e80672146104eb57610269565b80632ff32aea116102315780632ff32aea146102f3578063308325f4146103145780633a648b151461031c5780633bdc47a6146103585780633dffc3871461048057610269565b806305e682581461026e5780630bee7a671461028c5780630e2374a5146102ad57806314b3023b146102d157806322556cdc146102eb575b600080fd5b61027661082d565b6040805160ff9092168252519081900360200190f35b610294610832565b6040805163ffffffff9092168252519081900360200190f35b6102b5610837565b604080516001600160a01b039092168252519081900360200190f35b6102d961083d565b60408051918252519081900360200190f35b6102d9610843565b6102fb610848565b60408051600792830b90920b8252519081900360200190f35b6102d9610851565b61033c6004803603602081101561033257600080fd5b503560ff16610857565b604080516001600160401b039092168252519081900360200190f35b61040b6004803603606081101561036e57600080fd5b60ff82351691602081013591810190606081016040820135600160201b81111561039757600080fd5b8201836020820111156103a957600080fd5b803590602001918460018302840111600160201b831117156103ca57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610872945050505050565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561044557818101518382015260200161042d565b50505050905090810190601f1680156104725780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102766108e8565b6104a86004803603602081101561049e57600080fd5b503560ff166108ed565b604080519115158252519081900360200190f35b6102b5610902565b6104cc610908565b6040805161ffff9092168252519081900360200190f35b61027661090d565b6102b5610912565b6102b56004803603602081101561050957600080fd5b503560ff16610918565b6102b5610933565b610276610939565b61027661093e565b6102d9610943565b6102b5610949565b61027661094f565b61061e600480360360a081101561055957600080fd5b810190602081018135600160201b81111561057357600080fd5b82018360208201111561058557600080fd5b803590602001918460018302840111600160201b831117156105a657600080fd5b919390929091602081019035600160201b8111156105c357600080fd5b8201836020820111156105d557600080fd5b803590602001918460018302840111600160201b831117156105f657600080fd5b919350915080356001600160401b03908116916020810135909116906040013560ff16610954565b005b6102d9611c4d565b610276611c55565b6102b5611c5a565b6102b5611c60565b6104a8611c66565b61029461082d565b61061e6004803603604081101561066657600080fd5b810190602081018135600160201b81111561068057600080fd5b82018360208201111561069257600080fd5b803590602001918460018302840111600160201b831117156106b357600080fd5b919390929091602081019035600160201b8111156106d057600080fd5b8201836020820111156106e257600080fd5b803590602001918460018302840111600160201b8311171561070357600080fd5b509092509050611c6f565b61033c6004803603602081101561072457600080fd5b503560ff16612211565b6102b561222c565b6104a86004803603604081101561074c57600080fd5b5080356001600160a01b0316906020013560ff16612232565b61040b612252565b6102b5612271565b61061e612277565b61033c6004803603602081101561079357600080fd5b503560ff1661262e565b61061e600480360360608110156107b357600080fd5b60ff8235169190810190604081016020820135600160201b8111156107d757600080fd5b8201836020820111156107e957600080fd5b803590602001918460018302840111600160201b8311171561080a57600080fd5b919350915035612649565b6102b561279a565b6102766127a0565b6102b56127a5565b600081565b606481565b61200181565b60015481565b603281565b60045460070b81565b60025481565b600a602052600090815260409020546001600160401b031681565b60606000825160210190506060816040519080825280601f01601f1916602001820160405280156108aa576020820181803683370190505b50602181018690526001810187905282815290506041810160006108cd866127ab565b5090506108dc818388516127b5565b50909695505050505050565b600181565b60096020526000908152604090205460ff1681565b61100181565b603881565b600881565b61200081565b6005602052600090815260409020546001600160a01b031681565b61100581565b600281565b601081565b60035481565b61100881565b600b81565b60005460ff166109a7576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b60408051630a83aaa960e31b815233600482015290516110069163541d5548916024808301926020929190829003018186803b1580156109e657600080fd5b505afa1580156109fa573d6000803e3d6000fd5b505050506040513d6020811015610a1057600080fd5b5051610a63576040805162461bcd60e51b815260206004820152601f60248201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604482015290519081900360640190fd5b73b005741528b86f5952469d80a8614591e3c5b632331480610a98575073446aa6e0dc65690403df3f127750da1322941f3e33145b610ad35760405162461bcd60e51b815260040180806020018281038252602a815260200180612d5a602a913960400191505060405180910390fd5b60ff8116600090815260086020526040902054829082906001600160401b039081169083168114610b43576040805162461bcd60e51b815260206004820152601560248201527439b2b8bab2b731b2903737ba1034b71037b93232b960591b604482015290519081900360640190fd5b60ff8216600090815260086020908152604091829020805467ffffffffffffffff1916600185016001600160401b039081169190911790915582516337d7f9c160e21b81529089166004820152915188926110039263df5fe70492602480840193829003018186803b158015610bb857600080fd5b505afa158015610bcc573d6000803e3d6000fd5b505050506040513d6020811015610be257600080fd5b5051610c1f5760405162461bcd60e51b8152600401808060200182810382526023815260200180612db66023913960400191505060405180910390fd5b60ff851660009081526005602052604090205485906001600160a01b0316610c8e576040805162461bcd60e51b815260206004820152601860248201527f6368616e6e656c206973206e6f7420737570706f727465640000000000000000604482015290519081900360640190fd5b60ff86166000908152600a6020526040902054889087906001600160401b039081169083161015610cf7576040805162461bcd60e51b815260206004820152600e60248201526d3a37b79037b632103432b0b232b960911b604482015290519081900360640190fd5b60ff81166000908152600a60205260409020546001600160401b03838116911614610d495760ff81166000908152600a60205260409020805467ffffffffffffffff19166001600160401b0384161790555b60608e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060608d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509050610e8d6110036001600160a01b031663cba510a98e6040518263ffffffff1660e01b815260040180826001600160401b03166001600160401b0316815260200191505060206040518083038186803b158015610e3657600080fd5b505afa158015610e4a573d6000803e3d6000fd5b505050506040513d6020811015610e6057600080fd5b505160408051808201909152600381526269626360e81b6020820152610e868e8e6127f6565b858561283d565b610ed5576040805162461bcd60e51b815260206004820152601460248201527334b73b30b634b21036b2b935b63290383937b7b360611b604482015290519081900360640190fd5b60408051631bb5062960e31b81526001600160401b038e16600482015290516000916110039163dda8314891602480820192602092909190829003018186803b158015610f2157600080fd5b505afa158015610f35573d6000803e3d6000fd5b505050506040513d6020811015610f4b57600080fd5b505190508b8b600080806060610f608961293a565b935093509350935083611022578460ff16866001600160401b03167ff7b2e42d694eb1100184aae86d4245d9e46966100b1dc7e723275b98326854ac8b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610fda578181015183820152602001610fc2565b50505050905090810190601f1680156110075780820380516001836020036101000a031916815260200191505b509250505060405180910390a3505050505050505050611c3d565b6040805160ff85811682529151918716916001600160401b038916917f36afdaf439a8f43fe72135135d804ae620b37a474f0943b5b85f6788312cad40919081900360200190a360ff83166115a75760ff85166000818152600560209081526040808320548151631182b87560e01b815260048101958652602481019283528651604482015286516001600160a01b03909216958695631182b875958d958a9593949093606490910192918601918190849084905b838110156110ef5781810151838201526020016110d7565b50505050905090810190601f16801561111c5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561113c57600080fd5b505af192505050801561122057506040513d6000823e601f3d908101601f19168201604052602081101561116f57600080fd5b8101908080516040519392919084600160201b82111561118e57600080fd5b9083019060208201858111156111a357600080fd5b8251600160201b8111828201881017156111bc57600080fd5b82525081516020918201929091019080838360005b838110156111e95781810151838201526020016111d1565b50505050905090810190601f1680156112165780820380516001836020036101000a031916815260200191505b5060405250505060015b611532576040516000815260443d101561123c575060006112d7565b60046000803e60005160e01c6308c379a0811461125d5760009150506112d7565b60043d036004833e81513d60248201116001600160401b0382111715611288576000925050506112d7565b80830180516001600160401b038111156112a95760009450505050506112d7565b8060208301013d86018111156112c7576000955050505050506112d7565b601f01601f191660405250925050505b806112e257506113f4565b60ff8716600090815260076020526040812054611319916001600160401b039091169089906113149060029088610872565b6129ea565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf948794849390840192918601918190849084905b838110156113b457818101518382015260200161139c565b50505050905090810190601f1680156113e15780820380516001836020036101000a031916815260200191505b509250505060405180910390a25061152d565b3d80801561141e576040519150601f19603f3d011682016040523d82523d6000602084013e611423565b606091505b5060ff8716600090815260076020526040812054611456916001600160401b039091169089906113149060029088610872565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351948794849390840192918601918190849084905b838110156114f15781810151838201526020016114d9565b50505050905090810190601f16801561151e5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b6115a1565b80511561159f5760ff871660009081526007602052604081205461156b916001600160401b039091169089906113149060019086610872565b60ff8716600090815260076020526040902080546001600160401b038082166001011667ffffffffffffffff199091161790555b505b50611b75565b60ff83166001141561184b5760ff8516600081815260056020908152604080832054815163831d65d160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563831d65d1958d958a9593949093606490910192918601918190849084905b83811015611631578181015183820152602001611619565b50505050905090810190601f16801561165e5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561167e57600080fd5b505af192505050801561168f575060015b6115a1576040516000815260443d10156116ab57506000611746565b60046000803e60005160e01c6308c379a081146116cc576000915050611746565b60043d036004833e81513d60248201116001600160401b03821117156116f757600092505050611746565b80830180516001600160401b03811115611718576000945050505050611746565b8060208301013d860181111561173657600095505050505050611746565b601f01601f191660405250925050505b8061175157506117b6565b60408051602080825283518183015283516001600160a01b038616937ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf93869390928392830191850190808383600083156113b457818101518382015260200161139c565b3d8080156117e0576040519150601f19603f3d011682016040523d82523d6000602084013e6117e5565b606091505b5060408051602080825283518183015283516001600160a01b038616937f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd297735193869390928392830191850190808383600083156114f15781810151838201526020016114d9565b60ff831660021415611b755760ff8516600081815260056020908152604080832054815163c8509d8160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563c8509d81958d958a9593949093606490910192918601918190849084905b838110156118d55781810151838201526020016118bd565b50505050905090810190601f1680156119025780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561192257600080fd5b505af1925050508015611933575060015b611b73576040516000815260443d101561194f575060006119ea565b60046000803e60005160e01c6308c379a081146119705760009150506119ea565b60043d036004833e81513d60248201116001600160401b038211171561199b576000925050506119ea565b80830180516001600160401b038111156119bc5760009450505050506119ea565b8060208301013d86018111156119da576000955050505050506119ea565b601f01601f191660405250925050505b806119f55750611a9e565b816001600160a01b03167ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf826040518080602001828103825283818151815260200191508051906020019080838360005b83811015611a5e578181015183820152602001611a46565b50505050905090810190601f168015611a8b5780820380516001836020036101000a031916815260200191505b509250505060405180910390a250611b73565b3d808015611ac8576040519150601f19603f3d011682016040523d82523d6000602084013e611acd565b606091505b50816001600160a01b03167f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351826040518080602001828103825283818151815260200191508051906020019080838360005b83811015611b37578181015183820152602001611b1f565b50505050905090810190601f168015611b645780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b505b60ff80861660009081526009602052604090205461100591636f93d2e6918a91339187911680611ba7575060ff881615155b604080516001600160e01b031960e088901b1681526001600160a01b039586166004820152939094166024840152604483019190915215156064820152905160848083019260209291908290030181600087803b158015611c0757600080fd5b505af1158015611c1b573d6000803e3d6000fd5b505050506040513d6020811015611c3157600080fd5b50505050505050505050505b5050505050505050505050505050565b630100380081565b600981565b61100781565b61100681565b60005460ff1681565b3361100714611caf5760405162461bcd60e51b815260040180806020018281038252602e815260200180612ce2602e913960400191505060405180910390fd5b611d1884848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526012815271626174636853697a65466f724f7261636c6560701b60208201529150612b409050565b15611db357604080516020601f8401819004810282018101909252828152600091611d5b91858580838501838280828437600092019190915250612c2792505050565b90506127108111158015611d705750600a8110155b611dab5760405162461bcd60e51b8152600401808060200182810382526032815260200180612d846032913960400191505060405180910390fd5b60015561217f565b611e1c84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601281527118591913dc955c19185d1950da185b9b995b60721b60208201529150612b409050565b15611fa457606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060169091149050611e9f5760405162461bcd60e51b815260040180806020018281038252605a815260200180612c88605a913960600191505060405180910390fd5b60018101516002820151601683015160ff82161590611ebd81612c2c565b611f0e576040805162461bcd60e51b815260206004820152601960248201527f61646472657373206973206e6f74206120636f6e747261637400000000000000604482015290519081900360640190fd5b60ff8416600081815260056020908152604080832080546001600160a01b0319166001600160a01b038716908117909155808452600683528184208585528352818420805460ff199081166001179091556009909352818420805490931687151517909255519092917f7e3b6af43092577ee20e60eaa1d9b114a7031305c895ee7dd3ffe17196d2e1e091a3505050505061217f565b61201184848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526016815275195b98589b1953dc911a5cd8589b1950da185b9b995b60521b60208201529150612b409050565b1561214257606082828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050825192935050600290911490506120945760405162461bcd60e51b815260040180806020018281038252604a815260200180612d10604a913960600191505060405180910390fd5b600181810151600283015160ff80831660009081526005602052604090205492939192908316909114906001600160a01b03168015612138576001600160a01b038116600090815260066020908152604080832060ff881680855290835292819020805460ff1916861515908117909155815190815290517fa3132e3f9819fbddc7f0ed6d38d7feef59aa95112090b7c592f5cb5bc4aa4adc929181900390910190a25b505050505061217f565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b6008602052600090815260409020546001600160401b031681565b61100281565b600660209081526000928352604080842090915290825290205460ff1681565b6040518060400160405280600381526020016269626360e81b81525081565b61100381565b60005460ff16156122cf576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b7f1471eb6eb2c5e789fc3de43f8ce62938c7d1836ec861730447e2ada8fd81017b80546001600160a01b0319908116611008179091557f92e85d02570a8092d09a6e3a57665bc3815a2699a4074001bf1ccabf660f5a36805460ff199081169091557fd8af288fc1c8680b4f4706064cf021e264efb6828fcaf7eb5ca36818eb365bcc8054821660019081179091557f89832631fb3c3307a103ba2c84ab569c64d6182a18893dcd163f0f1c2090733a805484166110049081179091557f6cde3cea4b3a3fb2488b2808bae7556f4a405e50f65e1794383bc026131b13c38054841690557f72e4efa1513b071517c6c74dba31b5934a81aa83cddd400e7081df5529c9943680548416831790557fa9bc9a3a348c357ba16b37005d7e6b3236198c0e939f4af8c5f19b8deeb8ebc08054851690911790557fc575c31fea594a6eb97c8e9d3f9caee4c16218c6ef37e923234c0fe9014a61e78054831690557f4e523af77f034e9810f1c94057f5e931fb3d16a51511a4c3add793617d18610580548316821790557ffb33122aa9f93cc639ebe80a7bc4784c11e6053dde89c6f4f7e268c6a623da1e805484166110001790557fc7694af312c4f286114180fd0ba6a52461fcee8a381636770b19a343af92538a80548316821790557f01112dd68e482ba8d68a7e828cff8b3abcea08eab88941953c180a7e650e9cd480548316821790557fc0a4a8be475dfebc377ebef2d7c4ff47656f572a08dd92b81017efcdba0febe1805484166110071790557f87e8a52529e8ece4ef759037313542a6429ff494a9fab9027fb79db90124eba680548316821790557f4c7666bbcb22d46469f7cc282f70764a7012dca2cce630ff8d83db9a9cdd48f080548316821790557f40f28f99a40bc9f6beea1013afdbc3cdcc689eb76b82c4de06c0acf1e1932ed58054909316611001179092557f0d9cf2cd531699eed8dd34e40ff2884a14a698c4898184fba85194e6f6772d248054821683179055600b60009081527f23f68c9bd22b8a93d06adabe17481c87c016bcbd20adc8bfd707a4d813a572176020527fdf0d5d05428057f5455c2dc8e810dd86d1e9350faa72f16bda8a45443c5b39328054831684179055603283556004805467ffffffffffffffff19166001600160401b031790556002819055600381905580549091169091179055565b6007602052600090815260409020546001600160401b031681565b60005460ff1661269c576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b33600090815260066020908152604080832060ff80891685529252909120548591166126f95760405162461bcd60e51b8152600401808060200182810382526031815260200180612c576031913960400191505060405180910390fd5b60ff85166000908152600760209081526040808320548151601f88018490048402810184019092528682526001600160401b03169261275e9284928a9261131492909189918c908c908190840183828082843760009201919091525061087292505050565b60ff959095166000908152600760205260409020805467ffffffffffffffff191660019096016001600160401b03169590951790945550505050565b61100081565b600381565b61100481565b8051602090910191565b5b602081106127d5578251825260209283019290910190601f19016127b6565b915181516020939093036101000a6000190180199091169216919091179052565b60408051600e808252818301909252606091630100380060ff851617918391602082018180368337505050600e818101969096526006810192909252509283525090919050565b60008561284c57506000612931565b606082518451865160800101016040519080825280601f01601f191660200182016040528015612883576020820181803683370190505b509050600061289182612c32565b6020808901518252019050866000806128a9896127ab565b80865260209095019490925090506128c28285836127b5565b928301926128cf886127ab565b80865260209095019490925090506128e88285836127b5565b9283018a8152602001926128fb876127ab565b909250905061290b8285836127b5565b508351602001612919612c38565b60208183886065600019fa5051600114955050505050505b95945050505050565b6000806000606060218551101561296a5750506040805160008082526020820190925290925082915081906129e3565b600185015160218601518651604080516020198301808252601f19600119909401939093168101602001909152604189019392916060919080156129b5576020820181803683370190505b50905060006129c3826127ab565b5090506129d5858260218d51036127b5565b506001975091955093509150505b9193509193565b600254431115612a29576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b161790915560035543600255612a6a565b60038054600190810191829055541015612a6a576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b16179091556003555b8160ff16836001600160401b0316600460009054906101000a900460070b6001600160401b03167f3a6e0fc61675aa2a100bcba0568368bb92bcec91c97673391074f11138f0cffe603885604051808361ffff1661ffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015612b00578181015183820152602001612ae8565b50505050905090810190601f168015612b2d5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a4505050565b6000816040516020018082805190602001908083835b60208310612b755780518252601f199092019160209182019101612b56565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310612be35780518252601f199092019160209182019101612bc4565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b3b151590565b60200190565b6040518060200160405280600190602082028036833750919291505056fe74686520636f6e747261637420616e64206368616e6e656c2068617665206e6f74206265656e20726567697374657265646c656e677468206f662076616c756520666f72206164644f725570646174654368616e6e656c2073686f756c642062652032322c206368616e6e656c49643a697346726f6d53797374656d3a68616e646c657241646472657373746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662076616c756520666f7220656e61626c654f7244697361626c654368616e6e656c2073686f756c6420626520322c206368616e6e656c49643a6973456e61626c65746865206d73672073656e646572206973206e6f7420612077686974656c6162656c2072656c61796572746865206e6577426174636853697a65466f724f7261636c652073686f756c6420626520696e205b31302c2031303030305d6c6967687420636c69656e74206e6f742073796e632074686520626c6f636b20796574a2646970667358221220273761c387b9ebd0b15a5a47689f1de8e0168465c6b2da4606f3abaa43a17fef64736f6c63430006040033", - }, - }, - } - - MoranUpgrade[networkname.ChapelChainName] = &Upgrade{ - UpgradeName: "moran", - Configs: []*UpgradeConfig{ - { - ContractAddr: RelayerHubContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/c184a00160b6a2d884b4d6efebe1358a047e9e57", - Code: "6080604052600436106101d85760003560e01c80637ae2308811610102578063c81b166211610095578063f9a2bbc711610064578063f9a2bbc714610569578063fb7cfdd71461057e578063fc3e590814610593578063fd6a6879146105a8576101d8565b8063c81b166214610515578063dc927faf1461052a578063e1c7392a1461053f578063e79a198f14610554576101d8565b8063a1a11bf5116100d1578063a1a11bf514610407578063a78abc161461041c578063ab51bb9614610431578063ac43175114610446576101d8565b80637ae23088146103b357806395468d26146103c857806396713da9146103dd5780639dc09262146103f2576101d8565b806351e806721161017a57806370fd5bad1161014957806370fd5bad1461035f578063718a8aa81461037457806375d47a0a146103895780637942fd051461039e576101d8565b806351e80672146102c7578063541d5548146102dc5780636a87d780146103235780636e47b4821461034a576101d8565b80633dffc387116101b65780633dffc3871461024657806343756e5c14610271578063493279b1146102865780634bf6c882146102b2576101d8565b80630bee7a67146101dd5780630e2374a51461020b5780631aa3a0081461023c575b600080fd5b3480156101e957600080fd5b506101f26105bd565b6040805163ffffffff9092168252519081900360200190f35b34801561021757600080fd5b506102206105c2565b604080516001600160a01b039092168252519081900360200190f35b6102446105c8565b005b34801561025257600080fd5b5061025b610749565b6040805160ff9092168252519081900360200190f35b34801561027d57600080fd5b5061022061074e565b34801561029257600080fd5b5061029b610754565b6040805161ffff9092168252519081900360200190f35b3480156102be57600080fd5b5061025b610759565b3480156102d357600080fd5b5061022061075e565b3480156102e857600080fd5b5061030f600480360360208110156102ff57600080fd5b50356001600160a01b0316610764565b604080519115158252519081900360200190f35b34801561032f57600080fd5b50610338610782565b60408051918252519081900360200190f35b34801561035657600080fd5b50610220610788565b34801561036b57600080fd5b5061025b61078e565b34801561038057600080fd5b5061025b610793565b34801561039557600080fd5b50610220610798565b3480156103aa57600080fd5b5061025b61079e565b3480156103bf57600080fd5b506103386107a3565b3480156103d457600080fd5b506103386107b0565b3480156103e957600080fd5b5061025b6107bc565b3480156103fe57600080fd5b506102206107c1565b34801561041357600080fd5b506102206107c7565b34801561042857600080fd5b5061030f6107cd565b34801561043d57600080fd5b506101f26107d6565b34801561045257600080fd5b506102446004803603604081101561046957600080fd5b81019060208101813564010000000081111561048457600080fd5b82018360208201111561049657600080fd5b803590602001918460018302840111640100000000831117156104b857600080fd5b9193909290916020810190356401000000008111156104d657600080fd5b8201836020820111156104e857600080fd5b8035906020019184600183028401116401000000008311171561050a57600080fd5b5090925090506107db565b34801561052157600080fd5b50610220610bfd565b34801561053657600080fd5b50610220610c03565b34801561054b57600080fd5b50610244610c09565b34801561056057600080fd5b50610244610c8b565b34801561057557600080fd5b50610220610e44565b34801561058a57600080fd5b50610338610e4a565b34801561059f57600080fd5b5061025b610e50565b3480156105b457600080fd5b50610220610e55565b606481565b61200181565b3360009081526004602052604090205460ff1615610625576040805162461bcd60e51b81526020600482015260156024820152741c995b185e595c88185b1c9958591e48195e1a5cdd605a1b604482015290519081900360640190fd5b60005460ff16610678576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b61068133610e5b565b156106bd5760405162461bcd60e51b81526004018080602001828103825260278152602001806110486027913960400191505060405180910390fd5b333214610707576040805162461bcd60e51b81526020600482015260136024820152721b9bc81c1c9bde1e481a5cc8185b1b1bddd959606a1b604482015290519081900360640190fd5b6040805162461bcd60e51b81526020600482015260126024820152711c9959da5cdd195c881cdd5cdc195b99195960721b604482015290519081900360640190fd5b600181565b61100181565b606181565b600881565b61200081565b6001600160a01b031660009081526004602052604090205460ff1690565b60025481565b61100581565b600281565b601081565b61100881565b600b81565b68056bc75e2d6310000081565b67016345785d8a000081565b600981565b61100781565b61100681565b60005460ff1681565b600081565b60005460ff1661082e576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b336110071461086e5760405162461bcd60e51b815260040180806020018281038252602e81526020018061106f602e913960400191505060405180910390fd5b6108d484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e1c995c5d5a5c995911195c1bdcda5d608a1b60208201529150610e619050565b156109d757602081146109185760405162461bcd60e51b815260040180806020018281038252602281526020018061109d6022913960400191505060405180910390fd5b604080516020601f840181900481028201810190925282815260009161095691858580838501838280828437600092019190915250610f4892505050565b90506001811180156109715750683635c9adc5dea000008111155b801561097e575060025481115b6109cf576040805162461bcd60e51b815260206004820181905260248201527f7468652072657175697265644465706f736974206f7574206f662072616e6765604482015290519081900360640190fd5b600155610b6b565b610a3284848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260048152636475657360e01b60208201529150610e619050565b15610b2e5760208114610a8c576040805162461bcd60e51b815260206004820152601760248201527f6c656e677468206f662064756573206d69736d61746368000000000000000000604482015290519081900360640190fd5b604080516020601f8401819004810282018101909252828152600091610aca91858580838501838280828437600092019190915250610f4892505050565b9050600081118015610add575060015481105b610b26576040805162461bcd60e51b81526020600482015260156024820152747468652064756573206f7574206f662072616e676560581b604482015290519081900360640190fd5b600255610b6b565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b61100281565b61100381565b60005460ff1615610c61576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b68056bc75e2d63100000600190815567016345785d8a00006002556000805460ff19169091179055565b3360009081526004602052604090205460ff16610ce6576040805162461bcd60e51b81526020600482015260146024820152731c995b185e595c88191bc81b9bdd08195e1a5cdd60621b604482015290519081900360640190fd5b60005460ff16610d39576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b610d4161102d565b5033600081815260036020908152604091829020825180840190935280548084526001909101549183018290529192916108fc91610d85919063ffffffff610f4d16565b6040518115909202916000818181858888f19350505050158015610dad573d6000803e3d6000fd5b50602081015160405161100291829181156108fc0291906000818181858888f19350505050158015610de3573d6000803e3d6000fd5b50336000818152600460209081526040808320805460ff191690556003825280832083815560010192909255815192835290517fd17202129b83db7880d6b9f25df81c58ad46f7e0e2c92236b1aa10663a4876679281900390910190a15050565b61100081565b60015481565b600381565b61100481565b3b151590565b6000816040516020018082805190602001908083835b60208310610e965780518252601f199092019160209182019101610e77565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310610f045780518252601f199092019160209182019101610ee5565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b6000610f8f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f96565b9392505050565b600081848411156110255760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610fea578181015183820152602001610fd2565b50505050905090810190601f1680156110175780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60405180604001604052806000815260200160008152509056fe636f6e7472616374206973206e6f7420616c6c6f77656420746f20626520612072656c61796572746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662072657175697265644465706f736974206d69736d61746368a2646970667358221220bbf2444a200f2d4960875a9cb3258cef8b5f4e79c03999d34530f4a42b7aefd364736f6c63430006040033", - }, - { - ContractAddr: LightClientContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/c184a00160b6a2d884b4d6efebe1358a047e9e57", - Code: "608060405234801561001057600080fd5b50600436106102275760003560e01c8063a1a11bf511610130578063dc927faf116100b8578063e405bbc31161007c578063e405bbc3146106a7578063ea54b2aa146106af578063f9a2bbc7146106b7578063fc3e5908146106bf578063fd6a6879146106c757610227565b8063dc927faf14610627578063dda831481461062f578063df5fe70414610655578063e1c7392a1461067b578063e2761af01461068357610227565b8063adc879e9116100ff578063adc879e914610552578063c81b16621461055a578063cba510a914610562578063d816987914610588578063da8d08f01461060157610227565b8063a1a11bf514610462578063a78abc161461046a578063ab51bb9614610486578063ac4317511461048e57610227565b8063564b81ef116101b3578063718a8aa811610182578063718a8aa81461043a57806375d47a0a146104425780637942fd051461044a57806396713da9146104525780639dc092621461045a57610227565b8063564b81ef146102e85780635c5ae8db146103655780636e47b4821461042a57806370fd5bad1461043257610227565b80633dffc387116101fa5780633dffc3871461029357806343756e5c146102b1578063493279b1146102b95780634bf6c882146102d857806351e80672146102e057610227565b80630bee7a671461022c5780630e2374a51461024d5780632657e9b61461027157806333f7798d1461028b575b600080fd5b6102346106cf565b6040805163ffffffff9092168252519081900360200190f35b6102556106d4565b604080516001600160a01b039092168252519081900360200190f35b6102796106da565b60408051918252519081900360200190f35b6102796106e5565b61029b6106eb565b6040805160ff9092168252519081900360200190f35b6102556106f0565b6102c16106f6565b6040805161ffff9092168252519081900360200190f35b61029b6106fb565b610255610700565b6102f0610706565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561032a578181015183820152602001610312565b50505050905090810190601f1680156103575780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61038b6004803603602081101561037b57600080fd5b50356001600160401b0316610812565b60405180856001600160401b03166001600160401b0316815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156103ec5781810151838201526020016103d4565b50505050905090810190601f1680156104195780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b6102556108cd565b61029b6108d3565b61029b6108d8565b6102556108dd565b61029b6108e3565b61029b6108e8565b6102556108ed565b6102556108f3565b6104726108f9565b604080519115158252519081900360200190f35b610234610902565b610550600480360360408110156104a457600080fd5b8101906020810181356401000000008111156104bf57600080fd5b8201836020820111156104d157600080fd5b803590602001918460018302840111640100000000831117156104f357600080fd5b91939092909160208101903564010000000081111561051157600080fd5b82018360208201111561052357600080fd5b8035906020019184600183028401116401000000008311171561054557600080fd5b509092509050610907565b005b610279610bc0565b610255610bc6565b6102796004803603602081101561057857600080fd5b50356001600160401b0316610bcc565b6104726004803603604081101561059e57600080fd5b8101906020810181356401000000008111156105b957600080fd5b8201836020820111156105cb57600080fd5b803590602001918460018302840111640100000000831117156105ed57600080fd5b9193509150356001600160401b0316610beb565b6102556004803603602081101561061757600080fd5b50356001600160401b031661143c565b610255611457565b6102556004803603602081101561064557600080fd5b50356001600160401b031661145d565b6104726004803603602081101561066b57600080fd5b50356001600160401b0316611481565b6105506114c3565b61068b611668565b604080516001600160401b039092168252519081900360200190f35b61068b611677565b6102f061168d565b6102556116aa565b61029b6116b0565b6102556116b5565b606481565b61200181565b662386f26fc1000081565b60055481565b600181565b61100181565b606181565b600881565b61200081565b604080516020808252818301909252606091829190602082018180368337505060045460208301525090506000805b60208160ff16101561077c57828160ff168151811061075057fe5b01602001516001600160f81b0319161561076f57600190910190610774565b61077c565b600101610735565b5060608160ff166040519080825280601f01601f1916602001820160405280156107ad576020820181803683370190505b50905060005b8260ff168160ff16101561080957838160ff16815181106107d057fe5b602001015160f81c60f81b828260ff16815181106107ea57fe5b60200101906001600160f81b031916908160001a9053506001016107b3565b50925050505b90565b60016020818152600092835260409283902080548184015460028084015460038501805489516101009982161599909902600019011692909204601f81018790048702880187019098528787526001600160401b0390931696919592949091908301828280156108c35780601f10610898576101008083540402835291602001916108c3565b820191906000526020600020905b8154815290600101906020018083116108a657829003601f168201915b5050505050905084565b61100581565b600281565b601081565b61100881565b600b81565b600981565b61100781565b61100681565b60005460ff1681565b600081565b60005460ff1661095e576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604482015290519081900360640190fd5b336110071461099e5760405162461bcd60e51b815260040180806020018281038252602e815260200180611b67602e913960400191505060405180910390fd5b610a1284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601b81527f726577617264466f7256616c696461746f725365744368616e67650000000000602082015291506116bb9050565b15610af15760208114610a565760405162461bcd60e51b815260040180806020018281038252602e815260200180611b06602e913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610a94918585808385018382808284376000920191909152506117a292505050565b9050600081118015610aae5750670de0b6b3a76400008111155b610ae95760405162461bcd60e51b815260040180806020018281038252602f815260200180611b95602f913960400191505060405180910390fd5b600555610b2e565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b60045481565b61100281565b6001600160401b03166000908152600160208190526040909120015490565b60408051630a83aaa960e31b815233600482015290516000916110069163541d554891602480820192602092909190829003018186803b158015610c2e57600080fd5b505afa158015610c42573d6000803e3d6000fd5b505050506040513d6020811015610c5857600080fd5b5051610cab576040805162461bcd60e51b815260206004820152601f60248201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604482015290519081900360640190fd5b739fb29aac15b9a4b7f17c3385939b007540f4d791331480610ce057507337b8516a0f88e65d677229b402ec6c1e0e33300433145b610d1b5760405162461bcd60e51b815260040180806020018281038252602a815260200180611bc4602a913960400191505060405180910390fd5b6001600160401b0382166000908152600260205260409020546001600160a01b031615610d8f576040805162461bcd60e51b815260206004820152601c60248201527f63616e27742073796e63206475706c6963617465642068656164657200000000604482015290519081900360640190fd5b6003546001600160401b0390811690831611610ddc5760405162461bcd60e51b8152600401808060200182810382526026815260200180611bee6026913960400191505060405180910390fd5b600354600160401b90046001600160401b0316610df7611904565b6001600160401b0382811660009081526001602081815260409283902083516080810185528154909516855280830154858301526002808201548686015260038201805486516101009682161596909602600019011691909104601f81018490048402850184019095528484529093606086019392830182828015610ebd5780601f10610e9257610100808354040283529160200191610ebd565b820191906000526020600020905b815481529060010190602001808311610ea057829003601f168201915b50505050508152505090505b836001600160401b0316826001600160401b031610158015610efa57506003546001600160401b0390811690831610155b15610fdb5780516001600160401b0380821660009081526001602081815260409283902083516080810185528154909516855280830154858301526002808201548686015260038201805486516101009682161596909602600019011691909104601f8101849004840285018401909552848452959750939460608601939091830182828015610fcb5780601f10610fa057610100808354040283529160200191610fcb565b820191906000526020600020905b815481529060010190602001808311610fae57829003601f168201915b5050505050815250509050610ec9565b6060810151516110d25780516001600160401b03811660009081526001602081815260409283902060030180548451600294821615610100026000190190911693909304601f81018390048302840183019094528383529395509092919083018282801561108a5780601f1061105f5761010080835404028352916020019161108a565b820191906000526020600020905b81548152906001019060200180831161106d57829003601f168201915b505050506060830182905250516110d25760405162461bcd60e51b8152600401808060200182810382526021815260200180611ae56021913960400191505060405180910390fd5b6000816060015151608801905060608787905082016040519080825280601f01601f191660200182016040528015611111576020820181803683370190505b509050600061111f826117a7565b905061112d848683866117ad565b6111685760405162461bcd60e51b81526004018080602001828103825260238152602001806119e26023913960400191505060405180910390fd5b600083820191506111ae8a8a8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061181992505050565b945090506111bd818386611823565b825160200193506111cc61192a565b6110008186866064600019fa6111e157600080fd5b805194506000600160f81b8616156112705750600554604080516309a99b4f60e41b815233600482015260248101929092525160019161100291639a99b4f0916044808201926020929091908290030181600087803b15801561124357600080fd5b505af1158015611257573d6000803e3d6000fd5b505050506040513d602081101561126d57600080fd5b50505b856001600160401b03169550602082019350600061129085888415611864565b90985090506001600160401b03808216908c16146112df5760405162461bcd60e51b8152600401808060200182810382526033815260200180611b346033913960400191505060405180910390fd5b6001600160401b03808c16600081815260026020818152604080842080546001600160a01b031916331790558e86168e529383526001808252928490208d518154961667ffffffffffffffff199096169590951785558c81015192850192909255918b01519183019190915560608a015180518b9392611366926003850192910190611949565b50506003546001600160401b03600160401b9091048116908d16111590506113ae576003805467ffffffffffffffff60401b1916600160401b6001600160401b038e16021790555b7f4042c1020a8f410fb1c8859d276ab436aeb2c3074960e48467299cf1c966d3b48b8a8a602001518560405180856001600160401b03166001600160401b03168152602001846001600160401b03166001600160401b031681526020018381526020018215151515815260200194505050505060405180910390a15060019c9b505050505050505050505050565b6002602052600090815260409020546001600160a01b031681565b61100381565b6001600160401b03166000908152600260205260409020546001600160a01b031690565b6001600160401b0381166000908152600260205260408120546001600160a01b03161515806114bd57506003546001600160401b038381169116145b92915050565b60005460ff161561151b576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b60008061154060405180610100016040528060e08152602001611a0560e09139611819565b81516004559092509050611552611904565b600061156084846000611864565b60008083526001600160401b038281168252600160208181526040938490208651815467ffffffffffffffff19169416939093178355808601519183019190915591840151600282015560608401518051949650929450859390926115cc926003850192910190611949565b50506003805467ffffffffffffffff19166001600160401b0384811691821767ffffffffffffffff60401b1916600160401b9290920291909117918290556000805460ff19166001179055662386f26fc10000600555602085810151604080519490931684529083015280517f5ac9b37d571677b80957ca05693f371526c602fd08042b416a29fdab7efefa499350918290030190a150505050565b6003546001600160401b031681565b600354600160401b90046001600160401b031681565b60405180610100016040528060e08152602001611a0560e0913981565b61100081565b600381565b61100481565b6000816040516020018082805190602001908083835b602083106116f05780518252601f1990920191602091820191016116d1565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b6020831061175e5780518252601f19909201916020918201910161173f565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b60200190565b60008460600151518284010392506000806117cb8760600151611819565b90925090506117db828683611823565b5050506040840151601f1983810191909152602090940151603f19830152605f19820192909252600454606719820152910160871990910152600190565b8051602090910191565b5b60208110611843578251825260209283019290910190601f1901611824565b915181516020939093036101000a6000190180199091169216919091179052565b61186c611904565b600884015160288501516048909501805190956000929161188b611904565b6020810183905260408101829052866118f65760008060688a036040519080825280601f01601f1916602001820160405280156118cf576020820181803683370190505b50606084018190526118e090611819565b90925090506118f360208c018383611823565b50505b989297509195505050505050565b604080516080810182526000808252602082018190529181019190915260608082015290565b6040518061100001604052806080906020820280368337509192915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061198a57805160ff19168380011785556119b7565b828001600101855582156119b7579182015b828111156119b757825182559160200191906001019061199c565b506119c39291506119c7565b5090565b61080f91905b808211156119c357600081556001016119cd56fe6661696c656420746f2073657269616c697a6520636f6e73656e73757320737461746542696e616e63652d436861696e2d47616e67657300000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000aea1ac326886b992a991d21a6eb155f41b77867cbf659e78f31d89d8205122a84d1be64f0e9a466c2e66a53433928192783e29f8fa21beb2133499b5ef770f60000000e8d4a5100099308aa365c40554bc89982af505d85da95251445d5dd4a9bb37dd2584fd92d3000000e8d4a5100001776920ff0b0f38d78cf95c033c21adf7045785114e392a7544179652e0a612000000e8d4a510006661696c656420746f206c6f61642076616c696461746f722073657420646174616c656e677468206f6620726577617264466f7256616c696461746f725365744368616e6765206d69736d617463686865616465722068656967687420646f65736e277420657175616c20746f207468652073706563696669656420686569676874746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374746865206e6577526577617264466f7256616c696461746f725365744368616e6765206f7574206f662072616e6765746865206d73672073656e646572206973206e6f7420612077686974656c6162656c2072656c6179657263616e27742073796e6320686561646572206265666f726520696e697469616c486569676874a2646970667358221220f10bd4cea020bbc51bd92dc8d0216f48c220336c9ca0178fb7726dc899c15ee164736f6c63430006040033", - }, - { - ContractAddr: CrossChainContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/c184a00160b6a2d884b4d6efebe1358a047e9e57", - Code: "608060405234801561001057600080fd5b50600436106102695760003560e01c80637942fd0511610151578063c27cdcfb116100c3578063e1c7392a11610087578063e1c7392a14610775578063e3b048051461077d578063f7a251d71461079d578063f9a2bbc714610815578063fc3e59081461081d578063fd6a68791461082557610269565b8063c27cdcfb1461070e578063c81b16621461072e578063d31f968d14610736578063d76a867514610765578063dc927faf1461076d57610269565b80639dc09262116101155780639dc0926214610630578063a1a11bf514610638578063a78abc1614610640578063ab51bb9614610648578063ac43175114610650578063b0355f5b1461048057610269565b80637942fd051461053b57806384013b6a14610543578063863fe4ab146106205780638cc8f5611461051b57806396713da91461062857610269565b8063422f9050116101ea5780636e47a51a116101ae5780636e47a51a146104f35780636e47b4821461051357806370fd5bad1461051b578063718a8aa81461052357806374f079b81461052b57806375d47a0a1461053357610269565b8063422f90501461048857806343756e5c146104bc578063493279b1146104c45780634bf6c882146104e357806351e80672146104eb57610269565b80632ff32aea116102315780632ff32aea146102f3578063308325f4146103145780633a648b151461031c5780633bdc47a6146103585780633dffc3871461048057610269565b806305e682581461026e5780630bee7a671461028c5780630e2374a5146102ad57806314b3023b146102d157806322556cdc146102eb575b600080fd5b61027661082d565b6040805160ff9092168252519081900360200190f35b610294610832565b6040805163ffffffff9092168252519081900360200190f35b6102b5610837565b604080516001600160a01b039092168252519081900360200190f35b6102d961083d565b60408051918252519081900360200190f35b6102d9610843565b6102fb610848565b60408051600792830b90920b8252519081900360200190f35b6102d9610851565b61033c6004803603602081101561033257600080fd5b503560ff16610857565b604080516001600160401b039092168252519081900360200190f35b61040b6004803603606081101561036e57600080fd5b60ff82351691602081013591810190606081016040820135600160201b81111561039757600080fd5b8201836020820111156103a957600080fd5b803590602001918460018302840111600160201b831117156103ca57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610872945050505050565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561044557818101518382015260200161042d565b50505050905090810190601f1680156104725780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102766108e8565b6104a86004803603602081101561049e57600080fd5b503560ff166108ed565b604080519115158252519081900360200190f35b6102b5610902565b6104cc610908565b6040805161ffff9092168252519081900360200190f35b61027661090d565b6102b5610912565b6102b56004803603602081101561050957600080fd5b503560ff16610918565b6102b5610933565b610276610939565b61027661093e565b6102d9610943565b6102b5610949565b61027661094f565b61061e600480360360a081101561055957600080fd5b810190602081018135600160201b81111561057357600080fd5b82018360208201111561058557600080fd5b803590602001918460018302840111600160201b831117156105a657600080fd5b919390929091602081019035600160201b8111156105c357600080fd5b8201836020820111156105d557600080fd5b803590602001918460018302840111600160201b831117156105f657600080fd5b919350915080356001600160401b03908116916020810135909116906040013560ff16610954565b005b6102d9611c4d565b610276611c55565b6102b5611c5a565b6102b5611c60565b6104a8611c66565b61029461082d565b61061e6004803603604081101561066657600080fd5b810190602081018135600160201b81111561068057600080fd5b82018360208201111561069257600080fd5b803590602001918460018302840111600160201b831117156106b357600080fd5b919390929091602081019035600160201b8111156106d057600080fd5b8201836020820111156106e257600080fd5b803590602001918460018302840111600160201b8311171561070357600080fd5b509092509050611c6f565b61033c6004803603602081101561072457600080fd5b503560ff16612211565b6102b561222c565b6104a86004803603604081101561074c57600080fd5b5080356001600160a01b0316906020013560ff16612232565b61040b612252565b6102b5612271565b61061e612277565b61033c6004803603602081101561079357600080fd5b503560ff1661262e565b61061e600480360360608110156107b357600080fd5b60ff8235169190810190604081016020820135600160201b8111156107d757600080fd5b8201836020820111156107e957600080fd5b803590602001918460018302840111600160201b8311171561080a57600080fd5b919350915035612649565b6102b561279a565b6102766127a0565b6102b56127a5565b600081565b606481565b61200181565b60015481565b603281565b60045460070b81565b60025481565b600a602052600090815260409020546001600160401b031681565b60606000825160210190506060816040519080825280601f01601f1916602001820160405280156108aa576020820181803683370190505b50602181018690526001810187905282815290506041810160006108cd866127ab565b5090506108dc818388516127b5565b50909695505050505050565b600181565b60096020526000908152604090205460ff1681565b61100181565b606181565b600881565b61200081565b6005602052600090815260409020546001600160a01b031681565b61100581565b600281565b601081565b60035481565b61100881565b600b81565b60005460ff166109a7576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b60408051630a83aaa960e31b815233600482015290516110069163541d5548916024808301926020929190829003018186803b1580156109e657600080fd5b505afa1580156109fa573d6000803e3d6000fd5b505050506040513d6020811015610a1057600080fd5b5051610a63576040805162461bcd60e51b815260206004820152601f60248201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604482015290519081900360640190fd5b739fb29aac15b9a4b7f17c3385939b007540f4d791331480610a9857507337b8516a0f88e65d677229b402ec6c1e0e33300433145b610ad35760405162461bcd60e51b815260040180806020018281038252602a815260200180612d5a602a913960400191505060405180910390fd5b60ff8116600090815260086020526040902054829082906001600160401b039081169083168114610b43576040805162461bcd60e51b815260206004820152601560248201527439b2b8bab2b731b2903737ba1034b71037b93232b960591b604482015290519081900360640190fd5b60ff8216600090815260086020908152604091829020805467ffffffffffffffff1916600185016001600160401b039081169190911790915582516337d7f9c160e21b81529089166004820152915188926110039263df5fe70492602480840193829003018186803b158015610bb857600080fd5b505afa158015610bcc573d6000803e3d6000fd5b505050506040513d6020811015610be257600080fd5b5051610c1f5760405162461bcd60e51b8152600401808060200182810382526023815260200180612db66023913960400191505060405180910390fd5b60ff851660009081526005602052604090205485906001600160a01b0316610c8e576040805162461bcd60e51b815260206004820152601860248201527f6368616e6e656c206973206e6f7420737570706f727465640000000000000000604482015290519081900360640190fd5b60ff86166000908152600a6020526040902054889087906001600160401b039081169083161015610cf7576040805162461bcd60e51b815260206004820152600e60248201526d3a37b79037b632103432b0b232b960911b604482015290519081900360640190fd5b60ff81166000908152600a60205260409020546001600160401b03838116911614610d495760ff81166000908152600a60205260409020805467ffffffffffffffff19166001600160401b0384161790555b60608e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060608d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509050610e8d6110036001600160a01b031663cba510a98e6040518263ffffffff1660e01b815260040180826001600160401b03166001600160401b0316815260200191505060206040518083038186803b158015610e3657600080fd5b505afa158015610e4a573d6000803e3d6000fd5b505050506040513d6020811015610e6057600080fd5b505160408051808201909152600381526269626360e81b6020820152610e868e8e6127f6565b858561283d565b610ed5576040805162461bcd60e51b815260206004820152601460248201527334b73b30b634b21036b2b935b63290383937b7b360611b604482015290519081900360640190fd5b60408051631bb5062960e31b81526001600160401b038e16600482015290516000916110039163dda8314891602480820192602092909190829003018186803b158015610f2157600080fd5b505afa158015610f35573d6000803e3d6000fd5b505050506040513d6020811015610f4b57600080fd5b505190508b8b600080806060610f608961293a565b935093509350935083611022578460ff16866001600160401b03167ff7b2e42d694eb1100184aae86d4245d9e46966100b1dc7e723275b98326854ac8b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610fda578181015183820152602001610fc2565b50505050905090810190601f1680156110075780820380516001836020036101000a031916815260200191505b509250505060405180910390a3505050505050505050611c3d565b6040805160ff85811682529151918716916001600160401b038916917f36afdaf439a8f43fe72135135d804ae620b37a474f0943b5b85f6788312cad40919081900360200190a360ff83166115a75760ff85166000818152600560209081526040808320548151631182b87560e01b815260048101958652602481019283528651604482015286516001600160a01b03909216958695631182b875958d958a9593949093606490910192918601918190849084905b838110156110ef5781810151838201526020016110d7565b50505050905090810190601f16801561111c5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561113c57600080fd5b505af192505050801561122057506040513d6000823e601f3d908101601f19168201604052602081101561116f57600080fd5b8101908080516040519392919084600160201b82111561118e57600080fd5b9083019060208201858111156111a357600080fd5b8251600160201b8111828201881017156111bc57600080fd5b82525081516020918201929091019080838360005b838110156111e95781810151838201526020016111d1565b50505050905090810190601f1680156112165780820380516001836020036101000a031916815260200191505b5060405250505060015b611532576040516000815260443d101561123c575060006112d7565b60046000803e60005160e01c6308c379a0811461125d5760009150506112d7565b60043d036004833e81513d60248201116001600160401b0382111715611288576000925050506112d7565b80830180516001600160401b038111156112a95760009450505050506112d7565b8060208301013d86018111156112c7576000955050505050506112d7565b601f01601f191660405250925050505b806112e257506113f4565b60ff8716600090815260076020526040812054611319916001600160401b039091169089906113149060029088610872565b6129ea565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf948794849390840192918601918190849084905b838110156113b457818101518382015260200161139c565b50505050905090810190601f1680156113e15780820380516001836020036101000a031916815260200191505b509250505060405180910390a25061152d565b3d80801561141e576040519150601f19603f3d011682016040523d82523d6000602084013e611423565b606091505b5060ff8716600090815260076020526040812054611456916001600160401b039091169089906113149060029088610872565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351948794849390840192918601918190849084905b838110156114f15781810151838201526020016114d9565b50505050905090810190601f16801561151e5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b6115a1565b80511561159f5760ff871660009081526007602052604081205461156b916001600160401b039091169089906113149060019086610872565b60ff8716600090815260076020526040902080546001600160401b038082166001011667ffffffffffffffff199091161790555b505b50611b75565b60ff83166001141561184b5760ff8516600081815260056020908152604080832054815163831d65d160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563831d65d1958d958a9593949093606490910192918601918190849084905b83811015611631578181015183820152602001611619565b50505050905090810190601f16801561165e5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561167e57600080fd5b505af192505050801561168f575060015b6115a1576040516000815260443d10156116ab57506000611746565b60046000803e60005160e01c6308c379a081146116cc576000915050611746565b60043d036004833e81513d60248201116001600160401b03821117156116f757600092505050611746565b80830180516001600160401b03811115611718576000945050505050611746565b8060208301013d860181111561173657600095505050505050611746565b601f01601f191660405250925050505b8061175157506117b6565b60408051602080825283518183015283516001600160a01b038616937ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf93869390928392830191850190808383600083156113b457818101518382015260200161139c565b3d8080156117e0576040519150601f19603f3d011682016040523d82523d6000602084013e6117e5565b606091505b5060408051602080825283518183015283516001600160a01b038616937f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd297735193869390928392830191850190808383600083156114f15781810151838201526020016114d9565b60ff831660021415611b755760ff8516600081815260056020908152604080832054815163c8509d8160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563c8509d81958d958a9593949093606490910192918601918190849084905b838110156118d55781810151838201526020016118bd565b50505050905090810190601f1680156119025780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561192257600080fd5b505af1925050508015611933575060015b611b73576040516000815260443d101561194f575060006119ea565b60046000803e60005160e01c6308c379a081146119705760009150506119ea565b60043d036004833e81513d60248201116001600160401b038211171561199b576000925050506119ea565b80830180516001600160401b038111156119bc5760009450505050506119ea565b8060208301013d86018111156119da576000955050505050506119ea565b601f01601f191660405250925050505b806119f55750611a9e565b816001600160a01b03167ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf826040518080602001828103825283818151815260200191508051906020019080838360005b83811015611a5e578181015183820152602001611a46565b50505050905090810190601f168015611a8b5780820380516001836020036101000a031916815260200191505b509250505060405180910390a250611b73565b3d808015611ac8576040519150601f19603f3d011682016040523d82523d6000602084013e611acd565b606091505b50816001600160a01b03167f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351826040518080602001828103825283818151815260200191508051906020019080838360005b83811015611b37578181015183820152602001611b1f565b50505050905090810190601f168015611b645780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b505b60ff80861660009081526009602052604090205461100591636f93d2e6918a91339187911680611ba7575060ff881615155b604080516001600160e01b031960e088901b1681526001600160a01b039586166004820152939094166024840152604483019190915215156064820152905160848083019260209291908290030181600087803b158015611c0757600080fd5b505af1158015611c1b573d6000803e3d6000fd5b505050506040513d6020811015611c3157600080fd5b50505050505050505050505b5050505050505050505050505050565b630100610081565b600981565b61100781565b61100681565b60005460ff1681565b3361100714611caf5760405162461bcd60e51b815260040180806020018281038252602e815260200180612ce2602e913960400191505060405180910390fd5b611d1884848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526012815271626174636853697a65466f724f7261636c6560701b60208201529150612b409050565b15611db357604080516020601f8401819004810282018101909252828152600091611d5b91858580838501838280828437600092019190915250612c2792505050565b90506127108111158015611d705750600a8110155b611dab5760405162461bcd60e51b8152600401808060200182810382526032815260200180612d846032913960400191505060405180910390fd5b60015561217f565b611e1c84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601281527118591913dc955c19185d1950da185b9b995b60721b60208201529150612b409050565b15611fa457606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060169091149050611e9f5760405162461bcd60e51b815260040180806020018281038252605a815260200180612c88605a913960600191505060405180910390fd5b60018101516002820151601683015160ff82161590611ebd81612c2c565b611f0e576040805162461bcd60e51b815260206004820152601960248201527f61646472657373206973206e6f74206120636f6e747261637400000000000000604482015290519081900360640190fd5b60ff8416600081815260056020908152604080832080546001600160a01b0319166001600160a01b038716908117909155808452600683528184208585528352818420805460ff199081166001179091556009909352818420805490931687151517909255519092917f7e3b6af43092577ee20e60eaa1d9b114a7031305c895ee7dd3ffe17196d2e1e091a3505050505061217f565b61201184848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526016815275195b98589b1953dc911a5cd8589b1950da185b9b995b60521b60208201529150612b409050565b1561214257606082828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050825192935050600290911490506120945760405162461bcd60e51b815260040180806020018281038252604a815260200180612d10604a913960600191505060405180910390fd5b600181810151600283015160ff80831660009081526005602052604090205492939192908316909114906001600160a01b03168015612138576001600160a01b038116600090815260066020908152604080832060ff881680855290835292819020805460ff1916861515908117909155815190815290517fa3132e3f9819fbddc7f0ed6d38d7feef59aa95112090b7c592f5cb5bc4aa4adc929181900390910190a25b505050505061217f565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b6008602052600090815260409020546001600160401b031681565b61100281565b600660209081526000928352604080842090915290825290205460ff1681565b6040518060400160405280600381526020016269626360e81b81525081565b61100381565b60005460ff16156122cf576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b7f1471eb6eb2c5e789fc3de43f8ce62938c7d1836ec861730447e2ada8fd81017b80546001600160a01b0319908116611008179091557f92e85d02570a8092d09a6e3a57665bc3815a2699a4074001bf1ccabf660f5a36805460ff199081169091557fd8af288fc1c8680b4f4706064cf021e264efb6828fcaf7eb5ca36818eb365bcc8054821660019081179091557f89832631fb3c3307a103ba2c84ab569c64d6182a18893dcd163f0f1c2090733a805484166110049081179091557f6cde3cea4b3a3fb2488b2808bae7556f4a405e50f65e1794383bc026131b13c38054841690557f72e4efa1513b071517c6c74dba31b5934a81aa83cddd400e7081df5529c9943680548416831790557fa9bc9a3a348c357ba16b37005d7e6b3236198c0e939f4af8c5f19b8deeb8ebc08054851690911790557fc575c31fea594a6eb97c8e9d3f9caee4c16218c6ef37e923234c0fe9014a61e78054831690557f4e523af77f034e9810f1c94057f5e931fb3d16a51511a4c3add793617d18610580548316821790557ffb33122aa9f93cc639ebe80a7bc4784c11e6053dde89c6f4f7e268c6a623da1e805484166110001790557fc7694af312c4f286114180fd0ba6a52461fcee8a381636770b19a343af92538a80548316821790557f01112dd68e482ba8d68a7e828cff8b3abcea08eab88941953c180a7e650e9cd480548316821790557fc0a4a8be475dfebc377ebef2d7c4ff47656f572a08dd92b81017efcdba0febe1805484166110071790557f87e8a52529e8ece4ef759037313542a6429ff494a9fab9027fb79db90124eba680548316821790557f4c7666bbcb22d46469f7cc282f70764a7012dca2cce630ff8d83db9a9cdd48f080548316821790557f40f28f99a40bc9f6beea1013afdbc3cdcc689eb76b82c4de06c0acf1e1932ed58054909316611001179092557f0d9cf2cd531699eed8dd34e40ff2884a14a698c4898184fba85194e6f6772d248054821683179055600b60009081527f23f68c9bd22b8a93d06adabe17481c87c016bcbd20adc8bfd707a4d813a572176020527fdf0d5d05428057f5455c2dc8e810dd86d1e9350faa72f16bda8a45443c5b39328054831684179055603283556004805467ffffffffffffffff19166001600160401b031790556002819055600381905580549091169091179055565b6007602052600090815260409020546001600160401b031681565b60005460ff1661269c576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b33600090815260066020908152604080832060ff80891685529252909120548591166126f95760405162461bcd60e51b8152600401808060200182810382526031815260200180612c576031913960400191505060405180910390fd5b60ff85166000908152600760209081526040808320548151601f88018490048402810184019092528682526001600160401b03169261275e9284928a9261131492909189918c908c908190840183828082843760009201919091525061087292505050565b60ff959095166000908152600760205260409020805467ffffffffffffffff191660019096016001600160401b03169590951790945550505050565b61100081565b600381565b61100481565b8051602090910191565b5b602081106127d5578251825260209283019290910190601f19016127b6565b915181516020939093036101000a6000190180199091169216919091179052565b60408051600e808252818301909252606091630100610060ff851617918391602082018180368337505050600e818101969096526006810192909252509283525090919050565b60008561284c57506000612931565b606082518451865160800101016040519080825280601f01601f191660200182016040528015612883576020820181803683370190505b509050600061289182612c32565b6020808901518252019050866000806128a9896127ab565b80865260209095019490925090506128c28285836127b5565b928301926128cf886127ab565b80865260209095019490925090506128e88285836127b5565b9283018a8152602001926128fb876127ab565b909250905061290b8285836127b5565b508351602001612919612c38565b60208183886065600019fa5051600114955050505050505b95945050505050565b6000806000606060218551101561296a5750506040805160008082526020820190925290925082915081906129e3565b600185015160218601518651604080516020198301808252601f19600119909401939093168101602001909152604189019392916060919080156129b5576020820181803683370190505b50905060006129c3826127ab565b5090506129d5858260218d51036127b5565b506001975091955093509150505b9193509193565b600254431115612a29576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b161790915560035543600255612a6a565b60038054600190810191829055541015612a6a576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b16179091556003555b8160ff16836001600160401b0316600460009054906101000a900460070b6001600160401b03167f3a6e0fc61675aa2a100bcba0568368bb92bcec91c97673391074f11138f0cffe606185604051808361ffff1661ffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015612b00578181015183820152602001612ae8565b50505050905090810190601f168015612b2d5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a4505050565b6000816040516020018082805190602001908083835b60208310612b755780518252601f199092019160209182019101612b56565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310612be35780518252601f199092019160209182019101612bc4565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b3b151590565b60200190565b6040518060200160405280600190602082028036833750919291505056fe74686520636f6e747261637420616e64206368616e6e656c2068617665206e6f74206265656e20726567697374657265646c656e677468206f662076616c756520666f72206164644f725570646174654368616e6e656c2073686f756c642062652032322c206368616e6e656c49643a697346726f6d53797374656d3a68616e646c657241646472657373746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662076616c756520666f7220656e61626c654f7244697361626c654368616e6e656c2073686f756c6420626520322c206368616e6e656c49643a6973456e61626c65746865206d73672073656e646572206973206e6f7420612077686974656c6162656c2072656c61796572746865206e6577426174636853697a65466f724f7261636c652073686f756c6420626520696e205b31302c2031303030305d6c6967687420636c69656e74206e6f742073796e632074686520626c6f636b20796574a2646970667358221220035a34f6ccce4a5331a704da5375e26753e5146b5f166b6efe218f523c6a401064736f6c63430006040033", - }, - }, - } - - MoranUpgrade[networkname.RialtoChainName] = &Upgrade{ - UpgradeName: "moran", - Configs: []*UpgradeConfig{ - { - ContractAddr: RelayerHubContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/c184a00160b6a2d884b4d6efebe1358a047e9e57", - Code: "6080604052600436106101d85760003560e01c80637ae2308811610102578063c81b166211610095578063f9a2bbc711610064578063f9a2bbc714610569578063fb7cfdd71461057e578063fc3e590814610593578063fd6a6879146105a8576101d8565b8063c81b166214610515578063dc927faf1461052a578063e1c7392a1461053f578063e79a198f14610554576101d8565b8063a1a11bf5116100d1578063a1a11bf514610407578063a78abc161461041c578063ab51bb9614610431578063ac43175114610446576101d8565b80637ae23088146103b357806395468d26146103c857806396713da9146103dd5780639dc09262146103f2576101d8565b806351e806721161017a57806370fd5bad1161014957806370fd5bad1461035f578063718a8aa81461037457806375d47a0a146103895780637942fd051461039e576101d8565b806351e80672146102c7578063541d5548146102dc5780636a87d780146103235780636e47b4821461034a576101d8565b80633dffc387116101b65780633dffc3871461024657806343756e5c14610271578063493279b1146102865780634bf6c882146102b2576101d8565b80630bee7a67146101dd5780630e2374a51461020b5780631aa3a0081461023c575b600080fd5b3480156101e957600080fd5b506101f26105bd565b6040805163ffffffff9092168252519081900360200190f35b34801561021757600080fd5b506102206105c2565b604080516001600160a01b039092168252519081900360200190f35b6102446105c8565b005b34801561025257600080fd5b5061025b610749565b6040805160ff9092168252519081900360200190f35b34801561027d57600080fd5b5061022061074e565b34801561029257600080fd5b5061029b610754565b6040805161ffff9092168252519081900360200190f35b3480156102be57600080fd5b5061025b61075a565b3480156102d357600080fd5b5061022061075f565b3480156102e857600080fd5b5061030f600480360360208110156102ff57600080fd5b50356001600160a01b0316610765565b604080519115158252519081900360200190f35b34801561032f57600080fd5b50610338610783565b60408051918252519081900360200190f35b34801561035657600080fd5b50610220610789565b34801561036b57600080fd5b5061025b61078f565b34801561038057600080fd5b5061025b610794565b34801561039557600080fd5b50610220610799565b3480156103aa57600080fd5b5061025b61079f565b3480156103bf57600080fd5b506103386107a4565b3480156103d457600080fd5b506103386107b1565b3480156103e957600080fd5b5061025b6107bd565b3480156103fe57600080fd5b506102206107c2565b34801561041357600080fd5b506102206107c8565b34801561042857600080fd5b5061030f6107ce565b34801561043d57600080fd5b506101f26107d7565b34801561045257600080fd5b506102446004803603604081101561046957600080fd5b81019060208101813564010000000081111561048457600080fd5b82018360208201111561049657600080fd5b803590602001918460018302840111640100000000831117156104b857600080fd5b9193909290916020810190356401000000008111156104d657600080fd5b8201836020820111156104e857600080fd5b8035906020019184600183028401116401000000008311171561050a57600080fd5b5090925090506107dc565b34801561052157600080fd5b50610220610bfe565b34801561053657600080fd5b50610220610c04565b34801561054b57600080fd5b50610244610c0a565b34801561056057600080fd5b50610244610c8c565b34801561057557600080fd5b50610220610e45565b34801561058a57600080fd5b50610338610e4b565b34801561059f57600080fd5b5061025b610e51565b3480156105b457600080fd5b50610220610e56565b606481565b61200181565b3360009081526004602052604090205460ff1615610625576040805162461bcd60e51b81526020600482015260156024820152741c995b185e595c88185b1c9958591e48195e1a5cdd605a1b604482015290519081900360640190fd5b60005460ff16610678576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b61068133610e5c565b156106bd5760405162461bcd60e51b81526004018080602001828103825260278152602001806110496027913960400191505060405180910390fd5b333214610707576040805162461bcd60e51b81526020600482015260136024820152721b9bc81c1c9bde1e481a5cc8185b1b1bddd959606a1b604482015290519081900360640190fd5b6040805162461bcd60e51b81526020600482015260126024820152711c9959da5cdd195c881cdd5cdc195b99195960721b604482015290519081900360640190fd5b600181565b61100181565b6102ca81565b600881565b61200081565b6001600160a01b031660009081526004602052604090205460ff1690565b60025481565b61100581565b600281565b601081565b61100881565b600b81565b68056bc75e2d6310000081565b67016345785d8a000081565b600981565b61100781565b61100681565b60005460ff1681565b600081565b60005460ff1661082f576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b336110071461086f5760405162461bcd60e51b815260040180806020018281038252602e815260200180611070602e913960400191505060405180910390fd5b6108d584848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e1c995c5d5a5c995911195c1bdcda5d608a1b60208201529150610e629050565b156109d857602081146109195760405162461bcd60e51b815260040180806020018281038252602281526020018061109e6022913960400191505060405180910390fd5b604080516020601f840181900481028201810190925282815260009161095791858580838501838280828437600092019190915250610f4992505050565b90506001811180156109725750683635c9adc5dea000008111155b801561097f575060025481115b6109d0576040805162461bcd60e51b815260206004820181905260248201527f7468652072657175697265644465706f736974206f7574206f662072616e6765604482015290519081900360640190fd5b600155610b6c565b610a3384848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260048152636475657360e01b60208201529150610e629050565b15610b2f5760208114610a8d576040805162461bcd60e51b815260206004820152601760248201527f6c656e677468206f662064756573206d69736d61746368000000000000000000604482015290519081900360640190fd5b604080516020601f8401819004810282018101909252828152600091610acb91858580838501838280828437600092019190915250610f4992505050565b9050600081118015610ade575060015481105b610b27576040805162461bcd60e51b81526020600482015260156024820152747468652064756573206f7574206f662072616e676560581b604482015290519081900360640190fd5b600255610b6c565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b61100281565b61100381565b60005460ff1615610c62576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b68056bc75e2d63100000600190815567016345785d8a00006002556000805460ff19169091179055565b3360009081526004602052604090205460ff16610ce7576040805162461bcd60e51b81526020600482015260146024820152731c995b185e595c88191bc81b9bdd08195e1a5cdd60621b604482015290519081900360640190fd5b60005460ff16610d3a576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b610d4261102e565b5033600081815260036020908152604091829020825180840190935280548084526001909101549183018290529192916108fc91610d86919063ffffffff610f4e16565b6040518115909202916000818181858888f19350505050158015610dae573d6000803e3d6000fd5b50602081015160405161100291829181156108fc0291906000818181858888f19350505050158015610de4573d6000803e3d6000fd5b50336000818152600460209081526040808320805460ff191690556003825280832083815560010192909255815192835290517fd17202129b83db7880d6b9f25df81c58ad46f7e0e2c92236b1aa10663a4876679281900390910190a15050565b61100081565b60015481565b600381565b61100481565b3b151590565b6000816040516020018082805190602001908083835b60208310610e975780518252601f199092019160209182019101610e78565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310610f055780518252601f199092019160209182019101610ee6565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b6000610f9083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f97565b9392505050565b600081848411156110265760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610feb578181015183820152602001610fd3565b50505050905090810190601f1680156110185780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60405180604001604052806000815260200160008152509056fe636f6e7472616374206973206e6f7420616c6c6f77656420746f20626520612072656c61796572746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662072657175697265644465706f736974206d69736d61746368a2646970667358221220e7298bdd332800983f84daa6af4f7dfac92b01db35dc27e899b3d13982f2ccbd64736f6c63430006040033", - }, - { - ContractAddr: LightClientContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/c184a00160b6a2d884b4d6efebe1358a047e9e57", - Code: "608060405234801561001057600080fd5b50600436106102275760003560e01c8063a1a11bf511610130578063dc927faf116100b8578063e405bbc31161007c578063e405bbc3146106a7578063ea54b2aa146106af578063f9a2bbc7146106b7578063fc3e5908146106bf578063fd6a6879146106c757610227565b8063dc927faf14610627578063dda831481461062f578063df5fe70414610655578063e1c7392a1461067b578063e2761af01461068357610227565b8063adc879e9116100ff578063adc879e914610552578063c81b16621461055a578063cba510a914610562578063d816987914610588578063da8d08f01461060157610227565b8063a1a11bf514610462578063a78abc161461046a578063ab51bb9614610486578063ac4317511461048e57610227565b8063564b81ef116101b3578063718a8aa811610182578063718a8aa81461043a57806375d47a0a146104425780637942fd051461044a57806396713da9146104525780639dc092621461045a57610227565b8063564b81ef146102e85780635c5ae8db146103655780636e47b4821461042a57806370fd5bad1461043257610227565b80633dffc387116101fa5780633dffc3871461029357806343756e5c146102b1578063493279b1146102b95780634bf6c882146102d857806351e80672146102e057610227565b80630bee7a671461022c5780630e2374a51461024d5780632657e9b61461027157806333f7798d1461028b575b600080fd5b6102346106cf565b6040805163ffffffff9092168252519081900360200190f35b6102556106d4565b604080516001600160a01b039092168252519081900360200190f35b6102796106da565b60408051918252519081900360200190f35b6102796106e5565b61029b6106eb565b6040805160ff9092168252519081900360200190f35b6102556106f0565b6102c16106f6565b6040805161ffff9092168252519081900360200190f35b61029b6106fc565b610255610701565b6102f0610707565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561032a578181015183820152602001610312565b50505050905090810190601f1680156103575780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61038b6004803603602081101561037b57600080fd5b50356001600160401b0316610813565b60405180856001600160401b03166001600160401b0316815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156103ec5781810151838201526020016103d4565b50505050905090810190601f1680156104195780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b6102556108ce565b61029b6108d4565b61029b6108d9565b6102556108de565b61029b6108e4565b61029b6108e9565b6102556108ee565b6102556108f4565b6104726108fa565b604080519115158252519081900360200190f35b610234610903565b610550600480360360408110156104a457600080fd5b8101906020810181356401000000008111156104bf57600080fd5b8201836020820111156104d157600080fd5b803590602001918460018302840111640100000000831117156104f357600080fd5b91939092909160208101903564010000000081111561051157600080fd5b82018360208201111561052357600080fd5b8035906020019184600183028401116401000000008311171561054557600080fd5b509092509050610908565b005b610279610bc1565b610255610bc7565b6102796004803603602081101561057857600080fd5b50356001600160401b0316610bcd565b6104726004803603604081101561059e57600080fd5b8101906020810181356401000000008111156105b957600080fd5b8201836020820111156105cb57600080fd5b803590602001918460018302840111640100000000831117156105ed57600080fd5b9193509150356001600160401b0316610bec565b6102556004803603602081101561061757600080fd5b50356001600160401b031661143d565b610255611458565b6102556004803603602081101561064557600080fd5b50356001600160401b031661145e565b6104726004803603602081101561066b57600080fd5b50356001600160401b0316611482565b6105506114c4565b61068b611669565b604080516001600160401b039092168252519081900360200190f35b61068b611678565b6102f061168e565b6102556116ab565b61029b6116b1565b6102556116b6565b606481565b61200181565b662386f26fc1000081565b60055481565b600181565b61100181565b6102ca81565b600881565b61200081565b604080516020808252818301909252606091829190602082018180368337505060045460208301525090506000805b60208160ff16101561077d57828160ff168151811061075157fe5b01602001516001600160f81b0319161561077057600190910190610775565b61077d565b600101610736565b5060608160ff166040519080825280601f01601f1916602001820160405280156107ae576020820181803683370190505b50905060005b8260ff168160ff16101561080a57838160ff16815181106107d157fe5b602001015160f81c60f81b828260ff16815181106107eb57fe5b60200101906001600160f81b031916908160001a9053506001016107b4565b50925050505b90565b60016020818152600092835260409283902080548184015460028084015460038501805489516101009982161599909902600019011692909204601f81018790048702880187019098528787526001600160401b0390931696919592949091908301828280156108c45780601f10610899576101008083540402835291602001916108c4565b820191906000526020600020905b8154815290600101906020018083116108a757829003601f168201915b5050505050905084565b61100581565b600281565b601081565b61100881565b600b81565b600981565b61100781565b61100681565b60005460ff1681565b600081565b60005460ff1661095f576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604482015290519081900360640190fd5b336110071461099f5760405162461bcd60e51b815260040180806020018281038252602e815260200180611b68602e913960400191505060405180910390fd5b610a1384848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601b81527f726577617264466f7256616c696461746f725365744368616e67650000000000602082015291506116bc9050565b15610af25760208114610a575760405162461bcd60e51b815260040180806020018281038252602e815260200180611b07602e913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610a95918585808385018382808284376000920191909152506117a392505050565b9050600081118015610aaf5750670de0b6b3a76400008111155b610aea5760405162461bcd60e51b815260040180806020018281038252602f815260200180611b96602f913960400191505060405180910390fd5b600555610b2f565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b60045481565b61100281565b6001600160401b03166000908152600160208190526040909120015490565b60408051630a83aaa960e31b815233600482015290516000916110069163541d554891602480820192602092909190829003018186803b158015610c2f57600080fd5b505afa158015610c43573d6000803e3d6000fd5b505050506040513d6020811015610c5957600080fd5b5051610cac576040805162461bcd60e51b815260206004820152601f60248201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604482015290519081900360640190fd5b7388cb4d8f77742c24d647bef8049d3f3c56067cdd331480610ce157507342d596440775c90db8d9187b47650986e106349333145b610d1c5760405162461bcd60e51b815260040180806020018281038252602a815260200180611bc5602a913960400191505060405180910390fd5b6001600160401b0382166000908152600260205260409020546001600160a01b031615610d90576040805162461bcd60e51b815260206004820152601c60248201527f63616e27742073796e63206475706c6963617465642068656164657200000000604482015290519081900360640190fd5b6003546001600160401b0390811690831611610ddd5760405162461bcd60e51b8152600401808060200182810382526026815260200180611bef6026913960400191505060405180910390fd5b600354600160401b90046001600160401b0316610df8611905565b6001600160401b0382811660009081526001602081815260409283902083516080810185528154909516855280830154858301526002808201548686015260038201805486516101009682161596909602600019011691909104601f81018490048402850184019095528484529093606086019392830182828015610ebe5780601f10610e9357610100808354040283529160200191610ebe565b820191906000526020600020905b815481529060010190602001808311610ea157829003601f168201915b50505050508152505090505b836001600160401b0316826001600160401b031610158015610efb57506003546001600160401b0390811690831610155b15610fdc5780516001600160401b0380821660009081526001602081815260409283902083516080810185528154909516855280830154858301526002808201548686015260038201805486516101009682161596909602600019011691909104601f8101849004840285018401909552848452959750939460608601939091830182828015610fcc5780601f10610fa157610100808354040283529160200191610fcc565b820191906000526020600020905b815481529060010190602001808311610faf57829003601f168201915b5050505050815250509050610eca565b6060810151516110d35780516001600160401b03811660009081526001602081815260409283902060030180548451600294821615610100026000190190911693909304601f81018390048302840183019094528383529395509092919083018282801561108b5780601f106110605761010080835404028352916020019161108b565b820191906000526020600020905b81548152906001019060200180831161106e57829003601f168201915b505050506060830182905250516110d35760405162461bcd60e51b8152600401808060200182810382526021815260200180611ae66021913960400191505060405180910390fd5b6000816060015151608801905060608787905082016040519080825280601f01601f191660200182016040528015611112576020820181803683370190505b5090506000611120826117a8565b905061112e848683866117ae565b6111695760405162461bcd60e51b81526004018080602001828103825260238152602001806119e36023913960400191505060405180910390fd5b600083820191506111af8a8a8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061181a92505050565b945090506111be818386611824565b825160200193506111cd61192b565b6110008186866064600019fa6111e257600080fd5b805194506000600160f81b8616156112715750600554604080516309a99b4f60e41b815233600482015260248101929092525160019161100291639a99b4f0916044808201926020929091908290030181600087803b15801561124457600080fd5b505af1158015611258573d6000803e3d6000fd5b505050506040513d602081101561126e57600080fd5b50505b856001600160401b03169550602082019350600061129185888415611865565b90985090506001600160401b03808216908c16146112e05760405162461bcd60e51b8152600401808060200182810382526033815260200180611b356033913960400191505060405180910390fd5b6001600160401b03808c16600081815260026020818152604080842080546001600160a01b031916331790558e86168e529383526001808252928490208d518154961667ffffffffffffffff199096169590951785558c81015192850192909255918b01519183019190915560608a015180518b939261136792600385019291019061194a565b50506003546001600160401b03600160401b9091048116908d16111590506113af576003805467ffffffffffffffff60401b1916600160401b6001600160401b038e16021790555b7f4042c1020a8f410fb1c8859d276ab436aeb2c3074960e48467299cf1c966d3b48b8a8a602001518560405180856001600160401b03166001600160401b03168152602001846001600160401b03166001600160401b031681526020018381526020018215151515815260200194505050505060405180910390a15060019c9b505050505050505050505050565b6002602052600090815260409020546001600160a01b031681565b61100381565b6001600160401b03166000908152600260205260409020546001600160a01b031690565b6001600160401b0381166000908152600260205260408120546001600160a01b03161515806114be57506003546001600160401b038381169116145b92915050565b60005460ff161561151c576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b60008061154160405180610100016040528060e08152602001611a0660e0913961181a565b81516004559092509050611553611905565b600061156184846000611865565b60008083526001600160401b038281168252600160208181526040938490208651815467ffffffffffffffff19169416939093178355808601519183019190915591840151600282015560608401518051949650929450859390926115cd92600385019291019061194a565b50506003805467ffffffffffffffff19166001600160401b0384811691821767ffffffffffffffff60401b1916600160401b9290920291909117918290556000805460ff19166001179055662386f26fc10000600555602085810151604080519490931684529083015280517f5ac9b37d571677b80957ca05693f371526c602fd08042b416a29fdab7efefa499350918290030190a150505050565b6003546001600160401b031681565b600354600160401b90046001600160401b031681565b60405180610100016040528060e08152602001611a0660e0913981565b61100081565b600381565b61100481565b6000816040516020018082805190602001908083835b602083106116f15780518252601f1990920191602091820191016116d2565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b6020831061175f5780518252601f199092019160209182019101611740565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b60200190565b60008460600151518284010392506000806117cc876060015161181a565b90925090506117dc828683611824565b5050506040840151601f1983810191909152602090940151603f19830152605f19820192909252600454606719820152910160871990910152600190565b8051602090910191565b5b60208110611844578251825260209283019290910190601f1901611825565b915181516020939093036101000a6000190180199091169216919091179052565b61186d611905565b600884015160288501516048909501805190956000929161188c611905565b6020810183905260408101829052866118f75760008060688a036040519080825280601f01601f1916602001820160405280156118d0576020820181803683370190505b50606084018190526118e19061181a565b90925090506118f460208c018383611824565b50505b989297509195505050505050565b604080516080810182526000808252602082018190529181019190915260608082015290565b6040518061100001604052806080906020820280368337509192915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061198b57805160ff19168380011785556119b8565b828001600101855582156119b8579182015b828111156119b857825182559160200191906001019061199d565b506119c49291506119c8565b5090565b61081091905b808211156119c457600081556001016119ce56fe6661696c656420746f2073657269616c697a6520636f6e73656e73757320737461746542696e616e63652d436861696e2d47616e67657300000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000aea1ac326886b992a991d21a6eb155f41b77867cbf659e78f31d89d8205122a84d1be64f0e9a466c2e66a53433928192783e29f8fa21beb2133499b5ef770f60000000e8d4a5100099308aa365c40554bc89982af505d85da95251445d5dd4a9bb37dd2584fd92d3000000e8d4a5100001776920ff0b0f38d78cf95c033c21adf7045785114e392a7544179652e0a612000000e8d4a510006661696c656420746f206c6f61642076616c696461746f722073657420646174616c656e677468206f6620726577617264466f7256616c696461746f725365744368616e6765206d69736d617463686865616465722068656967687420646f65736e277420657175616c20746f207468652073706563696669656420686569676874746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374746865206e6577526577617264466f7256616c696461746f725365744368616e6765206f7574206f662072616e6765746865206d73672073656e646572206973206e6f7420612077686974656c6162656c2072656c6179657263616e27742073796e6320686561646572206265666f726520696e697469616c486569676874a264697066735822122005fe5704867b942fab1f05677fe6d4bdd985f0d7f3c5bb2eaccbddbca4df78be64736f6c63430006040033", - }, - { - ContractAddr: CrossChainContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/c184a00160b6a2d884b4d6efebe1358a047e9e57", - Code: "608060405234801561001057600080fd5b50600436106102695760003560e01c80637942fd0511610151578063c27cdcfb116100c3578063e1c7392a11610087578063e1c7392a14610775578063e3b048051461077d578063f7a251d71461079d578063f9a2bbc714610815578063fc3e59081461081d578063fd6a68791461082557610269565b8063c27cdcfb1461070e578063c81b16621461072e578063d31f968d14610736578063d76a867514610765578063dc927faf1461076d57610269565b80639dc09262116101155780639dc0926214610630578063a1a11bf514610638578063a78abc1614610640578063ab51bb9614610648578063ac43175114610650578063b0355f5b1461048057610269565b80637942fd051461053b57806384013b6a14610543578063863fe4ab146106205780638cc8f5611461051b57806396713da91461062857610269565b8063422f9050116101ea5780636e47a51a116101ae5780636e47a51a146104f35780636e47b4821461051357806370fd5bad1461051b578063718a8aa81461052357806374f079b81461052b57806375d47a0a1461053357610269565b8063422f90501461048857806343756e5c146104bc578063493279b1146104c45780634bf6c882146104e357806351e80672146104eb57610269565b80632ff32aea116102315780632ff32aea146102f3578063308325f4146103145780633a648b151461031c5780633bdc47a6146103585780633dffc3871461048057610269565b806305e682581461026e5780630bee7a671461028c5780630e2374a5146102ad57806314b3023b146102d157806322556cdc146102eb575b600080fd5b61027661082d565b6040805160ff9092168252519081900360200190f35b610294610832565b6040805163ffffffff9092168252519081900360200190f35b6102b5610837565b604080516001600160a01b039092168252519081900360200190f35b6102d961083d565b60408051918252519081900360200190f35b6102d9610843565b6102fb610848565b60408051600792830b90920b8252519081900360200190f35b6102d9610851565b61033c6004803603602081101561033257600080fd5b503560ff16610857565b604080516001600160401b039092168252519081900360200190f35b61040b6004803603606081101561036e57600080fd5b60ff82351691602081013591810190606081016040820135600160201b81111561039757600080fd5b8201836020820111156103a957600080fd5b803590602001918460018302840111600160201b831117156103ca57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610872945050505050565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561044557818101518382015260200161042d565b50505050905090810190601f1680156104725780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102766108e8565b6104a86004803603602081101561049e57600080fd5b503560ff166108ed565b604080519115158252519081900360200190f35b6102b5610902565b6104cc610908565b6040805161ffff9092168252519081900360200190f35b61027661090e565b6102b5610913565b6102b56004803603602081101561050957600080fd5b503560ff16610919565b6102b5610934565b61027661093a565b61027661093f565b6102d9610944565b6102b561094a565b610276610950565b61061e600480360360a081101561055957600080fd5b810190602081018135600160201b81111561057357600080fd5b82018360208201111561058557600080fd5b803590602001918460018302840111600160201b831117156105a657600080fd5b919390929091602081019035600160201b8111156105c357600080fd5b8201836020820111156105d557600080fd5b803590602001918460018302840111600160201b831117156105f657600080fd5b919350915080356001600160401b03908116916020810135909116906040013560ff16610955565b005b6102d9611c4e565b610276611c56565b6102b5611c5b565b6102b5611c61565b6104a8611c67565b61029461082d565b61061e6004803603604081101561066657600080fd5b810190602081018135600160201b81111561068057600080fd5b82018360208201111561069257600080fd5b803590602001918460018302840111600160201b831117156106b357600080fd5b919390929091602081019035600160201b8111156106d057600080fd5b8201836020820111156106e257600080fd5b803590602001918460018302840111600160201b8311171561070357600080fd5b509092509050611c70565b61033c6004803603602081101561072457600080fd5b503560ff16612212565b6102b561222d565b6104a86004803603604081101561074c57600080fd5b5080356001600160a01b0316906020013560ff16612233565b61040b612253565b6102b5612272565b61061e612278565b61033c6004803603602081101561079357600080fd5b503560ff1661262f565b61061e600480360360608110156107b357600080fd5b60ff8235169190810190604081016020820135600160201b8111156107d757600080fd5b8201836020820111156107e957600080fd5b803590602001918460018302840111600160201b8311171561080a57600080fd5b91935091503561264a565b6102b561279b565b6102766127a1565b6102b56127a6565b600081565b606481565b61200181565b60015481565b603281565b60045460070b81565b60025481565b600a602052600090815260409020546001600160401b031681565b60606000825160210190506060816040519080825280601f01601f1916602001820160405280156108aa576020820181803683370190505b50602181018690526001810187905282815290506041810160006108cd866127ac565b5090506108dc818388516127b6565b50909695505050505050565b600181565b60096020526000908152604090205460ff1681565b61100181565b6102ca81565b600881565b61200081565b6005602052600090815260409020546001600160a01b031681565b61100581565b600281565b601081565b60035481565b61100881565b600b81565b60005460ff166109a8576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b60408051630a83aaa960e31b815233600482015290516110069163541d5548916024808301926020929190829003018186803b1580156109e757600080fd5b505afa1580156109fb573d6000803e3d6000fd5b505050506040513d6020811015610a1157600080fd5b5051610a64576040805162461bcd60e51b815260206004820152601f60248201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604482015290519081900360640190fd5b7388cb4d8f77742c24d647bef8049d3f3c56067cdd331480610a9957507342d596440775c90db8d9187b47650986e106349333145b610ad45760405162461bcd60e51b815260040180806020018281038252602a815260200180612d5c602a913960400191505060405180910390fd5b60ff8116600090815260086020526040902054829082906001600160401b039081169083168114610b44576040805162461bcd60e51b815260206004820152601560248201527439b2b8bab2b731b2903737ba1034b71037b93232b960591b604482015290519081900360640190fd5b60ff8216600090815260086020908152604091829020805467ffffffffffffffff1916600185016001600160401b039081169190911790915582516337d7f9c160e21b81529089166004820152915188926110039263df5fe70492602480840193829003018186803b158015610bb957600080fd5b505afa158015610bcd573d6000803e3d6000fd5b505050506040513d6020811015610be357600080fd5b5051610c205760405162461bcd60e51b8152600401808060200182810382526023815260200180612db86023913960400191505060405180910390fd5b60ff851660009081526005602052604090205485906001600160a01b0316610c8f576040805162461bcd60e51b815260206004820152601860248201527f6368616e6e656c206973206e6f7420737570706f727465640000000000000000604482015290519081900360640190fd5b60ff86166000908152600a6020526040902054889087906001600160401b039081169083161015610cf8576040805162461bcd60e51b815260206004820152600e60248201526d3a37b79037b632103432b0b232b960911b604482015290519081900360640190fd5b60ff81166000908152600a60205260409020546001600160401b03838116911614610d4a5760ff81166000908152600a60205260409020805467ffffffffffffffff19166001600160401b0384161790555b60608e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060608d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509050610e8e6110036001600160a01b031663cba510a98e6040518263ffffffff1660e01b815260040180826001600160401b03166001600160401b0316815260200191505060206040518083038186803b158015610e3757600080fd5b505afa158015610e4b573d6000803e3d6000fd5b505050506040513d6020811015610e6157600080fd5b505160408051808201909152600381526269626360e81b6020820152610e878e8e6127f7565b858561283e565b610ed6576040805162461bcd60e51b815260206004820152601460248201527334b73b30b634b21036b2b935b63290383937b7b360611b604482015290519081900360640190fd5b60408051631bb5062960e31b81526001600160401b038e16600482015290516000916110039163dda8314891602480820192602092909190829003018186803b158015610f2257600080fd5b505afa158015610f36573d6000803e3d6000fd5b505050506040513d6020811015610f4c57600080fd5b505190508b8b600080806060610f618961293b565b935093509350935083611023578460ff16866001600160401b03167ff7b2e42d694eb1100184aae86d4245d9e46966100b1dc7e723275b98326854ac8b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610fdb578181015183820152602001610fc3565b50505050905090810190601f1680156110085780820380516001836020036101000a031916815260200191505b509250505060405180910390a3505050505050505050611c3e565b6040805160ff85811682529151918716916001600160401b038916917f36afdaf439a8f43fe72135135d804ae620b37a474f0943b5b85f6788312cad40919081900360200190a360ff83166115a85760ff85166000818152600560209081526040808320548151631182b87560e01b815260048101958652602481019283528651604482015286516001600160a01b03909216958695631182b875958d958a9593949093606490910192918601918190849084905b838110156110f05781810151838201526020016110d8565b50505050905090810190601f16801561111d5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561113d57600080fd5b505af192505050801561122157506040513d6000823e601f3d908101601f19168201604052602081101561117057600080fd5b8101908080516040519392919084600160201b82111561118f57600080fd5b9083019060208201858111156111a457600080fd5b8251600160201b8111828201881017156111bd57600080fd5b82525081516020918201929091019080838360005b838110156111ea5781810151838201526020016111d2565b50505050905090810190601f1680156112175780820380516001836020036101000a031916815260200191505b5060405250505060015b611533576040516000815260443d101561123d575060006112d8565b60046000803e60005160e01c6308c379a0811461125e5760009150506112d8565b60043d036004833e81513d60248201116001600160401b0382111715611289576000925050506112d8565b80830180516001600160401b038111156112aa5760009450505050506112d8565b8060208301013d86018111156112c8576000955050505050506112d8565b601f01601f191660405250925050505b806112e357506113f5565b60ff871660009081526007602052604081205461131a916001600160401b039091169089906113159060029088610872565b6129eb565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf948794849390840192918601918190849084905b838110156113b557818101518382015260200161139d565b50505050905090810190601f1680156113e25780820380516001836020036101000a031916815260200191505b509250505060405180910390a25061152e565b3d80801561141f576040519150601f19603f3d011682016040523d82523d6000602084013e611424565b606091505b5060ff8716600090815260076020526040812054611457916001600160401b039091169089906113159060029088610872565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351948794849390840192918601918190849084905b838110156114f25781810151838201526020016114da565b50505050905090810190601f16801561151f5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b6115a2565b8051156115a05760ff871660009081526007602052604081205461156c916001600160401b039091169089906113159060019086610872565b60ff8716600090815260076020526040902080546001600160401b038082166001011667ffffffffffffffff199091161790555b505b50611b76565b60ff83166001141561184c5760ff8516600081815260056020908152604080832054815163831d65d160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563831d65d1958d958a9593949093606490910192918601918190849084905b8381101561163257818101518382015260200161161a565b50505050905090810190601f16801561165f5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561167f57600080fd5b505af1925050508015611690575060015b6115a2576040516000815260443d10156116ac57506000611747565b60046000803e60005160e01c6308c379a081146116cd576000915050611747565b60043d036004833e81513d60248201116001600160401b03821117156116f857600092505050611747565b80830180516001600160401b03811115611719576000945050505050611747565b8060208301013d860181111561173757600095505050505050611747565b601f01601f191660405250925050505b8061175257506117b7565b60408051602080825283518183015283516001600160a01b038616937ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf93869390928392830191850190808383600083156113b557818101518382015260200161139d565b3d8080156117e1576040519150601f19603f3d011682016040523d82523d6000602084013e6117e6565b606091505b5060408051602080825283518183015283516001600160a01b038616937f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd297735193869390928392830191850190808383600083156114f25781810151838201526020016114da565b60ff831660021415611b765760ff8516600081815260056020908152604080832054815163c8509d8160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563c8509d81958d958a9593949093606490910192918601918190849084905b838110156118d65781810151838201526020016118be565b50505050905090810190601f1680156119035780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561192357600080fd5b505af1925050508015611934575060015b611b74576040516000815260443d1015611950575060006119eb565b60046000803e60005160e01c6308c379a081146119715760009150506119eb565b60043d036004833e81513d60248201116001600160401b038211171561199c576000925050506119eb565b80830180516001600160401b038111156119bd5760009450505050506119eb565b8060208301013d86018111156119db576000955050505050506119eb565b601f01601f191660405250925050505b806119f65750611a9f565b816001600160a01b03167ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf826040518080602001828103825283818151815260200191508051906020019080838360005b83811015611a5f578181015183820152602001611a47565b50505050905090810190601f168015611a8c5780820380516001836020036101000a031916815260200191505b509250505060405180910390a250611b74565b3d808015611ac9576040519150601f19603f3d011682016040523d82523d6000602084013e611ace565b606091505b50816001600160a01b03167f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351826040518080602001828103825283818151815260200191508051906020019080838360005b83811015611b38578181015183820152602001611b20565b50505050905090810190601f168015611b655780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b505b60ff80861660009081526009602052604090205461100591636f93d2e6918a91339187911680611ba8575060ff881615155b604080516001600160e01b031960e088901b1681526001600160a01b039586166004820152939094166024840152604483019190915215156064820152905160848083019260209291908290030181600087803b158015611c0857600080fd5b505af1158015611c1c573d6000803e3d6000fd5b505050506040513d6020811015611c3257600080fd5b50505050505050505050505b5050505050505050505050505050565b630102ca0081565b600981565b61100781565b61100681565b60005460ff1681565b3361100714611cb05760405162461bcd60e51b815260040180806020018281038252602e815260200180612ce4602e913960400191505060405180910390fd5b611d1984848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526012815271626174636853697a65466f724f7261636c6560701b60208201529150612b429050565b15611db457604080516020601f8401819004810282018101909252828152600091611d5c91858580838501838280828437600092019190915250612c2992505050565b90506127108111158015611d715750600a8110155b611dac5760405162461bcd60e51b8152600401808060200182810382526032815260200180612d866032913960400191505060405180910390fd5b600155612180565b611e1d84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601281527118591913dc955c19185d1950da185b9b995b60721b60208201529150612b429050565b15611fa557606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060169091149050611ea05760405162461bcd60e51b815260040180806020018281038252605a815260200180612c8a605a913960600191505060405180910390fd5b60018101516002820151601683015160ff82161590611ebe81612c2e565b611f0f576040805162461bcd60e51b815260206004820152601960248201527f61646472657373206973206e6f74206120636f6e747261637400000000000000604482015290519081900360640190fd5b60ff8416600081815260056020908152604080832080546001600160a01b0319166001600160a01b038716908117909155808452600683528184208585528352818420805460ff199081166001179091556009909352818420805490931687151517909255519092917f7e3b6af43092577ee20e60eaa1d9b114a7031305c895ee7dd3ffe17196d2e1e091a35050505050612180565b61201284848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526016815275195b98589b1953dc911a5cd8589b1950da185b9b995b60521b60208201529150612b429050565b1561214357606082828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050825192935050600290911490506120955760405162461bcd60e51b815260040180806020018281038252604a815260200180612d12604a913960600191505060405180910390fd5b600181810151600283015160ff80831660009081526005602052604090205492939192908316909114906001600160a01b03168015612139576001600160a01b038116600090815260066020908152604080832060ff881680855290835292819020805460ff1916861515908117909155815190815290517fa3132e3f9819fbddc7f0ed6d38d7feef59aa95112090b7c592f5cb5bc4aa4adc929181900390910190a25b5050505050612180565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b6008602052600090815260409020546001600160401b031681565b61100281565b600660209081526000928352604080842090915290825290205460ff1681565b6040518060400160405280600381526020016269626360e81b81525081565b61100381565b60005460ff16156122d0576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b7f1471eb6eb2c5e789fc3de43f8ce62938c7d1836ec861730447e2ada8fd81017b80546001600160a01b0319908116611008179091557f92e85d02570a8092d09a6e3a57665bc3815a2699a4074001bf1ccabf660f5a36805460ff199081169091557fd8af288fc1c8680b4f4706064cf021e264efb6828fcaf7eb5ca36818eb365bcc8054821660019081179091557f89832631fb3c3307a103ba2c84ab569c64d6182a18893dcd163f0f1c2090733a805484166110049081179091557f6cde3cea4b3a3fb2488b2808bae7556f4a405e50f65e1794383bc026131b13c38054841690557f72e4efa1513b071517c6c74dba31b5934a81aa83cddd400e7081df5529c9943680548416831790557fa9bc9a3a348c357ba16b37005d7e6b3236198c0e939f4af8c5f19b8deeb8ebc08054851690911790557fc575c31fea594a6eb97c8e9d3f9caee4c16218c6ef37e923234c0fe9014a61e78054831690557f4e523af77f034e9810f1c94057f5e931fb3d16a51511a4c3add793617d18610580548316821790557ffb33122aa9f93cc639ebe80a7bc4784c11e6053dde89c6f4f7e268c6a623da1e805484166110001790557fc7694af312c4f286114180fd0ba6a52461fcee8a381636770b19a343af92538a80548316821790557f01112dd68e482ba8d68a7e828cff8b3abcea08eab88941953c180a7e650e9cd480548316821790557fc0a4a8be475dfebc377ebef2d7c4ff47656f572a08dd92b81017efcdba0febe1805484166110071790557f87e8a52529e8ece4ef759037313542a6429ff494a9fab9027fb79db90124eba680548316821790557f4c7666bbcb22d46469f7cc282f70764a7012dca2cce630ff8d83db9a9cdd48f080548316821790557f40f28f99a40bc9f6beea1013afdbc3cdcc689eb76b82c4de06c0acf1e1932ed58054909316611001179092557f0d9cf2cd531699eed8dd34e40ff2884a14a698c4898184fba85194e6f6772d248054821683179055600b60009081527f23f68c9bd22b8a93d06adabe17481c87c016bcbd20adc8bfd707a4d813a572176020527fdf0d5d05428057f5455c2dc8e810dd86d1e9350faa72f16bda8a45443c5b39328054831684179055603283556004805467ffffffffffffffff19166001600160401b031790556002819055600381905580549091169091179055565b6007602052600090815260409020546001600160401b031681565b60005460ff1661269d576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b33600090815260066020908152604080832060ff80891685529252909120548591166126fa5760405162461bcd60e51b8152600401808060200182810382526031815260200180612c596031913960400191505060405180910390fd5b60ff85166000908152600760209081526040808320548151601f88018490048402810184019092528682526001600160401b03169261275f9284928a9261131592909189918c908c908190840183828082843760009201919091525061087292505050565b60ff959095166000908152600760205260409020805467ffffffffffffffff191660019096016001600160401b03169590951790945550505050565b61100081565b600381565b61100481565b8051602090910191565b5b602081106127d6578251825260209283019290910190601f19016127b7565b915181516020939093036101000a6000190180199091169216919091179052565b60408051600e808252818301909252606091630102ca0060ff851617918391602082018180368337505050600e818101969096526006810192909252509283525090919050565b60008561284d57506000612932565b606082518451865160800101016040519080825280601f01601f191660200182016040528015612884576020820181803683370190505b509050600061289282612c34565b6020808901518252019050866000806128aa896127ac565b80865260209095019490925090506128c38285836127b6565b928301926128d0886127ac565b80865260209095019490925090506128e98285836127b6565b9283018a8152602001926128fc876127ac565b909250905061290c8285836127b6565b50835160200161291a612c3a565b60208183886065600019fa5051600114955050505050505b95945050505050565b6000806000606060218551101561296b5750506040805160008082526020820190925290925082915081906129e4565b600185015160218601518651604080516020198301808252601f19600119909401939093168101602001909152604189019392916060919080156129b6576020820181803683370190505b50905060006129c4826127ac565b5090506129d6858260218d51036127b6565b506001975091955093509150505b9193509193565b600254431115612a2a576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b161790915560035543600255612a6b565b60038054600190810191829055541015612a6b576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b16179091556003555b8160ff16836001600160401b0316600460009054906101000a900460070b6001600160401b03167f3a6e0fc61675aa2a100bcba0568368bb92bcec91c97673391074f11138f0cffe6102ca85604051808361ffff1661ffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015612b02578181015183820152602001612aea565b50505050905090810190601f168015612b2f5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a4505050565b6000816040516020018082805190602001908083835b60208310612b775780518252601f199092019160209182019101612b58565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310612be55780518252601f199092019160209182019101612bc6565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b3b151590565b60200190565b6040518060200160405280600190602082028036833750919291505056fe74686520636f6e747261637420616e64206368616e6e656c2068617665206e6f74206265656e20726567697374657265646c656e677468206f662076616c756520666f72206164644f725570646174654368616e6e656c2073686f756c642062652032322c206368616e6e656c49643a697346726f6d53797374656d3a68616e646c657241646472657373746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662076616c756520666f7220656e61626c654f7244697361626c654368616e6e656c2073686f756c6420626520322c206368616e6e656c49643a6973456e61626c65746865206d73672073656e646572206973206e6f7420612077686974656c6162656c2072656c61796572746865206e6577426174636853697a65466f724f7261636c652073686f756c6420626520696e205b31302c2031303030305d6c6967687420636c69656e74206e6f742073796e632074686520626c6f636b20796574a2646970667358221220c2e5476f29d06af821e0422dce9e2935bd3fd426d71239e5fabf34b62008c49664736f6c63430006040033", - }, - }, - } - - PlanckUpgrade[networkname.BSCChainName] = &Upgrade{ - UpgradeName: "planck", - Configs: []*UpgradeConfig{ - { - ContractAddr: SlashContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/78e13b1d3a5a1b08c9208af94a9b14fc1efda213", - Code: "608060405234801561001057600080fd5b50600436106102535760003560e01c80637942fd0511610146578063ac431751116100c3578063dc927faf11610087578063dc927faf1461073b578063e1c7392a14610743578063f9a2bbc71461074b578063fc3e590814610753578063fc4333cd1461075b578063fd6a68791461076357610253565b8063ac431751146105cf578063c80d4b8f1461068d578063c81b166214610695578063c8509d811461069d578063c96be4cb1461071557610253565b80639dc092621161010a5780639dc0926214610593578063a1a11bf51461059b578063a78abc16146105a3578063ab51bb96146105bf578063ac0af629146105c757610253565b80637942fd05146104fb5780638256ace614610503578063831d65d11461050b57806396713da9146105835780639bc8e4f21461058b57610253565b80634bf6c882116101d45780636e47b482116101985780636e47b482146104d357806370fd5bad146104db578063718a8aa8146104e357806375d47a0a146104eb5780637912a65d146104f357610253565b80634bf6c8821461048b57806351e8067214610493578063567a372d1461049b5780635bfb4990146104a357806362b72cf5146104cb57610253565b806337c8dab91161021b57806337c8dab9146103ed578063389f4f711461042c5780633dffc3871461044657806343756e5c14610464578063493279b11461046c57610253565b80630bee7a67146102585780630e2374a5146102795780631182b8751461029d57806323bac5a21461038a57806335aa2e44146103d0575b600080fd5b61026061076b565b6040805163ffffffff9092168252519081900360200190f35b610281610770565b604080516001600160a01b039092168252519081900360200190f35b610315600480360360408110156102b357600080fd5b60ff8235169190810190604081016020820135600160201b8111156102d757600080fd5b8201836020820111156102e957600080fd5b803590602001918460018302840111600160201b8311171561030a57600080fd5b509092509050610776565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561034f578181015183820152602001610337565b50505050905090810190601f16801561037c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103b0600480360360208110156103a057600080fd5b50356001600160a01b031661084a565b604080519384526020840192909252151582820152519081900360600190f35b610281600480360360208110156103e657600080fd5b503561086d565b6104136004803603602081101561040357600080fd5b50356001600160a01b0316610894565b6040805192835260208301919091528051918290030190f35b6104346108eb565b60408051918252519081900360200190f35b61044e6108f1565b6040805160ff9092168252519081900360200190f35b6102816108f6565b6104746108fc565b6040805161ffff9092168252519081900360200190f35b61044e610901565b610281610906565b61043461090c565b6104c9600480360360208110156104b957600080fd5b50356001600160a01b0316610912565b005b610434610a73565b610281610a79565b61044e610a7f565b61044e610a84565b610281610a89565b610434610a8f565b61044e610a94565b610413610a99565b6104c96004803603604081101561052157600080fd5b60ff8235169190810190604081016020820135600160201b81111561054557600080fd5b82018360208201111561055757600080fd5b803590602001918460018302840111600160201b8311171561057857600080fd5b509092509050610aa3565b61044e610bfd565b610434610c02565b610281610c0d565b610281610c13565b6105ab610c19565b604080519115158252519081900360200190f35b610260610c22565b610434610c27565b6104c9600480360360408110156105e557600080fd5b810190602081018135600160201b8111156105ff57600080fd5b82018360208201111561061157600080fd5b803590602001918460018302840111600160201b8311171561063257600080fd5b919390929091602081019035600160201b81111561064f57600080fd5b82018360208201111561066157600080fd5b803590602001918460018302840111600160201b8311171561068257600080fd5b509092509050610c2c565b61043461101a565b61028161101f565b6104c9600480360360408110156106b357600080fd5b60ff8235169190810190604081016020820135600160201b8111156106d757600080fd5b8201836020820111156106e957600080fd5b803590602001918460018302840111600160201b8311171561070a57600080fd5b509092509050611025565b6104c96004803603602081101561072b57600080fd5b50356001600160a01b03166110d8565b610281611659565b6104c961165f565b6102816116d0565b61044e6116d6565b6104c96116db565b610281611b66565b606481565b61200181565b606033612000146107b85760405162461bcd60e51b815260040180806020018281038252602f8152602001806125bd602f913960400191505060405180910390fd5b60005460ff166107fd576040805162461bcd60e51b81526020600482015260196024820152600080516020612619833981519152604482015290519081900360640190fd5b6040805162461bcd60e51b815260206004820152601e60248201527f7265636569766520756e65787065637465642073796e207061636b6167650000604482015290519081900360640190fd5b600260208190526000918252604090912080546001820154919092015460ff1683565b6001818154811061087a57fe5b6000918252602090912001546001600160a01b0316905081565b60008061089f612481565b5050506001600160a01b0316600090815260026020818152604092839020835160608101855281548082526001830154938201849052919093015460ff16151592909301919091529091565b60055481565b600181565b61100181565b603881565b600881565b61200081565b60045481565b33611000146109525760405162461bcd60e51b81526004018080602001828103825260308152602001806125186030913960400191505060405180910390fd5b60005460ff16610997576040805162461bcd60e51b81526020600482015260196024820152600080516020612619833981519152604482015290519081900360640190fd5b61200063f7a251d7600b6109aa84611b6c565b60006040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015610a0a5781810151838201526020016109f2565b50505050905090810190601f168015610a375780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015610a5857600080fd5b505af1158015610a6c573d6000803e3d6000fd5b5050505050565b60035481565b61100581565b600281565b601081565b61100881565b603281565b600b81565b6004546005549091565b3361200014610ae35760405162461bcd60e51b815260040180806020018281038252602f8152602001806125bd602f913960400191505060405180910390fd5b60005460ff16610b28576040805162461bcd60e51b81526020600482015260196024820152600080516020612619833981519152604482015290519081900360640190fd5b610b306124a4565b6000610b7184848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611c3e92505050565b915091508015610bbb5781516040805163ffffffff9092168252517f7f0956d47419b9525356e7111652b653b530ec6f5096dccc04589bc38e6299679181900360200190a1610a6c565b81516040805163ffffffff9092168252517f7d45f62d17443dd4547bca8a8112c60e2385669318dc300ec61a5d2492f262e79181900360200190a15050505050565b600981565b662386f26fc1000081565b61100781565b61100681565b60005460ff1681565b600081565b600481565b60005460ff16610c71576040805162461bcd60e51b81526020600482015260196024820152600080516020612619833981519152604482015290519081900360640190fd5b3361100714610cb15760405162461bcd60e51b815260040180806020018281038252602e815260200180612548602e913960400191505060405180910390fd5b610d1c84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260148152731b5a5cd9195b59585b9bdc951a1c995cda1bdb1960621b60208201529150611cbe9050565b15610df55760208114610d605760405162461bcd60e51b81526004018080602001828103825260278152602001806124f16027913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610d9e91858580838501838280828437600092019190915250611da692505050565b905060018110158015610db2575060055481105b610ded5760405162461bcd60e51b81526004018080602001828103825260258152602001806125986025913960400191505060405180910390fd5b600455610f88565b610e5b84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e19995b1bdb9e551a1c995cda1bdb19608a1b60208201529150611cbe9050565b15610f4b5760208114610e9f5760405162461bcd60e51b81526004018080602001828103825260228152602001806125766022913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610edd91858580838501838280828437600092019190915250611da692505050565b90506103e88111158015610ef2575060045481115b610f43576040805162461bcd60e51b815260206004820181905260248201527f7468652066656c6f6e795468726573686f6c64206f7574206f662072616e6765604482015290519081900360640190fd5b600555610f88565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b609681565b61100281565b33612000146110655760405162461bcd60e51b815260040180806020018281038252602f8152602001806125bd602f913960400191505060405180910390fd5b60005460ff166110aa576040805162461bcd60e51b81526020600482015260196024820152600080516020612619833981519152604482015290519081900360640190fd5b6040517f07db600eebe2ac176be8dcebad61858c245a4961bb32ca2aa3d159b09aa0810e90600090a1505050565b3341146111165760405162461bcd60e51b815260040180806020018281038252602d8152602001806125ec602d913960400191505060405180910390fd5b60005460ff1661115b576040805162461bcd60e51b81526020600482015260196024820152600080516020612619833981519152604482015290519081900360640190fd5b60035443116111b1576040805162461bcd60e51b815260206004820181905260248201527f63616e206e6f7420736c61736820747769636520696e206f6e6520626c6f636b604482015290519081900360640190fd5b3a156111fb576040805162461bcd60e51b81526020600482015260146024820152736761737072696365206973206e6f74207a65726f60601b604482015290519081900360640190fd5b6040805163155853f360e21b81526001600160a01b03831660048201529051611000916355614fcc916024808301926020929190829003018186803b15801561124357600080fd5b505afa158015611257573d6000803e3d6000fd5b505050506040513d602081101561126d57600080fd5b505161127857611652565b611280612481565b506001600160a01b0381166000908152600260208181526040928390208351606081018552815481526001820154928101929092529091015460ff1615801592820192909252906112db576020810180516001019052611334565b60016040820181905260208201819052805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0384161790555b43815260055460208201518161134657fe5b0661157657600060208201819052604080516335409f7f60e01b81526001600160a01b03851660048201529051611000926335409f7f926024808201939182900301818387803b15801561139957600080fd5b505af11580156113ad573d6000803e3d6000fd5b505050506120006001600160a01b031663f7a251d7600b6113cd85611b6c565b60006040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561142d578181015183820152602001611415565b50505050905090810190601f16801561145a5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561147b57600080fd5b505af192505050801561148c575060015b611571573d8080156114ba576040519150601f19603f3d011682016040523d82523d6000602084013e6114bf565b606091505b50826001600160a01b03167fd7bc86ff5d08c8ab043edec743302aba2520e6635172a428bc956721db9e2d1c8360200151836040518083815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561153457818101518382015260200161151c565b50505050905090810190601f1680156115615780820380516001836020036101000a031916815260200191505b50935050505060405180910390a2505b6115ec565b60045481602001518161158557fe5b066115ec57604080516375abf10160e11b81526001600160a01b038416600482015290516110009163eb57e20291602480830192600092919082900301818387803b1580156115d357600080fd5b505af11580156115e7573d6000803e3d6000fd5b505050505b6001600160a01b0382166000818152600260208181526040808420865181559186015160018301558581015191909201805460ff1916911515919091179055517fddb6012116e51abf5436d956a4f0ebd927e92c576ff96d7918290c8782291e3e9190a2505b5043600355565b61100381565b60005460ff16156116b7576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b603260045560966005556000805460ff19166001179055565b61100081565b600381565b336110001461171b5760405162461bcd60e51b81526004018080602001828103825260308152602001806125186030913960400191505060405180910390fd5b60005460ff16611760576040805162461bcd60e51b81526020600482015260196024820152600080516020612619833981519152604482015290519081900360640190fd5b60015461176c57611b64565b600154600090600019015b808211611b38576000805b8284101561189b57611792612481565b60026000600187815481106117a357fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff1615159082015260055490915060049004816020015111156118855760046005548161181057fe5b0481602001510381602001818152505080600260006001888154811061183257fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208351815591830151600183015591909101516002909101805460ff191691151591909117905561188f565b600192505061189b565b50600190930192611782565b828411611a32576118aa612481565b60026000600186815481106118bb57fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff1615159082015260055490915060049004816020015111156119a35760046005548161192857fe5b0481602001510381602001818152505080600260006001878154811061194a57fe5b6000918252602080832091909101546001600160a01b03168352828101939093526040918201902083518155918301516001808401919091559201516002909101805460ff19169115159190911790559150611a329050565b60026000600186815481106119b457fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff191690558054806119f857fe5b600082815260209020810160001990810180546001600160a01b031916905501905583611a255750611a32565b506000199092019161189b565b818015611a3c5750805b15611b1b576002600060018681548110611a5257fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff19169055805484908110611a9957fe5b600091825260209091200154600180546001600160a01b039092169186908110611abf57fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506001805480611af857fe5b600082815260209020810160001990810180546001600160a01b03191690550190555b82611b27575050611b38565b505060019091019060001901611777565b6040517fcfdb3b6ccaeccbdc68be3c59c840e3b3c90f0a7c491f5fff1cf56cfda200dd9c90600090a150505b565b61100481565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081611b87579050509050611bb0836001600160a01b0316611dab565b81600081518110611bbd57fe5b6020026020010181905250611bd143611dce565b81600181518110611bde57fe5b6020908102919091010152611bf36038611dce565b81600281518110611c0057fe5b6020026020010181905250611c1442611dce565b81600381518110611c2157fe5b6020026020010181905250611c3581611de1565b9150505b919050565b611c466124a4565b6000611c506124a4565b611c586124b6565b611c69611c6486611e6b565b611e90565b90506000805b611c7883611eda565b15611cb15780611ca457611c93611c8e84611efb565b611f49565b63ffffffff16845260019150611ca9565b611cb1565b600101611c6f565b5091935090915050915091565b6000816040516020018082805190602001908083835b60208310611cf35780518252601f199092019160209182019101611cd4565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310611d615780518252601f199092019160209182019101611d42565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052805190602001201490505b92915050565b015190565b60408051600560a21b8318601482015260348101909152606090611c3581612000565b6060611da0611ddc83612056565b612000565b6060815160001415611e025750604080516000815260208101909152611c39565b606082600081518110611e1157fe5b602002602001015190506000600190505b8351811015611e5257611e4882858381518110611e3b57fe5b602002602001015161213c565b9150600101611e22565b50611c35611e65825160c060ff166121b9565b8261213c565b611e736124d6565b506040805180820190915281518152602082810190820152919050565b611e986124b6565b611ea1826122b1565b611eaa57600080fd5b6000611eb983602001516122eb565b60208085015160408051808201909152868152920190820152915050919050565b6000611ee46124d6565b505080518051602091820151919092015191011190565b611f036124d6565b611f0c82611eda565b611f1557600080fd5b60208201516000611f258261234e565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590611f5e57508151602110155b611f6757600080fd5b6000611f7683602001516122eb565b90508083600001511015611fd1576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015611ff757826020036101000a820491505b50949350505050565b6060815160011480156120325750607f60f81b8260008151811061202057fe5b01602001516001600160f81b03191611155b1561203e575080611c39565b611da06120508351608060ff166121b9565b8361213c565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff19841661209a575060186120be565b6fffffffffffffffffffffffffffffffff1984166120ba575060106120be565b5060005b60208110156120f4578181815181106120d357fe5b01602001516001600160f81b031916156120ec576120f4565b6001016120be565b60008160200390506060816040519080825280601f01601f191660200182016040528015612129576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b8183101561216d578051835260209283019201612155565b50855184518101855292509050808201602086015b8183101561219a578051835260209283019201612182565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310612209576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b604080516001808252818301909252606091602082018180368337019050509050603784116122635782840160f81b8160008151811061224557fe5b60200101906001600160f81b031916908160001a9053509050611da0565b606061226e85612056565b90508381510160370160f81b8260008151811061228757fe5b60200101906001600160f81b031916908160001a9053506122a8828261213c565b95945050505050565b80516000906122c257506000611c39565b6020820151805160001a9060c08210156122e157600092505050611c39565b5060019392505050565b8051600090811a6080811015612305576000915050611c39565b60b8811080612320575060c08110801590612320575060f881105b1561232f576001915050611c39565b60c08110156123435760b519019050611c39565b60f519019050611c39565b80516000908190811a6080811015612369576001915061247a565b60b881101561237e57607e198101915061247a565b60c08110156123f857600060b78203600186019550806020036101000a8651049150600181018201935050808310156123f2576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b5061247a565b60f881101561240d5760be198101915061247a565b600060f78203600186019550806020036101000a865104915060018101820193505080831015612478576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b604051806060016040528060008152602001600081526020016000151581525090565b60408051602081019091526000815290565b60405180604001604052806124c96124d6565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe6c656e677468206f66206d697364656d65616e6f725468726573686f6c64206d69736d61746368746865206d6573736167652073656e646572206d7573742062652076616c696461746f7253657420636f6e7472616374746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662066656c6f6e795468726573686f6c64206d69736d61746368746865206d697364656d65616e6f725468726573686f6c64206f7574206f662072616e6765746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d6573736167652073656e646572206d7573742062652074686520626c6f636b2070726f647563657274686520636f6e7472616374206e6f7420696e69742079657400000000000000a2646970667358221220638a87b280b96494e110d626ea9527bb15cb9cf42454fbab93839017affa9a8564736f6c63430006040033", - }, - { - ContractAddr: TokenHubContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/78e13b1d3a5a1b08c9208af94a9b14fc1efda213", - Code: "6080604052600436106103c75760003560e01c806396713da9116101f2578063c81b16621161010d578063f0148472116100a0578063fc1a598f1161006f578063fc1a598f14610f25578063fc3e590814610b85578063fd6a687914610f58578063ff9c0027146107fd5761040f565b8063f014847214610ed1578063f9a2bbc714610ee6578063fa9e915914610efb578063fb063e8f14610f105761040f565b8063dc927faf116100dc578063dc927faf14610e5f578063e1c7392a14610e74578063e8f35cea14610e89578063ebf71d5314610ebc5761040f565b8063c81b166214610d8a578063c8509d8114610d9f578063cf41984414610e24578063d9e6dae91461077f5761040f565b8063aa7415f511610185578063b9fd21e311610154578063b9fd21e314610cfa578063ba35ead614610d0f578063bbface1f14610d24578063bd46646114610d575761040f565b8063aa7415f514610b9a578063ab51bb9614610be1578063ac43175114610bf6578063b99328c514610cc15761040f565b8063a1a11bf5116101c1578063a1a11bf514610b46578063a496fba214610b5b578063a78abc1614610b70578063a7c9f02d14610b855761040f565b806396713da914610ace5780639a854bbd14610ae35780639a99b4f014610af85780639dc0926214610b315761040f565b806359b92789116102e257806371d3086311610275578063831d65d111610244578063831d65d1146109d15780638b87b21f146106d45780638eff336c14610a565780639509b98014610a955761040f565b806371d3086314610968578063727be1f81461097d57806375d47a0a146109a75780637942fd05146109bc5761040f565b80636e056520116102b15780636e056520146108125780636e47b4821461093e57806370fd5bad146107fd578063718a8aa8146109535761040f565b806359b92789146107be5780635d499b1b146107e8578063613684751461077f57806366dea52a146107fd5761040f565b80633fd8b02f1161035a5780634a3acdf4116103295780634a3acdf41461076a5780634bf6c8821461077f57806350432d321461079457806351e80672146107a95761040f565b80633fd8b02f146106ff57806343756e5c1461071457806343a368b914610729578063493279b11461073e5761040f565b8063149d14d911610396578063149d14d9146105a85780632ae45483146105cf5780633d713223146106235780633dffc387146106d45761040f565b80630bee7a67146104145780630e2374a5146104425780631182b87514610473578063122345821461056d5761040f565b3661040f57341561040d576040805133815234602082015281517f6c98249d85d88c3753a04a22230f595e4dc8d3dc86c34af35deeeedc861b89db929181900390910190a15b005b600080fd5b34801561042057600080fd5b50610429610f6d565b6040805163ffffffff9092168252519081900360200190f35b34801561044e57600080fd5b50610457610f72565b604080516001600160a01b039092168252519081900360200190f35b34801561047f57600080fd5b506104f86004803603604081101561049657600080fd5b60ff8235169190810190604081016020820135600160201b8111156104ba57600080fd5b8201836020820111156104cc57600080fd5b803590602001918460018302840111600160201b831117156104ed57600080fd5b509092509050610f78565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561053257818101518382015260200161051a565b50505050905090810190601f16801561055f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561057957600080fd5b5061040d6004803603604081101561059057600080fd5b506001600160a01b03813581169160200135166110a6565b3480156105b457600080fd5b506105bd6111a0565b60408051918252519081900360200190f35b3480156105db57600080fd5b5061060a600480360360408110156105f257600080fd5b506001600160a01b03813581169160200135166111a6565b6040805192835260208301919091528051918290030190f35b34801561062f57600080fd5b506104576004803603602081101561064657600080fd5b810190602081018135600160201b81111561066057600080fd5b82018360208201111561067257600080fd5b803590602001918460018302840111600160201b8311171561069357600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506111ca945050505050565b3480156106e057600080fd5b506106e96111ee565b6040805160ff9092168252519081900360200190f35b34801561070b57600080fd5b506105bd6111f3565b34801561072057600080fd5b506104576111f9565b34801561073557600080fd5b506105bd6111ff565b34801561074a57600080fd5b5061075361120b565b6040805161ffff9092168252519081900360200190f35b34801561077657600080fd5b506105bd611210565b34801561078b57600080fd5b506106e9611216565b3480156107a057600080fd5b506105bd61121b565b3480156107b557600080fd5b50610457611226565b3480156107ca57600080fd5b50610457600480360360208110156107e157600080fd5b503561122c565b3480156107f457600080fd5b506105bd611247565b34801561080957600080fd5b506106e9611250565b61092a6004803603608081101561082857600080fd5b810190602081018135600160201b81111561084257600080fd5b82018360208201111561085457600080fd5b803590602001918460208302840111600160201b8311171561087557600080fd5b919390929091602081019035600160201b81111561089257600080fd5b8201836020820111156108a457600080fd5b803590602001918460208302840111600160201b831117156108c557600080fd5b919390929091602081019035600160201b8111156108e257600080fd5b8201836020820111156108f457600080fd5b803590602001918460208302840111600160201b8311171561091557600080fd5b91935091503567ffffffffffffffff16611255565b604080519115158252519081900360200190f35b34801561094a57600080fd5b5061045761172a565b34801561095f57600080fd5b506106e9611730565b34801561097457600080fd5b506105bd611735565b34801561098957600080fd5b5061092a600480360360208110156109a057600080fd5b503561173b565b3480156109b357600080fd5b506104576117bc565b3480156109c857600080fd5b506106e96117c2565b3480156109dd57600080fd5b5061040d600480360360408110156109f457600080fd5b60ff8235169190810190604081016020820135600160201b811115610a1857600080fd5b820183602082011115610a2a57600080fd5b803590602001918460018302840111600160201b83111715610a4b57600080fd5b5090925090506117c7565b348015610a6257600080fd5b5061040d60048036036060811015610a7957600080fd5b508035906001600160a01b036020820135169060400135611910565b348015610aa157600080fd5b5061040d60048036036040811015610ab857600080fd5b506001600160a01b038135169060200135611996565b348015610ada57600080fd5b506106e9611b53565b348015610aef57600080fd5b506105bd611b58565b348015610b0457600080fd5b506105bd60048036036040811015610b1b57600080fd5b506001600160a01b038135169060200135611b64565b348015610b3d57600080fd5b50610457611ca2565b348015610b5257600080fd5b50610457611ca8565b348015610b6757600080fd5b506106e9611cae565b348015610b7c57600080fd5b5061092a611cb3565b348015610b9157600080fd5b506106e9611cbc565b61092a60048036036080811015610bb057600080fd5b5080356001600160a01b03908116916020810135909116906040810135906060013567ffffffffffffffff16611cc1565b348015610bed57600080fd5b50610429611cae565b348015610c0257600080fd5b5061040d60048036036040811015610c1957600080fd5b810190602081018135600160201b811115610c3357600080fd5b820183602082011115610c4557600080fd5b803590602001918460018302840111600160201b83111715610c6657600080fd5b919390929091602081019035600160201b811115610c8357600080fd5b820183602082011115610c9557600080fd5b803590602001918460018302840111600160201b83111715610cb657600080fd5b509092509050612382565b348015610ccd57600080fd5b5061040d60048036036040811015610ce457600080fd5b50803590602001356001600160a01b031661282a565b348015610d0657600080fd5b506105bd6128a0565b348015610d1b57600080fd5b506105bd6128aa565b348015610d3057600080fd5b506105bd60048036036020811015610d4757600080fd5b50356001600160a01b03166128b0565b348015610d6357600080fd5b506105bd60048036036020811015610d7a57600080fd5b50356001600160a01b03166128c2565b348015610d9657600080fd5b506104576128dd565b348015610dab57600080fd5b5061040d60048036036040811015610dc257600080fd5b60ff8235169190810190604081016020820135600160201b811115610de657600080fd5b820183602082011115610df857600080fd5b803590602001918460018302840111600160201b83111715610e1957600080fd5b5090925090506128e3565b348015610e3057600080fd5b5061040d60048036036040811015610e4757600080fd5b506001600160a01b03813581169160200135166129b3565b348015610e6b57600080fd5b50610457612c87565b348015610e8057600080fd5b5061040d612c8d565b348015610e9557600080fd5b506105bd60048036036020811015610eac57600080fd5b50356001600160a01b0316612d2d565b348015610ec857600080fd5b506106e9612d3f565b348015610edd57600080fd5b506106e9612d44565b348015610ef257600080fd5b50610457612d49565b348015610f0757600080fd5b506105bd612d4f565b348015610f1c57600080fd5b506105bd612d55565b348015610f3157600080fd5b506104f860048036036020811015610f4857600080fd5b50356001600160a01b0316612d63565b348015610f6457600080fd5b50610457612e8a565b606481565b61200181565b60005460609060ff16610fc0576040805162461bcd60e51b81526020600482015260196024820152600080516020615582833981519152604482015290519081900360640190fd5b33612000146110005760405162461bcd60e51b815260040180806020018281038252602f815260200180615530602f913960400191505060405180910390fd5b60ff8416600214156110525761104b83838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612e9092505050565b905061109f565b6040805162461bcd60e51b815260206004820152601860248201527f756e7265636f676e697a65642073796e207061636b6167650000000000000000604482015290519081900360640190fd5b9392505050565b33612000146110e65760405162461bcd60e51b815260040180806020018281038252602f815260200180615530602f913960400191505060405180910390fd5b6001600160a01b0380831660009081526007602090815260408083209385168352929052208054611151576040805162461bcd60e51b815260206004820152601060248201526f1b9bc81b1bd8dad95908185b5bdd5b9d60821b604482015290519081900360640190fd5b8054600082556040805182815290516001600160a01b0380861692908716917f152fb15aa5d80f843e1e4bd5f2fc9161714f169945024decec7e84fb910fdd519181900360200190a350505050565b60015490565b60076020908152600092835260408084209091529082529020805460019091015482565b6020818101516000908152600490915260409020546001600160a01b03165b919050565b600181565b60055481565b61100181565b670de0b6b3a764000081565b603881565b61a8c081565b600881565b66071afd498d000081565b61200081565b6000908152600460205260409020546001600160a01b031690565b6402540be40081565b600281565b6000805460ff1661129b576040805162461bcd60e51b81526020600482015260196024820152600080516020615582833981519152604482015290519081900360640190fd5b8685146112d95760405162461bcd60e51b815260040180806020018281038252603b8152602001806154f5603b913960400191505060405180910390fd5b8683146113175760405162461bcd60e51b815260040180806020018281038252603f8152602001806153c8603f913960400191505060405180910390fd5b426078018267ffffffffffffffff1610156113635760405162461bcd60e51b81526004018080602001828103825260248152602001806152b86024913960400191505060405180910390fd5b6402540be4003406156113a75760405162461bcd60e51b81526004018080602001828103825260408152602001806155f86040913960400191505060405180910390fd5b604080518681526020808802820101909152859060009081906060908480156113da578160200160208202803683370190505b50905060005b848110156114b5576402540be4008b8b838181106113fa57fe5b905060200201358161140857fe5b06156114455760405162461bcd60e51b815260040180806020018281038252603c815260200180615407603c913960400191505060405180910390fd5b61146a8b8b8381811061145457fe5b9050602002013585612fb490919063ffffffff16565b93506114966402540be4008c8c8481811061148157fe5b9050602002013561300e90919063ffffffff16565b8282815181106114a257fe5b60209081029190910101526001016113e0565b506001546114da906114cd908663ffffffff61305016565b849063ffffffff612fb416565b3410156115185760405162461bcd60e51b81526004018080602001828103825260568152602001806155a26056913960600191505060405180910390fd5b611528348463ffffffff6130a916565b91506115326150bc565b6040518060c001604052806221272160e91b60001b815260200160006001600160a01b031681526020018381526020018e8e808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505050908252506040805160208c810282810182019093528c82529283019290918d918d91829185019084908082843760009201919091525050509082525067ffffffffffffffff8916602090910152905061200063f7a251d760036115f6846130eb565b61160b876402540be40063ffffffff61300e16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611669578181015183820152602001611651565b50505050905090810190601f1680156116965780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156116b757600080fd5b505af11580156116cb573d6000803e3d6000fd5b505060408051600081523360208201528082018890526060810187905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a15060019c9b505050505050505050505050565b61100581565b601081565b60015481565b6000336120011461177d5760405162461bcd60e51b81526004018080602001828103825260338152602001806151d66033913960400191505060405180910390fd5b81156117b4576040516120019083156108fc029084906000818181858888f193505050501580156117b2573d6000803e3d6000fd5b505b506001919050565b61100881565b600b81565b60005460ff1661180c576040805162461bcd60e51b81526020600482015260196024820152600080516020615582833981519152604482015290519081900360640190fd5b336120001461184c5760405162461bcd60e51b815260040180806020018281038252602f815260200180615530602f913960400191505060405180910390fd5b60ff83166003141561189c5761189782828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506133a692505050565b61190b565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a15b505050565b33611008146119505760405162461bcd60e51b815260040180806020018281038252602381526020018061555f6023913960400191505060405180910390fd5b600083815260046020908152604080832080546001600160a01b039096166001600160a01b03199096168617905593825260038152838220949094556002909352912055565b81806001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b1580156119d057600080fd5b505afa1580156119e4573d6000803e3d6000fd5b505050506040513d60208110156119fa57600080fd5b50516001600160a01b03163314611a58576040805162461bcd60e51b815260206004820152601860248201527f6e6f74206f776e6572206f6620424550323020746f6b656e0000000000000000604482015290519081900360640190fd5b60008211611aa6576040805162461bcd60e51b81526020600482015260166024820152751e995c9bc81b1a5b5a5d081b9bdd08185b1b1bddd95960521b604482015290519081900360640190fd5b6001600160a01b038316600090815260036020526040902054611afc576040805162461bcd60e51b81526020600482015260096024820152681b9bdd08189bdd5b9960ba1b604482015290519081900360640190fd5b6001600160a01b038316600081815260066020908152604091829020859055815185815291513393927f9df3a90730dbf23b5cc18dbbd5f4af3fa94a0dffb6ff6841f98a9a9a6ac626a892908290030190a3505050565b600981565b677ce66c50e284000081565b6000805460ff16611baa576040805162461bcd60e51b81526020600482015260196024820152600080516020615582833981519152604482015290519081900360640190fd5b3361100514611bea5760405162461bcd60e51b815260040180806020018281038252602f815260200180615209602f913960400191505060405180910390fd5b6000478310611bf95747611bfb565b825b9050670de0b6b3a7640000811115611c17576000915050611c9c565b8015611c99576040516001600160a01b0385169082156108fc029083906000818181858888f19350505050158015611c53573d6000803e3d6000fd5b50604080516001600160a01b03861681526020810183905281517ff8b71c64315fc33b2ead2adfa487955065152a8ac33d9d5193aafd7f45dc15a0929181900390910190a15b90505b92915050565b61100781565b61100681565b600081565b60005460ff1681565b600381565b6000805460ff16611d07576040805162461bcd60e51b81526020600482015260196024820152600080516020615582833981519152604482015290519081900360640190fd5b426078018267ffffffffffffffff161015611d535760405162461bcd60e51b81526004018080602001828103825260248152602001806152b86024913960400191505060405180910390fd5b6402540be400340615611d975760405162461bcd60e51b81526004018080602001828103825260408152602001806155f86040913960400191505060405180910390fd5b600080806001600160a01b038816611e7657600154611dbd90879063ffffffff612fb416565b341015611dfb5760405162461bcd60e51b81526004018080602001828103825260618152602001806153426061913960800191505060405180910390fd5b6402540be400860615611e3f5760405162461bcd60e51b815260040180806020018281038252603c815260200180615407603c913960400191505060405180910390fd5b611e4f348763ffffffff6130a916565b9050611e66866402540be40063ffffffff61300e16565b6221272160e91b93509150612119565b6001600160a01b038816600090815260036020526040902054925082611ecd5760405162461bcd60e51b81526004018080602001828103825260318152602001806153116031913960400191505060405180910390fd5b600154341015611f0e5760405162461bcd60e51b815260040180806020018281038252603f815260200180615464603f913960400191505060405180910390fd5b506001600160a01b0387166000908152600260205260409020543490600881111580611f595750600881118015611f595750611f57876007198301600a0a63ffffffff61340216565b155b611f945760405162461bcd60e51b815260040180806020018281038252603c815260200180615407603c913960400191505060405180910390fd5b611f9e8782613444565b9250611fa984613484565b15611ff1576305f5e100831015611ff15760405162461bcd60e51b815260040180806020018281038252603a81526020018061525a603a913960400191505060405180910390fd5b60088110158061200b575060088110801561200b57508683115b6120465760405162461bcd60e51b81526004018080602001828103825260258152602001806153a36025913960400191505060405180910390fd5b677ce66c50e284000083111561208d5760405162461bcd60e51b81526004018080602001828103825260358152602001806152dc6035913960400191505060405180910390fd5b604080516323b872dd60e01b81523360048201523060248201526044810189905290516001600160a01b038b16916323b872dd9160648083019260209291908290030181600087803b1580156120e257600080fd5b505af11580156120f6573d6000803e3d6000fd5b505050506040513d602081101561210c57600080fd5b505161211757600080fd5b505b6121216150bc565b6040805160c0810182528581526001600160a01b038b166020820152815160018082528184018452919283019181602001602082028036833750505081526040805160018082528183019092526020928301929091908083019080368337505050815260408051600180825281830190925260209283019290919080830190803683370190505081526020018767ffffffffffffffff1681525090508281604001516000815181106121cf57fe5b6020026020010181815250508781606001516000815181106121ed57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505033816080015160008151811061221f57fe5b6001600160a01b039092166020928302919091019091015261200063f7a251d7600361224a846130eb565b61225f866402540be40063ffffffff61300e16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156122bd5781810151838201526020016122a5565b50505050905090810190601f1680156122ea5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561230b57600080fd5b505af115801561231f573d6000803e3d6000fd5b5050604080516001600160a01b038d1681523360208201528082018b90526060810186905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a150600198975050505050505050565b33611007146123c25760405162461bcd60e51b815260040180806020018281038252602e8152602001806154a3602e913960400191505060405180910390fd5b60208114612417576040805162461bcd60e51b815260206004820152601b60248201527f65787065637465642076616c7565206c656e6774682069732033320000000000604482015290519081900360640190fd5b606084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8801819004810282018101909252868152939450606093925086915085908190840183828082843760009201919091525050505060208301519091506772656c617946656560c01b81141561251f576020820151670de0b6b3a764000081118015906124c657506402540be4008106155b612517576040805162461bcd60e51b815260206004820152601960248201527f7468652072656c6179466565206f7574206f662072616e676500000000000000604482015290519081900360640190fd5b600155612795565b61259387878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601781527f6c617267655472616e736665724c6f636b506572696f640000000000000000006020820152915061358a9050565b1561262f57604080516020601f87018190048102820181019092528581526000916125d69188888083850183828082843760009201919091525061367192505050565b905062093a80811115612627576040805162461bcd60e51b81526020600482015260146024820152736c6f636b20706572696f6420746f6f206c6f6e6760601b604482015290519081900360640190fd5b600555612795565b61269b87878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526015815274189b9893185c99d9551c985b9cd9995c931a5b5a5d605a1b6020820152915061358a9050565b1561275857604080516020601f87018190048102820181019092528581526000916126de9188888083850183828082843760009201919091525061367192505050565b905068056bc75e2d631000008110156127285760405162461bcd60e51b81526004018080602001828103825260228152602001806152386022913960400191505060405180910390fd5b6000805260066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f855612795565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a878787876040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050505050565b336110081461286a5760405162461bcd60e51b815260040180806020018281038252602381526020018061555f6023913960400191505060405180910390fd5b600091825260046020908152604080842080546001600160a01b03191690556001600160a01b0392909216835260039052812055565b6221272160e91b81565b61c35081565b60026020526000908152604090205481565b6001600160a01b031660009081526003602052604090205490565b61100281565b60005460ff16612928576040805162461bcd60e51b81526020600482015260196024820152600080516020615582833981519152604482015290519081900360640190fd5b33612000146129685760405162461bcd60e51b815260040180806020018281038252602f815260200180615530602f913960400191505060405180910390fd5b60ff83166003141561189c5761189782828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061367692505050565b60085460ff16600214156129ff576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b6008805460ff191660021790556001600160a01b0380831660009081526007602090815260408083209385168352929052208054612a77576040805162461bcd60e51b815260206004820152601060248201526f1b9bc81b1bd8dad95908185b5bdd5b9d60821b604482015290519081900360640190fd5b8060010154421015612ad0576040805162461bcd60e51b815260206004820152601760248201527f7374696c6c206f6e206c6f636b696e6720706572696f64000000000000000000604482015290519081900360640190fd5b805460008083556001600160a01b038516612b43576040516001600160a01b038516906127109084906000818181858888f193505050503d8060008114612b33576040519150601f19603f3d011682016040523d82523d6000602084013e612b38565b606091505b505080915050612bd6565b846001600160a01b031663a9059cbb61c35086856040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b158015612ba657600080fd5b5087f1158015612bba573d6000803e3d6000fd5b50505050506040513d6020811015612bd157600080fd5b505190505b80612c28576040805162461bcd60e51b815260206004820152601e60248201527f776974686472617720756e6c6f636b656420746f6b656e206661696c65640000604482015290519081900360640190fd5b836001600160a01b0316856001600160a01b03167f832fc3e25f2b3e6fb0eb59419a73cba405f2a249fce75f7e31ea5a457a0323f1846040518082815260200191505060405180910390a350506008805460ff19166001179055505050565b61100381565b60005460ff1615612ce5576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b66071afd498d000060019081556000808052600260205260127fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b55805460ff19169091179055565b60066020526000908152604090205481565b600481565b600581565b61100081565b61271081565b69021e19e0c9bab240000081565b6001600160a01b03811660009081526003602090815260409182902054825182815280840190935260609290918391906020820181803683375050506020810183905290506000805b60208160ff161015612df357828160ff1681518110612dc757fe5b01602001516001600160f81b03191615612de657600190910190612deb565b612df3565b600101612dac565b5060608160ff166040519080825280601f01601f191660200182016040528015612e24576020820181803683370190505b50905060005b8260ff168160ff161015612e8057838160ff1681518110612e4757fe5b602001015160f81c60f81b828260ff1681518110612e6157fe5b60200101906001600160f81b031916908160001a905350600101612e2a565b5095945050505050565b61100481565b6060612e9a615108565b6000612ea584613774565b9150915080612efb576040805162461bcd60e51b815260206004820152601f60248201527f756e7265636f676e697a6564207472616e73666572496e207061636b61676500604482015290519081900360640190fd5b6000612f06836138b3565b905063ffffffff811615612f9a576040808401516020808601516001600160a01b03166000908152600290915291822054612f419190613444565b9050612f4b61513d565b60405180608001604052808660000151815260200183815260200186608001516001600160a01b031681526020018463ffffffff168152509050612f8e81613c19565b955050505050506111e9565b505060408051600081526020810190915291506111e99050565b600082820183811015611c99576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000611c9983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613cf5565b60008261305f57506000611c9c565b8282028284828161306c57fe5b0414611c995760405162461bcd60e51b81526004018080602001828103825260218152602001806154436021913960400191505060405180910390fd5b6000611c9983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613d97565b60408051600680825260e08201909252606091829190816020015b6060815260200190600190039081613106575050835190915061312890613df1565b8160008151811061313557fe5b602002602001018190525061315683602001516001600160a01b0316613e04565b8160018151811061316357fe5b6020026020010181905250600083604001515190506060816040519080825280602002602001820160405280156131ae57816020015b60608152602001906001900390816131995790505b50905060005b828110156131fb576131dc866040015182815181106131cf57fe5b6020026020010151613df1565b8282815181106131e857fe5b60209081029190910101526001016131b4565b5061320581613e27565b8360028151811061321257fe5b602002602001018190525060608260405190808252806020026020018201604052801561325357816020015b606081526020019060019003908161323e5790505b50905060005b838110156132a95761328a8760600151828151811061327457fe5b60200260200101516001600160a01b0316613e04565b82828151811061329657fe5b6020908102919091010152600101613259565b506132b381613e27565b846003815181106132c057fe5b602002602001018190525060608360405190808252806020026020018201604052801561330157816020015b60608152602001906001900390816132ec5790505b50905060005b84811015613341576133228860800151828151811061327457fe5b82828151811061332e57fe5b6020908102919091010152600101613307565b5061334b81613e27565b8560048151811061335857fe5b602002602001018190525061337a8760a0015167ffffffffffffffff16613df1565b8560058151811061338757fe5b602002602001018190525061339b85613e27565b979650505050505050565b6133ae615164565b60006133b983613eb1565b91509150806133f95760405162461bcd60e51b81526004018080602001828103825260248152602001806154d16024913960400191505060405180910390fd5b61190b8261407c565b6000611c9983836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f0000000000000000815250614500565b6000600882111561346d57613466836007198401600a0a63ffffffff61300e16565b9050611c9c565b611c99836008849003600a0a63ffffffff61305016565b604080516020808252818301909252600091606091906020820181803683375050506020810184905290506000805b60208160ff1610156134fa57828160ff16815181106134ce57fe5b01602001516001600160f81b031916156134ed576001909101906134f2565b6134fa565b6001016134b3565b50600760ff82161015613512576000925050506111e9565b816005820360ff168151811061352457fe5b6020910101516001600160f81b031916602d60f81b14613549576000925050506111e9565b816001820360ff168151811061355b57fe5b6020910101516001600160f81b031916604d60f81b14613580576000925050506111e9565b5060019392505050565b6000816040516020018082805190602001908083835b602083106135bf5780518252601f1990920191602091820191016135a0565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b6020831061362d5780518252601f19909201916020918201910161360e565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b61367e6150bc565b600061368983614562565b91509150806136c95760405162461bcd60e51b81526004018080602001828103825260248152602001806152946024913960400191505060405180910390fd5b6136d1615164565b602080840180516001600160a01b0390811684526040808701518585015291511660009081526002909252812054905b8460400151518110156137525761372f8560400151828151811061372157fe5b6020026020010151836147c6565b8560400151828151811061373f57fe5b6020908102919091010152600101613701565b50608084015160408301526005606083015261376d8261407c565b5050505050565b61377c615108565b6000613786615108565b61378e61519b565b61379f61379a866147ff565b614824565b90506000805b6137ae8361486e565b156138a657806137d0576137c96137c48461488f565b6148dd565b845261389e565b80600114156137fd576137ea6137e58461488f565b614994565b6001600160a01b0316602085015261389e565b806002141561381c576138126137c48461488f565b604085015261389e565b8060031415613844576138316137e58461488f565b6001600160a01b0316606085015261389e565b806004141561386c576138596137e58461488f565b6001600160a01b0316608085015261389e565b8060051415613899576138816137c48461488f565b67ffffffffffffffff1660a08501526001915061389e565b6138a6565b6001016137a5565b5091935090915050915091565b60208101516000906001600160a01b03166139f7578160a0015167ffffffffffffffff164211156138e6575060016111e9565b81604001514710156138fa575060036111e9565b613903826149ae565b61397857606082015160408084015190516000926001600160a01b0316916127109184818181858888f193505050503d806000811461395e576040519150601f19603f3d011682016040523d82523d6000602084013e613963565b606091505b50509050806139765750600490506111e9565b505b7f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5982602001518360600151846040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a15060006111e9565b8160a0015167ffffffffffffffff16421115613a15575060016111e9565b81516020808401516001600160a01b031660009081526003909152604090205414613a42575060026111e9565b602080830151604080516370a0823160e01b815230600482015290516000936001600160a01b03909316926370a082319261c3509260248083019392829003018187803b158015613a9257600080fd5b5086fa158015613aa6573d6000803e3d6000fd5b50505050506040513d6020811015613abd57600080fd5b50516040840151909150811015613ad85750600390506111e9565b613ae1836149ae565b613b9857600083602001516001600160a01b031663a9059cbb61c350866060015187604001516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b158015613b5657600080fd5b5087f1158015613b6a573d6000803e3d6000fd5b50505050506040513d6020811015613b8157600080fd5b5051905080613b965750600591506111e99050565b505b7f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5983602001518460600151856040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a150600090506111e9565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081613c345750508351909150613c5690613df1565b81600081518110613c6357fe5b6020026020010181905250613c7b8360200151613df1565b81600181518110613c8857fe5b6020026020010181905250613ca983604001516001600160a01b0316613e04565b81600281518110613cb657fe5b6020026020010181905250613cd4836060015163ffffffff16613df1565b81600381518110613ce157fe5b602002602001018190525061109f81613e27565b60008183613d815760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613d46578181015183820152602001613d2e565b50505050905090810190601f168015613d735780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581613d8d57fe5b0495945050505050565b60008184841115613de95760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315613d46578181015183820152602001613d2e565b505050900390565b6060611c9c613dff83614b1c565b614c02565b60408051600560a21b831860148201526034810190915260609061109f81614c02565b6060815160001415613e4857506040805160008152602081019091526111e9565b606082600081518110613e5757fe5b602002602001015190506000600190505b8351811015613e9857613e8e82858381518110613e8157fe5b6020026020010151614c54565b9150600101613e68565b5061109f613eab825160c060ff16614cd1565b82614c54565b613eb9615164565b6000613ec3615164565b613ecb61519b565b613ed761379a866147ff565b90506000805b613ee68361486e565b156138a65780613f0c57613efc6137e58461488f565b6001600160a01b03168452614074565b8060011415613fad576060613f28613f238561488f565b614dc9565b90508051604051908082528060200260200182016040528015613f55578160200160208202803683370190505b50602086015260005b8151811015613fa657613f83828281518110613f7657fe5b60200260200101516148dd565b86602001518281518110613f9357fe5b6020908102919091010152600101613f5e565b5050614074565b806002141561404f576060613fc4613f238561488f565b90508051604051908082528060200260200182016040528015613ff1578160200160208202803683370190505b50604086015260005b8151811015613fa65761401f82828151811061401257fe5b6020026020010151614994565b8660400151828151811061402f57fe5b6001600160a01b0390921660209283029190910190910152600101613ffa565b8060031415613899576140646137c48461488f565b63ffffffff166060850152600191505b600101613edd565b80516001600160a01b03166142a65760005b8160200151518110156142a0576000826040015182815181106140ad57fe5b60200260200101516001600160a01b0316612710846020015184815181106140d157fe5b60209081029190910101516040516000818181858888f193505050503d8060008114614119576040519150601f19603f3d011682016040523d82523d6000602084013e61411e565b606091505b50509050806141e1577f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061415d57fe5b60200260200101518560200151858151811061417557fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a1614297565b7fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a83600001518460400151848151811061421757fe5b60200260200101518560200151858151811061422f57fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b5060010161408e565b506144fd565b60005b8160200151518110156144fb57600082600001516001600160a01b031663a9059cbb61c350856040015185815181106142de57fe5b6020026020010151866020015186815181106142f657fe5b60200260200101516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b15801561434d57600080fd5b5087f1158015614361573d6000803e3d6000fd5b50505050506040513d602081101561437857600080fd5b50519050801561443c577fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a8360000151846040015184815181106143b857fe5b6020026020010151856020015185815181106143d057fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a16144f2565b7f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061447257fe5b60200260200101518560200151858151811061448a57fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b506001016142a9565b505b50565b6000818361454f5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315613d46578181015183820152602001613d2e565b5082848161455957fe5b06949350505050565b61456a6150bc565b60006145746150bc565b61457c61519b565b61458861379a866147ff565b90506000805b6145978361486e565b156138a657806145b4576145ad6137c48461488f565b84526147be565b80600114156145dc576145c96137e58461488f565b6001600160a01b031660208501526147be565b806002141561466b5760606145f3613f238561488f565b90508051604051908082528060200260200182016040528015614620578160200160208202803683370190505b50604086015260005b815181101561466457614641828281518110613f7657fe5b8660400151828151811061465157fe5b6020908102919091010152600101614629565b50506147be565b8060031415614700576060614682613f238561488f565b905080516040519080825280602002602001820160405280156146af578160200160208202803683370190505b50606086015260005b8151811015614664576146d082828151811061401257fe5b866060015182815181106146e057fe5b6001600160a01b03909216602092830291909101909101526001016146b8565b8060041415614795576060614717613f238561488f565b90508051604051908082528060200260200182016040528015614744578160200160208202803683370190505b50608086015260005b81518110156146645761476582828151811061401257fe5b8660800151828151811061477557fe5b6001600160a01b039092166020928302919091019091015260010161474d565b8060051415613899576147aa6137c48461488f565b67ffffffffffffffff1660a0850152600191505b60010161458e565b600060088211156147e857613466836007198401600a0a63ffffffff61305016565b611c99836008849003600a0a63ffffffff61300e16565b6148076151bb565b506040805180820190915281518152602082810190820152919050565b61482c61519b565b61483582614e9a565b61483e57600080fd5b600061484d8360200151614eca565b60208085015160408051808201909152868152920190820152915050919050565b60006148786151bb565b505080518051602091820151919092015191011190565b6148976151bb565b6148a08261486e565b6148a957600080fd5b602082015160006148b982614f2d565b80830160209586015260408051808201909152908152938401919091525090919050565b8051600090158015906148f257508151602110155b6148fb57600080fd5b600061490a8360200151614eca565b90508083600001511015614965576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b82516020808501518301805192849003929183101561498b57826020036101000a820491505b50949350505050565b80516000906015146149a557600080fd5b611c9c826148dd565b600080805260066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f8541580156149e75750600554155b15614a295760008052600660205269021e19e0c9bab24000007f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f85561a8c06005555b6020808301516001600160a01b0316600090815260069091526040902054801580614a575750808360400151105b15614a665760009150506111e9565b6020808401516001600160a01b039081166000908152600783526040808220606088015190931682529190925290819020908401518154614aac9163ffffffff612fb416565b8155600554420160018201819055606085015160208087015160408089015181519081529283019490945283516001600160a01b039384169493909116927f3fb83143cd331170da18fb1e8564d97e8ec39264b6ecb1ba248ea7596ab07258928290030190a35060019392505050565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416614b6057506018614b84565b6fffffffffffffffffffffffffffffffff198416614b8057506010614b84565b5060005b6020811015614bba57818181518110614b9957fe5b01602001516001600160f81b03191615614bb257614bba565b600101614b84565b60008160200390506060816040519080825280601f01601f191660200182016040528015614bef576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015614c345750607f60f81b82600081518110614c2257fe5b01602001516001600160f81b03191611155b15614c405750806111e9565b611c9c614c528351608060ff16614cd1565b835b6060806040519050835180825260208201818101602087015b81831015614c85578051835260209283019201614c6d565b50855184518101855292509050808201602086015b81831015614cb2578051835260209283019201614c9a565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310614d21576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b60408051600180825281830190925260609160208201818036833701905050905060378411614d7b5782840160f81b81600081518110614d5d57fe5b60200101906001600160f81b031916908160001a9053509050611c9c565b6060614d8685614b1c565b90508381510160370160f81b82600081518110614d9f57fe5b60200101906001600160f81b031916908160001a905350614dc08282614c54565b95945050505050565b6060614dd482614e9a565b614ddd57600080fd5b6000614de883615060565b9050606081604051908082528060200260200182016040528015614e2657816020015b614e136151bb565b815260200190600190039081614e0b5790505b5090506000614e388560200151614eca565b60208601510190506000805b84811015614e8f57614e5583614f2d565b9150604051806040016040528083815260200184815250848281518110614e7857fe5b602090810291909101015291810191600101614e44565b509195945050505050565b8051600090614eab575060006111e9565b6020820151805160001a9060c0821015613580576000925050506111e9565b8051600090811a6080811015614ee45760009150506111e9565b60b8811080614eff575060c08110801590614eff575060f881105b15614f0e5760019150506111e9565b60c0811015614f225760b5190190506111e9565b60f5190190506111e9565b80516000908190811a6080811015614f485760019150615059565b60b8811015614f5d57607e1981019150615059565b60c0811015614fd757600060b78203600186019550806020036101000a865104915060018101820193505080831015614fd1576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50615059565b60f8811015614fec5760be1981019150615059565b600060f78203600186019550806020036101000a865104915060018101820193505080831015615057576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b8051600090615071575060006111e9565b600080905060006150858460200151614eca565b602085015185519181019250015b808210156150b3576150a482614f2d565b60019093019290910190615093565b50909392505050565b6040518060c001604052806000801916815260200160006001600160a01b03168152602001606081526020016060815260200160608152602001600067ffffffffffffffff1681525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b60408051608081018252600080825260208201819052918101829052606081019190915290565b604051806080016040528060006001600160a01b031681526020016060815260200160608152602001600063ffffffff1681525090565b60405180604001604052806151ae6151bb565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe6f6e6c79207374616b696e672073797374656d20636f6e74726163742063616e2063616c6c20746869732066756e6374696f6e746865206d6573736167652073656e646572206d75737420626520696e63656e746976697a6520636f6e7472616374626e62206c61726765207472616e73666572206c696d697420746f6f20736d616c6c466f72206d696e69546f6b656e2c20746865207472616e7366657220616d6f756e74206d757374206e6f74206265206c657373207468616e2031756e7265636f676e697a6564207472616e736665724f75742073796e207061636b61676565787069726554696d65206d7573742062652074776f206d696e75746573206c61746572616d6f756e7420697320746f6f206c617267652c20657863656564206d6178696d756d206265703220746f6b656e20616d6f756e7474686520636f6e747261637420686173206e6f74206265656e20626f756e6420746f20616e79206265703220746f6b656e726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e736665724f757420424e4220616d6f756e7420616e64206d696e696d756d2072656c6179466565616d6f756e7420697320746f6f206c617267652c2075696e74323536206f766572666c6f774c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620726566756e644164647273696e76616c6964207472616e7366657220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e20746865206d696e696d756d2072656c6179466565746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374756e7265636f676e697a6564207472616e736665724f75742061636b207061636b6167654c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620616d6f756e7473746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d73672073656e646572206d75737420626520746f6b656e4d616e6167657274686520636f6e7472616374206e6f7420696e69742079657400000000000000726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e7366657220424e4220616d6f756e7420616e642072656c6179466565696e76616c696420726563656976656420424e4220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6ea2646970667358221220b559cd4e3125714f2f5ec5e81bc7a26f9ea28156afc15d661cb954c3ea9a53d864736f6c63430006040033", - }, - { - ContractAddr: CrossChainContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/78e13b1d3a5a1b08c9208af94a9b14fc1efda213", - Code: "608060405234801561001057600080fd5b50600436106103995760003560e01c8063718a8aa8116101e9578063c27cdcfb1161010f578063dc927faf116100ad578063f7a251d71161007c578063f7a251d714610b2f578063f9a2bbc714610ba7578063fc3e590814610baf578063fd6a687914610bb757610399565b8063dc927faf14610af7578063e1c7392a14610aff578063e3b0480514610b07578063e6400bbe14610b2757610399565b8063ccc108d7116100e9578063ccc108d714610ab0578063d31f968d14610ab8578063d76a867514610ae7578063dc40433114610aef57610399565b8063c27cdcfb14610a80578063c780e9de14610aa0578063c81b166214610aa857610399565b80638cc8f56111610187578063a78abc1611610156578063a78abc16146109b2578063ab51bb96146109ba578063ac431751146109c2578063b0355f5b1461078157610399565b80638cc8f5611461088757806396713da91461099a5780639dc09262146109a2578063a1a11bf5146109aa57610399565b806375d47a0a116101c357806375d47a0a146108a75780637942fd05146108af57806384013b6a146108b7578063863fe4ab1461099257610399565b8063718a8aa81461088f578063719482d51461089757806374f079b81461089f57610399565b8063422f9050116102ce57806363e1394e1161026c5780636de380bd1161023b5780636de380bd146108575780636e47a51a1461085f5780636e47b4821461087f57806370fd5bad1461088757610399565b806363e1394e146107ff5780636a3cb34d146108075780636bacff2c1461080f5780636c46aa681461080757610399565b80634bf6c882116102a85780634bf6c882146107b957806351e80672146107c15780635692ddd3146107c95780635f832177146107d157610399565b8063422f90501461078957806343756e5c146107a9578063493279b1146107b157610399565b8063299b533d1161033b578063308325f411610315578063308325f4146106155780633a648b151461061d5780633bdc47a6146106595780633dffc3871461078157610399565b8063299b533d146105a35780632af6f399146105d75780632ff32aea146105f457610399565b806314b3023b1161037757806314b3023b146104015780631d1309351461041b5780631e275ae11461043757806322556cdc1461059b57610399565b806305e682581461039e5780630bee7a67146103bc5780630e2374a5146103dd575b600080fd5b6103a6610bbf565b6040805160ff9092168252519081900360200190f35b6103c4610bc4565b6040805163ffffffff9092168252519081900360200190f35b6103e5610bc9565b604080516001600160a01b039092168252519081900360200190f35b610409610bcf565b60408051918252519081900360200190f35b610423610bd5565b604080519115158252519081900360200190f35b610599600480360361010081101561044e57600080fd5b81018160a081016080820135600160201b81111561046b57600080fd5b82018360208201111561047d57600080fd5b803590602001918460018302840111600160201b8311171561049e57600080fd5b919390929091602081019035600160201b8111156104bb57600080fd5b8201836020820111156104cd57600080fd5b803590602001918460018302840111600160201b831117156104ee57600080fd5b919390929091602081019035600160201b81111561050b57600080fd5b82018360208201111561051d57600080fd5b803590602001918460018302840111600160201b8311171561053e57600080fd5b919390929091602081019035600160201b81111561055b57600080fd5b82018360208201111561056d57600080fd5b803590602001918460018302840111600160201b8311171561058e57600080fd5b509092509050610bde565b005b6104096112c2565b6105c0600480360360208110156105b957600080fd5b50356112c7565b6040805161ffff9092168252519081900360200190f35b610423600480360360208110156105ed57600080fd5b50356112dd565b6105fc6112f2565b60408051600792830b90920b8252519081900360200190f35b6104096112fb565b61063d6004803603602081101561063357600080fd5b503560ff16611301565b604080516001600160401b039092168252519081900360200190f35b61070c6004803603606081101561066f57600080fd5b60ff82351691602081013591810190606081016040820135600160201b81111561069857600080fd5b8201836020820111156106aa57600080fd5b803590602001918460018302840111600160201b831117156106cb57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061131c945050505050565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561074657818101518382015260200161072e565b50505050905090810190601f1680156107735780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103a6611392565b6104236004803603602081101561079f57600080fd5b503560ff16611397565b6103e56113ac565b6105c06113b2565b6103a66113b7565b6103e56113bc565b6104096113c2565b610599600480360360408110156107e757600080fd5b506001600160a01b03813581169160200135166113f2565b610409611652565b6105c061167a565b61082c6004803603602081101561082557600080fd5b503561167f565b6040805161ffff90941684526001600160801b03909216602084015282820152519081900360600190f35b6104096116ae565b6103e56004803603602081101561087557600080fd5b503560ff166116d5565b6103e56116f0565b6103a661167a565b6103a66116f6565b6105c0611392565b6104096116fb565b6103e5611701565b6103a6611707565b610599600480360360a08110156108cd57600080fd5b810190602081018135600160201b8111156108e757600080fd5b8201836020820111156108f957600080fd5b803590602001918460018302840111600160201b8311171561091a57600080fd5b919390929091602081019035600160201b81111561093757600080fd5b82018360208201111561094957600080fd5b803590602001918460018302840111600160201b8311171561096a57600080fd5b919350915080356001600160401b03908116916020810135909116906040013560ff1661170c565b610409612a36565b6103a6612a3e565b6103e5612a43565b6103e5612a49565b610423612a4f565b6103c4610bbf565b610599600480360360408110156109d857600080fd5b810190602081018135600160201b8111156109f257600080fd5b820183602082011115610a0457600080fd5b803590602001918460018302840111600160201b83111715610a2557600080fd5b919390929091602081019035600160201b811115610a4257600080fd5b820183602082011115610a5457600080fd5b803590602001918460018302840111600160201b83111715610a7557600080fd5b509092509050612a58565b61063d60048036036020811015610a9657600080fd5b503560ff1661351c565b610409613537565b6103e561355b565b610599613561565b61042360048036036040811015610ace57600080fd5b5080356001600160a01b0316906020013560ff166137b5565b61070c6137d5565b6104096137f4565b6103e56137fa565b610599613800565b61063d60048036036020811015610b1d57600080fd5b503560ff16613bb7565b610599613bd2565b61059960048036036060811015610b4557600080fd5b60ff8235169190810190604081016020820135600160201b811115610b6957600080fd5b820183602082011115610b7b57600080fd5b803590602001918460018302840111600160201b83111715610b9c57600080fd5b919350915035613df1565b6103e5613f34565b6103a6613f3a565b6103e5613f3f565b600081565b606481565b61200181565b60015481565b600b5460ff1681565b60005460ff16610c23576040805162461bcd60e51b81526020600482015260196024820152600080516020614a4c833981519152604482015290519081900360640190fd5b604080516337d7f9c160e21b81526001600160401b038b35166004820181905291516110039163df5fe704916024808301926020929190829003018186803b158015610c6e57600080fd5b505afa158015610c82573d6000803e3d6000fd5b505050506040513d6020811015610c9857600080fd5b5051610cd55760405162461bcd60e51b8152600401808060200182810382526023815260200180614a6c6023913960400191505060405180910390fd5b604080516337d7f9c160e21b815260208c8101356001600160401b03166004830181905292516110039263df5fe704926024808301939192829003018186803b158015610d2157600080fd5b505afa158015610d35573d6000803e3d6000fd5b505050506040513d6020811015610d4b57600080fd5b5051610d885760405162461bcd60e51b8152600401808060200182810382526023815260200180614a6c6023913960400191505060405180910390fd5b60608b013560ff81166000908152600560205260409020546001600160401b03909116906001600160a01b0316610e01576040805162461bcd60e51b815260206004820152601860248201527718da185b9b995b081a5cc81b9bdd081cdd5c1c1bdc9d195960421b604482015290519081900360640190fd5b600b5460ff1615610e45576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b8888604051808383808284376040519201829003822094508f93508e9250819050838380828437808301925050509250505060405180910390201415610ec1576040805162461bcd60e51b815260206004820152600c60248201526b1cd85b59481c185e5b1bd85960a21b604482015290519081900360640190fd5b60606001600160401b0360408e01358116908e83013516610ee28282613f45565b80516020808301919091206000818152600e9092526040909120549194509060ff1615610f4b576040805162461bcd60e51b8152602060048201526012602482015271185b1c9958591e4818da185b1b195b99d95960721b604482015290519081900360640190fd5b6000908152600e60205260408120805460ff191660011790558f8160200201356001600160401b0316905060608f8f8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060608c8c8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506040805163cba510a960e01b81526001600160401b038a16600482015290519596509094611003945063cba510a9935060248083019350602092829003018186803b15801561104157600080fd5b505afa158015611055573d6000803e3d6000fd5b505050506040513d602081101561106b57600080fd5b505160408051808201909152600381526269626360e81b6020820152909150611098908290898686613f8d565b6110e1576040805162461bcd60e51b81526020600482015260156024820152740696e76616c6964206d65726b6c652070726f6f663605c1b604482015290519081900360640190fd5b5050505060008f6001600481106110f457fe5b60200201356001600160401b0316905060608d8d8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8f018190048102820181019092528d815293945060609392508d91508c908190840183828082843760009201829052506040805163cba510a960e01b81526001600160401b038a16600482015290519596509094611003945063cba510a9935060248083019350602092829003018186803b1580156111c057600080fd5b505afa1580156111d4573d6000803e3d6000fd5b505050506040513d60208110156111ea57600080fd5b505160408051808201909152600381526269626360e81b6020820152909150611217908290898686613f8d565b611260576040805162461bcd60e51b8152602060048201526015602482015274696e76616c6964206d65726b6c652070726f6f663160581b604482015290519081900360640190fd5b5050505061126c61408a565b604080516001600160401b038416815260ff83166020820152815133927f039eb91179ffd7d3b6e97f8ea106e748e827f910b872375dbc9c14a362319c3c928290030190a2505050505050505050505050505050565b603281565b600d6020526000908152604090205461ffff1681565b600e6020526000908152604090205460ff1681565b60045460070b81565b60025481565b600a602052600090815260409020546001600160401b031681565b60606000825160210190506060816040519080825280601f01601f191660200182016040528015611354576020820181803683370190505b506021810186905260018101879052828152905060418101600061137786614108565b50905061138681838851614112565b50909695505050505050565b600181565b60096020526000908152604090205460ff1681565b61100181565b603881565b600881565b61200081565b604080517710d05390d15317d514905394d1915497d41493d413d4d05360421b8152905190819003601801902081565b60005460ff16611437576040805162461bcd60e51b81526020600482015260196024820152600080516020614a4c833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b15801561147a57600080fd5b505afa15801561148e573d6000803e3d6000fd5b505050506040513d60208110156114a457600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b1580156114e557600080fd5b505afa1580156114f9573d6000803e3d6000fd5b505050506040513d602081101561150f57600080fd5b505190508061151c575060155b60008211801561152c5750808211155b61156b576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b604080516001600160a01b038087166020808401919091529086168284015282518083038401815260608301808552815191909201207710d05390d15317d514905394d1915497d41493d413d4d05360421b90915291519081900360780190206000906115d89083614153565b9050801561164a5760408051630911a2c160e11b81526001600160a01b03888116600483015287166024820152905161100491631223458291604480830192600092919082900301818387803b15801561163157600080fd5b505af1158015611645573d6000803e3d6000fd5b505050505b505050505050565b604080516f14d554d411539117d41493d413d4d05360821b8152905190819003601001902081565b600281565b600c602052600090815260409020805460019091015461ffff8216916201000090046001600160801b03169083565b604080516e149153d4115397d41493d413d4d053608a1b8152905190819003600f01902081565b6005602052600090815260409020546001600160a01b031681565b61100581565b601081565b60035481565b61100881565b600b81565b60005460ff16611751576040805162461bcd60e51b81526020600482015260196024820152600080516020614a4c833981519152604482015290519081900360640190fd5b60408051630a83aaa960e31b815233600482015290516110069163541d5548916024808301926020929190829003018186803b15801561179057600080fd5b505afa1580156117a4573d6000803e3d6000fd5b505050506040513d60208110156117ba57600080fd5b505161180d576040805162461bcd60e51b815260206004820152601f60248201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604482015290519081900360640190fd5b73b005741528b86f5952469d80a8614591e3c5b632331480611842575073446aa6e0dc65690403df3f127750da1322941f3e33145b61187d5760405162461bcd60e51b815260040180806020018281038252602a8152602001806149f0602a913960400191505060405180910390fd5b60ff8116600090815260086020526040902054829082906001600160401b0390811690831681146118ed576040805162461bcd60e51b815260206004820152601560248201527439b2b8bab2b731b2903737ba1034b71037b93232b960591b604482015290519081900360640190fd5b60ff8216600090815260086020908152604091829020805467ffffffffffffffff1916600185016001600160401b039081169190911790915582516337d7f9c160e21b81529089166004820152915188926110039263df5fe70492602480840193829003018186803b15801561196257600080fd5b505afa158015611976573d6000803e3d6000fd5b505050506040513d602081101561198c57600080fd5b50516119c95760405162461bcd60e51b8152600401808060200182810382526023815260200180614a6c6023913960400191505060405180910390fd5b60ff851660009081526005602052604090205485906001600160a01b0316611a33576040805162461bcd60e51b815260206004820152601860248201527718da185b9b995b081a5cc81b9bdd081cdd5c1c1bdc9d195960421b604482015290519081900360640190fd5b60ff86166000908152600a6020526040902054889087906001600160401b039081169083161015611a9c576040805162461bcd60e51b815260206004820152600e60248201526d3a37b79037b632103432b0b232b960911b604482015290519081900360640190fd5b60ff81166000908152600a60205260409020546001600160401b03838116911614611aee5760ff81166000908152600a60205260409020805467ffffffffffffffff19166001600160401b0384161790555b600b5460ff1615611b32576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b60608e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060608d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509050611c766110036001600160a01b031663cba510a98e6040518263ffffffff1660e01b815260040180826001600160401b03166001600160401b0316815260200191505060206040518083038186803b158015611c1f57600080fd5b505afa158015611c33573d6000803e3d6000fd5b505050506040513d6020811015611c4957600080fd5b505160408051808201909152600381526269626360e81b6020820152611c6f8e8e613f45565b8585613f8d565b611cbe576040805162461bcd60e51b815260206004820152601460248201527334b73b30b634b21036b2b935b63290383937b7b360611b604482015290519081900360640190fd5b60408051631bb5062960e31b81526001600160401b038e16600482015290516000916110039163dda8314891602480820192602092909190829003018186803b158015611d0a57600080fd5b505afa158015611d1e573d6000803e3d6000fd5b505050506040513d6020811015611d3457600080fd5b505190508b8b600080806060611d4989614438565b935093509350935083611e0b578460ff16866001600160401b03167ff7b2e42d694eb1100184aae86d4245d9e46966100b1dc7e723275b98326854ac8b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015611dc3578181015183820152602001611dab565b50505050905090810190601f168015611df05780820380516001836020036101000a031916815260200191505b509250505060405180910390a3505050505050505050612a26565b6040805160ff85811682529151918716916001600160401b038916917f36afdaf439a8f43fe72135135d804ae620b37a474f0943b5b85f6788312cad40919081900360200190a360ff83166123905760ff85166000818152600560209081526040808320548151631182b87560e01b815260048101958652602481019283528651604482015286516001600160a01b03909216958695631182b875958d958a9593949093606490910192918601918190849084905b83811015611ed8578181015183820152602001611ec0565b50505050905090810190601f168015611f055780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b158015611f2557600080fd5b505af192505050801561200957506040513d6000823e601f3d908101601f191682016040526020811015611f5857600080fd5b8101908080516040519392919084600160201b821115611f7757600080fd5b908301906020820185811115611f8c57600080fd5b8251600160201b811182820188101715611fa557600080fd5b82525081516020918201929091019080838360005b83811015611fd2578181015183820152602001611fba565b50505050905090810190601f168015611fff5780820380516001836020036101000a031916815260200191505b5060405250505060015b61231b576040516000815260443d1015612025575060006120c0565b60046000803e60005160e01c6308c379a081146120465760009150506120c0565b60043d036004833e81513d60248201116001600160401b0382111715612071576000925050506120c0565b80830180516001600160401b038111156120925760009450505050506120c0565b8060208301013d86018111156120b0576000955050505050506120c0565b601f01601f191660405250925050505b806120cb57506121dd565b60ff8716600090815260076020526040812054612102916001600160401b039091169089906120fd906002908861131c565b6144e8565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf948794849390840192918601918190849084905b8381101561219d578181015183820152602001612185565b50505050905090810190601f1680156121ca5780820380516001836020036101000a031916815260200191505b509250505060405180910390a250612316565b3d808015612207576040519150601f19603f3d011682016040523d82523d6000602084013e61220c565b606091505b5060ff871660009081526007602052604081205461223f916001600160401b039091169089906120fd906002908861131c565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351948794849390840192918601918190849084905b838110156122da5781810151838201526020016122c2565b50505050905090810190601f1680156123075780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b61238a565b8051156123885760ff8716600090815260076020526040812054612354916001600160401b039091169089906120fd906001908661131c565b60ff8716600090815260076020526040902080546001600160401b038082166001011667ffffffffffffffff199091161790555b505b5061295e565b60ff8316600114156126345760ff8516600081815260056020908152604080832054815163831d65d160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563831d65d1958d958a9593949093606490910192918601918190849084905b8381101561241a578181015183820152602001612402565b50505050905090810190601f1680156124475780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561246757600080fd5b505af1925050508015612478575060015b61238a576040516000815260443d10156124945750600061252f565b60046000803e60005160e01c6308c379a081146124b557600091505061252f565b60043d036004833e81513d60248201116001600160401b03821117156124e05760009250505061252f565b80830180516001600160401b0381111561250157600094505050505061252f565b8060208301013d860181111561251f5760009550505050505061252f565b601f01601f191660405250925050505b8061253a575061259f565b60408051602080825283518183015283516001600160a01b038616937ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf938693909283928301918501908083836000831561219d578181015183820152602001612185565b3d8080156125c9576040519150601f19603f3d011682016040523d82523d6000602084013e6125ce565b606091505b5060408051602080825283518183015283516001600160a01b038616937f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd297735193869390928392830191850190808383600083156122da5781810151838201526020016122c2565b60ff83166002141561295e5760ff8516600081815260056020908152604080832054815163c8509d8160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563c8509d81958d958a9593949093606490910192918601918190849084905b838110156126be5781810151838201526020016126a6565b50505050905090810190601f1680156126eb5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561270b57600080fd5b505af192505050801561271c575060015b61295c576040516000815260443d1015612738575060006127d3565b60046000803e60005160e01c6308c379a081146127595760009150506127d3565b60043d036004833e81513d60248201116001600160401b0382111715612784576000925050506127d3565b80830180516001600160401b038111156127a55760009450505050506127d3565b8060208301013d86018111156127c3576000955050505050506127d3565b601f01601f191660405250925050505b806127de5750612887565b816001600160a01b03167ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf826040518080602001828103825283818151815260200191508051906020019080838360005b8381101561284757818101518382015260200161282f565b50505050905090810190601f1680156128745780820380516001836020036101000a031916815260200191505b509250505060405180910390a25061295c565b3d8080156128b1576040519150601f19603f3d011682016040523d82523d6000602084013e6128b6565b606091505b50816001600160a01b03167f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351826040518080602001828103825283818151815260200191508051906020019080838360005b83811015612920578181015183820152602001612908565b50505050905090810190601f16801561294d5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b505b60ff80861660009081526009602052604090205461100591636f93d2e6918a91339187911680612990575060ff881615155b604080516001600160e01b031960e088901b1681526001600160a01b039586166004820152939094166024840152604483019190915215156064820152905160848083019260209291908290030181600087803b1580156129f057600080fd5b505af1158015612a04573d6000803e3d6000fd5b505050506040513d6020811015612a1a57600080fd5b50505050505050505050505b5050505050505050505050505050565b630100380081565b600981565b61100781565b61100681565b60005460ff1681565b3361100714612a985760405162461bcd60e51b815260040180806020018281038252602e815260200180614978602e913960400191505060405180910390fd5b600b5460ff1615612adc576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b612b4584848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526012815271626174636853697a65466f724f7261636c6560701b602082015291506146829050565b15612be057604080516020601f8401819004810282018101909252828152600091612b889185858083850183828082843760009201919091525061476992505050565b90506127108111158015612b9d5750600a8110155b612bd85760405162461bcd60e51b8152600401808060200182810382526032815260200180614a1a6032913960400191505060405180910390fd5b60015561348a565b612c4984848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601281527118591913dc955c19185d1950da185b9b995b60721b602082015291506146829050565b15612dd157606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060169091149050612ccc5760405162461bcd60e51b815260040180806020018281038252605a815260200180614891605a913960600191505060405180910390fd5b60018101516002820151601683015160ff82161590612cea8161476e565b612d3b576040805162461bcd60e51b815260206004820152601960248201527f61646472657373206973206e6f74206120636f6e747261637400000000000000604482015290519081900360640190fd5b60ff8416600081815260056020908152604080832080546001600160a01b0319166001600160a01b038716908117909155808452600683528184208585528352818420805460ff199081166001179091556009909352818420805490931687151517909255519092917f7e3b6af43092577ee20e60eaa1d9b114a7031305c895ee7dd3ffe17196d2e1e091a3505050505061348a565b612e3e84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526016815275195b98589b1953dc911a5cd8589b1950da185b9b995b60521b602082015291506146829050565b15612f6f57606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060029091149050612ec15760405162461bcd60e51b815260040180806020018281038252604a8152602001806149a6604a913960600191505060405180910390fd5b600181810151600283015160ff80831660009081526005602052604090205492939192908316909114906001600160a01b03168015612f65576001600160a01b038116600090815260066020908152604080832060ff881680855290835292819020805460ff1916861515908117909155815190815290517fa3132e3f9819fbddc7f0ed6d38d7feef59aa95112090b7c592f5cb5bc4aa4adc929181900390910190a25b505050505061348a565b612fd384848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c73757370656e6451756f72756d60981b602082015291506146829050565b1561310857600281146130175760405162461bcd60e51b815260040180806020018281038252602d81526020018061491f602d913960400191505060405180910390fd5b600061305a600284848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061476992505050565b905060008161ffff16118015613074575060648161ffff16105b6130be576040805162461bcd60e51b8152602060048201526016602482015275696e76616c69642073757370656e642071756f72756d60501b604482015290519081900360640190fd5b604080516f14d554d411539117d41493d413d4d05360821b815281519081900360100190206000908152600d60205220805461ffff90921661ffff1990921691909117905561348a565b61316b84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600c81526b72656f70656e51756f72756d60a01b602082015291506146829050565b1561329e57600281146131af5760405162461bcd60e51b815260040180806020018281038252602c81526020018061494c602c913960400191505060405180910390fd5b60006131f2600284848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061476992505050565b905060008161ffff1611801561320c575060648161ffff16105b613255576040805162461bcd60e51b8152602060048201526015602482015274696e76616c69642072656f70656e2071756f72756d60581b604482015290519081900360640190fd5b604080516e149153d4115397d41493d413d4d053608a1b8152815190819003600f0190206000908152600d60205220805461ffff90921661ffff1990921691909117905561348a565b61330984848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601481527363616e63656c5472616e7366657251756f72756d60601b602082015291506146829050565b1561344d576002811461334d5760405162461bcd60e51b81526004018080602001828103825260348152602001806148eb6034913960400191505060405180910390fd5b6000613390600284848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061476992505050565b905060008161ffff161180156133aa575060648161ffff16105b6133fb576040805162461bcd60e51b815260206004820152601e60248201527f696e76616c69642063616e63656c207472616e736665722071756f72756d0000604482015290519081900360640190fd5b604080517710d05390d15317d514905394d1915497d41493d413d4d05360421b815281519081900360180190206000908152600d60205220805461ffff90921661ffff1990921691909117905561348a565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b6008602052600090815260409020546001600160401b031681565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081565b61100281565b60005460ff166135a6576040805162461bcd60e51b81526020600482015260196024820152600080516020614a4c833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b1580156135e957600080fd5b505afa1580156135fd573d6000803e3d6000fd5b505050506040513d602081101561361357600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b15801561365457600080fd5b505afa158015613668573d6000803e3d6000fd5b505050506040513d602081101561367e57600080fd5b505190508061368b575060155b60008211801561369b5750808211155b6136da576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b600b5460ff16613721576040805162461bcd60e51b815260206004820152600d60248201526c1b9bdd081cdd5cdc195b991959609a1b604482015290519081900360640190fd5b604080516e149153d4115397d41493d413d4d053608a1b8152905190819003600f019020600090613772907fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470614153565b905080156137b057600b805460ff1916905560405133907f899fe8c37dc61708a3aaa99c4bf143346c1d1da69af79be9e8920c0a6785b75290600090a25b505050565b600660209081526000928352604080842090915290825290205460ff1681565b6040518060400160405280600381526020016269626360e81b81525081565b610e1081565b61100381565b60005460ff1615613858576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b7f1471eb6eb2c5e789fc3de43f8ce62938c7d1836ec861730447e2ada8fd81017b80546001600160a01b0319908116611008179091557f92e85d02570a8092d09a6e3a57665bc3815a2699a4074001bf1ccabf660f5a36805460ff199081169091557fd8af288fc1c8680b4f4706064cf021e264efb6828fcaf7eb5ca36818eb365bcc8054821660019081179091557f89832631fb3c3307a103ba2c84ab569c64d6182a18893dcd163f0f1c2090733a805484166110049081179091557f6cde3cea4b3a3fb2488b2808bae7556f4a405e50f65e1794383bc026131b13c38054841690557f72e4efa1513b071517c6c74dba31b5934a81aa83cddd400e7081df5529c9943680548416831790557fa9bc9a3a348c357ba16b37005d7e6b3236198c0e939f4af8c5f19b8deeb8ebc08054851690911790557fc575c31fea594a6eb97c8e9d3f9caee4c16218c6ef37e923234c0fe9014a61e78054831690557f4e523af77f034e9810f1c94057f5e931fb3d16a51511a4c3add793617d18610580548316821790557ffb33122aa9f93cc639ebe80a7bc4784c11e6053dde89c6f4f7e268c6a623da1e805484166110001790557fc7694af312c4f286114180fd0ba6a52461fcee8a381636770b19a343af92538a80548316821790557f01112dd68e482ba8d68a7e828cff8b3abcea08eab88941953c180a7e650e9cd480548316821790557fc0a4a8be475dfebc377ebef2d7c4ff47656f572a08dd92b81017efcdba0febe1805484166110071790557f87e8a52529e8ece4ef759037313542a6429ff494a9fab9027fb79db90124eba680548316821790557f4c7666bbcb22d46469f7cc282f70764a7012dca2cce630ff8d83db9a9cdd48f080548316821790557f40f28f99a40bc9f6beea1013afdbc3cdcc689eb76b82c4de06c0acf1e1932ed58054909316611001179092557f0d9cf2cd531699eed8dd34e40ff2884a14a698c4898184fba85194e6f6772d248054821683179055600b60009081527f23f68c9bd22b8a93d06adabe17481c87c016bcbd20adc8bfd707a4d813a572176020527fdf0d5d05428057f5455c2dc8e810dd86d1e9350faa72f16bda8a45443c5b39328054831684179055603283556004805467ffffffffffffffff19166001600160401b031790556002819055600381905580549091169091179055565b6007602052600090815260409020546001600160401b031681565b60005460ff16613c17576040805162461bcd60e51b81526020600482015260196024820152600080516020614a4c833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b158015613c5a57600080fd5b505afa158015613c6e573d6000803e3d6000fd5b505050506040513d6020811015613c8457600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b158015613cc557600080fd5b505afa158015613cd9573d6000803e3d6000fd5b505050506040513d6020811015613cef57600080fd5b5051905080613cfc575060155b600082118015613d0c5750808211155b613d4b576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b600b5460ff1615613d8f576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b604080516f14d554d411539117d41493d413d4d05360821b81529051908190036010019020600090613de1907fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470614153565b905080156137b0576137b061408a565b60005460ff16613e36576040805162461bcd60e51b81526020600482015260196024820152600080516020614a4c833981519152604482015290519081900360640190fd5b33600090815260066020908152604080832060ff8089168552925290912054859116613e935760405162461bcd60e51b81526004018080602001828103825260318152602001806148606031913960400191505060405180910390fd5b60ff85166000908152600760209081526040808320548151601f88018490048402810184019092528682526001600160401b031692613ef89284928a926120fd92909189918c908c908190840183828082843760009201919091525061131c92505050565b60ff959095166000908152600760205260409020805467ffffffffffffffff191660019096016001600160401b03169590951790945550505050565b61100081565b600381565b61100481565b60408051600e808252818301909252606091630100380060ff851617918391602082018180368337505050600e81810187905260068201939093529182525090505b92915050565b600085613f9c57506000614081565b606082518451865160800101016040519080825280601f01601f191660200182016040528015613fd3576020820181803683370190505b5090506000613fe182614774565b602080890151825201905086600080613ff989614108565b8086526020909501949092509050614012828583614112565b9283019261401f88614108565b8086526020909501949092509050614038828583614112565b9283018a81526020019261404b87614108565b909250905061405b828583614112565b50835160200161406961477a565b60208183886065600019fa5051600114955050505050505b95945050505050565b600b5460ff16156140ce576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b600b805460ff1916600117905560405133907f6f123d3d54c84a7960a573b31c221dcd86e13fd849c5adb0c6ca851468cc1ae490600090a2565b8051602090910191565b5b60208110614132578251825260209283019290910190601f1901614113565b915181516020939093036101000a6000190180199091169216919091179052565b6000828152600d602052604081205461ffff1661421c57604080516f14d554d411539117d41493d413d4d05360821b815281519081900360100181206000908152600d6020818152848320805461ffff199081166001179091556e149153d4115397d41493d413d4d053608a1b8552855194859003600f01852084528282528584208054821660029081179091557710d05390d15317d514905394d1915497d41493d413d4d05360421b8652865195869003601801909520845291905292902080549092161790555b6000838152600c6020526040902080546201000090046001600160801b03164210158061424d575082816001015414155b15614320576000848152600d602090815260409182902054835461ffff90911661ffff199091161771ffffffffffffffffffffffffffffffff0000191662010000610e1042016001600160801b031602178355600180840186905582519182019092523381526142c291600284019190614798565b5080546040805161ffff83168152620100009092046001600160801b0316602083015281810185905251339186917f9e109f0e55ef32e99e4880be2ec357f1ddb3469c79d0747ef4762da6e89fabe5916060908290030190a36143d4565b60005b60028201548110156143ab57336001600160a01b031682600201828154811061434857fe5b6000918252602090912001546001600160a01b031614156143a3576040805162461bcd60e51b815260206004820152601060248201526f185b1c9958591e48185c1c1c9bdd995960821b604482015290519081900360640190fd5b600101614323565b50600281018054600181018255600091825260209091200180546001600160a01b031916331790555b8054600282015461ffff9091161161442e576000848152600c60205260408120805471ffffffffffffffffffffffffffffffffffff19168155600181018290559061442260028301826147fd565b50506001915050613f87565b5060009392505050565b600080600060606021855110156144685750506040805160008082526020820190925290925082915081906144e1565b600185015160218601518651604080516020198301808252601f19600119909401939093168101602001909152604189019392916060919080156144b3576020820181803683370190505b50905060006144c182614108565b5090506144d3858260218d5103614112565b506001975091955093509150505b9193509193565b600b5460ff161561452c576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b60025443111561456b576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b1617909155600355436002556145ac565b600380546001908101918290555410156145ac576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b16179091556003555b8160ff16836001600160401b0316600460009054906101000a900460070b6001600160401b03167f3a6e0fc61675aa2a100bcba0568368bb92bcec91c97673391074f11138f0cffe603885604051808361ffff1661ffff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561464257818101518382015260200161462a565b50505050905090810190601f16801561466f5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a4505050565b6000816040516020018082805190602001908083835b602083106146b75780518252601f199092019160209182019101614698565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106147255780518252601f199092019160209182019101614706565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b3b151590565b60200190565b60405180602001604052806001906020820280368337509192915050565b8280548282559060005260206000209081019282156147ed579160200282015b828111156147ed57825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906147b8565b506147f992915061481e565b5090565b508054600082559060005260206000209081019061481b9190614845565b50565b61484291905b808211156147f95780546001600160a01b0319168155600101614824565b90565b61484291905b808211156147f9576000815560010161484b56fe74686520636f6e747261637420616e64206368616e6e656c2068617665206e6f74206265656e20726567697374657265646c656e677468206f662076616c756520666f72206164644f725570646174654368616e6e656c2073686f756c642062652032322c206368616e6e656c49643a697346726f6d53797374656d3a68616e646c6572416464726573736c656e677468206f662076616c756520666f722063616e63656c5472616e7366657251756f72756d2073686f756c6420626520326c656e677468206f662076616c756520666f722073757370656e6451756f72756d2073686f756c6420626520326c656e677468206f662076616c756520666f722072656f70656e51756f72756d2073686f756c642062652032746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662076616c756520666f7220656e61626c654f7244697361626c654368616e6e656c2073686f756c6420626520322c206368616e6e656c49643a6973456e61626c65746865206d73672073656e646572206973206e6f7420612077686974656c6162656c2072656c61796572746865206e6577426174636853697a65466f724f7261636c652073686f756c6420626520696e205b31302c2031303030305d74686520636f6e7472616374206e6f7420696e697420796574000000000000006c6967687420636c69656e74206e6f742073796e632074686520626c6f636b20796574a264697066735822122041ff13fe956e0a3b951862bdc1d377a102e361a8960c89b2a595749204aba3ed64736f6c63430006040033", - }, - }, - } - - PlanckUpgrade[networkname.ChapelChainName] = &Upgrade{ - UpgradeName: "planck", - Configs: []*UpgradeConfig{ - { - ContractAddr: SlashContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/78e13b1d3a5a1b08c9208af94a9b14fc1efda213", - Code: "608060405234801561001057600080fd5b50600436106102535760003560e01c80637942fd0511610146578063ac431751116100c3578063dc927faf11610087578063dc927faf1461073b578063e1c7392a14610743578063f9a2bbc71461074b578063fc3e590814610753578063fc4333cd1461075b578063fd6a68791461076357610253565b8063ac431751146105cf578063c80d4b8f1461068d578063c81b166214610695578063c8509d811461069d578063c96be4cb1461071557610253565b80639dc092621161010a5780639dc0926214610593578063a1a11bf51461059b578063a78abc16146105a3578063ab51bb96146105bf578063ac0af629146105c757610253565b80637942fd05146104fb5780638256ace614610503578063831d65d11461050b57806396713da9146105835780639bc8e4f21461058b57610253565b80634bf6c882116101d45780636e47b482116101985780636e47b482146104d357806370fd5bad146104db578063718a8aa8146104e357806375d47a0a146104eb5780637912a65d146104f357610253565b80634bf6c8821461048b57806351e8067214610493578063567a372d1461049b5780635bfb4990146104a357806362b72cf5146104cb57610253565b806337c8dab91161021b57806337c8dab9146103ed578063389f4f711461042c5780633dffc3871461044657806343756e5c14610464578063493279b11461046c57610253565b80630bee7a67146102585780630e2374a5146102795780631182b8751461029d57806323bac5a21461038a57806335aa2e44146103d0575b600080fd5b61026061076b565b6040805163ffffffff9092168252519081900360200190f35b610281610770565b604080516001600160a01b039092168252519081900360200190f35b610315600480360360408110156102b357600080fd5b60ff8235169190810190604081016020820135600160201b8111156102d757600080fd5b8201836020820111156102e957600080fd5b803590602001918460018302840111600160201b8311171561030a57600080fd5b509092509050610776565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561034f578181015183820152602001610337565b50505050905090810190601f16801561037c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103b0600480360360208110156103a057600080fd5b50356001600160a01b031661084a565b604080519384526020840192909252151582820152519081900360600190f35b610281600480360360208110156103e657600080fd5b503561086d565b6104136004803603602081101561040357600080fd5b50356001600160a01b0316610894565b6040805192835260208301919091528051918290030190f35b6104346108eb565b60408051918252519081900360200190f35b61044e6108f1565b6040805160ff9092168252519081900360200190f35b6102816108f6565b6104746108fc565b6040805161ffff9092168252519081900360200190f35b61044e610901565b610281610906565b61043461090c565b6104c9600480360360208110156104b957600080fd5b50356001600160a01b0316610912565b005b610434610a73565b610281610a79565b61044e610a7f565b61044e610a84565b610281610a89565b610434610a8f565b61044e610a94565b610413610a99565b6104c96004803603604081101561052157600080fd5b60ff8235169190810190604081016020820135600160201b81111561054557600080fd5b82018360208201111561055757600080fd5b803590602001918460018302840111600160201b8311171561057857600080fd5b509092509050610aa3565b61044e610bfd565b610434610c02565b610281610c0d565b610281610c13565b6105ab610c19565b604080519115158252519081900360200190f35b610260610c22565b610434610c27565b6104c9600480360360408110156105e557600080fd5b810190602081018135600160201b8111156105ff57600080fd5b82018360208201111561061157600080fd5b803590602001918460018302840111600160201b8311171561063257600080fd5b919390929091602081019035600160201b81111561064f57600080fd5b82018360208201111561066157600080fd5b803590602001918460018302840111600160201b8311171561068257600080fd5b509092509050610c2c565b61043461101a565b61028161101f565b6104c9600480360360408110156106b357600080fd5b60ff8235169190810190604081016020820135600160201b8111156106d757600080fd5b8201836020820111156106e957600080fd5b803590602001918460018302840111600160201b8311171561070a57600080fd5b509092509050611025565b6104c96004803603602081101561072b57600080fd5b50356001600160a01b03166110d8565b610281611659565b6104c961165f565b6102816116d0565b61044e6116d6565b6104c96116db565b610281611b66565b606481565b61200181565b606033612000146107b85760405162461bcd60e51b815260040180806020018281038252602f8152602001806125bd602f913960400191505060405180910390fd5b60005460ff166107fd576040805162461bcd60e51b81526020600482015260196024820152600080516020612619833981519152604482015290519081900360640190fd5b6040805162461bcd60e51b815260206004820152601e60248201527f7265636569766520756e65787065637465642073796e207061636b6167650000604482015290519081900360640190fd5b600260208190526000918252604090912080546001820154919092015460ff1683565b6001818154811061087a57fe5b6000918252602090912001546001600160a01b0316905081565b60008061089f612481565b5050506001600160a01b0316600090815260026020818152604092839020835160608101855281548082526001830154938201849052919093015460ff16151592909301919091529091565b60055481565b600181565b61100181565b606181565b600881565b61200081565b60045481565b33611000146109525760405162461bcd60e51b81526004018080602001828103825260308152602001806125186030913960400191505060405180910390fd5b60005460ff16610997576040805162461bcd60e51b81526020600482015260196024820152600080516020612619833981519152604482015290519081900360640190fd5b61200063f7a251d7600b6109aa84611b6c565b60006040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015610a0a5781810151838201526020016109f2565b50505050905090810190601f168015610a375780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015610a5857600080fd5b505af1158015610a6c573d6000803e3d6000fd5b5050505050565b60035481565b61100581565b600281565b601081565b61100881565b603281565b600b81565b6004546005549091565b3361200014610ae35760405162461bcd60e51b815260040180806020018281038252602f8152602001806125bd602f913960400191505060405180910390fd5b60005460ff16610b28576040805162461bcd60e51b81526020600482015260196024820152600080516020612619833981519152604482015290519081900360640190fd5b610b306124a4565b6000610b7184848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611c3e92505050565b915091508015610bbb5781516040805163ffffffff9092168252517f7f0956d47419b9525356e7111652b653b530ec6f5096dccc04589bc38e6299679181900360200190a1610a6c565b81516040805163ffffffff9092168252517f7d45f62d17443dd4547bca8a8112c60e2385669318dc300ec61a5d2492f262e79181900360200190a15050505050565b600981565b662386f26fc1000081565b61100781565b61100681565b60005460ff1681565b600081565b600481565b60005460ff16610c71576040805162461bcd60e51b81526020600482015260196024820152600080516020612619833981519152604482015290519081900360640190fd5b3361100714610cb15760405162461bcd60e51b815260040180806020018281038252602e815260200180612548602e913960400191505060405180910390fd5b610d1c84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260148152731b5a5cd9195b59585b9bdc951a1c995cda1bdb1960621b60208201529150611cbe9050565b15610df55760208114610d605760405162461bcd60e51b81526004018080602001828103825260278152602001806124f16027913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610d9e91858580838501838280828437600092019190915250611da692505050565b905060018110158015610db2575060055481105b610ded5760405162461bcd60e51b81526004018080602001828103825260258152602001806125986025913960400191505060405180910390fd5b600455610f88565b610e5b84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e19995b1bdb9e551a1c995cda1bdb19608a1b60208201529150611cbe9050565b15610f4b5760208114610e9f5760405162461bcd60e51b81526004018080602001828103825260228152602001806125766022913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610edd91858580838501838280828437600092019190915250611da692505050565b90506103e88111158015610ef2575060045481115b610f43576040805162461bcd60e51b815260206004820181905260248201527f7468652066656c6f6e795468726573686f6c64206f7574206f662072616e6765604482015290519081900360640190fd5b600555610f88565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b609681565b61100281565b33612000146110655760405162461bcd60e51b815260040180806020018281038252602f8152602001806125bd602f913960400191505060405180910390fd5b60005460ff166110aa576040805162461bcd60e51b81526020600482015260196024820152600080516020612619833981519152604482015290519081900360640190fd5b6040517f07db600eebe2ac176be8dcebad61858c245a4961bb32ca2aa3d159b09aa0810e90600090a1505050565b3341146111165760405162461bcd60e51b815260040180806020018281038252602d8152602001806125ec602d913960400191505060405180910390fd5b60005460ff1661115b576040805162461bcd60e51b81526020600482015260196024820152600080516020612619833981519152604482015290519081900360640190fd5b60035443116111b1576040805162461bcd60e51b815260206004820181905260248201527f63616e206e6f7420736c61736820747769636520696e206f6e6520626c6f636b604482015290519081900360640190fd5b3a156111fb576040805162461bcd60e51b81526020600482015260146024820152736761737072696365206973206e6f74207a65726f60601b604482015290519081900360640190fd5b6040805163155853f360e21b81526001600160a01b03831660048201529051611000916355614fcc916024808301926020929190829003018186803b15801561124357600080fd5b505afa158015611257573d6000803e3d6000fd5b505050506040513d602081101561126d57600080fd5b505161127857611652565b611280612481565b506001600160a01b0381166000908152600260208181526040928390208351606081018552815481526001820154928101929092529091015460ff1615801592820192909252906112db576020810180516001019052611334565b60016040820181905260208201819052805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0384161790555b43815260055460208201518161134657fe5b0661157657600060208201819052604080516335409f7f60e01b81526001600160a01b03851660048201529051611000926335409f7f926024808201939182900301818387803b15801561139957600080fd5b505af11580156113ad573d6000803e3d6000fd5b505050506120006001600160a01b031663f7a251d7600b6113cd85611b6c565b60006040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561142d578181015183820152602001611415565b50505050905090810190601f16801561145a5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561147b57600080fd5b505af192505050801561148c575060015b611571573d8080156114ba576040519150601f19603f3d011682016040523d82523d6000602084013e6114bf565b606091505b50826001600160a01b03167fd7bc86ff5d08c8ab043edec743302aba2520e6635172a428bc956721db9e2d1c8360200151836040518083815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561153457818101518382015260200161151c565b50505050905090810190601f1680156115615780820380516001836020036101000a031916815260200191505b50935050505060405180910390a2505b6115ec565b60045481602001518161158557fe5b066115ec57604080516375abf10160e11b81526001600160a01b038416600482015290516110009163eb57e20291602480830192600092919082900301818387803b1580156115d357600080fd5b505af11580156115e7573d6000803e3d6000fd5b505050505b6001600160a01b0382166000818152600260208181526040808420865181559186015160018301558581015191909201805460ff1916911515919091179055517fddb6012116e51abf5436d956a4f0ebd927e92c576ff96d7918290c8782291e3e9190a2505b5043600355565b61100381565b60005460ff16156116b7576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b603260045560966005556000805460ff19166001179055565b61100081565b600381565b336110001461171b5760405162461bcd60e51b81526004018080602001828103825260308152602001806125186030913960400191505060405180910390fd5b60005460ff16611760576040805162461bcd60e51b81526020600482015260196024820152600080516020612619833981519152604482015290519081900360640190fd5b60015461176c57611b64565b600154600090600019015b808211611b38576000805b8284101561189b57611792612481565b60026000600187815481106117a357fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff1615159082015260055490915060049004816020015111156118855760046005548161181057fe5b0481602001510381602001818152505080600260006001888154811061183257fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208351815591830151600183015591909101516002909101805460ff191691151591909117905561188f565b600192505061189b565b50600190930192611782565b828411611a32576118aa612481565b60026000600186815481106118bb57fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff1615159082015260055490915060049004816020015111156119a35760046005548161192857fe5b0481602001510381602001818152505080600260006001878154811061194a57fe5b6000918252602080832091909101546001600160a01b03168352828101939093526040918201902083518155918301516001808401919091559201516002909101805460ff19169115159190911790559150611a329050565b60026000600186815481106119b457fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff191690558054806119f857fe5b600082815260209020810160001990810180546001600160a01b031916905501905583611a255750611a32565b506000199092019161189b565b818015611a3c5750805b15611b1b576002600060018681548110611a5257fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff19169055805484908110611a9957fe5b600091825260209091200154600180546001600160a01b039092169186908110611abf57fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506001805480611af857fe5b600082815260209020810160001990810180546001600160a01b03191690550190555b82611b27575050611b38565b505060019091019060001901611777565b6040517fcfdb3b6ccaeccbdc68be3c59c840e3b3c90f0a7c491f5fff1cf56cfda200dd9c90600090a150505b565b61100481565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081611b87579050509050611bb0836001600160a01b0316611dab565b81600081518110611bbd57fe5b6020026020010181905250611bd143611dce565b81600181518110611bde57fe5b6020908102919091010152611bf36061611dce565b81600281518110611c0057fe5b6020026020010181905250611c1442611dce565b81600381518110611c2157fe5b6020026020010181905250611c3581611de1565b9150505b919050565b611c466124a4565b6000611c506124a4565b611c586124b6565b611c69611c6486611e6b565b611e90565b90506000805b611c7883611eda565b15611cb15780611ca457611c93611c8e84611efb565b611f49565b63ffffffff16845260019150611ca9565b611cb1565b600101611c6f565b5091935090915050915091565b6000816040516020018082805190602001908083835b60208310611cf35780518252601f199092019160209182019101611cd4565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310611d615780518252601f199092019160209182019101611d42565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052805190602001201490505b92915050565b015190565b60408051600560a21b8318601482015260348101909152606090611c3581612000565b6060611da0611ddc83612056565b612000565b6060815160001415611e025750604080516000815260208101909152611c39565b606082600081518110611e1157fe5b602002602001015190506000600190505b8351811015611e5257611e4882858381518110611e3b57fe5b602002602001015161213c565b9150600101611e22565b50611c35611e65825160c060ff166121b9565b8261213c565b611e736124d6565b506040805180820190915281518152602082810190820152919050565b611e986124b6565b611ea1826122b1565b611eaa57600080fd5b6000611eb983602001516122eb565b60208085015160408051808201909152868152920190820152915050919050565b6000611ee46124d6565b505080518051602091820151919092015191011190565b611f036124d6565b611f0c82611eda565b611f1557600080fd5b60208201516000611f258261234e565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590611f5e57508151602110155b611f6757600080fd5b6000611f7683602001516122eb565b90508083600001511015611fd1576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015611ff757826020036101000a820491505b50949350505050565b6060815160011480156120325750607f60f81b8260008151811061202057fe5b01602001516001600160f81b03191611155b1561203e575080611c39565b611da06120508351608060ff166121b9565b8361213c565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff19841661209a575060186120be565b6fffffffffffffffffffffffffffffffff1984166120ba575060106120be565b5060005b60208110156120f4578181815181106120d357fe5b01602001516001600160f81b031916156120ec576120f4565b6001016120be565b60008160200390506060816040519080825280601f01601f191660200182016040528015612129576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b8183101561216d578051835260209283019201612155565b50855184518101855292509050808201602086015b8183101561219a578051835260209283019201612182565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310612209576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b604080516001808252818301909252606091602082018180368337019050509050603784116122635782840160f81b8160008151811061224557fe5b60200101906001600160f81b031916908160001a9053509050611da0565b606061226e85612056565b90508381510160370160f81b8260008151811061228757fe5b60200101906001600160f81b031916908160001a9053506122a8828261213c565b95945050505050565b80516000906122c257506000611c39565b6020820151805160001a9060c08210156122e157600092505050611c39565b5060019392505050565b8051600090811a6080811015612305576000915050611c39565b60b8811080612320575060c08110801590612320575060f881105b1561232f576001915050611c39565b60c08110156123435760b519019050611c39565b60f519019050611c39565b80516000908190811a6080811015612369576001915061247a565b60b881101561237e57607e198101915061247a565b60c08110156123f857600060b78203600186019550806020036101000a8651049150600181018201935050808310156123f2576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b5061247a565b60f881101561240d5760be198101915061247a565b600060f78203600186019550806020036101000a865104915060018101820193505080831015612478576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b604051806060016040528060008152602001600081526020016000151581525090565b60408051602081019091526000815290565b60405180604001604052806124c96124d6565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe6c656e677468206f66206d697364656d65616e6f725468726573686f6c64206d69736d61746368746865206d6573736167652073656e646572206d7573742062652076616c696461746f7253657420636f6e7472616374746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662066656c6f6e795468726573686f6c64206d69736d61746368746865206d697364656d65616e6f725468726573686f6c64206f7574206f662072616e6765746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d6573736167652073656e646572206d7573742062652074686520626c6f636b2070726f647563657274686520636f6e7472616374206e6f7420696e69742079657400000000000000a264697066735822122073e63503ac4253c326fb17904c6564f8471e21693509513fe7dc5277fcd239a364736f6c63430006040033", - }, - { - ContractAddr: TokenHubContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/78e13b1d3a5a1b08c9208af94a9b14fc1efda213", - Code: "6080604052600436106103c75760003560e01c806396713da9116101f2578063c81b16621161010d578063f0148472116100a0578063fc1a598f1161006f578063fc1a598f14610f25578063fc3e590814610b85578063fd6a687914610f58578063ff9c0027146107fd5761040f565b8063f014847214610ed1578063f9a2bbc714610ee6578063fa9e915914610efb578063fb063e8f14610f105761040f565b8063dc927faf116100dc578063dc927faf14610e5f578063e1c7392a14610e74578063e8f35cea14610e89578063ebf71d5314610ebc5761040f565b8063c81b166214610d8a578063c8509d8114610d9f578063cf41984414610e24578063d9e6dae91461077f5761040f565b8063aa7415f511610185578063b9fd21e311610154578063b9fd21e314610cfa578063ba35ead614610d0f578063bbface1f14610d24578063bd46646114610d575761040f565b8063aa7415f514610b9a578063ab51bb9614610be1578063ac43175114610bf6578063b99328c514610cc15761040f565b8063a1a11bf5116101c1578063a1a11bf514610b46578063a496fba214610b5b578063a78abc1614610b70578063a7c9f02d14610b855761040f565b806396713da914610ace5780639a854bbd14610ae35780639a99b4f014610af85780639dc0926214610b315761040f565b806359b92789116102e257806371d3086311610275578063831d65d111610244578063831d65d1146109d15780638b87b21f146106d45780638eff336c14610a565780639509b98014610a955761040f565b806371d3086314610968578063727be1f81461097d57806375d47a0a146109a75780637942fd05146109bc5761040f565b80636e056520116102b15780636e056520146108125780636e47b4821461093e57806370fd5bad146107fd578063718a8aa8146109535761040f565b806359b92789146107be5780635d499b1b146107e8578063613684751461077f57806366dea52a146107fd5761040f565b80633fd8b02f1161035a5780634a3acdf4116103295780634a3acdf41461076a5780634bf6c8821461077f57806350432d321461079457806351e80672146107a95761040f565b80633fd8b02f146106ff57806343756e5c1461071457806343a368b914610729578063493279b11461073e5761040f565b8063149d14d911610396578063149d14d9146105a85780632ae45483146105cf5780633d713223146106235780633dffc387146106d45761040f565b80630bee7a67146104145780630e2374a5146104425780631182b87514610473578063122345821461056d5761040f565b3661040f57341561040d576040805133815234602082015281517f6c98249d85d88c3753a04a22230f595e4dc8d3dc86c34af35deeeedc861b89db929181900390910190a15b005b600080fd5b34801561042057600080fd5b50610429610f6d565b6040805163ffffffff9092168252519081900360200190f35b34801561044e57600080fd5b50610457610f72565b604080516001600160a01b039092168252519081900360200190f35b34801561047f57600080fd5b506104f86004803603604081101561049657600080fd5b60ff8235169190810190604081016020820135600160201b8111156104ba57600080fd5b8201836020820111156104cc57600080fd5b803590602001918460018302840111600160201b831117156104ed57600080fd5b509092509050610f78565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561053257818101518382015260200161051a565b50505050905090810190601f16801561055f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561057957600080fd5b5061040d6004803603604081101561059057600080fd5b506001600160a01b03813581169160200135166110a6565b3480156105b457600080fd5b506105bd6111a0565b60408051918252519081900360200190f35b3480156105db57600080fd5b5061060a600480360360408110156105f257600080fd5b506001600160a01b03813581169160200135166111a6565b6040805192835260208301919091528051918290030190f35b34801561062f57600080fd5b506104576004803603602081101561064657600080fd5b810190602081018135600160201b81111561066057600080fd5b82018360208201111561067257600080fd5b803590602001918460018302840111600160201b8311171561069357600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506111ca945050505050565b3480156106e057600080fd5b506106e96111ee565b6040805160ff9092168252519081900360200190f35b34801561070b57600080fd5b506105bd6111f3565b34801561072057600080fd5b506104576111f9565b34801561073557600080fd5b506105bd6111ff565b34801561074a57600080fd5b5061075361120b565b6040805161ffff9092168252519081900360200190f35b34801561077657600080fd5b506105bd611210565b34801561078b57600080fd5b506106e9611216565b3480156107a057600080fd5b506105bd61121b565b3480156107b557600080fd5b50610457611226565b3480156107ca57600080fd5b50610457600480360360208110156107e157600080fd5b503561122c565b3480156107f457600080fd5b506105bd611247565b34801561080957600080fd5b506106e9611250565b61092a6004803603608081101561082857600080fd5b810190602081018135600160201b81111561084257600080fd5b82018360208201111561085457600080fd5b803590602001918460208302840111600160201b8311171561087557600080fd5b919390929091602081019035600160201b81111561089257600080fd5b8201836020820111156108a457600080fd5b803590602001918460208302840111600160201b831117156108c557600080fd5b919390929091602081019035600160201b8111156108e257600080fd5b8201836020820111156108f457600080fd5b803590602001918460208302840111600160201b8311171561091557600080fd5b91935091503567ffffffffffffffff16611255565b604080519115158252519081900360200190f35b34801561094a57600080fd5b5061045761172a565b34801561095f57600080fd5b506106e9611730565b34801561097457600080fd5b506105bd611735565b34801561098957600080fd5b5061092a600480360360208110156109a057600080fd5b503561173b565b3480156109b357600080fd5b506104576117bc565b3480156109c857600080fd5b506106e96117c2565b3480156109dd57600080fd5b5061040d600480360360408110156109f457600080fd5b60ff8235169190810190604081016020820135600160201b811115610a1857600080fd5b820183602082011115610a2a57600080fd5b803590602001918460018302840111600160201b83111715610a4b57600080fd5b5090925090506117c7565b348015610a6257600080fd5b5061040d60048036036060811015610a7957600080fd5b508035906001600160a01b036020820135169060400135611910565b348015610aa157600080fd5b5061040d60048036036040811015610ab857600080fd5b506001600160a01b038135169060200135611996565b348015610ada57600080fd5b506106e9611b53565b348015610aef57600080fd5b506105bd611b58565b348015610b0457600080fd5b506105bd60048036036040811015610b1b57600080fd5b506001600160a01b038135169060200135611b64565b348015610b3d57600080fd5b50610457611ca2565b348015610b5257600080fd5b50610457611ca8565b348015610b6757600080fd5b506106e9611cae565b348015610b7c57600080fd5b5061092a611cb3565b348015610b9157600080fd5b506106e9611cbc565b61092a60048036036080811015610bb057600080fd5b5080356001600160a01b03908116916020810135909116906040810135906060013567ffffffffffffffff16611cc1565b348015610bed57600080fd5b50610429611cae565b348015610c0257600080fd5b5061040d60048036036040811015610c1957600080fd5b810190602081018135600160201b811115610c3357600080fd5b820183602082011115610c4557600080fd5b803590602001918460018302840111600160201b83111715610c6657600080fd5b919390929091602081019035600160201b811115610c8357600080fd5b820183602082011115610c9557600080fd5b803590602001918460018302840111600160201b83111715610cb657600080fd5b509092509050612382565b348015610ccd57600080fd5b5061040d60048036036040811015610ce457600080fd5b50803590602001356001600160a01b031661282a565b348015610d0657600080fd5b506105bd6128a0565b348015610d1b57600080fd5b506105bd6128aa565b348015610d3057600080fd5b506105bd60048036036020811015610d4757600080fd5b50356001600160a01b03166128b0565b348015610d6357600080fd5b506105bd60048036036020811015610d7a57600080fd5b50356001600160a01b03166128c2565b348015610d9657600080fd5b506104576128dd565b348015610dab57600080fd5b5061040d60048036036040811015610dc257600080fd5b60ff8235169190810190604081016020820135600160201b811115610de657600080fd5b820183602082011115610df857600080fd5b803590602001918460018302840111600160201b83111715610e1957600080fd5b5090925090506128e3565b348015610e3057600080fd5b5061040d60048036036040811015610e4757600080fd5b506001600160a01b03813581169160200135166129b3565b348015610e6b57600080fd5b50610457612c87565b348015610e8057600080fd5b5061040d612c8d565b348015610e9557600080fd5b506105bd60048036036020811015610eac57600080fd5b50356001600160a01b0316612d2d565b348015610ec857600080fd5b506106e9612d3f565b348015610edd57600080fd5b506106e9612d44565b348015610ef257600080fd5b50610457612d49565b348015610f0757600080fd5b506105bd612d4f565b348015610f1c57600080fd5b506105bd612d55565b348015610f3157600080fd5b506104f860048036036020811015610f4857600080fd5b50356001600160a01b0316612d63565b348015610f6457600080fd5b50610457612e8a565b606481565b61200181565b60005460609060ff16610fc0576040805162461bcd60e51b81526020600482015260196024820152600080516020615582833981519152604482015290519081900360640190fd5b33612000146110005760405162461bcd60e51b815260040180806020018281038252602f815260200180615530602f913960400191505060405180910390fd5b60ff8416600214156110525761104b83838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612e9092505050565b905061109f565b6040805162461bcd60e51b815260206004820152601860248201527f756e7265636f676e697a65642073796e207061636b6167650000000000000000604482015290519081900360640190fd5b9392505050565b33612000146110e65760405162461bcd60e51b815260040180806020018281038252602f815260200180615530602f913960400191505060405180910390fd5b6001600160a01b0380831660009081526007602090815260408083209385168352929052208054611151576040805162461bcd60e51b815260206004820152601060248201526f1b9bc81b1bd8dad95908185b5bdd5b9d60821b604482015290519081900360640190fd5b8054600082556040805182815290516001600160a01b0380861692908716917f152fb15aa5d80f843e1e4bd5f2fc9161714f169945024decec7e84fb910fdd519181900360200190a350505050565b60015490565b60076020908152600092835260408084209091529082529020805460019091015482565b6020818101516000908152600490915260409020546001600160a01b03165b919050565b600181565b60055481565b61100181565b670de0b6b3a764000081565b606181565b61a8c081565b600881565b66071afd498d000081565b61200081565b6000908152600460205260409020546001600160a01b031690565b6402540be40081565b600281565b6000805460ff1661129b576040805162461bcd60e51b81526020600482015260196024820152600080516020615582833981519152604482015290519081900360640190fd5b8685146112d95760405162461bcd60e51b815260040180806020018281038252603b8152602001806154f5603b913960400191505060405180910390fd5b8683146113175760405162461bcd60e51b815260040180806020018281038252603f8152602001806153c8603f913960400191505060405180910390fd5b426078018267ffffffffffffffff1610156113635760405162461bcd60e51b81526004018080602001828103825260248152602001806152b86024913960400191505060405180910390fd5b6402540be4003406156113a75760405162461bcd60e51b81526004018080602001828103825260408152602001806155f86040913960400191505060405180910390fd5b604080518681526020808802820101909152859060009081906060908480156113da578160200160208202803683370190505b50905060005b848110156114b5576402540be4008b8b838181106113fa57fe5b905060200201358161140857fe5b06156114455760405162461bcd60e51b815260040180806020018281038252603c815260200180615407603c913960400191505060405180910390fd5b61146a8b8b8381811061145457fe5b9050602002013585612fb490919063ffffffff16565b93506114966402540be4008c8c8481811061148157fe5b9050602002013561300e90919063ffffffff16565b8282815181106114a257fe5b60209081029190910101526001016113e0565b506001546114da906114cd908663ffffffff61305016565b849063ffffffff612fb416565b3410156115185760405162461bcd60e51b81526004018080602001828103825260568152602001806155a26056913960600191505060405180910390fd5b611528348463ffffffff6130a916565b91506115326150bc565b6040518060c001604052806221272160e91b60001b815260200160006001600160a01b031681526020018381526020018e8e808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505050908252506040805160208c810282810182019093528c82529283019290918d918d91829185019084908082843760009201919091525050509082525067ffffffffffffffff8916602090910152905061200063f7a251d760036115f6846130eb565b61160b876402540be40063ffffffff61300e16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611669578181015183820152602001611651565b50505050905090810190601f1680156116965780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156116b757600080fd5b505af11580156116cb573d6000803e3d6000fd5b505060408051600081523360208201528082018890526060810187905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a15060019c9b505050505050505050505050565b61100581565b601081565b60015481565b6000336120011461177d5760405162461bcd60e51b81526004018080602001828103825260338152602001806151d66033913960400191505060405180910390fd5b81156117b4576040516120019083156108fc029084906000818181858888f193505050501580156117b2573d6000803e3d6000fd5b505b506001919050565b61100881565b600b81565b60005460ff1661180c576040805162461bcd60e51b81526020600482015260196024820152600080516020615582833981519152604482015290519081900360640190fd5b336120001461184c5760405162461bcd60e51b815260040180806020018281038252602f815260200180615530602f913960400191505060405180910390fd5b60ff83166003141561189c5761189782828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506133a692505050565b61190b565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a15b505050565b33611008146119505760405162461bcd60e51b815260040180806020018281038252602381526020018061555f6023913960400191505060405180910390fd5b600083815260046020908152604080832080546001600160a01b039096166001600160a01b03199096168617905593825260038152838220949094556002909352912055565b81806001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b1580156119d057600080fd5b505afa1580156119e4573d6000803e3d6000fd5b505050506040513d60208110156119fa57600080fd5b50516001600160a01b03163314611a58576040805162461bcd60e51b815260206004820152601860248201527f6e6f74206f776e6572206f6620424550323020746f6b656e0000000000000000604482015290519081900360640190fd5b60008211611aa6576040805162461bcd60e51b81526020600482015260166024820152751e995c9bc81b1a5b5a5d081b9bdd08185b1b1bddd95960521b604482015290519081900360640190fd5b6001600160a01b038316600090815260036020526040902054611afc576040805162461bcd60e51b81526020600482015260096024820152681b9bdd08189bdd5b9960ba1b604482015290519081900360640190fd5b6001600160a01b038316600081815260066020908152604091829020859055815185815291513393927f9df3a90730dbf23b5cc18dbbd5f4af3fa94a0dffb6ff6841f98a9a9a6ac626a892908290030190a3505050565b600981565b677ce66c50e284000081565b6000805460ff16611baa576040805162461bcd60e51b81526020600482015260196024820152600080516020615582833981519152604482015290519081900360640190fd5b3361100514611bea5760405162461bcd60e51b815260040180806020018281038252602f815260200180615209602f913960400191505060405180910390fd5b6000478310611bf95747611bfb565b825b9050670de0b6b3a7640000811115611c17576000915050611c9c565b8015611c99576040516001600160a01b0385169082156108fc029083906000818181858888f19350505050158015611c53573d6000803e3d6000fd5b50604080516001600160a01b03861681526020810183905281517ff8b71c64315fc33b2ead2adfa487955065152a8ac33d9d5193aafd7f45dc15a0929181900390910190a15b90505b92915050565b61100781565b61100681565b600081565b60005460ff1681565b600381565b6000805460ff16611d07576040805162461bcd60e51b81526020600482015260196024820152600080516020615582833981519152604482015290519081900360640190fd5b426078018267ffffffffffffffff161015611d535760405162461bcd60e51b81526004018080602001828103825260248152602001806152b86024913960400191505060405180910390fd5b6402540be400340615611d975760405162461bcd60e51b81526004018080602001828103825260408152602001806155f86040913960400191505060405180910390fd5b600080806001600160a01b038816611e7657600154611dbd90879063ffffffff612fb416565b341015611dfb5760405162461bcd60e51b81526004018080602001828103825260618152602001806153426061913960800191505060405180910390fd5b6402540be400860615611e3f5760405162461bcd60e51b815260040180806020018281038252603c815260200180615407603c913960400191505060405180910390fd5b611e4f348763ffffffff6130a916565b9050611e66866402540be40063ffffffff61300e16565b6221272160e91b93509150612119565b6001600160a01b038816600090815260036020526040902054925082611ecd5760405162461bcd60e51b81526004018080602001828103825260318152602001806153116031913960400191505060405180910390fd5b600154341015611f0e5760405162461bcd60e51b815260040180806020018281038252603f815260200180615464603f913960400191505060405180910390fd5b506001600160a01b0387166000908152600260205260409020543490600881111580611f595750600881118015611f595750611f57876007198301600a0a63ffffffff61340216565b155b611f945760405162461bcd60e51b815260040180806020018281038252603c815260200180615407603c913960400191505060405180910390fd5b611f9e8782613444565b9250611fa984613484565b15611ff1576305f5e100831015611ff15760405162461bcd60e51b815260040180806020018281038252603a81526020018061525a603a913960400191505060405180910390fd5b60088110158061200b575060088110801561200b57508683115b6120465760405162461bcd60e51b81526004018080602001828103825260258152602001806153a36025913960400191505060405180910390fd5b677ce66c50e284000083111561208d5760405162461bcd60e51b81526004018080602001828103825260358152602001806152dc6035913960400191505060405180910390fd5b604080516323b872dd60e01b81523360048201523060248201526044810189905290516001600160a01b038b16916323b872dd9160648083019260209291908290030181600087803b1580156120e257600080fd5b505af11580156120f6573d6000803e3d6000fd5b505050506040513d602081101561210c57600080fd5b505161211757600080fd5b505b6121216150bc565b6040805160c0810182528581526001600160a01b038b166020820152815160018082528184018452919283019181602001602082028036833750505081526040805160018082528183019092526020928301929091908083019080368337505050815260408051600180825281830190925260209283019290919080830190803683370190505081526020018767ffffffffffffffff1681525090508281604001516000815181106121cf57fe5b6020026020010181815250508781606001516000815181106121ed57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505033816080015160008151811061221f57fe5b6001600160a01b039092166020928302919091019091015261200063f7a251d7600361224a846130eb565b61225f866402540be40063ffffffff61300e16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156122bd5781810151838201526020016122a5565b50505050905090810190601f1680156122ea5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561230b57600080fd5b505af115801561231f573d6000803e3d6000fd5b5050604080516001600160a01b038d1681523360208201528082018b90526060810186905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a150600198975050505050505050565b33611007146123c25760405162461bcd60e51b815260040180806020018281038252602e8152602001806154a3602e913960400191505060405180910390fd5b60208114612417576040805162461bcd60e51b815260206004820152601b60248201527f65787065637465642076616c7565206c656e6774682069732033320000000000604482015290519081900360640190fd5b606084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8801819004810282018101909252868152939450606093925086915085908190840183828082843760009201919091525050505060208301519091506772656c617946656560c01b81141561251f576020820151670de0b6b3a764000081118015906124c657506402540be4008106155b612517576040805162461bcd60e51b815260206004820152601960248201527f7468652072656c6179466565206f7574206f662072616e676500000000000000604482015290519081900360640190fd5b600155612795565b61259387878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601781527f6c617267655472616e736665724c6f636b506572696f640000000000000000006020820152915061358a9050565b1561262f57604080516020601f87018190048102820181019092528581526000916125d69188888083850183828082843760009201919091525061367192505050565b905062093a80811115612627576040805162461bcd60e51b81526020600482015260146024820152736c6f636b20706572696f6420746f6f206c6f6e6760601b604482015290519081900360640190fd5b600555612795565b61269b87878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526015815274189b9893185c99d9551c985b9cd9995c931a5b5a5d605a1b6020820152915061358a9050565b1561275857604080516020601f87018190048102820181019092528581526000916126de9188888083850183828082843760009201919091525061367192505050565b905068056bc75e2d631000008110156127285760405162461bcd60e51b81526004018080602001828103825260228152602001806152386022913960400191505060405180910390fd5b6000805260066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f855612795565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a878787876040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050505050565b336110081461286a5760405162461bcd60e51b815260040180806020018281038252602381526020018061555f6023913960400191505060405180910390fd5b600091825260046020908152604080842080546001600160a01b03191690556001600160a01b0392909216835260039052812055565b6221272160e91b81565b61c35081565b60026020526000908152604090205481565b6001600160a01b031660009081526003602052604090205490565b61100281565b60005460ff16612928576040805162461bcd60e51b81526020600482015260196024820152600080516020615582833981519152604482015290519081900360640190fd5b33612000146129685760405162461bcd60e51b815260040180806020018281038252602f815260200180615530602f913960400191505060405180910390fd5b60ff83166003141561189c5761189782828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061367692505050565b60085460ff16600214156129ff576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b6008805460ff191660021790556001600160a01b0380831660009081526007602090815260408083209385168352929052208054612a77576040805162461bcd60e51b815260206004820152601060248201526f1b9bc81b1bd8dad95908185b5bdd5b9d60821b604482015290519081900360640190fd5b8060010154421015612ad0576040805162461bcd60e51b815260206004820152601760248201527f7374696c6c206f6e206c6f636b696e6720706572696f64000000000000000000604482015290519081900360640190fd5b805460008083556001600160a01b038516612b43576040516001600160a01b038516906127109084906000818181858888f193505050503d8060008114612b33576040519150601f19603f3d011682016040523d82523d6000602084013e612b38565b606091505b505080915050612bd6565b846001600160a01b031663a9059cbb61c35086856040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b158015612ba657600080fd5b5087f1158015612bba573d6000803e3d6000fd5b50505050506040513d6020811015612bd157600080fd5b505190505b80612c28576040805162461bcd60e51b815260206004820152601e60248201527f776974686472617720756e6c6f636b656420746f6b656e206661696c65640000604482015290519081900360640190fd5b836001600160a01b0316856001600160a01b03167f832fc3e25f2b3e6fb0eb59419a73cba405f2a249fce75f7e31ea5a457a0323f1846040518082815260200191505060405180910390a350506008805460ff19166001179055505050565b61100381565b60005460ff1615612ce5576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b66071afd498d000060019081556000808052600260205260127fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b55805460ff19169091179055565b60066020526000908152604090205481565b600481565b600581565b61100081565b61271081565b69021e19e0c9bab240000081565b6001600160a01b03811660009081526003602090815260409182902054825182815280840190935260609290918391906020820181803683375050506020810183905290506000805b60208160ff161015612df357828160ff1681518110612dc757fe5b01602001516001600160f81b03191615612de657600190910190612deb565b612df3565b600101612dac565b5060608160ff166040519080825280601f01601f191660200182016040528015612e24576020820181803683370190505b50905060005b8260ff168160ff161015612e8057838160ff1681518110612e4757fe5b602001015160f81c60f81b828260ff1681518110612e6157fe5b60200101906001600160f81b031916908160001a905350600101612e2a565b5095945050505050565b61100481565b6060612e9a615108565b6000612ea584613774565b9150915080612efb576040805162461bcd60e51b815260206004820152601f60248201527f756e7265636f676e697a6564207472616e73666572496e207061636b61676500604482015290519081900360640190fd5b6000612f06836138b3565b905063ffffffff811615612f9a576040808401516020808601516001600160a01b03166000908152600290915291822054612f419190613444565b9050612f4b61513d565b60405180608001604052808660000151815260200183815260200186608001516001600160a01b031681526020018463ffffffff168152509050612f8e81613c19565b955050505050506111e9565b505060408051600081526020810190915291506111e99050565b600082820183811015611c99576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000611c9983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613cf5565b60008261305f57506000611c9c565b8282028284828161306c57fe5b0414611c995760405162461bcd60e51b81526004018080602001828103825260218152602001806154436021913960400191505060405180910390fd5b6000611c9983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613d97565b60408051600680825260e08201909252606091829190816020015b6060815260200190600190039081613106575050835190915061312890613df1565b8160008151811061313557fe5b602002602001018190525061315683602001516001600160a01b0316613e04565b8160018151811061316357fe5b6020026020010181905250600083604001515190506060816040519080825280602002602001820160405280156131ae57816020015b60608152602001906001900390816131995790505b50905060005b828110156131fb576131dc866040015182815181106131cf57fe5b6020026020010151613df1565b8282815181106131e857fe5b60209081029190910101526001016131b4565b5061320581613e27565b8360028151811061321257fe5b602002602001018190525060608260405190808252806020026020018201604052801561325357816020015b606081526020019060019003908161323e5790505b50905060005b838110156132a95761328a8760600151828151811061327457fe5b60200260200101516001600160a01b0316613e04565b82828151811061329657fe5b6020908102919091010152600101613259565b506132b381613e27565b846003815181106132c057fe5b602002602001018190525060608360405190808252806020026020018201604052801561330157816020015b60608152602001906001900390816132ec5790505b50905060005b84811015613341576133228860800151828151811061327457fe5b82828151811061332e57fe5b6020908102919091010152600101613307565b5061334b81613e27565b8560048151811061335857fe5b602002602001018190525061337a8760a0015167ffffffffffffffff16613df1565b8560058151811061338757fe5b602002602001018190525061339b85613e27565b979650505050505050565b6133ae615164565b60006133b983613eb1565b91509150806133f95760405162461bcd60e51b81526004018080602001828103825260248152602001806154d16024913960400191505060405180910390fd5b61190b8261407c565b6000611c9983836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f0000000000000000815250614500565b6000600882111561346d57613466836007198401600a0a63ffffffff61300e16565b9050611c9c565b611c99836008849003600a0a63ffffffff61305016565b604080516020808252818301909252600091606091906020820181803683375050506020810184905290506000805b60208160ff1610156134fa57828160ff16815181106134ce57fe5b01602001516001600160f81b031916156134ed576001909101906134f2565b6134fa565b6001016134b3565b50600760ff82161015613512576000925050506111e9565b816005820360ff168151811061352457fe5b6020910101516001600160f81b031916602d60f81b14613549576000925050506111e9565b816001820360ff168151811061355b57fe5b6020910101516001600160f81b031916604d60f81b14613580576000925050506111e9565b5060019392505050565b6000816040516020018082805190602001908083835b602083106135bf5780518252601f1990920191602091820191016135a0565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b6020831061362d5780518252601f19909201916020918201910161360e565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b61367e6150bc565b600061368983614562565b91509150806136c95760405162461bcd60e51b81526004018080602001828103825260248152602001806152946024913960400191505060405180910390fd5b6136d1615164565b602080840180516001600160a01b0390811684526040808701518585015291511660009081526002909252812054905b8460400151518110156137525761372f8560400151828151811061372157fe5b6020026020010151836147c6565b8560400151828151811061373f57fe5b6020908102919091010152600101613701565b50608084015160408301526005606083015261376d8261407c565b5050505050565b61377c615108565b6000613786615108565b61378e61519b565b61379f61379a866147ff565b614824565b90506000805b6137ae8361486e565b156138a657806137d0576137c96137c48461488f565b6148dd565b845261389e565b80600114156137fd576137ea6137e58461488f565b614994565b6001600160a01b0316602085015261389e565b806002141561381c576138126137c48461488f565b604085015261389e565b8060031415613844576138316137e58461488f565b6001600160a01b0316606085015261389e565b806004141561386c576138596137e58461488f565b6001600160a01b0316608085015261389e565b8060051415613899576138816137c48461488f565b67ffffffffffffffff1660a08501526001915061389e565b6138a6565b6001016137a5565b5091935090915050915091565b60208101516000906001600160a01b03166139f7578160a0015167ffffffffffffffff164211156138e6575060016111e9565b81604001514710156138fa575060036111e9565b613903826149ae565b61397857606082015160408084015190516000926001600160a01b0316916127109184818181858888f193505050503d806000811461395e576040519150601f19603f3d011682016040523d82523d6000602084013e613963565b606091505b50509050806139765750600490506111e9565b505b7f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5982602001518360600151846040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a15060006111e9565b8160a0015167ffffffffffffffff16421115613a15575060016111e9565b81516020808401516001600160a01b031660009081526003909152604090205414613a42575060026111e9565b602080830151604080516370a0823160e01b815230600482015290516000936001600160a01b03909316926370a082319261c3509260248083019392829003018187803b158015613a9257600080fd5b5086fa158015613aa6573d6000803e3d6000fd5b50505050506040513d6020811015613abd57600080fd5b50516040840151909150811015613ad85750600390506111e9565b613ae1836149ae565b613b9857600083602001516001600160a01b031663a9059cbb61c350866060015187604001516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b158015613b5657600080fd5b5087f1158015613b6a573d6000803e3d6000fd5b50505050506040513d6020811015613b8157600080fd5b5051905080613b965750600591506111e99050565b505b7f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5983602001518460600151856040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a150600090506111e9565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081613c345750508351909150613c5690613df1565b81600081518110613c6357fe5b6020026020010181905250613c7b8360200151613df1565b81600181518110613c8857fe5b6020026020010181905250613ca983604001516001600160a01b0316613e04565b81600281518110613cb657fe5b6020026020010181905250613cd4836060015163ffffffff16613df1565b81600381518110613ce157fe5b602002602001018190525061109f81613e27565b60008183613d815760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613d46578181015183820152602001613d2e565b50505050905090810190601f168015613d735780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581613d8d57fe5b0495945050505050565b60008184841115613de95760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315613d46578181015183820152602001613d2e565b505050900390565b6060611c9c613dff83614b1c565b614c02565b60408051600560a21b831860148201526034810190915260609061109f81614c02565b6060815160001415613e4857506040805160008152602081019091526111e9565b606082600081518110613e5757fe5b602002602001015190506000600190505b8351811015613e9857613e8e82858381518110613e8157fe5b6020026020010151614c54565b9150600101613e68565b5061109f613eab825160c060ff16614cd1565b82614c54565b613eb9615164565b6000613ec3615164565b613ecb61519b565b613ed761379a866147ff565b90506000805b613ee68361486e565b156138a65780613f0c57613efc6137e58461488f565b6001600160a01b03168452614074565b8060011415613fad576060613f28613f238561488f565b614dc9565b90508051604051908082528060200260200182016040528015613f55578160200160208202803683370190505b50602086015260005b8151811015613fa657613f83828281518110613f7657fe5b60200260200101516148dd565b86602001518281518110613f9357fe5b6020908102919091010152600101613f5e565b5050614074565b806002141561404f576060613fc4613f238561488f565b90508051604051908082528060200260200182016040528015613ff1578160200160208202803683370190505b50604086015260005b8151811015613fa65761401f82828151811061401257fe5b6020026020010151614994565b8660400151828151811061402f57fe5b6001600160a01b0390921660209283029190910190910152600101613ffa565b8060031415613899576140646137c48461488f565b63ffffffff166060850152600191505b600101613edd565b80516001600160a01b03166142a65760005b8160200151518110156142a0576000826040015182815181106140ad57fe5b60200260200101516001600160a01b0316612710846020015184815181106140d157fe5b60209081029190910101516040516000818181858888f193505050503d8060008114614119576040519150601f19603f3d011682016040523d82523d6000602084013e61411e565b606091505b50509050806141e1577f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061415d57fe5b60200260200101518560200151858151811061417557fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a1614297565b7fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a83600001518460400151848151811061421757fe5b60200260200101518560200151858151811061422f57fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b5060010161408e565b506144fd565b60005b8160200151518110156144fb57600082600001516001600160a01b031663a9059cbb61c350856040015185815181106142de57fe5b6020026020010151866020015186815181106142f657fe5b60200260200101516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b15801561434d57600080fd5b5087f1158015614361573d6000803e3d6000fd5b50505050506040513d602081101561437857600080fd5b50519050801561443c577fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a8360000151846040015184815181106143b857fe5b6020026020010151856020015185815181106143d057fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a16144f2565b7f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061447257fe5b60200260200101518560200151858151811061448a57fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b506001016142a9565b505b50565b6000818361454f5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315613d46578181015183820152602001613d2e565b5082848161455957fe5b06949350505050565b61456a6150bc565b60006145746150bc565b61457c61519b565b61458861379a866147ff565b90506000805b6145978361486e565b156138a657806145b4576145ad6137c48461488f565b84526147be565b80600114156145dc576145c96137e58461488f565b6001600160a01b031660208501526147be565b806002141561466b5760606145f3613f238561488f565b90508051604051908082528060200260200182016040528015614620578160200160208202803683370190505b50604086015260005b815181101561466457614641828281518110613f7657fe5b8660400151828151811061465157fe5b6020908102919091010152600101614629565b50506147be565b8060031415614700576060614682613f238561488f565b905080516040519080825280602002602001820160405280156146af578160200160208202803683370190505b50606086015260005b8151811015614664576146d082828151811061401257fe5b866060015182815181106146e057fe5b6001600160a01b03909216602092830291909101909101526001016146b8565b8060041415614795576060614717613f238561488f565b90508051604051908082528060200260200182016040528015614744578160200160208202803683370190505b50608086015260005b81518110156146645761476582828151811061401257fe5b8660800151828151811061477557fe5b6001600160a01b039092166020928302919091019091015260010161474d565b8060051415613899576147aa6137c48461488f565b67ffffffffffffffff1660a0850152600191505b60010161458e565b600060088211156147e857613466836007198401600a0a63ffffffff61305016565b611c99836008849003600a0a63ffffffff61300e16565b6148076151bb565b506040805180820190915281518152602082810190820152919050565b61482c61519b565b61483582614e9a565b61483e57600080fd5b600061484d8360200151614eca565b60208085015160408051808201909152868152920190820152915050919050565b60006148786151bb565b505080518051602091820151919092015191011190565b6148976151bb565b6148a08261486e565b6148a957600080fd5b602082015160006148b982614f2d565b80830160209586015260408051808201909152908152938401919091525090919050565b8051600090158015906148f257508151602110155b6148fb57600080fd5b600061490a8360200151614eca565b90508083600001511015614965576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b82516020808501518301805192849003929183101561498b57826020036101000a820491505b50949350505050565b80516000906015146149a557600080fd5b611c9c826148dd565b600080805260066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f8541580156149e75750600554155b15614a295760008052600660205269021e19e0c9bab24000007f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f85561a8c06005555b6020808301516001600160a01b0316600090815260069091526040902054801580614a575750808360400151105b15614a665760009150506111e9565b6020808401516001600160a01b039081166000908152600783526040808220606088015190931682529190925290819020908401518154614aac9163ffffffff612fb416565b8155600554420160018201819055606085015160208087015160408089015181519081529283019490945283516001600160a01b039384169493909116927f3fb83143cd331170da18fb1e8564d97e8ec39264b6ecb1ba248ea7596ab07258928290030190a35060019392505050565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416614b6057506018614b84565b6fffffffffffffffffffffffffffffffff198416614b8057506010614b84565b5060005b6020811015614bba57818181518110614b9957fe5b01602001516001600160f81b03191615614bb257614bba565b600101614b84565b60008160200390506060816040519080825280601f01601f191660200182016040528015614bef576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015614c345750607f60f81b82600081518110614c2257fe5b01602001516001600160f81b03191611155b15614c405750806111e9565b611c9c614c528351608060ff16614cd1565b835b6060806040519050835180825260208201818101602087015b81831015614c85578051835260209283019201614c6d565b50855184518101855292509050808201602086015b81831015614cb2578051835260209283019201614c9a565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310614d21576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b60408051600180825281830190925260609160208201818036833701905050905060378411614d7b5782840160f81b81600081518110614d5d57fe5b60200101906001600160f81b031916908160001a9053509050611c9c565b6060614d8685614b1c565b90508381510160370160f81b82600081518110614d9f57fe5b60200101906001600160f81b031916908160001a905350614dc08282614c54565b95945050505050565b6060614dd482614e9a565b614ddd57600080fd5b6000614de883615060565b9050606081604051908082528060200260200182016040528015614e2657816020015b614e136151bb565b815260200190600190039081614e0b5790505b5090506000614e388560200151614eca565b60208601510190506000805b84811015614e8f57614e5583614f2d565b9150604051806040016040528083815260200184815250848281518110614e7857fe5b602090810291909101015291810191600101614e44565b509195945050505050565b8051600090614eab575060006111e9565b6020820151805160001a9060c0821015613580576000925050506111e9565b8051600090811a6080811015614ee45760009150506111e9565b60b8811080614eff575060c08110801590614eff575060f881105b15614f0e5760019150506111e9565b60c0811015614f225760b5190190506111e9565b60f5190190506111e9565b80516000908190811a6080811015614f485760019150615059565b60b8811015614f5d57607e1981019150615059565b60c0811015614fd757600060b78203600186019550806020036101000a865104915060018101820193505080831015614fd1576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50615059565b60f8811015614fec5760be1981019150615059565b600060f78203600186019550806020036101000a865104915060018101820193505080831015615057576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b8051600090615071575060006111e9565b600080905060006150858460200151614eca565b602085015185519181019250015b808210156150b3576150a482614f2d565b60019093019290910190615093565b50909392505050565b6040518060c001604052806000801916815260200160006001600160a01b03168152602001606081526020016060815260200160608152602001600067ffffffffffffffff1681525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b60408051608081018252600080825260208201819052918101829052606081019190915290565b604051806080016040528060006001600160a01b031681526020016060815260200160608152602001600063ffffffff1681525090565b60405180604001604052806151ae6151bb565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe6f6e6c79207374616b696e672073797374656d20636f6e74726163742063616e2063616c6c20746869732066756e6374696f6e746865206d6573736167652073656e646572206d75737420626520696e63656e746976697a6520636f6e7472616374626e62206c61726765207472616e73666572206c696d697420746f6f20736d616c6c466f72206d696e69546f6b656e2c20746865207472616e7366657220616d6f756e74206d757374206e6f74206265206c657373207468616e2031756e7265636f676e697a6564207472616e736665724f75742073796e207061636b61676565787069726554696d65206d7573742062652074776f206d696e75746573206c61746572616d6f756e7420697320746f6f206c617267652c20657863656564206d6178696d756d206265703220746f6b656e20616d6f756e7474686520636f6e747261637420686173206e6f74206265656e20626f756e6420746f20616e79206265703220746f6b656e726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e736665724f757420424e4220616d6f756e7420616e64206d696e696d756d2072656c6179466565616d6f756e7420697320746f6f206c617267652c2075696e74323536206f766572666c6f774c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620726566756e644164647273696e76616c6964207472616e7366657220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e20746865206d696e696d756d2072656c6179466565746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374756e7265636f676e697a6564207472616e736665724f75742061636b207061636b6167654c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620616d6f756e7473746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d73672073656e646572206d75737420626520746f6b656e4d616e6167657274686520636f6e7472616374206e6f7420696e69742079657400000000000000726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e7366657220424e4220616d6f756e7420616e642072656c6179466565696e76616c696420726563656976656420424e4220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6ea2646970667358221220ef72e8713245ba000d1e9efd85d005317b64710a26d7b67a7649bda481a927d064736f6c63430006040033", - }, - { - ContractAddr: CrossChainContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/78e13b1d3a5a1b08c9208af94a9b14fc1efda213", - Code: "608060405234801561001057600080fd5b50600436106103995760003560e01c8063718a8aa8116101e9578063c27cdcfb1161010f578063dc927faf116100ad578063f7a251d71161007c578063f7a251d714610b2f578063f9a2bbc714610ba7578063fc3e590814610baf578063fd6a687914610bb757610399565b8063dc927faf14610af7578063e1c7392a14610aff578063e3b0480514610b07578063e6400bbe14610b2757610399565b8063ccc108d7116100e9578063ccc108d714610ab0578063d31f968d14610ab8578063d76a867514610ae7578063dc40433114610aef57610399565b8063c27cdcfb14610a80578063c780e9de14610aa0578063c81b166214610aa857610399565b80638cc8f56111610187578063a78abc1611610156578063a78abc16146109b2578063ab51bb96146109ba578063ac431751146109c2578063b0355f5b1461078157610399565b80638cc8f5611461088757806396713da91461099a5780639dc09262146109a2578063a1a11bf5146109aa57610399565b806375d47a0a116101c357806375d47a0a146108a75780637942fd05146108af57806384013b6a146108b7578063863fe4ab1461099257610399565b8063718a8aa81461088f578063719482d51461089757806374f079b81461089f57610399565b8063422f9050116102ce57806363e1394e1161026c5780636de380bd1161023b5780636de380bd146108575780636e47a51a1461085f5780636e47b4821461087f57806370fd5bad1461088757610399565b806363e1394e146107ff5780636a3cb34d146108075780636bacff2c1461080f5780636c46aa681461080757610399565b80634bf6c882116102a85780634bf6c882146107b957806351e80672146107c15780635692ddd3146107c95780635f832177146107d157610399565b8063422f90501461078957806343756e5c146107a9578063493279b1146107b157610399565b8063299b533d1161033b578063308325f411610315578063308325f4146106155780633a648b151461061d5780633bdc47a6146106595780633dffc3871461078157610399565b8063299b533d146105a35780632af6f399146105d75780632ff32aea146105f457610399565b806314b3023b1161037757806314b3023b146104015780631d1309351461041b5780631e275ae11461043757806322556cdc1461059b57610399565b806305e682581461039e5780630bee7a67146103bc5780630e2374a5146103dd575b600080fd5b6103a6610bbf565b6040805160ff9092168252519081900360200190f35b6103c4610bc4565b6040805163ffffffff9092168252519081900360200190f35b6103e5610bc9565b604080516001600160a01b039092168252519081900360200190f35b610409610bcf565b60408051918252519081900360200190f35b610423610bd5565b604080519115158252519081900360200190f35b610599600480360361010081101561044e57600080fd5b81018160a081016080820135600160201b81111561046b57600080fd5b82018360208201111561047d57600080fd5b803590602001918460018302840111600160201b8311171561049e57600080fd5b919390929091602081019035600160201b8111156104bb57600080fd5b8201836020820111156104cd57600080fd5b803590602001918460018302840111600160201b831117156104ee57600080fd5b919390929091602081019035600160201b81111561050b57600080fd5b82018360208201111561051d57600080fd5b803590602001918460018302840111600160201b8311171561053e57600080fd5b919390929091602081019035600160201b81111561055b57600080fd5b82018360208201111561056d57600080fd5b803590602001918460018302840111600160201b8311171561058e57600080fd5b509092509050610bde565b005b6104096112c2565b6105c0600480360360208110156105b957600080fd5b50356112c7565b6040805161ffff9092168252519081900360200190f35b610423600480360360208110156105ed57600080fd5b50356112dd565b6105fc6112f2565b60408051600792830b90920b8252519081900360200190f35b6104096112fb565b61063d6004803603602081101561063357600080fd5b503560ff16611301565b604080516001600160401b039092168252519081900360200190f35b61070c6004803603606081101561066f57600080fd5b60ff82351691602081013591810190606081016040820135600160201b81111561069857600080fd5b8201836020820111156106aa57600080fd5b803590602001918460018302840111600160201b831117156106cb57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061131c945050505050565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561074657818101518382015260200161072e565b50505050905090810190601f1680156107735780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103a6611392565b6104236004803603602081101561079f57600080fd5b503560ff16611397565b6103e56113ac565b6105c06113b2565b6103a66113b7565b6103e56113bc565b6104096113c2565b610599600480360360408110156107e757600080fd5b506001600160a01b03813581169160200135166113f2565b610409611652565b6105c061167a565b61082c6004803603602081101561082557600080fd5b503561167f565b6040805161ffff90941684526001600160801b03909216602084015282820152519081900360600190f35b6104096116ae565b6103e56004803603602081101561087557600080fd5b503560ff166116d5565b6103e56116f0565b6103a661167a565b6103a66116f6565b6105c0611392565b6104096116fb565b6103e5611701565b6103a6611707565b610599600480360360a08110156108cd57600080fd5b810190602081018135600160201b8111156108e757600080fd5b8201836020820111156108f957600080fd5b803590602001918460018302840111600160201b8311171561091a57600080fd5b919390929091602081019035600160201b81111561093757600080fd5b82018360208201111561094957600080fd5b803590602001918460018302840111600160201b8311171561096a57600080fd5b919350915080356001600160401b03908116916020810135909116906040013560ff1661170c565b610409612a36565b6103a6612a3e565b6103e5612a43565b6103e5612a49565b610423612a4f565b6103c4610bbf565b610599600480360360408110156109d857600080fd5b810190602081018135600160201b8111156109f257600080fd5b820183602082011115610a0457600080fd5b803590602001918460018302840111600160201b83111715610a2557600080fd5b919390929091602081019035600160201b811115610a4257600080fd5b820183602082011115610a5457600080fd5b803590602001918460018302840111600160201b83111715610a7557600080fd5b509092509050612a58565b61063d60048036036020811015610a9657600080fd5b503560ff1661351c565b610409613537565b6103e561355b565b610599613561565b61042360048036036040811015610ace57600080fd5b5080356001600160a01b0316906020013560ff166137b5565b61070c6137d5565b6104096137f4565b6103e56137fa565b610599613800565b61063d60048036036020811015610b1d57600080fd5b503560ff16613bb7565b610599613bd2565b61059960048036036060811015610b4557600080fd5b60ff8235169190810190604081016020820135600160201b811115610b6957600080fd5b820183602082011115610b7b57600080fd5b803590602001918460018302840111600160201b83111715610b9c57600080fd5b919350915035613df1565b6103e5613f34565b6103a6613f3a565b6103e5613f3f565b600081565b606481565b61200181565b60015481565b600b5460ff1681565b60005460ff16610c23576040805162461bcd60e51b81526020600482015260196024820152600080516020614a4c833981519152604482015290519081900360640190fd5b604080516337d7f9c160e21b81526001600160401b038b35166004820181905291516110039163df5fe704916024808301926020929190829003018186803b158015610c6e57600080fd5b505afa158015610c82573d6000803e3d6000fd5b505050506040513d6020811015610c9857600080fd5b5051610cd55760405162461bcd60e51b8152600401808060200182810382526023815260200180614a6c6023913960400191505060405180910390fd5b604080516337d7f9c160e21b815260208c8101356001600160401b03166004830181905292516110039263df5fe704926024808301939192829003018186803b158015610d2157600080fd5b505afa158015610d35573d6000803e3d6000fd5b505050506040513d6020811015610d4b57600080fd5b5051610d885760405162461bcd60e51b8152600401808060200182810382526023815260200180614a6c6023913960400191505060405180910390fd5b60608b013560ff81166000908152600560205260409020546001600160401b03909116906001600160a01b0316610e01576040805162461bcd60e51b815260206004820152601860248201527718da185b9b995b081a5cc81b9bdd081cdd5c1c1bdc9d195960421b604482015290519081900360640190fd5b600b5460ff1615610e45576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b8888604051808383808284376040519201829003822094508f93508e9250819050838380828437808301925050509250505060405180910390201415610ec1576040805162461bcd60e51b815260206004820152600c60248201526b1cd85b59481c185e5b1bd85960a21b604482015290519081900360640190fd5b60606001600160401b0360408e01358116908e83013516610ee28282613f45565b80516020808301919091206000818152600e9092526040909120549194509060ff1615610f4b576040805162461bcd60e51b8152602060048201526012602482015271185b1c9958591e4818da185b1b195b99d95960721b604482015290519081900360640190fd5b6000908152600e60205260408120805460ff191660011790558f8160200201356001600160401b0316905060608f8f8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060608c8c8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506040805163cba510a960e01b81526001600160401b038a16600482015290519596509094611003945063cba510a9935060248083019350602092829003018186803b15801561104157600080fd5b505afa158015611055573d6000803e3d6000fd5b505050506040513d602081101561106b57600080fd5b505160408051808201909152600381526269626360e81b6020820152909150611098908290898686613f8d565b6110e1576040805162461bcd60e51b81526020600482015260156024820152740696e76616c6964206d65726b6c652070726f6f663605c1b604482015290519081900360640190fd5b5050505060008f6001600481106110f457fe5b60200201356001600160401b0316905060608d8d8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8f018190048102820181019092528d815293945060609392508d91508c908190840183828082843760009201829052506040805163cba510a960e01b81526001600160401b038a16600482015290519596509094611003945063cba510a9935060248083019350602092829003018186803b1580156111c057600080fd5b505afa1580156111d4573d6000803e3d6000fd5b505050506040513d60208110156111ea57600080fd5b505160408051808201909152600381526269626360e81b6020820152909150611217908290898686613f8d565b611260576040805162461bcd60e51b8152602060048201526015602482015274696e76616c6964206d65726b6c652070726f6f663160581b604482015290519081900360640190fd5b5050505061126c61408a565b604080516001600160401b038416815260ff83166020820152815133927f039eb91179ffd7d3b6e97f8ea106e748e827f910b872375dbc9c14a362319c3c928290030190a2505050505050505050505050505050565b603281565b600d6020526000908152604090205461ffff1681565b600e6020526000908152604090205460ff1681565b60045460070b81565b60025481565b600a602052600090815260409020546001600160401b031681565b60606000825160210190506060816040519080825280601f01601f191660200182016040528015611354576020820181803683370190505b506021810186905260018101879052828152905060418101600061137786614108565b50905061138681838851614112565b50909695505050505050565b600181565b60096020526000908152604090205460ff1681565b61100181565b606181565b600881565b61200081565b604080517710d05390d15317d514905394d1915497d41493d413d4d05360421b8152905190819003601801902081565b60005460ff16611437576040805162461bcd60e51b81526020600482015260196024820152600080516020614a4c833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b15801561147a57600080fd5b505afa15801561148e573d6000803e3d6000fd5b505050506040513d60208110156114a457600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b1580156114e557600080fd5b505afa1580156114f9573d6000803e3d6000fd5b505050506040513d602081101561150f57600080fd5b505190508061151c575060155b60008211801561152c5750808211155b61156b576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b604080516001600160a01b038087166020808401919091529086168284015282518083038401815260608301808552815191909201207710d05390d15317d514905394d1915497d41493d413d4d05360421b90915291519081900360780190206000906115d89083614153565b9050801561164a5760408051630911a2c160e11b81526001600160a01b03888116600483015287166024820152905161100491631223458291604480830192600092919082900301818387803b15801561163157600080fd5b505af1158015611645573d6000803e3d6000fd5b505050505b505050505050565b604080516f14d554d411539117d41493d413d4d05360821b8152905190819003601001902081565b600281565b600c602052600090815260409020805460019091015461ffff8216916201000090046001600160801b03169083565b604080516e149153d4115397d41493d413d4d053608a1b8152905190819003600f01902081565b6005602052600090815260409020546001600160a01b031681565b61100581565b601081565b60035481565b61100881565b600b81565b60005460ff16611751576040805162461bcd60e51b81526020600482015260196024820152600080516020614a4c833981519152604482015290519081900360640190fd5b60408051630a83aaa960e31b815233600482015290516110069163541d5548916024808301926020929190829003018186803b15801561179057600080fd5b505afa1580156117a4573d6000803e3d6000fd5b505050506040513d60208110156117ba57600080fd5b505161180d576040805162461bcd60e51b815260206004820152601f60248201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604482015290519081900360640190fd5b739fb29aac15b9a4b7f17c3385939b007540f4d79133148061184257507337b8516a0f88e65d677229b402ec6c1e0e33300433145b61187d5760405162461bcd60e51b815260040180806020018281038252602a8152602001806149f0602a913960400191505060405180910390fd5b60ff8116600090815260086020526040902054829082906001600160401b0390811690831681146118ed576040805162461bcd60e51b815260206004820152601560248201527439b2b8bab2b731b2903737ba1034b71037b93232b960591b604482015290519081900360640190fd5b60ff8216600090815260086020908152604091829020805467ffffffffffffffff1916600185016001600160401b039081169190911790915582516337d7f9c160e21b81529089166004820152915188926110039263df5fe70492602480840193829003018186803b15801561196257600080fd5b505afa158015611976573d6000803e3d6000fd5b505050506040513d602081101561198c57600080fd5b50516119c95760405162461bcd60e51b8152600401808060200182810382526023815260200180614a6c6023913960400191505060405180910390fd5b60ff851660009081526005602052604090205485906001600160a01b0316611a33576040805162461bcd60e51b815260206004820152601860248201527718da185b9b995b081a5cc81b9bdd081cdd5c1c1bdc9d195960421b604482015290519081900360640190fd5b60ff86166000908152600a6020526040902054889087906001600160401b039081169083161015611a9c576040805162461bcd60e51b815260206004820152600e60248201526d3a37b79037b632103432b0b232b960911b604482015290519081900360640190fd5b60ff81166000908152600a60205260409020546001600160401b03838116911614611aee5760ff81166000908152600a60205260409020805467ffffffffffffffff19166001600160401b0384161790555b600b5460ff1615611b32576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b60608e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060608d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509050611c766110036001600160a01b031663cba510a98e6040518263ffffffff1660e01b815260040180826001600160401b03166001600160401b0316815260200191505060206040518083038186803b158015611c1f57600080fd5b505afa158015611c33573d6000803e3d6000fd5b505050506040513d6020811015611c4957600080fd5b505160408051808201909152600381526269626360e81b6020820152611c6f8e8e613f45565b8585613f8d565b611cbe576040805162461bcd60e51b815260206004820152601460248201527334b73b30b634b21036b2b935b63290383937b7b360611b604482015290519081900360640190fd5b60408051631bb5062960e31b81526001600160401b038e16600482015290516000916110039163dda8314891602480820192602092909190829003018186803b158015611d0a57600080fd5b505afa158015611d1e573d6000803e3d6000fd5b505050506040513d6020811015611d3457600080fd5b505190508b8b600080806060611d4989614438565b935093509350935083611e0b578460ff16866001600160401b03167ff7b2e42d694eb1100184aae86d4245d9e46966100b1dc7e723275b98326854ac8b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015611dc3578181015183820152602001611dab565b50505050905090810190601f168015611df05780820380516001836020036101000a031916815260200191505b509250505060405180910390a3505050505050505050612a26565b6040805160ff85811682529151918716916001600160401b038916917f36afdaf439a8f43fe72135135d804ae620b37a474f0943b5b85f6788312cad40919081900360200190a360ff83166123905760ff85166000818152600560209081526040808320548151631182b87560e01b815260048101958652602481019283528651604482015286516001600160a01b03909216958695631182b875958d958a9593949093606490910192918601918190849084905b83811015611ed8578181015183820152602001611ec0565b50505050905090810190601f168015611f055780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b158015611f2557600080fd5b505af192505050801561200957506040513d6000823e601f3d908101601f191682016040526020811015611f5857600080fd5b8101908080516040519392919084600160201b821115611f7757600080fd5b908301906020820185811115611f8c57600080fd5b8251600160201b811182820188101715611fa557600080fd5b82525081516020918201929091019080838360005b83811015611fd2578181015183820152602001611fba565b50505050905090810190601f168015611fff5780820380516001836020036101000a031916815260200191505b5060405250505060015b61231b576040516000815260443d1015612025575060006120c0565b60046000803e60005160e01c6308c379a081146120465760009150506120c0565b60043d036004833e81513d60248201116001600160401b0382111715612071576000925050506120c0565b80830180516001600160401b038111156120925760009450505050506120c0565b8060208301013d86018111156120b0576000955050505050506120c0565b601f01601f191660405250925050505b806120cb57506121dd565b60ff8716600090815260076020526040812054612102916001600160401b039091169089906120fd906002908861131c565b6144e8565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf948794849390840192918601918190849084905b8381101561219d578181015183820152602001612185565b50505050905090810190601f1680156121ca5780820380516001836020036101000a031916815260200191505b509250505060405180910390a250612316565b3d808015612207576040519150601f19603f3d011682016040523d82523d6000602084013e61220c565b606091505b5060ff871660009081526007602052604081205461223f916001600160401b039091169089906120fd906002908861131c565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351948794849390840192918601918190849084905b838110156122da5781810151838201526020016122c2565b50505050905090810190601f1680156123075780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b61238a565b8051156123885760ff8716600090815260076020526040812054612354916001600160401b039091169089906120fd906001908661131c565b60ff8716600090815260076020526040902080546001600160401b038082166001011667ffffffffffffffff199091161790555b505b5061295e565b60ff8316600114156126345760ff8516600081815260056020908152604080832054815163831d65d160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563831d65d1958d958a9593949093606490910192918601918190849084905b8381101561241a578181015183820152602001612402565b50505050905090810190601f1680156124475780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561246757600080fd5b505af1925050508015612478575060015b61238a576040516000815260443d10156124945750600061252f565b60046000803e60005160e01c6308c379a081146124b557600091505061252f565b60043d036004833e81513d60248201116001600160401b03821117156124e05760009250505061252f565b80830180516001600160401b0381111561250157600094505050505061252f565b8060208301013d860181111561251f5760009550505050505061252f565b601f01601f191660405250925050505b8061253a575061259f565b60408051602080825283518183015283516001600160a01b038616937ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf938693909283928301918501908083836000831561219d578181015183820152602001612185565b3d8080156125c9576040519150601f19603f3d011682016040523d82523d6000602084013e6125ce565b606091505b5060408051602080825283518183015283516001600160a01b038616937f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd297735193869390928392830191850190808383600083156122da5781810151838201526020016122c2565b60ff83166002141561295e5760ff8516600081815260056020908152604080832054815163c8509d8160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563c8509d81958d958a9593949093606490910192918601918190849084905b838110156126be5781810151838201526020016126a6565b50505050905090810190601f1680156126eb5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561270b57600080fd5b505af192505050801561271c575060015b61295c576040516000815260443d1015612738575060006127d3565b60046000803e60005160e01c6308c379a081146127595760009150506127d3565b60043d036004833e81513d60248201116001600160401b0382111715612784576000925050506127d3565b80830180516001600160401b038111156127a55760009450505050506127d3565b8060208301013d86018111156127c3576000955050505050506127d3565b601f01601f191660405250925050505b806127de5750612887565b816001600160a01b03167ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf826040518080602001828103825283818151815260200191508051906020019080838360005b8381101561284757818101518382015260200161282f565b50505050905090810190601f1680156128745780820380516001836020036101000a031916815260200191505b509250505060405180910390a25061295c565b3d8080156128b1576040519150601f19603f3d011682016040523d82523d6000602084013e6128b6565b606091505b50816001600160a01b03167f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351826040518080602001828103825283818151815260200191508051906020019080838360005b83811015612920578181015183820152602001612908565b50505050905090810190601f16801561294d5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b505b60ff80861660009081526009602052604090205461100591636f93d2e6918a91339187911680612990575060ff881615155b604080516001600160e01b031960e088901b1681526001600160a01b039586166004820152939094166024840152604483019190915215156064820152905160848083019260209291908290030181600087803b1580156129f057600080fd5b505af1158015612a04573d6000803e3d6000fd5b505050506040513d6020811015612a1a57600080fd5b50505050505050505050505b5050505050505050505050505050565b630100610081565b600981565b61100781565b61100681565b60005460ff1681565b3361100714612a985760405162461bcd60e51b815260040180806020018281038252602e815260200180614978602e913960400191505060405180910390fd5b600b5460ff1615612adc576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b612b4584848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526012815271626174636853697a65466f724f7261636c6560701b602082015291506146829050565b15612be057604080516020601f8401819004810282018101909252828152600091612b889185858083850183828082843760009201919091525061476992505050565b90506127108111158015612b9d5750600a8110155b612bd85760405162461bcd60e51b8152600401808060200182810382526032815260200180614a1a6032913960400191505060405180910390fd5b60015561348a565b612c4984848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601281527118591913dc955c19185d1950da185b9b995b60721b602082015291506146829050565b15612dd157606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060169091149050612ccc5760405162461bcd60e51b815260040180806020018281038252605a815260200180614891605a913960600191505060405180910390fd5b60018101516002820151601683015160ff82161590612cea8161476e565b612d3b576040805162461bcd60e51b815260206004820152601960248201527f61646472657373206973206e6f74206120636f6e747261637400000000000000604482015290519081900360640190fd5b60ff8416600081815260056020908152604080832080546001600160a01b0319166001600160a01b038716908117909155808452600683528184208585528352818420805460ff199081166001179091556009909352818420805490931687151517909255519092917f7e3b6af43092577ee20e60eaa1d9b114a7031305c895ee7dd3ffe17196d2e1e091a3505050505061348a565b612e3e84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526016815275195b98589b1953dc911a5cd8589b1950da185b9b995b60521b602082015291506146829050565b15612f6f57606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060029091149050612ec15760405162461bcd60e51b815260040180806020018281038252604a8152602001806149a6604a913960600191505060405180910390fd5b600181810151600283015160ff80831660009081526005602052604090205492939192908316909114906001600160a01b03168015612f65576001600160a01b038116600090815260066020908152604080832060ff881680855290835292819020805460ff1916861515908117909155815190815290517fa3132e3f9819fbddc7f0ed6d38d7feef59aa95112090b7c592f5cb5bc4aa4adc929181900390910190a25b505050505061348a565b612fd384848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c73757370656e6451756f72756d60981b602082015291506146829050565b1561310857600281146130175760405162461bcd60e51b815260040180806020018281038252602d81526020018061491f602d913960400191505060405180910390fd5b600061305a600284848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061476992505050565b905060008161ffff16118015613074575060648161ffff16105b6130be576040805162461bcd60e51b8152602060048201526016602482015275696e76616c69642073757370656e642071756f72756d60501b604482015290519081900360640190fd5b604080516f14d554d411539117d41493d413d4d05360821b815281519081900360100190206000908152600d60205220805461ffff90921661ffff1990921691909117905561348a565b61316b84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600c81526b72656f70656e51756f72756d60a01b602082015291506146829050565b1561329e57600281146131af5760405162461bcd60e51b815260040180806020018281038252602c81526020018061494c602c913960400191505060405180910390fd5b60006131f2600284848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061476992505050565b905060008161ffff1611801561320c575060648161ffff16105b613255576040805162461bcd60e51b8152602060048201526015602482015274696e76616c69642072656f70656e2071756f72756d60581b604482015290519081900360640190fd5b604080516e149153d4115397d41493d413d4d053608a1b8152815190819003600f0190206000908152600d60205220805461ffff90921661ffff1990921691909117905561348a565b61330984848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601481527363616e63656c5472616e7366657251756f72756d60601b602082015291506146829050565b1561344d576002811461334d5760405162461bcd60e51b81526004018080602001828103825260348152602001806148eb6034913960400191505060405180910390fd5b6000613390600284848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061476992505050565b905060008161ffff161180156133aa575060648161ffff16105b6133fb576040805162461bcd60e51b815260206004820152601e60248201527f696e76616c69642063616e63656c207472616e736665722071756f72756d0000604482015290519081900360640190fd5b604080517710d05390d15317d514905394d1915497d41493d413d4d05360421b815281519081900360180190206000908152600d60205220805461ffff90921661ffff1990921691909117905561348a565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b6008602052600090815260409020546001600160401b031681565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081565b61100281565b60005460ff166135a6576040805162461bcd60e51b81526020600482015260196024820152600080516020614a4c833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b1580156135e957600080fd5b505afa1580156135fd573d6000803e3d6000fd5b505050506040513d602081101561361357600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b15801561365457600080fd5b505afa158015613668573d6000803e3d6000fd5b505050506040513d602081101561367e57600080fd5b505190508061368b575060155b60008211801561369b5750808211155b6136da576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b600b5460ff16613721576040805162461bcd60e51b815260206004820152600d60248201526c1b9bdd081cdd5cdc195b991959609a1b604482015290519081900360640190fd5b604080516e149153d4115397d41493d413d4d053608a1b8152905190819003600f019020600090613772907fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470614153565b905080156137b057600b805460ff1916905560405133907f899fe8c37dc61708a3aaa99c4bf143346c1d1da69af79be9e8920c0a6785b75290600090a25b505050565b600660209081526000928352604080842090915290825290205460ff1681565b6040518060400160405280600381526020016269626360e81b81525081565b610e1081565b61100381565b60005460ff1615613858576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b7f1471eb6eb2c5e789fc3de43f8ce62938c7d1836ec861730447e2ada8fd81017b80546001600160a01b0319908116611008179091557f92e85d02570a8092d09a6e3a57665bc3815a2699a4074001bf1ccabf660f5a36805460ff199081169091557fd8af288fc1c8680b4f4706064cf021e264efb6828fcaf7eb5ca36818eb365bcc8054821660019081179091557f89832631fb3c3307a103ba2c84ab569c64d6182a18893dcd163f0f1c2090733a805484166110049081179091557f6cde3cea4b3a3fb2488b2808bae7556f4a405e50f65e1794383bc026131b13c38054841690557f72e4efa1513b071517c6c74dba31b5934a81aa83cddd400e7081df5529c9943680548416831790557fa9bc9a3a348c357ba16b37005d7e6b3236198c0e939f4af8c5f19b8deeb8ebc08054851690911790557fc575c31fea594a6eb97c8e9d3f9caee4c16218c6ef37e923234c0fe9014a61e78054831690557f4e523af77f034e9810f1c94057f5e931fb3d16a51511a4c3add793617d18610580548316821790557ffb33122aa9f93cc639ebe80a7bc4784c11e6053dde89c6f4f7e268c6a623da1e805484166110001790557fc7694af312c4f286114180fd0ba6a52461fcee8a381636770b19a343af92538a80548316821790557f01112dd68e482ba8d68a7e828cff8b3abcea08eab88941953c180a7e650e9cd480548316821790557fc0a4a8be475dfebc377ebef2d7c4ff47656f572a08dd92b81017efcdba0febe1805484166110071790557f87e8a52529e8ece4ef759037313542a6429ff494a9fab9027fb79db90124eba680548316821790557f4c7666bbcb22d46469f7cc282f70764a7012dca2cce630ff8d83db9a9cdd48f080548316821790557f40f28f99a40bc9f6beea1013afdbc3cdcc689eb76b82c4de06c0acf1e1932ed58054909316611001179092557f0d9cf2cd531699eed8dd34e40ff2884a14a698c4898184fba85194e6f6772d248054821683179055600b60009081527f23f68c9bd22b8a93d06adabe17481c87c016bcbd20adc8bfd707a4d813a572176020527fdf0d5d05428057f5455c2dc8e810dd86d1e9350faa72f16bda8a45443c5b39328054831684179055603283556004805467ffffffffffffffff19166001600160401b031790556002819055600381905580549091169091179055565b6007602052600090815260409020546001600160401b031681565b60005460ff16613c17576040805162461bcd60e51b81526020600482015260196024820152600080516020614a4c833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b158015613c5a57600080fd5b505afa158015613c6e573d6000803e3d6000fd5b505050506040513d6020811015613c8457600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b158015613cc557600080fd5b505afa158015613cd9573d6000803e3d6000fd5b505050506040513d6020811015613cef57600080fd5b5051905080613cfc575060155b600082118015613d0c5750808211155b613d4b576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b600b5460ff1615613d8f576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b604080516f14d554d411539117d41493d413d4d05360821b81529051908190036010019020600090613de1907fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470614153565b905080156137b0576137b061408a565b60005460ff16613e36576040805162461bcd60e51b81526020600482015260196024820152600080516020614a4c833981519152604482015290519081900360640190fd5b33600090815260066020908152604080832060ff8089168552925290912054859116613e935760405162461bcd60e51b81526004018080602001828103825260318152602001806148606031913960400191505060405180910390fd5b60ff85166000908152600760209081526040808320548151601f88018490048402810184019092528682526001600160401b031692613ef89284928a926120fd92909189918c908c908190840183828082843760009201919091525061131c92505050565b60ff959095166000908152600760205260409020805467ffffffffffffffff191660019096016001600160401b03169590951790945550505050565b61100081565b600381565b61100481565b60408051600e808252818301909252606091630100610060ff851617918391602082018180368337505050600e81810187905260068201939093529182525090505b92915050565b600085613f9c57506000614081565b606082518451865160800101016040519080825280601f01601f191660200182016040528015613fd3576020820181803683370190505b5090506000613fe182614774565b602080890151825201905086600080613ff989614108565b8086526020909501949092509050614012828583614112565b9283019261401f88614108565b8086526020909501949092509050614038828583614112565b9283018a81526020019261404b87614108565b909250905061405b828583614112565b50835160200161406961477a565b60208183886065600019fa5051600114955050505050505b95945050505050565b600b5460ff16156140ce576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b600b805460ff1916600117905560405133907f6f123d3d54c84a7960a573b31c221dcd86e13fd849c5adb0c6ca851468cc1ae490600090a2565b8051602090910191565b5b60208110614132578251825260209283019290910190601f1901614113565b915181516020939093036101000a6000190180199091169216919091179052565b6000828152600d602052604081205461ffff1661421c57604080516f14d554d411539117d41493d413d4d05360821b815281519081900360100181206000908152600d6020818152848320805461ffff199081166001179091556e149153d4115397d41493d413d4d053608a1b8552855194859003600f01852084528282528584208054821660029081179091557710d05390d15317d514905394d1915497d41493d413d4d05360421b8652865195869003601801909520845291905292902080549092161790555b6000838152600c6020526040902080546201000090046001600160801b03164210158061424d575082816001015414155b15614320576000848152600d602090815260409182902054835461ffff90911661ffff199091161771ffffffffffffffffffffffffffffffff0000191662010000610e1042016001600160801b031602178355600180840186905582519182019092523381526142c291600284019190614798565b5080546040805161ffff83168152620100009092046001600160801b0316602083015281810185905251339186917f9e109f0e55ef32e99e4880be2ec357f1ddb3469c79d0747ef4762da6e89fabe5916060908290030190a36143d4565b60005b60028201548110156143ab57336001600160a01b031682600201828154811061434857fe5b6000918252602090912001546001600160a01b031614156143a3576040805162461bcd60e51b815260206004820152601060248201526f185b1c9958591e48185c1c1c9bdd995960821b604482015290519081900360640190fd5b600101614323565b50600281018054600181018255600091825260209091200180546001600160a01b031916331790555b8054600282015461ffff9091161161442e576000848152600c60205260408120805471ffffffffffffffffffffffffffffffffffff19168155600181018290559061442260028301826147fd565b50506001915050613f87565b5060009392505050565b600080600060606021855110156144685750506040805160008082526020820190925290925082915081906144e1565b600185015160218601518651604080516020198301808252601f19600119909401939093168101602001909152604189019392916060919080156144b3576020820181803683370190505b50905060006144c182614108565b5090506144d3858260218d5103614112565b506001975091955093509150505b9193509193565b600b5460ff161561452c576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b60025443111561456b576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b1617909155600355436002556145ac565b600380546001908101918290555410156145ac576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b16179091556003555b8160ff16836001600160401b0316600460009054906101000a900460070b6001600160401b03167f3a6e0fc61675aa2a100bcba0568368bb92bcec91c97673391074f11138f0cffe606185604051808361ffff1661ffff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561464257818101518382015260200161462a565b50505050905090810190601f16801561466f5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a4505050565b6000816040516020018082805190602001908083835b602083106146b75780518252601f199092019160209182019101614698565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106147255780518252601f199092019160209182019101614706565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b3b151590565b60200190565b60405180602001604052806001906020820280368337509192915050565b8280548282559060005260206000209081019282156147ed579160200282015b828111156147ed57825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906147b8565b506147f992915061481e565b5090565b508054600082559060005260206000209081019061481b9190614845565b50565b61484291905b808211156147f95780546001600160a01b0319168155600101614824565b90565b61484291905b808211156147f9576000815560010161484b56fe74686520636f6e747261637420616e64206368616e6e656c2068617665206e6f74206265656e20726567697374657265646c656e677468206f662076616c756520666f72206164644f725570646174654368616e6e656c2073686f756c642062652032322c206368616e6e656c49643a697346726f6d53797374656d3a68616e646c6572416464726573736c656e677468206f662076616c756520666f722063616e63656c5472616e7366657251756f72756d2073686f756c6420626520326c656e677468206f662076616c756520666f722073757370656e6451756f72756d2073686f756c6420626520326c656e677468206f662076616c756520666f722072656f70656e51756f72756d2073686f756c642062652032746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662076616c756520666f7220656e61626c654f7244697361626c654368616e6e656c2073686f756c6420626520322c206368616e6e656c49643a6973456e61626c65746865206d73672073656e646572206973206e6f7420612077686974656c6162656c2072656c61796572746865206e6577426174636853697a65466f724f7261636c652073686f756c6420626520696e205b31302c2031303030305d74686520636f6e7472616374206e6f7420696e697420796574000000000000006c6967687420636c69656e74206e6f742073796e632074686520626c6f636b20796574a264697066735822122026f49f5b5d33882588ea53bac8a0f154c6a6d2ff32bdfdb114fc8cfcf13f710f64736f6c63430006040033", - }, - { - ContractAddr: StakingContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/78e13b1d3a5a1b08c9208af94a9b14fc1efda213", - Code: "6080604052600436106103855760003560e01c806370fd5bad116101d1578063b88a802f11610102578063d7ecfcb6116100a0578063f9a2bbc71161006f578063f9a2bbc714610c40578063fa03f79714610c55578063fc3e590814610671578063fd6a687914610c6a5761038c565b8063d7ecfcb614610819578063dc927faf14610bd1578063edc1a5b014610be6578063f45fd80b14610bfb5761038c565b8063c2117d82116100dc578063c2117d8214610ae7578063c81b166214610afc578063c8509d8114610b11578063d61b9b9314610b965761038c565b8063b88a802f14610a82578063baaafd3b14610a97578063bf8546ca14610aac5761038c565b806396713da91161016f578063a78abc1611610149578063a78abc1614610964578063ab51bb961461098d578063ac431751146109a2578063b14315df14610a6d5761038c565b806396713da9146109255780639dc092621461093a578063a1a11bf51461094f5761038c565b806375d47a0a116101ab57806375d47a0a146108765780637942fd051461088b578063831d65d1146108a057806392b888a41461061d5761038c565b806370fd5bad14610819578063718a8aa81461082e57806375aca593146108435761038c565b80633fdfa7e4116102b6578063552aaf931161025457806369b635b61161022357806369b635b6146107865780636bd8f8041461079b5780636e47b482146107d15780636fb7f7eb146107e65761038c565b8063552aaf93146107325780635d17c8bd146107475780635d499b1b1461075c57806362b171d2146107715761038c565b8063493279b111610290578063493279b1146106b05780634bf6c882146106dc5780634d99dd16146106f157806351e806721461071d5761038c565b80633fdfa7e414610671578063413d9c3a1461068657806343756e5c1461069b5761038c565b806311fe9ec6116103235780632fdeb111116102fd5780632fdeb11114610632578063333ad3e71461064757806334c433541461065c5780633dffc3871461061d5761038c565b806311fe9ec6146105bf578063151817e3146105f257806317c9efb01461061d5761038c565b80630bee7a671161035f5780630bee7a67146104515780630c7957151461047f5780630e2374a5146104945780631182b875146104c55761038c565b8063026e402b1461039157806302985992146103bf578063047636d1146103e65761038c565b3661038c57005b600080fd5b6103bd600480360360408110156103a757600080fd5b506001600160a01b038135169060200135610c7f565b005b3480156103cb57600080fd5b506103d46111bc565b60408051918252519081900360200190f35b3480156103f257600080fd5b506104196004803603602081101561040957600080fd5b50356001600160a01b03166111c2565b6040518082606080838360005b8381101561043e578181015183820152602001610426565b5050505090500191505060405180910390f35b34801561045d57600080fd5b50610466611216565b6040805163ffffffff9092168252519081900360200190f35b34801561048b57600080fd5b506103d461121b565b3480156104a057600080fd5b506104a9611221565b604080516001600160a01b039092168252519081900360200190f35b3480156104d157600080fd5b5061054a600480360360408110156104e857600080fd5b60ff8235169190810190604081016020820135600160201b81111561050c57600080fd5b82018360208201111561051e57600080fd5b803590602001918460018302840111600160201b8311171561053f57600080fd5b509092509050611227565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561058457818101518382015260200161056c565b50505050905090810190601f1680156105b15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156105cb57600080fd5b506103d4600480360360208110156105e257600080fd5b50356001600160a01b03166113e3565b3480156105fe57600080fd5b506106076113fe565b6040805160ff9092168252519081900360200190f35b34801561062957600080fd5b50610607611403565b34801561063e57600080fd5b506103d4611408565b34801561065357600080fd5b5061046661140e565b34801561066857600080fd5b506103d4611413565b34801561067d57600080fd5b5061060761141e565b34801561069257600080fd5b506103d4611423565b3480156106a757600080fd5b506104a961142a565b3480156106bc57600080fd5b506106c5611430565b6040805161ffff9092168252519081900360200190f35b3480156106e857600080fd5b50610607611435565b6103bd6004803603604081101561070757600080fd5b506001600160a01b03813516906020013561143a565b34801561072957600080fd5b506104a9611a62565b34801561073e57600080fd5b50610607611a68565b34801561075357600080fd5b506103d4611a6d565b34801561076857600080fd5b506103d4611a73565b34801561077d57600080fd5b506103d4611a7c565b34801561079257600080fd5b506103d4611c1c565b6103bd600480360360608110156107b157600080fd5b506001600160a01b03813581169160208101359091169060400135611c22565b3480156107dd57600080fd5b506104a961230b565b3480156107f257600080fd5b506103d46004803603602081101561080957600080fd5b50356001600160a01b0316612311565b34801561082557600080fd5b5061060761232c565b34801561083a57600080fd5b50610607612331565b34801561084f57600080fd5b506103d46004803603602081101561086657600080fd5b50356001600160a01b0316612336565b34801561088257600080fd5b506104a9612351565b34801561089757600080fd5b50610607612357565b3480156108ac57600080fd5b506103bd600480360360408110156108c357600080fd5b60ff8235169190810190604081016020820135600160201b8111156108e757600080fd5b8201836020820111156108f957600080fd5b803590602001918460018302840111600160201b8311171561091a57600080fd5b50909250905061235c565b34801561093157600080fd5b50610607612624565b34801561094657600080fd5b506104a9612629565b34801561095b57600080fd5b506104a961262f565b34801561097057600080fd5b50610979612635565b604080519115158252519081900360200190f35b34801561099957600080fd5b50610466611a68565b3480156109ae57600080fd5b506103bd600480360360408110156109c557600080fd5b810190602081018135600160201b8111156109df57600080fd5b8201836020820111156109f157600080fd5b803590602001918460018302840111600160201b83111715610a1257600080fd5b919390929091602081019035600160201b811115610a2f57600080fd5b820183602082011115610a4157600080fd5b803590602001918460018302840111600160201b83111715610a6257600080fd5b50909250905061263e565b348015610a7957600080fd5b50610607612dd0565b348015610a8e57600080fd5b506103d4612dd5565b348015610aa357600080fd5b506103d4612f72565b348015610ab857600080fd5b506103d460048036036040811015610acf57600080fd5b506001600160a01b0381358116916020013516612f7d565b348015610af357600080fd5b506103d4612faa565b348015610b0857600080fd5b506104a9612fb0565b348015610b1d57600080fd5b506103bd60048036036040811015610b3457600080fd5b60ff8235169190810190604081016020820135600160201b811115610b5857600080fd5b820183602082011115610b6a57600080fd5b803590602001918460018302840111600160201b83111715610b8b57600080fd5b509092509050612fb6565b348015610ba257600080fd5b506103d460048036036040811015610bb957600080fd5b506001600160a01b03813581169160200135166131d9565b348015610bdd57600080fd5b506104a9613204565b348015610bf257600080fd5b506103d461320a565b348015610c0757600080fd5b506103d460048036036060811015610c1e57600080fd5b506001600160a01b038135811691602081013582169160409091013516613217565b348015610c4c57600080fd5b506104a961324c565b348015610c6157600080fd5b506103d4613252565b348015610c7657600080fd5b506104a9613258565b60105460ff1660021415610ccb576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b6010805460ff19166002179055806402540be4003406158015610cf357506402540be4008106155b610d44576040805162461bcd60e51b815260206004820152601c60248201527f707265636973696f6e206c6f737320696e20636f6e76657273696f6e00000000604482015290519081900360640190fd5b60005460ff16610d87576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b600354821015610dde576040805162461bcd60e51b815260206004820152601760248201527f696e76616c69642064656c656761746520616d6f756e74000000000000000000604482015290519081900360640190fd5b600154610df290839063ffffffff61325e16565b341015610e3d576040805162461bcd60e51b81526020600482015260146024820152736e6f7420656e6f756768206d73672076616c756560601b604482015290519081900360640190fd5b601154604051600091339183818181818787f1925050503d8060008114610e80576040519150601f19603f3d011682016040523d82523d6000602084013e610e85565b606091505b5050905080610ecf576040805162461bcd60e51b815260206004820152601160248201527034b73b30b634b2103232b632b3b0ba37b960791b604482015290519081900360640190fd5b6000610ee6846402540be40063ffffffff6132bf16565b90506000610efa348663ffffffff61330116565b90506000610f136002548361330190919063ffffffff16565b6040805160038082526080820190925291925060609190816020015b6060815260200190600190039081610f2f579050509050610f4f33613343565b81600081518110610f5c57fe5b6020026020010181905250610f79886001600160a01b0316613343565b81600181518110610f8657fe5b6020026020010181905250610f9a84613366565b81600281518110610fa757fe5b60200260200101819052506060610fc76001610fc284613379565b613403565b8051602080830191909120600f80546000908152600a845260408082209390935581546001908101909255338152600b909352912080549091019055905061200063f7a251d7601083611025876402540be40063ffffffff6132bf16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561108357818101518382015260200161106b565b50505050905090810190601f1680156110b05780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156110d157600080fd5b505af11580156110e5573d6000803e3d6000fd5b5061100492506108fc915061110290508a8663ffffffff61325e16565b6040518115909202916000818181858888f1935050505015801561112a573d6000803e3d6000fd5b506002546040516110029180156108fc02916000818181858888f1935050505015801561115b573d6000803e3d6000fd5b50604080518981526020810185905281516001600160a01b038c169233927f5f32ed2794e2e72d19e3cb2320e8820a499c4204887372beba51f5e61c040867929081900390910190a350506010805460ff1916600117905550505050505050565b60035481565b6111ca615193565b6111d2615193565b6001600160a01b0383166000818152600b60209081526040808320548552838352600c82528083205485830152928252600d9052819020549082015290505b919050565b606481565b6108fc81565b61200181565b606033612000146112695760405162461bcd60e51b815260040180806020018281038252602f81526020018061539b602f913960400191505060405180910390fd5b60005460ff166112ac576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b6112b46151b1565b6112fb6112f685858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061348992505050565b6134ae565b9050600061131061130b836134f8565b613546565b90506000606060ff8316600414156113355761132b846135fd565b909250905061138c565b60ff83166005141561134a5761132b846137dd565b6040805162461bcd60e51b8152602060048201526012602482015271756e6b6e6f776e206576656e74207479706560701b604482015290519081900360640190fd5b63ffffffff8216156113d8576040805163ffffffff84168152905160ff8516917f391d6e5ea6ab6c49b9a0abb1782cae5def8d711f973b00c729658c0b2a80b31b919081900360200190a25b979650505050505050565b6001600160a01b031660009081526006602052604090205490565b600581565b600181565b60015481565b606581565b662386f26fc1000081565b600381565b620a8c0081565b61100181565b606181565b600881565b60105460ff1660021415611486576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b6010805460ff19166002179055806402540be40034061580156114ae57506402540be4008106155b6114ff576040805162461bcd60e51b815260206004820152601c60248201527f707265636973696f6e206c6f737320696e20636f6e76657273696f6e00000000604482015290519081900360640190fd5b60005460ff16611542576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b600154341015611590576040805162461bcd60e51b81526020600482015260146024820152736e6f7420656e6f7567682072656c61792066656560601b604482015290519081900360640190fd5b60035482101561164b573360009081526005602090815260408083206001600160a01b03871684529091529020548214611602576040805162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a5908185b5bdd5b9d60921b604482015290519081900360640190fd5b600254821161164b576040805162461bcd60e51b815260206004820152601060248201526f6e6f7420656e6f7567682066756e647360801b604482015290519081900360640190fd5b3360009081526007602090815260408083206001600160a01b03871684529091529020544210156116c3576040805162461bcd60e51b815260206004820152601a60248201527f70656e64696e6720756e64656c65676174696f6e206578697374000000000000604482015290519081900360640190fd5b604080518082018252601081526f6e6f7420656e6f7567682066756e647360801b602080830191909152336000908152600582528381206001600160a01b03881682529091529182205461171e91859063ffffffff6139f916565b905080156117665760025481116117665760405162461bcd60e51b81526004018080602001828103825260258152602001806153766025913960400191505060405180910390fd5b600061177d846402540be40063ffffffff6132bf16565b600254909150349060009061179990839063ffffffff61330116565b6040805160038082526080820190925291925060609190816020015b60608152602001906001900390816117b55790505090506117d533613343565b816000815181106117e257fe5b60200260200101819052506117ff886001600160a01b0316613343565b8160018151811061180c57fe5b602002602001018190525061182084613366565b8160028151811061182d57fe5b602002602001018190525060606118486002610fc284613379565b8051602080830191909120600f80546000908152600a845260408082209390935581546001908101909255338152600c909352912080549091019055905061189942620a8c0063ffffffff61325e16565b3360009081526007602090815260408083206001600160a01b038e16845290915290205561200063f7a251d76010836118dd876402540be40063ffffffff6132bf16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561193b578181015183820152602001611923565b50505050905090810190601f1680156119685780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561198957600080fd5b505af115801561199d573d6000803e3d6000fd5b5050604051611004925085156108fc02915085906000818181858888f193505050501580156119d0573d6000803e3d6000fd5b506002546040516110029180156108fc02916000818181858888f19350505050158015611a01573d6000803e3d6000fd5b50604080518981526020810185905281516001600160a01b038c169233927fdf0b6ac27f3f3bb31cee3dab0f4fe40cc19c6a3f8daaec52e06b261e58a12519929081900390910190a350506010805460ff1916600117905550505050505050565b61200081565b600081565b60025481565b6402540be40081565b60105460009060ff1660021415611acb576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b506010805460ff191660021790553360009081526008602052604090205480611b32576040805162461bcd60e51b81526020600482015260146024820152736e6f20756e64656c6567617465642066756e647360601b604482015290519081900360640190fd5b336000818152600860205260408082208290556011549051919291849084818181858888f193505050503d8060008114611b88576040519150601f19603f3d011682016040523d82523d6000602084013e611b8d565b606091505b5050905080611bd5576040805162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b604482015290519081900360640190fd5b60408051838152905133917fc712d133b8d448221aaed2198ed1f0db6dfc860fb01bc3a630916fe6cbef946f919081900360200190a2506010805460ff1916600117905590565b60035490565b60105460ff1660021415611c6e576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b6010805460ff19166002179055806402540be4003406158015611c9657506402540be4008106155b611ce7576040805162461bcd60e51b815260206004820152601c60248201527f707265636973696f6e206c6f737320696e20636f6e76657273696f6e00000000604482015290519081900360640190fd5b60005460ff16611d2a576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b826001600160a01b0316846001600160a01b03161415611d88576040805162461bcd60e51b815260206004820152601460248201527334b73b30b634b2103932b232b632b3b0ba34b7b760611b604482015290519081900360640190fd5b600154341015611dd6576040805162461bcd60e51b81526020600482015260146024820152736e6f7420656e6f7567682072656c61792066656560601b604482015290519081900360640190fd5b600354821015611e1e576040805162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a5908185b5bdd5b9d60921b604482015290519081900360640190fd5b3360009081526009602090815260408083206001600160a01b03888116855290835281842090871684529091529020544210801590611e8c57503360009081526009602090815260408083206001600160a01b03878116855290835281842090881684529091529020544210155b611edd576040805162461bcd60e51b815260206004820152601a60248201527f70656e64696e6720726564656c65676174696f6e206578697374000000000000604482015290519081900360640190fd5b604080518082018252601081526f6e6f7420656e6f7567682066756e647360801b602080830191909152336000908152600582528381206001600160a01b038916825290915291822054611f3891859063ffffffff6139f916565b90508015611f80576002548111611f805760405162461bcd60e51b815260040180806020018281038252602581526020018061527a6025913960400191505060405180910390fd5b6000611f97846402540be40063ffffffff6132bf16565b6002549091503490600090611fb390839063ffffffff61330116565b60408051600480825260a0820190925291925060609190816020015b6060815260200190600190039081611fcf579050509050611fef33613343565b81600081518110611ffc57fe5b6020026020010181905250612019896001600160a01b0316613343565b8160018151811061202657fe5b6020026020010181905250612043886001600160a01b0316613343565b8160028151811061205057fe5b602002602001018190525061206484613366565b8160038151811061207157fe5b6020026020010181905250606061208c6003610fc284613379565b8051602080830191909120600f80546000908152600a845260408082209390935581546001908101909255338152600d90935291208054909101905590506120dd42620a8c0063ffffffff61325e16565b3360009081526009602090815260408083206001600160a01b038e81168552908352818420908f16845290915290205561212042620a8c0063ffffffff61325e16565b3360009081526009602090815260408083206001600160a01b038f81168552908352818420908e16845290915290205561200063f7a251d7601083612170876402540be40063ffffffff6132bf16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156121ce5781810151838201526020016121b6565b50505050905090810190601f1680156121fb5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561221c57600080fd5b505af1158015612230573d6000803e3d6000fd5b5050604051611004925085156108fc02915085906000818181858888f19350505050158015612263573d6000803e3d6000fd5b506002546040516110029180156108fc02916000818181858888f19350505050158015612294573d6000803e3d6000fd5b50886001600160a01b03168a6001600160a01b0316336001600160a01b03167fdb0d03fdfcb145c486c442659e6a341a8828985505097cb5190afcf541e840158b87604051808381526020018281526020019250505060405180910390a450506010805460ff191660011790555050505050505050565b61100581565b6001600160a01b031660009081526004602052604090205490565b600281565b601081565b6001600160a01b031660009081526008602052604090205490565b61100881565b600b81565b336120001461239c5760405162461bcd60e51b815260040180806020018281038252602f81526020018061539b602f913960400191505060405180910390fd5b60005460ff166123df576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b6123e76151b1565b6124296112f684848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061348992505050565b905060008060606000805b61243d86613a90565b156124a8578061245a5761245361130b876134f8565b94506124a0565b80600114156124765761246f61130b876134f8565b93506124a0565b806002141561249b5761249061248b876134f8565b613ab1565b9250600191506124a0565b6124a8565b600101612434565b816124ee576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6124f783613b21565b61253a576040805162461bcd60e51b815260206004820152600f60248201526e0eee4dedcce40e0c2c6d640d0c2e6d608b1b604482015290519081900360640190fd5b6125466112f684613489565b9550600061255661130b886134f8565b90506125606151b1565b61256988613a90565b1561258c576125856112f661258061248b8b6134f8565b613489565b90506125cd565b6040805162461bcd60e51b8152602060048201526011602482015270656d7074792061636b207061636b61676560781b604482015290519081900360640190fd5b60ff8216600114156125e9576125e4818888613b75565b612617565b60ff821660021415612600576125e4818888613f2c565b60ff82166003141561134a576125e48188886141f9565b5050505050505050505050565b600981565b61100781565b61100681565b60005460ff1681565b60005460ff16612695576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604482015290519081900360640190fd5b33611007146126d55760405162461bcd60e51b815260040180806020018281038252602e8152602001806152ec602e913960400191505060405180910390fd5b61273684848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600a81526972656c6179657246656560b01b6020820152915061455e9050565b1561289c5760208114612790576040805162461bcd60e51b815260206004820152601d60248201527f6c656e677468206f662072656c61796572466565206d69736d61746368000000604482015290519081900360640190fd5b604080516020601f84018190048102820181019092528281526000916127ce9185858083850183828082843760009201919091525061464592505050565b905060035481106128105760405162461bcd60e51b815260040180806020018281038252602e81526020018061531a602e913960400191505060405180910390fd5b60025481116128505760405162461bcd60e51b815260040180806020018281038252602e815260200180615348602e913960400191505060405180910390fd5b6402540be4008106156128945760405162461bcd60e51b815260040180806020018281038252602c8152602001806152c0602c913960400191505060405180910390fd5b600155612d3e565b61290084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c62534352656c6179657246656560981b6020820152915061455e9050565b15612a62576020811461295a576040805162461bcd60e51b815260206004820181905260248201527f6c656e677468206f662062534352656c61796572466565206d69736d61746368604482015290519081900360640190fd5b604080516020601f84018190048102820181019092528281526000916129989185858083850183828082843760009201919091525061464592505050565b9050806129d65760405162461bcd60e51b81526004018080602001828103825260228152602001806153ca6022913960400191505060405180910390fd5b6001548110612a165760405162461bcd60e51b815260040180806020018281038252602e81526020018061521b602e913960400191505060405180910390fd5b6402540be400810615612a5a5760405162461bcd60e51b815260040180806020018281038252602f8152602001806151ec602f913960400191505060405180910390fd5b600255612d3e565b612ac684848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c36b4b72232b632b3b0ba34b7b760991b6020820152915061455e9050565b15612ba85760208114612b20576040805162461bcd60e51b815260206004820181905260248201527f6c656e677468206f66206d696e44656c65676174696f6e206d69736d61746368604482015290519081900360640190fd5b604080516020601f8401819004810282018101909252828152600091612b5e9185858083850183828082843760009201919091525061464592505050565b90506001548111612ba05760405162461bcd60e51b81526004018080602001828103825260318152602001806152496031913960400191505060405180910390fd5b600355612d3e565b612c0a84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600b81526a7472616e7366657247617360a81b6020820152915061455e9050565b15612d015760208114612c64576040805162461bcd60e51b815260206004820152601e60248201527f6c656e677468206f66207472616e73666572476173206d69736d617463680000604482015290519081900360640190fd5b604080516020601f8401819004810282018101909252828152600091612ca29185858083850183828082843760009201919091525061464592505050565b905060008111612cf9576040805162461bcd60e51b815260206004820152601e60248201527f746865207472616e736665724761732063616e6e6f74206265207a65726f0000604482015290519081900360640190fd5b601155612d3e565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b600481565b60105460009060ff1660021415612e24576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b506010805460ff191660021790553360009081526006602052604090205480612e88576040805162461bcd60e51b81526020600482015260116024820152701b9bc81c195b991a5b99c81c995dd85c99607a1b604482015290519081900360640190fd5b336000818152600660205260408082208290556011549051919291849084818181858888f193505050503d8060008114612ede576040519150601f19603f3d011682016040523d82523d6000602084013e612ee3565b606091505b5050905080612f2b576040805162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b604482015290519081900360640190fd5b60408051838152905133917f83b78188b13346b2ffb484da70d42ee27de7fbf9f2bd8045269e10ed643ccd76919081900360200190a2506010805460ff1916600117905590565b6638d7ea4c68000081565b6001600160a01b038083166000908152600760209081526040808320938516835292905220545b92915050565b60015490565b61100281565b3361200014612ff65760405162461bcd60e51b815260040180806020018281038252602f81526020018061539b602f913960400191505060405180910390fd5b60005460ff16613039576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b61307882828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613b2192505050565b6130bb576040805162461bcd60e51b815260206004820152600f60248201526e0eee4dedcce40e0c2c6d640d0c2e6d608b1b604482015290519081900360640190fd5b6130c36151b1565b6131056112f684848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061348992505050565b9050600061311561130b836134f8565b905061311f6151b1565b61312883613a90565b156131465761313f6112f661258061248b866134f8565b905061318c565b6040805162461bcd60e51b8152602060048201526016602482015275656d707479206661696c2061636b207061636b61676560501b604482015290519081900360640190fd5b60ff8216600114156131a6576131a18161464a565b6131d0565b60ff8216600214156131bb576131a181614864565b60ff82166003141561134a576131a18161498e565b5050505b505050565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b61100381565b68056bc75e2d6310000081565b6001600160a01b0392831660009081526009602090815260408083209486168352938152838220929094168152925290205490565b61100081565b60115481565b61100481565b6000828201838110156132b8576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b60006132b883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250614af3565b60006132b883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506139f9565b60408051600560a21b83186014820152603481019091526060906132b881614b58565b6060612fa461337483614bae565b614b58565b606081516000141561339a5750604080516000815260208101909152611211565b6060826000815181106133a957fe5b602002602001015190506000600190505b83518110156133ea576133e0828583815181106133d357fe5b6020026020010151614c94565b91506001016133ba565b506132b86133fd825160c060ff16614d11565b82614c94565b6040805160028082526060828101909352829190816020015b606081526020019060019003908161341c57905050905061343f8460ff16613366565b8160008151811061344c57fe5b602002602001018190525061346083614b58565b8160018151811061346d57fe5b602002602001018190525061348181613379565b949350505050565b6134916151d1565b506040805180820190915281518152602082810190820152919050565b6134b66151b1565b6134bf82614e09565b6134c857600080fd5b60006134d78360200151614e43565b60208085015160408051808201909152868152920190820152915050919050565b6135006151d1565b61350982613a90565b61351257600080fd5b6020820151600061352282614ea6565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061355b57508151602110155b61356457600080fd5b60006135738360200151614e43565b905080836000015110156135ce576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b8251602080850151830180519284900392918310156135f457826020036101000a820491505b50949350505050565b600060606000806000805b61361187613a90565b1561366357826136335761362c613627886134f8565b614fd9565b9150613658565b82600114156136535761364861130b886134f8565b905060019350613658565b613663565b826001019250613608565b836136a9576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b60006110046001600160a01b031663727be1f8836040518263ffffffff1660e01b815260040180828152602001915050602060405180830381600087803b1580156136f357600080fd5b505af1158015613707573d6000803e3d6000fd5b505050506040513d602081101561371d57600080fd5b505190508061374257613734600484846065614ff3565b9650965050505050506137d8565b6001600160a01b03831660009081526006602052604090205461376b908363ffffffff61325e16565b6001600160a01b038416600081815260066020908152604091829020939093558051858152905191927f7cc266c7b444f808013fa187f7b904d470a051a6564e78f482aa496581ba4bf892918290030190a260408051600080825260208201909252909750955050505050505b915091565b6000606060008060008060005b6137f388613a90565b1561385c578361381057613809613627896134f8565b9250613851565b836001141561382c57613825613627896134f8565b9150613851565b836002141561384c5761384161130b896134f8565b905060019450613851565b61385c565b8360010193506137ea565b846138a2576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b60006110046001600160a01b031663727be1f8836040518263ffffffff1660e01b815260040180828152602001915050602060405180830381600087803b1580156138ec57600080fd5b505af1158015613900573d6000803e3d6000fd5b505050506040513d602081101561391657600080fd5b505190508061393c5761392d600585846065614ff3565b975097505050505050506137d8565b6001600160a01b038085166000818152600760209081526040808320948816835293815283822082905591815260089091522054613980908363ffffffff61325e16565b6001600160a01b0380861660008181526008602090815260409182902094909455805186815290519287169391927f35a799836f74fac7eccf5c73902823b970543d2274d3b93d8da3d37a255772a2929181900390910190a3604080516000808252602082019092529098509650505050505050915091565b60008184841115613a885760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613a4d578181015183820152602001613a35565b50505050905090810190601f168015613a7a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000613a9a6151d1565b505080518051602091820151919092015191011190565b8051606090613abf57600080fd5b6000613ace8360200151614e43565b83516040805191839003808352601f19601f8201168301602001909152919250606090828015613b05576020820181803683370190505b50905060008160200190506135f48487602001510182856150ef565b8051602080830191909120600e546000908152600a9092526040822054808214613b5057600092505050611211565b5050600e80546000908152600a60205260408120558054600190810190915592915050565b60008060008060005b613b8788613a90565b15613bf05783613ba457613b9d613627896134f8565b9250613be5565b8360011415613bc057613bb9613627896134f8565b9150613be5565b8360021415613be057613bd561130b896134f8565b905060019450613be5565b613bf0565b836001019350613b7e565b84613c36576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6000613c4d826402540be40063ffffffff61513a16565b6001600160a01b0385166000908152600b602052604090208054600019019055905060ff881660011415613d935760ff871615613cc0576040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b6001600160a01b038416600090815260046020526040902054613ce9908263ffffffff61325e16565b6001600160a01b03808616600090815260046020908152604080832094909455600581528382209287168252919091522054613d2b908263ffffffff61325e16565b6001600160a01b038086166000818152600560209081526040808320948916808452948252918290209490945580518581529051929391927f9a57c81564ab02642f34fd87e41baa9b074c18342cec3b7268b62bf752018fd1929181900390910190a3613f21565b60ff8816613ee5576001600160a01b038416600090815260086020526040902054613dc4908263ffffffff61325e16565b6001600160a01b0385166000908152600860209081526040808320939093558251630e4f7c3f60e31b81526004810185905292516110049363727be1f89360248083019493928390030190829087803b158015613e2057600080fd5b505af1158015613e34573d6000803e3d6000fd5b505050506040513d6020811015613e4a57600080fd5b5051613e93576040805162461bcd60e51b81526020600482015260136024820152721dda5d1a191c985dc8189b988819985a5b1959606a1b604482015290519081900360640190fd5b6040805182815260ff8916602082015281516001600160a01b0380871693908816927fcbd481ae600289fad8c0484d07ce0ffe4f010d7c844ecfdeaf2a13fead52886e929081900390910190a3613f21565b6040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b505050505050505050565b60008060008060005b613f3e88613a90565b15613fa75783613f5b57613f54613627896134f8565b9250613f9c565b8360011415613f7757613f70613627896134f8565b9150613f9c565b8360021415613f9757613f8c61130b896134f8565b905060019450613f9c565b613fa7565b836001019350613f35565b84613fed576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6000614004826402540be40063ffffffff61513a16565b6001600160a01b0385166000908152600c602052604090208054600019019055905060ff8816600114156141835760ff871615614077576040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b6001600160a01b0384166000908152600460205260409020546140a0908263ffffffff61330116565b6001600160a01b038086166000908152600460209081526040808320949094556005815283822092871682529190915220546140e2908263ffffffff61330116565b6001600160a01b0380861660009081526005602090815260408083209388168352929052205561411b42620a8c0063ffffffff61325e16565b6001600160a01b038086166000818152600760209081526040808320948916808452948252918290209490945580518581529051929391927fd6f878a5bcbbe79a64e6418bb0d56aaa20b9a60587d45749819df88dfc7c3c44929181900390910190a3613f21565b60ff8816613ee5576001600160a01b03808516600081815260076020908152604080832094881680845294825280832092909255815185815260ff8c169181019190915281517f4417d10c1e33efa83a770b8d4f47176e78c08c1298d534901ad3b16bb585fa2e929181900390910190a3613f21565b6000806000806000805b61420c89613a90565b156142915784614229576142226136278a6134f8565b9350614286565b84600114156142455761423e6136278a6134f8565b9250614286565b84600214156142615761425a6136278a6134f8565b9150614286565b84600314156142815761427661130b8a6134f8565b905060019550614286565b614291565b846001019450614203565b856142d7576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b60006142ee826402540be40063ffffffff61513a16565b6001600160a01b0386166000908152600d602052604090208054600019019055905060ff8916600114156144c15760ff881615614361576040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b6001600160a01b03808616600090815260056020908152604080832093881683529290522054614397908263ffffffff61330116565b6001600160a01b038681166000908152600560209081526040808320898516845290915280822093909355908516815220546143d3908261325e565b6001600160a01b0380871660009081526005602090815260408083209388168352929052205561440c42620a8c0063ffffffff61325e16565b6001600160a01b038087166000908152600960209081526040808320898516845282528083209388168352929052205561444f42620a8c0063ffffffff61325e16565b6001600160a01b038087166000818152600960209081526040808320898616808552908352818420958b1680855295835292819020959095558451868152945191947f78bffae3f8c6691ac7fc1a3bff800cb2d612f5ad9ae5b0444cfe2eb15c189e18929081900390910190a4614552565b60ff8916613ee5576001600160a01b038581166000818152600960209081526040808320898616808552818452828520968a16808652968452828520859055908352818420818552835281842093909355805186815260ff8e169281019290925280519293927fb93bee5c59f85ede6b074a99f4ffcd3e3fc0d5c3d8156de331de89a49e0ce77c9281900390910190a45b50505050505050505050565b6000816040516020018082805190602001908083835b602083106145935780518252601f199092019160209182019101614574565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106146015780518252601f1990920191602091820191016145e2565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b60008060008060005b61465c86613a90565b156146c5578361467957614672613627876134f8565b92506146ba565b83600114156146955761468e613627876134f8565b91506146ba565b83600214156146b5576146aa61130b876134f8565b9050600194506146ba565b6146c5565b836001019350614653565b8461470b576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6000614722826402540be40063ffffffff61513a16565b6001600160a01b0385166000908152600b6020908152604080832080546000190190556008909152902054909150614760908263ffffffff61325e16565b6001600160a01b0385166000908152600860209081526040808320939093558251630e4f7c3f60e31b81526004810185905292516110049363727be1f89360248083019493928390030190829087803b1580156147bc57600080fd5b505af11580156147d0573d6000803e3d6000fd5b505050506040513d60208110156147e657600080fd5b505161482f576040805162461bcd60e51b81526020600482015260136024820152721dda5d1a191c985dc8189b988819985a5b1959606a1b604482015290519081900360640190fd5b6040516001907ff83de021914a4585482db5ca47d520a5657165b443fa2c7ef8ed4635f054da9b90600090a250505050505050565b60008060008060005b61487686613a90565b156148df57836148935761488c613627876134f8565b92506148d4565b83600114156148af576148a8613627876134f8565b91506148d4565b83600214156148cf576148c461130b876134f8565b9050600194506148d4565b6148df565b83600101935061486d565b84614925576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6001600160a01b038084166000908152600c60209081526040808320805460001901905560078252808320938616835292905281812081905590516002917ff83de021914a4585482db5ca47d520a5657165b443fa2c7ef8ed4635f054da9b91a2505050505050565b6000806000806000805b6149a187613a90565b15614a2657846149be576149b7613627886134f8565b9350614a1b565b84600114156149da576149d3613627886134f8565b9250614a1b565b84600214156149f6576149ef613627886134f8565b9150614a1b565b8460031415614a1657614a0b61130b886134f8565b905060019550614a1b565b614a26565b846001019450614998565b85614a6c576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6001600160a01b038481166000908152600d602090815260408083208054600019019055600982528083208785168085528184528285209588168552948352818420849055825280832093835292905281812081905590516003917ff83de021914a4585482db5ca47d520a5657165b443fa2c7ef8ed4635f054da9b91a250505050505050565b60008183614b425760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315613a4d578181015183820152602001613a35565b506000838581614b4e57fe5b0495945050505050565b606081516001148015614b8a5750607f60f81b82600081518110614b7857fe5b01602001516001600160f81b03191611155b15614b96575080611211565b612fa4614ba88351608060ff16614d11565b83614c94565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416614bf257506018614c16565b6fffffffffffffffffffffffffffffffff198416614c1257506010614c16565b5060005b6020811015614c4c57818181518110614c2b57fe5b01602001516001600160f81b03191615614c4457614c4c565b600101614c16565b60008160200390506060816040519080825280601f01601f191660200182016040528015614c81576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b81831015614cc5578051835260209283019201614cad565b50855184518101855292509050808201602086015b81831015614cf2578051835260209283019201614cda565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310614d61576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b60408051600180825281830190925260609160208201818036833701905050905060378411614dbb5782840160f81b81600081518110614d9d57fe5b60200101906001600160f81b031916908160001a9053509050612fa4565b6060614dc685614bae565b90508381510160370160f81b82600081518110614ddf57fe5b60200101906001600160f81b031916908160001a905350614e008282614c94565b95945050505050565b8051600090614e1a57506000611211565b6020820151805160001a9060c0821015614e3957600092505050611211565b5060019392505050565b8051600090811a6080811015614e5d576000915050611211565b60b8811080614e78575060c08110801590614e78575060f881105b15614e87576001915050611211565b60c0811015614e9b5760b519019050611211565b60f519019050611211565b80516000908190811a6080811015614ec15760019150614fd2565b60b8811015614ed657607e1981019150614fd2565b60c0811015614f5057600060b78203600186019550806020036101000a865104915060018101820193505080831015614f4a576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50614fd2565b60f8811015614f655760be1981019150614fd2565b600060f78203600186019550806020036101000a865104915060018101820193505080831015614fd0576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b8051600090601514614fea57600080fd5b612fa482613546565b6000606061500c846402540be40063ffffffff6132bf16565b60408051600480825260a0820190925291955060609190816020015b606081526020019060019003908161502857905050905061504b8760ff16613366565b8160008151811061505857fe5b6020026020010181905250615075866001600160a01b0316613343565b8160018151811061508257fe5b602002602001018190525061509685613366565b816002815181106150a357fe5b60200260200101819052506150bd8463ffffffff16613366565b816003815181106150ca57fe5b602002602001018190525060606150e082613379565b94989497509395505050505050565b806150f9576131d4565b5b60208110615119578251825260209283019290910190601f19016150fa565b915181516020939093036101000a6000190180199091169216919091179052565b60008261514957506000612fa4565b8282028284828161515657fe5b04146132b85760405162461bcd60e51b815260040180806020018281038252602181526020018061529f6021913960400191505060405180910390fd5b60405180606001604052806003906020820280368337509192915050565b60405180604001604052806151c46151d1565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe7468652042534352656c61796572466565206d6f642074656e20646563696d616c73206d757374206265207a65726f7468652042534352656c61796572466565206d757374206265206c657373207468616e2072656c61796572466565746865206d696e44656c65676174696f6e206d7573742062652067726561746572207468616e2072656c61796572466565696e73756666696369656e742062616c616e636520616674657220726564656c6567617465536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f777468652072656c61796572466565206d6f642074656e20646563696d616c73206d757374206265207a65726f746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163747468652072656c61796572466565206d757374206265206c657373207468616e206d696e44656c65676174696f6e7468652072656c61796572466565206d757374206265206d6f7265207468616e2042534352656c61796572466565696e73756666696369656e742062616c616e636520616674657220756e64656c6567617465746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e74726163747468652042534352656c61796572466565206d757374206e6f74206265207a65726fa2646970667358221220de1a90a99417952bd5d4f424161817780a15ff9f30026401fbf3cc2b00ccc44464736f6c63430006040033", - }, - }, - } - - PlanckUpgrade[networkname.RialtoChainName] = &Upgrade{ - UpgradeName: "planck", - Configs: []*UpgradeConfig{ - { - ContractAddr: SlashContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/78e13b1d3a5a1b08c9208af94a9b14fc1efda213", - Code: "608060405234801561001057600080fd5b50600436106102535760003560e01c80637942fd0511610146578063ac431751116100c3578063dc927faf11610087578063dc927faf1461073b578063e1c7392a14610743578063f9a2bbc71461074b578063fc3e590814610753578063fc4333cd1461075b578063fd6a68791461076357610253565b8063ac431751146105cf578063c80d4b8f1461068d578063c81b166214610695578063c8509d811461069d578063c96be4cb1461071557610253565b80639dc092621161010a5780639dc0926214610593578063a1a11bf51461059b578063a78abc16146105a3578063ab51bb96146105bf578063ac0af629146105c757610253565b80637942fd05146104fb5780638256ace614610503578063831d65d11461050b57806396713da9146105835780639bc8e4f21461058b57610253565b80634bf6c882116101d45780636e47b482116101985780636e47b482146104d357806370fd5bad146104db578063718a8aa8146104e357806375d47a0a146104eb5780637912a65d146104f357610253565b80634bf6c8821461048b57806351e8067214610493578063567a372d1461049b5780635bfb4990146104a357806362b72cf5146104cb57610253565b806337c8dab91161021b57806337c8dab9146103ed578063389f4f711461042c5780633dffc3871461044657806343756e5c14610464578063493279b11461046c57610253565b80630bee7a67146102585780630e2374a5146102795780631182b8751461029d57806323bac5a21461038a57806335aa2e44146103d0575b600080fd5b61026061076b565b6040805163ffffffff9092168252519081900360200190f35b610281610770565b604080516001600160a01b039092168252519081900360200190f35b610315600480360360408110156102b357600080fd5b60ff8235169190810190604081016020820135600160201b8111156102d757600080fd5b8201836020820111156102e957600080fd5b803590602001918460018302840111600160201b8311171561030a57600080fd5b509092509050610776565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561034f578181015183820152602001610337565b50505050905090810190601f16801561037c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103b0600480360360208110156103a057600080fd5b50356001600160a01b031661084a565b604080519384526020840192909252151582820152519081900360600190f35b610281600480360360208110156103e657600080fd5b503561086d565b6104136004803603602081101561040357600080fd5b50356001600160a01b0316610894565b6040805192835260208301919091528051918290030190f35b6104346108eb565b60408051918252519081900360200190f35b61044e6108f1565b6040805160ff9092168252519081900360200190f35b6102816108f6565b6104746108fc565b6040805161ffff9092168252519081900360200190f35b61044e610902565b610281610907565b61043461090d565b6104c9600480360360208110156104b957600080fd5b50356001600160a01b0316610913565b005b610434610a74565b610281610a7a565b61044e610a80565b61044e610a85565b610281610a8a565b610434610a90565b61044e610a95565b610413610a9a565b6104c96004803603604081101561052157600080fd5b60ff8235169190810190604081016020820135600160201b81111561054557600080fd5b82018360208201111561055757600080fd5b803590602001918460018302840111600160201b8311171561057857600080fd5b509092509050610aa4565b61044e610bfe565b610434610c03565b610281610c0e565b610281610c14565b6105ab610c1a565b604080519115158252519081900360200190f35b610260610c23565b610434610c28565b6104c9600480360360408110156105e557600080fd5b810190602081018135600160201b8111156105ff57600080fd5b82018360208201111561061157600080fd5b803590602001918460018302840111600160201b8311171561063257600080fd5b919390929091602081019035600160201b81111561064f57600080fd5b82018360208201111561066157600080fd5b803590602001918460018302840111600160201b8311171561068257600080fd5b509092509050610c2d565b61043461101b565b610281611020565b6104c9600480360360408110156106b357600080fd5b60ff8235169190810190604081016020820135600160201b8111156106d757600080fd5b8201836020820111156106e957600080fd5b803590602001918460018302840111600160201b8311171561070a57600080fd5b509092509050611026565b6104c96004803603602081101561072b57600080fd5b50356001600160a01b03166110d9565b61028161165a565b6104c9611660565b6102816116d1565b61044e6116d7565b6104c96116dc565b610281611b67565b606481565b61200181565b606033612000146107b85760405162461bcd60e51b815260040180806020018281038252602f8152602001806125bf602f913960400191505060405180910390fd5b60005460ff166107fd576040805162461bcd60e51b8152602060048201526019602482015260008051602061261b833981519152604482015290519081900360640190fd5b6040805162461bcd60e51b815260206004820152601e60248201527f7265636569766520756e65787065637465642073796e207061636b6167650000604482015290519081900360640190fd5b600260208190526000918252604090912080546001820154919092015460ff1683565b6001818154811061087a57fe5b6000918252602090912001546001600160a01b0316905081565b60008061089f612483565b5050506001600160a01b0316600090815260026020818152604092839020835160608101855281548082526001830154938201849052919093015460ff16151592909301919091529091565b60055481565b600181565b61100181565b6102ca81565b600881565b61200081565b60045481565b33611000146109535760405162461bcd60e51b815260040180806020018281038252603081526020018061251a6030913960400191505060405180910390fd5b60005460ff16610998576040805162461bcd60e51b8152602060048201526019602482015260008051602061261b833981519152604482015290519081900360640190fd5b61200063f7a251d7600b6109ab84611b6d565b60006040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015610a0b5781810151838201526020016109f3565b50505050905090810190601f168015610a385780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015610a5957600080fd5b505af1158015610a6d573d6000803e3d6000fd5b5050505050565b60035481565b61100581565b600281565b601081565b61100881565b603281565b600b81565b6004546005549091565b3361200014610ae45760405162461bcd60e51b815260040180806020018281038252602f8152602001806125bf602f913960400191505060405180910390fd5b60005460ff16610b29576040805162461bcd60e51b8152602060048201526019602482015260008051602061261b833981519152604482015290519081900360640190fd5b610b316124a6565b6000610b7284848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611c4092505050565b915091508015610bbc5781516040805163ffffffff9092168252517f7f0956d47419b9525356e7111652b653b530ec6f5096dccc04589bc38e6299679181900360200190a1610a6d565b81516040805163ffffffff9092168252517f7d45f62d17443dd4547bca8a8112c60e2385669318dc300ec61a5d2492f262e79181900360200190a15050505050565b600981565b662386f26fc1000081565b61100781565b61100681565b60005460ff1681565b600081565b600481565b60005460ff16610c72576040805162461bcd60e51b8152602060048201526019602482015260008051602061261b833981519152604482015290519081900360640190fd5b3361100714610cb25760405162461bcd60e51b815260040180806020018281038252602e81526020018061254a602e913960400191505060405180910390fd5b610d1d84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260148152731b5a5cd9195b59585b9bdc951a1c995cda1bdb1960621b60208201529150611cc09050565b15610df65760208114610d615760405162461bcd60e51b81526004018080602001828103825260278152602001806124f36027913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610d9f91858580838501838280828437600092019190915250611da892505050565b905060018110158015610db3575060055481105b610dee5760405162461bcd60e51b815260040180806020018281038252602581526020018061259a6025913960400191505060405180910390fd5b600455610f89565b610e5c84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e19995b1bdb9e551a1c995cda1bdb19608a1b60208201529150611cc09050565b15610f4c5760208114610ea05760405162461bcd60e51b81526004018080602001828103825260228152602001806125786022913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610ede91858580838501838280828437600092019190915250611da892505050565b90506103e88111158015610ef3575060045481115b610f44576040805162461bcd60e51b815260206004820181905260248201527f7468652066656c6f6e795468726573686f6c64206f7574206f662072616e6765604482015290519081900360640190fd5b600555610f89565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b609681565b61100281565b33612000146110665760405162461bcd60e51b815260040180806020018281038252602f8152602001806125bf602f913960400191505060405180910390fd5b60005460ff166110ab576040805162461bcd60e51b8152602060048201526019602482015260008051602061261b833981519152604482015290519081900360640190fd5b6040517f07db600eebe2ac176be8dcebad61858c245a4961bb32ca2aa3d159b09aa0810e90600090a1505050565b3341146111175760405162461bcd60e51b815260040180806020018281038252602d8152602001806125ee602d913960400191505060405180910390fd5b60005460ff1661115c576040805162461bcd60e51b8152602060048201526019602482015260008051602061261b833981519152604482015290519081900360640190fd5b60035443116111b2576040805162461bcd60e51b815260206004820181905260248201527f63616e206e6f7420736c61736820747769636520696e206f6e6520626c6f636b604482015290519081900360640190fd5b3a156111fc576040805162461bcd60e51b81526020600482015260146024820152736761737072696365206973206e6f74207a65726f60601b604482015290519081900360640190fd5b6040805163155853f360e21b81526001600160a01b03831660048201529051611000916355614fcc916024808301926020929190829003018186803b15801561124457600080fd5b505afa158015611258573d6000803e3d6000fd5b505050506040513d602081101561126e57600080fd5b505161127957611653565b611281612483565b506001600160a01b0381166000908152600260208181526040928390208351606081018552815481526001820154928101929092529091015460ff1615801592820192909252906112dc576020810180516001019052611335565b60016040820181905260208201819052805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0384161790555b43815260055460208201518161134757fe5b0661157757600060208201819052604080516335409f7f60e01b81526001600160a01b03851660048201529051611000926335409f7f926024808201939182900301818387803b15801561139a57600080fd5b505af11580156113ae573d6000803e3d6000fd5b505050506120006001600160a01b031663f7a251d7600b6113ce85611b6d565b60006040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561142e578181015183820152602001611416565b50505050905090810190601f16801561145b5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561147c57600080fd5b505af192505050801561148d575060015b611572573d8080156114bb576040519150601f19603f3d011682016040523d82523d6000602084013e6114c0565b606091505b50826001600160a01b03167fd7bc86ff5d08c8ab043edec743302aba2520e6635172a428bc956721db9e2d1c8360200151836040518083815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561153557818101518382015260200161151d565b50505050905090810190601f1680156115625780820380516001836020036101000a031916815260200191505b50935050505060405180910390a2505b6115ed565b60045481602001518161158657fe5b066115ed57604080516375abf10160e11b81526001600160a01b038416600482015290516110009163eb57e20291602480830192600092919082900301818387803b1580156115d457600080fd5b505af11580156115e8573d6000803e3d6000fd5b505050505b6001600160a01b0382166000818152600260208181526040808420865181559186015160018301558581015191909201805460ff1916911515919091179055517fddb6012116e51abf5436d956a4f0ebd927e92c576ff96d7918290c8782291e3e9190a2505b5043600355565b61100381565b60005460ff16156116b8576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b603260045560966005556000805460ff19166001179055565b61100081565b600381565b336110001461171c5760405162461bcd60e51b815260040180806020018281038252603081526020018061251a6030913960400191505060405180910390fd5b60005460ff16611761576040805162461bcd60e51b8152602060048201526019602482015260008051602061261b833981519152604482015290519081900360640190fd5b60015461176d57611b65565b600154600090600019015b808211611b39576000805b8284101561189c57611793612483565b60026000600187815481106117a457fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff1615159082015260055490915060049004816020015111156118865760046005548161181157fe5b0481602001510381602001818152505080600260006001888154811061183357fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208351815591830151600183015591909101516002909101805460ff1916911515919091179055611890565b600192505061189c565b50600190930192611783565b828411611a33576118ab612483565b60026000600186815481106118bc57fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff1615159082015260055490915060049004816020015111156119a45760046005548161192957fe5b0481602001510381602001818152505080600260006001878154811061194b57fe5b6000918252602080832091909101546001600160a01b03168352828101939093526040918201902083518155918301516001808401919091559201516002909101805460ff19169115159190911790559150611a339050565b60026000600186815481106119b557fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff191690558054806119f957fe5b600082815260209020810160001990810180546001600160a01b031916905501905583611a265750611a33565b506000199092019161189c565b818015611a3d5750805b15611b1c576002600060018681548110611a5357fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff19169055805484908110611a9a57fe5b600091825260209091200154600180546001600160a01b039092169186908110611ac057fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506001805480611af957fe5b600082815260209020810160001990810180546001600160a01b03191690550190555b82611b28575050611b39565b505060019091019060001901611778565b6040517fcfdb3b6ccaeccbdc68be3c59c840e3b3c90f0a7c491f5fff1cf56cfda200dd9c90600090a150505b565b61100481565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081611b88579050509050611bb1836001600160a01b0316611dad565b81600081518110611bbe57fe5b6020026020010181905250611bd243611dd0565b81600181518110611bdf57fe5b6020908102919091010152611bf56102ca611dd0565b81600281518110611c0257fe5b6020026020010181905250611c1642611dd0565b81600381518110611c2357fe5b6020026020010181905250611c3781611de3565b9150505b919050565b611c486124a6565b6000611c526124a6565b611c5a6124b8565b611c6b611c6686611e6d565b611e92565b90506000805b611c7a83611edc565b15611cb35780611ca657611c95611c9084611efd565b611f4b565b63ffffffff16845260019150611cab565b611cb3565b600101611c71565b5091935090915050915091565b6000816040516020018082805190602001908083835b60208310611cf55780518252601f199092019160209182019101611cd6565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310611d635780518252601f199092019160209182019101611d44565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052805190602001201490505b92915050565b015190565b60408051600560a21b8318601482015260348101909152606090611c3781612002565b6060611da2611dde83612058565b612002565b6060815160001415611e045750604080516000815260208101909152611c3b565b606082600081518110611e1357fe5b602002602001015190506000600190505b8351811015611e5457611e4a82858381518110611e3d57fe5b602002602001015161213e565b9150600101611e24565b50611c37611e67825160c060ff166121bb565b8261213e565b611e756124d8565b506040805180820190915281518152602082810190820152919050565b611e9a6124b8565b611ea3826122b3565b611eac57600080fd5b6000611ebb83602001516122ed565b60208085015160408051808201909152868152920190820152915050919050565b6000611ee66124d8565b505080518051602091820151919092015191011190565b611f056124d8565b611f0e82611edc565b611f1757600080fd5b60208201516000611f2782612350565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590611f6057508151602110155b611f6957600080fd5b6000611f7883602001516122ed565b90508083600001511015611fd3576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015611ff957826020036101000a820491505b50949350505050565b6060815160011480156120345750607f60f81b8260008151811061202257fe5b01602001516001600160f81b03191611155b15612040575080611c3b565b611da26120528351608060ff166121bb565b8361213e565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff19841661209c575060186120c0565b6fffffffffffffffffffffffffffffffff1984166120bc575060106120c0565b5060005b60208110156120f6578181815181106120d557fe5b01602001516001600160f81b031916156120ee576120f6565b6001016120c0565b60008160200390506060816040519080825280601f01601f19166020018201604052801561212b576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b8183101561216f578051835260209283019201612157565b50855184518101855292509050808201602086015b8183101561219c578051835260209283019201612184565b508651929092011591909101601f01601f191660405250905092915050565b606068010000000000000000831061220b576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b604080516001808252818301909252606091602082018180368337019050509050603784116122655782840160f81b8160008151811061224757fe5b60200101906001600160f81b031916908160001a9053509050611da2565b606061227085612058565b90508381510160370160f81b8260008151811061228957fe5b60200101906001600160f81b031916908160001a9053506122aa828261213e565b95945050505050565b80516000906122c457506000611c3b565b6020820151805160001a9060c08210156122e357600092505050611c3b565b5060019392505050565b8051600090811a6080811015612307576000915050611c3b565b60b8811080612322575060c08110801590612322575060f881105b15612331576001915050611c3b565b60c08110156123455760b519019050611c3b565b60f519019050611c3b565b80516000908190811a608081101561236b576001915061247c565b60b881101561238057607e198101915061247c565b60c08110156123fa57600060b78203600186019550806020036101000a8651049150600181018201935050808310156123f4576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b5061247c565b60f881101561240f5760be198101915061247c565b600060f78203600186019550806020036101000a86510491506001810182019350508083101561247a576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b604051806060016040528060008152602001600081526020016000151581525090565b60408051602081019091526000815290565b60405180604001604052806124cb6124d8565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe6c656e677468206f66206d697364656d65616e6f725468726573686f6c64206d69736d61746368746865206d6573736167652073656e646572206d7573742062652076616c696461746f7253657420636f6e7472616374746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662066656c6f6e795468726573686f6c64206d69736d61746368746865206d697364656d65616e6f725468726573686f6c64206f7574206f662072616e6765746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d6573736167652073656e646572206d7573742062652074686520626c6f636b2070726f647563657274686520636f6e7472616374206e6f7420696e69742079657400000000000000a2646970667358221220cc9198ce38d8be4b5a181b087111399299cbd68d44ed3c4d165ee1288b79e17164736f6c63430006040033", - }, - { - ContractAddr: TokenHubContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/78e13b1d3a5a1b08c9208af94a9b14fc1efda213", - Code: "6080604052600436106103c75760003560e01c806396713da9116101f2578063c81b16621161010d578063f0148472116100a0578063fc1a598f1161006f578063fc1a598f14610f25578063fc3e590814610b85578063fd6a687914610f58578063ff9c0027146107fd5761040f565b8063f014847214610ed1578063f9a2bbc714610ee6578063fa9e915914610efb578063fb063e8f14610f105761040f565b8063dc927faf116100dc578063dc927faf14610e5f578063e1c7392a14610e74578063e8f35cea14610e89578063ebf71d5314610ebc5761040f565b8063c81b166214610d8a578063c8509d8114610d9f578063cf41984414610e24578063d9e6dae91461077f5761040f565b8063aa7415f511610185578063b9fd21e311610154578063b9fd21e314610cfa578063ba35ead614610d0f578063bbface1f14610d24578063bd46646114610d575761040f565b8063aa7415f514610b9a578063ab51bb9614610be1578063ac43175114610bf6578063b99328c514610cc15761040f565b8063a1a11bf5116101c1578063a1a11bf514610b46578063a496fba214610b5b578063a78abc1614610b70578063a7c9f02d14610b855761040f565b806396713da914610ace5780639a854bbd14610ae35780639a99b4f014610af85780639dc0926214610b315761040f565b806359b92789116102e257806371d3086311610275578063831d65d111610244578063831d65d1146109d15780638b87b21f146106d45780638eff336c14610a565780639509b98014610a955761040f565b806371d3086314610968578063727be1f81461097d57806375d47a0a146109a75780637942fd05146109bc5761040f565b80636e056520116102b15780636e056520146108125780636e47b4821461093e57806370fd5bad146107fd578063718a8aa8146109535761040f565b806359b92789146107be5780635d499b1b146107e8578063613684751461077f57806366dea52a146107fd5761040f565b80633fd8b02f1161035a5780634a3acdf4116103295780634a3acdf41461076a5780634bf6c8821461077f57806350432d321461079457806351e80672146107a95761040f565b80633fd8b02f146106ff57806343756e5c1461071457806343a368b914610729578063493279b11461073e5761040f565b8063149d14d911610396578063149d14d9146105a85780632ae45483146105cf5780633d713223146106235780633dffc387146106d45761040f565b80630bee7a67146104145780630e2374a5146104425780631182b87514610473578063122345821461056d5761040f565b3661040f57341561040d576040805133815234602082015281517f6c98249d85d88c3753a04a22230f595e4dc8d3dc86c34af35deeeedc861b89db929181900390910190a15b005b600080fd5b34801561042057600080fd5b50610429610f6d565b6040805163ffffffff9092168252519081900360200190f35b34801561044e57600080fd5b50610457610f72565b604080516001600160a01b039092168252519081900360200190f35b34801561047f57600080fd5b506104f86004803603604081101561049657600080fd5b60ff8235169190810190604081016020820135600160201b8111156104ba57600080fd5b8201836020820111156104cc57600080fd5b803590602001918460018302840111600160201b831117156104ed57600080fd5b509092509050610f78565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561053257818101518382015260200161051a565b50505050905090810190601f16801561055f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561057957600080fd5b5061040d6004803603604081101561059057600080fd5b506001600160a01b03813581169160200135166110a6565b3480156105b457600080fd5b506105bd6111a0565b60408051918252519081900360200190f35b3480156105db57600080fd5b5061060a600480360360408110156105f257600080fd5b506001600160a01b03813581169160200135166111a6565b6040805192835260208301919091528051918290030190f35b34801561062f57600080fd5b506104576004803603602081101561064657600080fd5b810190602081018135600160201b81111561066057600080fd5b82018360208201111561067257600080fd5b803590602001918460018302840111600160201b8311171561069357600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506111ca945050505050565b3480156106e057600080fd5b506106e96111ee565b6040805160ff9092168252519081900360200190f35b34801561070b57600080fd5b506105bd6111f3565b34801561072057600080fd5b506104576111f9565b34801561073557600080fd5b506105bd6111ff565b34801561074a57600080fd5b5061075361120b565b6040805161ffff9092168252519081900360200190f35b34801561077657600080fd5b506105bd611211565b34801561078b57600080fd5b506106e9611217565b3480156107a057600080fd5b506105bd61121c565b3480156107b557600080fd5b50610457611227565b3480156107ca57600080fd5b50610457600480360360208110156107e157600080fd5b503561122d565b3480156107f457600080fd5b506105bd611248565b34801561080957600080fd5b506106e9611251565b61092a6004803603608081101561082857600080fd5b810190602081018135600160201b81111561084257600080fd5b82018360208201111561085457600080fd5b803590602001918460208302840111600160201b8311171561087557600080fd5b919390929091602081019035600160201b81111561089257600080fd5b8201836020820111156108a457600080fd5b803590602001918460208302840111600160201b831117156108c557600080fd5b919390929091602081019035600160201b8111156108e257600080fd5b8201836020820111156108f457600080fd5b803590602001918460208302840111600160201b8311171561091557600080fd5b91935091503567ffffffffffffffff16611256565b604080519115158252519081900360200190f35b34801561094a57600080fd5b5061045761172b565b34801561095f57600080fd5b506106e9611731565b34801561097457600080fd5b506105bd611736565b34801561098957600080fd5b5061092a600480360360208110156109a057600080fd5b503561173c565b3480156109b357600080fd5b506104576117bd565b3480156109c857600080fd5b506106e96117c3565b3480156109dd57600080fd5b5061040d600480360360408110156109f457600080fd5b60ff8235169190810190604081016020820135600160201b811115610a1857600080fd5b820183602082011115610a2a57600080fd5b803590602001918460018302840111600160201b83111715610a4b57600080fd5b5090925090506117c8565b348015610a6257600080fd5b5061040d60048036036060811015610a7957600080fd5b508035906001600160a01b036020820135169060400135611911565b348015610aa157600080fd5b5061040d60048036036040811015610ab857600080fd5b506001600160a01b038135169060200135611997565b348015610ada57600080fd5b506106e9611b54565b348015610aef57600080fd5b506105bd611b59565b348015610b0457600080fd5b506105bd60048036036040811015610b1b57600080fd5b506001600160a01b038135169060200135611b65565b348015610b3d57600080fd5b50610457611ca3565b348015610b5257600080fd5b50610457611ca9565b348015610b6757600080fd5b506106e9611caf565b348015610b7c57600080fd5b5061092a611cb4565b348015610b9157600080fd5b506106e9611cbd565b61092a60048036036080811015610bb057600080fd5b5080356001600160a01b03908116916020810135909116906040810135906060013567ffffffffffffffff16611cc2565b348015610bed57600080fd5b50610429611caf565b348015610c0257600080fd5b5061040d60048036036040811015610c1957600080fd5b810190602081018135600160201b811115610c3357600080fd5b820183602082011115610c4557600080fd5b803590602001918460018302840111600160201b83111715610c6657600080fd5b919390929091602081019035600160201b811115610c8357600080fd5b820183602082011115610c9557600080fd5b803590602001918460018302840111600160201b83111715610cb657600080fd5b509092509050612383565b348015610ccd57600080fd5b5061040d60048036036040811015610ce457600080fd5b50803590602001356001600160a01b031661282b565b348015610d0657600080fd5b506105bd6128a1565b348015610d1b57600080fd5b506105bd6128ab565b348015610d3057600080fd5b506105bd60048036036020811015610d4757600080fd5b50356001600160a01b03166128b1565b348015610d6357600080fd5b506105bd60048036036020811015610d7a57600080fd5b50356001600160a01b03166128c3565b348015610d9657600080fd5b506104576128de565b348015610dab57600080fd5b5061040d60048036036040811015610dc257600080fd5b60ff8235169190810190604081016020820135600160201b811115610de657600080fd5b820183602082011115610df857600080fd5b803590602001918460018302840111600160201b83111715610e1957600080fd5b5090925090506128e4565b348015610e3057600080fd5b5061040d60048036036040811015610e4757600080fd5b506001600160a01b03813581169160200135166129b4565b348015610e6b57600080fd5b50610457612c88565b348015610e8057600080fd5b5061040d612c8e565b348015610e9557600080fd5b506105bd60048036036020811015610eac57600080fd5b50356001600160a01b0316612d2e565b348015610ec857600080fd5b506106e9612d40565b348015610edd57600080fd5b506106e9612d45565b348015610ef257600080fd5b50610457612d4a565b348015610f0757600080fd5b506105bd612d50565b348015610f1c57600080fd5b506105bd612d56565b348015610f3157600080fd5b506104f860048036036020811015610f4857600080fd5b50356001600160a01b0316612d64565b348015610f6457600080fd5b50610457612e8b565b606481565b61200181565b60005460609060ff16610fc0576040805162461bcd60e51b81526020600482015260196024820152600080516020615583833981519152604482015290519081900360640190fd5b33612000146110005760405162461bcd60e51b815260040180806020018281038252602f815260200180615531602f913960400191505060405180910390fd5b60ff8416600214156110525761104b83838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612e9192505050565b905061109f565b6040805162461bcd60e51b815260206004820152601860248201527f756e7265636f676e697a65642073796e207061636b6167650000000000000000604482015290519081900360640190fd5b9392505050565b33612000146110e65760405162461bcd60e51b815260040180806020018281038252602f815260200180615531602f913960400191505060405180910390fd5b6001600160a01b0380831660009081526007602090815260408083209385168352929052208054611151576040805162461bcd60e51b815260206004820152601060248201526f1b9bc81b1bd8dad95908185b5bdd5b9d60821b604482015290519081900360640190fd5b8054600082556040805182815290516001600160a01b0380861692908716917f152fb15aa5d80f843e1e4bd5f2fc9161714f169945024decec7e84fb910fdd519181900360200190a350505050565b60015490565b60076020908152600092835260408084209091529082529020805460019091015482565b6020818101516000908152600490915260409020546001600160a01b03165b919050565b600181565b60055481565b61100181565b670de0b6b3a764000081565b6102ca81565b61a8c081565b600881565b66071afd498d000081565b61200081565b6000908152600460205260409020546001600160a01b031690565b6402540be40081565b600281565b6000805460ff1661129c576040805162461bcd60e51b81526020600482015260196024820152600080516020615583833981519152604482015290519081900360640190fd5b8685146112da5760405162461bcd60e51b815260040180806020018281038252603b8152602001806154f6603b913960400191505060405180910390fd5b8683146113185760405162461bcd60e51b815260040180806020018281038252603f8152602001806153c9603f913960400191505060405180910390fd5b426078018267ffffffffffffffff1610156113645760405162461bcd60e51b81526004018080602001828103825260248152602001806152b96024913960400191505060405180910390fd5b6402540be4003406156113a85760405162461bcd60e51b81526004018080602001828103825260408152602001806155f96040913960400191505060405180910390fd5b604080518681526020808802820101909152859060009081906060908480156113db578160200160208202803683370190505b50905060005b848110156114b6576402540be4008b8b838181106113fb57fe5b905060200201358161140957fe5b06156114465760405162461bcd60e51b815260040180806020018281038252603c815260200180615408603c913960400191505060405180910390fd5b61146b8b8b8381811061145557fe5b9050602002013585612fb590919063ffffffff16565b93506114976402540be4008c8c8481811061148257fe5b9050602002013561300f90919063ffffffff16565b8282815181106114a357fe5b60209081029190910101526001016113e1565b506001546114db906114ce908663ffffffff61305116565b849063ffffffff612fb516565b3410156115195760405162461bcd60e51b81526004018080602001828103825260568152602001806155a36056913960600191505060405180910390fd5b611529348463ffffffff6130aa16565b91506115336150bd565b6040518060c001604052806221272160e91b60001b815260200160006001600160a01b031681526020018381526020018e8e808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505050908252506040805160208c810282810182019093528c82529283019290918d918d91829185019084908082843760009201919091525050509082525067ffffffffffffffff8916602090910152905061200063f7a251d760036115f7846130ec565b61160c876402540be40063ffffffff61300f16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561166a578181015183820152602001611652565b50505050905090810190601f1680156116975780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156116b857600080fd5b505af11580156116cc573d6000803e3d6000fd5b505060408051600081523360208201528082018890526060810187905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a15060019c9b505050505050505050505050565b61100581565b601081565b60015481565b6000336120011461177e5760405162461bcd60e51b81526004018080602001828103825260338152602001806151d76033913960400191505060405180910390fd5b81156117b5576040516120019083156108fc029084906000818181858888f193505050501580156117b3573d6000803e3d6000fd5b505b506001919050565b61100881565b600b81565b60005460ff1661180d576040805162461bcd60e51b81526020600482015260196024820152600080516020615583833981519152604482015290519081900360640190fd5b336120001461184d5760405162461bcd60e51b815260040180806020018281038252602f815260200180615531602f913960400191505060405180910390fd5b60ff83166003141561189d5761189882828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506133a792505050565b61190c565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a15b505050565b33611008146119515760405162461bcd60e51b81526004018080602001828103825260238152602001806155606023913960400191505060405180910390fd5b600083815260046020908152604080832080546001600160a01b039096166001600160a01b03199096168617905593825260038152838220949094556002909352912055565b81806001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b1580156119d157600080fd5b505afa1580156119e5573d6000803e3d6000fd5b505050506040513d60208110156119fb57600080fd5b50516001600160a01b03163314611a59576040805162461bcd60e51b815260206004820152601860248201527f6e6f74206f776e6572206f6620424550323020746f6b656e0000000000000000604482015290519081900360640190fd5b60008211611aa7576040805162461bcd60e51b81526020600482015260166024820152751e995c9bc81b1a5b5a5d081b9bdd08185b1b1bddd95960521b604482015290519081900360640190fd5b6001600160a01b038316600090815260036020526040902054611afd576040805162461bcd60e51b81526020600482015260096024820152681b9bdd08189bdd5b9960ba1b604482015290519081900360640190fd5b6001600160a01b038316600081815260066020908152604091829020859055815185815291513393927f9df3a90730dbf23b5cc18dbbd5f4af3fa94a0dffb6ff6841f98a9a9a6ac626a892908290030190a3505050565b600981565b677ce66c50e284000081565b6000805460ff16611bab576040805162461bcd60e51b81526020600482015260196024820152600080516020615583833981519152604482015290519081900360640190fd5b3361100514611beb5760405162461bcd60e51b815260040180806020018281038252602f81526020018061520a602f913960400191505060405180910390fd5b6000478310611bfa5747611bfc565b825b9050670de0b6b3a7640000811115611c18576000915050611c9d565b8015611c9a576040516001600160a01b0385169082156108fc029083906000818181858888f19350505050158015611c54573d6000803e3d6000fd5b50604080516001600160a01b03861681526020810183905281517ff8b71c64315fc33b2ead2adfa487955065152a8ac33d9d5193aafd7f45dc15a0929181900390910190a15b90505b92915050565b61100781565b61100681565b600081565b60005460ff1681565b600381565b6000805460ff16611d08576040805162461bcd60e51b81526020600482015260196024820152600080516020615583833981519152604482015290519081900360640190fd5b426078018267ffffffffffffffff161015611d545760405162461bcd60e51b81526004018080602001828103825260248152602001806152b96024913960400191505060405180910390fd5b6402540be400340615611d985760405162461bcd60e51b81526004018080602001828103825260408152602001806155f96040913960400191505060405180910390fd5b600080806001600160a01b038816611e7757600154611dbe90879063ffffffff612fb516565b341015611dfc5760405162461bcd60e51b81526004018080602001828103825260618152602001806153436061913960800191505060405180910390fd5b6402540be400860615611e405760405162461bcd60e51b815260040180806020018281038252603c815260200180615408603c913960400191505060405180910390fd5b611e50348763ffffffff6130aa16565b9050611e67866402540be40063ffffffff61300f16565b6221272160e91b9350915061211a565b6001600160a01b038816600090815260036020526040902054925082611ece5760405162461bcd60e51b81526004018080602001828103825260318152602001806153126031913960400191505060405180910390fd5b600154341015611f0f5760405162461bcd60e51b815260040180806020018281038252603f815260200180615465603f913960400191505060405180910390fd5b506001600160a01b0387166000908152600260205260409020543490600881111580611f5a5750600881118015611f5a5750611f58876007198301600a0a63ffffffff61340316565b155b611f955760405162461bcd60e51b815260040180806020018281038252603c815260200180615408603c913960400191505060405180910390fd5b611f9f8782613445565b9250611faa84613485565b15611ff2576305f5e100831015611ff25760405162461bcd60e51b815260040180806020018281038252603a81526020018061525b603a913960400191505060405180910390fd5b60088110158061200c575060088110801561200c57508683115b6120475760405162461bcd60e51b81526004018080602001828103825260258152602001806153a46025913960400191505060405180910390fd5b677ce66c50e284000083111561208e5760405162461bcd60e51b81526004018080602001828103825260358152602001806152dd6035913960400191505060405180910390fd5b604080516323b872dd60e01b81523360048201523060248201526044810189905290516001600160a01b038b16916323b872dd9160648083019260209291908290030181600087803b1580156120e357600080fd5b505af11580156120f7573d6000803e3d6000fd5b505050506040513d602081101561210d57600080fd5b505161211857600080fd5b505b6121226150bd565b6040805160c0810182528581526001600160a01b038b166020820152815160018082528184018452919283019181602001602082028036833750505081526040805160018082528183019092526020928301929091908083019080368337505050815260408051600180825281830190925260209283019290919080830190803683370190505081526020018767ffffffffffffffff1681525090508281604001516000815181106121d057fe5b6020026020010181815250508781606001516000815181106121ee57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505033816080015160008151811061222057fe5b6001600160a01b039092166020928302919091019091015261200063f7a251d7600361224b846130ec565b612260866402540be40063ffffffff61300f16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156122be5781810151838201526020016122a6565b50505050905090810190601f1680156122eb5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561230c57600080fd5b505af1158015612320573d6000803e3d6000fd5b5050604080516001600160a01b038d1681523360208201528082018b90526060810186905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a150600198975050505050505050565b33611007146123c35760405162461bcd60e51b815260040180806020018281038252602e8152602001806154a4602e913960400191505060405180910390fd5b60208114612418576040805162461bcd60e51b815260206004820152601b60248201527f65787065637465642076616c7565206c656e6774682069732033320000000000604482015290519081900360640190fd5b606084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8801819004810282018101909252868152939450606093925086915085908190840183828082843760009201919091525050505060208301519091506772656c617946656560c01b811415612520576020820151670de0b6b3a764000081118015906124c757506402540be4008106155b612518576040805162461bcd60e51b815260206004820152601960248201527f7468652072656c6179466565206f7574206f662072616e676500000000000000604482015290519081900360640190fd5b600155612796565b61259487878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601781527f6c617267655472616e736665724c6f636b506572696f640000000000000000006020820152915061358b9050565b1561263057604080516020601f87018190048102820181019092528581526000916125d79188888083850183828082843760009201919091525061367292505050565b905062093a80811115612628576040805162461bcd60e51b81526020600482015260146024820152736c6f636b20706572696f6420746f6f206c6f6e6760601b604482015290519081900360640190fd5b600555612796565b61269c87878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526015815274189b9893185c99d9551c985b9cd9995c931a5b5a5d605a1b6020820152915061358b9050565b1561275957604080516020601f87018190048102820181019092528581526000916126df9188888083850183828082843760009201919091525061367292505050565b905068056bc75e2d631000008110156127295760405162461bcd60e51b81526004018080602001828103825260228152602001806152396022913960400191505060405180910390fd5b6000805260066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f855612796565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a878787876040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050505050565b336110081461286b5760405162461bcd60e51b81526004018080602001828103825260238152602001806155606023913960400191505060405180910390fd5b600091825260046020908152604080842080546001600160a01b03191690556001600160a01b0392909216835260039052812055565b6221272160e91b81565b61c35081565b60026020526000908152604090205481565b6001600160a01b031660009081526003602052604090205490565b61100281565b60005460ff16612929576040805162461bcd60e51b81526020600482015260196024820152600080516020615583833981519152604482015290519081900360640190fd5b33612000146129695760405162461bcd60e51b815260040180806020018281038252602f815260200180615531602f913960400191505060405180910390fd5b60ff83166003141561189d5761189882828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061367792505050565b60085460ff1660021415612a00576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b6008805460ff191660021790556001600160a01b0380831660009081526007602090815260408083209385168352929052208054612a78576040805162461bcd60e51b815260206004820152601060248201526f1b9bc81b1bd8dad95908185b5bdd5b9d60821b604482015290519081900360640190fd5b8060010154421015612ad1576040805162461bcd60e51b815260206004820152601760248201527f7374696c6c206f6e206c6f636b696e6720706572696f64000000000000000000604482015290519081900360640190fd5b805460008083556001600160a01b038516612b44576040516001600160a01b038516906127109084906000818181858888f193505050503d8060008114612b34576040519150601f19603f3d011682016040523d82523d6000602084013e612b39565b606091505b505080915050612bd7565b846001600160a01b031663a9059cbb61c35086856040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b158015612ba757600080fd5b5087f1158015612bbb573d6000803e3d6000fd5b50505050506040513d6020811015612bd257600080fd5b505190505b80612c29576040805162461bcd60e51b815260206004820152601e60248201527f776974686472617720756e6c6f636b656420746f6b656e206661696c65640000604482015290519081900360640190fd5b836001600160a01b0316856001600160a01b03167f832fc3e25f2b3e6fb0eb59419a73cba405f2a249fce75f7e31ea5a457a0323f1846040518082815260200191505060405180910390a350506008805460ff19166001179055505050565b61100381565b60005460ff1615612ce6576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b66071afd498d000060019081556000808052600260205260127fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b55805460ff19169091179055565b60066020526000908152604090205481565b600481565b600581565b61100081565b61271081565b69021e19e0c9bab240000081565b6001600160a01b03811660009081526003602090815260409182902054825182815280840190935260609290918391906020820181803683375050506020810183905290506000805b60208160ff161015612df457828160ff1681518110612dc857fe5b01602001516001600160f81b03191615612de757600190910190612dec565b612df4565b600101612dad565b5060608160ff166040519080825280601f01601f191660200182016040528015612e25576020820181803683370190505b50905060005b8260ff168160ff161015612e8157838160ff1681518110612e4857fe5b602001015160f81c60f81b828260ff1681518110612e6257fe5b60200101906001600160f81b031916908160001a905350600101612e2b565b5095945050505050565b61100481565b6060612e9b615109565b6000612ea684613775565b9150915080612efc576040805162461bcd60e51b815260206004820152601f60248201527f756e7265636f676e697a6564207472616e73666572496e207061636b61676500604482015290519081900360640190fd5b6000612f07836138b4565b905063ffffffff811615612f9b576040808401516020808601516001600160a01b03166000908152600290915291822054612f429190613445565b9050612f4c61513e565b60405180608001604052808660000151815260200183815260200186608001516001600160a01b031681526020018463ffffffff168152509050612f8f81613c1a565b955050505050506111e9565b505060408051600081526020810190915291506111e99050565b600082820183811015611c9a576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000611c9a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613cf6565b60008261306057506000611c9d565b8282028284828161306d57fe5b0414611c9a5760405162461bcd60e51b81526004018080602001828103825260218152602001806154446021913960400191505060405180910390fd5b6000611c9a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613d98565b60408051600680825260e08201909252606091829190816020015b6060815260200190600190039081613107575050835190915061312990613df2565b8160008151811061313657fe5b602002602001018190525061315783602001516001600160a01b0316613e05565b8160018151811061316457fe5b6020026020010181905250600083604001515190506060816040519080825280602002602001820160405280156131af57816020015b606081526020019060019003908161319a5790505b50905060005b828110156131fc576131dd866040015182815181106131d057fe5b6020026020010151613df2565b8282815181106131e957fe5b60209081029190910101526001016131b5565b5061320681613e28565b8360028151811061321357fe5b602002602001018190525060608260405190808252806020026020018201604052801561325457816020015b606081526020019060019003908161323f5790505b50905060005b838110156132aa5761328b8760600151828151811061327557fe5b60200260200101516001600160a01b0316613e05565b82828151811061329757fe5b602090810291909101015260010161325a565b506132b481613e28565b846003815181106132c157fe5b602002602001018190525060608360405190808252806020026020018201604052801561330257816020015b60608152602001906001900390816132ed5790505b50905060005b84811015613342576133238860800151828151811061327557fe5b82828151811061332f57fe5b6020908102919091010152600101613308565b5061334c81613e28565b8560048151811061335957fe5b602002602001018190525061337b8760a0015167ffffffffffffffff16613df2565b8560058151811061338857fe5b602002602001018190525061339c85613e28565b979650505050505050565b6133af615165565b60006133ba83613eb2565b91509150806133fa5760405162461bcd60e51b81526004018080602001828103825260248152602001806154d26024913960400191505060405180910390fd5b61190c8261407d565b6000611c9a83836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f0000000000000000815250614501565b6000600882111561346e57613467836007198401600a0a63ffffffff61300f16565b9050611c9d565b611c9a836008849003600a0a63ffffffff61305116565b604080516020808252818301909252600091606091906020820181803683375050506020810184905290506000805b60208160ff1610156134fb57828160ff16815181106134cf57fe5b01602001516001600160f81b031916156134ee576001909101906134f3565b6134fb565b6001016134b4565b50600760ff82161015613513576000925050506111e9565b816005820360ff168151811061352557fe5b6020910101516001600160f81b031916602d60f81b1461354a576000925050506111e9565b816001820360ff168151811061355c57fe5b6020910101516001600160f81b031916604d60f81b14613581576000925050506111e9565b5060019392505050565b6000816040516020018082805190602001908083835b602083106135c05780518252601f1990920191602091820191016135a1565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b6020831061362e5780518252601f19909201916020918201910161360f565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b61367f6150bd565b600061368a83614563565b91509150806136ca5760405162461bcd60e51b81526004018080602001828103825260248152602001806152956024913960400191505060405180910390fd5b6136d2615165565b602080840180516001600160a01b0390811684526040808701518585015291511660009081526002909252812054905b846040015151811015613753576137308560400151828151811061372257fe5b6020026020010151836147c7565b8560400151828151811061374057fe5b6020908102919091010152600101613702565b50608084015160408301526005606083015261376e8261407d565b5050505050565b61377d615109565b6000613787615109565b61378f61519c565b6137a061379b86614800565b614825565b90506000805b6137af8361486f565b156138a757806137d1576137ca6137c584614890565b6148de565b845261389f565b80600114156137fe576137eb6137e684614890565b614995565b6001600160a01b0316602085015261389f565b806002141561381d576138136137c584614890565b604085015261389f565b8060031415613845576138326137e684614890565b6001600160a01b0316606085015261389f565b806004141561386d5761385a6137e684614890565b6001600160a01b0316608085015261389f565b806005141561389a576138826137c584614890565b67ffffffffffffffff1660a08501526001915061389f565b6138a7565b6001016137a6565b5091935090915050915091565b60208101516000906001600160a01b03166139f8578160a0015167ffffffffffffffff164211156138e7575060016111e9565b81604001514710156138fb575060036111e9565b613904826149af565b61397957606082015160408084015190516000926001600160a01b0316916127109184818181858888f193505050503d806000811461395f576040519150601f19603f3d011682016040523d82523d6000602084013e613964565b606091505b50509050806139775750600490506111e9565b505b7f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5982602001518360600151846040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a15060006111e9565b8160a0015167ffffffffffffffff16421115613a16575060016111e9565b81516020808401516001600160a01b031660009081526003909152604090205414613a43575060026111e9565b602080830151604080516370a0823160e01b815230600482015290516000936001600160a01b03909316926370a082319261c3509260248083019392829003018187803b158015613a9357600080fd5b5086fa158015613aa7573d6000803e3d6000fd5b50505050506040513d6020811015613abe57600080fd5b50516040840151909150811015613ad95750600390506111e9565b613ae2836149af565b613b9957600083602001516001600160a01b031663a9059cbb61c350866060015187604001516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b158015613b5757600080fd5b5087f1158015613b6b573d6000803e3d6000fd5b50505050506040513d6020811015613b8257600080fd5b5051905080613b975750600591506111e99050565b505b7f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5983602001518460600151856040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a150600090506111e9565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081613c355750508351909150613c5790613df2565b81600081518110613c6457fe5b6020026020010181905250613c7c8360200151613df2565b81600181518110613c8957fe5b6020026020010181905250613caa83604001516001600160a01b0316613e05565b81600281518110613cb757fe5b6020026020010181905250613cd5836060015163ffffffff16613df2565b81600381518110613ce257fe5b602002602001018190525061109f81613e28565b60008183613d825760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613d47578181015183820152602001613d2f565b50505050905090810190601f168015613d745780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581613d8e57fe5b0495945050505050565b60008184841115613dea5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315613d47578181015183820152602001613d2f565b505050900390565b6060611c9d613e0083614b1d565b614c03565b60408051600560a21b831860148201526034810190915260609061109f81614c03565b6060815160001415613e4957506040805160008152602081019091526111e9565b606082600081518110613e5857fe5b602002602001015190506000600190505b8351811015613e9957613e8f82858381518110613e8257fe5b6020026020010151614c55565b9150600101613e69565b5061109f613eac825160c060ff16614cd2565b82614c55565b613eba615165565b6000613ec4615165565b613ecc61519c565b613ed861379b86614800565b90506000805b613ee78361486f565b156138a75780613f0d57613efd6137e684614890565b6001600160a01b03168452614075565b8060011415613fae576060613f29613f2485614890565b614dca565b90508051604051908082528060200260200182016040528015613f56578160200160208202803683370190505b50602086015260005b8151811015613fa757613f84828281518110613f7757fe5b60200260200101516148de565b86602001518281518110613f9457fe5b6020908102919091010152600101613f5f565b5050614075565b8060021415614050576060613fc5613f2485614890565b90508051604051908082528060200260200182016040528015613ff2578160200160208202803683370190505b50604086015260005b8151811015613fa75761402082828151811061401357fe5b6020026020010151614995565b8660400151828151811061403057fe5b6001600160a01b0390921660209283029190910190910152600101613ffb565b806003141561389a576140656137c584614890565b63ffffffff166060850152600191505b600101613ede565b80516001600160a01b03166142a75760005b8160200151518110156142a1576000826040015182815181106140ae57fe5b60200260200101516001600160a01b0316612710846020015184815181106140d257fe5b60209081029190910101516040516000818181858888f193505050503d806000811461411a576040519150601f19603f3d011682016040523d82523d6000602084013e61411f565b606091505b50509050806141e2577f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061415e57fe5b60200260200101518560200151858151811061417657fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a1614298565b7fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a83600001518460400151848151811061421857fe5b60200260200101518560200151858151811061423057fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b5060010161408f565b506144fe565b60005b8160200151518110156144fc57600082600001516001600160a01b031663a9059cbb61c350856040015185815181106142df57fe5b6020026020010151866020015186815181106142f757fe5b60200260200101516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b15801561434e57600080fd5b5087f1158015614362573d6000803e3d6000fd5b50505050506040513d602081101561437957600080fd5b50519050801561443d577fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a8360000151846040015184815181106143b957fe5b6020026020010151856020015185815181106143d157fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a16144f3565b7f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061447357fe5b60200260200101518560200151858151811061448b57fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b506001016142aa565b505b50565b600081836145505760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315613d47578181015183820152602001613d2f565b5082848161455a57fe5b06949350505050565b61456b6150bd565b60006145756150bd565b61457d61519c565b61458961379b86614800565b90506000805b6145988361486f565b156138a757806145b5576145ae6137c584614890565b84526147bf565b80600114156145dd576145ca6137e684614890565b6001600160a01b031660208501526147bf565b806002141561466c5760606145f4613f2485614890565b90508051604051908082528060200260200182016040528015614621578160200160208202803683370190505b50604086015260005b815181101561466557614642828281518110613f7757fe5b8660400151828151811061465257fe5b602090810291909101015260010161462a565b50506147bf565b8060031415614701576060614683613f2485614890565b905080516040519080825280602002602001820160405280156146b0578160200160208202803683370190505b50606086015260005b8151811015614665576146d182828151811061401357fe5b866060015182815181106146e157fe5b6001600160a01b03909216602092830291909101909101526001016146b9565b8060041415614796576060614718613f2485614890565b90508051604051908082528060200260200182016040528015614745578160200160208202803683370190505b50608086015260005b81518110156146655761476682828151811061401357fe5b8660800151828151811061477657fe5b6001600160a01b039092166020928302919091019091015260010161474e565b806005141561389a576147ab6137c584614890565b67ffffffffffffffff1660a0850152600191505b60010161458f565b600060088211156147e957613467836007198401600a0a63ffffffff61305116565b611c9a836008849003600a0a63ffffffff61300f16565b6148086151bc565b506040805180820190915281518152602082810190820152919050565b61482d61519c565b61483682614e9b565b61483f57600080fd5b600061484e8360200151614ecb565b60208085015160408051808201909152868152920190820152915050919050565b60006148796151bc565b505080518051602091820151919092015191011190565b6148986151bc565b6148a18261486f565b6148aa57600080fd5b602082015160006148ba82614f2e565b80830160209586015260408051808201909152908152938401919091525090919050565b8051600090158015906148f357508151602110155b6148fc57600080fd5b600061490b8360200151614ecb565b90508083600001511015614966576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b82516020808501518301805192849003929183101561498c57826020036101000a820491505b50949350505050565b80516000906015146149a657600080fd5b611c9d826148de565b600080805260066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f8541580156149e85750600554155b15614a2a5760008052600660205269021e19e0c9bab24000007f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f85561a8c06005555b6020808301516001600160a01b0316600090815260069091526040902054801580614a585750808360400151105b15614a675760009150506111e9565b6020808401516001600160a01b039081166000908152600783526040808220606088015190931682529190925290819020908401518154614aad9163ffffffff612fb516565b8155600554420160018201819055606085015160208087015160408089015181519081529283019490945283516001600160a01b039384169493909116927f3fb83143cd331170da18fb1e8564d97e8ec39264b6ecb1ba248ea7596ab07258928290030190a35060019392505050565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416614b6157506018614b85565b6fffffffffffffffffffffffffffffffff198416614b8157506010614b85565b5060005b6020811015614bbb57818181518110614b9a57fe5b01602001516001600160f81b03191615614bb357614bbb565b600101614b85565b60008160200390506060816040519080825280601f01601f191660200182016040528015614bf0576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015614c355750607f60f81b82600081518110614c2357fe5b01602001516001600160f81b03191611155b15614c415750806111e9565b611c9d614c538351608060ff16614cd2565b835b6060806040519050835180825260208201818101602087015b81831015614c86578051835260209283019201614c6e565b50855184518101855292509050808201602086015b81831015614cb3578051835260209283019201614c9b565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310614d22576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b60408051600180825281830190925260609160208201818036833701905050905060378411614d7c5782840160f81b81600081518110614d5e57fe5b60200101906001600160f81b031916908160001a9053509050611c9d565b6060614d8785614b1d565b90508381510160370160f81b82600081518110614da057fe5b60200101906001600160f81b031916908160001a905350614dc18282614c55565b95945050505050565b6060614dd582614e9b565b614dde57600080fd5b6000614de983615061565b9050606081604051908082528060200260200182016040528015614e2757816020015b614e146151bc565b815260200190600190039081614e0c5790505b5090506000614e398560200151614ecb565b60208601510190506000805b84811015614e9057614e5683614f2e565b9150604051806040016040528083815260200184815250848281518110614e7957fe5b602090810291909101015291810191600101614e45565b509195945050505050565b8051600090614eac575060006111e9565b6020820151805160001a9060c0821015613581576000925050506111e9565b8051600090811a6080811015614ee55760009150506111e9565b60b8811080614f00575060c08110801590614f00575060f881105b15614f0f5760019150506111e9565b60c0811015614f235760b5190190506111e9565b60f5190190506111e9565b80516000908190811a6080811015614f49576001915061505a565b60b8811015614f5e57607e198101915061505a565b60c0811015614fd857600060b78203600186019550806020036101000a865104915060018101820193505080831015614fd2576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b5061505a565b60f8811015614fed5760be198101915061505a565b600060f78203600186019550806020036101000a865104915060018101820193505080831015615058576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b8051600090615072575060006111e9565b600080905060006150868460200151614ecb565b602085015185519181019250015b808210156150b4576150a582614f2e565b60019093019290910190615094565b50909392505050565b6040518060c001604052806000801916815260200160006001600160a01b03168152602001606081526020016060815260200160608152602001600067ffffffffffffffff1681525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b60408051608081018252600080825260208201819052918101829052606081019190915290565b604051806080016040528060006001600160a01b031681526020016060815260200160608152602001600063ffffffff1681525090565b60405180604001604052806151af6151bc565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe6f6e6c79207374616b696e672073797374656d20636f6e74726163742063616e2063616c6c20746869732066756e6374696f6e746865206d6573736167652073656e646572206d75737420626520696e63656e746976697a6520636f6e7472616374626e62206c61726765207472616e73666572206c696d697420746f6f20736d616c6c466f72206d696e69546f6b656e2c20746865207472616e7366657220616d6f756e74206d757374206e6f74206265206c657373207468616e2031756e7265636f676e697a6564207472616e736665724f75742073796e207061636b61676565787069726554696d65206d7573742062652074776f206d696e75746573206c61746572616d6f756e7420697320746f6f206c617267652c20657863656564206d6178696d756d206265703220746f6b656e20616d6f756e7474686520636f6e747261637420686173206e6f74206265656e20626f756e6420746f20616e79206265703220746f6b656e726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e736665724f757420424e4220616d6f756e7420616e64206d696e696d756d2072656c6179466565616d6f756e7420697320746f6f206c617267652c2075696e74323536206f766572666c6f774c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620726566756e644164647273696e76616c6964207472616e7366657220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e20746865206d696e696d756d2072656c6179466565746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374756e7265636f676e697a6564207472616e736665724f75742061636b207061636b6167654c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620616d6f756e7473746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d73672073656e646572206d75737420626520746f6b656e4d616e6167657274686520636f6e7472616374206e6f7420696e69742079657400000000000000726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e7366657220424e4220616d6f756e7420616e642072656c6179466565696e76616c696420726563656976656420424e4220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6ea264697066735822122055e131816f7cd763bf5ca5ef344219b7a6ec4dab5c7d1c50f4bccc7f17fe5d4664736f6c63430006040033", - }, - { - ContractAddr: CrossChainContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/78e13b1d3a5a1b08c9208af94a9b14fc1efda213", - Code: "608060405234801561001057600080fd5b50600436106103995760003560e01c8063718a8aa8116101e9578063c27cdcfb1161010f578063dc927faf116100ad578063f7a251d71161007c578063f7a251d714610b2f578063f9a2bbc714610ba7578063fc3e590814610baf578063fd6a687914610bb757610399565b8063dc927faf14610af7578063e1c7392a14610aff578063e3b0480514610b07578063e6400bbe14610b2757610399565b8063ccc108d7116100e9578063ccc108d714610ab0578063d31f968d14610ab8578063d76a867514610ae7578063dc40433114610aef57610399565b8063c27cdcfb14610a80578063c780e9de14610aa0578063c81b166214610aa857610399565b80638cc8f56111610187578063a78abc1611610156578063a78abc16146109b2578063ab51bb96146109ba578063ac431751146109c2578063b0355f5b1461078157610399565b80638cc8f5611461088757806396713da91461099a5780639dc09262146109a2578063a1a11bf5146109aa57610399565b806375d47a0a116101c357806375d47a0a146108a75780637942fd05146108af57806384013b6a146108b7578063863fe4ab1461099257610399565b8063718a8aa81461088f578063719482d51461089757806374f079b81461089f57610399565b8063422f9050116102ce57806363e1394e1161026c5780636de380bd1161023b5780636de380bd146108575780636e47a51a1461085f5780636e47b4821461087f57806370fd5bad1461088757610399565b806363e1394e146107ff5780636a3cb34d146108075780636bacff2c1461080f5780636c46aa681461080757610399565b80634bf6c882116102a85780634bf6c882146107b957806351e80672146107c15780635692ddd3146107c95780635f832177146107d157610399565b8063422f90501461078957806343756e5c146107a9578063493279b1146107b157610399565b8063299b533d1161033b578063308325f411610315578063308325f4146106155780633a648b151461061d5780633bdc47a6146106595780633dffc3871461078157610399565b8063299b533d146105a35780632af6f399146105d75780632ff32aea146105f457610399565b806314b3023b1161037757806314b3023b146104015780631d1309351461041b5780631e275ae11461043757806322556cdc1461059b57610399565b806305e682581461039e5780630bee7a67146103bc5780630e2374a5146103dd575b600080fd5b6103a6610bbf565b6040805160ff9092168252519081900360200190f35b6103c4610bc4565b6040805163ffffffff9092168252519081900360200190f35b6103e5610bc9565b604080516001600160a01b039092168252519081900360200190f35b610409610bcf565b60408051918252519081900360200190f35b610423610bd5565b604080519115158252519081900360200190f35b610599600480360361010081101561044e57600080fd5b81018160a081016080820135600160201b81111561046b57600080fd5b82018360208201111561047d57600080fd5b803590602001918460018302840111600160201b8311171561049e57600080fd5b919390929091602081019035600160201b8111156104bb57600080fd5b8201836020820111156104cd57600080fd5b803590602001918460018302840111600160201b831117156104ee57600080fd5b919390929091602081019035600160201b81111561050b57600080fd5b82018360208201111561051d57600080fd5b803590602001918460018302840111600160201b8311171561053e57600080fd5b919390929091602081019035600160201b81111561055b57600080fd5b82018360208201111561056d57600080fd5b803590602001918460018302840111600160201b8311171561058e57600080fd5b509092509050610bde565b005b6104096112c2565b6105c0600480360360208110156105b957600080fd5b50356112c7565b6040805161ffff9092168252519081900360200190f35b610423600480360360208110156105ed57600080fd5b50356112dd565b6105fc6112f2565b60408051600792830b90920b8252519081900360200190f35b6104096112fb565b61063d6004803603602081101561063357600080fd5b503560ff16611301565b604080516001600160401b039092168252519081900360200190f35b61070c6004803603606081101561066f57600080fd5b60ff82351691602081013591810190606081016040820135600160201b81111561069857600080fd5b8201836020820111156106aa57600080fd5b803590602001918460018302840111600160201b831117156106cb57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061131c945050505050565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561074657818101518382015260200161072e565b50505050905090810190601f1680156107735780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103a6611392565b6104236004803603602081101561079f57600080fd5b503560ff16611397565b6103e56113ac565b6105c06113b2565b6103a66113b8565b6103e56113bd565b6104096113c3565b610599600480360360408110156107e757600080fd5b506001600160a01b03813581169160200135166113f3565b610409611653565b6105c061167b565b61082c6004803603602081101561082557600080fd5b5035611680565b6040805161ffff90941684526001600160801b03909216602084015282820152519081900360600190f35b6104096116af565b6103e56004803603602081101561087557600080fd5b503560ff166116d6565b6103e56116f1565b6103a661167b565b6103a66116f7565b6105c0611392565b6104096116fc565b6103e5611702565b6103a6611708565b610599600480360360a08110156108cd57600080fd5b810190602081018135600160201b8111156108e757600080fd5b8201836020820111156108f957600080fd5b803590602001918460018302840111600160201b8311171561091a57600080fd5b919390929091602081019035600160201b81111561093757600080fd5b82018360208201111561094957600080fd5b803590602001918460018302840111600160201b8311171561096a57600080fd5b919350915080356001600160401b03908116916020810135909116906040013560ff1661170d565b610409612a37565b6103a6612a3f565b6103e5612a44565b6103e5612a4a565b610423612a50565b6103c4610bbf565b610599600480360360408110156109d857600080fd5b810190602081018135600160201b8111156109f257600080fd5b820183602082011115610a0457600080fd5b803590602001918460018302840111600160201b83111715610a2557600080fd5b919390929091602081019035600160201b811115610a4257600080fd5b820183602082011115610a5457600080fd5b803590602001918460018302840111600160201b83111715610a7557600080fd5b509092509050612a59565b61063d60048036036020811015610a9657600080fd5b503560ff1661351d565b610409613538565b6103e561355c565b610599613562565b61042360048036036040811015610ace57600080fd5b5080356001600160a01b0316906020013560ff166137b6565b61070c6137d6565b6104096137f5565b6103e56137fb565b610599613801565b61063d60048036036020811015610b1d57600080fd5b503560ff16613bb8565b610599613bd3565b61059960048036036060811015610b4557600080fd5b60ff8235169190810190604081016020820135600160201b811115610b6957600080fd5b820183602082011115610b7b57600080fd5b803590602001918460018302840111600160201b83111715610b9c57600080fd5b919350915035613df2565b6103e5613f35565b6103a6613f3b565b6103e5613f40565b600081565b606481565b61200181565b60015481565b600b5460ff1681565b60005460ff16610c23576040805162461bcd60e51b81526020600482015260196024820152600080516020614a4e833981519152604482015290519081900360640190fd5b604080516337d7f9c160e21b81526001600160401b038b35166004820181905291516110039163df5fe704916024808301926020929190829003018186803b158015610c6e57600080fd5b505afa158015610c82573d6000803e3d6000fd5b505050506040513d6020811015610c9857600080fd5b5051610cd55760405162461bcd60e51b8152600401808060200182810382526023815260200180614a6e6023913960400191505060405180910390fd5b604080516337d7f9c160e21b815260208c8101356001600160401b03166004830181905292516110039263df5fe704926024808301939192829003018186803b158015610d2157600080fd5b505afa158015610d35573d6000803e3d6000fd5b505050506040513d6020811015610d4b57600080fd5b5051610d885760405162461bcd60e51b8152600401808060200182810382526023815260200180614a6e6023913960400191505060405180910390fd5b60608b013560ff81166000908152600560205260409020546001600160401b03909116906001600160a01b0316610e01576040805162461bcd60e51b815260206004820152601860248201527718da185b9b995b081a5cc81b9bdd081cdd5c1c1bdc9d195960421b604482015290519081900360640190fd5b600b5460ff1615610e45576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b8888604051808383808284376040519201829003822094508f93508e9250819050838380828437808301925050509250505060405180910390201415610ec1576040805162461bcd60e51b815260206004820152600c60248201526b1cd85b59481c185e5b1bd85960a21b604482015290519081900360640190fd5b60606001600160401b0360408e01358116908e83013516610ee28282613f46565b80516020808301919091206000818152600e9092526040909120549194509060ff1615610f4b576040805162461bcd60e51b8152602060048201526012602482015271185b1c9958591e4818da185b1b195b99d95960721b604482015290519081900360640190fd5b6000908152600e60205260408120805460ff191660011790558f8160200201356001600160401b0316905060608f8f8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060608c8c8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506040805163cba510a960e01b81526001600160401b038a16600482015290519596509094611003945063cba510a9935060248083019350602092829003018186803b15801561104157600080fd5b505afa158015611055573d6000803e3d6000fd5b505050506040513d602081101561106b57600080fd5b505160408051808201909152600381526269626360e81b6020820152909150611098908290898686613f8e565b6110e1576040805162461bcd60e51b81526020600482015260156024820152740696e76616c6964206d65726b6c652070726f6f663605c1b604482015290519081900360640190fd5b5050505060008f6001600481106110f457fe5b60200201356001600160401b0316905060608d8d8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8f018190048102820181019092528d815293945060609392508d91508c908190840183828082843760009201829052506040805163cba510a960e01b81526001600160401b038a16600482015290519596509094611003945063cba510a9935060248083019350602092829003018186803b1580156111c057600080fd5b505afa1580156111d4573d6000803e3d6000fd5b505050506040513d60208110156111ea57600080fd5b505160408051808201909152600381526269626360e81b6020820152909150611217908290898686613f8e565b611260576040805162461bcd60e51b8152602060048201526015602482015274696e76616c6964206d65726b6c652070726f6f663160581b604482015290519081900360640190fd5b5050505061126c61408b565b604080516001600160401b038416815260ff83166020820152815133927f039eb91179ffd7d3b6e97f8ea106e748e827f910b872375dbc9c14a362319c3c928290030190a2505050505050505050505050505050565b603281565b600d6020526000908152604090205461ffff1681565b600e6020526000908152604090205460ff1681565b60045460070b81565b60025481565b600a602052600090815260409020546001600160401b031681565b60606000825160210190506060816040519080825280601f01601f191660200182016040528015611354576020820181803683370190505b506021810186905260018101879052828152905060418101600061137786614109565b50905061138681838851614113565b50909695505050505050565b600181565b60096020526000908152604090205460ff1681565b61100181565b6102ca81565b600881565b61200081565b604080517710d05390d15317d514905394d1915497d41493d413d4d05360421b8152905190819003601801902081565b60005460ff16611438576040805162461bcd60e51b81526020600482015260196024820152600080516020614a4e833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b15801561147b57600080fd5b505afa15801561148f573d6000803e3d6000fd5b505050506040513d60208110156114a557600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b1580156114e657600080fd5b505afa1580156114fa573d6000803e3d6000fd5b505050506040513d602081101561151057600080fd5b505190508061151d575060155b60008211801561152d5750808211155b61156c576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b604080516001600160a01b038087166020808401919091529086168284015282518083038401815260608301808552815191909201207710d05390d15317d514905394d1915497d41493d413d4d05360421b90915291519081900360780190206000906115d99083614154565b9050801561164b5760408051630911a2c160e11b81526001600160a01b03888116600483015287166024820152905161100491631223458291604480830192600092919082900301818387803b15801561163257600080fd5b505af1158015611646573d6000803e3d6000fd5b505050505b505050505050565b604080516f14d554d411539117d41493d413d4d05360821b8152905190819003601001902081565b600281565b600c602052600090815260409020805460019091015461ffff8216916201000090046001600160801b03169083565b604080516e149153d4115397d41493d413d4d053608a1b8152905190819003600f01902081565b6005602052600090815260409020546001600160a01b031681565b61100581565b601081565b60035481565b61100881565b600b81565b60005460ff16611752576040805162461bcd60e51b81526020600482015260196024820152600080516020614a4e833981519152604482015290519081900360640190fd5b60408051630a83aaa960e31b815233600482015290516110069163541d5548916024808301926020929190829003018186803b15801561179157600080fd5b505afa1580156117a5573d6000803e3d6000fd5b505050506040513d60208110156117bb57600080fd5b505161180e576040805162461bcd60e51b815260206004820152601f60248201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604482015290519081900360640190fd5b7388cb4d8f77742c24d647bef8049d3f3c56067cdd33148061184357507342d596440775c90db8d9187b47650986e106349333145b61187e5760405162461bcd60e51b815260040180806020018281038252602a8152602001806149f2602a913960400191505060405180910390fd5b60ff8116600090815260086020526040902054829082906001600160401b0390811690831681146118ee576040805162461bcd60e51b815260206004820152601560248201527439b2b8bab2b731b2903737ba1034b71037b93232b960591b604482015290519081900360640190fd5b60ff8216600090815260086020908152604091829020805467ffffffffffffffff1916600185016001600160401b039081169190911790915582516337d7f9c160e21b81529089166004820152915188926110039263df5fe70492602480840193829003018186803b15801561196357600080fd5b505afa158015611977573d6000803e3d6000fd5b505050506040513d602081101561198d57600080fd5b50516119ca5760405162461bcd60e51b8152600401808060200182810382526023815260200180614a6e6023913960400191505060405180910390fd5b60ff851660009081526005602052604090205485906001600160a01b0316611a34576040805162461bcd60e51b815260206004820152601860248201527718da185b9b995b081a5cc81b9bdd081cdd5c1c1bdc9d195960421b604482015290519081900360640190fd5b60ff86166000908152600a6020526040902054889087906001600160401b039081169083161015611a9d576040805162461bcd60e51b815260206004820152600e60248201526d3a37b79037b632103432b0b232b960911b604482015290519081900360640190fd5b60ff81166000908152600a60205260409020546001600160401b03838116911614611aef5760ff81166000908152600a60205260409020805467ffffffffffffffff19166001600160401b0384161790555b600b5460ff1615611b33576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b60608e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060608d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509050611c776110036001600160a01b031663cba510a98e6040518263ffffffff1660e01b815260040180826001600160401b03166001600160401b0316815260200191505060206040518083038186803b158015611c2057600080fd5b505afa158015611c34573d6000803e3d6000fd5b505050506040513d6020811015611c4a57600080fd5b505160408051808201909152600381526269626360e81b6020820152611c708e8e613f46565b8585613f8e565b611cbf576040805162461bcd60e51b815260206004820152601460248201527334b73b30b634b21036b2b935b63290383937b7b360611b604482015290519081900360640190fd5b60408051631bb5062960e31b81526001600160401b038e16600482015290516000916110039163dda8314891602480820192602092909190829003018186803b158015611d0b57600080fd5b505afa158015611d1f573d6000803e3d6000fd5b505050506040513d6020811015611d3557600080fd5b505190508b8b600080806060611d4a89614439565b935093509350935083611e0c578460ff16866001600160401b03167ff7b2e42d694eb1100184aae86d4245d9e46966100b1dc7e723275b98326854ac8b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015611dc4578181015183820152602001611dac565b50505050905090810190601f168015611df15780820380516001836020036101000a031916815260200191505b509250505060405180910390a3505050505050505050612a27565b6040805160ff85811682529151918716916001600160401b038916917f36afdaf439a8f43fe72135135d804ae620b37a474f0943b5b85f6788312cad40919081900360200190a360ff83166123915760ff85166000818152600560209081526040808320548151631182b87560e01b815260048101958652602481019283528651604482015286516001600160a01b03909216958695631182b875958d958a9593949093606490910192918601918190849084905b83811015611ed9578181015183820152602001611ec1565b50505050905090810190601f168015611f065780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b158015611f2657600080fd5b505af192505050801561200a57506040513d6000823e601f3d908101601f191682016040526020811015611f5957600080fd5b8101908080516040519392919084600160201b821115611f7857600080fd5b908301906020820185811115611f8d57600080fd5b8251600160201b811182820188101715611fa657600080fd5b82525081516020918201929091019080838360005b83811015611fd3578181015183820152602001611fbb565b50505050905090810190601f1680156120005780820380516001836020036101000a031916815260200191505b5060405250505060015b61231c576040516000815260443d1015612026575060006120c1565b60046000803e60005160e01c6308c379a081146120475760009150506120c1565b60043d036004833e81513d60248201116001600160401b0382111715612072576000925050506120c1565b80830180516001600160401b038111156120935760009450505050506120c1565b8060208301013d86018111156120b1576000955050505050506120c1565b601f01601f191660405250925050505b806120cc57506121de565b60ff8716600090815260076020526040812054612103916001600160401b039091169089906120fe906002908861131c565b6144e9565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf948794849390840192918601918190849084905b8381101561219e578181015183820152602001612186565b50505050905090810190601f1680156121cb5780820380516001836020036101000a031916815260200191505b509250505060405180910390a250612317565b3d808015612208576040519150601f19603f3d011682016040523d82523d6000602084013e61220d565b606091505b5060ff8716600090815260076020526040812054612240916001600160401b039091169089906120fe906002908861131c565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351948794849390840192918601918190849084905b838110156122db5781810151838201526020016122c3565b50505050905090810190601f1680156123085780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b61238b565b8051156123895760ff8716600090815260076020526040812054612355916001600160401b039091169089906120fe906001908661131c565b60ff8716600090815260076020526040902080546001600160401b038082166001011667ffffffffffffffff199091161790555b505b5061295f565b60ff8316600114156126355760ff8516600081815260056020908152604080832054815163831d65d160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563831d65d1958d958a9593949093606490910192918601918190849084905b8381101561241b578181015183820152602001612403565b50505050905090810190601f1680156124485780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561246857600080fd5b505af1925050508015612479575060015b61238b576040516000815260443d101561249557506000612530565b60046000803e60005160e01c6308c379a081146124b6576000915050612530565b60043d036004833e81513d60248201116001600160401b03821117156124e157600092505050612530565b80830180516001600160401b03811115612502576000945050505050612530565b8060208301013d860181111561252057600095505050505050612530565b601f01601f191660405250925050505b8061253b57506125a0565b60408051602080825283518183015283516001600160a01b038616937ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf938693909283928301918501908083836000831561219e578181015183820152602001612186565b3d8080156125ca576040519150601f19603f3d011682016040523d82523d6000602084013e6125cf565b606091505b5060408051602080825283518183015283516001600160a01b038616937f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd297735193869390928392830191850190808383600083156122db5781810151838201526020016122c3565b60ff83166002141561295f5760ff8516600081815260056020908152604080832054815163c8509d8160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563c8509d81958d958a9593949093606490910192918601918190849084905b838110156126bf5781810151838201526020016126a7565b50505050905090810190601f1680156126ec5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561270c57600080fd5b505af192505050801561271d575060015b61295d576040516000815260443d1015612739575060006127d4565b60046000803e60005160e01c6308c379a0811461275a5760009150506127d4565b60043d036004833e81513d60248201116001600160401b0382111715612785576000925050506127d4565b80830180516001600160401b038111156127a65760009450505050506127d4565b8060208301013d86018111156127c4576000955050505050506127d4565b601f01601f191660405250925050505b806127df5750612888565b816001600160a01b03167ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf826040518080602001828103825283818151815260200191508051906020019080838360005b83811015612848578181015183820152602001612830565b50505050905090810190601f1680156128755780820380516001836020036101000a031916815260200191505b509250505060405180910390a25061295d565b3d8080156128b2576040519150601f19603f3d011682016040523d82523d6000602084013e6128b7565b606091505b50816001600160a01b03167f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351826040518080602001828103825283818151815260200191508051906020019080838360005b83811015612921578181015183820152602001612909565b50505050905090810190601f16801561294e5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b505b60ff80861660009081526009602052604090205461100591636f93d2e6918a91339187911680612991575060ff881615155b604080516001600160e01b031960e088901b1681526001600160a01b039586166004820152939094166024840152604483019190915215156064820152905160848083019260209291908290030181600087803b1580156129f157600080fd5b505af1158015612a05573d6000803e3d6000fd5b505050506040513d6020811015612a1b57600080fd5b50505050505050505050505b5050505050505050505050505050565b630102ca0081565b600981565b61100781565b61100681565b60005460ff1681565b3361100714612a995760405162461bcd60e51b815260040180806020018281038252602e81526020018061497a602e913960400191505060405180910390fd5b600b5460ff1615612add576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b612b4684848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526012815271626174636853697a65466f724f7261636c6560701b602082015291506146849050565b15612be157604080516020601f8401819004810282018101909252828152600091612b899185858083850183828082843760009201919091525061476b92505050565b90506127108111158015612b9e5750600a8110155b612bd95760405162461bcd60e51b8152600401808060200182810382526032815260200180614a1c6032913960400191505060405180910390fd5b60015561348b565b612c4a84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601281527118591913dc955c19185d1950da185b9b995b60721b602082015291506146849050565b15612dd257606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060169091149050612ccd5760405162461bcd60e51b815260040180806020018281038252605a815260200180614893605a913960600191505060405180910390fd5b60018101516002820151601683015160ff82161590612ceb81614770565b612d3c576040805162461bcd60e51b815260206004820152601960248201527f61646472657373206973206e6f74206120636f6e747261637400000000000000604482015290519081900360640190fd5b60ff8416600081815260056020908152604080832080546001600160a01b0319166001600160a01b038716908117909155808452600683528184208585528352818420805460ff199081166001179091556009909352818420805490931687151517909255519092917f7e3b6af43092577ee20e60eaa1d9b114a7031305c895ee7dd3ffe17196d2e1e091a3505050505061348b565b612e3f84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526016815275195b98589b1953dc911a5cd8589b1950da185b9b995b60521b602082015291506146849050565b15612f7057606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060029091149050612ec25760405162461bcd60e51b815260040180806020018281038252604a8152602001806149a8604a913960600191505060405180910390fd5b600181810151600283015160ff80831660009081526005602052604090205492939192908316909114906001600160a01b03168015612f66576001600160a01b038116600090815260066020908152604080832060ff881680855290835292819020805460ff1916861515908117909155815190815290517fa3132e3f9819fbddc7f0ed6d38d7feef59aa95112090b7c592f5cb5bc4aa4adc929181900390910190a25b505050505061348b565b612fd484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c73757370656e6451756f72756d60981b602082015291506146849050565b1561310957600281146130185760405162461bcd60e51b815260040180806020018281038252602d815260200180614921602d913960400191505060405180910390fd5b600061305b600284848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061476b92505050565b905060008161ffff16118015613075575060648161ffff16105b6130bf576040805162461bcd60e51b8152602060048201526016602482015275696e76616c69642073757370656e642071756f72756d60501b604482015290519081900360640190fd5b604080516f14d554d411539117d41493d413d4d05360821b815281519081900360100190206000908152600d60205220805461ffff90921661ffff1990921691909117905561348b565b61316c84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600c81526b72656f70656e51756f72756d60a01b602082015291506146849050565b1561329f57600281146131b05760405162461bcd60e51b815260040180806020018281038252602c81526020018061494e602c913960400191505060405180910390fd5b60006131f3600284848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061476b92505050565b905060008161ffff1611801561320d575060648161ffff16105b613256576040805162461bcd60e51b8152602060048201526015602482015274696e76616c69642072656f70656e2071756f72756d60581b604482015290519081900360640190fd5b604080516e149153d4115397d41493d413d4d053608a1b8152815190819003600f0190206000908152600d60205220805461ffff90921661ffff1990921691909117905561348b565b61330a84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601481527363616e63656c5472616e7366657251756f72756d60601b602082015291506146849050565b1561344e576002811461334e5760405162461bcd60e51b81526004018080602001828103825260348152602001806148ed6034913960400191505060405180910390fd5b6000613391600284848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061476b92505050565b905060008161ffff161180156133ab575060648161ffff16105b6133fc576040805162461bcd60e51b815260206004820152601e60248201527f696e76616c69642063616e63656c207472616e736665722071756f72756d0000604482015290519081900360640190fd5b604080517710d05390d15317d514905394d1915497d41493d413d4d05360421b815281519081900360180190206000908152600d60205220805461ffff90921661ffff1990921691909117905561348b565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b6008602052600090815260409020546001600160401b031681565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081565b61100281565b60005460ff166135a7576040805162461bcd60e51b81526020600482015260196024820152600080516020614a4e833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b1580156135ea57600080fd5b505afa1580156135fe573d6000803e3d6000fd5b505050506040513d602081101561361457600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b15801561365557600080fd5b505afa158015613669573d6000803e3d6000fd5b505050506040513d602081101561367f57600080fd5b505190508061368c575060155b60008211801561369c5750808211155b6136db576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b600b5460ff16613722576040805162461bcd60e51b815260206004820152600d60248201526c1b9bdd081cdd5cdc195b991959609a1b604482015290519081900360640190fd5b604080516e149153d4115397d41493d413d4d053608a1b8152905190819003600f019020600090613773907fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470614154565b905080156137b157600b805460ff1916905560405133907f899fe8c37dc61708a3aaa99c4bf143346c1d1da69af79be9e8920c0a6785b75290600090a25b505050565b600660209081526000928352604080842090915290825290205460ff1681565b6040518060400160405280600381526020016269626360e81b81525081565b610e1081565b61100381565b60005460ff1615613859576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b7f1471eb6eb2c5e789fc3de43f8ce62938c7d1836ec861730447e2ada8fd81017b80546001600160a01b0319908116611008179091557f92e85d02570a8092d09a6e3a57665bc3815a2699a4074001bf1ccabf660f5a36805460ff199081169091557fd8af288fc1c8680b4f4706064cf021e264efb6828fcaf7eb5ca36818eb365bcc8054821660019081179091557f89832631fb3c3307a103ba2c84ab569c64d6182a18893dcd163f0f1c2090733a805484166110049081179091557f6cde3cea4b3a3fb2488b2808bae7556f4a405e50f65e1794383bc026131b13c38054841690557f72e4efa1513b071517c6c74dba31b5934a81aa83cddd400e7081df5529c9943680548416831790557fa9bc9a3a348c357ba16b37005d7e6b3236198c0e939f4af8c5f19b8deeb8ebc08054851690911790557fc575c31fea594a6eb97c8e9d3f9caee4c16218c6ef37e923234c0fe9014a61e78054831690557f4e523af77f034e9810f1c94057f5e931fb3d16a51511a4c3add793617d18610580548316821790557ffb33122aa9f93cc639ebe80a7bc4784c11e6053dde89c6f4f7e268c6a623da1e805484166110001790557fc7694af312c4f286114180fd0ba6a52461fcee8a381636770b19a343af92538a80548316821790557f01112dd68e482ba8d68a7e828cff8b3abcea08eab88941953c180a7e650e9cd480548316821790557fc0a4a8be475dfebc377ebef2d7c4ff47656f572a08dd92b81017efcdba0febe1805484166110071790557f87e8a52529e8ece4ef759037313542a6429ff494a9fab9027fb79db90124eba680548316821790557f4c7666bbcb22d46469f7cc282f70764a7012dca2cce630ff8d83db9a9cdd48f080548316821790557f40f28f99a40bc9f6beea1013afdbc3cdcc689eb76b82c4de06c0acf1e1932ed58054909316611001179092557f0d9cf2cd531699eed8dd34e40ff2884a14a698c4898184fba85194e6f6772d248054821683179055600b60009081527f23f68c9bd22b8a93d06adabe17481c87c016bcbd20adc8bfd707a4d813a572176020527fdf0d5d05428057f5455c2dc8e810dd86d1e9350faa72f16bda8a45443c5b39328054831684179055603283556004805467ffffffffffffffff19166001600160401b031790556002819055600381905580549091169091179055565b6007602052600090815260409020546001600160401b031681565b60005460ff16613c18576040805162461bcd60e51b81526020600482015260196024820152600080516020614a4e833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b158015613c5b57600080fd5b505afa158015613c6f573d6000803e3d6000fd5b505050506040513d6020811015613c8557600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b158015613cc657600080fd5b505afa158015613cda573d6000803e3d6000fd5b505050506040513d6020811015613cf057600080fd5b5051905080613cfd575060155b600082118015613d0d5750808211155b613d4c576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b600b5460ff1615613d90576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b604080516f14d554d411539117d41493d413d4d05360821b81529051908190036010019020600090613de2907fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470614154565b905080156137b1576137b161408b565b60005460ff16613e37576040805162461bcd60e51b81526020600482015260196024820152600080516020614a4e833981519152604482015290519081900360640190fd5b33600090815260066020908152604080832060ff8089168552925290912054859116613e945760405162461bcd60e51b81526004018080602001828103825260318152602001806148626031913960400191505060405180910390fd5b60ff85166000908152600760209081526040808320548151601f88018490048402810184019092528682526001600160401b031692613ef99284928a926120fe92909189918c908c908190840183828082843760009201919091525061131c92505050565b60ff959095166000908152600760205260409020805467ffffffffffffffff191660019096016001600160401b03169590951790945550505050565b61100081565b600381565b61100481565b60408051600e808252818301909252606091630102ca0060ff851617918391602082018180368337505050600e81810187905260068201939093529182525090505b92915050565b600085613f9d57506000614082565b606082518451865160800101016040519080825280601f01601f191660200182016040528015613fd4576020820181803683370190505b5090506000613fe282614776565b602080890151825201905086600080613ffa89614109565b8086526020909501949092509050614013828583614113565b9283019261402088614109565b8086526020909501949092509050614039828583614113565b9283018a81526020019261404c87614109565b909250905061405c828583614113565b50835160200161406a61477c565b60208183886065600019fa5051600114955050505050505b95945050505050565b600b5460ff16156140cf576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b600b805460ff1916600117905560405133907f6f123d3d54c84a7960a573b31c221dcd86e13fd849c5adb0c6ca851468cc1ae490600090a2565b8051602090910191565b5b60208110614133578251825260209283019290910190601f1901614114565b915181516020939093036101000a6000190180199091169216919091179052565b6000828152600d602052604081205461ffff1661421d57604080516f14d554d411539117d41493d413d4d05360821b815281519081900360100181206000908152600d6020818152848320805461ffff199081166001179091556e149153d4115397d41493d413d4d053608a1b8552855194859003600f01852084528282528584208054821660029081179091557710d05390d15317d514905394d1915497d41493d413d4d05360421b8652865195869003601801909520845291905292902080549092161790555b6000838152600c6020526040902080546201000090046001600160801b03164210158061424e575082816001015414155b15614321576000848152600d602090815260409182902054835461ffff90911661ffff199091161771ffffffffffffffffffffffffffffffff0000191662010000610e1042016001600160801b031602178355600180840186905582519182019092523381526142c39160028401919061479a565b5080546040805161ffff83168152620100009092046001600160801b0316602083015281810185905251339186917f9e109f0e55ef32e99e4880be2ec357f1ddb3469c79d0747ef4762da6e89fabe5916060908290030190a36143d5565b60005b60028201548110156143ac57336001600160a01b031682600201828154811061434957fe5b6000918252602090912001546001600160a01b031614156143a4576040805162461bcd60e51b815260206004820152601060248201526f185b1c9958591e48185c1c1c9bdd995960821b604482015290519081900360640190fd5b600101614324565b50600281018054600181018255600091825260209091200180546001600160a01b031916331790555b8054600282015461ffff9091161161442f576000848152600c60205260408120805471ffffffffffffffffffffffffffffffffffff19168155600181018290559061442360028301826147ff565b50506001915050613f88565b5060009392505050565b600080600060606021855110156144695750506040805160008082526020820190925290925082915081906144e2565b600185015160218601518651604080516020198301808252601f19600119909401939093168101602001909152604189019392916060919080156144b4576020820181803683370190505b50905060006144c282614109565b5090506144d4858260218d5103614113565b506001975091955093509150505b9193509193565b600b5460ff161561452d576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b60025443111561456c576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b1617909155600355436002556145ad565b600380546001908101918290555410156145ad576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b16179091556003555b8160ff16836001600160401b0316600460009054906101000a900460070b6001600160401b03167f3a6e0fc61675aa2a100bcba0568368bb92bcec91c97673391074f11138f0cffe6102ca85604051808361ffff1661ffff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561464457818101518382015260200161462c565b50505050905090810190601f1680156146715780820380516001836020036101000a031916815260200191505b50935050505060405180910390a4505050565b6000816040516020018082805190602001908083835b602083106146b95780518252601f19909201916020918201910161469a565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106147275780518252601f199092019160209182019101614708565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b3b151590565b60200190565b60405180602001604052806001906020820280368337509192915050565b8280548282559060005260206000209081019282156147ef579160200282015b828111156147ef57825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906147ba565b506147fb929150614820565b5090565b508054600082559060005260206000209081019061481d9190614847565b50565b61484491905b808211156147fb5780546001600160a01b0319168155600101614826565b90565b61484491905b808211156147fb576000815560010161484d56fe74686520636f6e747261637420616e64206368616e6e656c2068617665206e6f74206265656e20726567697374657265646c656e677468206f662076616c756520666f72206164644f725570646174654368616e6e656c2073686f756c642062652032322c206368616e6e656c49643a697346726f6d53797374656d3a68616e646c6572416464726573736c656e677468206f662076616c756520666f722063616e63656c5472616e7366657251756f72756d2073686f756c6420626520326c656e677468206f662076616c756520666f722073757370656e6451756f72756d2073686f756c6420626520326c656e677468206f662076616c756520666f722072656f70656e51756f72756d2073686f756c642062652032746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662076616c756520666f7220656e61626c654f7244697361626c654368616e6e656c2073686f756c6420626520322c206368616e6e656c49643a6973456e61626c65746865206d73672073656e646572206973206e6f7420612077686974656c6162656c2072656c61796572746865206e6577426174636853697a65466f724f7261636c652073686f756c6420626520696e205b31302c2031303030305d74686520636f6e7472616374206e6f7420696e697420796574000000000000006c6967687420636c69656e74206e6f742073796e632074686520626c6f636b20796574a2646970667358221220008ae508df631c7bfc8d3fe4ef823eddaef63a15d5e7aa54865ae501fe6fc38164736f6c63430006040033", - }, - }, - } - - CalcuttaUpgrade[networkname.BorMainnetChainName] = &Upgrade{ - UpgradeName: "calcutta", - Configs: []*UpgradeConfig{ - { - ContractAddr: MaticTokenContract, - Code: "", - }, - }, - } - - CalcuttaUpgrade[networkname.MumbaiChainName] = &Upgrade{ - UpgradeName: "calcutta", - Configs: []*UpgradeConfig{ - { - ContractAddr: MaticTokenContract, - Code: "", - }, - }, - } - - CalcuttaUpgrade[networkname.BorDevnetChainName] = &Upgrade{ - UpgradeName: "calcutta", - Configs: []*UpgradeConfig{ - { - ContractAddr: MaticTokenContract, - Code: "", - }, - }, - } - - LubanUpgrade[networkname.BSCChainName] = &Upgrade{ - UpgradeName: "luban", - Configs: []*UpgradeConfig{ - { - ContractAddr: ValidatorContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/b144718e94d7a1ebb24a7103202300f08826f369", - Code: "60806040526004361061046c5760003560e01c8063862498821161024a578063c6d3394511610139578063e40716a1116100b6578063f9a2bbc71161007a578063f9a2bbc714610b6b578063fc3e590814610b80578063fccc281314610b95578063fd4ad81f14610baa578063fd6a687914610bd957610473565b8063e40716a114610af9578063eb57e20214610b0e578063eda5868c14610b2e578063f340fa0114610b43578063f92eb86b14610b5657610473565b8063d86222d5116100fd578063d86222d514610a90578063daacdb6614610aa5578063dc927faf14610aba578063e086c7b114610acf578063e1c7392a14610ae457610473565b8063c6d3394514610a3c578063c81b166214610a51578063c8509d811461085f578063d04aa99614610a66578063d68fb56a14610a7b57610473565b8063a5422d5c116101c7578063ad3c9da61161018b578063ad3c9da6146109d0578063aef198a9146109f0578063b7ab4db514610a05578063b8cf4ef114610a27578063bf9f49951461062f57610473565b8063a5422d5c1461095c578063a78abc1614610971578063aaf5eb6814610986578063ab51bb961461099b578063ac431751146109b057610473565b806396713da91161020e57806396713da9146108f35780639dc09262146109085780639fe0f8161461091d578063a0dc275814610932578063a1a11bf51461094757610473565b8063862498821461087f57806388b32f11146108945780638b5ad0c9146108a95780638d19a410146108be5780639369d7de146108de57610473565b80634df6e0c3116103665780636e47b482116102e35780637942fd05116102a75780637942fd05146108205780637a84ca2a1461083557806381650b621461084a578063831d65d11461085f578063853230aa1461080b57610473565b80636e47b482146107b757806370fd5bad146107cc578063718a8aa8146107e157806375d47a0a146107f657806378dfed4a1461080b57610473565b8063565c56b31161032a578063565c56b3146107265780635667515a146107465780635d77156c1461075b57806362b72cf5146107705780636969a25c1461078557610473565b80634df6e0c3146106b25780635192c82c146106c757806351e80672146106dc578063549b03f2146106f157806355614fcc1461070657610473565b8063321d398a116103f45780633dffc387116103b85780633dffc3871461062f57806343756e5c1461065157806345cf9daf14610666578063493279b11461067b5780634bf6c8821461069d57610473565b8063321d398a146105975780633365af3a146105b757806335409f7f146105d75780633b071dcc146105f75780633de0f0d81461061a57610473565b80631182b8751161043b5780631182b875146104fe578063152ad3b81461052b5780631ff180691461054d578063219f22d514610562578063300c35671461057757610473565b806304c4fec61461047857806307a568471461048f5780630bee7a67146104ba5780630e2374a5146104dc57610473565b3661047357005b600080fd5b34801561048457600080fd5b5061048d610bee565b005b34801561049b57600080fd5b506104a4610c60565b6040516104b19190616ef0565b60405180910390f35b3480156104c657600080fd5b506104cf610c66565b6040516104b19190616f1a565b3480156104e857600080fd5b506104f1610c6b565b6040516104b191906162f7565b34801561050a57600080fd5b5061051e6105193660046161dd565b610c71565b6040516104b1919061646e565b34801561053757600080fd5b50610540610ea9565b6040516104b19190616463565b34801561055957600080fd5b506104a4610eb2565b34801561056e57600080fd5b506104cf610eb8565b34801561058357600080fd5b5061048d6105923660046160a6565b610ebd565b3480156105a357600080fd5b506105406105b236600461618a565b611241565b3480156105c357600080fd5b506105406105d236600461618a565b611310565b3480156105e357600080fd5b5061048d6105f236600461607f565b6113c1565b34801561060357600080fd5b5061060c61151a565b6040516104b1929190616379565b34801561062657600080fd5b506104a46117f6565b34801561063b57600080fd5b506106446117fc565b6040516104b19190616f2b565b34801561065d57600080fd5b506104f1611801565b34801561067257600080fd5b506104a4611807565b34801561068757600080fd5b5061069061180d565b6040516104b19190616ee1565b3480156106a957600080fd5b50610644611812565b3480156106be57600080fd5b5061060c611817565b3480156106d357600080fd5b506104a4611995565b3480156106e857600080fd5b506104f161199b565b3480156106fd57600080fd5b506104a46119a1565b34801561071257600080fd5b5061054061072136600461607f565b6119a7565b34801561073257600080fd5b506104a461074136600461607f565b6119dc565b34801561075257600080fd5b50610644611a2d565b34801561076757600080fd5b506104cf611a32565b34801561077c57600080fd5b506104a4611a37565b34801561079157600080fd5b506107a56107a036600461618a565b611a3d565b6040516104b196959493929190616324565b3480156107c357600080fd5b506104f1611aa1565b3480156107d857600080fd5b50610644611aa7565b3480156107ed57600080fd5b50610644611aac565b34801561080257600080fd5b506104f1611ab1565b34801561081757600080fd5b506104a4611ab7565b34801561082c57600080fd5b50610644611abd565b34801561084157600080fd5b506104a4611ac2565b34801561085657600080fd5b506104cf611ac8565b34801561086b57600080fd5b5061048d61087a3660046161dd565b611acd565b34801561088b57600080fd5b506104a4611b2e565b3480156108a057600080fd5b506104a4611b34565b3480156108b557600080fd5b506104a4611b3a565b3480156108ca57600080fd5b506104a46108d936600461607f565b611b40565b3480156108ea57600080fd5b5061048d611b80565b3480156108ff57600080fd5b50610644611c94565b34801561091457600080fd5b506104f1611c99565b34801561092957600080fd5b506104a4611c9f565b34801561093e57600080fd5b506104a4611ca4565b34801561095357600080fd5b506104f1611ca9565b34801561096857600080fd5b5061051e611caf565b34801561097d57600080fd5b50610540611cce565b34801561099257600080fd5b506104a4611cd7565b3480156109a757600080fd5b506104cf611a2d565b3480156109bc57600080fd5b5061048d6109cb36600461612e565b611ce0565b3480156109dc57600080fd5b506104a46109eb36600461607f565b61258c565b3480156109fc57600080fd5b506104a461259e565b348015610a1157600080fd5b50610a1a6125ab565b6040516104b19190616366565b348015610a3357600080fd5b506104a4612697565b348015610a4857600080fd5b506104a4611aa7565b348015610a5d57600080fd5b506104f161269c565b348015610a7257600080fd5b506104a46126a2565b348015610a8757600080fd5b506104a46126a7565b348015610a9c57600080fd5b506104a46126e6565b348015610ab157600080fd5b506104a46126f2565b348015610ac657600080fd5b506104f16126f8565b348015610adb57600080fd5b506104a46126fe565b348015610af057600080fd5b5061048d612703565b348015610b0557600080fd5b506104a46128b2565b348015610b1a57600080fd5b5061048d610b2936600461607f565b6128b8565b348015610b3a57600080fd5b506104cf6129c0565b61048d610b5136600461607f565b6129c5565b348015610b6257600080fd5b506104a4612c4d565b348015610b7757600080fd5b506104f1612c53565b348015610b8c57600080fd5b50610644611c9f565b348015610ba157600080fd5b506104f1612c59565b348015610bb657600080fd5b50610bca610bc536600461618a565b612c5f565b6040516104b193929190616ef9565b348015610be557600080fd5b506104f1612d21565b6000610bf933611b40565b9050600b8181548110610c0857fe5b600091825260209091206001601690920201015460ff16610c445760405162461bcd60e51b8152600401610c3b90616b99565b60405180910390fd5b6000610c4e6126a7565b9050610c5b338383612d27565b505050565b60095481565b606481565b61200181565b60005460609060ff16610c965760405162461bcd60e51b8152600401610c3b9061662d565b3361200014610cb75760405162461bcd60e51b8152600401610c3b90616d78565b600b54610d7557610cc6615d6b565b60015460005b81811015610d7157600b80546001810182556000919091528351600080516020616fa383398151915260169092029182019081556020808601516000805160206175d28339815191528401805460ff1916911515919091179055604086015180518794610d4d93600080516020616fc3833981519152909101920190615d9a565b506060820151610d639060038301906013615e14565b505050806001019050610ccc565b5050505b610d7d615e41565b6000610dbe85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612f1392505050565b9150915080610dda57610dd160646130cf565b92505050610ea2565b815160009060ff16610dff57610df883602001518460400151613130565b9050610e6e565b825160ff1660011415610e6a57826020015151600114610e4457600080516020616f83833981519152604051610e3490616a80565b60405180910390a1506067610e65565b610df88360200151600081518110610e5857fe5b6020026020010151613d84565b610e6e565b5060655b63ffffffff8116610e935750506040805160008152602081019091529150610ea29050565b610e9c816130cf565b93505050505b9392505050565b60075460ff1681565b60035481565b606881565b334114610edc5760405162461bcd60e51b8152600401610c3b90616dc7565b6010544311610efd5760405162461bcd60e51b8152600401610c3b90616789565b60005460ff16610f1f5760405162461bcd60e51b8152600401610c3b9061662d565b600f54610f37576032600f5561100231601155611237565b60006110023168056bc75e2d63100000811115610f6657610f5f81606463ffffffff613efb16565b9150610faf565b601154811115610fa857610f5f6064610f9c600f54610f9060115486613f3d90919063ffffffff16565b9063ffffffff613f7f16565b9063ffffffff613efb16565b5050611237565b6040516309a99b4f60e41b815261100290639a99b4f090610fd6903090869060040161630b565b602060405180830381600087803b158015610ff057600080fd5b505af1158015611004573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061102891906161a2565b6110023160115591508161103d575050611237565b6000805b8481101561106b5785858281811061105557fe5b9050602002013582019150806001019050611041565b508061107957505050611237565b6000806000805b8981101561122f578489898381811061109557fe5b905060200201358802816110a557fe5b0493508a8a828181106110b457fe5b90506020020160208101906110c9919061607f565b6001600160a01b038116600090815260046020526040902054909350915081156111e55760006001808403815481106110fe57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff161561116b57836001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d858660405161115e9190616ef0565b60405180910390a26111df565b60035461117e908663ffffffff613fb916565b6003908155810154611196908663ffffffff613fb916565b60038201556040516001600160a01b038516907fcb0aad6cf9cd03bdf6137e359f541c42f38b39f007cae8e89e88aa7d8c6617b2906111d6908890616ef0565b60405180910390a25b50611227565b826001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d858560405161121e9190616ef0565b60405180910390a25b600101611080565b505050505050505b5050436010555050565b60015460009082106112555750600061130b565b60006001600160a01b03166001838154811061126d57fe5b60009182526020909120600490910201546001600160a01b0316148061129d5750600854158061129d5750600a54155b806112ac575060085460095410155b806112bd57506112bb82611310565b155b806112e657506000600b83815481106112d257fe5b906000526020600020906016020160000154115b806112fa575060016112f66125ab565b5111155b156113075750600061130b565b5060015b919050565b60015460009082106113245750600061130b565b600b548210611361576001828154811061133a57fe5b9060005260206000209060040201600201601c9054906101000a900460ff1615905061130b565b6001828154811061136e57fe5b9060005260206000209060040201600201601c9054906101000a900460ff161580156113bb5750600b82815481106113a257fe5b600091825260209091206001601690920201015460ff16155b92915050565b33611001146113e25760405162461bcd60e51b8152600401610c3b90616e98565b600b546114a0576113f1615d6b565b60015460005b8181101561149c57600b80546001810182556000919091528351600080516020616fa383398151915260169092029182019081556020808601516000805160206175d28339815191528401805460ff191691151591909117905560408601518051879461147893600080516020616fc3833981519152909101920190615d9a565b50606082015161148e9060038301906013615e14565b5050508060010190506113f7565b5050505b6001600160a01b038116600090815260046020526040902054806114c45750611517565b6001810390506000600b82815481106114d957fe5b600091825260209091206001601690920201015460ff1690506114fc8383613fde565b80156115055750805b15610c5b576009805460001901905550505b50565b60015460609081906000805b8281101561156d576001818154811061153b57fe5b9060005260206000209060040201600201601c9054906101000a900460ff16611565576001909101905b600101611526565b5060608160405190808252806020026020018201604052801561159a578160200160208202803683370190505b5090506060826040519080825280602002602001820160405280156115d357816020015b60608152602001906001900390816115be5790505b50600b546000945090915084141561174e5760005b8481101561174857600181815481106115fd57fe5b9060005260206000209060040201600201601c9054906101000a900460ff16611740576001818154811061162d57fe5b600091825260209091206004909102015483516001600160a01b039091169084908690811061165857fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600b818154811061168557fe5b600091825260209182902060026016909202018101805460408051601f60001961010060018616150201909316949094049182018590048502840185019052808352919290919083018282801561171d5780601f106116f25761010080835404028352916020019161171d565b820191906000526020600020905b81548152906001019060200180831161170057829003601f168201915b505050505082858151811061172e57fe5b60209081029190910101526001909301925b6001016115e8565b506117ea565b60005b848110156117e8576001818154811061176657fe5b9060005260206000209060040201600201601c9054906101000a900460ff166117e0576001818154811061179657fe5b600091825260209091206004909102015483516001600160a01b03909116908490869081106117c157fe5b6001600160a01b03909216602092830291909101909101526001909301925b600101611751565b505b909450925050505b9091565b61271081565b600181565b61100181565b60085481565b603881565b600881565b600e54600c5460609182918061182b575060155b60606118356125ab565b9050606061184282614391565b9050828251116118595790945092506117f2915050565b8383835103101561186b578282510393505b83156118a15760c8430461188783838388880360008a8a6144ff565b61189f8383838888038989038a8b8b8b5103016144ff565b505b6060836040519080825280602002602001820160405280156118cd578160200160208202803683370190505b50905060608460405190808252806020026020018201604052801561190657816020015b60608152602001906001900390816118f15790505b50905060005b858110156119875784818151811061192057fe5b602002602001015183828151811061193457fe5b60200260200101906001600160a01b031690816001600160a01b03168152505083818151811061196057fe5b602002602001015182828151811061197457fe5b602090810291909101015260010161190c565b509096509450505050509091565b60065481565b61200081565b600f5481565b6001600160a01b038116600090815260046020526040812054806119cf57600091505061130b565b60001901610ea281611310565b6001600160a01b03811660009081526004602052604081205480611a0457600091505061130b565b600180820381548110611a1357fe5b906000526020600020906004020160030154915050919050565b600081565b606781565b60105481565b60018181548110611a4a57fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b601081565b61100881565b6103e881565b600b81565b600c5481565b606681565b3361200014611aee5760405162461bcd60e51b8152600401610c3b90616d78565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051611b2193929190616f39565b60405180910390a1505050565b60025481565b60115481565b600a5481565b6001600160a01b03811660009081526004602052604081205480611b765760405162461bcd60e51b8152600401610c3b90616d00565b6000190192915050565b600b54611c3e57611b8f615d6b565b60015460005b81811015611c3a57600b80546001810182556000919091528351600080516020616fa383398151915260169092029182019081556020808601516000805160206175d28339815191528401805460ff1916911515919091179055604086015180518794611c1693600080516020616fc3833981519152909101920190615d9a565b506060820151611c2c9060038301906013615e14565b505050806001019050611b95565b5050505b600854611c4b5760036008555b600a54611c58576002600a555b6000611c6333611b40565b9050611c6e81611241565b611c8a5760405162461bcd60e51b8152600401610c3b90616a3d565b6115173382614656565b600981565b61100781565b600381565b60c881565b61100681565b6040518061062001604052806105ef8152602001616fe36105ef913981565b60005460ff1681565b6402540be40081565b60005460ff16611d025760405162461bcd60e51b8152600401610c3b9061662d565b3361100714611d235760405162461bcd60e51b8152600401610c3b90616b06565b611d8d84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b602082015291506146ee9050565b15611e2a5760208114611db25760405162461bcd60e51b8152600401610c3b90616cba565b604080516020601f8401819004810282018101909252828152600091611df09185858083850183828082843760009201919091525061474792505050565b905060648110158015611e065750620186a08111155b611e225760405162461bcd60e51b8152600401610c3b906168e6565b600255612549565b611e8a84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260098152686275726e526174696f60b81b602082015291506146ee9050565b15611f265760208114611eaf5760405162461bcd60e51b8152600401610c3b906164b3565b604080516020601f8401819004810282018101909252828152600091611eed9185858083850183828082843760009201919091525061474792505050565b9050612710811115611f115760405162461bcd60e51b8152600401610c3b906167cb565b6006556007805460ff19166001179055612549565b611f9084848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260138152726d61784e756d4f664d61696e7461696e696e6760681b602082015291506146ee9050565b1561202a5760208114611fb55760405162461bcd60e51b8152600401610c3b906164ea565b604080516020601f8401819004810282018101909252828152600091611ff39185858083850183828082843760009201919091525061474792505050565b600c5490915080612002575060155b8082106120215760405162461bcd60e51b8152600401610c3b9061683e565b50600855612549565b61209384848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61696e7461696e536c6173685363616c6560701b602082015291506146ee9050565b1561212c57602081146120b85760405162461bcd60e51b8152600401610c3b906165b3565b604080516020601f84018190048102820181019092528281526000916120f69185858083850183828082843760009201919091525061474792505050565b90506000811180156121085750600a81105b6121245760405162461bcd60e51b8152600401610c3b90616e14565b600a55612549565b6121a084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601981527f6d61784e756d4f66576f726b696e6743616e6469646174657300000000000000602082015291506146ee9050565b1561222f57602081146121c55760405162461bcd60e51b8152600401610c3b90616567565b604080516020601f84018190048102820181019092528281526000916122039185858083850183828082843760009201919091525061474792505050565b9050600d548111156122275760405162461bcd60e51b8152600401610c3b9061695c565b600e55612549565b61229884848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61784e756d4f6643616e6469646174657360701b602082015291506146ee9050565b1561231a57602081146122bd5760405162461bcd60e51b8152600401610c3b90616b54565b604080516020601f84018190048102820181019092528281526000916122fb9185858083850183828082843760009201919091525061474792505050565b600d819055600e5490915081101561231457600d54600e555b50612549565b61237e84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c6e756d4f66436162696e65747360981b602082015291506146ee9050565b1561242c57602081146123a35760405162461bcd60e51b8152600401610c3b906165f8565b604080516020601f84018190048102820181019092528281526000916123e19185858083850183828082843760009201919091525061474792505050565b9050600081116124035760405162461bcd60e51b8152600401610c3b9061669b565b60298111156124245760405162461bcd60e51b8152600401610c3b906166e3565b600c55612549565b61249684848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601381527266696e616c697479526577617264526174696f60681b602082015291506146ee9050565b1561253157602081146124bb5760405162461bcd60e51b8152600401610c3b90616c3d565b604080516020601f84018190048102820181019092528281526000916124f99185858083850183828082843760009201919091525061474792505050565b90506001811015801561250d575060648111155b6125295760405162461bcd60e51b8152600401610c3b906169cb565b600f55612549565b60405162461bcd60e51b8152600401610c3b90616e71565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a8484848460405161257e9493929190616481565b60405180910390a150505050565b60046020526000908152604090205481565b68056bc75e2d6310000081565b6001546060906000805b828110156125da576125c681611310565b156125d2578160010191505b6001016125b5565b50606081604051908082528060200260200182016040528015612607578160200160208202803683370190505b5090506000915060005b8381101561268e5761262281611310565b15612686576001818154811061263457fe5b600091825260209091206004909102015482516001600160a01b039091169083908590811061265f57fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508260010192505b600101612611565b50925050505b90565b601581565b61100281565b603281565b60006126b16125ab565b519050600080600c54116126c65760156126ca565b600c545b9050808211156126d8578091505b816126e257600191505b5090565b67016345785d8a000081565b60055481565b61100381565b602981565b60005460ff16156127265760405162461bcd60e51b8152600401610c3b90616c06565b61272e615e41565b60006127546040518061062001604052806105ef8152602001616fe36105ef9139612f13565b91509150806127755760405162461bcd60e51b8152600401610c3b90616d37565b60005b82602001515181101561289a5760018360200151828151811061279757fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a09093015160039093019290925591860151805191850193918590811061286d57fe5b602090810291909101810151516001600160a01b0316825281019190915260400160002055600101612778565b50506103e8600255506000805460ff19166001179055565b600d5481565b33611001146128d95760405162461bcd60e51b8152600401610c3b90616e98565b600b54612997576128e8615d6b565b60015460005b8181101561299357600b80546001810182556000919091528351600080516020616fa383398151915260169092029182019081556020808601516000805160206175d28339815191528401805460ff191691151591909117905560408601518051879461296f93600080516020616fc3833981519152909101920190615d9a565b5060608201516129859060038301906013615e14565b5050508060010190506128ee565b5050505b60006129a28261474c565b90506129ad81611241565b156129bc576129bc8282614656565b5050565b606581565b3341146129e45760405162461bcd60e51b8152600401610c3b90616dc7565b60005460ff16612a065760405162461bcd60e51b8152600401610c3b9061662d565b60003411612a265760405162461bcd60e51b8152600401610c3b9061692d565b6001600160a01b0381166000908152600460205260409020546007543491906103e89060ff1615612a5657506006545b600083118015612a665750600081115b15612b07576000612a83612710610f9c868563ffffffff613f7f16565b90508015612b055760405161dead9082156108fc029083906000818181858888f19350505050158015612aba573d6000803e3d6000fd5b507f627059660ea01c4733a328effb2294d2f86905bf806da763a89cee254de8bee581604051612aea9190616ef0565b60405180910390a1612b02848263ffffffff613f3d16565b93505b505b8115612c05576000600180840381548110612b1e57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff1615612b8b57846001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b485604051612b7e9190616ef0565b60405180910390a2612bff565b600354612b9e908563ffffffff613fb916565b6003908155810154612bb6908563ffffffff613fb916565b60038201556040516001600160a01b038616907f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc05590612bf6908790616ef0565b60405180910390a25b50612c47565b836001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b484604051612c3e9190616ef0565b60405180910390a25b50505050565b600e5481565b61100081565b61dead81565b600b8181548110612c6c57fe5b6000918252602091829020601691909102018054600180830154600280850180546040805161010096831615969096026000190190911692909204601f810188900488028501880190925281845293965060ff90911694919291830182828015612d175780601f10612cec57610100808354040283529160200191612d17565b820191906000526020600020905b815481529060010190602001808311612cfa57829003601f168201915b5050505050905083565b61100481565b6000600a5460001480612d38575081155b80612d435750600954155b15612d5057506000610ea2565b60096000815460019003919050819055506000612d9b600a54610f9c85610f9c600b8981548110612d7d57fe5b6000918252602090912060169091020154439063ffffffff613f3d16565b90506000600b8581548110612dac57fe5b906000526020600020906016020160010160006101000a81548160ff0219169083151502179055506000806110016001600160a01b0316638256ace66040518163ffffffff1660e01b8152600401604080518083038186803b158015612e1157600080fd5b505afa158015612e25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e4991906161ba565b9150915060009350808310612ec357612e628787613fde565b506040516305bfb49960e41b815261100190635bfb499090612e88908a906004016162f7565b600060405180830381600087803b158015612ea257600080fd5b505af1158015612eb6573d6000803e3d6000fd5b5050505060019350612ed5565b818310612ed557612ed38761474c565b505b6040516001600160a01b038816907fb9d38178dc641ff1817967a63c9078cbcd955a9f1fcd75e0e3636de615d44d3b90600090a25050509392505050565b612f1b615e41565b6000612f25615e41565b612f2d615e65565b612f3e612f39866148ef565b614914565b90506000805b612f4d8361495e565b156130c15780612f7257612f68612f638461497f565b6149cd565b60ff1684526130b9565b80600114156130b4576060612f8e612f898561497f565b614a4d565b90508051604051908082528060200260200182016040528015612fcb57816020015b612fb8615e85565b815260200190600190039081612fb05790505b508560200181905250805160405190808252806020026020018201604052801561300957816020015b6060815260200190600190039081612ff45790505b50604086015260005b81518110156130a957613023615e85565b6060600061304385858151811061303657fe5b6020026020010151614b1e565b92509250925080613063578860009a509a505050505050505050506130ca565b828960200151858151811061307457fe5b6020026020010181905250818960400151858151811061309057fe5b6020026020010181905250505050806001019050613012565b5060019250506130b9565b6130c1565b600101612f44565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b60608152602001906001900390816130e957905050905061310f8363ffffffff16614c38565b8160008151811061311c57fe5b6020026020010181905250610ea281614c4b565b600060298351111561316757600080516020616f8383398151915260405161315790616740565b60405180910390a15060666113bb565b60005b83518110156132055760005b818110156131fc5784818151811061318a57fe5b6020026020010151600001516001600160a01b03168583815181106131ab57fe5b6020026020010151600001516001600160a01b031614156131f457600080516020616f838339815191526040516131e19061689b565b60405180910390a16066925050506113bb565b600101613176565b5060010161316a565b506060806132138585614cd5565b60015491935091506000908190815b818110156132985767016345785d8a00006001828154811061324057fe5b9060005260206000209060040201600301541061326257836001019350613290565b60006001828154811061327157fe5b9060005260206000209060040201600301541115613290578260010192505b600101613222565b506060836040519080825280602002602001820160405280156132c5578160200160208202803683370190505b5090506060846040519080825280602002602001820160405280156132f4578160200160208202803683370190505b509050606085604051908082528060200260200182016040528015613323578160200160208202803683370190505b509050606086604051908082528060200260200182016040528015613352578160200160208202803683370190505b5090506000606087604051908082528060200260200182016040528015613383578160200160208202803683370190505b5090506060886040519080825280602002602001820160405280156133b2578160200160208202803683370190505b509050600099506000985060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b1580156133fa57600080fd5b505afa15801561340e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061343291906161a2565b905067016345785d8a000081111561347d57600080516020616f8383398151915260405161345f90616bc5565b60405180910390a160689d50505050505050505050505050506113bb565b60005b898110156136ee5767016345785d8a00006001828154811061349e57fe5b9060005260206000209060040201600301541061362357600181815481106134c257fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316898d815181106134f357fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be4006001838154811061352857fe5b9060005260206000209060040201600301548161354157fe5b066001838154811061354f57fe5b9060005260206000209060040201600301540390506135778382613f3d90919063ffffffff16565b898e8151811061358357fe5b6020026020010181815250506001828154811061359c57fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316878e815181106135cd57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081888e815181106135fa57fe5b6020908102919091010152613615868263ffffffff613fb916565b95508c6001019c50506136e6565b60006001828154811061363257fe5b90600052602060002090600402016003015411156136e6576001818154811061365757fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316848c8151811061368857fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600181815481106136b557fe5b906000526020600020906004020160030154838c815181106136d357fe5b6020026020010181815250508a6001019a505b600101613480565b5060008415613964576002546040516303702b2960e51b815261100491636e056520918891613728918e918e918d914201906004016163e9565b6020604051808303818588803b15801561374157600080fd5b505af193505050508015613772575060408051601f3d908101601f1916820190925261376f9181019061610e565b60015b6138e9576040516000815260443d101561378e57506000613829565b60046000803e60005160e01c6308c379a081146137af576000915050613829565b60043d036004833e81513d60248201116001600160401b03821117156137da57600092505050613829565b80830180516001600160401b038111156137fb576000945050505050613829565b8060208301013d860181111561381957600095505050505050613829565b601f01601f191660405250925050505b806138345750613876565b60019150857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf28082604051613868919061646e565b60405180910390a2506138e4565b3d8080156138a0576040519150601f19603f3d011682016040523d82523d6000602084013e6138a5565b606091505b5060019150857fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a45826040516138da919061646e565b60405180910390a2505b613964565b801561392b577fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b708660405161391e9190616ef0565b60405180910390a1613962565b857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf28060405161395990616530565b60405180910390a25b505b8015613b1a5760005b8751811015613b1857600088828151811061398457fe5b6020026020010151905060006001828154811061399d57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc91859081106139ce57fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f1935050505090508015613a8a5760018281548110613a0f57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d9185908110613a5e57fe5b906000526020600020906004020160030154604051613a7d9190616ef0565b60405180910390a2613b0e565b60018281548110613a9757fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d9185908110613ae657fe5b906000526020600020906004020160030154604051613b059190616ef0565b60405180910390a25b505060010161396d565b505b835115613c645760005b8451811015613c62576000858281518110613b3b57fe5b60200260200101516001600160a01b03166108fc868481518110613b5b57fe5b60200260200101519081150290604051600060405180830381858888f1935050505090508015613bf157858281518110613b9157fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d868481518110613bcf57fe5b6020026020010151604051613be49190616ef0565b60405180910390a2613c59565b858281518110613bfd57fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d868481518110613c3b57fe5b6020026020010151604051613c509190616ef0565b60405180910390a25b50600101613b24565b505b5050505050505050505050506000471115613ce0577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d47604051613ca89190616ef0565b60405180910390a1604051611002904780156108fc02916000818181858888f19350505050158015613cde573d6000803e3d6000fd5b505b60006003819055600555815115613cfb57613cfb8282614f0e565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015613d3857600080fd5b505af1158015613d4c573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a1506000949350505050565b80516001600160a01b0316600090815260046020526040812054801580613dd55750600180820381548110613db557fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b15613e1b5782516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a2600091505061130b565b600154600554600019820111801590613e715784516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a26000935050505061130b565b600580546001908101909155805481906000198601908110613e8f57fe5b6000918252602082206002600490920201018054921515600160e01b0260ff60e01b199093169290921790915585516040516001600160a01b03909116917ff226e7d8f547ff903d9d419cf5f54e0d7d07efa9584135a53a057c5f1f27f49a91a2506000949350505050565b6000610ea283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506156ed565b6000610ea283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250615724565b600082613f8e575060006113bb565b82820282848281613f9b57fe5b0414610ea25760405162461bcd60e51b8152600401610c3b90616ac5565b600082820183811015610ea25760405162461bcd60e51b8152600401610c3b90616664565b60008060018381548110613fee57fe5b906000526020600020906004020160030154905060006001808054905003905060016140186125ab565b511161404d5760006001858154811061402d57fe5b9060005260206000209060040201600301819055506000925050506113bb565b846001600160a01b03167f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a70836040516140869190616ef0565b60405180910390a26001600160a01b038516600090815260046020526040812055835b6001546000190181101561427357600181600101815481106140c757fe5b9060005260206000209060040201600182815481106140e257fe5b60009182526020909120825460049092020180546001600160a01b03199081166001600160a01b0393841617825560018085015481840180548416918616919091179055600280860180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b19909416939093179055600392830154920191909155600b8054909183019081106141a357fe5b9060005260206000209060160201600b82815481106141be57fe5b600091825260209091208254601690920201908155600180830154818301805460ff909216151560ff1990921691909117905560028084018054614215938386019390821615610100026000190190911604615eba565b5061422860038281019084016013615f2f565b5090505080600101600460006001848154811061424157fe5b600091825260208083206004909202909101546001600160a01b031683528201929092526040019020556001016140a9565b50600180548061427f57fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b8054806142d257fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906143046002830182615f59565b614312600383016000615f9d565b50509055600081838161432157fe5b04905080156143855760015460005b8181101561438257826001828154811061434657fe5b906000526020600020906004020160030154016001828154811061436657fe5b6000918252602090912060036004909202010155600101614330565b50505b50600195945050505050565b6001548151604080518281526020808402820101909152606092919083908280156143d057816020015b60608152602001906001900390816143bb5790505b50600b5490915083146143e757925061130b915050565b60005b828110156144f657600b60016004600089858151811061440657fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054038154811061443a57fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156144d25780601f106144a7576101008083540402835291602001916144d2565b820191906000526020600020905b8154815290600101906020018083116144b557829003601f168201915b50505050508282815181106144e357fe5b60209081029190910101526001016143ea565b50949350505050565b60005b8281101561464c57600082878388016040516020016145229291906162e9565b6040516020818303038152906040528051906020012060001c8161454257fe5b06905080850182870114614643576000898388018151811061456057fe5b602002602001015190506060898489018151811061457a57fe5b602002602001015190508a8388018151811061459257fe5b60200260200101518b858a01815181106145a857fe5b60200260200101906001600160a01b031690816001600160a01b031681525050818b848901815181106145d757fe5b60200260200101906001600160a01b031690816001600160a01b031681525050898388018151811061460557fe5b60200260200101518a858a018151811061461b57fe5b6020026020010181905250808a8489018151811061463557fe5b602002602001018190525050505b50600101614502565b5050505050505050565b600980546001908101909155600b80548390811061467057fe5b906000526020600020906016020160010160006101000a81548160ff02191690831515021790555043600b82815481106146a657fe5b600091825260208220601690910201919091556040516001600160a01b038416917ff62981a567ec3cec866c6fa93c55bcdf841d6292d18b8d522ececa769375d82d91a25050565b60008160405160200161470191906162cd565b604051602081830303815290604052805190602001208360405160200161472891906162cd565b6040516020818303038152906040528051906020012014905092915050565b015190565b6001600160a01b038116600090815260046020526040812054806147755750600019905061130b565b60018103905060006001828154811061478a57fe5b90600052602060002090600402016003015490506000600183815481106147ad57fe5b6000918252602090912060036004909202010155600154604051600019909101906001600160a01b038616907f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d90614806908590616ef0565b60405180910390a28061481e5782935050505061130b565b600081838161482957fe5b04905080156148e55760005b8481101561488757816001828154811061484b57fe5b906000526020600020906004020160030154016001828154811061486b57fe5b6000918252602090912060036004909202010155600101614835565b50600180549085015b818110156148e25782600182815481106148a657fe5b90600052602060002090600402016003015401600182815481106148c657fe5b6000918252602090912060036004909202010155600101614890565b50505b5091949350505050565b6148f7615fac565b506040805180820190915281518152602082810190820152919050565b61491c615e65565b61492582615750565b61492e57600080fd5b600061493d836020015161578a565b60208085015160408051808201909152868152920190820152915050919050565b6000614968615fac565b505080518051602091820151919092015191011190565b614987615fac565b6149908261495e565b61499957600080fd5b602082015160006149a9826157ed565b80830160209586015260408051808201909152908152938401919091525090919050565b8051600090158015906149e257508151602110155b6149eb57600080fd5b60006149fa836020015161578a565b90508083600001511015614a205760405162461bcd60e51b8152600401610c3b90616c83565b8251602080850151830180519284900392918310156144f657506020919091036101000a90049392505050565b6060614a5882615750565b614a6157600080fd5b6000614a6c836158ce565b9050606081604051908082528060200260200182016040528015614aaa57816020015b614a97615fac565b815260200190600190039081614a8f5790505b5090506000614abc856020015161578a565b60208601510190506000805b84811015614b1357614ad9836157ed565b9150604051806040016040528083815260200184815250848281518110614afc57fe5b602090810291909101015291810191600101614ac8565b509195945050505050565b614b26615e85565b60606000614b32615e85565b6060614b3c615e65565b614b4587614914565b90506000805b614b548361495e565b15614c295780614b7f57614b6f614b6a8461497f565b61592a565b6001600160a01b03168552614c21565b8060011415614ba757614b94614b6a8461497f565b6001600160a01b03166020860152614c21565b8060021415614bcf57614bbc614b6a8461497f565b6001600160a01b03166040860152614c21565b8060031415614bfb57614be4612f638461497f565b6001600160401b0316606086015260019150614c21565b8060041415614c1c57614c15614c108461497f565b615944565b9350614c21565b614c29565b600101614b4b565b50929791965091945092505050565b60606113bb614c46836159b4565b615a9a565b6060815160001415614c6c575060408051600081526020810190915261130b565b606082600081518110614c7b57fe5b602002602001015190506000600190505b8351811015614cbc57614cb282858381518110614ca557fe5b6020026020010151615aec565b9150600101614c8c565b50610ea2614ccf825160c060ff16615b69565b82615aec565b606080600080808080614ce66126a7565b6001549091505b8015614df457600181039250600b8381548110614d0657fe5b600091825260209091206001601690920201015460ff16614d2657614deb565b60018381548110614d3357fe5b60009182526020909120600490910201546001600160a01b03169450614d5a858484612d27565b9350831580614d6d575060018a51038610155b15614d7757614deb565b60005b8a51811015614de957856001600160a01b03168b8281518110614d9957fe5b6020026020010151600001516001600160a01b03161415614de15760018b8281518110614dc257fe5b6020908102919091010151901515608090910152600190960195614de9565b600101614d7a565b505b60001901614ced565b5084895103604051908082528060200260200182016040528015614e3257816020015b614e1f615e85565b815260200190600190039081614e175790505b50965084895103604051908082528060200260200182016040528015614e6c57816020015b6060815260200190600190039081614e575790505b5095506000915060005b8951811015614f0057898181518110614e8b57fe5b602002602001015160800151614ef857898181518110614ea757fe5b6020026020010151888481518110614ebb57fe5b6020026020010181905250888181518110614ed257fe5b6020026020010151878481518110614ee657fe5b60200260200101819052508260010192505b600101614e76565b5050505050505b9250929050565b600154825160005b8281101561502b576001614f28615e85565b60018381548110614f3557fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b84811015614fff57878181518110614fc557fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b03161415614ff75760009250614fff565b600101614fb1565b5081156150215780516001600160a01b03166000908152600460205260408120555b5050600101614f16565b50808211156150ea57805b828110156150e857600180548061504957fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b80548061509c57fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906150ce6002830182615f59565b6150dc600383016000615f9d565b50509055600101615036565b505b60008183106150f957816150fb565b825b905060005b8181101561549f576151ad86828151811061511757fe5b60200260200101516001838154811061512c57fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a0820152615c3b565b6153615780600101600460008884815181106151c557fe5b6020026020010151600001516001600160a01b03166001600160a01b031681526020019081526020016000208190555085818151811061520157fe5b60200260200101516001828154811061521657fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a09091015160039091015584518590829081106152d157fe5b6020026020010151600b82815481106152e657fe5b9060005260206000209060160201600201908051906020019061530a929190615d9a565b506000600b828154811061531a57fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b80548390811061534b57fe5b6000918252602090912060169091020155615497565b61542785828151811061537057fe5b6020026020010151600b838154811061538557fe5b600091825260209182902060026016909202018101805460408051601f60001961010060018616150201909316949094049182018590048502840185019052808352919290919083018282801561541d5780601f106153f25761010080835404028352916020019161541d565b820191906000526020600020905b81548152906001019060200180831161540057829003601f168201915b5050505050615cbc565b6154725784818151811061543757fe5b6020026020010151600b828154811061544c57fe5b90600052602060002090601602016002019080519060200190615470929190615d9a565b505b60006001828154811061548157fe5b9060005260206000209060040201600301819055505b600101615100565b5082821115615677576154b0615d6b565b835b83811015615674578581815181106154c657fe5b6020026020010151826040018190525060018782815181106154e457fe5b6020908102919091018101518254600181810185556000948552838520835160049093020180546001600160a01b039384166001600160a01b0319918216178255848601518284018054918616918316919091179055604080860151600284018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909a1692909616919091179290921696909617169190911790935560a090930151600390930192909255600b8054928301815590935284516016909102600080516020616fa38339815191528101918255858301516000805160206175d28339815191528201805491151560ff199092169190911790559285015180518694929361561a93600080516020616fc383398151915201920190615d9a565b5060608201516156309060038301906013615e14565b505050806001016004600089848151811061564757fe5b602090810291909101810151516001600160a01b03168252810191909152604001600020556001016154b2565b50505b6000600981905560015493505b838110156156e5576000600b828154811061569b57fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b8054839081106156cc57fe5b6000918252602090912060169091020155600101615684565b505050505050565b6000818361570e5760405162461bcd60e51b8152600401610c3b919061646e565b50600083858161571a57fe5b0495945050505050565b600081848411156157485760405162461bcd60e51b8152600401610c3b919061646e565b505050900390565b80516000906157615750600061130b565b6020820151805160001a9060c08210156157805760009250505061130b565b5060019392505050565b8051600090811a60808110156157a457600091505061130b565b60b88110806157bf575060c081108015906157bf575060f881105b156157ce57600191505061130b565b60c08110156157e25760b51901905061130b565b60f51901905061130b565b80516000908190811a608081101561580857600191506158c7565b60b881101561581d57607e19810191506158c7565b60c081101561586e57600060b78203600186019550806020036101000a8651049150600181018201935050808310156158685760405162461bcd60e51b8152600401610c3b90616a12565b506158c7565b60f88110156158835760be19810191506158c7565b600060f78203600186019550806020036101000a8651049150600181018201935050808310156158c55760405162461bcd60e51b8152600401610c3b90616a12565b505b5092915050565b80516000906158df5750600061130b565b600080905060006158f3846020015161578a565b602085015185519181019250015b8082101561592157615912826157ed565b82019150826001019250615901565b50909392505050565b805160009060151461593b57600080fd5b6113bb826149cd565b805160609061595257600080fd5b6000615961836020015161578a565b83516040805191839003808352601f19601f8201168301602001909152919250606090828015615998576020820181803683370190505b50905060008160200190506144f6848760200151018285615d20565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166159f857506018615a1c565b6fffffffffffffffffffffffffffffffff198416615a1857506010615a1c565b5060005b6020811015615a5257818181518110615a3157fe5b01602001516001600160f81b03191615615a4a57615a52565b600101615a1c565b60008160200390506060816040519080825280601f01601f191660200182016040528015615a87576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015615acc5750607f60f81b82600081518110615aba57fe5b01602001516001600160f81b03191611155b15615ad857508061130b565b6113bb615aea8351608060ff16615b69565b835b6060806040519050835180825260208201818101602087015b81831015615b1d578051835260209283019201615b05565b50855184518101855292509050808201602086015b81831015615b4a578051835260209283019201615b32565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310615b935760405162461bcd60e51b8152600401610c3b90616816565b60408051600180825281830190925260609160208201818036833701905050905060378411615bed5782840160f81b81600081518110615bcf57fe5b60200101906001600160f81b031916908160001a90535090506113bb565b6060615bf8856159b4565b90508381510160370160f81b82600081518110615c1157fe5b60200101906001600160f81b031916908160001a905350615c328282615aec565b95945050505050565b805182516000916001600160a01b039182169116148015615c75575081602001516001600160a01b031683602001516001600160a01b0316145b8015615c9a575081604001516001600160a01b031683604001516001600160a01b0316145b8015610ea25750506060908101519101516001600160401b0390811691161490565b815181516000916001918114808314615cd85760009250615d16565b600160208701838101602088015b600284838510011415615d11578051835114615d055760009650600093505b60209283019201615ce6565b505050505b5090949350505050565b80615d2a57610c5b565b5b60208110615d4a578251825260209283019290910190601f1901615d2b565b915181516020939093036101000a6000190180199091169216919091179052565b60405180608001604052806000815260200160001515815260200160608152602001615d95615fc6565b905290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10615ddb57805160ff1916838001178555615e08565b82800160010185558215615e08579182015b82811115615e08578251825591602001919060010190615ded565b506126e2929150615fe5565b8260138101928215615e085791602002820182811115615e08578251825591602001919060010190615ded565b6040518060600160405280600060ff16815260200160608152602001606081525090565b6040518060400160405280615e78615fac565b8152602001600081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10615ef35780548555615e08565b82800160010185558215615e0857600052602060002091601f016020900482015b82811115615e08578254825591600101919060010190615f14565b8260138101928215615e085791820182811115615e08578254825591600101919060010190615f14565b50805460018160011615610100020316600290046000825580601f10615f7f5750611517565b601f0160209004906000526020600020908101906115179190615fe5565b50611517906013810190615fe5565b604051806040016040528060008152602001600081525090565b6040518061026001604052806013906020820280368337509192915050565b61269491905b808211156126e25760008155600101615feb565b60008083601f840112616010578182fd5b5081356001600160401b03811115616026578182fd5b6020830191508360208083028501011115614f0757600080fd5b60008083601f840112616051578182fd5b5081356001600160401b03811115616067578182fd5b602083019150836020828501011115614f0757600080fd5b600060208284031215616090578081fd5b81356001600160a01b0381168114610ea2578182fd5b600080600080604085870312156160bb578283fd5b84356001600160401b03808211156160d1578485fd5b6160dd88838901615fff565b909650945060208701359150808211156160f5578384fd5b5061610287828801615fff565b95989497509550505050565b60006020828403121561611f578081fd5b81518015158114610ea2578182fd5b60008060008060408587031215616143578384fd5b84356001600160401b0380821115616159578586fd5b61616588838901616040565b9096509450602087013591508082111561617d578384fd5b5061610287828801616040565b60006020828403121561619b578081fd5b5035919050565b6000602082840312156161b3578081fd5b5051919050565b600080604083850312156161cc578182fd5b505080516020909101519092909150565b6000806000604084860312156161f1578283fd5b833560ff81168114616201578384fd5b925060208401356001600160401b0381111561621b578283fd5b61622786828701616040565b9497909650939450505050565b6000815180845260208085019450808401835b8381101561626c5781516001600160a01b031687529582019590820190600101616247565b509495945050505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b600081518084526162b9816020860160208601616f56565b601f01601f19169290920160200192915050565b600082516162df818460208701616f56565b9190910192915050565b918252602082015260400190565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b03968716815294861660208601529290941660408401526001600160401b03166060830152911515608082015260a081019190915260c00190565b600060208252610ea26020830184616234565b60006040825261638c6040830185616234565b602083820381850152818551808452828401915082838202850101838801865b838110156163da57601f198784030185526163c88383516162a1565b948601949250908501906001016163ac565b50909998505050505050505050565b6000608082526163fc6080830187616234565b828103602084810191909152865180835287820192820190845b8181101561643257845183529383019391830191600101616416565b505084810360408601526164468188616234565b93505050506001600160401b038316606083015295945050505050565b901515815260200190565b600060208252610ea260208301846162a1565b600060408252616495604083018688616277565b82810360208401526164a8818587616277565b979650505050505050565b6020808252601c908201527f6c656e677468206f66206275726e526174696f206d69736d6174636800000000604082015260600190565b60208082526026908201527f6c656e677468206f66206d61784e756d4f664d61696e7461696e696e67206d696040820152650e6dac2e8c6d60d31b606082015260800190565b6020808252601b908201527f6261746368207472616e736665722072657475726e2066616c73650000000000604082015260600190565b6020808252602c908201527f6c656e677468206f66206d61784e756d4f66576f726b696e6743616e6469646160408201526b0e8cae640dad2e6dac2e8c6d60a31b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61696e7461696e536c6173685363616c65206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252818101527f6c656e677468206f66206e756d4f66436162696e657473206d69736d61746368604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526028908201527f746865206e756d4f66436162696e657473206d75737420626520677265617465604082015267072207468616e20360c41b606082015260800190565b60208082526039908201527f746865206e756d4f66436162696e657473206d757374206265206c657373207460408201527f68616e204d41585f4e554d5f4f465f56414c494441544f525300000000000000606082015260800190565b60208082526029908201527f746865206e756d626572206f662076616c696461746f727320657863656564206040820152681d1a19481b1a5b5a5d60ba1b606082015260800190565b60208082526022908201527f63616e206e6f7420646f207468697320747769636520696e206f6e6520626c6f604082015261636b60f01b606082015260800190565b6020808252602b908201527f746865206275726e526174696f206d757374206265206e6f206772656174657260408201526a0207468616e2031303030360ac1b606082015260800190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526037908201527f746865206d61784e756d4f664d61696e7461696e696e67206d7573742062652060408201527f6c657373207468616e206e756d4f66436162696e657473000000000000000000606082015260800190565b6020808252602b908201527f6475706c696361746520636f6e73656e7375732061646472657373206f66207660408201526a185b1a59185d1bdc94d95d60aa1b606082015260800190565b60208082526027908201527f7468652065787069726554696d655365636f6e64476170206973206f7574206f604082015266662072616e676560c81b606082015260800190565b6020808252601590820152746465706f7369742076616c7565206973207a65726f60581b604082015260600190565b60208082526049908201527f746865206d61784e756d4f66576f726b696e6743616e64696461746573206d7560408201527f7374206265206e6f742067726561746572207468616e206d61784e756d4f6643606082015268616e6469646174657360b81b608082015260a00190565b60208082526027908201527f7468652066696e616c697479526577617264526174696f206973206f7574206f604082015266662072616e676560c81b606082015260800190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b60208082526023908201527f63616e206e6f7420656e7465722054656d706f72617279204d61696e74656e616040820152626e636560e81b606082015260800190565b60208082526025908201527f6c656e677468206f66206a61696c2076616c696461746f7273206d757374206260408201526465206f6e6560d81b606082015260800190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61784e756d4f6643616e64696461746573206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252601290820152716e6f7420696e206d61696e74656e616e636560701b604082015260600190565b60208082526021908201527f666565206973206c6172676572207468616e2044555354595f494e434f4d494e6040820152604760f81b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b60208082526026908201527f6c656e677468206f662066696e616c697479526577617264526174696f206d696040820152650e6dac2e8c6d60d31b606082015260800190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526026908201527f6c656e677468206f662065787069726554696d655365636f6e64476170206d696040820152650e6dac2e8c6d60d31b606082015260800190565b60208082526017908201527f6f6e6c792063757272656e742076616c696461746f7273000000000000000000604082015260600190565b60208082526021908201527f6661696c656420746f20706172736520696e69742076616c696461746f7253656040820152601d60fa1b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b6020808252603e908201527f746865206d61696e7461696e536c6173685363616c65206d757374206265206760408201527f726561746572207468616e203020616e64206c657373207468616e2031300000606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b60208082526029908201527f746865206d6573736167652073656e646572206d75737420626520736c6173686040820152680818dbdb9d1c9858dd60ba1b606082015260800190565b61ffff91909116815260200190565b90815260200190565b6000848252831515602083015260606040830152615c3260608301846162a1565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff8516825260406020830152615c32604083018486616277565b60005b83811015616f71578181015183820152602001616f59565b83811115612c47575050600091015256fe70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb20175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbbf905ec80f905e8f846942a7cdd959bfe8d9487b2a43b33565295a698f7e294b6a7edd747c0554875d3fc531d19ba1497992c5e941ff80f3f7f110ffd8920a3ac38fdef318fe94a3f86048c27395000f846946488aa4d1955ee33403f8ccb1d4de5fb97c7ade294220f003d8bdfaadf52aa1e55ae4cc485e6794875941a87e90e440a39c99aa9cb5cea0ad6a3f0b2407b86048c27395000f846949ef9f4360c606c7ab4db26b016007d3ad0ab86a0946103af86a874b705854033438383c82575f25bc29418e2db06cbff3e3c5f856410a1838649e760175786048c27395000f84694ee01c3b1283aa067c58eab4709f85e99d46de5fe94ee4b9bfb1871c64e2bcabb1dc382dc8b7c4218a29415904ab26ab0e99d70b51c220ccdcccabee6e29786048c27395000f84694685b1ded8013785d6623cc18d214320b6bb6475994a20ef4e5e4e7e36258dbf51f4d905114cb1b34bc9413e39085dc88704f4394d35209a02b1a9520320c86048c27395000f8469478f3adfc719c99674c072166708589033e2d9afe9448a30d5eaa7b64492a160f139e2da2800ec3834e94055838358c29edf4dcc1ba1985ad58aedbb6be2b86048c27395000f84694c2be4ec20253b8642161bc3f444f53679c1f3d479466f50c616d737e60d7ca6311ff0d9c434197898a94d1d678a2506eeaa365056fe565df8bc8659f28b086048c27395000f846942f7be8361c80a4c1e7e9aaf001d0877f1cfde218945f93992ac37f3e61db2ef8a587a436a161fd210b94ecbc4fb1a97861344dad0867ca3cba2b860411f086048c27395000f84694ce2fd7544e0b2cc94692d4a704debef7bcb613289444abc67b4b2fba283c582387f54c9cba7c34bafa948acc2ab395ded08bb75ce85bf0f95ad2abc51ad586048c27395000f84694b8f7166496996a7da21cf1f1b04d9b3e26a3d077946770572763289aac606e4f327c2f6cc1aa3b3e3b94882d745ed97d4422ca8da1c22ec49d880c4c097286048c27395000f846942d4c407bbe49438ed859fe965b140dcf1aab71a9943ad0939e120f33518fbba04631afe7a3ed6327b194b2bbb170ca4e499a2b0f3cc85ebfa6e8c4dfcbea86048c27395000f846946bbad7cf34b5fa511d8e963dbba288b1960e75d694853b0f6c324d1f4e76c8266942337ac1b0af1a229442498946a51ca5924552ead6fc2af08b94fcba648601d1a94a2000f846944430b3230294d12c6ab2aac5c2cd68e80b16b581947b107f4976a252a6939b771202c28e64e03f52d694795811a7f214084116949fc4f53cedbf189eeab28601d1a94a2000f84694ea0a6e3c511bbd10f4519ece37dc24887e11b55d946811ca77acfb221a49393c193f3a22db829fcc8e9464feb7c04830dd9ace164fc5c52b3f5a29e5018a8601d1a94a2000f846947ae2f5b9e386cd1b50a4550696d957cb4900f03a94e83bcc5077e6b873995c24bac871b5ad856047e19464e48d4057a90b233e026c1041e6012ada897fe88601d1a94a2000f8469482012708dafc9e1b880fd083b32182b869be8e09948e5adc73a2d233a1b496ed3115464dd6c7b887509428b383d324bc9a37f4e276190796ba5a8947f5ed8601d1a94a2000f8469422b81f8e175ffde54d797fe11eb03f9e3bf75f1d94a1c3ef7ca38d8ba80cce3bfc53ebd2903ed21658942767f7447f7b9b70313d4147b795414aecea54718601d1a94a2000f8469468bf0b8b6fb4e317a0f9d6f03eaf8ce6675bc60d94675cfe570b7902623f47e7f59c9664b5f5065dcf94d84f0d2e50bcf00f2fc476e1c57f5ca2d57f625b8601d1a94a2000f846948c4d90829ce8f72d0163c1d5cf348a862d5506309485c42a7b34309bee2ed6a235f86d16f059deec5894cc2cedc53f0fa6d376336efb67e43d167169f3b78601d1a94a2000f8469435e7a025f4da968de7e4d7e4004197917f4070f194b1182abaeeb3b4d8eba7e6a4162eac7ace23d57394c4fd0d870da52e73de2dd8ded19fe3d26f43a1138601d1a94a2000f84694d6caa02bbebaebb5d7e581e4b66559e635f805ff94c07335cf083c1c46a487f0325769d88e163b653694efaff03b42e41f953a925fc43720e45fb61a19938601d1a94a20000175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbaa26469706673582212206cf6e773ca0b0d999abe4e586cd00abd836c1f2e74f76626269d55c8fc09634364736f6c63430006040033", - }, - { - ContractAddr: SlashContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/b144718e94d7a1ebb24a7103202300f08826f369", - Code: "608060405234801561001057600080fd5b506004361061027f5760003560e01c80637942fd051161015c578063c80d4b8f116100ce578063dc927faf11610087578063dc927faf146104ad578063e1c7392a146104b5578063f9a2bbc7146104bd578063fc3e5908146104c5578063fc4333cd146104cd578063fd6a6879146104d55761027f565b8063c80d4b8f1461045c578063c81b166214610464578063c8509d811461046c578063c96be4cb1461047f578063cc844b7314610492578063d2a42e4b146104a55761027f565b80639dc09262116101205780639dc0926214610421578063a1a11bf514610429578063a78abc1614610431578063ab51bb9614610439578063ac0af62914610441578063ac431751146104495761027f565b80637942fd05146103ee5780638256ace6146103f6578063831d65d1146103fe57806396713da9146104115780639bc8e4f2146104195761027f565b8063493279b1116101f557806362b72cf5116101b957806362b72cf5146103be5780636e47b482146103c657806370fd5bad146103ce578063718a8aa8146103d657806375d47a0a146103de5780637912a65d146103e65761027f565b8063493279b11461037c5780634bf6c8821461039157806351e8067214610399578063567a372d146103a15780635bfb4990146103a95761027f565b806335aa2e441161024757806335aa2e441461030e57806337c8dab914610321578063389f4f71146103425780633a63f4b1146103575780633dffc3871461035f57806343756e5c146103745761027f565b80630bee7a67146102845780630e2374a5146102a25780631182b875146102b757806322d1e80b146102d757806323bac5a2146102ec575b600080fd5b61028c6104dd565b60405161029991906132a4565b60405180910390f35b6102aa6104e2565b6040516102999190612b82565b6102ca6102c5366004612ab8565b6104e8565b6040516102999190612bba565b6102df61054e565b6040516102999190612baf565b6102ff6102fa366004612866565b610557565b6040516102999392919061328c565b6102aa61031c366004612a88565b61057a565b61033461032f366004612866565b6105a1565b60405161029992919061327e565b61034a6105f8565b6040516102999190613254565b61034a6105fe565b610367610604565b60405161029991906132b5565b6102aa610609565b61038461060f565b6040516102999190613245565b610367610614565b6102aa610619565b61034a61061f565b6103bc6103b7366004612866565b610625565b005b61034a6106d0565b6102aa6106d6565b6103676106dc565b6103676106e1565b6102aa6106e6565b61034a6106ec565b6103676106f1565b6103346106f6565b6103bc61040c366004612ab8565b610700565b610367610812565b61034a610817565b6102aa610822565b6102aa610828565b6102df61082e565b61028c610837565b61034a61083c565b6103bc61045736600461296c565b610841565b61034a610ce0565b6102aa610ce5565b6103bc61047a366004612ab8565b610ceb565b6103bc61048d366004612866565b610d5c565b6103bc6104a03660046129d5565b61114d565b61034a61169a565b6102aa61169f565b6103bc6116a5565b6102aa6116e1565b6103676116e7565b6103bc6116ec565b6102aa611b35565b606481565b61200181565b606033612000146105145760405162461bcd60e51b815260040161050b906130cb565b60405180910390fd5b60005460ff166105365760405162461bcd60e51b815260040161050b90612c9b565b60405162461bcd60e51b815260040161050b9061318e565b60075460ff1681565b600260208190526000918252604090912080546001820154919092015460ff1683565b6001818154811061058757fe5b6000918252602090912001546001600160a01b0316905081565b6000806105ac61264d565b5050506001600160a01b0316600090815260026020818152604092839020835160608101855281548082526001830154938201849052919093015460ff16151592909301919091529091565b60055481565b60065481565b600181565b61100181565b603881565b600881565b61200081565b60045481565b33611000146106465760405162461bcd60e51b815260040161050b90612edf565b60005460ff166106685760405162461bcd60e51b815260040161050b90612c9b565b61200063f7a251d7600b61067b84611b3b565b60006040518463ffffffff1660e01b815260040161069b939291906132c3565b600060405180830381600087803b1580156106b557600080fd5b505af11580156106c9573d6000803e3d6000fd5b5050505050565b60035481565b61100581565b600281565b601081565b61100881565b603281565b600b81565b6004546005549091565b33612000146107215760405162461bcd60e51b815260040161050b906130cb565b60005460ff166107435760405162461bcd60e51b815260040161050b90612c9b565b61074b612670565b600061078c84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611c0d92505050565b9150915080156107d35781516040517f7f0956d47419b9525356e7111652b653b530ec6f5096dccc04589bc38e629967916107c6916132a4565b60405180910390a16106c9565b81516040517f7d45f62d17443dd4547bca8a8112c60e2385669318dc300ec61a5d2492f262e791610803916132a4565b60405180910390a15050505050565b600981565b662386f26fc1000081565b61100781565b61100681565b60005460ff1681565b600081565b600481565b60005460ff166108635760405162461bcd60e51b815260040161050b90612c9b565b33611007146108845760405162461bcd60e51b815260040161050b90612f88565b6108ef84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260148152731b5a5cd9195b59585b9bdc951a1c995cda1bdb1960621b60208201529150611c8d9050565b1561098a57602081146109145760405162461bcd60e51b815260040161050b90612e6b565b604080516020601f840181900481028201810190925282815260009161095291858580838501838280828437600092019190915250611ce792505050565b905060018110158015610966575060055481105b6109825760405162461bcd60e51b815260040161050b90613086565b600455610c9d565b6109f084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e19995b1bdb9e551a1c995cda1bdb19608a1b60208201529150611c8d9050565b15610a8c5760208114610a155760405162461bcd60e51b815260040161050b90612fd6565b604080516020601f8401819004810282018101909252828152600091610a5391858580838501838280828437600092019190915250611ce792505050565b90506103e88111158015610a68575060045481115b610a845760405162461bcd60e51b815260040161050b90612d09565b600555610c9d565b610b0084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f66696e616c697479536c617368526577617264526174696f000000000000000060208201529150611c8d9050565b15610b9a5760208114610b255760405162461bcd60e51b815260040161050b906131c5565b604080516020601f8401819004810282018101909252828152600091610b6391858580838501838280828437600092019190915250611ce792505050565b9050600a8110158015610b765750606481105b610b925760405162461bcd60e51b815260040161050b90612e1f565b600655610c9d565b610c0e84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f656e61626c654d616c6963696f7573566f7465536c617368000000000000000060208201529150611c8d9050565b15610c855760208114610c335760405162461bcd60e51b815260040161050b90612d3e565b604080516020601f8401819004810282018101909252828152610c6f9190848480838501838280828437600092019190915250611cec92505050565b6007805460ff1916911515919091179055610c9d565b60405162461bcd60e51b815260040161050b90613167565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a84848484604051610cd29493929190612bcd565b60405180910390a150505050565b609681565b61100281565b3361200014610d0c5760405162461bcd60e51b815260040161050b906130cb565b60005460ff16610d2e5760405162461bcd60e51b815260040161050b90612c9b565b6040517f07db600eebe2ac176be8dcebad61858c245a4961bb32ca2aa3d159b09aa0810e90600090a1505050565b334114610d7b5760405162461bcd60e51b815260040161050b9061311a565b60005460ff16610d9d5760405162461bcd60e51b815260040161050b90612c9b565b6003544311610dbe5760405162461bcd60e51b815260040161050b90613210565b3a15610ddc5760405162461bcd60e51b815260040161050b90612f5a565b60405163155853f360e21b8152611000906355614fcc90610e01908490600401612b82565b60206040518083038186803b158015610e1957600080fd5b505afa158015610e2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e51919061294c565b610e5a57611146565b610e6261264d565b506001600160a01b0381166000908152600260208181526040928390208351606081018552815481526001820154928101929092529091015460ff161580159282019290925290610ebd576020810180516001019052610f16565b60016040820181905260208201819052805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0384161790555b438152600554602082015181610f2857fe5b0661107457600060208201526040516335409f7f60e01b8152611000906335409f7f90610f59908590600401612b82565b600060405180830381600087803b158015610f7357600080fd5b505af1158015610f87573d6000803e3d6000fd5b505050506120006001600160a01b031663f7a251d7600b610fa785611b3b565b60006040518463ffffffff1660e01b8152600401610fc7939291906132c3565b600060405180830381600087803b158015610fe157600080fd5b505af1925050508015610ff2575060015b61106f573d808015611020576040519150601f19603f3d011682016040523d82523d6000602084013e611025565b606091505b50826001600160a01b03167fd7bc86ff5d08c8ab043edec743302aba2520e6635172a428bc956721db9e2d1c83602001518360405161106592919061325d565b60405180910390a2505b6110e0565b60045481602001518161108357fe5b066110e0576040516375abf10160e11b81526110009063eb57e202906110ad908590600401612b82565b600060405180830381600087803b1580156110c757600080fd5b505af11580156110db573d6000803e3d6000fd5b505050505b6001600160a01b0382166000818152600260208181526040808420865181559186015160018301558581015191909201805460ff1916911515919091179055517fddb6012116e51abf5436d956a4f0ebd927e92c576ff96d7918290c8782291e3e9190a2505b5043600355565b60005460ff1661116f5760405162461bcd60e51b815260040161050b90612c9b565b604051630a83aaa960e31b81526110069063541d554890611194903390600401612b82565b60206040518083038186803b1580156111ac57600080fd5b505afa1580156111c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111e4919061294c565b6112005760405162461bcd60e51b815260040161050b90612bff565b60075460ff166112225760405162461bcd60e51b815260040161050b90612c66565b60065461122f5760146006555b8051514361010090910111801561125157504381602001516000015161010001115b61126d5760405162461bcd60e51b815260040161050b90612c36565b80602001516020015181600001516020015114801561129b5750806020015160600151816000015160600151145b156112b85760405162461bcd60e51b815260040161050b90612eb2565b8051604081015190511080156112d75750602081015160408101519051105b6112f35760405162461bcd60e51b815260040161050b90612de8565b6020810151518151511080156113185750806000015160400151816020015160400151105b8061134357508051516020820151511080156113435750806020015160400151816000015160400151105b8061135d5750806020015160400151816000015160400151145b6113795760405162461bcd60e51b815260040161050b90612cd2565b61138b81600001518260400151611d14565b80156113a457506113a481602001518260400151611d14565b6113c05760405162461bcd60e51b815260040161050b90612d89565b6060806110006001600160a01b0316633b071dcc6040518163ffffffff1660e01b815260040160006040518083038186803b1580156113fe57600080fd5b505afa158015611412573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261143a9190810190612889565b9150915060005b81518110156115775761146b82828151811061145957fe5b60200260200101518560400151611eec565b1561156f576006546040516309a99b4f60e41b815260646110028031909302049190639a99b4f0906114a39033908590600401612b96565b602060405180830381600087803b1580156114bd57600080fd5b505af11580156114d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f59190612aa0565b506110006001600160a01b03166335409f7f85848151811061151357fe5b60200260200101516040518263ffffffff1660e01b81526004016115379190612b82565b600060405180830381600087803b15801561155157600080fd5b505af1158015611565573d6000803e3d6000fd5b5050505050611577565b600101611441565b50600061158984604001516000611f50565b90506120006001600160a01b031663f7a251d7600b6115ab8760400151611f6c565b60006040518463ffffffff1660e01b81526004016115cb939291906132c3565b600060405180830381600087803b1580156115e557600080fd5b505af19250505080156115f6575060015b611668573d808015611624576040519150601f19603f3d011682016040523d82523d6000602084013e611629565b606091505b50817fd58d1183100bd0932c0588f31c4205d6bc6168909765a96c41adbed3115f36288260405161165a9190612bba565b60405180910390a250611694565b60405181907f7b78aadacff901d8b63d0dba4f86283d4db8aef27f9ed70413dd860f1c9532b690600090a25b50505050565b601481565b61100381565b60005460ff16156116c85760405162461bcd60e51b815260040161050b90613018565b603260045560966005556000805460ff19166001179055565b61100081565b600381565b336110001461170d5760405162461bcd60e51b815260040161050b90612edf565b60005460ff1661172f5760405162461bcd60e51b815260040161050b90612c9b565b60015461173b57611b33565b600154600090600019015b808211611b07576000805b8284101561186a5761176161264d565b600260006001878154811061177257fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff161515908201526005549091506004900481602001511115611854576004600554816117df57fe5b0481602001510381602001818152505080600260006001888154811061180157fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208351815591830151600183015591909101516002909101805460ff191691151591909117905561185e565b600192505061186a565b50836001019350611751565b828411611a015761187961264d565b600260006001868154811061188a57fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff161515908201526005549091506004900481602001511115611972576004600554816118f757fe5b0481602001510381602001818152505080600260006001878154811061191957fe5b6000918252602080832091909101546001600160a01b03168352828101939093526040918201902083518155918301516001808401919091559201516002909101805460ff19169115159190911790559150611a019050565b600260006001868154811061198357fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff191690558054806119c757fe5b600082815260209020810160001990810180546001600160a01b0319169055019055836119f45750611a01565b506000199092019161186a565b818015611a0b5750805b15611aea576002600060018681548110611a2157fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff19169055805484908110611a6857fe5b600091825260209091200154600180546001600160a01b039092169186908110611a8e57fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506001805480611ac757fe5b600082815260209020810160001990810180546001600160a01b03191690550190555b82611af6575050611b07565b505060019091019060001901611746565b6040517fcfdb3b6ccaeccbdc68be3c59c840e3b3c90f0a7c491f5fff1cf56cfda200dd9c90600090a150505b565b61100481565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081611b56579050509050611b7f836001600160a01b0316611fa7565b81600081518110611b8c57fe5b6020026020010181905250611ba043611fca565b81600181518110611bad57fe5b6020908102919091010152611bc26038611fca565b81600281518110611bcf57fe5b6020026020010181905250611be342611fca565b81600381518110611bf057fe5b6020026020010181905250611c0481611fdd565b9150505b919050565b611c15612670565b6000611c1f612670565b611c27612682565b611c38611c3386612067565b61208c565b90506000805b611c47836120d6565b15611c805780611c7357611c62611c5d846120f7565b612145565b63ffffffff16845260019150611c78565b611c80565b600101611c3e565b5091935090915050915091565b600081604051602001611ca09190612b66565b6040516020818303038152906040528051906020012083604051602001611cc79190612b66565b604051602081830303815290604052805190602001201490505b92915050565b015190565b8082015160009060ff811615611d06576001915081611d0c565b60009150815b505092915050565b60408051600480825260a0820190925260009160609190816020015b6060815260200190600190039081611d30575050604080516020808252818301909252919250606091908082018180368337019050509050611d758560000151611fca565b82600081518110611d8257fe5b6020026020010181905250611d9d60208660200151836121c7565b611da6816121d7565b82600181518110611db357fe5b6020026020010181905250611dcb8560400151611fca565b82600281518110611dd857fe5b6020026020010181905250611df360208660600151836121c7565b611dfc816121d7565b82600381518110611e0957fe5b6020026020010181905250611e2f6020611e2284611fdd565b80519060200120836121c7565b6040805160b080825260e08201909252606091602082018180368337019050509050611e5f81836000602061222d565b611e718187608001516020606061222d565b611e7f81866080603061222d565b604080516001808252818301909252606091602082018180368337019050509050815160016020830182602086016066600019fa611ebc57600080fd5b506001611eca826000612280565b60ff1614611edf576000945050505050611ce1565b5060019695505050505050565b815181516000916001918114808314611f085760009250611f46565b600160208701838101602088015b600284838510011415611f41578051835114611f355760009650600093505b60209283019201611f16565b505050505b5090949350505050565b60008160200183511015611f6357600080fd5b50016020015190565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081611f87579050509050611b7f836121d7565b60408051600560a21b8318601482015260348101909152606090611c04816121d7565b6060611ce1611fd88361229c565b6121d7565b6060815160001415611ffe5750604080516000815260208101909152611c08565b60608260008151811061200d57fe5b602002602001015190506000600190505b835181101561204e576120448285838151811061203757fe5b6020026020010151612382565b915060010161201e565b50611c04612061825160c060ff166123ff565b82612382565b61206f6126a2565b506040805180820190915281518152602082810190820152919050565b612094612682565b61209d826124d1565b6120a657600080fd5b60006120b5836020015161250b565b60208085015160408051808201909152868152920190820152915050919050565b60006120e06126a2565b505080518051602091820151919092015191011190565b6120ff6126a2565b612108826120d6565b61211157600080fd5b602082015160006121218261256e565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061215a57508151602110155b61216357600080fd5b6000612172836020015161250b565b905080836000015110156121985760405162461bcd60e51b815260040161050b9061304f565b8251602080850151830180519284900392918310156121be57826020036101000a820491505b50949350505050565b9091018181526020918201910152565b6060815160011480156122095750607f60f81b826000815181106121f757fe5b01602001516001600160f81b03191611155b15612215575080611c08565b611ce16122278351608060ff166123ff565b83612382565b60005b818110156106c95783818151811061224457fe5b602001015160f81c60f81b85848060010195508151811061226157fe5b60200101906001600160f81b031916908160001a905350600101612230565b6000816001018351101561229357600080fd5b50016001015190565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166122e057506018612304565b6fffffffffffffffffffffffffffffffff19841661230057506010612304565b5060005b602081101561233a5781818151811061231957fe5b01602001516001600160f81b031916156123325761233a565b600101612304565b60008160200390506060816040519080825280601f01601f19166020018201604052801561236f576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b818310156123b357805183526020928301920161239b565b50855184518101855292509050808201602086015b818310156123e05780518352602092830192016123c8565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106124295760405162461bcd60e51b815260040161050b90612dc0565b604080516001808252818301909252606091602082018180368337019050509050603784116124835782840160f81b8160008151811061246557fe5b60200101906001600160f81b031916908160001a9053509050611ce1565b606061248e8561229c565b90508381510160370160f81b826000815181106124a757fe5b60200101906001600160f81b031916908160001a9053506124c88282612382565b95945050505050565b80516000906124e257506000611c08565b6020820151805160001a9060c082101561250157600092505050611c08565b5060019392505050565b8051600090811a6080811015612525576000915050611c08565b60b8811080612540575060c08110801590612540575060f881105b1561254f576001915050611c08565b60c08110156125635760b519019050611c08565b60f519019050611c08565b80516000908190811a60808110156125895760019150612646565b60b881101561259e57607e1981019150612646565b60c08110156125ef57600060b78203600186019550806020036101000a8651049150600181018201935050808310156125e95760405162461bcd60e51b815260040161050b90612f2f565b50612646565b60f88110156126045760be1981019150612646565b600060f78203600186019550806020036101000a865104915060018101820193505080831015611d0c5760405162461bcd60e51b815260040161050b90612f2f565b5092915050565b604051806060016040528060008152602001600081526020016000151581525090565b60408051602081019091526000815290565b60405180604001604052806126956126a2565b8152602001600081525090565b604051806040016040528060008152602001600081525090565b600082601f8301126126cc578081fd5b81516126df6126da82613316565b6132ef565b818152915060208083019084810160005b84811015612755578151870188603f82011261270b57600080fd5b8381015161271b6126da82613336565b81815260408b8184860101111561273157600080fd5b6127408388840183870161335a565b508652505092820192908201906001016126f0565b505050505092915050565b60008083601f840112612771578182fd5b50813567ffffffffffffffff811115612788578182fd5b6020830191508360208285010111156127a057600080fd5b9250929050565b600082601f8301126127b7578081fd5b81356127c56126da82613336565b91508082528360208285010111156127dc57600080fd5b8060208401602084013760009082016020015292915050565b600060a08284031215612806578081fd5b61281060a06132ef565b905081358152602082013560208201526040820135604082015260608201356060820152608082013567ffffffffffffffff81111561284e57600080fd5b61285a848285016127a7565b60808301525092915050565b600060208284031215612877578081fd5b813561288281613386565b9392505050565b6000806040838503121561289b578081fd5b825167ffffffffffffffff808211156128b2578283fd5b81850186601f8201126128c3578384fd5b805192506128d36126da84613316565b80848252602080830192508084018a8283890287010111156128f3578788fd5b8794505b8685101561291e57805161290a81613386565b8452600194909401939281019281016128f7565b508801519096509350505080821115612935578283fd5b50612942858286016126bc565b9150509250929050565b60006020828403121561295d578081fd5b81518015158114612882578182fd5b60008060008060408587031215612981578182fd5b843567ffffffffffffffff80821115612998578384fd5b6129a488838901612760565b909650945060208701359150808211156129bc578384fd5b506129c987828801612760565b95989497509550505050565b6000602082840312156129e6578081fd5b813567ffffffffffffffff808211156129fd578283fd5b81840160608187031215612a0f578384fd5b612a1960606132ef565b9250803582811115612a29578485fd5b612a35878284016127f5565b845250602081013582811115612a49578485fd5b612a55878284016127f5565b602085015250604081013582811115612a6c578485fd5b612a78878284016127a7565b6040850152509195945050505050565b600060208284031215612a99578081fd5b5035919050565b600060208284031215612ab1578081fd5b5051919050565b600080600060408486031215612acc578283fd5b833560ff81168114612adc578384fd5b9250602084013567ffffffffffffffff811115612af7578283fd5b612b0386828701612760565b9497909650939450505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008151808452612b5281602086016020860161335a565b601f01601f19169290920160200192915050565b60008251612b7881846020870161335a565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b6000602082526128826020830184612b3a565b600060408252612be1604083018688612b10565b8281036020840152612bf4818587612b10565b979650505050505050565b6020808252601f908201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604082015260600190565b6020808252601690820152751d1bdbc81bdb1908189b1bd8dac81a5b9d9bdb1d995960521b604082015260600190565b6020808252818101527f6d616c6963696f757320766f746520736c617368206e6f7420656e61626c6564604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252601a908201527f6e6f2076696f6c6174696f6e206f6620766f74652072756c6573000000000000604082015260600190565b6020808252818101527f7468652066656c6f6e795468726573686f6c64206f7574206f662072616e6765604082015260600190565b6020808252602b908201527f6c656e677468206f6620656e61626c654d616c6963696f7573566f7465536c6160408201526a0e6d040dad2e6dac2e8c6d60ab1b606082015260800190565b60208082526017908201527f766572696679207369676e6174757265206661696c6564000000000000000000604082015260600190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526019908201527f7372634e756d20626967676572207468616e207461724e756d00000000000000604082015260600190565b6020808252602c908201527f7468652066696e616c69747920736c6173682072657761726420726174696f2060408201526b6f7574206f662072616e676560a01b606082015260800190565b60208082526027908201527f6c656e677468206f66206d697364656d65616e6f725468726573686f6c64206d6040820152660d2e6dac2e8c6d60cb1b606082015260800190565b60208082526013908201527274776f206964656e746963616c20766f74657360681b604082015260600190565b60208082526030908201527f746865206d6573736167652073656e646572206d7573742062652076616c696460408201526f185d1bdc94d95d0818dbdb9d1c9858dd60821b606082015260800190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526022908201527f6c656e677468206f662066656c6f6e795468726573686f6c64206d69736d61746040820152610c6d60f31b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526025908201527f746865206d697364656d65616e6f725468726573686f6c64206f7574206f662060408201526472616e676560d81b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b6020808252601e908201527f7265636569766520756e65787065637465642073796e207061636b6167650000604082015260600190565b6020808252602b908201527f6c656e677468206f662066696e616c697479536c61736852657761726452617460408201526a0d2de40dad2e6dac2e8c6d60ab1b606082015260800190565b6020808252818101527f63616e206e6f7420736c61736820747769636520696e206f6e6520626c6f636b604082015260600190565b61ffff91909116815260200190565b90815260200190565b6000838252604060208301526132766040830184612b3a565b949350505050565b918252602082015260400190565b92835260208301919091521515604082015260600190565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff85168252606060208301526132df6060830185612b3a565b9050826040830152949350505050565b60405181810167ffffffffffffffff8111828210171561330e57600080fd5b604052919050565b600067ffffffffffffffff82111561332c578081fd5b5060209081020190565b600067ffffffffffffffff82111561334c578081fd5b50601f01601f191660200190565b60005b8381101561337557818101518382015260200161335d565b838111156116945750506000910152565b6001600160a01b038116811461339b57600080fd5b5056fea26469706673582212207e6be46f5e0281709e9788d33be4928c51610752d8a32e78d1c8c64bea3df55764736f6c63430006040033", - }, - { - ContractAddr: SystemRewardContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/b144718e94d7a1ebb24a7103202300f08826f369", - Code: "6080604052600436106101a05760003560e01c80637942fd05116100ec578063ac4317511161008a578063f9a2bbc711610064578063f9a2bbc714610550578063fb5478b314610565578063fc3e59081461057a578063fd6a68791461058f576101e4565b8063ac43175114610457578063c81b166214610526578063dc927faf1461053b576101e4565b80639dc09262116100c65780639dc0926214610403578063a1a11bf514610418578063a78abc161461042d578063ab51bb9614610442576101e4565b80637942fd05146103a057806396713da9146103b55780639a99b4f0146103ca576101e4565b80634bf6c882116101595780636e47b482116101335780636e47b4821461034c57806370fd5bad14610361578063718a8aa81461037657806375d47a0a1461038b576101e4565b80634bf6c882146102db57806351e80672146102f05780636d70f7ae14610305576101e4565b80630bee7a67146101e95780630e2374a5146102175780633a0b0eff146102485780633dffc3871461026f57806343756e5c1461029a578063493279b1146102af576101e4565b366101e45734156101e25760408051348152905133917f6c98249d85d88c3753a04a22230f595e4dc8d3dc86c34af35deeeedc861b89db919081900360200190a25b005b600080fd5b3480156101f557600080fd5b506101fe6105a4565b6040805163ffffffff9092168252519081900360200190f35b34801561022357600080fd5b5061022c6105a9565b604080516001600160a01b039092168252519081900360200190f35b34801561025457600080fd5b5061025d6105af565b60408051918252519081900360200190f35b34801561027b57600080fd5b506102846105b5565b6040805160ff9092168252519081900360200190f35b3480156102a657600080fd5b5061022c6105ba565b3480156102bb57600080fd5b506102c46105c0565b6040805161ffff9092168252519081900360200190f35b3480156102e757600080fd5b506102846105c5565b3480156102fc57600080fd5b5061022c6105ca565b34801561031157600080fd5b506103386004803603602081101561032857600080fd5b50356001600160a01b03166105d0565b604080519115158252519081900360200190f35b34801561035857600080fd5b5061022c6105ee565b34801561036d57600080fd5b506102846105f4565b34801561038257600080fd5b506102846105f9565b34801561039757600080fd5b5061022c6105fe565b3480156103ac57600080fd5b50610284610604565b3480156103c157600080fd5b50610284610609565b3480156103d657600080fd5b5061025d600480360360408110156103ed57600080fd5b506001600160a01b03813516906020013561060e565b34801561040f57600080fd5b5061022c6107b9565b34801561042457600080fd5b5061022c6107bf565b34801561043957600080fd5b506103386107c5565b34801561044e57600080fd5b506101fe6107ce565b34801561046357600080fd5b506101e26004803603604081101561047a57600080fd5b81019060208101813564010000000081111561049557600080fd5b8201836020820111156104a757600080fd5b803590602001918460018302840111640100000000831117156104c957600080fd5b9193909290916020810190356401000000008111156104e757600080fd5b8201836020820111156104f957600080fd5b8035906020019184600183028401116401000000008311171561051b57600080fd5b5090925090506107d3565b34801561053257600080fd5b5061022c610b56565b34801561054757600080fd5b5061022c610b5c565b34801561055c57600080fd5b5061022c610b62565b34801561057157600080fd5b5061025d610b68565b34801561058657600080fd5b50610284610b74565b34801561059b57600080fd5b5061022c610b79565b606481565b61200181565b60015481565b600181565b61100181565b603881565b600881565b61200081565b6001600160a01b031660009081526002602052604090205460ff1690565b61100581565b600281565b601081565b61100881565b600b81565b600981565b6000805460ff1661068b57600260208190527fe57bda0a954a7c7381b17b2c763e646ba2c60f67292d287ba583603e2c1c41668054600160ff19918216811790925561100560009081527fe25235fc0de9d7165652bef0846fefda506174abb9a190f03d0f7bcc6146dbce80548316841790559282558254161790555b3360009081526002602052604090205460ff166106d95760405162461bcd60e51b815260040180806020018281038252602b815260200180610c67602b913960400191505060405180910390fd5b60004783106106e857476106ea565b825b9050670de0b6b3a76400008111156107075750670de0b6b3a76400005b8015610788576040516001600160a01b0385169082156108fc029083906000818181858888f19350505050158015610743573d6000803e3d6000fd5b506040805182815290516001600160a01b038616917ff8b71c64315fc33b2ead2adfa487955065152a8ac33d9d5193aafd7f45dc15a0919081900360200190a26107b2565b6040517fe589651933c2457488cc0d8e0941518abf748e799435e4e396d9c4d0b2db2d4d90600090a15b9392505050565b61100781565b61100681565b60005460ff1681565b600081565b33611007146108135760405162461bcd60e51b815260040180806020018281038252602e815260200180610cc1602e913960400191505060405180910390fd5b61087584848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600b81526a30b23227b832b930ba37b960a91b60208201529150610b7f9050565b1561094d57606082828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050825192935050601490911490506108f85760405162461bcd60e51b815260040180806020018281038252602c815260200180610cef602c913960400191505060405180910390fd5b60148101516001600160a01b038116600081815260026020526040808220805460ff19166001179055517f9870d7fe5d112134c55844951dedf365363006d9c588db07c4c85af6322a06199190a25050610ac4565b6109b284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600e81526d3232b632ba32a7b832b930ba37b960911b60208201529150610b7f9050565b15610a8757606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060149091149050610a355760405162461bcd60e51b815260040180806020018281038252602f815260200180610c92602f913960400191505060405180910390fd5b60148101516001600160a01b038116600081815260026020526040808220805460ff19169055517fb40992a19dba61ea600e87fce607102bf5908dc89076217b6ca6ae195224f7029190a25050610ac4565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b61100281565b61100381565b61100081565b670de0b6b3a764000081565b600381565b61100481565b6000816040516020018082805190602001908083835b60208310610bb45780518252601f199092019160209182019101610b95565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310610c225780518252601f199092019160209182019101610c03565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052805190602001201490509291505056fe6f6e6c79206f70657261746f7220697320616c6c6f77656420746f2063616c6c20746865206d6574686f646c656e677468206f662076616c756520666f722064656c6574654f70657261746f722073686f756c64206265203230746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662076616c756520666f72206164644f70657261746f722073686f756c64206265203230a264697066735822122078be72e2672a87e28d3e6849bea141a139b304a089fceb003c016dabd5f556fb64736f6c63430006040033", - }, - { - ContractAddr: RelayerHubContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/b144718e94d7a1ebb24a7103202300f08826f369", - Code: "608060405234801561001057600080fd5b50600436106102275760003560e01c80638f83ab1311610130578063c81b1662116100b8578063f3ae24151161007c578063f3ae2415146104e8578063f9a2bbc71461050e578063fc3e590814610516578063fd30d9b81461051e578063fd6a68791461052657610227565b8063c81b1662146104c0578063dc927faf146104c8578063dd91d1c5146104d0578063e1c7392a146104d8578063e79a198f146104e057610227565b8063a1a11bf5116100ff578063a1a11bf5146103de578063a74b83ca146103e6578063a78abc16146103ee578063ab51bb96146103f6578063ac431751146103fe57610227565b80638f83ab13146103a057806395468d26146103c657806396713da9146103ce5780639dc09262146103d657610227565b8063541d5548116101b3578063718a8aa811610182578063718a8aa81461034857806375d47a0a1461035057806378beee67146103585780637942fd051461037e5780637ae230881461038657610227565b8063541d5548146102d85780636a6a419e146103125780636e47b4821461033857806370fd5bad1461034057610227565b80633dffc387116101fa5780633dffc3871461028357806343756e5c146102a1578063493279b1146102a95780634bf6c882146102c857806351e80672146102d057610227565b806303aff02b1461022c578063049a5716146102365780630bee7a671461025a5780630e2374a51461027b575b600080fd5b61023461052e565b005b61023e610539565b604080516001600160a01b039092168252519081900360200190f35b610262610551565b6040805163ffffffff9092168252519081900360200190f35b61023e610556565b61028b61055c565b6040805160ff9092168252519081900360200190f35b61023e610561565b6102b1610567565b6040805161ffff9092168252519081900360200190f35b61028b61056c565b61023e610571565b6102fe600480360360208110156102ee57600080fd5b50356001600160a01b0316610577565b604080519115158252519081900360200190f35b6102fe6004803603602081101561032857600080fd5b50356001600160a01b0316610595565b61023e6105b3565b61028b6105b9565b61028b6105be565b61023e6105c3565b6102346004803603602081101561036e57600080fd5b50356001600160a01b03166105c9565b61028b6107b1565b61038e6107b6565b60408051918252519081900360200190f35b610234600480360360208110156103b657600080fd5b50356001600160a01b03166107c3565b61038e610a02565b61028b610a0e565b61023e610a13565b61023e610a19565b61023e610a1f565b6102fe610a37565b610262610a40565b6102346004803603604081101561041457600080fd5b81019060208101813564010000000081111561042f57600080fd5b82018360208201111561044157600080fd5b8035906020019184600183028401116401000000008311171561046357600080fd5b91939092909160208101903564010000000081111561048157600080fd5b82018360208201111561049357600080fd5b803590602001918460018302840111640100000000831117156104b557600080fd5b509092509050610a45565b61023e610d96565b61023e610d9c565b610234610da2565b610234610e43565b610234610ec5565b6102fe600480360360208110156104fe57600080fd5b50356001600160a01b031661107e565b61023e61109c565b61028b6110a2565b6102fe6110a7565b61023e6110b0565b610537336110b6565b565b73b005741528b86f5952469d80a8614591e3c5b63281565b606481565b61200181565b600181565b61100181565b603881565b600881565b61200081565b6001600160a01b031660009081526007602052604090205460ff1690565b6001600160a01b031660009081526008602052604090205460ff1690565b61100581565b600281565b601081565b61100881565b3360009081526008602052604090205460ff166106175760405162461bcd60e51b81526004018080602001828103825260248152602001806115c26024913960400191505060405180910390fd5b61062033611218565b1561065c5760405162461bcd60e51b815260040180806020018281038252602181526020018061157f6021913960400191505060405180910390fd5b3233146106b0576040805162461bcd60e51b815260206004820152601e60248201527f70726f766973696f6e616c2072656c6179657220697320612070726f78790000604482015290519081900360640190fd5b6001600160a01b038181166000908152600960205260409020541633146107085760405162461bcd60e51b815260040180806020018281038252602781526020018061163b6027913960400191505060405180910390fd5b6001600160a01b03818116600081815260066020908152604080832080543380865260078086528487208054600160ff199182161790915584546001600160a01b031990811684179095556008875285882080548216905597875260098652848720805490941690935596168085529083529281902080549094169093558251828152908101939093528151909260008051602061166283398151915292908290030190a15050565b600b81565b68056bc75e2d6310000081565b3360009081526005602052604090205460ff16610820576040805162461bcd60e51b81526020600482015260166024820152751b585b9859d95c88191bd95cc81b9bdd08195e1a5cdd60521b604482015290519081900360640190fd5b61082981611218565b156108655760405162461bcd60e51b81526004018080602001828103825260278152602001806115e66027913960400191505060405180910390fd5b6001600160a01b03811615610921576001600160a01b03811660009081526007602052604090205460ff16156108db576040805162461bcd60e51b815260206004820152601660248201527572656c6179657220616c72656164792065786973747360501b604482015290519081900360640190fd5b6001600160a01b0381166000818152600860209081526040808320805460ff191660011790553383526009909152902080546001600160a01b03191690911790556109c2565b3360008181526006602090815260408083208054600980855283862080546001600160a01b03198085169095556001600160a01b0393841680895260078852868920805460ff19908116909155918516808a5260088952878a20805490931690925598909752908552805490921690915581518581529086169281019290925280516000805160206116628339815191529281900390910190a150506109ff565b604080516001600160a01b038316815290517ffba56633276570c7d3120d4535bf3bce26523da53958e40734210b9fd99b36939181900360200190a15b50565b67016345785d8a000081565b600981565b61100781565b61100681565b73446aa6e0dc65690403df3f127750da1322941f3e81565b60005460ff1681565b600081565b60005460ff16610a98576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b3361100714610ad85760405162461bcd60e51b815260040180806020018281038252602e81526020018061160d602e913960400191505060405180910390fd5b610b3984848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600a81526930b23226b0b730b3b2b960b11b6020820152915061121e9050565b15610bd15760148114610b7d5760405162461bcd60e51b81526004018080602001828103825260228152602001806115a06022913960400191505060405180910390fd5b6000610bc0601484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061130592505050565b9050610bcb8161130a565b50610d04565b610c3584848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c3932b6b7bb32a6b0b730b3b2b960991b6020820152915061121e9050565b15610cc75760148114610c795760405162461bcd60e51b81526004018080602001828103825260228152602001806115a06022913960400191505060405180910390fd5b6000610cbc601484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061130592505050565b9050610bcb816110b6565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b61100281565b61100381565b600a5460ff1615610dfa576040805162461bcd60e51b815260206004820152601e60248201527f7468652077686974656c6973747320616c726561647920757064617465640000604482015290519081900360640190fd5b610e1773b005741528b86f5952469d80a8614591e3c5b6326113cc565b610e3473446aa6e0dc65690403df3f127750da1322941f3e6113cc565b600a805460ff19166001179055565b60005460ff1615610e9b576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b68056bc75e2d63100000600190815567016345785d8a00006002556000805460ff19169091179055565b3360009081526004602052604090205460ff16610f20576040805162461bcd60e51b81526020600482015260146024820152731c995b185e595c88191bc81b9bdd08195e1a5cdd60621b604482015290519081900360640190fd5b60005460ff16610f73576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b610f7b611564565b5033600081815260036020908152604091829020825180840190935280548084526001909101549183018290529192916108fc91610fbf919063ffffffff61148416565b6040518115909202916000818181858888f19350505050158015610fe7573d6000803e3d6000fd5b50602081015160405161100291829181156108fc0291906000818181858888f1935050505015801561101d573d6000803e3d6000fd5b50336000818152600460209081526040808320805460ff191690556003825280832083815560010192909255815192835290517fd17202129b83db7880d6b9f25df81c58ad46f7e0e2c92236b1aa10663a4876679281900390910190a15050565b6001600160a01b031660009081526005602052604090205460ff1690565b61100081565b600381565b600a5460ff1681565b61100481565b6001600160a01b03811660009081526005602052604090205460ff1661111b576040805162461bcd60e51b81526020600482015260156024820152741b585b9859d95c88191bd95cdb89dd08195e1a5cdd605a1b604482015290519081900360640190fd5b6001600160a01b038082166000818152600660209081526040808320805460058452828520805460ff1990811690915582546001600160a01b0319908116909355600980865284872080548a16885260088752858820805490931690925595879052948452845490911690935580519384525191909316927f2002866d443ac6c241fecaaa2af4895828c7de2cc423b9d01f7969650f557c76928290030190a16001600160a01b03811615611214576001600160a01b0381166000818152600760209081526040808320805460ff1916905580519384529083019190915280516000805160206116628339815191529281900390910190a15b5050565b3b151590565b6000816040516020018082805190602001908083835b602083106112535780518252601f199092019160209182019101611234565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106112c15780518252601f1990920191602091820191016112a2565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b6001600160a01b03811660009081526005602052604090205460ff1615611371576040805162461bcd60e51b81526020600482015260166024820152756d616e6167657220616c72656164792065786973747360501b604482015290519081900360640190fd5b6001600160a01b038116600081815260056020908152604091829020805460ff19166001179055815192835290517fe0de8e71a22c046647f4ef744348fa126ad6d052d4ce070999481f69d45575179281900390910190a150565b6001600160a01b03811660008181526005602090815260408083208054600160ff1991821681179092556006845282852080546001600160a01b031916871790556007845293829020805490941617909255815192835290517fe0de8e71a22c046647f4ef744348fa126ad6d052d4ce070999481f69d45575179281900390910190a160408051600081526001600160a01b03831660208201528151600080516020611662833981519152929181900390910190a150565b60006114c683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506114cd565b9392505050565b6000818484111561155c5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611521578181015183820152602001611509565b50505050905090810190601f16801561154e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60405180604001604052806000815260200160008152509056fe70726f766973696f6e616c2072656c61796572206973206120636f6e74726163746c656e677468206f66206d616e616765722061646472657373206d69736d6174636872656c61796572206973206e6f7420612070726f766973696f6e616c2072656c61796572636f6e7472616374206973206e6f7420616c6c6f77656420746f20626520612072656c61796572746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e747261637470726f766973696f6e616c206973206e6f742073657420666f722074686973206d616e61676572a5a19d7e9dab30a215022382d7abe782b579986fcbedec9942ecd0db9510a148a2646970667358221220ca640b19c40787a49d8b8b52c563d76e0125386bfdf94825087004f989e9989d64736f6c63430006040033", - }, - { - ContractAddr: CrossChainContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/b144718e94d7a1ebb24a7103202300f08826f369", - Code: "608060405234801561001057600080fd5b50600436106103995760003560e01c8063718a8aa8116101e9578063c27cdcfb1161010f578063dc927faf116100ad578063f7a251d71161007c578063f7a251d714610b2f578063f9a2bbc714610ba7578063fc3e590814610baf578063fd6a687914610bb757610399565b8063dc927faf14610af7578063e1c7392a14610aff578063e3b0480514610b07578063e6400bbe14610b2757610399565b8063ccc108d7116100e9578063ccc108d714610ab0578063d31f968d14610ab8578063d76a867514610ae7578063dc40433114610aef57610399565b8063c27cdcfb14610a80578063c780e9de14610aa0578063c81b166214610aa857610399565b80638cc8f56111610187578063a78abc1611610156578063a78abc16146109b2578063ab51bb96146109ba578063ac431751146109c2578063b0355f5b1461078157610399565b80638cc8f5611461088757806396713da91461099a5780639dc09262146109a2578063a1a11bf5146109aa57610399565b806375d47a0a116101c357806375d47a0a146108a75780637942fd05146108af57806384013b6a146108b7578063863fe4ab1461099257610399565b8063718a8aa81461088f578063719482d51461089757806374f079b81461089f57610399565b8063422f9050116102ce57806363e1394e1161026c5780636de380bd1161023b5780636de380bd146108575780636e47a51a1461085f5780636e47b4821461087f57806370fd5bad1461088757610399565b806363e1394e146107ff5780636a3cb34d146108075780636bacff2c1461080f5780636c46aa681461080757610399565b80634bf6c882116102a85780634bf6c882146107b957806351e80672146107c15780635692ddd3146107c95780635f832177146107d157610399565b8063422f90501461078957806343756e5c146107a9578063493279b1146107b157610399565b8063299b533d1161033b578063308325f411610315578063308325f4146106155780633a648b151461061d5780633bdc47a6146106595780633dffc3871461078157610399565b8063299b533d146105a35780632af6f399146105d75780632ff32aea146105f457610399565b806314b3023b1161037757806314b3023b146104015780631d1309351461041b5780631e275ae11461043757806322556cdc1461059b57610399565b806305e682581461039e5780630bee7a67146103bc5780630e2374a5146103dd575b600080fd5b6103a6610bbf565b6040805160ff9092168252519081900360200190f35b6103c4610bc4565b6040805163ffffffff9092168252519081900360200190f35b6103e5610bc9565b604080516001600160a01b039092168252519081900360200190f35b610409610bcf565b60408051918252519081900360200190f35b610423610bd5565b604080519115158252519081900360200190f35b610599600480360361010081101561044e57600080fd5b81018160a081016080820135600160201b81111561046b57600080fd5b82018360208201111561047d57600080fd5b803590602001918460018302840111600160201b8311171561049e57600080fd5b919390929091602081019035600160201b8111156104bb57600080fd5b8201836020820111156104cd57600080fd5b803590602001918460018302840111600160201b831117156104ee57600080fd5b919390929091602081019035600160201b81111561050b57600080fd5b82018360208201111561051d57600080fd5b803590602001918460018302840111600160201b8311171561053e57600080fd5b919390929091602081019035600160201b81111561055b57600080fd5b82018360208201111561056d57600080fd5b803590602001918460018302840111600160201b8311171561058e57600080fd5b509092509050610bde565b005b6104096112c2565b6105c0600480360360208110156105b957600080fd5b50356112c7565b6040805161ffff9092168252519081900360200190f35b610423600480360360208110156105ed57600080fd5b50356112dd565b6105fc6112f2565b60408051600792830b90920b8252519081900360200190f35b6104096112fb565b61063d6004803603602081101561063357600080fd5b503560ff16611301565b604080516001600160401b039092168252519081900360200190f35b61070c6004803603606081101561066f57600080fd5b60ff82351691602081013591810190606081016040820135600160201b81111561069857600080fd5b8201836020820111156106aa57600080fd5b803590602001918460018302840111600160201b831117156106cb57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061131c945050505050565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561074657818101518382015260200161072e565b50505050905090810190601f1680156107735780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103a6611392565b6104236004803603602081101561079f57600080fd5b503560ff16611397565b6103e56113ac565b6105c06113b2565b6103a66113b7565b6103e56113bc565b6104096113c2565b610599600480360360408110156107e757600080fd5b506001600160a01b03813581169160200135166113f2565b610409611652565b6105c061167a565b61082c6004803603602081101561082557600080fd5b503561167f565b6040805161ffff90941684526001600160801b03909216602084015282820152519081900360600190f35b6104096116ae565b6103e56004803603602081101561087557600080fd5b503560ff166116d5565b6103e56116f0565b6103a661167a565b6103a66116f6565b6105c0611392565b6104096116fb565b6103e5611701565b6103a6611707565b610599600480360360a08110156108cd57600080fd5b810190602081018135600160201b8111156108e757600080fd5b8201836020820111156108f957600080fd5b803590602001918460018302840111600160201b8311171561091a57600080fd5b919390929091602081019035600160201b81111561093757600080fd5b82018360208201111561094957600080fd5b803590602001918460018302840111600160201b8311171561096a57600080fd5b919350915080356001600160401b03908116916020810135909116906040013560ff1661170c565b6104096129c6565b6103a66129ce565b6103e56129d3565b6103e56129d9565b6104236129df565b6103c4610bbf565b610599600480360360408110156109d857600080fd5b810190602081018135600160201b8111156109f257600080fd5b820183602082011115610a0457600080fd5b803590602001918460018302840111600160201b83111715610a2557600080fd5b919390929091602081019035600160201b811115610a4257600080fd5b820183602082011115610a5457600080fd5b803590602001918460018302840111600160201b83111715610a7557600080fd5b5090925090506129e8565b61063d60048036036020811015610a9657600080fd5b503560ff166134ac565b6104096134c7565b6103e56134eb565b6105996134f1565b61042360048036036040811015610ace57600080fd5b5080356001600160a01b0316906020013560ff16613745565b61070c613765565b610409613784565b6103e561378a565b610599613790565b61063d60048036036020811015610b1d57600080fd5b503560ff16613b47565b610599613b62565b61059960048036036060811015610b4557600080fd5b60ff8235169190810190604081016020820135600160201b811115610b6957600080fd5b820183602082011115610b7b57600080fd5b803590602001918460018302840111600160201b83111715610b9c57600080fd5b919350915035613d81565b6103e5613ec4565b6103a6613eca565b6103e5613ecf565b600081565b606481565b61200181565b60015481565b600b5460ff1681565b60005460ff16610c23576040805162461bcd60e51b815260206004820152601960248201526000805160206149b2833981519152604482015290519081900360640190fd5b604080516337d7f9c160e21b81526001600160401b038b35166004820181905291516110039163df5fe704916024808301926020929190829003018186803b158015610c6e57600080fd5b505afa158015610c82573d6000803e3d6000fd5b505050506040513d6020811015610c9857600080fd5b5051610cd55760405162461bcd60e51b81526004018080602001828103825260238152602001806149d26023913960400191505060405180910390fd5b604080516337d7f9c160e21b815260208c8101356001600160401b03166004830181905292516110039263df5fe704926024808301939192829003018186803b158015610d2157600080fd5b505afa158015610d35573d6000803e3d6000fd5b505050506040513d6020811015610d4b57600080fd5b5051610d885760405162461bcd60e51b81526004018080602001828103825260238152602001806149d26023913960400191505060405180910390fd5b60608b013560ff81166000908152600560205260409020546001600160401b03909116906001600160a01b0316610e01576040805162461bcd60e51b815260206004820152601860248201527718da185b9b995b081a5cc81b9bdd081cdd5c1c1bdc9d195960421b604482015290519081900360640190fd5b600b5460ff1615610e45576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b8888604051808383808284376040519201829003822094508f93508e9250819050838380828437808301925050509250505060405180910390201415610ec1576040805162461bcd60e51b815260206004820152600c60248201526b1cd85b59481c185e5b1bd85960a21b604482015290519081900360640190fd5b60606001600160401b0360408e01358116908e83013516610ee28282613ed5565b80516020808301919091206000818152600e9092526040909120549194509060ff1615610f4b576040805162461bcd60e51b8152602060048201526012602482015271185b1c9958591e4818da185b1b195b99d95960721b604482015290519081900360640190fd5b6000908152600e60205260408120805460ff191660011790558f8160200201356001600160401b0316905060608f8f8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060608c8c8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506040805163cba510a960e01b81526001600160401b038a16600482015290519596509094611003945063cba510a9935060248083019350602092829003018186803b15801561104157600080fd5b505afa158015611055573d6000803e3d6000fd5b505050506040513d602081101561106b57600080fd5b505160408051808201909152600381526269626360e81b6020820152909150611098908290898686613f1d565b6110e1576040805162461bcd60e51b81526020600482015260156024820152740696e76616c6964206d65726b6c652070726f6f663605c1b604482015290519081900360640190fd5b5050505060008f6001600481106110f457fe5b60200201356001600160401b0316905060608d8d8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8f018190048102820181019092528d815293945060609392508d91508c908190840183828082843760009201829052506040805163cba510a960e01b81526001600160401b038a16600482015290519596509094611003945063cba510a9935060248083019350602092829003018186803b1580156111c057600080fd5b505afa1580156111d4573d6000803e3d6000fd5b505050506040513d60208110156111ea57600080fd5b505160408051808201909152600381526269626360e81b6020820152909150611217908290898686613f1d565b611260576040805162461bcd60e51b8152602060048201526015602482015274696e76616c6964206d65726b6c652070726f6f663160581b604482015290519081900360640190fd5b5050505061126c61401a565b604080516001600160401b038416815260ff83166020820152815133927f039eb91179ffd7d3b6e97f8ea106e748e827f910b872375dbc9c14a362319c3c928290030190a2505050505050505050505050505050565b603281565b600d6020526000908152604090205461ffff1681565b600e6020526000908152604090205460ff1681565b60045460070b81565b60025481565b600a602052600090815260409020546001600160401b031681565b60606000825160210190506060816040519080825280601f01601f191660200182016040528015611354576020820181803683370190505b506021810186905260018101879052828152905060418101600061137786614098565b509050611386818388516140a2565b50909695505050505050565b600181565b60096020526000908152604090205460ff1681565b61100181565b603881565b600881565b61200081565b604080517710d05390d15317d514905394d1915497d41493d413d4d05360421b8152905190819003601801902081565b60005460ff16611437576040805162461bcd60e51b815260206004820152601960248201526000805160206149b2833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b15801561147a57600080fd5b505afa15801561148e573d6000803e3d6000fd5b505050506040513d60208110156114a457600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b1580156114e557600080fd5b505afa1580156114f9573d6000803e3d6000fd5b505050506040513d602081101561150f57600080fd5b505190508061151c575060155b60008211801561152c5750808211155b61156b576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b604080516001600160a01b038087166020808401919091529086168284015282518083038401815260608301808552815191909201207710d05390d15317d514905394d1915497d41493d413d4d05360421b90915291519081900360780190206000906115d890836140e3565b9050801561164a5760408051630911a2c160e11b81526001600160a01b03888116600483015287166024820152905161100491631223458291604480830192600092919082900301818387803b15801561163157600080fd5b505af1158015611645573d6000803e3d6000fd5b505050505b505050505050565b604080516f14d554d411539117d41493d413d4d05360821b8152905190819003601001902081565b600281565b600c602052600090815260409020805460019091015461ffff8216916201000090046001600160801b03169083565b604080516e149153d4115397d41493d413d4d053608a1b8152905190819003600f01902081565b6005602052600090815260409020546001600160a01b031681565b61100581565b601081565b60035481565b61100881565b600b81565b60005460ff16611751576040805162461bcd60e51b815260206004820152601960248201526000805160206149b2833981519152604482015290519081900360640190fd5b60408051630a83aaa960e31b815233600482015290516110069163541d5548916024808301926020929190829003018186803b15801561179057600080fd5b505afa1580156117a4573d6000803e3d6000fd5b505050506040513d60208110156117ba57600080fd5b505161180d576040805162461bcd60e51b815260206004820152601f60248201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604482015290519081900360640190fd5b60ff8116600090815260086020526040902054829082906001600160401b03908116908316811461187d576040805162461bcd60e51b815260206004820152601560248201527439b2b8bab2b731b2903737ba1034b71037b93232b960591b604482015290519081900360640190fd5b60ff8216600090815260086020908152604091829020805467ffffffffffffffff1916600185016001600160401b039081169190911790915582516337d7f9c160e21b81529089166004820152915188926110039263df5fe70492602480840193829003018186803b1580156118f257600080fd5b505afa158015611906573d6000803e3d6000fd5b505050506040513d602081101561191c57600080fd5b50516119595760405162461bcd60e51b81526004018080602001828103825260238152602001806149d26023913960400191505060405180910390fd5b60ff851660009081526005602052604090205485906001600160a01b03166119c3576040805162461bcd60e51b815260206004820152601860248201527718da185b9b995b081a5cc81b9bdd081cdd5c1c1bdc9d195960421b604482015290519081900360640190fd5b60ff86166000908152600a6020526040902054889087906001600160401b039081169083161015611a2c576040805162461bcd60e51b815260206004820152600e60248201526d3a37b79037b632103432b0b232b960911b604482015290519081900360640190fd5b60ff81166000908152600a60205260409020546001600160401b03838116911614611a7e5760ff81166000908152600a60205260409020805467ffffffffffffffff19166001600160401b0384161790555b600b5460ff1615611ac2576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b60608e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060608d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509050611c066110036001600160a01b031663cba510a98e6040518263ffffffff1660e01b815260040180826001600160401b03166001600160401b0316815260200191505060206040518083038186803b158015611baf57600080fd5b505afa158015611bc3573d6000803e3d6000fd5b505050506040513d6020811015611bd957600080fd5b505160408051808201909152600381526269626360e81b6020820152611bff8e8e613ed5565b8585613f1d565b611c4e576040805162461bcd60e51b815260206004820152601460248201527334b73b30b634b21036b2b935b63290383937b7b360611b604482015290519081900360640190fd5b60408051631bb5062960e31b81526001600160401b038e16600482015290516000916110039163dda8314891602480820192602092909190829003018186803b158015611c9a57600080fd5b505afa158015611cae573d6000803e3d6000fd5b505050506040513d6020811015611cc457600080fd5b505190508b8b600080806060611cd9896143c8565b935093509350935083611d9b578460ff16866001600160401b03167ff7b2e42d694eb1100184aae86d4245d9e46966100b1dc7e723275b98326854ac8b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015611d53578181015183820152602001611d3b565b50505050905090810190601f168015611d805780820380516001836020036101000a031916815260200191505b509250505060405180910390a35050505050505050506129b6565b6040805160ff85811682529151918716916001600160401b038916917f36afdaf439a8f43fe72135135d804ae620b37a474f0943b5b85f6788312cad40919081900360200190a360ff83166123205760ff85166000818152600560209081526040808320548151631182b87560e01b815260048101958652602481019283528651604482015286516001600160a01b03909216958695631182b875958d958a9593949093606490910192918601918190849084905b83811015611e68578181015183820152602001611e50565b50505050905090810190601f168015611e955780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b158015611eb557600080fd5b505af1925050508015611f9957506040513d6000823e601f3d908101601f191682016040526020811015611ee857600080fd5b8101908080516040519392919084600160201b821115611f0757600080fd5b908301906020820185811115611f1c57600080fd5b8251600160201b811182820188101715611f3557600080fd5b82525081516020918201929091019080838360005b83811015611f62578181015183820152602001611f4a565b50505050905090810190601f168015611f8f5780820380516001836020036101000a031916815260200191505b5060405250505060015b6122ab576040516000815260443d1015611fb557506000612050565b60046000803e60005160e01c6308c379a08114611fd6576000915050612050565b60043d036004833e81513d60248201116001600160401b038211171561200157600092505050612050565b80830180516001600160401b03811115612022576000945050505050612050565b8060208301013d860181111561204057600095505050505050612050565b601f01601f191660405250925050505b8061205b575061216d565b60ff8716600090815260076020526040812054612092916001600160401b0390911690899061208d906002908861131c565b614478565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf948794849390840192918601918190849084905b8381101561212d578181015183820152602001612115565b50505050905090810190601f16801561215a5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2506122a6565b3d808015612197576040519150601f19603f3d011682016040523d82523d6000602084013e61219c565b606091505b5060ff87166000908152600760205260408120546121cf916001600160401b0390911690899061208d906002908861131c565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351948794849390840192918601918190849084905b8381101561226a578181015183820152602001612252565b50505050905090810190601f1680156122975780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b61231a565b8051156123185760ff87166000908152600760205260408120546122e4916001600160401b0390911690899061208d906001908661131c565b60ff8716600090815260076020526040902080546001600160401b038082166001011667ffffffffffffffff199091161790555b505b506128ee565b60ff8316600114156125c45760ff8516600081815260056020908152604080832054815163831d65d160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563831d65d1958d958a9593949093606490910192918601918190849084905b838110156123aa578181015183820152602001612392565b50505050905090810190601f1680156123d75780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b1580156123f757600080fd5b505af1925050508015612408575060015b61231a576040516000815260443d1015612424575060006124bf565b60046000803e60005160e01c6308c379a081146124455760009150506124bf565b60043d036004833e81513d60248201116001600160401b0382111715612470576000925050506124bf565b80830180516001600160401b038111156124915760009450505050506124bf565b8060208301013d86018111156124af576000955050505050506124bf565b601f01601f191660405250925050505b806124ca575061252f565b60408051602080825283518183015283516001600160a01b038616937ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf938693909283928301918501908083836000831561212d578181015183820152602001612115565b3d808015612559576040519150601f19603f3d011682016040523d82523d6000602084013e61255e565b606091505b5060408051602080825283518183015283516001600160a01b038616937f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351938693909283928301918501908083836000831561226a578181015183820152602001612252565b60ff8316600214156128ee5760ff8516600081815260056020908152604080832054815163c8509d8160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563c8509d81958d958a9593949093606490910192918601918190849084905b8381101561264e578181015183820152602001612636565b50505050905090810190601f16801561267b5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561269b57600080fd5b505af19250505080156126ac575060015b6128ec576040516000815260443d10156126c857506000612763565b60046000803e60005160e01c6308c379a081146126e9576000915050612763565b60043d036004833e81513d60248201116001600160401b038211171561271457600092505050612763565b80830180516001600160401b03811115612735576000945050505050612763565b8060208301013d860181111561275357600095505050505050612763565b601f01601f191660405250925050505b8061276e5750612817565b816001600160a01b03167ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf826040518080602001828103825283818151815260200191508051906020019080838360005b838110156127d75781810151838201526020016127bf565b50505050905090810190601f1680156128045780820380516001836020036101000a031916815260200191505b509250505060405180910390a2506128ec565b3d808015612841576040519150601f19603f3d011682016040523d82523d6000602084013e612846565b606091505b50816001600160a01b03167f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351826040518080602001828103825283818151815260200191508051906020019080838360005b838110156128b0578181015183820152602001612898565b50505050905090810190601f1680156128dd5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b505b60ff80861660009081526009602052604090205461100591636f93d2e6918a91339187911680612920575060ff881615155b604080516001600160e01b031960e088901b1681526001600160a01b039586166004820152939094166024840152604483019190915215156064820152905160848083019260209291908290030181600087803b15801561298057600080fd5b505af1158015612994573d6000803e3d6000fd5b505050506040513d60208110156129aa57600080fd5b50505050505050505050505b5050505050505050505050505050565b630100380081565b600981565b61100781565b61100681565b60005460ff1681565b3361100714612a285760405162461bcd60e51b815260040180806020018281038252602e815260200180614908602e913960400191505060405180910390fd5b600b5460ff1615612a6c576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b612ad584848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526012815271626174636853697a65466f724f7261636c6560701b602082015291506146129050565b15612b7057604080516020601f8401819004810282018101909252828152600091612b18918585808385018382808284376000920191909152506146f992505050565b90506127108111158015612b2d5750600a8110155b612b685760405162461bcd60e51b81526004018080602001828103825260328152602001806149806032913960400191505060405180910390fd5b60015561341a565b612bd984848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601281527118591913dc955c19185d1950da185b9b995b60721b602082015291506146129050565b15612d6157606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060169091149050612c5c5760405162461bcd60e51b815260040180806020018281038252605a815260200180614821605a913960600191505060405180910390fd5b60018101516002820151601683015160ff82161590612c7a816146fe565b612ccb576040805162461bcd60e51b815260206004820152601960248201527f61646472657373206973206e6f74206120636f6e747261637400000000000000604482015290519081900360640190fd5b60ff8416600081815260056020908152604080832080546001600160a01b0319166001600160a01b038716908117909155808452600683528184208585528352818420805460ff199081166001179091556009909352818420805490931687151517909255519092917f7e3b6af43092577ee20e60eaa1d9b114a7031305c895ee7dd3ffe17196d2e1e091a3505050505061341a565b612dce84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526016815275195b98589b1953dc911a5cd8589b1950da185b9b995b60521b602082015291506146129050565b15612eff57606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060029091149050612e515760405162461bcd60e51b815260040180806020018281038252604a815260200180614936604a913960600191505060405180910390fd5b600181810151600283015160ff80831660009081526005602052604090205492939192908316909114906001600160a01b03168015612ef5576001600160a01b038116600090815260066020908152604080832060ff881680855290835292819020805460ff1916861515908117909155815190815290517fa3132e3f9819fbddc7f0ed6d38d7feef59aa95112090b7c592f5cb5bc4aa4adc929181900390910190a25b505050505061341a565b612f6384848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c73757370656e6451756f72756d60981b602082015291506146129050565b156130985760028114612fa75760405162461bcd60e51b815260040180806020018281038252602d8152602001806148af602d913960400191505060405180910390fd5b6000612fea600284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506146f992505050565b905060008161ffff16118015613004575060648161ffff16105b61304e576040805162461bcd60e51b8152602060048201526016602482015275696e76616c69642073757370656e642071756f72756d60501b604482015290519081900360640190fd5b604080516f14d554d411539117d41493d413d4d05360821b815281519081900360100190206000908152600d60205220805461ffff90921661ffff1990921691909117905561341a565b6130fb84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600c81526b72656f70656e51756f72756d60a01b602082015291506146129050565b1561322e576002811461313f5760405162461bcd60e51b815260040180806020018281038252602c8152602001806148dc602c913960400191505060405180910390fd5b6000613182600284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506146f992505050565b905060008161ffff1611801561319c575060648161ffff16105b6131e5576040805162461bcd60e51b8152602060048201526015602482015274696e76616c69642072656f70656e2071756f72756d60581b604482015290519081900360640190fd5b604080516e149153d4115397d41493d413d4d053608a1b8152815190819003600f0190206000908152600d60205220805461ffff90921661ffff1990921691909117905561341a565b61329984848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601481527363616e63656c5472616e7366657251756f72756d60601b602082015291506146129050565b156133dd57600281146132dd5760405162461bcd60e51b815260040180806020018281038252603481526020018061487b6034913960400191505060405180910390fd5b6000613320600284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506146f992505050565b905060008161ffff1611801561333a575060648161ffff16105b61338b576040805162461bcd60e51b815260206004820152601e60248201527f696e76616c69642063616e63656c207472616e736665722071756f72756d0000604482015290519081900360640190fd5b604080517710d05390d15317d514905394d1915497d41493d413d4d05360421b815281519081900360180190206000908152600d60205220805461ffff90921661ffff1990921691909117905561341a565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b6008602052600090815260409020546001600160401b031681565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081565b61100281565b60005460ff16613536576040805162461bcd60e51b815260206004820152601960248201526000805160206149b2833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b15801561357957600080fd5b505afa15801561358d573d6000803e3d6000fd5b505050506040513d60208110156135a357600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b1580156135e457600080fd5b505afa1580156135f8573d6000803e3d6000fd5b505050506040513d602081101561360e57600080fd5b505190508061361b575060155b60008211801561362b5750808211155b61366a576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b600b5460ff166136b1576040805162461bcd60e51b815260206004820152600d60248201526c1b9bdd081cdd5cdc195b991959609a1b604482015290519081900360640190fd5b604080516e149153d4115397d41493d413d4d053608a1b8152905190819003600f019020600090613702907fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4706140e3565b9050801561374057600b805460ff1916905560405133907f899fe8c37dc61708a3aaa99c4bf143346c1d1da69af79be9e8920c0a6785b75290600090a25b505050565b600660209081526000928352604080842090915290825290205460ff1681565b6040518060400160405280600381526020016269626360e81b81525081565b610e1081565b61100381565b60005460ff16156137e8576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b7f1471eb6eb2c5e789fc3de43f8ce62938c7d1836ec861730447e2ada8fd81017b80546001600160a01b0319908116611008179091557f92e85d02570a8092d09a6e3a57665bc3815a2699a4074001bf1ccabf660f5a36805460ff199081169091557fd8af288fc1c8680b4f4706064cf021e264efb6828fcaf7eb5ca36818eb365bcc8054821660019081179091557f89832631fb3c3307a103ba2c84ab569c64d6182a18893dcd163f0f1c2090733a805484166110049081179091557f6cde3cea4b3a3fb2488b2808bae7556f4a405e50f65e1794383bc026131b13c38054841690557f72e4efa1513b071517c6c74dba31b5934a81aa83cddd400e7081df5529c9943680548416831790557fa9bc9a3a348c357ba16b37005d7e6b3236198c0e939f4af8c5f19b8deeb8ebc08054851690911790557fc575c31fea594a6eb97c8e9d3f9caee4c16218c6ef37e923234c0fe9014a61e78054831690557f4e523af77f034e9810f1c94057f5e931fb3d16a51511a4c3add793617d18610580548316821790557ffb33122aa9f93cc639ebe80a7bc4784c11e6053dde89c6f4f7e268c6a623da1e805484166110001790557fc7694af312c4f286114180fd0ba6a52461fcee8a381636770b19a343af92538a80548316821790557f01112dd68e482ba8d68a7e828cff8b3abcea08eab88941953c180a7e650e9cd480548316821790557fc0a4a8be475dfebc377ebef2d7c4ff47656f572a08dd92b81017efcdba0febe1805484166110071790557f87e8a52529e8ece4ef759037313542a6429ff494a9fab9027fb79db90124eba680548316821790557f4c7666bbcb22d46469f7cc282f70764a7012dca2cce630ff8d83db9a9cdd48f080548316821790557f40f28f99a40bc9f6beea1013afdbc3cdcc689eb76b82c4de06c0acf1e1932ed58054909316611001179092557f0d9cf2cd531699eed8dd34e40ff2884a14a698c4898184fba85194e6f6772d248054821683179055600b60009081527f23f68c9bd22b8a93d06adabe17481c87c016bcbd20adc8bfd707a4d813a572176020527fdf0d5d05428057f5455c2dc8e810dd86d1e9350faa72f16bda8a45443c5b39328054831684179055603283556004805467ffffffffffffffff19166001600160401b031790556002819055600381905580549091169091179055565b6007602052600090815260409020546001600160401b031681565b60005460ff16613ba7576040805162461bcd60e51b815260206004820152601960248201526000805160206149b2833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b158015613bea57600080fd5b505afa158015613bfe573d6000803e3d6000fd5b505050506040513d6020811015613c1457600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b158015613c5557600080fd5b505afa158015613c69573d6000803e3d6000fd5b505050506040513d6020811015613c7f57600080fd5b5051905080613c8c575060155b600082118015613c9c5750808211155b613cdb576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b600b5460ff1615613d1f576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b604080516f14d554d411539117d41493d413d4d05360821b81529051908190036010019020600090613d71907fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4706140e3565b905080156137405761374061401a565b60005460ff16613dc6576040805162461bcd60e51b815260206004820152601960248201526000805160206149b2833981519152604482015290519081900360640190fd5b33600090815260066020908152604080832060ff8089168552925290912054859116613e235760405162461bcd60e51b81526004018080602001828103825260318152602001806147f06031913960400191505060405180910390fd5b60ff85166000908152600760209081526040808320548151601f88018490048402810184019092528682526001600160401b031692613e889284928a9261208d92909189918c908c908190840183828082843760009201919091525061131c92505050565b60ff959095166000908152600760205260409020805467ffffffffffffffff191660019096016001600160401b03169590951790945550505050565b61100081565b600381565b61100481565b60408051600e808252818301909252606091630100380060ff851617918391602082018180368337505050600e81810187905260068201939093529182525090505b92915050565b600085613f2c57506000614011565b606082518451865160800101016040519080825280601f01601f191660200182016040528015613f63576020820181803683370190505b5090506000613f7182614704565b602080890151825201905086600080613f8989614098565b8086526020909501949092509050613fa28285836140a2565b92830192613faf88614098565b8086526020909501949092509050613fc88285836140a2565b9283018a815260200192613fdb87614098565b9092509050613feb8285836140a2565b508351602001613ff961470a565b60208183886065600019fa5051600114955050505050505b95945050505050565b600b5460ff161561405e576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b600b805460ff1916600117905560405133907f6f123d3d54c84a7960a573b31c221dcd86e13fd849c5adb0c6ca851468cc1ae490600090a2565b8051602090910191565b5b602081106140c2578251825260209283019290910190601f19016140a3565b915181516020939093036101000a6000190180199091169216919091179052565b6000828152600d602052604081205461ffff166141ac57604080516f14d554d411539117d41493d413d4d05360821b815281519081900360100181206000908152600d6020818152848320805461ffff199081166001179091556e149153d4115397d41493d413d4d053608a1b8552855194859003600f01852084528282528584208054821660029081179091557710d05390d15317d514905394d1915497d41493d413d4d05360421b8652865195869003601801909520845291905292902080549092161790555b6000838152600c6020526040902080546201000090046001600160801b0316421015806141dd575082816001015414155b156142b0576000848152600d602090815260409182902054835461ffff90911661ffff199091161771ffffffffffffffffffffffffffffffff0000191662010000610e1042016001600160801b0316021783556001808401869055825191820190925233815261425291600284019190614728565b5080546040805161ffff83168152620100009092046001600160801b0316602083015281810185905251339186917f9e109f0e55ef32e99e4880be2ec357f1ddb3469c79d0747ef4762da6e89fabe5916060908290030190a3614364565b60005b600282015481101561433b57336001600160a01b03168260020182815481106142d857fe5b6000918252602090912001546001600160a01b03161415614333576040805162461bcd60e51b815260206004820152601060248201526f185b1c9958591e48185c1c1c9bdd995960821b604482015290519081900360640190fd5b6001016142b3565b50600281018054600181018255600091825260209091200180546001600160a01b031916331790555b8054600282015461ffff909116116143be576000848152600c60205260408120805471ffffffffffffffffffffffffffffffffffff1916815560018101829055906143b2600283018261478d565b50506001915050613f17565b5060009392505050565b600080600060606021855110156143f8575050604080516000808252602082019092529092508291508190614471565b600185015160218601518651604080516020198301808252601f1960011990940193909316810160200190915260418901939291606091908015614443576020820181803683370190505b509050600061445182614098565b509050614463858260218d51036140a2565b506001975091955093509150505b9193509193565b600b5460ff16156144bc576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b6002544311156144fb576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b16179091556003554360025561453c565b6003805460019081019182905554101561453c576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b16179091556003555b8160ff16836001600160401b0316600460009054906101000a900460070b6001600160401b03167f3a6e0fc61675aa2a100bcba0568368bb92bcec91c97673391074f11138f0cffe603885604051808361ffff1661ffff16815260200180602001828103825283818151815260200191508051906020019080838360005b838110156145d25781810151838201526020016145ba565b50505050905090810190601f1680156145ff5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a4505050565b6000816040516020018082805190602001908083835b602083106146475780518252601f199092019160209182019101614628565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106146b55780518252601f199092019160209182019101614696565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b3b151590565b60200190565b60405180602001604052806001906020820280368337509192915050565b82805482825590600052602060002090810192821561477d579160200282015b8281111561477d57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190614748565b506147899291506147ae565b5090565b50805460008255906000526020600020908101906147ab91906147d5565b50565b6147d291905b808211156147895780546001600160a01b03191681556001016147b4565b90565b6147d291905b8082111561478957600081556001016147db56fe74686520636f6e747261637420616e64206368616e6e656c2068617665206e6f74206265656e20726567697374657265646c656e677468206f662076616c756520666f72206164644f725570646174654368616e6e656c2073686f756c642062652032322c206368616e6e656c49643a697346726f6d53797374656d3a68616e646c6572416464726573736c656e677468206f662076616c756520666f722063616e63656c5472616e7366657251756f72756d2073686f756c6420626520326c656e677468206f662076616c756520666f722073757370656e6451756f72756d2073686f756c6420626520326c656e677468206f662076616c756520666f722072656f70656e51756f72756d2073686f756c642062652032746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662076616c756520666f7220656e61626c654f7244697361626c654368616e6e656c2073686f756c6420626520322c206368616e6e656c49643a6973456e61626c65746865206e6577426174636853697a65466f724f7261636c652073686f756c6420626520696e205b31302c2031303030305d74686520636f6e7472616374206e6f7420696e697420796574000000000000006c6967687420636c69656e74206e6f742073796e632074686520626c6f636b20796574a2646970667358221220622dd2ff8c5505e7bf8251c7cfe63da6bfa7891c3682ca46b6d6bf796895609f64736f6c63430006040033", - }, - }, - } - - LubanUpgrade[networkname.ChapelChainName] = &Upgrade{ - UpgradeName: "luban", - Configs: []*UpgradeConfig{ - { - ContractAddr: ValidatorContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/b144718e94d7a1ebb24a7103202300f08826f369", - Code: "60806040526004361061046c5760003560e01c8063862498821161024a578063c6d3394511610139578063e40716a1116100b6578063f9a2bbc71161007a578063f9a2bbc714610b6b578063fc3e590814610b80578063fccc281314610b95578063fd4ad81f14610baa578063fd6a687914610bd957610473565b8063e40716a114610af9578063eb57e20214610b0e578063eda5868c14610b2e578063f340fa0114610b43578063f92eb86b14610b5657610473565b8063d86222d5116100fd578063d86222d514610a90578063daacdb6614610aa5578063dc927faf14610aba578063e086c7b114610acf578063e1c7392a14610ae457610473565b8063c6d3394514610a3c578063c81b166214610a51578063c8509d811461085f578063d04aa99614610a66578063d68fb56a14610a7b57610473565b8063a5422d5c116101c7578063ad3c9da61161018b578063ad3c9da6146109d0578063aef198a9146109f0578063b7ab4db514610a05578063b8cf4ef114610a27578063bf9f49951461062f57610473565b8063a5422d5c1461095c578063a78abc1614610971578063aaf5eb6814610986578063ab51bb961461099b578063ac431751146109b057610473565b806396713da91161020e57806396713da9146108f35780639dc09262146109085780639fe0f8161461091d578063a0dc275814610932578063a1a11bf51461094757610473565b8063862498821461087f57806388b32f11146108945780638b5ad0c9146108a95780638d19a410146108be5780639369d7de146108de57610473565b80634df6e0c3116103665780636e47b482116102e35780637942fd05116102a75780637942fd05146108205780637a84ca2a1461083557806381650b621461084a578063831d65d11461085f578063853230aa1461080b57610473565b80636e47b482146107b757806370fd5bad146107cc578063718a8aa8146107e157806375d47a0a146107f657806378dfed4a1461080b57610473565b8063565c56b31161032a578063565c56b3146107265780635667515a146107465780635d77156c1461075b57806362b72cf5146107705780636969a25c1461078557610473565b80634df6e0c3146106b25780635192c82c146106c757806351e80672146106dc578063549b03f2146106f157806355614fcc1461070657610473565b8063321d398a116103f45780633dffc387116103b85780633dffc3871461062f57806343756e5c1461065157806345cf9daf14610666578063493279b11461067b5780634bf6c8821461069d57610473565b8063321d398a146105975780633365af3a146105b757806335409f7f146105d75780633b071dcc146105f75780633de0f0d81461061a57610473565b80631182b8751161043b5780631182b875146104fe578063152ad3b81461052b5780631ff180691461054d578063219f22d514610562578063300c35671461057757610473565b806304c4fec61461047857806307a568471461048f5780630bee7a67146104ba5780630e2374a5146104dc57610473565b3661047357005b600080fd5b34801561048457600080fd5b5061048d610bee565b005b34801561049b57600080fd5b506104a4610c60565b6040516104b19190616ef0565b60405180910390f35b3480156104c657600080fd5b506104cf610c66565b6040516104b19190616f1a565b3480156104e857600080fd5b506104f1610c6b565b6040516104b191906162f7565b34801561050a57600080fd5b5061051e6105193660046161dd565b610c71565b6040516104b1919061646e565b34801561053757600080fd5b50610540610ea9565b6040516104b19190616463565b34801561055957600080fd5b506104a4610eb2565b34801561056e57600080fd5b506104cf610eb8565b34801561058357600080fd5b5061048d6105923660046160a6565b610ebd565b3480156105a357600080fd5b506105406105b236600461618a565b611241565b3480156105c357600080fd5b506105406105d236600461618a565b611310565b3480156105e357600080fd5b5061048d6105f236600461607f565b6113c1565b34801561060357600080fd5b5061060c61151a565b6040516104b1929190616379565b34801561062657600080fd5b506104a46117f6565b34801561063b57600080fd5b506106446117fc565b6040516104b19190616f2b565b34801561065d57600080fd5b506104f1611801565b34801561067257600080fd5b506104a4611807565b34801561068757600080fd5b5061069061180d565b6040516104b19190616ee1565b3480156106a957600080fd5b50610644611812565b3480156106be57600080fd5b5061060c611817565b3480156106d357600080fd5b506104a4611995565b3480156106e857600080fd5b506104f161199b565b3480156106fd57600080fd5b506104a46119a1565b34801561071257600080fd5b5061054061072136600461607f565b6119a7565b34801561073257600080fd5b506104a461074136600461607f565b6119dc565b34801561075257600080fd5b50610644611a2d565b34801561076757600080fd5b506104cf611a32565b34801561077c57600080fd5b506104a4611a37565b34801561079157600080fd5b506107a56107a036600461618a565b611a3d565b6040516104b196959493929190616324565b3480156107c357600080fd5b506104f1611aa1565b3480156107d857600080fd5b50610644611aa7565b3480156107ed57600080fd5b50610644611aac565b34801561080257600080fd5b506104f1611ab1565b34801561081757600080fd5b506104a4611ab7565b34801561082c57600080fd5b50610644611abd565b34801561084157600080fd5b506104a4611ac2565b34801561085657600080fd5b506104cf611ac8565b34801561086b57600080fd5b5061048d61087a3660046161dd565b611acd565b34801561088b57600080fd5b506104a4611b2e565b3480156108a057600080fd5b506104a4611b34565b3480156108b557600080fd5b506104a4611b3a565b3480156108ca57600080fd5b506104a46108d936600461607f565b611b40565b3480156108ea57600080fd5b5061048d611b80565b3480156108ff57600080fd5b50610644611c94565b34801561091457600080fd5b506104f1611c99565b34801561092957600080fd5b506104a4611c9f565b34801561093e57600080fd5b506104a4611ca4565b34801561095357600080fd5b506104f1611ca9565b34801561096857600080fd5b5061051e611caf565b34801561097d57600080fd5b50610540611cce565b34801561099257600080fd5b506104a4611cd7565b3480156109a757600080fd5b506104cf611a2d565b3480156109bc57600080fd5b5061048d6109cb36600461612e565b611ce0565b3480156109dc57600080fd5b506104a46109eb36600461607f565b61258c565b3480156109fc57600080fd5b506104a461259e565b348015610a1157600080fd5b50610a1a6125ab565b6040516104b19190616366565b348015610a3357600080fd5b506104a4612697565b348015610a4857600080fd5b506104a4611aa7565b348015610a5d57600080fd5b506104f161269c565b348015610a7257600080fd5b506104a46126a2565b348015610a8757600080fd5b506104a46126a7565b348015610a9c57600080fd5b506104a46126e6565b348015610ab157600080fd5b506104a46126f2565b348015610ac657600080fd5b506104f16126f8565b348015610adb57600080fd5b506104a46126fe565b348015610af057600080fd5b5061048d612703565b348015610b0557600080fd5b506104a46128b2565b348015610b1a57600080fd5b5061048d610b2936600461607f565b6128b8565b348015610b3a57600080fd5b506104cf6129c0565b61048d610b5136600461607f565b6129c5565b348015610b6257600080fd5b506104a4612c4d565b348015610b7757600080fd5b506104f1612c53565b348015610b8c57600080fd5b50610644611c9f565b348015610ba157600080fd5b506104f1612c59565b348015610bb657600080fd5b50610bca610bc536600461618a565b612c5f565b6040516104b193929190616ef9565b348015610be557600080fd5b506104f1612d21565b6000610bf933611b40565b9050600b8181548110610c0857fe5b600091825260209091206001601690920201015460ff16610c445760405162461bcd60e51b8152600401610c3b90616b99565b60405180910390fd5b6000610c4e6126a7565b9050610c5b338383612d27565b505050565b60095481565b606481565b61200181565b60005460609060ff16610c965760405162461bcd60e51b8152600401610c3b9061662d565b3361200014610cb75760405162461bcd60e51b8152600401610c3b90616d78565b600b54610d7557610cc6615d6b565b60015460005b81811015610d7157600b8054600181018255600091909152835160008051602061714e833981519152601690920291820190815560208086015160008051602061718e8339815191528401805460ff1916911515919091179055604086015180518794610d4d9360008051602061716e833981519152909101920190615d9a565b506060820151610d639060038301906013615e14565b505050806001019050610ccc565b5050505b610d7d615e41565b6000610dbe85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612f1392505050565b9150915080610dda57610dd160646130cf565b92505050610ea2565b815160009060ff16610dff57610df883602001518460400151613130565b9050610e6e565b825160ff1660011415610e6a57826020015151600114610e445760008051602061712e833981519152604051610e3490616a80565b60405180910390a1506067610e65565b610df88360200151600081518110610e5857fe5b6020026020010151613d84565b610e6e565b5060655b63ffffffff8116610e935750506040805160008152602081019091529150610ea29050565b610e9c816130cf565b93505050505b9392505050565b60075460ff1681565b60035481565b606881565b334114610edc5760405162461bcd60e51b8152600401610c3b90616dc7565b6010544311610efd5760405162461bcd60e51b8152600401610c3b90616789565b60005460ff16610f1f5760405162461bcd60e51b8152600401610c3b9061662d565b600f54610f37576032600f5561100231601155611237565b60006110023168056bc75e2d63100000811115610f6657610f5f81606463ffffffff613efb16565b9150610faf565b601154811115610fa857610f5f6064610f9c600f54610f9060115486613f3d90919063ffffffff16565b9063ffffffff613f7f16565b9063ffffffff613efb16565b5050611237565b6040516309a99b4f60e41b815261100290639a99b4f090610fd6903090869060040161630b565b602060405180830381600087803b158015610ff057600080fd5b505af1158015611004573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061102891906161a2565b6110023160115591508161103d575050611237565b6000805b8481101561106b5785858281811061105557fe5b9050602002013582019150806001019050611041565b508061107957505050611237565b6000806000805b8981101561122f578489898381811061109557fe5b905060200201358802816110a557fe5b0493508a8a828181106110b457fe5b90506020020160208101906110c9919061607f565b6001600160a01b038116600090815260046020526040902054909350915081156111e55760006001808403815481106110fe57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff161561116b57836001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d858660405161115e9190616ef0565b60405180910390a26111df565b60035461117e908663ffffffff613fb916565b6003908155810154611196908663ffffffff613fb916565b60038201556040516001600160a01b038516907fcb0aad6cf9cd03bdf6137e359f541c42f38b39f007cae8e89e88aa7d8c6617b2906111d6908890616ef0565b60405180910390a25b50611227565b826001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d858560405161121e9190616ef0565b60405180910390a25b600101611080565b505050505050505b5050436010555050565b60015460009082106112555750600061130b565b60006001600160a01b03166001838154811061126d57fe5b60009182526020909120600490910201546001600160a01b0316148061129d5750600854158061129d5750600a54155b806112ac575060085460095410155b806112bd57506112bb82611310565b155b806112e657506000600b83815481106112d257fe5b906000526020600020906016020160000154115b806112fa575060016112f66125ab565b5111155b156113075750600061130b565b5060015b919050565b60015460009082106113245750600061130b565b600b548210611361576001828154811061133a57fe5b9060005260206000209060040201600201601c9054906101000a900460ff1615905061130b565b6001828154811061136e57fe5b9060005260206000209060040201600201601c9054906101000a900460ff161580156113bb5750600b82815481106113a257fe5b600091825260209091206001601690920201015460ff16155b92915050565b33611001146113e25760405162461bcd60e51b8152600401610c3b90616e98565b600b546114a0576113f1615d6b565b60015460005b8181101561149c57600b8054600181018255600091909152835160008051602061714e833981519152601690920291820190815560208086015160008051602061718e8339815191528401805460ff19169115159190911790556040860151805187946114789360008051602061716e833981519152909101920190615d9a565b50606082015161148e9060038301906013615e14565b5050508060010190506113f7565b5050505b6001600160a01b038116600090815260046020526040902054806114c45750611517565b6001810390506000600b82815481106114d957fe5b600091825260209091206001601690920201015460ff1690506114fc8383613fde565b80156115055750805b15610c5b576009805460001901905550505b50565b60015460609081906000805b8281101561156d576001818154811061153b57fe5b9060005260206000209060040201600201601c9054906101000a900460ff16611565576001909101905b600101611526565b5060608160405190808252806020026020018201604052801561159a578160200160208202803683370190505b5090506060826040519080825280602002602001820160405280156115d357816020015b60608152602001906001900390816115be5790505b50600b546000945090915084141561174e5760005b8481101561174857600181815481106115fd57fe5b9060005260206000209060040201600201601c9054906101000a900460ff16611740576001818154811061162d57fe5b600091825260209091206004909102015483516001600160a01b039091169084908690811061165857fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600b818154811061168557fe5b600091825260209182902060026016909202018101805460408051601f60001961010060018616150201909316949094049182018590048502840185019052808352919290919083018282801561171d5780601f106116f25761010080835404028352916020019161171d565b820191906000526020600020905b81548152906001019060200180831161170057829003601f168201915b505050505082858151811061172e57fe5b60209081029190910101526001909301925b6001016115e8565b506117ea565b60005b848110156117e8576001818154811061176657fe5b9060005260206000209060040201600201601c9054906101000a900460ff166117e0576001818154811061179657fe5b600091825260209091206004909102015483516001600160a01b03909116908490869081106117c157fe5b6001600160a01b03909216602092830291909101909101526001909301925b600101611751565b505b909450925050505b9091565b61271081565b600181565b61100181565b60085481565b606181565b600881565b600e54600c5460609182918061182b575060155b60606118356125ab565b9050606061184282614391565b9050828251116118595790945092506117f2915050565b8383835103101561186b578282510393505b83156118a15760c8430461188783838388880360008a8a6144ff565b61189f8383838888038989038a8b8b8b5103016144ff565b505b6060836040519080825280602002602001820160405280156118cd578160200160208202803683370190505b50905060608460405190808252806020026020018201604052801561190657816020015b60608152602001906001900390816118f15790505b50905060005b858110156119875784818151811061192057fe5b602002602001015183828151811061193457fe5b60200260200101906001600160a01b031690816001600160a01b03168152505083818151811061196057fe5b602002602001015182828151811061197457fe5b602090810291909101015260010161190c565b509096509450505050509091565b60065481565b61200081565b600f5481565b6001600160a01b038116600090815260046020526040812054806119cf57600091505061130b565b60001901610ea281611310565b6001600160a01b03811660009081526004602052604081205480611a0457600091505061130b565b600180820381548110611a1357fe5b906000526020600020906004020160030154915050919050565b600081565b606781565b60105481565b60018181548110611a4a57fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b601081565b61100881565b6103e881565b600b81565b600c5481565b606681565b3361200014611aee5760405162461bcd60e51b8152600401610c3b90616d78565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051611b2193929190616f39565b60405180910390a1505050565b60025481565b60115481565b600a5481565b6001600160a01b03811660009081526004602052604081205480611b765760405162461bcd60e51b8152600401610c3b90616d00565b6000190192915050565b600b54611c3e57611b8f615d6b565b60015460005b81811015611c3a57600b8054600181018255600091909152835160008051602061714e833981519152601690920291820190815560208086015160008051602061718e8339815191528401805460ff1916911515919091179055604086015180518794611c169360008051602061716e833981519152909101920190615d9a565b506060820151611c2c9060038301906013615e14565b505050806001019050611b95565b5050505b600854611c4b5760036008555b600a54611c58576002600a555b6000611c6333611b40565b9050611c6e81611241565b611c8a5760405162461bcd60e51b8152600401610c3b90616a3d565b6115173382614656565b600981565b61100781565b600381565b60c881565b61100681565b604051806101e001604052806101ab8152602001616f836101ab913981565b60005460ff1681565b6402540be40081565b60005460ff16611d025760405162461bcd60e51b8152600401610c3b9061662d565b3361100714611d235760405162461bcd60e51b8152600401610c3b90616b06565b611d8d84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b602082015291506146ee9050565b15611e2a5760208114611db25760405162461bcd60e51b8152600401610c3b90616cba565b604080516020601f8401819004810282018101909252828152600091611df09185858083850183828082843760009201919091525061474792505050565b905060648110158015611e065750620186a08111155b611e225760405162461bcd60e51b8152600401610c3b906168e6565b600255612549565b611e8a84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260098152686275726e526174696f60b81b602082015291506146ee9050565b15611f265760208114611eaf5760405162461bcd60e51b8152600401610c3b906164b3565b604080516020601f8401819004810282018101909252828152600091611eed9185858083850183828082843760009201919091525061474792505050565b9050612710811115611f115760405162461bcd60e51b8152600401610c3b906167cb565b6006556007805460ff19166001179055612549565b611f9084848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260138152726d61784e756d4f664d61696e7461696e696e6760681b602082015291506146ee9050565b1561202a5760208114611fb55760405162461bcd60e51b8152600401610c3b906164ea565b604080516020601f8401819004810282018101909252828152600091611ff39185858083850183828082843760009201919091525061474792505050565b600c5490915080612002575060155b8082106120215760405162461bcd60e51b8152600401610c3b9061683e565b50600855612549565b61209384848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61696e7461696e536c6173685363616c6560701b602082015291506146ee9050565b1561212c57602081146120b85760405162461bcd60e51b8152600401610c3b906165b3565b604080516020601f84018190048102820181019092528281526000916120f69185858083850183828082843760009201919091525061474792505050565b90506000811180156121085750600a81105b6121245760405162461bcd60e51b8152600401610c3b90616e14565b600a55612549565b6121a084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601981527f6d61784e756d4f66576f726b696e6743616e6469646174657300000000000000602082015291506146ee9050565b1561222f57602081146121c55760405162461bcd60e51b8152600401610c3b90616567565b604080516020601f84018190048102820181019092528281526000916122039185858083850183828082843760009201919091525061474792505050565b9050600d548111156122275760405162461bcd60e51b8152600401610c3b9061695c565b600e55612549565b61229884848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61784e756d4f6643616e6469646174657360701b602082015291506146ee9050565b1561231a57602081146122bd5760405162461bcd60e51b8152600401610c3b90616b54565b604080516020601f84018190048102820181019092528281526000916122fb9185858083850183828082843760009201919091525061474792505050565b600d819055600e5490915081101561231457600d54600e555b50612549565b61237e84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c6e756d4f66436162696e65747360981b602082015291506146ee9050565b1561242c57602081146123a35760405162461bcd60e51b8152600401610c3b906165f8565b604080516020601f84018190048102820181019092528281526000916123e19185858083850183828082843760009201919091525061474792505050565b9050600081116124035760405162461bcd60e51b8152600401610c3b9061669b565b60298111156124245760405162461bcd60e51b8152600401610c3b906166e3565b600c55612549565b61249684848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601381527266696e616c697479526577617264526174696f60681b602082015291506146ee9050565b1561253157602081146124bb5760405162461bcd60e51b8152600401610c3b90616c3d565b604080516020601f84018190048102820181019092528281526000916124f99185858083850183828082843760009201919091525061474792505050565b90506001811015801561250d575060648111155b6125295760405162461bcd60e51b8152600401610c3b906169cb565b600f55612549565b60405162461bcd60e51b8152600401610c3b90616e71565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a8484848460405161257e9493929190616481565b60405180910390a150505050565b60046020526000908152604090205481565b68056bc75e2d6310000081565b6001546060906000805b828110156125da576125c681611310565b156125d2578160010191505b6001016125b5565b50606081604051908082528060200260200182016040528015612607578160200160208202803683370190505b5090506000915060005b8381101561268e5761262281611310565b15612686576001818154811061263457fe5b600091825260209091206004909102015482516001600160a01b039091169083908590811061265f57fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508260010192505b600101612611565b50925050505b90565b601581565b61100281565b603281565b60006126b16125ab565b519050600080600c54116126c65760156126ca565b600c545b9050808211156126d8578091505b816126e257600191505b5090565b67016345785d8a000081565b60055481565b61100381565b602981565b60005460ff16156127265760405162461bcd60e51b8152600401610c3b90616c06565b61272e615e41565b6000612754604051806101e001604052806101ab8152602001616f836101ab9139612f13565b91509150806127755760405162461bcd60e51b8152600401610c3b90616d37565b60005b82602001515181101561289a5760018360200151828151811061279757fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a09093015160039093019290925591860151805191850193918590811061286d57fe5b602090810291909101810151516001600160a01b0316825281019190915260400160002055600101612778565b50506103e8600255506000805460ff19166001179055565b600d5481565b33611001146128d95760405162461bcd60e51b8152600401610c3b90616e98565b600b54612997576128e8615d6b565b60015460005b8181101561299357600b8054600181018255600091909152835160008051602061714e833981519152601690920291820190815560208086015160008051602061718e8339815191528401805460ff191691151591909117905560408601518051879461296f9360008051602061716e833981519152909101920190615d9a565b5060608201516129859060038301906013615e14565b5050508060010190506128ee565b5050505b60006129a28261474c565b90506129ad81611241565b156129bc576129bc8282614656565b5050565b606581565b3341146129e45760405162461bcd60e51b8152600401610c3b90616dc7565b60005460ff16612a065760405162461bcd60e51b8152600401610c3b9061662d565b60003411612a265760405162461bcd60e51b8152600401610c3b9061692d565b6001600160a01b0381166000908152600460205260409020546007543491906103e89060ff1615612a5657506006545b600083118015612a665750600081115b15612b07576000612a83612710610f9c868563ffffffff613f7f16565b90508015612b055760405161dead9082156108fc029083906000818181858888f19350505050158015612aba573d6000803e3d6000fd5b507f627059660ea01c4733a328effb2294d2f86905bf806da763a89cee254de8bee581604051612aea9190616ef0565b60405180910390a1612b02848263ffffffff613f3d16565b93505b505b8115612c05576000600180840381548110612b1e57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff1615612b8b57846001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b485604051612b7e9190616ef0565b60405180910390a2612bff565b600354612b9e908563ffffffff613fb916565b6003908155810154612bb6908563ffffffff613fb916565b60038201556040516001600160a01b038616907f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc05590612bf6908790616ef0565b60405180910390a25b50612c47565b836001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b484604051612c3e9190616ef0565b60405180910390a25b50505050565b600e5481565b61100081565b61dead81565b600b8181548110612c6c57fe5b6000918252602091829020601691909102018054600180830154600280850180546040805161010096831615969096026000190190911692909204601f810188900488028501880190925281845293965060ff90911694919291830182828015612d175780601f10612cec57610100808354040283529160200191612d17565b820191906000526020600020905b815481529060010190602001808311612cfa57829003601f168201915b5050505050905083565b61100481565b6000600a5460001480612d38575081155b80612d435750600954155b15612d5057506000610ea2565b60096000815460019003919050819055506000612d9b600a54610f9c85610f9c600b8981548110612d7d57fe5b6000918252602090912060169091020154439063ffffffff613f3d16565b90506000600b8581548110612dac57fe5b906000526020600020906016020160010160006101000a81548160ff0219169083151502179055506000806110016001600160a01b0316638256ace66040518163ffffffff1660e01b8152600401604080518083038186803b158015612e1157600080fd5b505afa158015612e25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e4991906161ba565b9150915060009350808310612ec357612e628787613fde565b506040516305bfb49960e41b815261100190635bfb499090612e88908a906004016162f7565b600060405180830381600087803b158015612ea257600080fd5b505af1158015612eb6573d6000803e3d6000fd5b5050505060019350612ed5565b818310612ed557612ed38761474c565b505b6040516001600160a01b038816907fb9d38178dc641ff1817967a63c9078cbcd955a9f1fcd75e0e3636de615d44d3b90600090a25050509392505050565b612f1b615e41565b6000612f25615e41565b612f2d615e65565b612f3e612f39866148ef565b614914565b90506000805b612f4d8361495e565b156130c15780612f7257612f68612f638461497f565b6149cd565b60ff1684526130b9565b80600114156130b4576060612f8e612f898561497f565b614a4d565b90508051604051908082528060200260200182016040528015612fcb57816020015b612fb8615e85565b815260200190600190039081612fb05790505b508560200181905250805160405190808252806020026020018201604052801561300957816020015b6060815260200190600190039081612ff45790505b50604086015260005b81518110156130a957613023615e85565b6060600061304385858151811061303657fe5b6020026020010151614b1e565b92509250925080613063578860009a509a505050505050505050506130ca565b828960200151858151811061307457fe5b6020026020010181905250818960400151858151811061309057fe5b6020026020010181905250505050806001019050613012565b5060019250506130b9565b6130c1565b600101612f44565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b60608152602001906001900390816130e957905050905061310f8363ffffffff16614c38565b8160008151811061311c57fe5b6020026020010181905250610ea281614c4b565b60006029835111156131675760008051602061712e83398151915260405161315790616740565b60405180910390a15060666113bb565b60005b83518110156132055760005b818110156131fc5784818151811061318a57fe5b6020026020010151600001516001600160a01b03168583815181106131ab57fe5b6020026020010151600001516001600160a01b031614156131f45760008051602061712e8339815191526040516131e19061689b565b60405180910390a16066925050506113bb565b600101613176565b5060010161316a565b506060806132138585614cd5565b60015491935091506000908190815b818110156132985767016345785d8a00006001828154811061324057fe5b9060005260206000209060040201600301541061326257836001019350613290565b60006001828154811061327157fe5b9060005260206000209060040201600301541115613290578260010192505b600101613222565b506060836040519080825280602002602001820160405280156132c5578160200160208202803683370190505b5090506060846040519080825280602002602001820160405280156132f4578160200160208202803683370190505b509050606085604051908082528060200260200182016040528015613323578160200160208202803683370190505b509050606086604051908082528060200260200182016040528015613352578160200160208202803683370190505b5090506000606087604051908082528060200260200182016040528015613383578160200160208202803683370190505b5090506060886040519080825280602002602001820160405280156133b2578160200160208202803683370190505b509050600099506000985060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b1580156133fa57600080fd5b505afa15801561340e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061343291906161a2565b905067016345785d8a000081111561347d5760008051602061712e83398151915260405161345f90616bc5565b60405180910390a160689d50505050505050505050505050506113bb565b60005b898110156136ee5767016345785d8a00006001828154811061349e57fe5b9060005260206000209060040201600301541061362357600181815481106134c257fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316898d815181106134f357fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be4006001838154811061352857fe5b9060005260206000209060040201600301548161354157fe5b066001838154811061354f57fe5b9060005260206000209060040201600301540390506135778382613f3d90919063ffffffff16565b898e8151811061358357fe5b6020026020010181815250506001828154811061359c57fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316878e815181106135cd57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081888e815181106135fa57fe5b6020908102919091010152613615868263ffffffff613fb916565b95508c6001019c50506136e6565b60006001828154811061363257fe5b90600052602060002090600402016003015411156136e6576001818154811061365757fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316848c8151811061368857fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600181815481106136b557fe5b906000526020600020906004020160030154838c815181106136d357fe5b6020026020010181815250508a6001019a505b600101613480565b5060008415613964576002546040516303702b2960e51b815261100491636e056520918891613728918e918e918d914201906004016163e9565b6020604051808303818588803b15801561374157600080fd5b505af193505050508015613772575060408051601f3d908101601f1916820190925261376f9181019061610e565b60015b6138e9576040516000815260443d101561378e57506000613829565b60046000803e60005160e01c6308c379a081146137af576000915050613829565b60043d036004833e81513d60248201116001600160401b03821117156137da57600092505050613829565b80830180516001600160401b038111156137fb576000945050505050613829565b8060208301013d860181111561381957600095505050505050613829565b601f01601f191660405250925050505b806138345750613876565b60019150857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf28082604051613868919061646e565b60405180910390a2506138e4565b3d8080156138a0576040519150601f19603f3d011682016040523d82523d6000602084013e6138a5565b606091505b5060019150857fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a45826040516138da919061646e565b60405180910390a2505b613964565b801561392b577fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b708660405161391e9190616ef0565b60405180910390a1613962565b857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf28060405161395990616530565b60405180910390a25b505b8015613b1a5760005b8751811015613b1857600088828151811061398457fe5b6020026020010151905060006001828154811061399d57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc91859081106139ce57fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f1935050505090508015613a8a5760018281548110613a0f57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d9185908110613a5e57fe5b906000526020600020906004020160030154604051613a7d9190616ef0565b60405180910390a2613b0e565b60018281548110613a9757fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d9185908110613ae657fe5b906000526020600020906004020160030154604051613b059190616ef0565b60405180910390a25b505060010161396d565b505b835115613c645760005b8451811015613c62576000858281518110613b3b57fe5b60200260200101516001600160a01b03166108fc868481518110613b5b57fe5b60200260200101519081150290604051600060405180830381858888f1935050505090508015613bf157858281518110613b9157fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d868481518110613bcf57fe5b6020026020010151604051613be49190616ef0565b60405180910390a2613c59565b858281518110613bfd57fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d868481518110613c3b57fe5b6020026020010151604051613c509190616ef0565b60405180910390a25b50600101613b24565b505b5050505050505050505050506000471115613ce0577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d47604051613ca89190616ef0565b60405180910390a1604051611002904780156108fc02916000818181858888f19350505050158015613cde573d6000803e3d6000fd5b505b60006003819055600555815115613cfb57613cfb8282614f0e565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015613d3857600080fd5b505af1158015613d4c573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a1506000949350505050565b80516001600160a01b0316600090815260046020526040812054801580613dd55750600180820381548110613db557fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b15613e1b5782516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a2600091505061130b565b600154600554600019820111801590613e715784516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a26000935050505061130b565b600580546001908101909155805481906000198601908110613e8f57fe5b6000918252602082206002600490920201018054921515600160e01b0260ff60e01b199093169290921790915585516040516001600160a01b03909116917ff226e7d8f547ff903d9d419cf5f54e0d7d07efa9584135a53a057c5f1f27f49a91a2506000949350505050565b6000610ea283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506156ed565b6000610ea283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250615724565b600082613f8e575060006113bb565b82820282848281613f9b57fe5b0414610ea25760405162461bcd60e51b8152600401610c3b90616ac5565b600082820183811015610ea25760405162461bcd60e51b8152600401610c3b90616664565b60008060018381548110613fee57fe5b906000526020600020906004020160030154905060006001808054905003905060016140186125ab565b511161404d5760006001858154811061402d57fe5b9060005260206000209060040201600301819055506000925050506113bb565b846001600160a01b03167f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a70836040516140869190616ef0565b60405180910390a26001600160a01b038516600090815260046020526040812055835b6001546000190181101561427357600181600101815481106140c757fe5b9060005260206000209060040201600182815481106140e257fe5b60009182526020909120825460049092020180546001600160a01b03199081166001600160a01b0393841617825560018085015481840180548416918616919091179055600280860180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b19909416939093179055600392830154920191909155600b8054909183019081106141a357fe5b9060005260206000209060160201600b82815481106141be57fe5b600091825260209091208254601690920201908155600180830154818301805460ff909216151560ff1990921691909117905560028084018054614215938386019390821615610100026000190190911604615eba565b5061422860038281019084016013615f2f565b5090505080600101600460006001848154811061424157fe5b600091825260208083206004909202909101546001600160a01b031683528201929092526040019020556001016140a9565b50600180548061427f57fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b8054806142d257fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906143046002830182615f59565b614312600383016000615f9d565b50509055600081838161432157fe5b04905080156143855760015460005b8181101561438257826001828154811061434657fe5b906000526020600020906004020160030154016001828154811061436657fe5b6000918252602090912060036004909202010155600101614330565b50505b50600195945050505050565b6001548151604080518281526020808402820101909152606092919083908280156143d057816020015b60608152602001906001900390816143bb5790505b50600b5490915083146143e757925061130b915050565b60005b828110156144f657600b60016004600089858151811061440657fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054038154811061443a57fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156144d25780601f106144a7576101008083540402835291602001916144d2565b820191906000526020600020905b8154815290600101906020018083116144b557829003601f168201915b50505050508282815181106144e357fe5b60209081029190910101526001016143ea565b50949350505050565b60005b8281101561464c57600082878388016040516020016145229291906162e9565b6040516020818303038152906040528051906020012060001c8161454257fe5b06905080850182870114614643576000898388018151811061456057fe5b602002602001015190506060898489018151811061457a57fe5b602002602001015190508a8388018151811061459257fe5b60200260200101518b858a01815181106145a857fe5b60200260200101906001600160a01b031690816001600160a01b031681525050818b848901815181106145d757fe5b60200260200101906001600160a01b031690816001600160a01b031681525050898388018151811061460557fe5b60200260200101518a858a018151811061461b57fe5b6020026020010181905250808a8489018151811061463557fe5b602002602001018190525050505b50600101614502565b5050505050505050565b600980546001908101909155600b80548390811061467057fe5b906000526020600020906016020160010160006101000a81548160ff02191690831515021790555043600b82815481106146a657fe5b600091825260208220601690910201919091556040516001600160a01b038416917ff62981a567ec3cec866c6fa93c55bcdf841d6292d18b8d522ececa769375d82d91a25050565b60008160405160200161470191906162cd565b604051602081830303815290604052805190602001208360405160200161472891906162cd565b6040516020818303038152906040528051906020012014905092915050565b015190565b6001600160a01b038116600090815260046020526040812054806147755750600019905061130b565b60018103905060006001828154811061478a57fe5b90600052602060002090600402016003015490506000600183815481106147ad57fe5b6000918252602090912060036004909202010155600154604051600019909101906001600160a01b038616907f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d90614806908590616ef0565b60405180910390a28061481e5782935050505061130b565b600081838161482957fe5b04905080156148e55760005b8481101561488757816001828154811061484b57fe5b906000526020600020906004020160030154016001828154811061486b57fe5b6000918252602090912060036004909202010155600101614835565b50600180549085015b818110156148e25782600182815481106148a657fe5b90600052602060002090600402016003015401600182815481106148c657fe5b6000918252602090912060036004909202010155600101614890565b50505b5091949350505050565b6148f7615fac565b506040805180820190915281518152602082810190820152919050565b61491c615e65565b61492582615750565b61492e57600080fd5b600061493d836020015161578a565b60208085015160408051808201909152868152920190820152915050919050565b6000614968615fac565b505080518051602091820151919092015191011190565b614987615fac565b6149908261495e565b61499957600080fd5b602082015160006149a9826157ed565b80830160209586015260408051808201909152908152938401919091525090919050565b8051600090158015906149e257508151602110155b6149eb57600080fd5b60006149fa836020015161578a565b90508083600001511015614a205760405162461bcd60e51b8152600401610c3b90616c83565b8251602080850151830180519284900392918310156144f657506020919091036101000a90049392505050565b6060614a5882615750565b614a6157600080fd5b6000614a6c836158ce565b9050606081604051908082528060200260200182016040528015614aaa57816020015b614a97615fac565b815260200190600190039081614a8f5790505b5090506000614abc856020015161578a565b60208601510190506000805b84811015614b1357614ad9836157ed565b9150604051806040016040528083815260200184815250848281518110614afc57fe5b602090810291909101015291810191600101614ac8565b509195945050505050565b614b26615e85565b60606000614b32615e85565b6060614b3c615e65565b614b4587614914565b90506000805b614b548361495e565b15614c295780614b7f57614b6f614b6a8461497f565b61592a565b6001600160a01b03168552614c21565b8060011415614ba757614b94614b6a8461497f565b6001600160a01b03166020860152614c21565b8060021415614bcf57614bbc614b6a8461497f565b6001600160a01b03166040860152614c21565b8060031415614bfb57614be4612f638461497f565b6001600160401b0316606086015260019150614c21565b8060041415614c1c57614c15614c108461497f565b615944565b9350614c21565b614c29565b600101614b4b565b50929791965091945092505050565b60606113bb614c46836159b4565b615a9a565b6060815160001415614c6c575060408051600081526020810190915261130b565b606082600081518110614c7b57fe5b602002602001015190506000600190505b8351811015614cbc57614cb282858381518110614ca557fe5b6020026020010151615aec565b9150600101614c8c565b50610ea2614ccf825160c060ff16615b69565b82615aec565b606080600080808080614ce66126a7565b6001549091505b8015614df457600181039250600b8381548110614d0657fe5b600091825260209091206001601690920201015460ff16614d2657614deb565b60018381548110614d3357fe5b60009182526020909120600490910201546001600160a01b03169450614d5a858484612d27565b9350831580614d6d575060018a51038610155b15614d7757614deb565b60005b8a51811015614de957856001600160a01b03168b8281518110614d9957fe5b6020026020010151600001516001600160a01b03161415614de15760018b8281518110614dc257fe5b6020908102919091010151901515608090910152600190960195614de9565b600101614d7a565b505b60001901614ced565b5084895103604051908082528060200260200182016040528015614e3257816020015b614e1f615e85565b815260200190600190039081614e175790505b50965084895103604051908082528060200260200182016040528015614e6c57816020015b6060815260200190600190039081614e575790505b5095506000915060005b8951811015614f0057898181518110614e8b57fe5b602002602001015160800151614ef857898181518110614ea757fe5b6020026020010151888481518110614ebb57fe5b6020026020010181905250888181518110614ed257fe5b6020026020010151878481518110614ee657fe5b60200260200101819052508260010192505b600101614e76565b5050505050505b9250929050565b600154825160005b8281101561502b576001614f28615e85565b60018381548110614f3557fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b84811015614fff57878181518110614fc557fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b03161415614ff75760009250614fff565b600101614fb1565b5081156150215780516001600160a01b03166000908152600460205260408120555b5050600101614f16565b50808211156150ea57805b828110156150e857600180548061504957fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b80548061509c57fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906150ce6002830182615f59565b6150dc600383016000615f9d565b50509055600101615036565b505b60008183106150f957816150fb565b825b905060005b8181101561549f576151ad86828151811061511757fe5b60200260200101516001838154811061512c57fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a0820152615c3b565b6153615780600101600460008884815181106151c557fe5b6020026020010151600001516001600160a01b03166001600160a01b031681526020019081526020016000208190555085818151811061520157fe5b60200260200101516001828154811061521657fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a09091015160039091015584518590829081106152d157fe5b6020026020010151600b82815481106152e657fe5b9060005260206000209060160201600201908051906020019061530a929190615d9a565b506000600b828154811061531a57fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b80548390811061534b57fe5b6000918252602090912060169091020155615497565b61542785828151811061537057fe5b6020026020010151600b838154811061538557fe5b600091825260209182902060026016909202018101805460408051601f60001961010060018616150201909316949094049182018590048502840185019052808352919290919083018282801561541d5780601f106153f25761010080835404028352916020019161541d565b820191906000526020600020905b81548152906001019060200180831161540057829003601f168201915b5050505050615cbc565b6154725784818151811061543757fe5b6020026020010151600b828154811061544c57fe5b90600052602060002090601602016002019080519060200190615470929190615d9a565b505b60006001828154811061548157fe5b9060005260206000209060040201600301819055505b600101615100565b5082821115615677576154b0615d6b565b835b83811015615674578581815181106154c657fe5b6020026020010151826040018190525060018782815181106154e457fe5b6020908102919091018101518254600181810185556000948552838520835160049093020180546001600160a01b039384166001600160a01b0319918216178255848601518284018054918616918316919091179055604080860151600284018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909a1692909616919091179290921696909617169190911790935560a090930151600390930192909255600b805492830181559093528451601690910260008051602061714e83398151915281019182558583015160008051602061718e8339815191528201805491151560ff199092169190911790559285015180518694929361561a9360008051602061716e83398151915201920190615d9a565b5060608201516156309060038301906013615e14565b505050806001016004600089848151811061564757fe5b602090810291909101810151516001600160a01b03168252810191909152604001600020556001016154b2565b50505b6000600981905560015493505b838110156156e5576000600b828154811061569b57fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b8054839081106156cc57fe5b6000918252602090912060169091020155600101615684565b505050505050565b6000818361570e5760405162461bcd60e51b8152600401610c3b919061646e565b50600083858161571a57fe5b0495945050505050565b600081848411156157485760405162461bcd60e51b8152600401610c3b919061646e565b505050900390565b80516000906157615750600061130b565b6020820151805160001a9060c08210156157805760009250505061130b565b5060019392505050565b8051600090811a60808110156157a457600091505061130b565b60b88110806157bf575060c081108015906157bf575060f881105b156157ce57600191505061130b565b60c08110156157e25760b51901905061130b565b60f51901905061130b565b80516000908190811a608081101561580857600191506158c7565b60b881101561581d57607e19810191506158c7565b60c081101561586e57600060b78203600186019550806020036101000a8651049150600181018201935050808310156158685760405162461bcd60e51b8152600401610c3b90616a12565b506158c7565b60f88110156158835760be19810191506158c7565b600060f78203600186019550806020036101000a8651049150600181018201935050808310156158c55760405162461bcd60e51b8152600401610c3b90616a12565b505b5092915050565b80516000906158df5750600061130b565b600080905060006158f3846020015161578a565b602085015185519181019250015b8082101561592157615912826157ed565b82019150826001019250615901565b50909392505050565b805160009060151461593b57600080fd5b6113bb826149cd565b805160609061595257600080fd5b6000615961836020015161578a565b83516040805191839003808352601f19601f8201168301602001909152919250606090828015615998576020820181803683370190505b50905060008160200190506144f6848760200151018285615d20565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166159f857506018615a1c565b6fffffffffffffffffffffffffffffffff198416615a1857506010615a1c565b5060005b6020811015615a5257818181518110615a3157fe5b01602001516001600160f81b03191615615a4a57615a52565b600101615a1c565b60008160200390506060816040519080825280601f01601f191660200182016040528015615a87576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015615acc5750607f60f81b82600081518110615aba57fe5b01602001516001600160f81b03191611155b15615ad857508061130b565b6113bb615aea8351608060ff16615b69565b835b6060806040519050835180825260208201818101602087015b81831015615b1d578051835260209283019201615b05565b50855184518101855292509050808201602086015b81831015615b4a578051835260209283019201615b32565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310615b935760405162461bcd60e51b8152600401610c3b90616816565b60408051600180825281830190925260609160208201818036833701905050905060378411615bed5782840160f81b81600081518110615bcf57fe5b60200101906001600160f81b031916908160001a90535090506113bb565b6060615bf8856159b4565b90508381510160370160f81b82600081518110615c1157fe5b60200101906001600160f81b031916908160001a905350615c328282615aec565b95945050505050565b805182516000916001600160a01b039182169116148015615c75575081602001516001600160a01b031683602001516001600160a01b0316145b8015615c9a575081604001516001600160a01b031683604001516001600160a01b0316145b8015610ea25750506060908101519101516001600160401b0390811691161490565b815181516000916001918114808314615cd85760009250615d16565b600160208701838101602088015b600284838510011415615d11578051835114615d055760009650600093505b60209283019201615ce6565b505050505b5090949350505050565b80615d2a57610c5b565b5b60208110615d4a578251825260209283019290910190601f1901615d2b565b915181516020939093036101000a6000190180199091169216919091179052565b60405180608001604052806000815260200160001515815260200160608152602001615d95615fc6565b905290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10615ddb57805160ff1916838001178555615e08565b82800160010185558215615e08579182015b82811115615e08578251825591602001919060010190615ded565b506126e2929150615fe5565b8260138101928215615e085791602002820182811115615e08578251825591602001919060010190615ded565b6040518060600160405280600060ff16815260200160608152602001606081525090565b6040518060400160405280615e78615fac565b8152602001600081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10615ef35780548555615e08565b82800160010185558215615e0857600052602060002091601f016020900482015b82811115615e08578254825591600101919060010190615f14565b8260138101928215615e085791820182811115615e08578254825591600101919060010190615f14565b50805460018160011615610100020316600290046000825580601f10615f7f5750611517565b601f0160209004906000526020600020908101906115179190615fe5565b50611517906013810190615fe5565b604051806040016040528060008152602001600081525090565b6040518061026001604052806013906020820280368337509192915050565b61269491905b808211156126e25760008155600101615feb565b60008083601f840112616010578182fd5b5081356001600160401b03811115616026578182fd5b6020830191508360208083028501011115614f0757600080fd5b60008083601f840112616051578182fd5b5081356001600160401b03811115616067578182fd5b602083019150836020828501011115614f0757600080fd5b600060208284031215616090578081fd5b81356001600160a01b0381168114610ea2578182fd5b600080600080604085870312156160bb578283fd5b84356001600160401b03808211156160d1578485fd5b6160dd88838901615fff565b909650945060208701359150808211156160f5578384fd5b5061610287828801615fff565b95989497509550505050565b60006020828403121561611f578081fd5b81518015158114610ea2578182fd5b60008060008060408587031215616143578384fd5b84356001600160401b0380821115616159578586fd5b61616588838901616040565b9096509450602087013591508082111561617d578384fd5b5061610287828801616040565b60006020828403121561619b578081fd5b5035919050565b6000602082840312156161b3578081fd5b5051919050565b600080604083850312156161cc578182fd5b505080516020909101519092909150565b6000806000604084860312156161f1578283fd5b833560ff81168114616201578384fd5b925060208401356001600160401b0381111561621b578283fd5b61622786828701616040565b9497909650939450505050565b6000815180845260208085019450808401835b8381101561626c5781516001600160a01b031687529582019590820190600101616247565b509495945050505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b600081518084526162b9816020860160208601616f56565b601f01601f19169290920160200192915050565b600082516162df818460208701616f56565b9190910192915050565b918252602082015260400190565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b03968716815294861660208601529290941660408401526001600160401b03166060830152911515608082015260a081019190915260c00190565b600060208252610ea26020830184616234565b60006040825261638c6040830185616234565b602083820381850152818551808452828401915082838202850101838801865b838110156163da57601f198784030185526163c88383516162a1565b948601949250908501906001016163ac565b50909998505050505050505050565b6000608082526163fc6080830187616234565b828103602084810191909152865180835287820192820190845b8181101561643257845183529383019391830191600101616416565b505084810360408601526164468188616234565b93505050506001600160401b038316606083015295945050505050565b901515815260200190565b600060208252610ea260208301846162a1565b600060408252616495604083018688616277565b82810360208401526164a8818587616277565b979650505050505050565b6020808252601c908201527f6c656e677468206f66206275726e526174696f206d69736d6174636800000000604082015260600190565b60208082526026908201527f6c656e677468206f66206d61784e756d4f664d61696e7461696e696e67206d696040820152650e6dac2e8c6d60d31b606082015260800190565b6020808252601b908201527f6261746368207472616e736665722072657475726e2066616c73650000000000604082015260600190565b6020808252602c908201527f6c656e677468206f66206d61784e756d4f66576f726b696e6743616e6469646160408201526b0e8cae640dad2e6dac2e8c6d60a31b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61696e7461696e536c6173685363616c65206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252818101527f6c656e677468206f66206e756d4f66436162696e657473206d69736d61746368604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526028908201527f746865206e756d4f66436162696e657473206d75737420626520677265617465604082015267072207468616e20360c41b606082015260800190565b60208082526039908201527f746865206e756d4f66436162696e657473206d757374206265206c657373207460408201527f68616e204d41585f4e554d5f4f465f56414c494441544f525300000000000000606082015260800190565b60208082526029908201527f746865206e756d626572206f662076616c696461746f727320657863656564206040820152681d1a19481b1a5b5a5d60ba1b606082015260800190565b60208082526022908201527f63616e206e6f7420646f207468697320747769636520696e206f6e6520626c6f604082015261636b60f01b606082015260800190565b6020808252602b908201527f746865206275726e526174696f206d757374206265206e6f206772656174657260408201526a0207468616e2031303030360ac1b606082015260800190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526037908201527f746865206d61784e756d4f664d61696e7461696e696e67206d7573742062652060408201527f6c657373207468616e206e756d4f66436162696e657473000000000000000000606082015260800190565b6020808252602b908201527f6475706c696361746520636f6e73656e7375732061646472657373206f66207660408201526a185b1a59185d1bdc94d95d60aa1b606082015260800190565b60208082526027908201527f7468652065787069726554696d655365636f6e64476170206973206f7574206f604082015266662072616e676560c81b606082015260800190565b6020808252601590820152746465706f7369742076616c7565206973207a65726f60581b604082015260600190565b60208082526049908201527f746865206d61784e756d4f66576f726b696e6743616e64696461746573206d7560408201527f7374206265206e6f742067726561746572207468616e206d61784e756d4f6643606082015268616e6469646174657360b81b608082015260a00190565b60208082526027908201527f7468652066696e616c697479526577617264526174696f206973206f7574206f604082015266662072616e676560c81b606082015260800190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b60208082526023908201527f63616e206e6f7420656e7465722054656d706f72617279204d61696e74656e616040820152626e636560e81b606082015260800190565b60208082526025908201527f6c656e677468206f66206a61696c2076616c696461746f7273206d757374206260408201526465206f6e6560d81b606082015260800190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61784e756d4f6643616e64696461746573206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252601290820152716e6f7420696e206d61696e74656e616e636560701b604082015260600190565b60208082526021908201527f666565206973206c6172676572207468616e2044555354595f494e434f4d494e6040820152604760f81b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b60208082526026908201527f6c656e677468206f662066696e616c697479526577617264526174696f206d696040820152650e6dac2e8c6d60d31b606082015260800190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526026908201527f6c656e677468206f662065787069726554696d655365636f6e64476170206d696040820152650e6dac2e8c6d60d31b606082015260800190565b60208082526017908201527f6f6e6c792063757272656e742076616c696461746f7273000000000000000000604082015260600190565b60208082526021908201527f6661696c656420746f20706172736520696e69742076616c696461746f7253656040820152601d60fa1b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b6020808252603e908201527f746865206d61696e7461696e536c6173685363616c65206d757374206265206760408201527f726561746572207468616e203020616e64206c657373207468616e2031300000606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b60208082526029908201527f746865206d6573736167652073656e646572206d75737420626520736c6173686040820152680818dbdb9d1c9858dd60ba1b606082015260800190565b61ffff91909116815260200190565b90815260200190565b6000848252831515602083015260606040830152615c3260608301846162a1565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff8516825260406020830152615c32604083018486616277565b60005b83811015616f71578181015183820152602001616f59565b83811115612c47575050600091015256fef901a880f901a4f844941284214b9b9c85549ab3d2b972df0deef66ac2c9946ddf42a51534fc98d0c0a3b42c963cace8441ddf946ddf42a51534fc98d0c0a3b42c963cace8441ddf8410000000f84494a2959d3f95eae5dc7d70144ce1b73b403b7eb6e0948081ef03f1d9e0bb4a5bf38f16285c879299f07f948081ef03f1d9e0bb4a5bf38f16285c879299f07f8410000000f8449435552c16704d214347f29fa77f77da6d75d7c75294dc4973e838e3949c77aced16ac2315dc2d7ab11194dc4973e838e3949c77aced16ac2315dc2d7ab1118410000000f84494980a75ecd1309ea12fa2ed87a8744fbfc9b863d594cc6ac05c95a99c1f7b5f88de0e3486c82293b27094cc6ac05c95a99c1f7b5f88de0e3486c82293b2708410000000f84494f474cf03cceff28abc65c9cbae594f725c80e12d94e61a183325a18a173319dd8e19c8d069459e217594e61a183325a18a173319dd8e19c8d069459e21758410000000f84494b71b214cb885500844365e95cd9942c7276e7fd894d22ca3ba2141d23adab65ce4940eb7665ea2b6a794d22ca3ba2141d23adab65ce4940eb7665ea2b6a7841000000070e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb20175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbb0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbaa2646970667358221220df3b2f2afc524f6a9eb81529e8bd736333e37b7197419580d4e42bd858b6b14264736f6c63430006040033", - }, - { - ContractAddr: SlashContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/b144718e94d7a1ebb24a7103202300f08826f369", - Code: "608060405234801561001057600080fd5b506004361061027f5760003560e01c80637942fd051161015c578063c80d4b8f116100ce578063dc927faf11610087578063dc927faf146104ad578063e1c7392a146104b5578063f9a2bbc7146104bd578063fc3e5908146104c5578063fc4333cd146104cd578063fd6a6879146104d55761027f565b8063c80d4b8f1461045c578063c81b166214610464578063c8509d811461046c578063c96be4cb1461047f578063cc844b7314610492578063d2a42e4b146104a55761027f565b80639dc09262116101205780639dc0926214610421578063a1a11bf514610429578063a78abc1614610431578063ab51bb9614610439578063ac0af62914610441578063ac431751146104495761027f565b80637942fd05146103ee5780638256ace6146103f6578063831d65d1146103fe57806396713da9146104115780639bc8e4f2146104195761027f565b8063493279b1116101f557806362b72cf5116101b957806362b72cf5146103be5780636e47b482146103c657806370fd5bad146103ce578063718a8aa8146103d657806375d47a0a146103de5780637912a65d146103e65761027f565b8063493279b11461037c5780634bf6c8821461039157806351e8067214610399578063567a372d146103a15780635bfb4990146103a95761027f565b806335aa2e441161024757806335aa2e441461030e57806337c8dab914610321578063389f4f71146103425780633a63f4b1146103575780633dffc3871461035f57806343756e5c146103745761027f565b80630bee7a67146102845780630e2374a5146102a25780631182b875146102b757806322d1e80b146102d757806323bac5a2146102ec575b600080fd5b61028c6104dd565b60405161029991906132a4565b60405180910390f35b6102aa6104e2565b6040516102999190612b82565b6102ca6102c5366004612ab8565b6104e8565b6040516102999190612bba565b6102df61054e565b6040516102999190612baf565b6102ff6102fa366004612866565b610557565b6040516102999392919061328c565b6102aa61031c366004612a88565b61057a565b61033461032f366004612866565b6105a1565b60405161029992919061327e565b61034a6105f8565b6040516102999190613254565b61034a6105fe565b610367610604565b60405161029991906132b5565b6102aa610609565b61038461060f565b6040516102999190613245565b610367610614565b6102aa610619565b61034a61061f565b6103bc6103b7366004612866565b610625565b005b61034a6106d0565b6102aa6106d6565b6103676106dc565b6103676106e1565b6102aa6106e6565b61034a6106ec565b6103676106f1565b6103346106f6565b6103bc61040c366004612ab8565b610700565b610367610812565b61034a610817565b6102aa610822565b6102aa610828565b6102df61082e565b61028c610837565b61034a61083c565b6103bc61045736600461296c565b610841565b61034a610ce0565b6102aa610ce5565b6103bc61047a366004612ab8565b610ceb565b6103bc61048d366004612866565b610d5c565b6103bc6104a03660046129d5565b61114d565b61034a61169a565b6102aa61169f565b6103bc6116a5565b6102aa6116e1565b6103676116e7565b6103bc6116ec565b6102aa611b35565b606481565b61200181565b606033612000146105145760405162461bcd60e51b815260040161050b906130cb565b60405180910390fd5b60005460ff166105365760405162461bcd60e51b815260040161050b90612c9b565b60405162461bcd60e51b815260040161050b9061318e565b60075460ff1681565b600260208190526000918252604090912080546001820154919092015460ff1683565b6001818154811061058757fe5b6000918252602090912001546001600160a01b0316905081565b6000806105ac61264d565b5050506001600160a01b0316600090815260026020818152604092839020835160608101855281548082526001830154938201849052919093015460ff16151592909301919091529091565b60055481565b60065481565b600181565b61100181565b606181565b600881565b61200081565b60045481565b33611000146106465760405162461bcd60e51b815260040161050b90612edf565b60005460ff166106685760405162461bcd60e51b815260040161050b90612c9b565b61200063f7a251d7600b61067b84611b3b565b60006040518463ffffffff1660e01b815260040161069b939291906132c3565b600060405180830381600087803b1580156106b557600080fd5b505af11580156106c9573d6000803e3d6000fd5b5050505050565b60035481565b61100581565b600281565b601081565b61100881565b603281565b600b81565b6004546005549091565b33612000146107215760405162461bcd60e51b815260040161050b906130cb565b60005460ff166107435760405162461bcd60e51b815260040161050b90612c9b565b61074b612670565b600061078c84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611c0d92505050565b9150915080156107d35781516040517f7f0956d47419b9525356e7111652b653b530ec6f5096dccc04589bc38e629967916107c6916132a4565b60405180910390a16106c9565b81516040517f7d45f62d17443dd4547bca8a8112c60e2385669318dc300ec61a5d2492f262e791610803916132a4565b60405180910390a15050505050565b600981565b662386f26fc1000081565b61100781565b61100681565b60005460ff1681565b600081565b600481565b60005460ff166108635760405162461bcd60e51b815260040161050b90612c9b565b33611007146108845760405162461bcd60e51b815260040161050b90612f88565b6108ef84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260148152731b5a5cd9195b59585b9bdc951a1c995cda1bdb1960621b60208201529150611c8d9050565b1561098a57602081146109145760405162461bcd60e51b815260040161050b90612e6b565b604080516020601f840181900481028201810190925282815260009161095291858580838501838280828437600092019190915250611ce792505050565b905060018110158015610966575060055481105b6109825760405162461bcd60e51b815260040161050b90613086565b600455610c9d565b6109f084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e19995b1bdb9e551a1c995cda1bdb19608a1b60208201529150611c8d9050565b15610a8c5760208114610a155760405162461bcd60e51b815260040161050b90612fd6565b604080516020601f8401819004810282018101909252828152600091610a5391858580838501838280828437600092019190915250611ce792505050565b90506103e88111158015610a68575060045481115b610a845760405162461bcd60e51b815260040161050b90612d09565b600555610c9d565b610b0084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f66696e616c697479536c617368526577617264526174696f000000000000000060208201529150611c8d9050565b15610b9a5760208114610b255760405162461bcd60e51b815260040161050b906131c5565b604080516020601f8401819004810282018101909252828152600091610b6391858580838501838280828437600092019190915250611ce792505050565b9050600a8110158015610b765750606481105b610b925760405162461bcd60e51b815260040161050b90612e1f565b600655610c9d565b610c0e84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f656e61626c654d616c6963696f7573566f7465536c617368000000000000000060208201529150611c8d9050565b15610c855760208114610c335760405162461bcd60e51b815260040161050b90612d3e565b604080516020601f8401819004810282018101909252828152610c6f9190848480838501838280828437600092019190915250611cec92505050565b6007805460ff1916911515919091179055610c9d565b60405162461bcd60e51b815260040161050b90613167565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a84848484604051610cd29493929190612bcd565b60405180910390a150505050565b609681565b61100281565b3361200014610d0c5760405162461bcd60e51b815260040161050b906130cb565b60005460ff16610d2e5760405162461bcd60e51b815260040161050b90612c9b565b6040517f07db600eebe2ac176be8dcebad61858c245a4961bb32ca2aa3d159b09aa0810e90600090a1505050565b334114610d7b5760405162461bcd60e51b815260040161050b9061311a565b60005460ff16610d9d5760405162461bcd60e51b815260040161050b90612c9b565b6003544311610dbe5760405162461bcd60e51b815260040161050b90613210565b3a15610ddc5760405162461bcd60e51b815260040161050b90612f5a565b60405163155853f360e21b8152611000906355614fcc90610e01908490600401612b82565b60206040518083038186803b158015610e1957600080fd5b505afa158015610e2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e51919061294c565b610e5a57611146565b610e6261264d565b506001600160a01b0381166000908152600260208181526040928390208351606081018552815481526001820154928101929092529091015460ff161580159282019290925290610ebd576020810180516001019052610f16565b60016040820181905260208201819052805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0384161790555b438152600554602082015181610f2857fe5b0661107457600060208201526040516335409f7f60e01b8152611000906335409f7f90610f59908590600401612b82565b600060405180830381600087803b158015610f7357600080fd5b505af1158015610f87573d6000803e3d6000fd5b505050506120006001600160a01b031663f7a251d7600b610fa785611b3b565b60006040518463ffffffff1660e01b8152600401610fc7939291906132c3565b600060405180830381600087803b158015610fe157600080fd5b505af1925050508015610ff2575060015b61106f573d808015611020576040519150601f19603f3d011682016040523d82523d6000602084013e611025565b606091505b50826001600160a01b03167fd7bc86ff5d08c8ab043edec743302aba2520e6635172a428bc956721db9e2d1c83602001518360405161106592919061325d565b60405180910390a2505b6110e0565b60045481602001518161108357fe5b066110e0576040516375abf10160e11b81526110009063eb57e202906110ad908590600401612b82565b600060405180830381600087803b1580156110c757600080fd5b505af11580156110db573d6000803e3d6000fd5b505050505b6001600160a01b0382166000818152600260208181526040808420865181559186015160018301558581015191909201805460ff1916911515919091179055517fddb6012116e51abf5436d956a4f0ebd927e92c576ff96d7918290c8782291e3e9190a2505b5043600355565b60005460ff1661116f5760405162461bcd60e51b815260040161050b90612c9b565b604051630a83aaa960e31b81526110069063541d554890611194903390600401612b82565b60206040518083038186803b1580156111ac57600080fd5b505afa1580156111c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111e4919061294c565b6112005760405162461bcd60e51b815260040161050b90612bff565b60075460ff166112225760405162461bcd60e51b815260040161050b90612c66565b60065461122f5760146006555b8051514361010090910111801561125157504381602001516000015161010001115b61126d5760405162461bcd60e51b815260040161050b90612c36565b80602001516020015181600001516020015114801561129b5750806020015160600151816000015160600151145b156112b85760405162461bcd60e51b815260040161050b90612eb2565b8051604081015190511080156112d75750602081015160408101519051105b6112f35760405162461bcd60e51b815260040161050b90612de8565b6020810151518151511080156113185750806000015160400151816020015160400151105b8061134357508051516020820151511080156113435750806020015160400151816000015160400151105b8061135d5750806020015160400151816000015160400151145b6113795760405162461bcd60e51b815260040161050b90612cd2565b61138b81600001518260400151611d14565b80156113a457506113a481602001518260400151611d14565b6113c05760405162461bcd60e51b815260040161050b90612d89565b6060806110006001600160a01b0316633b071dcc6040518163ffffffff1660e01b815260040160006040518083038186803b1580156113fe57600080fd5b505afa158015611412573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261143a9190810190612889565b9150915060005b81518110156115775761146b82828151811061145957fe5b60200260200101518560400151611eec565b1561156f576006546040516309a99b4f60e41b815260646110028031909302049190639a99b4f0906114a39033908590600401612b96565b602060405180830381600087803b1580156114bd57600080fd5b505af11580156114d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f59190612aa0565b506110006001600160a01b03166335409f7f85848151811061151357fe5b60200260200101516040518263ffffffff1660e01b81526004016115379190612b82565b600060405180830381600087803b15801561155157600080fd5b505af1158015611565573d6000803e3d6000fd5b5050505050611577565b600101611441565b50600061158984604001516000611f50565b90506120006001600160a01b031663f7a251d7600b6115ab8760400151611f6c565b60006040518463ffffffff1660e01b81526004016115cb939291906132c3565b600060405180830381600087803b1580156115e557600080fd5b505af19250505080156115f6575060015b611668573d808015611624576040519150601f19603f3d011682016040523d82523d6000602084013e611629565b606091505b50817fd58d1183100bd0932c0588f31c4205d6bc6168909765a96c41adbed3115f36288260405161165a9190612bba565b60405180910390a250611694565b60405181907f7b78aadacff901d8b63d0dba4f86283d4db8aef27f9ed70413dd860f1c9532b690600090a25b50505050565b601481565b61100381565b60005460ff16156116c85760405162461bcd60e51b815260040161050b90613018565b603260045560966005556000805460ff19166001179055565b61100081565b600381565b336110001461170d5760405162461bcd60e51b815260040161050b90612edf565b60005460ff1661172f5760405162461bcd60e51b815260040161050b90612c9b565b60015461173b57611b33565b600154600090600019015b808211611b07576000805b8284101561186a5761176161264d565b600260006001878154811061177257fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff161515908201526005549091506004900481602001511115611854576004600554816117df57fe5b0481602001510381602001818152505080600260006001888154811061180157fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208351815591830151600183015591909101516002909101805460ff191691151591909117905561185e565b600192505061186a565b50836001019350611751565b828411611a015761187961264d565b600260006001868154811061188a57fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff161515908201526005549091506004900481602001511115611972576004600554816118f757fe5b0481602001510381602001818152505080600260006001878154811061191957fe5b6000918252602080832091909101546001600160a01b03168352828101939093526040918201902083518155918301516001808401919091559201516002909101805460ff19169115159190911790559150611a019050565b600260006001868154811061198357fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff191690558054806119c757fe5b600082815260209020810160001990810180546001600160a01b0319169055019055836119f45750611a01565b506000199092019161186a565b818015611a0b5750805b15611aea576002600060018681548110611a2157fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff19169055805484908110611a6857fe5b600091825260209091200154600180546001600160a01b039092169186908110611a8e57fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506001805480611ac757fe5b600082815260209020810160001990810180546001600160a01b03191690550190555b82611af6575050611b07565b505060019091019060001901611746565b6040517fcfdb3b6ccaeccbdc68be3c59c840e3b3c90f0a7c491f5fff1cf56cfda200dd9c90600090a150505b565b61100481565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081611b56579050509050611b7f836001600160a01b0316611fa7565b81600081518110611b8c57fe5b6020026020010181905250611ba043611fca565b81600181518110611bad57fe5b6020908102919091010152611bc26061611fca565b81600281518110611bcf57fe5b6020026020010181905250611be342611fca565b81600381518110611bf057fe5b6020026020010181905250611c0481611fdd565b9150505b919050565b611c15612670565b6000611c1f612670565b611c27612682565b611c38611c3386612067565b61208c565b90506000805b611c47836120d6565b15611c805780611c7357611c62611c5d846120f7565b612145565b63ffffffff16845260019150611c78565b611c80565b600101611c3e565b5091935090915050915091565b600081604051602001611ca09190612b66565b6040516020818303038152906040528051906020012083604051602001611cc79190612b66565b604051602081830303815290604052805190602001201490505b92915050565b015190565b8082015160009060ff811615611d06576001915081611d0c565b60009150815b505092915050565b60408051600480825260a0820190925260009160609190816020015b6060815260200190600190039081611d30575050604080516020808252818301909252919250606091908082018180368337019050509050611d758560000151611fca565b82600081518110611d8257fe5b6020026020010181905250611d9d60208660200151836121c7565b611da6816121d7565b82600181518110611db357fe5b6020026020010181905250611dcb8560400151611fca565b82600281518110611dd857fe5b6020026020010181905250611df360208660600151836121c7565b611dfc816121d7565b82600381518110611e0957fe5b6020026020010181905250611e2f6020611e2284611fdd565b80519060200120836121c7565b6040805160b080825260e08201909252606091602082018180368337019050509050611e5f81836000602061222d565b611e718187608001516020606061222d565b611e7f81866080603061222d565b604080516001808252818301909252606091602082018180368337019050509050815160016020830182602086016066600019fa611ebc57600080fd5b506001611eca826000612280565b60ff1614611edf576000945050505050611ce1565b5060019695505050505050565b815181516000916001918114808314611f085760009250611f46565b600160208701838101602088015b600284838510011415611f41578051835114611f355760009650600093505b60209283019201611f16565b505050505b5090949350505050565b60008160200183511015611f6357600080fd5b50016020015190565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081611f87579050509050611b7f836121d7565b60408051600560a21b8318601482015260348101909152606090611c04816121d7565b6060611ce1611fd88361229c565b6121d7565b6060815160001415611ffe5750604080516000815260208101909152611c08565b60608260008151811061200d57fe5b602002602001015190506000600190505b835181101561204e576120448285838151811061203757fe5b6020026020010151612382565b915060010161201e565b50611c04612061825160c060ff166123ff565b82612382565b61206f6126a2565b506040805180820190915281518152602082810190820152919050565b612094612682565b61209d826124d1565b6120a657600080fd5b60006120b5836020015161250b565b60208085015160408051808201909152868152920190820152915050919050565b60006120e06126a2565b505080518051602091820151919092015191011190565b6120ff6126a2565b612108826120d6565b61211157600080fd5b602082015160006121218261256e565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061215a57508151602110155b61216357600080fd5b6000612172836020015161250b565b905080836000015110156121985760405162461bcd60e51b815260040161050b9061304f565b8251602080850151830180519284900392918310156121be57826020036101000a820491505b50949350505050565b9091018181526020918201910152565b6060815160011480156122095750607f60f81b826000815181106121f757fe5b01602001516001600160f81b03191611155b15612215575080611c08565b611ce16122278351608060ff166123ff565b83612382565b60005b818110156106c95783818151811061224457fe5b602001015160f81c60f81b85848060010195508151811061226157fe5b60200101906001600160f81b031916908160001a905350600101612230565b6000816001018351101561229357600080fd5b50016001015190565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166122e057506018612304565b6fffffffffffffffffffffffffffffffff19841661230057506010612304565b5060005b602081101561233a5781818151811061231957fe5b01602001516001600160f81b031916156123325761233a565b600101612304565b60008160200390506060816040519080825280601f01601f19166020018201604052801561236f576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b818310156123b357805183526020928301920161239b565b50855184518101855292509050808201602086015b818310156123e05780518352602092830192016123c8565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106124295760405162461bcd60e51b815260040161050b90612dc0565b604080516001808252818301909252606091602082018180368337019050509050603784116124835782840160f81b8160008151811061246557fe5b60200101906001600160f81b031916908160001a9053509050611ce1565b606061248e8561229c565b90508381510160370160f81b826000815181106124a757fe5b60200101906001600160f81b031916908160001a9053506124c88282612382565b95945050505050565b80516000906124e257506000611c08565b6020820151805160001a9060c082101561250157600092505050611c08565b5060019392505050565b8051600090811a6080811015612525576000915050611c08565b60b8811080612540575060c08110801590612540575060f881105b1561254f576001915050611c08565b60c08110156125635760b519019050611c08565b60f519019050611c08565b80516000908190811a60808110156125895760019150612646565b60b881101561259e57607e1981019150612646565b60c08110156125ef57600060b78203600186019550806020036101000a8651049150600181018201935050808310156125e95760405162461bcd60e51b815260040161050b90612f2f565b50612646565b60f88110156126045760be1981019150612646565b600060f78203600186019550806020036101000a865104915060018101820193505080831015611d0c5760405162461bcd60e51b815260040161050b90612f2f565b5092915050565b604051806060016040528060008152602001600081526020016000151581525090565b60408051602081019091526000815290565b60405180604001604052806126956126a2565b8152602001600081525090565b604051806040016040528060008152602001600081525090565b600082601f8301126126cc578081fd5b81516126df6126da82613316565b6132ef565b818152915060208083019084810160005b84811015612755578151870188603f82011261270b57600080fd5b8381015161271b6126da82613336565b81815260408b8184860101111561273157600080fd5b6127408388840183870161335a565b508652505092820192908201906001016126f0565b505050505092915050565b60008083601f840112612771578182fd5b50813567ffffffffffffffff811115612788578182fd5b6020830191508360208285010111156127a057600080fd5b9250929050565b600082601f8301126127b7578081fd5b81356127c56126da82613336565b91508082528360208285010111156127dc57600080fd5b8060208401602084013760009082016020015292915050565b600060a08284031215612806578081fd5b61281060a06132ef565b905081358152602082013560208201526040820135604082015260608201356060820152608082013567ffffffffffffffff81111561284e57600080fd5b61285a848285016127a7565b60808301525092915050565b600060208284031215612877578081fd5b813561288281613386565b9392505050565b6000806040838503121561289b578081fd5b825167ffffffffffffffff808211156128b2578283fd5b81850186601f8201126128c3578384fd5b805192506128d36126da84613316565b80848252602080830192508084018a8283890287010111156128f3578788fd5b8794505b8685101561291e57805161290a81613386565b8452600194909401939281019281016128f7565b508801519096509350505080821115612935578283fd5b50612942858286016126bc565b9150509250929050565b60006020828403121561295d578081fd5b81518015158114612882578182fd5b60008060008060408587031215612981578182fd5b843567ffffffffffffffff80821115612998578384fd5b6129a488838901612760565b909650945060208701359150808211156129bc578384fd5b506129c987828801612760565b95989497509550505050565b6000602082840312156129e6578081fd5b813567ffffffffffffffff808211156129fd578283fd5b81840160608187031215612a0f578384fd5b612a1960606132ef565b9250803582811115612a29578485fd5b612a35878284016127f5565b845250602081013582811115612a49578485fd5b612a55878284016127f5565b602085015250604081013582811115612a6c578485fd5b612a78878284016127a7565b6040850152509195945050505050565b600060208284031215612a99578081fd5b5035919050565b600060208284031215612ab1578081fd5b5051919050565b600080600060408486031215612acc578283fd5b833560ff81168114612adc578384fd5b9250602084013567ffffffffffffffff811115612af7578283fd5b612b0386828701612760565b9497909650939450505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008151808452612b5281602086016020860161335a565b601f01601f19169290920160200192915050565b60008251612b7881846020870161335a565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b6000602082526128826020830184612b3a565b600060408252612be1604083018688612b10565b8281036020840152612bf4818587612b10565b979650505050505050565b6020808252601f908201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604082015260600190565b6020808252601690820152751d1bdbc81bdb1908189b1bd8dac81a5b9d9bdb1d995960521b604082015260600190565b6020808252818101527f6d616c6963696f757320766f746520736c617368206e6f7420656e61626c6564604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252601a908201527f6e6f2076696f6c6174696f6e206f6620766f74652072756c6573000000000000604082015260600190565b6020808252818101527f7468652066656c6f6e795468726573686f6c64206f7574206f662072616e6765604082015260600190565b6020808252602b908201527f6c656e677468206f6620656e61626c654d616c6963696f7573566f7465536c6160408201526a0e6d040dad2e6dac2e8c6d60ab1b606082015260800190565b60208082526017908201527f766572696679207369676e6174757265206661696c6564000000000000000000604082015260600190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526019908201527f7372634e756d20626967676572207468616e207461724e756d00000000000000604082015260600190565b6020808252602c908201527f7468652066696e616c69747920736c6173682072657761726420726174696f2060408201526b6f7574206f662072616e676560a01b606082015260800190565b60208082526027908201527f6c656e677468206f66206d697364656d65616e6f725468726573686f6c64206d6040820152660d2e6dac2e8c6d60cb1b606082015260800190565b60208082526013908201527274776f206964656e746963616c20766f74657360681b604082015260600190565b60208082526030908201527f746865206d6573736167652073656e646572206d7573742062652076616c696460408201526f185d1bdc94d95d0818dbdb9d1c9858dd60821b606082015260800190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526022908201527f6c656e677468206f662066656c6f6e795468726573686f6c64206d69736d61746040820152610c6d60f31b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526025908201527f746865206d697364656d65616e6f725468726573686f6c64206f7574206f662060408201526472616e676560d81b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b6020808252601e908201527f7265636569766520756e65787065637465642073796e207061636b6167650000604082015260600190565b6020808252602b908201527f6c656e677468206f662066696e616c697479536c61736852657761726452617460408201526a0d2de40dad2e6dac2e8c6d60ab1b606082015260800190565b6020808252818101527f63616e206e6f7420736c61736820747769636520696e206f6e6520626c6f636b604082015260600190565b61ffff91909116815260200190565b90815260200190565b6000838252604060208301526132766040830184612b3a565b949350505050565b918252602082015260400190565b92835260208301919091521515604082015260600190565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff85168252606060208301526132df6060830185612b3a565b9050826040830152949350505050565b60405181810167ffffffffffffffff8111828210171561330e57600080fd5b604052919050565b600067ffffffffffffffff82111561332c578081fd5b5060209081020190565b600067ffffffffffffffff82111561334c578081fd5b50601f01601f191660200190565b60005b8381101561337557818101518382015260200161335d565b838111156116945750506000910152565b6001600160a01b038116811461339b57600080fd5b5056fea2646970667358221220f826c2f80c6807c5df53c6cfe5be2e59ad7e87dad138f63f83dd1caf79118d6064736f6c63430006040033", - }, - { - ContractAddr: SystemRewardContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/b144718e94d7a1ebb24a7103202300f08826f369", - Code: "6080604052600436106101a05760003560e01c80637942fd05116100ec578063ac4317511161008a578063f9a2bbc711610064578063f9a2bbc714610550578063fb5478b314610565578063fc3e59081461057a578063fd6a68791461058f576101e4565b8063ac43175114610457578063c81b166214610526578063dc927faf1461053b576101e4565b80639dc09262116100c65780639dc0926214610403578063a1a11bf514610418578063a78abc161461042d578063ab51bb9614610442576101e4565b80637942fd05146103a057806396713da9146103b55780639a99b4f0146103ca576101e4565b80634bf6c882116101595780636e47b482116101335780636e47b4821461034c57806370fd5bad14610361578063718a8aa81461037657806375d47a0a1461038b576101e4565b80634bf6c882146102db57806351e80672146102f05780636d70f7ae14610305576101e4565b80630bee7a67146101e95780630e2374a5146102175780633a0b0eff146102485780633dffc3871461026f57806343756e5c1461029a578063493279b1146102af576101e4565b366101e45734156101e25760408051348152905133917f6c98249d85d88c3753a04a22230f595e4dc8d3dc86c34af35deeeedc861b89db919081900360200190a25b005b600080fd5b3480156101f557600080fd5b506101fe6105a4565b6040805163ffffffff9092168252519081900360200190f35b34801561022357600080fd5b5061022c6105a9565b604080516001600160a01b039092168252519081900360200190f35b34801561025457600080fd5b5061025d6105af565b60408051918252519081900360200190f35b34801561027b57600080fd5b506102846105b5565b6040805160ff9092168252519081900360200190f35b3480156102a657600080fd5b5061022c6105ba565b3480156102bb57600080fd5b506102c46105c0565b6040805161ffff9092168252519081900360200190f35b3480156102e757600080fd5b506102846105c5565b3480156102fc57600080fd5b5061022c6105ca565b34801561031157600080fd5b506103386004803603602081101561032857600080fd5b50356001600160a01b03166105d0565b604080519115158252519081900360200190f35b34801561035857600080fd5b5061022c6105ee565b34801561036d57600080fd5b506102846105f4565b34801561038257600080fd5b506102846105f9565b34801561039757600080fd5b5061022c6105fe565b3480156103ac57600080fd5b50610284610604565b3480156103c157600080fd5b50610284610609565b3480156103d657600080fd5b5061025d600480360360408110156103ed57600080fd5b506001600160a01b03813516906020013561060e565b34801561040f57600080fd5b5061022c6107b9565b34801561042457600080fd5b5061022c6107bf565b34801561043957600080fd5b506103386107c5565b34801561044e57600080fd5b506101fe6107ce565b34801561046357600080fd5b506101e26004803603604081101561047a57600080fd5b81019060208101813564010000000081111561049557600080fd5b8201836020820111156104a757600080fd5b803590602001918460018302840111640100000000831117156104c957600080fd5b9193909290916020810190356401000000008111156104e757600080fd5b8201836020820111156104f957600080fd5b8035906020019184600183028401116401000000008311171561051b57600080fd5b5090925090506107d3565b34801561053257600080fd5b5061022c610b56565b34801561054757600080fd5b5061022c610b5c565b34801561055c57600080fd5b5061022c610b62565b34801561057157600080fd5b5061025d610b68565b34801561058657600080fd5b50610284610b74565b34801561059b57600080fd5b5061022c610b79565b606481565b61200181565b60015481565b600181565b61100181565b606181565b600881565b61200081565b6001600160a01b031660009081526002602052604090205460ff1690565b61100581565b600281565b601081565b61100881565b600b81565b600981565b6000805460ff1661068b57600260208190527fe57bda0a954a7c7381b17b2c763e646ba2c60f67292d287ba583603e2c1c41668054600160ff19918216811790925561100560009081527fe25235fc0de9d7165652bef0846fefda506174abb9a190f03d0f7bcc6146dbce80548316841790559282558254161790555b3360009081526002602052604090205460ff166106d95760405162461bcd60e51b815260040180806020018281038252602b815260200180610c67602b913960400191505060405180910390fd5b60004783106106e857476106ea565b825b9050670de0b6b3a76400008111156107075750670de0b6b3a76400005b8015610788576040516001600160a01b0385169082156108fc029083906000818181858888f19350505050158015610743573d6000803e3d6000fd5b506040805182815290516001600160a01b038616917ff8b71c64315fc33b2ead2adfa487955065152a8ac33d9d5193aafd7f45dc15a0919081900360200190a26107b2565b6040517fe589651933c2457488cc0d8e0941518abf748e799435e4e396d9c4d0b2db2d4d90600090a15b9392505050565b61100781565b61100681565b60005460ff1681565b600081565b33611007146108135760405162461bcd60e51b815260040180806020018281038252602e815260200180610cc1602e913960400191505060405180910390fd5b61087584848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600b81526a30b23227b832b930ba37b960a91b60208201529150610b7f9050565b1561094d57606082828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050825192935050601490911490506108f85760405162461bcd60e51b815260040180806020018281038252602c815260200180610cef602c913960400191505060405180910390fd5b60148101516001600160a01b038116600081815260026020526040808220805460ff19166001179055517f9870d7fe5d112134c55844951dedf365363006d9c588db07c4c85af6322a06199190a25050610ac4565b6109b284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600e81526d3232b632ba32a7b832b930ba37b960911b60208201529150610b7f9050565b15610a8757606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060149091149050610a355760405162461bcd60e51b815260040180806020018281038252602f815260200180610c92602f913960400191505060405180910390fd5b60148101516001600160a01b038116600081815260026020526040808220805460ff19169055517fb40992a19dba61ea600e87fce607102bf5908dc89076217b6ca6ae195224f7029190a25050610ac4565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b61100281565b61100381565b61100081565b670de0b6b3a764000081565b600381565b61100481565b6000816040516020018082805190602001908083835b60208310610bb45780518252601f199092019160209182019101610b95565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310610c225780518252601f199092019160209182019101610c03565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052805190602001201490509291505056fe6f6e6c79206f70657261746f7220697320616c6c6f77656420746f2063616c6c20746865206d6574686f646c656e677468206f662076616c756520666f722064656c6574654f70657261746f722073686f756c64206265203230746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662076616c756520666f72206164644f70657261746f722073686f756c64206265203230a26469706673582212205c998ac20925f17d8af20803f32be2cf1698c9a844de45001ca5ed8c879cc93f64736f6c63430006040033", - }, - { - ContractAddr: RelayerHubContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/b144718e94d7a1ebb24a7103202300f08826f369", - Code: "608060405234801561001057600080fd5b50600436106102275760003560e01c80638f83ab1311610130578063c81b1662116100b8578063f3ae24151161007c578063f3ae2415146104e8578063f9a2bbc71461050e578063fc3e590814610516578063fd30d9b81461051e578063fd6a68791461052657610227565b8063c81b1662146104c0578063dc927faf146104c8578063dd91d1c5146104d0578063e1c7392a146104d8578063e79a198f146104e057610227565b8063a1a11bf5116100ff578063a1a11bf5146103de578063a74b83ca146103e6578063a78abc16146103ee578063ab51bb96146103f6578063ac431751146103fe57610227565b80638f83ab13146103a057806395468d26146103c657806396713da9146103ce5780639dc09262146103d657610227565b8063541d5548116101b3578063718a8aa811610182578063718a8aa81461034857806375d47a0a1461035057806378beee67146103585780637942fd051461037e5780637ae230881461038657610227565b8063541d5548146102d85780636a6a419e146103125780636e47b4821461033857806370fd5bad1461034057610227565b80633dffc387116101fa5780633dffc3871461028357806343756e5c146102a1578063493279b1146102a95780634bf6c882146102c857806351e80672146102d057610227565b806303aff02b1461022c578063049a5716146102365780630bee7a671461025a5780630e2374a51461027b575b600080fd5b61023461052e565b005b61023e610539565b604080516001600160a01b039092168252519081900360200190f35b610262610551565b6040805163ffffffff9092168252519081900360200190f35b61023e610556565b61028b61055c565b6040805160ff9092168252519081900360200190f35b61023e610561565b6102b1610567565b6040805161ffff9092168252519081900360200190f35b61028b61056c565b61023e610571565b6102fe600480360360208110156102ee57600080fd5b50356001600160a01b0316610577565b604080519115158252519081900360200190f35b6102fe6004803603602081101561032857600080fd5b50356001600160a01b0316610595565b61023e6105b3565b61028b6105b9565b61028b6105be565b61023e6105c3565b6102346004803603602081101561036e57600080fd5b50356001600160a01b03166105c9565b61028b6107b1565b61038e6107b6565b60408051918252519081900360200190f35b610234600480360360208110156103b657600080fd5b50356001600160a01b03166107c3565b61038e610a02565b61028b610a0e565b61023e610a13565b61023e610a19565b61023e610a1f565b6102fe610a37565b610262610a40565b6102346004803603604081101561041457600080fd5b81019060208101813564010000000081111561042f57600080fd5b82018360208201111561044157600080fd5b8035906020019184600183028401116401000000008311171561046357600080fd5b91939092909160208101903564010000000081111561048157600080fd5b82018360208201111561049357600080fd5b803590602001918460018302840111640100000000831117156104b557600080fd5b509092509050610a45565b61023e610d96565b61023e610d9c565b610234610da2565b610234610e43565b610234610ec5565b6102fe600480360360208110156104fe57600080fd5b50356001600160a01b031661107e565b61023e61109c565b61028b6110a2565b6102fe6110a7565b61023e6110b0565b610537336110b6565b565b739fb29aac15b9a4b7f17c3385939b007540f4d79181565b606481565b61200181565b600181565b61100181565b606181565b600881565b61200081565b6001600160a01b031660009081526007602052604090205460ff1690565b6001600160a01b031660009081526008602052604090205460ff1690565b61100581565b600281565b601081565b61100881565b3360009081526008602052604090205460ff166106175760405162461bcd60e51b81526004018080602001828103825260248152602001806115c26024913960400191505060405180910390fd5b61062033611218565b1561065c5760405162461bcd60e51b815260040180806020018281038252602181526020018061157f6021913960400191505060405180910390fd5b3233146106b0576040805162461bcd60e51b815260206004820152601e60248201527f70726f766973696f6e616c2072656c6179657220697320612070726f78790000604482015290519081900360640190fd5b6001600160a01b038181166000908152600960205260409020541633146107085760405162461bcd60e51b815260040180806020018281038252602781526020018061163b6027913960400191505060405180910390fd5b6001600160a01b03818116600081815260066020908152604080832080543380865260078086528487208054600160ff199182161790915584546001600160a01b031990811684179095556008875285882080548216905597875260098652848720805490941690935596168085529083529281902080549094169093558251828152908101939093528151909260008051602061166283398151915292908290030190a15050565b600b81565b68056bc75e2d6310000081565b3360009081526005602052604090205460ff16610820576040805162461bcd60e51b81526020600482015260166024820152751b585b9859d95c88191bd95cc81b9bdd08195e1a5cdd60521b604482015290519081900360640190fd5b61082981611218565b156108655760405162461bcd60e51b81526004018080602001828103825260278152602001806115e66027913960400191505060405180910390fd5b6001600160a01b03811615610921576001600160a01b03811660009081526007602052604090205460ff16156108db576040805162461bcd60e51b815260206004820152601660248201527572656c6179657220616c72656164792065786973747360501b604482015290519081900360640190fd5b6001600160a01b0381166000818152600860209081526040808320805460ff191660011790553383526009909152902080546001600160a01b03191690911790556109c2565b3360008181526006602090815260408083208054600980855283862080546001600160a01b03198085169095556001600160a01b0393841680895260078852868920805460ff19908116909155918516808a5260088952878a20805490931690925598909752908552805490921690915581518581529086169281019290925280516000805160206116628339815191529281900390910190a150506109ff565b604080516001600160a01b038316815290517ffba56633276570c7d3120d4535bf3bce26523da53958e40734210b9fd99b36939181900360200190a15b50565b67016345785d8a000081565b600981565b61100781565b61100681565b7337b8516a0f88e65d677229b402ec6c1e0e33300481565b60005460ff1681565b600081565b60005460ff16610a98576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b3361100714610ad85760405162461bcd60e51b815260040180806020018281038252602e81526020018061160d602e913960400191505060405180910390fd5b610b3984848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600a81526930b23226b0b730b3b2b960b11b6020820152915061121e9050565b15610bd15760148114610b7d5760405162461bcd60e51b81526004018080602001828103825260228152602001806115a06022913960400191505060405180910390fd5b6000610bc0601484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061130592505050565b9050610bcb8161130a565b50610d04565b610c3584848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c3932b6b7bb32a6b0b730b3b2b960991b6020820152915061121e9050565b15610cc75760148114610c795760405162461bcd60e51b81526004018080602001828103825260228152602001806115a06022913960400191505060405180910390fd5b6000610cbc601484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061130592505050565b9050610bcb816110b6565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b61100281565b61100381565b600a5460ff1615610dfa576040805162461bcd60e51b815260206004820152601e60248201527f7468652077686974656c6973747320616c726561647920757064617465640000604482015290519081900360640190fd5b610e17739fb29aac15b9a4b7f17c3385939b007540f4d7916113cc565b610e347337b8516a0f88e65d677229b402ec6c1e0e3330046113cc565b600a805460ff19166001179055565b60005460ff1615610e9b576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b68056bc75e2d63100000600190815567016345785d8a00006002556000805460ff19169091179055565b3360009081526004602052604090205460ff16610f20576040805162461bcd60e51b81526020600482015260146024820152731c995b185e595c88191bc81b9bdd08195e1a5cdd60621b604482015290519081900360640190fd5b60005460ff16610f73576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b610f7b611564565b5033600081815260036020908152604091829020825180840190935280548084526001909101549183018290529192916108fc91610fbf919063ffffffff61148416565b6040518115909202916000818181858888f19350505050158015610fe7573d6000803e3d6000fd5b50602081015160405161100291829181156108fc0291906000818181858888f1935050505015801561101d573d6000803e3d6000fd5b50336000818152600460209081526040808320805460ff191690556003825280832083815560010192909255815192835290517fd17202129b83db7880d6b9f25df81c58ad46f7e0e2c92236b1aa10663a4876679281900390910190a15050565b6001600160a01b031660009081526005602052604090205460ff1690565b61100081565b600381565b600a5460ff1681565b61100481565b6001600160a01b03811660009081526005602052604090205460ff1661111b576040805162461bcd60e51b81526020600482015260156024820152741b585b9859d95c88191bd95cdb89dd08195e1a5cdd605a1b604482015290519081900360640190fd5b6001600160a01b038082166000818152600660209081526040808320805460058452828520805460ff1990811690915582546001600160a01b0319908116909355600980865284872080548a16885260088752858820805490931690925595879052948452845490911690935580519384525191909316927f2002866d443ac6c241fecaaa2af4895828c7de2cc423b9d01f7969650f557c76928290030190a16001600160a01b03811615611214576001600160a01b0381166000818152600760209081526040808320805460ff1916905580519384529083019190915280516000805160206116628339815191529281900390910190a15b5050565b3b151590565b6000816040516020018082805190602001908083835b602083106112535780518252601f199092019160209182019101611234565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106112c15780518252601f1990920191602091820191016112a2565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b6001600160a01b03811660009081526005602052604090205460ff1615611371576040805162461bcd60e51b81526020600482015260166024820152756d616e6167657220616c72656164792065786973747360501b604482015290519081900360640190fd5b6001600160a01b038116600081815260056020908152604091829020805460ff19166001179055815192835290517fe0de8e71a22c046647f4ef744348fa126ad6d052d4ce070999481f69d45575179281900390910190a150565b6001600160a01b03811660008181526005602090815260408083208054600160ff1991821681179092556006845282852080546001600160a01b031916871790556007845293829020805490941617909255815192835290517fe0de8e71a22c046647f4ef744348fa126ad6d052d4ce070999481f69d45575179281900390910190a160408051600081526001600160a01b03831660208201528151600080516020611662833981519152929181900390910190a150565b60006114c683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506114cd565b9392505050565b6000818484111561155c5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611521578181015183820152602001611509565b50505050905090810190601f16801561154e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60405180604001604052806000815260200160008152509056fe70726f766973696f6e616c2072656c61796572206973206120636f6e74726163746c656e677468206f66206d616e616765722061646472657373206d69736d6174636872656c61796572206973206e6f7420612070726f766973696f6e616c2072656c61796572636f6e7472616374206973206e6f7420616c6c6f77656420746f20626520612072656c61796572746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e747261637470726f766973696f6e616c206973206e6f742073657420666f722074686973206d616e61676572a5a19d7e9dab30a215022382d7abe782b579986fcbedec9942ecd0db9510a148a2646970667358221220e87e5b6ca8388e14d2ec9c2453581b5e2346a0aaa8fa61707f4d522357ac45d464736f6c63430006040033", - }, - { - ContractAddr: CrossChainContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/b144718e94d7a1ebb24a7103202300f08826f369", - Code: "608060405234801561001057600080fd5b50600436106103995760003560e01c8063718a8aa8116101e9578063c27cdcfb1161010f578063dc927faf116100ad578063f7a251d71161007c578063f7a251d714610b2f578063f9a2bbc714610ba7578063fc3e590814610baf578063fd6a687914610bb757610399565b8063dc927faf14610af7578063e1c7392a14610aff578063e3b0480514610b07578063e6400bbe14610b2757610399565b8063ccc108d7116100e9578063ccc108d714610ab0578063d31f968d14610ab8578063d76a867514610ae7578063dc40433114610aef57610399565b8063c27cdcfb14610a80578063c780e9de14610aa0578063c81b166214610aa857610399565b80638cc8f56111610187578063a78abc1611610156578063a78abc16146109b2578063ab51bb96146109ba578063ac431751146109c2578063b0355f5b1461078157610399565b80638cc8f5611461088757806396713da91461099a5780639dc09262146109a2578063a1a11bf5146109aa57610399565b806375d47a0a116101c357806375d47a0a146108a75780637942fd05146108af57806384013b6a146108b7578063863fe4ab1461099257610399565b8063718a8aa81461088f578063719482d51461089757806374f079b81461089f57610399565b8063422f9050116102ce57806363e1394e1161026c5780636de380bd1161023b5780636de380bd146108575780636e47a51a1461085f5780636e47b4821461087f57806370fd5bad1461088757610399565b806363e1394e146107ff5780636a3cb34d146108075780636bacff2c1461080f5780636c46aa681461080757610399565b80634bf6c882116102a85780634bf6c882146107b957806351e80672146107c15780635692ddd3146107c95780635f832177146107d157610399565b8063422f90501461078957806343756e5c146107a9578063493279b1146107b157610399565b8063299b533d1161033b578063308325f411610315578063308325f4146106155780633a648b151461061d5780633bdc47a6146106595780633dffc3871461078157610399565b8063299b533d146105a35780632af6f399146105d75780632ff32aea146105f457610399565b806314b3023b1161037757806314b3023b146104015780631d1309351461041b5780631e275ae11461043757806322556cdc1461059b57610399565b806305e682581461039e5780630bee7a67146103bc5780630e2374a5146103dd575b600080fd5b6103a6610bbf565b6040805160ff9092168252519081900360200190f35b6103c4610bc4565b6040805163ffffffff9092168252519081900360200190f35b6103e5610bc9565b604080516001600160a01b039092168252519081900360200190f35b610409610bcf565b60408051918252519081900360200190f35b610423610bd5565b604080519115158252519081900360200190f35b610599600480360361010081101561044e57600080fd5b81018160a081016080820135600160201b81111561046b57600080fd5b82018360208201111561047d57600080fd5b803590602001918460018302840111600160201b8311171561049e57600080fd5b919390929091602081019035600160201b8111156104bb57600080fd5b8201836020820111156104cd57600080fd5b803590602001918460018302840111600160201b831117156104ee57600080fd5b919390929091602081019035600160201b81111561050b57600080fd5b82018360208201111561051d57600080fd5b803590602001918460018302840111600160201b8311171561053e57600080fd5b919390929091602081019035600160201b81111561055b57600080fd5b82018360208201111561056d57600080fd5b803590602001918460018302840111600160201b8311171561058e57600080fd5b509092509050610bde565b005b6104096112c2565b6105c0600480360360208110156105b957600080fd5b50356112c7565b6040805161ffff9092168252519081900360200190f35b610423600480360360208110156105ed57600080fd5b50356112dd565b6105fc6112f2565b60408051600792830b90920b8252519081900360200190f35b6104096112fb565b61063d6004803603602081101561063357600080fd5b503560ff16611301565b604080516001600160401b039092168252519081900360200190f35b61070c6004803603606081101561066f57600080fd5b60ff82351691602081013591810190606081016040820135600160201b81111561069857600080fd5b8201836020820111156106aa57600080fd5b803590602001918460018302840111600160201b831117156106cb57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061131c945050505050565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561074657818101518382015260200161072e565b50505050905090810190601f1680156107735780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103a6611392565b6104236004803603602081101561079f57600080fd5b503560ff16611397565b6103e56113ac565b6105c06113b2565b6103a66113b7565b6103e56113bc565b6104096113c2565b610599600480360360408110156107e757600080fd5b506001600160a01b03813581169160200135166113f2565b610409611652565b6105c061167a565b61082c6004803603602081101561082557600080fd5b503561167f565b6040805161ffff90941684526001600160801b03909216602084015282820152519081900360600190f35b6104096116ae565b6103e56004803603602081101561087557600080fd5b503560ff166116d5565b6103e56116f0565b6103a661167a565b6103a66116f6565b6105c0611392565b6104096116fb565b6103e5611701565b6103a6611707565b610599600480360360a08110156108cd57600080fd5b810190602081018135600160201b8111156108e757600080fd5b8201836020820111156108f957600080fd5b803590602001918460018302840111600160201b8311171561091a57600080fd5b919390929091602081019035600160201b81111561093757600080fd5b82018360208201111561094957600080fd5b803590602001918460018302840111600160201b8311171561096a57600080fd5b919350915080356001600160401b03908116916020810135909116906040013560ff1661170c565b6104096129c6565b6103a66129ce565b6103e56129d3565b6103e56129d9565b6104236129df565b6103c4610bbf565b610599600480360360408110156109d857600080fd5b810190602081018135600160201b8111156109f257600080fd5b820183602082011115610a0457600080fd5b803590602001918460018302840111600160201b83111715610a2557600080fd5b919390929091602081019035600160201b811115610a4257600080fd5b820183602082011115610a5457600080fd5b803590602001918460018302840111600160201b83111715610a7557600080fd5b5090925090506129e8565b61063d60048036036020811015610a9657600080fd5b503560ff166134ac565b6104096134c7565b6103e56134eb565b6105996134f1565b61042360048036036040811015610ace57600080fd5b5080356001600160a01b0316906020013560ff16613745565b61070c613765565b610409613784565b6103e561378a565b610599613790565b61063d60048036036020811015610b1d57600080fd5b503560ff16613b47565b610599613b62565b61059960048036036060811015610b4557600080fd5b60ff8235169190810190604081016020820135600160201b811115610b6957600080fd5b820183602082011115610b7b57600080fd5b803590602001918460018302840111600160201b83111715610b9c57600080fd5b919350915035613d81565b6103e5613ec4565b6103a6613eca565b6103e5613ecf565b600081565b606481565b61200181565b60015481565b600b5460ff1681565b60005460ff16610c23576040805162461bcd60e51b815260206004820152601960248201526000805160206149b2833981519152604482015290519081900360640190fd5b604080516337d7f9c160e21b81526001600160401b038b35166004820181905291516110039163df5fe704916024808301926020929190829003018186803b158015610c6e57600080fd5b505afa158015610c82573d6000803e3d6000fd5b505050506040513d6020811015610c9857600080fd5b5051610cd55760405162461bcd60e51b81526004018080602001828103825260238152602001806149d26023913960400191505060405180910390fd5b604080516337d7f9c160e21b815260208c8101356001600160401b03166004830181905292516110039263df5fe704926024808301939192829003018186803b158015610d2157600080fd5b505afa158015610d35573d6000803e3d6000fd5b505050506040513d6020811015610d4b57600080fd5b5051610d885760405162461bcd60e51b81526004018080602001828103825260238152602001806149d26023913960400191505060405180910390fd5b60608b013560ff81166000908152600560205260409020546001600160401b03909116906001600160a01b0316610e01576040805162461bcd60e51b815260206004820152601860248201527718da185b9b995b081a5cc81b9bdd081cdd5c1c1bdc9d195960421b604482015290519081900360640190fd5b600b5460ff1615610e45576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b8888604051808383808284376040519201829003822094508f93508e9250819050838380828437808301925050509250505060405180910390201415610ec1576040805162461bcd60e51b815260206004820152600c60248201526b1cd85b59481c185e5b1bd85960a21b604482015290519081900360640190fd5b60606001600160401b0360408e01358116908e83013516610ee28282613ed5565b80516020808301919091206000818152600e9092526040909120549194509060ff1615610f4b576040805162461bcd60e51b8152602060048201526012602482015271185b1c9958591e4818da185b1b195b99d95960721b604482015290519081900360640190fd5b6000908152600e60205260408120805460ff191660011790558f8160200201356001600160401b0316905060608f8f8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060608c8c8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506040805163cba510a960e01b81526001600160401b038a16600482015290519596509094611003945063cba510a9935060248083019350602092829003018186803b15801561104157600080fd5b505afa158015611055573d6000803e3d6000fd5b505050506040513d602081101561106b57600080fd5b505160408051808201909152600381526269626360e81b6020820152909150611098908290898686613f1d565b6110e1576040805162461bcd60e51b81526020600482015260156024820152740696e76616c6964206d65726b6c652070726f6f663605c1b604482015290519081900360640190fd5b5050505060008f6001600481106110f457fe5b60200201356001600160401b0316905060608d8d8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8f018190048102820181019092528d815293945060609392508d91508c908190840183828082843760009201829052506040805163cba510a960e01b81526001600160401b038a16600482015290519596509094611003945063cba510a9935060248083019350602092829003018186803b1580156111c057600080fd5b505afa1580156111d4573d6000803e3d6000fd5b505050506040513d60208110156111ea57600080fd5b505160408051808201909152600381526269626360e81b6020820152909150611217908290898686613f1d565b611260576040805162461bcd60e51b8152602060048201526015602482015274696e76616c6964206d65726b6c652070726f6f663160581b604482015290519081900360640190fd5b5050505061126c61401a565b604080516001600160401b038416815260ff83166020820152815133927f039eb91179ffd7d3b6e97f8ea106e748e827f910b872375dbc9c14a362319c3c928290030190a2505050505050505050505050505050565b603281565b600d6020526000908152604090205461ffff1681565b600e6020526000908152604090205460ff1681565b60045460070b81565b60025481565b600a602052600090815260409020546001600160401b031681565b60606000825160210190506060816040519080825280601f01601f191660200182016040528015611354576020820181803683370190505b506021810186905260018101879052828152905060418101600061137786614098565b509050611386818388516140a2565b50909695505050505050565b600181565b60096020526000908152604090205460ff1681565b61100181565b606181565b600881565b61200081565b604080517710d05390d15317d514905394d1915497d41493d413d4d05360421b8152905190819003601801902081565b60005460ff16611437576040805162461bcd60e51b815260206004820152601960248201526000805160206149b2833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b15801561147a57600080fd5b505afa15801561148e573d6000803e3d6000fd5b505050506040513d60208110156114a457600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b1580156114e557600080fd5b505afa1580156114f9573d6000803e3d6000fd5b505050506040513d602081101561150f57600080fd5b505190508061151c575060155b60008211801561152c5750808211155b61156b576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b604080516001600160a01b038087166020808401919091529086168284015282518083038401815260608301808552815191909201207710d05390d15317d514905394d1915497d41493d413d4d05360421b90915291519081900360780190206000906115d890836140e3565b9050801561164a5760408051630911a2c160e11b81526001600160a01b03888116600483015287166024820152905161100491631223458291604480830192600092919082900301818387803b15801561163157600080fd5b505af1158015611645573d6000803e3d6000fd5b505050505b505050505050565b604080516f14d554d411539117d41493d413d4d05360821b8152905190819003601001902081565b600281565b600c602052600090815260409020805460019091015461ffff8216916201000090046001600160801b03169083565b604080516e149153d4115397d41493d413d4d053608a1b8152905190819003600f01902081565b6005602052600090815260409020546001600160a01b031681565b61100581565b601081565b60035481565b61100881565b600b81565b60005460ff16611751576040805162461bcd60e51b815260206004820152601960248201526000805160206149b2833981519152604482015290519081900360640190fd5b60408051630a83aaa960e31b815233600482015290516110069163541d5548916024808301926020929190829003018186803b15801561179057600080fd5b505afa1580156117a4573d6000803e3d6000fd5b505050506040513d60208110156117ba57600080fd5b505161180d576040805162461bcd60e51b815260206004820152601f60248201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604482015290519081900360640190fd5b60ff8116600090815260086020526040902054829082906001600160401b03908116908316811461187d576040805162461bcd60e51b815260206004820152601560248201527439b2b8bab2b731b2903737ba1034b71037b93232b960591b604482015290519081900360640190fd5b60ff8216600090815260086020908152604091829020805467ffffffffffffffff1916600185016001600160401b039081169190911790915582516337d7f9c160e21b81529089166004820152915188926110039263df5fe70492602480840193829003018186803b1580156118f257600080fd5b505afa158015611906573d6000803e3d6000fd5b505050506040513d602081101561191c57600080fd5b50516119595760405162461bcd60e51b81526004018080602001828103825260238152602001806149d26023913960400191505060405180910390fd5b60ff851660009081526005602052604090205485906001600160a01b03166119c3576040805162461bcd60e51b815260206004820152601860248201527718da185b9b995b081a5cc81b9bdd081cdd5c1c1bdc9d195960421b604482015290519081900360640190fd5b60ff86166000908152600a6020526040902054889087906001600160401b039081169083161015611a2c576040805162461bcd60e51b815260206004820152600e60248201526d3a37b79037b632103432b0b232b960911b604482015290519081900360640190fd5b60ff81166000908152600a60205260409020546001600160401b03838116911614611a7e5760ff81166000908152600a60205260409020805467ffffffffffffffff19166001600160401b0384161790555b600b5460ff1615611ac2576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b60608e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060608d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509050611c066110036001600160a01b031663cba510a98e6040518263ffffffff1660e01b815260040180826001600160401b03166001600160401b0316815260200191505060206040518083038186803b158015611baf57600080fd5b505afa158015611bc3573d6000803e3d6000fd5b505050506040513d6020811015611bd957600080fd5b505160408051808201909152600381526269626360e81b6020820152611bff8e8e613ed5565b8585613f1d565b611c4e576040805162461bcd60e51b815260206004820152601460248201527334b73b30b634b21036b2b935b63290383937b7b360611b604482015290519081900360640190fd5b60408051631bb5062960e31b81526001600160401b038e16600482015290516000916110039163dda8314891602480820192602092909190829003018186803b158015611c9a57600080fd5b505afa158015611cae573d6000803e3d6000fd5b505050506040513d6020811015611cc457600080fd5b505190508b8b600080806060611cd9896143c8565b935093509350935083611d9b578460ff16866001600160401b03167ff7b2e42d694eb1100184aae86d4245d9e46966100b1dc7e723275b98326854ac8b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015611d53578181015183820152602001611d3b565b50505050905090810190601f168015611d805780820380516001836020036101000a031916815260200191505b509250505060405180910390a35050505050505050506129b6565b6040805160ff85811682529151918716916001600160401b038916917f36afdaf439a8f43fe72135135d804ae620b37a474f0943b5b85f6788312cad40919081900360200190a360ff83166123205760ff85166000818152600560209081526040808320548151631182b87560e01b815260048101958652602481019283528651604482015286516001600160a01b03909216958695631182b875958d958a9593949093606490910192918601918190849084905b83811015611e68578181015183820152602001611e50565b50505050905090810190601f168015611e955780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b158015611eb557600080fd5b505af1925050508015611f9957506040513d6000823e601f3d908101601f191682016040526020811015611ee857600080fd5b8101908080516040519392919084600160201b821115611f0757600080fd5b908301906020820185811115611f1c57600080fd5b8251600160201b811182820188101715611f3557600080fd5b82525081516020918201929091019080838360005b83811015611f62578181015183820152602001611f4a565b50505050905090810190601f168015611f8f5780820380516001836020036101000a031916815260200191505b5060405250505060015b6122ab576040516000815260443d1015611fb557506000612050565b60046000803e60005160e01c6308c379a08114611fd6576000915050612050565b60043d036004833e81513d60248201116001600160401b038211171561200157600092505050612050565b80830180516001600160401b03811115612022576000945050505050612050565b8060208301013d860181111561204057600095505050505050612050565b601f01601f191660405250925050505b8061205b575061216d565b60ff8716600090815260076020526040812054612092916001600160401b0390911690899061208d906002908861131c565b614478565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf948794849390840192918601918190849084905b8381101561212d578181015183820152602001612115565b50505050905090810190601f16801561215a5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2506122a6565b3d808015612197576040519150601f19603f3d011682016040523d82523d6000602084013e61219c565b606091505b5060ff87166000908152600760205260408120546121cf916001600160401b0390911690899061208d906002908861131c565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351948794849390840192918601918190849084905b8381101561226a578181015183820152602001612252565b50505050905090810190601f1680156122975780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b61231a565b8051156123185760ff87166000908152600760205260408120546122e4916001600160401b0390911690899061208d906001908661131c565b60ff8716600090815260076020526040902080546001600160401b038082166001011667ffffffffffffffff199091161790555b505b506128ee565b60ff8316600114156125c45760ff8516600081815260056020908152604080832054815163831d65d160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563831d65d1958d958a9593949093606490910192918601918190849084905b838110156123aa578181015183820152602001612392565b50505050905090810190601f1680156123d75780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b1580156123f757600080fd5b505af1925050508015612408575060015b61231a576040516000815260443d1015612424575060006124bf565b60046000803e60005160e01c6308c379a081146124455760009150506124bf565b60043d036004833e81513d60248201116001600160401b0382111715612470576000925050506124bf565b80830180516001600160401b038111156124915760009450505050506124bf565b8060208301013d86018111156124af576000955050505050506124bf565b601f01601f191660405250925050505b806124ca575061252f565b60408051602080825283518183015283516001600160a01b038616937ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf938693909283928301918501908083836000831561212d578181015183820152602001612115565b3d808015612559576040519150601f19603f3d011682016040523d82523d6000602084013e61255e565b606091505b5060408051602080825283518183015283516001600160a01b038616937f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351938693909283928301918501908083836000831561226a578181015183820152602001612252565b60ff8316600214156128ee5760ff8516600081815260056020908152604080832054815163c8509d8160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563c8509d81958d958a9593949093606490910192918601918190849084905b8381101561264e578181015183820152602001612636565b50505050905090810190601f16801561267b5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561269b57600080fd5b505af19250505080156126ac575060015b6128ec576040516000815260443d10156126c857506000612763565b60046000803e60005160e01c6308c379a081146126e9576000915050612763565b60043d036004833e81513d60248201116001600160401b038211171561271457600092505050612763565b80830180516001600160401b03811115612735576000945050505050612763565b8060208301013d860181111561275357600095505050505050612763565b601f01601f191660405250925050505b8061276e5750612817565b816001600160a01b03167ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf826040518080602001828103825283818151815260200191508051906020019080838360005b838110156127d75781810151838201526020016127bf565b50505050905090810190601f1680156128045780820380516001836020036101000a031916815260200191505b509250505060405180910390a2506128ec565b3d808015612841576040519150601f19603f3d011682016040523d82523d6000602084013e612846565b606091505b50816001600160a01b03167f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351826040518080602001828103825283818151815260200191508051906020019080838360005b838110156128b0578181015183820152602001612898565b50505050905090810190601f1680156128dd5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b505b60ff80861660009081526009602052604090205461100591636f93d2e6918a91339187911680612920575060ff881615155b604080516001600160e01b031960e088901b1681526001600160a01b039586166004820152939094166024840152604483019190915215156064820152905160848083019260209291908290030181600087803b15801561298057600080fd5b505af1158015612994573d6000803e3d6000fd5b505050506040513d60208110156129aa57600080fd5b50505050505050505050505b5050505050505050505050505050565b630100610081565b600981565b61100781565b61100681565b60005460ff1681565b3361100714612a285760405162461bcd60e51b815260040180806020018281038252602e815260200180614908602e913960400191505060405180910390fd5b600b5460ff1615612a6c576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b612ad584848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526012815271626174636853697a65466f724f7261636c6560701b602082015291506146129050565b15612b7057604080516020601f8401819004810282018101909252828152600091612b18918585808385018382808284376000920191909152506146f992505050565b90506127108111158015612b2d5750600a8110155b612b685760405162461bcd60e51b81526004018080602001828103825260328152602001806149806032913960400191505060405180910390fd5b60015561341a565b612bd984848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601281527118591913dc955c19185d1950da185b9b995b60721b602082015291506146129050565b15612d6157606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060169091149050612c5c5760405162461bcd60e51b815260040180806020018281038252605a815260200180614821605a913960600191505060405180910390fd5b60018101516002820151601683015160ff82161590612c7a816146fe565b612ccb576040805162461bcd60e51b815260206004820152601960248201527f61646472657373206973206e6f74206120636f6e747261637400000000000000604482015290519081900360640190fd5b60ff8416600081815260056020908152604080832080546001600160a01b0319166001600160a01b038716908117909155808452600683528184208585528352818420805460ff199081166001179091556009909352818420805490931687151517909255519092917f7e3b6af43092577ee20e60eaa1d9b114a7031305c895ee7dd3ffe17196d2e1e091a3505050505061341a565b612dce84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526016815275195b98589b1953dc911a5cd8589b1950da185b9b995b60521b602082015291506146129050565b15612eff57606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060029091149050612e515760405162461bcd60e51b815260040180806020018281038252604a815260200180614936604a913960600191505060405180910390fd5b600181810151600283015160ff80831660009081526005602052604090205492939192908316909114906001600160a01b03168015612ef5576001600160a01b038116600090815260066020908152604080832060ff881680855290835292819020805460ff1916861515908117909155815190815290517fa3132e3f9819fbddc7f0ed6d38d7feef59aa95112090b7c592f5cb5bc4aa4adc929181900390910190a25b505050505061341a565b612f6384848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c73757370656e6451756f72756d60981b602082015291506146129050565b156130985760028114612fa75760405162461bcd60e51b815260040180806020018281038252602d8152602001806148af602d913960400191505060405180910390fd5b6000612fea600284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506146f992505050565b905060008161ffff16118015613004575060648161ffff16105b61304e576040805162461bcd60e51b8152602060048201526016602482015275696e76616c69642073757370656e642071756f72756d60501b604482015290519081900360640190fd5b604080516f14d554d411539117d41493d413d4d05360821b815281519081900360100190206000908152600d60205220805461ffff90921661ffff1990921691909117905561341a565b6130fb84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600c81526b72656f70656e51756f72756d60a01b602082015291506146129050565b1561322e576002811461313f5760405162461bcd60e51b815260040180806020018281038252602c8152602001806148dc602c913960400191505060405180910390fd5b6000613182600284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506146f992505050565b905060008161ffff1611801561319c575060648161ffff16105b6131e5576040805162461bcd60e51b8152602060048201526015602482015274696e76616c69642072656f70656e2071756f72756d60581b604482015290519081900360640190fd5b604080516e149153d4115397d41493d413d4d053608a1b8152815190819003600f0190206000908152600d60205220805461ffff90921661ffff1990921691909117905561341a565b61329984848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601481527363616e63656c5472616e7366657251756f72756d60601b602082015291506146129050565b156133dd57600281146132dd5760405162461bcd60e51b815260040180806020018281038252603481526020018061487b6034913960400191505060405180910390fd5b6000613320600284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506146f992505050565b905060008161ffff1611801561333a575060648161ffff16105b61338b576040805162461bcd60e51b815260206004820152601e60248201527f696e76616c69642063616e63656c207472616e736665722071756f72756d0000604482015290519081900360640190fd5b604080517710d05390d15317d514905394d1915497d41493d413d4d05360421b815281519081900360180190206000908152600d60205220805461ffff90921661ffff1990921691909117905561341a565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b6008602052600090815260409020546001600160401b031681565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081565b61100281565b60005460ff16613536576040805162461bcd60e51b815260206004820152601960248201526000805160206149b2833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b15801561357957600080fd5b505afa15801561358d573d6000803e3d6000fd5b505050506040513d60208110156135a357600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b1580156135e457600080fd5b505afa1580156135f8573d6000803e3d6000fd5b505050506040513d602081101561360e57600080fd5b505190508061361b575060155b60008211801561362b5750808211155b61366a576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b600b5460ff166136b1576040805162461bcd60e51b815260206004820152600d60248201526c1b9bdd081cdd5cdc195b991959609a1b604482015290519081900360640190fd5b604080516e149153d4115397d41493d413d4d053608a1b8152905190819003600f019020600090613702907fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4706140e3565b9050801561374057600b805460ff1916905560405133907f899fe8c37dc61708a3aaa99c4bf143346c1d1da69af79be9e8920c0a6785b75290600090a25b505050565b600660209081526000928352604080842090915290825290205460ff1681565b6040518060400160405280600381526020016269626360e81b81525081565b610e1081565b61100381565b60005460ff16156137e8576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b7f1471eb6eb2c5e789fc3de43f8ce62938c7d1836ec861730447e2ada8fd81017b80546001600160a01b0319908116611008179091557f92e85d02570a8092d09a6e3a57665bc3815a2699a4074001bf1ccabf660f5a36805460ff199081169091557fd8af288fc1c8680b4f4706064cf021e264efb6828fcaf7eb5ca36818eb365bcc8054821660019081179091557f89832631fb3c3307a103ba2c84ab569c64d6182a18893dcd163f0f1c2090733a805484166110049081179091557f6cde3cea4b3a3fb2488b2808bae7556f4a405e50f65e1794383bc026131b13c38054841690557f72e4efa1513b071517c6c74dba31b5934a81aa83cddd400e7081df5529c9943680548416831790557fa9bc9a3a348c357ba16b37005d7e6b3236198c0e939f4af8c5f19b8deeb8ebc08054851690911790557fc575c31fea594a6eb97c8e9d3f9caee4c16218c6ef37e923234c0fe9014a61e78054831690557f4e523af77f034e9810f1c94057f5e931fb3d16a51511a4c3add793617d18610580548316821790557ffb33122aa9f93cc639ebe80a7bc4784c11e6053dde89c6f4f7e268c6a623da1e805484166110001790557fc7694af312c4f286114180fd0ba6a52461fcee8a381636770b19a343af92538a80548316821790557f01112dd68e482ba8d68a7e828cff8b3abcea08eab88941953c180a7e650e9cd480548316821790557fc0a4a8be475dfebc377ebef2d7c4ff47656f572a08dd92b81017efcdba0febe1805484166110071790557f87e8a52529e8ece4ef759037313542a6429ff494a9fab9027fb79db90124eba680548316821790557f4c7666bbcb22d46469f7cc282f70764a7012dca2cce630ff8d83db9a9cdd48f080548316821790557f40f28f99a40bc9f6beea1013afdbc3cdcc689eb76b82c4de06c0acf1e1932ed58054909316611001179092557f0d9cf2cd531699eed8dd34e40ff2884a14a698c4898184fba85194e6f6772d248054821683179055600b60009081527f23f68c9bd22b8a93d06adabe17481c87c016bcbd20adc8bfd707a4d813a572176020527fdf0d5d05428057f5455c2dc8e810dd86d1e9350faa72f16bda8a45443c5b39328054831684179055603283556004805467ffffffffffffffff19166001600160401b031790556002819055600381905580549091169091179055565b6007602052600090815260409020546001600160401b031681565b60005460ff16613ba7576040805162461bcd60e51b815260206004820152601960248201526000805160206149b2833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b158015613bea57600080fd5b505afa158015613bfe573d6000803e3d6000fd5b505050506040513d6020811015613c1457600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b158015613c5557600080fd5b505afa158015613c69573d6000803e3d6000fd5b505050506040513d6020811015613c7f57600080fd5b5051905080613c8c575060155b600082118015613c9c5750808211155b613cdb576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b600b5460ff1615613d1f576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b604080516f14d554d411539117d41493d413d4d05360821b81529051908190036010019020600090613d71907fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4706140e3565b905080156137405761374061401a565b60005460ff16613dc6576040805162461bcd60e51b815260206004820152601960248201526000805160206149b2833981519152604482015290519081900360640190fd5b33600090815260066020908152604080832060ff8089168552925290912054859116613e235760405162461bcd60e51b81526004018080602001828103825260318152602001806147f06031913960400191505060405180910390fd5b60ff85166000908152600760209081526040808320548151601f88018490048402810184019092528682526001600160401b031692613e889284928a9261208d92909189918c908c908190840183828082843760009201919091525061131c92505050565b60ff959095166000908152600760205260409020805467ffffffffffffffff191660019096016001600160401b03169590951790945550505050565b61100081565b600381565b61100481565b60408051600e808252818301909252606091630100610060ff851617918391602082018180368337505050600e81810187905260068201939093529182525090505b92915050565b600085613f2c57506000614011565b606082518451865160800101016040519080825280601f01601f191660200182016040528015613f63576020820181803683370190505b5090506000613f7182614704565b602080890151825201905086600080613f8989614098565b8086526020909501949092509050613fa28285836140a2565b92830192613faf88614098565b8086526020909501949092509050613fc88285836140a2565b9283018a815260200192613fdb87614098565b9092509050613feb8285836140a2565b508351602001613ff961470a565b60208183886065600019fa5051600114955050505050505b95945050505050565b600b5460ff161561405e576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b600b805460ff1916600117905560405133907f6f123d3d54c84a7960a573b31c221dcd86e13fd849c5adb0c6ca851468cc1ae490600090a2565b8051602090910191565b5b602081106140c2578251825260209283019290910190601f19016140a3565b915181516020939093036101000a6000190180199091169216919091179052565b6000828152600d602052604081205461ffff166141ac57604080516f14d554d411539117d41493d413d4d05360821b815281519081900360100181206000908152600d6020818152848320805461ffff199081166001179091556e149153d4115397d41493d413d4d053608a1b8552855194859003600f01852084528282528584208054821660029081179091557710d05390d15317d514905394d1915497d41493d413d4d05360421b8652865195869003601801909520845291905292902080549092161790555b6000838152600c6020526040902080546201000090046001600160801b0316421015806141dd575082816001015414155b156142b0576000848152600d602090815260409182902054835461ffff90911661ffff199091161771ffffffffffffffffffffffffffffffff0000191662010000610e1042016001600160801b0316021783556001808401869055825191820190925233815261425291600284019190614728565b5080546040805161ffff83168152620100009092046001600160801b0316602083015281810185905251339186917f9e109f0e55ef32e99e4880be2ec357f1ddb3469c79d0747ef4762da6e89fabe5916060908290030190a3614364565b60005b600282015481101561433b57336001600160a01b03168260020182815481106142d857fe5b6000918252602090912001546001600160a01b03161415614333576040805162461bcd60e51b815260206004820152601060248201526f185b1c9958591e48185c1c1c9bdd995960821b604482015290519081900360640190fd5b6001016142b3565b50600281018054600181018255600091825260209091200180546001600160a01b031916331790555b8054600282015461ffff909116116143be576000848152600c60205260408120805471ffffffffffffffffffffffffffffffffffff1916815560018101829055906143b2600283018261478d565b50506001915050613f17565b5060009392505050565b600080600060606021855110156143f8575050604080516000808252602082019092529092508291508190614471565b600185015160218601518651604080516020198301808252601f1960011990940193909316810160200190915260418901939291606091908015614443576020820181803683370190505b509050600061445182614098565b509050614463858260218d51036140a2565b506001975091955093509150505b9193509193565b600b5460ff16156144bc576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b6002544311156144fb576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b16179091556003554360025561453c565b6003805460019081019182905554101561453c576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b16179091556003555b8160ff16836001600160401b0316600460009054906101000a900460070b6001600160401b03167f3a6e0fc61675aa2a100bcba0568368bb92bcec91c97673391074f11138f0cffe606185604051808361ffff1661ffff16815260200180602001828103825283818151815260200191508051906020019080838360005b838110156145d25781810151838201526020016145ba565b50505050905090810190601f1680156145ff5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a4505050565b6000816040516020018082805190602001908083835b602083106146475780518252601f199092019160209182019101614628565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106146b55780518252601f199092019160209182019101614696565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b3b151590565b60200190565b60405180602001604052806001906020820280368337509192915050565b82805482825590600052602060002090810192821561477d579160200282015b8281111561477d57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190614748565b506147899291506147ae565b5090565b50805460008255906000526020600020908101906147ab91906147d5565b50565b6147d291905b808211156147895780546001600160a01b03191681556001016147b4565b90565b6147d291905b8082111561478957600081556001016147db56fe74686520636f6e747261637420616e64206368616e6e656c2068617665206e6f74206265656e20726567697374657265646c656e677468206f662076616c756520666f72206164644f725570646174654368616e6e656c2073686f756c642062652032322c206368616e6e656c49643a697346726f6d53797374656d3a68616e646c6572416464726573736c656e677468206f662076616c756520666f722063616e63656c5472616e7366657251756f72756d2073686f756c6420626520326c656e677468206f662076616c756520666f722073757370656e6451756f72756d2073686f756c6420626520326c656e677468206f662076616c756520666f722072656f70656e51756f72756d2073686f756c642062652032746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662076616c756520666f7220656e61626c654f7244697361626c654368616e6e656c2073686f756c6420626520322c206368616e6e656c49643a6973456e61626c65746865206e6577426174636853697a65466f724f7261636c652073686f756c6420626520696e205b31302c2031303030305d74686520636f6e7472616374206e6f7420696e697420796574000000000000006c6967687420636c69656e74206e6f742073796e632074686520626c6f636b20796574a26469706673582212200822a3bd79df610f758cc9702e0be636463b002fc0089f5e09cf86383a7f79fc64736f6c63430006040033", - }, - }, - } - - LubanUpgrade[networkname.RialtoChainName] = &Upgrade{ - UpgradeName: "luban", - Configs: []*UpgradeConfig{ - { - ContractAddr: ValidatorContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/b144718e94d7a1ebb24a7103202300f08826f369", - Code: "60806040526004361061046c5760003560e01c8063862498821161024a578063c6d3394511610139578063e40716a1116100b6578063f9a2bbc71161007a578063f9a2bbc714610b6b578063fc3e590814610b80578063fccc281314610b95578063fd4ad81f14610baa578063fd6a687914610bd957610473565b8063e40716a114610af9578063eb57e20214610b0e578063eda5868c14610b2e578063f340fa0114610b43578063f92eb86b14610b5657610473565b8063d86222d5116100fd578063d86222d514610a90578063daacdb6614610aa5578063dc927faf14610aba578063e086c7b114610acf578063e1c7392a14610ae457610473565b8063c6d3394514610a3c578063c81b166214610a51578063c8509d811461085f578063d04aa99614610a66578063d68fb56a14610a7b57610473565b8063a5422d5c116101c7578063ad3c9da61161018b578063ad3c9da6146109d0578063aef198a9146109f0578063b7ab4db514610a05578063b8cf4ef114610a27578063bf9f49951461062f57610473565b8063a5422d5c1461095c578063a78abc1614610971578063aaf5eb6814610986578063ab51bb961461099b578063ac431751146109b057610473565b806396713da91161020e57806396713da9146108f35780639dc09262146109085780639fe0f8161461091d578063a0dc275814610932578063a1a11bf51461094757610473565b8063862498821461087f57806388b32f11146108945780638b5ad0c9146108a95780638d19a410146108be5780639369d7de146108de57610473565b80634df6e0c3116103665780636e47b482116102e35780637942fd05116102a75780637942fd05146108205780637a84ca2a1461083557806381650b621461084a578063831d65d11461085f578063853230aa1461080b57610473565b80636e47b482146107b757806370fd5bad146107cc578063718a8aa8146107e157806375d47a0a146107f657806378dfed4a1461080b57610473565b8063565c56b31161032a578063565c56b3146107265780635667515a146107465780635d77156c1461075b57806362b72cf5146107705780636969a25c1461078557610473565b80634df6e0c3146106b25780635192c82c146106c757806351e80672146106dc578063549b03f2146106f157806355614fcc1461070657610473565b8063321d398a116103f45780633dffc387116103b85780633dffc3871461062f57806343756e5c1461065157806345cf9daf14610666578063493279b11461067b5780634bf6c8821461069d57610473565b8063321d398a146105975780633365af3a146105b757806335409f7f146105d75780633b071dcc146105f75780633de0f0d81461061a57610473565b80631182b8751161043b5780631182b875146104fe578063152ad3b81461052b5780631ff180691461054d578063219f22d514610562578063300c35671461057757610473565b806304c4fec61461047857806307a568471461048f5780630bee7a67146104ba5780630e2374a5146104dc57610473565b3661047357005b600080fd5b34801561048457600080fd5b5061048d610bee565b005b34801561049b57600080fd5b506104a4610c60565b6040516104b19190616ef1565b60405180910390f35b3480156104c657600080fd5b506104cf610c66565b6040516104b19190616f1b565b3480156104e857600080fd5b506104f1610c6b565b6040516104b191906162f8565b34801561050a57600080fd5b5061051e6105193660046161de565b610c71565b6040516104b1919061646f565b34801561053757600080fd5b50610540610ea9565b6040516104b19190616464565b34801561055957600080fd5b506104a4610eb2565b34801561056e57600080fd5b506104cf610eb8565b34801561058357600080fd5b5061048d6105923660046160a7565b610ebd565b3480156105a357600080fd5b506105406105b236600461618b565b611241565b3480156105c357600080fd5b506105406105d236600461618b565b611310565b3480156105e357600080fd5b5061048d6105f2366004616080565b6113c1565b34801561060357600080fd5b5061060c61151a565b6040516104b192919061637a565b34801561062657600080fd5b506104a46117f6565b34801561063b57600080fd5b506106446117fc565b6040516104b19190616f2c565b34801561065d57600080fd5b506104f1611801565b34801561067257600080fd5b506104a4611807565b34801561068757600080fd5b5061069061180d565b6040516104b19190616ee2565b3480156106a957600080fd5b50610644611813565b3480156106be57600080fd5b5061060c611818565b3480156106d357600080fd5b506104a4611996565b3480156106e857600080fd5b506104f161199c565b3480156106fd57600080fd5b506104a46119a2565b34801561071257600080fd5b50610540610721366004616080565b6119a8565b34801561073257600080fd5b506104a4610741366004616080565b6119dd565b34801561075257600080fd5b50610644611a2e565b34801561076757600080fd5b506104cf611a33565b34801561077c57600080fd5b506104a4611a38565b34801561079157600080fd5b506107a56107a036600461618b565b611a3e565b6040516104b196959493929190616325565b3480156107c357600080fd5b506104f1611aa2565b3480156107d857600080fd5b50610644611aa8565b3480156107ed57600080fd5b50610644611aad565b34801561080257600080fd5b506104f1611ab2565b34801561081757600080fd5b506104a4611ab8565b34801561082c57600080fd5b50610644611abe565b34801561084157600080fd5b506104a4611ac3565b34801561085657600080fd5b506104cf611ac9565b34801561086b57600080fd5b5061048d61087a3660046161de565b611ace565b34801561088b57600080fd5b506104a4611b2f565b3480156108a057600080fd5b506104a4611b35565b3480156108b557600080fd5b506104a4611b3b565b3480156108ca57600080fd5b506104a46108d9366004616080565b611b41565b3480156108ea57600080fd5b5061048d611b81565b3480156108ff57600080fd5b50610644611c95565b34801561091457600080fd5b506104f1611c9a565b34801561092957600080fd5b506104a4611ca0565b34801561093e57600080fd5b506104a4611ca5565b34801561095357600080fd5b506104f1611caa565b34801561096857600080fd5b5061051e611cb0565b34801561097d57600080fd5b50610540611ccf565b34801561099257600080fd5b506104a4611cd8565b3480156109a757600080fd5b506104cf611a2e565b3480156109bc57600080fd5b5061048d6109cb36600461612f565b611ce1565b3480156109dc57600080fd5b506104a46109eb366004616080565b61258d565b3480156109fc57600080fd5b506104a461259f565b348015610a1157600080fd5b50610a1a6125ac565b6040516104b19190616367565b348015610a3357600080fd5b506104a4612698565b348015610a4857600080fd5b506104a4611aa8565b348015610a5d57600080fd5b506104f161269d565b348015610a7257600080fd5b506104a46126a3565b348015610a8757600080fd5b506104a46126a8565b348015610a9c57600080fd5b506104a46126e7565b348015610ab157600080fd5b506104a46126f3565b348015610ac657600080fd5b506104f16126f9565b348015610adb57600080fd5b506104a46126ff565b348015610af057600080fd5b5061048d612704565b348015610b0557600080fd5b506104a46128b3565b348015610b1a57600080fd5b5061048d610b29366004616080565b6128b9565b348015610b3a57600080fd5b506104cf6129c1565b61048d610b51366004616080565b6129c6565b348015610b6257600080fd5b506104a4612c4e565b348015610b7757600080fd5b506104f1612c54565b348015610b8c57600080fd5b50610644611ca0565b348015610ba157600080fd5b506104f1612c5a565b348015610bb657600080fd5b50610bca610bc536600461618b565b612c60565b6040516104b193929190616efa565b348015610be557600080fd5b506104f1612d22565b6000610bf933611b41565b9050600b8181548110610c0857fe5b600091825260209091206001601690920201015460ff16610c445760405162461bcd60e51b8152600401610c3b90616b9a565b60405180910390fd5b6000610c4e6126a8565b9050610c5b338383612d28565b505050565b60095481565b606481565b61200181565b60005460609060ff16610c965760405162461bcd60e51b8152600401610c3b9061662e565b3361200014610cb75760405162461bcd60e51b8152600401610c3b90616d79565b600b54610d7557610cc6615d6c565b60015460005b81811015610d7157600b8054600181018255600091909152835160008051602061714f833981519152601690920291820190815560208086015160008051602061718f8339815191528401805460ff1916911515919091179055604086015180518794610d4d9360008051602061716f833981519152909101920190615d9b565b506060820151610d639060038301906013615e15565b505050806001019050610ccc565b5050505b610d7d615e42565b6000610dbe85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612f1492505050565b9150915080610dda57610dd160646130d0565b92505050610ea2565b815160009060ff16610dff57610df883602001518460400151613131565b9050610e6e565b825160ff1660011415610e6a57826020015151600114610e445760008051602061712f833981519152604051610e3490616a81565b60405180910390a1506067610e65565b610df88360200151600081518110610e5857fe5b6020026020010151613d85565b610e6e565b5060655b63ffffffff8116610e935750506040805160008152602081019091529150610ea29050565b610e9c816130d0565b93505050505b9392505050565b60075460ff1681565b60035481565b606881565b334114610edc5760405162461bcd60e51b8152600401610c3b90616dc8565b6010544311610efd5760405162461bcd60e51b8152600401610c3b9061678a565b60005460ff16610f1f5760405162461bcd60e51b8152600401610c3b9061662e565b600f54610f37576032600f5561100231601155611237565b60006110023168056bc75e2d63100000811115610f6657610f5f81606463ffffffff613efc16565b9150610faf565b601154811115610fa857610f5f6064610f9c600f54610f9060115486613f3e90919063ffffffff16565b9063ffffffff613f8016565b9063ffffffff613efc16565b5050611237565b6040516309a99b4f60e41b815261100290639a99b4f090610fd6903090869060040161630c565b602060405180830381600087803b158015610ff057600080fd5b505af1158015611004573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061102891906161a3565b6110023160115591508161103d575050611237565b6000805b8481101561106b5785858281811061105557fe5b9050602002013582019150806001019050611041565b508061107957505050611237565b6000806000805b8981101561122f578489898381811061109557fe5b905060200201358802816110a557fe5b0493508a8a828181106110b457fe5b90506020020160208101906110c99190616080565b6001600160a01b038116600090815260046020526040902054909350915081156111e55760006001808403815481106110fe57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff161561116b57836001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d858660405161115e9190616ef1565b60405180910390a26111df565b60035461117e908663ffffffff613fba16565b6003908155810154611196908663ffffffff613fba16565b60038201556040516001600160a01b038516907fcb0aad6cf9cd03bdf6137e359f541c42f38b39f007cae8e89e88aa7d8c6617b2906111d6908890616ef1565b60405180910390a25b50611227565b826001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d858560405161121e9190616ef1565b60405180910390a25b600101611080565b505050505050505b5050436010555050565b60015460009082106112555750600061130b565b60006001600160a01b03166001838154811061126d57fe5b60009182526020909120600490910201546001600160a01b0316148061129d5750600854158061129d5750600a54155b806112ac575060085460095410155b806112bd57506112bb82611310565b155b806112e657506000600b83815481106112d257fe5b906000526020600020906016020160000154115b806112fa575060016112f66125ac565b5111155b156113075750600061130b565b5060015b919050565b60015460009082106113245750600061130b565b600b548210611361576001828154811061133a57fe5b9060005260206000209060040201600201601c9054906101000a900460ff1615905061130b565b6001828154811061136e57fe5b9060005260206000209060040201600201601c9054906101000a900460ff161580156113bb5750600b82815481106113a257fe5b600091825260209091206001601690920201015460ff16155b92915050565b33611001146113e25760405162461bcd60e51b8152600401610c3b90616e99565b600b546114a0576113f1615d6c565b60015460005b8181101561149c57600b8054600181018255600091909152835160008051602061714f833981519152601690920291820190815560208086015160008051602061718f8339815191528401805460ff19169115159190911790556040860151805187946114789360008051602061716f833981519152909101920190615d9b565b50606082015161148e9060038301906013615e15565b5050508060010190506113f7565b5050505b6001600160a01b038116600090815260046020526040902054806114c45750611517565b6001810390506000600b82815481106114d957fe5b600091825260209091206001601690920201015460ff1690506114fc8383613fdf565b80156115055750805b15610c5b576009805460001901905550505b50565b60015460609081906000805b8281101561156d576001818154811061153b57fe5b9060005260206000209060040201600201601c9054906101000a900460ff16611565576001909101905b600101611526565b5060608160405190808252806020026020018201604052801561159a578160200160208202803683370190505b5090506060826040519080825280602002602001820160405280156115d357816020015b60608152602001906001900390816115be5790505b50600b546000945090915084141561174e5760005b8481101561174857600181815481106115fd57fe5b9060005260206000209060040201600201601c9054906101000a900460ff16611740576001818154811061162d57fe5b600091825260209091206004909102015483516001600160a01b039091169084908690811061165857fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600b818154811061168557fe5b600091825260209182902060026016909202018101805460408051601f60001961010060018616150201909316949094049182018590048502840185019052808352919290919083018282801561171d5780601f106116f25761010080835404028352916020019161171d565b820191906000526020600020905b81548152906001019060200180831161170057829003601f168201915b505050505082858151811061172e57fe5b60209081029190910101526001909301925b6001016115e8565b506117ea565b60005b848110156117e8576001818154811061176657fe5b9060005260206000209060040201600201601c9054906101000a900460ff166117e0576001818154811061179657fe5b600091825260209091206004909102015483516001600160a01b03909116908490869081106117c157fe5b6001600160a01b03909216602092830291909101909101526001909301925b600101611751565b505b909450925050505b9091565b61271081565b600181565b61100181565b60085481565b6102ca81565b600881565b600e54600c5460609182918061182c575060155b60606118366125ac565b9050606061184382614392565b90508282511161185a5790945092506117f2915050565b8383835103101561186c578282510393505b83156118a25760c8430461188883838388880360008a8a614500565b6118a08383838888038989038a8b8b8b510301614500565b505b6060836040519080825280602002602001820160405280156118ce578160200160208202803683370190505b50905060608460405190808252806020026020018201604052801561190757816020015b60608152602001906001900390816118f25790505b50905060005b858110156119885784818151811061192157fe5b602002602001015183828151811061193557fe5b60200260200101906001600160a01b031690816001600160a01b03168152505083818151811061196157fe5b602002602001015182828151811061197557fe5b602090810291909101015260010161190d565b509096509450505050509091565b60065481565b61200081565b600f5481565b6001600160a01b038116600090815260046020526040812054806119d057600091505061130b565b60001901610ea281611310565b6001600160a01b03811660009081526004602052604081205480611a0557600091505061130b565b600180820381548110611a1457fe5b906000526020600020906004020160030154915050919050565b600081565b606781565b60105481565b60018181548110611a4b57fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b601081565b61100881565b6103e881565b600b81565b600c5481565b606681565b3361200014611aef5760405162461bcd60e51b8152600401610c3b90616d79565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051611b2293929190616f3a565b60405180910390a1505050565b60025481565b60115481565b600a5481565b6001600160a01b03811660009081526004602052604081205480611b775760405162461bcd60e51b8152600401610c3b90616d01565b6000190192915050565b600b54611c3f57611b90615d6c565b60015460005b81811015611c3b57600b8054600181018255600091909152835160008051602061714f833981519152601690920291820190815560208086015160008051602061718f8339815191528401805460ff1916911515919091179055604086015180518794611c179360008051602061716f833981519152909101920190615d9b565b506060820151611c2d9060038301906013615e15565b505050806001019050611b96565b5050505b600854611c4c5760036008555b600a54611c59576002600a555b6000611c6433611b41565b9050611c6f81611241565b611c8b5760405162461bcd60e51b8152600401610c3b90616a3e565b6115173382614657565b600981565b61100781565b600381565b60c881565b61100681565b604051806101e001604052806101ab8152602001616f846101ab913981565b60005460ff1681565b6402540be40081565b60005460ff16611d035760405162461bcd60e51b8152600401610c3b9061662e565b3361100714611d245760405162461bcd60e51b8152600401610c3b90616b07565b611d8e84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b602082015291506146ef9050565b15611e2b5760208114611db35760405162461bcd60e51b8152600401610c3b90616cbb565b604080516020601f8401819004810282018101909252828152600091611df19185858083850183828082843760009201919091525061474892505050565b905060648110158015611e075750620186a08111155b611e235760405162461bcd60e51b8152600401610c3b906168e7565b60025561254a565b611e8b84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260098152686275726e526174696f60b81b602082015291506146ef9050565b15611f275760208114611eb05760405162461bcd60e51b8152600401610c3b906164b4565b604080516020601f8401819004810282018101909252828152600091611eee9185858083850183828082843760009201919091525061474892505050565b9050612710811115611f125760405162461bcd60e51b8152600401610c3b906167cc565b6006556007805460ff1916600117905561254a565b611f9184848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260138152726d61784e756d4f664d61696e7461696e696e6760681b602082015291506146ef9050565b1561202b5760208114611fb65760405162461bcd60e51b8152600401610c3b906164eb565b604080516020601f8401819004810282018101909252828152600091611ff49185858083850183828082843760009201919091525061474892505050565b600c5490915080612003575060155b8082106120225760405162461bcd60e51b8152600401610c3b9061683f565b5060085561254a565b61209484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61696e7461696e536c6173685363616c6560701b602082015291506146ef9050565b1561212d57602081146120b95760405162461bcd60e51b8152600401610c3b906165b4565b604080516020601f84018190048102820181019092528281526000916120f79185858083850183828082843760009201919091525061474892505050565b90506000811180156121095750600a81105b6121255760405162461bcd60e51b8152600401610c3b90616e15565b600a5561254a565b6121a184848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601981527f6d61784e756d4f66576f726b696e6743616e6469646174657300000000000000602082015291506146ef9050565b1561223057602081146121c65760405162461bcd60e51b8152600401610c3b90616568565b604080516020601f84018190048102820181019092528281526000916122049185858083850183828082843760009201919091525061474892505050565b9050600d548111156122285760405162461bcd60e51b8152600401610c3b9061695d565b600e5561254a565b61229984848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61784e756d4f6643616e6469646174657360701b602082015291506146ef9050565b1561231b57602081146122be5760405162461bcd60e51b8152600401610c3b90616b55565b604080516020601f84018190048102820181019092528281526000916122fc9185858083850183828082843760009201919091525061474892505050565b600d819055600e5490915081101561231557600d54600e555b5061254a565b61237f84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c6e756d4f66436162696e65747360981b602082015291506146ef9050565b1561242d57602081146123a45760405162461bcd60e51b8152600401610c3b906165f9565b604080516020601f84018190048102820181019092528281526000916123e29185858083850183828082843760009201919091525061474892505050565b9050600081116124045760405162461bcd60e51b8152600401610c3b9061669c565b60298111156124255760405162461bcd60e51b8152600401610c3b906166e4565b600c5561254a565b61249784848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601381527266696e616c697479526577617264526174696f60681b602082015291506146ef9050565b1561253257602081146124bc5760405162461bcd60e51b8152600401610c3b90616c3e565b604080516020601f84018190048102820181019092528281526000916124fa9185858083850183828082843760009201919091525061474892505050565b90506001811015801561250e575060648111155b61252a5760405162461bcd60e51b8152600401610c3b906169cc565b600f5561254a565b60405162461bcd60e51b8152600401610c3b90616e72565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a8484848460405161257f9493929190616482565b60405180910390a150505050565b60046020526000908152604090205481565b68056bc75e2d6310000081565b6001546060906000805b828110156125db576125c781611310565b156125d3578160010191505b6001016125b6565b50606081604051908082528060200260200182016040528015612608578160200160208202803683370190505b5090506000915060005b8381101561268f5761262381611310565b15612687576001818154811061263557fe5b600091825260209091206004909102015482516001600160a01b039091169083908590811061266057fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508260010192505b600101612612565b50925050505b90565b601581565b61100281565b603281565b60006126b26125ac565b519050600080600c54116126c75760156126cb565b600c545b9050808211156126d9578091505b816126e357600191505b5090565b67016345785d8a000081565b60055481565b61100381565b602981565b60005460ff16156127275760405162461bcd60e51b8152600401610c3b90616c07565b61272f615e42565b6000612755604051806101e001604052806101ab8152602001616f846101ab9139612f14565b91509150806127765760405162461bcd60e51b8152600401610c3b90616d38565b60005b82602001515181101561289b5760018360200151828151811061279857fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a09093015160039093019290925591860151805191850193918590811061286e57fe5b602090810291909101810151516001600160a01b0316825281019190915260400160002055600101612779565b50506103e8600255506000805460ff19166001179055565b600d5481565b33611001146128da5760405162461bcd60e51b8152600401610c3b90616e99565b600b54612998576128e9615d6c565b60015460005b8181101561299457600b8054600181018255600091909152835160008051602061714f833981519152601690920291820190815560208086015160008051602061718f8339815191528401805460ff19169115159190911790556040860151805187946129709360008051602061716f833981519152909101920190615d9b565b5060608201516129869060038301906013615e15565b5050508060010190506128ef565b5050505b60006129a38261474d565b90506129ae81611241565b156129bd576129bd8282614657565b5050565b606581565b3341146129e55760405162461bcd60e51b8152600401610c3b90616dc8565b60005460ff16612a075760405162461bcd60e51b8152600401610c3b9061662e565b60003411612a275760405162461bcd60e51b8152600401610c3b9061692e565b6001600160a01b0381166000908152600460205260409020546007543491906103e89060ff1615612a5757506006545b600083118015612a675750600081115b15612b08576000612a84612710610f9c868563ffffffff613f8016565b90508015612b065760405161dead9082156108fc029083906000818181858888f19350505050158015612abb573d6000803e3d6000fd5b507f627059660ea01c4733a328effb2294d2f86905bf806da763a89cee254de8bee581604051612aeb9190616ef1565b60405180910390a1612b03848263ffffffff613f3e16565b93505b505b8115612c06576000600180840381548110612b1f57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff1615612b8c57846001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b485604051612b7f9190616ef1565b60405180910390a2612c00565b600354612b9f908563ffffffff613fba16565b6003908155810154612bb7908563ffffffff613fba16565b60038201556040516001600160a01b038616907f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc05590612bf7908790616ef1565b60405180910390a25b50612c48565b836001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b484604051612c3f9190616ef1565b60405180910390a25b50505050565b600e5481565b61100081565b61dead81565b600b8181548110612c6d57fe5b6000918252602091829020601691909102018054600180830154600280850180546040805161010096831615969096026000190190911692909204601f810188900488028501880190925281845293965060ff90911694919291830182828015612d185780601f10612ced57610100808354040283529160200191612d18565b820191906000526020600020905b815481529060010190602001808311612cfb57829003601f168201915b5050505050905083565b61100481565b6000600a5460001480612d39575081155b80612d445750600954155b15612d5157506000610ea2565b60096000815460019003919050819055506000612d9c600a54610f9c85610f9c600b8981548110612d7e57fe5b6000918252602090912060169091020154439063ffffffff613f3e16565b90506000600b8581548110612dad57fe5b906000526020600020906016020160010160006101000a81548160ff0219169083151502179055506000806110016001600160a01b0316638256ace66040518163ffffffff1660e01b8152600401604080518083038186803b158015612e1257600080fd5b505afa158015612e26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e4a91906161bb565b9150915060009350808310612ec457612e638787613fdf565b506040516305bfb49960e41b815261100190635bfb499090612e89908a906004016162f8565b600060405180830381600087803b158015612ea357600080fd5b505af1158015612eb7573d6000803e3d6000fd5b5050505060019350612ed6565b818310612ed657612ed48761474d565b505b6040516001600160a01b038816907fb9d38178dc641ff1817967a63c9078cbcd955a9f1fcd75e0e3636de615d44d3b90600090a25050509392505050565b612f1c615e42565b6000612f26615e42565b612f2e615e66565b612f3f612f3a866148f0565b614915565b90506000805b612f4e8361495f565b156130c25780612f7357612f69612f6484614980565b6149ce565b60ff1684526130ba565b80600114156130b5576060612f8f612f8a85614980565b614a4e565b90508051604051908082528060200260200182016040528015612fcc57816020015b612fb9615e86565b815260200190600190039081612fb15790505b508560200181905250805160405190808252806020026020018201604052801561300a57816020015b6060815260200190600190039081612ff55790505b50604086015260005b81518110156130aa57613024615e86565b6060600061304485858151811061303757fe5b6020026020010151614b1f565b92509250925080613064578860009a509a505050505050505050506130cb565b828960200151858151811061307557fe5b6020026020010181905250818960400151858151811061309157fe5b6020026020010181905250505050806001019050613013565b5060019250506130ba565b6130c2565b600101612f45565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b60608152602001906001900390816130ea5790505090506131108363ffffffff16614c39565b8160008151811061311d57fe5b6020026020010181905250610ea281614c4c565b60006029835111156131685760008051602061712f83398151915260405161315890616741565b60405180910390a15060666113bb565b60005b83518110156132065760005b818110156131fd5784818151811061318b57fe5b6020026020010151600001516001600160a01b03168583815181106131ac57fe5b6020026020010151600001516001600160a01b031614156131f55760008051602061712f8339815191526040516131e29061689c565b60405180910390a16066925050506113bb565b600101613177565b5060010161316b565b506060806132148585614cd6565b60015491935091506000908190815b818110156132995767016345785d8a00006001828154811061324157fe5b9060005260206000209060040201600301541061326357836001019350613291565b60006001828154811061327257fe5b9060005260206000209060040201600301541115613291578260010192505b600101613223565b506060836040519080825280602002602001820160405280156132c6578160200160208202803683370190505b5090506060846040519080825280602002602001820160405280156132f5578160200160208202803683370190505b509050606085604051908082528060200260200182016040528015613324578160200160208202803683370190505b509050606086604051908082528060200260200182016040528015613353578160200160208202803683370190505b5090506000606087604051908082528060200260200182016040528015613384578160200160208202803683370190505b5090506060886040519080825280602002602001820160405280156133b3578160200160208202803683370190505b509050600099506000985060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b1580156133fb57600080fd5b505afa15801561340f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061343391906161a3565b905067016345785d8a000081111561347e5760008051602061712f83398151915260405161346090616bc6565b60405180910390a160689d50505050505050505050505050506113bb565b60005b898110156136ef5767016345785d8a00006001828154811061349f57fe5b9060005260206000209060040201600301541061362457600181815481106134c357fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316898d815181106134f457fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be4006001838154811061352957fe5b9060005260206000209060040201600301548161354257fe5b066001838154811061355057fe5b9060005260206000209060040201600301540390506135788382613f3e90919063ffffffff16565b898e8151811061358457fe5b6020026020010181815250506001828154811061359d57fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316878e815181106135ce57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081888e815181106135fb57fe5b6020908102919091010152613616868263ffffffff613fba16565b95508c6001019c50506136e7565b60006001828154811061363357fe5b90600052602060002090600402016003015411156136e7576001818154811061365857fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316848c8151811061368957fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600181815481106136b657fe5b906000526020600020906004020160030154838c815181106136d457fe5b6020026020010181815250508a6001019a505b600101613481565b5060008415613965576002546040516303702b2960e51b815261100491636e056520918891613729918e918e918d914201906004016163ea565b6020604051808303818588803b15801561374257600080fd5b505af193505050508015613773575060408051601f3d908101601f191682019092526137709181019061610f565b60015b6138ea576040516000815260443d101561378f5750600061382a565b60046000803e60005160e01c6308c379a081146137b057600091505061382a565b60043d036004833e81513d60248201116001600160401b03821117156137db5760009250505061382a565b80830180516001600160401b038111156137fc57600094505050505061382a565b8060208301013d860181111561381a5760009550505050505061382a565b601f01601f191660405250925050505b806138355750613877565b60019150857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf28082604051613869919061646f565b60405180910390a2506138e5565b3d8080156138a1576040519150601f19603f3d011682016040523d82523d6000602084013e6138a6565b606091505b5060019150857fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a45826040516138db919061646f565b60405180910390a2505b613965565b801561392c577fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b708660405161391f9190616ef1565b60405180910390a1613963565b857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf28060405161395a90616531565b60405180910390a25b505b8015613b1b5760005b8751811015613b1957600088828151811061398557fe5b6020026020010151905060006001828154811061399e57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc91859081106139cf57fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f1935050505090508015613a8b5760018281548110613a1057fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d9185908110613a5f57fe5b906000526020600020906004020160030154604051613a7e9190616ef1565b60405180910390a2613b0f565b60018281548110613a9857fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d9185908110613ae757fe5b906000526020600020906004020160030154604051613b069190616ef1565b60405180910390a25b505060010161396e565b505b835115613c655760005b8451811015613c63576000858281518110613b3c57fe5b60200260200101516001600160a01b03166108fc868481518110613b5c57fe5b60200260200101519081150290604051600060405180830381858888f1935050505090508015613bf257858281518110613b9257fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d868481518110613bd057fe5b6020026020010151604051613be59190616ef1565b60405180910390a2613c5a565b858281518110613bfe57fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d868481518110613c3c57fe5b6020026020010151604051613c519190616ef1565b60405180910390a25b50600101613b25565b505b5050505050505050505050506000471115613ce1577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d47604051613ca99190616ef1565b60405180910390a1604051611002904780156108fc02916000818181858888f19350505050158015613cdf573d6000803e3d6000fd5b505b60006003819055600555815115613cfc57613cfc8282614f0f565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015613d3957600080fd5b505af1158015613d4d573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a1506000949350505050565b80516001600160a01b0316600090815260046020526040812054801580613dd65750600180820381548110613db657fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b15613e1c5782516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a2600091505061130b565b600154600554600019820111801590613e725784516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a26000935050505061130b565b600580546001908101909155805481906000198601908110613e9057fe5b6000918252602082206002600490920201018054921515600160e01b0260ff60e01b199093169290921790915585516040516001600160a01b03909116917ff226e7d8f547ff903d9d419cf5f54e0d7d07efa9584135a53a057c5f1f27f49a91a2506000949350505050565b6000610ea283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506156ee565b6000610ea283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250615725565b600082613f8f575060006113bb565b82820282848281613f9c57fe5b0414610ea25760405162461bcd60e51b8152600401610c3b90616ac6565b600082820183811015610ea25760405162461bcd60e51b8152600401610c3b90616665565b60008060018381548110613fef57fe5b906000526020600020906004020160030154905060006001808054905003905060016140196125ac565b511161404e5760006001858154811061402e57fe5b9060005260206000209060040201600301819055506000925050506113bb565b846001600160a01b03167f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a70836040516140879190616ef1565b60405180910390a26001600160a01b038516600090815260046020526040812055835b6001546000190181101561427457600181600101815481106140c857fe5b9060005260206000209060040201600182815481106140e357fe5b60009182526020909120825460049092020180546001600160a01b03199081166001600160a01b0393841617825560018085015481840180548416918616919091179055600280860180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b19909416939093179055600392830154920191909155600b8054909183019081106141a457fe5b9060005260206000209060160201600b82815481106141bf57fe5b600091825260209091208254601690920201908155600180830154818301805460ff909216151560ff1990921691909117905560028084018054614216938386019390821615610100026000190190911604615ebb565b5061422960038281019084016013615f30565b5090505080600101600460006001848154811061424257fe5b600091825260208083206004909202909101546001600160a01b031683528201929092526040019020556001016140aa565b50600180548061428057fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b8054806142d357fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906143056002830182615f5a565b614313600383016000615f9e565b50509055600081838161432257fe5b04905080156143865760015460005b8181101561438357826001828154811061434757fe5b906000526020600020906004020160030154016001828154811061436757fe5b6000918252602090912060036004909202010155600101614331565b50505b50600195945050505050565b6001548151604080518281526020808402820101909152606092919083908280156143d157816020015b60608152602001906001900390816143bc5790505b50600b5490915083146143e857925061130b915050565b60005b828110156144f757600b60016004600089858151811061440757fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054038154811061443b57fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156144d35780601f106144a8576101008083540402835291602001916144d3565b820191906000526020600020905b8154815290600101906020018083116144b657829003601f168201915b50505050508282815181106144e457fe5b60209081029190910101526001016143eb565b50949350505050565b60005b8281101561464d57600082878388016040516020016145239291906162ea565b6040516020818303038152906040528051906020012060001c8161454357fe5b06905080850182870114614644576000898388018151811061456157fe5b602002602001015190506060898489018151811061457b57fe5b602002602001015190508a8388018151811061459357fe5b60200260200101518b858a01815181106145a957fe5b60200260200101906001600160a01b031690816001600160a01b031681525050818b848901815181106145d857fe5b60200260200101906001600160a01b031690816001600160a01b031681525050898388018151811061460657fe5b60200260200101518a858a018151811061461c57fe5b6020026020010181905250808a8489018151811061463657fe5b602002602001018190525050505b50600101614503565b5050505050505050565b600980546001908101909155600b80548390811061467157fe5b906000526020600020906016020160010160006101000a81548160ff02191690831515021790555043600b82815481106146a757fe5b600091825260208220601690910201919091556040516001600160a01b038416917ff62981a567ec3cec866c6fa93c55bcdf841d6292d18b8d522ececa769375d82d91a25050565b60008160405160200161470291906162ce565b604051602081830303815290604052805190602001208360405160200161472991906162ce565b6040516020818303038152906040528051906020012014905092915050565b015190565b6001600160a01b038116600090815260046020526040812054806147765750600019905061130b565b60018103905060006001828154811061478b57fe5b90600052602060002090600402016003015490506000600183815481106147ae57fe5b6000918252602090912060036004909202010155600154604051600019909101906001600160a01b038616907f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d90614807908590616ef1565b60405180910390a28061481f5782935050505061130b565b600081838161482a57fe5b04905080156148e65760005b8481101561488857816001828154811061484c57fe5b906000526020600020906004020160030154016001828154811061486c57fe5b6000918252602090912060036004909202010155600101614836565b50600180549085015b818110156148e35782600182815481106148a757fe5b90600052602060002090600402016003015401600182815481106148c757fe5b6000918252602090912060036004909202010155600101614891565b50505b5091949350505050565b6148f8615fad565b506040805180820190915281518152602082810190820152919050565b61491d615e66565b61492682615751565b61492f57600080fd5b600061493e836020015161578b565b60208085015160408051808201909152868152920190820152915050919050565b6000614969615fad565b505080518051602091820151919092015191011190565b614988615fad565b6149918261495f565b61499a57600080fd5b602082015160006149aa826157ee565b80830160209586015260408051808201909152908152938401919091525090919050565b8051600090158015906149e357508151602110155b6149ec57600080fd5b60006149fb836020015161578b565b90508083600001511015614a215760405162461bcd60e51b8152600401610c3b90616c84565b8251602080850151830180519284900392918310156144f757506020919091036101000a90049392505050565b6060614a5982615751565b614a6257600080fd5b6000614a6d836158cf565b9050606081604051908082528060200260200182016040528015614aab57816020015b614a98615fad565b815260200190600190039081614a905790505b5090506000614abd856020015161578b565b60208601510190506000805b84811015614b1457614ada836157ee565b9150604051806040016040528083815260200184815250848281518110614afd57fe5b602090810291909101015291810191600101614ac9565b509195945050505050565b614b27615e86565b60606000614b33615e86565b6060614b3d615e66565b614b4687614915565b90506000805b614b558361495f565b15614c2a5780614b8057614b70614b6b84614980565b61592b565b6001600160a01b03168552614c22565b8060011415614ba857614b95614b6b84614980565b6001600160a01b03166020860152614c22565b8060021415614bd057614bbd614b6b84614980565b6001600160a01b03166040860152614c22565b8060031415614bfc57614be5612f6484614980565b6001600160401b0316606086015260019150614c22565b8060041415614c1d57614c16614c1184614980565b615945565b9350614c22565b614c2a565b600101614b4c565b50929791965091945092505050565b60606113bb614c47836159b5565b615a9b565b6060815160001415614c6d575060408051600081526020810190915261130b565b606082600081518110614c7c57fe5b602002602001015190506000600190505b8351811015614cbd57614cb382858381518110614ca657fe5b6020026020010151615aed565b9150600101614c8d565b50610ea2614cd0825160c060ff16615b6a565b82615aed565b606080600080808080614ce76126a8565b6001549091505b8015614df557600181039250600b8381548110614d0757fe5b600091825260209091206001601690920201015460ff16614d2757614dec565b60018381548110614d3457fe5b60009182526020909120600490910201546001600160a01b03169450614d5b858484612d28565b9350831580614d6e575060018a51038610155b15614d7857614dec565b60005b8a51811015614dea57856001600160a01b03168b8281518110614d9a57fe5b6020026020010151600001516001600160a01b03161415614de25760018b8281518110614dc357fe5b6020908102919091010151901515608090910152600190960195614dea565b600101614d7b565b505b60001901614cee565b5084895103604051908082528060200260200182016040528015614e3357816020015b614e20615e86565b815260200190600190039081614e185790505b50965084895103604051908082528060200260200182016040528015614e6d57816020015b6060815260200190600190039081614e585790505b5095506000915060005b8951811015614f0157898181518110614e8c57fe5b602002602001015160800151614ef957898181518110614ea857fe5b6020026020010151888481518110614ebc57fe5b6020026020010181905250888181518110614ed357fe5b6020026020010151878481518110614ee757fe5b60200260200101819052508260010192505b600101614e77565b5050505050505b9250929050565b600154825160005b8281101561502c576001614f29615e86565b60018381548110614f3657fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b8481101561500057878181518110614fc657fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b03161415614ff85760009250615000565b600101614fb2565b5081156150225780516001600160a01b03166000908152600460205260408120555b5050600101614f17565b50808211156150eb57805b828110156150e957600180548061504a57fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b80548061509d57fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906150cf6002830182615f5a565b6150dd600383016000615f9e565b50509055600101615037565b505b60008183106150fa57816150fc565b825b905060005b818110156154a0576151ae86828151811061511857fe5b60200260200101516001838154811061512d57fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a0820152615c3c565b6153625780600101600460008884815181106151c657fe5b6020026020010151600001516001600160a01b03166001600160a01b031681526020019081526020016000208190555085818151811061520257fe5b60200260200101516001828154811061521757fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a09091015160039091015584518590829081106152d257fe5b6020026020010151600b82815481106152e757fe5b9060005260206000209060160201600201908051906020019061530b929190615d9b565b506000600b828154811061531b57fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b80548390811061534c57fe5b6000918252602090912060169091020155615498565b61542885828151811061537157fe5b6020026020010151600b838154811061538657fe5b600091825260209182902060026016909202018101805460408051601f60001961010060018616150201909316949094049182018590048502840185019052808352919290919083018282801561541e5780601f106153f35761010080835404028352916020019161541e565b820191906000526020600020905b81548152906001019060200180831161540157829003601f168201915b5050505050615cbd565b6154735784818151811061543857fe5b6020026020010151600b828154811061544d57fe5b90600052602060002090601602016002019080519060200190615471929190615d9b565b505b60006001828154811061548257fe5b9060005260206000209060040201600301819055505b600101615101565b5082821115615678576154b1615d6c565b835b83811015615675578581815181106154c757fe5b6020026020010151826040018190525060018782815181106154e557fe5b6020908102919091018101518254600181810185556000948552838520835160049093020180546001600160a01b039384166001600160a01b0319918216178255848601518284018054918616918316919091179055604080860151600284018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909a1692909616919091179290921696909617169190911790935560a090930151600390930192909255600b805492830181559093528451601690910260008051602061714f83398151915281019182558583015160008051602061718f8339815191528201805491151560ff199092169190911790559285015180518694929361561b9360008051602061716f83398151915201920190615d9b565b5060608201516156319060038301906013615e15565b505050806001016004600089848151811061564857fe5b602090810291909101810151516001600160a01b03168252810191909152604001600020556001016154b3565b50505b6000600981905560015493505b838110156156e6576000600b828154811061569c57fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b8054839081106156cd57fe5b6000918252602090912060169091020155600101615685565b505050505050565b6000818361570f5760405162461bcd60e51b8152600401610c3b919061646f565b50600083858161571b57fe5b0495945050505050565b600081848411156157495760405162461bcd60e51b8152600401610c3b919061646f565b505050900390565b80516000906157625750600061130b565b6020820151805160001a9060c08210156157815760009250505061130b565b5060019392505050565b8051600090811a60808110156157a557600091505061130b565b60b88110806157c0575060c081108015906157c0575060f881105b156157cf57600191505061130b565b60c08110156157e35760b51901905061130b565b60f51901905061130b565b80516000908190811a608081101561580957600191506158c8565b60b881101561581e57607e19810191506158c8565b60c081101561586f57600060b78203600186019550806020036101000a8651049150600181018201935050808310156158695760405162461bcd60e51b8152600401610c3b90616a13565b506158c8565b60f88110156158845760be19810191506158c8565b600060f78203600186019550806020036101000a8651049150600181018201935050808310156158c65760405162461bcd60e51b8152600401610c3b90616a13565b505b5092915050565b80516000906158e05750600061130b565b600080905060006158f4846020015161578b565b602085015185519181019250015b8082101561592257615913826157ee565b82019150826001019250615902565b50909392505050565b805160009060151461593c57600080fd5b6113bb826149ce565b805160609061595357600080fd5b6000615962836020015161578b565b83516040805191839003808352601f19601f8201168301602001909152919250606090828015615999576020820181803683370190505b50905060008160200190506144f7848760200151018285615d21565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166159f957506018615a1d565b6fffffffffffffffffffffffffffffffff198416615a1957506010615a1d565b5060005b6020811015615a5357818181518110615a3257fe5b01602001516001600160f81b03191615615a4b57615a53565b600101615a1d565b60008160200390506060816040519080825280601f01601f191660200182016040528015615a88576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015615acd5750607f60f81b82600081518110615abb57fe5b01602001516001600160f81b03191611155b15615ad957508061130b565b6113bb615aeb8351608060ff16615b6a565b835b6060806040519050835180825260208201818101602087015b81831015615b1e578051835260209283019201615b06565b50855184518101855292509050808201602086015b81831015615b4b578051835260209283019201615b33565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310615b945760405162461bcd60e51b8152600401610c3b90616817565b60408051600180825281830190925260609160208201818036833701905050905060378411615bee5782840160f81b81600081518110615bd057fe5b60200101906001600160f81b031916908160001a90535090506113bb565b6060615bf9856159b5565b90508381510160370160f81b82600081518110615c1257fe5b60200101906001600160f81b031916908160001a905350615c338282615aed565b95945050505050565b805182516000916001600160a01b039182169116148015615c76575081602001516001600160a01b031683602001516001600160a01b0316145b8015615c9b575081604001516001600160a01b031683604001516001600160a01b0316145b8015610ea25750506060908101519101516001600160401b0390811691161490565b815181516000916001918114808314615cd95760009250615d17565b600160208701838101602088015b600284838510011415615d12578051835114615d065760009650600093505b60209283019201615ce7565b505050505b5090949350505050565b80615d2b57610c5b565b5b60208110615d4b578251825260209283019290910190601f1901615d2c565b915181516020939093036101000a6000190180199091169216919091179052565b60405180608001604052806000815260200160001515815260200160608152602001615d96615fc7565b905290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10615ddc57805160ff1916838001178555615e09565b82800160010185558215615e09579182015b82811115615e09578251825591602001919060010190615dee565b506126e3929150615fe6565b8260138101928215615e095791602002820182811115615e09578251825591602001919060010190615dee565b6040518060600160405280600060ff16815260200160608152602001606081525090565b6040518060400160405280615e79615fad565b8152602001600081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10615ef45780548555615e09565b82800160010185558215615e0957600052602060002091601f016020900482015b82811115615e09578254825591600101919060010190615f15565b8260138101928215615e095791820182811115615e09578254825591600101919060010190615f15565b50805460018160011615610100020316600290046000825580601f10615f805750611517565b601f0160209004906000526020600020908101906115179190615fe6565b50611517906013810190615fe6565b604051806040016040528060008152602001600081525090565b6040518061026001604052806013906020820280368337509192915050565b61269591905b808211156126e35760008155600101615fec565b60008083601f840112616011578182fd5b5081356001600160401b03811115616027578182fd5b6020830191508360208083028501011115614f0857600080fd5b60008083601f840112616052578182fd5b5081356001600160401b03811115616068578182fd5b602083019150836020828501011115614f0857600080fd5b600060208284031215616091578081fd5b81356001600160a01b0381168114610ea2578182fd5b600080600080604085870312156160bc578283fd5b84356001600160401b03808211156160d2578485fd5b6160de88838901616000565b909650945060208701359150808211156160f6578384fd5b5061610387828801616000565b95989497509550505050565b600060208284031215616120578081fd5b81518015158114610ea2578182fd5b60008060008060408587031215616144578384fd5b84356001600160401b038082111561615a578586fd5b61616688838901616041565b9096509450602087013591508082111561617e578384fd5b5061610387828801616041565b60006020828403121561619c578081fd5b5035919050565b6000602082840312156161b4578081fd5b5051919050565b600080604083850312156161cd578182fd5b505080516020909101519092909150565b6000806000604084860312156161f2578283fd5b833560ff81168114616202578384fd5b925060208401356001600160401b0381111561621c578283fd5b61622886828701616041565b9497909650939450505050565b6000815180845260208085019450808401835b8381101561626d5781516001600160a01b031687529582019590820190600101616248565b509495945050505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b600081518084526162ba816020860160208601616f57565b601f01601f19169290920160200192915050565b600082516162e0818460208701616f57565b9190910192915050565b918252602082015260400190565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b03968716815294861660208601529290941660408401526001600160401b03166060830152911515608082015260a081019190915260c00190565b600060208252610ea26020830184616235565b60006040825261638d6040830185616235565b602083820381850152818551808452828401915082838202850101838801865b838110156163db57601f198784030185526163c98383516162a2565b948601949250908501906001016163ad565b50909998505050505050505050565b6000608082526163fd6080830187616235565b828103602084810191909152865180835287820192820190845b8181101561643357845183529383019391830191600101616417565b505084810360408601526164478188616235565b93505050506001600160401b038316606083015295945050505050565b901515815260200190565b600060208252610ea260208301846162a2565b600060408252616496604083018688616278565b82810360208401526164a9818587616278565b979650505050505050565b6020808252601c908201527f6c656e677468206f66206275726e526174696f206d69736d6174636800000000604082015260600190565b60208082526026908201527f6c656e677468206f66206d61784e756d4f664d61696e7461696e696e67206d696040820152650e6dac2e8c6d60d31b606082015260800190565b6020808252601b908201527f6261746368207472616e736665722072657475726e2066616c73650000000000604082015260600190565b6020808252602c908201527f6c656e677468206f66206d61784e756d4f66576f726b696e6743616e6469646160408201526b0e8cae640dad2e6dac2e8c6d60a31b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61696e7461696e536c6173685363616c65206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252818101527f6c656e677468206f66206e756d4f66436162696e657473206d69736d61746368604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526028908201527f746865206e756d4f66436162696e657473206d75737420626520677265617465604082015267072207468616e20360c41b606082015260800190565b60208082526039908201527f746865206e756d4f66436162696e657473206d757374206265206c657373207460408201527f68616e204d41585f4e554d5f4f465f56414c494441544f525300000000000000606082015260800190565b60208082526029908201527f746865206e756d626572206f662076616c696461746f727320657863656564206040820152681d1a19481b1a5b5a5d60ba1b606082015260800190565b60208082526022908201527f63616e206e6f7420646f207468697320747769636520696e206f6e6520626c6f604082015261636b60f01b606082015260800190565b6020808252602b908201527f746865206275726e526174696f206d757374206265206e6f206772656174657260408201526a0207468616e2031303030360ac1b606082015260800190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526037908201527f746865206d61784e756d4f664d61696e7461696e696e67206d7573742062652060408201527f6c657373207468616e206e756d4f66436162696e657473000000000000000000606082015260800190565b6020808252602b908201527f6475706c696361746520636f6e73656e7375732061646472657373206f66207660408201526a185b1a59185d1bdc94d95d60aa1b606082015260800190565b60208082526027908201527f7468652065787069726554696d655365636f6e64476170206973206f7574206f604082015266662072616e676560c81b606082015260800190565b6020808252601590820152746465706f7369742076616c7565206973207a65726f60581b604082015260600190565b60208082526049908201527f746865206d61784e756d4f66576f726b696e6743616e64696461746573206d7560408201527f7374206265206e6f742067726561746572207468616e206d61784e756d4f6643606082015268616e6469646174657360b81b608082015260a00190565b60208082526027908201527f7468652066696e616c697479526577617264526174696f206973206f7574206f604082015266662072616e676560c81b606082015260800190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b60208082526023908201527f63616e206e6f7420656e7465722054656d706f72617279204d61696e74656e616040820152626e636560e81b606082015260800190565b60208082526025908201527f6c656e677468206f66206a61696c2076616c696461746f7273206d757374206260408201526465206f6e6560d81b606082015260800190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61784e756d4f6643616e64696461746573206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252601290820152716e6f7420696e206d61696e74656e616e636560701b604082015260600190565b60208082526021908201527f666565206973206c6172676572207468616e2044555354595f494e434f4d494e6040820152604760f81b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b60208082526026908201527f6c656e677468206f662066696e616c697479526577617264526174696f206d696040820152650e6dac2e8c6d60d31b606082015260800190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526026908201527f6c656e677468206f662065787069726554696d655365636f6e64476170206d696040820152650e6dac2e8c6d60d31b606082015260800190565b60208082526017908201527f6f6e6c792063757272656e742076616c696461746f7273000000000000000000604082015260600190565b60208082526021908201527f6661696c656420746f20706172736520696e69742076616c696461746f7253656040820152601d60fa1b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b6020808252603e908201527f746865206d61696e7461696e536c6173685363616c65206d757374206265206760408201527f726561746572207468616e203020616e64206c657373207468616e2031300000606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b60208082526029908201527f746865206d6573736167652073656e646572206d75737420626520736c6173686040820152680818dbdb9d1c9858dd60ba1b606082015260800190565b61ffff91909116815260200190565b90815260200190565b6000848252831515602083015260606040830152615c3360608301846162a2565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff8516825260406020830152615c33604083018486616278565b60005b83811015616f72578181015183820152602001616f5a565b83811115612c48575050600091015256fef901a880f901a4f844941284214b9b9c85549ab3d2b972df0deef66ac2c9946ddf42a51534fc98d0c0a3b42c963cace8441ddf946ddf42a51534fc98d0c0a3b42c963cace8441ddf8410000000f84494a2959d3f95eae5dc7d70144ce1b73b403b7eb6e0948081ef03f1d9e0bb4a5bf38f16285c879299f07f948081ef03f1d9e0bb4a5bf38f16285c879299f07f8410000000f8449435552c16704d214347f29fa77f77da6d75d7c75294dc4973e838e3949c77aced16ac2315dc2d7ab11194dc4973e838e3949c77aced16ac2315dc2d7ab1118410000000f84494980a75ecd1309ea12fa2ed87a8744fbfc9b863d594cc6ac05c95a99c1f7b5f88de0e3486c82293b27094cc6ac05c95a99c1f7b5f88de0e3486c82293b2708410000000f84494f474cf03cceff28abc65c9cbae594f725c80e12d94e61a183325a18a173319dd8e19c8d069459e217594e61a183325a18a173319dd8e19c8d069459e21758410000000f84494b71b214cb885500844365e95cd9942c7276e7fd894d22ca3ba2141d23adab65ce4940eb7665ea2b6a794d22ca3ba2141d23adab65ce4940eb7665ea2b6a7841000000070e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb20175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbb0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbaa2646970667358221220bc53b84b66ec5288714012f6e0e7cdc85eb3fd6718cf69ef36b3579924bc204664736f6c63430006040033", - }, - { - ContractAddr: SlashContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/b144718e94d7a1ebb24a7103202300f08826f369", - Code: "608060405234801561001057600080fd5b506004361061027f5760003560e01c80637942fd051161015c578063c80d4b8f116100ce578063dc927faf11610087578063dc927faf146104ad578063e1c7392a146104b5578063f9a2bbc7146104bd578063fc3e5908146104c5578063fc4333cd146104cd578063fd6a6879146104d55761027f565b8063c80d4b8f1461045c578063c81b166214610464578063c8509d811461046c578063c96be4cb1461047f578063cc844b7314610492578063d2a42e4b146104a55761027f565b80639dc09262116101205780639dc0926214610421578063a1a11bf514610429578063a78abc1614610431578063ab51bb9614610439578063ac0af62914610441578063ac431751146104495761027f565b80637942fd05146103ee5780638256ace6146103f6578063831d65d1146103fe57806396713da9146104115780639bc8e4f2146104195761027f565b8063493279b1116101f557806362b72cf5116101b957806362b72cf5146103be5780636e47b482146103c657806370fd5bad146103ce578063718a8aa8146103d657806375d47a0a146103de5780637912a65d146103e65761027f565b8063493279b11461037c5780634bf6c8821461039157806351e8067214610399578063567a372d146103a15780635bfb4990146103a95761027f565b806335aa2e441161024757806335aa2e441461030e57806337c8dab914610321578063389f4f71146103425780633a63f4b1146103575780633dffc3871461035f57806343756e5c146103745761027f565b80630bee7a67146102845780630e2374a5146102a25780631182b875146102b757806322d1e80b146102d757806323bac5a2146102ec575b600080fd5b61028c6104dd565b60405161029991906132a6565b60405180910390f35b6102aa6104e2565b6040516102999190612b84565b6102ca6102c5366004612aba565b6104e8565b6040516102999190612bbc565b6102df61054e565b6040516102999190612bb1565b6102ff6102fa366004612868565b610557565b6040516102999392919061328e565b6102aa61031c366004612a8a565b61057a565b61033461032f366004612868565b6105a1565b604051610299929190613280565b61034a6105f8565b6040516102999190613256565b61034a6105fe565b610367610604565b60405161029991906132b7565b6102aa610609565b61038461060f565b6040516102999190613247565b610367610615565b6102aa61061a565b61034a610620565b6103bc6103b7366004612868565b610626565b005b61034a6106d1565b6102aa6106d7565b6103676106dd565b6103676106e2565b6102aa6106e7565b61034a6106ed565b6103676106f2565b6103346106f7565b6103bc61040c366004612aba565b610701565b610367610813565b61034a610818565b6102aa610823565b6102aa610829565b6102df61082f565b61028c610838565b61034a61083d565b6103bc61045736600461296e565b610842565b61034a610ce1565b6102aa610ce6565b6103bc61047a366004612aba565b610cec565b6103bc61048d366004612868565b610d5d565b6103bc6104a03660046129d7565b61114e565b61034a61169b565b6102aa6116a0565b6103bc6116a6565b6102aa6116e2565b6103676116e8565b6103bc6116ed565b6102aa611b36565b606481565b61200181565b606033612000146105145760405162461bcd60e51b815260040161050b906130cd565b60405180910390fd5b60005460ff166105365760405162461bcd60e51b815260040161050b90612c9d565b60405162461bcd60e51b815260040161050b90613190565b60075460ff1681565b600260208190526000918252604090912080546001820154919092015460ff1683565b6001818154811061058757fe5b6000918252602090912001546001600160a01b0316905081565b6000806105ac61264f565b5050506001600160a01b0316600090815260026020818152604092839020835160608101855281548082526001830154938201849052919093015460ff16151592909301919091529091565b60055481565b60065481565b600181565b61100181565b6102ca81565b600881565b61200081565b60045481565b33611000146106475760405162461bcd60e51b815260040161050b90612ee1565b60005460ff166106695760405162461bcd60e51b815260040161050b90612c9d565b61200063f7a251d7600b61067c84611b3c565b60006040518463ffffffff1660e01b815260040161069c939291906132c5565b600060405180830381600087803b1580156106b657600080fd5b505af11580156106ca573d6000803e3d6000fd5b5050505050565b60035481565b61100581565b600281565b601081565b61100881565b603281565b600b81565b6004546005549091565b33612000146107225760405162461bcd60e51b815260040161050b906130cd565b60005460ff166107445760405162461bcd60e51b815260040161050b90612c9d565b61074c612672565b600061078d84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611c0f92505050565b9150915080156107d45781516040517f7f0956d47419b9525356e7111652b653b530ec6f5096dccc04589bc38e629967916107c7916132a6565b60405180910390a16106ca565b81516040517f7d45f62d17443dd4547bca8a8112c60e2385669318dc300ec61a5d2492f262e791610804916132a6565b60405180910390a15050505050565b600981565b662386f26fc1000081565b61100781565b61100681565b60005460ff1681565b600081565b600481565b60005460ff166108645760405162461bcd60e51b815260040161050b90612c9d565b33611007146108855760405162461bcd60e51b815260040161050b90612f8a565b6108f084848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260148152731b5a5cd9195b59585b9bdc951a1c995cda1bdb1960621b60208201529150611c8f9050565b1561098b57602081146109155760405162461bcd60e51b815260040161050b90612e6d565b604080516020601f840181900481028201810190925282815260009161095391858580838501838280828437600092019190915250611ce992505050565b905060018110158015610967575060055481105b6109835760405162461bcd60e51b815260040161050b90613088565b600455610c9e565b6109f184848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e19995b1bdb9e551a1c995cda1bdb19608a1b60208201529150611c8f9050565b15610a8d5760208114610a165760405162461bcd60e51b815260040161050b90612fd8565b604080516020601f8401819004810282018101909252828152600091610a5491858580838501838280828437600092019190915250611ce992505050565b90506103e88111158015610a69575060045481115b610a855760405162461bcd60e51b815260040161050b90612d0b565b600555610c9e565b610b0184848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f66696e616c697479536c617368526577617264526174696f000000000000000060208201529150611c8f9050565b15610b9b5760208114610b265760405162461bcd60e51b815260040161050b906131c7565b604080516020601f8401819004810282018101909252828152600091610b6491858580838501838280828437600092019190915250611ce992505050565b9050600a8110158015610b775750606481105b610b935760405162461bcd60e51b815260040161050b90612e21565b600655610c9e565b610c0f84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f656e61626c654d616c6963696f7573566f7465536c617368000000000000000060208201529150611c8f9050565b15610c865760208114610c345760405162461bcd60e51b815260040161050b90612d40565b604080516020601f8401819004810282018101909252828152610c709190848480838501838280828437600092019190915250611cee92505050565b6007805460ff1916911515919091179055610c9e565b60405162461bcd60e51b815260040161050b90613169565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a84848484604051610cd39493929190612bcf565b60405180910390a150505050565b609681565b61100281565b3361200014610d0d5760405162461bcd60e51b815260040161050b906130cd565b60005460ff16610d2f5760405162461bcd60e51b815260040161050b90612c9d565b6040517f07db600eebe2ac176be8dcebad61858c245a4961bb32ca2aa3d159b09aa0810e90600090a1505050565b334114610d7c5760405162461bcd60e51b815260040161050b9061311c565b60005460ff16610d9e5760405162461bcd60e51b815260040161050b90612c9d565b6003544311610dbf5760405162461bcd60e51b815260040161050b90613212565b3a15610ddd5760405162461bcd60e51b815260040161050b90612f5c565b60405163155853f360e21b8152611000906355614fcc90610e02908490600401612b84565b60206040518083038186803b158015610e1a57600080fd5b505afa158015610e2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e52919061294e565b610e5b57611147565b610e6361264f565b506001600160a01b0381166000908152600260208181526040928390208351606081018552815481526001820154928101929092529091015460ff161580159282019290925290610ebe576020810180516001019052610f17565b60016040820181905260208201819052805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0384161790555b438152600554602082015181610f2957fe5b0661107557600060208201526040516335409f7f60e01b8152611000906335409f7f90610f5a908590600401612b84565b600060405180830381600087803b158015610f7457600080fd5b505af1158015610f88573d6000803e3d6000fd5b505050506120006001600160a01b031663f7a251d7600b610fa885611b3c565b60006040518463ffffffff1660e01b8152600401610fc8939291906132c5565b600060405180830381600087803b158015610fe257600080fd5b505af1925050508015610ff3575060015b611070573d808015611021576040519150601f19603f3d011682016040523d82523d6000602084013e611026565b606091505b50826001600160a01b03167fd7bc86ff5d08c8ab043edec743302aba2520e6635172a428bc956721db9e2d1c83602001518360405161106692919061325f565b60405180910390a2505b6110e1565b60045481602001518161108457fe5b066110e1576040516375abf10160e11b81526110009063eb57e202906110ae908590600401612b84565b600060405180830381600087803b1580156110c857600080fd5b505af11580156110dc573d6000803e3d6000fd5b505050505b6001600160a01b0382166000818152600260208181526040808420865181559186015160018301558581015191909201805460ff1916911515919091179055517fddb6012116e51abf5436d956a4f0ebd927e92c576ff96d7918290c8782291e3e9190a2505b5043600355565b60005460ff166111705760405162461bcd60e51b815260040161050b90612c9d565b604051630a83aaa960e31b81526110069063541d554890611195903390600401612b84565b60206040518083038186803b1580156111ad57600080fd5b505afa1580156111c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111e5919061294e565b6112015760405162461bcd60e51b815260040161050b90612c01565b60075460ff166112235760405162461bcd60e51b815260040161050b90612c68565b6006546112305760146006555b8051514361010090910111801561125257504381602001516000015161010001115b61126e5760405162461bcd60e51b815260040161050b90612c38565b80602001516020015181600001516020015114801561129c5750806020015160600151816000015160600151145b156112b95760405162461bcd60e51b815260040161050b90612eb4565b8051604081015190511080156112d85750602081015160408101519051105b6112f45760405162461bcd60e51b815260040161050b90612dea565b6020810151518151511080156113195750806000015160400151816020015160400151105b8061134457508051516020820151511080156113445750806020015160400151816000015160400151105b8061135e5750806020015160400151816000015160400151145b61137a5760405162461bcd60e51b815260040161050b90612cd4565b61138c81600001518260400151611d16565b80156113a557506113a581602001518260400151611d16565b6113c15760405162461bcd60e51b815260040161050b90612d8b565b6060806110006001600160a01b0316633b071dcc6040518163ffffffff1660e01b815260040160006040518083038186803b1580156113ff57600080fd5b505afa158015611413573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261143b919081019061288b565b9150915060005b81518110156115785761146c82828151811061145a57fe5b60200260200101518560400151611eee565b15611570576006546040516309a99b4f60e41b815260646110028031909302049190639a99b4f0906114a49033908590600401612b98565b602060405180830381600087803b1580156114be57600080fd5b505af11580156114d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f69190612aa2565b506110006001600160a01b03166335409f7f85848151811061151457fe5b60200260200101516040518263ffffffff1660e01b81526004016115389190612b84565b600060405180830381600087803b15801561155257600080fd5b505af1158015611566573d6000803e3d6000fd5b5050505050611578565b600101611442565b50600061158a84604001516000611f52565b90506120006001600160a01b031663f7a251d7600b6115ac8760400151611f6e565b60006040518463ffffffff1660e01b81526004016115cc939291906132c5565b600060405180830381600087803b1580156115e657600080fd5b505af19250505080156115f7575060015b611669573d808015611625576040519150601f19603f3d011682016040523d82523d6000602084013e61162a565b606091505b50817fd58d1183100bd0932c0588f31c4205d6bc6168909765a96c41adbed3115f36288260405161165b9190612bbc565b60405180910390a250611695565b60405181907f7b78aadacff901d8b63d0dba4f86283d4db8aef27f9ed70413dd860f1c9532b690600090a25b50505050565b601481565b61100381565b60005460ff16156116c95760405162461bcd60e51b815260040161050b9061301a565b603260045560966005556000805460ff19166001179055565b61100081565b600381565b336110001461170e5760405162461bcd60e51b815260040161050b90612ee1565b60005460ff166117305760405162461bcd60e51b815260040161050b90612c9d565b60015461173c57611b34565b600154600090600019015b808211611b08576000805b8284101561186b5761176261264f565b600260006001878154811061177357fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff161515908201526005549091506004900481602001511115611855576004600554816117e057fe5b0481602001510381602001818152505080600260006001888154811061180257fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208351815591830151600183015591909101516002909101805460ff191691151591909117905561185f565b600192505061186b565b50836001019350611752565b828411611a025761187a61264f565b600260006001868154811061188b57fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff161515908201526005549091506004900481602001511115611973576004600554816118f857fe5b0481602001510381602001818152505080600260006001878154811061191a57fe5b6000918252602080832091909101546001600160a01b03168352828101939093526040918201902083518155918301516001808401919091559201516002909101805460ff19169115159190911790559150611a029050565b600260006001868154811061198457fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff191690558054806119c857fe5b600082815260209020810160001990810180546001600160a01b0319169055019055836119f55750611a02565b506000199092019161186b565b818015611a0c5750805b15611aeb576002600060018681548110611a2257fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff19169055805484908110611a6957fe5b600091825260209091200154600180546001600160a01b039092169186908110611a8f57fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506001805480611ac857fe5b600082815260209020810160001990810180546001600160a01b03191690550190555b82611af7575050611b08565b505060019091019060001901611747565b6040517fcfdb3b6ccaeccbdc68be3c59c840e3b3c90f0a7c491f5fff1cf56cfda200dd9c90600090a150505b565b61100481565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081611b57579050509050611b80836001600160a01b0316611fa9565b81600081518110611b8d57fe5b6020026020010181905250611ba143611fcc565b81600181518110611bae57fe5b6020908102919091010152611bc46102ca611fcc565b81600281518110611bd157fe5b6020026020010181905250611be542611fcc565b81600381518110611bf257fe5b6020026020010181905250611c0681611fdf565b9150505b919050565b611c17612672565b6000611c21612672565b611c29612684565b611c3a611c3586612069565b61208e565b90506000805b611c49836120d8565b15611c825780611c7557611c64611c5f846120f9565b612147565b63ffffffff16845260019150611c7a565b611c82565b600101611c40565b5091935090915050915091565b600081604051602001611ca29190612b68565b6040516020818303038152906040528051906020012083604051602001611cc99190612b68565b604051602081830303815290604052805190602001201490505b92915050565b015190565b8082015160009060ff811615611d08576001915081611d0e565b60009150815b505092915050565b60408051600480825260a0820190925260009160609190816020015b6060815260200190600190039081611d32575050604080516020808252818301909252919250606091908082018180368337019050509050611d778560000151611fcc565b82600081518110611d8457fe5b6020026020010181905250611d9f60208660200151836121c9565b611da8816121d9565b82600181518110611db557fe5b6020026020010181905250611dcd8560400151611fcc565b82600281518110611dda57fe5b6020026020010181905250611df560208660600151836121c9565b611dfe816121d9565b82600381518110611e0b57fe5b6020026020010181905250611e316020611e2484611fdf565b80519060200120836121c9565b6040805160b080825260e08201909252606091602082018180368337019050509050611e6181836000602061222f565b611e738187608001516020606061222f565b611e8181866080603061222f565b604080516001808252818301909252606091602082018180368337019050509050815160016020830182602086016066600019fa611ebe57600080fd5b506001611ecc826000612282565b60ff1614611ee1576000945050505050611ce3565b5060019695505050505050565b815181516000916001918114808314611f0a5760009250611f48565b600160208701838101602088015b600284838510011415611f43578051835114611f375760009650600093505b60209283019201611f18565b505050505b5090949350505050565b60008160200183511015611f6557600080fd5b50016020015190565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081611f89579050509050611b80836121d9565b60408051600560a21b8318601482015260348101909152606090611c06816121d9565b6060611ce3611fda8361229e565b6121d9565b60608151600014156120005750604080516000815260208101909152611c0a565b60608260008151811061200f57fe5b602002602001015190506000600190505b8351811015612050576120468285838151811061203957fe5b6020026020010151612384565b9150600101612020565b50611c06612063825160c060ff16612401565b82612384565b6120716126a4565b506040805180820190915281518152602082810190820152919050565b612096612684565b61209f826124d3565b6120a857600080fd5b60006120b7836020015161250d565b60208085015160408051808201909152868152920190820152915050919050565b60006120e26126a4565b505080518051602091820151919092015191011190565b6121016126a4565b61210a826120d8565b61211357600080fd5b6020820151600061212382612570565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061215c57508151602110155b61216557600080fd5b6000612174836020015161250d565b9050808360000151101561219a5760405162461bcd60e51b815260040161050b90613051565b8251602080850151830180519284900392918310156121c057826020036101000a820491505b50949350505050565b9091018181526020918201910152565b60608151600114801561220b5750607f60f81b826000815181106121f957fe5b01602001516001600160f81b03191611155b15612217575080611c0a565b611ce36122298351608060ff16612401565b83612384565b60005b818110156106ca5783818151811061224657fe5b602001015160f81c60f81b85848060010195508151811061226357fe5b60200101906001600160f81b031916908160001a905350600101612232565b6000816001018351101561229557600080fd5b50016001015190565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166122e257506018612306565b6fffffffffffffffffffffffffffffffff19841661230257506010612306565b5060005b602081101561233c5781818151811061231b57fe5b01602001516001600160f81b031916156123345761233c565b600101612306565b60008160200390506060816040519080825280601f01601f191660200182016040528015612371576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b818310156123b557805183526020928301920161239d565b50855184518101855292509050808201602086015b818310156123e25780518352602092830192016123ca565b508651929092011591909101601f01601f191660405250905092915050565b606068010000000000000000831061242b5760405162461bcd60e51b815260040161050b90612dc2565b604080516001808252818301909252606091602082018180368337019050509050603784116124855782840160f81b8160008151811061246757fe5b60200101906001600160f81b031916908160001a9053509050611ce3565b60606124908561229e565b90508381510160370160f81b826000815181106124a957fe5b60200101906001600160f81b031916908160001a9053506124ca8282612384565b95945050505050565b80516000906124e457506000611c0a565b6020820151805160001a9060c082101561250357600092505050611c0a565b5060019392505050565b8051600090811a6080811015612527576000915050611c0a565b60b8811080612542575060c08110801590612542575060f881105b15612551576001915050611c0a565b60c08110156125655760b519019050611c0a565b60f519019050611c0a565b80516000908190811a608081101561258b5760019150612648565b60b88110156125a057607e1981019150612648565b60c08110156125f157600060b78203600186019550806020036101000a8651049150600181018201935050808310156125eb5760405162461bcd60e51b815260040161050b90612f31565b50612648565b60f88110156126065760be1981019150612648565b600060f78203600186019550806020036101000a865104915060018101820193505080831015611d0e5760405162461bcd60e51b815260040161050b90612f31565b5092915050565b604051806060016040528060008152602001600081526020016000151581525090565b60408051602081019091526000815290565b60405180604001604052806126976126a4565b8152602001600081525090565b604051806040016040528060008152602001600081525090565b600082601f8301126126ce578081fd5b81516126e16126dc82613318565b6132f1565b818152915060208083019084810160005b84811015612757578151870188603f82011261270d57600080fd5b8381015161271d6126dc82613338565b81815260408b8184860101111561273357600080fd5b6127428388840183870161335c565b508652505092820192908201906001016126f2565b505050505092915050565b60008083601f840112612773578182fd5b50813567ffffffffffffffff81111561278a578182fd5b6020830191508360208285010111156127a257600080fd5b9250929050565b600082601f8301126127b9578081fd5b81356127c76126dc82613338565b91508082528360208285010111156127de57600080fd5b8060208401602084013760009082016020015292915050565b600060a08284031215612808578081fd5b61281260a06132f1565b905081358152602082013560208201526040820135604082015260608201356060820152608082013567ffffffffffffffff81111561285057600080fd5b61285c848285016127a9565b60808301525092915050565b600060208284031215612879578081fd5b813561288481613388565b9392505050565b6000806040838503121561289d578081fd5b825167ffffffffffffffff808211156128b4578283fd5b81850186601f8201126128c5578384fd5b805192506128d56126dc84613318565b80848252602080830192508084018a8283890287010111156128f5578788fd5b8794505b8685101561292057805161290c81613388565b8452600194909401939281019281016128f9565b508801519096509350505080821115612937578283fd5b50612944858286016126be565b9150509250929050565b60006020828403121561295f578081fd5b81518015158114612884578182fd5b60008060008060408587031215612983578182fd5b843567ffffffffffffffff8082111561299a578384fd5b6129a688838901612762565b909650945060208701359150808211156129be578384fd5b506129cb87828801612762565b95989497509550505050565b6000602082840312156129e8578081fd5b813567ffffffffffffffff808211156129ff578283fd5b81840160608187031215612a11578384fd5b612a1b60606132f1565b9250803582811115612a2b578485fd5b612a37878284016127f7565b845250602081013582811115612a4b578485fd5b612a57878284016127f7565b602085015250604081013582811115612a6e578485fd5b612a7a878284016127a9565b6040850152509195945050505050565b600060208284031215612a9b578081fd5b5035919050565b600060208284031215612ab3578081fd5b5051919050565b600080600060408486031215612ace578283fd5b833560ff81168114612ade578384fd5b9250602084013567ffffffffffffffff811115612af9578283fd5b612b0586828701612762565b9497909650939450505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008151808452612b5481602086016020860161335c565b601f01601f19169290920160200192915050565b60008251612b7a81846020870161335c565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b6000602082526128846020830184612b3c565b600060408252612be3604083018688612b12565b8281036020840152612bf6818587612b12565b979650505050505050565b6020808252601f908201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604082015260600190565b6020808252601690820152751d1bdbc81bdb1908189b1bd8dac81a5b9d9bdb1d995960521b604082015260600190565b6020808252818101527f6d616c6963696f757320766f746520736c617368206e6f7420656e61626c6564604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252601a908201527f6e6f2076696f6c6174696f6e206f6620766f74652072756c6573000000000000604082015260600190565b6020808252818101527f7468652066656c6f6e795468726573686f6c64206f7574206f662072616e6765604082015260600190565b6020808252602b908201527f6c656e677468206f6620656e61626c654d616c6963696f7573566f7465536c6160408201526a0e6d040dad2e6dac2e8c6d60ab1b606082015260800190565b60208082526017908201527f766572696679207369676e6174757265206661696c6564000000000000000000604082015260600190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526019908201527f7372634e756d20626967676572207468616e207461724e756d00000000000000604082015260600190565b6020808252602c908201527f7468652066696e616c69747920736c6173682072657761726420726174696f2060408201526b6f7574206f662072616e676560a01b606082015260800190565b60208082526027908201527f6c656e677468206f66206d697364656d65616e6f725468726573686f6c64206d6040820152660d2e6dac2e8c6d60cb1b606082015260800190565b60208082526013908201527274776f206964656e746963616c20766f74657360681b604082015260600190565b60208082526030908201527f746865206d6573736167652073656e646572206d7573742062652076616c696460408201526f185d1bdc94d95d0818dbdb9d1c9858dd60821b606082015260800190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526022908201527f6c656e677468206f662066656c6f6e795468726573686f6c64206d69736d61746040820152610c6d60f31b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526025908201527f746865206d697364656d65616e6f725468726573686f6c64206f7574206f662060408201526472616e676560d81b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b6020808252601e908201527f7265636569766520756e65787065637465642073796e207061636b6167650000604082015260600190565b6020808252602b908201527f6c656e677468206f662066696e616c697479536c61736852657761726452617460408201526a0d2de40dad2e6dac2e8c6d60ab1b606082015260800190565b6020808252818101527f63616e206e6f7420736c61736820747769636520696e206f6e6520626c6f636b604082015260600190565b61ffff91909116815260200190565b90815260200190565b6000838252604060208301526132786040830184612b3c565b949350505050565b918252602082015260400190565b92835260208301919091521515604082015260600190565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff85168252606060208301526132e16060830185612b3c565b9050826040830152949350505050565b60405181810167ffffffffffffffff8111828210171561331057600080fd5b604052919050565b600067ffffffffffffffff82111561332e578081fd5b5060209081020190565b600067ffffffffffffffff82111561334e578081fd5b50601f01601f191660200190565b60005b8381101561337757818101518382015260200161335f565b838111156116955750506000910152565b6001600160a01b038116811461339d57600080fd5b5056fea2646970667358221220425f90ada15339392881582f35a21b784186e12ed634c463af0e608e49de659064736f6c63430006040033", - }, - { - ContractAddr: SystemRewardContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/b144718e94d7a1ebb24a7103202300f08826f369", - Code: "6080604052600436106101a05760003560e01c80637942fd05116100ec578063ac4317511161008a578063f9a2bbc711610064578063f9a2bbc714610550578063fb5478b314610565578063fc3e59081461057a578063fd6a68791461058f576101e4565b8063ac43175114610457578063c81b166214610526578063dc927faf1461053b576101e4565b80639dc09262116100c65780639dc0926214610403578063a1a11bf514610418578063a78abc161461042d578063ab51bb9614610442576101e4565b80637942fd05146103a057806396713da9146103b55780639a99b4f0146103ca576101e4565b80634bf6c882116101595780636e47b482116101335780636e47b4821461034c57806370fd5bad14610361578063718a8aa81461037657806375d47a0a1461038b576101e4565b80634bf6c882146102db57806351e80672146102f05780636d70f7ae14610305576101e4565b80630bee7a67146101e95780630e2374a5146102175780633a0b0eff146102485780633dffc3871461026f57806343756e5c1461029a578063493279b1146102af576101e4565b366101e45734156101e25760408051348152905133917f6c98249d85d88c3753a04a22230f595e4dc8d3dc86c34af35deeeedc861b89db919081900360200190a25b005b600080fd5b3480156101f557600080fd5b506101fe6105a4565b6040805163ffffffff9092168252519081900360200190f35b34801561022357600080fd5b5061022c6105a9565b604080516001600160a01b039092168252519081900360200190f35b34801561025457600080fd5b5061025d6105af565b60408051918252519081900360200190f35b34801561027b57600080fd5b506102846105b5565b6040805160ff9092168252519081900360200190f35b3480156102a657600080fd5b5061022c6105ba565b3480156102bb57600080fd5b506102c46105c0565b6040805161ffff9092168252519081900360200190f35b3480156102e757600080fd5b506102846105c6565b3480156102fc57600080fd5b5061022c6105cb565b34801561031157600080fd5b506103386004803603602081101561032857600080fd5b50356001600160a01b03166105d1565b604080519115158252519081900360200190f35b34801561035857600080fd5b5061022c6105ef565b34801561036d57600080fd5b506102846105f5565b34801561038257600080fd5b506102846105fa565b34801561039757600080fd5b5061022c6105ff565b3480156103ac57600080fd5b50610284610605565b3480156103c157600080fd5b5061028461060a565b3480156103d657600080fd5b5061025d600480360360408110156103ed57600080fd5b506001600160a01b03813516906020013561060f565b34801561040f57600080fd5b5061022c6107ba565b34801561042457600080fd5b5061022c6107c0565b34801561043957600080fd5b506103386107c6565b34801561044e57600080fd5b506101fe6107cf565b34801561046357600080fd5b506101e26004803603604081101561047a57600080fd5b81019060208101813564010000000081111561049557600080fd5b8201836020820111156104a757600080fd5b803590602001918460018302840111640100000000831117156104c957600080fd5b9193909290916020810190356401000000008111156104e757600080fd5b8201836020820111156104f957600080fd5b8035906020019184600183028401116401000000008311171561051b57600080fd5b5090925090506107d4565b34801561053257600080fd5b5061022c610b57565b34801561054757600080fd5b5061022c610b5d565b34801561055c57600080fd5b5061022c610b63565b34801561057157600080fd5b5061025d610b69565b34801561058657600080fd5b50610284610b75565b34801561059b57600080fd5b5061022c610b7a565b606481565b61200181565b60015481565b600181565b61100181565b6102ca81565b600881565b61200081565b6001600160a01b031660009081526002602052604090205460ff1690565b61100581565b600281565b601081565b61100881565b600b81565b600981565b6000805460ff1661068c57600260208190527fe57bda0a954a7c7381b17b2c763e646ba2c60f67292d287ba583603e2c1c41668054600160ff19918216811790925561100560009081527fe25235fc0de9d7165652bef0846fefda506174abb9a190f03d0f7bcc6146dbce80548316841790559282558254161790555b3360009081526002602052604090205460ff166106da5760405162461bcd60e51b815260040180806020018281038252602b815260200180610c68602b913960400191505060405180910390fd5b60004783106106e957476106eb565b825b9050670de0b6b3a76400008111156107085750670de0b6b3a76400005b8015610789576040516001600160a01b0385169082156108fc029083906000818181858888f19350505050158015610744573d6000803e3d6000fd5b506040805182815290516001600160a01b038616917ff8b71c64315fc33b2ead2adfa487955065152a8ac33d9d5193aafd7f45dc15a0919081900360200190a26107b3565b6040517fe589651933c2457488cc0d8e0941518abf748e799435e4e396d9c4d0b2db2d4d90600090a15b9392505050565b61100781565b61100681565b60005460ff1681565b600081565b33611007146108145760405162461bcd60e51b815260040180806020018281038252602e815260200180610cc2602e913960400191505060405180910390fd5b61087684848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600b81526a30b23227b832b930ba37b960a91b60208201529150610b809050565b1561094e57606082828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050825192935050601490911490506108f95760405162461bcd60e51b815260040180806020018281038252602c815260200180610cf0602c913960400191505060405180910390fd5b60148101516001600160a01b038116600081815260026020526040808220805460ff19166001179055517f9870d7fe5d112134c55844951dedf365363006d9c588db07c4c85af6322a06199190a25050610ac5565b6109b384848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600e81526d3232b632ba32a7b832b930ba37b960911b60208201529150610b809050565b15610a8857606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060149091149050610a365760405162461bcd60e51b815260040180806020018281038252602f815260200180610c93602f913960400191505060405180910390fd5b60148101516001600160a01b038116600081815260026020526040808220805460ff19169055517fb40992a19dba61ea600e87fce607102bf5908dc89076217b6ca6ae195224f7029190a25050610ac5565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b61100281565b61100381565b61100081565b670de0b6b3a764000081565b600381565b61100481565b6000816040516020018082805190602001908083835b60208310610bb55780518252601f199092019160209182019101610b96565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310610c235780518252601f199092019160209182019101610c04565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052805190602001201490509291505056fe6f6e6c79206f70657261746f7220697320616c6c6f77656420746f2063616c6c20746865206d6574686f646c656e677468206f662076616c756520666f722064656c6574654f70657261746f722073686f756c64206265203230746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662076616c756520666f72206164644f70657261746f722073686f756c64206265203230a2646970667358221220dfab8b447e80ff45b4921032d6fc749c076c81bafdd35dc3adbf21cb41cdac7964736f6c63430006040033", - }, - { - ContractAddr: RelayerHubContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/b144718e94d7a1ebb24a7103202300f08826f369", - Code: "608060405234801561001057600080fd5b50600436106102275760003560e01c80638f83ab1311610130578063c81b1662116100b8578063f3ae24151161007c578063f3ae2415146104e8578063f9a2bbc71461050e578063fc3e590814610516578063fd30d9b81461051e578063fd6a68791461052657610227565b8063c81b1662146104c0578063dc927faf146104c8578063dd91d1c5146104d0578063e1c7392a146104d8578063e79a198f146104e057610227565b8063a1a11bf5116100ff578063a1a11bf5146103de578063a74b83ca146103e6578063a78abc16146103ee578063ab51bb96146103f6578063ac431751146103fe57610227565b80638f83ab13146103a057806395468d26146103c657806396713da9146103ce5780639dc09262146103d657610227565b8063541d5548116101b3578063718a8aa811610182578063718a8aa81461034857806375d47a0a1461035057806378beee67146103585780637942fd051461037e5780637ae230881461038657610227565b8063541d5548146102d85780636a6a419e146103125780636e47b4821461033857806370fd5bad1461034057610227565b80633dffc387116101fa5780633dffc3871461028357806343756e5c146102a1578063493279b1146102a95780634bf6c882146102c857806351e80672146102d057610227565b806303aff02b1461022c578063049a5716146102365780630bee7a671461025a5780630e2374a51461027b575b600080fd5b61023461052e565b005b61023e610539565b604080516001600160a01b039092168252519081900360200190f35b610262610551565b6040805163ffffffff9092168252519081900360200190f35b61023e610556565b61028b61055c565b6040805160ff9092168252519081900360200190f35b61023e610561565b6102b1610567565b6040805161ffff9092168252519081900360200190f35b61028b61056d565b61023e610572565b6102fe600480360360208110156102ee57600080fd5b50356001600160a01b0316610578565b604080519115158252519081900360200190f35b6102fe6004803603602081101561032857600080fd5b50356001600160a01b0316610596565b61023e6105b4565b61028b6105ba565b61028b6105bf565b61023e6105c4565b6102346004803603602081101561036e57600080fd5b50356001600160a01b03166105ca565b61028b6107b2565b61038e6107b7565b60408051918252519081900360200190f35b610234600480360360208110156103b657600080fd5b50356001600160a01b03166107c4565b61038e610a03565b61028b610a0f565b61023e610a14565b61023e610a1a565b61023e610a20565b6102fe610a38565b610262610a41565b6102346004803603604081101561041457600080fd5b81019060208101813564010000000081111561042f57600080fd5b82018360208201111561044157600080fd5b8035906020019184600183028401116401000000008311171561046357600080fd5b91939092909160208101903564010000000081111561048157600080fd5b82018360208201111561049357600080fd5b803590602001918460018302840111640100000000831117156104b557600080fd5b509092509050610a46565b61023e610d97565b61023e610d9d565b610234610da3565b610234610e44565b610234610ec6565b6102fe600480360360208110156104fe57600080fd5b50356001600160a01b031661107f565b61023e61109d565b61028b6110a3565b6102fe6110a8565b61023e6110b1565b610537336110b7565b565b7388cb4d8f77742c24d647bef8049d3f3c56067cdd81565b606481565b61200181565b600181565b61100181565b6102ca81565b600881565b61200081565b6001600160a01b031660009081526007602052604090205460ff1690565b6001600160a01b031660009081526008602052604090205460ff1690565b61100581565b600281565b601081565b61100881565b3360009081526008602052604090205460ff166106185760405162461bcd60e51b81526004018080602001828103825260248152602001806115c36024913960400191505060405180910390fd5b61062133611219565b1561065d5760405162461bcd60e51b81526004018080602001828103825260218152602001806115806021913960400191505060405180910390fd5b3233146106b1576040805162461bcd60e51b815260206004820152601e60248201527f70726f766973696f6e616c2072656c6179657220697320612070726f78790000604482015290519081900360640190fd5b6001600160a01b038181166000908152600960205260409020541633146107095760405162461bcd60e51b815260040180806020018281038252602781526020018061163c6027913960400191505060405180910390fd5b6001600160a01b03818116600081815260066020908152604080832080543380865260078086528487208054600160ff199182161790915584546001600160a01b031990811684179095556008875285882080548216905597875260098652848720805490941690935596168085529083529281902080549094169093558251828152908101939093528151909260008051602061166383398151915292908290030190a15050565b600b81565b68056bc75e2d6310000081565b3360009081526005602052604090205460ff16610821576040805162461bcd60e51b81526020600482015260166024820152751b585b9859d95c88191bd95cc81b9bdd08195e1a5cdd60521b604482015290519081900360640190fd5b61082a81611219565b156108665760405162461bcd60e51b81526004018080602001828103825260278152602001806115e76027913960400191505060405180910390fd5b6001600160a01b03811615610922576001600160a01b03811660009081526007602052604090205460ff16156108dc576040805162461bcd60e51b815260206004820152601660248201527572656c6179657220616c72656164792065786973747360501b604482015290519081900360640190fd5b6001600160a01b0381166000818152600860209081526040808320805460ff191660011790553383526009909152902080546001600160a01b03191690911790556109c3565b3360008181526006602090815260408083208054600980855283862080546001600160a01b03198085169095556001600160a01b0393841680895260078852868920805460ff19908116909155918516808a5260088952878a20805490931690925598909752908552805490921690915581518581529086169281019290925280516000805160206116638339815191529281900390910190a15050610a00565b604080516001600160a01b038316815290517ffba56633276570c7d3120d4535bf3bce26523da53958e40734210b9fd99b36939181900360200190a15b50565b67016345785d8a000081565b600981565b61100781565b61100681565b7342d596440775c90db8d9187b47650986e106349381565b60005460ff1681565b600081565b60005460ff16610a99576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b3361100714610ad95760405162461bcd60e51b815260040180806020018281038252602e81526020018061160e602e913960400191505060405180910390fd5b610b3a84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600a81526930b23226b0b730b3b2b960b11b6020820152915061121f9050565b15610bd25760148114610b7e5760405162461bcd60e51b81526004018080602001828103825260228152602001806115a16022913960400191505060405180910390fd5b6000610bc1601484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061130692505050565b9050610bcc8161130b565b50610d05565b610c3684848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c3932b6b7bb32a6b0b730b3b2b960991b6020820152915061121f9050565b15610cc85760148114610c7a5760405162461bcd60e51b81526004018080602001828103825260228152602001806115a16022913960400191505060405180910390fd5b6000610cbd601484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061130692505050565b9050610bcc816110b7565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b61100281565b61100381565b600a5460ff1615610dfb576040805162461bcd60e51b815260206004820152601e60248201527f7468652077686974656c6973747320616c726561647920757064617465640000604482015290519081900360640190fd5b610e187388cb4d8f77742c24d647bef8049d3f3c56067cdd6113cd565b610e357342d596440775c90db8d9187b47650986e10634936113cd565b600a805460ff19166001179055565b60005460ff1615610e9c576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b68056bc75e2d63100000600190815567016345785d8a00006002556000805460ff19169091179055565b3360009081526004602052604090205460ff16610f21576040805162461bcd60e51b81526020600482015260146024820152731c995b185e595c88191bc81b9bdd08195e1a5cdd60621b604482015290519081900360640190fd5b60005460ff16610f74576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b610f7c611565565b5033600081815260036020908152604091829020825180840190935280548084526001909101549183018290529192916108fc91610fc0919063ffffffff61148516565b6040518115909202916000818181858888f19350505050158015610fe8573d6000803e3d6000fd5b50602081015160405161100291829181156108fc0291906000818181858888f1935050505015801561101e573d6000803e3d6000fd5b50336000818152600460209081526040808320805460ff191690556003825280832083815560010192909255815192835290517fd17202129b83db7880d6b9f25df81c58ad46f7e0e2c92236b1aa10663a4876679281900390910190a15050565b6001600160a01b031660009081526005602052604090205460ff1690565b61100081565b600381565b600a5460ff1681565b61100481565b6001600160a01b03811660009081526005602052604090205460ff1661111c576040805162461bcd60e51b81526020600482015260156024820152741b585b9859d95c88191bd95cdb89dd08195e1a5cdd605a1b604482015290519081900360640190fd5b6001600160a01b038082166000818152600660209081526040808320805460058452828520805460ff1990811690915582546001600160a01b0319908116909355600980865284872080548a16885260088752858820805490931690925595879052948452845490911690935580519384525191909316927f2002866d443ac6c241fecaaa2af4895828c7de2cc423b9d01f7969650f557c76928290030190a16001600160a01b03811615611215576001600160a01b0381166000818152600760209081526040808320805460ff1916905580519384529083019190915280516000805160206116638339815191529281900390910190a15b5050565b3b151590565b6000816040516020018082805190602001908083835b602083106112545780518252601f199092019160209182019101611235565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106112c25780518252601f1990920191602091820191016112a3565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b6001600160a01b03811660009081526005602052604090205460ff1615611372576040805162461bcd60e51b81526020600482015260166024820152756d616e6167657220616c72656164792065786973747360501b604482015290519081900360640190fd5b6001600160a01b038116600081815260056020908152604091829020805460ff19166001179055815192835290517fe0de8e71a22c046647f4ef744348fa126ad6d052d4ce070999481f69d45575179281900390910190a150565b6001600160a01b03811660008181526005602090815260408083208054600160ff1991821681179092556006845282852080546001600160a01b031916871790556007845293829020805490941617909255815192835290517fe0de8e71a22c046647f4ef744348fa126ad6d052d4ce070999481f69d45575179281900390910190a160408051600081526001600160a01b03831660208201528151600080516020611663833981519152929181900390910190a150565b60006114c783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506114ce565b9392505050565b6000818484111561155d5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561152257818101518382015260200161150a565b50505050905090810190601f16801561154f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60405180604001604052806000815260200160008152509056fe70726f766973696f6e616c2072656c61796572206973206120636f6e74726163746c656e677468206f66206d616e616765722061646472657373206d69736d6174636872656c61796572206973206e6f7420612070726f766973696f6e616c2072656c61796572636f6e7472616374206973206e6f7420616c6c6f77656420746f20626520612072656c61796572746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e747261637470726f766973696f6e616c206973206e6f742073657420666f722074686973206d616e61676572a5a19d7e9dab30a215022382d7abe782b579986fcbedec9942ecd0db9510a148a2646970667358221220243ef96c0e2d17d4e167cfcbcb6a51b4b92c1ac27fcb61400a87275f5128b4ab64736f6c63430006040033", - }, - { - ContractAddr: CrossChainContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/b144718e94d7a1ebb24a7103202300f08826f369", - Code: "608060405234801561001057600080fd5b50600436106103995760003560e01c8063718a8aa8116101e9578063c27cdcfb1161010f578063dc927faf116100ad578063f7a251d71161007c578063f7a251d714610b2f578063f9a2bbc714610ba7578063fc3e590814610baf578063fd6a687914610bb757610399565b8063dc927faf14610af7578063e1c7392a14610aff578063e3b0480514610b07578063e6400bbe14610b2757610399565b8063ccc108d7116100e9578063ccc108d714610ab0578063d31f968d14610ab8578063d76a867514610ae7578063dc40433114610aef57610399565b8063c27cdcfb14610a80578063c780e9de14610aa0578063c81b166214610aa857610399565b80638cc8f56111610187578063a78abc1611610156578063a78abc16146109b2578063ab51bb96146109ba578063ac431751146109c2578063b0355f5b1461078157610399565b80638cc8f5611461088757806396713da91461099a5780639dc09262146109a2578063a1a11bf5146109aa57610399565b806375d47a0a116101c357806375d47a0a146108a75780637942fd05146108af57806384013b6a146108b7578063863fe4ab1461099257610399565b8063718a8aa81461088f578063719482d51461089757806374f079b81461089f57610399565b8063422f9050116102ce57806363e1394e1161026c5780636de380bd1161023b5780636de380bd146108575780636e47a51a1461085f5780636e47b4821461087f57806370fd5bad1461088757610399565b806363e1394e146107ff5780636a3cb34d146108075780636bacff2c1461080f5780636c46aa681461080757610399565b80634bf6c882116102a85780634bf6c882146107b957806351e80672146107c15780635692ddd3146107c95780635f832177146107d157610399565b8063422f90501461078957806343756e5c146107a9578063493279b1146107b157610399565b8063299b533d1161033b578063308325f411610315578063308325f4146106155780633a648b151461061d5780633bdc47a6146106595780633dffc3871461078157610399565b8063299b533d146105a35780632af6f399146105d75780632ff32aea146105f457610399565b806314b3023b1161037757806314b3023b146104015780631d1309351461041b5780631e275ae11461043757806322556cdc1461059b57610399565b806305e682581461039e5780630bee7a67146103bc5780630e2374a5146103dd575b600080fd5b6103a6610bbf565b6040805160ff9092168252519081900360200190f35b6103c4610bc4565b6040805163ffffffff9092168252519081900360200190f35b6103e5610bc9565b604080516001600160a01b039092168252519081900360200190f35b610409610bcf565b60408051918252519081900360200190f35b610423610bd5565b604080519115158252519081900360200190f35b610599600480360361010081101561044e57600080fd5b81018160a081016080820135600160201b81111561046b57600080fd5b82018360208201111561047d57600080fd5b803590602001918460018302840111600160201b8311171561049e57600080fd5b919390929091602081019035600160201b8111156104bb57600080fd5b8201836020820111156104cd57600080fd5b803590602001918460018302840111600160201b831117156104ee57600080fd5b919390929091602081019035600160201b81111561050b57600080fd5b82018360208201111561051d57600080fd5b803590602001918460018302840111600160201b8311171561053e57600080fd5b919390929091602081019035600160201b81111561055b57600080fd5b82018360208201111561056d57600080fd5b803590602001918460018302840111600160201b8311171561058e57600080fd5b509092509050610bde565b005b6104096112c2565b6105c0600480360360208110156105b957600080fd5b50356112c7565b6040805161ffff9092168252519081900360200190f35b610423600480360360208110156105ed57600080fd5b50356112dd565b6105fc6112f2565b60408051600792830b90920b8252519081900360200190f35b6104096112fb565b61063d6004803603602081101561063357600080fd5b503560ff16611301565b604080516001600160401b039092168252519081900360200190f35b61070c6004803603606081101561066f57600080fd5b60ff82351691602081013591810190606081016040820135600160201b81111561069857600080fd5b8201836020820111156106aa57600080fd5b803590602001918460018302840111600160201b831117156106cb57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061131c945050505050565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561074657818101518382015260200161072e565b50505050905090810190601f1680156107735780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103a6611392565b6104236004803603602081101561079f57600080fd5b503560ff16611397565b6103e56113ac565b6105c06113b2565b6103a66113b8565b6103e56113bd565b6104096113c3565b610599600480360360408110156107e757600080fd5b506001600160a01b03813581169160200135166113f3565b610409611653565b6105c061167b565b61082c6004803603602081101561082557600080fd5b5035611680565b6040805161ffff90941684526001600160801b03909216602084015282820152519081900360600190f35b6104096116af565b6103e56004803603602081101561087557600080fd5b503560ff166116d6565b6103e56116f1565b6103a661167b565b6103a66116f7565b6105c0611392565b6104096116fc565b6103e5611702565b6103a6611708565b610599600480360360a08110156108cd57600080fd5b810190602081018135600160201b8111156108e757600080fd5b8201836020820111156108f957600080fd5b803590602001918460018302840111600160201b8311171561091a57600080fd5b919390929091602081019035600160201b81111561093757600080fd5b82018360208201111561094957600080fd5b803590602001918460018302840111600160201b8311171561096a57600080fd5b919350915080356001600160401b03908116916020810135909116906040013560ff1661170d565b6104096129c7565b6103a66129cf565b6103e56129d4565b6103e56129da565b6104236129e0565b6103c4610bbf565b610599600480360360408110156109d857600080fd5b810190602081018135600160201b8111156109f257600080fd5b820183602082011115610a0457600080fd5b803590602001918460018302840111600160201b83111715610a2557600080fd5b919390929091602081019035600160201b811115610a4257600080fd5b820183602082011115610a5457600080fd5b803590602001918460018302840111600160201b83111715610a7557600080fd5b5090925090506129e9565b61063d60048036036020811015610a9657600080fd5b503560ff166134ad565b6104096134c8565b6103e56134ec565b6105996134f2565b61042360048036036040811015610ace57600080fd5b5080356001600160a01b0316906020013560ff16613746565b61070c613766565b610409613785565b6103e561378b565b610599613791565b61063d60048036036020811015610b1d57600080fd5b503560ff16613b48565b610599613b63565b61059960048036036060811015610b4557600080fd5b60ff8235169190810190604081016020820135600160201b811115610b6957600080fd5b820183602082011115610b7b57600080fd5b803590602001918460018302840111600160201b83111715610b9c57600080fd5b919350915035613d82565b6103e5613ec5565b6103a6613ecb565b6103e5613ed0565b600081565b606481565b61200181565b60015481565b600b5460ff1681565b60005460ff16610c23576040805162461bcd60e51b815260206004820152601960248201526000805160206149b4833981519152604482015290519081900360640190fd5b604080516337d7f9c160e21b81526001600160401b038b35166004820181905291516110039163df5fe704916024808301926020929190829003018186803b158015610c6e57600080fd5b505afa158015610c82573d6000803e3d6000fd5b505050506040513d6020811015610c9857600080fd5b5051610cd55760405162461bcd60e51b81526004018080602001828103825260238152602001806149d46023913960400191505060405180910390fd5b604080516337d7f9c160e21b815260208c8101356001600160401b03166004830181905292516110039263df5fe704926024808301939192829003018186803b158015610d2157600080fd5b505afa158015610d35573d6000803e3d6000fd5b505050506040513d6020811015610d4b57600080fd5b5051610d885760405162461bcd60e51b81526004018080602001828103825260238152602001806149d46023913960400191505060405180910390fd5b60608b013560ff81166000908152600560205260409020546001600160401b03909116906001600160a01b0316610e01576040805162461bcd60e51b815260206004820152601860248201527718da185b9b995b081a5cc81b9bdd081cdd5c1c1bdc9d195960421b604482015290519081900360640190fd5b600b5460ff1615610e45576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b8888604051808383808284376040519201829003822094508f93508e9250819050838380828437808301925050509250505060405180910390201415610ec1576040805162461bcd60e51b815260206004820152600c60248201526b1cd85b59481c185e5b1bd85960a21b604482015290519081900360640190fd5b60606001600160401b0360408e01358116908e83013516610ee28282613ed6565b80516020808301919091206000818152600e9092526040909120549194509060ff1615610f4b576040805162461bcd60e51b8152602060048201526012602482015271185b1c9958591e4818da185b1b195b99d95960721b604482015290519081900360640190fd5b6000908152600e60205260408120805460ff191660011790558f8160200201356001600160401b0316905060608f8f8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060608c8c8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506040805163cba510a960e01b81526001600160401b038a16600482015290519596509094611003945063cba510a9935060248083019350602092829003018186803b15801561104157600080fd5b505afa158015611055573d6000803e3d6000fd5b505050506040513d602081101561106b57600080fd5b505160408051808201909152600381526269626360e81b6020820152909150611098908290898686613f1e565b6110e1576040805162461bcd60e51b81526020600482015260156024820152740696e76616c6964206d65726b6c652070726f6f663605c1b604482015290519081900360640190fd5b5050505060008f6001600481106110f457fe5b60200201356001600160401b0316905060608d8d8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8f018190048102820181019092528d815293945060609392508d91508c908190840183828082843760009201829052506040805163cba510a960e01b81526001600160401b038a16600482015290519596509094611003945063cba510a9935060248083019350602092829003018186803b1580156111c057600080fd5b505afa1580156111d4573d6000803e3d6000fd5b505050506040513d60208110156111ea57600080fd5b505160408051808201909152600381526269626360e81b6020820152909150611217908290898686613f1e565b611260576040805162461bcd60e51b8152602060048201526015602482015274696e76616c6964206d65726b6c652070726f6f663160581b604482015290519081900360640190fd5b5050505061126c61401b565b604080516001600160401b038416815260ff83166020820152815133927f039eb91179ffd7d3b6e97f8ea106e748e827f910b872375dbc9c14a362319c3c928290030190a2505050505050505050505050505050565b603281565b600d6020526000908152604090205461ffff1681565b600e6020526000908152604090205460ff1681565b60045460070b81565b60025481565b600a602052600090815260409020546001600160401b031681565b60606000825160210190506060816040519080825280601f01601f191660200182016040528015611354576020820181803683370190505b506021810186905260018101879052828152905060418101600061137786614099565b509050611386818388516140a3565b50909695505050505050565b600181565b60096020526000908152604090205460ff1681565b61100181565b6102ca81565b600881565b61200081565b604080517710d05390d15317d514905394d1915497d41493d413d4d05360421b8152905190819003601801902081565b60005460ff16611438576040805162461bcd60e51b815260206004820152601960248201526000805160206149b4833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b15801561147b57600080fd5b505afa15801561148f573d6000803e3d6000fd5b505050506040513d60208110156114a557600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b1580156114e657600080fd5b505afa1580156114fa573d6000803e3d6000fd5b505050506040513d602081101561151057600080fd5b505190508061151d575060155b60008211801561152d5750808211155b61156c576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b604080516001600160a01b038087166020808401919091529086168284015282518083038401815260608301808552815191909201207710d05390d15317d514905394d1915497d41493d413d4d05360421b90915291519081900360780190206000906115d990836140e4565b9050801561164b5760408051630911a2c160e11b81526001600160a01b03888116600483015287166024820152905161100491631223458291604480830192600092919082900301818387803b15801561163257600080fd5b505af1158015611646573d6000803e3d6000fd5b505050505b505050505050565b604080516f14d554d411539117d41493d413d4d05360821b8152905190819003601001902081565b600281565b600c602052600090815260409020805460019091015461ffff8216916201000090046001600160801b03169083565b604080516e149153d4115397d41493d413d4d053608a1b8152905190819003600f01902081565b6005602052600090815260409020546001600160a01b031681565b61100581565b601081565b60035481565b61100881565b600b81565b60005460ff16611752576040805162461bcd60e51b815260206004820152601960248201526000805160206149b4833981519152604482015290519081900360640190fd5b60408051630a83aaa960e31b815233600482015290516110069163541d5548916024808301926020929190829003018186803b15801561179157600080fd5b505afa1580156117a5573d6000803e3d6000fd5b505050506040513d60208110156117bb57600080fd5b505161180e576040805162461bcd60e51b815260206004820152601f60248201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604482015290519081900360640190fd5b60ff8116600090815260086020526040902054829082906001600160401b03908116908316811461187e576040805162461bcd60e51b815260206004820152601560248201527439b2b8bab2b731b2903737ba1034b71037b93232b960591b604482015290519081900360640190fd5b60ff8216600090815260086020908152604091829020805467ffffffffffffffff1916600185016001600160401b039081169190911790915582516337d7f9c160e21b81529089166004820152915188926110039263df5fe70492602480840193829003018186803b1580156118f357600080fd5b505afa158015611907573d6000803e3d6000fd5b505050506040513d602081101561191d57600080fd5b505161195a5760405162461bcd60e51b81526004018080602001828103825260238152602001806149d46023913960400191505060405180910390fd5b60ff851660009081526005602052604090205485906001600160a01b03166119c4576040805162461bcd60e51b815260206004820152601860248201527718da185b9b995b081a5cc81b9bdd081cdd5c1c1bdc9d195960421b604482015290519081900360640190fd5b60ff86166000908152600a6020526040902054889087906001600160401b039081169083161015611a2d576040805162461bcd60e51b815260206004820152600e60248201526d3a37b79037b632103432b0b232b960911b604482015290519081900360640190fd5b60ff81166000908152600a60205260409020546001600160401b03838116911614611a7f5760ff81166000908152600a60205260409020805467ffffffffffffffff19166001600160401b0384161790555b600b5460ff1615611ac3576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b60608e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060608d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509050611c076110036001600160a01b031663cba510a98e6040518263ffffffff1660e01b815260040180826001600160401b03166001600160401b0316815260200191505060206040518083038186803b158015611bb057600080fd5b505afa158015611bc4573d6000803e3d6000fd5b505050506040513d6020811015611bda57600080fd5b505160408051808201909152600381526269626360e81b6020820152611c008e8e613ed6565b8585613f1e565b611c4f576040805162461bcd60e51b815260206004820152601460248201527334b73b30b634b21036b2b935b63290383937b7b360611b604482015290519081900360640190fd5b60408051631bb5062960e31b81526001600160401b038e16600482015290516000916110039163dda8314891602480820192602092909190829003018186803b158015611c9b57600080fd5b505afa158015611caf573d6000803e3d6000fd5b505050506040513d6020811015611cc557600080fd5b505190508b8b600080806060611cda896143c9565b935093509350935083611d9c578460ff16866001600160401b03167ff7b2e42d694eb1100184aae86d4245d9e46966100b1dc7e723275b98326854ac8b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015611d54578181015183820152602001611d3c565b50505050905090810190601f168015611d815780820380516001836020036101000a031916815260200191505b509250505060405180910390a35050505050505050506129b7565b6040805160ff85811682529151918716916001600160401b038916917f36afdaf439a8f43fe72135135d804ae620b37a474f0943b5b85f6788312cad40919081900360200190a360ff83166123215760ff85166000818152600560209081526040808320548151631182b87560e01b815260048101958652602481019283528651604482015286516001600160a01b03909216958695631182b875958d958a9593949093606490910192918601918190849084905b83811015611e69578181015183820152602001611e51565b50505050905090810190601f168015611e965780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b158015611eb657600080fd5b505af1925050508015611f9a57506040513d6000823e601f3d908101601f191682016040526020811015611ee957600080fd5b8101908080516040519392919084600160201b821115611f0857600080fd5b908301906020820185811115611f1d57600080fd5b8251600160201b811182820188101715611f3657600080fd5b82525081516020918201929091019080838360005b83811015611f63578181015183820152602001611f4b565b50505050905090810190601f168015611f905780820380516001836020036101000a031916815260200191505b5060405250505060015b6122ac576040516000815260443d1015611fb657506000612051565b60046000803e60005160e01c6308c379a08114611fd7576000915050612051565b60043d036004833e81513d60248201116001600160401b038211171561200257600092505050612051565b80830180516001600160401b03811115612023576000945050505050612051565b8060208301013d860181111561204157600095505050505050612051565b601f01601f191660405250925050505b8061205c575061216e565b60ff8716600090815260076020526040812054612093916001600160401b0390911690899061208e906002908861131c565b614479565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf948794849390840192918601918190849084905b8381101561212e578181015183820152602001612116565b50505050905090810190601f16801561215b5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2506122a7565b3d808015612198576040519150601f19603f3d011682016040523d82523d6000602084013e61219d565b606091505b5060ff87166000908152600760205260408120546121d0916001600160401b0390911690899061208e906002908861131c565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351948794849390840192918601918190849084905b8381101561226b578181015183820152602001612253565b50505050905090810190601f1680156122985780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b61231b565b8051156123195760ff87166000908152600760205260408120546122e5916001600160401b0390911690899061208e906001908661131c565b60ff8716600090815260076020526040902080546001600160401b038082166001011667ffffffffffffffff199091161790555b505b506128ef565b60ff8316600114156125c55760ff8516600081815260056020908152604080832054815163831d65d160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563831d65d1958d958a9593949093606490910192918601918190849084905b838110156123ab578181015183820152602001612393565b50505050905090810190601f1680156123d85780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b1580156123f857600080fd5b505af1925050508015612409575060015b61231b576040516000815260443d1015612425575060006124c0565b60046000803e60005160e01c6308c379a081146124465760009150506124c0565b60043d036004833e81513d60248201116001600160401b0382111715612471576000925050506124c0565b80830180516001600160401b038111156124925760009450505050506124c0565b8060208301013d86018111156124b0576000955050505050506124c0565b601f01601f191660405250925050505b806124cb5750612530565b60408051602080825283518183015283516001600160a01b038616937ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf938693909283928301918501908083836000831561212e578181015183820152602001612116565b3d80801561255a576040519150601f19603f3d011682016040523d82523d6000602084013e61255f565b606091505b5060408051602080825283518183015283516001600160a01b038616937f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351938693909283928301918501908083836000831561226b578181015183820152602001612253565b60ff8316600214156128ef5760ff8516600081815260056020908152604080832054815163c8509d8160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563c8509d81958d958a9593949093606490910192918601918190849084905b8381101561264f578181015183820152602001612637565b50505050905090810190601f16801561267c5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561269c57600080fd5b505af19250505080156126ad575060015b6128ed576040516000815260443d10156126c957506000612764565b60046000803e60005160e01c6308c379a081146126ea576000915050612764565b60043d036004833e81513d60248201116001600160401b038211171561271557600092505050612764565b80830180516001600160401b03811115612736576000945050505050612764565b8060208301013d860181111561275457600095505050505050612764565b601f01601f191660405250925050505b8061276f5750612818565b816001600160a01b03167ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf826040518080602001828103825283818151815260200191508051906020019080838360005b838110156127d85781810151838201526020016127c0565b50505050905090810190601f1680156128055780820380516001836020036101000a031916815260200191505b509250505060405180910390a2506128ed565b3d808015612842576040519150601f19603f3d011682016040523d82523d6000602084013e612847565b606091505b50816001600160a01b03167f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351826040518080602001828103825283818151815260200191508051906020019080838360005b838110156128b1578181015183820152602001612899565b50505050905090810190601f1680156128de5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b505b60ff80861660009081526009602052604090205461100591636f93d2e6918a91339187911680612921575060ff881615155b604080516001600160e01b031960e088901b1681526001600160a01b039586166004820152939094166024840152604483019190915215156064820152905160848083019260209291908290030181600087803b15801561298157600080fd5b505af1158015612995573d6000803e3d6000fd5b505050506040513d60208110156129ab57600080fd5b50505050505050505050505b5050505050505050505050505050565b630102ca0081565b600981565b61100781565b61100681565b60005460ff1681565b3361100714612a295760405162461bcd60e51b815260040180806020018281038252602e81526020018061490a602e913960400191505060405180910390fd5b600b5460ff1615612a6d576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b612ad684848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526012815271626174636853697a65466f724f7261636c6560701b602082015291506146149050565b15612b7157604080516020601f8401819004810282018101909252828152600091612b19918585808385018382808284376000920191909152506146fb92505050565b90506127108111158015612b2e5750600a8110155b612b695760405162461bcd60e51b81526004018080602001828103825260328152602001806149826032913960400191505060405180910390fd5b60015561341b565b612bda84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601281527118591913dc955c19185d1950da185b9b995b60721b602082015291506146149050565b15612d6257606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060169091149050612c5d5760405162461bcd60e51b815260040180806020018281038252605a815260200180614823605a913960600191505060405180910390fd5b60018101516002820151601683015160ff82161590612c7b81614700565b612ccc576040805162461bcd60e51b815260206004820152601960248201527f61646472657373206973206e6f74206120636f6e747261637400000000000000604482015290519081900360640190fd5b60ff8416600081815260056020908152604080832080546001600160a01b0319166001600160a01b038716908117909155808452600683528184208585528352818420805460ff199081166001179091556009909352818420805490931687151517909255519092917f7e3b6af43092577ee20e60eaa1d9b114a7031305c895ee7dd3ffe17196d2e1e091a3505050505061341b565b612dcf84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526016815275195b98589b1953dc911a5cd8589b1950da185b9b995b60521b602082015291506146149050565b15612f0057606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060029091149050612e525760405162461bcd60e51b815260040180806020018281038252604a815260200180614938604a913960600191505060405180910390fd5b600181810151600283015160ff80831660009081526005602052604090205492939192908316909114906001600160a01b03168015612ef6576001600160a01b038116600090815260066020908152604080832060ff881680855290835292819020805460ff1916861515908117909155815190815290517fa3132e3f9819fbddc7f0ed6d38d7feef59aa95112090b7c592f5cb5bc4aa4adc929181900390910190a25b505050505061341b565b612f6484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c73757370656e6451756f72756d60981b602082015291506146149050565b156130995760028114612fa85760405162461bcd60e51b815260040180806020018281038252602d8152602001806148b1602d913960400191505060405180910390fd5b6000612feb600284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506146fb92505050565b905060008161ffff16118015613005575060648161ffff16105b61304f576040805162461bcd60e51b8152602060048201526016602482015275696e76616c69642073757370656e642071756f72756d60501b604482015290519081900360640190fd5b604080516f14d554d411539117d41493d413d4d05360821b815281519081900360100190206000908152600d60205220805461ffff90921661ffff1990921691909117905561341b565b6130fc84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600c81526b72656f70656e51756f72756d60a01b602082015291506146149050565b1561322f57600281146131405760405162461bcd60e51b815260040180806020018281038252602c8152602001806148de602c913960400191505060405180910390fd5b6000613183600284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506146fb92505050565b905060008161ffff1611801561319d575060648161ffff16105b6131e6576040805162461bcd60e51b8152602060048201526015602482015274696e76616c69642072656f70656e2071756f72756d60581b604482015290519081900360640190fd5b604080516e149153d4115397d41493d413d4d053608a1b8152815190819003600f0190206000908152600d60205220805461ffff90921661ffff1990921691909117905561341b565b61329a84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601481527363616e63656c5472616e7366657251756f72756d60601b602082015291506146149050565b156133de57600281146132de5760405162461bcd60e51b815260040180806020018281038252603481526020018061487d6034913960400191505060405180910390fd5b6000613321600284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506146fb92505050565b905060008161ffff1611801561333b575060648161ffff16105b61338c576040805162461bcd60e51b815260206004820152601e60248201527f696e76616c69642063616e63656c207472616e736665722071756f72756d0000604482015290519081900360640190fd5b604080517710d05390d15317d514905394d1915497d41493d413d4d05360421b815281519081900360180190206000908152600d60205220805461ffff90921661ffff1990921691909117905561341b565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b6008602052600090815260409020546001600160401b031681565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081565b61100281565b60005460ff16613537576040805162461bcd60e51b815260206004820152601960248201526000805160206149b4833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b15801561357a57600080fd5b505afa15801561358e573d6000803e3d6000fd5b505050506040513d60208110156135a457600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b1580156135e557600080fd5b505afa1580156135f9573d6000803e3d6000fd5b505050506040513d602081101561360f57600080fd5b505190508061361c575060155b60008211801561362c5750808211155b61366b576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b600b5460ff166136b2576040805162461bcd60e51b815260206004820152600d60248201526c1b9bdd081cdd5cdc195b991959609a1b604482015290519081900360640190fd5b604080516e149153d4115397d41493d413d4d053608a1b8152905190819003600f019020600090613703907fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4706140e4565b9050801561374157600b805460ff1916905560405133907f899fe8c37dc61708a3aaa99c4bf143346c1d1da69af79be9e8920c0a6785b75290600090a25b505050565b600660209081526000928352604080842090915290825290205460ff1681565b6040518060400160405280600381526020016269626360e81b81525081565b610e1081565b61100381565b60005460ff16156137e9576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b7f1471eb6eb2c5e789fc3de43f8ce62938c7d1836ec861730447e2ada8fd81017b80546001600160a01b0319908116611008179091557f92e85d02570a8092d09a6e3a57665bc3815a2699a4074001bf1ccabf660f5a36805460ff199081169091557fd8af288fc1c8680b4f4706064cf021e264efb6828fcaf7eb5ca36818eb365bcc8054821660019081179091557f89832631fb3c3307a103ba2c84ab569c64d6182a18893dcd163f0f1c2090733a805484166110049081179091557f6cde3cea4b3a3fb2488b2808bae7556f4a405e50f65e1794383bc026131b13c38054841690557f72e4efa1513b071517c6c74dba31b5934a81aa83cddd400e7081df5529c9943680548416831790557fa9bc9a3a348c357ba16b37005d7e6b3236198c0e939f4af8c5f19b8deeb8ebc08054851690911790557fc575c31fea594a6eb97c8e9d3f9caee4c16218c6ef37e923234c0fe9014a61e78054831690557f4e523af77f034e9810f1c94057f5e931fb3d16a51511a4c3add793617d18610580548316821790557ffb33122aa9f93cc639ebe80a7bc4784c11e6053dde89c6f4f7e268c6a623da1e805484166110001790557fc7694af312c4f286114180fd0ba6a52461fcee8a381636770b19a343af92538a80548316821790557f01112dd68e482ba8d68a7e828cff8b3abcea08eab88941953c180a7e650e9cd480548316821790557fc0a4a8be475dfebc377ebef2d7c4ff47656f572a08dd92b81017efcdba0febe1805484166110071790557f87e8a52529e8ece4ef759037313542a6429ff494a9fab9027fb79db90124eba680548316821790557f4c7666bbcb22d46469f7cc282f70764a7012dca2cce630ff8d83db9a9cdd48f080548316821790557f40f28f99a40bc9f6beea1013afdbc3cdcc689eb76b82c4de06c0acf1e1932ed58054909316611001179092557f0d9cf2cd531699eed8dd34e40ff2884a14a698c4898184fba85194e6f6772d248054821683179055600b60009081527f23f68c9bd22b8a93d06adabe17481c87c016bcbd20adc8bfd707a4d813a572176020527fdf0d5d05428057f5455c2dc8e810dd86d1e9350faa72f16bda8a45443c5b39328054831684179055603283556004805467ffffffffffffffff19166001600160401b031790556002819055600381905580549091169091179055565b6007602052600090815260409020546001600160401b031681565b60005460ff16613ba8576040805162461bcd60e51b815260206004820152601960248201526000805160206149b4833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b158015613beb57600080fd5b505afa158015613bff573d6000803e3d6000fd5b505050506040513d6020811015613c1557600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b158015613c5657600080fd5b505afa158015613c6a573d6000803e3d6000fd5b505050506040513d6020811015613c8057600080fd5b5051905080613c8d575060155b600082118015613c9d5750808211155b613cdc576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b600b5460ff1615613d20576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b604080516f14d554d411539117d41493d413d4d05360821b81529051908190036010019020600090613d72907fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4706140e4565b905080156137415761374161401b565b60005460ff16613dc7576040805162461bcd60e51b815260206004820152601960248201526000805160206149b4833981519152604482015290519081900360640190fd5b33600090815260066020908152604080832060ff8089168552925290912054859116613e245760405162461bcd60e51b81526004018080602001828103825260318152602001806147f26031913960400191505060405180910390fd5b60ff85166000908152600760209081526040808320548151601f88018490048402810184019092528682526001600160401b031692613e899284928a9261208e92909189918c908c908190840183828082843760009201919091525061131c92505050565b60ff959095166000908152600760205260409020805467ffffffffffffffff191660019096016001600160401b03169590951790945550505050565b61100081565b600381565b61100481565b60408051600e808252818301909252606091630102ca0060ff851617918391602082018180368337505050600e81810187905260068201939093529182525090505b92915050565b600085613f2d57506000614012565b606082518451865160800101016040519080825280601f01601f191660200182016040528015613f64576020820181803683370190505b5090506000613f7282614706565b602080890151825201905086600080613f8a89614099565b8086526020909501949092509050613fa38285836140a3565b92830192613fb088614099565b8086526020909501949092509050613fc98285836140a3565b9283018a815260200192613fdc87614099565b9092509050613fec8285836140a3565b508351602001613ffa61470c565b60208183886065600019fa5051600114955050505050505b95945050505050565b600b5460ff161561405f576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b600b805460ff1916600117905560405133907f6f123d3d54c84a7960a573b31c221dcd86e13fd849c5adb0c6ca851468cc1ae490600090a2565b8051602090910191565b5b602081106140c3578251825260209283019290910190601f19016140a4565b915181516020939093036101000a6000190180199091169216919091179052565b6000828152600d602052604081205461ffff166141ad57604080516f14d554d411539117d41493d413d4d05360821b815281519081900360100181206000908152600d6020818152848320805461ffff199081166001179091556e149153d4115397d41493d413d4d053608a1b8552855194859003600f01852084528282528584208054821660029081179091557710d05390d15317d514905394d1915497d41493d413d4d05360421b8652865195869003601801909520845291905292902080549092161790555b6000838152600c6020526040902080546201000090046001600160801b0316421015806141de575082816001015414155b156142b1576000848152600d602090815260409182902054835461ffff90911661ffff199091161771ffffffffffffffffffffffffffffffff0000191662010000610e1042016001600160801b031602178355600180840186905582519182019092523381526142539160028401919061472a565b5080546040805161ffff83168152620100009092046001600160801b0316602083015281810185905251339186917f9e109f0e55ef32e99e4880be2ec357f1ddb3469c79d0747ef4762da6e89fabe5916060908290030190a3614365565b60005b600282015481101561433c57336001600160a01b03168260020182815481106142d957fe5b6000918252602090912001546001600160a01b03161415614334576040805162461bcd60e51b815260206004820152601060248201526f185b1c9958591e48185c1c1c9bdd995960821b604482015290519081900360640190fd5b6001016142b4565b50600281018054600181018255600091825260209091200180546001600160a01b031916331790555b8054600282015461ffff909116116143bf576000848152600c60205260408120805471ffffffffffffffffffffffffffffffffffff1916815560018101829055906143b3600283018261478f565b50506001915050613f18565b5060009392505050565b600080600060606021855110156143f9575050604080516000808252602082019092529092508291508190614472565b600185015160218601518651604080516020198301808252601f1960011990940193909316810160200190915260418901939291606091908015614444576020820181803683370190505b509050600061445282614099565b509050614464858260218d51036140a3565b506001975091955093509150505b9193509193565b600b5460ff16156144bd576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b6002544311156144fc576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b16179091556003554360025561453d565b6003805460019081019182905554101561453d576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b16179091556003555b8160ff16836001600160401b0316600460009054906101000a900460070b6001600160401b03167f3a6e0fc61675aa2a100bcba0568368bb92bcec91c97673391074f11138f0cffe6102ca85604051808361ffff1661ffff16815260200180602001828103825283818151815260200191508051906020019080838360005b838110156145d45781810151838201526020016145bc565b50505050905090810190601f1680156146015780820380516001836020036101000a031916815260200191505b50935050505060405180910390a4505050565b6000816040516020018082805190602001908083835b602083106146495780518252601f19909201916020918201910161462a565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106146b75780518252601f199092019160209182019101614698565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b3b151590565b60200190565b60405180602001604052806001906020820280368337509192915050565b82805482825590600052602060002090810192821561477f579160200282015b8281111561477f57825182546001600160a01b0319166001600160a01b0390911617825560209092019160019091019061474a565b5061478b9291506147b0565b5090565b50805460008255906000526020600020908101906147ad91906147d7565b50565b6147d491905b8082111561478b5780546001600160a01b03191681556001016147b6565b90565b6147d491905b8082111561478b57600081556001016147dd56fe74686520636f6e747261637420616e64206368616e6e656c2068617665206e6f74206265656e20726567697374657265646c656e677468206f662076616c756520666f72206164644f725570646174654368616e6e656c2073686f756c642062652032322c206368616e6e656c49643a697346726f6d53797374656d3a68616e646c6572416464726573736c656e677468206f662076616c756520666f722063616e63656c5472616e7366657251756f72756d2073686f756c6420626520326c656e677468206f662076616c756520666f722073757370656e6451756f72756d2073686f756c6420626520326c656e677468206f662076616c756520666f722072656f70656e51756f72756d2073686f756c642062652032746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662076616c756520666f7220656e61626c654f7244697361626c654368616e6e656c2073686f756c6420626520322c206368616e6e656c49643a6973456e61626c65746865206e6577426174636853697a65466f724f7261636c652073686f756c6420626520696e205b31302c2031303030305d74686520636f6e7472616374206e6f7420696e697420796574000000000000006c6967687420636c69656e74206e6f742073796e632074686520626c6f636b20796574a264697066735822122020f10a3f6af250b9c5c16c5020f1b83db8bc64ed4363d8712e2b85f20f56251164736f6c63430006040033", - }, - }, - } - - PlatoUpgrade[networkname.BSCChainName] = &Upgrade{ - UpgradeName: "plato", - Configs: []*UpgradeConfig{ - { - ContractAddr: ValidatorContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/0f352c4623898d92664a46cbfc26c52b79aad838", - Code: "60806040526004361061048d5760003560e01c806388b32f1111610255578063c81b166211610144578063e40716a1116100c1578063f92eb86b11610085578063f92eb86b14610bd7578063f9a2bbc714610bec578063fc3e590814610c01578063fccc281314610c16578063fd4ad81f14610c2b578063fd6a687914610c5a57610494565b8063e40716a114610b5a578063ea321e4914610b6f578063eb57e20214610b8f578063eda5868c14610baf578063f340fa0114610bc457610494565b8063d86222d511610108578063d86222d514610af1578063daacdb6614610b06578063dc927faf14610b1b578063e086c7b114610b30578063e1c7392a14610b4557610494565b8063c81b166214610a92578063c8509d81146108a0578063ce910b0c14610aa7578063d04aa99614610ac7578063d68fb56a14610adc57610494565b8063a78abc16116101d2578063aef198a911610196578063aef198a914610a31578063b7ab4db514610a46578063b8cf4ef114610a68578063bf9f499514610650578063c6d3394514610a7d57610494565b8063a78abc16146109b2578063aaf5eb68146109c7578063ab51bb96146109dc578063ac431751146109f1578063ad3c9da614610a1157610494565b80639dc09262116102195780639dc09262146109495780639fe0f8161461095e578063a0dc275814610973578063a1a11bf514610988578063a5422d5c1461099d57610494565b806388b32f11146108d55780638b5ad0c9146108ea5780638d19a410146108ff5780639369d7de1461091f57806396713da91461093457610494565b80635192c82c1161037c5780636e47b482116102f95780637942fd05116102bd5780637942fd05146108615780637a84ca2a1461087657806381650b621461088b578063831d65d1146108a0578063853230aa1461084c57806386249882146108c057610494565b80636e47b482146107f857806370fd5bad1461080d578063718a8aa81461082257806375d47a0a1461083757806378dfed4a1461084c57610494565b80635667515a116103405780635667515a146107675780635d77156c1461077c57806360eba4fe1461079157806362b72cf5146107b15780636969a25c146107c657610494565b80635192c82c146106e857806351e80672146106fd578063549b03f21461071257806355614fcc14610727578063565c56b31461074757610494565b80633365af3a1161040a57806343756e5c116103ce57806343756e5c1461067257806345cf9daf14610687578063493279b11461069c5780634bf6c882146106be5780634df6e0c3146106d357610494565b80633365af3a146105d857806335409f7f146105f85780633b071dcc146106185780633de0f0d81461063b5780633dffc3871461065057610494565b8063152ad3b811610451578063152ad3b81461054c5780631ff180691461056e578063219f22d514610583578063300c356714610598578063321d398a146105b857610494565b806304c4fec61461049957806307a56847146104b05780630bee7a67146104db5780630e2374a5146104fd5780631182b8751461051f57610494565b3661049457005b600080fd5b3480156104a557600080fd5b506104ae610c6f565b005b3480156104bc57600080fd5b506104c5610ce1565b6040516104d29190617594565b60405180910390f35b3480156104e757600080fd5b506104f0610ce7565b6040516104d291906175be565b34801561050957600080fd5b50610512610cec565b6040516104d2919061699b565b34801561052b57600080fd5b5061053f61053a366004616881565b610cf2565b6040516104d29190616b12565b34801561055857600080fd5b50610561610f2a565b6040516104d29190616b07565b34801561057a57600080fd5b506104c5610f33565b34801561058f57600080fd5b506104f0610f39565b3480156105a457600080fd5b506104ae6105b336600461670b565b610f3e565b3480156105c457600080fd5b506105616105d336600461682e565b6112c2565b3480156105e457600080fd5b506105616105f336600461682e565b611391565b34801561060457600080fd5b506104ae6106133660046166e4565b611442565b34801561062457600080fd5b5061062d61159b565b6040516104d2929190616a1d565b34801561064757600080fd5b506104c5611877565b34801561065c57600080fd5b5061066561187d565b6040516104d291906175cf565b34801561067e57600080fd5b50610512611882565b34801561069357600080fd5b506104c5611888565b3480156106a857600080fd5b506106b161188e565b6040516104d29190617585565b3480156106ca57600080fd5b50610665611893565b3480156106df57600080fd5b5061062d611898565b3480156106f457600080fd5b506104c5611a16565b34801561070957600080fd5b50610512611a1c565b34801561071e57600080fd5b506104c5611a22565b34801561073357600080fd5b506105616107423660046166e4565b611a28565b34801561075357600080fd5b506104c56107623660046166e4565b611a5d565b34801561077357600080fd5b50610665611aae565b34801561078857600080fd5b506104f0611ab3565b34801561079d57600080fd5b5061053f6107ac36600461682e565b611ab8565b3480156107bd57600080fd5b506104c5611b5e565b3480156107d257600080fd5b506107e66107e136600461682e565b611b64565b6040516104d2969594939291906169c8565b34801561080457600080fd5b50610512611bc8565b34801561081957600080fd5b50610665611bce565b34801561082e57600080fd5b50610665611bd3565b34801561084357600080fd5b50610512611bd8565b34801561085857600080fd5b506104c5611bde565b34801561086d57600080fd5b50610665611be4565b34801561088257600080fd5b506104c5611be9565b34801561089757600080fd5b506104f0611bef565b3480156108ac57600080fd5b506104ae6108bb366004616881565b611bf4565b3480156108cc57600080fd5b506104c5611c55565b3480156108e157600080fd5b506104c5611c5b565b3480156108f657600080fd5b506104c5611c61565b34801561090b57600080fd5b506104c561091a3660046166e4565b611c67565b34801561092b57600080fd5b506104ae611ca7565b34801561094057600080fd5b50610665611dbb565b34801561095557600080fd5b50610512611dc0565b34801561096a57600080fd5b506104c5611dc6565b34801561097f57600080fd5b506104c5611dcb565b34801561099457600080fd5b50610512611dd0565b3480156109a957600080fd5b5061053f611dd6565b3480156109be57600080fd5b50610561611df5565b3480156109d357600080fd5b506104c5611dfe565b3480156109e857600080fd5b506104f0611aae565b3480156109fd57600080fd5b506104ae610a0c3660046167d2565b611e07565b348015610a1d57600080fd5b506104c5610a2c3660046166e4565b6126b3565b348015610a3d57600080fd5b506104c56126c5565b348015610a5257600080fd5b50610a5b6126d2565b6040516104d29190616a0a565b348015610a7457600080fd5b506104c56127be565b348015610a8957600080fd5b506104c5611bce565b348015610a9e57600080fd5b506105126127c3565b348015610ab357600080fd5b5061053f610ac236600461682e565b6127c9565b348015610ad357600080fd5b506104c56127d6565b348015610ae857600080fd5b506104c56127db565b348015610afd57600080fd5b506104c561281a565b348015610b1257600080fd5b506104c5612826565b348015610b2757600080fd5b5061051261282c565b348015610b3c57600080fd5b506104c5612832565b348015610b5157600080fd5b506104ae612837565b348015610b6657600080fd5b506104c56129e6565b348015610b7b57600080fd5b50610561610b8a366004616793565b6129ec565b348015610b9b57600080fd5b506104ae610baa3660046166e4565b612b72565b348015610bbb57600080fd5b506104f0612c7a565b6104ae610bd23660046166e4565b612c7f565b348015610be357600080fd5b506104c5612f07565b348015610bf857600080fd5b50610512612f0d565b348015610c0d57600080fd5b50610665611dc6565b348015610c2257600080fd5b50610512612f13565b348015610c3757600080fd5b50610c4b610c4636600461682e565b612f19565b6040516104d29392919061759d565b348015610c6657600080fd5b50610512612fdb565b6000610c7a33611c67565b9050600b8181548110610c8957fe5b600091825260209091206001601690920201015460ff16610cc55760405162461bcd60e51b8152600401610cbc9061723d565b60405180910390fd5b6000610ccf6127db565b9050610cdc338383612fe1565b505050565b60095481565b606481565b61200181565b60005460609060ff16610d175760405162461bcd60e51b8152600401610cbc90616cd1565b3361200014610d385760405162461bcd60e51b8152600401610cbc9061741c565b600b54610df657610d476163d0565b60015460005b81811015610df257600b805460018101825560009190915283516000805160206176478339815191526016909202918201908155602080860151600080516020617c768339815191528401805460ff1916911515919091179055604086015180518794610dce936000805160206176678339815191529091019201906163ff565b506060820151610de49060038301906013616479565b505050806001019050610d4d565b5050505b610dfe6164a6565b6000610e3f85858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506131cd92505050565b9150915080610e5b57610e526064613389565b92505050610f23565b815160009060ff16610e8057610e79836020015184604001516133ea565b9050610eef565b825160ff1660011415610eeb57826020015151600114610ec557600080516020617627833981519152604051610eb590617124565b60405180910390a1506067610ee6565b610e798360200151600081518110610ed957fe5b602002602001015161403e565b610eef565b5060655b63ffffffff8116610f145750506040805160008152602081019091529150610f239050565b610f1d81613389565b93505050505b9392505050565b60075460ff1681565b60035481565b606881565b334114610f5d5760405162461bcd60e51b8152600401610cbc9061746b565b6010544311610f7e5760405162461bcd60e51b8152600401610cbc90616e2d565b60005460ff16610fa05760405162461bcd60e51b8152600401610cbc90616cd1565b600f54610fb8576032600f55611002316011556112b8565b60006110023168056bc75e2d63100000811115610fe757610fe081606463ffffffff6141b516565b9150611030565b60115481111561102957610fe0606461101d600f54611011601154866141f790919063ffffffff16565b9063ffffffff61423916565b9063ffffffff6141b516565b50506112b8565b6040516309a99b4f60e41b815261100290639a99b4f09061105790309086906004016169af565b602060405180830381600087803b15801561107157600080fd5b505af1158015611085573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110a99190616846565b611002316011559150816110be5750506112b8565b6000805b848110156110ec578585828181106110d657fe5b90506020020135820191508060010190506110c2565b50806110fa575050506112b8565b6000806000805b898110156112b0578489898381811061111657fe5b9050602002013588028161112657fe5b0493508a8a8281811061113557fe5b905060200201602081019061114a91906166e4565b6001600160a01b0381166000908152600460205260409020549093509150811561126657600060018084038154811061117f57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff16156111ec57836001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d85866040516111df9190617594565b60405180910390a2611260565b6003546111ff908663ffffffff61427316565b6003908155810154611217908663ffffffff61427316565b60038201556040516001600160a01b038516907fcb0aad6cf9cd03bdf6137e359f541c42f38b39f007cae8e89e88aa7d8c6617b290611257908890617594565b60405180910390a25b506112a8565b826001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d858560405161129f9190617594565b60405180910390a25b600101611101565b505050505050505b5050436010555050565b60015460009082106112d65750600061138c565b60006001600160a01b0316600183815481106112ee57fe5b60009182526020909120600490910201546001600160a01b0316148061131e5750600854158061131e5750600a54155b8061132d575060085460095410155b8061133e575061133c82611391565b155b8061136757506000600b838154811061135357fe5b906000526020600020906016020160000154115b8061137b575060016113776126d2565b5111155b156113885750600061138c565b5060015b919050565b60015460009082106113a55750600061138c565b600b5482106113e257600182815481106113bb57fe5b9060005260206000209060040201600201601c9054906101000a900460ff1615905061138c565b600182815481106113ef57fe5b9060005260206000209060040201600201601c9054906101000a900460ff1615801561143c5750600b828154811061142357fe5b600091825260209091206001601690920201015460ff16155b92915050565b33611001146114635760405162461bcd60e51b8152600401610cbc9061753c565b600b54611521576114726163d0565b60015460005b8181101561151d57600b805460018101825560009190915283516000805160206176478339815191526016909202918201908155602080860151600080516020617c768339815191528401805460ff19169115159190911790556040860151805187946114f9936000805160206176678339815191529091019201906163ff565b50606082015161150f9060038301906013616479565b505050806001019050611478565b5050505b6001600160a01b038116600090815260046020526040902054806115455750611598565b6001810390506000600b828154811061155a57fe5b600091825260209091206001601690920201015460ff16905061157d8383614298565b80156115865750805b15610cdc576009805460001901905550505b50565b60015460609081906000805b828110156115ee57600181815481106115bc57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166115e6576001909101905b6001016115a7565b5060608160405190808252806020026020018201604052801561161b578160200160208202803683370190505b50905060608260405190808252806020026020018201604052801561165457816020015b606081526020019060019003908161163f5790505b50600b54600094509091508414156117cf5760005b848110156117c9576001818154811061167e57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166117c157600181815481106116ae57fe5b600091825260209091206004909102015483516001600160a01b03909116908490869081106116d957fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600b818154811061170657fe5b600091825260209182902060026016909202018101805460408051601f60001961010060018616150201909316949094049182018590048502840185019052808352919290919083018282801561179e5780601f106117735761010080835404028352916020019161179e565b820191906000526020600020905b81548152906001019060200180831161178157829003601f168201915b50505050508285815181106117af57fe5b60209081029190910101526001909301925b600101611669565b5061186b565b60005b8481101561186957600181815481106117e757fe5b9060005260206000209060040201600201601c9054906101000a900460ff16611861576001818154811061181757fe5b600091825260209091206004909102015483516001600160a01b039091169084908690811061184257fe5b6001600160a01b03909216602092830291909101909101526001909301925b6001016117d2565b505b909450925050505b9091565b61271081565b600181565b61100181565b60085481565b603881565b600881565b600e54600c546060918291806118ac575060155b60606118b66126d2565b905060606118c38261464b565b9050828251116118da579094509250611873915050565b838383510310156118ec578282510393505b83156119225760c8430461190883838388880360008a8a6147b9565b6119208383838888038989038a8b8b8b5103016147b9565b505b60608360405190808252806020026020018201604052801561194e578160200160208202803683370190505b50905060608460405190808252806020026020018201604052801561198757816020015b60608152602001906001900390816119725790505b50905060005b85811015611a08578481815181106119a157fe5b60200260200101518382815181106119b557fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508381815181106119e157fe5b60200260200101518282815181106119f557fe5b602090810291909101015260010161198d565b509096509450505050509091565b60065481565b61200081565b600f5481565b6001600160a01b03811660009081526004602052604081205480611a5057600091505061138c565b60001901610f2381611391565b6001600160a01b03811660009081526004602052604081205480611a8557600091505061138c565b600180820381548110611a9457fe5b906000526020600020906004020160030154915050919050565b600081565b606781565b60128181548110611ac557fe5b600091825260209182902001805460408051601f6002600019610100600187161502019094169390930492830185900485028101850190915281815293509091830182828015611b565780601f10611b2b57610100808354040283529160200191611b56565b820191906000526020600020905b815481529060010190602001808311611b3957829003601f168201915b505050505081565b60105481565b60018181548110611b7157fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b601081565b61100881565b6103e881565b600b81565b600c5481565b606681565b3361200014611c155760405162461bcd60e51b8152600401610cbc9061741c565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051611c48939291906175dd565b60405180910390a1505050565b60025481565b60115481565b600a5481565b6001600160a01b03811660009081526004602052604081205480611c9d5760405162461bcd60e51b8152600401610cbc906173a4565b6000190192915050565b600b54611d6557611cb66163d0565b60015460005b81811015611d6157600b805460018101825560009190915283516000805160206176478339815191526016909202918201908155602080860151600080516020617c768339815191528401805460ff1916911515919091179055604086015180518794611d3d936000805160206176678339815191529091019201906163ff565b506060820151611d539060038301906013616479565b505050806001019050611cbc565b5050505b600854611d725760036008555b600a54611d7f576002600a555b6000611d8a33611c67565b9050611d95816112c2565b611db15760405162461bcd60e51b8152600401610cbc906170e1565b6115983382614910565b600981565b61100781565b600381565b60c881565b61100681565b6040518061062001604052806105ef81526020016176876105ef913981565b60005460ff1681565b6402540be40081565b60005460ff16611e295760405162461bcd60e51b8152600401610cbc90616cd1565b3361100714611e4a5760405162461bcd60e51b8152600401610cbc906171aa565b611eb484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b602082015291506149a89050565b15611f515760208114611ed95760405162461bcd60e51b8152600401610cbc9061735e565b604080516020601f8401819004810282018101909252828152600091611f1791858580838501838280828437600092019190915250614a0192505050565b905060648110158015611f2d5750620186a08111155b611f495760405162461bcd60e51b8152600401610cbc90616f8a565b600255612670565b611fb184848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260098152686275726e526174696f60b81b602082015291506149a89050565b1561204d5760208114611fd65760405162461bcd60e51b8152600401610cbc90616b57565b604080516020601f840181900481028201810190925282815260009161201491858580838501838280828437600092019190915250614a0192505050565b90506127108111156120385760405162461bcd60e51b8152600401610cbc90616e6f565b6006556007805460ff19166001179055612670565b6120b784848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260138152726d61784e756d4f664d61696e7461696e696e6760681b602082015291506149a89050565b1561215157602081146120dc5760405162461bcd60e51b8152600401610cbc90616b8e565b604080516020601f840181900481028201810190925282815260009161211a91858580838501838280828437600092019190915250614a0192505050565b600c5490915080612129575060155b8082106121485760405162461bcd60e51b8152600401610cbc90616ee2565b50600855612670565b6121ba84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61696e7461696e536c6173685363616c6560701b602082015291506149a89050565b1561225357602081146121df5760405162461bcd60e51b8152600401610cbc90616c57565b604080516020601f840181900481028201810190925282815260009161221d91858580838501838280828437600092019190915250614a0192505050565b905060008111801561222f5750600a81105b61224b5760405162461bcd60e51b8152600401610cbc906174b8565b600a55612670565b6122c784848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601981527f6d61784e756d4f66576f726b696e6743616e6469646174657300000000000000602082015291506149a89050565b1561235657602081146122ec5760405162461bcd60e51b8152600401610cbc90616c0b565b604080516020601f840181900481028201810190925282815260009161232a91858580838501838280828437600092019190915250614a0192505050565b9050600d5481111561234e5760405162461bcd60e51b8152600401610cbc90617000565b600e55612670565b6123bf84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61784e756d4f6643616e6469646174657360701b602082015291506149a89050565b1561244157602081146123e45760405162461bcd60e51b8152600401610cbc906171f8565b604080516020601f840181900481028201810190925282815260009161242291858580838501838280828437600092019190915250614a0192505050565b600d819055600e5490915081101561243b57600d54600e555b50612670565b6124a584848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c6e756d4f66436162696e65747360981b602082015291506149a89050565b1561255357602081146124ca5760405162461bcd60e51b8152600401610cbc90616c9c565b604080516020601f840181900481028201810190925282815260009161250891858580838501838280828437600092019190915250614a0192505050565b90506000811161252a5760405162461bcd60e51b8152600401610cbc90616d3f565b602981111561254b5760405162461bcd60e51b8152600401610cbc90616d87565b600c55612670565b6125bd84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601381527266696e616c697479526577617264526174696f60681b602082015291506149a89050565b1561265857602081146125e25760405162461bcd60e51b8152600401610cbc906172e1565b604080516020601f840181900481028201810190925282815260009161262091858580838501838280828437600092019190915250614a0192505050565b905060018110158015612634575060648111155b6126505760405162461bcd60e51b8152600401610cbc9061706f565b600f55612670565b60405162461bcd60e51b8152600401610cbc90617515565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040516126a59493929190616b25565b60405180910390a150505050565b60046020526000908152604090205481565b68056bc75e2d6310000081565b6001546060906000805b82811015612701576126ed81611391565b156126f9578160010191505b6001016126dc565b5060608160405190808252806020026020018201604052801561272e578160200160208202803683370190505b5090506000915060005b838110156127b55761274981611391565b156127ad576001818154811061275b57fe5b600091825260209091206004909102015482516001600160a01b039091169083908590811061278657fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508260010192505b600101612738565b50925050505b90565b601581565b61100281565b60138181548110611ac557fe5b603281565b60006127e56126d2565b519050600080600c54116127fa5760156127fe565b600c545b90508082111561280c578091505b8161281657600191505b5090565b67016345785d8a000081565b60055481565b61100381565b602981565b60005460ff161561285a5760405162461bcd60e51b8152600401610cbc906172aa565b6128626164a6565b60006128886040518061062001604052806105ef81526020016176876105ef91396131cd565b91509150806128a95760405162461bcd60e51b8152600401610cbc906173db565b60005b8260200151518110156129ce576001836020015182815181106128cb57fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a0909301516003909301929092559186015180519185019391859081106129a157fe5b602090810291909101810151516001600160a01b03168252810191909152604001600020556001016128ac565b50506103e8600255506000805460ff19166001179055565b600d5481565b601354600090815b81811015612af557612add85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050601380549092508591508110612a4557fe5b600091825260209182902001805460408051601f6002600019610100600187161502019094169390930492830185900485028101850190915281815292830182828015612ad35780601f10612aa857610100808354040283529160200191612ad3565b820191906000526020600020905b815481529060010190602001808311612ab657829003601f168201915b5050505050614a06565b15612aed5760019250505061143c565b6001016129f4565b5060125460005b81811015612b6657612b4d86868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050601280549092508591508110612a4557fe5b15612b5e576001935050505061143c565b600101612afc565b50600095945050505050565b3361100114612b935760405162461bcd60e51b8152600401610cbc9061753c565b600b54612c5157612ba26163d0565b60015460005b81811015612c4d57600b805460018101825560009190915283516000805160206176478339815191526016909202918201908155602080860151600080516020617c768339815191528401805460ff1916911515919091179055604086015180518794612c29936000805160206176678339815191529091019201906163ff565b506060820151612c3f9060038301906013616479565b505050806001019050612ba8565b5050505b6000612c5c82614a6a565b9050612c67816112c2565b15612c7657612c768282614910565b5050565b606581565b334114612c9e5760405162461bcd60e51b8152600401610cbc9061746b565b60005460ff16612cc05760405162461bcd60e51b8152600401610cbc90616cd1565b60003411612ce05760405162461bcd60e51b8152600401610cbc90616fd1565b6001600160a01b0381166000908152600460205260409020546007543491906103e89060ff1615612d1057506006545b600083118015612d205750600081115b15612dc1576000612d3d61271061101d868563ffffffff61423916565b90508015612dbf5760405161dead9082156108fc029083906000818181858888f19350505050158015612d74573d6000803e3d6000fd5b507f627059660ea01c4733a328effb2294d2f86905bf806da763a89cee254de8bee581604051612da49190617594565b60405180910390a1612dbc848263ffffffff6141f716565b93505b505b8115612ebf576000600180840381548110612dd857fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff1615612e4557846001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b485604051612e389190617594565b60405180910390a2612eb9565b600354612e58908563ffffffff61427316565b6003908155810154612e70908563ffffffff61427316565b60038201556040516001600160a01b038616907f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc05590612eb0908790617594565b60405180910390a25b50612f01565b836001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b484604051612ef89190617594565b60405180910390a25b50505050565b600e5481565b61100081565b61dead81565b600b8181548110612f2657fe5b6000918252602091829020601691909102018054600180830154600280850180546040805161010096831615969096026000190190911692909204601f810188900488028501880190925281845293965060ff90911694919291830182828015612fd15780601f10612fa657610100808354040283529160200191612fd1565b820191906000526020600020905b815481529060010190602001808311612fb457829003601f168201915b5050505050905083565b61100481565b6000600a5460001480612ff2575081155b80612ffd5750600954155b1561300a57506000610f23565b60096000815460019003919050819055506000613055600a5461101d8561101d600b898154811061303757fe5b6000918252602090912060169091020154439063ffffffff6141f716565b90506000600b858154811061306657fe5b906000526020600020906016020160010160006101000a81548160ff0219169083151502179055506000806110016001600160a01b0316638256ace66040518163ffffffff1660e01b8152600401604080518083038186803b1580156130cb57600080fd5b505afa1580156130df573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613103919061685e565b915091506000935080831061317d5761311c8787614298565b506040516305bfb49960e41b815261100190635bfb499090613142908a9060040161699b565b600060405180830381600087803b15801561315c57600080fd5b505af1158015613170573d6000803e3d6000fd5b505050506001935061318f565b81831061318f5761318d87614a6a565b505b6040516001600160a01b038816907fb9d38178dc641ff1817967a63c9078cbcd955a9f1fcd75e0e3636de615d44d3b90600090a25050509392505050565b6131d56164a6565b60006131df6164a6565b6131e76164ca565b6131f86131f386614c0d565b614c32565b90506000805b61320783614c7c565b1561337b578061322c5761322261321d84614c9d565b614ceb565b60ff168452613373565b806001141561336e57606061324861324385614c9d565b614d6b565b9050805160405190808252806020026020018201604052801561328557816020015b6132726164ea565b81526020019060019003908161326a5790505b50856020018190525080516040519080825280602002602001820160405280156132c357816020015b60608152602001906001900390816132ae5790505b50604086015260005b8151811015613363576132dd6164ea565b606060006132fd8585815181106132f057fe5b6020026020010151614e3c565b9250925092508061331d578860009a509a50505050505050505050613384565b828960200151858151811061332e57fe5b6020026020010181905250818960400151858151811061334a57fe5b60200260200101819052505050508060010190506132cc565b506001925050613373565b61337b565b6001016131fe565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b60608152602001906001900390816133a35790505090506133c98363ffffffff16614f56565b816000815181106133d657fe5b6020026020010181905250610f2381614f69565b60006029835111156134215760008051602061762783398151915260405161341190616de4565b60405180910390a150606661143c565b60005b83518110156134bf5760005b818110156134b65784818151811061344457fe5b6020026020010151600001516001600160a01b031685838151811061346557fe5b6020026020010151600001516001600160a01b031614156134ae5760008051602061762783398151915260405161349b90616f3f565b60405180910390a160669250505061143c565b600101613430565b50600101613424565b506060806134cd8585614ff3565b60015491935091506000908190815b818110156135525767016345785d8a0000600182815481106134fa57fe5b9060005260206000209060040201600301541061351c5783600101935061354a565b60006001828154811061352b57fe5b906000526020600020906004020160030154111561354a578260010192505b6001016134dc565b5060608360405190808252806020026020018201604052801561357f578160200160208202803683370190505b5090506060846040519080825280602002602001820160405280156135ae578160200160208202803683370190505b5090506060856040519080825280602002602001820160405280156135dd578160200160208202803683370190505b50905060608660405190808252806020026020018201604052801561360c578160200160208202803683370190505b509050600060608760405190808252806020026020018201604052801561363d578160200160208202803683370190505b50905060608860405190808252806020026020018201604052801561366c578160200160208202803683370190505b509050600099506000985060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b1580156136b457600080fd5b505afa1580156136c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136ec9190616846565b905067016345785d8a00008111156137375760008051602061762783398151915260405161371990617269565b60405180910390a160689d505050505050505050505050505061143c565b60005b898110156139a85767016345785d8a00006001828154811061375857fe5b906000526020600020906004020160030154106138dd576001818154811061377c57fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316898d815181106137ad57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be400600183815481106137e257fe5b906000526020600020906004020160030154816137fb57fe5b066001838154811061380957fe5b90600052602060002090600402016003015403905061383183826141f790919063ffffffff16565b898e8151811061383d57fe5b6020026020010181815250506001828154811061385657fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316878e8151811061388757fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081888e815181106138b457fe5b60209081029190910101526138cf868263ffffffff61427316565b95508c6001019c50506139a0565b6000600182815481106138ec57fe5b90600052602060002090600402016003015411156139a0576001818154811061391157fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316848c8151811061394257fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506001818154811061396f57fe5b906000526020600020906004020160030154838c8151811061398d57fe5b6020026020010181815250508a6001019a505b60010161373a565b5060008415613c1e576002546040516303702b2960e51b815261100491636e0565209188916139e2918e918e918d91420190600401616a8d565b6020604051808303818588803b1580156139fb57600080fd5b505af193505050508015613a2c575060408051601f3d908101601f19168201909252613a2991810190616773565b60015b613ba3576040516000815260443d1015613a4857506000613ae3565b60046000803e60005160e01c6308c379a08114613a69576000915050613ae3565b60043d036004833e81513d60248201116001600160401b0382111715613a9457600092505050613ae3565b80830180516001600160401b03811115613ab5576000945050505050613ae3565b8060208301013d8601811115613ad357600095505050505050613ae3565b601f01601f191660405250925050505b80613aee5750613b30565b60019150857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf28082604051613b229190616b12565b60405180910390a250613b9e565b3d808015613b5a576040519150601f19603f3d011682016040523d82523d6000602084013e613b5f565b606091505b5060019150857fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a4582604051613b949190616b12565b60405180910390a2505b613c1e565b8015613be5577fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b7086604051613bd89190617594565b60405180910390a1613c1c565b857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280604051613c1390616bd4565b60405180910390a25b505b8015613dd45760005b8751811015613dd2576000888281518110613c3e57fe5b60200260200101519050600060018281548110613c5757fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc9185908110613c8857fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f1935050505090508015613d445760018281548110613cc957fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d9185908110613d1857fe5b906000526020600020906004020160030154604051613d379190617594565b60405180910390a2613dc8565b60018281548110613d5157fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d9185908110613da057fe5b906000526020600020906004020160030154604051613dbf9190617594565b60405180910390a25b5050600101613c27565b505b835115613f1e5760005b8451811015613f1c576000858281518110613df557fe5b60200260200101516001600160a01b03166108fc868481518110613e1557fe5b60200260200101519081150290604051600060405180830381858888f1935050505090508015613eab57858281518110613e4b57fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d868481518110613e8957fe5b6020026020010151604051613e9e9190617594565b60405180910390a2613f13565b858281518110613eb757fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d868481518110613ef557fe5b6020026020010151604051613f0a9190617594565b60405180910390a25b50600101613dde565b505b5050505050505050505050506000471115613f9a577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d47604051613f629190617594565b60405180910390a1604051611002904780156108fc02916000818181858888f19350505050158015613f98573d6000803e3d6000fd5b505b60006003819055600555815115613fb557613fb5828261522c565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015613ff257600080fd5b505af1158015614006573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a1506000949350505050565b80516001600160a01b031660009081526004602052604081205480158061408f575060018082038154811061406f57fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b156140d55782516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a2600091505061138c565b60015460055460001982011180159061412b5784516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a26000935050505061138c565b60058054600190810190915580548190600019860190811061414957fe5b6000918252602082206002600490920201018054921515600160e01b0260ff60e01b199093169290921790915585516040516001600160a01b03909116917ff226e7d8f547ff903d9d419cf5f54e0d7d07efa9584135a53a057c5f1f27f49a91a2506000949350505050565b6000610f2383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506159e6565b6000610f2383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250615a1d565b6000826142485750600061143c565b8282028284828161425557fe5b0414610f235760405162461bcd60e51b8152600401610cbc90617169565b600082820183811015610f235760405162461bcd60e51b8152600401610cbc90616d08565b600080600183815481106142a857fe5b906000526020600020906004020160030154905060006001808054905003905060016142d26126d2565b5111614307576000600185815481106142e757fe5b90600052602060002090600402016003018190555060009250505061143c565b846001600160a01b03167f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a70836040516143409190617594565b60405180910390a26001600160a01b038516600090815260046020526040812055835b6001546000190181101561452d576001816001018154811061438157fe5b90600052602060002090600402016001828154811061439c57fe5b60009182526020909120825460049092020180546001600160a01b03199081166001600160a01b0393841617825560018085015481840180548416918616919091179055600280860180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b19909416939093179055600392830154920191909155600b80549091830190811061445d57fe5b9060005260206000209060160201600b828154811061447857fe5b600091825260209091208254601690920201908155600180830154818301805460ff909216151560ff19909216919091179055600280840180546144cf93838601939082161561010002600019019091160461651f565b506144e260038281019084016013616594565b509050508060010160046000600184815481106144fb57fe5b600091825260208083206004909202909101546001600160a01b03168352820192909252604001902055600101614363565b50600180548061453957fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b80548061458c57fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906145be60028301826165be565b6145cc600383016000616602565b5050905560008183816145db57fe5b049050801561463f5760015460005b8181101561463c57826001828154811061460057fe5b906000526020600020906004020160030154016001828154811061462057fe5b60009182526020909120600360049092020101556001016145ea565b50505b50600195945050505050565b60015481516040805182815260208084028201019091526060929190839082801561468a57816020015b60608152602001906001900390816146755790505b50600b5490915083146146a157925061138c915050565b60005b828110156147b057600b6001600460008985815181106146c057fe5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205403815481106146f457fe5b600091825260209182902060026016909202018101805460408051601f60001961010060018616150201909316949094049182018590048502840185019052808352919290919083018282801561478c5780601f106147615761010080835404028352916020019161478c565b820191906000526020600020905b81548152906001019060200180831161476f57829003601f168201915b505050505082828151811061479d57fe5b60209081029190910101526001016146a4565b50949350505050565b60005b8281101561490657600082878388016040516020016147dc92919061698d565b6040516020818303038152906040528051906020012060001c816147fc57fe5b069050808501828701146148fd576000898388018151811061481a57fe5b602002602001015190506060898489018151811061483457fe5b602002602001015190508a8388018151811061484c57fe5b60200260200101518b858a018151811061486257fe5b60200260200101906001600160a01b031690816001600160a01b031681525050818b8489018151811061489157fe5b60200260200101906001600160a01b031690816001600160a01b03168152505089838801815181106148bf57fe5b60200260200101518a858a01815181106148d557fe5b6020026020010181905250808a848901815181106148ef57fe5b602002602001018190525050505b506001016147bc565b5050505050505050565b600980546001908101909155600b80548390811061492a57fe5b906000526020600020906016020160010160006101000a81548160ff02191690831515021790555043600b828154811061496057fe5b600091825260208220601690910201919091556040516001600160a01b038416917ff62981a567ec3cec866c6fa93c55bcdf841d6292d18b8d522ececa769375d82d91a25050565b6000816040516020016149bb9190616971565b60405160208183030381529060405280519060200120836040516020016149e29190616971565b6040516020818303038152906040528051906020012014905092915050565b015190565b815181516000916001918114808314614a225760009250614a60565b600160208701838101602088015b600284838510011415614a5b578051835114614a4f5760009650600093505b60209283019201614a30565b505050505b5090949350505050565b6001600160a01b03811660009081526004602052604081205480614a935750600019905061138c565b600181039050600060018281548110614aa857fe5b9060005260206000209060040201600301549050600060018381548110614acb57fe5b6000918252602090912060036004909202010155600154604051600019909101906001600160a01b038616907f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d90614b24908590617594565b60405180910390a280614b3c5782935050505061138c565b6000818381614b4757fe5b0490508015614c035760005b84811015614ba5578160018281548110614b6957fe5b9060005260206000209060040201600301540160018281548110614b8957fe5b6000918252602090912060036004909202010155600101614b53565b50600180549085015b81811015614c00578260018281548110614bc457fe5b9060005260206000209060040201600301540160018281548110614be457fe5b6000918252602090912060036004909202010155600101614bae565b50505b5091949350505050565b614c15616611565b506040805180820190915281518152602082810190820152919050565b614c3a6164ca565b614c4382615a49565b614c4c57600080fd5b6000614c5b8360200151615a83565b60208085015160408051808201909152868152920190820152915050919050565b6000614c86616611565b505080518051602091820151919092015191011190565b614ca5616611565b614cae82614c7c565b614cb757600080fd5b60208201516000614cc782615ae6565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590614d0057508151602110155b614d0957600080fd5b6000614d188360200151615a83565b90508083600001511015614d3e5760405162461bcd60e51b8152600401610cbc90617327565b8251602080850151830180519284900392918310156147b057506020919091036101000a90049392505050565b6060614d7682615a49565b614d7f57600080fd5b6000614d8a83615bc7565b9050606081604051908082528060200260200182016040528015614dc857816020015b614db5616611565b815260200190600190039081614dad5790505b5090506000614dda8560200151615a83565b60208601510190506000805b84811015614e3157614df783615ae6565b9150604051806040016040528083815260200184815250848281518110614e1a57fe5b602090810291909101015291810191600101614de6565b509195945050505050565b614e446164ea565b60606000614e506164ea565b6060614e5a6164ca565b614e6387614c32565b90506000805b614e7283614c7c565b15614f475780614e9d57614e8d614e8884614c9d565b615c23565b6001600160a01b03168552614f3f565b8060011415614ec557614eb2614e8884614c9d565b6001600160a01b03166020860152614f3f565b8060021415614eed57614eda614e8884614c9d565b6001600160a01b03166040860152614f3f565b8060031415614f1957614f0261321d84614c9d565b6001600160401b0316606086015260019150614f3f565b8060041415614f3a57614f33614f2e84614c9d565b615c3d565b9350614f3f565b614f47565b600101614e69565b50929791965091945092505050565b606061143c614f6483615cad565b615d93565b6060815160001415614f8a575060408051600081526020810190915261138c565b606082600081518110614f9957fe5b602002602001015190506000600190505b8351811015614fda57614fd082858381518110614fc357fe5b6020026020010151615de5565b9150600101614faa565b50610f23614fed825160c060ff16615e62565b82615de5565b6060806000808080806150046127db565b6001549091505b801561511257600181039250600b838154811061502457fe5b600091825260209091206001601690920201015460ff1661504457615109565b6001838154811061505157fe5b60009182526020909120600490910201546001600160a01b03169450615078858484612fe1565b935083158061508b575060018a51038610155b1561509557615109565b60005b8a5181101561510757856001600160a01b03168b82815181106150b757fe5b6020026020010151600001516001600160a01b031614156150ff5760018b82815181106150e057fe5b6020908102919091010151901515608090910152600190960195615107565b600101615098565b505b6000190161500b565b508489510360405190808252806020026020018201604052801561515057816020015b61513d6164ea565b8152602001906001900390816151355790505b5096508489510360405190808252806020026020018201604052801561518a57816020015b60608152602001906001900390816151755790505b5095506000915060005b895181101561521e578981815181106151a957fe5b602002602001015160800151615216578981815181106151c557fe5b60200260200101518884815181106151d957fe5b60200260200101819052508881815181106151f057fe5b602002602001015187848151811061520457fe5b60200260200101819052508260010192505b600101615194565b5050505050505b9250929050565b600154825160005b828110156153495760016152466164ea565b6001838154811061525357fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b8481101561531d578781815181106152e357fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b03161415615315576000925061531d565b6001016152cf565b50811561533f5780516001600160a01b03166000908152600460205260408120555b5050600101615234565b508082111561540857805b8281101561540657600180548061536757fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b8054806153ba57fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906153ec60028301826165be565b6153fa600383016000616602565b50509055600101615354565b505b60008183106154175781615419565b825b905060005b81811015615788576154cb86828151811061543557fe5b60200260200101516001838154811061544a57fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a0820152615f34565b61567f5780600101600460008884815181106154e357fe5b6020026020010151600001516001600160a01b03166001600160a01b031681526020019081526020016000208190555085818151811061551f57fe5b60200260200101516001828154811061553457fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a09091015160039091015584518590829081106155ef57fe5b6020026020010151600b828154811061560457fe5b906000526020600020906016020160020190805190602001906156289291906163ff565b506000600b828154811061563857fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b80548390811061566957fe5b6000918252602090912060169091020155615780565b61571085828151811061568e57fe5b6020026020010151600b83815481106156a357fe5b600091825260209182902060026016909202018101805460408051601f600019610100600186161502019093169490940491820185900485028401850190528083529192909190830182828015612ad35780601f10612aa857610100808354040283529160200191612ad3565b61575b5784818151811061572057fe5b6020026020010151600b828154811061573557fe5b906000526020600020906016020160020190805190602001906157599291906163ff565b505b60006001828154811061576a57fe5b9060005260206000209060040201600301819055505b60010161541e565b5082821115615960576157996163d0565b835b8381101561595d578581815181106157af57fe5b6020026020010151826040018190525060018782815181106157cd57fe5b6020908102919091018101518254600181810185556000948552838520835160049093020180546001600160a01b039384166001600160a01b0319918216178255848601518284018054918616918316919091179055604080860151600284018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909a1692909616919091179290921696909617169190911790935560a090930151600390930192909255600b8054928301815590935284516016909102600080516020617647833981519152810191825585830151600080516020617c768339815191528201805491151560ff199092169190911790559285015180518694929361590393600080516020617667833981519152019201906163ff565b5060608201516159199060038301906013616479565b505050806001016004600089848151811061593057fe5b602090810291909101810151516001600160a01b031682528101919091526040016000205560010161579b565b50505b615968615fb5565b615970616197565b6000600981905560015493505b838110156159de576000600b828154811061599457fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b8054839081106159c557fe5b600091825260209091206016909102015560010161597d565b505050505050565b60008183615a075760405162461bcd60e51b8152600401610cbc9190616b12565b506000838581615a1357fe5b0495945050505050565b60008184841115615a415760405162461bcd60e51b8152600401610cbc9190616b12565b505050900390565b8051600090615a5a5750600061138c565b6020820151805160001a9060c0821015615a795760009250505061138c565b5060019392505050565b8051600090811a6080811015615a9d57600091505061138c565b60b8811080615ab8575060c08110801590615ab8575060f881105b15615ac757600191505061138c565b60c0811015615adb5760b51901905061138c565b60f51901905061138c565b80516000908190811a6080811015615b015760019150615bc0565b60b8811015615b1657607e1981019150615bc0565b60c0811015615b6757600060b78203600186019550806020036101000a865104915060018101820193505080831015615b615760405162461bcd60e51b8152600401610cbc906170b6565b50615bc0565b60f8811015615b7c5760be1981019150615bc0565b600060f78203600186019550806020036101000a865104915060018101820193505080831015615bbe5760405162461bcd60e51b8152600401610cbc906170b6565b505b5092915050565b8051600090615bd85750600061138c565b60008090506000615bec8460200151615a83565b602085015185519181019250015b80821015615c1a57615c0b82615ae6565b82019150826001019250615bfa565b50909392505050565b8051600090601514615c3457600080fd5b61143c82614ceb565b8051606090615c4b57600080fd5b6000615c5a8360200151615a83565b83516040805191839003808352601f19601f8201168301602001909152919250606090828015615c91576020820181803683370190505b50905060008160200190506147b0848760200151018285616385565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416615cf157506018615d15565b6fffffffffffffffffffffffffffffffff198416615d1157506010615d15565b5060005b6020811015615d4b57818181518110615d2a57fe5b01602001516001600160f81b03191615615d4357615d4b565b600101615d15565b60008160200390506060816040519080825280601f01601f191660200182016040528015615d80576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015615dc55750607f60f81b82600081518110615db357fe5b01602001516001600160f81b03191611155b15615dd157508061138c565b61143c615de38351608060ff16615e62565b835b6060806040519050835180825260208201818101602087015b81831015615e16578051835260209283019201615dfe565b50855184518101855292509050808201602086015b81831015615e43578051835260209283019201615e2b565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310615e8c5760405162461bcd60e51b8152600401610cbc90616eba565b60408051600180825281830190925260609160208201818036833701905050905060378411615ee65782840160f81b81600081518110615ec857fe5b60200101906001600160f81b031916908160001a905350905061143c565b6060615ef185615cad565b90508381510160370160f81b82600081518110615f0a57fe5b60200101906001600160f81b031916908160001a905350615f2b8282615de5565b95945050505050565b805182516000916001600160a01b039182169116148015615f6e575081602001516001600160a01b031683602001516001600160a01b0316145b8015615f93575081604001516001600160a01b031683604001516001600160a01b0316145b8015610f235750506060908101519101516001600160401b0390811691161490565b6012546013548082111561600057805b82811015615ffe576012805480615fd857fe5b600190038181906000526020600020016000615ff491906165be565b9055600101615fc5565b505b600081831061600f5781616011565b825b905060005b81811015616129576160ce6012828154811061602e57fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156160bc5780601f10616091576101008083540402835291602001916160bc565b820191906000526020600020905b81548152906001019060200180831161609f57829003601f168201915b505050505060138381548110612a4557fe5b61612157601381815481106160df57fe5b90600052602060002001601282815481106160f657fe5b90600052602060002001908054600181600116156101000203166002900461611f92919061651f565b505b600101616016565b5082821115610cdc57825b82811015612f015760126013828154811061614b57fe5b600091825260208083208454600181810187559585529190932092909101805461618e94939092019290916002610100928216159290920260001901160461651f565b50600101616134565b601354600b54808211156161e257805b828110156161e05760138054806161ba57fe5b6001900381819060005260206000200160006161d691906165be565b90556001016161a7565b505b60008183106161f157816161f3565b825b905060005b81811015616312576162b06013828154811061621057fe5b600091825260209182902001805460408051601f600260001961010060018716150201909416939093049283018590048502810185019091528181529283018282801561629e5780601f106162735761010080835404028352916020019161629e565b820191906000526020600020905b81548152906001019060200180831161628157829003601f168201915b5050505050600b83815481106156a357fe5b61630a57600b81815481106162c157fe5b9060005260206000209060160201600201601382815481106162df57fe5b90600052602060002001908054600181600116156101000203166002900461630892919061651f565b505b6001016161f8565b5082821115610cdc57825b82811015612f01576013600b828154811061633457fe5b60009182526020808320845460018082018755958552919093206016929092029092016002908101805461637c9593909401939092600019908216156101000201160461651f565b5060010161631d565b8061638f57610cdc565b5b602081106163af578251825260209283019290910190601f1901616390565b915181516020939093036101000a6000190180199091169216919091179052565b604051806080016040528060008152602001600015158152602001606081526020016163fa61662b565b905290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061644057805160ff191683800117855561646d565b8280016001018555821561646d579182015b8281111561646d578251825591602001919060010190616452565b5061281692915061664a565b826013810192821561646d579160200282018281111561646d578251825591602001919060010190616452565b6040518060600160405280600060ff16815260200160608152602001606081525090565b60405180604001604052806164dd616611565b8152602001600081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10616558578054855561646d565b8280016001018555821561646d57600052602060002091601f016020900482015b8281111561646d578254825591600101919060010190616579565b826013810192821561646d579182018281111561646d578254825591600101919060010190616579565b50805460018160011615610100020316600290046000825580601f106165e45750611598565b601f016020900490600052602060002090810190611598919061664a565b5061159890601381019061664a565b604051806040016040528060008152602001600081525090565b6040518061026001604052806013906020820280368337509192915050565b6127bb91905b808211156128165760008155600101616650565b60008083601f840112616675578182fd5b5081356001600160401b0381111561668b578182fd5b602083019150836020808302850101111561522557600080fd5b60008083601f8401126166b6578182fd5b5081356001600160401b038111156166cc578182fd5b60208301915083602082850101111561522557600080fd5b6000602082840312156166f5578081fd5b81356001600160a01b0381168114610f23578182fd5b60008060008060408587031215616720578283fd5b84356001600160401b0380821115616736578485fd5b61674288838901616664565b9096509450602087013591508082111561675a578384fd5b5061676787828801616664565b95989497509550505050565b600060208284031215616784578081fd5b81518015158114610f23578182fd5b600080602083850312156167a5578182fd5b82356001600160401b038111156167ba578283fd5b6167c6858286016166a5565b90969095509350505050565b600080600080604085870312156167e7578384fd5b84356001600160401b03808211156167fd578586fd5b616809888389016166a5565b90965094506020870135915080821115616821578384fd5b50616767878288016166a5565b60006020828403121561683f578081fd5b5035919050565b600060208284031215616857578081fd5b5051919050565b60008060408385031215616870578182fd5b505080516020909101519092909150565b600080600060408486031215616895578283fd5b833560ff811681146168a5578384fd5b925060208401356001600160401b038111156168bf578283fd5b6168cb868287016166a5565b9497909650939450505050565b6000815180845260208085019450808401835b838110156169105781516001600160a01b0316875295820195908201906001016168eb565b509495945050505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b6000815180845261695d8160208601602086016175fa565b601f01601f19169290920160200192915050565b600082516169838184602087016175fa565b9190910192915050565b918252602082015260400190565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b03968716815294861660208601529290941660408401526001600160401b03166060830152911515608082015260a081019190915260c00190565b600060208252610f2360208301846168d8565b600060408252616a3060408301856168d8565b602083820381850152818551808452828401915082838202850101838801865b83811015616a7e57601f19878403018552616a6c838351616945565b94860194925090850190600101616a50565b50909998505050505050505050565b600060808252616aa060808301876168d8565b828103602084810191909152865180835287820192820190845b81811015616ad657845183529383019391830191600101616aba565b50508481036040860152616aea81886168d8565b93505050506001600160401b038316606083015295945050505050565b901515815260200190565b600060208252610f236020830184616945565b600060408252616b3960408301868861691b565b8281036020840152616b4c81858761691b565b979650505050505050565b6020808252601c908201527f6c656e677468206f66206275726e526174696f206d69736d6174636800000000604082015260600190565b60208082526026908201527f6c656e677468206f66206d61784e756d4f664d61696e7461696e696e67206d696040820152650e6dac2e8c6d60d31b606082015260800190565b6020808252601b908201527f6261746368207472616e736665722072657475726e2066616c73650000000000604082015260600190565b6020808252602c908201527f6c656e677468206f66206d61784e756d4f66576f726b696e6743616e6469646160408201526b0e8cae640dad2e6dac2e8c6d60a31b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61696e7461696e536c6173685363616c65206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252818101527f6c656e677468206f66206e756d4f66436162696e657473206d69736d61746368604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526028908201527f746865206e756d4f66436162696e657473206d75737420626520677265617465604082015267072207468616e20360c41b606082015260800190565b60208082526039908201527f746865206e756d4f66436162696e657473206d757374206265206c657373207460408201527f68616e204d41585f4e554d5f4f465f56414c494441544f525300000000000000606082015260800190565b60208082526029908201527f746865206e756d626572206f662076616c696461746f727320657863656564206040820152681d1a19481b1a5b5a5d60ba1b606082015260800190565b60208082526022908201527f63616e206e6f7420646f207468697320747769636520696e206f6e6520626c6f604082015261636b60f01b606082015260800190565b6020808252602b908201527f746865206275726e526174696f206d757374206265206e6f206772656174657260408201526a0207468616e2031303030360ac1b606082015260800190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526037908201527f746865206d61784e756d4f664d61696e7461696e696e67206d7573742062652060408201527f6c657373207468616e206e756d4f66436162696e657473000000000000000000606082015260800190565b6020808252602b908201527f6475706c696361746520636f6e73656e7375732061646472657373206f66207660408201526a185b1a59185d1bdc94d95d60aa1b606082015260800190565b60208082526027908201527f7468652065787069726554696d655365636f6e64476170206973206f7574206f604082015266662072616e676560c81b606082015260800190565b6020808252601590820152746465706f7369742076616c7565206973207a65726f60581b604082015260600190565b60208082526049908201527f746865206d61784e756d4f66576f726b696e6743616e64696461746573206d7560408201527f7374206265206e6f742067726561746572207468616e206d61784e756d4f6643606082015268616e6469646174657360b81b608082015260a00190565b60208082526027908201527f7468652066696e616c697479526577617264526174696f206973206f7574206f604082015266662072616e676560c81b606082015260800190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b60208082526023908201527f63616e206e6f7420656e7465722054656d706f72617279204d61696e74656e616040820152626e636560e81b606082015260800190565b60208082526025908201527f6c656e677468206f66206a61696c2076616c696461746f7273206d757374206260408201526465206f6e6560d81b606082015260800190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61784e756d4f6643616e64696461746573206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252601290820152716e6f7420696e206d61696e74656e616e636560701b604082015260600190565b60208082526021908201527f666565206973206c6172676572207468616e2044555354595f494e434f4d494e6040820152604760f81b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b60208082526026908201527f6c656e677468206f662066696e616c697479526577617264526174696f206d696040820152650e6dac2e8c6d60d31b606082015260800190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526026908201527f6c656e677468206f662065787069726554696d655365636f6e64476170206d696040820152650e6dac2e8c6d60d31b606082015260800190565b60208082526017908201527f6f6e6c792063757272656e742076616c696461746f7273000000000000000000604082015260600190565b60208082526021908201527f6661696c656420746f20706172736520696e69742076616c696461746f7253656040820152601d60fa1b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b6020808252603e908201527f746865206d61696e7461696e536c6173685363616c65206d757374206265206760408201527f726561746572207468616e203020616e64206c657373207468616e2031300000606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b60208082526029908201527f746865206d6573736167652073656e646572206d75737420626520736c6173686040820152680818dbdb9d1c9858dd60ba1b606082015260800190565b61ffff91909116815260200190565b90815260200190565b6000848252831515602083015260606040830152615f2b6060830184616945565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff8516825260406020830152615f2b60408301848661691b565b60005b838110156176155781810151838201526020016175fd565b83811115612f01575050600091015256fe70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb20175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbbf905ec80f905e8f846942a7cdd959bfe8d9487b2a43b33565295a698f7e294b6a7edd747c0554875d3fc531d19ba1497992c5e941ff80f3f7f110ffd8920a3ac38fdef318fe94a3f86048c27395000f846946488aa4d1955ee33403f8ccb1d4de5fb97c7ade294220f003d8bdfaadf52aa1e55ae4cc485e6794875941a87e90e440a39c99aa9cb5cea0ad6a3f0b2407b86048c27395000f846949ef9f4360c606c7ab4db26b016007d3ad0ab86a0946103af86a874b705854033438383c82575f25bc29418e2db06cbff3e3c5f856410a1838649e760175786048c27395000f84694ee01c3b1283aa067c58eab4709f85e99d46de5fe94ee4b9bfb1871c64e2bcabb1dc382dc8b7c4218a29415904ab26ab0e99d70b51c220ccdcccabee6e29786048c27395000f84694685b1ded8013785d6623cc18d214320b6bb6475994a20ef4e5e4e7e36258dbf51f4d905114cb1b34bc9413e39085dc88704f4394d35209a02b1a9520320c86048c27395000f8469478f3adfc719c99674c072166708589033e2d9afe9448a30d5eaa7b64492a160f139e2da2800ec3834e94055838358c29edf4dcc1ba1985ad58aedbb6be2b86048c27395000f84694c2be4ec20253b8642161bc3f444f53679c1f3d479466f50c616d737e60d7ca6311ff0d9c434197898a94d1d678a2506eeaa365056fe565df8bc8659f28b086048c27395000f846942f7be8361c80a4c1e7e9aaf001d0877f1cfde218945f93992ac37f3e61db2ef8a587a436a161fd210b94ecbc4fb1a97861344dad0867ca3cba2b860411f086048c27395000f84694ce2fd7544e0b2cc94692d4a704debef7bcb613289444abc67b4b2fba283c582387f54c9cba7c34bafa948acc2ab395ded08bb75ce85bf0f95ad2abc51ad586048c27395000f84694b8f7166496996a7da21cf1f1b04d9b3e26a3d077946770572763289aac606e4f327c2f6cc1aa3b3e3b94882d745ed97d4422ca8da1c22ec49d880c4c097286048c27395000f846942d4c407bbe49438ed859fe965b140dcf1aab71a9943ad0939e120f33518fbba04631afe7a3ed6327b194b2bbb170ca4e499a2b0f3cc85ebfa6e8c4dfcbea86048c27395000f846946bbad7cf34b5fa511d8e963dbba288b1960e75d694853b0f6c324d1f4e76c8266942337ac1b0af1a229442498946a51ca5924552ead6fc2af08b94fcba648601d1a94a2000f846944430b3230294d12c6ab2aac5c2cd68e80b16b581947b107f4976a252a6939b771202c28e64e03f52d694795811a7f214084116949fc4f53cedbf189eeab28601d1a94a2000f84694ea0a6e3c511bbd10f4519ece37dc24887e11b55d946811ca77acfb221a49393c193f3a22db829fcc8e9464feb7c04830dd9ace164fc5c52b3f5a29e5018a8601d1a94a2000f846947ae2f5b9e386cd1b50a4550696d957cb4900f03a94e83bcc5077e6b873995c24bac871b5ad856047e19464e48d4057a90b233e026c1041e6012ada897fe88601d1a94a2000f8469482012708dafc9e1b880fd083b32182b869be8e09948e5adc73a2d233a1b496ed3115464dd6c7b887509428b383d324bc9a37f4e276190796ba5a8947f5ed8601d1a94a2000f8469422b81f8e175ffde54d797fe11eb03f9e3bf75f1d94a1c3ef7ca38d8ba80cce3bfc53ebd2903ed21658942767f7447f7b9b70313d4147b795414aecea54718601d1a94a2000f8469468bf0b8b6fb4e317a0f9d6f03eaf8ce6675bc60d94675cfe570b7902623f47e7f59c9664b5f5065dcf94d84f0d2e50bcf00f2fc476e1c57f5ca2d57f625b8601d1a94a2000f846948c4d90829ce8f72d0163c1d5cf348a862d5506309485c42a7b34309bee2ed6a235f86d16f059deec5894cc2cedc53f0fa6d376336efb67e43d167169f3b78601d1a94a2000f8469435e7a025f4da968de7e4d7e4004197917f4070f194b1182abaeeb3b4d8eba7e6a4162eac7ace23d57394c4fd0d870da52e73de2dd8ded19fe3d26f43a1138601d1a94a2000f84694d6caa02bbebaebb5d7e581e4b66559e635f805ff94c07335cf083c1c46a487f0325769d88e163b653694efaff03b42e41f953a925fc43720e45fb61a19938601d1a94a20000175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbaa2646970667358221220f34958dbcda05e6d94770a38da790183bc12f970a53f415eb7a8e4ba99cbf89e64736f6c63430006040033", - }, - { - ContractAddr: SlashContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/0f352c4623898d92664a46cbfc26c52b79aad838", - Code: "608060405234801561001057600080fd5b506004361061027f5760003560e01c80637942fd051161015c578063c80d4b8f116100ce578063dc927faf11610087578063dc927faf146104ad578063e1c7392a146104b5578063f9a2bbc7146104bd578063fc3e5908146104c5578063fc4333cd146104cd578063fd6a6879146104d55761027f565b8063c80d4b8f1461045c578063c81b166214610464578063c8509d811461046c578063c96be4cb1461047f578063cc844b7314610492578063d2a42e4b146104a55761027f565b80639dc09262116101205780639dc0926214610421578063a1a11bf514610429578063a78abc1614610431578063ab51bb9614610439578063ac0af62914610441578063ac431751146104495761027f565b80637942fd05146103ee5780638256ace6146103f6578063831d65d1146103fe57806396713da9146104115780639bc8e4f2146104195761027f565b8063493279b1116101f557806362b72cf5116101b957806362b72cf5146103be5780636e47b482146103c657806370fd5bad146103ce578063718a8aa8146103d657806375d47a0a146103de5780637912a65d146103e65761027f565b8063493279b11461037c5780634bf6c8821461039157806351e8067214610399578063567a372d146103a15780635bfb4990146103a95761027f565b806335aa2e441161024757806335aa2e441461030e57806337c8dab914610321578063389f4f71146103425780633a63f4b1146103575780633dffc3871461035f57806343756e5c146103745761027f565b80630bee7a67146102845780630e2374a5146102a25780631182b875146102b757806322d1e80b146102d757806323bac5a2146102ec575b600080fd5b61028c6104dd565b604051610299919061336a565b60405180910390f35b6102aa6104e2565b6040516102999190612c1b565b6102ca6102c5366004612b51565b6104e8565b6040516102999190612c53565b6102df61054e565b6040516102999190612c48565b6102ff6102fa3660046128ff565b610557565b60405161029993929190613352565b6102aa61031c366004612b21565b61057a565b61033461032f3660046128ff565b6105a1565b604051610299929190613344565b61034a6105f8565b604051610299919061331a565b61034a6105fe565b610367610604565b604051610299919061337b565b6102aa610609565b61038461060f565b604051610299919061330b565b610367610614565b6102aa610619565b61034a61061f565b6103bc6103b73660046128ff565b610625565b005b61034a6106d0565b6102aa6106d6565b6103676106dc565b6103676106e1565b6102aa6106e6565b61034a6106ec565b6103676106f1565b6103346106f6565b6103bc61040c366004612b51565b610700565b610367610812565b61034a610817565b6102aa610822565b6102aa610828565b6102df61082e565b61028c610837565b61034a61083c565b6103bc610457366004612a05565b610841565b61034a610ce0565b6102aa610ce5565b6103bc61047a366004612b51565b610ceb565b6103bc61048d3660046128ff565b610d5c565b6103bc6104a0366004612a6e565b61114d565b61034a611733565b6102aa611738565b6103bc61173e565b6102aa61177a565b610367611780565b6103bc611785565b6102aa611bce565b606481565b61200181565b606033612000146105145760405162461bcd60e51b815260040161050b90613163565b60405180910390fd5b60005460ff166105365760405162461bcd60e51b815260040161050b90612d04565b60405162461bcd60e51b815260040161050b90613254565b60075460ff1681565b600260208190526000918252604090912080546001820154919092015460ff1683565b6001818154811061058757fe5b6000918252602090912001546001600160a01b0316905081565b6000806105ac6126e6565b5050506001600160a01b0316600090815260026020818152604092839020835160608101855281548082526001830154938201849052919093015460ff16151592909301919091529091565b60055481565b60065481565b600181565b61100181565b603881565b600881565b61200081565b60045481565b33611000146106465760405162461bcd60e51b815260040161050b90612f48565b60005460ff166106685760405162461bcd60e51b815260040161050b90612d04565b61200063f7a251d7600b61067b84611bd4565b60006040518463ffffffff1660e01b815260040161069b93929190613389565b600060405180830381600087803b1580156106b557600080fd5b505af11580156106c9573d6000803e3d6000fd5b5050505050565b60035481565b61100581565b600281565b601081565b61100881565b603281565b600b81565b6004546005549091565b33612000146107215760405162461bcd60e51b815260040161050b90613163565b60005460ff166107435760405162461bcd60e51b815260040161050b90612d04565b61074b612709565b600061078c84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611ca692505050565b9150915080156107d35781516040517f7f0956d47419b9525356e7111652b653b530ec6f5096dccc04589bc38e629967916107c69161336a565b60405180910390a16106c9565b81516040517f7d45f62d17443dd4547bca8a8112c60e2385669318dc300ec61a5d2492f262e7916108039161336a565b60405180910390a15050505050565b600981565b662386f26fc1000081565b61100781565b61100681565b60005460ff1681565b600081565b600481565b60005460ff166108635760405162461bcd60e51b815260040161050b90612d04565b33611007146108845760405162461bcd60e51b815260040161050b90613020565b6108ef84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260148152731b5a5cd9195b59585b9bdc951a1c995cda1bdb1960621b60208201529150611d269050565b1561098a57602081146109145760405162461bcd60e51b815260040161050b90612ed4565b604080516020601f840181900481028201810190925282815260009161095291858580838501838280828437600092019190915250611d8092505050565b905060018110158015610966575060055481105b6109825760405162461bcd60e51b815260040161050b9061311e565b600455610c9d565b6109f084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e19995b1bdb9e551a1c995cda1bdb19608a1b60208201529150611d269050565b15610a8c5760208114610a155760405162461bcd60e51b815260040161050b9061306e565b604080516020601f8401819004810282018101909252828152600091610a5391858580838501838280828437600092019190915250611d8092505050565b90506103e88111158015610a68575060045481115b610a845760405162461bcd60e51b815260040161050b90612d72565b600555610c9d565b610b0084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f66696e616c697479536c617368526577617264526174696f000000000000000060208201529150611d269050565b15610b9a5760208114610b255760405162461bcd60e51b815260040161050b9061328b565b604080516020601f8401819004810282018101909252828152600091610b6391858580838501838280828437600092019190915250611d8092505050565b9050600a8110158015610b765750606481105b610b925760405162461bcd60e51b815260040161050b90612e88565b600655610c9d565b610c0e84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f656e61626c654d616c6963696f7573566f7465536c617368000000000000000060208201529150611d269050565b15610c855760208114610c335760405162461bcd60e51b815260040161050b90612da7565b604080516020601f8401819004810282018101909252828152610c6f9190848480838501838280828437600092019190915250611d8592505050565b6007805460ff1916911515919091179055610c9d565b60405162461bcd60e51b815260040161050b906131ff565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a84848484604051610cd29493929190612c66565b60405180910390a150505050565b609681565b61100281565b3361200014610d0c5760405162461bcd60e51b815260040161050b90613163565b60005460ff16610d2e5760405162461bcd60e51b815260040161050b90612d04565b6040517f07db600eebe2ac176be8dcebad61858c245a4961bb32ca2aa3d159b09aa0810e90600090a1505050565b334114610d7b5760405162461bcd60e51b815260040161050b906131b2565b60005460ff16610d9d5760405162461bcd60e51b815260040161050b90612d04565b6003544311610dbe5760405162461bcd60e51b815260040161050b906132d6565b3a15610ddc5760405162461bcd60e51b815260040161050b90612fc3565b60405163155853f360e21b8152611000906355614fcc90610e01908490600401612c1b565b60206040518083038186803b158015610e1957600080fd5b505afa158015610e2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5191906129e5565b610e5a57611146565b610e626126e6565b506001600160a01b0381166000908152600260208181526040928390208351606081018552815481526001820154928101929092529091015460ff161580159282019290925290610ebd576020810180516001019052610f16565b60016040820181905260208201819052805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0384161790555b438152600554602082015181610f2857fe5b0661107457600060208201526040516335409f7f60e01b8152611000906335409f7f90610f59908590600401612c1b565b600060405180830381600087803b158015610f7357600080fd5b505af1158015610f87573d6000803e3d6000fd5b505050506120006001600160a01b031663f7a251d7600b610fa785611bd4565b60006040518463ffffffff1660e01b8152600401610fc793929190613389565b600060405180830381600087803b158015610fe157600080fd5b505af1925050508015610ff2575060015b61106f573d808015611020576040519150601f19603f3d011682016040523d82523d6000602084013e611025565b606091505b50826001600160a01b03167fd7bc86ff5d08c8ab043edec743302aba2520e6635172a428bc956721db9e2d1c836020015183604051611065929190613323565b60405180910390a2505b6110e0565b60045481602001518161108357fe5b066110e0576040516375abf10160e11b81526110009063eb57e202906110ad908590600401612c1b565b600060405180830381600087803b1580156110c757600080fd5b505af11580156110db573d6000803e3d6000fd5b505050505b6001600160a01b0382166000818152600260208181526040808420865181559186015160018301558581015191909201805460ff1916911515919091179055517fddb6012116e51abf5436d956a4f0ebd927e92c576ff96d7918290c8782291e3e9190a2505b5043600355565b60005460ff1661116f5760405162461bcd60e51b815260040161050b90612d04565b604051630a83aaa960e31b81526110069063541d554890611194903390600401612c1b565b60206040518083038186803b1580156111ac57600080fd5b505afa1580156111c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111e491906129e5565b6112005760405162461bcd60e51b815260040161050b90612c98565b60075460ff166112225760405162461bcd60e51b815260040161050b90612ccf565b60065461122f5760146006555b438160000151604001516101000111801561125557504381602001516040015161010001115b6112715760405162461bcd60e51b815260040161050b90613226565b80602001516020015181600001516020015114801561129f5750806020015160600151816000015160600151145b156112bc5760405162461bcd60e51b815260040161050b90612f1b565b8051604081015190511080156112db5750602081015160408101519051105b6112f75760405162461bcd60e51b815260040161050b90612e51565b60208101515181515110801561131c5750806000015160400151816020015160400151105b8061134757508051516020820151511080156113475750806020015160400151816000015160400151105b806113615750806020015160400151816000015160400151145b61137d5760405162461bcd60e51b815260040161050b90612d3b565b604080820151905163ea321e4960e01b81526110009163ea321e49916113a69190600401612c53565b60206040518083038186803b1580156113be57600080fd5b505afa1580156113d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113f691906129e5565b6114125760405162461bcd60e51b815260040161050b90612ff1565b61142481600001518260400151611dad565b801561143d575061143d81602001518260400151611dad565b6114595760405162461bcd60e51b815260040161050b90612df2565b6060806110006001600160a01b0316633b071dcc6040518163ffffffff1660e01b815260040160006040518083038186803b15801561149757600080fd5b505afa1580156114ab573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526114d39190810190612922565b9150915060005b8151811015611610576115048282815181106114f257fe5b60200260200101518560400151611f85565b15611608576006546040516309a99b4f60e41b815260646110028031909302049190639a99b4f09061153c9033908590600401612c2f565b602060405180830381600087803b15801561155657600080fd5b505af115801561156a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061158e9190612b39565b506110006001600160a01b03166335409f7f8584815181106115ac57fe5b60200260200101516040518263ffffffff1660e01b81526004016115d09190612c1b565b600060405180830381600087803b1580156115ea57600080fd5b505af11580156115fe573d6000803e3d6000fd5b5050505050611610565b6001016114da565b50600061162284604001516000611fe9565b90506120006001600160a01b031663f7a251d7600b6116448760400151612005565b60006040518463ffffffff1660e01b815260040161166493929190613389565b600060405180830381600087803b15801561167e57600080fd5b505af192505050801561168f575060015b611701573d8080156116bd576040519150601f19603f3d011682016040523d82523d6000602084013e6116c2565b606091505b50817fd58d1183100bd0932c0588f31c4205d6bc6168909765a96c41adbed3115f3628826040516116f39190612c53565b60405180910390a25061172d565b60405181907f7b78aadacff901d8b63d0dba4f86283d4db8aef27f9ed70413dd860f1c9532b690600090a25b50505050565b601481565b61100381565b60005460ff16156117615760405162461bcd60e51b815260040161050b906130b0565b603260045560966005556000805460ff19166001179055565b61100081565b600381565b33611000146117a65760405162461bcd60e51b815260040161050b90612f48565b60005460ff166117c85760405162461bcd60e51b815260040161050b90612d04565b6001546117d457611bcc565b600154600090600019015b808211611ba0576000805b82841015611903576117fa6126e6565b600260006001878154811061180b57fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff1615159082015260055490915060049004816020015111156118ed5760046005548161187857fe5b0481602001510381602001818152505080600260006001888154811061189a57fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208351815591830151600183015591909101516002909101805460ff19169115159190911790556118f7565b6001925050611903565b508360010193506117ea565b828411611a9a576119126126e6565b600260006001868154811061192357fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff161515908201526005549091506004900481602001511115611a0b5760046005548161199057fe5b048160200151038160200181815250508060026000600187815481106119b257fe5b6000918252602080832091909101546001600160a01b03168352828101939093526040918201902083518155918301516001808401919091559201516002909101805460ff19169115159190911790559150611a9a9050565b6002600060018681548110611a1c57fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff19169055805480611a6057fe5b600082815260209020810160001990810180546001600160a01b031916905501905583611a8d5750611a9a565b5060001990920191611903565b818015611aa45750805b15611b83576002600060018681548110611aba57fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff19169055805484908110611b0157fe5b600091825260209091200154600180546001600160a01b039092169186908110611b2757fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506001805480611b6057fe5b600082815260209020810160001990810180546001600160a01b03191690550190555b82611b8f575050611ba0565b5050600190910190600019016117df565b6040517fcfdb3b6ccaeccbdc68be3c59c840e3b3c90f0a7c491f5fff1cf56cfda200dd9c90600090a150505b565b61100481565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081611bef579050509050611c18836001600160a01b0316612040565b81600081518110611c2557fe5b6020026020010181905250611c3943612063565b81600181518110611c4657fe5b6020908102919091010152611c5b6038612063565b81600281518110611c6857fe5b6020026020010181905250611c7c42612063565b81600381518110611c8957fe5b6020026020010181905250611c9d81612076565b9150505b919050565b611cae612709565b6000611cb8612709565b611cc061271b565b611cd1611ccc86612100565b612125565b90506000805b611ce08361216f565b15611d195780611d0c57611cfb611cf684612190565b6121de565b63ffffffff16845260019150611d11565b611d19565b600101611cd7565b5091935090915050915091565b600081604051602001611d399190612bff565b6040516020818303038152906040528051906020012083604051602001611d609190612bff565b604051602081830303815290604052805190602001201490505b92915050565b015190565b8082015160009060ff811615611d9f576001915081611da5565b60009150815b505092915050565b60408051600480825260a0820190925260009160609190816020015b6060815260200190600190039081611dc9575050604080516020808252818301909252919250606091908082018180368337019050509050611e0e8560000151612063565b82600081518110611e1b57fe5b6020026020010181905250611e366020866020015183612260565b611e3f81612270565b82600181518110611e4c57fe5b6020026020010181905250611e648560400151612063565b82600281518110611e7157fe5b6020026020010181905250611e8c6020866060015183612260565b611e9581612270565b82600381518110611ea257fe5b6020026020010181905250611ec86020611ebb84612076565b8051906020012083612260565b6040805160b080825260e08201909252606091602082018180368337019050509050611ef88183600060206122c6565b611f0a818760800151602060606122c6565b611f188186608060306122c6565b604080516001808252818301909252606091602082018180368337019050509050815160016020830182602086016066600019fa611f5557600080fd5b506001611f63826000612319565b60ff1614611f78576000945050505050611d7a565b5060019695505050505050565b815181516000916001918114808314611fa15760009250611fdf565b600160208701838101602088015b600284838510011415611fda578051835114611fce5760009650600093505b60209283019201611faf565b505050505b5090949350505050565b60008160200183511015611ffc57600080fd5b50016020015190565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081612020579050509050611c1883612270565b60408051600560a21b8318601482015260348101909152606090611c9d81612270565b6060611d7a61207183612335565b612270565b60608151600014156120975750604080516000815260208101909152611ca1565b6060826000815181106120a657fe5b602002602001015190506000600190505b83518110156120e7576120dd828583815181106120d057fe5b602002602001015161241b565b91506001016120b7565b50611c9d6120fa825160c060ff16612498565b8261241b565b61210861273b565b506040805180820190915281518152602082810190820152919050565b61212d61271b565b6121368261256a565b61213f57600080fd5b600061214e83602001516125a4565b60208085015160408051808201909152868152920190820152915050919050565b600061217961273b565b505080518051602091820151919092015191011190565b61219861273b565b6121a18261216f565b6121aa57600080fd5b602082015160006121ba82612607565b80830160209586015260408051808201909152908152938401919091525090919050565b8051600090158015906121f357508151602110155b6121fc57600080fd5b600061220b83602001516125a4565b905080836000015110156122315760405162461bcd60e51b815260040161050b906130e7565b82516020808501518301805192849003929183101561225757826020036101000a820491505b50949350505050565b9091018181526020918201910152565b6060815160011480156122a25750607f60f81b8260008151811061229057fe5b01602001516001600160f81b03191611155b156122ae575080611ca1565b611d7a6122c08351608060ff16612498565b8361241b565b60005b818110156106c9578381815181106122dd57fe5b602001015160f81c60f81b8584806001019550815181106122fa57fe5b60200101906001600160f81b031916908160001a9053506001016122c9565b6000816001018351101561232c57600080fd5b50016001015190565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166123795750601861239d565b6fffffffffffffffffffffffffffffffff1984166123995750601061239d565b5060005b60208110156123d3578181815181106123b257fe5b01602001516001600160f81b031916156123cb576123d3565b60010161239d565b60008160200390506060816040519080825280601f01601f191660200182016040528015612408576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b8183101561244c578051835260209283019201612434565b50855184518101855292509050808201602086015b81831015612479578051835260209283019201612461565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106124c25760405162461bcd60e51b815260040161050b90612e29565b6040805160018082528183019092526060916020820181803683370190505090506037841161251c5782840160f81b816000815181106124fe57fe5b60200101906001600160f81b031916908160001a9053509050611d7a565b606061252785612335565b90508381510160370160f81b8260008151811061254057fe5b60200101906001600160f81b031916908160001a905350612561828261241b565b95945050505050565b805160009061257b57506000611ca1565b6020820151805160001a9060c082101561259a57600092505050611ca1565b5060019392505050565b8051600090811a60808110156125be576000915050611ca1565b60b88110806125d9575060c081108015906125d9575060f881105b156125e8576001915050611ca1565b60c08110156125fc5760b519019050611ca1565b60f519019050611ca1565b80516000908190811a608081101561262257600191506126df565b60b881101561263757607e19810191506126df565b60c081101561268857600060b78203600186019550806020036101000a8651049150600181018201935050808310156126825760405162461bcd60e51b815260040161050b90612f98565b506126df565b60f881101561269d5760be19810191506126df565b600060f78203600186019550806020036101000a865104915060018101820193505080831015611da55760405162461bcd60e51b815260040161050b90612f98565b5092915050565b604051806060016040528060008152602001600081526020016000151581525090565b60408051602081019091526000815290565b604051806040016040528061272e61273b565b8152602001600081525090565b604051806040016040528060008152602001600081525090565b600082601f830112612765578081fd5b8151612778612773826133dc565b6133b5565b818152915060208083019084810160005b848110156127ee578151870188603f8201126127a457600080fd5b838101516127b4612773826133fc565b81815260408b818486010111156127ca57600080fd5b6127d983888401838701613420565b50865250509282019290820190600101612789565b505050505092915050565b60008083601f84011261280a578182fd5b50813567ffffffffffffffff811115612821578182fd5b60208301915083602082850101111561283957600080fd5b9250929050565b600082601f830112612850578081fd5b813561285e612773826133fc565b915080825283602082850101111561287557600080fd5b8060208401602084013760009082016020015292915050565b600060a0828403121561289f578081fd5b6128a960a06133b5565b905081358152602082013560208201526040820135604082015260608201356060820152608082013567ffffffffffffffff8111156128e757600080fd5b6128f384828501612840565b60808301525092915050565b600060208284031215612910578081fd5b813561291b8161344c565b9392505050565b60008060408385031215612934578081fd5b825167ffffffffffffffff8082111561294b578283fd5b81850186601f82011261295c578384fd5b8051925061296c612773846133dc565b80848252602080830192508084018a82838902870101111561298c578788fd5b8794505b868510156129b75780516129a38161344c565b845260019490940193928101928101612990565b5088015190965093505050808211156129ce578283fd5b506129db85828601612755565b9150509250929050565b6000602082840312156129f6578081fd5b8151801515811461291b578182fd5b60008060008060408587031215612a1a578182fd5b843567ffffffffffffffff80821115612a31578384fd5b612a3d888389016127f9565b90965094506020870135915080821115612a55578384fd5b50612a62878288016127f9565b95989497509550505050565b600060208284031215612a7f578081fd5b813567ffffffffffffffff80821115612a96578283fd5b81840160608187031215612aa8578384fd5b612ab260606133b5565b9250803582811115612ac2578485fd5b612ace8782840161288e565b845250602081013582811115612ae2578485fd5b612aee8782840161288e565b602085015250604081013582811115612b05578485fd5b612b1187828401612840565b6040850152509195945050505050565b600060208284031215612b32578081fd5b5035919050565b600060208284031215612b4a578081fd5b5051919050565b600080600060408486031215612b65578283fd5b833560ff81168114612b75578384fd5b9250602084013567ffffffffffffffff811115612b90578283fd5b612b9c868287016127f9565b9497909650939450505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008151808452612beb816020860160208601613420565b601f01601f19169290920160200192915050565b60008251612c11818460208701613420565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b60006020825261291b6020830184612bd3565b600060408252612c7a604083018688612ba9565b8281036020840152612c8d818587612ba9565b979650505050505050565b6020808252601f908201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604082015260600190565b6020808252818101527f6d616c6963696f757320766f746520736c617368206e6f7420656e61626c6564604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252601a908201527f6e6f2076696f6c6174696f6e206f6620766f74652072756c6573000000000000604082015260600190565b6020808252818101527f7468652066656c6f6e795468726573686f6c64206f7574206f662072616e6765604082015260600190565b6020808252602b908201527f6c656e677468206f6620656e61626c654d616c6963696f7573566f7465536c6160408201526a0e6d040dad2e6dac2e8c6d60ab1b606082015260800190565b60208082526017908201527f766572696679207369676e6174757265206661696c6564000000000000000000604082015260600190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526019908201527f7372634e756d20626967676572207468616e207461724e756d00000000000000604082015260600190565b6020808252602c908201527f7468652066696e616c69747920736c6173682072657761726420726174696f2060408201526b6f7574206f662072616e676560a01b606082015260800190565b60208082526027908201527f6c656e677468206f66206d697364656d65616e6f725468726573686f6c64206d6040820152660d2e6dac2e8c6d60cb1b606082015260800190565b60208082526013908201527274776f206964656e746963616c20766f74657360681b604082015260600190565b60208082526030908201527f746865206d6573736167652073656e646572206d7573742062652076616c696460408201526f185d1bdc94d95d0818dbdb9d1c9858dd60821b606082015260800190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b6020808252601590820152741d9bdd195059191c881a5cc81b9bdd08199bdd5b99605a1b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526022908201527f6c656e677468206f662066656c6f6e795468726573686f6c64206d69736d61746040820152610c6d60f31b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526025908201527f746865206d697364656d65616e6f725468726573686f6c64206f7574206f662060408201526472616e676560d81b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b6020808252601490820152731d185c99d95d08189b1bd8dac81d1bdbc81bdb1960621b604082015260600190565b6020808252601e908201527f7265636569766520756e65787065637465642073796e207061636b6167650000604082015260600190565b6020808252602b908201527f6c656e677468206f662066696e616c697479536c61736852657761726452617460408201526a0d2de40dad2e6dac2e8c6d60ab1b606082015260800190565b6020808252818101527f63616e206e6f7420736c61736820747769636520696e206f6e6520626c6f636b604082015260600190565b61ffff91909116815260200190565b90815260200190565b60008382526040602083015261333c6040830184612bd3565b949350505050565b918252602082015260400190565b92835260208301919091521515604082015260600190565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff85168252606060208301526133a56060830185612bd3565b9050826040830152949350505050565b60405181810167ffffffffffffffff811182821017156133d457600080fd5b604052919050565b600067ffffffffffffffff8211156133f2578081fd5b5060209081020190565b600067ffffffffffffffff821115613412578081fd5b50601f01601f191660200190565b60005b8381101561343b578181015183820152602001613423565b8381111561172d5750506000910152565b6001600160a01b038116811461346157600080fd5b5056fea2646970667358221220532ad4dea38f301adf4b42a3bbc7b2ca9d59afe0f9ac4088e05b58394b1c666564736f6c63430006040033", - }, - }, - } - - PlatoUpgrade[networkname.ChapelChainName] = &Upgrade{ - UpgradeName: "plato", - Configs: []*UpgradeConfig{ - { - ContractAddr: ValidatorContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/0f352c4623898d92664a46cbfc26c52b79aad838", - Code: "60806040526004361061048d5760003560e01c806388b32f1111610255578063c81b166211610144578063e40716a1116100c1578063f92eb86b11610085578063f92eb86b14610bd7578063f9a2bbc714610bec578063fc3e590814610c01578063fccc281314610c16578063fd4ad81f14610c2b578063fd6a687914610c5a57610494565b8063e40716a114610b5a578063ea321e4914610b6f578063eb57e20214610b8f578063eda5868c14610baf578063f340fa0114610bc457610494565b8063d86222d511610108578063d86222d514610af1578063daacdb6614610b06578063dc927faf14610b1b578063e086c7b114610b30578063e1c7392a14610b4557610494565b8063c81b166214610a92578063c8509d81146108a0578063ce910b0c14610aa7578063d04aa99614610ac7578063d68fb56a14610adc57610494565b8063a78abc16116101d2578063aef198a911610196578063aef198a914610a31578063b7ab4db514610a46578063b8cf4ef114610a68578063bf9f499514610650578063c6d3394514610a7d57610494565b8063a78abc16146109b2578063aaf5eb68146109c7578063ab51bb96146109dc578063ac431751146109f1578063ad3c9da614610a1157610494565b80639dc09262116102195780639dc09262146109495780639fe0f8161461095e578063a0dc275814610973578063a1a11bf514610988578063a5422d5c1461099d57610494565b806388b32f11146108d55780638b5ad0c9146108ea5780638d19a410146108ff5780639369d7de1461091f57806396713da91461093457610494565b80635192c82c1161037c5780636e47b482116102f95780637942fd05116102bd5780637942fd05146108615780637a84ca2a1461087657806381650b621461088b578063831d65d1146108a0578063853230aa1461084c57806386249882146108c057610494565b80636e47b482146107f857806370fd5bad1461080d578063718a8aa81461082257806375d47a0a1461083757806378dfed4a1461084c57610494565b80635667515a116103405780635667515a146107675780635d77156c1461077c57806360eba4fe1461079157806362b72cf5146107b15780636969a25c146107c657610494565b80635192c82c146106e857806351e80672146106fd578063549b03f21461071257806355614fcc14610727578063565c56b31461074757610494565b80633365af3a1161040a57806343756e5c116103ce57806343756e5c1461067257806345cf9daf14610687578063493279b11461069c5780634bf6c882146106be5780634df6e0c3146106d357610494565b80633365af3a146105d857806335409f7f146105f85780633b071dcc146106185780633de0f0d81461063b5780633dffc3871461065057610494565b8063152ad3b811610451578063152ad3b81461054c5780631ff180691461056e578063219f22d514610583578063300c356714610598578063321d398a146105b857610494565b806304c4fec61461049957806307a56847146104b05780630bee7a67146104db5780630e2374a5146104fd5780631182b8751461051f57610494565b3661049457005b600080fd5b3480156104a557600080fd5b506104ae610c6f565b005b3480156104bc57600080fd5b506104c5610ce1565b6040516104d29190617594565b60405180910390f35b3480156104e757600080fd5b506104f0610ce7565b6040516104d291906175be565b34801561050957600080fd5b50610512610cec565b6040516104d2919061699b565b34801561052b57600080fd5b5061053f61053a366004616881565b610cf2565b6040516104d29190616b12565b34801561055857600080fd5b50610561610f2a565b6040516104d29190616b07565b34801561057a57600080fd5b506104c5610f33565b34801561058f57600080fd5b506104f0610f39565b3480156105a457600080fd5b506104ae6105b336600461670b565b610f3e565b3480156105c457600080fd5b506105616105d336600461682e565b6112c2565b3480156105e457600080fd5b506105616105f336600461682e565b611391565b34801561060457600080fd5b506104ae6106133660046166e4565b611442565b34801561062457600080fd5b5061062d61159b565b6040516104d2929190616a1d565b34801561064757600080fd5b506104c5611877565b34801561065c57600080fd5b5061066561187d565b6040516104d291906175cf565b34801561067e57600080fd5b50610512611882565b34801561069357600080fd5b506104c5611888565b3480156106a857600080fd5b506106b161188e565b6040516104d29190617585565b3480156106ca57600080fd5b50610665611893565b3480156106df57600080fd5b5061062d611898565b3480156106f457600080fd5b506104c5611a16565b34801561070957600080fd5b50610512611a1c565b34801561071e57600080fd5b506104c5611a22565b34801561073357600080fd5b506105616107423660046166e4565b611a28565b34801561075357600080fd5b506104c56107623660046166e4565b611a5d565b34801561077357600080fd5b50610665611aae565b34801561078857600080fd5b506104f0611ab3565b34801561079d57600080fd5b5061053f6107ac36600461682e565b611ab8565b3480156107bd57600080fd5b506104c5611b5e565b3480156107d257600080fd5b506107e66107e136600461682e565b611b64565b6040516104d2969594939291906169c8565b34801561080457600080fd5b50610512611bc8565b34801561081957600080fd5b50610665611bce565b34801561082e57600080fd5b50610665611bd3565b34801561084357600080fd5b50610512611bd8565b34801561085857600080fd5b506104c5611bde565b34801561086d57600080fd5b50610665611be4565b34801561088257600080fd5b506104c5611be9565b34801561089757600080fd5b506104f0611bef565b3480156108ac57600080fd5b506104ae6108bb366004616881565b611bf4565b3480156108cc57600080fd5b506104c5611c55565b3480156108e157600080fd5b506104c5611c5b565b3480156108f657600080fd5b506104c5611c61565b34801561090b57600080fd5b506104c561091a3660046166e4565b611c67565b34801561092b57600080fd5b506104ae611ca7565b34801561094057600080fd5b50610665611dbb565b34801561095557600080fd5b50610512611dc0565b34801561096a57600080fd5b506104c5611dc6565b34801561097f57600080fd5b506104c5611dcb565b34801561099457600080fd5b50610512611dd0565b3480156109a957600080fd5b5061053f611dd6565b3480156109be57600080fd5b50610561611df5565b3480156109d357600080fd5b506104c5611dfe565b3480156109e857600080fd5b506104f0611aae565b3480156109fd57600080fd5b506104ae610a0c3660046167d2565b611e07565b348015610a1d57600080fd5b506104c5610a2c3660046166e4565b6126b3565b348015610a3d57600080fd5b506104c56126c5565b348015610a5257600080fd5b50610a5b6126d2565b6040516104d29190616a0a565b348015610a7457600080fd5b506104c56127be565b348015610a8957600080fd5b506104c5611bce565b348015610a9e57600080fd5b506105126127c3565b348015610ab357600080fd5b5061053f610ac236600461682e565b6127c9565b348015610ad357600080fd5b506104c56127d6565b348015610ae857600080fd5b506104c56127db565b348015610afd57600080fd5b506104c561281a565b348015610b1257600080fd5b506104c5612826565b348015610b2757600080fd5b5061051261282c565b348015610b3c57600080fd5b506104c5612832565b348015610b5157600080fd5b506104ae612837565b348015610b6657600080fd5b506104c56129e6565b348015610b7b57600080fd5b50610561610b8a366004616793565b6129ec565b348015610b9b57600080fd5b506104ae610baa3660046166e4565b612b72565b348015610bbb57600080fd5b506104f0612c7a565b6104ae610bd23660046166e4565b612c7f565b348015610be357600080fd5b506104c5612f07565b348015610bf857600080fd5b50610512612f0d565b348015610c0d57600080fd5b50610665611dc6565b348015610c2257600080fd5b50610512612f13565b348015610c3757600080fd5b50610c4b610c4636600461682e565b612f19565b6040516104d29392919061759d565b348015610c6657600080fd5b50610512612fdb565b6000610c7a33611c67565b9050600b8181548110610c8957fe5b600091825260209091206001601690920201015460ff16610cc55760405162461bcd60e51b8152600401610cbc9061723d565b60405180910390fd5b6000610ccf6127db565b9050610cdc338383612fe1565b505050565b60095481565b606481565b61200181565b60005460609060ff16610d175760405162461bcd60e51b8152600401610cbc90616cd1565b3361200014610d385760405162461bcd60e51b8152600401610cbc9061741c565b600b54610df657610d476163d0565b60015460005b81811015610df257600b805460018101825560009190915283516000805160206177f283398151915260169092029182019081556020808601516000805160206178328339815191528401805460ff1916911515919091179055604086015180518794610dce936000805160206178128339815191529091019201906163ff565b506060820151610de49060038301906013616479565b505050806001019050610d4d565b5050505b610dfe6164a6565b6000610e3f85858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506131cd92505050565b9150915080610e5b57610e526064613389565b92505050610f23565b815160009060ff16610e8057610e79836020015184604001516133ea565b9050610eef565b825160ff1660011415610eeb57826020015151600114610ec5576000805160206177d2833981519152604051610eb590617124565b60405180910390a1506067610ee6565b610e798360200151600081518110610ed957fe5b602002602001015161403e565b610eef565b5060655b63ffffffff8116610f145750506040805160008152602081019091529150610f239050565b610f1d81613389565b93505050505b9392505050565b60075460ff1681565b60035481565b606881565b334114610f5d5760405162461bcd60e51b8152600401610cbc9061746b565b6010544311610f7e5760405162461bcd60e51b8152600401610cbc90616e2d565b60005460ff16610fa05760405162461bcd60e51b8152600401610cbc90616cd1565b600f54610fb8576032600f55611002316011556112b8565b60006110023168056bc75e2d63100000811115610fe757610fe081606463ffffffff6141b516565b9150611030565b60115481111561102957610fe0606461101d600f54611011601154866141f790919063ffffffff16565b9063ffffffff61423916565b9063ffffffff6141b516565b50506112b8565b6040516309a99b4f60e41b815261100290639a99b4f09061105790309086906004016169af565b602060405180830381600087803b15801561107157600080fd5b505af1158015611085573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110a99190616846565b611002316011559150816110be5750506112b8565b6000805b848110156110ec578585828181106110d657fe5b90506020020135820191508060010190506110c2565b50806110fa575050506112b8565b6000806000805b898110156112b0578489898381811061111657fe5b9050602002013588028161112657fe5b0493508a8a8281811061113557fe5b905060200201602081019061114a91906166e4565b6001600160a01b0381166000908152600460205260409020549093509150811561126657600060018084038154811061117f57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff16156111ec57836001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d85866040516111df9190617594565b60405180910390a2611260565b6003546111ff908663ffffffff61427316565b6003908155810154611217908663ffffffff61427316565b60038201556040516001600160a01b038516907fcb0aad6cf9cd03bdf6137e359f541c42f38b39f007cae8e89e88aa7d8c6617b290611257908890617594565b60405180910390a25b506112a8565b826001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d858560405161129f9190617594565b60405180910390a25b600101611101565b505050505050505b5050436010555050565b60015460009082106112d65750600061138c565b60006001600160a01b0316600183815481106112ee57fe5b60009182526020909120600490910201546001600160a01b0316148061131e5750600854158061131e5750600a54155b8061132d575060085460095410155b8061133e575061133c82611391565b155b8061136757506000600b838154811061135357fe5b906000526020600020906016020160000154115b8061137b575060016113776126d2565b5111155b156113885750600061138c565b5060015b919050565b60015460009082106113a55750600061138c565b600b5482106113e257600182815481106113bb57fe5b9060005260206000209060040201600201601c9054906101000a900460ff1615905061138c565b600182815481106113ef57fe5b9060005260206000209060040201600201601c9054906101000a900460ff1615801561143c5750600b828154811061142357fe5b600091825260209091206001601690920201015460ff16155b92915050565b33611001146114635760405162461bcd60e51b8152600401610cbc9061753c565b600b54611521576114726163d0565b60015460005b8181101561151d57600b805460018101825560009190915283516000805160206177f283398151915260169092029182019081556020808601516000805160206178328339815191528401805460ff19169115159190911790556040860151805187946114f9936000805160206178128339815191529091019201906163ff565b50606082015161150f9060038301906013616479565b505050806001019050611478565b5050505b6001600160a01b038116600090815260046020526040902054806115455750611598565b6001810390506000600b828154811061155a57fe5b600091825260209091206001601690920201015460ff16905061157d8383614298565b80156115865750805b15610cdc576009805460001901905550505b50565b60015460609081906000805b828110156115ee57600181815481106115bc57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166115e6576001909101905b6001016115a7565b5060608160405190808252806020026020018201604052801561161b578160200160208202803683370190505b50905060608260405190808252806020026020018201604052801561165457816020015b606081526020019060019003908161163f5790505b50600b54600094509091508414156117cf5760005b848110156117c9576001818154811061167e57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166117c157600181815481106116ae57fe5b600091825260209091206004909102015483516001600160a01b03909116908490869081106116d957fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600b818154811061170657fe5b600091825260209182902060026016909202018101805460408051601f60001961010060018616150201909316949094049182018590048502840185019052808352919290919083018282801561179e5780601f106117735761010080835404028352916020019161179e565b820191906000526020600020905b81548152906001019060200180831161178157829003601f168201915b50505050508285815181106117af57fe5b60209081029190910101526001909301925b600101611669565b5061186b565b60005b8481101561186957600181815481106117e757fe5b9060005260206000209060040201600201601c9054906101000a900460ff16611861576001818154811061181757fe5b600091825260209091206004909102015483516001600160a01b039091169084908690811061184257fe5b6001600160a01b03909216602092830291909101909101526001909301925b6001016117d2565b505b909450925050505b9091565b61271081565b600181565b61100181565b60085481565b606181565b600881565b600e54600c546060918291806118ac575060155b60606118b66126d2565b905060606118c38261464b565b9050828251116118da579094509250611873915050565b838383510310156118ec578282510393505b83156119225760c8430461190883838388880360008a8a6147b9565b6119208383838888038989038a8b8b8b5103016147b9565b505b60608360405190808252806020026020018201604052801561194e578160200160208202803683370190505b50905060608460405190808252806020026020018201604052801561198757816020015b60608152602001906001900390816119725790505b50905060005b85811015611a08578481815181106119a157fe5b60200260200101518382815181106119b557fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508381815181106119e157fe5b60200260200101518282815181106119f557fe5b602090810291909101015260010161198d565b509096509450505050509091565b60065481565b61200081565b600f5481565b6001600160a01b03811660009081526004602052604081205480611a5057600091505061138c565b60001901610f2381611391565b6001600160a01b03811660009081526004602052604081205480611a8557600091505061138c565b600180820381548110611a9457fe5b906000526020600020906004020160030154915050919050565b600081565b606781565b60128181548110611ac557fe5b600091825260209182902001805460408051601f6002600019610100600187161502019094169390930492830185900485028101850190915281815293509091830182828015611b565780601f10611b2b57610100808354040283529160200191611b56565b820191906000526020600020905b815481529060010190602001808311611b3957829003601f168201915b505050505081565b60105481565b60018181548110611b7157fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b601081565b61100881565b6103e881565b600b81565b600c5481565b606681565b3361200014611c155760405162461bcd60e51b8152600401610cbc9061741c565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051611c48939291906175dd565b60405180910390a1505050565b60025481565b60115481565b600a5481565b6001600160a01b03811660009081526004602052604081205480611c9d5760405162461bcd60e51b8152600401610cbc906173a4565b6000190192915050565b600b54611d6557611cb66163d0565b60015460005b81811015611d6157600b805460018101825560009190915283516000805160206177f283398151915260169092029182019081556020808601516000805160206178328339815191528401805460ff1916911515919091179055604086015180518794611d3d936000805160206178128339815191529091019201906163ff565b506060820151611d539060038301906013616479565b505050806001019050611cbc565b5050505b600854611d725760036008555b600a54611d7f576002600a555b6000611d8a33611c67565b9050611d95816112c2565b611db15760405162461bcd60e51b8152600401610cbc906170e1565b6115983382614910565b600981565b61100781565b600381565b60c881565b61100681565b604051806101e001604052806101ab81526020016176276101ab913981565b60005460ff1681565b6402540be40081565b60005460ff16611e295760405162461bcd60e51b8152600401610cbc90616cd1565b3361100714611e4a5760405162461bcd60e51b8152600401610cbc906171aa565b611eb484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b602082015291506149a89050565b15611f515760208114611ed95760405162461bcd60e51b8152600401610cbc9061735e565b604080516020601f8401819004810282018101909252828152600091611f1791858580838501838280828437600092019190915250614a0192505050565b905060648110158015611f2d5750620186a08111155b611f495760405162461bcd60e51b8152600401610cbc90616f8a565b600255612670565b611fb184848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260098152686275726e526174696f60b81b602082015291506149a89050565b1561204d5760208114611fd65760405162461bcd60e51b8152600401610cbc90616b57565b604080516020601f840181900481028201810190925282815260009161201491858580838501838280828437600092019190915250614a0192505050565b90506127108111156120385760405162461bcd60e51b8152600401610cbc90616e6f565b6006556007805460ff19166001179055612670565b6120b784848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260138152726d61784e756d4f664d61696e7461696e696e6760681b602082015291506149a89050565b1561215157602081146120dc5760405162461bcd60e51b8152600401610cbc90616b8e565b604080516020601f840181900481028201810190925282815260009161211a91858580838501838280828437600092019190915250614a0192505050565b600c5490915080612129575060155b8082106121485760405162461bcd60e51b8152600401610cbc90616ee2565b50600855612670565b6121ba84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61696e7461696e536c6173685363616c6560701b602082015291506149a89050565b1561225357602081146121df5760405162461bcd60e51b8152600401610cbc90616c57565b604080516020601f840181900481028201810190925282815260009161221d91858580838501838280828437600092019190915250614a0192505050565b905060008111801561222f5750600a81105b61224b5760405162461bcd60e51b8152600401610cbc906174b8565b600a55612670565b6122c784848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601981527f6d61784e756d4f66576f726b696e6743616e6469646174657300000000000000602082015291506149a89050565b1561235657602081146122ec5760405162461bcd60e51b8152600401610cbc90616c0b565b604080516020601f840181900481028201810190925282815260009161232a91858580838501838280828437600092019190915250614a0192505050565b9050600d5481111561234e5760405162461bcd60e51b8152600401610cbc90617000565b600e55612670565b6123bf84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61784e756d4f6643616e6469646174657360701b602082015291506149a89050565b1561244157602081146123e45760405162461bcd60e51b8152600401610cbc906171f8565b604080516020601f840181900481028201810190925282815260009161242291858580838501838280828437600092019190915250614a0192505050565b600d819055600e5490915081101561243b57600d54600e555b50612670565b6124a584848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c6e756d4f66436162696e65747360981b602082015291506149a89050565b1561255357602081146124ca5760405162461bcd60e51b8152600401610cbc90616c9c565b604080516020601f840181900481028201810190925282815260009161250891858580838501838280828437600092019190915250614a0192505050565b90506000811161252a5760405162461bcd60e51b8152600401610cbc90616d3f565b602981111561254b5760405162461bcd60e51b8152600401610cbc90616d87565b600c55612670565b6125bd84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601381527266696e616c697479526577617264526174696f60681b602082015291506149a89050565b1561265857602081146125e25760405162461bcd60e51b8152600401610cbc906172e1565b604080516020601f840181900481028201810190925282815260009161262091858580838501838280828437600092019190915250614a0192505050565b905060018110158015612634575060648111155b6126505760405162461bcd60e51b8152600401610cbc9061706f565b600f55612670565b60405162461bcd60e51b8152600401610cbc90617515565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040516126a59493929190616b25565b60405180910390a150505050565b60046020526000908152604090205481565b68056bc75e2d6310000081565b6001546060906000805b82811015612701576126ed81611391565b156126f9578160010191505b6001016126dc565b5060608160405190808252806020026020018201604052801561272e578160200160208202803683370190505b5090506000915060005b838110156127b55761274981611391565b156127ad576001818154811061275b57fe5b600091825260209091206004909102015482516001600160a01b039091169083908590811061278657fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508260010192505b600101612738565b50925050505b90565b601581565b61100281565b60138181548110611ac557fe5b603281565b60006127e56126d2565b519050600080600c54116127fa5760156127fe565b600c545b90508082111561280c578091505b8161281657600191505b5090565b67016345785d8a000081565b60055481565b61100381565b602981565b60005460ff161561285a5760405162461bcd60e51b8152600401610cbc906172aa565b6128626164a6565b6000612888604051806101e001604052806101ab81526020016176276101ab91396131cd565b91509150806128a95760405162461bcd60e51b8152600401610cbc906173db565b60005b8260200151518110156129ce576001836020015182815181106128cb57fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a0909301516003909301929092559186015180519185019391859081106129a157fe5b602090810291909101810151516001600160a01b03168252810191909152604001600020556001016128ac565b50506103e8600255506000805460ff19166001179055565b600d5481565b601354600090815b81811015612af557612add85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050601380549092508591508110612a4557fe5b600091825260209182902001805460408051601f6002600019610100600187161502019094169390930492830185900485028101850190915281815292830182828015612ad35780601f10612aa857610100808354040283529160200191612ad3565b820191906000526020600020905b815481529060010190602001808311612ab657829003601f168201915b5050505050614a06565b15612aed5760019250505061143c565b6001016129f4565b5060125460005b81811015612b6657612b4d86868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050601280549092508591508110612a4557fe5b15612b5e576001935050505061143c565b600101612afc565b50600095945050505050565b3361100114612b935760405162461bcd60e51b8152600401610cbc9061753c565b600b54612c5157612ba26163d0565b60015460005b81811015612c4d57600b805460018101825560009190915283516000805160206177f283398151915260169092029182019081556020808601516000805160206178328339815191528401805460ff1916911515919091179055604086015180518794612c29936000805160206178128339815191529091019201906163ff565b506060820151612c3f9060038301906013616479565b505050806001019050612ba8565b5050505b6000612c5c82614a6a565b9050612c67816112c2565b15612c7657612c768282614910565b5050565b606581565b334114612c9e5760405162461bcd60e51b8152600401610cbc9061746b565b60005460ff16612cc05760405162461bcd60e51b8152600401610cbc90616cd1565b60003411612ce05760405162461bcd60e51b8152600401610cbc90616fd1565b6001600160a01b0381166000908152600460205260409020546007543491906103e89060ff1615612d1057506006545b600083118015612d205750600081115b15612dc1576000612d3d61271061101d868563ffffffff61423916565b90508015612dbf5760405161dead9082156108fc029083906000818181858888f19350505050158015612d74573d6000803e3d6000fd5b507f627059660ea01c4733a328effb2294d2f86905bf806da763a89cee254de8bee581604051612da49190617594565b60405180910390a1612dbc848263ffffffff6141f716565b93505b505b8115612ebf576000600180840381548110612dd857fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff1615612e4557846001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b485604051612e389190617594565b60405180910390a2612eb9565b600354612e58908563ffffffff61427316565b6003908155810154612e70908563ffffffff61427316565b60038201556040516001600160a01b038616907f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc05590612eb0908790617594565b60405180910390a25b50612f01565b836001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b484604051612ef89190617594565b60405180910390a25b50505050565b600e5481565b61100081565b61dead81565b600b8181548110612f2657fe5b6000918252602091829020601691909102018054600180830154600280850180546040805161010096831615969096026000190190911692909204601f810188900488028501880190925281845293965060ff90911694919291830182828015612fd15780601f10612fa657610100808354040283529160200191612fd1565b820191906000526020600020905b815481529060010190602001808311612fb457829003601f168201915b5050505050905083565b61100481565b6000600a5460001480612ff2575081155b80612ffd5750600954155b1561300a57506000610f23565b60096000815460019003919050819055506000613055600a5461101d8561101d600b898154811061303757fe5b6000918252602090912060169091020154439063ffffffff6141f716565b90506000600b858154811061306657fe5b906000526020600020906016020160010160006101000a81548160ff0219169083151502179055506000806110016001600160a01b0316638256ace66040518163ffffffff1660e01b8152600401604080518083038186803b1580156130cb57600080fd5b505afa1580156130df573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613103919061685e565b915091506000935080831061317d5761311c8787614298565b506040516305bfb49960e41b815261100190635bfb499090613142908a9060040161699b565b600060405180830381600087803b15801561315c57600080fd5b505af1158015613170573d6000803e3d6000fd5b505050506001935061318f565b81831061318f5761318d87614a6a565b505b6040516001600160a01b038816907fb9d38178dc641ff1817967a63c9078cbcd955a9f1fcd75e0e3636de615d44d3b90600090a25050509392505050565b6131d56164a6565b60006131df6164a6565b6131e76164ca565b6131f86131f386614c0d565b614c32565b90506000805b61320783614c7c565b1561337b578061322c5761322261321d84614c9d565b614ceb565b60ff168452613373565b806001141561336e57606061324861324385614c9d565b614d6b565b9050805160405190808252806020026020018201604052801561328557816020015b6132726164ea565b81526020019060019003908161326a5790505b50856020018190525080516040519080825280602002602001820160405280156132c357816020015b60608152602001906001900390816132ae5790505b50604086015260005b8151811015613363576132dd6164ea565b606060006132fd8585815181106132f057fe5b6020026020010151614e3c565b9250925092508061331d578860009a509a50505050505050505050613384565b828960200151858151811061332e57fe5b6020026020010181905250818960400151858151811061334a57fe5b60200260200101819052505050508060010190506132cc565b506001925050613373565b61337b565b6001016131fe565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b60608152602001906001900390816133a35790505090506133c98363ffffffff16614f56565b816000815181106133d657fe5b6020026020010181905250610f2381614f69565b6000602983511115613421576000805160206177d283398151915260405161341190616de4565b60405180910390a150606661143c565b60005b83518110156134bf5760005b818110156134b65784818151811061344457fe5b6020026020010151600001516001600160a01b031685838151811061346557fe5b6020026020010151600001516001600160a01b031614156134ae576000805160206177d283398151915260405161349b90616f3f565b60405180910390a160669250505061143c565b600101613430565b50600101613424565b506060806134cd8585614ff3565b60015491935091506000908190815b818110156135525767016345785d8a0000600182815481106134fa57fe5b9060005260206000209060040201600301541061351c5783600101935061354a565b60006001828154811061352b57fe5b906000526020600020906004020160030154111561354a578260010192505b6001016134dc565b5060608360405190808252806020026020018201604052801561357f578160200160208202803683370190505b5090506060846040519080825280602002602001820160405280156135ae578160200160208202803683370190505b5090506060856040519080825280602002602001820160405280156135dd578160200160208202803683370190505b50905060608660405190808252806020026020018201604052801561360c578160200160208202803683370190505b509050600060608760405190808252806020026020018201604052801561363d578160200160208202803683370190505b50905060608860405190808252806020026020018201604052801561366c578160200160208202803683370190505b509050600099506000985060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b1580156136b457600080fd5b505afa1580156136c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136ec9190616846565b905067016345785d8a0000811115613737576000805160206177d283398151915260405161371990617269565b60405180910390a160689d505050505050505050505050505061143c565b60005b898110156139a85767016345785d8a00006001828154811061375857fe5b906000526020600020906004020160030154106138dd576001818154811061377c57fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316898d815181106137ad57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be400600183815481106137e257fe5b906000526020600020906004020160030154816137fb57fe5b066001838154811061380957fe5b90600052602060002090600402016003015403905061383183826141f790919063ffffffff16565b898e8151811061383d57fe5b6020026020010181815250506001828154811061385657fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316878e8151811061388757fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081888e815181106138b457fe5b60209081029190910101526138cf868263ffffffff61427316565b95508c6001019c50506139a0565b6000600182815481106138ec57fe5b90600052602060002090600402016003015411156139a0576001818154811061391157fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316848c8151811061394257fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506001818154811061396f57fe5b906000526020600020906004020160030154838c8151811061398d57fe5b6020026020010181815250508a6001019a505b60010161373a565b5060008415613c1e576002546040516303702b2960e51b815261100491636e0565209188916139e2918e918e918d91420190600401616a8d565b6020604051808303818588803b1580156139fb57600080fd5b505af193505050508015613a2c575060408051601f3d908101601f19168201909252613a2991810190616773565b60015b613ba3576040516000815260443d1015613a4857506000613ae3565b60046000803e60005160e01c6308c379a08114613a69576000915050613ae3565b60043d036004833e81513d60248201116001600160401b0382111715613a9457600092505050613ae3565b80830180516001600160401b03811115613ab5576000945050505050613ae3565b8060208301013d8601811115613ad357600095505050505050613ae3565b601f01601f191660405250925050505b80613aee5750613b30565b60019150857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf28082604051613b229190616b12565b60405180910390a250613b9e565b3d808015613b5a576040519150601f19603f3d011682016040523d82523d6000602084013e613b5f565b606091505b5060019150857fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a4582604051613b949190616b12565b60405180910390a2505b613c1e565b8015613be5577fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b7086604051613bd89190617594565b60405180910390a1613c1c565b857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280604051613c1390616bd4565b60405180910390a25b505b8015613dd45760005b8751811015613dd2576000888281518110613c3e57fe5b60200260200101519050600060018281548110613c5757fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc9185908110613c8857fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f1935050505090508015613d445760018281548110613cc957fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d9185908110613d1857fe5b906000526020600020906004020160030154604051613d379190617594565b60405180910390a2613dc8565b60018281548110613d5157fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d9185908110613da057fe5b906000526020600020906004020160030154604051613dbf9190617594565b60405180910390a25b5050600101613c27565b505b835115613f1e5760005b8451811015613f1c576000858281518110613df557fe5b60200260200101516001600160a01b03166108fc868481518110613e1557fe5b60200260200101519081150290604051600060405180830381858888f1935050505090508015613eab57858281518110613e4b57fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d868481518110613e8957fe5b6020026020010151604051613e9e9190617594565b60405180910390a2613f13565b858281518110613eb757fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d868481518110613ef557fe5b6020026020010151604051613f0a9190617594565b60405180910390a25b50600101613dde565b505b5050505050505050505050506000471115613f9a577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d47604051613f629190617594565b60405180910390a1604051611002904780156108fc02916000818181858888f19350505050158015613f98573d6000803e3d6000fd5b505b60006003819055600555815115613fb557613fb5828261522c565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015613ff257600080fd5b505af1158015614006573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a1506000949350505050565b80516001600160a01b031660009081526004602052604081205480158061408f575060018082038154811061406f57fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b156140d55782516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a2600091505061138c565b60015460055460001982011180159061412b5784516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a26000935050505061138c565b60058054600190810190915580548190600019860190811061414957fe5b6000918252602082206002600490920201018054921515600160e01b0260ff60e01b199093169290921790915585516040516001600160a01b03909116917ff226e7d8f547ff903d9d419cf5f54e0d7d07efa9584135a53a057c5f1f27f49a91a2506000949350505050565b6000610f2383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506159e6565b6000610f2383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250615a1d565b6000826142485750600061143c565b8282028284828161425557fe5b0414610f235760405162461bcd60e51b8152600401610cbc90617169565b600082820183811015610f235760405162461bcd60e51b8152600401610cbc90616d08565b600080600183815481106142a857fe5b906000526020600020906004020160030154905060006001808054905003905060016142d26126d2565b5111614307576000600185815481106142e757fe5b90600052602060002090600402016003018190555060009250505061143c565b846001600160a01b03167f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a70836040516143409190617594565b60405180910390a26001600160a01b038516600090815260046020526040812055835b6001546000190181101561452d576001816001018154811061438157fe5b90600052602060002090600402016001828154811061439c57fe5b60009182526020909120825460049092020180546001600160a01b03199081166001600160a01b0393841617825560018085015481840180548416918616919091179055600280860180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b19909416939093179055600392830154920191909155600b80549091830190811061445d57fe5b9060005260206000209060160201600b828154811061447857fe5b600091825260209091208254601690920201908155600180830154818301805460ff909216151560ff19909216919091179055600280840180546144cf93838601939082161561010002600019019091160461651f565b506144e260038281019084016013616594565b509050508060010160046000600184815481106144fb57fe5b600091825260208083206004909202909101546001600160a01b03168352820192909252604001902055600101614363565b50600180548061453957fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b80548061458c57fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906145be60028301826165be565b6145cc600383016000616602565b5050905560008183816145db57fe5b049050801561463f5760015460005b8181101561463c57826001828154811061460057fe5b906000526020600020906004020160030154016001828154811061462057fe5b60009182526020909120600360049092020101556001016145ea565b50505b50600195945050505050565b60015481516040805182815260208084028201019091526060929190839082801561468a57816020015b60608152602001906001900390816146755790505b50600b5490915083146146a157925061138c915050565b60005b828110156147b057600b6001600460008985815181106146c057fe5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205403815481106146f457fe5b600091825260209182902060026016909202018101805460408051601f60001961010060018616150201909316949094049182018590048502840185019052808352919290919083018282801561478c5780601f106147615761010080835404028352916020019161478c565b820191906000526020600020905b81548152906001019060200180831161476f57829003601f168201915b505050505082828151811061479d57fe5b60209081029190910101526001016146a4565b50949350505050565b60005b8281101561490657600082878388016040516020016147dc92919061698d565b6040516020818303038152906040528051906020012060001c816147fc57fe5b069050808501828701146148fd576000898388018151811061481a57fe5b602002602001015190506060898489018151811061483457fe5b602002602001015190508a8388018151811061484c57fe5b60200260200101518b858a018151811061486257fe5b60200260200101906001600160a01b031690816001600160a01b031681525050818b8489018151811061489157fe5b60200260200101906001600160a01b031690816001600160a01b03168152505089838801815181106148bf57fe5b60200260200101518a858a01815181106148d557fe5b6020026020010181905250808a848901815181106148ef57fe5b602002602001018190525050505b506001016147bc565b5050505050505050565b600980546001908101909155600b80548390811061492a57fe5b906000526020600020906016020160010160006101000a81548160ff02191690831515021790555043600b828154811061496057fe5b600091825260208220601690910201919091556040516001600160a01b038416917ff62981a567ec3cec866c6fa93c55bcdf841d6292d18b8d522ececa769375d82d91a25050565b6000816040516020016149bb9190616971565b60405160208183030381529060405280519060200120836040516020016149e29190616971565b6040516020818303038152906040528051906020012014905092915050565b015190565b815181516000916001918114808314614a225760009250614a60565b600160208701838101602088015b600284838510011415614a5b578051835114614a4f5760009650600093505b60209283019201614a30565b505050505b5090949350505050565b6001600160a01b03811660009081526004602052604081205480614a935750600019905061138c565b600181039050600060018281548110614aa857fe5b9060005260206000209060040201600301549050600060018381548110614acb57fe5b6000918252602090912060036004909202010155600154604051600019909101906001600160a01b038616907f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d90614b24908590617594565b60405180910390a280614b3c5782935050505061138c565b6000818381614b4757fe5b0490508015614c035760005b84811015614ba5578160018281548110614b6957fe5b9060005260206000209060040201600301540160018281548110614b8957fe5b6000918252602090912060036004909202010155600101614b53565b50600180549085015b81811015614c00578260018281548110614bc457fe5b9060005260206000209060040201600301540160018281548110614be457fe5b6000918252602090912060036004909202010155600101614bae565b50505b5091949350505050565b614c15616611565b506040805180820190915281518152602082810190820152919050565b614c3a6164ca565b614c4382615a49565b614c4c57600080fd5b6000614c5b8360200151615a83565b60208085015160408051808201909152868152920190820152915050919050565b6000614c86616611565b505080518051602091820151919092015191011190565b614ca5616611565b614cae82614c7c565b614cb757600080fd5b60208201516000614cc782615ae6565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590614d0057508151602110155b614d0957600080fd5b6000614d188360200151615a83565b90508083600001511015614d3e5760405162461bcd60e51b8152600401610cbc90617327565b8251602080850151830180519284900392918310156147b057506020919091036101000a90049392505050565b6060614d7682615a49565b614d7f57600080fd5b6000614d8a83615bc7565b9050606081604051908082528060200260200182016040528015614dc857816020015b614db5616611565b815260200190600190039081614dad5790505b5090506000614dda8560200151615a83565b60208601510190506000805b84811015614e3157614df783615ae6565b9150604051806040016040528083815260200184815250848281518110614e1a57fe5b602090810291909101015291810191600101614de6565b509195945050505050565b614e446164ea565b60606000614e506164ea565b6060614e5a6164ca565b614e6387614c32565b90506000805b614e7283614c7c565b15614f475780614e9d57614e8d614e8884614c9d565b615c23565b6001600160a01b03168552614f3f565b8060011415614ec557614eb2614e8884614c9d565b6001600160a01b03166020860152614f3f565b8060021415614eed57614eda614e8884614c9d565b6001600160a01b03166040860152614f3f565b8060031415614f1957614f0261321d84614c9d565b6001600160401b0316606086015260019150614f3f565b8060041415614f3a57614f33614f2e84614c9d565b615c3d565b9350614f3f565b614f47565b600101614e69565b50929791965091945092505050565b606061143c614f6483615cad565b615d93565b6060815160001415614f8a575060408051600081526020810190915261138c565b606082600081518110614f9957fe5b602002602001015190506000600190505b8351811015614fda57614fd082858381518110614fc357fe5b6020026020010151615de5565b9150600101614faa565b50610f23614fed825160c060ff16615e62565b82615de5565b6060806000808080806150046127db565b6001549091505b801561511257600181039250600b838154811061502457fe5b600091825260209091206001601690920201015460ff1661504457615109565b6001838154811061505157fe5b60009182526020909120600490910201546001600160a01b03169450615078858484612fe1565b935083158061508b575060018a51038610155b1561509557615109565b60005b8a5181101561510757856001600160a01b03168b82815181106150b757fe5b6020026020010151600001516001600160a01b031614156150ff5760018b82815181106150e057fe5b6020908102919091010151901515608090910152600190960195615107565b600101615098565b505b6000190161500b565b508489510360405190808252806020026020018201604052801561515057816020015b61513d6164ea565b8152602001906001900390816151355790505b5096508489510360405190808252806020026020018201604052801561518a57816020015b60608152602001906001900390816151755790505b5095506000915060005b895181101561521e578981815181106151a957fe5b602002602001015160800151615216578981815181106151c557fe5b60200260200101518884815181106151d957fe5b60200260200101819052508881815181106151f057fe5b602002602001015187848151811061520457fe5b60200260200101819052508260010192505b600101615194565b5050505050505b9250929050565b600154825160005b828110156153495760016152466164ea565b6001838154811061525357fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b8481101561531d578781815181106152e357fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b03161415615315576000925061531d565b6001016152cf565b50811561533f5780516001600160a01b03166000908152600460205260408120555b5050600101615234565b508082111561540857805b8281101561540657600180548061536757fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b8054806153ba57fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906153ec60028301826165be565b6153fa600383016000616602565b50509055600101615354565b505b60008183106154175781615419565b825b905060005b81811015615788576154cb86828151811061543557fe5b60200260200101516001838154811061544a57fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a0820152615f34565b61567f5780600101600460008884815181106154e357fe5b6020026020010151600001516001600160a01b03166001600160a01b031681526020019081526020016000208190555085818151811061551f57fe5b60200260200101516001828154811061553457fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a09091015160039091015584518590829081106155ef57fe5b6020026020010151600b828154811061560457fe5b906000526020600020906016020160020190805190602001906156289291906163ff565b506000600b828154811061563857fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b80548390811061566957fe5b6000918252602090912060169091020155615780565b61571085828151811061568e57fe5b6020026020010151600b83815481106156a357fe5b600091825260209182902060026016909202018101805460408051601f600019610100600186161502019093169490940491820185900485028401850190528083529192909190830182828015612ad35780601f10612aa857610100808354040283529160200191612ad3565b61575b5784818151811061572057fe5b6020026020010151600b828154811061573557fe5b906000526020600020906016020160020190805190602001906157599291906163ff565b505b60006001828154811061576a57fe5b9060005260206000209060040201600301819055505b60010161541e565b5082821115615960576157996163d0565b835b8381101561595d578581815181106157af57fe5b6020026020010151826040018190525060018782815181106157cd57fe5b6020908102919091018101518254600181810185556000948552838520835160049093020180546001600160a01b039384166001600160a01b0319918216178255848601518284018054918616918316919091179055604080860151600284018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909a1692909616919091179290921696909617169190911790935560a090930151600390930192909255600b80549283018155909352845160169091026000805160206177f28339815191528101918255858301516000805160206178328339815191528201805491151560ff199092169190911790559285015180518694929361590393600080516020617812833981519152019201906163ff565b5060608201516159199060038301906013616479565b505050806001016004600089848151811061593057fe5b602090810291909101810151516001600160a01b031682528101919091526040016000205560010161579b565b50505b615968615fb5565b615970616197565b6000600981905560015493505b838110156159de576000600b828154811061599457fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b8054839081106159c557fe5b600091825260209091206016909102015560010161597d565b505050505050565b60008183615a075760405162461bcd60e51b8152600401610cbc9190616b12565b506000838581615a1357fe5b0495945050505050565b60008184841115615a415760405162461bcd60e51b8152600401610cbc9190616b12565b505050900390565b8051600090615a5a5750600061138c565b6020820151805160001a9060c0821015615a795760009250505061138c565b5060019392505050565b8051600090811a6080811015615a9d57600091505061138c565b60b8811080615ab8575060c08110801590615ab8575060f881105b15615ac757600191505061138c565b60c0811015615adb5760b51901905061138c565b60f51901905061138c565b80516000908190811a6080811015615b015760019150615bc0565b60b8811015615b1657607e1981019150615bc0565b60c0811015615b6757600060b78203600186019550806020036101000a865104915060018101820193505080831015615b615760405162461bcd60e51b8152600401610cbc906170b6565b50615bc0565b60f8811015615b7c5760be1981019150615bc0565b600060f78203600186019550806020036101000a865104915060018101820193505080831015615bbe5760405162461bcd60e51b8152600401610cbc906170b6565b505b5092915050565b8051600090615bd85750600061138c565b60008090506000615bec8460200151615a83565b602085015185519181019250015b80821015615c1a57615c0b82615ae6565b82019150826001019250615bfa565b50909392505050565b8051600090601514615c3457600080fd5b61143c82614ceb565b8051606090615c4b57600080fd5b6000615c5a8360200151615a83565b83516040805191839003808352601f19601f8201168301602001909152919250606090828015615c91576020820181803683370190505b50905060008160200190506147b0848760200151018285616385565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416615cf157506018615d15565b6fffffffffffffffffffffffffffffffff198416615d1157506010615d15565b5060005b6020811015615d4b57818181518110615d2a57fe5b01602001516001600160f81b03191615615d4357615d4b565b600101615d15565b60008160200390506060816040519080825280601f01601f191660200182016040528015615d80576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015615dc55750607f60f81b82600081518110615db357fe5b01602001516001600160f81b03191611155b15615dd157508061138c565b61143c615de38351608060ff16615e62565b835b6060806040519050835180825260208201818101602087015b81831015615e16578051835260209283019201615dfe565b50855184518101855292509050808201602086015b81831015615e43578051835260209283019201615e2b565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310615e8c5760405162461bcd60e51b8152600401610cbc90616eba565b60408051600180825281830190925260609160208201818036833701905050905060378411615ee65782840160f81b81600081518110615ec857fe5b60200101906001600160f81b031916908160001a905350905061143c565b6060615ef185615cad565b90508381510160370160f81b82600081518110615f0a57fe5b60200101906001600160f81b031916908160001a905350615f2b8282615de5565b95945050505050565b805182516000916001600160a01b039182169116148015615f6e575081602001516001600160a01b031683602001516001600160a01b0316145b8015615f93575081604001516001600160a01b031683604001516001600160a01b0316145b8015610f235750506060908101519101516001600160401b0390811691161490565b6012546013548082111561600057805b82811015615ffe576012805480615fd857fe5b600190038181906000526020600020016000615ff491906165be565b9055600101615fc5565b505b600081831061600f5781616011565b825b905060005b81811015616129576160ce6012828154811061602e57fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156160bc5780601f10616091576101008083540402835291602001916160bc565b820191906000526020600020905b81548152906001019060200180831161609f57829003601f168201915b505050505060138381548110612a4557fe5b61612157601381815481106160df57fe5b90600052602060002001601282815481106160f657fe5b90600052602060002001908054600181600116156101000203166002900461611f92919061651f565b505b600101616016565b5082821115610cdc57825b82811015612f015760126013828154811061614b57fe5b600091825260208083208454600181810187559585529190932092909101805461618e94939092019290916002610100928216159290920260001901160461651f565b50600101616134565b601354600b54808211156161e257805b828110156161e05760138054806161ba57fe5b6001900381819060005260206000200160006161d691906165be565b90556001016161a7565b505b60008183106161f157816161f3565b825b905060005b81811015616312576162b06013828154811061621057fe5b600091825260209182902001805460408051601f600260001961010060018716150201909416939093049283018590048502810185019091528181529283018282801561629e5780601f106162735761010080835404028352916020019161629e565b820191906000526020600020905b81548152906001019060200180831161628157829003601f168201915b5050505050600b83815481106156a357fe5b61630a57600b81815481106162c157fe5b9060005260206000209060160201600201601382815481106162df57fe5b90600052602060002001908054600181600116156101000203166002900461630892919061651f565b505b6001016161f8565b5082821115610cdc57825b82811015612f01576013600b828154811061633457fe5b60009182526020808320845460018082018755958552919093206016929092029092016002908101805461637c9593909401939092600019908216156101000201160461651f565b5060010161631d565b8061638f57610cdc565b5b602081106163af578251825260209283019290910190601f1901616390565b915181516020939093036101000a6000190180199091169216919091179052565b604051806080016040528060008152602001600015158152602001606081526020016163fa61662b565b905290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061644057805160ff191683800117855561646d565b8280016001018555821561646d579182015b8281111561646d578251825591602001919060010190616452565b5061281692915061664a565b826013810192821561646d579160200282018281111561646d578251825591602001919060010190616452565b6040518060600160405280600060ff16815260200160608152602001606081525090565b60405180604001604052806164dd616611565b8152602001600081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10616558578054855561646d565b8280016001018555821561646d57600052602060002091601f016020900482015b8281111561646d578254825591600101919060010190616579565b826013810192821561646d579182018281111561646d578254825591600101919060010190616579565b50805460018160011615610100020316600290046000825580601f106165e45750611598565b601f016020900490600052602060002090810190611598919061664a565b5061159890601381019061664a565b604051806040016040528060008152602001600081525090565b6040518061026001604052806013906020820280368337509192915050565b6127bb91905b808211156128165760008155600101616650565b60008083601f840112616675578182fd5b5081356001600160401b0381111561668b578182fd5b602083019150836020808302850101111561522557600080fd5b60008083601f8401126166b6578182fd5b5081356001600160401b038111156166cc578182fd5b60208301915083602082850101111561522557600080fd5b6000602082840312156166f5578081fd5b81356001600160a01b0381168114610f23578182fd5b60008060008060408587031215616720578283fd5b84356001600160401b0380821115616736578485fd5b61674288838901616664565b9096509450602087013591508082111561675a578384fd5b5061676787828801616664565b95989497509550505050565b600060208284031215616784578081fd5b81518015158114610f23578182fd5b600080602083850312156167a5578182fd5b82356001600160401b038111156167ba578283fd5b6167c6858286016166a5565b90969095509350505050565b600080600080604085870312156167e7578384fd5b84356001600160401b03808211156167fd578586fd5b616809888389016166a5565b90965094506020870135915080821115616821578384fd5b50616767878288016166a5565b60006020828403121561683f578081fd5b5035919050565b600060208284031215616857578081fd5b5051919050565b60008060408385031215616870578182fd5b505080516020909101519092909150565b600080600060408486031215616895578283fd5b833560ff811681146168a5578384fd5b925060208401356001600160401b038111156168bf578283fd5b6168cb868287016166a5565b9497909650939450505050565b6000815180845260208085019450808401835b838110156169105781516001600160a01b0316875295820195908201906001016168eb565b509495945050505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b6000815180845261695d8160208601602086016175fa565b601f01601f19169290920160200192915050565b600082516169838184602087016175fa565b9190910192915050565b918252602082015260400190565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b03968716815294861660208601529290941660408401526001600160401b03166060830152911515608082015260a081019190915260c00190565b600060208252610f2360208301846168d8565b600060408252616a3060408301856168d8565b602083820381850152818551808452828401915082838202850101838801865b83811015616a7e57601f19878403018552616a6c838351616945565b94860194925090850190600101616a50565b50909998505050505050505050565b600060808252616aa060808301876168d8565b828103602084810191909152865180835287820192820190845b81811015616ad657845183529383019391830191600101616aba565b50508481036040860152616aea81886168d8565b93505050506001600160401b038316606083015295945050505050565b901515815260200190565b600060208252610f236020830184616945565b600060408252616b3960408301868861691b565b8281036020840152616b4c81858761691b565b979650505050505050565b6020808252601c908201527f6c656e677468206f66206275726e526174696f206d69736d6174636800000000604082015260600190565b60208082526026908201527f6c656e677468206f66206d61784e756d4f664d61696e7461696e696e67206d696040820152650e6dac2e8c6d60d31b606082015260800190565b6020808252601b908201527f6261746368207472616e736665722072657475726e2066616c73650000000000604082015260600190565b6020808252602c908201527f6c656e677468206f66206d61784e756d4f66576f726b696e6743616e6469646160408201526b0e8cae640dad2e6dac2e8c6d60a31b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61696e7461696e536c6173685363616c65206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252818101527f6c656e677468206f66206e756d4f66436162696e657473206d69736d61746368604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526028908201527f746865206e756d4f66436162696e657473206d75737420626520677265617465604082015267072207468616e20360c41b606082015260800190565b60208082526039908201527f746865206e756d4f66436162696e657473206d757374206265206c657373207460408201527f68616e204d41585f4e554d5f4f465f56414c494441544f525300000000000000606082015260800190565b60208082526029908201527f746865206e756d626572206f662076616c696461746f727320657863656564206040820152681d1a19481b1a5b5a5d60ba1b606082015260800190565b60208082526022908201527f63616e206e6f7420646f207468697320747769636520696e206f6e6520626c6f604082015261636b60f01b606082015260800190565b6020808252602b908201527f746865206275726e526174696f206d757374206265206e6f206772656174657260408201526a0207468616e2031303030360ac1b606082015260800190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526037908201527f746865206d61784e756d4f664d61696e7461696e696e67206d7573742062652060408201527f6c657373207468616e206e756d4f66436162696e657473000000000000000000606082015260800190565b6020808252602b908201527f6475706c696361746520636f6e73656e7375732061646472657373206f66207660408201526a185b1a59185d1bdc94d95d60aa1b606082015260800190565b60208082526027908201527f7468652065787069726554696d655365636f6e64476170206973206f7574206f604082015266662072616e676560c81b606082015260800190565b6020808252601590820152746465706f7369742076616c7565206973207a65726f60581b604082015260600190565b60208082526049908201527f746865206d61784e756d4f66576f726b696e6743616e64696461746573206d7560408201527f7374206265206e6f742067726561746572207468616e206d61784e756d4f6643606082015268616e6469646174657360b81b608082015260a00190565b60208082526027908201527f7468652066696e616c697479526577617264526174696f206973206f7574206f604082015266662072616e676560c81b606082015260800190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b60208082526023908201527f63616e206e6f7420656e7465722054656d706f72617279204d61696e74656e616040820152626e636560e81b606082015260800190565b60208082526025908201527f6c656e677468206f66206a61696c2076616c696461746f7273206d757374206260408201526465206f6e6560d81b606082015260800190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61784e756d4f6643616e64696461746573206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252601290820152716e6f7420696e206d61696e74656e616e636560701b604082015260600190565b60208082526021908201527f666565206973206c6172676572207468616e2044555354595f494e434f4d494e6040820152604760f81b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b60208082526026908201527f6c656e677468206f662066696e616c697479526577617264526174696f206d696040820152650e6dac2e8c6d60d31b606082015260800190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526026908201527f6c656e677468206f662065787069726554696d655365636f6e64476170206d696040820152650e6dac2e8c6d60d31b606082015260800190565b60208082526017908201527f6f6e6c792063757272656e742076616c696461746f7273000000000000000000604082015260600190565b60208082526021908201527f6661696c656420746f20706172736520696e69742076616c696461746f7253656040820152601d60fa1b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b6020808252603e908201527f746865206d61696e7461696e536c6173685363616c65206d757374206265206760408201527f726561746572207468616e203020616e64206c657373207468616e2031300000606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b60208082526029908201527f746865206d6573736167652073656e646572206d75737420626520736c6173686040820152680818dbdb9d1c9858dd60ba1b606082015260800190565b61ffff91909116815260200190565b90815260200190565b6000848252831515602083015260606040830152615f2b6060830184616945565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff8516825260406020830152615f2b60408301848661691b565b60005b838110156176155781810151838201526020016175fd565b83811115612f01575050600091015256fef901a880f901a4f844941284214b9b9c85549ab3d2b972df0deef66ac2c9946ddf42a51534fc98d0c0a3b42c963cace8441ddf946ddf42a51534fc98d0c0a3b42c963cace8441ddf8410000000f84494a2959d3f95eae5dc7d70144ce1b73b403b7eb6e0948081ef03f1d9e0bb4a5bf38f16285c879299f07f948081ef03f1d9e0bb4a5bf38f16285c879299f07f8410000000f8449435552c16704d214347f29fa77f77da6d75d7c75294dc4973e838e3949c77aced16ac2315dc2d7ab11194dc4973e838e3949c77aced16ac2315dc2d7ab1118410000000f84494980a75ecd1309ea12fa2ed87a8744fbfc9b863d594cc6ac05c95a99c1f7b5f88de0e3486c82293b27094cc6ac05c95a99c1f7b5f88de0e3486c82293b2708410000000f84494f474cf03cceff28abc65c9cbae594f725c80e12d94e61a183325a18a173319dd8e19c8d069459e217594e61a183325a18a173319dd8e19c8d069459e21758410000000f84494b71b214cb885500844365e95cd9942c7276e7fd894d22ca3ba2141d23adab65ce4940eb7665ea2b6a794d22ca3ba2141d23adab65ce4940eb7665ea2b6a7841000000070e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb20175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbb0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbaa26469706673582212201bfbc326e63aa136a8685cddd241600b97b8502885f737aee34f1189c78be29b64736f6c63430006040033", - }, - { - ContractAddr: SlashContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/0f352c4623898d92664a46cbfc26c52b79aad838", - Code: "608060405234801561001057600080fd5b506004361061027f5760003560e01c80637942fd051161015c578063c80d4b8f116100ce578063dc927faf11610087578063dc927faf146104ad578063e1c7392a146104b5578063f9a2bbc7146104bd578063fc3e5908146104c5578063fc4333cd146104cd578063fd6a6879146104d55761027f565b8063c80d4b8f1461045c578063c81b166214610464578063c8509d811461046c578063c96be4cb1461047f578063cc844b7314610492578063d2a42e4b146104a55761027f565b80639dc09262116101205780639dc0926214610421578063a1a11bf514610429578063a78abc1614610431578063ab51bb9614610439578063ac0af62914610441578063ac431751146104495761027f565b80637942fd05146103ee5780638256ace6146103f6578063831d65d1146103fe57806396713da9146104115780639bc8e4f2146104195761027f565b8063493279b1116101f557806362b72cf5116101b957806362b72cf5146103be5780636e47b482146103c657806370fd5bad146103ce578063718a8aa8146103d657806375d47a0a146103de5780637912a65d146103e65761027f565b8063493279b11461037c5780634bf6c8821461039157806351e8067214610399578063567a372d146103a15780635bfb4990146103a95761027f565b806335aa2e441161024757806335aa2e441461030e57806337c8dab914610321578063389f4f71146103425780633a63f4b1146103575780633dffc3871461035f57806343756e5c146103745761027f565b80630bee7a67146102845780630e2374a5146102a25780631182b875146102b757806322d1e80b146102d757806323bac5a2146102ec575b600080fd5b61028c6104dd565b604051610299919061336a565b60405180910390f35b6102aa6104e2565b6040516102999190612c1b565b6102ca6102c5366004612b51565b6104e8565b6040516102999190612c53565b6102df61054e565b6040516102999190612c48565b6102ff6102fa3660046128ff565b610557565b60405161029993929190613352565b6102aa61031c366004612b21565b61057a565b61033461032f3660046128ff565b6105a1565b604051610299929190613344565b61034a6105f8565b604051610299919061331a565b61034a6105fe565b610367610604565b604051610299919061337b565b6102aa610609565b61038461060f565b604051610299919061330b565b610367610614565b6102aa610619565b61034a61061f565b6103bc6103b73660046128ff565b610625565b005b61034a6106d0565b6102aa6106d6565b6103676106dc565b6103676106e1565b6102aa6106e6565b61034a6106ec565b6103676106f1565b6103346106f6565b6103bc61040c366004612b51565b610700565b610367610812565b61034a610817565b6102aa610822565b6102aa610828565b6102df61082e565b61028c610837565b61034a61083c565b6103bc610457366004612a05565b610841565b61034a610ce0565b6102aa610ce5565b6103bc61047a366004612b51565b610ceb565b6103bc61048d3660046128ff565b610d5c565b6103bc6104a0366004612a6e565b61114d565b61034a611733565b6102aa611738565b6103bc61173e565b6102aa61177a565b610367611780565b6103bc611785565b6102aa611bce565b606481565b61200181565b606033612000146105145760405162461bcd60e51b815260040161050b90613163565b60405180910390fd5b60005460ff166105365760405162461bcd60e51b815260040161050b90612d04565b60405162461bcd60e51b815260040161050b90613254565b60075460ff1681565b600260208190526000918252604090912080546001820154919092015460ff1683565b6001818154811061058757fe5b6000918252602090912001546001600160a01b0316905081565b6000806105ac6126e6565b5050506001600160a01b0316600090815260026020818152604092839020835160608101855281548082526001830154938201849052919093015460ff16151592909301919091529091565b60055481565b60065481565b600181565b61100181565b606181565b600881565b61200081565b60045481565b33611000146106465760405162461bcd60e51b815260040161050b90612f48565b60005460ff166106685760405162461bcd60e51b815260040161050b90612d04565b61200063f7a251d7600b61067b84611bd4565b60006040518463ffffffff1660e01b815260040161069b93929190613389565b600060405180830381600087803b1580156106b557600080fd5b505af11580156106c9573d6000803e3d6000fd5b5050505050565b60035481565b61100581565b600281565b601081565b61100881565b603281565b600b81565b6004546005549091565b33612000146107215760405162461bcd60e51b815260040161050b90613163565b60005460ff166107435760405162461bcd60e51b815260040161050b90612d04565b61074b612709565b600061078c84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611ca692505050565b9150915080156107d35781516040517f7f0956d47419b9525356e7111652b653b530ec6f5096dccc04589bc38e629967916107c69161336a565b60405180910390a16106c9565b81516040517f7d45f62d17443dd4547bca8a8112c60e2385669318dc300ec61a5d2492f262e7916108039161336a565b60405180910390a15050505050565b600981565b662386f26fc1000081565b61100781565b61100681565b60005460ff1681565b600081565b600481565b60005460ff166108635760405162461bcd60e51b815260040161050b90612d04565b33611007146108845760405162461bcd60e51b815260040161050b90613020565b6108ef84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260148152731b5a5cd9195b59585b9bdc951a1c995cda1bdb1960621b60208201529150611d269050565b1561098a57602081146109145760405162461bcd60e51b815260040161050b90612ed4565b604080516020601f840181900481028201810190925282815260009161095291858580838501838280828437600092019190915250611d8092505050565b905060018110158015610966575060055481105b6109825760405162461bcd60e51b815260040161050b9061311e565b600455610c9d565b6109f084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e19995b1bdb9e551a1c995cda1bdb19608a1b60208201529150611d269050565b15610a8c5760208114610a155760405162461bcd60e51b815260040161050b9061306e565b604080516020601f8401819004810282018101909252828152600091610a5391858580838501838280828437600092019190915250611d8092505050565b90506103e88111158015610a68575060045481115b610a845760405162461bcd60e51b815260040161050b90612d72565b600555610c9d565b610b0084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f66696e616c697479536c617368526577617264526174696f000000000000000060208201529150611d269050565b15610b9a5760208114610b255760405162461bcd60e51b815260040161050b9061328b565b604080516020601f8401819004810282018101909252828152600091610b6391858580838501838280828437600092019190915250611d8092505050565b9050600a8110158015610b765750606481105b610b925760405162461bcd60e51b815260040161050b90612e88565b600655610c9d565b610c0e84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f656e61626c654d616c6963696f7573566f7465536c617368000000000000000060208201529150611d269050565b15610c855760208114610c335760405162461bcd60e51b815260040161050b90612da7565b604080516020601f8401819004810282018101909252828152610c6f9190848480838501838280828437600092019190915250611d8592505050565b6007805460ff1916911515919091179055610c9d565b60405162461bcd60e51b815260040161050b906131ff565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a84848484604051610cd29493929190612c66565b60405180910390a150505050565b609681565b61100281565b3361200014610d0c5760405162461bcd60e51b815260040161050b90613163565b60005460ff16610d2e5760405162461bcd60e51b815260040161050b90612d04565b6040517f07db600eebe2ac176be8dcebad61858c245a4961bb32ca2aa3d159b09aa0810e90600090a1505050565b334114610d7b5760405162461bcd60e51b815260040161050b906131b2565b60005460ff16610d9d5760405162461bcd60e51b815260040161050b90612d04565b6003544311610dbe5760405162461bcd60e51b815260040161050b906132d6565b3a15610ddc5760405162461bcd60e51b815260040161050b90612fc3565b60405163155853f360e21b8152611000906355614fcc90610e01908490600401612c1b565b60206040518083038186803b158015610e1957600080fd5b505afa158015610e2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5191906129e5565b610e5a57611146565b610e626126e6565b506001600160a01b0381166000908152600260208181526040928390208351606081018552815481526001820154928101929092529091015460ff161580159282019290925290610ebd576020810180516001019052610f16565b60016040820181905260208201819052805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0384161790555b438152600554602082015181610f2857fe5b0661107457600060208201526040516335409f7f60e01b8152611000906335409f7f90610f59908590600401612c1b565b600060405180830381600087803b158015610f7357600080fd5b505af1158015610f87573d6000803e3d6000fd5b505050506120006001600160a01b031663f7a251d7600b610fa785611bd4565b60006040518463ffffffff1660e01b8152600401610fc793929190613389565b600060405180830381600087803b158015610fe157600080fd5b505af1925050508015610ff2575060015b61106f573d808015611020576040519150601f19603f3d011682016040523d82523d6000602084013e611025565b606091505b50826001600160a01b03167fd7bc86ff5d08c8ab043edec743302aba2520e6635172a428bc956721db9e2d1c836020015183604051611065929190613323565b60405180910390a2505b6110e0565b60045481602001518161108357fe5b066110e0576040516375abf10160e11b81526110009063eb57e202906110ad908590600401612c1b565b600060405180830381600087803b1580156110c757600080fd5b505af11580156110db573d6000803e3d6000fd5b505050505b6001600160a01b0382166000818152600260208181526040808420865181559186015160018301558581015191909201805460ff1916911515919091179055517fddb6012116e51abf5436d956a4f0ebd927e92c576ff96d7918290c8782291e3e9190a2505b5043600355565b60005460ff1661116f5760405162461bcd60e51b815260040161050b90612d04565b604051630a83aaa960e31b81526110069063541d554890611194903390600401612c1b565b60206040518083038186803b1580156111ac57600080fd5b505afa1580156111c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111e491906129e5565b6112005760405162461bcd60e51b815260040161050b90612c98565b60075460ff166112225760405162461bcd60e51b815260040161050b90612ccf565b60065461122f5760146006555b438160000151604001516101000111801561125557504381602001516040015161010001115b6112715760405162461bcd60e51b815260040161050b90613226565b80602001516020015181600001516020015114801561129f5750806020015160600151816000015160600151145b156112bc5760405162461bcd60e51b815260040161050b90612f1b565b8051604081015190511080156112db5750602081015160408101519051105b6112f75760405162461bcd60e51b815260040161050b90612e51565b60208101515181515110801561131c5750806000015160400151816020015160400151105b8061134757508051516020820151511080156113475750806020015160400151816000015160400151105b806113615750806020015160400151816000015160400151145b61137d5760405162461bcd60e51b815260040161050b90612d3b565b604080820151905163ea321e4960e01b81526110009163ea321e49916113a69190600401612c53565b60206040518083038186803b1580156113be57600080fd5b505afa1580156113d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113f691906129e5565b6114125760405162461bcd60e51b815260040161050b90612ff1565b61142481600001518260400151611dad565b801561143d575061143d81602001518260400151611dad565b6114595760405162461bcd60e51b815260040161050b90612df2565b6060806110006001600160a01b0316633b071dcc6040518163ffffffff1660e01b815260040160006040518083038186803b15801561149757600080fd5b505afa1580156114ab573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526114d39190810190612922565b9150915060005b8151811015611610576115048282815181106114f257fe5b60200260200101518560400151611f85565b15611608576006546040516309a99b4f60e41b815260646110028031909302049190639a99b4f09061153c9033908590600401612c2f565b602060405180830381600087803b15801561155657600080fd5b505af115801561156a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061158e9190612b39565b506110006001600160a01b03166335409f7f8584815181106115ac57fe5b60200260200101516040518263ffffffff1660e01b81526004016115d09190612c1b565b600060405180830381600087803b1580156115ea57600080fd5b505af11580156115fe573d6000803e3d6000fd5b5050505050611610565b6001016114da565b50600061162284604001516000611fe9565b90506120006001600160a01b031663f7a251d7600b6116448760400151612005565b60006040518463ffffffff1660e01b815260040161166493929190613389565b600060405180830381600087803b15801561167e57600080fd5b505af192505050801561168f575060015b611701573d8080156116bd576040519150601f19603f3d011682016040523d82523d6000602084013e6116c2565b606091505b50817fd58d1183100bd0932c0588f31c4205d6bc6168909765a96c41adbed3115f3628826040516116f39190612c53565b60405180910390a25061172d565b60405181907f7b78aadacff901d8b63d0dba4f86283d4db8aef27f9ed70413dd860f1c9532b690600090a25b50505050565b601481565b61100381565b60005460ff16156117615760405162461bcd60e51b815260040161050b906130b0565b603260045560966005556000805460ff19166001179055565b61100081565b600381565b33611000146117a65760405162461bcd60e51b815260040161050b90612f48565b60005460ff166117c85760405162461bcd60e51b815260040161050b90612d04565b6001546117d457611bcc565b600154600090600019015b808211611ba0576000805b82841015611903576117fa6126e6565b600260006001878154811061180b57fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff1615159082015260055490915060049004816020015111156118ed5760046005548161187857fe5b0481602001510381602001818152505080600260006001888154811061189a57fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208351815591830151600183015591909101516002909101805460ff19169115159190911790556118f7565b6001925050611903565b508360010193506117ea565b828411611a9a576119126126e6565b600260006001868154811061192357fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff161515908201526005549091506004900481602001511115611a0b5760046005548161199057fe5b048160200151038160200181815250508060026000600187815481106119b257fe5b6000918252602080832091909101546001600160a01b03168352828101939093526040918201902083518155918301516001808401919091559201516002909101805460ff19169115159190911790559150611a9a9050565b6002600060018681548110611a1c57fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff19169055805480611a6057fe5b600082815260209020810160001990810180546001600160a01b031916905501905583611a8d5750611a9a565b5060001990920191611903565b818015611aa45750805b15611b83576002600060018681548110611aba57fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff19169055805484908110611b0157fe5b600091825260209091200154600180546001600160a01b039092169186908110611b2757fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506001805480611b6057fe5b600082815260209020810160001990810180546001600160a01b03191690550190555b82611b8f575050611ba0565b5050600190910190600019016117df565b6040517fcfdb3b6ccaeccbdc68be3c59c840e3b3c90f0a7c491f5fff1cf56cfda200dd9c90600090a150505b565b61100481565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081611bef579050509050611c18836001600160a01b0316612040565b81600081518110611c2557fe5b6020026020010181905250611c3943612063565b81600181518110611c4657fe5b6020908102919091010152611c5b6061612063565b81600281518110611c6857fe5b6020026020010181905250611c7c42612063565b81600381518110611c8957fe5b6020026020010181905250611c9d81612076565b9150505b919050565b611cae612709565b6000611cb8612709565b611cc061271b565b611cd1611ccc86612100565b612125565b90506000805b611ce08361216f565b15611d195780611d0c57611cfb611cf684612190565b6121de565b63ffffffff16845260019150611d11565b611d19565b600101611cd7565b5091935090915050915091565b600081604051602001611d399190612bff565b6040516020818303038152906040528051906020012083604051602001611d609190612bff565b604051602081830303815290604052805190602001201490505b92915050565b015190565b8082015160009060ff811615611d9f576001915081611da5565b60009150815b505092915050565b60408051600480825260a0820190925260009160609190816020015b6060815260200190600190039081611dc9575050604080516020808252818301909252919250606091908082018180368337019050509050611e0e8560000151612063565b82600081518110611e1b57fe5b6020026020010181905250611e366020866020015183612260565b611e3f81612270565b82600181518110611e4c57fe5b6020026020010181905250611e648560400151612063565b82600281518110611e7157fe5b6020026020010181905250611e8c6020866060015183612260565b611e9581612270565b82600381518110611ea257fe5b6020026020010181905250611ec86020611ebb84612076565b8051906020012083612260565b6040805160b080825260e08201909252606091602082018180368337019050509050611ef88183600060206122c6565b611f0a818760800151602060606122c6565b611f188186608060306122c6565b604080516001808252818301909252606091602082018180368337019050509050815160016020830182602086016066600019fa611f5557600080fd5b506001611f63826000612319565b60ff1614611f78576000945050505050611d7a565b5060019695505050505050565b815181516000916001918114808314611fa15760009250611fdf565b600160208701838101602088015b600284838510011415611fda578051835114611fce5760009650600093505b60209283019201611faf565b505050505b5090949350505050565b60008160200183511015611ffc57600080fd5b50016020015190565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081612020579050509050611c1883612270565b60408051600560a21b8318601482015260348101909152606090611c9d81612270565b6060611d7a61207183612335565b612270565b60608151600014156120975750604080516000815260208101909152611ca1565b6060826000815181106120a657fe5b602002602001015190506000600190505b83518110156120e7576120dd828583815181106120d057fe5b602002602001015161241b565b91506001016120b7565b50611c9d6120fa825160c060ff16612498565b8261241b565b61210861273b565b506040805180820190915281518152602082810190820152919050565b61212d61271b565b6121368261256a565b61213f57600080fd5b600061214e83602001516125a4565b60208085015160408051808201909152868152920190820152915050919050565b600061217961273b565b505080518051602091820151919092015191011190565b61219861273b565b6121a18261216f565b6121aa57600080fd5b602082015160006121ba82612607565b80830160209586015260408051808201909152908152938401919091525090919050565b8051600090158015906121f357508151602110155b6121fc57600080fd5b600061220b83602001516125a4565b905080836000015110156122315760405162461bcd60e51b815260040161050b906130e7565b82516020808501518301805192849003929183101561225757826020036101000a820491505b50949350505050565b9091018181526020918201910152565b6060815160011480156122a25750607f60f81b8260008151811061229057fe5b01602001516001600160f81b03191611155b156122ae575080611ca1565b611d7a6122c08351608060ff16612498565b8361241b565b60005b818110156106c9578381815181106122dd57fe5b602001015160f81c60f81b8584806001019550815181106122fa57fe5b60200101906001600160f81b031916908160001a9053506001016122c9565b6000816001018351101561232c57600080fd5b50016001015190565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166123795750601861239d565b6fffffffffffffffffffffffffffffffff1984166123995750601061239d565b5060005b60208110156123d3578181815181106123b257fe5b01602001516001600160f81b031916156123cb576123d3565b60010161239d565b60008160200390506060816040519080825280601f01601f191660200182016040528015612408576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b8183101561244c578051835260209283019201612434565b50855184518101855292509050808201602086015b81831015612479578051835260209283019201612461565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106124c25760405162461bcd60e51b815260040161050b90612e29565b6040805160018082528183019092526060916020820181803683370190505090506037841161251c5782840160f81b816000815181106124fe57fe5b60200101906001600160f81b031916908160001a9053509050611d7a565b606061252785612335565b90508381510160370160f81b8260008151811061254057fe5b60200101906001600160f81b031916908160001a905350612561828261241b565b95945050505050565b805160009061257b57506000611ca1565b6020820151805160001a9060c082101561259a57600092505050611ca1565b5060019392505050565b8051600090811a60808110156125be576000915050611ca1565b60b88110806125d9575060c081108015906125d9575060f881105b156125e8576001915050611ca1565b60c08110156125fc5760b519019050611ca1565b60f519019050611ca1565b80516000908190811a608081101561262257600191506126df565b60b881101561263757607e19810191506126df565b60c081101561268857600060b78203600186019550806020036101000a8651049150600181018201935050808310156126825760405162461bcd60e51b815260040161050b90612f98565b506126df565b60f881101561269d5760be19810191506126df565b600060f78203600186019550806020036101000a865104915060018101820193505080831015611da55760405162461bcd60e51b815260040161050b90612f98565b5092915050565b604051806060016040528060008152602001600081526020016000151581525090565b60408051602081019091526000815290565b604051806040016040528061272e61273b565b8152602001600081525090565b604051806040016040528060008152602001600081525090565b600082601f830112612765578081fd5b8151612778612773826133dc565b6133b5565b818152915060208083019084810160005b848110156127ee578151870188603f8201126127a457600080fd5b838101516127b4612773826133fc565b81815260408b818486010111156127ca57600080fd5b6127d983888401838701613420565b50865250509282019290820190600101612789565b505050505092915050565b60008083601f84011261280a578182fd5b50813567ffffffffffffffff811115612821578182fd5b60208301915083602082850101111561283957600080fd5b9250929050565b600082601f830112612850578081fd5b813561285e612773826133fc565b915080825283602082850101111561287557600080fd5b8060208401602084013760009082016020015292915050565b600060a0828403121561289f578081fd5b6128a960a06133b5565b905081358152602082013560208201526040820135604082015260608201356060820152608082013567ffffffffffffffff8111156128e757600080fd5b6128f384828501612840565b60808301525092915050565b600060208284031215612910578081fd5b813561291b8161344c565b9392505050565b60008060408385031215612934578081fd5b825167ffffffffffffffff8082111561294b578283fd5b81850186601f82011261295c578384fd5b8051925061296c612773846133dc565b80848252602080830192508084018a82838902870101111561298c578788fd5b8794505b868510156129b75780516129a38161344c565b845260019490940193928101928101612990565b5088015190965093505050808211156129ce578283fd5b506129db85828601612755565b9150509250929050565b6000602082840312156129f6578081fd5b8151801515811461291b578182fd5b60008060008060408587031215612a1a578182fd5b843567ffffffffffffffff80821115612a31578384fd5b612a3d888389016127f9565b90965094506020870135915080821115612a55578384fd5b50612a62878288016127f9565b95989497509550505050565b600060208284031215612a7f578081fd5b813567ffffffffffffffff80821115612a96578283fd5b81840160608187031215612aa8578384fd5b612ab260606133b5565b9250803582811115612ac2578485fd5b612ace8782840161288e565b845250602081013582811115612ae2578485fd5b612aee8782840161288e565b602085015250604081013582811115612b05578485fd5b612b1187828401612840565b6040850152509195945050505050565b600060208284031215612b32578081fd5b5035919050565b600060208284031215612b4a578081fd5b5051919050565b600080600060408486031215612b65578283fd5b833560ff81168114612b75578384fd5b9250602084013567ffffffffffffffff811115612b90578283fd5b612b9c868287016127f9565b9497909650939450505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008151808452612beb816020860160208601613420565b601f01601f19169290920160200192915050565b60008251612c11818460208701613420565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b60006020825261291b6020830184612bd3565b600060408252612c7a604083018688612ba9565b8281036020840152612c8d818587612ba9565b979650505050505050565b6020808252601f908201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604082015260600190565b6020808252818101527f6d616c6963696f757320766f746520736c617368206e6f7420656e61626c6564604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252601a908201527f6e6f2076696f6c6174696f6e206f6620766f74652072756c6573000000000000604082015260600190565b6020808252818101527f7468652066656c6f6e795468726573686f6c64206f7574206f662072616e6765604082015260600190565b6020808252602b908201527f6c656e677468206f6620656e61626c654d616c6963696f7573566f7465536c6160408201526a0e6d040dad2e6dac2e8c6d60ab1b606082015260800190565b60208082526017908201527f766572696679207369676e6174757265206661696c6564000000000000000000604082015260600190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526019908201527f7372634e756d20626967676572207468616e207461724e756d00000000000000604082015260600190565b6020808252602c908201527f7468652066696e616c69747920736c6173682072657761726420726174696f2060408201526b6f7574206f662072616e676560a01b606082015260800190565b60208082526027908201527f6c656e677468206f66206d697364656d65616e6f725468726573686f6c64206d6040820152660d2e6dac2e8c6d60cb1b606082015260800190565b60208082526013908201527274776f206964656e746963616c20766f74657360681b604082015260600190565b60208082526030908201527f746865206d6573736167652073656e646572206d7573742062652076616c696460408201526f185d1bdc94d95d0818dbdb9d1c9858dd60821b606082015260800190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b6020808252601590820152741d9bdd195059191c881a5cc81b9bdd08199bdd5b99605a1b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526022908201527f6c656e677468206f662066656c6f6e795468726573686f6c64206d69736d61746040820152610c6d60f31b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526025908201527f746865206d697364656d65616e6f725468726573686f6c64206f7574206f662060408201526472616e676560d81b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b6020808252601490820152731d185c99d95d08189b1bd8dac81d1bdbc81bdb1960621b604082015260600190565b6020808252601e908201527f7265636569766520756e65787065637465642073796e207061636b6167650000604082015260600190565b6020808252602b908201527f6c656e677468206f662066696e616c697479536c61736852657761726452617460408201526a0d2de40dad2e6dac2e8c6d60ab1b606082015260800190565b6020808252818101527f63616e206e6f7420736c61736820747769636520696e206f6e6520626c6f636b604082015260600190565b61ffff91909116815260200190565b90815260200190565b60008382526040602083015261333c6040830184612bd3565b949350505050565b918252602082015260400190565b92835260208301919091521515604082015260600190565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff85168252606060208301526133a56060830185612bd3565b9050826040830152949350505050565b60405181810167ffffffffffffffff811182821017156133d457600080fd5b604052919050565b600067ffffffffffffffff8211156133f2578081fd5b5060209081020190565b600067ffffffffffffffff821115613412578081fd5b50601f01601f191660200190565b60005b8381101561343b578181015183820152602001613423565b8381111561172d5750506000910152565b6001600160a01b038116811461346157600080fd5b5056fea2646970667358221220c3310788cc2517fb88ccc86019bc9b743e07923bbb3700f681487f4aa3af63b964736f6c63430006040033", - }, - }, - } - - PlatoUpgrade[networkname.RialtoChainName] = &Upgrade{ - UpgradeName: "plato", - Configs: []*UpgradeConfig{ - { - ContractAddr: ValidatorContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/0f352c4623898d92664a46cbfc26c52b79aad838", - Code: "60806040526004361061048d5760003560e01c806388b32f1111610255578063c81b166211610144578063e40716a1116100c1578063f92eb86b11610085578063f92eb86b14610bd7578063f9a2bbc714610bec578063fc3e590814610c01578063fccc281314610c16578063fd4ad81f14610c2b578063fd6a687914610c5a57610494565b8063e40716a114610b5a578063ea321e4914610b6f578063eb57e20214610b8f578063eda5868c14610baf578063f340fa0114610bc457610494565b8063d86222d511610108578063d86222d514610af1578063daacdb6614610b06578063dc927faf14610b1b578063e086c7b114610b30578063e1c7392a14610b4557610494565b8063c81b166214610a92578063c8509d81146108a0578063ce910b0c14610aa7578063d04aa99614610ac7578063d68fb56a14610adc57610494565b8063a78abc16116101d2578063aef198a911610196578063aef198a914610a31578063b7ab4db514610a46578063b8cf4ef114610a68578063bf9f499514610650578063c6d3394514610a7d57610494565b8063a78abc16146109b2578063aaf5eb68146109c7578063ab51bb96146109dc578063ac431751146109f1578063ad3c9da614610a1157610494565b80639dc09262116102195780639dc09262146109495780639fe0f8161461095e578063a0dc275814610973578063a1a11bf514610988578063a5422d5c1461099d57610494565b806388b32f11146108d55780638b5ad0c9146108ea5780638d19a410146108ff5780639369d7de1461091f57806396713da91461093457610494565b80635192c82c1161037c5780636e47b482116102f95780637942fd05116102bd5780637942fd05146108615780637a84ca2a1461087657806381650b621461088b578063831d65d1146108a0578063853230aa1461084c57806386249882146108c057610494565b80636e47b482146107f857806370fd5bad1461080d578063718a8aa81461082257806375d47a0a1461083757806378dfed4a1461084c57610494565b80635667515a116103405780635667515a146107675780635d77156c1461077c57806360eba4fe1461079157806362b72cf5146107b15780636969a25c146107c657610494565b80635192c82c146106e857806351e80672146106fd578063549b03f21461071257806355614fcc14610727578063565c56b31461074757610494565b80633365af3a1161040a57806343756e5c116103ce57806343756e5c1461067257806345cf9daf14610687578063493279b11461069c5780634bf6c882146106be5780634df6e0c3146106d357610494565b80633365af3a146105d857806335409f7f146105f85780633b071dcc146106185780633de0f0d81461063b5780633dffc3871461065057610494565b8063152ad3b811610451578063152ad3b81461054c5780631ff180691461056e578063219f22d514610583578063300c356714610598578063321d398a146105b857610494565b806304c4fec61461049957806307a56847146104b05780630bee7a67146104db5780630e2374a5146104fd5780631182b8751461051f57610494565b3661049457005b600080fd5b3480156104a557600080fd5b506104ae610c6f565b005b3480156104bc57600080fd5b506104c5610ce1565b6040516104d29190617595565b60405180910390f35b3480156104e757600080fd5b506104f0610ce7565b6040516104d291906175bf565b34801561050957600080fd5b50610512610cec565b6040516104d2919061699c565b34801561052b57600080fd5b5061053f61053a366004616882565b610cf2565b6040516104d29190616b13565b34801561055857600080fd5b50610561610f2a565b6040516104d29190616b08565b34801561057a57600080fd5b506104c5610f33565b34801561058f57600080fd5b506104f0610f39565b3480156105a457600080fd5b506104ae6105b336600461670c565b610f3e565b3480156105c457600080fd5b506105616105d336600461682f565b6112c2565b3480156105e457600080fd5b506105616105f336600461682f565b611391565b34801561060457600080fd5b506104ae6106133660046166e5565b611442565b34801561062457600080fd5b5061062d61159b565b6040516104d2929190616a1e565b34801561064757600080fd5b506104c5611877565b34801561065c57600080fd5b5061066561187d565b6040516104d291906175d0565b34801561067e57600080fd5b50610512611882565b34801561069357600080fd5b506104c5611888565b3480156106a857600080fd5b506106b161188e565b6040516104d29190617586565b3480156106ca57600080fd5b50610665611894565b3480156106df57600080fd5b5061062d611899565b3480156106f457600080fd5b506104c5611a17565b34801561070957600080fd5b50610512611a1d565b34801561071e57600080fd5b506104c5611a23565b34801561073357600080fd5b506105616107423660046166e5565b611a29565b34801561075357600080fd5b506104c56107623660046166e5565b611a5e565b34801561077357600080fd5b50610665611aaf565b34801561078857600080fd5b506104f0611ab4565b34801561079d57600080fd5b5061053f6107ac36600461682f565b611ab9565b3480156107bd57600080fd5b506104c5611b5f565b3480156107d257600080fd5b506107e66107e136600461682f565b611b65565b6040516104d2969594939291906169c9565b34801561080457600080fd5b50610512611bc9565b34801561081957600080fd5b50610665611bcf565b34801561082e57600080fd5b50610665611bd4565b34801561084357600080fd5b50610512611bd9565b34801561085857600080fd5b506104c5611bdf565b34801561086d57600080fd5b50610665611be5565b34801561088257600080fd5b506104c5611bea565b34801561089757600080fd5b506104f0611bf0565b3480156108ac57600080fd5b506104ae6108bb366004616882565b611bf5565b3480156108cc57600080fd5b506104c5611c56565b3480156108e157600080fd5b506104c5611c5c565b3480156108f657600080fd5b506104c5611c62565b34801561090b57600080fd5b506104c561091a3660046166e5565b611c68565b34801561092b57600080fd5b506104ae611ca8565b34801561094057600080fd5b50610665611dbc565b34801561095557600080fd5b50610512611dc1565b34801561096a57600080fd5b506104c5611dc7565b34801561097f57600080fd5b506104c5611dcc565b34801561099457600080fd5b50610512611dd1565b3480156109a957600080fd5b5061053f611dd7565b3480156109be57600080fd5b50610561611df6565b3480156109d357600080fd5b506104c5611dff565b3480156109e857600080fd5b506104f0611aaf565b3480156109fd57600080fd5b506104ae610a0c3660046167d3565b611e08565b348015610a1d57600080fd5b506104c5610a2c3660046166e5565b6126b4565b348015610a3d57600080fd5b506104c56126c6565b348015610a5257600080fd5b50610a5b6126d3565b6040516104d29190616a0b565b348015610a7457600080fd5b506104c56127bf565b348015610a8957600080fd5b506104c5611bcf565b348015610a9e57600080fd5b506105126127c4565b348015610ab357600080fd5b5061053f610ac236600461682f565b6127ca565b348015610ad357600080fd5b506104c56127d7565b348015610ae857600080fd5b506104c56127dc565b348015610afd57600080fd5b506104c561281b565b348015610b1257600080fd5b506104c5612827565b348015610b2757600080fd5b5061051261282d565b348015610b3c57600080fd5b506104c5612833565b348015610b5157600080fd5b506104ae612838565b348015610b6657600080fd5b506104c56129e7565b348015610b7b57600080fd5b50610561610b8a366004616794565b6129ed565b348015610b9b57600080fd5b506104ae610baa3660046166e5565b612b73565b348015610bbb57600080fd5b506104f0612c7b565b6104ae610bd23660046166e5565b612c80565b348015610be357600080fd5b506104c5612f08565b348015610bf857600080fd5b50610512612f0e565b348015610c0d57600080fd5b50610665611dc7565b348015610c2257600080fd5b50610512612f14565b348015610c3757600080fd5b50610c4b610c4636600461682f565b612f1a565b6040516104d29392919061759e565b348015610c6657600080fd5b50610512612fdc565b6000610c7a33611c68565b9050600b8181548110610c8957fe5b600091825260209091206001601690920201015460ff16610cc55760405162461bcd60e51b8152600401610cbc9061723e565b60405180910390fd5b6000610ccf6127dc565b9050610cdc338383612fe2565b505050565b60095481565b606481565b61200181565b60005460609060ff16610d175760405162461bcd60e51b8152600401610cbc90616cd2565b3361200014610d385760405162461bcd60e51b8152600401610cbc9061741d565b600b54610df657610d476163d1565b60015460005b81811015610df257600b805460018101825560009190915283516000805160206177f383398151915260169092029182019081556020808601516000805160206178338339815191528401805460ff1916911515919091179055604086015180518794610dce93600080516020617813833981519152909101920190616400565b506060820151610de4906003830190601361647a565b505050806001019050610d4d565b5050505b610dfe6164a7565b6000610e3f85858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506131ce92505050565b9150915080610e5b57610e52606461338a565b92505050610f23565b815160009060ff16610e8057610e79836020015184604001516133eb565b9050610eef565b825160ff1660011415610eeb57826020015151600114610ec5576000805160206177d3833981519152604051610eb590617125565b60405180910390a1506067610ee6565b610e798360200151600081518110610ed957fe5b602002602001015161403f565b610eef565b5060655b63ffffffff8116610f145750506040805160008152602081019091529150610f239050565b610f1d8161338a565b93505050505b9392505050565b60075460ff1681565b60035481565b606881565b334114610f5d5760405162461bcd60e51b8152600401610cbc9061746c565b6010544311610f7e5760405162461bcd60e51b8152600401610cbc90616e2e565b60005460ff16610fa05760405162461bcd60e51b8152600401610cbc90616cd2565b600f54610fb8576032600f55611002316011556112b8565b60006110023168056bc75e2d63100000811115610fe757610fe081606463ffffffff6141b616565b9150611030565b60115481111561102957610fe0606461101d600f54611011601154866141f890919063ffffffff16565b9063ffffffff61423a16565b9063ffffffff6141b616565b50506112b8565b6040516309a99b4f60e41b815261100290639a99b4f09061105790309086906004016169b0565b602060405180830381600087803b15801561107157600080fd5b505af1158015611085573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110a99190616847565b611002316011559150816110be5750506112b8565b6000805b848110156110ec578585828181106110d657fe5b90506020020135820191508060010190506110c2565b50806110fa575050506112b8565b6000806000805b898110156112b0578489898381811061111657fe5b9050602002013588028161112657fe5b0493508a8a8281811061113557fe5b905060200201602081019061114a91906166e5565b6001600160a01b0381166000908152600460205260409020549093509150811561126657600060018084038154811061117f57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff16156111ec57836001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d85866040516111df9190617595565b60405180910390a2611260565b6003546111ff908663ffffffff61427416565b6003908155810154611217908663ffffffff61427416565b60038201556040516001600160a01b038516907fcb0aad6cf9cd03bdf6137e359f541c42f38b39f007cae8e89e88aa7d8c6617b290611257908890617595565b60405180910390a25b506112a8565b826001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d858560405161129f9190617595565b60405180910390a25b600101611101565b505050505050505b5050436010555050565b60015460009082106112d65750600061138c565b60006001600160a01b0316600183815481106112ee57fe5b60009182526020909120600490910201546001600160a01b0316148061131e5750600854158061131e5750600a54155b8061132d575060085460095410155b8061133e575061133c82611391565b155b8061136757506000600b838154811061135357fe5b906000526020600020906016020160000154115b8061137b575060016113776126d3565b5111155b156113885750600061138c565b5060015b919050565b60015460009082106113a55750600061138c565b600b5482106113e257600182815481106113bb57fe5b9060005260206000209060040201600201601c9054906101000a900460ff1615905061138c565b600182815481106113ef57fe5b9060005260206000209060040201600201601c9054906101000a900460ff1615801561143c5750600b828154811061142357fe5b600091825260209091206001601690920201015460ff16155b92915050565b33611001146114635760405162461bcd60e51b8152600401610cbc9061753d565b600b54611521576114726163d1565b60015460005b8181101561151d57600b805460018101825560009190915283516000805160206177f383398151915260169092029182019081556020808601516000805160206178338339815191528401805460ff19169115159190911790556040860151805187946114f993600080516020617813833981519152909101920190616400565b50606082015161150f906003830190601361647a565b505050806001019050611478565b5050505b6001600160a01b038116600090815260046020526040902054806115455750611598565b6001810390506000600b828154811061155a57fe5b600091825260209091206001601690920201015460ff16905061157d8383614299565b80156115865750805b15610cdc576009805460001901905550505b50565b60015460609081906000805b828110156115ee57600181815481106115bc57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166115e6576001909101905b6001016115a7565b5060608160405190808252806020026020018201604052801561161b578160200160208202803683370190505b50905060608260405190808252806020026020018201604052801561165457816020015b606081526020019060019003908161163f5790505b50600b54600094509091508414156117cf5760005b848110156117c9576001818154811061167e57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166117c157600181815481106116ae57fe5b600091825260209091206004909102015483516001600160a01b03909116908490869081106116d957fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600b818154811061170657fe5b600091825260209182902060026016909202018101805460408051601f60001961010060018616150201909316949094049182018590048502840185019052808352919290919083018282801561179e5780601f106117735761010080835404028352916020019161179e565b820191906000526020600020905b81548152906001019060200180831161178157829003601f168201915b50505050508285815181106117af57fe5b60209081029190910101526001909301925b600101611669565b5061186b565b60005b8481101561186957600181815481106117e757fe5b9060005260206000209060040201600201601c9054906101000a900460ff16611861576001818154811061181757fe5b600091825260209091206004909102015483516001600160a01b039091169084908690811061184257fe5b6001600160a01b03909216602092830291909101909101526001909301925b6001016117d2565b505b909450925050505b9091565b61271081565b600181565b61100181565b60085481565b6102ca81565b600881565b600e54600c546060918291806118ad575060155b60606118b76126d3565b905060606118c48261464c565b9050828251116118db579094509250611873915050565b838383510310156118ed578282510393505b83156119235760c8430461190983838388880360008a8a6147ba565b6119218383838888038989038a8b8b8b5103016147ba565b505b60608360405190808252806020026020018201604052801561194f578160200160208202803683370190505b50905060608460405190808252806020026020018201604052801561198857816020015b60608152602001906001900390816119735790505b50905060005b85811015611a09578481815181106119a257fe5b60200260200101518382815181106119b657fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508381815181106119e257fe5b60200260200101518282815181106119f657fe5b602090810291909101015260010161198e565b509096509450505050509091565b60065481565b61200081565b600f5481565b6001600160a01b03811660009081526004602052604081205480611a5157600091505061138c565b60001901610f2381611391565b6001600160a01b03811660009081526004602052604081205480611a8657600091505061138c565b600180820381548110611a9557fe5b906000526020600020906004020160030154915050919050565b600081565b606781565b60128181548110611ac657fe5b600091825260209182902001805460408051601f6002600019610100600187161502019094169390930492830185900485028101850190915281815293509091830182828015611b575780601f10611b2c57610100808354040283529160200191611b57565b820191906000526020600020905b815481529060010190602001808311611b3a57829003601f168201915b505050505081565b60105481565b60018181548110611b7257fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b601081565b61100881565b6103e881565b600b81565b600c5481565b606681565b3361200014611c165760405162461bcd60e51b8152600401610cbc9061741d565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051611c49939291906175de565b60405180910390a1505050565b60025481565b60115481565b600a5481565b6001600160a01b03811660009081526004602052604081205480611c9e5760405162461bcd60e51b8152600401610cbc906173a5565b6000190192915050565b600b54611d6657611cb76163d1565b60015460005b81811015611d6257600b805460018101825560009190915283516000805160206177f383398151915260169092029182019081556020808601516000805160206178338339815191528401805460ff1916911515919091179055604086015180518794611d3e93600080516020617813833981519152909101920190616400565b506060820151611d54906003830190601361647a565b505050806001019050611cbd565b5050505b600854611d735760036008555b600a54611d80576002600a555b6000611d8b33611c68565b9050611d96816112c2565b611db25760405162461bcd60e51b8152600401610cbc906170e2565b6115983382614911565b600981565b61100781565b600381565b60c881565b61100681565b604051806101e001604052806101ab81526020016176286101ab913981565b60005460ff1681565b6402540be40081565b60005460ff16611e2a5760405162461bcd60e51b8152600401610cbc90616cd2565b3361100714611e4b5760405162461bcd60e51b8152600401610cbc906171ab565b611eb584848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b602082015291506149a99050565b15611f525760208114611eda5760405162461bcd60e51b8152600401610cbc9061735f565b604080516020601f8401819004810282018101909252828152600091611f1891858580838501838280828437600092019190915250614a0292505050565b905060648110158015611f2e5750620186a08111155b611f4a5760405162461bcd60e51b8152600401610cbc90616f8b565b600255612671565b611fb284848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260098152686275726e526174696f60b81b602082015291506149a99050565b1561204e5760208114611fd75760405162461bcd60e51b8152600401610cbc90616b58565b604080516020601f840181900481028201810190925282815260009161201591858580838501838280828437600092019190915250614a0292505050565b90506127108111156120395760405162461bcd60e51b8152600401610cbc90616e70565b6006556007805460ff19166001179055612671565b6120b884848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260138152726d61784e756d4f664d61696e7461696e696e6760681b602082015291506149a99050565b1561215257602081146120dd5760405162461bcd60e51b8152600401610cbc90616b8f565b604080516020601f840181900481028201810190925282815260009161211b91858580838501838280828437600092019190915250614a0292505050565b600c549091508061212a575060155b8082106121495760405162461bcd60e51b8152600401610cbc90616ee3565b50600855612671565b6121bb84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61696e7461696e536c6173685363616c6560701b602082015291506149a99050565b1561225457602081146121e05760405162461bcd60e51b8152600401610cbc90616c58565b604080516020601f840181900481028201810190925282815260009161221e91858580838501838280828437600092019190915250614a0292505050565b90506000811180156122305750600a81105b61224c5760405162461bcd60e51b8152600401610cbc906174b9565b600a55612671565b6122c884848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601981527f6d61784e756d4f66576f726b696e6743616e6469646174657300000000000000602082015291506149a99050565b1561235757602081146122ed5760405162461bcd60e51b8152600401610cbc90616c0c565b604080516020601f840181900481028201810190925282815260009161232b91858580838501838280828437600092019190915250614a0292505050565b9050600d5481111561234f5760405162461bcd60e51b8152600401610cbc90617001565b600e55612671565b6123c084848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61784e756d4f6643616e6469646174657360701b602082015291506149a99050565b1561244257602081146123e55760405162461bcd60e51b8152600401610cbc906171f9565b604080516020601f840181900481028201810190925282815260009161242391858580838501838280828437600092019190915250614a0292505050565b600d819055600e5490915081101561243c57600d54600e555b50612671565b6124a684848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c6e756d4f66436162696e65747360981b602082015291506149a99050565b1561255457602081146124cb5760405162461bcd60e51b8152600401610cbc90616c9d565b604080516020601f840181900481028201810190925282815260009161250991858580838501838280828437600092019190915250614a0292505050565b90506000811161252b5760405162461bcd60e51b8152600401610cbc90616d40565b602981111561254c5760405162461bcd60e51b8152600401610cbc90616d88565b600c55612671565b6125be84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601381527266696e616c697479526577617264526174696f60681b602082015291506149a99050565b1561265957602081146125e35760405162461bcd60e51b8152600401610cbc906172e2565b604080516020601f840181900481028201810190925282815260009161262191858580838501838280828437600092019190915250614a0292505050565b905060018110158015612635575060648111155b6126515760405162461bcd60e51b8152600401610cbc90617070565b600f55612671565b60405162461bcd60e51b8152600401610cbc90617516565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040516126a69493929190616b26565b60405180910390a150505050565b60046020526000908152604090205481565b68056bc75e2d6310000081565b6001546060906000805b82811015612702576126ee81611391565b156126fa578160010191505b6001016126dd565b5060608160405190808252806020026020018201604052801561272f578160200160208202803683370190505b5090506000915060005b838110156127b65761274a81611391565b156127ae576001818154811061275c57fe5b600091825260209091206004909102015482516001600160a01b039091169083908590811061278757fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508260010192505b600101612739565b50925050505b90565b601581565b61100281565b60138181548110611ac657fe5b603281565b60006127e66126d3565b519050600080600c54116127fb5760156127ff565b600c545b90508082111561280d578091505b8161281757600191505b5090565b67016345785d8a000081565b60055481565b61100381565b602981565b60005460ff161561285b5760405162461bcd60e51b8152600401610cbc906172ab565b6128636164a7565b6000612889604051806101e001604052806101ab81526020016176286101ab91396131ce565b91509150806128aa5760405162461bcd60e51b8152600401610cbc906173dc565b60005b8260200151518110156129cf576001836020015182815181106128cc57fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a0909301516003909301929092559186015180519185019391859081106129a257fe5b602090810291909101810151516001600160a01b03168252810191909152604001600020556001016128ad565b50506103e8600255506000805460ff19166001179055565b600d5481565b601354600090815b81811015612af657612ade85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050601380549092508591508110612a4657fe5b600091825260209182902001805460408051601f6002600019610100600187161502019094169390930492830185900485028101850190915281815292830182828015612ad45780601f10612aa957610100808354040283529160200191612ad4565b820191906000526020600020905b815481529060010190602001808311612ab757829003601f168201915b5050505050614a07565b15612aee5760019250505061143c565b6001016129f5565b5060125460005b81811015612b6757612b4e86868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050601280549092508591508110612a4657fe5b15612b5f576001935050505061143c565b600101612afd565b50600095945050505050565b3361100114612b945760405162461bcd60e51b8152600401610cbc9061753d565b600b54612c5257612ba36163d1565b60015460005b81811015612c4e57600b805460018101825560009190915283516000805160206177f383398151915260169092029182019081556020808601516000805160206178338339815191528401805460ff1916911515919091179055604086015180518794612c2a93600080516020617813833981519152909101920190616400565b506060820151612c40906003830190601361647a565b505050806001019050612ba9565b5050505b6000612c5d82614a6b565b9050612c68816112c2565b15612c7757612c778282614911565b5050565b606581565b334114612c9f5760405162461bcd60e51b8152600401610cbc9061746c565b60005460ff16612cc15760405162461bcd60e51b8152600401610cbc90616cd2565b60003411612ce15760405162461bcd60e51b8152600401610cbc90616fd2565b6001600160a01b0381166000908152600460205260409020546007543491906103e89060ff1615612d1157506006545b600083118015612d215750600081115b15612dc2576000612d3e61271061101d868563ffffffff61423a16565b90508015612dc05760405161dead9082156108fc029083906000818181858888f19350505050158015612d75573d6000803e3d6000fd5b507f627059660ea01c4733a328effb2294d2f86905bf806da763a89cee254de8bee581604051612da59190617595565b60405180910390a1612dbd848263ffffffff6141f816565b93505b505b8115612ec0576000600180840381548110612dd957fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff1615612e4657846001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b485604051612e399190617595565b60405180910390a2612eba565b600354612e59908563ffffffff61427416565b6003908155810154612e71908563ffffffff61427416565b60038201556040516001600160a01b038616907f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc05590612eb1908790617595565b60405180910390a25b50612f02565b836001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b484604051612ef99190617595565b60405180910390a25b50505050565b600e5481565b61100081565b61dead81565b600b8181548110612f2757fe5b6000918252602091829020601691909102018054600180830154600280850180546040805161010096831615969096026000190190911692909204601f810188900488028501880190925281845293965060ff90911694919291830182828015612fd25780601f10612fa757610100808354040283529160200191612fd2565b820191906000526020600020905b815481529060010190602001808311612fb557829003601f168201915b5050505050905083565b61100481565b6000600a5460001480612ff3575081155b80612ffe5750600954155b1561300b57506000610f23565b60096000815460019003919050819055506000613056600a5461101d8561101d600b898154811061303857fe5b6000918252602090912060169091020154439063ffffffff6141f816565b90506000600b858154811061306757fe5b906000526020600020906016020160010160006101000a81548160ff0219169083151502179055506000806110016001600160a01b0316638256ace66040518163ffffffff1660e01b8152600401604080518083038186803b1580156130cc57600080fd5b505afa1580156130e0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613104919061685f565b915091506000935080831061317e5761311d8787614299565b506040516305bfb49960e41b815261100190635bfb499090613143908a9060040161699c565b600060405180830381600087803b15801561315d57600080fd5b505af1158015613171573d6000803e3d6000fd5b5050505060019350613190565b8183106131905761318e87614a6b565b505b6040516001600160a01b038816907fb9d38178dc641ff1817967a63c9078cbcd955a9f1fcd75e0e3636de615d44d3b90600090a25050509392505050565b6131d66164a7565b60006131e06164a7565b6131e86164cb565b6131f96131f486614c0e565b614c33565b90506000805b61320883614c7d565b1561337c578061322d5761322361321e84614c9e565b614cec565b60ff168452613374565b806001141561336f57606061324961324485614c9e565b614d6c565b9050805160405190808252806020026020018201604052801561328657816020015b6132736164eb565b81526020019060019003908161326b5790505b50856020018190525080516040519080825280602002602001820160405280156132c457816020015b60608152602001906001900390816132af5790505b50604086015260005b8151811015613364576132de6164eb565b606060006132fe8585815181106132f157fe5b6020026020010151614e3d565b9250925092508061331e578860009a509a50505050505050505050613385565b828960200151858151811061332f57fe5b6020026020010181905250818960400151858151811061334b57fe5b60200260200101819052505050508060010190506132cd565b506001925050613374565b61337c565b6001016131ff565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b60608152602001906001900390816133a45790505090506133ca8363ffffffff16614f57565b816000815181106133d757fe5b6020026020010181905250610f2381614f6a565b6000602983511115613422576000805160206177d383398151915260405161341290616de5565b60405180910390a150606661143c565b60005b83518110156134c05760005b818110156134b75784818151811061344557fe5b6020026020010151600001516001600160a01b031685838151811061346657fe5b6020026020010151600001516001600160a01b031614156134af576000805160206177d383398151915260405161349c90616f40565b60405180910390a160669250505061143c565b600101613431565b50600101613425565b506060806134ce8585614ff4565b60015491935091506000908190815b818110156135535767016345785d8a0000600182815481106134fb57fe5b9060005260206000209060040201600301541061351d5783600101935061354b565b60006001828154811061352c57fe5b906000526020600020906004020160030154111561354b578260010192505b6001016134dd565b50606083604051908082528060200260200182016040528015613580578160200160208202803683370190505b5090506060846040519080825280602002602001820160405280156135af578160200160208202803683370190505b5090506060856040519080825280602002602001820160405280156135de578160200160208202803683370190505b50905060608660405190808252806020026020018201604052801561360d578160200160208202803683370190505b509050600060608760405190808252806020026020018201604052801561363e578160200160208202803683370190505b50905060608860405190808252806020026020018201604052801561366d578160200160208202803683370190505b509050600099506000985060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b1580156136b557600080fd5b505afa1580156136c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136ed9190616847565b905067016345785d8a0000811115613738576000805160206177d383398151915260405161371a9061726a565b60405180910390a160689d505050505050505050505050505061143c565b60005b898110156139a95767016345785d8a00006001828154811061375957fe5b906000526020600020906004020160030154106138de576001818154811061377d57fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316898d815181106137ae57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be400600183815481106137e357fe5b906000526020600020906004020160030154816137fc57fe5b066001838154811061380a57fe5b90600052602060002090600402016003015403905061383283826141f890919063ffffffff16565b898e8151811061383e57fe5b6020026020010181815250506001828154811061385757fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316878e8151811061388857fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081888e815181106138b557fe5b60209081029190910101526138d0868263ffffffff61427416565b95508c6001019c50506139a1565b6000600182815481106138ed57fe5b90600052602060002090600402016003015411156139a1576001818154811061391257fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316848c8151811061394357fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506001818154811061397057fe5b906000526020600020906004020160030154838c8151811061398e57fe5b6020026020010181815250508a6001019a505b60010161373b565b5060008415613c1f576002546040516303702b2960e51b815261100491636e0565209188916139e3918e918e918d91420190600401616a8e565b6020604051808303818588803b1580156139fc57600080fd5b505af193505050508015613a2d575060408051601f3d908101601f19168201909252613a2a91810190616774565b60015b613ba4576040516000815260443d1015613a4957506000613ae4565b60046000803e60005160e01c6308c379a08114613a6a576000915050613ae4565b60043d036004833e81513d60248201116001600160401b0382111715613a9557600092505050613ae4565b80830180516001600160401b03811115613ab6576000945050505050613ae4565b8060208301013d8601811115613ad457600095505050505050613ae4565b601f01601f191660405250925050505b80613aef5750613b31565b60019150857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf28082604051613b239190616b13565b60405180910390a250613b9f565b3d808015613b5b576040519150601f19603f3d011682016040523d82523d6000602084013e613b60565b606091505b5060019150857fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a4582604051613b959190616b13565b60405180910390a2505b613c1f565b8015613be6577fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b7086604051613bd99190617595565b60405180910390a1613c1d565b857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280604051613c1490616bd5565b60405180910390a25b505b8015613dd55760005b8751811015613dd3576000888281518110613c3f57fe5b60200260200101519050600060018281548110613c5857fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc9185908110613c8957fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f1935050505090508015613d455760018281548110613cca57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d9185908110613d1957fe5b906000526020600020906004020160030154604051613d389190617595565b60405180910390a2613dc9565b60018281548110613d5257fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d9185908110613da157fe5b906000526020600020906004020160030154604051613dc09190617595565b60405180910390a25b5050600101613c28565b505b835115613f1f5760005b8451811015613f1d576000858281518110613df657fe5b60200260200101516001600160a01b03166108fc868481518110613e1657fe5b60200260200101519081150290604051600060405180830381858888f1935050505090508015613eac57858281518110613e4c57fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d868481518110613e8a57fe5b6020026020010151604051613e9f9190617595565b60405180910390a2613f14565b858281518110613eb857fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d868481518110613ef657fe5b6020026020010151604051613f0b9190617595565b60405180910390a25b50600101613ddf565b505b5050505050505050505050506000471115613f9b577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d47604051613f639190617595565b60405180910390a1604051611002904780156108fc02916000818181858888f19350505050158015613f99573d6000803e3d6000fd5b505b60006003819055600555815115613fb657613fb6828261522d565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015613ff357600080fd5b505af1158015614007573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a1506000949350505050565b80516001600160a01b0316600090815260046020526040812054801580614090575060018082038154811061407057fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b156140d65782516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a2600091505061138c565b60015460055460001982011180159061412c5784516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a26000935050505061138c565b60058054600190810190915580548190600019860190811061414a57fe5b6000918252602082206002600490920201018054921515600160e01b0260ff60e01b199093169290921790915585516040516001600160a01b03909116917ff226e7d8f547ff903d9d419cf5f54e0d7d07efa9584135a53a057c5f1f27f49a91a2506000949350505050565b6000610f2383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506159e7565b6000610f2383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250615a1e565b6000826142495750600061143c565b8282028284828161425657fe5b0414610f235760405162461bcd60e51b8152600401610cbc9061716a565b600082820183811015610f235760405162461bcd60e51b8152600401610cbc90616d09565b600080600183815481106142a957fe5b906000526020600020906004020160030154905060006001808054905003905060016142d36126d3565b5111614308576000600185815481106142e857fe5b90600052602060002090600402016003018190555060009250505061143c565b846001600160a01b03167f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a70836040516143419190617595565b60405180910390a26001600160a01b038516600090815260046020526040812055835b6001546000190181101561452e576001816001018154811061438257fe5b90600052602060002090600402016001828154811061439d57fe5b60009182526020909120825460049092020180546001600160a01b03199081166001600160a01b0393841617825560018085015481840180548416918616919091179055600280860180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b19909416939093179055600392830154920191909155600b80549091830190811061445e57fe5b9060005260206000209060160201600b828154811061447957fe5b600091825260209091208254601690920201908155600180830154818301805460ff909216151560ff19909216919091179055600280840180546144d0938386019390821615610100026000190190911604616520565b506144e360038281019084016013616595565b509050508060010160046000600184815481106144fc57fe5b600091825260208083206004909202909101546001600160a01b03168352820192909252604001902055600101614364565b50600180548061453a57fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b80548061458d57fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906145bf60028301826165bf565b6145cd600383016000616603565b5050905560008183816145dc57fe5b04905080156146405760015460005b8181101561463d57826001828154811061460157fe5b906000526020600020906004020160030154016001828154811061462157fe5b60009182526020909120600360049092020101556001016145eb565b50505b50600195945050505050565b60015481516040805182815260208084028201019091526060929190839082801561468b57816020015b60608152602001906001900390816146765790505b50600b5490915083146146a257925061138c915050565b60005b828110156147b157600b6001600460008985815181106146c157fe5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205403815481106146f557fe5b600091825260209182902060026016909202018101805460408051601f60001961010060018616150201909316949094049182018590048502840185019052808352919290919083018282801561478d5780601f106147625761010080835404028352916020019161478d565b820191906000526020600020905b81548152906001019060200180831161477057829003601f168201915b505050505082828151811061479e57fe5b60209081029190910101526001016146a5565b50949350505050565b60005b8281101561490757600082878388016040516020016147dd92919061698e565b6040516020818303038152906040528051906020012060001c816147fd57fe5b069050808501828701146148fe576000898388018151811061481b57fe5b602002602001015190506060898489018151811061483557fe5b602002602001015190508a8388018151811061484d57fe5b60200260200101518b858a018151811061486357fe5b60200260200101906001600160a01b031690816001600160a01b031681525050818b8489018151811061489257fe5b60200260200101906001600160a01b031690816001600160a01b03168152505089838801815181106148c057fe5b60200260200101518a858a01815181106148d657fe5b6020026020010181905250808a848901815181106148f057fe5b602002602001018190525050505b506001016147bd565b5050505050505050565b600980546001908101909155600b80548390811061492b57fe5b906000526020600020906016020160010160006101000a81548160ff02191690831515021790555043600b828154811061496157fe5b600091825260208220601690910201919091556040516001600160a01b038416917ff62981a567ec3cec866c6fa93c55bcdf841d6292d18b8d522ececa769375d82d91a25050565b6000816040516020016149bc9190616972565b60405160208183030381529060405280519060200120836040516020016149e39190616972565b6040516020818303038152906040528051906020012014905092915050565b015190565b815181516000916001918114808314614a235760009250614a61565b600160208701838101602088015b600284838510011415614a5c578051835114614a505760009650600093505b60209283019201614a31565b505050505b5090949350505050565b6001600160a01b03811660009081526004602052604081205480614a945750600019905061138c565b600181039050600060018281548110614aa957fe5b9060005260206000209060040201600301549050600060018381548110614acc57fe5b6000918252602090912060036004909202010155600154604051600019909101906001600160a01b038616907f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d90614b25908590617595565b60405180910390a280614b3d5782935050505061138c565b6000818381614b4857fe5b0490508015614c045760005b84811015614ba6578160018281548110614b6a57fe5b9060005260206000209060040201600301540160018281548110614b8a57fe5b6000918252602090912060036004909202010155600101614b54565b50600180549085015b81811015614c01578260018281548110614bc557fe5b9060005260206000209060040201600301540160018281548110614be557fe5b6000918252602090912060036004909202010155600101614baf565b50505b5091949350505050565b614c16616612565b506040805180820190915281518152602082810190820152919050565b614c3b6164cb565b614c4482615a4a565b614c4d57600080fd5b6000614c5c8360200151615a84565b60208085015160408051808201909152868152920190820152915050919050565b6000614c87616612565b505080518051602091820151919092015191011190565b614ca6616612565b614caf82614c7d565b614cb857600080fd5b60208201516000614cc882615ae7565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590614d0157508151602110155b614d0a57600080fd5b6000614d198360200151615a84565b90508083600001511015614d3f5760405162461bcd60e51b8152600401610cbc90617328565b8251602080850151830180519284900392918310156147b157506020919091036101000a90049392505050565b6060614d7782615a4a565b614d8057600080fd5b6000614d8b83615bc8565b9050606081604051908082528060200260200182016040528015614dc957816020015b614db6616612565b815260200190600190039081614dae5790505b5090506000614ddb8560200151615a84565b60208601510190506000805b84811015614e3257614df883615ae7565b9150604051806040016040528083815260200184815250848281518110614e1b57fe5b602090810291909101015291810191600101614de7565b509195945050505050565b614e456164eb565b60606000614e516164eb565b6060614e5b6164cb565b614e6487614c33565b90506000805b614e7383614c7d565b15614f485780614e9e57614e8e614e8984614c9e565b615c24565b6001600160a01b03168552614f40565b8060011415614ec657614eb3614e8984614c9e565b6001600160a01b03166020860152614f40565b8060021415614eee57614edb614e8984614c9e565b6001600160a01b03166040860152614f40565b8060031415614f1a57614f0361321e84614c9e565b6001600160401b0316606086015260019150614f40565b8060041415614f3b57614f34614f2f84614c9e565b615c3e565b9350614f40565b614f48565b600101614e6a565b50929791965091945092505050565b606061143c614f6583615cae565b615d94565b6060815160001415614f8b575060408051600081526020810190915261138c565b606082600081518110614f9a57fe5b602002602001015190506000600190505b8351811015614fdb57614fd182858381518110614fc457fe5b6020026020010151615de6565b9150600101614fab565b50610f23614fee825160c060ff16615e63565b82615de6565b6060806000808080806150056127dc565b6001549091505b801561511357600181039250600b838154811061502557fe5b600091825260209091206001601690920201015460ff166150455761510a565b6001838154811061505257fe5b60009182526020909120600490910201546001600160a01b03169450615079858484612fe2565b935083158061508c575060018a51038610155b156150965761510a565b60005b8a5181101561510857856001600160a01b03168b82815181106150b857fe5b6020026020010151600001516001600160a01b031614156151005760018b82815181106150e157fe5b6020908102919091010151901515608090910152600190960195615108565b600101615099565b505b6000190161500c565b508489510360405190808252806020026020018201604052801561515157816020015b61513e6164eb565b8152602001906001900390816151365790505b5096508489510360405190808252806020026020018201604052801561518b57816020015b60608152602001906001900390816151765790505b5095506000915060005b895181101561521f578981815181106151aa57fe5b602002602001015160800151615217578981815181106151c657fe5b60200260200101518884815181106151da57fe5b60200260200101819052508881815181106151f157fe5b602002602001015187848151811061520557fe5b60200260200101819052508260010192505b600101615195565b5050505050505b9250929050565b600154825160005b8281101561534a5760016152476164eb565b6001838154811061525457fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b8481101561531e578781815181106152e457fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b03161415615316576000925061531e565b6001016152d0565b5081156153405780516001600160a01b03166000908152600460205260408120555b5050600101615235565b508082111561540957805b8281101561540757600180548061536857fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b8054806153bb57fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906153ed60028301826165bf565b6153fb600383016000616603565b50509055600101615355565b505b6000818310615418578161541a565b825b905060005b81811015615789576154cc86828151811061543657fe5b60200260200101516001838154811061544b57fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a0820152615f35565b6156805780600101600460008884815181106154e457fe5b6020026020010151600001516001600160a01b03166001600160a01b031681526020019081526020016000208190555085818151811061552057fe5b60200260200101516001828154811061553557fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a09091015160039091015584518590829081106155f057fe5b6020026020010151600b828154811061560557fe5b90600052602060002090601602016002019080519060200190615629929190616400565b506000600b828154811061563957fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b80548390811061566a57fe5b6000918252602090912060169091020155615781565b61571185828151811061568f57fe5b6020026020010151600b83815481106156a457fe5b600091825260209182902060026016909202018101805460408051601f600019610100600186161502019093169490940491820185900485028401850190528083529192909190830182828015612ad45780601f10612aa957610100808354040283529160200191612ad4565b61575c5784818151811061572157fe5b6020026020010151600b828154811061573657fe5b9060005260206000209060160201600201908051906020019061575a929190616400565b505b60006001828154811061576b57fe5b9060005260206000209060040201600301819055505b60010161541f565b50828211156159615761579a6163d1565b835b8381101561595e578581815181106157b057fe5b6020026020010151826040018190525060018782815181106157ce57fe5b6020908102919091018101518254600181810185556000948552838520835160049093020180546001600160a01b039384166001600160a01b0319918216178255848601518284018054918616918316919091179055604080860151600284018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909a1692909616919091179290921696909617169190911790935560a090930151600390930192909255600b80549283018155909352845160169091026000805160206177f38339815191528101918255858301516000805160206178338339815191528201805491151560ff19909216919091179055928501518051869492936159049360008051602061781383398151915201920190616400565b50606082015161591a906003830190601361647a565b505050806001016004600089848151811061593157fe5b602090810291909101810151516001600160a01b031682528101919091526040016000205560010161579c565b50505b615969615fb6565b615971616198565b6000600981905560015493505b838110156159df576000600b828154811061599557fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b8054839081106159c657fe5b600091825260209091206016909102015560010161597e565b505050505050565b60008183615a085760405162461bcd60e51b8152600401610cbc9190616b13565b506000838581615a1457fe5b0495945050505050565b60008184841115615a425760405162461bcd60e51b8152600401610cbc9190616b13565b505050900390565b8051600090615a5b5750600061138c565b6020820151805160001a9060c0821015615a7a5760009250505061138c565b5060019392505050565b8051600090811a6080811015615a9e57600091505061138c565b60b8811080615ab9575060c08110801590615ab9575060f881105b15615ac857600191505061138c565b60c0811015615adc5760b51901905061138c565b60f51901905061138c565b80516000908190811a6080811015615b025760019150615bc1565b60b8811015615b1757607e1981019150615bc1565b60c0811015615b6857600060b78203600186019550806020036101000a865104915060018101820193505080831015615b625760405162461bcd60e51b8152600401610cbc906170b7565b50615bc1565b60f8811015615b7d5760be1981019150615bc1565b600060f78203600186019550806020036101000a865104915060018101820193505080831015615bbf5760405162461bcd60e51b8152600401610cbc906170b7565b505b5092915050565b8051600090615bd95750600061138c565b60008090506000615bed8460200151615a84565b602085015185519181019250015b80821015615c1b57615c0c82615ae7565b82019150826001019250615bfb565b50909392505050565b8051600090601514615c3557600080fd5b61143c82614cec565b8051606090615c4c57600080fd5b6000615c5b8360200151615a84565b83516040805191839003808352601f19601f8201168301602001909152919250606090828015615c92576020820181803683370190505b50905060008160200190506147b1848760200151018285616386565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416615cf257506018615d16565b6fffffffffffffffffffffffffffffffff198416615d1257506010615d16565b5060005b6020811015615d4c57818181518110615d2b57fe5b01602001516001600160f81b03191615615d4457615d4c565b600101615d16565b60008160200390506060816040519080825280601f01601f191660200182016040528015615d81576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015615dc65750607f60f81b82600081518110615db457fe5b01602001516001600160f81b03191611155b15615dd257508061138c565b61143c615de48351608060ff16615e63565b835b6060806040519050835180825260208201818101602087015b81831015615e17578051835260209283019201615dff565b50855184518101855292509050808201602086015b81831015615e44578051835260209283019201615e2c565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310615e8d5760405162461bcd60e51b8152600401610cbc90616ebb565b60408051600180825281830190925260609160208201818036833701905050905060378411615ee75782840160f81b81600081518110615ec957fe5b60200101906001600160f81b031916908160001a905350905061143c565b6060615ef285615cae565b90508381510160370160f81b82600081518110615f0b57fe5b60200101906001600160f81b031916908160001a905350615f2c8282615de6565b95945050505050565b805182516000916001600160a01b039182169116148015615f6f575081602001516001600160a01b031683602001516001600160a01b0316145b8015615f94575081604001516001600160a01b031683604001516001600160a01b0316145b8015610f235750506060908101519101516001600160401b0390811691161490565b6012546013548082111561600157805b82811015615fff576012805480615fd957fe5b600190038181906000526020600020016000615ff591906165bf565b9055600101615fc6565b505b60008183106160105781616012565b825b905060005b8181101561612a576160cf6012828154811061602f57fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156160bd5780601f10616092576101008083540402835291602001916160bd565b820191906000526020600020905b8154815290600101906020018083116160a057829003601f168201915b505050505060138381548110612a4657fe5b61612257601381815481106160e057fe5b90600052602060002001601282815481106160f757fe5b906000526020600020019080546001816001161561010002031660029004616120929190616520565b505b600101616017565b5082821115610cdc57825b82811015612f025760126013828154811061614c57fe5b600091825260208083208454600181810187559585529190932092909101805461618f949390920192909160026101009282161592909202600019011604616520565b50600101616135565b601354600b54808211156161e357805b828110156161e15760138054806161bb57fe5b6001900381819060005260206000200160006161d791906165bf565b90556001016161a8565b505b60008183106161f257816161f4565b825b905060005b81811015616313576162b16013828154811061621157fe5b600091825260209182902001805460408051601f600260001961010060018716150201909416939093049283018590048502810185019091528181529283018282801561629f5780601f106162745761010080835404028352916020019161629f565b820191906000526020600020905b81548152906001019060200180831161628257829003601f168201915b5050505050600b83815481106156a457fe5b61630b57600b81815481106162c257fe5b9060005260206000209060160201600201601382815481106162e057fe5b906000526020600020019080546001816001161561010002031660029004616309929190616520565b505b6001016161f9565b5082821115610cdc57825b82811015612f02576013600b828154811061633557fe5b60009182526020808320845460018082018755958552919093206016929092029092016002908101805461637d95939094019390926000199082161561010002011604616520565b5060010161631e565b8061639057610cdc565b5b602081106163b0578251825260209283019290910190601f1901616391565b915181516020939093036101000a6000190180199091169216919091179052565b604051806080016040528060008152602001600015158152602001606081526020016163fb61662c565b905290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061644157805160ff191683800117855561646e565b8280016001018555821561646e579182015b8281111561646e578251825591602001919060010190616453565b5061281792915061664b565b826013810192821561646e579160200282018281111561646e578251825591602001919060010190616453565b6040518060600160405280600060ff16815260200160608152602001606081525090565b60405180604001604052806164de616612565b8152602001600081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10616559578054855561646e565b8280016001018555821561646e57600052602060002091601f016020900482015b8281111561646e57825482559160010191906001019061657a565b826013810192821561646e579182018281111561646e57825482559160010191906001019061657a565b50805460018160011615610100020316600290046000825580601f106165e55750611598565b601f016020900490600052602060002090810190611598919061664b565b5061159890601381019061664b565b604051806040016040528060008152602001600081525090565b6040518061026001604052806013906020820280368337509192915050565b6127bc91905b808211156128175760008155600101616651565b60008083601f840112616676578182fd5b5081356001600160401b0381111561668c578182fd5b602083019150836020808302850101111561522657600080fd5b60008083601f8401126166b7578182fd5b5081356001600160401b038111156166cd578182fd5b60208301915083602082850101111561522657600080fd5b6000602082840312156166f6578081fd5b81356001600160a01b0381168114610f23578182fd5b60008060008060408587031215616721578283fd5b84356001600160401b0380821115616737578485fd5b61674388838901616665565b9096509450602087013591508082111561675b578384fd5b5061676887828801616665565b95989497509550505050565b600060208284031215616785578081fd5b81518015158114610f23578182fd5b600080602083850312156167a6578182fd5b82356001600160401b038111156167bb578283fd5b6167c7858286016166a6565b90969095509350505050565b600080600080604085870312156167e8578384fd5b84356001600160401b03808211156167fe578586fd5b61680a888389016166a6565b90965094506020870135915080821115616822578384fd5b50616768878288016166a6565b600060208284031215616840578081fd5b5035919050565b600060208284031215616858578081fd5b5051919050565b60008060408385031215616871578182fd5b505080516020909101519092909150565b600080600060408486031215616896578283fd5b833560ff811681146168a6578384fd5b925060208401356001600160401b038111156168c0578283fd5b6168cc868287016166a6565b9497909650939450505050565b6000815180845260208085019450808401835b838110156169115781516001600160a01b0316875295820195908201906001016168ec565b509495945050505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b6000815180845261695e8160208601602086016175fb565b601f01601f19169290920160200192915050565b600082516169848184602087016175fb565b9190910192915050565b918252602082015260400190565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b03968716815294861660208601529290941660408401526001600160401b03166060830152911515608082015260a081019190915260c00190565b600060208252610f2360208301846168d9565b600060408252616a3160408301856168d9565b602083820381850152818551808452828401915082838202850101838801865b83811015616a7f57601f19878403018552616a6d838351616946565b94860194925090850190600101616a51565b50909998505050505050505050565b600060808252616aa160808301876168d9565b828103602084810191909152865180835287820192820190845b81811015616ad757845183529383019391830191600101616abb565b50508481036040860152616aeb81886168d9565b93505050506001600160401b038316606083015295945050505050565b901515815260200190565b600060208252610f236020830184616946565b600060408252616b3a60408301868861691c565b8281036020840152616b4d81858761691c565b979650505050505050565b6020808252601c908201527f6c656e677468206f66206275726e526174696f206d69736d6174636800000000604082015260600190565b60208082526026908201527f6c656e677468206f66206d61784e756d4f664d61696e7461696e696e67206d696040820152650e6dac2e8c6d60d31b606082015260800190565b6020808252601b908201527f6261746368207472616e736665722072657475726e2066616c73650000000000604082015260600190565b6020808252602c908201527f6c656e677468206f66206d61784e756d4f66576f726b696e6743616e6469646160408201526b0e8cae640dad2e6dac2e8c6d60a31b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61696e7461696e536c6173685363616c65206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252818101527f6c656e677468206f66206e756d4f66436162696e657473206d69736d61746368604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526028908201527f746865206e756d4f66436162696e657473206d75737420626520677265617465604082015267072207468616e20360c41b606082015260800190565b60208082526039908201527f746865206e756d4f66436162696e657473206d757374206265206c657373207460408201527f68616e204d41585f4e554d5f4f465f56414c494441544f525300000000000000606082015260800190565b60208082526029908201527f746865206e756d626572206f662076616c696461746f727320657863656564206040820152681d1a19481b1a5b5a5d60ba1b606082015260800190565b60208082526022908201527f63616e206e6f7420646f207468697320747769636520696e206f6e6520626c6f604082015261636b60f01b606082015260800190565b6020808252602b908201527f746865206275726e526174696f206d757374206265206e6f206772656174657260408201526a0207468616e2031303030360ac1b606082015260800190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526037908201527f746865206d61784e756d4f664d61696e7461696e696e67206d7573742062652060408201527f6c657373207468616e206e756d4f66436162696e657473000000000000000000606082015260800190565b6020808252602b908201527f6475706c696361746520636f6e73656e7375732061646472657373206f66207660408201526a185b1a59185d1bdc94d95d60aa1b606082015260800190565b60208082526027908201527f7468652065787069726554696d655365636f6e64476170206973206f7574206f604082015266662072616e676560c81b606082015260800190565b6020808252601590820152746465706f7369742076616c7565206973207a65726f60581b604082015260600190565b60208082526049908201527f746865206d61784e756d4f66576f726b696e6743616e64696461746573206d7560408201527f7374206265206e6f742067726561746572207468616e206d61784e756d4f6643606082015268616e6469646174657360b81b608082015260a00190565b60208082526027908201527f7468652066696e616c697479526577617264526174696f206973206f7574206f604082015266662072616e676560c81b606082015260800190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b60208082526023908201527f63616e206e6f7420656e7465722054656d706f72617279204d61696e74656e616040820152626e636560e81b606082015260800190565b60208082526025908201527f6c656e677468206f66206a61696c2076616c696461746f7273206d757374206260408201526465206f6e6560d81b606082015260800190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61784e756d4f6643616e64696461746573206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252601290820152716e6f7420696e206d61696e74656e616e636560701b604082015260600190565b60208082526021908201527f666565206973206c6172676572207468616e2044555354595f494e434f4d494e6040820152604760f81b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b60208082526026908201527f6c656e677468206f662066696e616c697479526577617264526174696f206d696040820152650e6dac2e8c6d60d31b606082015260800190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526026908201527f6c656e677468206f662065787069726554696d655365636f6e64476170206d696040820152650e6dac2e8c6d60d31b606082015260800190565b60208082526017908201527f6f6e6c792063757272656e742076616c696461746f7273000000000000000000604082015260600190565b60208082526021908201527f6661696c656420746f20706172736520696e69742076616c696461746f7253656040820152601d60fa1b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b6020808252603e908201527f746865206d61696e7461696e536c6173685363616c65206d757374206265206760408201527f726561746572207468616e203020616e64206c657373207468616e2031300000606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b60208082526029908201527f746865206d6573736167652073656e646572206d75737420626520736c6173686040820152680818dbdb9d1c9858dd60ba1b606082015260800190565b61ffff91909116815260200190565b90815260200190565b6000848252831515602083015260606040830152615f2c6060830184616946565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff8516825260406020830152615f2c60408301848661691c565b60005b838110156176165781810151838201526020016175fe565b83811115612f02575050600091015256fef901a880f901a4f844941284214b9b9c85549ab3d2b972df0deef66ac2c9946ddf42a51534fc98d0c0a3b42c963cace8441ddf946ddf42a51534fc98d0c0a3b42c963cace8441ddf8410000000f84494a2959d3f95eae5dc7d70144ce1b73b403b7eb6e0948081ef03f1d9e0bb4a5bf38f16285c879299f07f948081ef03f1d9e0bb4a5bf38f16285c879299f07f8410000000f8449435552c16704d214347f29fa77f77da6d75d7c75294dc4973e838e3949c77aced16ac2315dc2d7ab11194dc4973e838e3949c77aced16ac2315dc2d7ab1118410000000f84494980a75ecd1309ea12fa2ed87a8744fbfc9b863d594cc6ac05c95a99c1f7b5f88de0e3486c82293b27094cc6ac05c95a99c1f7b5f88de0e3486c82293b2708410000000f84494f474cf03cceff28abc65c9cbae594f725c80e12d94e61a183325a18a173319dd8e19c8d069459e217594e61a183325a18a173319dd8e19c8d069459e21758410000000f84494b71b214cb885500844365e95cd9942c7276e7fd894d22ca3ba2141d23adab65ce4940eb7665ea2b6a794d22ca3ba2141d23adab65ce4940eb7665ea2b6a7841000000070e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb20175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbb0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbaa26469706673582212206e1523e3ea49e964e21e7d6e66bb4cfe1d540a17ea2d2be68ff39a6a76e3e24b64736f6c63430006040033", - }, - { - ContractAddr: SlashContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/0f352c4623898d92664a46cbfc26c52b79aad838", - Code: "608060405234801561001057600080fd5b506004361061027f5760003560e01c80637942fd051161015c578063c80d4b8f116100ce578063dc927faf11610087578063dc927faf146104ad578063e1c7392a146104b5578063f9a2bbc7146104bd578063fc3e5908146104c5578063fc4333cd146104cd578063fd6a6879146104d55761027f565b8063c80d4b8f1461045c578063c81b166214610464578063c8509d811461046c578063c96be4cb1461047f578063cc844b7314610492578063d2a42e4b146104a55761027f565b80639dc09262116101205780639dc0926214610421578063a1a11bf514610429578063a78abc1614610431578063ab51bb9614610439578063ac0af62914610441578063ac431751146104495761027f565b80637942fd05146103ee5780638256ace6146103f6578063831d65d1146103fe57806396713da9146104115780639bc8e4f2146104195761027f565b8063493279b1116101f557806362b72cf5116101b957806362b72cf5146103be5780636e47b482146103c657806370fd5bad146103ce578063718a8aa8146103d657806375d47a0a146103de5780637912a65d146103e65761027f565b8063493279b11461037c5780634bf6c8821461039157806351e8067214610399578063567a372d146103a15780635bfb4990146103a95761027f565b806335aa2e441161024757806335aa2e441461030e57806337c8dab914610321578063389f4f71146103425780633a63f4b1146103575780633dffc3871461035f57806343756e5c146103745761027f565b80630bee7a67146102845780630e2374a5146102a25780631182b875146102b757806322d1e80b146102d757806323bac5a2146102ec575b600080fd5b61028c6104dd565b604051610299919061336c565b60405180910390f35b6102aa6104e2565b6040516102999190612c1d565b6102ca6102c5366004612b53565b6104e8565b6040516102999190612c55565b6102df61054e565b6040516102999190612c4a565b6102ff6102fa366004612901565b610557565b60405161029993929190613354565b6102aa61031c366004612b23565b61057a565b61033461032f366004612901565b6105a1565b604051610299929190613346565b61034a6105f8565b604051610299919061331c565b61034a6105fe565b610367610604565b604051610299919061337d565b6102aa610609565b61038461060f565b604051610299919061330d565b610367610615565b6102aa61061a565b61034a610620565b6103bc6103b7366004612901565b610626565b005b61034a6106d1565b6102aa6106d7565b6103676106dd565b6103676106e2565b6102aa6106e7565b61034a6106ed565b6103676106f2565b6103346106f7565b6103bc61040c366004612b53565b610701565b610367610813565b61034a610818565b6102aa610823565b6102aa610829565b6102df61082f565b61028c610838565b61034a61083d565b6103bc610457366004612a07565b610842565b61034a610ce1565b6102aa610ce6565b6103bc61047a366004612b53565b610cec565b6103bc61048d366004612901565b610d5d565b6103bc6104a0366004612a70565b61114e565b61034a611734565b6102aa611739565b6103bc61173f565b6102aa61177b565b610367611781565b6103bc611786565b6102aa611bcf565b606481565b61200181565b606033612000146105145760405162461bcd60e51b815260040161050b90613165565b60405180910390fd5b60005460ff166105365760405162461bcd60e51b815260040161050b90612d06565b60405162461bcd60e51b815260040161050b90613256565b60075460ff1681565b600260208190526000918252604090912080546001820154919092015460ff1683565b6001818154811061058757fe5b6000918252602090912001546001600160a01b0316905081565b6000806105ac6126e8565b5050506001600160a01b0316600090815260026020818152604092839020835160608101855281548082526001830154938201849052919093015460ff16151592909301919091529091565b60055481565b60065481565b600181565b61100181565b6102ca81565b600881565b61200081565b60045481565b33611000146106475760405162461bcd60e51b815260040161050b90612f4a565b60005460ff166106695760405162461bcd60e51b815260040161050b90612d06565b61200063f7a251d7600b61067c84611bd5565b60006040518463ffffffff1660e01b815260040161069c9392919061338b565b600060405180830381600087803b1580156106b657600080fd5b505af11580156106ca573d6000803e3d6000fd5b5050505050565b60035481565b61100581565b600281565b601081565b61100881565b603281565b600b81565b6004546005549091565b33612000146107225760405162461bcd60e51b815260040161050b90613165565b60005460ff166107445760405162461bcd60e51b815260040161050b90612d06565b61074c61270b565b600061078d84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611ca892505050565b9150915080156107d45781516040517f7f0956d47419b9525356e7111652b653b530ec6f5096dccc04589bc38e629967916107c79161336c565b60405180910390a16106ca565b81516040517f7d45f62d17443dd4547bca8a8112c60e2385669318dc300ec61a5d2492f262e7916108049161336c565b60405180910390a15050505050565b600981565b662386f26fc1000081565b61100781565b61100681565b60005460ff1681565b600081565b600481565b60005460ff166108645760405162461bcd60e51b815260040161050b90612d06565b33611007146108855760405162461bcd60e51b815260040161050b90613022565b6108f084848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260148152731b5a5cd9195b59585b9bdc951a1c995cda1bdb1960621b60208201529150611d289050565b1561098b57602081146109155760405162461bcd60e51b815260040161050b90612ed6565b604080516020601f840181900481028201810190925282815260009161095391858580838501838280828437600092019190915250611d8292505050565b905060018110158015610967575060055481105b6109835760405162461bcd60e51b815260040161050b90613120565b600455610c9e565b6109f184848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e19995b1bdb9e551a1c995cda1bdb19608a1b60208201529150611d289050565b15610a8d5760208114610a165760405162461bcd60e51b815260040161050b90613070565b604080516020601f8401819004810282018101909252828152600091610a5491858580838501838280828437600092019190915250611d8292505050565b90506103e88111158015610a69575060045481115b610a855760405162461bcd60e51b815260040161050b90612d74565b600555610c9e565b610b0184848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f66696e616c697479536c617368526577617264526174696f000000000000000060208201529150611d289050565b15610b9b5760208114610b265760405162461bcd60e51b815260040161050b9061328d565b604080516020601f8401819004810282018101909252828152600091610b6491858580838501838280828437600092019190915250611d8292505050565b9050600a8110158015610b775750606481105b610b935760405162461bcd60e51b815260040161050b90612e8a565b600655610c9e565b610c0f84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f656e61626c654d616c6963696f7573566f7465536c617368000000000000000060208201529150611d289050565b15610c865760208114610c345760405162461bcd60e51b815260040161050b90612da9565b604080516020601f8401819004810282018101909252828152610c709190848480838501838280828437600092019190915250611d8792505050565b6007805460ff1916911515919091179055610c9e565b60405162461bcd60e51b815260040161050b90613201565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a84848484604051610cd39493929190612c68565b60405180910390a150505050565b609681565b61100281565b3361200014610d0d5760405162461bcd60e51b815260040161050b90613165565b60005460ff16610d2f5760405162461bcd60e51b815260040161050b90612d06565b6040517f07db600eebe2ac176be8dcebad61858c245a4961bb32ca2aa3d159b09aa0810e90600090a1505050565b334114610d7c5760405162461bcd60e51b815260040161050b906131b4565b60005460ff16610d9e5760405162461bcd60e51b815260040161050b90612d06565b6003544311610dbf5760405162461bcd60e51b815260040161050b906132d8565b3a15610ddd5760405162461bcd60e51b815260040161050b90612fc5565b60405163155853f360e21b8152611000906355614fcc90610e02908490600401612c1d565b60206040518083038186803b158015610e1a57600080fd5b505afa158015610e2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5291906129e7565b610e5b57611147565b610e636126e8565b506001600160a01b0381166000908152600260208181526040928390208351606081018552815481526001820154928101929092529091015460ff161580159282019290925290610ebe576020810180516001019052610f17565b60016040820181905260208201819052805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0384161790555b438152600554602082015181610f2957fe5b0661107557600060208201526040516335409f7f60e01b8152611000906335409f7f90610f5a908590600401612c1d565b600060405180830381600087803b158015610f7457600080fd5b505af1158015610f88573d6000803e3d6000fd5b505050506120006001600160a01b031663f7a251d7600b610fa885611bd5565b60006040518463ffffffff1660e01b8152600401610fc89392919061338b565b600060405180830381600087803b158015610fe257600080fd5b505af1925050508015610ff3575060015b611070573d808015611021576040519150601f19603f3d011682016040523d82523d6000602084013e611026565b606091505b50826001600160a01b03167fd7bc86ff5d08c8ab043edec743302aba2520e6635172a428bc956721db9e2d1c836020015183604051611066929190613325565b60405180910390a2505b6110e1565b60045481602001518161108457fe5b066110e1576040516375abf10160e11b81526110009063eb57e202906110ae908590600401612c1d565b600060405180830381600087803b1580156110c857600080fd5b505af11580156110dc573d6000803e3d6000fd5b505050505b6001600160a01b0382166000818152600260208181526040808420865181559186015160018301558581015191909201805460ff1916911515919091179055517fddb6012116e51abf5436d956a4f0ebd927e92c576ff96d7918290c8782291e3e9190a2505b5043600355565b60005460ff166111705760405162461bcd60e51b815260040161050b90612d06565b604051630a83aaa960e31b81526110069063541d554890611195903390600401612c1d565b60206040518083038186803b1580156111ad57600080fd5b505afa1580156111c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111e591906129e7565b6112015760405162461bcd60e51b815260040161050b90612c9a565b60075460ff166112235760405162461bcd60e51b815260040161050b90612cd1565b6006546112305760146006555b438160000151604001516101000111801561125657504381602001516040015161010001115b6112725760405162461bcd60e51b815260040161050b90613228565b8060200151602001518160000151602001511480156112a05750806020015160600151816000015160600151145b156112bd5760405162461bcd60e51b815260040161050b90612f1d565b8051604081015190511080156112dc5750602081015160408101519051105b6112f85760405162461bcd60e51b815260040161050b90612e53565b60208101515181515110801561131d5750806000015160400151816020015160400151105b8061134857508051516020820151511080156113485750806020015160400151816000015160400151105b806113625750806020015160400151816000015160400151145b61137e5760405162461bcd60e51b815260040161050b90612d3d565b604080820151905163ea321e4960e01b81526110009163ea321e49916113a79190600401612c55565b60206040518083038186803b1580156113bf57600080fd5b505afa1580156113d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113f791906129e7565b6114135760405162461bcd60e51b815260040161050b90612ff3565b61142581600001518260400151611daf565b801561143e575061143e81602001518260400151611daf565b61145a5760405162461bcd60e51b815260040161050b90612df4565b6060806110006001600160a01b0316633b071dcc6040518163ffffffff1660e01b815260040160006040518083038186803b15801561149857600080fd5b505afa1580156114ac573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526114d49190810190612924565b9150915060005b8151811015611611576115058282815181106114f357fe5b60200260200101518560400151611f87565b15611609576006546040516309a99b4f60e41b815260646110028031909302049190639a99b4f09061153d9033908590600401612c31565b602060405180830381600087803b15801561155757600080fd5b505af115801561156b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061158f9190612b3b565b506110006001600160a01b03166335409f7f8584815181106115ad57fe5b60200260200101516040518263ffffffff1660e01b81526004016115d19190612c1d565b600060405180830381600087803b1580156115eb57600080fd5b505af11580156115ff573d6000803e3d6000fd5b5050505050611611565b6001016114db565b50600061162384604001516000611feb565b90506120006001600160a01b031663f7a251d7600b6116458760400151612007565b60006040518463ffffffff1660e01b81526004016116659392919061338b565b600060405180830381600087803b15801561167f57600080fd5b505af1925050508015611690575060015b611702573d8080156116be576040519150601f19603f3d011682016040523d82523d6000602084013e6116c3565b606091505b50817fd58d1183100bd0932c0588f31c4205d6bc6168909765a96c41adbed3115f3628826040516116f49190612c55565b60405180910390a25061172e565b60405181907f7b78aadacff901d8b63d0dba4f86283d4db8aef27f9ed70413dd860f1c9532b690600090a25b50505050565b601481565b61100381565b60005460ff16156117625760405162461bcd60e51b815260040161050b906130b2565b603260045560966005556000805460ff19166001179055565b61100081565b600381565b33611000146117a75760405162461bcd60e51b815260040161050b90612f4a565b60005460ff166117c95760405162461bcd60e51b815260040161050b90612d06565b6001546117d557611bcd565b600154600090600019015b808211611ba1576000805b82841015611904576117fb6126e8565b600260006001878154811061180c57fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff1615159082015260055490915060049004816020015111156118ee5760046005548161187957fe5b0481602001510381602001818152505080600260006001888154811061189b57fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208351815591830151600183015591909101516002909101805460ff19169115159190911790556118f8565b6001925050611904565b508360010193506117eb565b828411611a9b576119136126e8565b600260006001868154811061192457fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff161515908201526005549091506004900481602001511115611a0c5760046005548161199157fe5b048160200151038160200181815250508060026000600187815481106119b357fe5b6000918252602080832091909101546001600160a01b03168352828101939093526040918201902083518155918301516001808401919091559201516002909101805460ff19169115159190911790559150611a9b9050565b6002600060018681548110611a1d57fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff19169055805480611a6157fe5b600082815260209020810160001990810180546001600160a01b031916905501905583611a8e5750611a9b565b5060001990920191611904565b818015611aa55750805b15611b84576002600060018681548110611abb57fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff19169055805484908110611b0257fe5b600091825260209091200154600180546001600160a01b039092169186908110611b2857fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506001805480611b6157fe5b600082815260209020810160001990810180546001600160a01b03191690550190555b82611b90575050611ba1565b5050600190910190600019016117e0565b6040517fcfdb3b6ccaeccbdc68be3c59c840e3b3c90f0a7c491f5fff1cf56cfda200dd9c90600090a150505b565b61100481565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081611bf0579050509050611c19836001600160a01b0316612042565b81600081518110611c2657fe5b6020026020010181905250611c3a43612065565b81600181518110611c4757fe5b6020908102919091010152611c5d6102ca612065565b81600281518110611c6a57fe5b6020026020010181905250611c7e42612065565b81600381518110611c8b57fe5b6020026020010181905250611c9f81612078565b9150505b919050565b611cb061270b565b6000611cba61270b565b611cc261271d565b611cd3611cce86612102565b612127565b90506000805b611ce283612171565b15611d1b5780611d0e57611cfd611cf884612192565b6121e0565b63ffffffff16845260019150611d13565b611d1b565b600101611cd9565b5091935090915050915091565b600081604051602001611d3b9190612c01565b6040516020818303038152906040528051906020012083604051602001611d629190612c01565b604051602081830303815290604052805190602001201490505b92915050565b015190565b8082015160009060ff811615611da1576001915081611da7565b60009150815b505092915050565b60408051600480825260a0820190925260009160609190816020015b6060815260200190600190039081611dcb575050604080516020808252818301909252919250606091908082018180368337019050509050611e108560000151612065565b82600081518110611e1d57fe5b6020026020010181905250611e386020866020015183612262565b611e4181612272565b82600181518110611e4e57fe5b6020026020010181905250611e668560400151612065565b82600281518110611e7357fe5b6020026020010181905250611e8e6020866060015183612262565b611e9781612272565b82600381518110611ea457fe5b6020026020010181905250611eca6020611ebd84612078565b8051906020012083612262565b6040805160b080825260e08201909252606091602082018180368337019050509050611efa8183600060206122c8565b611f0c818760800151602060606122c8565b611f1a8186608060306122c8565b604080516001808252818301909252606091602082018180368337019050509050815160016020830182602086016066600019fa611f5757600080fd5b506001611f6582600061231b565b60ff1614611f7a576000945050505050611d7c565b5060019695505050505050565b815181516000916001918114808314611fa35760009250611fe1565b600160208701838101602088015b600284838510011415611fdc578051835114611fd05760009650600093505b60209283019201611fb1565b505050505b5090949350505050565b60008160200183511015611ffe57600080fd5b50016020015190565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081612022579050509050611c1983612272565b60408051600560a21b8318601482015260348101909152606090611c9f81612272565b6060611d7c61207383612337565b612272565b60608151600014156120995750604080516000815260208101909152611ca3565b6060826000815181106120a857fe5b602002602001015190506000600190505b83518110156120e9576120df828583815181106120d257fe5b602002602001015161241d565b91506001016120b9565b50611c9f6120fc825160c060ff1661249a565b8261241d565b61210a61273d565b506040805180820190915281518152602082810190820152919050565b61212f61271d565b6121388261256c565b61214157600080fd5b600061215083602001516125a6565b60208085015160408051808201909152868152920190820152915050919050565b600061217b61273d565b505080518051602091820151919092015191011190565b61219a61273d565b6121a382612171565b6121ac57600080fd5b602082015160006121bc82612609565b80830160209586015260408051808201909152908152938401919091525090919050565b8051600090158015906121f557508151602110155b6121fe57600080fd5b600061220d83602001516125a6565b905080836000015110156122335760405162461bcd60e51b815260040161050b906130e9565b82516020808501518301805192849003929183101561225957826020036101000a820491505b50949350505050565b9091018181526020918201910152565b6060815160011480156122a45750607f60f81b8260008151811061229257fe5b01602001516001600160f81b03191611155b156122b0575080611ca3565b611d7c6122c28351608060ff1661249a565b8361241d565b60005b818110156106ca578381815181106122df57fe5b602001015160f81c60f81b8584806001019550815181106122fc57fe5b60200101906001600160f81b031916908160001a9053506001016122cb565b6000816001018351101561232e57600080fd5b50016001015190565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff19841661237b5750601861239f565b6fffffffffffffffffffffffffffffffff19841661239b5750601061239f565b5060005b60208110156123d5578181815181106123b457fe5b01602001516001600160f81b031916156123cd576123d5565b60010161239f565b60008160200390506060816040519080825280601f01601f19166020018201604052801561240a576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b8183101561244e578051835260209283019201612436565b50855184518101855292509050808201602086015b8183101561247b578051835260209283019201612463565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106124c45760405162461bcd60e51b815260040161050b90612e2b565b6040805160018082528183019092526060916020820181803683370190505090506037841161251e5782840160f81b8160008151811061250057fe5b60200101906001600160f81b031916908160001a9053509050611d7c565b606061252985612337565b90508381510160370160f81b8260008151811061254257fe5b60200101906001600160f81b031916908160001a905350612563828261241d565b95945050505050565b805160009061257d57506000611ca3565b6020820151805160001a9060c082101561259c57600092505050611ca3565b5060019392505050565b8051600090811a60808110156125c0576000915050611ca3565b60b88110806125db575060c081108015906125db575060f881105b156125ea576001915050611ca3565b60c08110156125fe5760b519019050611ca3565b60f519019050611ca3565b80516000908190811a608081101561262457600191506126e1565b60b881101561263957607e19810191506126e1565b60c081101561268a57600060b78203600186019550806020036101000a8651049150600181018201935050808310156126845760405162461bcd60e51b815260040161050b90612f9a565b506126e1565b60f881101561269f5760be19810191506126e1565b600060f78203600186019550806020036101000a865104915060018101820193505080831015611da75760405162461bcd60e51b815260040161050b90612f9a565b5092915050565b604051806060016040528060008152602001600081526020016000151581525090565b60408051602081019091526000815290565b604051806040016040528061273061273d565b8152602001600081525090565b604051806040016040528060008152602001600081525090565b600082601f830112612767578081fd5b815161277a612775826133de565b6133b7565b818152915060208083019084810160005b848110156127f0578151870188603f8201126127a657600080fd5b838101516127b6612775826133fe565b81815260408b818486010111156127cc57600080fd5b6127db83888401838701613422565b5086525050928201929082019060010161278b565b505050505092915050565b60008083601f84011261280c578182fd5b50813567ffffffffffffffff811115612823578182fd5b60208301915083602082850101111561283b57600080fd5b9250929050565b600082601f830112612852578081fd5b8135612860612775826133fe565b915080825283602082850101111561287757600080fd5b8060208401602084013760009082016020015292915050565b600060a082840312156128a1578081fd5b6128ab60a06133b7565b905081358152602082013560208201526040820135604082015260608201356060820152608082013567ffffffffffffffff8111156128e957600080fd5b6128f584828501612842565b60808301525092915050565b600060208284031215612912578081fd5b813561291d8161344e565b9392505050565b60008060408385031215612936578081fd5b825167ffffffffffffffff8082111561294d578283fd5b81850186601f82011261295e578384fd5b8051925061296e612775846133de565b80848252602080830192508084018a82838902870101111561298e578788fd5b8794505b868510156129b95780516129a58161344e565b845260019490940193928101928101612992565b5088015190965093505050808211156129d0578283fd5b506129dd85828601612757565b9150509250929050565b6000602082840312156129f8578081fd5b8151801515811461291d578182fd5b60008060008060408587031215612a1c578182fd5b843567ffffffffffffffff80821115612a33578384fd5b612a3f888389016127fb565b90965094506020870135915080821115612a57578384fd5b50612a64878288016127fb565b95989497509550505050565b600060208284031215612a81578081fd5b813567ffffffffffffffff80821115612a98578283fd5b81840160608187031215612aaa578384fd5b612ab460606133b7565b9250803582811115612ac4578485fd5b612ad087828401612890565b845250602081013582811115612ae4578485fd5b612af087828401612890565b602085015250604081013582811115612b07578485fd5b612b1387828401612842565b6040850152509195945050505050565b600060208284031215612b34578081fd5b5035919050565b600060208284031215612b4c578081fd5b5051919050565b600080600060408486031215612b67578283fd5b833560ff81168114612b77578384fd5b9250602084013567ffffffffffffffff811115612b92578283fd5b612b9e868287016127fb565b9497909650939450505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008151808452612bed816020860160208601613422565b601f01601f19169290920160200192915050565b60008251612c13818460208701613422565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b60006020825261291d6020830184612bd5565b600060408252612c7c604083018688612bab565b8281036020840152612c8f818587612bab565b979650505050505050565b6020808252601f908201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604082015260600190565b6020808252818101527f6d616c6963696f757320766f746520736c617368206e6f7420656e61626c6564604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252601a908201527f6e6f2076696f6c6174696f6e206f6620766f74652072756c6573000000000000604082015260600190565b6020808252818101527f7468652066656c6f6e795468726573686f6c64206f7574206f662072616e6765604082015260600190565b6020808252602b908201527f6c656e677468206f6620656e61626c654d616c6963696f7573566f7465536c6160408201526a0e6d040dad2e6dac2e8c6d60ab1b606082015260800190565b60208082526017908201527f766572696679207369676e6174757265206661696c6564000000000000000000604082015260600190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526019908201527f7372634e756d20626967676572207468616e207461724e756d00000000000000604082015260600190565b6020808252602c908201527f7468652066696e616c69747920736c6173682072657761726420726174696f2060408201526b6f7574206f662072616e676560a01b606082015260800190565b60208082526027908201527f6c656e677468206f66206d697364656d65616e6f725468726573686f6c64206d6040820152660d2e6dac2e8c6d60cb1b606082015260800190565b60208082526013908201527274776f206964656e746963616c20766f74657360681b604082015260600190565b60208082526030908201527f746865206d6573736167652073656e646572206d7573742062652076616c696460408201526f185d1bdc94d95d0818dbdb9d1c9858dd60821b606082015260800190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b6020808252601590820152741d9bdd195059191c881a5cc81b9bdd08199bdd5b99605a1b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526022908201527f6c656e677468206f662066656c6f6e795468726573686f6c64206d69736d61746040820152610c6d60f31b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526025908201527f746865206d697364656d65616e6f725468726573686f6c64206f7574206f662060408201526472616e676560d81b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b6020808252601490820152731d185c99d95d08189b1bd8dac81d1bdbc81bdb1960621b604082015260600190565b6020808252601e908201527f7265636569766520756e65787065637465642073796e207061636b6167650000604082015260600190565b6020808252602b908201527f6c656e677468206f662066696e616c697479536c61736852657761726452617460408201526a0d2de40dad2e6dac2e8c6d60ab1b606082015260800190565b6020808252818101527f63616e206e6f7420736c61736820747769636520696e206f6e6520626c6f636b604082015260600190565b61ffff91909116815260200190565b90815260200190565b60008382526040602083015261333e6040830184612bd5565b949350505050565b918252602082015260400190565b92835260208301919091521515604082015260600190565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff85168252606060208301526133a76060830185612bd5565b9050826040830152949350505050565b60405181810167ffffffffffffffff811182821017156133d657600080fd5b604052919050565b600067ffffffffffffffff8211156133f4578081fd5b5060209081020190565b600067ffffffffffffffff821115613414578081fd5b50601f01601f191660200190565b60005b8381101561343d578181015183820152602001613425565b8381111561172e5750506000910152565b6001600160a01b038116811461346357600080fd5b5056fea2646970667358221220c718f1c5ee43249ff71654cc153787c56920fa43b814eeac452e4a10f8a32e9064736f6c63430006040033", - }, - }, - } - - KeplerUpgrade[networkname.BSCChainName] = &Upgrade{ - UpgradeName: "kepler", - Configs: []*UpgradeConfig{ - { - ContractAddr: ValidatorContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/ff75c61ecd457c1370327e136b38c7a0d63ca821", - Code: "6080604052600436106104a35760003560e01c806388b32f1111610260578063c6d3394511610144578063e40716a1116100c1578063f92eb86b11610085578063f92eb86b14610c02578063f9a2bbc714610c17578063fc3e590814610c2c578063fccc281314610c41578063fd4ad81f14610c56578063fd6a687914610c85576104aa565b8063e40716a114610b85578063ea321e4914610b9a578063eb57e20214610bba578063eda5868c14610bda578063f340fa0114610bef576104aa565b8063d86222d511610108578063d86222d514610b1c578063daacdb6614610b31578063dc927faf14610b46578063e086c7b114610b5b578063e1c7392a14610b70576104aa565b8063c6d3394514610abd578063c81b166214610ad2578063c8509d81146108b6578063ce910b0c14610ae7578063d68fb56a14610b07576104aa565b8063a5422d5c116101dd578063ad3c9da6116101a1578063ad3c9da614610a3c578063aef198a914610a5c578063b7ab4db514610a71578063b8cf4ef114610a93578063bf9f499514610666578063c466689d14610aa8576104aa565b8063a5422d5c146109c8578063a78abc16146109dd578063aaf5eb68146109f2578063ab51bb9614610a07578063ac43175114610a1c576104aa565b806396713da91161022457806396713da91461095f5780639dc09262146109745780639fe0f81614610989578063a0dc27581461099e578063a1a11bf5146109b3576104aa565b806388b32f11146108eb5780638a7beb01146109005780638b5ad0c9146109155780638d19a4101461092a5780639369d7de1461094a576104aa565b806351e80672116103875780636e47b482116103045780637942fd05116102c85780637942fd05146108775780637a84ca2a1461088c57806381650b62146108a1578063831d65d1146108b6578063853230aa1461086257806386249882146108d6576104aa565b80636e47b4821461080e57806370fd5bad14610823578063718a8aa81461083857806375d47a0a1461084d57806378dfed4a14610862576104aa565b80635de1e22c1161034b5780635de1e22c14610792578063603d86d31461065157806360eba4fe146107a757806362b72cf5146107c75780636969a25c146107dc576104aa565b806351e806721461071357806355614fcc14610728578063565c56b3146107485780635667515a146107685780635d77156c1461077d576104aa565b80633365af3a1161042057806343756e5c116103e457806343756e5c1461068857806345cf9daf1461069d578063493279b1146106b25780634bf6c882146106d45780634df6e0c3146106e95780635192c82c146106fe576104aa565b80633365af3a146105ee57806335409f7f1461060e5780633b071dcc1461062e5780633de0f0d8146106515780633dffc38714610666576104aa565b8063152ad3b811610467578063152ad3b8146105625780631ff1806914610584578063219f22d514610599578063300c3567146105ae578063321d398a146105ce576104aa565b806304c4fec6146104af57806307a56847146104c65780630bee7a67146104f15780630e2374a5146105135780631182b87514610535576104aa565b366104aa57005b600080fd5b3480156104bb57600080fd5b506104c4610c9a565b005b3480156104d257600080fd5b506104db610d0c565b6040516104e89190617691565b60405180910390f35b3480156104fd57600080fd5b50610506610d12565b6040516104e891906176bb565b34801561051f57600080fd5b50610528610d17565b6040516104e89190616a60565b34801561054157600080fd5b50610555610550366004616946565b610d1d565b6040516104e89190616bd7565b34801561056e57600080fd5b50610577610f55565b6040516104e89190616bcc565b34801561059057600080fd5b506104db610f5e565b3480156105a557600080fd5b50610506610f64565b3480156105ba57600080fd5b506104c46105c93660046167d0565b610f69565b3480156105da57600080fd5b506105776105e93660046168f3565b6112b0565b3480156105fa57600080fd5b506105776106093660046168f3565b61137f565b34801561061a57600080fd5b506104c46106293660046167a9565b611430565b34801561063a57600080fd5b50610643611589565b6040516104e8929190616ae2565b34801561065d57600080fd5b506104db611865565b34801561067257600080fd5b5061067b61186b565b6040516104e891906176cc565b34801561069457600080fd5b50610528611870565b3480156106a957600080fd5b506104db611876565b3480156106be57600080fd5b506106c761187c565b6040516104e89190617682565b3480156106e057600080fd5b5061067b611881565b3480156106f557600080fd5b50610643611886565b34801561070a57600080fd5b506104db611a04565b34801561071f57600080fd5b50610528611a0a565b34801561073457600080fd5b506105776107433660046167a9565b611a10565b34801561075457600080fd5b506104db6107633660046167a9565b611a45565b34801561077457600080fd5b5061067b611a96565b34801561078957600080fd5b50610506611a9b565b34801561079e57600080fd5b506104db611aa0565b3480156107b357600080fd5b506105556107c23660046168f3565b611aa6565b3480156107d357600080fd5b506104db611b4c565b3480156107e857600080fd5b506107fc6107f73660046168f3565b611b52565b6040516104e896959493929190616a8d565b34801561081a57600080fd5b50610528611bb6565b34801561082f57600080fd5b5061067b611bbc565b34801561084457600080fd5b5061067b611bc1565b34801561085957600080fd5b50610528611bc6565b34801561086e57600080fd5b506104db611bcc565b34801561088357600080fd5b5061067b611bd2565b34801561089857600080fd5b506104db611bd7565b3480156108ad57600080fd5b50610506611bdd565b3480156108c257600080fd5b506104c46108d1366004616946565b611be2565b3480156108e257600080fd5b506104db611c43565b3480156108f757600080fd5b506104db611c49565b34801561090c57600080fd5b50610577611c4f565b34801561092157600080fd5b506104db611c58565b34801561093657600080fd5b506104db6109453660046167a9565b611c5e565b34801561095657600080fd5b506104c4611c9e565b34801561096b57600080fd5b5061067b611db2565b34801561098057600080fd5b50610528611db7565b34801561099557600080fd5b506104db611dbd565b3480156109aa57600080fd5b506104db611dc2565b3480156109bf57600080fd5b50610528611dc7565b3480156109d457600080fd5b50610555611dcd565b3480156109e957600080fd5b50610577611dec565b3480156109fe57600080fd5b506104db611df5565b348015610a1357600080fd5b50610506611a96565b348015610a2857600080fd5b506104c4610a37366004616897565b611dfe565b348015610a4857600080fd5b506104db610a573660046167a9565b61269c565b348015610a6857600080fd5b506104db6126ae565b348015610a7d57600080fd5b50610a866126bb565b6040516104e89190616acf565b348015610a9f57600080fd5b506104db6127a7565b348015610ab457600080fd5b506104db6127ac565b348015610ac957600080fd5b506104db611bbc565b348015610ade57600080fd5b506105286127b2565b348015610af357600080fd5b50610555610b023660046168f3565b6127b8565b348015610b1357600080fd5b506104db6127c5565b348015610b2857600080fd5b506104db612804565b348015610b3d57600080fd5b506104db612810565b348015610b5257600080fd5b50610528612816565b348015610b6757600080fd5b506104db610d12565b348015610b7c57600080fd5b506104c461281c565b348015610b9157600080fd5b506104db6129cb565b348015610ba657600080fd5b50610577610bb5366004616858565b6129d1565b348015610bc657600080fd5b506104c4610bd53660046167a9565b612b57565b348015610be657600080fd5b50610506612c5f565b6104c4610bfd3660046167a9565b612c64565b348015610c0e57600080fd5b506104db612fcc565b348015610c2357600080fd5b50610528612fd2565b348015610c3857600080fd5b5061067b611dbd565b348015610c4d57600080fd5b50610528612fd8565b348015610c6257600080fd5b50610c76610c713660046168f3565b612fde565b6040516104e89392919061769a565b348015610c9157600080fd5b506105286130a0565b6000610ca533611c5e565b9050600b8181548110610cb457fe5b600091825260209091206001601690920201015460ff16610cf05760405162461bcd60e51b8152600401610ce79061733c565b60405180910390fd5b6000610cfa6127c5565b9050610d073383836130a6565b505050565b60095481565b606481565b61200181565b60005460609060ff16610d425760405162461bcd60e51b8152600401610ce790616d96565b3361200014610d635760405162461bcd60e51b8152600401610ce7906174d5565b600b54610e2157610d72616495565b60015460005b81811015610e1d57600b805460018101825560009190915283516000805160206177448339815191526016909202918201908155602080860151600080516020617d738339815191528401805460ff1916911515919091179055604086015180518794610df9936000805160206177648339815191529091019201906164c4565b506060820151610e0f906003830190601361653e565b505050806001019050610d78565b5050505b610e2961656b565b6000610e6a85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061329292505050565b9150915080610e8657610e7d606461344e565b92505050610f4e565b815160009060ff16610eab57610ea4836020015184604001516134af565b9050610f1a565b825160ff1660011415610f1657826020015151600114610ef057600080516020617724833981519152604051610ee0906171f5565b60405180910390a1506067610f11565b610ea48360200151600081518110610f0457fe5b6020026020010151614103565b610f1a565b5060655b63ffffffff8116610f3f5750506040805160008152602081019091529150610f4e9050565b610f488161344e565b93505050505b9392505050565b60075460ff1681565b60035481565b606881565b334114610f885760405162461bcd60e51b8152600401610ce790617524565b6010544311610fa95760405162461bcd60e51b8152600401610ce790616ef2565b3a15610fc75760405162461bcd60e51b8152600401610ce79061727b565b60005460ff16610fe95760405162461bcd60e51b8152600401610ce790616d96565b60006110023168056bc75e2d63100000811115611020576110198168056bc75e2d6310000063ffffffff61427a16565b9150611027565b50506112a6565b6040516213929d60e11b8152611002906227253a9061104c9030908690600401616a74565b602060405180830381600087803b15801561106657600080fd5b505af115801561107a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061109e919061690b565b9150816110ac5750506112a6565b6000805b848110156110da578585828181106110c457fe5b90506020020135820191508060010190506110b0565b50806110e8575050506112a6565b6000806000805b8981101561129e578489898381811061110457fe5b9050602002013588028161111457fe5b0493508a8a8281811061112357fe5b905060200201602081019061113891906167a9565b6001600160a01b0381166000908152600460205260409020549093509150811561125457600060018084038154811061116d57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff16156111da57836001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d85866040516111cd9190617691565b60405180910390a261124e565b6003546111ed908663ffffffff6142bc16565b6003908155810154611205908663ffffffff6142bc16565b60038201556040516001600160a01b038516907fcb0aad6cf9cd03bdf6137e359f541c42f38b39f007cae8e89e88aa7d8c6617b290611245908890617691565b60405180910390a25b50611296565b826001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d858560405161128d9190617691565b60405180910390a25b6001016110ef565b505050505050505b5050436010555050565b60015460009082106112c45750600061137a565b60006001600160a01b0316600183815481106112dc57fe5b60009182526020909120600490910201546001600160a01b0316148061130c5750600854158061130c5750600a54155b8061131b575060085460095410155b8061132c575061132a8261137f565b155b8061135557506000600b838154811061134157fe5b906000526020600020906016020160000154115b80611369575060016113656126bb565b5111155b156113765750600061137a565b5060015b919050565b60015460009082106113935750600061137a565b600b5482106113d057600182815481106113a957fe5b9060005260206000209060040201600201601c9054906101000a900460ff1615905061137a565b600182815481106113dd57fe5b9060005260206000209060040201600201601c9054906101000a900460ff1615801561142a5750600b828154811061141157fe5b600091825260209091206001601690920201015460ff16155b92915050565b33611001146114515760405162461bcd60e51b8152600401610ce790617639565b600b5461150f57611460616495565b60015460005b8181101561150b57600b805460018101825560009190915283516000805160206177448339815191526016909202918201908155602080860151600080516020617d738339815191528401805460ff19169115159190911790556040860151805187946114e7936000805160206177648339815191529091019201906164c4565b5060608201516114fd906003830190601361653e565b505050806001019050611466565b5050505b6001600160a01b038116600090815260046020526040902054806115335750611586565b6001810390506000600b828154811061154857fe5b600091825260209091206001601690920201015460ff16905061156b83836142e1565b80156115745750805b15610d07576009805460001901905550505b50565b60015460609081906000805b828110156115dc57600181815481106115aa57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166115d4576001909101905b600101611595565b50606081604051908082528060200260200182016040528015611609578160200160208202803683370190505b50905060608260405190808252806020026020018201604052801561164257816020015b606081526020019060019003908161162d5790505b50600b54600094509091508414156117bd5760005b848110156117b7576001818154811061166c57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166117af576001818154811061169c57fe5b600091825260209091206004909102015483516001600160a01b03909116908490869081106116c757fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600b81815481106116f457fe5b600091825260209182902060026016909202018101805460408051601f60001961010060018616150201909316949094049182018590048502840185019052808352919290919083018282801561178c5780601f106117615761010080835404028352916020019161178c565b820191906000526020600020905b81548152906001019060200180831161176f57829003601f168201915b505050505082858151811061179d57fe5b60209081029190910101526001909301925b600101611657565b50611859565b60005b8481101561185757600181815481106117d557fe5b9060005260206000209060040201600201601c9054906101000a900460ff1661184f576001818154811061180557fe5b600091825260209091206004909102015483516001600160a01b039091169084908690811061183057fe5b6001600160a01b03909216602092830291909101909101526001909301925b6001016117c0565b505b909450925050505b9091565b61271081565b600181565b61100181565b60085481565b603881565b600881565b600e54600c5460609182918061189a575060155b60606118a46126bb565b905060606118b182614694565b9050828251116118c8579094509250611861915050565b838383510310156118da578282510393505b83156119105760c843046118f683838388880360008a8a614802565b61190e8383838888038989038a8b8b8b510301614802565b505b60608360405190808252806020026020018201604052801561193c578160200160208202803683370190505b50905060608460405190808252806020026020018201604052801561197557816020015b60608152602001906001900390816119605790505b50905060005b858110156119f65784818151811061198f57fe5b60200260200101518382815181106119a357fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508381815181106119cf57fe5b60200260200101518282815181106119e357fe5b602090810291909101015260010161197b565b509096509450505050509091565b60065481565b61200081565b6001600160a01b03811660009081526004602052604081205480611a3857600091505061137a565b60001901610f4e8161137f565b6001600160a01b03811660009081526004602052604081205480611a6d57600091505061137a565b600180820381548110611a7c57fe5b906000526020600020906004020160030154915050919050565b600081565b606781565b600f5481565b60128181548110611ab357fe5b600091825260209182902001805460408051601f6002600019610100600187161502019094169390930492830185900485028101850190915281815293509091830182828015611b445780601f10611b1957610100808354040283529160200191611b44565b820191906000526020600020905b815481529060010190602001808311611b2757829003601f168201915b505050505081565b60105481565b60018181548110611b5f57fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b601081565b61100881565b6103e881565b600b81565b600c5481565b606681565b3361200014611c035760405162461bcd60e51b8152600401610ce7906174d5565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051611c36939291906176da565b60405180910390a1505050565b60025481565b60115481565b60145460ff1681565b600a5481565b6001600160a01b03811660009081526004602052604081205480611c945760405162461bcd60e51b8152600401610ce79061745d565b6000190192915050565b600b54611d5c57611cad616495565b60015460005b81811015611d5857600b805460018101825560009190915283516000805160206177448339815191526016909202918201908155602080860151600080516020617d738339815191528401805460ff1916911515919091179055604086015180518794611d34936000805160206177648339815191529091019201906164c4565b506060820151611d4a906003830190601361653e565b505050806001019050611cb3565b5050505b600854611d695760036008555b600a54611d76576002600a555b6000611d8133611c5e565b9050611d8c816112b0565b611da85760405162461bcd60e51b8152600401610ce7906171b2565b6115863382614959565b600981565b61100781565b600381565b60c881565b61100681565b6040518061062001604052806105ef81526020016177846105ef913981565b60005460ff1681565b6402540be40081565b60005460ff16611e205760405162461bcd60e51b8152600401610ce790616d96565b3361100714611e415760405162461bcd60e51b8152600401610ce7906172a9565b611eab84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b602082015291506149f19050565b15611f485760208114611ed05760405162461bcd60e51b8152600401610ce790617417565b604080516020601f8401819004810282018101909252828152600091611f0e91858580838501838280828437600092019190915250614a4a92505050565b905060648110158015611f245750620186a08111155b611f405760405162461bcd60e51b8152600401610ce7906170a2565b600255612659565b611fa884848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260098152686275726e526174696f60b81b602082015291506149f19050565b156120375760208114611fcd5760405162461bcd60e51b8152600401610ce790616c1c565b604080516020601f840181900481028201810190925282815260009161200b91858580838501838280828437600092019190915250614a4a92505050565b905061271081111561202f5760405162461bcd60e51b8152600401610ce790616f34565b600655612659565b6120a184848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260138152726d61784e756d4f664d61696e7461696e696e6760681b602082015291506149f19050565b1561213b57602081146120c65760405162461bcd60e51b8152600401610ce790616c53565b604080516020601f840181900481028201810190925282815260009161210491858580838501838280828437600092019190915250614a4a92505050565b600c5490915080612113575060155b8082106121325760405162461bcd60e51b8152600401610ce790616fa7565b50600855612659565b6121a484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61696e7461696e536c6173685363616c6560701b602082015291506149f19050565b1561223d57602081146121c95760405162461bcd60e51b8152600401610ce790616d1c565b604080516020601f840181900481028201810190925282815260009161220791858580838501838280828437600092019190915250614a4a92505050565b90506000811180156122195750600a81105b6122355760405162461bcd60e51b8152600401610ce7906175b5565b600a55612659565b6122b184848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601981527f6d61784e756d4f66576f726b696e6743616e6469646174657300000000000000602082015291506149f19050565b1561234057602081146122d65760405162461bcd60e51b8152600401610ce790616cd0565b604080516020601f840181900481028201810190925282815260009161231491858580838501838280828437600092019190915250614a4a92505050565b9050600d548111156123385760405162461bcd60e51b8152600401610ce790617118565b600e55612659565b6123a984848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61784e756d4f6643616e6469646174657360701b602082015291506149f19050565b1561242b57602081146123ce5760405162461bcd60e51b8152600401610ce7906172f7565b604080516020601f840181900481028201810190925282815260009161240c91858580838501838280828437600092019190915250614a4a92505050565b600d819055600e5490915081101561242557600d54600e555b50612659565b61248f84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c6e756d4f66436162696e65747360981b602082015291506149f19050565b1561253d57602081146124b45760405162461bcd60e51b8152600401610ce790616d61565b604080516020601f84018190048102820181019092528281526000916124f291858580838501838280828437600092019190915250614a4a92505050565b9050600081116125145760405162461bcd60e51b8152600401610ce790616e04565b60648111156125355760405162461bcd60e51b8152600401610ce790616e4c565b600c55612659565b6125a584848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601181527073797374656d526577617264526174696f60781b602082015291506149f19050565b1561264157602081146125ca5760405162461bcd60e51b8152600401610ce790617571565b604080516020601f840181900481028201810190925282815260009161260891858580838501838280828437600092019190915250614a4a92505050565b90506001811015801561261d57506127108111155b6126395760405162461bcd60e51b8152600401610ce79061704f565b600f55612659565b60405162461bcd60e51b8152600401610ce790617612565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a8484848460405161268e9493929190616bea565b60405180910390a150505050565b60046020526000908152604090205481565b68056bc75e2d6310000081565b6001546060906000805b828110156126ea576126d68161137f565b156126e2578160010191505b6001016126c5565b50606081604051908082528060200260200182016040528015612717578160200160208202803683370190505b5090506000915060005b8381101561279e576127328161137f565b15612796576001818154811061274457fe5b600091825260209091206004909102015482516001600160a01b039091169083908590811061276f57fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508260010192505b600101612721565b50925050505b90565b601581565b61027181565b61100281565b60138181548110611ab357fe5b60006127cf6126bb565b519050600080600c54116127e45760156127e8565b600c545b9050808211156127f6578091505b8161280057600191505b5090565b67016345785d8a000081565b60055481565b61100381565b60005460ff161561283f5760405162461bcd60e51b8152600401610ce7906173a9565b61284761656b565b600061286d6040518061062001604052806105ef81526020016177846105ef9139613292565b915091508061288e5760405162461bcd60e51b8152600401610ce790617494565b60005b8260200151518110156129b3576001836020015182815181106128b057fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a09093015160039093019290925591860151805191850193918590811061298657fe5b602090810291909101810151516001600160a01b0316825281019190915260400160002055600101612891565b50506103e8600255506000805460ff19166001179055565b600d5481565b601354600090815b81811015612ada57612ac285858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050601380549092508591508110612a2a57fe5b600091825260209182902001805460408051601f6002600019610100600187161502019094169390930492830185900485028101850190915281815292830182828015612ab85780601f10612a8d57610100808354040283529160200191612ab8565b820191906000526020600020905b815481529060010190602001808311612a9b57829003601f168201915b5050505050614a4f565b15612ad25760019250505061142a565b6001016129d9565b5060125460005b81811015612b4b57612b3286868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050601280549092508591508110612a2a57fe5b15612b43576001935050505061142a565b600101612ae1565b50600095945050505050565b3361100114612b785760405162461bcd60e51b8152600401610ce790617639565b600b54612c3657612b87616495565b60015460005b81811015612c3257600b805460018101825560009190915283516000805160206177448339815191526016909202918201908155602080860151600080516020617d738339815191528401805460ff1916911515919091179055604086015180518794612c0e936000805160206177648339815191529091019201906164c4565b506060820151612c24906003830190601361653e565b505050806001019050612b8d565b5050505b6000612c4182614ab3565b9050612c4c816112b0565b15612c5b57612c5b8282614959565b5050565b606581565b334114612c835760405162461bcd60e51b8152600401610ce790617524565b60005460ff16612ca55760405162461bcd60e51b8152600401610ce790616d96565b60003411612cc55760405162461bcd60e51b8152600401610ce7906170e9565b3a15612ce35760405162461bcd60e51b8152600401610ce79061727b565b6001600160a01b03811660009081526004602052604090205460145434919060ff16612d2357610271600f556103e86006556014805460ff191660011790555b6000612d4c612710612d40600f5486614c5690919063ffffffff16565b9063ffffffff614c9016565b90508015612dbc576040516110029082156108fc029083906000818181858888f19350505050158015612d83573d6000803e3d6000fd5b507f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d81604051612db39190617691565b60405180910390a15b600083118015612dce57506000600654115b15612e74576000612df0612710612d4060065487614c5690919063ffffffff16565b90508015612e725760405161dead9082156108fc029083906000818181858888f19350505050158015612e27573d6000803e3d6000fd5b507f627059660ea01c4733a328effb2294d2f86905bf806da763a89cee254de8bee581604051612e579190617691565b60405180910390a1612e6f848263ffffffff61427a16565b93505b505b612e84838263ffffffff61427a16565b92508115612f84576000600180840381548110612e9d57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff1615612f0a57846001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b485604051612efd9190617691565b60405180910390a2612f7e565b600354612f1d908563ffffffff6142bc16565b6003908155810154612f35908563ffffffff6142bc16565b60038201556040516001600160a01b038616907f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc05590612f75908790617691565b60405180910390a25b50612fc6565b836001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b484604051612fbd9190617691565b60405180910390a25b50505050565b600e5481565b61100081565b61dead81565b600b8181548110612feb57fe5b6000918252602091829020601691909102018054600180830154600280850180546040805161010096831615969096026000190190911692909204601f810188900488028501880190925281845293965060ff909116949192918301828280156130965780601f1061306b57610100808354040283529160200191613096565b820191906000526020600020905b81548152906001019060200180831161307957829003601f168201915b5050505050905083565b61100481565b6000600a54600014806130b7575081155b806130c25750600954155b156130cf57506000610f4e565b6009600081546001900391905081905550600061311a600a54612d4085612d40600b89815481106130fc57fe5b6000918252602090912060169091020154439063ffffffff61427a16565b90506000600b858154811061312b57fe5b906000526020600020906016020160010160006101000a81548160ff0219169083151502179055506000806110016001600160a01b0316638256ace66040518163ffffffff1660e01b8152600401604080518083038186803b15801561319057600080fd5b505afa1580156131a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131c89190616923565b9150915060009350808310613242576131e187876142e1565b506040516305bfb49960e41b815261100190635bfb499090613207908a90600401616a60565b600060405180830381600087803b15801561322157600080fd5b505af1158015613235573d6000803e3d6000fd5b5050505060019350613254565b8183106132545761325287614ab3565b505b6040516001600160a01b038816907fb9d38178dc641ff1817967a63c9078cbcd955a9f1fcd75e0e3636de615d44d3b90600090a25050509392505050565b61329a61656b565b60006132a461656b565b6132ac61658f565b6132bd6132b886614cd2565b614cf7565b90506000805b6132cc83614d41565b1561344057806132f1576132e76132e284614d62565b614db0565b60ff168452613438565b806001141561343357606061330d61330885614d62565b614e30565b9050805160405190808252806020026020018201604052801561334a57816020015b6133376165af565b81526020019060019003908161332f5790505b508560200181905250805160405190808252806020026020018201604052801561338857816020015b60608152602001906001900390816133735790505b50604086015260005b8151811015613428576133a26165af565b606060006133c28585815181106133b557fe5b6020026020010151614f01565b925092509250806133e2578860009a509a50505050505050505050613449565b82896020015185815181106133f357fe5b6020026020010181905250818960400151858151811061340f57fe5b6020026020010181905250505050806001019050613391565b506001925050613438565b613440565b6001016132c3565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b606081526020019060019003908161346857905050905061348e8363ffffffff1661501b565b8160008151811061349b57fe5b6020026020010181905250610f4e8161502e565b60006064835111156134e6576000805160206177248339815191526040516134d690616ea9565b60405180910390a150606661142a565b60005b83518110156135845760005b8181101561357b5784818151811061350957fe5b6020026020010151600001516001600160a01b031685838151811061352a57fe5b6020026020010151600001516001600160a01b031614156135735760008051602061772483398151915260405161356090617004565b60405180910390a160669250505061142a565b6001016134f5565b506001016134e9565b5060608061359285856150b8565b60015491935091506000908190815b818110156136175767016345785d8a0000600182815481106135bf57fe5b906000526020600020906004020160030154106135e15783600101935061360f565b6000600182815481106135f057fe5b906000526020600020906004020160030154111561360f578260010192505b6001016135a1565b50606083604051908082528060200260200182016040528015613644578160200160208202803683370190505b509050606084604051908082528060200260200182016040528015613673578160200160208202803683370190505b5090506060856040519080825280602002602001820160405280156136a2578160200160208202803683370190505b5090506060866040519080825280602002602001820160405280156136d1578160200160208202803683370190505b5090506000606087604051908082528060200260200182016040528015613702578160200160208202803683370190505b509050606088604051908082528060200260200182016040528015613731578160200160208202803683370190505b509050600099506000985060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b15801561377957600080fd5b505afa15801561378d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137b1919061690b565b905067016345785d8a00008111156137fc576000805160206177248339815191526040516137de90617368565b60405180910390a160689d505050505050505050505050505061142a565b60005b89811015613a6d5767016345785d8a00006001828154811061381d57fe5b906000526020600020906004020160030154106139a2576001818154811061384157fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316898d8151811061387257fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be400600183815481106138a757fe5b906000526020600020906004020160030154816138c057fe5b06600183815481106138ce57fe5b9060005260206000209060040201600301540390506138f6838261427a90919063ffffffff16565b898e8151811061390257fe5b6020026020010181815250506001828154811061391b57fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316878e8151811061394c57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081888e8151811061397957fe5b6020908102919091010152613994868263ffffffff6142bc16565b95508c6001019c5050613a65565b6000600182815481106139b157fe5b9060005260206000209060040201600301541115613a6557600181815481106139d657fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316848c81518110613a0757fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060018181548110613a3457fe5b906000526020600020906004020160030154838c81518110613a5257fe5b6020026020010181815250508a6001019a505b6001016137ff565b5060008415613ce3576002546040516303702b2960e51b815261100491636e056520918891613aa7918e918e918d91420190600401616b52565b6020604051808303818588803b158015613ac057600080fd5b505af193505050508015613af1575060408051601f3d908101601f19168201909252613aee91810190616838565b60015b613c68576040516000815260443d1015613b0d57506000613ba8565b60046000803e60005160e01c6308c379a08114613b2e576000915050613ba8565b60043d036004833e81513d60248201116001600160401b0382111715613b5957600092505050613ba8565b80830180516001600160401b03811115613b7a576000945050505050613ba8565b8060208301013d8601811115613b9857600095505050505050613ba8565b601f01601f191660405250925050505b80613bb35750613bf5565b60019150857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf28082604051613be79190616bd7565b60405180910390a250613c63565b3d808015613c1f576040519150601f19603f3d011682016040523d82523d6000602084013e613c24565b606091505b5060019150857fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a4582604051613c599190616bd7565b60405180910390a2505b613ce3565b8015613caa577fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b7086604051613c9d9190617691565b60405180910390a1613ce1565b857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280604051613cd890616c99565b60405180910390a25b505b8015613e995760005b8751811015613e97576000888281518110613d0357fe5b60200260200101519050600060018281548110613d1c57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc9185908110613d4d57fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f1935050505090508015613e095760018281548110613d8e57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d9185908110613ddd57fe5b906000526020600020906004020160030154604051613dfc9190617691565b60405180910390a2613e8d565b60018281548110613e1657fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d9185908110613e6557fe5b906000526020600020906004020160030154604051613e849190617691565b60405180910390a25b5050600101613cec565b505b835115613fe35760005b8451811015613fe1576000858281518110613eba57fe5b60200260200101516001600160a01b03166108fc868481518110613eda57fe5b60200260200101519081150290604051600060405180830381858888f1935050505090508015613f7057858281518110613f1057fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d868481518110613f4e57fe5b6020026020010151604051613f639190617691565b60405180910390a2613fd8565b858281518110613f7c57fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d868481518110613fba57fe5b6020026020010151604051613fcf9190617691565b60405180910390a25b50600101613ea3565b505b505050505050505050505050600047111561405f577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d476040516140279190617691565b60405180910390a1604051611002904780156108fc02916000818181858888f1935050505015801561405d573d6000803e3d6000fd5b505b6000600381905560055581511561407a5761407a82826152f1565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156140b757600080fd5b505af11580156140cb573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a1506000949350505050565b80516001600160a01b0316600090815260046020526040812054801580614154575060018082038154811061413457fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b1561419a5782516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a2600091505061137a565b6001546005546000198201118015906141f05784516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a26000935050505061137a565b60058054600190810190915580548190600019860190811061420e57fe5b6000918252602082206002600490920201018054921515600160e01b0260ff60e01b199093169290921790915585516040516001600160a01b03909116917ff226e7d8f547ff903d9d419cf5f54e0d7d07efa9584135a53a057c5f1f27f49a91a2506000949350505050565b6000610f4e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250615aab565b600082820183811015610f4e5760405162461bcd60e51b8152600401610ce790616dcd565b600080600183815481106142f157fe5b9060005260206000209060040201600301549050600060018080549050039050600161431b6126bb565b51116143505760006001858154811061433057fe5b90600052602060002090600402016003018190555060009250505061142a565b846001600160a01b03167f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a70836040516143899190617691565b60405180910390a26001600160a01b038516600090815260046020526040812055835b6001546000190181101561457657600181600101815481106143ca57fe5b9060005260206000209060040201600182815481106143e557fe5b60009182526020909120825460049092020180546001600160a01b03199081166001600160a01b0393841617825560018085015481840180548416918616919091179055600280860180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b19909416939093179055600392830154920191909155600b8054909183019081106144a657fe5b9060005260206000209060160201600b82815481106144c157fe5b600091825260209091208254601690920201908155600180830154818301805460ff909216151560ff19909216919091179055600280840180546145189383860193908216156101000260001901909116046165e4565b5061452b60038281019084016013616659565b5090505080600101600460006001848154811061454457fe5b600091825260208083206004909202909101546001600160a01b031683528201929092526040019020556001016143ac565b50600180548061458257fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b8054806145d557fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906146076002830182616683565b6146156003830160006166c7565b50509055600081838161462457fe5b04905080156146885760015460005b8181101561468557826001828154811061464957fe5b906000526020600020906004020160030154016001828154811061466957fe5b6000918252602090912060036004909202010155600101614633565b50505b50600195945050505050565b6001548151604080518281526020808402820101909152606092919083908280156146d357816020015b60608152602001906001900390816146be5790505b50600b5490915083146146ea57925061137a915050565b60005b828110156147f957600b60016004600089858151811061470957fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054038154811061473d57fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156147d55780601f106147aa576101008083540402835291602001916147d5565b820191906000526020600020905b8154815290600101906020018083116147b857829003601f168201915b50505050508282815181106147e657fe5b60209081029190910101526001016146ed565b50949350505050565b60005b8281101561494f5760008287838801604051602001614825929190616a52565b6040516020818303038152906040528051906020012060001c8161484557fe5b06905080850182870114614946576000898388018151811061486357fe5b602002602001015190506060898489018151811061487d57fe5b602002602001015190508a8388018151811061489557fe5b60200260200101518b858a01815181106148ab57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050818b848901815181106148da57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050898388018151811061490857fe5b60200260200101518a858a018151811061491e57fe5b6020026020010181905250808a8489018151811061493857fe5b602002602001018190525050505b50600101614805565b5050505050505050565b600980546001908101909155600b80548390811061497357fe5b906000526020600020906016020160010160006101000a81548160ff02191690831515021790555043600b82815481106149a957fe5b600091825260208220601690910201919091556040516001600160a01b038416917ff62981a567ec3cec866c6fa93c55bcdf841d6292d18b8d522ececa769375d82d91a25050565b600081604051602001614a049190616a36565b6040516020818303038152906040528051906020012083604051602001614a2b9190616a36565b6040516020818303038152906040528051906020012014905092915050565b015190565b815181516000916001918114808314614a6b5760009250614aa9565b600160208701838101602088015b600284838510011415614aa4578051835114614a985760009650600093505b60209283019201614a79565b505050505b5090949350505050565b6001600160a01b03811660009081526004602052604081205480614adc5750600019905061137a565b600181039050600060018281548110614af157fe5b9060005260206000209060040201600301549050600060018381548110614b1457fe5b6000918252602090912060036004909202010155600154604051600019909101906001600160a01b038616907f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d90614b6d908590617691565b60405180910390a280614b855782935050505061137a565b6000818381614b9057fe5b0490508015614c4c5760005b84811015614bee578160018281548110614bb257fe5b9060005260206000209060040201600301540160018281548110614bd257fe5b6000918252602090912060036004909202010155600101614b9c565b50600180549085015b81811015614c49578260018281548110614c0d57fe5b9060005260206000209060040201600301540160018281548110614c2d57fe5b6000918252602090912060036004909202010155600101614bf7565b50505b5091949350505050565b600082614c655750600061142a565b82820282848281614c7257fe5b0414610f4e5760405162461bcd60e51b8152600401610ce79061723a565b6000610f4e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250615ad7565b614cda6166d6565b506040805180820190915281518152602082810190820152919050565b614cff61658f565b614d0882615b0e565b614d1157600080fd5b6000614d208360200151615b48565b60208085015160408051808201909152868152920190820152915050919050565b6000614d4b6166d6565b505080518051602091820151919092015191011190565b614d6a6166d6565b614d7382614d41565b614d7c57600080fd5b60208201516000614d8c82615bab565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590614dc557508151602110155b614dce57600080fd5b6000614ddd8360200151615b48565b90508083600001511015614e035760405162461bcd60e51b8152600401610ce7906173e0565b8251602080850151830180519284900392918310156147f957506020919091036101000a90049392505050565b6060614e3b82615b0e565b614e4457600080fd5b6000614e4f83615c8c565b9050606081604051908082528060200260200182016040528015614e8d57816020015b614e7a6166d6565b815260200190600190039081614e725790505b5090506000614e9f8560200151615b48565b60208601510190506000805b84811015614ef657614ebc83615bab565b9150604051806040016040528083815260200184815250848281518110614edf57fe5b602090810291909101015291810191600101614eab565b509195945050505050565b614f096165af565b60606000614f156165af565b6060614f1f61658f565b614f2887614cf7565b90506000805b614f3783614d41565b1561500c5780614f6257614f52614f4d84614d62565b615ce8565b6001600160a01b03168552615004565b8060011415614f8a57614f77614f4d84614d62565b6001600160a01b03166020860152615004565b8060021415614fb257614f9f614f4d84614d62565b6001600160a01b03166040860152615004565b8060031415614fde57614fc76132e284614d62565b6001600160401b0316606086015260019150615004565b8060041415614fff57614ff8614ff384614d62565b615d02565b9350615004565b61500c565b600101614f2e565b50929791965091945092505050565b606061142a61502983615d72565b615e58565b606081516000141561504f575060408051600081526020810190915261137a565b60608260008151811061505e57fe5b602002602001015190506000600190505b835181101561509f576150958285838151811061508857fe5b6020026020010151615eaa565b915060010161506f565b50610f4e6150b2825160c060ff16615f27565b82615eaa565b6060806000808080806150c96127c5565b6001549091505b80156151d757600181039250600b83815481106150e957fe5b600091825260209091206001601690920201015460ff16615109576151ce565b6001838154811061511657fe5b60009182526020909120600490910201546001600160a01b0316945061513d8584846130a6565b9350831580615150575060018a51038610155b1561515a576151ce565b60005b8a518110156151cc57856001600160a01b03168b828151811061517c57fe5b6020026020010151600001516001600160a01b031614156151c45760018b82815181106151a557fe5b60209081029190910101519015156080909101526001909601956151cc565b60010161515d565b505b600019016150d0565b508489510360405190808252806020026020018201604052801561521557816020015b6152026165af565b8152602001906001900390816151fa5790505b5096508489510360405190808252806020026020018201604052801561524f57816020015b606081526020019060019003908161523a5790505b5095506000915060005b89518110156152e35789818151811061526e57fe5b6020026020010151608001516152db5789818151811061528a57fe5b602002602001015188848151811061529e57fe5b60200260200101819052508881815181106152b557fe5b60200260200101518784815181106152c957fe5b60200260200101819052508260010192505b600101615259565b5050505050505b9250929050565b600154825160005b8281101561540e57600161530b6165af565b6001838154811061531857fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b848110156153e2578781815181106153a857fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b031614156153da57600092506153e2565b600101615394565b5081156154045780516001600160a01b03166000908152600460205260408120555b50506001016152f9565b50808211156154cd57805b828110156154cb57600180548061542c57fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b80548061547f57fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906154b16002830182616683565b6154bf6003830160006166c7565b50509055600101615419565b505b60008183106154dc57816154de565b825b905060005b8181101561584d576155908682815181106154fa57fe5b60200260200101516001838154811061550f57fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a0820152615ff9565b6157445780600101600460008884815181106155a857fe5b6020026020010151600001516001600160a01b03166001600160a01b03168152602001908152602001600020819055508581815181106155e457fe5b6020026020010151600182815481106155f957fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a09091015160039091015584518590829081106156b457fe5b6020026020010151600b82815481106156c957fe5b906000526020600020906016020160020190805190602001906156ed9291906164c4565b506000600b82815481106156fd57fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b80548390811061572e57fe5b6000918252602090912060169091020155615845565b6157d585828151811061575357fe5b6020026020010151600b838154811061576857fe5b600091825260209182902060026016909202018101805460408051601f600019610100600186161502019093169490940491820185900485028401850190528083529192909190830182828015612ab85780601f10612a8d57610100808354040283529160200191612ab8565b615820578481815181106157e557fe5b6020026020010151600b82815481106157fa57fe5b9060005260206000209060160201600201908051906020019061581e9291906164c4565b505b60006001828154811061582f57fe5b9060005260206000209060040201600301819055505b6001016154e3565b5082821115615a255761585e616495565b835b83811015615a225785818151811061587457fe5b60200260200101518260400181905250600187828151811061589257fe5b6020908102919091018101518254600181810185556000948552838520835160049093020180546001600160a01b039384166001600160a01b0319918216178255848601518284018054918616918316919091179055604080860151600284018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909a1692909616919091179290921696909617169190911790935560a090930151600390930192909255600b8054928301815590935284516016909102600080516020617744833981519152810191825585830151600080516020617d738339815191528201805491151560ff19909216919091179055928501518051869492936159c893600080516020617764833981519152019201906164c4565b5060608201516159de906003830190601361653e565b50505080600101600460008984815181106159f557fe5b602090810291909101810151516001600160a01b0316825281019190915260400160002055600101615860565b50505b615a2d61607a565b615a3561625c565b6000600981905560015493505b83811015615aa3576000600b8281548110615a5957fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b805483908110615a8a57fe5b6000918252602090912060169091020155600101615a42565b505050505050565b60008184841115615acf5760405162461bcd60e51b8152600401610ce79190616bd7565b505050900390565b60008183615af85760405162461bcd60e51b8152600401610ce79190616bd7565b506000838581615b0457fe5b0495945050505050565b8051600090615b1f5750600061137a565b6020820151805160001a9060c0821015615b3e5760009250505061137a565b5060019392505050565b8051600090811a6080811015615b6257600091505061137a565b60b8811080615b7d575060c08110801590615b7d575060f881105b15615b8c57600191505061137a565b60c0811015615ba05760b51901905061137a565b60f51901905061137a565b80516000908190811a6080811015615bc65760019150615c85565b60b8811015615bdb57607e1981019150615c85565b60c0811015615c2c57600060b78203600186019550806020036101000a865104915060018101820193505080831015615c265760405162461bcd60e51b8152600401610ce790617187565b50615c85565b60f8811015615c415760be1981019150615c85565b600060f78203600186019550806020036101000a865104915060018101820193505080831015615c835760405162461bcd60e51b8152600401610ce790617187565b505b5092915050565b8051600090615c9d5750600061137a565b60008090506000615cb18460200151615b48565b602085015185519181019250015b80821015615cdf57615cd082615bab565b82019150826001019250615cbf565b50909392505050565b8051600090601514615cf957600080fd5b61142a82614db0565b8051606090615d1057600080fd5b6000615d1f8360200151615b48565b83516040805191839003808352601f19601f8201168301602001909152919250606090828015615d56576020820181803683370190505b50905060008160200190506147f984876020015101828561644a565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416615db657506018615dda565b6fffffffffffffffffffffffffffffffff198416615dd657506010615dda565b5060005b6020811015615e1057818181518110615def57fe5b01602001516001600160f81b03191615615e0857615e10565b600101615dda565b60008160200390506060816040519080825280601f01601f191660200182016040528015615e45576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015615e8a5750607f60f81b82600081518110615e7857fe5b01602001516001600160f81b03191611155b15615e9657508061137a565b61142a615ea88351608060ff16615f27565b835b6060806040519050835180825260208201818101602087015b81831015615edb578051835260209283019201615ec3565b50855184518101855292509050808201602086015b81831015615f08578051835260209283019201615ef0565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310615f515760405162461bcd60e51b8152600401610ce790616f7f565b60408051600180825281830190925260609160208201818036833701905050905060378411615fab5782840160f81b81600081518110615f8d57fe5b60200101906001600160f81b031916908160001a905350905061142a565b6060615fb685615d72565b90508381510160370160f81b82600081518110615fcf57fe5b60200101906001600160f81b031916908160001a905350615ff08282615eaa565b95945050505050565b805182516000916001600160a01b039182169116148015616033575081602001516001600160a01b031683602001516001600160a01b0316145b8015616058575081604001516001600160a01b031683604001516001600160a01b0316145b8015610f4e5750506060908101519101516001600160401b0390811691161490565b601254601354808211156160c557805b828110156160c357601280548061609d57fe5b6001900381819060005260206000200160006160b99190616683565b905560010161608a565b505b60008183106160d457816160d6565b825b905060005b818110156161ee57616193601282815481106160f357fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156161815780601f1061615657610100808354040283529160200191616181565b820191906000526020600020905b81548152906001019060200180831161616457829003601f168201915b505050505060138381548110612a2a57fe5b6161e657601381815481106161a457fe5b90600052602060002001601282815481106161bb57fe5b9060005260206000200190805460018160011615610100020316600290046161e49291906165e4565b505b6001016160db565b5082821115610d0757825b82811015612fc65760126013828154811061621057fe5b60009182526020808320845460018181018755958552919093209290910180546162539493909201929091600261010092821615929092026000190116046165e4565b506001016161f9565b601354600b54808211156162a757805b828110156162a557601380548061627f57fe5b60019003818190600052602060002001600061629b9190616683565b905560010161626c565b505b60008183106162b657816162b8565b825b905060005b818110156163d757616375601382815481106162d557fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156163635780601f1061633857610100808354040283529160200191616363565b820191906000526020600020905b81548152906001019060200180831161634657829003601f168201915b5050505050600b838154811061576857fe5b6163cf57600b818154811061638657fe5b9060005260206000209060160201600201601382815481106163a457fe5b9060005260206000200190805460018160011615610100020316600290046163cd9291906165e4565b505b6001016162bd565b5082821115610d0757825b82811015612fc6576013600b82815481106163f957fe5b600091825260208083208454600180820187559585529190932060169290920290920160029081018054616441959390940193909260001990821615610100020116046165e4565b506001016163e2565b8061645457610d07565b5b60208110616474578251825260209283019290910190601f1901616455565b915181516020939093036101000a6000190180199091169216919091179052565b604051806080016040528060008152602001600015158152602001606081526020016164bf6166f0565b905290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061650557805160ff1916838001178555616532565b82800160010185558215616532579182015b82811115616532578251825591602001919060010190616517565b5061280092915061670f565b82601381019282156165325791602002820182811115616532578251825591602001919060010190616517565b6040518060600160405280600060ff16815260200160608152602001606081525090565b60405180604001604052806165a26166d6565b8152602001600081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061661d5780548555616532565b8280016001018555821561653257600052602060002091601f016020900482015b8281111561653257825482559160010191906001019061663e565b8260138101928215616532579182018281111561653257825482559160010191906001019061663e565b50805460018160011615610100020316600290046000825580601f106166a95750611586565b601f016020900490600052602060002090810190611586919061670f565b5061158690601381019061670f565b604051806040016040528060008152602001600081525090565b6040518061026001604052806013906020820280368337509192915050565b6127a491905b808211156128005760008155600101616715565b60008083601f84011261673a578182fd5b5081356001600160401b03811115616750578182fd5b60208301915083602080830285010111156152ea57600080fd5b60008083601f84011261677b578182fd5b5081356001600160401b03811115616791578182fd5b6020830191508360208285010111156152ea57600080fd5b6000602082840312156167ba578081fd5b81356001600160a01b0381168114610f4e578182fd5b600080600080604085870312156167e5578283fd5b84356001600160401b03808211156167fb578485fd5b61680788838901616729565b9096509450602087013591508082111561681f578384fd5b5061682c87828801616729565b95989497509550505050565b600060208284031215616849578081fd5b81518015158114610f4e578182fd5b6000806020838503121561686a578182fd5b82356001600160401b0381111561687f578283fd5b61688b8582860161676a565b90969095509350505050565b600080600080604085870312156168ac578384fd5b84356001600160401b03808211156168c2578586fd5b6168ce8883890161676a565b909650945060208701359150808211156168e6578384fd5b5061682c8782880161676a565b600060208284031215616904578081fd5b5035919050565b60006020828403121561691c578081fd5b5051919050565b60008060408385031215616935578182fd5b505080516020909101519092909150565b60008060006040848603121561695a578283fd5b833560ff8116811461696a578384fd5b925060208401356001600160401b03811115616984578283fd5b6169908682870161676a565b9497909650939450505050565b6000815180845260208085019450808401835b838110156169d55781516001600160a01b0316875295820195908201906001016169b0565b509495945050505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008151808452616a228160208601602086016176f7565b601f01601f19169290920160200192915050565b60008251616a488184602087016176f7565b9190910192915050565b918252602082015260400190565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b03968716815294861660208601529290941660408401526001600160401b03166060830152911515608082015260a081019190915260c00190565b600060208252610f4e602083018461699d565b600060408252616af5604083018561699d565b602083820381850152818551808452828401915082838202850101838801865b83811015616b4357601f19878403018552616b31838351616a0a565b94860194925090850190600101616b15565b50909998505050505050505050565b600060808252616b65608083018761699d565b828103602084810191909152865180835287820192820190845b81811015616b9b57845183529383019391830191600101616b7f565b50508481036040860152616baf818861699d565b93505050506001600160401b038316606083015295945050505050565b901515815260200190565b600060208252610f4e6020830184616a0a565b600060408252616bfe6040830186886169e0565b8281036020840152616c118185876169e0565b979650505050505050565b6020808252601c908201527f6c656e677468206f66206275726e526174696f206d69736d6174636800000000604082015260600190565b60208082526026908201527f6c656e677468206f66206d61784e756d4f664d61696e7461696e696e67206d696040820152650e6dac2e8c6d60d31b606082015260800190565b6020808252601b908201527f6261746368207472616e736665722072657475726e2066616c73650000000000604082015260600190565b6020808252602c908201527f6c656e677468206f66206d61784e756d4f66576f726b696e6743616e6469646160408201526b0e8cae640dad2e6dac2e8c6d60a31b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61696e7461696e536c6173685363616c65206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252818101527f6c656e677468206f66206e756d4f66436162696e657473206d69736d61746368604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526028908201527f746865206e756d4f66436162696e657473206d75737420626520677265617465604082015267072207468616e20360c41b606082015260800190565b60208082526039908201527f746865206e756d4f66436162696e657473206d757374206265206c657373207460408201527f68616e204d41585f4e554d5f4f465f56414c494441544f525300000000000000606082015260800190565b60208082526029908201527f746865206e756d626572206f662076616c696461746f727320657863656564206040820152681d1a19481b1a5b5a5d60ba1b606082015260800190565b60208082526022908201527f63616e206e6f7420646f207468697320747769636520696e206f6e6520626c6f604082015261636b60f01b606082015260800190565b6020808252602b908201527f746865206275726e526174696f206d757374206265206e6f206772656174657260408201526a0207468616e2031303030360ac1b606082015260800190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526037908201527f746865206d61784e756d4f664d61696e7461696e696e67206d7573742062652060408201527f6c657373207468616e206e756d4f66436162696e657473000000000000000000606082015260800190565b6020808252602b908201527f6475706c696361746520636f6e73656e7375732061646472657373206f66207660408201526a185b1a59185d1bdc94d95d60aa1b606082015260800190565b60208082526033908201527f7468652073797374656d526577617264526174696f206d757374206265206e6f60408201527202067726561746572207468616e20313030303606c1b606082015260800190565b60208082526027908201527f7468652065787069726554696d655365636f6e64476170206973206f7574206f604082015266662072616e676560c81b606082015260800190565b6020808252601590820152746465706f7369742076616c7565206973207a65726f60581b604082015260600190565b60208082526049908201527f746865206d61784e756d4f66576f726b696e6743616e64696461746573206d7560408201527f7374206265206e6f742067726561746572207468616e206d61784e756d4f6643606082015268616e6469646174657360b81b608082015260a00190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b60208082526023908201527f63616e206e6f7420656e7465722054656d706f72617279204d61696e74656e616040820152626e636560e81b606082015260800190565b60208082526025908201527f6c656e677468206f66206a61696c2076616c696461746f7273206d757374206260408201526465206f6e6560d81b606082015260800190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61784e756d4f6643616e64696461746573206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252601290820152716e6f7420696e206d61696e74656e616e636560701b604082015260600190565b60208082526021908201527f666565206973206c6172676572207468616e2044555354595f494e434f4d494e6040820152604760f81b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526026908201527f6c656e677468206f662065787069726554696d655365636f6e64476170206d696040820152650e6dac2e8c6d60d31b606082015260800190565b60208082526017908201527f6f6e6c792063757272656e742076616c696461746f7273000000000000000000604082015260600190565b60208082526021908201527f6661696c656420746f20706172736520696e69742076616c696461746f7253656040820152601d60fa1b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b60208082526024908201527f6c656e677468206f662073797374656d526577617264526174696f206d69736d6040820152630c2e8c6d60e31b606082015260800190565b6020808252603e908201527f746865206d61696e7461696e536c6173685363616c65206d757374206265206760408201527f726561746572207468616e203020616e64206c657373207468616e2031300000606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b60208082526029908201527f746865206d6573736167652073656e646572206d75737420626520736c6173686040820152680818dbdb9d1c9858dd60ba1b606082015260800190565b61ffff91909116815260200190565b90815260200190565b6000848252831515602083015260606040830152615ff06060830184616a0a565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff8516825260406020830152615ff06040830184866169e0565b60005b838110156177125781810151838201526020016176fa565b83811115612fc6575050600091015256fe70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb20175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbbf905ec80f905e8f846942a7cdd959bfe8d9487b2a43b33565295a698f7e294b6a7edd747c0554875d3fc531d19ba1497992c5e941ff80f3f7f110ffd8920a3ac38fdef318fe94a3f86048c27395000f846946488aa4d1955ee33403f8ccb1d4de5fb97c7ade294220f003d8bdfaadf52aa1e55ae4cc485e6794875941a87e90e440a39c99aa9cb5cea0ad6a3f0b2407b86048c27395000f846949ef9f4360c606c7ab4db26b016007d3ad0ab86a0946103af86a874b705854033438383c82575f25bc29418e2db06cbff3e3c5f856410a1838649e760175786048c27395000f84694ee01c3b1283aa067c58eab4709f85e99d46de5fe94ee4b9bfb1871c64e2bcabb1dc382dc8b7c4218a29415904ab26ab0e99d70b51c220ccdcccabee6e29786048c27395000f84694685b1ded8013785d6623cc18d214320b6bb6475994a20ef4e5e4e7e36258dbf51f4d905114cb1b34bc9413e39085dc88704f4394d35209a02b1a9520320c86048c27395000f8469478f3adfc719c99674c072166708589033e2d9afe9448a30d5eaa7b64492a160f139e2da2800ec3834e94055838358c29edf4dcc1ba1985ad58aedbb6be2b86048c27395000f84694c2be4ec20253b8642161bc3f444f53679c1f3d479466f50c616d737e60d7ca6311ff0d9c434197898a94d1d678a2506eeaa365056fe565df8bc8659f28b086048c27395000f846942f7be8361c80a4c1e7e9aaf001d0877f1cfde218945f93992ac37f3e61db2ef8a587a436a161fd210b94ecbc4fb1a97861344dad0867ca3cba2b860411f086048c27395000f84694ce2fd7544e0b2cc94692d4a704debef7bcb613289444abc67b4b2fba283c582387f54c9cba7c34bafa948acc2ab395ded08bb75ce85bf0f95ad2abc51ad586048c27395000f84694b8f7166496996a7da21cf1f1b04d9b3e26a3d077946770572763289aac606e4f327c2f6cc1aa3b3e3b94882d745ed97d4422ca8da1c22ec49d880c4c097286048c27395000f846942d4c407bbe49438ed859fe965b140dcf1aab71a9943ad0939e120f33518fbba04631afe7a3ed6327b194b2bbb170ca4e499a2b0f3cc85ebfa6e8c4dfcbea86048c27395000f846946bbad7cf34b5fa511d8e963dbba288b1960e75d694853b0f6c324d1f4e76c8266942337ac1b0af1a229442498946a51ca5924552ead6fc2af08b94fcba648601d1a94a2000f846944430b3230294d12c6ab2aac5c2cd68e80b16b581947b107f4976a252a6939b771202c28e64e03f52d694795811a7f214084116949fc4f53cedbf189eeab28601d1a94a2000f84694ea0a6e3c511bbd10f4519ece37dc24887e11b55d946811ca77acfb221a49393c193f3a22db829fcc8e9464feb7c04830dd9ace164fc5c52b3f5a29e5018a8601d1a94a2000f846947ae2f5b9e386cd1b50a4550696d957cb4900f03a94e83bcc5077e6b873995c24bac871b5ad856047e19464e48d4057a90b233e026c1041e6012ada897fe88601d1a94a2000f8469482012708dafc9e1b880fd083b32182b869be8e09948e5adc73a2d233a1b496ed3115464dd6c7b887509428b383d324bc9a37f4e276190796ba5a8947f5ed8601d1a94a2000f8469422b81f8e175ffde54d797fe11eb03f9e3bf75f1d94a1c3ef7ca38d8ba80cce3bfc53ebd2903ed21658942767f7447f7b9b70313d4147b795414aecea54718601d1a94a2000f8469468bf0b8b6fb4e317a0f9d6f03eaf8ce6675bc60d94675cfe570b7902623f47e7f59c9664b5f5065dcf94d84f0d2e50bcf00f2fc476e1c57f5ca2d57f625b8601d1a94a2000f846948c4d90829ce8f72d0163c1d5cf348a862d5506309485c42a7b34309bee2ed6a235f86d16f059deec5894cc2cedc53f0fa6d376336efb67e43d167169f3b78601d1a94a2000f8469435e7a025f4da968de7e4d7e4004197917f4070f194b1182abaeeb3b4d8eba7e6a4162eac7ace23d57394c4fd0d870da52e73de2dd8ded19fe3d26f43a1138601d1a94a2000f84694d6caa02bbebaebb5d7e581e4b66559e635f805ff94c07335cf083c1c46a487f0325769d88e163b653694efaff03b42e41f953a925fc43720e45fb61a19938601d1a94a20000175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbaa164736f6c6343000604000a", - }, - { - ContractAddr: SlashContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/ff75c61ecd457c1370327e136b38c7a0d63ca821", - Code: "608060405234801561001057600080fd5b50600436106102955760003560e01c80638256ace611610167578063c81b1662116100ce578063e1c7392a11610087578063e1c7392a146104d3578063eb57bff7146104db578063f9a2bbc7146104e3578063fc3e5908146104eb578063fc4333cd146104f3578063fd6a6879146104fb57610295565b8063c81b166214610482578063c8509d811461048a578063c96be4cb1461049d578063cc844b73146104b0578063d2a42e4b146104c3578063dc927faf146104cb57610295565b8063a78abc1611610120578063a78abc1614610447578063ab51bb961461044f578063ac0af62914610457578063ac4317511461045f578063ae61dc3b14610472578063c80d4b8f1461047a57610295565b80638256ace61461040c578063831d65d11461041457806396713da9146104275780639bc8e4f21461042f5780639dc0926214610437578063a1a11bf51461043f57610295565b8063493279b11161020b5780636e47b482116101c45780636e47b482146103dc57806370fd5bad146103e4578063718a8aa8146103ec57806375d47a0a146103f45780637912a65d146103fc5780637942fd051461040457610295565b8063493279b1146103925780634bf6c882146103a757806351e80672146103af578063567a372d146103b75780635bfb4990146103bf57806362b72cf5146103d457610295565b806335aa2e441161025d57806335aa2e441461032457806337c8dab914610337578063389f4f71146103585780633a63f4b11461036d5780633dffc3871461037557806343756e5c1461038a57610295565b80630bee7a671461029a5780630e2374a5146102b85780631182b875146102cd57806322d1e80b146102ed57806323bac5a214610302575b600080fd5b6102a2610503565b6040516102af919061354e565b60405180910390f35b6102c0610508565b6040516102af9190612d6a565b6102e06102db366004612ca0565b61050e565b6040516102af9190612da2565b6102f5610574565b6040516102af9190612d97565b610315610310366004612a4e565b61057d565b6040516102af93929190613536565b6102c0610332366004612c70565b6105a0565b61034a610345366004612a4e565b6105c7565b6040516102af929190613528565b61036061061e565b6040516102af91906134fe565b610360610624565b61037d61062a565b6040516102af919061355f565b6102c061062f565b61039a610635565b6040516102af91906134ef565b61037d61063a565b6102c061063f565b610360610645565b6103d26103cd366004612a4e565b61064b565b005b6103606106f6565b6102c06106fc565b61037d610702565b61037d610707565b6102c061070c565b610360610712565b61037d610717565b61034a61071c565b6103d2610422366004612ca0565b610726565b61037d610838565b61036061083d565b6102c0610848565b6102c061084e565b6102f5610854565b6102a261085d565b610360610862565b6103d261046d366004612b54565b610867565b610360610e17565b610360610e1e565b6102c0610e23565b6103d2610498366004612ca0565b610e29565b6103d26104ab366004612a4e565b610e9a565b6103d26104be366004612bbd565b61128b565b61036061187c565b6102c0611881565b6103d2611887565b6103606118c3565b6102c06118c9565b61037d6118cf565b6103d26118d4565b6102c0611d1d565b606481565b61200181565b6060336120001461053a5760405162461bcd60e51b815260040161053190613347565b60405180910390fd5b60005460ff1661055c5760405162461bcd60e51b815260040161053190612e9d565b60405162461bcd60e51b815260040161053190613438565b60075460ff1681565b600260208190526000918252604090912080546001820154919092015460ff1683565b600181815481106105ad57fe5b6000918252602090912001546001600160a01b0316905081565b6000806105d2612835565b5050506001600160a01b0316600090815260026020818152604092839020835160608101855281548082526001830154938201849052919093015460ff16151592909301919091529091565b60055481565b60065481565b600181565b61100181565b603881565b600881565b61200081565b60045481565b336110001461066c5760405162461bcd60e51b81526004016105319061312c565b60005460ff1661068e5760405162461bcd60e51b815260040161053190612e9d565b61200063f7a251d7600b6106a184611d23565b60006040518463ffffffff1660e01b81526004016106c19392919061356d565b600060405180830381600087803b1580156106db57600080fd5b505af11580156106ef573d6000803e3d6000fd5b5050505050565b60035481565b61100581565b600281565b601081565b61100881565b603281565b600b81565b6004546005549091565b33612000146107475760405162461bcd60e51b815260040161053190613347565b60005460ff166107695760405162461bcd60e51b815260040161053190612e9d565b610771612858565b60006107b284848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611df592505050565b9150915080156107f95781516040517f7f0956d47419b9525356e7111652b653b530ec6f5096dccc04589bc38e629967916107ec9161354e565b60405180910390a16106ef565b81516040517f7d45f62d17443dd4547bca8a8112c60e2385669318dc300ec61a5d2492f262e7916108299161354e565b60405180910390a15050505050565b600981565b662386f26fc1000081565b61100781565b61100681565b60005460ff1681565b600081565b600481565b60005460ff166108895760405162461bcd60e51b815260040161053190612e9d565b33611007146108aa5760405162461bcd60e51b815260040161053190613204565b61091584848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260148152731b5a5cd9195b59585b9bdc951a1c995cda1bdb1960621b60208201529150611e759050565b156109b0576020811461093a5760405162461bcd60e51b8152600401610531906130b8565b604080516020601f840181900481028201810190925282815260009161097891858580838501838280828437600092019190915250611ecf92505050565b90506001811015801561098c575060055481105b6109a85760405162461bcd60e51b815260040161053190613302565b600455610dd4565b610a1684848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e19995b1bdb9e551a1c995cda1bdb19608a1b60208201529150611e759050565b15610ab25760208114610a3b5760405162461bcd60e51b815260040161053190613252565b604080516020601f8401819004810282018101909252828152600091610a7991858580838501838280828437600092019190915250611ecf92505050565b90506103e88111158015610a8e575060045481115b610aaa5760405162461bcd60e51b815260040161053190612f56565b600555610dd4565b610b2684848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f66696e616c697479536c617368526577617264526174696f000000000000000060208201529150611e759050565b15610bc05760208114610b4b5760405162461bcd60e51b81526004016105319061346f565b604080516020601f8401819004810282018101909252828152600091610b8991858580838501838280828437600092019190915250611ecf92505050565b9050600a8110158015610b9c5750606481105b610bb85760405162461bcd60e51b81526004016105319061306c565b600655610dd4565b610c3484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f656e61626c654d616c6963696f7573566f7465536c617368000000000000000060208201529150611e759050565b15610cab5760208114610c595760405162461bcd60e51b815260040161053190612f8b565b604080516020601f8401819004810282018101909252828152610c959190848480838501838280828437600092019190915250611ed492505050565b6007805460ff1916911515919091179055610dd4565b610d1f84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601781527f6d616c6963696f7573566f7465536c61736853636f706500000000000000000060208201529150611e759050565b15610dbc5760208114610d445760405162461bcd60e51b815260040161053190612de7565b604080516020601f8401819004810282018101909252828152600091610d8291858580838501838280828437600092019190915250611ecf92505050565b90506170808110158015610d985750620d2f0081105b610db45760405162461bcd60e51b815260040161053190612ed4565b600855610dd4565b60405162461bcd60e51b8152600401610531906133e3565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a84848484604051610e099493929190612db5565b60405180910390a150505050565b6201518081565b609681565b61100281565b3361200014610e4a5760405162461bcd60e51b815260040161053190613347565b60005460ff16610e6c5760405162461bcd60e51b815260040161053190612e9d565b6040517f07db600eebe2ac176be8dcebad61858c245a4961bb32ca2aa3d159b09aa0810e90600090a1505050565b334114610eb95760405162461bcd60e51b815260040161053190613396565b60005460ff16610edb5760405162461bcd60e51b815260040161053190612e9d565b6003544311610efc5760405162461bcd60e51b8152600401610531906134ba565b3a15610f1a5760405162461bcd60e51b8152600401610531906131a7565b60405163155853f360e21b8152611000906355614fcc90610f3f908490600401612d6a565b60206040518083038186803b158015610f5757600080fd5b505afa158015610f6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f8f9190612b34565b610f9857611284565b610fa0612835565b506001600160a01b0381166000908152600260208181526040928390208351606081018552815481526001820154928101929092529091015460ff161580159282019290925290610ffb576020810180516001019052611054565b60016040820181905260208201819052805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0384161790555b43815260055460208201518161106657fe5b066111b257600060208201526040516335409f7f60e01b8152611000906335409f7f90611097908590600401612d6a565b600060405180830381600087803b1580156110b157600080fd5b505af11580156110c5573d6000803e3d6000fd5b505050506120006001600160a01b031663f7a251d7600b6110e585611d23565b60006040518463ffffffff1660e01b81526004016111059392919061356d565b600060405180830381600087803b15801561111f57600080fd5b505af1925050508015611130575060015b6111ad573d80801561115e576040519150601f19603f3d011682016040523d82523d6000602084013e611163565b606091505b50826001600160a01b03167fd7bc86ff5d08c8ab043edec743302aba2520e6635172a428bc956721db9e2d1c8360200151836040516111a3929190613507565b60405180910390a2505b61121e565b6004548160200151816111c157fe5b0661121e576040516375abf10160e11b81526110009063eb57e202906111eb908590600401612d6a565b600060405180830381600087803b15801561120557600080fd5b505af1158015611219573d6000803e3d6000fd5b505050505b6001600160a01b0382166000818152600260208181526040808420865181559186015160018301558581015191909201805460ff1916911515919091179055517fddb6012116e51abf5436d956a4f0ebd927e92c576ff96d7918290c8782291e3e9190a2505b5043600355565b60005460ff166112ad5760405162461bcd60e51b815260040161053190612e9d565b604051630a83aaa960e31b81526110069063541d5548906112d2903390600401612d6a565b60206040518083038186803b1580156112ea57600080fd5b505afa1580156112fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113229190612b34565b61133e5760405162461bcd60e51b815260040161053190612e31565b60075460ff166113605760405162461bcd60e51b815260040161053190612e68565b60065461136d5760146006555b60085461137c57620151806008555b6008548151604001514391011180156113a057504360085482602001516040015101115b6113bc5760405162461bcd60e51b81526004016105319061340a565b8060200151602001518160000151602001511480156113ea5750806020015160600151816000015160600151145b156114075760405162461bcd60e51b8152600401610531906130ff565b8051604081015190511080156114265750602081015160408101519051105b6114425760405162461bcd60e51b815260040161053190613035565b6020810151518151511080156114675750806000015160400151816020015160400151105b8061149257508051516020820151511080156114925750806020015160400151816000015160400151105b806114ac5750806020015160400151816000015160400151145b6114c85760405162461bcd60e51b815260040161053190612f1f565b604080820151905163ea321e4960e01b81526110009163ea321e49916114f19190600401612da2565b60206040518083038186803b15801561150957600080fd5b505afa15801561151d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115419190612b34565b61155d5760405162461bcd60e51b8152600401610531906131d5565b61156f81600001518260400151611efc565b8015611588575061158881602001518260400151611efc565b6115a45760405162461bcd60e51b815260040161053190612fd6565b6060806110006001600160a01b0316633b071dcc6040518163ffffffff1660e01b815260040160006040518083038186803b1580156115e257600080fd5b505afa1580156115f6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261161e9190810190612a71565b9150915060005b81518110156117595761164f82828151811061163d57fe5b602002602001015185604001516120d4565b15611751576006546040516213929d60e11b8152606461100280319093020491906227253a906116859033908590600401612d7e565b602060405180830381600087803b15801561169f57600080fd5b505af11580156116b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116d79190612c88565b506110006001600160a01b03166335409f7f8584815181106116f557fe5b60200260200101516040518263ffffffff1660e01b81526004016117199190612d6a565b600060405180830381600087803b15801561173357600080fd5b505af1158015611747573d6000803e3d6000fd5b5050505050611759565b600101611625565b50600061176b84604001516000612138565b90506120006001600160a01b031663f7a251d7600b61178d8760400151612154565b60006040518463ffffffff1660e01b81526004016117ad9392919061356d565b600060405180830381600087803b1580156117c757600080fd5b505af19250505080156117d8575060015b61184a573d808015611806576040519150601f19603f3d011682016040523d82523d6000602084013e61180b565b606091505b50817fd58d1183100bd0932c0588f31c4205d6bc6168909765a96c41adbed3115f36288260405161183c9190612da2565b60405180910390a250611876565b60405181907f7b78aadacff901d8b63d0dba4f86283d4db8aef27f9ed70413dd860f1c9532b690600090a25b50505050565b601481565b61100381565b60005460ff16156118aa5760405162461bcd60e51b815260040161053190613294565b603260045560966005556000805460ff19166001179055565b60085481565b61100081565b600381565b33611000146118f55760405162461bcd60e51b81526004016105319061312c565b60005460ff166119175760405162461bcd60e51b815260040161053190612e9d565b60015461192357611d1b565b600154600090600019015b808211611cef576000805b82841015611a5257611949612835565b600260006001878154811061195a57fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff161515908201526005549091506004900481602001511115611a3c576004600554816119c757fe5b048160200151038160200181815250508060026000600188815481106119e957fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208351815591830151600183015591909101516002909101805460ff1916911515919091179055611a46565b6001925050611a52565b50836001019350611939565b828411611be957611a61612835565b6002600060018681548110611a7257fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff161515908201526005549091506004900481602001511115611b5a57600460055481611adf57fe5b04816020015103816020018181525050806002600060018781548110611b0157fe5b6000918252602080832091909101546001600160a01b03168352828101939093526040918201902083518155918301516001808401919091559201516002909101805460ff19169115159190911790559150611be99050565b6002600060018681548110611b6b57fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff19169055805480611baf57fe5b600082815260209020810160001990810180546001600160a01b031916905501905583611bdc5750611be9565b5060001990920191611a52565b818015611bf35750805b15611cd2576002600060018681548110611c0957fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff19169055805484908110611c5057fe5b600091825260209091200154600180546001600160a01b039092169186908110611c7657fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506001805480611caf57fe5b600082815260209020810160001990810180546001600160a01b03191690550190555b82611cde575050611cef565b50506001909101906000190161192e565b6040517fcfdb3b6ccaeccbdc68be3c59c840e3b3c90f0a7c491f5fff1cf56cfda200dd9c90600090a150505b565b61100481565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081611d3e579050509050611d67836001600160a01b031661218f565b81600081518110611d7457fe5b6020026020010181905250611d88436121b2565b81600181518110611d9557fe5b6020908102919091010152611daa60386121b2565b81600281518110611db757fe5b6020026020010181905250611dcb426121b2565b81600381518110611dd857fe5b6020026020010181905250611dec816121c5565b9150505b919050565b611dfd612858565b6000611e07612858565b611e0f61286a565b611e20611e1b8661224f565b612274565b90506000805b611e2f836122be565b15611e685780611e5b57611e4a611e45846122df565b61232d565b63ffffffff16845260019150611e60565b611e68565b600101611e26565b5091935090915050915091565b600081604051602001611e889190612d4e565b6040516020818303038152906040528051906020012083604051602001611eaf9190612d4e565b604051602081830303815290604052805190602001201490505b92915050565b015190565b8082015160009060ff811615611eee576001915081611ef4565b60009150815b505092915050565b60408051600480825260a0820190925260009160609190816020015b6060815260200190600190039081611f18575050604080516020808252818301909252919250606091908082018180368337019050509050611f5d85600001516121b2565b82600081518110611f6a57fe5b6020026020010181905250611f8560208660200151836123af565b611f8e816123bf565b82600181518110611f9b57fe5b6020026020010181905250611fb385604001516121b2565b82600281518110611fc057fe5b6020026020010181905250611fdb60208660600151836123af565b611fe4816123bf565b82600381518110611ff157fe5b6020026020010181905250612017602061200a846121c5565b80519060200120836123af565b6040805160b080825260e08201909252606091602082018180368337019050509050612047818360006020612415565b61205981876080015160206060612415565b612067818660806030612415565b604080516001808252818301909252606091602082018180368337019050509050815160016020830182602086016066600019fa6120a457600080fd5b5060016120b2826000612468565b60ff16146120c7576000945050505050611ec9565b5060019695505050505050565b8151815160009160019181148083146120f0576000925061212e565b600160208701838101602088015b60028483851001141561212957805183511461211d5760009650600093505b602092830192016120fe565b505050505b5090949350505050565b6000816020018351101561214b57600080fd5b50016020015190565b60408051600480825260a08201909252606091829190816020015b606081526020019060019003908161216f579050509050611d67836123bf565b60408051600560a21b8318601482015260348101909152606090611dec816123bf565b6060611ec96121c083612484565b6123bf565b60608151600014156121e65750604080516000815260208101909152611df0565b6060826000815181106121f557fe5b602002602001015190506000600190505b83518110156122365761222c8285838151811061221f57fe5b602002602001015161256a565b9150600101612206565b50611dec612249825160c060ff166125e7565b8261256a565b61225761288a565b506040805180820190915281518152602082810190820152919050565b61227c61286a565b612285826126b9565b61228e57600080fd5b600061229d83602001516126f3565b60208085015160408051808201909152868152920190820152915050919050565b60006122c861288a565b505080518051602091820151919092015191011190565b6122e761288a565b6122f0826122be565b6122f957600080fd5b6020820151600061230982612756565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061234257508151602110155b61234b57600080fd5b600061235a83602001516126f3565b905080836000015110156123805760405162461bcd60e51b8152600401610531906132cb565b8251602080850151830180519284900392918310156123a657826020036101000a820491505b50949350505050565b9091018181526020918201910152565b6060815160011480156123f15750607f60f81b826000815181106123df57fe5b01602001516001600160f81b03191611155b156123fd575080611df0565b611ec961240f8351608060ff166125e7565b8361256a565b60005b818110156106ef5783818151811061242c57fe5b602001015160f81c60f81b85848060010195508151811061244957fe5b60200101906001600160f81b031916908160001a905350600101612418565b6000816001018351101561247b57600080fd5b50016001015190565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166124c8575060186124ec565b6fffffffffffffffffffffffffffffffff1984166124e8575060106124ec565b5060005b60208110156125225781818151811061250157fe5b01602001516001600160f81b0319161561251a57612522565b6001016124ec565b60008160200390506060816040519080825280601f01601f191660200182016040528015612557576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b8183101561259b578051835260209283019201612583565b50855184518101855292509050808201602086015b818310156125c85780518352602092830192016125b0565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106126115760405162461bcd60e51b81526004016105319061300d565b6040805160018082528183019092526060916020820181803683370190505090506037841161266b5782840160f81b8160008151811061264d57fe5b60200101906001600160f81b031916908160001a9053509050611ec9565b606061267685612484565b90508381510160370160f81b8260008151811061268f57fe5b60200101906001600160f81b031916908160001a9053506126b0828261256a565b95945050505050565b80516000906126ca57506000611df0565b6020820151805160001a9060c08210156126e957600092505050611df0565b5060019392505050565b8051600090811a608081101561270d576000915050611df0565b60b8811080612728575060c08110801590612728575060f881105b15612737576001915050611df0565b60c081101561274b5760b519019050611df0565b60f519019050611df0565b80516000908190811a6080811015612771576001915061282e565b60b881101561278657607e198101915061282e565b60c08110156127d757600060b78203600186019550806020036101000a8651049150600181018201935050808310156127d15760405162461bcd60e51b81526004016105319061317c565b5061282e565b60f88110156127ec5760be198101915061282e565b600060f78203600186019550806020036101000a865104915060018101820193505080831015611ef45760405162461bcd60e51b81526004016105319061317c565b5092915050565b604051806060016040528060008152602001600081526020016000151581525090565b60408051602081019091526000815290565b604051806040016040528061287d61288a565b8152602001600081525090565b604051806040016040528060008152602001600081525090565b600082601f8301126128b4578081fd5b81516128c76128c2826135c0565b613599565b818152915060208083019084810160005b8481101561293d578151870188603f8201126128f357600080fd5b838101516129036128c2826135e0565b81815260408b8184860101111561291957600080fd5b61292883888401838701613604565b508652505092820192908201906001016128d8565b505050505092915050565b60008083601f840112612959578182fd5b50813567ffffffffffffffff811115612970578182fd5b60208301915083602082850101111561298857600080fd5b9250929050565b600082601f83011261299f578081fd5b81356129ad6128c2826135e0565b91508082528360208285010111156129c457600080fd5b8060208401602084013760009082016020015292915050565b600060a082840312156129ee578081fd5b6129f860a0613599565b905081358152602082013560208201526040820135604082015260608201356060820152608082013567ffffffffffffffff811115612a3657600080fd5b612a428482850161298f565b60808301525092915050565b600060208284031215612a5f578081fd5b8135612a6a81613630565b9392505050565b60008060408385031215612a83578081fd5b825167ffffffffffffffff80821115612a9a578283fd5b81850186601f820112612aab578384fd5b80519250612abb6128c2846135c0565b80848252602080830192508084018a828389028701011115612adb578788fd5b8794505b86851015612b06578051612af281613630565b845260019490940193928101928101612adf565b508801519096509350505080821115612b1d578283fd5b50612b2a858286016128a4565b9150509250929050565b600060208284031215612b45578081fd5b81518015158114612a6a578182fd5b60008060008060408587031215612b69578182fd5b843567ffffffffffffffff80821115612b80578384fd5b612b8c88838901612948565b90965094506020870135915080821115612ba4578384fd5b50612bb187828801612948565b95989497509550505050565b600060208284031215612bce578081fd5b813567ffffffffffffffff80821115612be5578283fd5b81840160608187031215612bf7578384fd5b612c016060613599565b9250803582811115612c11578485fd5b612c1d878284016129dd565b845250602081013582811115612c31578485fd5b612c3d878284016129dd565b602085015250604081013582811115612c54578485fd5b612c608782840161298f565b6040850152509195945050505050565b600060208284031215612c81578081fd5b5035919050565b600060208284031215612c99578081fd5b5051919050565b600080600060408486031215612cb4578283fd5b833560ff81168114612cc4578384fd5b9250602084013567ffffffffffffffff811115612cdf578283fd5b612ceb86828701612948565b9497909650939450505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008151808452612d3a816020860160208601613604565b601f01601f19169290920160200192915050565b60008251612d60818460208701613604565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b600060208252612a6a6020830184612d22565b600060408252612dc9604083018688612cf8565b8281036020840152612ddc818587612cf8565b979650505050505050565b6020808252602a908201527f6c656e677468206f66206d616c6963696f7573566f7465536c61736853636f706040820152690ca40dad2e6dac2e8c6d60b31b606082015260800190565b6020808252601f908201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604082015260600190565b6020808252818101527f6d616c6963696f757320766f746520736c617368206e6f7420656e61626c6564604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252602b908201527f746865206d616c6963696f757320766f746520736c6173682073636f7065206f60408201526a7574206f662072616e676560a81b606082015260800190565b6020808252601a908201527f6e6f2076696f6c6174696f6e206f6620766f74652072756c6573000000000000604082015260600190565b6020808252818101527f7468652066656c6f6e795468726573686f6c64206f7574206f662072616e6765604082015260600190565b6020808252602b908201527f6c656e677468206f6620656e61626c654d616c6963696f7573566f7465536c6160408201526a0e6d040dad2e6dac2e8c6d60ab1b606082015260800190565b60208082526017908201527f766572696679207369676e6174757265206661696c6564000000000000000000604082015260600190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526019908201527f7372634e756d20626967676572207468616e207461724e756d00000000000000604082015260600190565b6020808252602c908201527f7468652066696e616c69747920736c6173682072657761726420726174696f2060408201526b6f7574206f662072616e676560a01b606082015260800190565b60208082526027908201527f6c656e677468206f66206d697364656d65616e6f725468726573686f6c64206d6040820152660d2e6dac2e8c6d60cb1b606082015260800190565b60208082526013908201527274776f206964656e746963616c20766f74657360681b604082015260600190565b60208082526030908201527f746865206d6573736167652073656e646572206d7573742062652076616c696460408201526f185d1bdc94d95d0818dbdb9d1c9858dd60821b606082015260800190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b6020808252601590820152741d9bdd195059191c881a5cc81b9bdd08199bdd5b99605a1b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526022908201527f6c656e677468206f662066656c6f6e795468726573686f6c64206d69736d61746040820152610c6d60f31b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526025908201527f746865206d697364656d65616e6f725468726573686f6c64206f7574206f662060408201526472616e676560d81b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b6020808252601490820152731d185c99d95d08189b1bd8dac81d1bdbc81bdb1960621b604082015260600190565b6020808252601e908201527f7265636569766520756e65787065637465642073796e207061636b6167650000604082015260600190565b6020808252602b908201527f6c656e677468206f662066696e616c697479536c61736852657761726452617460408201526a0d2de40dad2e6dac2e8c6d60ab1b606082015260800190565b6020808252818101527f63616e206e6f7420736c61736820747769636520696e206f6e6520626c6f636b604082015260600190565b61ffff91909116815260200190565b90815260200190565b6000838252604060208301526135206040830184612d22565b949350505050565b918252602082015260400190565b92835260208301919091521515604082015260600190565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff85168252606060208301526135896060830185612d22565b9050826040830152949350505050565b60405181810167ffffffffffffffff811182821017156135b857600080fd5b604052919050565b600067ffffffffffffffff8211156135d6578081fd5b5060209081020190565b600067ffffffffffffffff8211156135f6578081fd5b50601f01601f191660200190565b60005b8381101561361f578181015183820152602001613607565b838111156118765750506000910152565b6001600160a01b038116811461364557600080fd5b5056fea164736f6c6343000604000a", - }, - { - ContractAddr: SystemRewardContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/ff75c61ecd457c1370327e136b38c7a0d63ca821", - Code: "6080604052600436106101c55760003560e01c806375d47a0a116100f7578063ab51bb9611610095578063f9a2bbc711610064578063f9a2bbc7146105c3578063fb5478b3146105d8578063fc3e5908146105ed578063fd6a68791461060257610209565b8063ab51bb96146104b5578063ac431751146104ca578063c81b166214610599578063dc927faf146105ae57610209565b80639a99b4f0116100d15780639a99b4f01461043d5780639dc0926214610476578063a1a11bf51461048b578063a78abc16146104a057610209565b806375d47a0a146103fe5780637942fd051461041357806396713da91461042857610209565b8063493279b1116101645780636d70f7ae1161013e5780636d70f7ae146103785780636e47b482146103bf57806370fd5bad146103d4578063718a8aa8146103e957610209565b8063493279b1146103225780634bf6c8821461034e57806351e806721461036357610209565b806331b6d4a5116101a057806331b6d4a5146102b85780633a0b0eff146102cd5780633dffc387146102e257806343756e5c1461030d57610209565b806227253a1461020e5780630bee7a67146102595780630e2374a51461028757610209565b366102095734156102075760408051348152905133917f6c98249d85d88c3753a04a22230f595e4dc8d3dc86c34af35deeeedc861b89db919081900360200190a25b005b600080fd5b34801561021a57600080fd5b506102476004803603604081101561023157600080fd5b506001600160a01b038135169060200135610617565b60408051918252519081900360200190f35b34801561026557600080fd5b5061026e6107c2565b6040805163ffffffff9092168252519081900360200190f35b34801561029357600080fd5b5061029c6107c7565b604080516001600160a01b039092168252519081900360200190f35b3480156102c457600080fd5b506102476107cd565b3480156102d957600080fd5b506102476107d9565b3480156102ee57600080fd5b506102f76107df565b6040805160ff9092168252519081900360200190f35b34801561031957600080fd5b5061029c6107e4565b34801561032e57600080fd5b506103376107ea565b6040805161ffff9092168252519081900360200190f35b34801561035a57600080fd5b506102f76107ef565b34801561036f57600080fd5b5061029c6107f4565b34801561038457600080fd5b506103ab6004803603602081101561039b57600080fd5b50356001600160a01b03166107fa565b604080519115158252519081900360200190f35b3480156103cb57600080fd5b5061029c610818565b3480156103e057600080fd5b506102f761081e565b3480156103f557600080fd5b506102f7610823565b34801561040a57600080fd5b5061029c610828565b34801561041f57600080fd5b506102f761082e565b34801561043457600080fd5b506102f7610833565b34801561044957600080fd5b506102476004803603604081101561046057600080fd5b506001600160a01b038135169060200135610838565b34801561048257600080fd5b5061029c610962565b34801561049757600080fd5b5061029c610968565b3480156104ac57600080fd5b506103ab61096e565b3480156104c157600080fd5b5061026e610977565b3480156104d657600080fd5b50610207600480360360408110156104ed57600080fd5b81019060208101813564010000000081111561050857600080fd5b82018360208201111561051a57600080fd5b8035906020019184600183028401116401000000008311171561053c57600080fd5b91939092909160208101903564010000000081111561055a57600080fd5b82018360208201111561056c57600080fd5b8035906020019184600183028401116401000000008311171561058e57600080fd5b50909250905061097c565b3480156105a557600080fd5b5061029c610cff565b3480156105ba57600080fd5b5061029c610d05565b3480156105cf57600080fd5b5061029c610d0b565b3480156105e457600080fd5b50610247610d11565b3480156105f957600080fd5b506102f7610d1d565b34801561060e57600080fd5b5061029c610d22565b6000805460ff1661069457600260208190527fe57bda0a954a7c7381b17b2c763e646ba2c60f67292d287ba583603e2c1c41668054600160ff19918216811790925561100560009081527fe25235fc0de9d7165652bef0846fefda506174abb9a190f03d0f7bcc6146dbce80548316841790559282558254161790555b3360009081526002602052604090205460ff166106e25760405162461bcd60e51b815260040180806020018281038252602b815260200180610e10602b913960400191505060405180910390fd5b60004783106106f157476106f3565b825b9050674563918244f400008111156107105750674563918244f400005b8015610791576040516001600160a01b0385169082156108fc029083906000818181858888f1935050505015801561074c573d6000803e3d6000fd5b506040805182815290516001600160a01b038616917ff8b71c64315fc33b2ead2adfa487955065152a8ac33d9d5193aafd7f45dc15a0919081900360200190a26107bb565b6040517fe589651933c2457488cc0d8e0941518abf748e799435e4e396d9c4d0b2db2d4d90600090a15b9392505050565b606481565b61200181565b674563918244f4000081565b60015481565b600181565b61100181565b603881565b600881565b61200081565b6001600160a01b031660009081526002602052604090205460ff1690565b61100581565b600281565b601081565b61100881565b600b81565b600981565b6000805460ff166108b557600260208190527fe57bda0a954a7c7381b17b2c763e646ba2c60f67292d287ba583603e2c1c41668054600160ff19918216811790925561100560009081527fe25235fc0de9d7165652bef0846fefda506174abb9a190f03d0f7bcc6146dbce80548316841790559282558254161790555b3360009081526002602052604090205460ff166109035760405162461bcd60e51b815260040180806020018281038252602b815260200180610e10602b913960400191505060405180910390fd5b60004783106109125747610914565b825b9050670de0b6b3a76400008111156107105750604051670de0b6b3a7640000906001600160a01b03851690600090839082818181858883f1935050505015801561074c573d6000803e3d6000fd5b61100781565b61100681565b60005460ff1681565b600081565b33611007146109bc5760405162461bcd60e51b815260040180806020018281038252602e815260200180610e6a602e913960400191505060405180910390fd5b610a1e84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600b81526a30b23227b832b930ba37b960a91b60208201529150610d289050565b15610af657606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060149091149050610aa15760405162461bcd60e51b815260040180806020018281038252602c815260200180610e98602c913960400191505060405180910390fd5b60148101516001600160a01b038116600081815260026020526040808220805460ff19166001179055517f9870d7fe5d112134c55844951dedf365363006d9c588db07c4c85af6322a06199190a25050610c6d565b610b5b84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600e81526d3232b632ba32a7b832b930ba37b960911b60208201529150610d289050565b15610c3057606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060149091149050610bde5760405162461bcd60e51b815260040180806020018281038252602f815260200180610e3b602f913960400191505060405180910390fd5b60148101516001600160a01b038116600081815260026020526040808220805460ff19169055517fb40992a19dba61ea600e87fce607102bf5908dc89076217b6ca6ae195224f7029190a25050610c6d565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b61100281565b61100381565b61100081565b670de0b6b3a764000081565b600381565b61100481565b6000816040516020018082805190602001908083835b60208310610d5d5780518252601f199092019160209182019101610d3e565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310610dcb5780518252601f199092019160209182019101610dac565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052805190602001201490509291505056fe6f6e6c79206f70657261746f7220697320616c6c6f77656420746f2063616c6c20746865206d6574686f646c656e677468206f662076616c756520666f722064656c6574654f70657261746f722073686f756c64206265203230746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662076616c756520666f72206164644f70657261746f722073686f756c64206265203230a164736f6c6343000604000a", - }, - }, - } - - KeplerUpgrade[networkname.ChapelChainName] = &Upgrade{ - UpgradeName: "kepler", - Configs: []*UpgradeConfig{ - { - ContractAddr: ValidatorContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/ff75c61ecd457c1370327e136b38c7a0d63ca821", - Code: "6080604052600436106104a35760003560e01c806388b32f1111610260578063c6d3394511610144578063e40716a1116100c1578063f92eb86b11610085578063f92eb86b14610c02578063f9a2bbc714610c17578063fc3e590814610c2c578063fccc281314610c41578063fd4ad81f14610c56578063fd6a687914610c85576104aa565b8063e40716a114610b85578063ea321e4914610b9a578063eb57e20214610bba578063eda5868c14610bda578063f340fa0114610bef576104aa565b8063d86222d511610108578063d86222d514610b1c578063daacdb6614610b31578063dc927faf14610b46578063e086c7b114610b5b578063e1c7392a14610b70576104aa565b8063c6d3394514610abd578063c81b166214610ad2578063c8509d81146108b6578063ce910b0c14610ae7578063d68fb56a14610b07576104aa565b8063a5422d5c116101dd578063ad3c9da6116101a1578063ad3c9da614610a3c578063aef198a914610a5c578063b7ab4db514610a71578063b8cf4ef114610a93578063bf9f499514610666578063c466689d14610aa8576104aa565b8063a5422d5c146109c8578063a78abc16146109dd578063aaf5eb68146109f2578063ab51bb9614610a07578063ac43175114610a1c576104aa565b806396713da91161022457806396713da91461095f5780639dc09262146109745780639fe0f81614610989578063a0dc27581461099e578063a1a11bf5146109b3576104aa565b806388b32f11146108eb5780638a7beb01146109005780638b5ad0c9146109155780638d19a4101461092a5780639369d7de1461094a576104aa565b806351e80672116103875780636e47b482116103045780637942fd05116102c85780637942fd05146108775780637a84ca2a1461088c57806381650b62146108a1578063831d65d1146108b6578063853230aa1461086257806386249882146108d6576104aa565b80636e47b4821461080e57806370fd5bad14610823578063718a8aa81461083857806375d47a0a1461084d57806378dfed4a14610862576104aa565b80635de1e22c1161034b5780635de1e22c14610792578063603d86d31461065157806360eba4fe146107a757806362b72cf5146107c75780636969a25c146107dc576104aa565b806351e806721461071357806355614fcc14610728578063565c56b3146107485780635667515a146107685780635d77156c1461077d576104aa565b80633365af3a1161042057806343756e5c116103e457806343756e5c1461068857806345cf9daf1461069d578063493279b1146106b25780634bf6c882146106d45780634df6e0c3146106e95780635192c82c146106fe576104aa565b80633365af3a146105ee57806335409f7f1461060e5780633b071dcc1461062e5780633de0f0d8146106515780633dffc38714610666576104aa565b8063152ad3b811610467578063152ad3b8146105625780631ff1806914610584578063219f22d514610599578063300c3567146105ae578063321d398a146105ce576104aa565b806304c4fec6146104af57806307a56847146104c65780630bee7a67146104f15780630e2374a5146105135780631182b87514610535576104aa565b366104aa57005b600080fd5b3480156104bb57600080fd5b506104c4610c9a565b005b3480156104d257600080fd5b506104db610d0c565b6040516104e89190617691565b60405180910390f35b3480156104fd57600080fd5b50610506610d12565b6040516104e891906176bb565b34801561051f57600080fd5b50610528610d17565b6040516104e89190616a60565b34801561054157600080fd5b50610555610550366004616946565b610d1d565b6040516104e89190616bd7565b34801561056e57600080fd5b50610577610f55565b6040516104e89190616bcc565b34801561059057600080fd5b506104db610f5e565b3480156105a557600080fd5b50610506610f64565b3480156105ba57600080fd5b506104c46105c93660046167d0565b610f69565b3480156105da57600080fd5b506105776105e93660046168f3565b6112b0565b3480156105fa57600080fd5b506105776106093660046168f3565b61137f565b34801561061a57600080fd5b506104c46106293660046167a9565b611430565b34801561063a57600080fd5b50610643611589565b6040516104e8929190616ae2565b34801561065d57600080fd5b506104db611865565b34801561067257600080fd5b5061067b61186b565b6040516104e891906176cc565b34801561069457600080fd5b50610528611870565b3480156106a957600080fd5b506104db611876565b3480156106be57600080fd5b506106c761187c565b6040516104e89190617682565b3480156106e057600080fd5b5061067b611881565b3480156106f557600080fd5b50610643611886565b34801561070a57600080fd5b506104db611a04565b34801561071f57600080fd5b50610528611a0a565b34801561073457600080fd5b506105776107433660046167a9565b611a10565b34801561075457600080fd5b506104db6107633660046167a9565b611a45565b34801561077457600080fd5b5061067b611a96565b34801561078957600080fd5b50610506611a9b565b34801561079e57600080fd5b506104db611aa0565b3480156107b357600080fd5b506105556107c23660046168f3565b611aa6565b3480156107d357600080fd5b506104db611b4c565b3480156107e857600080fd5b506107fc6107f73660046168f3565b611b52565b6040516104e896959493929190616a8d565b34801561081a57600080fd5b50610528611bb6565b34801561082f57600080fd5b5061067b611bbc565b34801561084457600080fd5b5061067b611bc1565b34801561085957600080fd5b50610528611bc6565b34801561086e57600080fd5b506104db611bcc565b34801561088357600080fd5b5061067b611bd2565b34801561089857600080fd5b506104db611bd7565b3480156108ad57600080fd5b50610506611bdd565b3480156108c257600080fd5b506104c46108d1366004616946565b611be2565b3480156108e257600080fd5b506104db611c43565b3480156108f757600080fd5b506104db611c49565b34801561090c57600080fd5b50610577611c4f565b34801561092157600080fd5b506104db611c58565b34801561093657600080fd5b506104db6109453660046167a9565b611c5e565b34801561095657600080fd5b506104c4611c9e565b34801561096b57600080fd5b5061067b611db2565b34801561098057600080fd5b50610528611db7565b34801561099557600080fd5b506104db611dbd565b3480156109aa57600080fd5b506104db611dc2565b3480156109bf57600080fd5b50610528611dc7565b3480156109d457600080fd5b50610555611dcd565b3480156109e957600080fd5b50610577611dec565b3480156109fe57600080fd5b506104db611df5565b348015610a1357600080fd5b50610506611a96565b348015610a2857600080fd5b506104c4610a37366004616897565b611dfe565b348015610a4857600080fd5b506104db610a573660046167a9565b61269c565b348015610a6857600080fd5b506104db6126ae565b348015610a7d57600080fd5b50610a866126bb565b6040516104e89190616acf565b348015610a9f57600080fd5b506104db6127a7565b348015610ab457600080fd5b506104db6127ac565b348015610ac957600080fd5b506104db611bbc565b348015610ade57600080fd5b506105286127b2565b348015610af357600080fd5b50610555610b023660046168f3565b6127b8565b348015610b1357600080fd5b506104db6127c5565b348015610b2857600080fd5b506104db612804565b348015610b3d57600080fd5b506104db612810565b348015610b5257600080fd5b50610528612816565b348015610b6757600080fd5b506104db610d12565b348015610b7c57600080fd5b506104c461281c565b348015610b9157600080fd5b506104db6129cb565b348015610ba657600080fd5b50610577610bb5366004616858565b6129d1565b348015610bc657600080fd5b506104c4610bd53660046167a9565b612b57565b348015610be657600080fd5b50610506612c5f565b6104c4610bfd3660046167a9565b612c64565b348015610c0e57600080fd5b506104db612fcc565b348015610c2357600080fd5b50610528612fd2565b348015610c3857600080fd5b5061067b611dbd565b348015610c4d57600080fd5b50610528612fd8565b348015610c6257600080fd5b50610c76610c713660046168f3565b612fde565b6040516104e89392919061769a565b348015610c9157600080fd5b506105286130a0565b6000610ca533611c5e565b9050600b8181548110610cb457fe5b600091825260209091206001601690920201015460ff16610cf05760405162461bcd60e51b8152600401610ce79061733c565b60405180910390fd5b6000610cfa6127c5565b9050610d073383836130a6565b505050565b60095481565b606481565b61200181565b60005460609060ff16610d425760405162461bcd60e51b8152600401610ce790616d96565b3361200014610d635760405162461bcd60e51b8152600401610ce7906174d5565b600b54610e2157610d72616495565b60015460005b81811015610e1d57600b805460018101825560009190915283516000805160206178ef833981519152601690920291820190815560208086015160008051602061792f8339815191528401805460ff1916911515919091179055604086015180518794610df99360008051602061790f8339815191529091019201906164c4565b506060820151610e0f906003830190601361653e565b505050806001019050610d78565b5050505b610e2961656b565b6000610e6a85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061329292505050565b9150915080610e8657610e7d606461344e565b92505050610f4e565b815160009060ff16610eab57610ea4836020015184604001516134af565b9050610f1a565b825160ff1660011415610f1657826020015151600114610ef0576000805160206178cf833981519152604051610ee0906171f5565b60405180910390a1506067610f11565b610ea48360200151600081518110610f0457fe5b6020026020010151614103565b610f1a565b5060655b63ffffffff8116610f3f5750506040805160008152602081019091529150610f4e9050565b610f488161344e565b93505050505b9392505050565b60075460ff1681565b60035481565b606881565b334114610f885760405162461bcd60e51b8152600401610ce790617524565b6010544311610fa95760405162461bcd60e51b8152600401610ce790616ef2565b3a15610fc75760405162461bcd60e51b8152600401610ce79061727b565b60005460ff16610fe95760405162461bcd60e51b8152600401610ce790616d96565b60006110023168056bc75e2d63100000811115611020576110198168056bc75e2d6310000063ffffffff61427a16565b9150611027565b50506112a6565b6040516213929d60e11b8152611002906227253a9061104c9030908690600401616a74565b602060405180830381600087803b15801561106657600080fd5b505af115801561107a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061109e919061690b565b9150816110ac5750506112a6565b6000805b848110156110da578585828181106110c457fe5b90506020020135820191508060010190506110b0565b50806110e8575050506112a6565b6000806000805b8981101561129e578489898381811061110457fe5b9050602002013588028161111457fe5b0493508a8a8281811061112357fe5b905060200201602081019061113891906167a9565b6001600160a01b0381166000908152600460205260409020549093509150811561125457600060018084038154811061116d57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff16156111da57836001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d85866040516111cd9190617691565b60405180910390a261124e565b6003546111ed908663ffffffff6142bc16565b6003908155810154611205908663ffffffff6142bc16565b60038201556040516001600160a01b038516907fcb0aad6cf9cd03bdf6137e359f541c42f38b39f007cae8e89e88aa7d8c6617b290611245908890617691565b60405180910390a25b50611296565b826001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d858560405161128d9190617691565b60405180910390a25b6001016110ef565b505050505050505b5050436010555050565b60015460009082106112c45750600061137a565b60006001600160a01b0316600183815481106112dc57fe5b60009182526020909120600490910201546001600160a01b0316148061130c5750600854158061130c5750600a54155b8061131b575060085460095410155b8061132c575061132a8261137f565b155b8061135557506000600b838154811061134157fe5b906000526020600020906016020160000154115b80611369575060016113656126bb565b5111155b156113765750600061137a565b5060015b919050565b60015460009082106113935750600061137a565b600b5482106113d057600182815481106113a957fe5b9060005260206000209060040201600201601c9054906101000a900460ff1615905061137a565b600182815481106113dd57fe5b9060005260206000209060040201600201601c9054906101000a900460ff1615801561142a5750600b828154811061141157fe5b600091825260209091206001601690920201015460ff16155b92915050565b33611001146114515760405162461bcd60e51b8152600401610ce790617639565b600b5461150f57611460616495565b60015460005b8181101561150b57600b805460018101825560009190915283516000805160206178ef833981519152601690920291820190815560208086015160008051602061792f8339815191528401805460ff19169115159190911790556040860151805187946114e79360008051602061790f8339815191529091019201906164c4565b5060608201516114fd906003830190601361653e565b505050806001019050611466565b5050505b6001600160a01b038116600090815260046020526040902054806115335750611586565b6001810390506000600b828154811061154857fe5b600091825260209091206001601690920201015460ff16905061156b83836142e1565b80156115745750805b15610d07576009805460001901905550505b50565b60015460609081906000805b828110156115dc57600181815481106115aa57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166115d4576001909101905b600101611595565b50606081604051908082528060200260200182016040528015611609578160200160208202803683370190505b50905060608260405190808252806020026020018201604052801561164257816020015b606081526020019060019003908161162d5790505b50600b54600094509091508414156117bd5760005b848110156117b7576001818154811061166c57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166117af576001818154811061169c57fe5b600091825260209091206004909102015483516001600160a01b03909116908490869081106116c757fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600b81815481106116f457fe5b600091825260209182902060026016909202018101805460408051601f60001961010060018616150201909316949094049182018590048502840185019052808352919290919083018282801561178c5780601f106117615761010080835404028352916020019161178c565b820191906000526020600020905b81548152906001019060200180831161176f57829003601f168201915b505050505082858151811061179d57fe5b60209081029190910101526001909301925b600101611657565b50611859565b60005b8481101561185757600181815481106117d557fe5b9060005260206000209060040201600201601c9054906101000a900460ff1661184f576001818154811061180557fe5b600091825260209091206004909102015483516001600160a01b039091169084908690811061183057fe5b6001600160a01b03909216602092830291909101909101526001909301925b6001016117c0565b505b909450925050505b9091565b61271081565b600181565b61100181565b60085481565b606181565b600881565b600e54600c5460609182918061189a575060155b60606118a46126bb565b905060606118b182614694565b9050828251116118c8579094509250611861915050565b838383510310156118da578282510393505b83156119105760c843046118f683838388880360008a8a614802565b61190e8383838888038989038a8b8b8b510301614802565b505b60608360405190808252806020026020018201604052801561193c578160200160208202803683370190505b50905060608460405190808252806020026020018201604052801561197557816020015b60608152602001906001900390816119605790505b50905060005b858110156119f65784818151811061198f57fe5b60200260200101518382815181106119a357fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508381815181106119cf57fe5b60200260200101518282815181106119e357fe5b602090810291909101015260010161197b565b509096509450505050509091565b60065481565b61200081565b6001600160a01b03811660009081526004602052604081205480611a3857600091505061137a565b60001901610f4e8161137f565b6001600160a01b03811660009081526004602052604081205480611a6d57600091505061137a565b600180820381548110611a7c57fe5b906000526020600020906004020160030154915050919050565b600081565b606781565b600f5481565b60128181548110611ab357fe5b600091825260209182902001805460408051601f6002600019610100600187161502019094169390930492830185900485028101850190915281815293509091830182828015611b445780601f10611b1957610100808354040283529160200191611b44565b820191906000526020600020905b815481529060010190602001808311611b2757829003601f168201915b505050505081565b60105481565b60018181548110611b5f57fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b601081565b61100881565b6103e881565b600b81565b600c5481565b606681565b3361200014611c035760405162461bcd60e51b8152600401610ce7906174d5565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051611c36939291906176da565b60405180910390a1505050565b60025481565b60115481565b60145460ff1681565b600a5481565b6001600160a01b03811660009081526004602052604081205480611c945760405162461bcd60e51b8152600401610ce79061745d565b6000190192915050565b600b54611d5c57611cad616495565b60015460005b81811015611d5857600b805460018101825560009190915283516000805160206178ef833981519152601690920291820190815560208086015160008051602061792f8339815191528401805460ff1916911515919091179055604086015180518794611d349360008051602061790f8339815191529091019201906164c4565b506060820151611d4a906003830190601361653e565b505050806001019050611cb3565b5050505b600854611d695760036008555b600a54611d76576002600a555b6000611d8133611c5e565b9050611d8c816112b0565b611da85760405162461bcd60e51b8152600401610ce7906171b2565b6115863382614959565b600981565b61100781565b600381565b60c881565b61100681565b604051806101e001604052806101ab81526020016177246101ab913981565b60005460ff1681565b6402540be40081565b60005460ff16611e205760405162461bcd60e51b8152600401610ce790616d96565b3361100714611e415760405162461bcd60e51b8152600401610ce7906172a9565b611eab84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b602082015291506149f19050565b15611f485760208114611ed05760405162461bcd60e51b8152600401610ce790617417565b604080516020601f8401819004810282018101909252828152600091611f0e91858580838501838280828437600092019190915250614a4a92505050565b905060648110158015611f245750620186a08111155b611f405760405162461bcd60e51b8152600401610ce7906170a2565b600255612659565b611fa884848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260098152686275726e526174696f60b81b602082015291506149f19050565b156120375760208114611fcd5760405162461bcd60e51b8152600401610ce790616c1c565b604080516020601f840181900481028201810190925282815260009161200b91858580838501838280828437600092019190915250614a4a92505050565b905061271081111561202f5760405162461bcd60e51b8152600401610ce790616f34565b600655612659565b6120a184848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260138152726d61784e756d4f664d61696e7461696e696e6760681b602082015291506149f19050565b1561213b57602081146120c65760405162461bcd60e51b8152600401610ce790616c53565b604080516020601f840181900481028201810190925282815260009161210491858580838501838280828437600092019190915250614a4a92505050565b600c5490915080612113575060155b8082106121325760405162461bcd60e51b8152600401610ce790616fa7565b50600855612659565b6121a484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61696e7461696e536c6173685363616c6560701b602082015291506149f19050565b1561223d57602081146121c95760405162461bcd60e51b8152600401610ce790616d1c565b604080516020601f840181900481028201810190925282815260009161220791858580838501838280828437600092019190915250614a4a92505050565b90506000811180156122195750600a81105b6122355760405162461bcd60e51b8152600401610ce7906175b5565b600a55612659565b6122b184848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601981527f6d61784e756d4f66576f726b696e6743616e6469646174657300000000000000602082015291506149f19050565b1561234057602081146122d65760405162461bcd60e51b8152600401610ce790616cd0565b604080516020601f840181900481028201810190925282815260009161231491858580838501838280828437600092019190915250614a4a92505050565b9050600d548111156123385760405162461bcd60e51b8152600401610ce790617118565b600e55612659565b6123a984848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61784e756d4f6643616e6469646174657360701b602082015291506149f19050565b1561242b57602081146123ce5760405162461bcd60e51b8152600401610ce7906172f7565b604080516020601f840181900481028201810190925282815260009161240c91858580838501838280828437600092019190915250614a4a92505050565b600d819055600e5490915081101561242557600d54600e555b50612659565b61248f84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c6e756d4f66436162696e65747360981b602082015291506149f19050565b1561253d57602081146124b45760405162461bcd60e51b8152600401610ce790616d61565b604080516020601f84018190048102820181019092528281526000916124f291858580838501838280828437600092019190915250614a4a92505050565b9050600081116125145760405162461bcd60e51b8152600401610ce790616e04565b60648111156125355760405162461bcd60e51b8152600401610ce790616e4c565b600c55612659565b6125a584848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601181527073797374656d526577617264526174696f60781b602082015291506149f19050565b1561264157602081146125ca5760405162461bcd60e51b8152600401610ce790617571565b604080516020601f840181900481028201810190925282815260009161260891858580838501838280828437600092019190915250614a4a92505050565b90506001811015801561261d57506127108111155b6126395760405162461bcd60e51b8152600401610ce79061704f565b600f55612659565b60405162461bcd60e51b8152600401610ce790617612565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a8484848460405161268e9493929190616bea565b60405180910390a150505050565b60046020526000908152604090205481565b68056bc75e2d6310000081565b6001546060906000805b828110156126ea576126d68161137f565b156126e2578160010191505b6001016126c5565b50606081604051908082528060200260200182016040528015612717578160200160208202803683370190505b5090506000915060005b8381101561279e576127328161137f565b15612796576001818154811061274457fe5b600091825260209091206004909102015482516001600160a01b039091169083908590811061276f57fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508260010192505b600101612721565b50925050505b90565b601581565b61027181565b61100281565b60138181548110611ab357fe5b60006127cf6126bb565b519050600080600c54116127e45760156127e8565b600c545b9050808211156127f6578091505b8161280057600191505b5090565b67016345785d8a000081565b60055481565b61100381565b60005460ff161561283f5760405162461bcd60e51b8152600401610ce7906173a9565b61284761656b565b600061286d604051806101e001604052806101ab81526020016177246101ab9139613292565b915091508061288e5760405162461bcd60e51b8152600401610ce790617494565b60005b8260200151518110156129b3576001836020015182815181106128b057fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a09093015160039093019290925591860151805191850193918590811061298657fe5b602090810291909101810151516001600160a01b0316825281019190915260400160002055600101612891565b50506103e8600255506000805460ff19166001179055565b600d5481565b601354600090815b81811015612ada57612ac285858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050601380549092508591508110612a2a57fe5b600091825260209182902001805460408051601f6002600019610100600187161502019094169390930492830185900485028101850190915281815292830182828015612ab85780601f10612a8d57610100808354040283529160200191612ab8565b820191906000526020600020905b815481529060010190602001808311612a9b57829003601f168201915b5050505050614a4f565b15612ad25760019250505061142a565b6001016129d9565b5060125460005b81811015612b4b57612b3286868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050601280549092508591508110612a2a57fe5b15612b43576001935050505061142a565b600101612ae1565b50600095945050505050565b3361100114612b785760405162461bcd60e51b8152600401610ce790617639565b600b54612c3657612b87616495565b60015460005b81811015612c3257600b805460018101825560009190915283516000805160206178ef833981519152601690920291820190815560208086015160008051602061792f8339815191528401805460ff1916911515919091179055604086015180518794612c0e9360008051602061790f8339815191529091019201906164c4565b506060820151612c24906003830190601361653e565b505050806001019050612b8d565b5050505b6000612c4182614ab3565b9050612c4c816112b0565b15612c5b57612c5b8282614959565b5050565b606581565b334114612c835760405162461bcd60e51b8152600401610ce790617524565b60005460ff16612ca55760405162461bcd60e51b8152600401610ce790616d96565b60003411612cc55760405162461bcd60e51b8152600401610ce7906170e9565b3a15612ce35760405162461bcd60e51b8152600401610ce79061727b565b6001600160a01b03811660009081526004602052604090205460145434919060ff16612d2357610271600f556103e86006556014805460ff191660011790555b6000612d4c612710612d40600f5486614c5690919063ffffffff16565b9063ffffffff614c9016565b90508015612dbc576040516110029082156108fc029083906000818181858888f19350505050158015612d83573d6000803e3d6000fd5b507f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d81604051612db39190617691565b60405180910390a15b600083118015612dce57506000600654115b15612e74576000612df0612710612d4060065487614c5690919063ffffffff16565b90508015612e725760405161dead9082156108fc029083906000818181858888f19350505050158015612e27573d6000803e3d6000fd5b507f627059660ea01c4733a328effb2294d2f86905bf806da763a89cee254de8bee581604051612e579190617691565b60405180910390a1612e6f848263ffffffff61427a16565b93505b505b612e84838263ffffffff61427a16565b92508115612f84576000600180840381548110612e9d57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff1615612f0a57846001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b485604051612efd9190617691565b60405180910390a2612f7e565b600354612f1d908563ffffffff6142bc16565b6003908155810154612f35908563ffffffff6142bc16565b60038201556040516001600160a01b038616907f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc05590612f75908790617691565b60405180910390a25b50612fc6565b836001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b484604051612fbd9190617691565b60405180910390a25b50505050565b600e5481565b61100081565b61dead81565b600b8181548110612feb57fe5b6000918252602091829020601691909102018054600180830154600280850180546040805161010096831615969096026000190190911692909204601f810188900488028501880190925281845293965060ff909116949192918301828280156130965780601f1061306b57610100808354040283529160200191613096565b820191906000526020600020905b81548152906001019060200180831161307957829003601f168201915b5050505050905083565b61100481565b6000600a54600014806130b7575081155b806130c25750600954155b156130cf57506000610f4e565b6009600081546001900391905081905550600061311a600a54612d4085612d40600b89815481106130fc57fe5b6000918252602090912060169091020154439063ffffffff61427a16565b90506000600b858154811061312b57fe5b906000526020600020906016020160010160006101000a81548160ff0219169083151502179055506000806110016001600160a01b0316638256ace66040518163ffffffff1660e01b8152600401604080518083038186803b15801561319057600080fd5b505afa1580156131a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131c89190616923565b9150915060009350808310613242576131e187876142e1565b506040516305bfb49960e41b815261100190635bfb499090613207908a90600401616a60565b600060405180830381600087803b15801561322157600080fd5b505af1158015613235573d6000803e3d6000fd5b5050505060019350613254565b8183106132545761325287614ab3565b505b6040516001600160a01b038816907fb9d38178dc641ff1817967a63c9078cbcd955a9f1fcd75e0e3636de615d44d3b90600090a25050509392505050565b61329a61656b565b60006132a461656b565b6132ac61658f565b6132bd6132b886614cd2565b614cf7565b90506000805b6132cc83614d41565b1561344057806132f1576132e76132e284614d62565b614db0565b60ff168452613438565b806001141561343357606061330d61330885614d62565b614e30565b9050805160405190808252806020026020018201604052801561334a57816020015b6133376165af565b81526020019060019003908161332f5790505b508560200181905250805160405190808252806020026020018201604052801561338857816020015b60608152602001906001900390816133735790505b50604086015260005b8151811015613428576133a26165af565b606060006133c28585815181106133b557fe5b6020026020010151614f01565b925092509250806133e2578860009a509a50505050505050505050613449565b82896020015185815181106133f357fe5b6020026020010181905250818960400151858151811061340f57fe5b6020026020010181905250505050806001019050613391565b506001925050613438565b613440565b6001016132c3565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b606081526020019060019003908161346857905050905061348e8363ffffffff1661501b565b8160008151811061349b57fe5b6020026020010181905250610f4e8161502e565b60006064835111156134e6576000805160206178cf8339815191526040516134d690616ea9565b60405180910390a150606661142a565b60005b83518110156135845760005b8181101561357b5784818151811061350957fe5b6020026020010151600001516001600160a01b031685838151811061352a57fe5b6020026020010151600001516001600160a01b03161415613573576000805160206178cf83398151915260405161356090617004565b60405180910390a160669250505061142a565b6001016134f5565b506001016134e9565b5060608061359285856150b8565b60015491935091506000908190815b818110156136175767016345785d8a0000600182815481106135bf57fe5b906000526020600020906004020160030154106135e15783600101935061360f565b6000600182815481106135f057fe5b906000526020600020906004020160030154111561360f578260010192505b6001016135a1565b50606083604051908082528060200260200182016040528015613644578160200160208202803683370190505b509050606084604051908082528060200260200182016040528015613673578160200160208202803683370190505b5090506060856040519080825280602002602001820160405280156136a2578160200160208202803683370190505b5090506060866040519080825280602002602001820160405280156136d1578160200160208202803683370190505b5090506000606087604051908082528060200260200182016040528015613702578160200160208202803683370190505b509050606088604051908082528060200260200182016040528015613731578160200160208202803683370190505b509050600099506000985060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b15801561377957600080fd5b505afa15801561378d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137b1919061690b565b905067016345785d8a00008111156137fc576000805160206178cf8339815191526040516137de90617368565b60405180910390a160689d505050505050505050505050505061142a565b60005b89811015613a6d5767016345785d8a00006001828154811061381d57fe5b906000526020600020906004020160030154106139a2576001818154811061384157fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316898d8151811061387257fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be400600183815481106138a757fe5b906000526020600020906004020160030154816138c057fe5b06600183815481106138ce57fe5b9060005260206000209060040201600301540390506138f6838261427a90919063ffffffff16565b898e8151811061390257fe5b6020026020010181815250506001828154811061391b57fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316878e8151811061394c57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081888e8151811061397957fe5b6020908102919091010152613994868263ffffffff6142bc16565b95508c6001019c5050613a65565b6000600182815481106139b157fe5b9060005260206000209060040201600301541115613a6557600181815481106139d657fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316848c81518110613a0757fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060018181548110613a3457fe5b906000526020600020906004020160030154838c81518110613a5257fe5b6020026020010181815250508a6001019a505b6001016137ff565b5060008415613ce3576002546040516303702b2960e51b815261100491636e056520918891613aa7918e918e918d91420190600401616b52565b6020604051808303818588803b158015613ac057600080fd5b505af193505050508015613af1575060408051601f3d908101601f19168201909252613aee91810190616838565b60015b613c68576040516000815260443d1015613b0d57506000613ba8565b60046000803e60005160e01c6308c379a08114613b2e576000915050613ba8565b60043d036004833e81513d60248201116001600160401b0382111715613b5957600092505050613ba8565b80830180516001600160401b03811115613b7a576000945050505050613ba8565b8060208301013d8601811115613b9857600095505050505050613ba8565b601f01601f191660405250925050505b80613bb35750613bf5565b60019150857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf28082604051613be79190616bd7565b60405180910390a250613c63565b3d808015613c1f576040519150601f19603f3d011682016040523d82523d6000602084013e613c24565b606091505b5060019150857fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a4582604051613c599190616bd7565b60405180910390a2505b613ce3565b8015613caa577fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b7086604051613c9d9190617691565b60405180910390a1613ce1565b857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280604051613cd890616c99565b60405180910390a25b505b8015613e995760005b8751811015613e97576000888281518110613d0357fe5b60200260200101519050600060018281548110613d1c57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc9185908110613d4d57fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f1935050505090508015613e095760018281548110613d8e57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d9185908110613ddd57fe5b906000526020600020906004020160030154604051613dfc9190617691565b60405180910390a2613e8d565b60018281548110613e1657fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d9185908110613e6557fe5b906000526020600020906004020160030154604051613e849190617691565b60405180910390a25b5050600101613cec565b505b835115613fe35760005b8451811015613fe1576000858281518110613eba57fe5b60200260200101516001600160a01b03166108fc868481518110613eda57fe5b60200260200101519081150290604051600060405180830381858888f1935050505090508015613f7057858281518110613f1057fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d868481518110613f4e57fe5b6020026020010151604051613f639190617691565b60405180910390a2613fd8565b858281518110613f7c57fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d868481518110613fba57fe5b6020026020010151604051613fcf9190617691565b60405180910390a25b50600101613ea3565b505b505050505050505050505050600047111561405f577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d476040516140279190617691565b60405180910390a1604051611002904780156108fc02916000818181858888f1935050505015801561405d573d6000803e3d6000fd5b505b6000600381905560055581511561407a5761407a82826152f1565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156140b757600080fd5b505af11580156140cb573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a1506000949350505050565b80516001600160a01b0316600090815260046020526040812054801580614154575060018082038154811061413457fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b1561419a5782516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a2600091505061137a565b6001546005546000198201118015906141f05784516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a26000935050505061137a565b60058054600190810190915580548190600019860190811061420e57fe5b6000918252602082206002600490920201018054921515600160e01b0260ff60e01b199093169290921790915585516040516001600160a01b03909116917ff226e7d8f547ff903d9d419cf5f54e0d7d07efa9584135a53a057c5f1f27f49a91a2506000949350505050565b6000610f4e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250615aab565b600082820183811015610f4e5760405162461bcd60e51b8152600401610ce790616dcd565b600080600183815481106142f157fe5b9060005260206000209060040201600301549050600060018080549050039050600161431b6126bb565b51116143505760006001858154811061433057fe5b90600052602060002090600402016003018190555060009250505061142a565b846001600160a01b03167f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a70836040516143899190617691565b60405180910390a26001600160a01b038516600090815260046020526040812055835b6001546000190181101561457657600181600101815481106143ca57fe5b9060005260206000209060040201600182815481106143e557fe5b60009182526020909120825460049092020180546001600160a01b03199081166001600160a01b0393841617825560018085015481840180548416918616919091179055600280860180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b19909416939093179055600392830154920191909155600b8054909183019081106144a657fe5b9060005260206000209060160201600b82815481106144c157fe5b600091825260209091208254601690920201908155600180830154818301805460ff909216151560ff19909216919091179055600280840180546145189383860193908216156101000260001901909116046165e4565b5061452b60038281019084016013616659565b5090505080600101600460006001848154811061454457fe5b600091825260208083206004909202909101546001600160a01b031683528201929092526040019020556001016143ac565b50600180548061458257fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b8054806145d557fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906146076002830182616683565b6146156003830160006166c7565b50509055600081838161462457fe5b04905080156146885760015460005b8181101561468557826001828154811061464957fe5b906000526020600020906004020160030154016001828154811061466957fe5b6000918252602090912060036004909202010155600101614633565b50505b50600195945050505050565b6001548151604080518281526020808402820101909152606092919083908280156146d357816020015b60608152602001906001900390816146be5790505b50600b5490915083146146ea57925061137a915050565b60005b828110156147f957600b60016004600089858151811061470957fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054038154811061473d57fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156147d55780601f106147aa576101008083540402835291602001916147d5565b820191906000526020600020905b8154815290600101906020018083116147b857829003601f168201915b50505050508282815181106147e657fe5b60209081029190910101526001016146ed565b50949350505050565b60005b8281101561494f5760008287838801604051602001614825929190616a52565b6040516020818303038152906040528051906020012060001c8161484557fe5b06905080850182870114614946576000898388018151811061486357fe5b602002602001015190506060898489018151811061487d57fe5b602002602001015190508a8388018151811061489557fe5b60200260200101518b858a01815181106148ab57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050818b848901815181106148da57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050898388018151811061490857fe5b60200260200101518a858a018151811061491e57fe5b6020026020010181905250808a8489018151811061493857fe5b602002602001018190525050505b50600101614805565b5050505050505050565b600980546001908101909155600b80548390811061497357fe5b906000526020600020906016020160010160006101000a81548160ff02191690831515021790555043600b82815481106149a957fe5b600091825260208220601690910201919091556040516001600160a01b038416917ff62981a567ec3cec866c6fa93c55bcdf841d6292d18b8d522ececa769375d82d91a25050565b600081604051602001614a049190616a36565b6040516020818303038152906040528051906020012083604051602001614a2b9190616a36565b6040516020818303038152906040528051906020012014905092915050565b015190565b815181516000916001918114808314614a6b5760009250614aa9565b600160208701838101602088015b600284838510011415614aa4578051835114614a985760009650600093505b60209283019201614a79565b505050505b5090949350505050565b6001600160a01b03811660009081526004602052604081205480614adc5750600019905061137a565b600181039050600060018281548110614af157fe5b9060005260206000209060040201600301549050600060018381548110614b1457fe5b6000918252602090912060036004909202010155600154604051600019909101906001600160a01b038616907f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d90614b6d908590617691565b60405180910390a280614b855782935050505061137a565b6000818381614b9057fe5b0490508015614c4c5760005b84811015614bee578160018281548110614bb257fe5b9060005260206000209060040201600301540160018281548110614bd257fe5b6000918252602090912060036004909202010155600101614b9c565b50600180549085015b81811015614c49578260018281548110614c0d57fe5b9060005260206000209060040201600301540160018281548110614c2d57fe5b6000918252602090912060036004909202010155600101614bf7565b50505b5091949350505050565b600082614c655750600061142a565b82820282848281614c7257fe5b0414610f4e5760405162461bcd60e51b8152600401610ce79061723a565b6000610f4e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250615ad7565b614cda6166d6565b506040805180820190915281518152602082810190820152919050565b614cff61658f565b614d0882615b0e565b614d1157600080fd5b6000614d208360200151615b48565b60208085015160408051808201909152868152920190820152915050919050565b6000614d4b6166d6565b505080518051602091820151919092015191011190565b614d6a6166d6565b614d7382614d41565b614d7c57600080fd5b60208201516000614d8c82615bab565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590614dc557508151602110155b614dce57600080fd5b6000614ddd8360200151615b48565b90508083600001511015614e035760405162461bcd60e51b8152600401610ce7906173e0565b8251602080850151830180519284900392918310156147f957506020919091036101000a90049392505050565b6060614e3b82615b0e565b614e4457600080fd5b6000614e4f83615c8c565b9050606081604051908082528060200260200182016040528015614e8d57816020015b614e7a6166d6565b815260200190600190039081614e725790505b5090506000614e9f8560200151615b48565b60208601510190506000805b84811015614ef657614ebc83615bab565b9150604051806040016040528083815260200184815250848281518110614edf57fe5b602090810291909101015291810191600101614eab565b509195945050505050565b614f096165af565b60606000614f156165af565b6060614f1f61658f565b614f2887614cf7565b90506000805b614f3783614d41565b1561500c5780614f6257614f52614f4d84614d62565b615ce8565b6001600160a01b03168552615004565b8060011415614f8a57614f77614f4d84614d62565b6001600160a01b03166020860152615004565b8060021415614fb257614f9f614f4d84614d62565b6001600160a01b03166040860152615004565b8060031415614fde57614fc76132e284614d62565b6001600160401b0316606086015260019150615004565b8060041415614fff57614ff8614ff384614d62565b615d02565b9350615004565b61500c565b600101614f2e565b50929791965091945092505050565b606061142a61502983615d72565b615e58565b606081516000141561504f575060408051600081526020810190915261137a565b60608260008151811061505e57fe5b602002602001015190506000600190505b835181101561509f576150958285838151811061508857fe5b6020026020010151615eaa565b915060010161506f565b50610f4e6150b2825160c060ff16615f27565b82615eaa565b6060806000808080806150c96127c5565b6001549091505b80156151d757600181039250600b83815481106150e957fe5b600091825260209091206001601690920201015460ff16615109576151ce565b6001838154811061511657fe5b60009182526020909120600490910201546001600160a01b0316945061513d8584846130a6565b9350831580615150575060018a51038610155b1561515a576151ce565b60005b8a518110156151cc57856001600160a01b03168b828151811061517c57fe5b6020026020010151600001516001600160a01b031614156151c45760018b82815181106151a557fe5b60209081029190910101519015156080909101526001909601956151cc565b60010161515d565b505b600019016150d0565b508489510360405190808252806020026020018201604052801561521557816020015b6152026165af565b8152602001906001900390816151fa5790505b5096508489510360405190808252806020026020018201604052801561524f57816020015b606081526020019060019003908161523a5790505b5095506000915060005b89518110156152e35789818151811061526e57fe5b6020026020010151608001516152db5789818151811061528a57fe5b602002602001015188848151811061529e57fe5b60200260200101819052508881815181106152b557fe5b60200260200101518784815181106152c957fe5b60200260200101819052508260010192505b600101615259565b5050505050505b9250929050565b600154825160005b8281101561540e57600161530b6165af565b6001838154811061531857fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b848110156153e2578781815181106153a857fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b031614156153da57600092506153e2565b600101615394565b5081156154045780516001600160a01b03166000908152600460205260408120555b50506001016152f9565b50808211156154cd57805b828110156154cb57600180548061542c57fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b80548061547f57fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906154b16002830182616683565b6154bf6003830160006166c7565b50509055600101615419565b505b60008183106154dc57816154de565b825b905060005b8181101561584d576155908682815181106154fa57fe5b60200260200101516001838154811061550f57fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a0820152615ff9565b6157445780600101600460008884815181106155a857fe5b6020026020010151600001516001600160a01b03166001600160a01b03168152602001908152602001600020819055508581815181106155e457fe5b6020026020010151600182815481106155f957fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a09091015160039091015584518590829081106156b457fe5b6020026020010151600b82815481106156c957fe5b906000526020600020906016020160020190805190602001906156ed9291906164c4565b506000600b82815481106156fd57fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b80548390811061572e57fe5b6000918252602090912060169091020155615845565b6157d585828151811061575357fe5b6020026020010151600b838154811061576857fe5b600091825260209182902060026016909202018101805460408051601f600019610100600186161502019093169490940491820185900485028401850190528083529192909190830182828015612ab85780601f10612a8d57610100808354040283529160200191612ab8565b615820578481815181106157e557fe5b6020026020010151600b82815481106157fa57fe5b9060005260206000209060160201600201908051906020019061581e9291906164c4565b505b60006001828154811061582f57fe5b9060005260206000209060040201600301819055505b6001016154e3565b5082821115615a255761585e616495565b835b83811015615a225785818151811061587457fe5b60200260200101518260400181905250600187828151811061589257fe5b6020908102919091018101518254600181810185556000948552838520835160049093020180546001600160a01b039384166001600160a01b0319918216178255848601518284018054918616918316919091179055604080860151600284018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909a1692909616919091179290921696909617169190911790935560a090930151600390930192909255600b80549283018155909352845160169091026000805160206178ef83398151915281019182558583015160008051602061792f8339815191528201805491151560ff19909216919091179055928501518051869492936159c89360008051602061790f833981519152019201906164c4565b5060608201516159de906003830190601361653e565b50505080600101600460008984815181106159f557fe5b602090810291909101810151516001600160a01b0316825281019190915260400160002055600101615860565b50505b615a2d61607a565b615a3561625c565b6000600981905560015493505b83811015615aa3576000600b8281548110615a5957fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b805483908110615a8a57fe5b6000918252602090912060169091020155600101615a42565b505050505050565b60008184841115615acf5760405162461bcd60e51b8152600401610ce79190616bd7565b505050900390565b60008183615af85760405162461bcd60e51b8152600401610ce79190616bd7565b506000838581615b0457fe5b0495945050505050565b8051600090615b1f5750600061137a565b6020820151805160001a9060c0821015615b3e5760009250505061137a565b5060019392505050565b8051600090811a6080811015615b6257600091505061137a565b60b8811080615b7d575060c08110801590615b7d575060f881105b15615b8c57600191505061137a565b60c0811015615ba05760b51901905061137a565b60f51901905061137a565b80516000908190811a6080811015615bc65760019150615c85565b60b8811015615bdb57607e1981019150615c85565b60c0811015615c2c57600060b78203600186019550806020036101000a865104915060018101820193505080831015615c265760405162461bcd60e51b8152600401610ce790617187565b50615c85565b60f8811015615c415760be1981019150615c85565b600060f78203600186019550806020036101000a865104915060018101820193505080831015615c835760405162461bcd60e51b8152600401610ce790617187565b505b5092915050565b8051600090615c9d5750600061137a565b60008090506000615cb18460200151615b48565b602085015185519181019250015b80821015615cdf57615cd082615bab565b82019150826001019250615cbf565b50909392505050565b8051600090601514615cf957600080fd5b61142a82614db0565b8051606090615d1057600080fd5b6000615d1f8360200151615b48565b83516040805191839003808352601f19601f8201168301602001909152919250606090828015615d56576020820181803683370190505b50905060008160200190506147f984876020015101828561644a565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416615db657506018615dda565b6fffffffffffffffffffffffffffffffff198416615dd657506010615dda565b5060005b6020811015615e1057818181518110615def57fe5b01602001516001600160f81b03191615615e0857615e10565b600101615dda565b60008160200390506060816040519080825280601f01601f191660200182016040528015615e45576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015615e8a5750607f60f81b82600081518110615e7857fe5b01602001516001600160f81b03191611155b15615e9657508061137a565b61142a615ea88351608060ff16615f27565b835b6060806040519050835180825260208201818101602087015b81831015615edb578051835260209283019201615ec3565b50855184518101855292509050808201602086015b81831015615f08578051835260209283019201615ef0565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310615f515760405162461bcd60e51b8152600401610ce790616f7f565b60408051600180825281830190925260609160208201818036833701905050905060378411615fab5782840160f81b81600081518110615f8d57fe5b60200101906001600160f81b031916908160001a905350905061142a565b6060615fb685615d72565b90508381510160370160f81b82600081518110615fcf57fe5b60200101906001600160f81b031916908160001a905350615ff08282615eaa565b95945050505050565b805182516000916001600160a01b039182169116148015616033575081602001516001600160a01b031683602001516001600160a01b0316145b8015616058575081604001516001600160a01b031683604001516001600160a01b0316145b8015610f4e5750506060908101519101516001600160401b0390811691161490565b601254601354808211156160c557805b828110156160c357601280548061609d57fe5b6001900381819060005260206000200160006160b99190616683565b905560010161608a565b505b60008183106160d457816160d6565b825b905060005b818110156161ee57616193601282815481106160f357fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156161815780601f1061615657610100808354040283529160200191616181565b820191906000526020600020905b81548152906001019060200180831161616457829003601f168201915b505050505060138381548110612a2a57fe5b6161e657601381815481106161a457fe5b90600052602060002001601282815481106161bb57fe5b9060005260206000200190805460018160011615610100020316600290046161e49291906165e4565b505b6001016160db565b5082821115610d0757825b82811015612fc65760126013828154811061621057fe5b60009182526020808320845460018181018755958552919093209290910180546162539493909201929091600261010092821615929092026000190116046165e4565b506001016161f9565b601354600b54808211156162a757805b828110156162a557601380548061627f57fe5b60019003818190600052602060002001600061629b9190616683565b905560010161626c565b505b60008183106162b657816162b8565b825b905060005b818110156163d757616375601382815481106162d557fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156163635780601f1061633857610100808354040283529160200191616363565b820191906000526020600020905b81548152906001019060200180831161634657829003601f168201915b5050505050600b838154811061576857fe5b6163cf57600b818154811061638657fe5b9060005260206000209060160201600201601382815481106163a457fe5b9060005260206000200190805460018160011615610100020316600290046163cd9291906165e4565b505b6001016162bd565b5082821115610d0757825b82811015612fc6576013600b82815481106163f957fe5b600091825260208083208454600180820187559585529190932060169290920290920160029081018054616441959390940193909260001990821615610100020116046165e4565b506001016163e2565b8061645457610d07565b5b60208110616474578251825260209283019290910190601f1901616455565b915181516020939093036101000a6000190180199091169216919091179052565b604051806080016040528060008152602001600015158152602001606081526020016164bf6166f0565b905290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061650557805160ff1916838001178555616532565b82800160010185558215616532579182015b82811115616532578251825591602001919060010190616517565b5061280092915061670f565b82601381019282156165325791602002820182811115616532578251825591602001919060010190616517565b6040518060600160405280600060ff16815260200160608152602001606081525090565b60405180604001604052806165a26166d6565b8152602001600081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061661d5780548555616532565b8280016001018555821561653257600052602060002091601f016020900482015b8281111561653257825482559160010191906001019061663e565b8260138101928215616532579182018281111561653257825482559160010191906001019061663e565b50805460018160011615610100020316600290046000825580601f106166a95750611586565b601f016020900490600052602060002090810190611586919061670f565b5061158690601381019061670f565b604051806040016040528060008152602001600081525090565b6040518061026001604052806013906020820280368337509192915050565b6127a491905b808211156128005760008155600101616715565b60008083601f84011261673a578182fd5b5081356001600160401b03811115616750578182fd5b60208301915083602080830285010111156152ea57600080fd5b60008083601f84011261677b578182fd5b5081356001600160401b03811115616791578182fd5b6020830191508360208285010111156152ea57600080fd5b6000602082840312156167ba578081fd5b81356001600160a01b0381168114610f4e578182fd5b600080600080604085870312156167e5578283fd5b84356001600160401b03808211156167fb578485fd5b61680788838901616729565b9096509450602087013591508082111561681f578384fd5b5061682c87828801616729565b95989497509550505050565b600060208284031215616849578081fd5b81518015158114610f4e578182fd5b6000806020838503121561686a578182fd5b82356001600160401b0381111561687f578283fd5b61688b8582860161676a565b90969095509350505050565b600080600080604085870312156168ac578384fd5b84356001600160401b03808211156168c2578586fd5b6168ce8883890161676a565b909650945060208701359150808211156168e6578384fd5b5061682c8782880161676a565b600060208284031215616904578081fd5b5035919050565b60006020828403121561691c578081fd5b5051919050565b60008060408385031215616935578182fd5b505080516020909101519092909150565b60008060006040848603121561695a578283fd5b833560ff8116811461696a578384fd5b925060208401356001600160401b03811115616984578283fd5b6169908682870161676a565b9497909650939450505050565b6000815180845260208085019450808401835b838110156169d55781516001600160a01b0316875295820195908201906001016169b0565b509495945050505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008151808452616a228160208601602086016176f7565b601f01601f19169290920160200192915050565b60008251616a488184602087016176f7565b9190910192915050565b918252602082015260400190565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b03968716815294861660208601529290941660408401526001600160401b03166060830152911515608082015260a081019190915260c00190565b600060208252610f4e602083018461699d565b600060408252616af5604083018561699d565b602083820381850152818551808452828401915082838202850101838801865b83811015616b4357601f19878403018552616b31838351616a0a565b94860194925090850190600101616b15565b50909998505050505050505050565b600060808252616b65608083018761699d565b828103602084810191909152865180835287820192820190845b81811015616b9b57845183529383019391830191600101616b7f565b50508481036040860152616baf818861699d565b93505050506001600160401b038316606083015295945050505050565b901515815260200190565b600060208252610f4e6020830184616a0a565b600060408252616bfe6040830186886169e0565b8281036020840152616c118185876169e0565b979650505050505050565b6020808252601c908201527f6c656e677468206f66206275726e526174696f206d69736d6174636800000000604082015260600190565b60208082526026908201527f6c656e677468206f66206d61784e756d4f664d61696e7461696e696e67206d696040820152650e6dac2e8c6d60d31b606082015260800190565b6020808252601b908201527f6261746368207472616e736665722072657475726e2066616c73650000000000604082015260600190565b6020808252602c908201527f6c656e677468206f66206d61784e756d4f66576f726b696e6743616e6469646160408201526b0e8cae640dad2e6dac2e8c6d60a31b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61696e7461696e536c6173685363616c65206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252818101527f6c656e677468206f66206e756d4f66436162696e657473206d69736d61746368604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526028908201527f746865206e756d4f66436162696e657473206d75737420626520677265617465604082015267072207468616e20360c41b606082015260800190565b60208082526039908201527f746865206e756d4f66436162696e657473206d757374206265206c657373207460408201527f68616e204d41585f4e554d5f4f465f56414c494441544f525300000000000000606082015260800190565b60208082526029908201527f746865206e756d626572206f662076616c696461746f727320657863656564206040820152681d1a19481b1a5b5a5d60ba1b606082015260800190565b60208082526022908201527f63616e206e6f7420646f207468697320747769636520696e206f6e6520626c6f604082015261636b60f01b606082015260800190565b6020808252602b908201527f746865206275726e526174696f206d757374206265206e6f206772656174657260408201526a0207468616e2031303030360ac1b606082015260800190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526037908201527f746865206d61784e756d4f664d61696e7461696e696e67206d7573742062652060408201527f6c657373207468616e206e756d4f66436162696e657473000000000000000000606082015260800190565b6020808252602b908201527f6475706c696361746520636f6e73656e7375732061646472657373206f66207660408201526a185b1a59185d1bdc94d95d60aa1b606082015260800190565b60208082526033908201527f7468652073797374656d526577617264526174696f206d757374206265206e6f60408201527202067726561746572207468616e20313030303606c1b606082015260800190565b60208082526027908201527f7468652065787069726554696d655365636f6e64476170206973206f7574206f604082015266662072616e676560c81b606082015260800190565b6020808252601590820152746465706f7369742076616c7565206973207a65726f60581b604082015260600190565b60208082526049908201527f746865206d61784e756d4f66576f726b696e6743616e64696461746573206d7560408201527f7374206265206e6f742067726561746572207468616e206d61784e756d4f6643606082015268616e6469646174657360b81b608082015260a00190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b60208082526023908201527f63616e206e6f7420656e7465722054656d706f72617279204d61696e74656e616040820152626e636560e81b606082015260800190565b60208082526025908201527f6c656e677468206f66206a61696c2076616c696461746f7273206d757374206260408201526465206f6e6560d81b606082015260800190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61784e756d4f6643616e64696461746573206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252601290820152716e6f7420696e206d61696e74656e616e636560701b604082015260600190565b60208082526021908201527f666565206973206c6172676572207468616e2044555354595f494e434f4d494e6040820152604760f81b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526026908201527f6c656e677468206f662065787069726554696d655365636f6e64476170206d696040820152650e6dac2e8c6d60d31b606082015260800190565b60208082526017908201527f6f6e6c792063757272656e742076616c696461746f7273000000000000000000604082015260600190565b60208082526021908201527f6661696c656420746f20706172736520696e69742076616c696461746f7253656040820152601d60fa1b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b60208082526024908201527f6c656e677468206f662073797374656d526577617264526174696f206d69736d6040820152630c2e8c6d60e31b606082015260800190565b6020808252603e908201527f746865206d61696e7461696e536c6173685363616c65206d757374206265206760408201527f726561746572207468616e203020616e64206c657373207468616e2031300000606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b60208082526029908201527f746865206d6573736167652073656e646572206d75737420626520736c6173686040820152680818dbdb9d1c9858dd60ba1b606082015260800190565b61ffff91909116815260200190565b90815260200190565b6000848252831515602083015260606040830152615ff06060830184616a0a565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff8516825260406020830152615ff06040830184866169e0565b60005b838110156177125781810151838201526020016176fa565b83811115612fc6575050600091015256fef901a880f901a4f844941284214b9b9c85549ab3d2b972df0deef66ac2c9946ddf42a51534fc98d0c0a3b42c963cace8441ddf946ddf42a51534fc98d0c0a3b42c963cace8441ddf8410000000f84494a2959d3f95eae5dc7d70144ce1b73b403b7eb6e0948081ef03f1d9e0bb4a5bf38f16285c879299f07f948081ef03f1d9e0bb4a5bf38f16285c879299f07f8410000000f8449435552c16704d214347f29fa77f77da6d75d7c75294dc4973e838e3949c77aced16ac2315dc2d7ab11194dc4973e838e3949c77aced16ac2315dc2d7ab1118410000000f84494980a75ecd1309ea12fa2ed87a8744fbfc9b863d594cc6ac05c95a99c1f7b5f88de0e3486c82293b27094cc6ac05c95a99c1f7b5f88de0e3486c82293b2708410000000f84494f474cf03cceff28abc65c9cbae594f725c80e12d94e61a183325a18a173319dd8e19c8d069459e217594e61a183325a18a173319dd8e19c8d069459e21758410000000f84494b71b214cb885500844365e95cd9942c7276e7fd894d22ca3ba2141d23adab65ce4940eb7665ea2b6a794d22ca3ba2141d23adab65ce4940eb7665ea2b6a7841000000070e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb20175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbb0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbaa164736f6c6343000604000a", - }, - { - ContractAddr: SlashContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/ff75c61ecd457c1370327e136b38c7a0d63ca821", - Code: "608060405234801561001057600080fd5b50600436106102955760003560e01c80638256ace611610167578063c81b1662116100ce578063e1c7392a11610087578063e1c7392a146104d3578063eb57bff7146104db578063f9a2bbc7146104e3578063fc3e5908146104eb578063fc4333cd146104f3578063fd6a6879146104fb57610295565b8063c81b166214610482578063c8509d811461048a578063c96be4cb1461049d578063cc844b73146104b0578063d2a42e4b146104c3578063dc927faf146104cb57610295565b8063a78abc1611610120578063a78abc1614610447578063ab51bb961461044f578063ac0af62914610457578063ac4317511461045f578063ae61dc3b14610472578063c80d4b8f1461047a57610295565b80638256ace61461040c578063831d65d11461041457806396713da9146104275780639bc8e4f21461042f5780639dc0926214610437578063a1a11bf51461043f57610295565b8063493279b11161020b5780636e47b482116101c45780636e47b482146103dc57806370fd5bad146103e4578063718a8aa8146103ec57806375d47a0a146103f45780637912a65d146103fc5780637942fd051461040457610295565b8063493279b1146103925780634bf6c882146103a757806351e80672146103af578063567a372d146103b75780635bfb4990146103bf57806362b72cf5146103d457610295565b806335aa2e441161025d57806335aa2e441461032457806337c8dab914610337578063389f4f71146103585780633a63f4b11461036d5780633dffc3871461037557806343756e5c1461038a57610295565b80630bee7a671461029a5780630e2374a5146102b85780631182b875146102cd57806322d1e80b146102ed57806323bac5a214610302575b600080fd5b6102a2610503565b6040516102af919061354e565b60405180910390f35b6102c0610508565b6040516102af9190612d6a565b6102e06102db366004612ca0565b61050e565b6040516102af9190612da2565b6102f5610574565b6040516102af9190612d97565b610315610310366004612a4e565b61057d565b6040516102af93929190613536565b6102c0610332366004612c70565b6105a0565b61034a610345366004612a4e565b6105c7565b6040516102af929190613528565b61036061061e565b6040516102af91906134fe565b610360610624565b61037d61062a565b6040516102af919061355f565b6102c061062f565b61039a610635565b6040516102af91906134ef565b61037d61063a565b6102c061063f565b610360610645565b6103d26103cd366004612a4e565b61064b565b005b6103606106f6565b6102c06106fc565b61037d610702565b61037d610707565b6102c061070c565b610360610712565b61037d610717565b61034a61071c565b6103d2610422366004612ca0565b610726565b61037d610838565b61036061083d565b6102c0610848565b6102c061084e565b6102f5610854565b6102a261085d565b610360610862565b6103d261046d366004612b54565b610867565b610360610e17565b610360610e1e565b6102c0610e23565b6103d2610498366004612ca0565b610e29565b6103d26104ab366004612a4e565b610e9a565b6103d26104be366004612bbd565b61128b565b61036061187c565b6102c0611881565b6103d2611887565b6103606118c3565b6102c06118c9565b61037d6118cf565b6103d26118d4565b6102c0611d1d565b606481565b61200181565b6060336120001461053a5760405162461bcd60e51b815260040161053190613347565b60405180910390fd5b60005460ff1661055c5760405162461bcd60e51b815260040161053190612e9d565b60405162461bcd60e51b815260040161053190613438565b60075460ff1681565b600260208190526000918252604090912080546001820154919092015460ff1683565b600181815481106105ad57fe5b6000918252602090912001546001600160a01b0316905081565b6000806105d2612835565b5050506001600160a01b0316600090815260026020818152604092839020835160608101855281548082526001830154938201849052919093015460ff16151592909301919091529091565b60055481565b60065481565b600181565b61100181565b606181565b600881565b61200081565b60045481565b336110001461066c5760405162461bcd60e51b81526004016105319061312c565b60005460ff1661068e5760405162461bcd60e51b815260040161053190612e9d565b61200063f7a251d7600b6106a184611d23565b60006040518463ffffffff1660e01b81526004016106c19392919061356d565b600060405180830381600087803b1580156106db57600080fd5b505af11580156106ef573d6000803e3d6000fd5b5050505050565b60035481565b61100581565b600281565b601081565b61100881565b603281565b600b81565b6004546005549091565b33612000146107475760405162461bcd60e51b815260040161053190613347565b60005460ff166107695760405162461bcd60e51b815260040161053190612e9d565b610771612858565b60006107b284848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611df592505050565b9150915080156107f95781516040517f7f0956d47419b9525356e7111652b653b530ec6f5096dccc04589bc38e629967916107ec9161354e565b60405180910390a16106ef565b81516040517f7d45f62d17443dd4547bca8a8112c60e2385669318dc300ec61a5d2492f262e7916108299161354e565b60405180910390a15050505050565b600981565b662386f26fc1000081565b61100781565b61100681565b60005460ff1681565b600081565b600481565b60005460ff166108895760405162461bcd60e51b815260040161053190612e9d565b33611007146108aa5760405162461bcd60e51b815260040161053190613204565b61091584848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260148152731b5a5cd9195b59585b9bdc951a1c995cda1bdb1960621b60208201529150611e759050565b156109b0576020811461093a5760405162461bcd60e51b8152600401610531906130b8565b604080516020601f840181900481028201810190925282815260009161097891858580838501838280828437600092019190915250611ecf92505050565b90506001811015801561098c575060055481105b6109a85760405162461bcd60e51b815260040161053190613302565b600455610dd4565b610a1684848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e19995b1bdb9e551a1c995cda1bdb19608a1b60208201529150611e759050565b15610ab25760208114610a3b5760405162461bcd60e51b815260040161053190613252565b604080516020601f8401819004810282018101909252828152600091610a7991858580838501838280828437600092019190915250611ecf92505050565b90506103e88111158015610a8e575060045481115b610aaa5760405162461bcd60e51b815260040161053190612f56565b600555610dd4565b610b2684848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f66696e616c697479536c617368526577617264526174696f000000000000000060208201529150611e759050565b15610bc05760208114610b4b5760405162461bcd60e51b81526004016105319061346f565b604080516020601f8401819004810282018101909252828152600091610b8991858580838501838280828437600092019190915250611ecf92505050565b9050600a8110158015610b9c5750606481105b610bb85760405162461bcd60e51b81526004016105319061306c565b600655610dd4565b610c3484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f656e61626c654d616c6963696f7573566f7465536c617368000000000000000060208201529150611e759050565b15610cab5760208114610c595760405162461bcd60e51b815260040161053190612f8b565b604080516020601f8401819004810282018101909252828152610c959190848480838501838280828437600092019190915250611ed492505050565b6007805460ff1916911515919091179055610dd4565b610d1f84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601781527f6d616c6963696f7573566f7465536c61736853636f706500000000000000000060208201529150611e759050565b15610dbc5760208114610d445760405162461bcd60e51b815260040161053190612de7565b604080516020601f8401819004810282018101909252828152600091610d8291858580838501838280828437600092019190915250611ecf92505050565b90506170808110158015610d985750620d2f0081105b610db45760405162461bcd60e51b815260040161053190612ed4565b600855610dd4565b60405162461bcd60e51b8152600401610531906133e3565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a84848484604051610e099493929190612db5565b60405180910390a150505050565b6201518081565b609681565b61100281565b3361200014610e4a5760405162461bcd60e51b815260040161053190613347565b60005460ff16610e6c5760405162461bcd60e51b815260040161053190612e9d565b6040517f07db600eebe2ac176be8dcebad61858c245a4961bb32ca2aa3d159b09aa0810e90600090a1505050565b334114610eb95760405162461bcd60e51b815260040161053190613396565b60005460ff16610edb5760405162461bcd60e51b815260040161053190612e9d565b6003544311610efc5760405162461bcd60e51b8152600401610531906134ba565b3a15610f1a5760405162461bcd60e51b8152600401610531906131a7565b60405163155853f360e21b8152611000906355614fcc90610f3f908490600401612d6a565b60206040518083038186803b158015610f5757600080fd5b505afa158015610f6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f8f9190612b34565b610f9857611284565b610fa0612835565b506001600160a01b0381166000908152600260208181526040928390208351606081018552815481526001820154928101929092529091015460ff161580159282019290925290610ffb576020810180516001019052611054565b60016040820181905260208201819052805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0384161790555b43815260055460208201518161106657fe5b066111b257600060208201526040516335409f7f60e01b8152611000906335409f7f90611097908590600401612d6a565b600060405180830381600087803b1580156110b157600080fd5b505af11580156110c5573d6000803e3d6000fd5b505050506120006001600160a01b031663f7a251d7600b6110e585611d23565b60006040518463ffffffff1660e01b81526004016111059392919061356d565b600060405180830381600087803b15801561111f57600080fd5b505af1925050508015611130575060015b6111ad573d80801561115e576040519150601f19603f3d011682016040523d82523d6000602084013e611163565b606091505b50826001600160a01b03167fd7bc86ff5d08c8ab043edec743302aba2520e6635172a428bc956721db9e2d1c8360200151836040516111a3929190613507565b60405180910390a2505b61121e565b6004548160200151816111c157fe5b0661121e576040516375abf10160e11b81526110009063eb57e202906111eb908590600401612d6a565b600060405180830381600087803b15801561120557600080fd5b505af1158015611219573d6000803e3d6000fd5b505050505b6001600160a01b0382166000818152600260208181526040808420865181559186015160018301558581015191909201805460ff1916911515919091179055517fddb6012116e51abf5436d956a4f0ebd927e92c576ff96d7918290c8782291e3e9190a2505b5043600355565b60005460ff166112ad5760405162461bcd60e51b815260040161053190612e9d565b604051630a83aaa960e31b81526110069063541d5548906112d2903390600401612d6a565b60206040518083038186803b1580156112ea57600080fd5b505afa1580156112fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113229190612b34565b61133e5760405162461bcd60e51b815260040161053190612e31565b60075460ff166113605760405162461bcd60e51b815260040161053190612e68565b60065461136d5760146006555b60085461137c57620151806008555b6008548151604001514391011180156113a057504360085482602001516040015101115b6113bc5760405162461bcd60e51b81526004016105319061340a565b8060200151602001518160000151602001511480156113ea5750806020015160600151816000015160600151145b156114075760405162461bcd60e51b8152600401610531906130ff565b8051604081015190511080156114265750602081015160408101519051105b6114425760405162461bcd60e51b815260040161053190613035565b6020810151518151511080156114675750806000015160400151816020015160400151105b8061149257508051516020820151511080156114925750806020015160400151816000015160400151105b806114ac5750806020015160400151816000015160400151145b6114c85760405162461bcd60e51b815260040161053190612f1f565b604080820151905163ea321e4960e01b81526110009163ea321e49916114f19190600401612da2565b60206040518083038186803b15801561150957600080fd5b505afa15801561151d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115419190612b34565b61155d5760405162461bcd60e51b8152600401610531906131d5565b61156f81600001518260400151611efc565b8015611588575061158881602001518260400151611efc565b6115a45760405162461bcd60e51b815260040161053190612fd6565b6060806110006001600160a01b0316633b071dcc6040518163ffffffff1660e01b815260040160006040518083038186803b1580156115e257600080fd5b505afa1580156115f6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261161e9190810190612a71565b9150915060005b81518110156117595761164f82828151811061163d57fe5b602002602001015185604001516120d4565b15611751576006546040516213929d60e11b8152606461100280319093020491906227253a906116859033908590600401612d7e565b602060405180830381600087803b15801561169f57600080fd5b505af11580156116b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116d79190612c88565b506110006001600160a01b03166335409f7f8584815181106116f557fe5b60200260200101516040518263ffffffff1660e01b81526004016117199190612d6a565b600060405180830381600087803b15801561173357600080fd5b505af1158015611747573d6000803e3d6000fd5b5050505050611759565b600101611625565b50600061176b84604001516000612138565b90506120006001600160a01b031663f7a251d7600b61178d8760400151612154565b60006040518463ffffffff1660e01b81526004016117ad9392919061356d565b600060405180830381600087803b1580156117c757600080fd5b505af19250505080156117d8575060015b61184a573d808015611806576040519150601f19603f3d011682016040523d82523d6000602084013e61180b565b606091505b50817fd58d1183100bd0932c0588f31c4205d6bc6168909765a96c41adbed3115f36288260405161183c9190612da2565b60405180910390a250611876565b60405181907f7b78aadacff901d8b63d0dba4f86283d4db8aef27f9ed70413dd860f1c9532b690600090a25b50505050565b601481565b61100381565b60005460ff16156118aa5760405162461bcd60e51b815260040161053190613294565b603260045560966005556000805460ff19166001179055565b60085481565b61100081565b600381565b33611000146118f55760405162461bcd60e51b81526004016105319061312c565b60005460ff166119175760405162461bcd60e51b815260040161053190612e9d565b60015461192357611d1b565b600154600090600019015b808211611cef576000805b82841015611a5257611949612835565b600260006001878154811061195a57fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff161515908201526005549091506004900481602001511115611a3c576004600554816119c757fe5b048160200151038160200181815250508060026000600188815481106119e957fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208351815591830151600183015591909101516002909101805460ff1916911515919091179055611a46565b6001925050611a52565b50836001019350611939565b828411611be957611a61612835565b6002600060018681548110611a7257fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff161515908201526005549091506004900481602001511115611b5a57600460055481611adf57fe5b04816020015103816020018181525050806002600060018781548110611b0157fe5b6000918252602080832091909101546001600160a01b03168352828101939093526040918201902083518155918301516001808401919091559201516002909101805460ff19169115159190911790559150611be99050565b6002600060018681548110611b6b57fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff19169055805480611baf57fe5b600082815260209020810160001990810180546001600160a01b031916905501905583611bdc5750611be9565b5060001990920191611a52565b818015611bf35750805b15611cd2576002600060018681548110611c0957fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff19169055805484908110611c5057fe5b600091825260209091200154600180546001600160a01b039092169186908110611c7657fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506001805480611caf57fe5b600082815260209020810160001990810180546001600160a01b03191690550190555b82611cde575050611cef565b50506001909101906000190161192e565b6040517fcfdb3b6ccaeccbdc68be3c59c840e3b3c90f0a7c491f5fff1cf56cfda200dd9c90600090a150505b565b61100481565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081611d3e579050509050611d67836001600160a01b031661218f565b81600081518110611d7457fe5b6020026020010181905250611d88436121b2565b81600181518110611d9557fe5b6020908102919091010152611daa60616121b2565b81600281518110611db757fe5b6020026020010181905250611dcb426121b2565b81600381518110611dd857fe5b6020026020010181905250611dec816121c5565b9150505b919050565b611dfd612858565b6000611e07612858565b611e0f61286a565b611e20611e1b8661224f565b612274565b90506000805b611e2f836122be565b15611e685780611e5b57611e4a611e45846122df565b61232d565b63ffffffff16845260019150611e60565b611e68565b600101611e26565b5091935090915050915091565b600081604051602001611e889190612d4e565b6040516020818303038152906040528051906020012083604051602001611eaf9190612d4e565b604051602081830303815290604052805190602001201490505b92915050565b015190565b8082015160009060ff811615611eee576001915081611ef4565b60009150815b505092915050565b60408051600480825260a0820190925260009160609190816020015b6060815260200190600190039081611f18575050604080516020808252818301909252919250606091908082018180368337019050509050611f5d85600001516121b2565b82600081518110611f6a57fe5b6020026020010181905250611f8560208660200151836123af565b611f8e816123bf565b82600181518110611f9b57fe5b6020026020010181905250611fb385604001516121b2565b82600281518110611fc057fe5b6020026020010181905250611fdb60208660600151836123af565b611fe4816123bf565b82600381518110611ff157fe5b6020026020010181905250612017602061200a846121c5565b80519060200120836123af565b6040805160b080825260e08201909252606091602082018180368337019050509050612047818360006020612415565b61205981876080015160206060612415565b612067818660806030612415565b604080516001808252818301909252606091602082018180368337019050509050815160016020830182602086016066600019fa6120a457600080fd5b5060016120b2826000612468565b60ff16146120c7576000945050505050611ec9565b5060019695505050505050565b8151815160009160019181148083146120f0576000925061212e565b600160208701838101602088015b60028483851001141561212957805183511461211d5760009650600093505b602092830192016120fe565b505050505b5090949350505050565b6000816020018351101561214b57600080fd5b50016020015190565b60408051600480825260a08201909252606091829190816020015b606081526020019060019003908161216f579050509050611d67836123bf565b60408051600560a21b8318601482015260348101909152606090611dec816123bf565b6060611ec96121c083612484565b6123bf565b60608151600014156121e65750604080516000815260208101909152611df0565b6060826000815181106121f557fe5b602002602001015190506000600190505b83518110156122365761222c8285838151811061221f57fe5b602002602001015161256a565b9150600101612206565b50611dec612249825160c060ff166125e7565b8261256a565b61225761288a565b506040805180820190915281518152602082810190820152919050565b61227c61286a565b612285826126b9565b61228e57600080fd5b600061229d83602001516126f3565b60208085015160408051808201909152868152920190820152915050919050565b60006122c861288a565b505080518051602091820151919092015191011190565b6122e761288a565b6122f0826122be565b6122f957600080fd5b6020820151600061230982612756565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061234257508151602110155b61234b57600080fd5b600061235a83602001516126f3565b905080836000015110156123805760405162461bcd60e51b8152600401610531906132cb565b8251602080850151830180519284900392918310156123a657826020036101000a820491505b50949350505050565b9091018181526020918201910152565b6060815160011480156123f15750607f60f81b826000815181106123df57fe5b01602001516001600160f81b03191611155b156123fd575080611df0565b611ec961240f8351608060ff166125e7565b8361256a565b60005b818110156106ef5783818151811061242c57fe5b602001015160f81c60f81b85848060010195508151811061244957fe5b60200101906001600160f81b031916908160001a905350600101612418565b6000816001018351101561247b57600080fd5b50016001015190565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166124c8575060186124ec565b6fffffffffffffffffffffffffffffffff1984166124e8575060106124ec565b5060005b60208110156125225781818151811061250157fe5b01602001516001600160f81b0319161561251a57612522565b6001016124ec565b60008160200390506060816040519080825280601f01601f191660200182016040528015612557576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b8183101561259b578051835260209283019201612583565b50855184518101855292509050808201602086015b818310156125c85780518352602092830192016125b0565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106126115760405162461bcd60e51b81526004016105319061300d565b6040805160018082528183019092526060916020820181803683370190505090506037841161266b5782840160f81b8160008151811061264d57fe5b60200101906001600160f81b031916908160001a9053509050611ec9565b606061267685612484565b90508381510160370160f81b8260008151811061268f57fe5b60200101906001600160f81b031916908160001a9053506126b0828261256a565b95945050505050565b80516000906126ca57506000611df0565b6020820151805160001a9060c08210156126e957600092505050611df0565b5060019392505050565b8051600090811a608081101561270d576000915050611df0565b60b8811080612728575060c08110801590612728575060f881105b15612737576001915050611df0565b60c081101561274b5760b519019050611df0565b60f519019050611df0565b80516000908190811a6080811015612771576001915061282e565b60b881101561278657607e198101915061282e565b60c08110156127d757600060b78203600186019550806020036101000a8651049150600181018201935050808310156127d15760405162461bcd60e51b81526004016105319061317c565b5061282e565b60f88110156127ec5760be198101915061282e565b600060f78203600186019550806020036101000a865104915060018101820193505080831015611ef45760405162461bcd60e51b81526004016105319061317c565b5092915050565b604051806060016040528060008152602001600081526020016000151581525090565b60408051602081019091526000815290565b604051806040016040528061287d61288a565b8152602001600081525090565b604051806040016040528060008152602001600081525090565b600082601f8301126128b4578081fd5b81516128c76128c2826135c0565b613599565b818152915060208083019084810160005b8481101561293d578151870188603f8201126128f357600080fd5b838101516129036128c2826135e0565b81815260408b8184860101111561291957600080fd5b61292883888401838701613604565b508652505092820192908201906001016128d8565b505050505092915050565b60008083601f840112612959578182fd5b50813567ffffffffffffffff811115612970578182fd5b60208301915083602082850101111561298857600080fd5b9250929050565b600082601f83011261299f578081fd5b81356129ad6128c2826135e0565b91508082528360208285010111156129c457600080fd5b8060208401602084013760009082016020015292915050565b600060a082840312156129ee578081fd5b6129f860a0613599565b905081358152602082013560208201526040820135604082015260608201356060820152608082013567ffffffffffffffff811115612a3657600080fd5b612a428482850161298f565b60808301525092915050565b600060208284031215612a5f578081fd5b8135612a6a81613630565b9392505050565b60008060408385031215612a83578081fd5b825167ffffffffffffffff80821115612a9a578283fd5b81850186601f820112612aab578384fd5b80519250612abb6128c2846135c0565b80848252602080830192508084018a828389028701011115612adb578788fd5b8794505b86851015612b06578051612af281613630565b845260019490940193928101928101612adf565b508801519096509350505080821115612b1d578283fd5b50612b2a858286016128a4565b9150509250929050565b600060208284031215612b45578081fd5b81518015158114612a6a578182fd5b60008060008060408587031215612b69578182fd5b843567ffffffffffffffff80821115612b80578384fd5b612b8c88838901612948565b90965094506020870135915080821115612ba4578384fd5b50612bb187828801612948565b95989497509550505050565b600060208284031215612bce578081fd5b813567ffffffffffffffff80821115612be5578283fd5b81840160608187031215612bf7578384fd5b612c016060613599565b9250803582811115612c11578485fd5b612c1d878284016129dd565b845250602081013582811115612c31578485fd5b612c3d878284016129dd565b602085015250604081013582811115612c54578485fd5b612c608782840161298f565b6040850152509195945050505050565b600060208284031215612c81578081fd5b5035919050565b600060208284031215612c99578081fd5b5051919050565b600080600060408486031215612cb4578283fd5b833560ff81168114612cc4578384fd5b9250602084013567ffffffffffffffff811115612cdf578283fd5b612ceb86828701612948565b9497909650939450505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008151808452612d3a816020860160208601613604565b601f01601f19169290920160200192915050565b60008251612d60818460208701613604565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b600060208252612a6a6020830184612d22565b600060408252612dc9604083018688612cf8565b8281036020840152612ddc818587612cf8565b979650505050505050565b6020808252602a908201527f6c656e677468206f66206d616c6963696f7573566f7465536c61736853636f706040820152690ca40dad2e6dac2e8c6d60b31b606082015260800190565b6020808252601f908201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604082015260600190565b6020808252818101527f6d616c6963696f757320766f746520736c617368206e6f7420656e61626c6564604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252602b908201527f746865206d616c6963696f757320766f746520736c6173682073636f7065206f60408201526a7574206f662072616e676560a81b606082015260800190565b6020808252601a908201527f6e6f2076696f6c6174696f6e206f6620766f74652072756c6573000000000000604082015260600190565b6020808252818101527f7468652066656c6f6e795468726573686f6c64206f7574206f662072616e6765604082015260600190565b6020808252602b908201527f6c656e677468206f6620656e61626c654d616c6963696f7573566f7465536c6160408201526a0e6d040dad2e6dac2e8c6d60ab1b606082015260800190565b60208082526017908201527f766572696679207369676e6174757265206661696c6564000000000000000000604082015260600190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526019908201527f7372634e756d20626967676572207468616e207461724e756d00000000000000604082015260600190565b6020808252602c908201527f7468652066696e616c69747920736c6173682072657761726420726174696f2060408201526b6f7574206f662072616e676560a01b606082015260800190565b60208082526027908201527f6c656e677468206f66206d697364656d65616e6f725468726573686f6c64206d6040820152660d2e6dac2e8c6d60cb1b606082015260800190565b60208082526013908201527274776f206964656e746963616c20766f74657360681b604082015260600190565b60208082526030908201527f746865206d6573736167652073656e646572206d7573742062652076616c696460408201526f185d1bdc94d95d0818dbdb9d1c9858dd60821b606082015260800190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b6020808252601590820152741d9bdd195059191c881a5cc81b9bdd08199bdd5b99605a1b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526022908201527f6c656e677468206f662066656c6f6e795468726573686f6c64206d69736d61746040820152610c6d60f31b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526025908201527f746865206d697364656d65616e6f725468726573686f6c64206f7574206f662060408201526472616e676560d81b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b6020808252601490820152731d185c99d95d08189b1bd8dac81d1bdbc81bdb1960621b604082015260600190565b6020808252601e908201527f7265636569766520756e65787065637465642073796e207061636b6167650000604082015260600190565b6020808252602b908201527f6c656e677468206f662066696e616c697479536c61736852657761726452617460408201526a0d2de40dad2e6dac2e8c6d60ab1b606082015260800190565b6020808252818101527f63616e206e6f7420736c61736820747769636520696e206f6e6520626c6f636b604082015260600190565b61ffff91909116815260200190565b90815260200190565b6000838252604060208301526135206040830184612d22565b949350505050565b918252602082015260400190565b92835260208301919091521515604082015260600190565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff85168252606060208301526135896060830185612d22565b9050826040830152949350505050565b60405181810167ffffffffffffffff811182821017156135b857600080fd5b604052919050565b600067ffffffffffffffff8211156135d6578081fd5b5060209081020190565b600067ffffffffffffffff8211156135f6578081fd5b50601f01601f191660200190565b60005b8381101561361f578181015183820152602001613607565b838111156118765750506000910152565b6001600160a01b038116811461364557600080fd5b5056fea164736f6c6343000604000a", - }, - { - ContractAddr: SystemRewardContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/ff75c61ecd457c1370327e136b38c7a0d63ca821", - Code: "6080604052600436106101c55760003560e01c806375d47a0a116100f7578063ab51bb9611610095578063f9a2bbc711610064578063f9a2bbc7146105c3578063fb5478b3146105d8578063fc3e5908146105ed578063fd6a68791461060257610209565b8063ab51bb96146104b5578063ac431751146104ca578063c81b166214610599578063dc927faf146105ae57610209565b80639a99b4f0116100d15780639a99b4f01461043d5780639dc0926214610476578063a1a11bf51461048b578063a78abc16146104a057610209565b806375d47a0a146103fe5780637942fd051461041357806396713da91461042857610209565b8063493279b1116101645780636d70f7ae1161013e5780636d70f7ae146103785780636e47b482146103bf57806370fd5bad146103d4578063718a8aa8146103e957610209565b8063493279b1146103225780634bf6c8821461034e57806351e806721461036357610209565b806331b6d4a5116101a057806331b6d4a5146102b85780633a0b0eff146102cd5780633dffc387146102e257806343756e5c1461030d57610209565b806227253a1461020e5780630bee7a67146102595780630e2374a51461028757610209565b366102095734156102075760408051348152905133917f6c98249d85d88c3753a04a22230f595e4dc8d3dc86c34af35deeeedc861b89db919081900360200190a25b005b600080fd5b34801561021a57600080fd5b506102476004803603604081101561023157600080fd5b506001600160a01b038135169060200135610617565b60408051918252519081900360200190f35b34801561026557600080fd5b5061026e6107c2565b6040805163ffffffff9092168252519081900360200190f35b34801561029357600080fd5b5061029c6107c7565b604080516001600160a01b039092168252519081900360200190f35b3480156102c457600080fd5b506102476107cd565b3480156102d957600080fd5b506102476107d9565b3480156102ee57600080fd5b506102f76107df565b6040805160ff9092168252519081900360200190f35b34801561031957600080fd5b5061029c6107e4565b34801561032e57600080fd5b506103376107ea565b6040805161ffff9092168252519081900360200190f35b34801561035a57600080fd5b506102f76107ef565b34801561036f57600080fd5b5061029c6107f4565b34801561038457600080fd5b506103ab6004803603602081101561039b57600080fd5b50356001600160a01b03166107fa565b604080519115158252519081900360200190f35b3480156103cb57600080fd5b5061029c610818565b3480156103e057600080fd5b506102f761081e565b3480156103f557600080fd5b506102f7610823565b34801561040a57600080fd5b5061029c610828565b34801561041f57600080fd5b506102f761082e565b34801561043457600080fd5b506102f7610833565b34801561044957600080fd5b506102476004803603604081101561046057600080fd5b506001600160a01b038135169060200135610838565b34801561048257600080fd5b5061029c610962565b34801561049757600080fd5b5061029c610968565b3480156104ac57600080fd5b506103ab61096e565b3480156104c157600080fd5b5061026e610977565b3480156104d657600080fd5b50610207600480360360408110156104ed57600080fd5b81019060208101813564010000000081111561050857600080fd5b82018360208201111561051a57600080fd5b8035906020019184600183028401116401000000008311171561053c57600080fd5b91939092909160208101903564010000000081111561055a57600080fd5b82018360208201111561056c57600080fd5b8035906020019184600183028401116401000000008311171561058e57600080fd5b50909250905061097c565b3480156105a557600080fd5b5061029c610cff565b3480156105ba57600080fd5b5061029c610d05565b3480156105cf57600080fd5b5061029c610d0b565b3480156105e457600080fd5b50610247610d11565b3480156105f957600080fd5b506102f7610d1d565b34801561060e57600080fd5b5061029c610d22565b6000805460ff1661069457600260208190527fe57bda0a954a7c7381b17b2c763e646ba2c60f67292d287ba583603e2c1c41668054600160ff19918216811790925561100560009081527fe25235fc0de9d7165652bef0846fefda506174abb9a190f03d0f7bcc6146dbce80548316841790559282558254161790555b3360009081526002602052604090205460ff166106e25760405162461bcd60e51b815260040180806020018281038252602b815260200180610e10602b913960400191505060405180910390fd5b60004783106106f157476106f3565b825b9050674563918244f400008111156107105750674563918244f400005b8015610791576040516001600160a01b0385169082156108fc029083906000818181858888f1935050505015801561074c573d6000803e3d6000fd5b506040805182815290516001600160a01b038616917ff8b71c64315fc33b2ead2adfa487955065152a8ac33d9d5193aafd7f45dc15a0919081900360200190a26107bb565b6040517fe589651933c2457488cc0d8e0941518abf748e799435e4e396d9c4d0b2db2d4d90600090a15b9392505050565b606481565b61200181565b674563918244f4000081565b60015481565b600181565b61100181565b606181565b600881565b61200081565b6001600160a01b031660009081526002602052604090205460ff1690565b61100581565b600281565b601081565b61100881565b600b81565b600981565b6000805460ff166108b557600260208190527fe57bda0a954a7c7381b17b2c763e646ba2c60f67292d287ba583603e2c1c41668054600160ff19918216811790925561100560009081527fe25235fc0de9d7165652bef0846fefda506174abb9a190f03d0f7bcc6146dbce80548316841790559282558254161790555b3360009081526002602052604090205460ff166109035760405162461bcd60e51b815260040180806020018281038252602b815260200180610e10602b913960400191505060405180910390fd5b60004783106109125747610914565b825b9050670de0b6b3a76400008111156107105750604051670de0b6b3a7640000906001600160a01b03851690600090839082818181858883f1935050505015801561074c573d6000803e3d6000fd5b61100781565b61100681565b60005460ff1681565b600081565b33611007146109bc5760405162461bcd60e51b815260040180806020018281038252602e815260200180610e6a602e913960400191505060405180910390fd5b610a1e84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600b81526a30b23227b832b930ba37b960a91b60208201529150610d289050565b15610af657606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060149091149050610aa15760405162461bcd60e51b815260040180806020018281038252602c815260200180610e98602c913960400191505060405180910390fd5b60148101516001600160a01b038116600081815260026020526040808220805460ff19166001179055517f9870d7fe5d112134c55844951dedf365363006d9c588db07c4c85af6322a06199190a25050610c6d565b610b5b84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600e81526d3232b632ba32a7b832b930ba37b960911b60208201529150610d289050565b15610c3057606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060149091149050610bde5760405162461bcd60e51b815260040180806020018281038252602f815260200180610e3b602f913960400191505060405180910390fd5b60148101516001600160a01b038116600081815260026020526040808220805460ff19169055517fb40992a19dba61ea600e87fce607102bf5908dc89076217b6ca6ae195224f7029190a25050610c6d565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b61100281565b61100381565b61100081565b670de0b6b3a764000081565b600381565b61100481565b6000816040516020018082805190602001908083835b60208310610d5d5780518252601f199092019160209182019101610d3e565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310610dcb5780518252601f199092019160209182019101610dac565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052805190602001201490509291505056fe6f6e6c79206f70657261746f7220697320616c6c6f77656420746f2063616c6c20746865206d6574686f646c656e677468206f662076616c756520666f722064656c6574654f70657261746f722073686f756c64206265203230746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662076616c756520666f72206164644f70657261746f722073686f756c64206265203230a164736f6c6343000604000a", - }, - }, - } - - KeplerUpgrade[networkname.RialtoChainName] = &Upgrade{ - UpgradeName: "kepler", - Configs: []*UpgradeConfig{ - { - ContractAddr: ValidatorContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/ff75c61ecd457c1370327e136b38c7a0d63ca821", - Code: "6080604052600436106104a35760003560e01c806388b32f1111610260578063c6d3394511610144578063e40716a1116100c1578063f92eb86b11610085578063f92eb86b14610c02578063f9a2bbc714610c17578063fc3e590814610c2c578063fccc281314610c41578063fd4ad81f14610c56578063fd6a687914610c85576104aa565b8063e40716a114610b85578063ea321e4914610b9a578063eb57e20214610bba578063eda5868c14610bda578063f340fa0114610bef576104aa565b8063d86222d511610108578063d86222d514610b1c578063daacdb6614610b31578063dc927faf14610b46578063e086c7b114610b5b578063e1c7392a14610b70576104aa565b8063c6d3394514610abd578063c81b166214610ad2578063c8509d81146108b6578063ce910b0c14610ae7578063d68fb56a14610b07576104aa565b8063a5422d5c116101dd578063ad3c9da6116101a1578063ad3c9da614610a3c578063aef198a914610a5c578063b7ab4db514610a71578063b8cf4ef114610a93578063bf9f499514610666578063c466689d14610aa8576104aa565b8063a5422d5c146109c8578063a78abc16146109dd578063aaf5eb68146109f2578063ab51bb9614610a07578063ac43175114610a1c576104aa565b806396713da91161022457806396713da91461095f5780639dc09262146109745780639fe0f81614610989578063a0dc27581461099e578063a1a11bf5146109b3576104aa565b806388b32f11146108eb5780638a7beb01146109005780638b5ad0c9146109155780638d19a4101461092a5780639369d7de1461094a576104aa565b806351e80672116103875780636e47b482116103045780637942fd05116102c85780637942fd05146108775780637a84ca2a1461088c57806381650b62146108a1578063831d65d1146108b6578063853230aa1461086257806386249882146108d6576104aa565b80636e47b4821461080e57806370fd5bad14610823578063718a8aa81461083857806375d47a0a1461084d57806378dfed4a14610862576104aa565b80635de1e22c1161034b5780635de1e22c14610792578063603d86d31461065157806360eba4fe146107a757806362b72cf5146107c75780636969a25c146107dc576104aa565b806351e806721461071357806355614fcc14610728578063565c56b3146107485780635667515a146107685780635d77156c1461077d576104aa565b80633365af3a1161042057806343756e5c116103e457806343756e5c1461068857806345cf9daf1461069d578063493279b1146106b25780634bf6c882146106d45780634df6e0c3146106e95780635192c82c146106fe576104aa565b80633365af3a146105ee57806335409f7f1461060e5780633b071dcc1461062e5780633de0f0d8146106515780633dffc38714610666576104aa565b8063152ad3b811610467578063152ad3b8146105625780631ff1806914610584578063219f22d514610599578063300c3567146105ae578063321d398a146105ce576104aa565b806304c4fec6146104af57806307a56847146104c65780630bee7a67146104f15780630e2374a5146105135780631182b87514610535576104aa565b366104aa57005b600080fd5b3480156104bb57600080fd5b506104c4610c9a565b005b3480156104d257600080fd5b506104db610d0c565b6040516104e89190617692565b60405180910390f35b3480156104fd57600080fd5b50610506610d12565b6040516104e891906176bc565b34801561051f57600080fd5b50610528610d17565b6040516104e89190616a61565b34801561054157600080fd5b50610555610550366004616947565b610d1d565b6040516104e89190616bd8565b34801561056e57600080fd5b50610577610f55565b6040516104e89190616bcd565b34801561059057600080fd5b506104db610f5e565b3480156105a557600080fd5b50610506610f64565b3480156105ba57600080fd5b506104c46105c93660046167d1565b610f69565b3480156105da57600080fd5b506105776105e93660046168f4565b6112b0565b3480156105fa57600080fd5b506105776106093660046168f4565b61137f565b34801561061a57600080fd5b506104c46106293660046167aa565b611430565b34801561063a57600080fd5b50610643611589565b6040516104e8929190616ae3565b34801561065d57600080fd5b506104db611865565b34801561067257600080fd5b5061067b61186b565b6040516104e891906176cd565b34801561069457600080fd5b50610528611870565b3480156106a957600080fd5b506104db611876565b3480156106be57600080fd5b506106c761187c565b6040516104e89190617683565b3480156106e057600080fd5b5061067b611882565b3480156106f557600080fd5b50610643611887565b34801561070a57600080fd5b506104db611a05565b34801561071f57600080fd5b50610528611a0b565b34801561073457600080fd5b506105776107433660046167aa565b611a11565b34801561075457600080fd5b506104db6107633660046167aa565b611a46565b34801561077457600080fd5b5061067b611a97565b34801561078957600080fd5b50610506611a9c565b34801561079e57600080fd5b506104db611aa1565b3480156107b357600080fd5b506105556107c23660046168f4565b611aa7565b3480156107d357600080fd5b506104db611b4d565b3480156107e857600080fd5b506107fc6107f73660046168f4565b611b53565b6040516104e896959493929190616a8e565b34801561081a57600080fd5b50610528611bb7565b34801561082f57600080fd5b5061067b611bbd565b34801561084457600080fd5b5061067b611bc2565b34801561085957600080fd5b50610528611bc7565b34801561086e57600080fd5b506104db611bcd565b34801561088357600080fd5b5061067b611bd3565b34801561089857600080fd5b506104db611bd8565b3480156108ad57600080fd5b50610506611bde565b3480156108c257600080fd5b506104c46108d1366004616947565b611be3565b3480156108e257600080fd5b506104db611c44565b3480156108f757600080fd5b506104db611c4a565b34801561090c57600080fd5b50610577611c50565b34801561092157600080fd5b506104db611c59565b34801561093657600080fd5b506104db6109453660046167aa565b611c5f565b34801561095657600080fd5b506104c4611c9f565b34801561096b57600080fd5b5061067b611db3565b34801561098057600080fd5b50610528611db8565b34801561099557600080fd5b506104db611dbe565b3480156109aa57600080fd5b506104db611dc3565b3480156109bf57600080fd5b50610528611dc8565b3480156109d457600080fd5b50610555611dce565b3480156109e957600080fd5b50610577611ded565b3480156109fe57600080fd5b506104db611df6565b348015610a1357600080fd5b50610506611a97565b348015610a2857600080fd5b506104c4610a37366004616898565b611dff565b348015610a4857600080fd5b506104db610a573660046167aa565b61269d565b348015610a6857600080fd5b506104db6126af565b348015610a7d57600080fd5b50610a866126bc565b6040516104e89190616ad0565b348015610a9f57600080fd5b506104db6127a8565b348015610ab457600080fd5b506104db6127ad565b348015610ac957600080fd5b506104db611bbd565b348015610ade57600080fd5b506105286127b3565b348015610af357600080fd5b50610555610b023660046168f4565b6127b9565b348015610b1357600080fd5b506104db6127c6565b348015610b2857600080fd5b506104db612805565b348015610b3d57600080fd5b506104db612811565b348015610b5257600080fd5b50610528612817565b348015610b6757600080fd5b506104db610d12565b348015610b7c57600080fd5b506104c461281d565b348015610b9157600080fd5b506104db6129cc565b348015610ba657600080fd5b50610577610bb5366004616859565b6129d2565b348015610bc657600080fd5b506104c4610bd53660046167aa565b612b58565b348015610be657600080fd5b50610506612c60565b6104c4610bfd3660046167aa565b612c65565b348015610c0e57600080fd5b506104db612fcd565b348015610c2357600080fd5b50610528612fd3565b348015610c3857600080fd5b5061067b611dbe565b348015610c4d57600080fd5b50610528612fd9565b348015610c6257600080fd5b50610c76610c713660046168f4565b612fdf565b6040516104e89392919061769b565b348015610c9157600080fd5b506105286130a1565b6000610ca533611c5f565b9050600b8181548110610cb457fe5b600091825260209091206001601690920201015460ff16610cf05760405162461bcd60e51b8152600401610ce79061733d565b60405180910390fd5b6000610cfa6127c6565b9050610d073383836130a7565b505050565b60095481565b606481565b61200181565b60005460609060ff16610d425760405162461bcd60e51b8152600401610ce790616d97565b3361200014610d635760405162461bcd60e51b8152600401610ce7906174d6565b600b54610e2157610d72616496565b60015460005b81811015610e1d57600b805460018101825560009190915283516000805160206178f083398151915260169092029182019081556020808601516000805160206179308339815191528401805460ff1916911515919091179055604086015180518794610df9936000805160206179108339815191529091019201906164c5565b506060820151610e0f906003830190601361653f565b505050806001019050610d78565b5050505b610e2961656c565b6000610e6a85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061329392505050565b9150915080610e8657610e7d606461344f565b92505050610f4e565b815160009060ff16610eab57610ea4836020015184604001516134b0565b9050610f1a565b825160ff1660011415610f1657826020015151600114610ef0576000805160206178d0833981519152604051610ee0906171f6565b60405180910390a1506067610f11565b610ea48360200151600081518110610f0457fe5b6020026020010151614104565b610f1a565b5060655b63ffffffff8116610f3f5750506040805160008152602081019091529150610f4e9050565b610f488161344f565b93505050505b9392505050565b60075460ff1681565b60035481565b606881565b334114610f885760405162461bcd60e51b8152600401610ce790617525565b6010544311610fa95760405162461bcd60e51b8152600401610ce790616ef3565b3a15610fc75760405162461bcd60e51b8152600401610ce79061727c565b60005460ff16610fe95760405162461bcd60e51b8152600401610ce790616d97565b60006110023168056bc75e2d63100000811115611020576110198168056bc75e2d6310000063ffffffff61427b16565b9150611027565b50506112a6565b6040516213929d60e11b8152611002906227253a9061104c9030908690600401616a75565b602060405180830381600087803b15801561106657600080fd5b505af115801561107a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061109e919061690c565b9150816110ac5750506112a6565b6000805b848110156110da578585828181106110c457fe5b90506020020135820191508060010190506110b0565b50806110e8575050506112a6565b6000806000805b8981101561129e578489898381811061110457fe5b9050602002013588028161111457fe5b0493508a8a8281811061112357fe5b905060200201602081019061113891906167aa565b6001600160a01b0381166000908152600460205260409020549093509150811561125457600060018084038154811061116d57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff16156111da57836001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d85866040516111cd9190617692565b60405180910390a261124e565b6003546111ed908663ffffffff6142bd16565b6003908155810154611205908663ffffffff6142bd16565b60038201556040516001600160a01b038516907fcb0aad6cf9cd03bdf6137e359f541c42f38b39f007cae8e89e88aa7d8c6617b290611245908890617692565b60405180910390a25b50611296565b826001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d858560405161128d9190617692565b60405180910390a25b6001016110ef565b505050505050505b5050436010555050565b60015460009082106112c45750600061137a565b60006001600160a01b0316600183815481106112dc57fe5b60009182526020909120600490910201546001600160a01b0316148061130c5750600854158061130c5750600a54155b8061131b575060085460095410155b8061132c575061132a8261137f565b155b8061135557506000600b838154811061134157fe5b906000526020600020906016020160000154115b80611369575060016113656126bc565b5111155b156113765750600061137a565b5060015b919050565b60015460009082106113935750600061137a565b600b5482106113d057600182815481106113a957fe5b9060005260206000209060040201600201601c9054906101000a900460ff1615905061137a565b600182815481106113dd57fe5b9060005260206000209060040201600201601c9054906101000a900460ff1615801561142a5750600b828154811061141157fe5b600091825260209091206001601690920201015460ff16155b92915050565b33611001146114515760405162461bcd60e51b8152600401610ce79061763a565b600b5461150f57611460616496565b60015460005b8181101561150b57600b805460018101825560009190915283516000805160206178f083398151915260169092029182019081556020808601516000805160206179308339815191528401805460ff19169115159190911790556040860151805187946114e7936000805160206179108339815191529091019201906164c5565b5060608201516114fd906003830190601361653f565b505050806001019050611466565b5050505b6001600160a01b038116600090815260046020526040902054806115335750611586565b6001810390506000600b828154811061154857fe5b600091825260209091206001601690920201015460ff16905061156b83836142e2565b80156115745750805b15610d07576009805460001901905550505b50565b60015460609081906000805b828110156115dc57600181815481106115aa57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166115d4576001909101905b600101611595565b50606081604051908082528060200260200182016040528015611609578160200160208202803683370190505b50905060608260405190808252806020026020018201604052801561164257816020015b606081526020019060019003908161162d5790505b50600b54600094509091508414156117bd5760005b848110156117b7576001818154811061166c57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166117af576001818154811061169c57fe5b600091825260209091206004909102015483516001600160a01b03909116908490869081106116c757fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600b81815481106116f457fe5b600091825260209182902060026016909202018101805460408051601f60001961010060018616150201909316949094049182018590048502840185019052808352919290919083018282801561178c5780601f106117615761010080835404028352916020019161178c565b820191906000526020600020905b81548152906001019060200180831161176f57829003601f168201915b505050505082858151811061179d57fe5b60209081029190910101526001909301925b600101611657565b50611859565b60005b8481101561185757600181815481106117d557fe5b9060005260206000209060040201600201601c9054906101000a900460ff1661184f576001818154811061180557fe5b600091825260209091206004909102015483516001600160a01b039091169084908690811061183057fe5b6001600160a01b03909216602092830291909101909101526001909301925b6001016117c0565b505b909450925050505b9091565b61271081565b600181565b61100181565b60085481565b6102ca81565b600881565b600e54600c5460609182918061189b575060155b60606118a56126bc565b905060606118b282614695565b9050828251116118c9579094509250611861915050565b838383510310156118db578282510393505b83156119115760c843046118f783838388880360008a8a614803565b61190f8383838888038989038a8b8b8b510301614803565b505b60608360405190808252806020026020018201604052801561193d578160200160208202803683370190505b50905060608460405190808252806020026020018201604052801561197657816020015b60608152602001906001900390816119615790505b50905060005b858110156119f75784818151811061199057fe5b60200260200101518382815181106119a457fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508381815181106119d057fe5b60200260200101518282815181106119e457fe5b602090810291909101015260010161197c565b509096509450505050509091565b60065481565b61200081565b6001600160a01b03811660009081526004602052604081205480611a3957600091505061137a565b60001901610f4e8161137f565b6001600160a01b03811660009081526004602052604081205480611a6e57600091505061137a565b600180820381548110611a7d57fe5b906000526020600020906004020160030154915050919050565b600081565b606781565b600f5481565b60128181548110611ab457fe5b600091825260209182902001805460408051601f6002600019610100600187161502019094169390930492830185900485028101850190915281815293509091830182828015611b455780601f10611b1a57610100808354040283529160200191611b45565b820191906000526020600020905b815481529060010190602001808311611b2857829003601f168201915b505050505081565b60105481565b60018181548110611b6057fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b601081565b61100881565b6103e881565b600b81565b600c5481565b606681565b3361200014611c045760405162461bcd60e51b8152600401610ce7906174d6565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051611c37939291906176db565b60405180910390a1505050565b60025481565b60115481565b60145460ff1681565b600a5481565b6001600160a01b03811660009081526004602052604081205480611c955760405162461bcd60e51b8152600401610ce79061745e565b6000190192915050565b600b54611d5d57611cae616496565b60015460005b81811015611d5957600b805460018101825560009190915283516000805160206178f083398151915260169092029182019081556020808601516000805160206179308339815191528401805460ff1916911515919091179055604086015180518794611d35936000805160206179108339815191529091019201906164c5565b506060820151611d4b906003830190601361653f565b505050806001019050611cb4565b5050505b600854611d6a5760036008555b600a54611d77576002600a555b6000611d8233611c5f565b9050611d8d816112b0565b611da95760405162461bcd60e51b8152600401610ce7906171b3565b611586338261495a565b600981565b61100781565b600381565b60c881565b61100681565b604051806101e001604052806101ab81526020016177256101ab913981565b60005460ff1681565b6402540be40081565b60005460ff16611e215760405162461bcd60e51b8152600401610ce790616d97565b3361100714611e425760405162461bcd60e51b8152600401610ce7906172aa565b611eac84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b602082015291506149f29050565b15611f495760208114611ed15760405162461bcd60e51b8152600401610ce790617418565b604080516020601f8401819004810282018101909252828152600091611f0f91858580838501838280828437600092019190915250614a4b92505050565b905060648110158015611f255750620186a08111155b611f415760405162461bcd60e51b8152600401610ce7906170a3565b60025561265a565b611fa984848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260098152686275726e526174696f60b81b602082015291506149f29050565b156120385760208114611fce5760405162461bcd60e51b8152600401610ce790616c1d565b604080516020601f840181900481028201810190925282815260009161200c91858580838501838280828437600092019190915250614a4b92505050565b90506127108111156120305760405162461bcd60e51b8152600401610ce790616f35565b60065561265a565b6120a284848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260138152726d61784e756d4f664d61696e7461696e696e6760681b602082015291506149f29050565b1561213c57602081146120c75760405162461bcd60e51b8152600401610ce790616c54565b604080516020601f840181900481028201810190925282815260009161210591858580838501838280828437600092019190915250614a4b92505050565b600c5490915080612114575060155b8082106121335760405162461bcd60e51b8152600401610ce790616fa8565b5060085561265a565b6121a584848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61696e7461696e536c6173685363616c6560701b602082015291506149f29050565b1561223e57602081146121ca5760405162461bcd60e51b8152600401610ce790616d1d565b604080516020601f840181900481028201810190925282815260009161220891858580838501838280828437600092019190915250614a4b92505050565b905060008111801561221a5750600a81105b6122365760405162461bcd60e51b8152600401610ce7906175b6565b600a5561265a565b6122b284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601981527f6d61784e756d4f66576f726b696e6743616e6469646174657300000000000000602082015291506149f29050565b1561234157602081146122d75760405162461bcd60e51b8152600401610ce790616cd1565b604080516020601f840181900481028201810190925282815260009161231591858580838501838280828437600092019190915250614a4b92505050565b9050600d548111156123395760405162461bcd60e51b8152600401610ce790617119565b600e5561265a565b6123aa84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61784e756d4f6643616e6469646174657360701b602082015291506149f29050565b1561242c57602081146123cf5760405162461bcd60e51b8152600401610ce7906172f8565b604080516020601f840181900481028201810190925282815260009161240d91858580838501838280828437600092019190915250614a4b92505050565b600d819055600e5490915081101561242657600d54600e555b5061265a565b61249084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c6e756d4f66436162696e65747360981b602082015291506149f29050565b1561253e57602081146124b55760405162461bcd60e51b8152600401610ce790616d62565b604080516020601f84018190048102820181019092528281526000916124f391858580838501838280828437600092019190915250614a4b92505050565b9050600081116125155760405162461bcd60e51b8152600401610ce790616e05565b60648111156125365760405162461bcd60e51b8152600401610ce790616e4d565b600c5561265a565b6125a684848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601181527073797374656d526577617264526174696f60781b602082015291506149f29050565b1561264257602081146125cb5760405162461bcd60e51b8152600401610ce790617572565b604080516020601f840181900481028201810190925282815260009161260991858580838501838280828437600092019190915250614a4b92505050565b90506001811015801561261e57506127108111155b61263a5760405162461bcd60e51b8152600401610ce790617050565b600f5561265a565b60405162461bcd60e51b8152600401610ce790617613565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a8484848460405161268f9493929190616beb565b60405180910390a150505050565b60046020526000908152604090205481565b68056bc75e2d6310000081565b6001546060906000805b828110156126eb576126d78161137f565b156126e3578160010191505b6001016126c6565b50606081604051908082528060200260200182016040528015612718578160200160208202803683370190505b5090506000915060005b8381101561279f576127338161137f565b15612797576001818154811061274557fe5b600091825260209091206004909102015482516001600160a01b039091169083908590811061277057fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508260010192505b600101612722565b50925050505b90565b601581565b61027181565b61100281565b60138181548110611ab457fe5b60006127d06126bc565b519050600080600c54116127e55760156127e9565b600c545b9050808211156127f7578091505b8161280157600191505b5090565b67016345785d8a000081565b60055481565b61100381565b60005460ff16156128405760405162461bcd60e51b8152600401610ce7906173aa565b61284861656c565b600061286e604051806101e001604052806101ab81526020016177256101ab9139613293565b915091508061288f5760405162461bcd60e51b8152600401610ce790617495565b60005b8260200151518110156129b4576001836020015182815181106128b157fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a09093015160039093019290925591860151805191850193918590811061298757fe5b602090810291909101810151516001600160a01b0316825281019190915260400160002055600101612892565b50506103e8600255506000805460ff19166001179055565b600d5481565b601354600090815b81811015612adb57612ac385858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050601380549092508591508110612a2b57fe5b600091825260209182902001805460408051601f6002600019610100600187161502019094169390930492830185900485028101850190915281815292830182828015612ab95780601f10612a8e57610100808354040283529160200191612ab9565b820191906000526020600020905b815481529060010190602001808311612a9c57829003601f168201915b5050505050614a50565b15612ad35760019250505061142a565b6001016129da565b5060125460005b81811015612b4c57612b3386868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050601280549092508591508110612a2b57fe5b15612b44576001935050505061142a565b600101612ae2565b50600095945050505050565b3361100114612b795760405162461bcd60e51b8152600401610ce79061763a565b600b54612c3757612b88616496565b60015460005b81811015612c3357600b805460018101825560009190915283516000805160206178f083398151915260169092029182019081556020808601516000805160206179308339815191528401805460ff1916911515919091179055604086015180518794612c0f936000805160206179108339815191529091019201906164c5565b506060820151612c25906003830190601361653f565b505050806001019050612b8e565b5050505b6000612c4282614ab4565b9050612c4d816112b0565b15612c5c57612c5c828261495a565b5050565b606581565b334114612c845760405162461bcd60e51b8152600401610ce790617525565b60005460ff16612ca65760405162461bcd60e51b8152600401610ce790616d97565b60003411612cc65760405162461bcd60e51b8152600401610ce7906170ea565b3a15612ce45760405162461bcd60e51b8152600401610ce79061727c565b6001600160a01b03811660009081526004602052604090205460145434919060ff16612d2457610271600f556103e86006556014805460ff191660011790555b6000612d4d612710612d41600f5486614c5790919063ffffffff16565b9063ffffffff614c9116565b90508015612dbd576040516110029082156108fc029083906000818181858888f19350505050158015612d84573d6000803e3d6000fd5b507f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d81604051612db49190617692565b60405180910390a15b600083118015612dcf57506000600654115b15612e75576000612df1612710612d4160065487614c5790919063ffffffff16565b90508015612e735760405161dead9082156108fc029083906000818181858888f19350505050158015612e28573d6000803e3d6000fd5b507f627059660ea01c4733a328effb2294d2f86905bf806da763a89cee254de8bee581604051612e589190617692565b60405180910390a1612e70848263ffffffff61427b16565b93505b505b612e85838263ffffffff61427b16565b92508115612f85576000600180840381548110612e9e57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff1615612f0b57846001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b485604051612efe9190617692565b60405180910390a2612f7f565b600354612f1e908563ffffffff6142bd16565b6003908155810154612f36908563ffffffff6142bd16565b60038201556040516001600160a01b038616907f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc05590612f76908790617692565b60405180910390a25b50612fc7565b836001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b484604051612fbe9190617692565b60405180910390a25b50505050565b600e5481565b61100081565b61dead81565b600b8181548110612fec57fe5b6000918252602091829020601691909102018054600180830154600280850180546040805161010096831615969096026000190190911692909204601f810188900488028501880190925281845293965060ff909116949192918301828280156130975780601f1061306c57610100808354040283529160200191613097565b820191906000526020600020905b81548152906001019060200180831161307a57829003601f168201915b5050505050905083565b61100481565b6000600a54600014806130b8575081155b806130c35750600954155b156130d057506000610f4e565b6009600081546001900391905081905550600061311b600a54612d4185612d41600b89815481106130fd57fe5b6000918252602090912060169091020154439063ffffffff61427b16565b90506000600b858154811061312c57fe5b906000526020600020906016020160010160006101000a81548160ff0219169083151502179055506000806110016001600160a01b0316638256ace66040518163ffffffff1660e01b8152600401604080518083038186803b15801561319157600080fd5b505afa1580156131a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131c99190616924565b9150915060009350808310613243576131e287876142e2565b506040516305bfb49960e41b815261100190635bfb499090613208908a90600401616a61565b600060405180830381600087803b15801561322257600080fd5b505af1158015613236573d6000803e3d6000fd5b5050505060019350613255565b8183106132555761325387614ab4565b505b6040516001600160a01b038816907fb9d38178dc641ff1817967a63c9078cbcd955a9f1fcd75e0e3636de615d44d3b90600090a25050509392505050565b61329b61656c565b60006132a561656c565b6132ad616590565b6132be6132b986614cd3565b614cf8565b90506000805b6132cd83614d42565b1561344157806132f2576132e86132e384614d63565b614db1565b60ff168452613439565b806001141561343457606061330e61330985614d63565b614e31565b9050805160405190808252806020026020018201604052801561334b57816020015b6133386165b0565b8152602001906001900390816133305790505b508560200181905250805160405190808252806020026020018201604052801561338957816020015b60608152602001906001900390816133745790505b50604086015260005b8151811015613429576133a36165b0565b606060006133c38585815181106133b657fe5b6020026020010151614f02565b925092509250806133e3578860009a509a5050505050505050505061344a565b82896020015185815181106133f457fe5b6020026020010181905250818960400151858151811061341057fe5b6020026020010181905250505050806001019050613392565b506001925050613439565b613441565b6001016132c4565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b606081526020019060019003908161346957905050905061348f8363ffffffff1661501c565b8160008151811061349c57fe5b6020026020010181905250610f4e8161502f565b60006064835111156134e7576000805160206178d08339815191526040516134d790616eaa565b60405180910390a150606661142a565b60005b83518110156135855760005b8181101561357c5784818151811061350a57fe5b6020026020010151600001516001600160a01b031685838151811061352b57fe5b6020026020010151600001516001600160a01b03161415613574576000805160206178d083398151915260405161356190617005565b60405180910390a160669250505061142a565b6001016134f6565b506001016134ea565b5060608061359385856150b9565b60015491935091506000908190815b818110156136185767016345785d8a0000600182815481106135c057fe5b906000526020600020906004020160030154106135e257836001019350613610565b6000600182815481106135f157fe5b9060005260206000209060040201600301541115613610578260010192505b6001016135a2565b50606083604051908082528060200260200182016040528015613645578160200160208202803683370190505b509050606084604051908082528060200260200182016040528015613674578160200160208202803683370190505b5090506060856040519080825280602002602001820160405280156136a3578160200160208202803683370190505b5090506060866040519080825280602002602001820160405280156136d2578160200160208202803683370190505b5090506000606087604051908082528060200260200182016040528015613703578160200160208202803683370190505b509050606088604051908082528060200260200182016040528015613732578160200160208202803683370190505b509050600099506000985060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b15801561377a57600080fd5b505afa15801561378e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137b2919061690c565b905067016345785d8a00008111156137fd576000805160206178d08339815191526040516137df90617369565b60405180910390a160689d505050505050505050505050505061142a565b60005b89811015613a6e5767016345785d8a00006001828154811061381e57fe5b906000526020600020906004020160030154106139a3576001818154811061384257fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316898d8151811061387357fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be400600183815481106138a857fe5b906000526020600020906004020160030154816138c157fe5b06600183815481106138cf57fe5b9060005260206000209060040201600301540390506138f7838261427b90919063ffffffff16565b898e8151811061390357fe5b6020026020010181815250506001828154811061391c57fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316878e8151811061394d57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081888e8151811061397a57fe5b6020908102919091010152613995868263ffffffff6142bd16565b95508c6001019c5050613a66565b6000600182815481106139b257fe5b9060005260206000209060040201600301541115613a6657600181815481106139d757fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316848c81518110613a0857fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060018181548110613a3557fe5b906000526020600020906004020160030154838c81518110613a5357fe5b6020026020010181815250508a6001019a505b600101613800565b5060008415613ce4576002546040516303702b2960e51b815261100491636e056520918891613aa8918e918e918d91420190600401616b53565b6020604051808303818588803b158015613ac157600080fd5b505af193505050508015613af2575060408051601f3d908101601f19168201909252613aef91810190616839565b60015b613c69576040516000815260443d1015613b0e57506000613ba9565b60046000803e60005160e01c6308c379a08114613b2f576000915050613ba9565b60043d036004833e81513d60248201116001600160401b0382111715613b5a57600092505050613ba9565b80830180516001600160401b03811115613b7b576000945050505050613ba9565b8060208301013d8601811115613b9957600095505050505050613ba9565b601f01601f191660405250925050505b80613bb45750613bf6565b60019150857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf28082604051613be89190616bd8565b60405180910390a250613c64565b3d808015613c20576040519150601f19603f3d011682016040523d82523d6000602084013e613c25565b606091505b5060019150857fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a4582604051613c5a9190616bd8565b60405180910390a2505b613ce4565b8015613cab577fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b7086604051613c9e9190617692565b60405180910390a1613ce2565b857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280604051613cd990616c9a565b60405180910390a25b505b8015613e9a5760005b8751811015613e98576000888281518110613d0457fe5b60200260200101519050600060018281548110613d1d57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc9185908110613d4e57fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f1935050505090508015613e0a5760018281548110613d8f57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d9185908110613dde57fe5b906000526020600020906004020160030154604051613dfd9190617692565b60405180910390a2613e8e565b60018281548110613e1757fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d9185908110613e6657fe5b906000526020600020906004020160030154604051613e859190617692565b60405180910390a25b5050600101613ced565b505b835115613fe45760005b8451811015613fe2576000858281518110613ebb57fe5b60200260200101516001600160a01b03166108fc868481518110613edb57fe5b60200260200101519081150290604051600060405180830381858888f1935050505090508015613f7157858281518110613f1157fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d868481518110613f4f57fe5b6020026020010151604051613f649190617692565b60405180910390a2613fd9565b858281518110613f7d57fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d868481518110613fbb57fe5b6020026020010151604051613fd09190617692565b60405180910390a25b50600101613ea4565b505b5050505050505050505050506000471115614060577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d476040516140289190617692565b60405180910390a1604051611002904780156108fc02916000818181858888f1935050505015801561405e573d6000803e3d6000fd5b505b6000600381905560055581511561407b5761407b82826152f2565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156140b857600080fd5b505af11580156140cc573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a1506000949350505050565b80516001600160a01b0316600090815260046020526040812054801580614155575060018082038154811061413557fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b1561419b5782516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a2600091505061137a565b6001546005546000198201118015906141f15784516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a26000935050505061137a565b60058054600190810190915580548190600019860190811061420f57fe5b6000918252602082206002600490920201018054921515600160e01b0260ff60e01b199093169290921790915585516040516001600160a01b03909116917ff226e7d8f547ff903d9d419cf5f54e0d7d07efa9584135a53a057c5f1f27f49a91a2506000949350505050565b6000610f4e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250615aac565b600082820183811015610f4e5760405162461bcd60e51b8152600401610ce790616dce565b600080600183815481106142f257fe5b9060005260206000209060040201600301549050600060018080549050039050600161431c6126bc565b51116143515760006001858154811061433157fe5b90600052602060002090600402016003018190555060009250505061142a565b846001600160a01b03167f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a708360405161438a9190617692565b60405180910390a26001600160a01b038516600090815260046020526040812055835b6001546000190181101561457757600181600101815481106143cb57fe5b9060005260206000209060040201600182815481106143e657fe5b60009182526020909120825460049092020180546001600160a01b03199081166001600160a01b0393841617825560018085015481840180548416918616919091179055600280860180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b19909416939093179055600392830154920191909155600b8054909183019081106144a757fe5b9060005260206000209060160201600b82815481106144c257fe5b600091825260209091208254601690920201908155600180830154818301805460ff909216151560ff19909216919091179055600280840180546145199383860193908216156101000260001901909116046165e5565b5061452c6003828101908401601361665a565b5090505080600101600460006001848154811061454557fe5b600091825260208083206004909202909101546001600160a01b031683528201929092526040019020556001016143ad565b50600180548061458357fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b8054806145d657fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906146086002830182616684565b6146166003830160006166c8565b50509055600081838161462557fe5b04905080156146895760015460005b8181101561468657826001828154811061464a57fe5b906000526020600020906004020160030154016001828154811061466a57fe5b6000918252602090912060036004909202010155600101614634565b50505b50600195945050505050565b6001548151604080518281526020808402820101909152606092919083908280156146d457816020015b60608152602001906001900390816146bf5790505b50600b5490915083146146eb57925061137a915050565b60005b828110156147fa57600b60016004600089858151811061470a57fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054038154811061473e57fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156147d65780601f106147ab576101008083540402835291602001916147d6565b820191906000526020600020905b8154815290600101906020018083116147b957829003601f168201915b50505050508282815181106147e757fe5b60209081029190910101526001016146ee565b50949350505050565b60005b828110156149505760008287838801604051602001614826929190616a53565b6040516020818303038152906040528051906020012060001c8161484657fe5b06905080850182870114614947576000898388018151811061486457fe5b602002602001015190506060898489018151811061487e57fe5b602002602001015190508a8388018151811061489657fe5b60200260200101518b858a01815181106148ac57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050818b848901815181106148db57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050898388018151811061490957fe5b60200260200101518a858a018151811061491f57fe5b6020026020010181905250808a8489018151811061493957fe5b602002602001018190525050505b50600101614806565b5050505050505050565b600980546001908101909155600b80548390811061497457fe5b906000526020600020906016020160010160006101000a81548160ff02191690831515021790555043600b82815481106149aa57fe5b600091825260208220601690910201919091556040516001600160a01b038416917ff62981a567ec3cec866c6fa93c55bcdf841d6292d18b8d522ececa769375d82d91a25050565b600081604051602001614a059190616a37565b6040516020818303038152906040528051906020012083604051602001614a2c9190616a37565b6040516020818303038152906040528051906020012014905092915050565b015190565b815181516000916001918114808314614a6c5760009250614aaa565b600160208701838101602088015b600284838510011415614aa5578051835114614a995760009650600093505b60209283019201614a7a565b505050505b5090949350505050565b6001600160a01b03811660009081526004602052604081205480614add5750600019905061137a565b600181039050600060018281548110614af257fe5b9060005260206000209060040201600301549050600060018381548110614b1557fe5b6000918252602090912060036004909202010155600154604051600019909101906001600160a01b038616907f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d90614b6e908590617692565b60405180910390a280614b865782935050505061137a565b6000818381614b9157fe5b0490508015614c4d5760005b84811015614bef578160018281548110614bb357fe5b9060005260206000209060040201600301540160018281548110614bd357fe5b6000918252602090912060036004909202010155600101614b9d565b50600180549085015b81811015614c4a578260018281548110614c0e57fe5b9060005260206000209060040201600301540160018281548110614c2e57fe5b6000918252602090912060036004909202010155600101614bf8565b50505b5091949350505050565b600082614c665750600061142a565b82820282848281614c7357fe5b0414610f4e5760405162461bcd60e51b8152600401610ce79061723b565b6000610f4e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250615ad8565b614cdb6166d7565b506040805180820190915281518152602082810190820152919050565b614d00616590565b614d0982615b0f565b614d1257600080fd5b6000614d218360200151615b49565b60208085015160408051808201909152868152920190820152915050919050565b6000614d4c6166d7565b505080518051602091820151919092015191011190565b614d6b6166d7565b614d7482614d42565b614d7d57600080fd5b60208201516000614d8d82615bac565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590614dc657508151602110155b614dcf57600080fd5b6000614dde8360200151615b49565b90508083600001511015614e045760405162461bcd60e51b8152600401610ce7906173e1565b8251602080850151830180519284900392918310156147fa57506020919091036101000a90049392505050565b6060614e3c82615b0f565b614e4557600080fd5b6000614e5083615c8d565b9050606081604051908082528060200260200182016040528015614e8e57816020015b614e7b6166d7565b815260200190600190039081614e735790505b5090506000614ea08560200151615b49565b60208601510190506000805b84811015614ef757614ebd83615bac565b9150604051806040016040528083815260200184815250848281518110614ee057fe5b602090810291909101015291810191600101614eac565b509195945050505050565b614f0a6165b0565b60606000614f166165b0565b6060614f20616590565b614f2987614cf8565b90506000805b614f3883614d42565b1561500d5780614f6357614f53614f4e84614d63565b615ce9565b6001600160a01b03168552615005565b8060011415614f8b57614f78614f4e84614d63565b6001600160a01b03166020860152615005565b8060021415614fb357614fa0614f4e84614d63565b6001600160a01b03166040860152615005565b8060031415614fdf57614fc86132e384614d63565b6001600160401b0316606086015260019150615005565b806004141561500057614ff9614ff484614d63565b615d03565b9350615005565b61500d565b600101614f2f565b50929791965091945092505050565b606061142a61502a83615d73565b615e59565b6060815160001415615050575060408051600081526020810190915261137a565b60608260008151811061505f57fe5b602002602001015190506000600190505b83518110156150a0576150968285838151811061508957fe5b6020026020010151615eab565b9150600101615070565b50610f4e6150b3825160c060ff16615f28565b82615eab565b6060806000808080806150ca6127c6565b6001549091505b80156151d857600181039250600b83815481106150ea57fe5b600091825260209091206001601690920201015460ff1661510a576151cf565b6001838154811061511757fe5b60009182526020909120600490910201546001600160a01b0316945061513e8584846130a7565b9350831580615151575060018a51038610155b1561515b576151cf565b60005b8a518110156151cd57856001600160a01b03168b828151811061517d57fe5b6020026020010151600001516001600160a01b031614156151c55760018b82815181106151a657fe5b60209081029190910101519015156080909101526001909601956151cd565b60010161515e565b505b600019016150d1565b508489510360405190808252806020026020018201604052801561521657816020015b6152036165b0565b8152602001906001900390816151fb5790505b5096508489510360405190808252806020026020018201604052801561525057816020015b606081526020019060019003908161523b5790505b5095506000915060005b89518110156152e45789818151811061526f57fe5b6020026020010151608001516152dc5789818151811061528b57fe5b602002602001015188848151811061529f57fe5b60200260200101819052508881815181106152b657fe5b60200260200101518784815181106152ca57fe5b60200260200101819052508260010192505b60010161525a565b5050505050505b9250929050565b600154825160005b8281101561540f57600161530c6165b0565b6001838154811061531957fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b848110156153e3578781815181106153a957fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b031614156153db57600092506153e3565b600101615395565b5081156154055780516001600160a01b03166000908152600460205260408120555b50506001016152fa565b50808211156154ce57805b828110156154cc57600180548061542d57fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b80548061548057fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906154b26002830182616684565b6154c06003830160006166c8565b5050905560010161541a565b505b60008183106154dd57816154df565b825b905060005b8181101561584e576155918682815181106154fb57fe5b60200260200101516001838154811061551057fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a0820152615ffa565b6157455780600101600460008884815181106155a957fe5b6020026020010151600001516001600160a01b03166001600160a01b03168152602001908152602001600020819055508581815181106155e557fe5b6020026020010151600182815481106155fa57fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a09091015160039091015584518590829081106156b557fe5b6020026020010151600b82815481106156ca57fe5b906000526020600020906016020160020190805190602001906156ee9291906164c5565b506000600b82815481106156fe57fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b80548390811061572f57fe5b6000918252602090912060169091020155615846565b6157d685828151811061575457fe5b6020026020010151600b838154811061576957fe5b600091825260209182902060026016909202018101805460408051601f600019610100600186161502019093169490940491820185900485028401850190528083529192909190830182828015612ab95780601f10612a8e57610100808354040283529160200191612ab9565b615821578481815181106157e657fe5b6020026020010151600b82815481106157fb57fe5b9060005260206000209060160201600201908051906020019061581f9291906164c5565b505b60006001828154811061583057fe5b9060005260206000209060040201600301819055505b6001016154e4565b5082821115615a265761585f616496565b835b83811015615a235785818151811061587557fe5b60200260200101518260400181905250600187828151811061589357fe5b6020908102919091018101518254600181810185556000948552838520835160049093020180546001600160a01b039384166001600160a01b0319918216178255848601518284018054918616918316919091179055604080860151600284018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909a1692909616919091179290921696909617169190911790935560a090930151600390930192909255600b80549283018155909352845160169091026000805160206178f08339815191528101918255858301516000805160206179308339815191528201805491151560ff19909216919091179055928501518051869492936159c993600080516020617910833981519152019201906164c5565b5060608201516159df906003830190601361653f565b50505080600101600460008984815181106159f657fe5b602090810291909101810151516001600160a01b0316825281019190915260400160002055600101615861565b50505b615a2e61607b565b615a3661625d565b6000600981905560015493505b83811015615aa4576000600b8281548110615a5a57fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b805483908110615a8b57fe5b6000918252602090912060169091020155600101615a43565b505050505050565b60008184841115615ad05760405162461bcd60e51b8152600401610ce79190616bd8565b505050900390565b60008183615af95760405162461bcd60e51b8152600401610ce79190616bd8565b506000838581615b0557fe5b0495945050505050565b8051600090615b205750600061137a565b6020820151805160001a9060c0821015615b3f5760009250505061137a565b5060019392505050565b8051600090811a6080811015615b6357600091505061137a565b60b8811080615b7e575060c08110801590615b7e575060f881105b15615b8d57600191505061137a565b60c0811015615ba15760b51901905061137a565b60f51901905061137a565b80516000908190811a6080811015615bc75760019150615c86565b60b8811015615bdc57607e1981019150615c86565b60c0811015615c2d57600060b78203600186019550806020036101000a865104915060018101820193505080831015615c275760405162461bcd60e51b8152600401610ce790617188565b50615c86565b60f8811015615c425760be1981019150615c86565b600060f78203600186019550806020036101000a865104915060018101820193505080831015615c845760405162461bcd60e51b8152600401610ce790617188565b505b5092915050565b8051600090615c9e5750600061137a565b60008090506000615cb28460200151615b49565b602085015185519181019250015b80821015615ce057615cd182615bac565b82019150826001019250615cc0565b50909392505050565b8051600090601514615cfa57600080fd5b61142a82614db1565b8051606090615d1157600080fd5b6000615d208360200151615b49565b83516040805191839003808352601f19601f8201168301602001909152919250606090828015615d57576020820181803683370190505b50905060008160200190506147fa84876020015101828561644b565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416615db757506018615ddb565b6fffffffffffffffffffffffffffffffff198416615dd757506010615ddb565b5060005b6020811015615e1157818181518110615df057fe5b01602001516001600160f81b03191615615e0957615e11565b600101615ddb565b60008160200390506060816040519080825280601f01601f191660200182016040528015615e46576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015615e8b5750607f60f81b82600081518110615e7957fe5b01602001516001600160f81b03191611155b15615e9757508061137a565b61142a615ea98351608060ff16615f28565b835b6060806040519050835180825260208201818101602087015b81831015615edc578051835260209283019201615ec4565b50855184518101855292509050808201602086015b81831015615f09578051835260209283019201615ef1565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310615f525760405162461bcd60e51b8152600401610ce790616f80565b60408051600180825281830190925260609160208201818036833701905050905060378411615fac5782840160f81b81600081518110615f8e57fe5b60200101906001600160f81b031916908160001a905350905061142a565b6060615fb785615d73565b90508381510160370160f81b82600081518110615fd057fe5b60200101906001600160f81b031916908160001a905350615ff18282615eab565b95945050505050565b805182516000916001600160a01b039182169116148015616034575081602001516001600160a01b031683602001516001600160a01b0316145b8015616059575081604001516001600160a01b031683604001516001600160a01b0316145b8015610f4e5750506060908101519101516001600160401b0390811691161490565b601254601354808211156160c657805b828110156160c457601280548061609e57fe5b6001900381819060005260206000200160006160ba9190616684565b905560010161608b565b505b60008183106160d557816160d7565b825b905060005b818110156161ef57616194601282815481106160f457fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156161825780601f1061615757610100808354040283529160200191616182565b820191906000526020600020905b81548152906001019060200180831161616557829003601f168201915b505050505060138381548110612a2b57fe5b6161e757601381815481106161a557fe5b90600052602060002001601282815481106161bc57fe5b9060005260206000200190805460018160011615610100020316600290046161e59291906165e5565b505b6001016160dc565b5082821115610d0757825b82811015612fc75760126013828154811061621157fe5b60009182526020808320845460018181018755958552919093209290910180546162549493909201929091600261010092821615929092026000190116046165e5565b506001016161fa565b601354600b54808211156162a857805b828110156162a657601380548061628057fe5b60019003818190600052602060002001600061629c9190616684565b905560010161626d565b505b60008183106162b757816162b9565b825b905060005b818110156163d857616376601382815481106162d657fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156163645780601f1061633957610100808354040283529160200191616364565b820191906000526020600020905b81548152906001019060200180831161634757829003601f168201915b5050505050600b838154811061576957fe5b6163d057600b818154811061638757fe5b9060005260206000209060160201600201601382815481106163a557fe5b9060005260206000200190805460018160011615610100020316600290046163ce9291906165e5565b505b6001016162be565b5082821115610d0757825b82811015612fc7576013600b82815481106163fa57fe5b600091825260208083208454600180820187559585529190932060169290920290920160029081018054616442959390940193909260001990821615610100020116046165e5565b506001016163e3565b8061645557610d07565b5b60208110616475578251825260209283019290910190601f1901616456565b915181516020939093036101000a6000190180199091169216919091179052565b604051806080016040528060008152602001600015158152602001606081526020016164c06166f1565b905290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061650657805160ff1916838001178555616533565b82800160010185558215616533579182015b82811115616533578251825591602001919060010190616518565b50612801929150616710565b82601381019282156165335791602002820182811115616533578251825591602001919060010190616518565b6040518060600160405280600060ff16815260200160608152602001606081525090565b60405180604001604052806165a36166d7565b8152602001600081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061661e5780548555616533565b8280016001018555821561653357600052602060002091601f016020900482015b8281111561653357825482559160010191906001019061663f565b8260138101928215616533579182018281111561653357825482559160010191906001019061663f565b50805460018160011615610100020316600290046000825580601f106166aa5750611586565b601f0160209004906000526020600020908101906115869190616710565b50611586906013810190616710565b604051806040016040528060008152602001600081525090565b6040518061026001604052806013906020820280368337509192915050565b6127a591905b808211156128015760008155600101616716565b60008083601f84011261673b578182fd5b5081356001600160401b03811115616751578182fd5b60208301915083602080830285010111156152eb57600080fd5b60008083601f84011261677c578182fd5b5081356001600160401b03811115616792578182fd5b6020830191508360208285010111156152eb57600080fd5b6000602082840312156167bb578081fd5b81356001600160a01b0381168114610f4e578182fd5b600080600080604085870312156167e6578283fd5b84356001600160401b03808211156167fc578485fd5b6168088883890161672a565b90965094506020870135915080821115616820578384fd5b5061682d8782880161672a565b95989497509550505050565b60006020828403121561684a578081fd5b81518015158114610f4e578182fd5b6000806020838503121561686b578182fd5b82356001600160401b03811115616880578283fd5b61688c8582860161676b565b90969095509350505050565b600080600080604085870312156168ad578384fd5b84356001600160401b03808211156168c3578586fd5b6168cf8883890161676b565b909650945060208701359150808211156168e7578384fd5b5061682d8782880161676b565b600060208284031215616905578081fd5b5035919050565b60006020828403121561691d578081fd5b5051919050565b60008060408385031215616936578182fd5b505080516020909101519092909150565b60008060006040848603121561695b578283fd5b833560ff8116811461696b578384fd5b925060208401356001600160401b03811115616985578283fd5b6169918682870161676b565b9497909650939450505050565b6000815180845260208085019450808401835b838110156169d65781516001600160a01b0316875295820195908201906001016169b1565b509495945050505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008151808452616a238160208601602086016176f8565b601f01601f19169290920160200192915050565b60008251616a498184602087016176f8565b9190910192915050565b918252602082015260400190565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b03968716815294861660208601529290941660408401526001600160401b03166060830152911515608082015260a081019190915260c00190565b600060208252610f4e602083018461699e565b600060408252616af6604083018561699e565b602083820381850152818551808452828401915082838202850101838801865b83811015616b4457601f19878403018552616b32838351616a0b565b94860194925090850190600101616b16565b50909998505050505050505050565b600060808252616b66608083018761699e565b828103602084810191909152865180835287820192820190845b81811015616b9c57845183529383019391830191600101616b80565b50508481036040860152616bb0818861699e565b93505050506001600160401b038316606083015295945050505050565b901515815260200190565b600060208252610f4e6020830184616a0b565b600060408252616bff6040830186886169e1565b8281036020840152616c128185876169e1565b979650505050505050565b6020808252601c908201527f6c656e677468206f66206275726e526174696f206d69736d6174636800000000604082015260600190565b60208082526026908201527f6c656e677468206f66206d61784e756d4f664d61696e7461696e696e67206d696040820152650e6dac2e8c6d60d31b606082015260800190565b6020808252601b908201527f6261746368207472616e736665722072657475726e2066616c73650000000000604082015260600190565b6020808252602c908201527f6c656e677468206f66206d61784e756d4f66576f726b696e6743616e6469646160408201526b0e8cae640dad2e6dac2e8c6d60a31b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61696e7461696e536c6173685363616c65206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252818101527f6c656e677468206f66206e756d4f66436162696e657473206d69736d61746368604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526028908201527f746865206e756d4f66436162696e657473206d75737420626520677265617465604082015267072207468616e20360c41b606082015260800190565b60208082526039908201527f746865206e756d4f66436162696e657473206d757374206265206c657373207460408201527f68616e204d41585f4e554d5f4f465f56414c494441544f525300000000000000606082015260800190565b60208082526029908201527f746865206e756d626572206f662076616c696461746f727320657863656564206040820152681d1a19481b1a5b5a5d60ba1b606082015260800190565b60208082526022908201527f63616e206e6f7420646f207468697320747769636520696e206f6e6520626c6f604082015261636b60f01b606082015260800190565b6020808252602b908201527f746865206275726e526174696f206d757374206265206e6f206772656174657260408201526a0207468616e2031303030360ac1b606082015260800190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526037908201527f746865206d61784e756d4f664d61696e7461696e696e67206d7573742062652060408201527f6c657373207468616e206e756d4f66436162696e657473000000000000000000606082015260800190565b6020808252602b908201527f6475706c696361746520636f6e73656e7375732061646472657373206f66207660408201526a185b1a59185d1bdc94d95d60aa1b606082015260800190565b60208082526033908201527f7468652073797374656d526577617264526174696f206d757374206265206e6f60408201527202067726561746572207468616e20313030303606c1b606082015260800190565b60208082526027908201527f7468652065787069726554696d655365636f6e64476170206973206f7574206f604082015266662072616e676560c81b606082015260800190565b6020808252601590820152746465706f7369742076616c7565206973207a65726f60581b604082015260600190565b60208082526049908201527f746865206d61784e756d4f66576f726b696e6743616e64696461746573206d7560408201527f7374206265206e6f742067726561746572207468616e206d61784e756d4f6643606082015268616e6469646174657360b81b608082015260a00190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b60208082526023908201527f63616e206e6f7420656e7465722054656d706f72617279204d61696e74656e616040820152626e636560e81b606082015260800190565b60208082526025908201527f6c656e677468206f66206a61696c2076616c696461746f7273206d757374206260408201526465206f6e6560d81b606082015260800190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61784e756d4f6643616e64696461746573206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252601290820152716e6f7420696e206d61696e74656e616e636560701b604082015260600190565b60208082526021908201527f666565206973206c6172676572207468616e2044555354595f494e434f4d494e6040820152604760f81b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526026908201527f6c656e677468206f662065787069726554696d655365636f6e64476170206d696040820152650e6dac2e8c6d60d31b606082015260800190565b60208082526017908201527f6f6e6c792063757272656e742076616c696461746f7273000000000000000000604082015260600190565b60208082526021908201527f6661696c656420746f20706172736520696e69742076616c696461746f7253656040820152601d60fa1b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b60208082526024908201527f6c656e677468206f662073797374656d526577617264526174696f206d69736d6040820152630c2e8c6d60e31b606082015260800190565b6020808252603e908201527f746865206d61696e7461696e536c6173685363616c65206d757374206265206760408201527f726561746572207468616e203020616e64206c657373207468616e2031300000606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b60208082526029908201527f746865206d6573736167652073656e646572206d75737420626520736c6173686040820152680818dbdb9d1c9858dd60ba1b606082015260800190565b61ffff91909116815260200190565b90815260200190565b6000848252831515602083015260606040830152615ff16060830184616a0b565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff8516825260406020830152615ff16040830184866169e1565b60005b838110156177135781810151838201526020016176fb565b83811115612fc7575050600091015256fef901a880f901a4f844941284214b9b9c85549ab3d2b972df0deef66ac2c9946ddf42a51534fc98d0c0a3b42c963cace8441ddf946ddf42a51534fc98d0c0a3b42c963cace8441ddf8410000000f84494a2959d3f95eae5dc7d70144ce1b73b403b7eb6e0948081ef03f1d9e0bb4a5bf38f16285c879299f07f948081ef03f1d9e0bb4a5bf38f16285c879299f07f8410000000f8449435552c16704d214347f29fa77f77da6d75d7c75294dc4973e838e3949c77aced16ac2315dc2d7ab11194dc4973e838e3949c77aced16ac2315dc2d7ab1118410000000f84494980a75ecd1309ea12fa2ed87a8744fbfc9b863d594cc6ac05c95a99c1f7b5f88de0e3486c82293b27094cc6ac05c95a99c1f7b5f88de0e3486c82293b2708410000000f84494f474cf03cceff28abc65c9cbae594f725c80e12d94e61a183325a18a173319dd8e19c8d069459e217594e61a183325a18a173319dd8e19c8d069459e21758410000000f84494b71b214cb885500844365e95cd9942c7276e7fd894d22ca3ba2141d23adab65ce4940eb7665ea2b6a794d22ca3ba2141d23adab65ce4940eb7665ea2b6a7841000000070e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb20175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbb0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbaa164736f6c6343000604000a", - }, - { - ContractAddr: SlashContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/ff75c61ecd457c1370327e136b38c7a0d63ca821", - Code: "608060405234801561001057600080fd5b50600436106102955760003560e01c80638256ace611610167578063c81b1662116100ce578063e1c7392a11610087578063e1c7392a146104d3578063eb57bff7146104db578063f9a2bbc7146104e3578063fc3e5908146104eb578063fc4333cd146104f3578063fd6a6879146104fb57610295565b8063c81b166214610482578063c8509d811461048a578063c96be4cb1461049d578063cc844b73146104b0578063d2a42e4b146104c3578063dc927faf146104cb57610295565b8063a78abc1611610120578063a78abc1614610447578063ab51bb961461044f578063ac0af62914610457578063ac4317511461045f578063ae61dc3b14610472578063c80d4b8f1461047a57610295565b80638256ace61461040c578063831d65d11461041457806396713da9146104275780639bc8e4f21461042f5780639dc0926214610437578063a1a11bf51461043f57610295565b8063493279b11161020b5780636e47b482116101c45780636e47b482146103dc57806370fd5bad146103e4578063718a8aa8146103ec57806375d47a0a146103f45780637912a65d146103fc5780637942fd051461040457610295565b8063493279b1146103925780634bf6c882146103a757806351e80672146103af578063567a372d146103b75780635bfb4990146103bf57806362b72cf5146103d457610295565b806335aa2e441161025d57806335aa2e441461032457806337c8dab914610337578063389f4f71146103585780633a63f4b11461036d5780633dffc3871461037557806343756e5c1461038a57610295565b80630bee7a671461029a5780630e2374a5146102b85780631182b875146102cd57806322d1e80b146102ed57806323bac5a214610302575b600080fd5b6102a2610503565b6040516102af9190613550565b60405180910390f35b6102c0610508565b6040516102af9190612d6c565b6102e06102db366004612ca2565b61050e565b6040516102af9190612da4565b6102f5610574565b6040516102af9190612d99565b610315610310366004612a50565b61057d565b6040516102af93929190613538565b6102c0610332366004612c72565b6105a0565b61034a610345366004612a50565b6105c7565b6040516102af92919061352a565b61036061061e565b6040516102af9190613500565b610360610624565b61037d61062a565b6040516102af9190613561565b6102c061062f565b61039a610635565b6040516102af91906134f1565b61037d61063b565b6102c0610640565b610360610646565b6103d26103cd366004612a50565b61064c565b005b6103606106f7565b6102c06106fd565b61037d610703565b61037d610708565b6102c061070d565b610360610713565b61037d610718565b61034a61071d565b6103d2610422366004612ca2565b610727565b61037d610839565b61036061083e565b6102c0610849565b6102c061084f565b6102f5610855565b6102a261085e565b610360610863565b6103d261046d366004612b56565b610868565b610360610e18565b610360610e1f565b6102c0610e24565b6103d2610498366004612ca2565b610e2a565b6103d26104ab366004612a50565b610e9b565b6103d26104be366004612bbf565b61128c565b61036061187d565b6102c0611882565b6103d2611888565b6103606118c4565b6102c06118ca565b61037d6118d0565b6103d26118d5565b6102c0611d1e565b606481565b61200181565b6060336120001461053a5760405162461bcd60e51b815260040161053190613349565b60405180910390fd5b60005460ff1661055c5760405162461bcd60e51b815260040161053190612e9f565b60405162461bcd60e51b81526004016105319061343a565b60075460ff1681565b600260208190526000918252604090912080546001820154919092015460ff1683565b600181815481106105ad57fe5b6000918252602090912001546001600160a01b0316905081565b6000806105d2612837565b5050506001600160a01b0316600090815260026020818152604092839020835160608101855281548082526001830154938201849052919093015460ff16151592909301919091529091565b60055481565b60065481565b600181565b61100181565b6102ca81565b600881565b61200081565b60045481565b336110001461066d5760405162461bcd60e51b81526004016105319061312e565b60005460ff1661068f5760405162461bcd60e51b815260040161053190612e9f565b61200063f7a251d7600b6106a284611d24565b60006040518463ffffffff1660e01b81526004016106c29392919061356f565b600060405180830381600087803b1580156106dc57600080fd5b505af11580156106f0573d6000803e3d6000fd5b5050505050565b60035481565b61100581565b600281565b601081565b61100881565b603281565b600b81565b6004546005549091565b33612000146107485760405162461bcd60e51b815260040161053190613349565b60005460ff1661076a5760405162461bcd60e51b815260040161053190612e9f565b61077261285a565b60006107b384848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611df792505050565b9150915080156107fa5781516040517f7f0956d47419b9525356e7111652b653b530ec6f5096dccc04589bc38e629967916107ed91613550565b60405180910390a16106f0565b81516040517f7d45f62d17443dd4547bca8a8112c60e2385669318dc300ec61a5d2492f262e79161082a91613550565b60405180910390a15050505050565b600981565b662386f26fc1000081565b61100781565b61100681565b60005460ff1681565b600081565b600481565b60005460ff1661088a5760405162461bcd60e51b815260040161053190612e9f565b33611007146108ab5760405162461bcd60e51b815260040161053190613206565b61091684848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260148152731b5a5cd9195b59585b9bdc951a1c995cda1bdb1960621b60208201529150611e779050565b156109b1576020811461093b5760405162461bcd60e51b8152600401610531906130ba565b604080516020601f840181900481028201810190925282815260009161097991858580838501838280828437600092019190915250611ed192505050565b90506001811015801561098d575060055481105b6109a95760405162461bcd60e51b815260040161053190613304565b600455610dd5565b610a1784848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e19995b1bdb9e551a1c995cda1bdb19608a1b60208201529150611e779050565b15610ab35760208114610a3c5760405162461bcd60e51b815260040161053190613254565b604080516020601f8401819004810282018101909252828152600091610a7a91858580838501838280828437600092019190915250611ed192505050565b90506103e88111158015610a8f575060045481115b610aab5760405162461bcd60e51b815260040161053190612f58565b600555610dd5565b610b2784848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f66696e616c697479536c617368526577617264526174696f000000000000000060208201529150611e779050565b15610bc15760208114610b4c5760405162461bcd60e51b815260040161053190613471565b604080516020601f8401819004810282018101909252828152600091610b8a91858580838501838280828437600092019190915250611ed192505050565b9050600a8110158015610b9d5750606481105b610bb95760405162461bcd60e51b81526004016105319061306e565b600655610dd5565b610c3584848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f656e61626c654d616c6963696f7573566f7465536c617368000000000000000060208201529150611e779050565b15610cac5760208114610c5a5760405162461bcd60e51b815260040161053190612f8d565b604080516020601f8401819004810282018101909252828152610c969190848480838501838280828437600092019190915250611ed692505050565b6007805460ff1916911515919091179055610dd5565b610d2084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601781527f6d616c6963696f7573566f7465536c61736853636f706500000000000000000060208201529150611e779050565b15610dbd5760208114610d455760405162461bcd60e51b815260040161053190612de9565b604080516020601f8401819004810282018101909252828152600091610d8391858580838501838280828437600092019190915250611ed192505050565b90506170808110158015610d995750620d2f0081105b610db55760405162461bcd60e51b815260040161053190612ed6565b600855610dd5565b60405162461bcd60e51b8152600401610531906133e5565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a84848484604051610e0a9493929190612db7565b60405180910390a150505050565b6201518081565b609681565b61100281565b3361200014610e4b5760405162461bcd60e51b815260040161053190613349565b60005460ff16610e6d5760405162461bcd60e51b815260040161053190612e9f565b6040517f07db600eebe2ac176be8dcebad61858c245a4961bb32ca2aa3d159b09aa0810e90600090a1505050565b334114610eba5760405162461bcd60e51b815260040161053190613398565b60005460ff16610edc5760405162461bcd60e51b815260040161053190612e9f565b6003544311610efd5760405162461bcd60e51b8152600401610531906134bc565b3a15610f1b5760405162461bcd60e51b8152600401610531906131a9565b60405163155853f360e21b8152611000906355614fcc90610f40908490600401612d6c565b60206040518083038186803b158015610f5857600080fd5b505afa158015610f6c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f909190612b36565b610f9957611285565b610fa1612837565b506001600160a01b0381166000908152600260208181526040928390208351606081018552815481526001820154928101929092529091015460ff161580159282019290925290610ffc576020810180516001019052611055565b60016040820181905260208201819052805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0384161790555b43815260055460208201518161106757fe5b066111b357600060208201526040516335409f7f60e01b8152611000906335409f7f90611098908590600401612d6c565b600060405180830381600087803b1580156110b257600080fd5b505af11580156110c6573d6000803e3d6000fd5b505050506120006001600160a01b031663f7a251d7600b6110e685611d24565b60006040518463ffffffff1660e01b81526004016111069392919061356f565b600060405180830381600087803b15801561112057600080fd5b505af1925050508015611131575060015b6111ae573d80801561115f576040519150601f19603f3d011682016040523d82523d6000602084013e611164565b606091505b50826001600160a01b03167fd7bc86ff5d08c8ab043edec743302aba2520e6635172a428bc956721db9e2d1c8360200151836040516111a4929190613509565b60405180910390a2505b61121f565b6004548160200151816111c257fe5b0661121f576040516375abf10160e11b81526110009063eb57e202906111ec908590600401612d6c565b600060405180830381600087803b15801561120657600080fd5b505af115801561121a573d6000803e3d6000fd5b505050505b6001600160a01b0382166000818152600260208181526040808420865181559186015160018301558581015191909201805460ff1916911515919091179055517fddb6012116e51abf5436d956a4f0ebd927e92c576ff96d7918290c8782291e3e9190a2505b5043600355565b60005460ff166112ae5760405162461bcd60e51b815260040161053190612e9f565b604051630a83aaa960e31b81526110069063541d5548906112d3903390600401612d6c565b60206040518083038186803b1580156112eb57600080fd5b505afa1580156112ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113239190612b36565b61133f5760405162461bcd60e51b815260040161053190612e33565b60075460ff166113615760405162461bcd60e51b815260040161053190612e6a565b60065461136e5760146006555b60085461137d57620151806008555b6008548151604001514391011180156113a157504360085482602001516040015101115b6113bd5760405162461bcd60e51b81526004016105319061340c565b8060200151602001518160000151602001511480156113eb5750806020015160600151816000015160600151145b156114085760405162461bcd60e51b815260040161053190613101565b8051604081015190511080156114275750602081015160408101519051105b6114435760405162461bcd60e51b815260040161053190613037565b6020810151518151511080156114685750806000015160400151816020015160400151105b8061149357508051516020820151511080156114935750806020015160400151816000015160400151105b806114ad5750806020015160400151816000015160400151145b6114c95760405162461bcd60e51b815260040161053190612f21565b604080820151905163ea321e4960e01b81526110009163ea321e49916114f29190600401612da4565b60206040518083038186803b15801561150a57600080fd5b505afa15801561151e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115429190612b36565b61155e5760405162461bcd60e51b8152600401610531906131d7565b61157081600001518260400151611efe565b8015611589575061158981602001518260400151611efe565b6115a55760405162461bcd60e51b815260040161053190612fd8565b6060806110006001600160a01b0316633b071dcc6040518163ffffffff1660e01b815260040160006040518083038186803b1580156115e357600080fd5b505afa1580156115f7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261161f9190810190612a73565b9150915060005b815181101561175a5761165082828151811061163e57fe5b602002602001015185604001516120d6565b15611752576006546040516213929d60e11b8152606461100280319093020491906227253a906116869033908590600401612d80565b602060405180830381600087803b1580156116a057600080fd5b505af11580156116b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116d89190612c8a565b506110006001600160a01b03166335409f7f8584815181106116f657fe5b60200260200101516040518263ffffffff1660e01b815260040161171a9190612d6c565b600060405180830381600087803b15801561173457600080fd5b505af1158015611748573d6000803e3d6000fd5b505050505061175a565b600101611626565b50600061176c8460400151600061213a565b90506120006001600160a01b031663f7a251d7600b61178e8760400151612156565b60006040518463ffffffff1660e01b81526004016117ae9392919061356f565b600060405180830381600087803b1580156117c857600080fd5b505af19250505080156117d9575060015b61184b573d808015611807576040519150601f19603f3d011682016040523d82523d6000602084013e61180c565b606091505b50817fd58d1183100bd0932c0588f31c4205d6bc6168909765a96c41adbed3115f36288260405161183d9190612da4565b60405180910390a250611877565b60405181907f7b78aadacff901d8b63d0dba4f86283d4db8aef27f9ed70413dd860f1c9532b690600090a25b50505050565b601481565b61100381565b60005460ff16156118ab5760405162461bcd60e51b815260040161053190613296565b603260045560966005556000805460ff19166001179055565b60085481565b61100081565b600381565b33611000146118f65760405162461bcd60e51b81526004016105319061312e565b60005460ff166119185760405162461bcd60e51b815260040161053190612e9f565b60015461192457611d1c565b600154600090600019015b808211611cf0576000805b82841015611a535761194a612837565b600260006001878154811061195b57fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff161515908201526005549091506004900481602001511115611a3d576004600554816119c857fe5b048160200151038160200181815250508060026000600188815481106119ea57fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208351815591830151600183015591909101516002909101805460ff1916911515919091179055611a47565b6001925050611a53565b5083600101935061193a565b828411611bea57611a62612837565b6002600060018681548110611a7357fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff161515908201526005549091506004900481602001511115611b5b57600460055481611ae057fe5b04816020015103816020018181525050806002600060018781548110611b0257fe5b6000918252602080832091909101546001600160a01b03168352828101939093526040918201902083518155918301516001808401919091559201516002909101805460ff19169115159190911790559150611bea9050565b6002600060018681548110611b6c57fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff19169055805480611bb057fe5b600082815260209020810160001990810180546001600160a01b031916905501905583611bdd5750611bea565b5060001990920191611a53565b818015611bf45750805b15611cd3576002600060018681548110611c0a57fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff19169055805484908110611c5157fe5b600091825260209091200154600180546001600160a01b039092169186908110611c7757fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506001805480611cb057fe5b600082815260209020810160001990810180546001600160a01b03191690550190555b82611cdf575050611cf0565b50506001909101906000190161192f565b6040517fcfdb3b6ccaeccbdc68be3c59c840e3b3c90f0a7c491f5fff1cf56cfda200dd9c90600090a150505b565b61100481565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081611d3f579050509050611d68836001600160a01b0316612191565b81600081518110611d7557fe5b6020026020010181905250611d89436121b4565b81600181518110611d9657fe5b6020908102919091010152611dac6102ca6121b4565b81600281518110611db957fe5b6020026020010181905250611dcd426121b4565b81600381518110611dda57fe5b6020026020010181905250611dee816121c7565b9150505b919050565b611dff61285a565b6000611e0961285a565b611e1161286c565b611e22611e1d86612251565b612276565b90506000805b611e31836122c0565b15611e6a5780611e5d57611e4c611e47846122e1565b61232f565b63ffffffff16845260019150611e62565b611e6a565b600101611e28565b5091935090915050915091565b600081604051602001611e8a9190612d50565b6040516020818303038152906040528051906020012083604051602001611eb19190612d50565b604051602081830303815290604052805190602001201490505b92915050565b015190565b8082015160009060ff811615611ef0576001915081611ef6565b60009150815b505092915050565b60408051600480825260a0820190925260009160609190816020015b6060815260200190600190039081611f1a575050604080516020808252818301909252919250606091908082018180368337019050509050611f5f85600001516121b4565b82600081518110611f6c57fe5b6020026020010181905250611f8760208660200151836123b1565b611f90816123c1565b82600181518110611f9d57fe5b6020026020010181905250611fb585604001516121b4565b82600281518110611fc257fe5b6020026020010181905250611fdd60208660600151836123b1565b611fe6816123c1565b82600381518110611ff357fe5b6020026020010181905250612019602061200c846121c7565b80519060200120836123b1565b6040805160b080825260e08201909252606091602082018180368337019050509050612049818360006020612417565b61205b81876080015160206060612417565b612069818660806030612417565b604080516001808252818301909252606091602082018180368337019050509050815160016020830182602086016066600019fa6120a657600080fd5b5060016120b482600061246a565b60ff16146120c9576000945050505050611ecb565b5060019695505050505050565b8151815160009160019181148083146120f25760009250612130565b600160208701838101602088015b60028483851001141561212b57805183511461211f5760009650600093505b60209283019201612100565b505050505b5090949350505050565b6000816020018351101561214d57600080fd5b50016020015190565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081612171579050509050611d68836123c1565b60408051600560a21b8318601482015260348101909152606090611dee816123c1565b6060611ecb6121c283612486565b6123c1565b60608151600014156121e85750604080516000815260208101909152611df2565b6060826000815181106121f757fe5b602002602001015190506000600190505b83518110156122385761222e8285838151811061222157fe5b602002602001015161256c565b9150600101612208565b50611dee61224b825160c060ff166125e9565b8261256c565b61225961288c565b506040805180820190915281518152602082810190820152919050565b61227e61286c565b612287826126bb565b61229057600080fd5b600061229f83602001516126f5565b60208085015160408051808201909152868152920190820152915050919050565b60006122ca61288c565b505080518051602091820151919092015191011190565b6122e961288c565b6122f2826122c0565b6122fb57600080fd5b6020820151600061230b82612758565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061234457508151602110155b61234d57600080fd5b600061235c83602001516126f5565b905080836000015110156123825760405162461bcd60e51b8152600401610531906132cd565b8251602080850151830180519284900392918310156123a857826020036101000a820491505b50949350505050565b9091018181526020918201910152565b6060815160011480156123f35750607f60f81b826000815181106123e157fe5b01602001516001600160f81b03191611155b156123ff575080611df2565b611ecb6124118351608060ff166125e9565b8361256c565b60005b818110156106f05783818151811061242e57fe5b602001015160f81c60f81b85848060010195508151811061244b57fe5b60200101906001600160f81b031916908160001a90535060010161241a565b6000816001018351101561247d57600080fd5b50016001015190565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166124ca575060186124ee565b6fffffffffffffffffffffffffffffffff1984166124ea575060106124ee565b5060005b60208110156125245781818151811061250357fe5b01602001516001600160f81b0319161561251c57612524565b6001016124ee565b60008160200390506060816040519080825280601f01601f191660200182016040528015612559576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b8183101561259d578051835260209283019201612585565b50855184518101855292509050808201602086015b818310156125ca5780518352602092830192016125b2565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106126135760405162461bcd60e51b81526004016105319061300f565b6040805160018082528183019092526060916020820181803683370190505090506037841161266d5782840160f81b8160008151811061264f57fe5b60200101906001600160f81b031916908160001a9053509050611ecb565b606061267885612486565b90508381510160370160f81b8260008151811061269157fe5b60200101906001600160f81b031916908160001a9053506126b2828261256c565b95945050505050565b80516000906126cc57506000611df2565b6020820151805160001a9060c08210156126eb57600092505050611df2565b5060019392505050565b8051600090811a608081101561270f576000915050611df2565b60b881108061272a575060c0811080159061272a575060f881105b15612739576001915050611df2565b60c081101561274d5760b519019050611df2565b60f519019050611df2565b80516000908190811a60808110156127735760019150612830565b60b881101561278857607e1981019150612830565b60c08110156127d957600060b78203600186019550806020036101000a8651049150600181018201935050808310156127d35760405162461bcd60e51b81526004016105319061317e565b50612830565b60f88110156127ee5760be1981019150612830565b600060f78203600186019550806020036101000a865104915060018101820193505080831015611ef65760405162461bcd60e51b81526004016105319061317e565b5092915050565b604051806060016040528060008152602001600081526020016000151581525090565b60408051602081019091526000815290565b604051806040016040528061287f61288c565b8152602001600081525090565b604051806040016040528060008152602001600081525090565b600082601f8301126128b6578081fd5b81516128c96128c4826135c2565b61359b565b818152915060208083019084810160005b8481101561293f578151870188603f8201126128f557600080fd5b838101516129056128c4826135e2565b81815260408b8184860101111561291b57600080fd5b61292a83888401838701613606565b508652505092820192908201906001016128da565b505050505092915050565b60008083601f84011261295b578182fd5b50813567ffffffffffffffff811115612972578182fd5b60208301915083602082850101111561298a57600080fd5b9250929050565b600082601f8301126129a1578081fd5b81356129af6128c4826135e2565b91508082528360208285010111156129c657600080fd5b8060208401602084013760009082016020015292915050565b600060a082840312156129f0578081fd5b6129fa60a061359b565b905081358152602082013560208201526040820135604082015260608201356060820152608082013567ffffffffffffffff811115612a3857600080fd5b612a4484828501612991565b60808301525092915050565b600060208284031215612a61578081fd5b8135612a6c81613632565b9392505050565b60008060408385031215612a85578081fd5b825167ffffffffffffffff80821115612a9c578283fd5b81850186601f820112612aad578384fd5b80519250612abd6128c4846135c2565b80848252602080830192508084018a828389028701011115612add578788fd5b8794505b86851015612b08578051612af481613632565b845260019490940193928101928101612ae1565b508801519096509350505080821115612b1f578283fd5b50612b2c858286016128a6565b9150509250929050565b600060208284031215612b47578081fd5b81518015158114612a6c578182fd5b60008060008060408587031215612b6b578182fd5b843567ffffffffffffffff80821115612b82578384fd5b612b8e8883890161294a565b90965094506020870135915080821115612ba6578384fd5b50612bb38782880161294a565b95989497509550505050565b600060208284031215612bd0578081fd5b813567ffffffffffffffff80821115612be7578283fd5b81840160608187031215612bf9578384fd5b612c03606061359b565b9250803582811115612c13578485fd5b612c1f878284016129df565b845250602081013582811115612c33578485fd5b612c3f878284016129df565b602085015250604081013582811115612c56578485fd5b612c6287828401612991565b6040850152509195945050505050565b600060208284031215612c83578081fd5b5035919050565b600060208284031215612c9b578081fd5b5051919050565b600080600060408486031215612cb6578283fd5b833560ff81168114612cc6578384fd5b9250602084013567ffffffffffffffff811115612ce1578283fd5b612ced8682870161294a565b9497909650939450505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008151808452612d3c816020860160208601613606565b601f01601f19169290920160200192915050565b60008251612d62818460208701613606565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b600060208252612a6c6020830184612d24565b600060408252612dcb604083018688612cfa565b8281036020840152612dde818587612cfa565b979650505050505050565b6020808252602a908201527f6c656e677468206f66206d616c6963696f7573566f7465536c61736853636f706040820152690ca40dad2e6dac2e8c6d60b31b606082015260800190565b6020808252601f908201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604082015260600190565b6020808252818101527f6d616c6963696f757320766f746520736c617368206e6f7420656e61626c6564604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252602b908201527f746865206d616c6963696f757320766f746520736c6173682073636f7065206f60408201526a7574206f662072616e676560a81b606082015260800190565b6020808252601a908201527f6e6f2076696f6c6174696f6e206f6620766f74652072756c6573000000000000604082015260600190565b6020808252818101527f7468652066656c6f6e795468726573686f6c64206f7574206f662072616e6765604082015260600190565b6020808252602b908201527f6c656e677468206f6620656e61626c654d616c6963696f7573566f7465536c6160408201526a0e6d040dad2e6dac2e8c6d60ab1b606082015260800190565b60208082526017908201527f766572696679207369676e6174757265206661696c6564000000000000000000604082015260600190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526019908201527f7372634e756d20626967676572207468616e207461724e756d00000000000000604082015260600190565b6020808252602c908201527f7468652066696e616c69747920736c6173682072657761726420726174696f2060408201526b6f7574206f662072616e676560a01b606082015260800190565b60208082526027908201527f6c656e677468206f66206d697364656d65616e6f725468726573686f6c64206d6040820152660d2e6dac2e8c6d60cb1b606082015260800190565b60208082526013908201527274776f206964656e746963616c20766f74657360681b604082015260600190565b60208082526030908201527f746865206d6573736167652073656e646572206d7573742062652076616c696460408201526f185d1bdc94d95d0818dbdb9d1c9858dd60821b606082015260800190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b6020808252601590820152741d9bdd195059191c881a5cc81b9bdd08199bdd5b99605a1b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526022908201527f6c656e677468206f662066656c6f6e795468726573686f6c64206d69736d61746040820152610c6d60f31b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526025908201527f746865206d697364656d65616e6f725468726573686f6c64206f7574206f662060408201526472616e676560d81b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b6020808252601490820152731d185c99d95d08189b1bd8dac81d1bdbc81bdb1960621b604082015260600190565b6020808252601e908201527f7265636569766520756e65787065637465642073796e207061636b6167650000604082015260600190565b6020808252602b908201527f6c656e677468206f662066696e616c697479536c61736852657761726452617460408201526a0d2de40dad2e6dac2e8c6d60ab1b606082015260800190565b6020808252818101527f63616e206e6f7420736c61736820747769636520696e206f6e6520626c6f636b604082015260600190565b61ffff91909116815260200190565b90815260200190565b6000838252604060208301526135226040830184612d24565b949350505050565b918252602082015260400190565b92835260208301919091521515604082015260600190565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff851682526060602083015261358b6060830185612d24565b9050826040830152949350505050565b60405181810167ffffffffffffffff811182821017156135ba57600080fd5b604052919050565b600067ffffffffffffffff8211156135d8578081fd5b5060209081020190565b600067ffffffffffffffff8211156135f8578081fd5b50601f01601f191660200190565b60005b83811015613621578181015183820152602001613609565b838111156118775750506000910152565b6001600160a01b038116811461364757600080fd5b5056fea164736f6c6343000604000a", - }, - { - ContractAddr: SystemRewardContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/ff75c61ecd457c1370327e136b38c7a0d63ca821", - Code: "6080604052600436106101c55760003560e01c806375d47a0a116100f7578063ab51bb9611610095578063f9a2bbc711610064578063f9a2bbc7146105c3578063fb5478b3146105d8578063fc3e5908146105ed578063fd6a68791461060257610209565b8063ab51bb96146104b5578063ac431751146104ca578063c81b166214610599578063dc927faf146105ae57610209565b80639a99b4f0116100d15780639a99b4f01461043d5780639dc0926214610476578063a1a11bf51461048b578063a78abc16146104a057610209565b806375d47a0a146103fe5780637942fd051461041357806396713da91461042857610209565b8063493279b1116101645780636d70f7ae1161013e5780636d70f7ae146103785780636e47b482146103bf57806370fd5bad146103d4578063718a8aa8146103e957610209565b8063493279b1146103225780634bf6c8821461034e57806351e806721461036357610209565b806331b6d4a5116101a057806331b6d4a5146102b85780633a0b0eff146102cd5780633dffc387146102e257806343756e5c1461030d57610209565b806227253a1461020e5780630bee7a67146102595780630e2374a51461028757610209565b366102095734156102075760408051348152905133917f6c98249d85d88c3753a04a22230f595e4dc8d3dc86c34af35deeeedc861b89db919081900360200190a25b005b600080fd5b34801561021a57600080fd5b506102476004803603604081101561023157600080fd5b506001600160a01b038135169060200135610617565b60408051918252519081900360200190f35b34801561026557600080fd5b5061026e6107c2565b6040805163ffffffff9092168252519081900360200190f35b34801561029357600080fd5b5061029c6107c7565b604080516001600160a01b039092168252519081900360200190f35b3480156102c457600080fd5b506102476107cd565b3480156102d957600080fd5b506102476107d9565b3480156102ee57600080fd5b506102f76107df565b6040805160ff9092168252519081900360200190f35b34801561031957600080fd5b5061029c6107e4565b34801561032e57600080fd5b506103376107ea565b6040805161ffff9092168252519081900360200190f35b34801561035a57600080fd5b506102f76107f0565b34801561036f57600080fd5b5061029c6107f5565b34801561038457600080fd5b506103ab6004803603602081101561039b57600080fd5b50356001600160a01b03166107fb565b604080519115158252519081900360200190f35b3480156103cb57600080fd5b5061029c610819565b3480156103e057600080fd5b506102f761081f565b3480156103f557600080fd5b506102f7610824565b34801561040a57600080fd5b5061029c610829565b34801561041f57600080fd5b506102f761082f565b34801561043457600080fd5b506102f7610834565b34801561044957600080fd5b506102476004803603604081101561046057600080fd5b506001600160a01b038135169060200135610839565b34801561048257600080fd5b5061029c610963565b34801561049757600080fd5b5061029c610969565b3480156104ac57600080fd5b506103ab61096f565b3480156104c157600080fd5b5061026e610978565b3480156104d657600080fd5b50610207600480360360408110156104ed57600080fd5b81019060208101813564010000000081111561050857600080fd5b82018360208201111561051a57600080fd5b8035906020019184600183028401116401000000008311171561053c57600080fd5b91939092909160208101903564010000000081111561055a57600080fd5b82018360208201111561056c57600080fd5b8035906020019184600183028401116401000000008311171561058e57600080fd5b50909250905061097d565b3480156105a557600080fd5b5061029c610d00565b3480156105ba57600080fd5b5061029c610d06565b3480156105cf57600080fd5b5061029c610d0c565b3480156105e457600080fd5b50610247610d12565b3480156105f957600080fd5b506102f7610d1e565b34801561060e57600080fd5b5061029c610d23565b6000805460ff1661069457600260208190527fe57bda0a954a7c7381b17b2c763e646ba2c60f67292d287ba583603e2c1c41668054600160ff19918216811790925561100560009081527fe25235fc0de9d7165652bef0846fefda506174abb9a190f03d0f7bcc6146dbce80548316841790559282558254161790555b3360009081526002602052604090205460ff166106e25760405162461bcd60e51b815260040180806020018281038252602b815260200180610e11602b913960400191505060405180910390fd5b60004783106106f157476106f3565b825b9050674563918244f400008111156107105750674563918244f400005b8015610791576040516001600160a01b0385169082156108fc029083906000818181858888f1935050505015801561074c573d6000803e3d6000fd5b506040805182815290516001600160a01b038616917ff8b71c64315fc33b2ead2adfa487955065152a8ac33d9d5193aafd7f45dc15a0919081900360200190a26107bb565b6040517fe589651933c2457488cc0d8e0941518abf748e799435e4e396d9c4d0b2db2d4d90600090a15b9392505050565b606481565b61200181565b674563918244f4000081565b60015481565b600181565b61100181565b6102ca81565b600881565b61200081565b6001600160a01b031660009081526002602052604090205460ff1690565b61100581565b600281565b601081565b61100881565b600b81565b600981565b6000805460ff166108b657600260208190527fe57bda0a954a7c7381b17b2c763e646ba2c60f67292d287ba583603e2c1c41668054600160ff19918216811790925561100560009081527fe25235fc0de9d7165652bef0846fefda506174abb9a190f03d0f7bcc6146dbce80548316841790559282558254161790555b3360009081526002602052604090205460ff166109045760405162461bcd60e51b815260040180806020018281038252602b815260200180610e11602b913960400191505060405180910390fd5b60004783106109135747610915565b825b9050670de0b6b3a76400008111156107105750604051670de0b6b3a7640000906001600160a01b03851690600090839082818181858883f1935050505015801561074c573d6000803e3d6000fd5b61100781565b61100681565b60005460ff1681565b600081565b33611007146109bd5760405162461bcd60e51b815260040180806020018281038252602e815260200180610e6b602e913960400191505060405180910390fd5b610a1f84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600b81526a30b23227b832b930ba37b960a91b60208201529150610d299050565b15610af757606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060149091149050610aa25760405162461bcd60e51b815260040180806020018281038252602c815260200180610e99602c913960400191505060405180910390fd5b60148101516001600160a01b038116600081815260026020526040808220805460ff19166001179055517f9870d7fe5d112134c55844951dedf365363006d9c588db07c4c85af6322a06199190a25050610c6e565b610b5c84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600e81526d3232b632ba32a7b832b930ba37b960911b60208201529150610d299050565b15610c3157606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060149091149050610bdf5760405162461bcd60e51b815260040180806020018281038252602f815260200180610e3c602f913960400191505060405180910390fd5b60148101516001600160a01b038116600081815260026020526040808220805460ff19169055517fb40992a19dba61ea600e87fce607102bf5908dc89076217b6ca6ae195224f7029190a25050610c6e565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b61100281565b61100381565b61100081565b670de0b6b3a764000081565b600381565b61100481565b6000816040516020018082805190602001908083835b60208310610d5e5780518252601f199092019160209182019101610d3f565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310610dcc5780518252601f199092019160209182019101610dad565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052805190602001201490509291505056fe6f6e6c79206f70657261746f7220697320616c6c6f77656420746f2063616c6c20746865206d6574686f646c656e677468206f662076616c756520666f722064656c6574654f70657261746f722073686f756c64206265203230746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662076616c756520666f72206164644f70657261746f722073686f756c64206265203230a164736f6c6343000604000a", - }, - }, - } - - FeynmanUpgrade[networkname.BSCChainName] = &Upgrade{ - UpgradeName: "feynman", - Configs: []*UpgradeConfig{ - { - ContractAddr: ValidatorContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/2dbebb57a0d436d6a30b78c1f123395035249035", - Code: "6080604052600436106104fb5760003560e01c806388b32f111161028c578063c6d339451161015a578063e40716a1116100cc578063f92eb86b11610085578063f92eb86b14610d2d578063f9a2bbc714610d42578063fc3e590814610d57578063fccc281314610d6c578063fd4ad81f14610d81578063fd6a687914610db057610502565b8063e40716a114610c9b578063ea321e4914610cb0578063eb57e20214610cd0578063eda5868c14610cf0578063f1fad10414610d05578063f340fa0114610d1a57610502565b8063d86222d51161011e578063d86222d514610c1d578063daacdb6614610c32578063dc927faf14610c47578063df8079e914610c5c578063e086c7b114610c71578063e1c7392a14610c8657610502565b8063c6d3394514610bbe578063c81b166214610bd3578063c8509d811461098d578063ce910b0c14610be8578063d68fb56a14610c0857610502565b8063a78abc16116101fe578063ad3c9da6116101b7578063ad3c9da614610b3d578063aef198a914610b5d578063b7ab4db514610b72578063b8cf4ef114610b94578063bf9f4995146106fe578063c466689d14610ba957610502565b8063a78abc1614610ab4578063aa82dce114610ac9578063aad5606314610ade578063aaf5eb6814610af3578063ab51bb9614610b08578063ac43175114610b1d57610502565b806396713da91161025057806396713da914610a365780639dc0926214610a4b5780639fe0f81614610a60578063a0dc275814610a75578063a1a11bf514610a8a578063a5422d5c14610a9f57610502565b806388b32f11146109c25780638a7beb01146109d75780638b5ad0c9146109ec5780638d19a41014610a015780639369d7de14610a2157610502565b806351b4dce3116103c957806370fd5bad1161033b5780637e434d54116102f45780637e434d541461094e57806381650b6214610963578063820dcaa814610978578063831d65d11461098d578063853230aa1461090f57806386249882146109ad57610502565b806370fd5bad146108d0578063718a8aa8146108e557806375d47a0a146108fa57806378dfed4a1461090f5780637942fd05146109245780637a84ca2a1461093957610502565b80635d77156c1161038d5780635d77156c1461082a5780635de1e22c1461083f57806360eba4fe1461085457806362b72cf5146108745780636969a25c146108895780636e47b482146108bb57610502565b806351b4dce3146107ab57806351e80672146107c057806355614fcc146107d5578063565c56b3146107f55780635667515a1461081557610502565b8063300c35671161046d57806343756e5c1161042657806343756e5c1461072057806345cf9daf14610735578063493279b11461074a5780634bf6c8821461076c5780634df6e0c3146107815780635192c82c1461079657610502565b8063300c35671461065b578063321d398a1461067b5780633365af3a1461069b57806335409f7f146106bb5780633b071dcc146106db5780633dffc387146106fe57610502565b8063152ad3b8116104bf578063152ad3b8146105ba5780631e4c1524146105dc5780631ff18069146105fc578063219f22d51461061157806328087028146106265780632a0ffb6e1461063b57610502565b806304c4fec61461050757806307a568471461051e5780630bee7a67146105495780630e2374a51461056b5780631182b8751461058d57610502565b3661050257005b600080fd5b34801561051357600080fd5b5061051c610dc5565b005b34801561052a57600080fd5b50610533610e37565b6040516105409190618ed8565b60405180910390f35b34801561055557600080fd5b5061055e610e3d565b6040516105409190618f02565b34801561057757600080fd5b50610580610e42565b60405161054091906181eb565b34801561059957600080fd5b506105ad6105a83660046180d1565b610e48565b604051610540919061837e565b3480156105c657600080fd5b506105cf611165565b6040516105409190618373565b3480156105e857600080fd5b5061051c6105f7366004617edf565b61116e565b34801561060857600080fd5b50610533611844565b34801561061d57600080fd5b5061055e61184a565b34801561063257600080fd5b5061058061184f565b34801561064757600080fd5b5061051c610656366004617e3f565b611855565b34801561066757600080fd5b5061051c610676366004617e77565b611902565b34801561068757600080fd5b506105cf61069636600461807e565b611c4b565b3480156106a757600080fd5b506105cf6106b636600461807e565b611d1a565b3480156106c757600080fd5b5061051c6106d6366004617e3f565b611dcb565b3480156106e757600080fd5b506106f0611f30565b604051610540929190618289565b34801561070a57600080fd5b5061071361220c565b6040516105409190618f13565b34801561072c57600080fd5b50610580612211565b34801561074157600080fd5b50610533612217565b34801561075657600080fd5b5061075f61221d565b6040516105409190618ec9565b34801561077857600080fd5b50610713612222565b34801561078d57600080fd5b506106f0612227565b3480156107a257600080fd5b506105336123b3565b3480156107b757600080fd5b506105806123b9565b3480156107cc57600080fd5b506105806123bf565b3480156107e157600080fd5b506105cf6107f0366004617e3f565b6123c5565b34801561080157600080fd5b50610533610810366004617e3f565b6123fa565b34801561082157600080fd5b5061071361244b565b34801561083657600080fd5b5061055e612450565b34801561084b57600080fd5b50610533612455565b34801561086057600080fd5b506105ad61086f36600461807e565b61245b565b34801561088057600080fd5b50610533612501565b34801561089557600080fd5b506108a96108a436600461807e565b612507565b60405161054096959493929190618218565b3480156108c757600080fd5b5061058061256b565b3480156108dc57600080fd5b50610713612571565b3480156108f157600080fd5b50610713612576565b34801561090657600080fd5b5061058061257b565b34801561091b57600080fd5b50610533612581565b34801561093057600080fd5b50610713612587565b34801561094557600080fd5b5061053361258c565b34801561095a57600080fd5b50610580612592565b34801561096f57600080fd5b5061055e612598565b34801561098457600080fd5b5061053361259d565b34801561099957600080fd5b5061051c6109a83660046180d1565b6125a3565b3480156109b957600080fd5b50610533612604565b3480156109ce57600080fd5b5061053361260a565b3480156109e357600080fd5b506105cf612610565b3480156109f857600080fd5b50610533612619565b348015610a0d57600080fd5b50610533610a1c366004617e3f565b61261f565b348015610a2d57600080fd5b5061051c61265f565b348015610a4257600080fd5b50610713612773565b348015610a5757600080fd5b50610580612778565b348015610a6c57600080fd5b5061053361277e565b348015610a8157600080fd5b50610533612783565b348015610a9657600080fd5b50610580612788565b348015610aab57600080fd5b506105ad61278e565b348015610ac057600080fd5b506105cf6127ad565b348015610ad557600080fd5b506105806127b6565b348015610aea57600080fd5b506105806127bc565b348015610aff57600080fd5b506105336127c2565b348015610b1457600080fd5b5061055e61244b565b348015610b2957600080fd5b5061051c610b38366004618022565b6127cb565b348015610b4957600080fd5b50610533610b58366004617e3f565b613084565b348015610b6957600080fd5b50610533613096565b348015610b7e57600080fd5b50610b876130a3565b6040516105409190618276565b348015610ba057600080fd5b5061053361318f565b348015610bb557600080fd5b50610533613194565b348015610bca57600080fd5b50610533612571565b348015610bdf57600080fd5b5061058061319a565b348015610bf457600080fd5b506105ad610c0336600461807e565b6131a0565b348015610c1457600080fd5b506105336131ad565b348015610c2957600080fd5b506105336131ec565b348015610c3e57600080fd5b506105336131f8565b348015610c5357600080fd5b506105806131fe565b348015610c6857600080fd5b50610580613204565b348015610c7d57600080fd5b50610533610e3d565b348015610c9257600080fd5b5061051c61320a565b348015610ca757600080fd5b506105336133b9565b348015610cbc57600080fd5b506105cf610ccb366004617fe3565b6133bf565b348015610cdc57600080fd5b5061051c610ceb366004617e3f565b613545565b348015610cfc57600080fd5b5061055e613649565b348015610d1157600080fd5b5061071361364e565b61051c610d28366004617e3f565b613653565b348015610d3957600080fd5b506105336139d2565b348015610d4e57600080fd5b506105806139d8565b348015610d6357600080fd5b5061071361277e565b348015610d7857600080fd5b506105806139de565b348015610d8d57600080fd5b50610da1610d9c36600461807e565b6139e4565b60405161054093929190618ee1565b348015610dbc57600080fd5b50610580613aa6565b6000610dd03361261f565b9050600b8181548110610ddf57fe5b600091825260209091206001601690920201015460ff16610e1b5760405162461bcd60e51b8152600401610e1290618ae4565b60405180910390fd5b6000610e256131ad565b9050610e32338383613aac565b505050565b60095481565b606481565b61200181565b60005460609060ff16610e6d5760405162461bcd60e51b8152600401610e12906185a5565b3361200014610e8e5760405162461bcd60e51b8152600401610e1290618ce5565b600b54610f4c57610e9d6179eb565b60015460005b81811015610f4857600b80546001810182556000919091528351600080516020618fe583398151915260169092029182019081556020808601516000805160206196148339815191528401805460ff1916911515919091179055604086015180518794610f2493600080516020619005833981519152909101920190617a1a565b506060820151610f3a9060038301906013617a94565b505050806001019050610ea3565b5050505b610f54617ac1565b6000610f9585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613d7192505050565b9150915080610fb157610fa86064613f2d565b9250505061115e565b815160009060ff16610fd657610fcf83602001518460400151613f8e565b905061112a565b825160ff16600114156111265782602001515160011461101b57600080516020618fc583398151915260405161100b9061899d565b60405180910390a1506067611121565b6000836020015160008151811061102e57fe5b602090810291909101810151516001600160a01b0381166000908152600490925260409091205490915080158061108f575060018082038154811061106f57fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b156110cd576040516001600160a01b038316907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a261111a565b60006110dc8360018403615150565b905080611118576040516001600160a01b038416907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a25b505b6000925050505b61112a565b5060655b63ffffffff811661114f575050604080516000815260208101909152915061115e9050565b61115881613f2d565b93505050505b9392505050565b60075460ff1681565b33411461118d5760405162461bcd60e51b8152600401610e1290618d34565b3a156111ab5760405162461bcd60e51b8152600401610e1290618a23565b82516040805182815260208084028201019091526060908280156111e957816020015b6111d6617ae5565b8152602001906001900390816111ce5790505b50905060005b82811015611293576040518060c0016040528087838151811061120e57fe5b60200260200101516001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b0316815260200186838151811061125057fe5b60200260200101516001600160401b03168152602001600015158152602001600081525082828151811061128057fe5b60209081029190910101526001016111ef565b5060405163d31f968d60e01b81526120009063d31f968d906112be906110009060089060040161825a565b60206040518083038186803b1580156112d657600080fd5b505afa1580156112ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061130e9190617fc3565b15611631578051601554818111156113b057815b818110156113ae57601580548061133557fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055601680548061138857fe5b6001900381819060005260206000200160006113a49190617b1a565b9055600101611322565b505b60005b828110156115f0578181106114d85760158482815181106113d057fe5b602090810291909101810151825460018181018555600094855293839020825160049092020180546001600160a01b039283166001600160a01b0319918216178255938301519481018054958316958516959095179094556040820151600285018054606085015160808601511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590961692909716919091179290921692909217169290921790915560a0015160039091015585516016908790839081106114a057fe5b602090810291909101810151825460018101845560009384529282902081516114d29491909101929190910190617a1a565b506115e8565b8381815181106114e457fe5b6020026020010151601582815481106114f957fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a09091015160039091015585518690829081106115b457fe5b6020026020010151601682815481106115c957fe5b9060005260206000200190805190602001906115e6929190617a1a565b505b6001016113b3565b507fb8e726330a0dad1cf3d04e925663b17e391f1ed547d79b7f4e5f344119b44246826040516116209190618ed8565b60405180910390a150505050610e32565b60608061163e8386615513565b9150915060005b6001548110156117345760006001828154811061165e57fe5b90600052602060002090600402016003015490508060001461172b5760006001838154811061168957fe5b9060005260206000209060040201600301819055506120026001600160a01b031663092193ab82600185815481106116bd57fe5b60009182526020909120600491820201546040516001600160e01b031960e086901b1681526116f8926001600160a01b0390921691016181eb565b6000604051808303818588803b15801561171157600080fd5b505af1158015611725573d6000803e3d6000fd5b50505050505b50600101611645565b5047156117a2577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d4760405161176a9190618ed8565b60405180910390a1604051611002904780156108fc02916000818181858888f193505050501580156117a0573d6000803e3d6000fd5b505b600060038190556005558151156117bd576117bd82826159fa565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156117fa57600080fd5b505af115801561180e573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a150505050505050565b60035481565b606881565b61200581565b33612002146118765760405162461bcd60e51b8152600401610e1290618e92565b60005b6015548110156118fe57816001600160a01b03166015828154811061189a57fe5b60009182526020909120600490910201546001600160a01b031614156118f6576001601582815481106118c957fe5b9060005260206000209060040201600201601c6101000a81548160ff0219169083151502179055506118fe565b600101611879565b5050565b3341146119215760405162461bcd60e51b8152600401610e1290618d34565b60105443116119425760405162461bcd60e51b8152600401610e1290618738565b3a156119605760405162461bcd60e51b8152600401610e1290618a23565b60005460ff166119825760405162461bcd60e51b8152600401610e12906185a5565b60006110023168056bc75e2d631000008111156119b9576119b28168056bc75e2d6310000063ffffffff6161e916565b91506119c0565b5050611c41565b6040516309a99b4f60e41b815261100290639a99b4f0906119e790309086906004016181ff565b602060405180830381600087803b158015611a0157600080fd5b505af1158015611a15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a399190618096565b915081611a47575050611c41565b6000805b84811015611a7557858582818110611a5f57fe5b9050602002013582019150806001019050611a4b565b5080611a8357505050611c41565b6000806000805b89811015611c395784898983818110611a9f57fe5b90506020020135880281611aaf57fe5b0493508a8a82818110611abe57fe5b9050602002016020810190611ad39190617e3f565b6001600160a01b03811660009081526004602052604090205490935091508115611bef576000600180840381548110611b0857fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff1615611b7557836001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d8586604051611b689190618ed8565b60405180910390a2611be9565b600354611b88908663ffffffff61622b16565b6003908155810154611ba0908663ffffffff61622b16565b60038201556040516001600160a01b038516907fcb0aad6cf9cd03bdf6137e359f541c42f38b39f007cae8e89e88aa7d8c6617b290611be0908890618ed8565b60405180910390a25b50611c31565b826001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d8585604051611c289190618ed8565b60405180910390a25b600101611a8a565b505050505050505b5050436010555050565b6001546000908210611c5f57506000611d15565b60006001600160a01b031660018381548110611c7757fe5b60009182526020909120600490910201546001600160a01b03161480611ca757506008541580611ca75750600a54155b80611cb6575060085460095410155b80611cc75750611cc582611d1a565b155b80611cf057506000600b8381548110611cdc57fe5b906000526020600020906016020160000154115b80611d0457506001611d006130a3565b5111155b15611d1157506000611d15565b5060015b919050565b6001546000908210611d2e57506000611d15565b600b548210611d6b5760018281548110611d4457fe5b9060005260206000209060040201600201601c9054906101000a900460ff16159050611d15565b60018281548110611d7857fe5b9060005260206000209060040201600201601c9054906101000a900460ff16158015611dc55750600b8281548110611dac57fe5b600091825260209091206001601690920201015460ff16155b92915050565b600b54611e8957611dda6179eb565b60015460005b81811015611e8557600b80546001810182556000919091528351600080516020618fe583398151915260169092029182019081556020808601516000805160206196148339815191528401805460ff1916911515919091179055604086015180518794611e6193600080516020619005833981519152909101920190617a1a565b506060820151611e779060038301906013617a94565b505050806001019050611de0565b5050505b336110011480611e9a575033612002145b611eb65760405162461bcd60e51b8152600401610e12906185dc565b6001600160a01b03811660009081526004602052604090205480611eda5750611f2d565b6001810390506000600b8281548110611eef57fe5b600091825260209091206001601690920201015460ff169050611f128383615150565b8015611f1b5750805b15610e32576009805460001901905550505b50565b60015460609081906000805b82811015611f835760018181548110611f5157fe5b9060005260206000209060040201600201601c9054906101000a900460ff16611f7b576001909101905b600101611f3c565b50606081604051908082528060200260200182016040528015611fb0578160200160208202803683370190505b509050606082604051908082528060200260200182016040528015611fe957816020015b6060815260200190600190039081611fd45790505b50600b54600094509091508414156121645760005b8481101561215e576001818154811061201357fe5b9060005260206000209060040201600201601c9054906101000a900460ff16612156576001818154811061204357fe5b600091825260209091206004909102015483516001600160a01b039091169084908690811061206e57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600b818154811061209b57fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156121335780601f1061210857610100808354040283529160200191612133565b820191906000526020600020905b81548152906001019060200180831161211657829003601f168201915b505050505082858151811061214457fe5b60209081029190910101526001909301925b600101611ffe565b50612200565b60005b848110156121fe576001818154811061217c57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166121f657600181815481106121ac57fe5b600091825260209091206004909102015483516001600160a01b03909116908490869081106121d757fe5b6001600160a01b03909216602092830291909101909101526001909301925b600101612167565b505b909450925050505b9091565b600181565b61100181565b60085481565b603881565b600881565b6060806000600e549050600080600c5411612243576015612247565b600c545b905060606122536130a3565b9050606061226082616250565b905082825111612277579094509250612208915050565b83838351031015612289578282510393505b83156122bf5760c843046122a583838388880360008a8a6163be565b6122bd8383838888038989038a8b8b8b5103016163be565b505b6060836040519080825280602002602001820160405280156122eb578160200160208202803683370190505b50905060608460405190808252806020026020018201604052801561232457816020015b606081526020019060019003908161230f5790505b50905060005b858110156123a55784818151811061233e57fe5b602002602001015183828151811061235257fe5b60200260200101906001600160a01b031690816001600160a01b03168152505083818151811061237e57fe5b602002602001015182828151811061239257fe5b602090810291909101015260010161232a565b509096509450505050509091565b60065481565b61200681565b61200081565b6001600160a01b038116600090815260046020526040812054806123ed576000915050611d15565b6000190161115e81611d1a565b6001600160a01b03811660009081526004602052604081205480612422576000915050611d15565b60018082038154811061243157fe5b906000526020600020906004020160030154915050919050565b600081565b606781565b600f5481565b6012818154811061246857fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152935090918301828280156124f95780601f106124ce576101008083540402835291602001916124f9565b820191906000526020600020905b8154815290600101906020018083116124dc57829003601f168201915b505050505081565b60105481565b6001818154811061251457fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b601081565b61100881565b6103e881565b600b81565b600c5481565b61200381565b606681565b61271081565b33612000146125c45760405162461bcd60e51b8152600401610e1290618ce5565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f389021016058383836040516125f793929190618f21565b60405180910390a1505050565b60025481565b60115481565b60145460ff1681565b600a5481565b6001600160a01b038116600090815260046020526040812054806126555760405162461bcd60e51b8152600401610e1290618c6d565b6000190192915050565b600b5461271d5761266e6179eb565b60015460005b8181101561271957600b80546001810182556000919091528351600080516020618fe583398151915260169092029182019081556020808601516000805160206196148339815191528401805460ff19169115159190911790556040860151805187946126f593600080516020619005833981519152909101920190617a1a565b50606082015161270b9060038301906013617a94565b505050806001019050612674565b5050505b60085461272a5760036008555b600a54612737576002600a555b60006127423361261f565b905061274d81611c4b565b6127695760405162461bcd60e51b8152600401610e129061895a565b611f2d3382616515565b600981565b61100781565b600381565b60c881565b61100681565b6040518061062001604052806105ef81526020016190256105ef913981565b60005460ff1681565b61200281565b61300081565b6402540be40081565b60005460ff166127ed5760405162461bcd60e51b8152600401610e12906185a5565b336110071461280e5760405162461bcd60e51b8152600401610e1290618a51565b61287884848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b602082015291506165ad9050565b15612915576020811461289d5760405162461bcd60e51b8152600401610e1290618c27565b604080516020601f84018190048102820181019092528281526000916128db9185858083850183828082843760009201919091525061660692505050565b9050606481101580156128f15750620186a08111155b61290d5760405162461bcd60e51b8152600401610e129061884a565b600255613041565b61297584848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260098152686275726e526174696f60b81b602082015291506165ad9050565b15612a18576020811461299a5760405162461bcd60e51b8152600401610e12906183c3565b604080516020601f84018190048102820181019092528281526000916129d89185858083850183828082843760009201919091525061660692505050565b90506127106129f2600f548361622b90919063ffffffff16565b1115612a105760405162461bcd60e51b8152600401610e12906183fa565b600655613041565b612a8284848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260138152726d61784e756d4f664d61696e7461696e696e6760681b602082015291506165ad9050565b15612b1c5760208114612aa75760405162461bcd60e51b8152600401610e1290618462565b604080516020601f8401819004810282018101909252828152600091612ae59185858083850183828082843760009201919091525061660692505050565b600c5490915080612af4575060155b808210612b135760405162461bcd60e51b8152600401610e12906187a2565b50600855613041565b612b8584848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61696e7461696e536c6173685363616c6560701b602082015291506165ad9050565b15612c1e5760208114612baa5760405162461bcd60e51b8152600401610e129061852b565b604080516020601f8401819004810282018101909252828152600091612be89185858083850183828082843760009201919091525061660692505050565b9050600081118015612bfa5750600a81105b612c165760405162461bcd60e51b8152600401610e1290618dc5565b600a55613041565b612c9284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601981527f6d61784e756d4f66576f726b696e6743616e6469646174657300000000000000602082015291506165ad9050565b15612d215760208114612cb75760405162461bcd60e51b8152600401610e12906184df565b604080516020601f8401819004810282018101909252828152600091612cf59185858083850183828082843760009201919091525061660692505050565b9050600d54811115612d195760405162461bcd60e51b8152600401610e12906188c0565b600e55613041565b612d8a84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61784e756d4f6643616e6469646174657360701b602082015291506165ad9050565b15612e0c5760208114612daf5760405162461bcd60e51b8152600401610e1290618a9f565b604080516020601f8401819004810282018101909252828152600091612ded9185858083850183828082843760009201919091525061660692505050565b600d819055600e54909150811015612e0657600d54600e555b50613041565b612e7084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c6e756d4f66436162696e65747360981b602082015291506165ad9050565b15612f1e5760208114612e955760405162461bcd60e51b8152600401610e1290618570565b604080516020601f8401819004810282018101909252828152600091612ed39185858083850183828082843760009201919091525061660692505050565b905060008111612ef55760405162461bcd60e51b8152600401610e129061864a565b6064811115612f165760405162461bcd60e51b8152600401610e1290618692565b600c55613041565b612f8684848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601181527073797374656d526577617264526174696f60781b602082015291506165ad9050565b156130295760208114612fab5760405162461bcd60e51b8152600401610e1290618d81565b604080516020601f8401819004810282018101909252828152600091612fe99185858083850183828082843760009201919091525061660692505050565b90506127106130036006548361622b90919063ffffffff16565b11156130215760405162461bcd60e51b8152600401610e1290618b88565b600f55613041565b60405162461bcd60e51b8152600401610e1290618e22565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040516130769493929190618391565b60405180910390a150505050565b60046020526000908152604090205481565b68056bc75e2d6310000081565b6001546060906000805b828110156130d2576130be81611d1a565b156130ca578160010191505b6001016130ad565b506060816040519080825280602002602001820160405280156130ff578160200160208202803683370190505b5090506000915060005b838110156131865761311a81611d1a565b1561317e576001818154811061312c57fe5b600091825260209091206004909102015482516001600160a01b039091169083908590811061315757fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508260010192505b600101613109565b50925050505b90565b601581565b61027181565b61100281565b6013818154811061246857fe5b60006131b76130a3565b519050600080600c54116131cc5760156131d0565b600c545b9050808211156131de578091505b816131e857600191505b5090565b67016345785d8a000081565b60055481565b61100381565b61200481565b60005460ff161561322d5760405162461bcd60e51b8152600401610e1290618b51565b613235617ac1565b600061325b6040518061062001604052806105ef81526020016190256105ef9139613d71565b915091508061327c5760405162461bcd60e51b8152600401610e1290618ca4565b60005b8260200151518110156133a15760018360200151828151811061329e57fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a09093015160039093019290925591860151805191850193918590811061337457fe5b602090810291909101810151516001600160a01b031682528101919091526040016000205560010161327f565b50506103e8600255506000805460ff19166001179055565b600d5481565b601354600090815b818110156134c8576134b085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060138054909250859150811061341857fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156134a65780601f1061347b576101008083540402835291602001916134a6565b820191906000526020600020905b81548152906001019060200180831161348957829003601f168201915b505050505061660b565b156134c057600192505050611dc5565b6001016133c7565b5060125460005b818110156135395761352086868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060128054909250859150811061341857fe5b156135315760019350505050611dc5565b6001016134cf565b50600095945050505050565b33611001146135665760405162461bcd60e51b8152600401610e1290618e49565b600b54613624576135756179eb565b60015460005b8181101561362057600b80546001810182556000919091528351600080516020618fe583398151915260169092029182019081556020808601516000805160206196148339815191528401805460ff19169115159190911790556040860151805187946135fc93600080516020619005833981519152909101920190617a1a565b5060608201516136129060038301906013617a94565b50505080600101905061357b565b5050505b600061362f8261666f565b905061363a81611c4b565b156118fe576118fe8282616515565b606581565b601181565b3341146136725760405162461bcd60e51b8152600401610e1290618d34565b60005460ff166136945760405162461bcd60e51b8152600401610e12906185a5565b600034116136b45760405162461bcd60e51b8152600401610e1290618891565b3a156136d25760405162461bcd60e51b8152600401610e1290618a23565b6001600160a01b03811660009081526004602052604090205460145434919060ff1661371257610271600f556103e86006556014805460ff191660011790555b60008211801561372457506000600f54115b156137d6576000613752612710613746600f54346167f290919063ffffffff16565b9063ffffffff61682c16565b905080156137d4576040516110029082156108fc029083906000818181858888f19350505050158015613789573d6000803e3d6000fd5b507f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d816040516137b99190618ed8565b60405180910390a16137d1838263ffffffff6161e916565b92505b505b6000821180156137e857506000600654115b1561388e57600061380a612710613746600654346167f290919063ffffffff16565b9050801561388c5760405161dead9082156108fc029083906000818181858888f19350505050158015613841573d6000803e3d6000fd5b507f627059660ea01c4733a328effb2294d2f86905bf806da763a89cee254de8bee5816040516138719190618ed8565b60405180910390a1613889838263ffffffff6161e916565b92505b505b801561398c5760006001808303815481106138a557fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff161561391257836001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4846040516139059190618ed8565b60405180910390a2613986565b600354613925908463ffffffff61622b16565b600390815581015461393d908463ffffffff61622b16565b60038201556040516001600160a01b038516907f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc0559061397d908690618ed8565b60405180910390a25b50610e32565b826001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4836040516139c59190618ed8565b60405180910390a2505050565b600e5481565b61100081565b61dead81565b600b81815481106139f157fe5b6000918252602091829020601691909102018054600180830154600280850180546040805161010096831615969096026000190190911692909204601f810188900488028501880190925281845293965060ff90911694919291830182828015613a9c5780601f10613a7157610100808354040283529160200191613a9c565b820191906000526020600020905b815481529060010190602001808311613a7f57829003601f168201915b5050505050905083565b61100481565b6000600a5460001480613abd575081155b80613ac85750600954155b15613ad55750600061115e565b6000613b0f600a5461374685613746600b8981548110613af157fe5b6000918252602090912060169091020154439063ffffffff6161e916565b90506000806110016001600160a01b0316638256ace66040518163ffffffff1660e01b8152600401604080518083038186803b158015613b4e57600080fd5b505afa158015613b62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b8691906180ae565b9150915060009350808310613ce557613b9f8787615150565b5060405163436aa28360e11b8152600090612002906386d5450690613bc8908b906004016181eb565b60206040518083038186803b158015613be057600080fd5b505afa158015613bf4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c189190617e5b565b6001600160a01b031614613c84576040516313d13bdb60e31b815261100190639e89ded890613c4d908a9087906004016181ff565b600060405180830381600087803b158015613c6757600080fd5b505af1158015613c7b573d6000803e3d6000fd5b50505050613cdc565b6040516305bfb49960e41b815261100190635bfb499090613ca9908a906004016181eb565b600060405180830381600087803b158015613cc357600080fd5b505af1158015613cd7573d6000803e3d6000fd5b505050505b60019350613cf7565b818310613cf757613cf58761666f565b505b60098054600019019055600b80546000919088908110613d1357fe5b60009182526020822060169190910201600101805460ff1916921515929092179091556040516001600160a01b038916917fb9d38178dc641ff1817967a63c9078cbcd955a9f1fcd75e0e3636de615d44d3b91a25050509392505050565b613d79617ac1565b6000613d83617ac1565b613d8b617b5e565b613d9c613d978661686e565b616893565b90506000805b613dab836168dd565b15613f1f5780613dd057613dc6613dc1846168fe565b61694c565b60ff168452613f17565b8060011415613f12576060613dec613de7856168fe565b6169cc565b90508051604051908082528060200260200182016040528015613e2957816020015b613e16617ae5565b815260200190600190039081613e0e5790505b5085602001819052508051604051908082528060200260200182016040528015613e6757816020015b6060815260200190600190039081613e525790505b50604086015260005b8151811015613f0757613e81617ae5565b60606000613ea1858581518110613e9457fe5b6020026020010151616a9d565b92509250925080613ec1578860009a509a50505050505050505050613f28565b8289602001518581518110613ed257fe5b60200260200101819052508189604001518581518110613eee57fe5b6020026020010181905250505050806001019050613e70565b506001925050613f17565b613f1f565b600101613da2565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b6060815260200190600190039081613f47579050509050613f6d8363ffffffff16616bb7565b81600081518110613f7a57fe5b602002602001018190525061115e81616bca565b6000606483511115613fc557600080516020618fc5833981519152604051613fb5906186ef565b60405180910390a1506066611dc5565b60005b83518110156140635760005b8181101561405a57848181518110613fe857fe5b6020026020010151600001516001600160a01b031685838151811061400957fe5b6020026020010151600001516001600160a01b0316141561405257600080516020618fc583398151915260405161403f906187ff565b60405180910390a1606692505050611dc5565b600101613fd4565b50600101613fc8565b5060608060606015805480602002602001604051908101604052809291908181526020016000905b828210156141155760008481526020908190206040805160c0810182526004860290920180546001600160a01b039081168452600180830154821685870152600283015491821693850193909352600160a01b81046001600160401b03166060850152600160e01b900460ff16151560808401526003015460a0830152908352909201910161408b565b50505050905060606016805480602002602001604051908101604052809291908181526020016000905b828210156141ea5760008481526020908190208301805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156141d65780601f106141ab576101008083540402835291602001916141d6565b820191906000526020600020905b8154815290600101906020018083116141b957829003601f168201915b50505050508152602001906001019061413f565b50505050905060005b82518110156142475782818151811061420857fe5b60200260200101516060015160030283828151811061422357fe5b60209081029190910101516001600160401b039091166060909101526001016141f3565b5060608061425789898686616c54565b915091506142658282615513565b600154604080518281526020808402820101909152929850909650600095508594509250606091508280156142a4578160200160208202803683370190505b50905060005b828110156144355760006001600160a01b03166120026001600160a01b03166386d54506600184815481106142db57fe5b60009182526020909120600491820201546040516001600160e01b031960e085901b168152614316926001600160a01b0390921691016181eb565b60206040518083038186803b15801561432e57600080fd5b505afa158015614342573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143669190617e5b565b6001600160a01b0316146143c857600182828151811061438257fe5b602002602001019060ff16908160ff1681525050600181815481106143a357fe5b9060005260206000209060040201600301546000146143c3578360010193505b61442d565b67016345785d8a0000600182815481106143de57fe5b906000526020600020906004020160030154106144005784600101945061442d565b6001818154811061440d57fe5b90600052602060002090600402016003015460001461442d578360010193505b6001016142aa565b50606084604051908082528060200260200182016040528015614462578160200160208202803683370190505b509050606085604051908082528060200260200182016040528015614491578160200160208202803683370190505b5090506060866040519080825280602002602001820160405280156144c0578160200160208202803683370190505b5090506060876040519080825280602002602001820160405280156144ef578160200160208202803683370190505b5090506000606088604051908082528060200260200182016040528015614520578160200160208202803683370190505b50905060608960405190808252806020026020018201604052801561454f578160200160208202803683370190505b50905060009a506000995060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b15801561459757600080fd5b505afa1580156145ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145cf9190618096565b905067016345785d8a000081111561461b57600080516020618fc58339815191526040516145fc90618b10565b60405180910390a160689e505050505050505050505050505050611dc5565b60005b8a8110156149af5789818151811061463257fe5b602002602001015160ff1660011415614728576001818154811061465257fe5b906000526020600020906004020160030154600014614723576001818154811061467857fe5b600091825260209091206004909102015484516001600160a01b039091169085908e9081106146a357fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600181815481106146d057fe5b906000526020600020906004020160030154838d815181106146ee57fe5b60200260200101818152505060018a8d8151811061470857fe5b602002602001019060ff16908160ff16815250508b6001019b505b6149a7565b67016345785d8a00006001828154811061473e57fe5b906000526020600020906004020160030154106148c3576001818154811061476257fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316898e8151811061479357fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be400600183815481106147c857fe5b906000526020600020906004020160030154816147e157fe5b06600183815481106147ef57fe5b90600052602060002090600402016003015403905061481783826161e990919063ffffffff16565b898f8151811061482357fe5b6020026020010181815250506001828154811061483c57fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316878f8151811061486d57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081888f8151811061489a57fe5b60209081029190910101526148b5868263ffffffff61622b16565b95508d6001019d50506149a7565b600181815481106148d057fe5b9060005260206000209060040201600301546000146149a757600181815481106148f657fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316848d8151811061492757fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506001818154811061495457fe5b906000526020600020906004020160030154838d8151811061497257fe5b60200260200101818152505060008a8d8151811061498c57fe5b602002602001019060ff16908160ff16815250508b6001019b505b60010161461e565b5060008415614c25576002546040516303702b2960e51b815261100491636e0565209188916149e9918e918e918d914201906004016182f9565b6020604051808303818588803b158015614a0257600080fd5b505af193505050508015614a33575060408051601f3d908101601f19168201909252614a3091810190617fc3565b60015b614baa576040516000815260443d1015614a4f57506000614aea565b60046000803e60005160e01c6308c379a08114614a70576000915050614aea565b60043d036004833e81513d60248201116001600160401b0382111715614a9b57600092505050614aea565b80830180516001600160401b03811115614abc576000945050505050614aea565b8060208301013d8601811115614ada57600095505050505050614aea565b601f01601f191660405250925050505b80614af55750614b37565b60019150857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf28082604051614b29919061837e565b60405180910390a250614ba5565b3d808015614b61576040519150601f19603f3d011682016040523d82523d6000602084013e614b66565b606091505b5060019150857fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a4582604051614b9b919061837e565b60405180910390a2505b614c25565b8015614bec577fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b7086604051614bdf9190618ed8565b60405180910390a1614c23565b857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280604051614c1a906184a8565b60405180910390a25b505b8015614ddb5760005b8751811015614dd9576000888281518110614c4557fe5b60200260200101519050600060018281548110614c5e57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc9185908110614c8f57fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f1935050505090508015614d4b5760018281548110614cd057fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d9185908110614d1f57fe5b906000526020600020906004020160030154604051614d3e9190618ed8565b60405180910390a2614dcf565b60018281548110614d5857fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d9185908110614da757fe5b906000526020600020906004020160030154604051614dc69190618ed8565b60405180910390a25b5050600101614c2e565b505b835115614fd15760005b8451811015614fcf578a8181518110614dfa57fe5b602002602001015160ff1660011415614e99576120026001600160a01b031663092193ab858381518110614e2a57fe5b6020026020010151878481518110614e3e57fe5b60200260200101516040518363ffffffff1660e01b8152600401614e6291906181eb565b6000604051808303818588803b158015614e7b57600080fd5b505af1158015614e8f573d6000803e3d6000fd5b5050505050614fc7565b6000858281518110614ea757fe5b60200260200101516001600160a01b03166108fc868481518110614ec757fe5b60200260200101519081150290604051600060405180830381858888f1935050505090508015614f5d57858281518110614efd57fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d868481518110614f3b57fe5b6020026020010151604051614f509190618ed8565b60405180910390a2614fc5565b858281518110614f6957fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d868481518110614fa757fe5b6020026020010151604051614fbc9190618ed8565b60405180910390a25b505b600101614de5565b505b5050505050505050505050505060005b60015481101561503e5760018181548110614ff857fe5b9060005260206000209060040201600301546000146150365760006001828154811061502057fe5b9060005260206000209060040201600301819055505b600101614fe1565b5047156150ac577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d476040516150749190618ed8565b60405180910390a1604051611002904780156108fc02916000818181858888f193505050501580156150aa573d6000803e3d6000fd5b505b600060038190556005558151156150c7576150c782826159fa565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561510457600080fd5b505af1158015615118573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a1506000949350505050565b6000806001838154811061516057fe5b9060005260206000209060040201600301549050600060018080549050039050600161518a6130a3565b51116151bf5760006001858154811061519f57fe5b906000526020600020906004020160030181905550600092505050611dc5565b846001600160a01b03167f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a70836040516151f89190618ed8565b60405180910390a26001600160a01b038516600090815260046020526040812055835b600154600019018110156153e5576001816001018154811061523957fe5b90600052602060002090600402016001828154811061525457fe5b60009182526020909120825460049092020180546001600160a01b03199081166001600160a01b0393841617825560018085015481840180548416918616919091179055600280860180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b19909416939093179055600392830154920191909155600b80549091830190811061531557fe5b9060005260206000209060160201600b828154811061533057fe5b600091825260209091208254601690920201908155600180830154818301805460ff909216151560ff1990921691909117905560028084018054615387938386019390821615610100026000190190911604617b7e565b5061539a60038281019084016013617bf3565b509050508060010160046000600184815481106153b357fe5b600091825260208083206004909202909101546001600160a01b0316835282019290925260400190205560010161521b565b5060018054806153f157fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b80548061544457fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906154766002830182617b1a565b615484600383016000617c1d565b50509055600081838161549357fe5b04905080156155075760015460005b81811015615504576154db83600183815481106154bb57fe5b90600052602060002090600402016003015461622b90919063ffffffff16565b600182815481106154e857fe5b60009182526020909120600360049092020101556001016154a2565b50505b50600195945050505050565b6060806000808080806155246131ad565b6001549091505b801561575357600181039250600b838154811061554457fe5b600091825260209091206001601690920201015460ff166155645761574a565b6001838154811061557157fe5b60009182526020909120600490910201546001600160a01b03169450615598858484613aac565b9350836155a45761574a565b60405163436aa28360e11b81526000908190612002906386d54506906155ce908a906004016181eb565b60206040518083038186803b1580156155e657600080fd5b505afa1580156155fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061561e9190617e5b565b90506001600160a01b038116156156a7576040516302ceee9160e11b81526120029063059ddd22906156549084906004016181eb565b60206040518083038186803b15801561566c57600080fd5b505afa158015615680573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906156a49190617e5b565b91505b60005b8c5181101561574657876001600160a01b03168d82815181106156c957fe5b6020026020010151600001516001600160a01b031614806157125750826001600160a01b03168d82815181106156fb57fe5b6020026020010151600001516001600160a01b0316145b1561573e5760018d828151811061572557fe5b6020908102919091010151901515608090910152615746565b6001016156aa565b5050505b6000190161552b565b5060005b89518110156157c05789818151811061576c57fe5b602002602001015160800151806157ac575060006001600160a01b03168a828151811061579557fe5b6020026020010151600001516001600160a01b0316145b156157b8578560010195505b600101615757565b50885185106158a85760408051600180825281830190925290816020015b6157e6617ae5565b8152602001906001900390816157de575050604080516001808252818301909252919850602082015b606081526020019060019003908161580f5790505095508860008151811061583357fe5b60200260200101518760008151811061584857fe5b60200260200101819052508760008151811061586057fe5b60200260200101518660008151811061587557fe5b602002602001018190525060008760008151811061588f57fe5b60209081029190910101519015156080909101526159ed565b848951036040519080825280602002602001820160405280156158e557816020015b6158d2617ae5565b8152602001906001900390816158ca5790505b5096508489510360405190808252806020026020018201604052801561591f57816020015b606081526020019060019003908161590a5790505b5095506000915060005b89518110156159eb5789818151811061593e57fe5b602002602001015160800151158015615981575060006001600160a01b03168a828151811061596957fe5b6020026020010151600001516001600160a01b031614155b156159e35789818151811061599257fe5b60200260200101518884815181106159a657fe5b60200260200101819052508881815181106159bd57fe5b60200260200101518784815181106159d157fe5b60200260200101819052508260010192505b600101615929565b505b50505050505b9250929050565b600154825160005b82811015615b17576001615a14617ae5565b60018381548110615a2157fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b84811015615aeb57878181518110615ab157fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b03161415615ae35760009250615aeb565b600101615a9d565b508115615b0d5780516001600160a01b03166000908152600460205260408120555b5050600101615a02565b5080821115615bd657805b82811015615bd4576001805480615b3557fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b805480615b8857fe5b60008281526020812060166000199093019283020181815560018101805460ff1916905590615bba6002830182617b1a565b615bc8600383016000617c1d565b50509055600101615b22565b505b6000818310615be55781615be7565b825b905060005b81811015615f8b57615c99868281518110615c0357fe5b602002602001015160018381548110615c1857fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a0820152617020565b615e4d578060010160046000888481518110615cb157fe5b6020026020010151600001516001600160a01b03166001600160a01b0316815260200190815260200160002081905550858181518110615ced57fe5b602002602001015160018281548110615d0257fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a0909101516003909101558451859082908110615dbd57fe5b6020026020010151600b8281548110615dd257fe5b90600052602060002090601602016002019080519060200190615df6929190617a1a565b506000600b8281548110615e0657fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b805483908110615e3757fe5b6000918252602090912060169091020155615f83565b858181518110615e5957fe5b60200260200101516060015160018281548110615e7257fe5b906000526020600020906004020160020160146101000a8154816001600160401b0302191690836001600160401b03160217905550615f38858281518110615eb657fe5b6020026020010151600b8381548110615ecb57fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156134a65780601f1061347b576101008083540402835291602001916134a6565b615f8357848181518110615f4857fe5b6020026020010151600b8281548110615f5d57fe5b90600052602060002090601602016002019080519060200190615f81929190617a1a565b505b600101615bec565b508282111561616357615f9c6179eb565b835b8381101561616057858181518110615fb257fe5b602002602001015182604001819052506001878281518110615fd057fe5b6020908102919091018101518254600181810185556000948552838520835160049093020180546001600160a01b039384166001600160a01b0319918216178255848601518284018054918616918316919091179055604080860151600284018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909a1692909616919091179290921696909617169190911790935560a090930151600390930192909255600b8054928301815590935284516016909102600080516020618fe58339815191528101918255858301516000805160206196148339815191528201805491151560ff19909216919091179055928501518051869492936161069360008051602061900583398151915201920190617a1a565b50606082015161611c9060038301906013617a94565b505050806001016004600089848151811061613357fe5b602090810291909101810151516001600160a01b0316825281019190915260400160002055600101615f9e565b50505b61616b61707c565b616173617264565b6000600981905560015493505b838110156161e1576000600b828154811061619757fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b8054839081106161c857fe5b6000918252602090912060169091020155600101616180565b505050505050565b600061115e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250617452565b60008282018381101561115e5760405162461bcd60e51b8152600401610e1290618613565b60015481516040805182815260208084028201019091526060929190839082801561628f57816020015b606081526020019060019003908161627a5790505b50600b5490915083146162a6579250611d15915050565b60005b828110156163b557600b6001600460008985815181106162c557fe5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205403815481106162f957fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156163915780601f1061636657610100808354040283529160200191616391565b820191906000526020600020905b81548152906001019060200180831161637457829003601f168201915b50505050508282815181106163a257fe5b60209081029190910101526001016162a9565b50949350505050565b60005b8281101561650b57600082878388016040516020016163e19291906181dd565b6040516020818303038152906040528051906020012060001c8161640157fe5b06905080850182870114616502576000898388018151811061641f57fe5b602002602001015190506060898489018151811061643957fe5b602002602001015190508a8388018151811061645157fe5b60200260200101518b858a018151811061646757fe5b60200260200101906001600160a01b031690816001600160a01b031681525050818b8489018151811061649657fe5b60200260200101906001600160a01b031690816001600160a01b03168152505089838801815181106164c457fe5b60200260200101518a858a01815181106164da57fe5b6020026020010181905250808a848901815181106164f457fe5b602002602001018190525050505b506001016163c1565b5050505050505050565b600980546001908101909155600b80548390811061652f57fe5b906000526020600020906016020160010160006101000a81548160ff02191690831515021790555043600b828154811061656557fe5b600091825260208220601690910201919091556040516001600160a01b038416917ff62981a567ec3cec866c6fa93c55bcdf841d6292d18b8d522ececa769375d82d91a25050565b6000816040516020016165c091906181c1565b60405160208183030381529060405280519060200120836040516020016165e791906181c1565b6040516020818303038152906040528051906020012014905092915050565b015190565b8151815160009160019181148083146166275760009250616665565b600160208701838101602088015b6002848385100114156166605780518351146166545760009650600093505b60209283019201616635565b505050505b5090949350505050565b6001600160a01b0381166000908152600460205260408120548061669857506000199050611d15565b6001810390506000600182815481106166ad57fe5b90600052602060002090600402016003015490506000600183815481106166d057fe5b6000918252602090912060036004909202010155600154604051600019909101906001600160a01b038616907f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d90616729908590618ed8565b60405180910390a28061674157829350505050611d15565b600081838161674c57fe5b04905080156167e85760005b8481101561679a5761677182600183815481106154bb57fe5b6001828154811061677e57fe5b6000918252602090912060036004909202010155600101616758565b50600180549085015b818110156167e5576167bc83600183815481106154bb57fe5b600182815481106167c957fe5b60009182526020909120600360049092020101556001016167a3565b50505b5091949350505050565b60008261680157506000611dc5565b8282028284828161680e57fe5b041461115e5760405162461bcd60e51b8152600401610e12906189e2565b600061115e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061747e565b616876617c2c565b506040805180820190915281518152602082810190820152919050565b61689b617b5e565b6168a4826174b5565b6168ad57600080fd5b60006168bc83602001516174ef565b60208085015160408051808201909152868152920190820152915050919050565b60006168e7617c2c565b505080518051602091820151919092015191011190565b616906617c2c565b61690f826168dd565b61691857600080fd5b6020820151600061692882617552565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061696157508151602110155b61696a57600080fd5b600061697983602001516174ef565b9050808360000151101561699f5760405162461bcd60e51b8152600401610e1290618bf0565b8251602080850151830180519284900392918310156163b557506020919091036101000a90049392505050565b60606169d7826174b5565b6169e057600080fd5b60006169eb83617633565b9050606081604051908082528060200260200182016040528015616a2957816020015b616a16617c2c565b815260200190600190039081616a0e5790505b5090506000616a3b85602001516174ef565b60208601510190506000805b84811015616a9257616a5883617552565b9150604051806040016040528083815260200184815250848281518110616a7b57fe5b602090810291909101015291810191600101616a47565b509195945050505050565b616aa5617ae5565b60606000616ab1617ae5565b6060616abb617b5e565b616ac487616893565b90506000805b616ad3836168dd565b15616ba85780616afe57616aee616ae9846168fe565b61768f565b6001600160a01b03168552616ba0565b8060011415616b2657616b13616ae9846168fe565b6001600160a01b03166020860152616ba0565b8060021415616b4e57616b3b616ae9846168fe565b6001600160a01b03166040860152616ba0565b8060031415616b7a57616b63613dc1846168fe565b6001600160401b0316606086015260019150616ba0565b8060041415616b9b57616b94616b8f846168fe565b6176a9565b9350616ba0565b616ba8565b600101616aca565b50929791965091945092505050565b6060611dc5616bc583617719565b6177ff565b6060815160001415616beb5750604080516000815260208101909152611d15565b606082600081518110616bfa57fe5b602002602001015190506000600190505b8351811015616c3b57616c3182858381518110616c2457fe5b6020026020010151617851565b9150600101616c0b565b5061115e616c4e825160c060ff166178ce565b82617851565b60608060006120026001600160a01b031663c473318f6040518163ffffffff1660e01b815260040160206040518083038186803b158015616c9457600080fd5b505afa158015616ca8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190616ccc9190618096565b90508085518851011015616ce1575083518651015b606081604051908082528060200260200182016040528015616d1d57816020015b616d0a617ae5565b815260200190600190039081616d025790505b509050606082604051908082528060200260200182016040528015616d5657816020015b6060815260200190600190039081616d415790505b50905060008060005b8b51831080616d6e5750895182105b8015616d7957508581105b1561700e578b51831415616de957898281518110616d9357fe5b6020026020010151858281518110616da757fe5b6020026020010181905250888281518110616dbe57fe5b6020026020010151848281518110616dd257fe5b602090810291909101015260019182019101616d5f565b8951821415616e54578b8381518110616dfe57fe5b6020026020010151858281518110616e1257fe5b60200260200101819052508a8381518110616e2957fe5b6020026020010151848281518110616e3d57fe5b602090810291909101015260019283019201616d5f565b898281518110616e6057fe5b6020026020010151606001516001600160401b03168c8481518110616e8157fe5b6020026020010151606001516001600160401b03161115616efd578b8381518110616ea857fe5b6020026020010151858281518110616ebc57fe5b60200260200101819052508a8381518110616ed357fe5b6020026020010151848281518110616ee757fe5b6020026020010181905250826001019250617006565b898281518110616f0957fe5b6020026020010151606001516001600160401b03168c8481518110616f2a57fe5b6020026020010151606001516001600160401b03161015616fa657898281518110616f5157fe5b6020026020010151858281518110616f6557fe5b6020026020010181905250888281518110616f7c57fe5b6020026020010151848281518110616f9057fe5b6020026020010181905250816001019150617006565b898281518110616fb257fe5b6020026020010151600001516001600160a01b03168c8481518110616fd357fe5b6020026020010151600001516001600160a01b03161015616ffa578b8381518110616ea857fe5b898281518110616d9357fe5b600101616d5f565b50929a91995090975050505050505050565b805182516000916001600160a01b03918216911614801561705a575081602001516001600160a01b031683602001516001600160a01b0316145b801561115e5750506040908101519101516001600160a01b0390811691161490565b601254601354808211156170c757805b828110156170c557601280548061709f57fe5b6001900381819060005260206000200160006170bb9190617b1a565b905560010161708c565b505b60008183106170d657816170d8565b825b905060005b818110156171f057617195601282815481106170f557fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156171835780601f1061715857610100808354040283529160200191617183565b820191906000526020600020905b81548152906001019060200180831161716657829003601f168201915b50505050506013838154811061341857fe5b6171e857601381815481106171a657fe5b90600052602060002001601282815481106171bd57fe5b9060005260206000200190805460018160011615610100020316600290046171e6929190617b7e565b505b6001016170dd565b5082821115610e3257825b8281101561725e5760126013828154811061721257fe5b6000918252602080832084546001818101875595855291909320929091018054617255949390920192909160026101009282161592909202600019011604617b7e565b506001016171fb565b50505050565b601354600b54808211156172af57805b828110156172ad57601380548061728757fe5b6001900381819060005260206000200160006172a39190617b1a565b9055600101617274565b505b60008183106172be57816172c0565b825b905060005b818110156173df5761737d601382815481106172dd57fe5b600091825260209182902001805460408051601f600260001961010060018716150201909416939093049283018590048502810185019091528181529283018282801561736b5780601f106173405761010080835404028352916020019161736b565b820191906000526020600020905b81548152906001019060200180831161734e57829003601f168201915b5050505050600b8381548110615ecb57fe5b6173d757600b818154811061738e57fe5b9060005260206000209060160201600201601382815481106173ac57fe5b9060005260206000200190805460018160011615610100020316600290046173d5929190617b7e565b505b6001016172c5565b5082821115610e3257825b8281101561725e576013600b828154811061740157fe5b60009182526020808320845460018082018755958552919093206016929092029092016002908101805461744995939094019390926000199082161561010002011604617b7e565b506001016173ea565b600081848411156174765760405162461bcd60e51b8152600401610e12919061837e565b505050900390565b6000818361749f5760405162461bcd60e51b8152600401610e12919061837e565b5060008385816174ab57fe5b0495945050505050565b80516000906174c657506000611d15565b6020820151805160001a9060c08210156174e557600092505050611d15565b5060019392505050565b8051600090811a6080811015617509576000915050611d15565b60b8811080617524575060c08110801590617524575060f881105b15617533576001915050611d15565b60c08110156175475760b519019050611d15565b60f519019050611d15565b80516000908190811a608081101561756d576001915061762c565b60b881101561758257607e198101915061762c565b60c08110156175d357600060b78203600186019550806020036101000a8651049150600181018201935050808310156175cd5760405162461bcd60e51b8152600401610e129061892f565b5061762c565b60f88110156175e85760be198101915061762c565b600060f78203600186019550806020036101000a86510491506001810182019350508083101561762a5760405162461bcd60e51b8152600401610e129061892f565b505b5092915050565b805160009061764457506000611d15565b6000809050600061765884602001516174ef565b602085015185519181019250015b808210156176865761767782617552565b82019150826001019250617666565b50909392505050565b80516000906015146176a057600080fd5b611dc58261694c565b80516060906176b757600080fd5b60006176c683602001516174ef565b83516040805191839003808352601f19601f82011683016020019091529192506060908280156176fd576020820181803683370190505b50905060008160200190506163b58487602001510182856179a0565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff19841661775d57506018617781565b6fffffffffffffffffffffffffffffffff19841661777d57506010617781565b5060005b60208110156177b75781818151811061779657fe5b01602001516001600160f81b031916156177af576177b7565b600101617781565b60008160200390506060816040519080825280601f01601f1916602001820160405280156177ec576020820181803683370190505b5080830196909652508452509192915050565b6060815160011480156178315750607f60f81b8260008151811061781f57fe5b01602001516001600160f81b03191611155b1561783d575080611d15565b611dc561784f8351608060ff166178ce565b835b6060806040519050835180825260208201818101602087015b8183101561788257805183526020928301920161786a565b50855184518101855292509050808201602086015b818310156178af578051835260209283019201617897565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106178f85760405162461bcd60e51b8152600401610e129061877a565b604080516001808252818301909252606091602082018180368337019050509050603784116179525782840160f81b8160008151811061793457fe5b60200101906001600160f81b031916908160001a9053509050611dc5565b606061795d85617719565b90508381510160370160f81b8260008151811061797657fe5b60200101906001600160f81b031916908160001a9053506179978282617851565b95945050505050565b806179aa57610e32565b5b602081106179ca578251825260209283019290910190601f19016179ab565b915181516020939093036101000a6000190180199091169216919091179052565b60405180608001604052806000815260200160001515815260200160608152602001617a15617c46565b905290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10617a5b57805160ff1916838001178555617a88565b82800160010185558215617a88579182015b82811115617a88578251825591602001919060010190617a6d565b506131e8929150617c65565b8260138101928215617a885791602002820182811115617a88578251825591602001919060010190617a6d565b6040518060600160405280600060ff16815260200160608152602001606081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b50805460018160011615610100020316600290046000825580601f10617b405750611f2d565b601f016020900490600052602060002090810190611f2d9190617c65565b6040518060400160405280617b71617c2c565b8152602001600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10617bb75780548555617a88565b82800160010185558215617a8857600052602060002091601f016020900482015b82811115617a88578254825591600101919060010190617bd8565b8260138101928215617a885791820182811115617a88578254825591600101919060010190617bd8565b50611f2d906013810190617c65565b604051806040016040528060008152602001600081525090565b6040518061026001604052806013906020820280368337509192915050565b61318c91905b808211156131e85760008155600101617c6b565b8035611dc581618faf565b60008083601f840112617c9b578182fd5b5081356001600160401b03811115617cb1578182fd5b60208301915083602080830285010111156159f357600080fd5b6000601f8381840112617cdc578182fd5b8235617cef617cea82618f64565b618f3e565b818152925060208084019085810160005b84811015617d81578135880189603f820112617d1b57600080fd5b838101356001600160401b03811115617d3357600080fd5b617d44818901601f19168601618f3e565b81815260408c81848601011115617d5a57600080fd5b82818501888401375060009181018601919091528552509282019290820190600101617d00565b50505050505092915050565b600082601f830112617d9d578081fd5b8135617dab617cea82618f64565b818152915060208083019084810181840286018201871015617dcc57600080fd5b6000805b85811015617d815782356001600160401b0381168114617dee578283fd5b85529383019391830191600101617dd0565b60008083601f840112617e11578182fd5b5081356001600160401b03811115617e27578182fd5b6020830191508360208285010111156159f357600080fd5b600060208284031215617e50578081fd5b813561115e81618faf565b600060208284031215617e6c578081fd5b815161115e81618faf565b60008060008060408587031215617e8c578283fd5b84356001600160401b0380821115617ea2578485fd5b617eae88838901617c8a565b90965094506020870135915080821115617ec6578384fd5b50617ed387828801617c8a565b95989497509550505050565b600080600060608486031215617ef3578283fd5b83356001600160401b0380821115617f09578485fd5b81860187601f820112617f1a578586fd5b80359250617f2a617cea84618f64565b80848252602080830192508084018b828389028701011115617f4a57898afd5b8994505b86851015617f7457617f608c82617c7f565b845260019490940193928101928101617f4e565b509097508801359350505080821115617f8b578384fd5b617f9787838801617d8d565b93506040860135915080821115617fac578283fd5b50617fb986828701617ccb565b9150509250925092565b600060208284031215617fd4578081fd5b8151801515811461115e578182fd5b60008060208385031215617ff5578182fd5b82356001600160401b0381111561800a578283fd5b61801685828601617e00565b90969095509350505050565b60008060008060408587031215618037578384fd5b84356001600160401b038082111561804d578586fd5b61805988838901617e00565b90965094506020870135915080821115618071578384fd5b50617ed387828801617e00565b60006020828403121561808f578081fd5b5035919050565b6000602082840312156180a7578081fd5b5051919050565b600080604083850312156180c0578182fd5b505080516020909101519092909150565b6000806000604084860312156180e5578081fd5b833560ff811681146180f5578182fd5b925060208401356001600160401b0381111561810f578182fd5b61811b86828701617e00565b9497909650939450505050565b6000815180845260208085019450808401835b838110156181605781516001600160a01b03168752958201959082019060010161813b565b509495945050505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b600081518084526181ad816020860160208601618f83565b601f01601f19169290920160200192915050565b600082516181d3818460208701618f83565b9190910192915050565b918252602082015260400190565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b03968716815294861660208601529290941660408401526001600160401b03166060830152911515608082015260a081019190915260c00190565b6001600160a01b0392909216825260ff16602082015260400190565b60006020825261115e6020830184618128565b60006040825261829c6040830185618128565b602083820381850152818551808452828401915082838202850101838801865b838110156182ea57601f198784030185526182d8838351618195565b948601949250908501906001016182bc565b50909998505050505050505050565b60006080825261830c6080830187618128565b828103602084810191909152865180835287820192820190845b8181101561834257845183529383019391830191600101618326565b505084810360408601526183568188618128565b93505050506001600160401b038316606083015295945050505050565b901515815260200190565b60006020825261115e6020830184618195565b6000604082526183a560408301868861816b565b82810360208401526183b881858761816b565b979650505050505050565b6020808252601c908201527f6c656e677468206f66206275726e526174696f206d69736d6174636800000000604082015260600190565b60208082526042908201527f746865206275726e526174696f20706c75732073797374656d5265776172645260408201527f6174696f206d757374206265206e6f2067726561746572207468616e20313030606082015261030360f41b608082015260a00190565b60208082526026908201527f6c656e677468206f66206d61784e756d4f664d61696e7461696e696e67206d696040820152650e6dac2e8c6d60d31b606082015260800190565b6020808252601b908201527f6261746368207472616e736665722072657475726e2066616c73650000000000604082015260600190565b6020808252602c908201527f6c656e677468206f66206d61784e756d4f66576f726b696e6743616e6469646160408201526b0e8cae640dad2e6dac2e8c6d60a31b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61696e7461696e536c6173685363616c65206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252818101527f6c656e677468206f66206e756d4f66436162696e657473206d69736d61746368604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252601f908201527f6f6e6c7920736c617368206f72207374616b6548756220636f6e747261637400604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526028908201527f746865206e756d4f66436162696e657473206d75737420626520677265617465604082015267072207468616e20360c41b606082015260800190565b60208082526039908201527f746865206e756d4f66436162696e657473206d757374206265206c657373207460408201527f68616e204d41585f4e554d5f4f465f56414c494441544f525300000000000000606082015260800190565b60208082526029908201527f746865206e756d626572206f662076616c696461746f727320657863656564206040820152681d1a19481b1a5b5a5d60ba1b606082015260800190565b60208082526022908201527f63616e206e6f7420646f207468697320747769636520696e206f6e6520626c6f604082015261636b60f01b606082015260800190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526037908201527f746865206d61784e756d4f664d61696e7461696e696e67206d7573742062652060408201527f6c657373207468616e206e756d4f66436162696e657473000000000000000000606082015260800190565b6020808252602b908201527f6475706c696361746520636f6e73656e7375732061646472657373206f66207660408201526a185b1a59185d1bdc94d95d60aa1b606082015260800190565b60208082526027908201527f7468652065787069726554696d655365636f6e64476170206973206f7574206f604082015266662072616e676560c81b606082015260800190565b6020808252601590820152746465706f7369742076616c7565206973207a65726f60581b604082015260600190565b60208082526049908201527f746865206d61784e756d4f66576f726b696e6743616e64696461746573206d7560408201527f7374206265206e6f742067726561746572207468616e206d61784e756d4f6643606082015268616e6469646174657360b81b608082015260a00190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b60208082526023908201527f63616e206e6f7420656e7465722054656d706f72617279204d61696e74656e616040820152626e636560e81b606082015260800190565b60208082526025908201527f6c656e677468206f66206a61696c2076616c696461746f7273206d757374206260408201526465206f6e6560d81b606082015260800190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61784e756d4f6643616e64696461746573206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252601290820152716e6f7420696e206d61696e74656e616e636560701b604082015260600190565b60208082526021908201527f666565206973206c6172676572207468616e2044555354595f494e434f4d494e6040820152604760f81b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b60208082526042908201527f7468652073797374656d526577617264526174696f20706c7573206275726e5260408201527f6174696f206d757374206265206e6f2067726561746572207468616e20313030606082015261030360f41b608082015260a00190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526026908201527f6c656e677468206f662065787069726554696d655365636f6e64476170206d696040820152650e6dac2e8c6d60d31b606082015260800190565b60208082526017908201527f6f6e6c792063757272656e742076616c696461746f7273000000000000000000604082015260600190565b60208082526021908201527f6661696c656420746f20706172736520696e69742076616c696461746f7253656040820152601d60fa1b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b60208082526024908201527f6c656e677468206f662073797374656d526577617264526174696f206d69736d6040820152630c2e8c6d60e31b606082015260800190565b6020808252603e908201527f746865206d61696e7461696e536c6173685363616c65206d757374206265206760408201527f726561746572207468616e203020616e64206c657373207468616e2031300000606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b60208082526029908201527f746865206d6573736167652073656e646572206d75737420626520736c6173686040820152680818dbdb9d1c9858dd60ba1b606082015260800190565b6020808252601f908201527f746865206d73672073656e646572206d757374206265207374616b6548756200604082015260600190565b61ffff91909116815260200190565b90815260200190565b60008482528315156020830152606060408301526179976060830184618195565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff851682526040602083015261799760408301848661816b565b6040518181016001600160401b0381118282101715618f5c57600080fd5b604052919050565b60006001600160401b03821115618f79578081fd5b5060209081020190565b60005b83811015618f9e578181015183820152602001618f86565b8381111561725e5750506000910152565b6001600160a01b0381168114611f2d57600080fdfe70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb20175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbbf905ec80f905e8f846942a7cdd959bfe8d9487b2a43b33565295a698f7e294b6a7edd747c0554875d3fc531d19ba1497992c5e941ff80f3f7f110ffd8920a3ac38fdef318fe94a3f86048c27395000f846946488aa4d1955ee33403f8ccb1d4de5fb97c7ade294220f003d8bdfaadf52aa1e55ae4cc485e6794875941a87e90e440a39c99aa9cb5cea0ad6a3f0b2407b86048c27395000f846949ef9f4360c606c7ab4db26b016007d3ad0ab86a0946103af86a874b705854033438383c82575f25bc29418e2db06cbff3e3c5f856410a1838649e760175786048c27395000f84694ee01c3b1283aa067c58eab4709f85e99d46de5fe94ee4b9bfb1871c64e2bcabb1dc382dc8b7c4218a29415904ab26ab0e99d70b51c220ccdcccabee6e29786048c27395000f84694685b1ded8013785d6623cc18d214320b6bb6475994a20ef4e5e4e7e36258dbf51f4d905114cb1b34bc9413e39085dc88704f4394d35209a02b1a9520320c86048c27395000f8469478f3adfc719c99674c072166708589033e2d9afe9448a30d5eaa7b64492a160f139e2da2800ec3834e94055838358c29edf4dcc1ba1985ad58aedbb6be2b86048c27395000f84694c2be4ec20253b8642161bc3f444f53679c1f3d479466f50c616d737e60d7ca6311ff0d9c434197898a94d1d678a2506eeaa365056fe565df8bc8659f28b086048c27395000f846942f7be8361c80a4c1e7e9aaf001d0877f1cfde218945f93992ac37f3e61db2ef8a587a436a161fd210b94ecbc4fb1a97861344dad0867ca3cba2b860411f086048c27395000f84694ce2fd7544e0b2cc94692d4a704debef7bcb613289444abc67b4b2fba283c582387f54c9cba7c34bafa948acc2ab395ded08bb75ce85bf0f95ad2abc51ad586048c27395000f84694b8f7166496996a7da21cf1f1b04d9b3e26a3d077946770572763289aac606e4f327c2f6cc1aa3b3e3b94882d745ed97d4422ca8da1c22ec49d880c4c097286048c27395000f846942d4c407bbe49438ed859fe965b140dcf1aab71a9943ad0939e120f33518fbba04631afe7a3ed6327b194b2bbb170ca4e499a2b0f3cc85ebfa6e8c4dfcbea86048c27395000f846946bbad7cf34b5fa511d8e963dbba288b1960e75d694853b0f6c324d1f4e76c8266942337ac1b0af1a229442498946a51ca5924552ead6fc2af08b94fcba648601d1a94a2000f846944430b3230294d12c6ab2aac5c2cd68e80b16b581947b107f4976a252a6939b771202c28e64e03f52d694795811a7f214084116949fc4f53cedbf189eeab28601d1a94a2000f84694ea0a6e3c511bbd10f4519ece37dc24887e11b55d946811ca77acfb221a49393c193f3a22db829fcc8e9464feb7c04830dd9ace164fc5c52b3f5a29e5018a8601d1a94a2000f846947ae2f5b9e386cd1b50a4550696d957cb4900f03a94e83bcc5077e6b873995c24bac871b5ad856047e19464e48d4057a90b233e026c1041e6012ada897fe88601d1a94a2000f8469482012708dafc9e1b880fd083b32182b869be8e09948e5adc73a2d233a1b496ed3115464dd6c7b887509428b383d324bc9a37f4e276190796ba5a8947f5ed8601d1a94a2000f8469422b81f8e175ffde54d797fe11eb03f9e3bf75f1d94a1c3ef7ca38d8ba80cce3bfc53ebd2903ed21658942767f7447f7b9b70313d4147b795414aecea54718601d1a94a2000f8469468bf0b8b6fb4e317a0f9d6f03eaf8ce6675bc60d94675cfe570b7902623f47e7f59c9664b5f5065dcf94d84f0d2e50bcf00f2fc476e1c57f5ca2d57f625b8601d1a94a2000f846948c4d90829ce8f72d0163c1d5cf348a862d5506309485c42a7b34309bee2ed6a235f86d16f059deec5894cc2cedc53f0fa6d376336efb67e43d167169f3b78601d1a94a2000f8469435e7a025f4da968de7e4d7e4004197917f4070f194b1182abaeeb3b4d8eba7e6a4162eac7ace23d57394c4fd0d870da52e73de2dd8ded19fe3d26f43a1138601d1a94a2000f84694d6caa02bbebaebb5d7e581e4b66559e635f805ff94c07335cf083c1c46a487f0325769d88e163b653694efaff03b42e41f953a925fc43720e45fb61a19938601d1a94a20000175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbaa164736f6c6343000604000a", - }, - { - ContractAddr: SlashContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/2dbebb57a0d436d6a30b78c1f123395035249035", - Code: "608060405234801561001057600080fd5b506004361061035d5760003560e01c80637e434d54116101d3578063c80d4b8f11610104578063df8079e9116100a2578063f9a2bbc71161007c578063f9a2bbc714610601578063fc3e590814610609578063fc4333cd14610611578063fd6a6879146106195761035d565b8063df8079e9146105e9578063e1c7392a146105f1578063f1fad104146105f95761035d565b8063c96be4cb116100de578063c96be4cb146105b3578063cc844b73146105c6578063dc927faf146105d9578063dcc6f156146105e15761035d565b8063c80d4b8f14610590578063c81b166214610598578063c8509d81146105a05761035d565b8063a1a11bf511610171578063aad560631161014b578063aad5606314610565578063ab51bb961461056d578063ac0af62914610575578063ac4317511461057d5761035d565b8063a1a11bf51461054d578063a78abc1614610555578063aa82dce11461055d5761035d565b806396713da9116101ad57806396713da9146105225780639dc092621461052a5780639e89ded8146105325780639f804f5f146105455761035d565b80637e434d54146104ff5780638256ace614610507578063831d65d11461050f5761035d565b8063493279b1116102ad57806362b72cf51161024b578063718a8aa811610225578063718a8aa8146104df57806375d47a0a146104e75780637912a65d146104ef5780637942fd05146104f75761035d565b806362b72cf5146104c75780636e47b482146104cf57806370fd5bad146104d75761035d565b806351b4dce31161028757806351b4dce31461049c57806351e80672146104a4578063567a372d146104ac5780635bfb4990146104b45761035d565b8063493279b1146104775780634bf6c8821461048c57806350055f90146104945761035d565b8063280870281161031a57806337c8dab9116102f457806337c8dab914610431578063389f4f71146104525780633dffc3871461045a57806343756e5c1461046f5761035d565b806328087028146104015780633306ccca1461040957806335aa2e441461041e5761035d565b80630bee7a67146103625780630e2374a5146103805780631182b8751461039557806322d1e80b146103b557806323bac5a2146103ca57806327962118146103ec575b600080fd5b61036a610621565b6040516103779190613d56565b60405180910390f35b610388610626565b6040516103779190613534565b6103a86103a336600461346a565b61062c565b604051610377919061356c565b6103bd610692565b6040516103779190613561565b6103dd6103d8366004613181565b61069b565b60405161037793929190613d3e565b6103ff6103fa3660046132c7565b6106be565b005b610388610a13565b610411610a19565b6040516103779190613d27565b61038861042c36600461343a565b610a1f565b61044461043f366004613181565b610a46565b604051610377929190613d30565b610411610a9d565b610462610aa3565b6040516103779190613d67565b610388610aa8565b61047f610aae565b6040516103779190613d18565b610462610ab3565b610411610ab8565b610388610abe565b610388610ac4565b610411610aca565b6103ff6104c2366004613181565b610ad0565b610411610bdc565b610388610be2565b610462610be8565b610462610bed565b610388610bf2565b610411610bf8565b610462610bfd565b610388610c02565b610444610c08565b6103ff61051d36600461346a565b610c12565b610462610d26565b610388610d2b565b6103ff6105403660046131b9565b610d31565b610411610d60565b610388610d66565b6103bd610d6c565b610388610d75565b610388610d7b565b61036a610d81565b610411610d86565b6103ff61058b36600461331e565b610d8b565b610411611327565b61038861132c565b6103ff6105ae36600461346a565b611332565b6103ff6105c1366004613181565b6113a3565b6103ff6105d4366004613387565b611812565b610388611df1565b610411611df7565b610388611dfc565b6103ff611e02565b610462611e3e565b610388611e43565b610462611e49565b6103ff611e4e565b610388612297565b606481565b61200181565b606033612000146106585760405162461bcd60e51b815260040161064f90613bbb565b60405180910390fd5b60005460ff1661067a5760405162461bcd60e51b815260040161064f90613661565b60405162461bcd60e51b815260040161064f90613cac565b60075460ff1681565b600260208190526000918252604090912080546001820154919092015460ff1683565b60005460ff166106e05760405162461bcd60e51b815260040161064f90613661565b6006546106ed5760146006555b6008546106fb576170806008555b81511580159061070b5750805115155b6107275760405162461bcd60e51b815260040161064f90613b19565b60408051600380825260808201909252606091816020015b606081526020019060019003908161073f579050509050610760603861229d565b8160008151811061076d57fe5b6020026020010181905250610781836122b8565b8160018151811061078e57fe5b60200260200101819052506107a2826122b8565b816002815181106107af57fe5b602002602001018190525060606107c58261230e565b60408051603480825260608281019093529293509091602082018180368337019050509050815160346020830182602086016068600019fa61080657600080fd5b506014810151603482015160405163436aa28360e11b8152600090612002906386d5450690610839908690600401613534565b60206040518083038186803b15801561085157600080fd5b505afa158015610865573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610889919061319d565b6001600160a01b031614156108b05760405162461bcd60e51b815260040161064f90613631565b43600854820110156108d45760405162461bcd60e51b815260040161064f906135d2565b604051631871f7d960e31b81526120029063c38fbec8906108f9908590600401613534565b600060405180830381600087803b15801561091357600080fd5b505af1158015610927573d6000803e3d6000fd5b50506040516335409f7f60e01b815261100092506335409f7f9150610950908590600401613534565b600060405180830381600087803b15801561096a57600080fd5b505af115801561097e573d6000803e3d6000fd5b50506006546040516309a99b4f60e41b815260646110028031909302049350909150639a99b4f0906109b69033908590600401613548565b602060405180830381600087803b1580156109d057600080fd5b505af11580156109e4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a089190613452565b505050505050505050565b61200581565b61708081565b60018181548110610a2c57fe5b6000918252602090912001546001600160a01b0316905081565b600080610a51612f68565b5050506001600160a01b0316600090815260026020818152604092839020835160608101855281548082526001830154938201849052919093015460ff16151592909301919091529091565b60055481565b600181565b61100181565b603881565b600881565b60065481565b61200681565b61200081565b60045481565b3361100014610af15760405162461bcd60e51b815260040161064f906138a4565b60005460ff16610b135760405162461bcd60e51b815260040161064f90613661565b61200063f7a251d7600b610b268461239f565b60006040518463ffffffff1660e01b8152600401610b4693929190613d75565b600060405180830381600087803b158015610b6057600080fd5b505af1925050508015610b71575060015b610bd9573d808015610b9f576040519150601f19603f3d011682016040523d82523d6000602084013e610ba4565b606091505b50816001600160a01b0316600080516020613e52833981519152600083604051610bcf92919061357f565b60405180910390a2505b50565b60035481565b61100581565b600281565b601081565b61100881565b603281565b600b81565b61200381565b6004546005549091565b3361200014610c335760405162461bcd60e51b815260040161064f90613bbb565b60005460ff16610c555760405162461bcd60e51b815260040161064f90613661565b610c5d612f8b565b6000610c9e84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061246892505050565b915091508015610ce55781516040517f7f0956d47419b9525356e7111652b653b530ec6f5096dccc04589bc38e62996791610cd891613d56565b60405180910390a1610d1e565b81516040517f7d45f62d17443dd4547bca8a8112c60e2385669318dc300ec61a5d2492f262e791610d1591613d56565b60405180910390a15b50505b505050565b600981565b61100781565b3361100014610d525760405162461bcd60e51b815260040161064f906138a4565b610d5c82826124e8565b5050565b60085481565b61100681565b60005460ff1681565b61200281565b61300081565b600081565b600481565b60005460ff16610dad5760405162461bcd60e51b815260040161064f90613661565b3361100714610dce5760405162461bcd60e51b815260040161064f90613a08565b610e3984848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260148152731b5a5cd9195b59585b9bdc951a1c995cda1bdb1960621b6020820152915061269b9050565b15610ed45760208114610e5e5760405162461bcd60e51b815260040161064f90613830565b604080516020601f8401819004810282018101909252828152600091610e9c918585808385018382808284376000920191909152506126f592505050565b905060018110158015610eb0575060055481105b610ecc5760405162461bcd60e51b815260040161064f90613b76565b6004556112e4565b610f3a84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e19995b1bdb9e551a1c995cda1bdb19608a1b6020820152915061269b9050565b15610fd65760208114610f5f5760405162461bcd60e51b815260040161064f90613a56565b604080516020601f8401819004810282018101909252828152600091610f9d918585808385018382808284376000920191909152506126f592505050565b90506103e88111158015610fb2575060045481115b610fce5760405162461bcd60e51b815260040161064f9061371a565b6005556112e4565b61104384848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601681527566656c6f6e79536c617368526577617264526174696f60501b6020820152915061269b9050565b156110dd57602081146110685760405162461bcd60e51b815260040161064f90613990565b604080516020601f84018190048102820181019092528281526000916110a6918585808385018382808284376000920191909152506126f592505050565b9050600a81101580156110b95750606481105b6110d55760405162461bcd60e51b815260040161064f90613a98565b6006556112e4565b61115184848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f656e61626c654d616c6963696f7573566f7465536c61736800000000000000006020820152915061269b9050565b156111c857602081146111765760405162461bcd60e51b815260040161064f9061374f565b604080516020601f84018190048102820181019092528281526111b291908484808385018382808284376000920191909152506126fa92505050565b6007805460ff19169115159190911790556112e4565b61122f84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601081526f66656c6f6e79536c61736853636f706560801b6020820152915061269b9050565b156112cc57602081146112545760405162461bcd60e51b815260040161064f9061391f565b604080516020601f8401819004810282018101909252828152600091611292918585808385018382808284376000920191909152506126f592505050565b905061708081101580156112a85750620d2f0081105b6112c45760405162461bcd60e51b815260040161064f90613698565b6008556112e4565b60405162461bcd60e51b815260040161064f90613c57565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a8484848460405161131994939291906135a0565b60405180910390a150505050565b609681565b61100281565b33612000146113535760405162461bcd60e51b815260040161064f90613bbb565b60005460ff166113755760405162461bcd60e51b815260040161064f90613661565b6040517f07db600eebe2ac176be8dcebad61858c245a4961bb32ca2aa3d159b09aa0810e90600090a1505050565b3341146113c25760405162461bcd60e51b815260040161064f90613c0a565b60005460ff166113e45760405162461bcd60e51b815260040161064f90613661565b60035443116114055760405162461bcd60e51b815260040161064f90613ce3565b3a156114235760405162461bcd60e51b815260040161064f90613962565b60405163155853f360e21b8152611000906355614fcc90611448908490600401613534565b60206040518083038186803b15801561146057600080fd5b505afa158015611474573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149891906132a7565b6114a15761180b565b6114a9612f68565b506001600160a01b0381166000908152600260208181526040928390208351606081018552815481526001820154928101929092529091015460ff16158015928201929092529061150457602081018051600101905261155d565b60016040820181905260208201819052805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0384161790555b43815260055460208201518161156f57fe5b0661173957600060208201526040516335409f7f60e01b8152611000906335409f7f906115a0908590600401613534565b600060405180830381600087803b1580156115ba57600080fd5b505af11580156115ce573d6000803e3d6000fd5b505060405163436aa28360e11b81526000925061200291506386d54506906115fa908690600401613534565b60206040518083038186803b15801561161257600080fd5b505afa158015611626573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061164a919061319d565b6001600160a01b03161461166b576116668282602001516124e8565b611734565b61200063f7a251d7600b61167e8561239f565b60006040518463ffffffff1660e01b815260040161169e93929190613d75565b600060405180830381600087803b1580156116b857600080fd5b505af19250505080156116c9575060015b611734573d8080156116f7576040519150601f19603f3d011682016040523d82523d6000602084013e6116fc565b606091505b50826001600160a01b0316600080516020613e5283398151915283602001518360405161172a92919061357f565b60405180910390a2505b6117a5565b60045481602001518161174857fe5b066117a5576040516375abf10160e11b81526110009063eb57e20290611772908590600401613534565b600060405180830381600087803b15801561178c57600080fd5b505af11580156117a0573d6000803e3d6000fd5b505050505b6001600160a01b0382166000818152600260208181526040808420865181559186015160018301558581015191909201805460ff1916911515919091179055517fddb6012116e51abf5436d956a4f0ebd927e92c576ff96d7918290c8782291e3e9190a2505b5043600355565b60005460ff166118345760405162461bcd60e51b815260040161064f90613661565b60075460ff166118565760405162461bcd60e51b815260040161064f906135fc565b6006546118635760146006555b600854611871576170806008555b60085481516040015143910111801561189557504360085482602001516040015101115b6118b15760405162461bcd60e51b815260040161064f90613c7e565b8060200151602001518160000151602001511480156118df5750806020015160600151816000015160600151145b156118fc5760405162461bcd60e51b815260040161064f90613877565b80516040810151905110801561191b5750602081015160408101519051105b6119375760405162461bcd60e51b815260040161064f906137f9565b60208101515181515110801561195c5750806000015160400151816020015160400151105b8061198757508051516020820151511080156119875750806020015160400151816000015160400151105b806119a15750806020015160400151816000015160400151145b6119bd5760405162461bcd60e51b815260040161064f906136e3565b604080820151905163ea321e4960e01b81526110009163ea321e49916119e6919060040161356c565b60206040518083038186803b1580156119fe57600080fd5b505afa158015611a12573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3691906132a7565b611a525760405162461bcd60e51b815260040161064f906139d9565b611a6481600001518260400151612722565b8015611a7d5750611a7d81602001518260400151612722565b611a995760405162461bcd60e51b815260040161064f9061379a565b6060806110006001600160a01b0316633b071dcc6040518163ffffffff1660e01b815260040160006040518083038186803b158015611ad757600080fd5b505afa158015611aeb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611b1391908101906131e4565b9150915060005b8151811015611c5057611b44828281518110611b3257fe5b602002602001015185604001516128fa565b15611c48576006546040516309a99b4f60e41b815260646110028031909302049190639a99b4f090611b7c9033908590600401613548565b602060405180830381600087803b158015611b9657600080fd5b505af1158015611baa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bce9190613452565b506110006001600160a01b03166335409f7f858481518110611bec57fe5b60200260200101516040518263ffffffff1660e01b8152600401611c109190613534565b600060405180830381600087803b158015611c2a57600080fd5b505af1158015611c3e573d6000803e3d6000fd5b5050505050611c50565b600101611b1a565b5060408084015190516317b4f35360e01b8152600091612002916317b4f35391611c7c9160040161356c565b60206040518083038186803b158015611c9457600080fd5b505afa158015611ca8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ccc919061319d565b6001600160a01b031614611d3a576040808401519051630e9fbf5160e01b815261200291630e9fbf5191611d03919060040161356c565b600060405180830381600087803b158015611d1d57600080fd5b505af1158015611d31573d6000803e3d6000fd5b50505050610d21565b6120006001600160a01b031663f7a251d7600b611d5a866040015161295e565b60006040518463ffffffff1660e01b8152600401611d7a93929190613d75565b600060405180830381600087803b158015611d9457600080fd5b505af1158015611da8573d6000803e3d6000fd5b505050506000611dbd84604001516000612999565b60405190915081907f7b78aadacff901d8b63d0dba4f86283d4db8aef27f9ed70413dd860f1c9532b690600090a250505050565b61100381565b601481565b61200481565b60005460ff1615611e255760405162461bcd60e51b815260040161064f90613ae2565b603260045560966005556000805460ff19166001179055565b601181565b61100081565b600381565b3361100014611e6f5760405162461bcd60e51b815260040161064f906138a4565b60005460ff16611e915760405162461bcd60e51b815260040161064f90613661565b600154611e9d57612295565b600154600090600019015b808211612269576000805b82841015611fcc57611ec3612f68565b6002600060018781548110611ed457fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff161515908201526005549091506004900481602001511115611fb657600460055481611f4157fe5b04816020015103816020018181525050806002600060018881548110611f6357fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208351815591830151600183015591909101516002909101805460ff1916911515919091179055611fc0565b6001925050611fcc565b50836001019350611eb3565b82841161216357611fdb612f68565b6002600060018681548110611fec57fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff1615159082015260055490915060049004816020015111156120d45760046005548161205957fe5b0481602001510381602001818152505080600260006001878154811061207b57fe5b6000918252602080832091909101546001600160a01b03168352828101939093526040918201902083518155918301516001808401919091559201516002909101805460ff191691151591909117905591506121639050565b60026000600186815481106120e557fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff1916905580548061212957fe5b600082815260209020810160001990810180546001600160a01b0319169055019055836121565750612163565b5060001990920191611fcc565b81801561216d5750805b1561224c57600260006001868154811061218357fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff191690558054849081106121ca57fe5b600091825260209091200154600180546001600160a01b0390921691869081106121f057fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600180548061222957fe5b600082815260209020810160001990810180546001600160a01b03191690550190555b82612258575050612269565b505060019091019060001901611ea8565b6040517fcfdb3b6ccaeccbdc68be3c59c840e3b3c90f0a7c491f5fff1cf56cfda200dd9c90600090a150505b565b61100481565b60606122b06122ab836129b5565b6122b8565b90505b919050565b6060815160011480156122ea5750607f60f81b826000815181106122d857fe5b01602001516001600160f81b03191611155b156122f65750806122b3565b6122b06123088351608060ff16612a9b565b83612b6d565b606081516000141561232f57506040805160008152602081019091526122b3565b60608260008151811061233e57fe5b602002602001015190506000600190505b835181101561237f576123758285838151811061236857fe5b6020026020010151612b6d565b915060010161234f565b50612398612392825160c060ff16612a9b565b82612b6d565b9392505050565b60408051600480825260a08201909252606091829190816020015b60608152602001906001900390816123ba5790505090506123e3836001600160a01b0316612bea565b816000815181106123f057fe5b60200260200101819052506124044361229d565b8160018151811061241157fe5b6020908102919091010152612426603861229d565b8160028151811061243357fe5b60200260200101819052506124474261229d565b8160038151811061245457fe5b60200260200101819052506123988161230e565b612470612f8b565b600061247a612f8b565b612482612f9d565b61249361248e86612c0d565b612c32565b90506000805b6124a283612c7c565b156124db57806124ce576124bd6124b884612c9d565b612ceb565b63ffffffff168452600191506124d3565b6124db565b600101612499565b5091935090915050915091565b6040516375cc7d8960e01b8152612002906375cc7d899061250d908590600401613534565b600060405180830381600087803b15801561252757600080fd5b505af1925050508015612538575060015b610d5c576040516000815260443d1015612554575060006125f1565b60046000803e60005160e01c6308c379a081146125755760009150506125f1565b60043d036004833e81513d602482011167ffffffffffffffff821117156125a1576000925050506125f1565b808301805167ffffffffffffffff8111156125c35760009450505050506125f1565b8060208301013d86018111156125e1576000955050505050506125f1565b601f01601f191660405250925050505b806125fc5750612633565b826001600160a01b0316600080516020613e52833981519152838360405161262592919061357f565b60405180910390a250612696565b3d80801561265d576040519150601f19603f3d011682016040523d82523d6000602084013e612662565b606091505b50826001600160a01b0316600080516020613e52833981519152838360405161268c92919061357f565b60405180910390a2505b610d5c565b6000816040516020016126ae9190613518565b60405160208183030381529060405280519060200120836040516020016126d59190613518565b604051602081830303815290604052805190602001201490505b92915050565b015190565b8082015160009060ff81161561271457600191508161271a565b60009150815b505092915050565b60408051600480825260a0820190925260009160609190816020015b606081526020019060019003908161273e575050604080516020808252818301909252919250606091908082018180368337019050509050612783856000015161229d565b8260008151811061279057fe5b60200260200101819052506127ab6020866020015183612d6d565b6127b4816122b8565b826001815181106127c157fe5b60200260200101819052506127d9856040015161229d565b826002815181106127e657fe5b60200260200101819052506128016020866060015183612d6d565b61280a816122b8565b8260038151811061281757fe5b602002602001018190525061283d60206128308461230e565b8051906020012083612d6d565b6040805160b080825260e0820190925260609160208201818036833701905050905061286d818360006020612d7d565b61287f81876080015160206060612d7d565b61288d818660806030612d7d565b604080516001808252818301909252606091602082018180368337019050509050815160016020830182602086016066600019fa6128ca57600080fd5b5060016128d8826000612dd0565b60ff16146128ed5760009450505050506126ef565b5060019695505050505050565b8151815160009160019181148083146129165760009250612954565b600160208701838101602088015b60028483851001141561294f5780518351146129435760009650600093505b60209283019201612924565b505050505b5090949350505050565b60408051600480825260a08201909252606091829190816020015b60608152602001906001900390816129795790505090506123e3836122b8565b600081602001835110156129ac57600080fd5b50016020015190565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166129f957506018612a1d565b6fffffffffffffffffffffffffffffffff198416612a1957506010612a1d565b5060005b6020811015612a5357818181518110612a3257fe5b01602001516001600160f81b03191615612a4b57612a53565b600101612a1d565b60008160200390506060816040519080825280601f01601f191660200182016040528015612a88576020820181803683370190505b5080830196909652508452509192915050565b6060680100000000000000008310612ac55760405162461bcd60e51b815260040161064f906137d1565b60408051600180825281830190925260609160208201818036833701905050905060378411612b1f5782840160f81b81600081518110612b0157fe5b60200101906001600160f81b031916908160001a90535090506126ef565b6060612b2a856129b5565b90508381510160370160f81b82600081518110612b4357fe5b60200101906001600160f81b031916908160001a905350612b648282612b6d565b95945050505050565b6060806040519050835180825260208201818101602087015b81831015612b9e578051835260209283019201612b86565b50855184518101855292509050808201602086015b81831015612bcb578051835260209283019201612bb3565b508651929092011591909101601f01601f191660405250905092915050565b60408051600560a21b8318601482015260348101909152606090612398816122b8565b612c15612fbd565b506040805180820190915281518152602082810190820152919050565b612c3a612f9d565b612c4382612dec565b612c4c57600080fd5b6000612c5b8360200151612e26565b60208085015160408051808201909152868152920190820152915050919050565b6000612c86612fbd565b505080518051602091820151919092015191011190565b612ca5612fbd565b612cae82612c7c565b612cb757600080fd5b60208201516000612cc782612e89565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590612d0057508151602110155b612d0957600080fd5b6000612d188360200151612e26565b90508083600001511015612d3e5760405162461bcd60e51b815260040161064f90613b3f565b825160208085015183018051928490039291831015612d6457826020036101000a820491505b50949350505050565b9091018181526020918201910152565b60005b81811015610d1e57838181518110612d9457fe5b602001015160f81c60f81b858480600101955081518110612db157fe5b60200101906001600160f81b031916908160001a905350600101612d80565b60008160010183511015612de357600080fd5b50016001015190565b8051600090612dfd575060006122b3565b6020820151805160001a9060c0821015612e1c576000925050506122b3565b5060019392505050565b8051600090811a6080811015612e405760009150506122b3565b60b8811080612e5b575060c08110801590612e5b575060f881105b15612e6a5760019150506122b3565b60c0811015612e7e5760b5190190506122b3565b60f5190190506122b3565b80516000908190811a6080811015612ea45760019150612f61565b60b8811015612eb957607e1981019150612f61565b60c0811015612f0a57600060b78203600186019550806020036101000a865104915060018101820193505080831015612f045760405162461bcd60e51b815260040161064f906138f4565b50612f61565b60f8811015612f1f5760be1981019150612f61565b600060f78203600186019550806020036101000a86510491506001810182019350508083101561271a5760405162461bcd60e51b815260040161064f906138f4565b5092915050565b604051806060016040528060008152602001600081526020016000151581525090565b60408051602081019091526000815290565b6040518060400160405280612fb0612fbd565b8152602001600081525090565b604051806040016040528060008152602001600081525090565b600082601f830112612fe7578081fd5b8151612ffa612ff582613dc8565b613da1565b818152915060208083019084810160005b84811015613070578151870188603f82011261302657600080fd5b83810151613036612ff582613de8565b81815260408b8184860101111561304c57600080fd5b61305b83888401838701613e0c565b5086525050928201929082019060010161300b565b505050505092915050565b60008083601f84011261308c578182fd5b50813567ffffffffffffffff8111156130a3578182fd5b6020830191508360208285010111156130bb57600080fd5b9250929050565b600082601f8301126130d2578081fd5b81356130e0612ff582613de8565b91508082528360208285010111156130f757600080fd5b8060208401602084013760009082016020015292915050565b600060a08284031215613121578081fd5b61312b60a0613da1565b905081358152602082013560208201526040820135604082015260608201356060820152608082013567ffffffffffffffff81111561316957600080fd5b613175848285016130c2565b60808301525092915050565b600060208284031215613192578081fd5b813561239881613e3c565b6000602082840312156131ae578081fd5b815161239881613e3c565b600080604083850312156131cb578081fd5b82356131d681613e3c565b946020939093013593505050565b600080604083850312156131f6578182fd5b825167ffffffffffffffff8082111561320d578384fd5b81850186601f82011261321e578485fd5b8051925061322e612ff584613dc8565b80848252602080830192508084018a82838902870101111561324e578889fd5b8894505b8685101561327957805161326581613e3c565b845260019490940193928101928101613252565b508801519096509350505080821115613290578283fd5b5061329d85828601612fd7565b9150509250929050565b6000602082840312156132b8578081fd5b81518015158114612398578182fd5b600080604083850312156132d9578182fd5b823567ffffffffffffffff808211156132f0578384fd5b6132fc868387016130c2565b93506020850135915080821115613311578283fd5b5061329d858286016130c2565b60008060008060408587031215613333578182fd5b843567ffffffffffffffff8082111561334a578384fd5b6133568883890161307b565b9096509450602087013591508082111561336e578384fd5b5061337b8782880161307b565b95989497509550505050565b600060208284031215613398578081fd5b813567ffffffffffffffff808211156133af578283fd5b818401606081870312156133c1578384fd5b6133cb6060613da1565b92508035828111156133db578485fd5b6133e787828401613110565b8452506020810135828111156133fb578485fd5b61340787828401613110565b60208501525060408101358281111561341e578485fd5b61342a878284016130c2565b6040850152509195945050505050565b60006020828403121561344b578081fd5b5035919050565b600060208284031215613463578081fd5b5051919050565b60008060006040848603121561347e578081fd5b833560ff8116811461348e578182fd5b9250602084013567ffffffffffffffff8111156134a9578182fd5b6134b58682870161307b565b9497909650939450505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008151808452613504816020860160208601613e0c565b601f01601f19169290920160200192915050565b6000825161352a818460208701613e0c565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b60006020825261239860208301846134ec565b60008382526040602083015261359860408301846134ec565b949350505050565b6000604082526135b46040830186886134c2565b82810360208401526135c78185876134c2565b979650505050505050565b60208082526010908201526f195d9a59195b98d9481d1bdbc81bdb1960821b604082015260600190565b6020808252818101527f6d616c6963696f757320766f746520736c617368206e6f7420656e61626c6564604082015260600190565b6020808252601690820152751d985b1a59185d1bdc881b9bdd081b5a59dc985d195960521b604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252602b908201527f746865206d616c6963696f757320766f746520736c6173682073636f7065206f60408201526a7574206f662072616e676560a81b606082015260800190565b6020808252601a908201527f6e6f2076696f6c6174696f6e206f6620766f74652072756c6573000000000000604082015260600190565b6020808252818101527f7468652066656c6f6e795468726573686f6c64206f7574206f662072616e6765604082015260600190565b6020808252602b908201527f6c656e677468206f6620656e61626c654d616c6963696f7573566f7465536c6160408201526a0e6d040dad2e6dac2e8c6d60ab1b606082015260800190565b60208082526017908201527f766572696679207369676e6174757265206661696c6564000000000000000000604082015260600190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526019908201527f7372634e756d20626967676572207468616e207461724e756d00000000000000604082015260600190565b60208082526027908201527f6c656e677468206f66206d697364656d65616e6f725468726573686f6c64206d6040820152660d2e6dac2e8c6d60cb1b606082015260800190565b60208082526013908201527274776f206964656e746963616c20766f74657360681b604082015260600190565b60208082526030908201527f746865206d6573736167652073656e646572206d7573742062652076616c696460408201526f185d1bdc94d95d0818dbdb9d1c9858dd60821b606082015260800190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b60208082526023908201527f6c656e677468206f662066656c6f6e79536c61736853636f7065206d69736d616040820152620e8c6d60eb1b606082015260800190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b60208082526029908201527f6c656e677468206f662066656c6f6e79536c617368526577617264526174696f604082015268040dad2e6dac2e8c6d60bb1b606082015260800190565b6020808252601590820152741d9bdd195059191c881a5cc81b9bdd08199bdd5b99605a1b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526022908201527f6c656e677468206f662066656c6f6e795468726573686f6c64206d69736d61746040820152610c6d60f31b606082015260800190565b6020808252602a908201527f7468652066656c6f6e7920736c6173682072657761726420726174696f206f7560408201526974206f662072616e676560b01b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b6020808252600c908201526b32b6b83a3c903432b0b232b960a11b604082015260600190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526025908201527f746865206d697364656d65616e6f725468726573686f6c64206f7574206f662060408201526472616e676560d81b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b6020808252601490820152731d185c99d95d08189b1bd8dac81d1bdbc81bdb1960621b604082015260600190565b6020808252601e908201527f7265636569766520756e65787065637465642073796e207061636b6167650000604082015260600190565b6020808252818101527f63616e206e6f7420736c61736820747769636520696e206f6e6520626c6f636b604082015260600190565b61ffff91909116815260200190565b90815260200190565b918252602082015260400190565b92835260208301919091521515604082015260600190565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff8516825260606020830152613d9160608301856134ec565b9050826040830152949350505050565b60405181810167ffffffffffffffff81118282101715613dc057600080fd5b604052919050565b600067ffffffffffffffff821115613dde578081fd5b5060209081020190565b600067ffffffffffffffff821115613dfe578081fd5b50601f01601f191660200190565b60005b83811015613e27578181015183820152602001613e0f565b83811115613e36576000848401525b50505050565b6001600160a01b0381168114610bd957600080fdfed7bc86ff5d08c8ab043edec743302aba2520e6635172a428bc956721db9e2d1ca164736f6c6343000604000a", - }, - { - ContractAddr: TokenHubContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/2dbebb57a0d436d6a30b78c1f123395035249035", - Code: "6080604052600436106104405760003560e01c80639509b98011610234578063c81b16621161012e578063ebf71d53116100b6578063fb063e8f1161007a578063fb063e8f146110d3578063fc1a598f146110e8578063fc3e590814610cca578063fd6a68791461111b578063ff9c0027146108a057610488565b8063ebf71d531461106a578063f01484721461107f578063f1fad10414611094578063f9a2bbc7146110a9578063fa9e9159146110be57610488565b8063dc927faf116100fd578063dc927faf14610fce578063df8079e914610fe3578063e04c83a714610ff8578063e1c7392a14611022578063e8f35cea1461103757610488565b8063c81b166214610ef9578063c8509d8114610f0e578063cf41984414610f93578063d9e6dae91461080d57610488565b8063aa7415f5116101bc578063b99328c511610180578063b99328c514610e30578063b9fd21e314610e69578063ba35ead614610e7e578063bbface1f14610e93578063bd46646114610ec657610488565b8063aa7415f514610cdf578063aa82dce114610d26578063aad5606314610d3b578063ab51bb9614610d50578063ac43175114610d6557610488565b80639dc09262116102035780639dc0926214610c76578063a1a11bf514610c8b578063a496fba214610ca0578063a78abc1614610cb5578063a7c9f02d14610cca57610488565b80639509b98014610bda57806396713da914610c135780639a854bbd14610c285780639a99b4f014610c3d57610488565b806359b9278911610345578063727be1f8116102cd578063831d65d111610291578063831d65d114610ac85780638525db0314610b4d5780638b87b21f146107625780638eff336c14610b8657806393ab703f14610bc557610488565b8063727be1f814610a2057806375d47a0a14610a4a5780637942fd0514610a5f578063799758b914610a745780637e434d5414610ab357610488565b80636e056520116103145780636e056520146108b55780636e47b482146109e157806370fd5bad146108a0578063718a8aa8146109f657806371d3086314610a0b57610488565b806359b92789146108615780635d499b1b1461088b578063613684751461080d57806366dea52a146108a057610488565b80633fd8b02f116103c85780634a3acdf4116103975780634a3acdf4146107f85780634bf6c8821461080d57806350432d321461082257806351b4dce31461083757806351e806721461084c57610488565b80633fd8b02f1461078d57806343756e5c146107a257806343a368b9146107b7578063493279b1146107cc57610488565b8063149d14d91161040f578063149d14d91461062157806328087028146106485780632ae454831461065d5780633d713223146106b15780633dffc3871461076257610488565b80630bee7a671461048d5780630e2374a5146104bb5780631182b875146104ec57806312234582146105e657610488565b36610488573415610486576040805133815234602082015281517f6c98249d85d88c3753a04a22230f595e4dc8d3dc86c34af35deeeedc861b89db929181900390910190a15b005b600080fd5b34801561049957600080fd5b506104a2611130565b6040805163ffffffff9092168252519081900360200190f35b3480156104c757600080fd5b506104d0611135565b604080516001600160a01b039092168252519081900360200190f35b3480156104f857600080fd5b506105716004803603604081101561050f57600080fd5b60ff8235169190810190604081016020820135600160201b81111561053357600080fd5b82018360208201111561054557600080fd5b803590602001918460018302840111600160201b8311171561056657600080fd5b50909250905061113b565b6040805160208082528351818301528351919283929083019185019080838360005b838110156105ab578181015183820152602001610593565b50505050905090810190601f1680156105d85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156105f257600080fd5b506104866004803603604081101561060957600080fd5b506001600160a01b0381358116916020013516611269565b34801561062d57600080fd5b50610636611363565b60408051918252519081900360200190f35b34801561065457600080fd5b506104d0611369565b34801561066957600080fd5b506106986004803603604081101561068057600080fd5b506001600160a01b038135811691602001351661136f565b6040805192835260208301919091528051918290030190f35b3480156106bd57600080fd5b506104d0600480360360208110156106d457600080fd5b810190602081018135600160201b8111156106ee57600080fd5b82018360208201111561070057600080fd5b803590602001918460018302840111600160201b8311171561072157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611393945050505050565b34801561076e57600080fd5b506107776113b7565b6040805160ff9092168252519081900360200190f35b34801561079957600080fd5b506106366113bc565b3480156107ae57600080fd5b506104d06113c2565b3480156107c357600080fd5b506106366113c8565b3480156107d857600080fd5b506107e16113d4565b6040805161ffff9092168252519081900360200190f35b34801561080457600080fd5b506106366113d9565b34801561081957600080fd5b506107776113df565b34801561082e57600080fd5b506106366113e4565b34801561084357600080fd5b506104d06113ef565b34801561085857600080fd5b506104d06113f5565b34801561086d57600080fd5b506104d06004803603602081101561088457600080fd5b50356113fb565b34801561089757600080fd5b50610636611416565b3480156108ac57600080fd5b5061077761141f565b6109cd600480360360808110156108cb57600080fd5b810190602081018135600160201b8111156108e557600080fd5b8201836020820111156108f757600080fd5b803590602001918460208302840111600160201b8311171561091857600080fd5b919390929091602081019035600160201b81111561093557600080fd5b82018360208201111561094757600080fd5b803590602001918460208302840111600160201b8311171561096857600080fd5b919390929091602081019035600160201b81111561098557600080fd5b82018360208201111561099757600080fd5b803590602001918460208302840111600160201b831117156109b857600080fd5b91935091503567ffffffffffffffff16611424565b604080519115158252519081900360200190f35b3480156109ed57600080fd5b506104d06118f9565b348015610a0257600080fd5b506107776118ff565b348015610a1757600080fd5b50610636611904565b348015610a2c57600080fd5b506109cd60048036036020811015610a4357600080fd5b503561190a565b348015610a5657600080fd5b506104d061198b565b348015610a6b57600080fd5b50610777611991565b348015610a8057600080fd5b5061048660048036036060811015610a9757600080fd5b508035906001600160a01b036020820135169060400135611996565b348015610abf57600080fd5b506104d0611c46565b348015610ad457600080fd5b5061048660048036036040811015610aeb57600080fd5b60ff8235169190810190604081016020820135600160201b811115610b0f57600080fd5b820183602082011115610b2157600080fd5b803590602001918460018302840111600160201b83111715610b4257600080fd5b509092509050611c4c565b348015610b5957600080fd5b5061048660048036036040811015610b7057600080fd5b50803590602001356001600160a01b0316611d94565b348015610b9257600080fd5b5061048660048036036060811015610ba957600080fd5b508035906001600160a01b036020820135169060400135611efd565b348015610bd157600080fd5b50610636611f83565b348015610be657600080fd5b5061048660048036036040811015610bfd57600080fd5b506001600160a01b038135169060200135611f8a565b348015610c1f57600080fd5b50610777612147565b348015610c3457600080fd5b5061063661214c565b348015610c4957600080fd5b5061063660048036036040811015610c6057600080fd5b506001600160a01b038135169060200135612158565b348015610c8257600080fd5b506104d0612296565b348015610c9757600080fd5b506104d061229c565b348015610cac57600080fd5b506107776122a2565b348015610cc157600080fd5b506109cd6122a7565b348015610cd657600080fd5b506107776122b0565b6109cd60048036036080811015610cf557600080fd5b5080356001600160a01b03908116916020810135909116906040810135906060013567ffffffffffffffff166122b5565b348015610d3257600080fd5b506104d0612335565b348015610d4757600080fd5b506104d061233b565b348015610d5c57600080fd5b506104a26122a2565b348015610d7157600080fd5b5061048660048036036040811015610d8857600080fd5b810190602081018135600160201b811115610da257600080fd5b820183602082011115610db457600080fd5b803590602001918460018302840111600160201b83111715610dd557600080fd5b919390929091602081019035600160201b811115610df257600080fd5b820183602082011115610e0457600080fd5b803590602001918460018302840111600160201b83111715610e2557600080fd5b509092509050612341565b348015610e3c57600080fd5b5061048660048036036040811015610e5357600080fd5b50803590602001356001600160a01b03166127e9565b348015610e7557600080fd5b50610636612869565b348015610e8a57600080fd5b50610636612873565b348015610e9f57600080fd5b5061063660048036036020811015610eb657600080fd5b50356001600160a01b0316612879565b348015610ed257600080fd5b5061063660048036036020811015610ee957600080fd5b50356001600160a01b031661288b565b348015610f0557600080fd5b506104d06128a6565b348015610f1a57600080fd5b5061048660048036036040811015610f3157600080fd5b60ff8235169190810190604081016020820135600160201b811115610f5557600080fd5b820183602082011115610f6757600080fd5b803590602001918460018302840111600160201b83111715610f8857600080fd5b5090925090506128ac565b348015610f9f57600080fd5b5061048660048036036040811015610fb657600080fd5b506001600160a01b038135811691602001351661297c565b348015610fda57600080fd5b506104d0612c50565b348015610fef57600080fd5b506104d0612c56565b34801561100457600080fd5b506109cd6004803603602081101561101b57600080fd5b5035612c5c565b34801561102e57600080fd5b50610486612cfc565b34801561104357600080fd5b506106366004803603602081101561105a57600080fd5b50356001600160a01b0316612d9c565b34801561107657600080fd5b50610777612dae565b34801561108b57600080fd5b50610777612db3565b3480156110a057600080fd5b50610777612db8565b3480156110b557600080fd5b506104d0612dbd565b3480156110ca57600080fd5b50610636612dc3565b3480156110df57600080fd5b50610636612dc9565b3480156110f457600080fd5b506105716004803603602081101561110b57600080fd5b50356001600160a01b0316612dd7565b34801561112757600080fd5b506104d0612efe565b606481565b61200181565b60005460609060ff16611183576040805162461bcd60e51b815260206004820152601960248201526000805160206153e4833981519152604482015290519081900360640190fd5b33612000146111c35760405162461bcd60e51b815260040180806020018281038252602f815260200180615392602f913960400191505060405180910390fd5b60ff8416600214156112155761120e83838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612f0492505050565b9050611262565b6040805162461bcd60e51b815260206004820152601860248201527f756e7265636f676e697a65642073796e207061636b6167650000000000000000604482015290519081900360640190fd5b9392505050565b33612000146112a95760405162461bcd60e51b815260040180806020018281038252602f815260200180615392602f913960400191505060405180910390fd5b6001600160a01b0380831660009081526007602090815260408083209385168352929052208054611314576040805162461bcd60e51b815260206004820152601060248201526f1b9bc81b1bd8dad95908185b5bdd5b9d60821b604482015290519081900360640190fd5b8054600082556040805182815290516001600160a01b0380861692908716917f152fb15aa5d80f843e1e4bd5f2fc9161714f169945024decec7e84fb910fdd519181900360200190a350505050565b60015490565b61200581565b60076020908152600092835260408084209091529082529020805460019091015482565b6020818101516000908152600490915260409020546001600160a01b03165b919050565b600181565b60055481565b61100181565b670de0b6b3a764000081565b603881565b61a8c081565b600881565b66071afd498d000081565b61200681565b61200081565b6000908152600460205260409020546001600160a01b031690565b6402540be40081565b600281565b6000805460ff1661146a576040805162461bcd60e51b815260206004820152601960248201526000805160206153e4833981519152604482015290519081900360640190fd5b8685146114a85760405162461bcd60e51b815260040180806020018281038252603b815260200180615357603b913960400191505060405180910390fd5b8683146114e65760405162461bcd60e51b815260040180806020018281038252603f815260200180615269603f913960400191505060405180910390fd5b426078018267ffffffffffffffff1610156115325760405162461bcd60e51b81526004018080602001828103825260248152602001806151e56024913960400191505060405180910390fd5b6402540be4003406156115765760405162461bcd60e51b815260040180806020018281038252604081526020018061545a6040913960400191505060405180910390fd5b604080518681526020808802820101909152859060009081906060908480156115a9578160200160208202803683370190505b50905060005b84811015611684576402540be4008b8b838181106115c957fe5b90506020020135816115d757fe5b06156116145760405162461bcd60e51b815260040180806020018281038252603c8152602001806152a8603c913960400191505060405180910390fd5b6116398b8b8381811061162357fe5b905060200201358561302890919063ffffffff16565b93506116656402540be4008c8c8481811061165057fe5b9050602002013561308290919063ffffffff16565b82828151811061167157fe5b60209081029190910101526001016115af565b506001546116a99061169c908663ffffffff6130c416565b849063ffffffff61302816565b3410156116e75760405162461bcd60e51b81526004018080602001828103825260568152602001806154046056913960600191505060405180910390fd5b6116f7348463ffffffff61311d16565b9150611701615023565b6040518060c001604052806221272160e91b60001b815260200160006001600160a01b031681526020018381526020018e8e808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505050908252506040805160208c810282810182019093528c82529283019290918d918d91829185019084908082843760009201919091525050509082525067ffffffffffffffff8916602090910152905061200063f7a251d760036117c58461315f565b6117da876402540be40063ffffffff61308216565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611838578181015183820152602001611820565b50505050905090810190601f1680156118655780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561188657600080fd5b505af115801561189a573d6000803e3d6000fd5b505060408051600081523360208201528082018890526060810187905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a15060019c9b505050505050505050505050565b61100581565b601081565b60015481565b6000336120011461194c5760405162461bcd60e51b815260040180806020018281038252603381526020018061513d6033913960400191505060405180910390fd5b8115611983576040516120019083156108fc029084906000818181858888f19350505050158015611981573d6000803e3d6000fd5b505b506001919050565b61100881565b600b81565b60005460ff166119db576040805162461bcd60e51b815260206004820152601960248201526000805160206153e4833981519152604482015290519081900360640190fd5b3361300014611a1b5760405162461bcd60e51b815260040180806020018281038252602b81526020018061523e602b913960400191505060405180910390fd5b677ce66c50e2840000811115611a625760405162461bcd60e51b81526004018080602001828103825260358152602001806152096035913960400191505060405180910390fd5b60006221272160e91b8414611bcc576000848152600460205260409020546001600160a01b031680611ad5576040805184815290516001600160a01b0386169187917fc16ee9013bf67c846d37735983debb0acc5b2d1419cb5931c9843ad4689505499181900360200190a35050611c41565b6001600160a01b038116600090815260026020526040902054611af8848261341a565b604080516370a0823160e01b8152306004820152905191945084916001600160a01b038516916370a08231916024808301926020929190829003018186803b158015611b4357600080fd5b505afa158015611b57573d6000803e3d6000fd5b505050506040513d6020811015611b6d57600080fd5b50511015611bb9576040805162461bcd60e51b8152602060048201526014602482015273696e73756666696369656e742062616c616e636560601b604482015290519081900360640190fd5b611bc58683858861345a565b5050611c3f565b611be1826402540be40063ffffffff6130c416565b905080471015611c2f576040805162461bcd60e51b8152602060048201526014602482015273696e73756666696369656e742062616c616e636560601b604482015290519081900360640190fd5b6000611c3d8582848761345a565b505b505b505050565b61200381565b60005460ff16611c91576040805162461bcd60e51b815260206004820152601960248201526000805160206153e4833981519152604482015290519081900360640190fd5b3361200014611cd15760405162461bcd60e51b815260040180806020018281038252602f815260200180615392602f913960400191505060405180910390fd5b60ff831660031415611d2157611d1c82828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506134f492505050565b611c41565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a1505050565b3361300014611dd45760405162461bcd60e51b815260040180806020018281038252602b81526020018061523e602b913960400191505060405180910390fd5b60006221272160e91b8314611e3f57506000828152600460205260409020546001600160a01b031680611e3f576040805162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a59081cde5b589bdb60921b604482015290519081900360640190fd5b6001600160a01b0380821660009081526007602090815260408083209386168352929052208054611eaa576040805162461bcd60e51b815260206004820152601060248201526f1b9bc81b1bd8dad95908185b5bdd5b9d60821b604482015290519081900360640190fd5b8054600082556040805182815290516001600160a01b03808716929086169188917f8041a9a8704332594e2884f5e0f942281cdd7611854c365b4d0aa70b2295d6b6919081900360200190a45050505050565b3361100814611f3d5760405162461bcd60e51b81526004018080602001828103825260238152602001806153c16023913960400191505060405180910390fd5b600083815260046020908152604080832080546001600160a01b039096166001600160a01b03199096168617905593825260038152838220949094556002909352912055565b62093a8081565b81806001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b158015611fc457600080fd5b505afa158015611fd8573d6000803e3d6000fd5b505050506040513d6020811015611fee57600080fd5b50516001600160a01b0316331461204c576040805162461bcd60e51b815260206004820152601860248201527f6e6f74206f776e6572206f6620424550323020746f6b656e0000000000000000604482015290519081900360640190fd5b6000821161209a576040805162461bcd60e51b81526020600482015260166024820152751e995c9bc81b1a5b5a5d081b9bdd08185b1b1bddd95960521b604482015290519081900360640190fd5b6001600160a01b0383166000908152600360205260409020546120f0576040805162461bcd60e51b81526020600482015260096024820152681b9bdd08189bdd5b9960ba1b604482015290519081900360640190fd5b6001600160a01b038316600081815260066020908152604091829020859055815185815291513393927f9df3a90730dbf23b5cc18dbbd5f4af3fa94a0dffb6ff6841f98a9a9a6ac626a892908290030190a3505050565b600981565b677ce66c50e284000081565b6000805460ff1661219e576040805162461bcd60e51b815260206004820152601960248201526000805160206153e4833981519152604482015290519081900360640190fd5b33611005146121de5760405162461bcd60e51b815260040180806020018281038252602f815260200180615170602f913960400191505060405180910390fd5b60004783106121ed57476121ef565b825b9050670de0b6b3a764000081111561220b576000915050612290565b801561228d576040516001600160a01b0385169082156108fc029083906000818181858888f19350505050158015612247573d6000803e3d6000fd5b50604080516001600160a01b03861681526020810183905281517ff8b71c64315fc33b2ead2adfa487955065152a8ac33d9d5193aafd7f45dc15a0929181900390910190a15b90505b92915050565b61100781565b61100681565b600081565b60005460ff1681565b600381565b6000805460ff166122fb576040805162461bcd60e51b815260206004820152601960248201526000805160206153e4833981519152604482015290519081900360640190fd5b6040805162461bcd60e51b815260206004820152600a60248201526919195c1c9958d85d195960b21b604482015290519081900360640190fd5b61200281565b61300081565b33611007146123815760405162461bcd60e51b815260040180806020018281038252602e815260200180615305602e913960400191505060405180910390fd5b602081146123d6576040805162461bcd60e51b815260206004820152601b60248201527f65787065637465642076616c7565206c656e6774682069732033320000000000604482015290519081900360640190fd5b606084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8801819004810282018101909252868152939450606093925086915085908190840183828082843760009201919091525050505060208301519091506772656c617946656560c01b8114156124de576020820151670de0b6b3a7640000811180159061248557506402540be4008106155b6124d6576040805162461bcd60e51b815260206004820152601960248201527f7468652072656c6179466565206f7574206f662072616e676500000000000000604482015290519081900360640190fd5b600155612754565b61255287878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601781527f6c617267655472616e736665724c6f636b506572696f64000000000000000000602082015291506135509050565b156125ee57604080516020601f87018190048102820181019092528581526000916125959188888083850183828082843760009201919091525061363792505050565b905062093a808111156125e6576040805162461bcd60e51b81526020600482015260146024820152736c6f636b20706572696f6420746f6f206c6f6e6760601b604482015290519081900360640190fd5b600555612754565b61265a87878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526015815274189b9893185c99d9551c985b9cd9995c931a5b5a5d605a1b602082015291506135509050565b1561271757604080516020601f870181900481028201810190925285815260009161269d9188888083850183828082843760009201919091525061363792505050565b905068056bc75e2d631000008110156126e75760405162461bcd60e51b815260040180806020018281038252602281526020018061519f6022913960400191505060405180910390fd5b6000805260066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f855612754565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a878787876040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050505050565b33611008146128295760405162461bcd60e51b81526004018080602001828103825260238152602001806153c16023913960400191505060405180910390fd5b600091825260046020908152604080842080546001600160a01b03191690556001600160a01b039290921683526003815281832083905560029052812055565b6221272160e91b81565b61c35081565b60026020526000908152604090205481565b6001600160a01b031660009081526003602052604090205490565b61100281565b60005460ff166128f1576040805162461bcd60e51b815260206004820152601960248201526000805160206153e4833981519152604482015290519081900360640190fd5b33612000146129315760405162461bcd60e51b815260040180806020018281038252602f815260200180615392602f913960400191505060405180910390fd5b60ff831660031415611d2157611d1c82828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061363c92505050565b60085460ff16600214156129c8576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b6008805460ff191660021790556001600160a01b0380831660009081526007602090815260408083209385168352929052208054612a40576040805162461bcd60e51b815260206004820152601060248201526f1b9bc81b1bd8dad95908185b5bdd5b9d60821b604482015290519081900360640190fd5b8060010154421015612a99576040805162461bcd60e51b815260206004820152601760248201527f7374696c6c206f6e206c6f636b696e6720706572696f64000000000000000000604482015290519081900360640190fd5b805460008083556001600160a01b038516612b0c576040516001600160a01b038516906127109084906000818181858888f193505050503d8060008114612afc576040519150601f19603f3d011682016040523d82523d6000602084013e612b01565b606091505b505080915050612b9f565b846001600160a01b031663a9059cbb61c35086856040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b158015612b6f57600080fd5b5087f1158015612b83573d6000803e3d6000fd5b50505050506040513d6020811015612b9a57600080fd5b505190505b80612bf1576040805162461bcd60e51b815260206004820152601e60248201527f776974686472617720756e6c6f636b656420746f6b656e206661696c65640000604482015290519081900360640190fd5b836001600160a01b0316856001600160a01b03167f832fc3e25f2b3e6fb0eb59419a73cba405f2a249fce75f7e31ea5a457a0323f1846040518082815260200191505060405180910390a350506008805460ff19166001179055505050565b61100381565b61200481565b60003361200214612cb4576040805162461bcd60e51b815260206004820152601f60248201527f746865206d73672073656e646572206d757374206265207374616b6548756200604482015290519081900360640190fd5b814710612cf4576040516120029083156108fc029084906000818181858888f19350505050158015612cea573d6000803e3d6000fd5b50600190506113b2565b506000919050565b60005460ff1615612d54576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b66071afd498d000060019081556000808052600260205260127fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b55805460ff19169091179055565b60066020526000908152604090205481565b600481565b600581565b601181565b61100081565b61271081565b69021e19e0c9bab240000081565b6001600160a01b03811660009081526003602090815260409182902054825182815280840190935260609290918391906020820181803683375050506020810183905290506000805b60208160ff161015612e6757828160ff1681518110612e3b57fe5b01602001516001600160f81b03191615612e5a57816001019150612e5f565b612e67565b600101612e20565b5060608160ff166040519080825280601f01601f191660200182016040528015612e98576020820181803683370190505b50905060005b8260ff168160ff161015612ef457838160ff1681518110612ebb57fe5b602001015160f81c60f81b828260ff1681518110612ed557fe5b60200101906001600160f81b031916908160001a905350600101612e9e565b5095945050505050565b61100481565b6060612f0e61506f565b6000612f1984613733565b9150915080612f6f576040805162461bcd60e51b815260206004820152601f60248201527f756e7265636f676e697a6564207472616e73666572496e207061636b61676500604482015290519081900360640190fd5b6000612f7a83613872565b905063ffffffff81161561300e576040808401516020808601516001600160a01b03166000908152600290915291822054612fb59190613bd8565b9050612fbf6150a4565b60405180608001604052808660000151815260200183815260200186608001516001600160a01b031681526020018463ffffffff16815250905061300281613c11565b955050505050506113b2565b505060408051600081526020810190915291506113b29050565b60008282018381101561228d576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600061228d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613ced565b6000826130d357506000612290565b828202828482816130e057fe5b041461228d5760405162461bcd60e51b81526004018080602001828103825260218152602001806152e46021913960400191505060405180910390fd5b600061228d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613d8f565b60408051600680825260e08201909252606091829190816020015b606081526020019060019003908161317a575050835190915061319c90613de9565b816000815181106131a957fe5b60200260200101819052506131ca83602001516001600160a01b0316613dfc565b816001815181106131d757fe5b60200260200101819052506000836040015151905060608160405190808252806020026020018201604052801561322257816020015b606081526020019060019003908161320d5790505b50905060005b8281101561326f576132508660400151828151811061324357fe5b6020026020010151613de9565b82828151811061325c57fe5b6020908102919091010152600101613228565b5061327981613e1f565b8360028151811061328657fe5b60200260200101819052506060826040519080825280602002602001820160405280156132c757816020015b60608152602001906001900390816132b25790505b50905060005b8381101561331d576132fe876060015182815181106132e857fe5b60200260200101516001600160a01b0316613dfc565b82828151811061330a57fe5b60209081029190910101526001016132cd565b5061332781613e1f565b8460038151811061333457fe5b602002602001018190525060608360405190808252806020026020018201604052801561337557816020015b60608152602001906001900390816133605790505b50905060005b848110156133b557613396886080015182815181106132e857fe5b8282815181106133a257fe5b602090810291909101015260010161337b565b506133bf81613e1f565b856004815181106133cc57fe5b60200260200101819052506133ee8760a0015167ffffffffffffffff16613de9565b856005815181106133fb57fe5b602002602001018190525061340f85613e1f565b979650505050505050565b600060088211156134435761343c836007198401600a0a63ffffffff6130c416565b9050612290565b61228d836008849003600a0a63ffffffff61308216565b6001600160a01b0380841660009081526007602090815260408083209385168352929052208054613491908463ffffffff61302816565b81554262093a80016001820181905560408051858152602081019290925280516001600160a01b03808616939088169289927f446d1aa056e7b903901f49880e9f252762c1b81dc4301cf28db6dae526497eaa9281900390910190a45050505050565b6134fc6150cb565b600061350783613ea9565b91509150806135475760405162461bcd60e51b81526004018080602001828103825260248152602001806153336024913960400191505060405180910390fd5b611c4182614074565b6000816040516020018082805190602001908083835b602083106135855780518252601f199092019160209182019101613566565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106135f35780518252601f1990920191602091820191016135d4565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b613644615023565b600061364f836144f8565b915091508061368f5760405162461bcd60e51b81526004018080602001828103825260248152602001806151c16024913960400191505060405180910390fd5b6136976150cb565b602080840180516001600160a01b0390811684526040808701518585015291511660009081526002909252812054905b846040015151811015613718576136f5856040015182815181106136e757fe5b60200260200101518361341a565b8560400151828151811061370557fe5b60209081029190910101526001016136c7565b506080840151604083015260056060830152611c3d82614074565b61373b61506f565b600061374561506f565b61374d615102565b61375e6137598661475c565b614781565b90506000805b61376d836147cb565b15613865578061378f57613788613783846147ec565b61483a565b845261385d565b80600114156137bc576137a96137a4846147ec565b6148f1565b6001600160a01b0316602085015261385d565b80600214156137db576137d1613783846147ec565b604085015261385d565b8060031415613803576137f06137a4846147ec565b6001600160a01b0316606085015261385d565b806004141561382b576138186137a4846147ec565b6001600160a01b0316608085015261385d565b806005141561385857613840613783846147ec565b67ffffffffffffffff1660a08501526001915061385d565b613865565b600101613764565b5091935090915050915091565b60208101516000906001600160a01b03166139b6578160a0015167ffffffffffffffff164211156138a5575060016113b2565b81604001514710156138b9575060036113b2565b6138c28261490b565b61393757606082015160408084015190516000926001600160a01b0316916127109184818181858888f193505050503d806000811461391d576040519150601f19603f3d011682016040523d82523d6000602084013e613922565b606091505b50509050806139355750600490506113b2565b505b7f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5982602001518360600151846040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a15060006113b2565b8160a0015167ffffffffffffffff164211156139d4575060016113b2565b81516020808401516001600160a01b031660009081526003909152604090205414613a01575060026113b2565b602080830151604080516370a0823160e01b815230600482015290516000936001600160a01b03909316926370a082319261c3509260248083019392829003018187803b158015613a5157600080fd5b5086fa158015613a65573d6000803e3d6000fd5b50505050506040513d6020811015613a7c57600080fd5b50516040840151909150811015613a975750600390506113b2565b613aa08361490b565b613b5757600083602001516001600160a01b031663a9059cbb61c350866060015187604001516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b158015613b1557600080fd5b5087f1158015613b29573d6000803e3d6000fd5b50505050506040513d6020811015613b4057600080fd5b5051905080613b555750600591506113b29050565b505b7f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5983602001518460600151856040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a150600090506113b2565b60006008821115613bfa5761343c836007198401600a0a63ffffffff61308216565b61228d836008849003600a0a63ffffffff6130c416565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081613c2c5750508351909150613c4e90613de9565b81600081518110613c5b57fe5b6020026020010181905250613c738360200151613de9565b81600181518110613c8057fe5b6020026020010181905250613ca183604001516001600160a01b0316613dfc565b81600281518110613cae57fe5b6020026020010181905250613ccc836060015163ffffffff16613de9565b81600381518110613cd957fe5b602002602001018190525061126281613e1f565b60008183613d795760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613d3e578181015183820152602001613d26565b50505050905090810190601f168015613d6b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581613d8557fe5b0495945050505050565b60008184841115613de15760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315613d3e578181015183820152602001613d26565b505050900390565b6060612290613df783614a79565b614b5f565b60408051600560a21b831860148201526034810190915260609061126281614b5f565b6060815160001415613e4057506040805160008152602081019091526113b2565b606082600081518110613e4f57fe5b602002602001015190506000600190505b8351811015613e9057613e8682858381518110613e7957fe5b6020026020010151614bb1565b9150600101613e60565b50611262613ea3825160c060ff16614c2e565b82614bb1565b613eb16150cb565b6000613ebb6150cb565b613ec3615102565b613ecf6137598661475c565b90506000805b613ede836147cb565b156138655780613f0457613ef46137a4846147ec565b6001600160a01b0316845261406c565b8060011415613fa5576060613f20613f1b856147ec565b614d26565b90508051604051908082528060200260200182016040528015613f4d578160200160208202803683370190505b50602086015260005b8151811015613f9e57613f7b828281518110613f6e57fe5b602002602001015161483a565b86602001518281518110613f8b57fe5b6020908102919091010152600101613f56565b505061406c565b8060021415614047576060613fbc613f1b856147ec565b90508051604051908082528060200260200182016040528015613fe9578160200160208202803683370190505b50604086015260005b8151811015613f9e5761401782828151811061400a57fe5b60200260200101516148f1565b8660400151828151811061402757fe5b6001600160a01b0390921660209283029190910190910152600101613ff2565b80600314156138585761405c613783846147ec565b63ffffffff166060850152600191505b600101613ed5565b80516001600160a01b031661429e5760005b816020015151811015614298576000826040015182815181106140a557fe5b60200260200101516001600160a01b0316612710846020015184815181106140c957fe5b60209081029190910101516040516000818181858888f193505050503d8060008114614111576040519150601f19603f3d011682016040523d82523d6000602084013e614116565b606091505b50509050806141d9577f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061415557fe5b60200260200101518560200151858151811061416d57fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a161428f565b7fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a83600001518460400151848151811061420f57fe5b60200260200101518560200151858151811061422757fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b50600101614086565b506144f5565b60005b8160200151518110156144f357600082600001516001600160a01b031663a9059cbb61c350856040015185815181106142d657fe5b6020026020010151866020015186815181106142ee57fe5b60200260200101516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b15801561434557600080fd5b5087f1158015614359573d6000803e3d6000fd5b50505050506040513d602081101561437057600080fd5b505190508015614434577fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a8360000151846040015184815181106143b057fe5b6020026020010151856020015185815181106143c857fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a16144ea565b7f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061446a57fe5b60200260200101518560200151858151811061448257fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b506001016142a1565b505b50565b614500615023565b600061450a615023565b614512615102565b61451e6137598661475c565b90506000805b61452d836147cb565b15613865578061454a57614543613783846147ec565b8452614754565b80600114156145725761455f6137a4846147ec565b6001600160a01b03166020850152614754565b8060021415614601576060614589613f1b856147ec565b905080516040519080825280602002602001820160405280156145b6578160200160208202803683370190505b50604086015260005b81518110156145fa576145d7828281518110613f6e57fe5b866040015182815181106145e757fe5b60209081029190910101526001016145bf565b5050614754565b8060031415614696576060614618613f1b856147ec565b90508051604051908082528060200260200182016040528015614645578160200160208202803683370190505b50606086015260005b81518110156145fa5761466682828151811061400a57fe5b8660600151828151811061467657fe5b6001600160a01b039092166020928302919091019091015260010161464e565b806004141561472b5760606146ad613f1b856147ec565b905080516040519080825280602002602001820160405280156146da578160200160208202803683370190505b50608086015260005b81518110156145fa576146fb82828151811061400a57fe5b8660800151828151811061470b57fe5b6001600160a01b03909216602092830291909101909101526001016146e3565b806005141561385857614740613783846147ec565b67ffffffffffffffff1660a0850152600191505b600101614524565b614764615122565b506040805180820190915281518152602082810190820152919050565b614789615102565b61479282614df7565b61479b57600080fd5b60006147aa8360200151614e31565b60208085015160408051808201909152868152920190820152915050919050565b60006147d5615122565b505080518051602091820151919092015191011190565b6147f4615122565b6147fd826147cb565b61480657600080fd5b6020820151600061481682614e94565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061484f57508151602110155b61485857600080fd5b60006148678360200151614e31565b905080836000015110156148c2576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b8251602080850151830180519284900392918310156148e857826020036101000a820491505b50949350505050565b805160009060151461490257600080fd5b6122908261483a565b600080805260066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f8541580156149445750600554155b156149865760008052600660205269021e19e0c9bab24000007f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f85561a8c06005555b6020808301516001600160a01b03166000908152600690915260409020548015806149b45750808360400151105b156149c35760009150506113b2565b6020808401516001600160a01b039081166000908152600783526040808220606088015190931682529190925290819020908401518154614a099163ffffffff61302816565b8155600554420160018201819055606085015160208087015160408089015181519081529283019490945283516001600160a01b039384169493909116927f3fb83143cd331170da18fb1e8564d97e8ec39264b6ecb1ba248ea7596ab07258928290030190a35060019392505050565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416614abd57506018614ae1565b6fffffffffffffffffffffffffffffffff198416614add57506010614ae1565b5060005b6020811015614b1757818181518110614af657fe5b01602001516001600160f81b03191615614b0f57614b17565b600101614ae1565b60008160200390506060816040519080825280601f01601f191660200182016040528015614b4c576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015614b915750607f60f81b82600081518110614b7f57fe5b01602001516001600160f81b03191611155b15614b9d5750806113b2565b612290614baf8351608060ff16614c2e565b835b6060806040519050835180825260208201818101602087015b81831015614be2578051835260209283019201614bca565b50855184518101855292509050808201602086015b81831015614c0f578051835260209283019201614bf7565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310614c7e576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b60408051600180825281830190925260609160208201818036833701905050905060378411614cd85782840160f81b81600081518110614cba57fe5b60200101906001600160f81b031916908160001a9053509050612290565b6060614ce385614a79565b90508381510160370160f81b82600081518110614cfc57fe5b60200101906001600160f81b031916908160001a905350614d1d8282614bb1565b95945050505050565b6060614d3182614df7565b614d3a57600080fd5b6000614d4583614fc7565b9050606081604051908082528060200260200182016040528015614d8357816020015b614d70615122565b815260200190600190039081614d685790505b5090506000614d958560200151614e31565b60208601510190506000805b84811015614dec57614db283614e94565b9150604051806040016040528083815260200184815250848281518110614dd557fe5b602090810291909101015291810191600101614da1565b509195945050505050565b8051600090614e08575060006113b2565b6020820151805160001a9060c0821015614e27576000925050506113b2565b5060019392505050565b8051600090811a6080811015614e4b5760009150506113b2565b60b8811080614e66575060c08110801590614e66575060f881105b15614e755760019150506113b2565b60c0811015614e895760b5190190506113b2565b60f5190190506113b2565b80516000908190811a6080811015614eaf5760019150614fc0565b60b8811015614ec457607e1981019150614fc0565b60c0811015614f3e57600060b78203600186019550806020036101000a865104915060018101820193505080831015614f38576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50614fc0565b60f8811015614f535760be1981019150614fc0565b600060f78203600186019550806020036101000a865104915060018101820193505080831015614fbe576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b8051600090614fd8575060006113b2565b60008090506000614fec8460200151614e31565b602085015185519181019250015b8082101561501a5761500b82614e94565b82019150826001019250614ffa565b50909392505050565b6040518060c001604052806000801916815260200160006001600160a01b03168152602001606081526020016060815260200160608152602001600067ffffffffffffffff1681525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b60408051608081018252600080825260208201819052918101829052606081019190915290565b604051806080016040528060006001600160a01b031681526020016060815260200160608152602001600063ffffffff1681525090565b6040518060400160405280615115615122565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe6f6e6c79207374616b696e672073797374656d20636f6e74726163742063616e2063616c6c20746869732066756e6374696f6e746865206d6573736167652073656e646572206d75737420626520696e63656e746976697a6520636f6e7472616374626e62206c61726765207472616e73666572206c696d697420746f6f20736d616c6c756e7265636f676e697a6564207472616e736665724f75742073796e207061636b61676565787069726554696d65206d7573742062652074776f206d696e75746573206c61746572616d6f756e7420697320746f6f206c617267652c20657863656564206d6178696d756d206265703220746f6b656e20616d6f756e74746865206d73672073656e646572206d75737420626520746f6b656e207265636f76657220706f7274616c4c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620726566756e644164647273696e76616c6964207472616e7366657220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374756e7265636f676e697a6564207472616e736665724f75742061636b207061636b6167654c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620616d6f756e7473746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d73672073656e646572206d75737420626520746f6b656e4d616e6167657274686520636f6e7472616374206e6f7420696e69742079657400000000000000726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e7366657220424e4220616d6f756e7420616e642072656c6179466565696e76616c696420726563656976656420424e4220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6ea164736f6c6343000604000a", - }, - { - ContractAddr: GovHubContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/2dbebb57a0d436d6a30b78c1f123395035249035", - Code: "608060405234801561001057600080fd5b506004361061021c5760003560e01c8063831d65d111610125578063ab51bb96116100ad578063df8079e91161007c578063df8079e914610615578063f1fad1041461061d578063f9a2bbc714610625578063fc3e59081461062d578063fd6a6879146106355761021c565b8063ab51bb9614610585578063c81b16621461058d578063c8509d8114610595578063dc927faf1461060d5761021c565b80639dc09262116100f45780639dc0926214610549578063a1a11bf514610551578063a78abc1614610559578063aa82dce114610575578063aad560631461057d5761021c565b8063831d65d1146103f857806388e4194e1461047257806396713da9146105395780639ab1a373146105415761021c565b80634bf6c882116101a857806370fd5bad1161017757806370fd5bad146103d0578063718a8aa8146103d857806375d47a0a146103e05780637942fd05146103e85780637e434d54146103f05761021c565b80634bf6c882146103b057806351b4dce3146103b857806351e80672146103c05780636e47b482146103c85761021c565b80633a21baae116101ef5780633a21baae1461035b5780633dffc3871461036357806343756e5c146103815780634900c4ea14610389578063493279b1146103915761021c565b80630bee7a67146102215780630e2374a5146102425780631182b875146102665780632808702814610353575b600080fd5b61022961063d565b6040805163ffffffff9092168252519081900360200190f35b61024a610642565b604080516001600160a01b039092168252519081900360200190f35b6102de6004803603604081101561027c57600080fd5b60ff8235169190810190604081016020820135600160201b8111156102a057600080fd5b8201836020820111156102b257600080fd5b803590602001918460018302840111600160201b831117156102d357600080fd5b509092509050610648565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610318578181015183820152602001610300565b50505050905090810190601f1680156103455780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61024a610737565b61022961073d565b61036b610742565b6040805160ff9092168252519081900360200190f35b61024a610747565b61036b61074d565b610399610752565b6040805161ffff9092168252519081900360200190f35b61036b610757565b61024a61075c565b61024a610762565b61024a610768565b61036b61076e565b61036b610773565b61024a610778565b61036b61077e565b61024a610783565b6104706004803603604081101561040e57600080fd5b60ff8235169190810190604081016020820135600160201b81111561043257600080fd5b82018360208201111561044457600080fd5b803590602001918460018302840111600160201b8311171561046557600080fd5b509092509050610789565b005b6104706004803603606081101561048857600080fd5b810190602081018135600160201b8111156104a257600080fd5b8201836020820111156104b457600080fd5b803590602001918460018302840111600160201b831117156104d557600080fd5b919390929091602081019035600160201b8111156104f257600080fd5b82018360208201111561050457600080fd5b803590602001918460018302840111600160201b8311171561052557600080fd5b9193509150356001600160a01b031661081b565b61036b610906565b61022961090b565b61024a610910565b61024a610916565b61056161091c565b604080519115158252519081900360200190f35b61024a610925565b61024a61092b565b61022961074d565b61024a610931565b610470600480360360408110156105ab57600080fd5b60ff8235169190810190604081016020820135600160201b8111156105cf57600080fd5b8201836020820111156105e157600080fd5b803590602001918460018302840111600160201b8311171561060257600080fd5b509092509050610937565b61024a6109ae565b61024a6109b4565b61036b6109ba565b61024a6109bf565b61036b6109c5565b61024a6109ca565b606481565b61200181565b6060336120001461068a5760405162461bcd60e51b815260040180806020018281038252602f81526020018061169d602f913960400191505060405180910390fd5b610692611638565b60006106d385858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506109d092505050565b91509150806106ef576106e66064610a96565b92505050610730565b60006106fa83610b00565b905063ffffffff811661072157505060408051600081526020810190915291506107309050565b61072a81610a96565b93505050505b9392505050565b61200581565b606681565b600181565b61100181565b600081565b603881565b600881565b61200681565b61200081565b61100581565b600281565b601081565b61100881565b600b81565b61200381565b33612000146107c95760405162461bcd60e51b815260040180806020018281038252602f81526020018061169d602f913960400191505060405180910390fd5b6040805162461bcd60e51b815260206004820152601e60248201527f7265636569766520756e65787065637465642061636b207061636b6167650000604482015290519081900360640190fd5b505050565b336120061461085b5760405162461bcd60e51b81526004018080602001828103825260318152602001806116cc6031913960400191505060405180910390fd5b610863611638565b604051806060016040528087878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505090825250604080516020601f8801819004810282018101909252868152918101919087908790819084018382808284376000920191909152505050908252506001600160a01b03841660209091015290506108fd81610b00565b50505050505050565b600981565b606581565b61100781565b61100681565b60005460ff1681565b61200281565b61300081565b61100281565b33612000146109775760405162461bcd60e51b815260040180806020018281038252602f81526020018061169d602f913960400191505060405180910390fd5b60405162461bcd60e51b81526004018080602001828103825260238152602001806116fd6023913960400191505060405180910390fd5b61100381565b61200481565b601181565b61100081565b600381565b61100481565b6109d8611638565b60006109e2611638565b6109ea611662565b6109fb6109f686610ea1565b610ec6565b90506000805b610a0a83610f10565b15610a895780610a2c57610a25610a2084610f31565b610f7f565b8452610a81565b8060011415610a4b57610a41610a2084610f31565b6020850152610a81565b8060021415610a7c57610a65610a6084610f31565b610ff8565b6001600160a01b0316604085015260019150610a81565b610a89565b600101610a01565b5091935090915050915091565b604080516001808252818301909252606091829190816020015b6060815260200190600190039081610ab0579050509050610ad68363ffffffff16611018565b81600081518110610ae357fe5b6020026020010181905250610af78161102b565b9150505b919050565b6000610b0f82604001516110b5565b610b7b57604080516020808252601c908201527f74686520746172676574206973206e6f74206120636f6e7472616374000000008183015290517f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb29181900360600190a1506065610afb565b81604001516001600160a01b031663ac431751836000015184602001516040518363ffffffff1660e01b8152600401808060200180602001838103835285818151815260200191508051906020019080838360005b83811015610be8578181015183820152602001610bd0565b50505050905090810190601f168015610c155780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b83811015610c48578181015183820152602001610c30565b50505050905090810190601f168015610c755780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015610c9657600080fd5b505af1925050508015610ca7575060015b610e99576040516000815260443d1015610cc357506000610d60565b60046000803e60005160e01c6308c379a08114610ce4576000915050610d60565b60043d036004833e81513d602482011167ffffffffffffffff82111715610d1057600092505050610d60565b808301805167ffffffffffffffff811115610d32576000945050505050610d60565b8060208301013d8601811115610d5057600095505050505050610d60565b601f01601f191660405250925050505b80610d6b5750610e0e565b7f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2816040518080602001828103825283818151815260200191508051906020019080838360005b83811015610dca578181015183820152602001610db2565b50505050905090810190601f168015610df75780820380516001836020036101000a031916815260200191505b509250505060405180910390a16066915050610afb565b3d808015610e38576040519150601f19603f3d011682016040523d82523d6000602084013e610e3d565b606091505b5060408051602080825283518183015283517f1279f84165b4fd69c35e1f338ff107231b036c655cd1688851e011ce617c4e8d938593928392918301919085019080838360008315610dca578181015183820152602001610db2565b506000919050565b610ea9611682565b506040805180820190915281518152602082810190820152919050565b610ece611662565b610ed7826110bb565b610ee057600080fd5b6000610eef83602001516110f5565b60208085015160408051808201909152868152920190820152915050919050565b6000610f1a611682565b505080518051602091820151919092015191011190565b610f39611682565b610f4282610f10565b610f4b57600080fd5b60208201516000610f5b82611158565b80830160209586015260408051808201909152908152938401919091525090919050565b8051606090610f8d57600080fd5b6000610f9c83602001516110f5565b83516040805191839003808352601f19601f8201168301602001909152919250606090828015610fd3576020820181803683370190505b5090506000816020019050610fef84876020015101828561128b565b50949350505050565b805160009060151461100957600080fd5b611012826112d6565b92915050565b60606110126110268361138b565b611471565b606081516000141561104c5750604080516000815260208101909152610afb565b60608260008151811061105b57fe5b602002602001015190506000600190505b835181101561109c576110928285838151811061108557fe5b60200260200101516114c3565b915060010161106c565b50610af76110af825160c060ff16611540565b826114c3565b3b151590565b80516000906110cc57506000610afb565b6020820151805160001a9060c08210156110eb57600092505050610afb565b5060019392505050565b8051600090811a608081101561110f576000915050610afb565b60b881108061112a575060c0811080159061112a575060f881105b15611139576001915050610afb565b60c081101561114d5760b519019050610afb565b60f519019050610afb565b80516000908190811a60808110156111735760019150611284565b60b881101561118857607e1981019150611284565b60c081101561120257600060b78203600186019550806020036101000a8651049150600181018201935050808310156111fc576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50611284565b60f88110156112175760be1981019150611284565b600060f78203600186019550806020036101000a865104915060018101820193505080831015611282576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b8061129557610816565b5b602081106112b5578251825260209283019290910190601f1901611296565b915181516020939093036101000a6000190180199091169216919091179052565b8051600090158015906112eb57508151602110155b6112f457600080fd5b600061130383602001516110f5565b9050808360000151101561135e576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015610fef57506020919091036101000a90049392505050565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166113cf575060186113f3565b6fffffffffffffffffffffffffffffffff1984166113ef575060106113f3565b5060005b60208110156114295781818151811061140857fe5b01602001516001600160f81b0319161561142157611429565b6001016113f3565b60008160200390506060816040519080825280601f01601f19166020018201604052801561145e576020820181803683370190505b5080830196909652508452509192915050565b6060815160011480156114a35750607f60f81b8260008151811061149157fe5b01602001516001600160f81b03191611155b156114af575080610afb565b6110126114c18351608060ff16611540565b835b6060806040519050835180825260208201818101602087015b818310156114f45780518352602092830192016114dc565b50855184518101855292509050808201602086015b81831015611521578051835260209283019201611509565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310611590576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b604080516001808252818301909252606091602082018180368337019050509050603784116115ea5782840160f81b816000815181106115cc57fe5b60200101906001600160f81b031916908160001a9053509050611012565b60606115f58561138b565b90508381510160370160f81b8260008151811061160e57fe5b60200101906001600160f81b031916908160001a90535061162f82826114c3565b95945050505050565b6040518060600160405280606081526020016060815260200160006001600160a01b031681525090565b6040518060400160405280611675611682565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d73672073656e646572206d75737420626520676f7665726e6f722074696d656c6f636b20636f6e74726163747265636569766520756e6578706563746564206661696c2061636b207061636b616765a164736f6c6343000604000a", - }, - { - ContractAddr: CrossChainContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/2dbebb57a0d436d6a30b78c1f123395035249035", - Code: "608060405234801561001057600080fd5b50600436106103e65760003560e01c806374f079b81161020a578063c27cdcfb11610125578063df8079e9116100b8578063f1fad10411610087578063f1fad10414610bac578063f7a251d714610bb4578063f9a2bbc714610c2c578063fc3e590814610c34578063fd6a687914610c3c576103e6565b8063df8079e914610b74578063e1c7392a14610b7c578063e3b0480514610b84578063e6400bbe14610ba4576103e6565b8063d31f968d116100f4578063d31f968d14610b2d578063d76a867514610b5c578063dc40433114610b64578063dc927faf14610b6c576103e6565b8063c27cdcfb14610af5578063c780e9de14610b15578063c81b166214610b1d578063ccc108d714610b25576103e6565b80639dc092621161019d578063aad560631161016c578063aad5606314610a27578063ab51bb9614610a2f578063ac43175114610a37578063b0355f5b146107d6576103e6565b80639dc0926214610a07578063a1a11bf514610a0f578063a78abc1614610a17578063aa82dce114610a1f576103e6565b806384013b6a116101d957806384013b6a1461091c578063863fe4ab146109f75780638cc8f561146108e457806396713da9146109ff576103e6565b806374f079b8146108fc57806375d47a0a146109045780637942fd051461090c5780637e434d5414610914576103e6565b806343756e5c116103055780636a3cb34d116102985780636e47a51a116102675780636e47a51a146108bc5780636e47b482146108dc57806370fd5bad146108e4578063718a8aa8146108ec578063719482d5146108f4576103e6565b80636a3cb34d146108645780636bacff2c1461086c5780636c46aa68146108645780636de380bd146108b4576103e6565b806351e80672116102d457806351e806721461081e5780635692ddd3146108265780635f8321771461082e57806363e1394e1461085c576103e6565b806343756e5c146107fe578063493279b1146108065780634bf6c8821461080e57806351b4dce314610816576103e6565b8063299b533d1161037d5780633a648b151161034c5780633a648b15146106725780633bdc47a6146106ae5780633dffc387146107d6578063422f9050146107de576103e6565b8063299b533d146105f85780632af6f3991461062c5780632ff32aea14610649578063308325f41461066a576103e6565b80631d130935116103b95780631d130935146104685780631e275ae11461048457806322556cdc146105e857806328087028146105f0576103e6565b806305e68258146103eb5780630bee7a67146104095780630e2374a51461042a57806314b3023b1461044e575b600080fd5b6103f3610c44565b6040805160ff9092168252519081900360200190f35b610411610c49565b6040805163ffffffff9092168252519081900360200190f35b610432610c4e565b604080516001600160a01b039092168252519081900360200190f35b610456610c54565b60408051918252519081900360200190f35b610470610c5a565b604080519115158252519081900360200190f35b6105e6600480360361010081101561049b57600080fd5b81018160a081016080820135600160201b8111156104b857600080fd5b8201836020820111156104ca57600080fd5b803590602001918460018302840111600160201b831117156104eb57600080fd5b919390929091602081019035600160201b81111561050857600080fd5b82018360208201111561051a57600080fd5b803590602001918460018302840111600160201b8311171561053b57600080fd5b919390929091602081019035600160201b81111561055857600080fd5b82018360208201111561056a57600080fd5b803590602001918460018302840111600160201b8311171561058b57600080fd5b919390929091602081019035600160201b8111156105a857600080fd5b8201836020820111156105ba57600080fd5b803590602001918460018302840111600160201b831117156105db57600080fd5b509092509050610c63565b005b610456611347565b61043261134c565b6106156004803603602081101561060e57600080fd5b5035611352565b6040805161ffff9092168252519081900360200190f35b6104706004803603602081101561064257600080fd5b5035611368565b61065161137d565b60408051600792830b90920b8252519081900360200190f35b610456611386565b6106926004803603602081101561068857600080fd5b503560ff1661138c565b604080516001600160401b039092168252519081900360200190f35b610761600480360360608110156106c457600080fd5b60ff82351691602081013591810190606081016040820135600160201b8111156106ed57600080fd5b8201836020820111156106ff57600080fd5b803590602001918460018302840111600160201b8311171561072057600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506113a7945050505050565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561079b578181015183820152602001610783565b50505050905090810190601f1680156107c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103f361141d565b610470600480360360208110156107f457600080fd5b503560ff16611422565b610432611437565b61061561143d565b6103f3611442565b610432611447565b61043261144d565b610456611453565b6105e66004803603604081101561084457600080fd5b506001600160a01b0381358116916020013516611483565b6104566116e3565b61061561170b565b6108896004803603602081101561088257600080fd5b5035611710565b6040805161ffff90941684526001600160801b03909216602084015282820152519081900360600190f35b61045661173f565b610432600480360360208110156108d257600080fd5b503560ff16611766565b610432611781565b6103f361170b565b6103f3611787565b61061561141d565b61045661178c565b610432611792565b6103f3611798565b61043261179d565b6105e6600480360360a081101561093257600080fd5b810190602081018135600160201b81111561094c57600080fd5b82018360208201111561095e57600080fd5b803590602001918460018302840111600160201b8311171561097f57600080fd5b919390929091602081019035600160201b81111561099c57600080fd5b8201836020820111156109ae57600080fd5b803590602001918460018302840111600160201b831117156109cf57600080fd5b919350915080356001600160401b03908116916020810135909116906040013560ff166117a3565b610456612a5d565b6103f3612a65565b610432612a6a565b610432612a70565b610470612a76565b610432612a7f565b610432612a85565b610411610c44565b6105e660048036036040811015610a4d57600080fd5b810190602081018135600160201b811115610a6757600080fd5b820183602082011115610a7957600080fd5b803590602001918460018302840111600160201b83111715610a9a57600080fd5b919390929091602081019035600160201b811115610ab757600080fd5b820183602082011115610ac957600080fd5b803590602001918460018302840111600160201b83111715610aea57600080fd5b509092509050612a8b565b61069260048036036020811015610b0b57600080fd5b503560ff1661354f565b61045661356a565b61043261358e565b6105e6613594565b61047060048036036040811015610b4357600080fd5b5080356001600160a01b0316906020013560ff166137e8565b610761613808565b610456613827565b61043261382d565b610432613833565b6105e6613839565b61069260048036036020811015610b9a57600080fd5b503560ff16613bf0565b6105e6613c0b565b6103f3613e2a565b6105e660048036036060811015610bca57600080fd5b60ff8235169190810190604081016020820135600160201b811115610bee57600080fd5b820183602082011115610c0057600080fd5b803590602001918460018302840111600160201b83111715610c2157600080fd5b919350915035613e2f565b610432613f72565b6103f3613f78565b610432613f7d565b600081565b606481565b61200181565b60015481565b600b5460ff1681565b60005460ff16610ca8576040805162461bcd60e51b81526020600482015260196024820152600080516020614a60833981519152604482015290519081900360640190fd5b604080516337d7f9c160e21b81526001600160401b038b35166004820181905291516110039163df5fe704916024808301926020929190829003018186803b158015610cf357600080fd5b505afa158015610d07573d6000803e3d6000fd5b505050506040513d6020811015610d1d57600080fd5b5051610d5a5760405162461bcd60e51b8152600401808060200182810382526023815260200180614a806023913960400191505060405180910390fd5b604080516337d7f9c160e21b815260208c8101356001600160401b03166004830181905292516110039263df5fe704926024808301939192829003018186803b158015610da657600080fd5b505afa158015610dba573d6000803e3d6000fd5b505050506040513d6020811015610dd057600080fd5b5051610e0d5760405162461bcd60e51b8152600401808060200182810382526023815260200180614a806023913960400191505060405180910390fd5b60608b013560ff81166000908152600560205260409020546001600160401b03909116906001600160a01b0316610e86576040805162461bcd60e51b815260206004820152601860248201527718da185b9b995b081a5cc81b9bdd081cdd5c1c1bdc9d195960421b604482015290519081900360640190fd5b600b5460ff1615610eca576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b8888604051808383808284376040519201829003822094508f93508e9250819050838380828437808301925050509250505060405180910390201415610f46576040805162461bcd60e51b815260206004820152600c60248201526b1cd85b59481c185e5b1bd85960a21b604482015290519081900360640190fd5b60606001600160401b0360408e01358116908e83013516610f678282613f83565b80516020808301919091206000818152600e9092526040909120549194509060ff1615610fd0576040805162461bcd60e51b8152602060048201526012602482015271185b1c9958591e4818da185b1b195b99d95960721b604482015290519081900360640190fd5b6000908152600e60205260408120805460ff191660011790558f8160200201356001600160401b0316905060608f8f8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060608c8c8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506040805163cba510a960e01b81526001600160401b038a16600482015290519596509094611003945063cba510a9935060248083019350602092829003018186803b1580156110c657600080fd5b505afa1580156110da573d6000803e3d6000fd5b505050506040513d60208110156110f057600080fd5b505160408051808201909152600381526269626360e81b602082015290915061111d908290898686613fcb565b611166576040805162461bcd60e51b81526020600482015260156024820152740696e76616c6964206d65726b6c652070726f6f663605c1b604482015290519081900360640190fd5b5050505060008f60016004811061117957fe5b60200201356001600160401b0316905060608d8d8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8f018190048102820181019092528d815293945060609392508d91508c908190840183828082843760009201829052506040805163cba510a960e01b81526001600160401b038a16600482015290519596509094611003945063cba510a9935060248083019350602092829003018186803b15801561124557600080fd5b505afa158015611259573d6000803e3d6000fd5b505050506040513d602081101561126f57600080fd5b505160408051808201909152600381526269626360e81b602082015290915061129c908290898686613fcb565b6112e5576040805162461bcd60e51b8152602060048201526015602482015274696e76616c6964206d65726b6c652070726f6f663160581b604482015290519081900360640190fd5b505050506112f16140c8565b604080516001600160401b038416815260ff83166020820152815133927f039eb91179ffd7d3b6e97f8ea106e748e827f910b872375dbc9c14a362319c3c928290030190a2505050505050505050505050505050565b603281565b61200581565b600d6020526000908152604090205461ffff1681565b600e6020526000908152604090205460ff1681565b60045460070b81565b60025481565b600a602052600090815260409020546001600160401b031681565b60606000825160210190506060816040519080825280601f01601f1916602001820160405280156113df576020820181803683370190505b506021810186905260018101879052828152905060418101600061140286614146565b50905061141181838851614150565b50909695505050505050565b600181565b60096020526000908152604090205460ff1681565b61100181565b603881565b600881565b61200681565b61200081565b604080517710d05390d15317d514905394d1915497d41493d413d4d05360421b8152905190819003601801902081565b60005460ff166114c8576040805162461bcd60e51b81526020600482015260196024820152600080516020614a60833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b15801561150b57600080fd5b505afa15801561151f573d6000803e3d6000fd5b505050506040513d602081101561153557600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b15801561157657600080fd5b505afa15801561158a573d6000803e3d6000fd5b505050506040513d60208110156115a057600080fd5b50519050806115ad575060155b6000821180156115bd5750808211155b6115fc576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b604080516001600160a01b038087166020808401919091529086168284015282518083038401815260608301808552815191909201207710d05390d15317d514905394d1915497d41493d413d4d05360421b90915291519081900360780190206000906116699083614191565b905080156116db5760408051630911a2c160e11b81526001600160a01b03888116600483015287166024820152905161100491631223458291604480830192600092919082900301818387803b1580156116c257600080fd5b505af11580156116d6573d6000803e3d6000fd5b505050505b505050505050565b604080516f14d554d411539117d41493d413d4d05360821b8152905190819003601001902081565b600281565b600c602052600090815260409020805460019091015461ffff8216916201000090046001600160801b03169083565b604080516e149153d4115397d41493d413d4d053608a1b8152905190819003600f01902081565b6005602052600090815260409020546001600160a01b031681565b61100581565b601081565b60035481565b61100881565b600b81565b61200381565b60005460ff166117e8576040805162461bcd60e51b81526020600482015260196024820152600080516020614a60833981519152604482015290519081900360640190fd5b60408051630a83aaa960e31b815233600482015290516110069163541d5548916024808301926020929190829003018186803b15801561182757600080fd5b505afa15801561183b573d6000803e3d6000fd5b505050506040513d602081101561185157600080fd5b50516118a4576040805162461bcd60e51b815260206004820152601f60248201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604482015290519081900360640190fd5b60ff8116600090815260086020526040902054829082906001600160401b039081169083168114611914576040805162461bcd60e51b815260206004820152601560248201527439b2b8bab2b731b2903737ba1034b71037b93232b960591b604482015290519081900360640190fd5b60ff8216600090815260086020908152604091829020805467ffffffffffffffff1916600185016001600160401b039081169190911790915582516337d7f9c160e21b81529089166004820152915188926110039263df5fe70492602480840193829003018186803b15801561198957600080fd5b505afa15801561199d573d6000803e3d6000fd5b505050506040513d60208110156119b357600080fd5b50516119f05760405162461bcd60e51b8152600401808060200182810382526023815260200180614a806023913960400191505060405180910390fd5b60ff851660009081526005602052604090205485906001600160a01b0316611a5a576040805162461bcd60e51b815260206004820152601860248201527718da185b9b995b081a5cc81b9bdd081cdd5c1c1bdc9d195960421b604482015290519081900360640190fd5b60ff86166000908152600a6020526040902054889087906001600160401b039081169083161015611ac3576040805162461bcd60e51b815260206004820152600e60248201526d3a37b79037b632103432b0b232b960911b604482015290519081900360640190fd5b60ff81166000908152600a60205260409020546001600160401b03838116911614611b155760ff81166000908152600a60205260409020805467ffffffffffffffff19166001600160401b0384161790555b600b5460ff1615611b59576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b60608e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060608d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509050611c9d6110036001600160a01b031663cba510a98e6040518263ffffffff1660e01b815260040180826001600160401b03166001600160401b0316815260200191505060206040518083038186803b158015611c4657600080fd5b505afa158015611c5a573d6000803e3d6000fd5b505050506040513d6020811015611c7057600080fd5b505160408051808201909152600381526269626360e81b6020820152611c968e8e613f83565b8585613fcb565b611ce5576040805162461bcd60e51b815260206004820152601460248201527334b73b30b634b21036b2b935b63290383937b7b360611b604482015290519081900360640190fd5b60408051631bb5062960e31b81526001600160401b038e16600482015290516000916110039163dda8314891602480820192602092909190829003018186803b158015611d3157600080fd5b505afa158015611d45573d6000803e3d6000fd5b505050506040513d6020811015611d5b57600080fd5b505190508b8b600080806060611d7089614476565b935093509350935083611e32578460ff16866001600160401b03167ff7b2e42d694eb1100184aae86d4245d9e46966100b1dc7e723275b98326854ac8b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015611dea578181015183820152602001611dd2565b50505050905090810190601f168015611e175780820380516001836020036101000a031916815260200191505b509250505060405180910390a3505050505050505050612a4d565b6040805160ff85811682529151918716916001600160401b038916917f36afdaf439a8f43fe72135135d804ae620b37a474f0943b5b85f6788312cad40919081900360200190a360ff83166123b75760ff85166000818152600560209081526040808320548151631182b87560e01b815260048101958652602481019283528651604482015286516001600160a01b03909216958695631182b875958d958a9593949093606490910192918601918190849084905b83811015611eff578181015183820152602001611ee7565b50505050905090810190601f168015611f2c5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b158015611f4c57600080fd5b505af192505050801561203057506040513d6000823e601f3d908101601f191682016040526020811015611f7f57600080fd5b8101908080516040519392919084600160201b821115611f9e57600080fd5b908301906020820185811115611fb357600080fd5b8251600160201b811182820188101715611fcc57600080fd5b82525081516020918201929091019080838360005b83811015611ff9578181015183820152602001611fe1565b50505050905090810190601f1680156120265780820380516001836020036101000a031916815260200191505b5060405250505060015b612342576040516000815260443d101561204c575060006120e7565b60046000803e60005160e01c6308c379a0811461206d5760009150506120e7565b60043d036004833e81513d60248201116001600160401b0382111715612098576000925050506120e7565b80830180516001600160401b038111156120b95760009450505050506120e7565b8060208301013d86018111156120d7576000955050505050506120e7565b601f01601f191660405250925050505b806120f25750612204565b60ff8716600090815260076020526040812054612129916001600160401b0390911690899061212490600290886113a7565b614526565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf948794849390840192918601918190849084905b838110156121c45781810151838201526020016121ac565b50505050905090810190601f1680156121f15780820380516001836020036101000a031916815260200191505b509250505060405180910390a25061233d565b3d80801561222e576040519150601f19603f3d011682016040523d82523d6000602084013e612233565b606091505b5060ff8716600090815260076020526040812054612266916001600160401b0390911690899061212490600290886113a7565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351948794849390840192918601918190849084905b838110156123015781810151838201526020016122e9565b50505050905090810190601f16801561232e5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b6123b1565b8051156123af5760ff871660009081526007602052604081205461237b916001600160401b0390911690899061212490600190866113a7565b60ff8716600090815260076020526040902080546001600160401b038082166001011667ffffffffffffffff199091161790555b505b50612985565b60ff83166001141561265b5760ff8516600081815260056020908152604080832054815163831d65d160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563831d65d1958d958a9593949093606490910192918601918190849084905b83811015612441578181015183820152602001612429565b50505050905090810190601f16801561246e5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561248e57600080fd5b505af192505050801561249f575060015b6123b1576040516000815260443d10156124bb57506000612556565b60046000803e60005160e01c6308c379a081146124dc576000915050612556565b60043d036004833e81513d60248201116001600160401b038211171561250757600092505050612556565b80830180516001600160401b03811115612528576000945050505050612556565b8060208301013d860181111561254657600095505050505050612556565b601f01601f191660405250925050505b8061256157506125c6565b60408051602080825283518183015283516001600160a01b038616937ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf93869390928392830191850190808383600083156121c45781810151838201526020016121ac565b3d8080156125f0576040519150601f19603f3d011682016040523d82523d6000602084013e6125f5565b606091505b5060408051602080825283518183015283516001600160a01b038616937f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd297735193869390928392830191850190808383600083156123015781810151838201526020016122e9565b60ff8316600214156129855760ff8516600081815260056020908152604080832054815163c8509d8160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563c8509d81958d958a9593949093606490910192918601918190849084905b838110156126e55781810151838201526020016126cd565b50505050905090810190601f1680156127125780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561273257600080fd5b505af1925050508015612743575060015b612983576040516000815260443d101561275f575060006127fa565b60046000803e60005160e01c6308c379a081146127805760009150506127fa565b60043d036004833e81513d60248201116001600160401b03821117156127ab576000925050506127fa565b80830180516001600160401b038111156127cc5760009450505050506127fa565b8060208301013d86018111156127ea576000955050505050506127fa565b601f01601f191660405250925050505b8061280557506128ae565b816001600160a01b03167ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf826040518080602001828103825283818151815260200191508051906020019080838360005b8381101561286e578181015183820152602001612856565b50505050905090810190601f16801561289b5780820380516001836020036101000a031916815260200191505b509250505060405180910390a250612983565b3d8080156128d8576040519150601f19603f3d011682016040523d82523d6000602084013e6128dd565b606091505b50816001600160a01b03167f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351826040518080602001828103825283818151815260200191508051906020019080838360005b8381101561294757818101518382015260200161292f565b50505050905090810190601f1680156129745780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b505b60ff80861660009081526009602052604090205461100591636f93d2e6918a913391879116806129b7575060ff881615155b604080516001600160e01b031960e088901b1681526001600160a01b039586166004820152939094166024840152604483019190915215156064820152905160848083019260209291908290030181600087803b158015612a1757600080fd5b505af1158015612a2b573d6000803e3d6000fd5b505050506040513d6020811015612a4157600080fd5b50505050505050505050505b5050505050505050505050505050565b630100380081565b600981565b61100781565b61100681565b60005460ff1681565b61200281565b61300081565b3361100714612acb5760405162461bcd60e51b815260040180806020018281038252602e8152602001806149b6602e913960400191505060405180910390fd5b600b5460ff1615612b0f576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b612b7884848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526012815271626174636853697a65466f724f7261636c6560701b602082015291506146c09050565b15612c1357604080516020601f8401819004810282018101909252828152600091612bbb918585808385018382808284376000920191909152506147a792505050565b90506127108111158015612bd05750600a8110155b612c0b5760405162461bcd60e51b8152600401808060200182810382526032815260200180614a2e6032913960400191505060405180910390fd5b6001556134bd565b612c7c84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601281527118591913dc955c19185d1950da185b9b995b60721b602082015291506146c09050565b15612e0457606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060169091149050612cff5760405162461bcd60e51b815260040180806020018281038252605a8152602001806148cf605a913960600191505060405180910390fd5b60018101516002820151601683015160ff82161590612d1d816147ac565b612d6e576040805162461bcd60e51b815260206004820152601960248201527f61646472657373206973206e6f74206120636f6e747261637400000000000000604482015290519081900360640190fd5b60ff8416600081815260056020908152604080832080546001600160a01b0319166001600160a01b038716908117909155808452600683528184208585528352818420805460ff199081166001179091556009909352818420805490931687151517909255519092917f7e3b6af43092577ee20e60eaa1d9b114a7031305c895ee7dd3ffe17196d2e1e091a350505050506134bd565b612e7184848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526016815275195b98589b1953dc911a5cd8589b1950da185b9b995b60521b602082015291506146c09050565b15612fa257606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060029091149050612ef45760405162461bcd60e51b815260040180806020018281038252604a8152602001806149e4604a913960600191505060405180910390fd5b600181810151600283015160ff80831660009081526005602052604090205492939192908316909114906001600160a01b03168015612f98576001600160a01b038116600090815260066020908152604080832060ff881680855290835292819020805460ff1916861515908117909155815190815290517fa3132e3f9819fbddc7f0ed6d38d7feef59aa95112090b7c592f5cb5bc4aa4adc929181900390910190a25b50505050506134bd565b61300684848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c73757370656e6451756f72756d60981b602082015291506146c09050565b1561313b576002811461304a5760405162461bcd60e51b815260040180806020018281038252602d81526020018061495d602d913960400191505060405180910390fd5b600061308d600284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506147a792505050565b905060008161ffff161180156130a7575060648161ffff16105b6130f1576040805162461bcd60e51b8152602060048201526016602482015275696e76616c69642073757370656e642071756f72756d60501b604482015290519081900360640190fd5b604080516f14d554d411539117d41493d413d4d05360821b815281519081900360100190206000908152600d60205220805461ffff90921661ffff199092169190911790556134bd565b61319e84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600c81526b72656f70656e51756f72756d60a01b602082015291506146c09050565b156132d157600281146131e25760405162461bcd60e51b815260040180806020018281038252602c81526020018061498a602c913960400191505060405180910390fd5b6000613225600284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506147a792505050565b905060008161ffff1611801561323f575060648161ffff16105b613288576040805162461bcd60e51b8152602060048201526015602482015274696e76616c69642072656f70656e2071756f72756d60581b604482015290519081900360640190fd5b604080516e149153d4115397d41493d413d4d053608a1b8152815190819003600f0190206000908152600d60205220805461ffff90921661ffff199092169190911790556134bd565b61333c84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601481527363616e63656c5472616e7366657251756f72756d60601b602082015291506146c09050565b1561348057600281146133805760405162461bcd60e51b81526004018080602001828103825260348152602001806149296034913960400191505060405180910390fd5b60006133c3600284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506147a792505050565b905060008161ffff161180156133dd575060648161ffff16105b61342e576040805162461bcd60e51b815260206004820152601e60248201527f696e76616c69642063616e63656c207472616e736665722071756f72756d0000604482015290519081900360640190fd5b604080517710d05390d15317d514905394d1915497d41493d413d4d05360421b815281519081900360180190206000908152600d60205220805461ffff90921661ffff199092169190911790556134bd565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b6008602052600090815260409020546001600160401b031681565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081565b61100281565b60005460ff166135d9576040805162461bcd60e51b81526020600482015260196024820152600080516020614a60833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b15801561361c57600080fd5b505afa158015613630573d6000803e3d6000fd5b505050506040513d602081101561364657600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b15801561368757600080fd5b505afa15801561369b573d6000803e3d6000fd5b505050506040513d60208110156136b157600080fd5b50519050806136be575060155b6000821180156136ce5750808211155b61370d576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b600b5460ff16613754576040805162461bcd60e51b815260206004820152600d60248201526c1b9bdd081cdd5cdc195b991959609a1b604482015290519081900360640190fd5b604080516e149153d4115397d41493d413d4d053608a1b8152905190819003600f0190206000906137a5907fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470614191565b905080156137e357600b805460ff1916905560405133907f899fe8c37dc61708a3aaa99c4bf143346c1d1da69af79be9e8920c0a6785b75290600090a25b505050565b600660209081526000928352604080842090915290825290205460ff1681565b6040518060400160405280600381526020016269626360e81b81525081565b610e1081565b61100381565b61200481565b60005460ff1615613891576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b7f1471eb6eb2c5e789fc3de43f8ce62938c7d1836ec861730447e2ada8fd81017b80546001600160a01b0319908116611008179091557f92e85d02570a8092d09a6e3a57665bc3815a2699a4074001bf1ccabf660f5a36805460ff199081169091557fd8af288fc1c8680b4f4706064cf021e264efb6828fcaf7eb5ca36818eb365bcc8054821660019081179091557f89832631fb3c3307a103ba2c84ab569c64d6182a18893dcd163f0f1c2090733a805484166110049081179091557f6cde3cea4b3a3fb2488b2808bae7556f4a405e50f65e1794383bc026131b13c38054841690557f72e4efa1513b071517c6c74dba31b5934a81aa83cddd400e7081df5529c9943680548416831790557fa9bc9a3a348c357ba16b37005d7e6b3236198c0e939f4af8c5f19b8deeb8ebc08054851690911790557fc575c31fea594a6eb97c8e9d3f9caee4c16218c6ef37e923234c0fe9014a61e78054831690557f4e523af77f034e9810f1c94057f5e931fb3d16a51511a4c3add793617d18610580548316821790557ffb33122aa9f93cc639ebe80a7bc4784c11e6053dde89c6f4f7e268c6a623da1e805484166110001790557fc7694af312c4f286114180fd0ba6a52461fcee8a381636770b19a343af92538a80548316821790557f01112dd68e482ba8d68a7e828cff8b3abcea08eab88941953c180a7e650e9cd480548316821790557fc0a4a8be475dfebc377ebef2d7c4ff47656f572a08dd92b81017efcdba0febe1805484166110071790557f87e8a52529e8ece4ef759037313542a6429ff494a9fab9027fb79db90124eba680548316821790557f4c7666bbcb22d46469f7cc282f70764a7012dca2cce630ff8d83db9a9cdd48f080548316821790557f40f28f99a40bc9f6beea1013afdbc3cdcc689eb76b82c4de06c0acf1e1932ed58054909316611001179092557f0d9cf2cd531699eed8dd34e40ff2884a14a698c4898184fba85194e6f6772d248054821683179055600b60009081527f23f68c9bd22b8a93d06adabe17481c87c016bcbd20adc8bfd707a4d813a572176020527fdf0d5d05428057f5455c2dc8e810dd86d1e9350faa72f16bda8a45443c5b39328054831684179055603283556004805467ffffffffffffffff19166001600160401b031790556002819055600381905580549091169091179055565b6007602052600090815260409020546001600160401b031681565b60005460ff16613c50576040805162461bcd60e51b81526020600482015260196024820152600080516020614a60833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b158015613c9357600080fd5b505afa158015613ca7573d6000803e3d6000fd5b505050506040513d6020811015613cbd57600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b158015613cfe57600080fd5b505afa158015613d12573d6000803e3d6000fd5b505050506040513d6020811015613d2857600080fd5b5051905080613d35575060155b600082118015613d455750808211155b613d84576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b600b5460ff1615613dc8576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b604080516f14d554d411539117d41493d413d4d05360821b81529051908190036010019020600090613e1a907fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470614191565b905080156137e3576137e36140c8565b601181565b60005460ff16613e74576040805162461bcd60e51b81526020600482015260196024820152600080516020614a60833981519152604482015290519081900360640190fd5b33600090815260066020908152604080832060ff8089168552925290912054859116613ed15760405162461bcd60e51b815260040180806020018281038252603181526020018061489e6031913960400191505060405180910390fd5b60ff85166000908152600760209081526040808320548151601f88018490048402810184019092528682526001600160401b031692613f369284928a9261212492909189918c908c90819084018382808284376000920191909152506113a792505050565b60ff959095166000908152600760205260409020805467ffffffffffffffff191660019096016001600160401b03169590951790945550505050565b61100081565b600381565b61100481565b60408051600e808252818301909252606091630100380060ff851617918391602082018180368337505050600e81810187905260068201939093529182525090505b92915050565b600085613fda575060006140bf565b606082518451865160800101016040519080825280601f01601f191660200182016040528015614011576020820181803683370190505b509050600061401f826147b2565b60208089015182520190508660008061403789614146565b8086526020909501949092509050614050828583614150565b9283019261405d88614146565b8086526020909501949092509050614076828583614150565b9283018a81526020019261408987614146565b9092509050614099828583614150565b5083516020016140a76147b8565b60208183886065600019fa5051600114955050505050505b95945050505050565b600b5460ff161561410c576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b600b805460ff1916600117905560405133907f6f123d3d54c84a7960a573b31c221dcd86e13fd849c5adb0c6ca851468cc1ae490600090a2565b8051602090910191565b5b60208110614170578251825260209283019290910190601f1901614151565b915181516020939093036101000a6000190180199091169216919091179052565b6000828152600d602052604081205461ffff1661425a57604080516f14d554d411539117d41493d413d4d05360821b815281519081900360100181206000908152600d6020818152848320805461ffff199081166001179091556e149153d4115397d41493d413d4d053608a1b8552855194859003600f01852084528282528584208054821660029081179091557710d05390d15317d514905394d1915497d41493d413d4d05360421b8652865195869003601801909520845291905292902080549092161790555b6000838152600c6020526040902080546201000090046001600160801b03164210158061428b575082816001015414155b1561435e576000848152600d602090815260409182902054835461ffff90911661ffff199091161771ffffffffffffffffffffffffffffffff0000191662010000610e1042016001600160801b03160217835560018084018690558251918201909252338152614300916002840191906147d6565b5080546040805161ffff83168152620100009092046001600160801b0316602083015281810185905251339186917f9e109f0e55ef32e99e4880be2ec357f1ddb3469c79d0747ef4762da6e89fabe5916060908290030190a3614412565b60005b60028201548110156143e957336001600160a01b031682600201828154811061438657fe5b6000918252602090912001546001600160a01b031614156143e1576040805162461bcd60e51b815260206004820152601060248201526f185b1c9958591e48185c1c1c9bdd995960821b604482015290519081900360640190fd5b600101614361565b50600281018054600181018255600091825260209091200180546001600160a01b031916331790555b8054600282015461ffff9091161161446c576000848152600c60205260408120805471ffffffffffffffffffffffffffffffffffff191681556001810182905590614460600283018261483b565b50506001915050613fc5565b5060009392505050565b600080600060606021855110156144a657505060408051600080825260208201909252909250829150819061451f565b600185015160218601518651604080516020198301808252601f19600119909401939093168101602001909152604189019392916060919080156144f1576020820181803683370190505b50905060006144ff82614146565b509050614511858260218d5103614150565b506001975091955093509150505b9193509193565b600b5460ff161561456a576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b6002544311156145a9576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b1617909155600355436002556145ea565b600380546001908101918290555410156145ea576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b16179091556003555b8160ff16836001600160401b0316600460009054906101000a900460070b6001600160401b03167f3a6e0fc61675aa2a100bcba0568368bb92bcec91c97673391074f11138f0cffe603885604051808361ffff1661ffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015614680578181015183820152602001614668565b50505050905090810190601f1680156146ad5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a4505050565b6000816040516020018082805190602001908083835b602083106146f55780518252601f1990920191602091820191016146d6565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106147635780518252601f199092019160209182019101614744565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b3b151590565b60200190565b60405180602001604052806001906020820280368337509192915050565b82805482825590600052602060002090810192821561482b579160200282015b8281111561482b57825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906147f6565b5061483792915061485c565b5090565b50805460008255906000526020600020908101906148599190614883565b50565b61488091905b808211156148375780546001600160a01b0319168155600101614862565b90565b61488091905b80821115614837576000815560010161488956fe74686520636f6e747261637420616e64206368616e6e656c2068617665206e6f74206265656e20726567697374657265646c656e677468206f662076616c756520666f72206164644f725570646174654368616e6e656c2073686f756c642062652032322c206368616e6e656c49643a697346726f6d53797374656d3a68616e646c6572416464726573736c656e677468206f662076616c756520666f722063616e63656c5472616e7366657251756f72756d2073686f756c6420626520326c656e677468206f662076616c756520666f722073757370656e6451756f72756d2073686f756c6420626520326c656e677468206f662076616c756520666f722072656f70656e51756f72756d2073686f756c642062652032746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662076616c756520666f7220656e61626c654f7244697361626c654368616e6e656c2073686f756c6420626520322c206368616e6e656c49643a6973456e61626c65746865206e6577426174636853697a65466f724f7261636c652073686f756c6420626520696e205b31302c2031303030305d74686520636f6e7472616374206e6f7420696e697420796574000000000000006c6967687420636c69656e74206e6f742073796e632074686520626c6f636b20796574a164736f6c6343000604000a", - }, - { - ContractAddr: StakingContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/2dbebb57a0d436d6a30b78c1f123395035249035", - Code: "6080604052600436106103d25760003560e01c8063718a8aa8116101fd578063b88a802f11610118578063dc927faf116100ab578063f45fd80b1161007a578063f45fd80b14610cdb578063f9a2bbc714610d20578063fa03f79714610d35578063fc3e5908146106d3578063fd6a687914610d4a576103d9565b8063dc927faf14610c87578063df8079e914610c9c578063edc1a5b014610cb1578063f1fad10414610cc6576103d9565b8063c81b1662116100e7578063c81b166214610bb2578063c8509d8114610bc7578063d61b9b9314610c4c578063d7ecfcb614610890576103d9565b8063b88a802f14610b38578063baaafd3b14610b4d578063bf8546ca14610b62578063c2117d8214610b9d576103d9565b80639dc0926211610190578063aad560631161015f578063aad5606314610a2e578063ab51bb9614610a43578063ac43175114610a58578063b14315df14610b23576103d9565b80639dc09262146109c6578063a1a11bf5146109db578063a78abc16146109f0578063aa82dce114610a19576103d9565b80637e434d54116101cc5780637e434d5414610917578063831d65d11461092c57806392b888a41461066a57806396713da9146109b1576103d9565b8063718a8aa8146108a557806375aca593146108ba57806375d47a0a146108ed5780637942fd0514610902576103d9565b8063413d9c3a116102ed5780635d17c8bd116102805780636bd8f8041161024f5780636bd8f804146108125780636e47b482146108485780636fb7f7eb1461085d57806370fd5bad14610890576103d9565b80635d17c8bd146107be5780635d499b1b146107d357806362b171d2146107e857806369b635b6146107fd576103d9565b80634d99dd16116102bc5780634d99dd161461075357806351b4dce31461077f57806351e8067214610794578063552aaf93146107a9576103d9565b8063413d9c3a146106e857806343756e5c146106fd578063493279b1146107125780634bf6c8821461073e576103d9565b8063151817e311610365578063333ad3e711610334578063333ad3e7146106a957806334c43354146106be5780633dffc3871461066a5780633fdfa7e4146106d3576103d9565b8063151817e31461063f57806317c9efb01461066a578063280870281461067f5780632fdeb11114610694576103d9565b80630c795715116103a15780630c795715146104cc5780630e2374a5146104e15780631182b8751461051257806311fe9ec61461060c576103d9565b8063026e402b146103de578063029859921461040c578063047636d1146104335780630bee7a671461049e576103d9565b366103d957005b600080fd5b61040a600480360360408110156103f457600080fd5b506001600160a01b038135169060200135610d5f565b005b34801561041857600080fd5b50610421610d9c565b60408051918252519081900360200190f35b34801561043f57600080fd5b506104666004803603602081101561045657600080fd5b50356001600160a01b0316610da2565b6040518082606080838360005b8381101561048b578181015183820152602001610473565b5050505090500191505060405180910390f35b3480156104aa57600080fd5b506104b3610df6565b6040805163ffffffff9092168252519081900360200190f35b3480156104d857600080fd5b50610421610dfb565b3480156104ed57600080fd5b506104f6610e01565b604080516001600160a01b039092168252519081900360200190f35b34801561051e57600080fd5b506105976004803603604081101561053557600080fd5b60ff8235169190810190604081016020820135600160201b81111561055957600080fd5b82018360208201111561056b57600080fd5b803590602001918460018302840111600160201b8311171561058c57600080fd5b509092509050610e07565b6040805160208082528351818301528351919283929083019185019080838360005b838110156105d15781810151838201526020016105b9565b50505050905090810190601f1680156105fe5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561061857600080fd5b506104216004803603602081101561062f57600080fd5b50356001600160a01b0316610fc3565b34801561064b57600080fd5b50610654610fde565b6040805160ff9092168252519081900360200190f35b34801561067657600080fd5b50610654610fe3565b34801561068b57600080fd5b506104f6610fe8565b3480156106a057600080fd5b50610421610fee565b3480156106b557600080fd5b506104b3610ff4565b3480156106ca57600080fd5b50610421610ff9565b3480156106df57600080fd5b50610654611004565b3480156106f457600080fd5b50610421611009565b34801561070957600080fd5b506104f6611010565b34801561071e57600080fd5b50610727611016565b6040805161ffff9092168252519081900360200190f35b34801561074a57600080fd5b5061065461101b565b61040a6004803603604081101561076957600080fd5b506001600160a01b038135169060200135611020565b34801561078b57600080fd5b506104f661164d565b3480156107a057600080fd5b506104f6611653565b3480156107b557600080fd5b50610654611659565b3480156107ca57600080fd5b5061042161165e565b3480156107df57600080fd5b50610421611664565b3480156107f457600080fd5b5061042161166d565b34801561080957600080fd5b5061042161180d565b61040a6004803603606081101561082857600080fd5b506001600160a01b03813581169160208101359091169060400135610d5f565b34801561085457600080fd5b506104f6611813565b34801561086957600080fd5b506104216004803603602081101561088057600080fd5b50356001600160a01b0316611819565b34801561089c57600080fd5b50610654611834565b3480156108b157600080fd5b50610654611839565b3480156108c657600080fd5b50610421600480360360208110156108dd57600080fd5b50356001600160a01b031661183e565b3480156108f957600080fd5b506104f6611859565b34801561090e57600080fd5b5061065461185f565b34801561092357600080fd5b506104f6611864565b34801561093857600080fd5b5061040a6004803603604081101561094f57600080fd5b60ff8235169190810190604081016020820135600160201b81111561097357600080fd5b82018360208201111561098557600080fd5b803590602001918460018302840111600160201b831117156109a657600080fd5b50909250905061186a565b3480156109bd57600080fd5b50610654611b32565b3480156109d257600080fd5b506104f6611b37565b3480156109e757600080fd5b506104f6611b3d565b3480156109fc57600080fd5b50610a05611b43565b604080519115158252519081900360200190f35b348015610a2557600080fd5b506104f6611b4c565b348015610a3a57600080fd5b506104f6611b52565b348015610a4f57600080fd5b506104b3611659565b348015610a6457600080fd5b5061040a60048036036040811015610a7b57600080fd5b810190602081018135600160201b811115610a9557600080fd5b820183602082011115610aa757600080fd5b803590602001918460018302840111600160201b83111715610ac857600080fd5b919390929091602081019035600160201b811115610ae557600080fd5b820183602082011115610af757600080fd5b803590602001918460018302840111600160201b83111715610b1857600080fd5b509092509050611b58565b348015610b2f57600080fd5b506106546122ea565b348015610b4457600080fd5b506104216122ef565b348015610b5957600080fd5b5061042161248c565b348015610b6e57600080fd5b5061042160048036036040811015610b8557600080fd5b506001600160a01b0381358116916020013516612497565b348015610ba957600080fd5b506104216124c4565b348015610bbe57600080fd5b506104f66124ca565b348015610bd357600080fd5b5061040a60048036036040811015610bea57600080fd5b60ff8235169190810190604081016020820135600160201b811115610c0e57600080fd5b820183602082011115610c2057600080fd5b803590602001918460018302840111600160201b83111715610c4157600080fd5b5090925090506124d0565b348015610c5857600080fd5b5061042160048036036040811015610c6f57600080fd5b506001600160a01b03813581169160200135166126f3565b348015610c9357600080fd5b506104f661271e565b348015610ca857600080fd5b506104f6612724565b348015610cbd57600080fd5b5061042161272a565b348015610cd257600080fd5b50610654612737565b348015610ce757600080fd5b5061042160048036036060811015610cfe57600080fd5b506001600160a01b03813581169160208101358216916040909101351661273c565b348015610d2c57600080fd5b506104f6612771565b348015610d4157600080fd5b50610421612777565b348015610d5657600080fd5b506104f661277d565b6040805162461bcd60e51b815260206004820152600d60248201526c1b9bdd081cdd5c1c1bdc9d1959609a1b604482015290519081900360640190fd5b60035481565b610daa614800565b610db2614800565b6001600160a01b0383166000818152600b60209081526040808320548552838352600c82528083205485830152928252600d9052819020549082015290505b919050565b606481565b6108fc81565b61200181565b60603361200014610e495760405162461bcd60e51b815260040180806020018281038252602f8152602001806149e3602f913960400191505060405180910390fd5b60005460ff16610e8c576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b610e9461481e565b610edb610ed685858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278392505050565b6127a8565b90506000610ef0610eeb836127f2565b612840565b90506000606060ff831660041415610f1557610f0b846128f7565b9092509050610f6c565b60ff831660051415610f2a57610f0b84612ad7565b6040805162461bcd60e51b8152602060048201526012602482015271756e6b6e6f776e206576656e74207479706560701b604482015290519081900360640190fd5b63ffffffff821615610fb8576040805163ffffffff84168152905160ff8516917f391d6e5ea6ab6c49b9a0abb1782cae5def8d711f973b00c729658c0b2a80b31b919081900360200190a25b979650505050505050565b6001600160a01b031660009081526006602052604090205490565b600581565b600181565b61200581565b60015481565b606581565b662386f26fc1000081565b600381565b620a8c0081565b61100181565b603881565b600881565b60105460ff166002141561106c576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b6010805460ff19166002179055806402540be400340615801561109457506402540be4008106155b6110e5576040805162461bcd60e51b815260206004820152601c60248201527f707265636973696f6e206c6f737320696e20636f6e76657273696f6e00000000604482015290519081900360640190fd5b60005460ff16611128576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b600154341015611176576040805162461bcd60e51b81526020600482015260146024820152736e6f7420656e6f7567682072656c61792066656560601b604482015290519081900360640190fd5b600354821015611231573360009081526005602090815260408083206001600160a01b038716845290915290205482146111e8576040805162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a5908185b5bdd5b9d60921b604482015290519081900360640190fd5b6002548211611231576040805162461bcd60e51b815260206004820152601060248201526f6e6f7420656e6f7567682066756e647360801b604482015290519081900360640190fd5b3360009081526007602090815260408083206001600160a01b03871684529091529020544210156112a9576040805162461bcd60e51b815260206004820152601a60248201527f70656e64696e6720756e64656c65676174696f6e206578697374000000000000604482015290519081900360640190fd5b604080518082018252601081526f6e6f7420656e6f7567682066756e647360801b602080830191909152336000908152600582528381206001600160a01b03881682529091529182205461130491859063ffffffff612df716565b9050801561134c57600254811161134c5760405162461bcd60e51b81526004018080602001828103825260258152602001806149be6025913960400191505060405180910390fd5b6000611363846402540be40063ffffffff612e8e16565b600254909150349060009061137f90839063ffffffff612ed716565b6040805160038082526080820190925291925060609190816020015b606081526020019060019003908161139b5790505090506113bb33612f19565b816000815181106113c857fe5b60200260200101819052506113e5886001600160a01b0316612f19565b816001815181106113f257fe5b602002602001018190525061140684612f3c565b8160028151811061141357fe5b60200260200101819052506060611433600261142e84612f4f565b612fd9565b8051602080830191909120600f80546000908152600a845260408082209390935581546001908101909255338152600c909352912080549091019055905061148442620a8c0063ffffffff61305f16565b3360009081526007602090815260408083206001600160a01b038e16845290915290205561200063f7a251d76010836114c8876402540be40063ffffffff612e8e16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561152657818101518382015260200161150e565b50505050905090810190601f1680156115535780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561157457600080fd5b505af1158015611588573d6000803e3d6000fd5b5050604051611004925085156108fc02915085906000818181858888f193505050501580156115bb573d6000803e3d6000fd5b506002546040516110029180156108fc02916000818181858888f193505050501580156115ec573d6000803e3d6000fd5b50604080518981526020810185905281516001600160a01b038c169233927fdf0b6ac27f3f3bb31cee3dab0f4fe40cc19c6a3f8daaec52e06b261e58a12519929081900390910190a350506010805460ff1916600117905550505050505050565b61200681565b61200081565b600081565b60025481565b6402540be40081565b60105460009060ff16600214156116bc576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b506010805460ff191660021790553360009081526008602052604090205480611723576040805162461bcd60e51b81526020600482015260146024820152736e6f20756e64656c6567617465642066756e647360601b604482015290519081900360640190fd5b336000818152600860205260408082208290556011549051919291849084818181858888f193505050503d8060008114611779576040519150601f19603f3d011682016040523d82523d6000602084013e61177e565b606091505b50509050806117c6576040805162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b604482015290519081900360640190fd5b60408051838152905133917fc712d133b8d448221aaed2198ed1f0db6dfc860fb01bc3a630916fe6cbef946f919081900360200190a2506010805460ff1916600117905590565b60035490565b61100581565b6001600160a01b031660009081526004602052604090205490565b600281565b601081565b6001600160a01b031660009081526008602052604090205490565b61100881565b600b81565b61200381565b33612000146118aa5760405162461bcd60e51b815260040180806020018281038252602f8152602001806149e3602f913960400191505060405180910390fd5b60005460ff166118ed576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b6118f561481e565b611937610ed684848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278392505050565b905060008060606000805b61194b866130b9565b156119b6578061196857611961610eeb876127f2565b94506119ae565b80600114156119845761197d610eeb876127f2565b93506119ae565b80600214156119a95761199e611999876127f2565b6130da565b9250600191506119ae565b6119b6565b600101611942565b816119fc576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b611a058361314a565b611a48576040805162461bcd60e51b815260206004820152600f60248201526e0eee4dedcce40e0c2c6d640d0c2e6d608b1b604482015290519081900360640190fd5b611a54610ed684612783565b95506000611a64610eeb886127f2565b9050611a6e61481e565b611a77886130b9565b15611a9a57611a93610ed6611a8e6119998b6127f2565b612783565b9050611adb565b6040805162461bcd60e51b8152602060048201526011602482015270656d7074792061636b207061636b61676560781b604482015290519081900360640190fd5b60ff821660011415611af757611af281888861319e565b611b25565b60ff821660021415611b0e57611af2818888613555565b60ff821660031415610f2a57611af2818888613822565b5050505050505050505050565b600981565b61100781565b61100681565b60005460ff1681565b61200281565b61300081565b60005460ff16611baf576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604482015290519081900360640190fd5b3361100714611bef5760405162461bcd60e51b815260040180806020018281038252602e815260200180614934602e913960400191505060405180910390fd5b611c5084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600a81526972656c6179657246656560b01b60208201529150613b879050565b15611db65760208114611caa576040805162461bcd60e51b815260206004820152601d60248201527f6c656e677468206f662072656c61796572466565206d69736d61746368000000604482015290519081900360640190fd5b604080516020601f8401819004810282018101909252828152600091611ce891858580838501838280828437600092019190915250613c6e92505050565b90506003548110611d2a5760405162461bcd60e51b815260040180806020018281038252602e815260200180614962602e913960400191505060405180910390fd5b6002548111611d6a5760405162461bcd60e51b815260040180806020018281038252602e815260200180614990602e913960400191505060405180910390fd5b6402540be400810615611dae5760405162461bcd60e51b815260040180806020018281038252602c815260200180614908602c913960400191505060405180910390fd5b600155612258565b611e1a84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c62534352656c6179657246656560981b60208201529150613b879050565b15611f7c5760208114611e74576040805162461bcd60e51b815260206004820181905260248201527f6c656e677468206f662062534352656c61796572466565206d69736d61746368604482015290519081900360640190fd5b604080516020601f8401819004810282018101909252828152600091611eb291858580838501838280828437600092019190915250613c6e92505050565b905080611ef05760405162461bcd60e51b8152600401808060200182810382526022815260200180614a126022913960400191505060405180910390fd5b6001548110611f305760405162461bcd60e51b815260040180806020018281038252602e815260200180614888602e913960400191505060405180910390fd5b6402540be400810615611f745760405162461bcd60e51b815260040180806020018281038252602f815260200180614859602f913960400191505060405180910390fd5b600255612258565b611fe084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c36b4b72232b632b3b0ba34b7b760991b60208201529150613b879050565b156120c2576020811461203a576040805162461bcd60e51b815260206004820181905260248201527f6c656e677468206f66206d696e44656c65676174696f6e206d69736d61746368604482015290519081900360640190fd5b604080516020601f840181900481028201810190925282815260009161207891858580838501838280828437600092019190915250613c6e92505050565b905060015481116120ba5760405162461bcd60e51b81526004018080602001828103825260318152602001806148b66031913960400191505060405180910390fd5b600355612258565b61212484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600b81526a7472616e7366657247617360a81b60208201529150613b879050565b1561221b576020811461217e576040805162461bcd60e51b815260206004820152601e60248201527f6c656e677468206f66207472616e73666572476173206d69736d617463680000604482015290519081900360640190fd5b604080516020601f84018190048102820181019092528281526000916121bc91858580838501838280828437600092019190915250613c6e92505050565b905060008111612213576040805162461bcd60e51b815260206004820152601e60248201527f746865207472616e736665724761732063616e6e6f74206265207a65726f0000604482015290519081900360640190fd5b601155612258565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b600481565b60105460009060ff166002141561233e576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b506010805460ff1916600217905533600090815260066020526040902054806123a2576040805162461bcd60e51b81526020600482015260116024820152701b9bc81c195b991a5b99c81c995dd85c99607a1b604482015290519081900360640190fd5b336000818152600660205260408082208290556011549051919291849084818181858888f193505050503d80600081146123f8576040519150601f19603f3d011682016040523d82523d6000602084013e6123fd565b606091505b5050905080612445576040805162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b604482015290519081900360640190fd5b60408051838152905133917f83b78188b13346b2ffb484da70d42ee27de7fbf9f2bd8045269e10ed643ccd76919081900360200190a2506010805460ff1916600117905590565b6638d7ea4c68000081565b6001600160a01b038083166000908152600760209081526040808320938516835292905220545b92915050565b60015490565b61100281565b33612000146125105760405162461bcd60e51b815260040180806020018281038252602f8152602001806149e3602f913960400191505060405180910390fd5b60005460ff16612553576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b61259282828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061314a92505050565b6125d5576040805162461bcd60e51b815260206004820152600f60248201526e0eee4dedcce40e0c2c6d640d0c2e6d608b1b604482015290519081900360640190fd5b6125dd61481e565b61261f610ed684848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278392505050565b9050600061262f610eeb836127f2565b905061263961481e565b612642836130b9565b1561266057612659610ed6611a8e611999866127f2565b90506126a6565b6040805162461bcd60e51b8152602060048201526016602482015275656d707479206661696c2061636b207061636b61676560501b604482015290519081900360640190fd5b60ff8216600114156126c0576126bb81613c73565b6126ea565b60ff8216600214156126d5576126bb81613e8d565b60ff821660031415610f2a576126bb81613fb7565b5050505b505050565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b61100381565b61200481565b68056bc75e2d6310000081565b601181565b6001600160a01b0392831660009081526009602090815260408083209486168352938152838220929094168152925290205490565b61100081565b60115481565b61100481565b61278b61483e565b506040805180820190915281518152602082810190820152919050565b6127b061481e565b6127b98261411c565b6127c257600080fd5b60006127d18360200151614156565b60208085015160408051808201909152868152920190820152915050919050565b6127fa61483e565b612803826130b9565b61280c57600080fd5b6020820151600061281c826141b9565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061285557508151602110155b61285e57600080fd5b600061286d8360200151614156565b905080836000015110156128c8576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b8251602080850151830180519284900392918310156128ee57826020036101000a820491505b50949350505050565b600060606000806000805b61290b876130b9565b1561295d578261292d57612926612921886127f2565b6142ec565b9150612952565b826001141561294d57612942610eeb886127f2565b905060019350612952565b61295d565b826001019250612902565b836129a3576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b60006110046001600160a01b031663727be1f8836040518263ffffffff1660e01b815260040180828152602001915050602060405180830381600087803b1580156129ed57600080fd5b505af1158015612a01573d6000803e3d6000fd5b505050506040513d6020811015612a1757600080fd5b5051905080612a3c57612a2e600484846065614306565b965096505050505050612ad2565b6001600160a01b038316600090815260066020526040902054612a65908363ffffffff61305f16565b6001600160a01b038416600081815260066020908152604091829020939093558051858152905191927f7cc266c7b444f808013fa187f7b904d470a051a6564e78f482aa496581ba4bf892918290030190a260408051600080825260208201909252909750955050505050505b915091565b600060606000806000806000805b612aee896130b9565b15612b785784612b0b57612b046129218a6127f2565b9350612b6d565b8460011415612b2757612b206129218a6127f2565b9250612b6d565b8460021415612b4757612b3c610eeb8a6127f2565b915060019550612b6d565b8460031415612b6857612b61612b5c8a6127f2565b614402565b9050612b6d565b612b78565b846001019450612ae5565b85612bbe576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b60006110046001600160a01b031663727be1f8846040518263ffffffff1660e01b815260040180828152602001915050602060405180830381600087803b158015612c0857600080fd5b505af1158015612c1c573d6000803e3d6000fd5b505050506040513d6020811015612c3257600080fd5b5051905080612c5957612c49600586856065614306565b9850985050505050505050612ad2565b6001600160a01b038086166000818152600760209081526040808320948916835293815283822082905591815260089091522054612c9d908463ffffffff61305f16565b6001600160a01b0386166000908152600860205260409020558115612d8b576001600160a01b038516600090815260046020526040902054612ce5908463ffffffff612ed716565b6001600160a01b03808716600090815260046020908152604080832094909455600581528382209288168252919091522054612d27908463ffffffff612ed716565b6001600160a01b038087166000818152600560209081526040808320948a16808452948252918290209490945580518781529051929391927fd6f878a5bcbbe79a64e6418bb0d56aaa20b9a60587d45749819df88dfc7c3c44929181900390910190a35b836001600160a01b0316856001600160a01b03167f35a799836f74fac7eccf5c73902823b970543d2274d3b93d8da3d37a255772a2856040518082815260200191505060405180910390a360408051600080825260208201909252909950975050505050505050915091565b60008184841115612e865760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612e4b578181015183820152602001612e33565b50505050905090810190601f168015612e785780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000612ed083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250614446565b9392505050565b6000612ed083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612df7565b60408051600560a21b8318601482015260348101909152606090612ed0816144ab565b60606124be612f4a83614501565b6144ab565b6060815160001415612f705750604080516000815260208101909152610df1565b606082600081518110612f7f57fe5b602002602001015190506000600190505b8351811015612fc057612fb682858381518110612fa957fe5b60200260200101516145e7565b9150600101612f90565b50612ed0612fd3825160c060ff16614664565b826145e7565b6040805160028082526060828101909352829190816020015b6060815260200190600190039081612ff25790505090506130158460ff16612f3c565b8160008151811061302257fe5b6020026020010181905250613036836144ab565b8160018151811061304357fe5b602002602001018190525061305781612f4f565b949350505050565b600082820183811015612ed0576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60006130c361483e565b505080518051602091820151919092015191011190565b80516060906130e857600080fd5b60006130f78360200151614156565b83516040805191839003808352601f19601f820116830160200190915291925060609082801561312e576020820181803683370190505b50905060008160200190506128ee84876020015101828561475c565b8051602080830191909120600e546000908152600a909252604082205480821461317957600092505050610df1565b5050600e80546000908152600a60205260408120558054600190810190915592915050565b60008060008060005b6131b0886130b9565b1561321957836131cd576131c6612921896127f2565b925061320e565b83600114156131e9576131e2612921896127f2565b915061320e565b8360021415613209576131fe610eeb896127f2565b90506001945061320e565b613219565b8360010193506131a7565b8461325f576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6000613276826402540be40063ffffffff6147a716565b6001600160a01b0385166000908152600b602052604090208054600019019055905060ff8816600114156133bc5760ff8716156132e9576040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b6001600160a01b038416600090815260046020526040902054613312908263ffffffff61305f16565b6001600160a01b03808616600090815260046020908152604080832094909455600581528382209287168252919091522054613354908263ffffffff61305f16565b6001600160a01b038086166000818152600560209081526040808320948916808452948252918290209490945580518581529051929391927f9a57c81564ab02642f34fd87e41baa9b074c18342cec3b7268b62bf752018fd1929181900390910190a361354a565b60ff881661350e576001600160a01b0384166000908152600860205260409020546133ed908263ffffffff61305f16565b6001600160a01b0385166000908152600860209081526040808320939093558251630e4f7c3f60e31b81526004810185905292516110049363727be1f89360248083019493928390030190829087803b15801561344957600080fd5b505af115801561345d573d6000803e3d6000fd5b505050506040513d602081101561347357600080fd5b50516134bc576040805162461bcd60e51b81526020600482015260136024820152721dda5d1a191c985dc8189b988819985a5b1959606a1b604482015290519081900360640190fd5b6040805182815260ff8916602082015281516001600160a01b0380871693908816927fcbd481ae600289fad8c0484d07ce0ffe4f010d7c844ecfdeaf2a13fead52886e929081900390910190a361354a565b6040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b505050505050505050565b60008060008060005b613567886130b9565b156135d057836135845761357d612921896127f2565b92506135c5565b83600114156135a057613599612921896127f2565b91506135c5565b83600214156135c0576135b5610eeb896127f2565b9050600194506135c5565b6135d0565b83600101935061355e565b84613616576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b600061362d826402540be40063ffffffff6147a716565b6001600160a01b0385166000908152600c602052604090208054600019019055905060ff8816600114156137ac5760ff8716156136a0576040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b6001600160a01b0384166000908152600460205260409020546136c9908263ffffffff612ed716565b6001600160a01b0380861660009081526004602090815260408083209490945560058152838220928716825291909152205461370b908263ffffffff612ed716565b6001600160a01b0380861660009081526005602090815260408083209388168352929052205561374442620a8c0063ffffffff61305f16565b6001600160a01b038086166000818152600760209081526040808320948916808452948252918290209490945580518581529051929391927fd6f878a5bcbbe79a64e6418bb0d56aaa20b9a60587d45749819df88dfc7c3c44929181900390910190a361354a565b60ff881661350e576001600160a01b03808516600081815260076020908152604080832094881680845294825280832092909255815185815260ff8c169181019190915281517f4417d10c1e33efa83a770b8d4f47176e78c08c1298d534901ad3b16bb585fa2e929181900390910190a361354a565b6000806000806000805b613835896130b9565b156138ba57846138525761384b6129218a6127f2565b93506138af565b846001141561386e576138676129218a6127f2565b92506138af565b846002141561388a576138836129218a6127f2565b91506138af565b84600314156138aa5761389f610eeb8a6127f2565b9050600195506138af565b6138ba565b84600101945061382c565b85613900576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6000613917826402540be40063ffffffff6147a716565b6001600160a01b0386166000908152600d602052604090208054600019019055905060ff891660011415613aea5760ff88161561398a576040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b6001600160a01b038086166000908152600560209081526040808320938816835292905220546139c0908263ffffffff612ed716565b6001600160a01b038681166000908152600560209081526040808320898516845290915280822093909355908516815220546139fc908261305f565b6001600160a01b03808716600090815260056020908152604080832093881683529290522055613a3542620a8c0063ffffffff61305f16565b6001600160a01b0380871660009081526009602090815260408083208985168452825280832093881683529290522055613a7842620a8c0063ffffffff61305f16565b6001600160a01b038087166000818152600960209081526040808320898616808552908352818420958b1680855295835292819020959095558451868152945191947f78bffae3f8c6691ac7fc1a3bff800cb2d612f5ad9ae5b0444cfe2eb15c189e18929081900390910190a4613b7b565b60ff891661350e576001600160a01b038581166000818152600960209081526040808320898616808552818452828520968a16808652968452828520859055908352818420818552835281842093909355805186815260ff8e169281019290925280519293927fb93bee5c59f85ede6b074a99f4ffcd3e3fc0d5c3d8156de331de89a49e0ce77c9281900390910190a45b50505050505050505050565b6000816040516020018082805190602001908083835b60208310613bbc5780518252601f199092019160209182019101613b9d565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310613c2a5780518252601f199092019160209182019101613c0b565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b60008060008060005b613c85866130b9565b15613cee5783613ca257613c9b612921876127f2565b9250613ce3565b8360011415613cbe57613cb7612921876127f2565b9150613ce3565b8360021415613cde57613cd3610eeb876127f2565b905060019450613ce3565b613cee565b836001019350613c7c565b84613d34576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6000613d4b826402540be40063ffffffff6147a716565b6001600160a01b0385166000908152600b6020908152604080832080546000190190556008909152902054909150613d89908263ffffffff61305f16565b6001600160a01b0385166000908152600860209081526040808320939093558251630e4f7c3f60e31b81526004810185905292516110049363727be1f89360248083019493928390030190829087803b158015613de557600080fd5b505af1158015613df9573d6000803e3d6000fd5b505050506040513d6020811015613e0f57600080fd5b5051613e58576040805162461bcd60e51b81526020600482015260136024820152721dda5d1a191c985dc8189b988819985a5b1959606a1b604482015290519081900360640190fd5b6040516001907ff83de021914a4585482db5ca47d520a5657165b443fa2c7ef8ed4635f054da9b90600090a250505050505050565b60008060008060005b613e9f866130b9565b15613f085783613ebc57613eb5612921876127f2565b9250613efd565b8360011415613ed857613ed1612921876127f2565b9150613efd565b8360021415613ef857613eed610eeb876127f2565b905060019450613efd565b613f08565b836001019350613e96565b84613f4e576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6001600160a01b038084166000908152600c60209081526040808320805460001901905560078252808320938616835292905281812081905590516002917ff83de021914a4585482db5ca47d520a5657165b443fa2c7ef8ed4635f054da9b91a2505050505050565b6000806000806000805b613fca876130b9565b1561404f5784613fe757613fe0612921886127f2565b9350614044565b846001141561400357613ffc612921886127f2565b9250614044565b846002141561401f57614018612921886127f2565b9150614044565b846003141561403f57614034610eeb886127f2565b905060019550614044565b61404f565b846001019450613fc1565b85614095576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6001600160a01b038481166000908152600d602090815260408083208054600019019055600982528083208785168085528184528285209588168552948352818420849055825280832093835292905281812081905590516003917ff83de021914a4585482db5ca47d520a5657165b443fa2c7ef8ed4635f054da9b91a250505050505050565b805160009061412d57506000610df1565b6020820151805160001a9060c082101561414c57600092505050610df1565b5060019392505050565b8051600090811a6080811015614170576000915050610df1565b60b881108061418b575060c0811080159061418b575060f881105b1561419a576001915050610df1565b60c08110156141ae5760b519019050610df1565b60f519019050610df1565b80516000908190811a60808110156141d457600191506142e5565b60b88110156141e957607e19810191506142e5565b60c081101561426357600060b78203600186019550806020036101000a86510491506001810182019350508083101561425d576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b506142e5565b60f88110156142785760be19810191506142e5565b600060f78203600186019550806020036101000a8651049150600181018201935050808310156142e3576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b80516000906015146142fd57600080fd5b6124be82612840565b6000606061431f846402540be40063ffffffff612e8e16565b60408051600480825260a0820190925291955060609190816020015b606081526020019060019003908161433b57905050905061435e8760ff16612f3c565b8160008151811061436b57fe5b6020026020010181905250614388866001600160a01b0316612f19565b8160018151811061439557fe5b60200260200101819052506143a985612f3c565b816002815181106143b657fe5b60200260200101819052506143d08463ffffffff16612f3c565b816003815181106143dd57fe5b602002602001018190525060606143f382612f4f565b94989497509395505050505050565b805160009060011461441357600080fd5b6020820151805160001a9081158061442b5750608082145b1561443b57600092505050610df1565b600192505050610df1565b600081836144955760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315612e4b578181015183820152602001612e33565b5060008385816144a157fe5b0495945050505050565b6060815160011480156144dd5750607f60f81b826000815181106144cb57fe5b01602001516001600160f81b03191611155b156144e9575080610df1565b6124be6144fb8351608060ff16614664565b836145e7565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff19841661454557506018614569565b6fffffffffffffffffffffffffffffffff19841661456557506010614569565b5060005b602081101561459f5781818151811061457e57fe5b01602001516001600160f81b031916156145975761459f565b600101614569565b60008160200390506060816040519080825280601f01601f1916602001820160405280156145d4576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b81831015614618578051835260209283019201614600565b50855184518101855292509050808201602086015b8183101561464557805183526020928301920161462d565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106146b4576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b6040805160018082528183019092526060916020820181803683370190505090506037841161470e5782840160f81b816000815181106146f057fe5b60200101906001600160f81b031916908160001a90535090506124be565b606061471985614501565b90508381510160370160f81b8260008151811061473257fe5b60200101906001600160f81b031916908160001a90535061475382826145e7565b95945050505050565b80614766576126ee565b5b60208110614786578251825260209283019290910190601f1901614767565b915181516020939093036101000a6000190180199091169216919091179052565b6000826147b6575060006124be565b828202828482816147c357fe5b0414612ed05760405162461bcd60e51b81526004018080602001828103825260218152602001806148e76021913960400191505060405180910390fd5b60405180606001604052806003906020820280368337509192915050565b604051806040016040528061483161483e565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe7468652042534352656c61796572466565206d6f642074656e20646563696d616c73206d757374206265207a65726f7468652042534352656c61796572466565206d757374206265206c657373207468616e2072656c61796572466565746865206d696e44656c65676174696f6e206d7573742062652067726561746572207468616e2072656c61796572466565536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f777468652072656c61796572466565206d6f642074656e20646563696d616c73206d757374206265207a65726f746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163747468652072656c61796572466565206d757374206265206c657373207468616e206d696e44656c65676174696f6e7468652072656c61796572466565206d757374206265206d6f7265207468616e2042534352656c61796572466565696e73756666696369656e742062616c616e636520616674657220756e64656c6567617465746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e74726163747468652042534352656c61796572466565206d757374206e6f74206265207a65726fa164736f6c6343000604000a", - }, - { - ContractAddr: StakeHubContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/2dbebb57a0d436d6a30b78c1f123395035249035", - Code: "608060405260043610620003db5760003560e01c806386d545061162000203578063d115a2061162000117578063e992aaf511620000ad578063f80a34021162000078578063f80a34021462000bf0578063fb50b31f1462000c15578063fc0c5ff11462000c3a578063ff69ab611462000c5257600080fd5b8063e992aaf51462000b6d578063efdbf0e11462000b85578063f1f74d841462000bc1578063f1fad1041462000bd957600080fd5b8063d8ca511f11620000ee578063d8ca511f1462000b00578063daacdb661462000b18578063dbda7fb31462000b30578063e8f67c3b1462000b5557600080fd5b8063d115a2061462000a9d578063d6ca429d1462000ab6578063d7c2dfc81462000adb57600080fd5b8063b187bd261162000199578063c38fbec81162000164578063c38fbec81462000a1f578063c473318f1462000a44578063c8509d81146200083d578063cbb04d9d1462000a5c57600080fd5b8063b187bd26146200098c578063baa7199e14620009ac578063bdceadf314620009d1578063bff02e2014620009e957600080fd5b8063982ef0a711620001da578063982ef0a714620008f7578063a43569b3146200090e578063aad3ec961462000942578063ac431751146200096757600080fd5b806386d54506146200087a5780638a4d3fa814620008b45780638cd22b2214620008d257600080fd5b80634bf6c88211620002fb578063663706d3116200029157806376e7d6d6116200025c57806376e7d6d6146200080d5780638129fc1c1462000825578063831d65d1146200083d5780638456cb59146200086257600080fd5b8063663706d3146200073a5780636ec01b27146200076b5780636f8e2fa414620007c357806375cc7d8914620007e857600080fd5b80635949187111620002d25780635949187114620006a25780635e7cc1c914620006c757806363a036b514620006ec57806364028fbd146200072357600080fd5b80634bf6c882146200063b5780634d99dd1614620006655780634e6fd6c4146200068a57600080fd5b80631fa8882b1162000371578063449ecfe61162000348578063449ecfe6146200058757806345211bfd14620005ac5780634838d16514620005d15780634a49ac4c146200061657600080fd5b80631fa8882b146200053157806338409988146200054a578063417c73a7146200056257600080fd5b8063092193ab11620003b2578063092193ab146200047c5780630e9fbf5114620004935780631182b87514620004b857806317b4f35314620004ec57600080fd5b8063046f7da214620003fb578063059ddd2214620004135780630661806e146200045557600080fd5b36620003f65760345460ff16600114620003f457600080fd5b005b600080fd5b3480156200040857600080fd5b50620003f462000c6a565b3480156200042057600080fd5b50620004386200043236600462009442565b62000cfc565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156200046257600080fd5b506200046d60365481565b6040519081526020016200044c565b620003f46200048d36600462009442565b62001111565b348015620004a057600080fd5b50620003f4620004b2366004620094a6565b6200174f565b348015620004c557600080fd5b50620004dd620004d7366004620094eb565b62001a7b565b6040516200044c91906200959e565b348015620004f957600080fd5b50620004386200050b36600462009694565b80516020818301810180516045825292820191909301209152546001600160a01b031681565b3480156200053e57600080fd5b506200046d6201518081565b3480156200055757600080fd5b506200046d60375481565b3480156200056f57600080fd5b50620003f46200058136600462009442565b62001dee565b3480156200059457600080fd5b50620003f4620005a636600462009442565b62001e70565b348015620005b957600080fd5b50620003f4620005cb36600462009442565b62002055565b348015620005de57600080fd5b5062000605620005f036600462009442565b60016020526000908152604090205460ff1681565b60405190151581526020016200044c565b3480156200062357600080fd5b50620003f46200063536600462009442565b62002232565b3480156200064857600080fd5b5062000652600881565b60405160ff90911681526020016200044c565b3480156200067257600080fd5b50620003f462000684366004620096e9565b620022ae565b3480156200069757600080fd5b506200043861dead81565b348015620006af57600080fd5b50620003f4620006c136600462009727565b620028cb565b348015620006d457600080fd5b50620003f4620006e636600462009797565b6200369e565b348015620006f957600080fd5b50620007116200070b366004620097b7565b620038a6565b6040516200044c949392919062009820565b620003f462000734366004620098dc565b62003f38565b3480156200074757600080fd5b506200046d6200075936600462009442565b60446020526000908152604090205481565b3480156200077857600080fd5b50620007906200078a36600462009442565b62004582565b6040805182516001600160401b03908116825260208085015182169083015292820151909216908201526060016200044c565b348015620007d057600080fd5b50620004dd620007e236600462009442565b6200462c565b348015620007f557600080fd5b50620003f46200080736600462009442565b62004a45565b3480156200081a57600080fd5b506200046d603d5481565b3480156200083257600080fd5b50620003f462004c17565b3480156200084a57600080fd5b50620003f46200085c366004620094eb565b62004f2e565b3480156200086f57600080fd5b50620003f462004f98565b3480156200088757600080fd5b50620004386200089936600462009442565b6043602052600090815260409020546001600160a01b031681565b348015620008c157600080fd5b506200046d670de0b6b3a764000081565b348015620008df57600080fd5b506200046d620008f1366004620096e9565b62005030565b620003f462000908366004620099b4565b620050e9565b3480156200091b57600080fd5b50620009336200092d36600462009442565b62005773565b6040516200044c9190620099f2565b3480156200094f57600080fd5b50620003f462000961366004620096e9565b62005a60565b3480156200097457600080fd5b50620003f46200098636600462009a6f565b62005acd565b3480156200099957600080fd5b5060005462010000900460ff1662000605565b348015620009b957600080fd5b50620003f4620009cb36600462009b28565b6200696c565b348015620009de57600080fd5b506200046d603c5481565b348015620009f657600080fd5b5062000a0e62000a08366004620097b7565b62006b39565b6040516200044c9392919062009b84565b34801562000a2c57600080fd5b50620003f462000a3e36600462009442565b62006d15565b34801562000a5157600080fd5b506200046d60385481565b34801562000a6957600080fd5b5062000a8162000a7b36600462009442565b62006fd7565b604080519384529115156020840152908201526060016200044c565b34801562000aaa57600080fd5b506200046d620186a081565b34801562000ac357600080fd5b50620003f462000ad536600462009be1565b62007407565b34801562000ae857600080fd5b50620003f462000afa36600462009cca565b6200760b565b34801562000b0d57600080fd5b506200046d603b5481565b34801562000b2557600080fd5b506200046d60495481565b34801562000b3d57600080fd5b506200043862000b4f36600462009442565b62007701565b34801562000b6257600080fd5b506200046d60355481565b34801562000b7a57600080fd5b506200046d603a5481565b34801562000b9257600080fd5b506200046d62000ba436600462009694565b805160208183018101805160468252928201919093012091525481565b34801562000bce57600080fd5b506200046d603e5481565b34801562000be657600080fd5b5062000652601181565b34801562000bfd57600080fd5b506200046d62000c0f366004620096e9565b62007b18565b34801562000c2257600080fd5b50620003f462000c3436600462009a6f565b62007b89565b34801562000c4757600080fd5b506200046d60395481565b34801562000c5f57600080fd5b506200046d604a5481565b600054630100000090046001600160a01b0316331462000c9d576040516306fbb1e360e01b815260040160405180910390fd5b60005462010000900460ff1662000cc757604051636cd6020160e01b815260040160405180910390fd5b6000805462ff0000191681556040517f62451d457bc659158be6e6247f56ec1df424a5c7597f71c20c2bc44e0965c8f99190a1565b6001600160a01b038082166000908152604160209081526040808320815161016081018352815486168152600182015486169381019390935260028101549094169082015260038301546060820152600483018054929384939091608084019162000d679062009d30565b80601f016020809104026020016040519081016040528092919081815260200182805462000d959062009d30565b801562000de65780601f1062000dba5761010080835404028352916020019162000de6565b820191906000526020600020905b81548152906001019060200180831162000dc857829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462000e119062009d30565b80601f016020809104026020016040519081016040528092919081815260200182805462000e3f9062009d30565b801562000e905780601f1062000e645761010080835404028352916020019162000e90565b820191906000526020600020905b81548152906001019060200180831162000e7257829003601f168201915b5050505050815260200160018201805462000eab9062009d30565b80601f016020809104026020016040519081016040528092919081815260200182805462000ed99062009d30565b801562000f2a5780601f1062000efe5761010080835404028352916020019162000f2a565b820191906000526020600020905b81548152906001019060200180831162000f0c57829003601f168201915b5050505050815260200160028201805462000f459062009d30565b80601f016020809104026020016040519081016040528092919081815260200182805462000f739062009d30565b801562000fc45780601f1062000f985761010080835404028352916020019162000fc4565b820191906000526020600020905b81548152906001019060200180831162000fa657829003601f168201915b5050505050815260200160038201805462000fdf9062009d30565b80601f01602080910402602001604051908101604052809291908181526020018280546200100d9062009d30565b80156200105e5780601f1062001032576101008083540402835291602001916200105e565b820191906000526020600020905b8154815290600101906020018083116200104057829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b815481526020019060010190808311620010ea575050509190925250509051949350505050565b33611000146200113d57604051630f22c43960e41b815261100060048201526024015b60405180910390fd5b6001600160a01b03808216600090815260436020908152604080832054841680845260418352818420825161016081018452815487168152600182015487169481019490945260028101549095169183019190915260038401546060830152600484018054919491608084019190620011b69062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620011e49062009d30565b8015620012355780601f10620012095761010080835404028352916020019162001235565b820191906000526020600020905b8154815290600101906020018083116200121757829003601f168201915b5050505050815260200160058201604051806080016040529081600082018054620012609062009d30565b80601f01602080910402602001604051908101604052809291908181526020018280546200128e9062009d30565b8015620012df5780601f10620012b357610100808354040283529160200191620012df565b820191906000526020600020905b815481529060010190602001808311620012c157829003601f168201915b50505050508152602001600182018054620012fa9062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620013289062009d30565b8015620013795780601f106200134d5761010080835404028352916020019162001379565b820191906000526020600020905b8154815290600101906020018083116200135b57829003601f168201915b50505050508152602001600282018054620013949062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620013c29062009d30565b8015620014135780601f10620013e75761010080835404028352916020019162001413565b820191906000526020600020905b815481529060010190602001808311620013f557829003601f168201915b505050505081526020016003820180546200142e9062009d30565b80601f01602080910402602001604051908101604052809291908181526020018280546200145c9062009d30565b8015620014ad5780601f106200148157610100808354040283529160200191620014ad565b820191906000526020600020905b8154815290600101906020018083116200148f57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b81548152602001906001019080831162001539575050509190925250505060408101519091506001600160a01b031615806200157657508060e001515b156200163357604051611002903490600081818185875af1925050503d8060008114620015c0576040519150601f19603f3d011682016040523d82523d6000602084013e620015c5565b606091505b505050816001600160a01b03167ffc8bff675087dd2da069cc3fb517b9ed001e19750c0865241a5542dba1ba170d604051620016269060208082526011908201527024a72b20a624a22fab20a624a220aa27a960791b604082015260600190565b60405180910390a2505050565b60408181015160c0830151519151632f303ebb60e11b81526001600160401b0390921660048301526001600160a01b031690635e607d769034906024016000604051808303818588803b1580156200168a57600080fd5b505af11580156200169f573d6000803e3d6000fd5b5050505050816001600160a01b03167fe34918ff1c7084970068b53fd71ad6d8b04e9f15d3886cbf006443e6cdc52ea634604051620016e091815260200190565b60405180910390a26040808201519051633041949b60e01b815261200591633041949b91620017159190869060040162009d66565b600060405180830381600087803b1580156200173057600080fd5b505af115801562001745573d6000803e3d6000fd5b5050505050505b50565b33611001146200177757604051630f22c43960e41b8152611001600482015260240162001134565b60005462010000900460ff1615620017a257604051631785c68160e01b815260040160405180910390fd5b600060458383604051620017b892919062009d80565b908152604051908190036020019020546001600160a01b03169050620017e0603f8262007ddd565b620017fe5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b03811660009081526041602052604081209062001826620151804262009da6565b604a546000828152604b6020526040902054919250116200185a5760405163bd52fcdb60e01b815260040160405180910390fd5b6000818152604b602052604081208054600192906200187b90849062009dc9565b909155505060405160469062001895908790879062009d80565b908152602001604051809103902054600014158015620018e65750426201518060468787604051620018c992919062009d80565b908152602001604051809103902054620018e4919062009dc9565b105b156200190557604051631898eb6b60e01b815260040160405180910390fd5b6000806200191585600262007e00565b91509150816200193857604051631b919bb160e11b815260040160405180910390fd5b6002840154603c5460405163045bc4d160e41b815260048101919091526000916001600160a01b0316906345bc4d10906024016020604051808303816000875af11580156200198b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620019b1919062009ddf565b9050620019bf858362007e8a565b856001600160a01b03167f6e9a2ee7aee95665e3a774a212eb11441b217e3e4656ab9563793094689aabb283836002604051620019ff9392919062009e0f565b60405180910390a26002850154604051633041949b60e01b815261200591633041949b9162001a3d916001600160a01b0316908a9060040162009d66565b600060405180830381600087803b15801562001a5857600080fd5b505af115801562001a6d573d6000803e3d6000fd5b505050505050505050505050565b6060336120001462001aa557604051630f22c43960e41b8152612000600482015260240162001134565b60005462010000900460ff161562001ad057604051631785c68160e01b815260040160405180910390fd5b6034805460ff19166001179055604080516020601f8501819004810282018101909252838152600091829162001b219187908790819084018382808284376000920191909152506200805192505050565b915091508062001b445760405163035ede3560e21b815260040160405180910390fd5b816060015160000362001b6a575050604080516000815260208101909152905062001ddd565b606082015160405163e04c83a760e01b81526000916110049163e04c83a79162001b9a9160040190815260200190565b6020604051808303816000875af115801562001bba573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001be0919062009e3e565b90508062001c875782602001516001600160a01b031683600001516001600160a01b03167fa9084c89a291b43bc984e045671d394974730a159b9a826b577bb148ab504c3a8560600151600160405162001c3c92919062009e5e565b60405180910390a385858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092965062001ddd95505050505050565b600062001c9484620081b4565b9050600081600481111562001cad5762001cad62009df9565b0362001ccf575050604080516000815260208101909152925062001ddd915050565b6040516000906110049047908381818185875af1925050503d806000811462001d15576040519150601f19603f3d011682016040523d82523d6000602084013e62001d1a565b606091505b505090508062001d3d576040516312171d8360e31b815260040160405180910390fd5b84602001516001600160a01b031685600001516001600160a01b03167fa9084c89a291b43bc984e045671d394974730a159b9a826b577bb148ab504c3a87606001518560405162001d9092919062009e5e565b60405180910390a387878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092985062001ddd975050505050505050565b6034805460ff191690559392505050565b600054630100000090046001600160a01b0316331462001e21576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b0381166000818152600160208190526040808320805460ff1916909217909155517f7fd26be6fc92aff63f1f4409b2b2ddeb272a888031d7f55ec830485ec61941869190a250565b60005462010000900460ff161562001e9b57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161562001ecd5760405163b1d02c3d60e01b815260040160405180910390fd5b8062001edb603f8262007ddd565b62001ef95760405163056e881160e01b815260040160405180910390fd5b6001600160a01b0382166000908152604160205260409020600a81015460ff1662001f3757604051634b6b857d60e01b815260040160405180910390fd5b6036546002820154604051630913db4760e01b81526001600160a01b03868116600483015290911690630913db4790602401602060405180830381865afa15801562001f87573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001fad919062009ddf565b101562001fcd576040516317b204bf60e11b815260040160405180910390fd5b4281600b0154111562001ff35760405163170cb76760e21b815260040160405180910390fd5b600a8101805460ff1916905560498054600191906000906200201790849062009e85565b90915550506040516001600160a01b038416907f9390b453426557da5ebdc31f19a37753ca04addf656d32f35232211bb2af3f1990600090a2505050565b60005462010000900460ff16156200208057604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620020b25760405163b1d02c3d60e01b815260040160405180910390fd5b33620020c0603f8262007ddd565b620020de5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b0382166200210657604051636520611b60e11b815260040160405180910390fd5b6001600160a01b03828116600090815260436020526040902054161515806200214757506001600160a01b03821660009081526047602052604090205460ff165b156200216657604051631e6f587560e11b815260040160405180910390fd5b336000818152604160205260409020600c81015442906200218c90620151809062009dc9565b1115620021ac57604051631f92cdbd60e11b815260040160405180910390fd5b80546001600160a01b039081166000908152604460209081526040808320429081905585548986166001600160a01b031991821681178855600c88019290925581855260439093528184208054958816959093168517909255519092917f6e4e747ca35203f16401c69805c7dd52fff67ef60b0ebc5c7fe16890530f223591a350505050565b600054630100000090046001600160a01b0316331462002265576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b038116600081815260016020526040808220805460ff19169055517fe0db3499b7fdc3da4cddff5f45d694549c19835e7f719fb5606d3ad1a5de40119190a250565b60005462010000900460ff1615620022d957604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff16156200230b5760405163b1d02c3d60e01b815260040160405180910390fd5b8162002319603f8262007ddd565b620023375760405163056e881160e01b815260040160405180910390fd5b816000036200235957604051639811e0c760e01b815260040160405180910390fd5b6001600160a01b0380841660009081526041602090815260408083208151610160810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180543394916080840191620023c19062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620023ef9062009d30565b8015620024405780601f10620024145761010080835404028352916020019162002440565b820191906000526020600020905b8154815290600101906020018083116200242257829003601f168201915b50505050508152602001600582016040518060800160405290816000820180546200246b9062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620024999062009d30565b8015620024ea5780601f10620024be57610100808354040283529160200191620024ea565b820191906000526020600020905b815481529060010190602001808311620024cc57829003601f168201915b50505050508152602001600182018054620025059062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620025339062009d30565b8015620025845780601f10620025585761010080835404028352916020019162002584565b820191906000526020600020905b8154815290600101906020018083116200256657829003601f168201915b505050505081526020016002820180546200259f9062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620025cd9062009d30565b80156200261e5780601f10620025f2576101008083540402835291602001916200261e565b820191906000526020600020905b8154815290600101906020018083116200260057829003601f168201915b50505050508152602001600382018054620026399062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620026679062009d30565b8015620026b85780601f106200268c57610100808354040283529160200191620026b8565b820191906000526020600020905b8154815290600101906020018083116200269a57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b81548152602001906001019080831162002744575050509190925250505060408082015190516326ccee8b60e11b81526001600160a01b0385811660048301526024820188905292935060009290911690634d99dd16906044016020604051808303816000875af1158015620027be573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620027e4919062009ddf565b9050826001600160a01b0316866001600160a01b03167f3aace7340547de7b9156593a7652dc07ee900cea3fd8f82cb6c9d38b40829802878460405162002835929190918252602082015260400190565b60405180910390a3856001600160a01b0316836001600160a01b031603620028625762002862866200880a565b6040808301519051633041949b60e01b815261200591633041949b916200288f9190879060040162009d66565b600060405180830381600087803b158015620028aa57600080fd5b505af1158015620028bf573d6000803e3d6000fd5b50505050505050505050565b60005462010000900460ff1615620028f657604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620029285760405163b1d02c3d60e01b815260040160405180910390fd5b8362002936603f8262007ddd565b620029545760405163056e881160e01b815260040160405180910390fd5b8362002962603f8262007ddd565b620029805760405163056e881160e01b815260040160405180910390fd5b6034805460ff191660011790556000849003620029b057604051639811e0c760e01b815260040160405180910390fd5b846001600160a01b0316866001600160a01b031603620029e35760405163f0e3e62960e01b815260040160405180910390fd5b6001600160a01b038087166000908152604160209081526040808320815161016081018352815486168152600182015486169381019390935260028101549094169082015260038301546060820152600483018054339491608084019162002a4b9062009d30565b80601f016020809104026020016040519081016040528092919081815260200182805462002a799062009d30565b801562002aca5780601f1062002a9e5761010080835404028352916020019162002aca565b820191906000526020600020905b81548152906001019060200180831162002aac57829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462002af59062009d30565b80601f016020809104026020016040519081016040528092919081815260200182805462002b239062009d30565b801562002b745780601f1062002b485761010080835404028352916020019162002b74565b820191906000526020600020905b81548152906001019060200180831162002b5657829003601f168201915b5050505050815260200160018201805462002b8f9062009d30565b80601f016020809104026020016040519081016040528092919081815260200182805462002bbd9062009d30565b801562002c0e5780601f1062002be25761010080835404028352916020019162002c0e565b820191906000526020600020905b81548152906001019060200180831162002bf057829003601f168201915b5050505050815260200160028201805462002c299062009d30565b80601f016020809104026020016040519081016040528092919081815260200182805462002c579062009d30565b801562002ca85780601f1062002c7c5761010080835404028352916020019162002ca8565b820191906000526020600020905b81548152906001019060200180831162002c8a57829003601f168201915b5050505050815260200160038201805462002cc39062009d30565b80601f016020809104026020016040519081016040528092919081815260200182805462002cf19062009d30565b801562002d425780601f1062002d165761010080835404028352916020019162002d42565b820191906000526020600020905b81548152906001019060200180831162002d2457829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b81548152602001906001019080831162002dce57505050919092525050506001600160a01b0380891660009081526041602090815260408083208151610160810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180549495509193909291608084019162002e599062009d30565b80601f016020809104026020016040519081016040528092919081815260200182805462002e879062009d30565b801562002ed85780601f1062002eac5761010080835404028352916020019162002ed8565b820191906000526020600020905b81548152906001019060200180831162002eba57829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462002f039062009d30565b80601f016020809104026020016040519081016040528092919081815260200182805462002f319062009d30565b801562002f825780601f1062002f565761010080835404028352916020019162002f82565b820191906000526020600020905b81548152906001019060200180831162002f6457829003601f168201915b5050505050815260200160018201805462002f9d9062009d30565b80601f016020809104026020016040519081016040528092919081815260200182805462002fcb9062009d30565b80156200301c5780601f1062002ff0576101008083540402835291602001916200301c565b820191906000526020600020905b81548152906001019060200180831162002ffe57829003601f168201915b50505050508152602001600282018054620030379062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620030659062009d30565b8015620030b65780601f106200308a57610100808354040283529160200191620030b6565b820191906000526020600020905b8154815290600101906020018083116200309857829003601f168201915b50505050508152602001600382018054620030d19062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620030ff9062009d30565b8015620031505780601f10620031245761010080835404028352916020019162003150565b820191906000526020600020905b8154815290600101906020018083116200313257829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b815481526020019060010190808311620031dc5750505050508152505090508060e0015180156200321f5750876001600160a01b0316836001600160a01b031614155b156200323e57604051636468920360e01b815260040160405180910390fd5b60408083015190516352e82ce560e11b81526001600160a01b038581166004830152602482018a9052600092169063a5d059ca906044016020604051808303816000875af115801562003295573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620032bb919062009ddf565b9050603754811015620032e15760405163dc6f0bdd60e01b815260040160405180910390fd5b896001600160a01b0316846001600160a01b03161480156200337657506036546040808501519051630913db4760e01b81526001600160a01b038d8116600483015290911690630913db4790602401602060405180830381865afa1580156200334e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003374919062009ddf565b105b1562003395576040516317b204bf60e11b815260040160405180910390fd5b6000620186a0603a5483620033ab919062009e9b565b620033b7919062009da6565b9050600083604001516001600160a01b03168260405160006040518083038185875af1925050503d80600081146200340c576040519150601f19603f3d011682016040523d82523d6000602084013e62003411565b606091505b505090508062003434576040516312171d8360e31b815260040160405180910390fd5b62003440828462009e85565b60408086015190516317066a5760e21b81526001600160a01b03898116600483015292955060009290911690635c19a95c90869060240160206040518083038185885af115801562003496573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190620034bd919062009ddf565b9050866001600160a01b03168c6001600160a01b03168e6001600160a01b03167ffdac6e81913996d95abcc289e90f2d8bd235487ce6fe6f821e7d21002a1915b48e858960405162003522939291909283526020830191909152604082015260600190565b60405180910390a460408051600280825260608201835260009260208301908036833701905050905086604001518160008151811062003566576200356662009eb5565b60200260200101906001600160a01b031690816001600160a01b031681525050856040015181600181518110620035a157620035a162009eb5565b6001600160a01b0390921660209283029190910190910152604051634484077560e01b815261200590634484077590620035e29084908c9060040162009ecb565b600060405180830381600087803b158015620035fd57600080fd5b505af115801562003612573d6000803e3d6000fd5b505050508a1562003684576120056001600160a01b031663e5ed5b1e898f6040518363ffffffff1660e01b81526004016200364f92919062009d66565b600060405180830381600087803b1580156200366a57600080fd5b505af11580156200367f573d6000803e3d6000fd5b505050505b50506034805460ff19169055505050505050505050505050565b60005462010000900460ff1615620036c957604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620036fb5760405163b1d02c3d60e01b815260040160405180910390fd5b3362003709603f8262007ddd565b620037275760405163056e881160e01b815260040160405180910390fd5b336000818152604160205260409020600c81015442906200374d90620151809062009dc9565b11156200376d57604051631f92cdbd60e11b815260040160405180910390fd5b60098101546001600160401b03600160401b90910481169085161115620037a75760405163dc81db8560e01b815260040160405180910390fd5b60098101546000906001600160401b039081169086161015620037e5576009820154620037df9086906001600160401b031662009ef7565b620037ff565b6009820154620037ff906001600160401b03168662009ef7565b60098301546001600160401b039182169250600160801b9004168111156200383a5760405163dc81db8560e01b815260040160405180910390fd5b60098201805467ffffffffffffffff19166001600160401b03871690811790915542600c8401556040519081526001600160a01b038416907f78cdd96edf59e09cfd4d26ef6ef6c92d166effe6a40970c54821206d541932cb9060200160405180910390a25050505050565b60608060606000620038b9603f62008930565b90508086101562003f2f578415620038d25784620038d4565b805b9450600085620038e5888462009e85565b11620038fd57620038f7878362009e85565b620038ff565b855b9050806001600160401b038111156200391c576200391c620095b3565b60405190808252806020026020018201604052801562003946578160200160208202803683370190505b509450806001600160401b03811115620039645762003964620095b3565b6040519080825280602002602001820160405280156200398e578160200160208202803683370190505b509350806001600160401b03811115620039ac57620039ac620095b3565b604051908082528060200260200182016040528015620039e157816020015b6060815260200190600190039081620039cb5790505b50925060005b8181101562003f2c57600062003a0b62003a02838b62009dc9565b603f906200893b565b6001600160a01b0380821660009081526041602090815260408083208151610160810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180549495509193909291608084019162003a789062009d30565b80601f016020809104026020016040519081016040528092919081815260200182805462003aa69062009d30565b801562003af75780601f1062003acb5761010080835404028352916020019162003af7565b820191906000526020600020905b81548152906001019060200180831162003ad957829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462003b229062009d30565b80601f016020809104026020016040519081016040528092919081815260200182805462003b509062009d30565b801562003ba15780601f1062003b755761010080835404028352916020019162003ba1565b820191906000526020600020905b81548152906001019060200180831162003b8357829003601f168201915b5050505050815260200160018201805462003bbc9062009d30565b80601f016020809104026020016040519081016040528092919081815260200182805462003bea9062009d30565b801562003c3b5780601f1062003c0f5761010080835404028352916020019162003c3b565b820191906000526020600020905b81548152906001019060200180831162003c1d57829003601f168201915b5050505050815260200160028201805462003c569062009d30565b80601f016020809104026020016040519081016040528092919081815260200182805462003c849062009d30565b801562003cd55780601f1062003ca95761010080835404028352916020019162003cd5565b820191906000526020600020905b81548152906001019060200180831162003cb757829003601f168201915b5050505050815260200160038201805462003cf09062009d30565b80601f016020809104026020016040519081016040528092919081815260200182805462003d1e9062009d30565b801562003d6f5780601f1062003d435761010080835404028352916020019162003d6f565b820191906000526020600020905b81548152906001019060200180831162003d5157829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b81548152602001906001019080831162003dfb575050505050815250509050806000015188848151811062003e345762003e3462009eb5565b60200260200101906001600160a01b031690816001600160a01b0316815250508060e0015162003ecd5780604001516001600160a01b03166315d1f8986040518163ffffffff1660e01b8152600401602060405180830381865afa15801562003ea1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003ec7919062009ddf565b62003ed0565b60005b87848151811062003ee55762003ee562009eb5565b602002602001018181525050806080015186848151811062003f0b5762003f0b62009eb5565b602002602001018190525050508062003f249062009f1a565b9050620039e7565b50505b92959194509250565b60005462010000900460ff161562003f6357604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161562003f955760405163b1d02c3d60e01b815260040160405180910390fd5b3362003fa3603f8262007ddd565b1562003fc257604051635f28f62b60e01b815260040160405180910390fd5b6001600160a01b03888116600090815260436020526040902054161515806200400357506001600160a01b03881660009081526047602052604090205460ff165b156200402257604051631e6f587560e11b815260040160405180910390fd5b60006001600160a01b0316604588886040516200404192919062009d80565b908152604051908190036020019020546001600160a01b03161415806200408b5750604887876040516200407792919062009d80565b9081526040519081900360200190205460ff165b15620040aa576040516311fdb94760e01b815260040160405180910390fd5b6000620040b8838062009f36565b604051602001620040cb92919062009d80565b60408051601f1981840301815291815281516020928301206000818152604290935291205490915060ff1615620041155760405163c0bf414360e01b815260040160405180910390fd5b60006200412b670de0b6b3a76400003462009e85565b905060365481101562004151576040516317b204bf60e11b815260040160405180910390fd5b6001600160a01b038a166200417957604051636520611b60e11b815260040160405180910390fd5b6113886200418e604087016020880162009797565b6001600160401b03161180620041d45750620041b1604086016020870162009797565b6001600160401b0316620041c9602087018762009797565b6001600160401b0316115b80620042135750620041ed604086016020870162009797565b6001600160401b031662004208606087016040880162009797565b6001600160401b0316115b15620042325760405163dc81db8560e01b815260040160405180910390fd5b6200427d62004242858062009f36565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506200894992505050565b6200429b57604051635dba5ad760e01b815260040160405180910390fd5b620042aa838a8a8a8a62008aeb565b620042c857604051631647e3cb60e11b815260040160405180910390fd5b60006200431684620042db878062009f36565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525062008c1b92505050565b905062004325603f8562008d1c565b506000838152604260209081526040808320805460ff191660019081179091556001600160a01b0380891680865260419094529190932080548f83166001600160a01b031991821617825593810180548516909317909255600282018054918516919093161790915542600382015560048101620043a58b8d8362009fde565b508560058201620043b782826200a0a6565b5087905060098201620043cb82826200a1df565b505042600c8201556001600160a01b038c81166000908152604360205260409081902080546001600160a01b0319169288169290921790915551859060459062004419908e908e9062009d80565b908152602001604051809103902060006101000a8154816001600160a01b0302191690836001600160a01b03160217905550816001600160a01b0316856001600160a01b03168d6001600160a01b03167faecd9fb95e79c75a3a1de93362c6be5fe6ab65770d8614be583884161cd8228d8e8e6040516200449c9291906200a2af565b60405180910390a460408051848152602081018590526001600160a01b0387169182916000805160206200b5b6833981519152910160405180910390a360408051670de0b6b3a7640000808252602082015261dead916001600160a01b038816916000805160206200b5b6833981519152910160405180910390a3604051633041949b60e01b815261200590633041949b9062004540908590899060040162009d66565b600060405180830381600087803b1580156200455b57600080fd5b505af115801562004570573d6000803e3d6000fd5b50505050505050505050505050505050565b604080516060810182526000808252602082018190529181019190915281620045ad603f8262007ddd565b620045cb5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b03831660009081526041602090815260409182902082516060810184526009909101546001600160401b038082168352600160401b8204811693830193909352600160801b90049091169181019190915291505b50919050565b6001600160a01b03808216600090815260416020908152604080832081516101608101835281548616815260018201548616938101939093526002810154909416908201526003830154606082810191909152600484018054919491608084019190620046999062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620046c79062009d30565b8015620047185780601f10620046ec5761010080835404028352916020019162004718565b820191906000526020600020905b815481529060010190602001808311620046fa57829003601f168201915b5050505050815260200160058201604051806080016040529081600082018054620047439062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620047719062009d30565b8015620047c25780601f106200479657610100808354040283529160200191620047c2565b820191906000526020600020905b815481529060010190602001808311620047a457829003601f168201915b50505050508152602001600182018054620047dd9062009d30565b80601f01602080910402602001604051908101604052809291908181526020018280546200480b9062009d30565b80156200485c5780601f1062004830576101008083540402835291602001916200485c565b820191906000526020600020905b8154815290600101906020018083116200483e57829003601f168201915b50505050508152602001600282018054620048779062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620048a59062009d30565b8015620048f65780601f10620048ca57610100808354040283529160200191620048f6565b820191906000526020600020905b815481529060010190602001808311620048d857829003601f168201915b50505050508152602001600382018054620049119062009d30565b80601f01602080910402602001604051908101604052809291908181526020018280546200493f9062009d30565b8015620049905780601f10620049645761010080835404028352916020019162004990565b820191906000526020600020905b8154815290600101906020018083116200497257829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b81548152602001906001019080831162004a1c5750505091909252505050608001519392505050565b336110011462004a6d57604051630f22c43960e41b8152611001600482015260240162001134565b6001600160a01b038082166000908152604360205260409020541662004a95603f8262007ddd565b62004ab35760405163056e881160e01b815260040160405180910390fd5b6001600160a01b038181166000908152604160205260408082206002810154603b54925163045bc4d160e41b81526004810193909352909316906345bc4d10906024016020604051808303816000875af115801562004b16573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004b3c919062009ddf565b90506000603d544262004b50919062009dc9565b905062004b5e838262007e8a565b836001600160a01b03167f6e9a2ee7aee95665e3a774a212eb11441b217e3e4656ab9563793094689aabb28284600160405162004b9e9392919062009e0f565b60405180910390a26002830154604051633041949b60e01b815261200591633041949b9162004bdc916001600160a01b031690889060040162009d66565b600060405180830381600087803b15801562004bf757600080fd5b505af115801562004c0c573d6000803e3d6000fd5b505050505050505050565b600054610100900460ff161580801562004c385750600054600160ff909116105b8062004c545750303b15801562004c54575060005460ff166001145b62004cb95760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840162001134565b6000805460ff19166001179055801562004cdd576000805461ff0019166101001790555b33411462004cfe5760405163022d8c9560e31b815260040160405180910390fd5b3a1562004d1e576040516383f1b1d360e01b815260040160405180910390fd5b611388603555686c6b935b8bbd400000603655670de0b6b3a7640000603755602d60385562093a806039556002603a819055678ac7230489e80000603b55680ad78ebc5ac6200000603c556202a300603d5562278d00603e55604a5560408051610760810190915261074080825260609182916200b5d6602083013980602001905181019062004daf91906200a2eb565b915060405180611160016040528061114081526020016200bd16611140913980602001905181019062004de391906200a38f565b905060005b825181101562004e525760016047600085848151811062004e0d5762004e0d62009eb5565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905562004e4a8162009f1a565b905062004de8565b5060005b815181101562004ec3576001604883838151811062004e795762004e7962009eb5565b602002602001015160405162004e9091906200a48c565b908152604051908190036020019020805491151560ff1990921691909117905562004ebb8162009f1a565b905062004e56565b5062004ee37308e68ec70fa3b629784fdb28887e206ce8561e0862008d33565b505080156200174c576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b336120001462004f5657604051630f22c43960e41b8152612000600482015260240162001134565b7faa5ba621c8b3d7d05bb9e51a7506108251d4d5dbe542ca66fc7bb52aacb02b6583838360405162004f8b939291906200a4aa565b60405180910390a1505050565b600054630100000090046001600160a01b0316331462004fcb576040516306fbb1e360e01b815260040160405180910390fd5b60005462010000900460ff161562004ff657604051631785c68160e01b815260040160405180910390fd5b6000805462ff00001916620100001781556040517f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e7529190a1565b60006200503f603f8462007ddd565b6200505d5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b0383811660009081526041602052604090819020600201549051636bbf224960e01b815260048101859052911690636bbf2249906024015b602060405180830381865afa158015620050ba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620050e0919062009ddf565b90505b92915050565b60005462010000900460ff16156200511457604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620051465760405163b1d02c3d60e01b815260040160405180910390fd5b8162005154603f8262007ddd565b620051725760405163056e881160e01b815260040160405180910390fd5b6037543490811015620051985760405163dc6f0bdd60e01b815260040160405180910390fd5b6001600160a01b0380851660009081526041602090815260408083208151610160810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180543394916080840191620052009062009d30565b80601f01602080910402602001604051908101604052809291908181526020018280546200522e9062009d30565b80156200527f5780601f1062005253576101008083540402835291602001916200527f565b820191906000526020600020905b8154815290600101906020018083116200526157829003601f168201915b5050505050815260200160058201604051806080016040529081600082018054620052aa9062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620052d89062009d30565b8015620053295780601f10620052fd5761010080835404028352916020019162005329565b820191906000526020600020905b8154815290600101906020018083116200530b57829003601f168201915b50505050508152602001600182018054620053449062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620053729062009d30565b8015620053c35780601f106200539757610100808354040283529160200191620053c3565b820191906000526020600020905b815481529060010190602001808311620053a557829003601f168201915b50505050508152602001600282018054620053de9062009d30565b80601f01602080910402602001604051908101604052809291908181526020018280546200540c9062009d30565b80156200545d5780601f1062005431576101008083540402835291602001916200545d565b820191906000526020600020905b8154815290600101906020018083116200543f57829003601f168201915b50505050508152602001600382018054620054789062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620054a69062009d30565b8015620054f75780601f10620054cb57610100808354040283529160200191620054f7565b820191906000526020600020905b815481529060010190602001808311620054d957829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b815481526020019060010190808311620055835750505050508152505090508060e001518015620055c65750856001600160a01b0316826001600160a01b031614155b15620055e557604051636468920360e01b815260040160405180910390fd5b60408082015190516317066a5760e21b81526001600160a01b0384811660048301526000921690635c19a95c90869060240160206040518083038185885af115801562005636573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906200565d919062009ddf565b9050826001600160a01b0316876001600160a01b03166000805160206200b5b683398151915283876040516200569d929190918252602082015260400190565b60405180910390a36040808301519051633041949b60e01b815261200591633041949b91620056d29190879060040162009d66565b600060405180830381600087803b158015620056ed57600080fd5b505af115801562005702573d6000803e3d6000fd5b50505050851562001745576040516372f6ad8f60e11b81526120059063e5ed5b1e90620057369086908b9060040162009d66565b600060405180830381600087803b1580156200575157600080fd5b505af115801562005766573d6000803e3d6000fd5b5050505050505050505050565b6200579f6040518060800160405280606081526020016060815260200160608152602001606081525090565b81620057ad603f8262007ddd565b620057cb5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b03831660009081526041602052604090819020815160808101909252600501805482908290620058029062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620058309062009d30565b8015620058815780601f10620058555761010080835404028352916020019162005881565b820191906000526020600020905b8154815290600101906020018083116200586357829003601f168201915b505050505081526020016001820180546200589c9062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620058ca9062009d30565b80156200591b5780601f10620058ef576101008083540402835291602001916200591b565b820191906000526020600020905b815481529060010190602001808311620058fd57829003601f168201915b50505050508152602001600282018054620059369062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620059649062009d30565b8015620059b55780601f106200598957610100808354040283529160200191620059b5565b820191906000526020600020905b8154815290600101906020018083116200599757829003601f168201915b50505050508152602001600382018054620059d09062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620059fe9062009d30565b801562005a4f5780601f1062005a235761010080835404028352916020019162005a4f565b820191906000526020600020905b81548152906001019060200180831162005a3157829003601f168201915b505050505081525050915050919050565b60005462010000900460ff161562005a8b57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161562005abd5760405163b1d02c3d60e01b815260040160405180910390fd5b62005ac9828262008dcc565b5050565b336110071462005af557604051630f22c43960e41b8152611007600482015260240162001134565b62005b626040518060400160405280601081526020016f1d1c985b9cd9995c91d85cd31a5b5a5d60821b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed89050565b1562005c1d576020811462005b945783838383604051630a5a604160e01b81526004016200113494939291906200a4c9565b604080516020601f840181900481028201810190925282815260009162005bd791858580838501838280828437600092019190915250929392505062008f359050565b90506108fc81108062005beb575061271081115b1562005c145784848484604051630a5a604160e01b81526004016200113494939291906200a4c9565b60355562006927565b62005c8e6040518060400160405280601481526020017336b4b729b2b6332232b632b3b0ba34b7b721272160611b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed89050565b1562005d58576020811462005cc05783838383604051630a5a604160e01b81526004016200113494939291906200a4c9565b604080516020601f840181900481028201810190925282815260009162005d0391858580838501838280828437600092019190915250929392505062008f359050565b9050683635c9adc5dea0000081108062005d26575069152d02c7e14af680000081115b1562005d4f5784848484604051630a5a604160e01b81526004016200113494939291906200a4c9565b60365562006927565b62005dcb604051806040016040528060168152602001756d696e44656c65676174696f6e424e424368616e676560501b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed89050565b1562005e92576020811462005dfd5783838383604051630a5a604160e01b81526004016200113494939291906200a4c9565b604080516020601f840181900481028201810190925282815260009162005e4091858580838501838280828437600092019190915250929392505062008f359050565b905067016345785d8a000081108062005e605750678ac7230489e8000081115b1562005e895784848484604051630a5a604160e01b81526004016200113494939291906200a4c9565b60375562006927565b62005f03604051806040016040528060148152602001736d6178456c656374656456616c696461746f727360601b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed89050565b1562005fbb576020811462005f355783838383604051630a5a604160e01b81526004016200113494939291906200a4c9565b604080516020601f840181900481028201810190925282815260009162005f7891858580838501838280828437600092019190915250929392505062008f359050565b905080158062005f8957506101f481115b1562005fb25784848484604051630a5a604160e01b81526004016200113494939291906200a4c9565b60385562006927565b620060246040518060400160405280600c81526020016b1d5b989bdb9914195c9a5bd960a21b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed89050565b15620060e15760208114620060565783838383604051630a5a604160e01b81526004016200113494939291906200a4c9565b604080516020601f84018190048102820181019092528281526000916200609991858580838501838280828437600092019190915250929392505062008f359050565b90506203f480811080620060af575062278d0081115b15620060d85784848484604051630a5a604160e01b81526004016200113494939291906200a4c9565b60395562006927565b6200614f60405180604001604052806011815260200170726564656c65676174654665655261746560781b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed89050565b15620061fc5760208114620061815783838383604051630a5a604160e01b81526004016200113494939291906200a4c9565b604080516020601f8401819004810282018101909252828152600091620061c491858580838501838280828437600092019190915250929392505062008f359050565b90506064811115620061f35784848484604051630a5a604160e01b81526004016200113494939291906200a4c9565b603a5562006927565b6200626c60405180604001604052806013815260200172191bdddb9d1a5b5954db185cda105b5bdd5b9d606a1b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed89050565b156200632d57602081146200629e5783838383604051630a5a604160e01b81526004016200113494939291906200a4c9565b604080516020601f8401819004810282018101909252828152600091620062e191858580838501838280828437600092019190915250929392505062008f359050565b9050674563918244f40000811080620062fb5750603c5481115b15620063245784848484604051630a5a604160e01b81526004016200113494939291906200a4c9565b603b5562006927565b6200639b6040518060400160405280601181526020017019995b1bdb9e54db185cda105b5bdd5b9d607a1b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed89050565b156200645e5760208114620063cd5783838383604051630a5a604160e01b81526004016200113494939291906200a4c9565b604080516020601f84018190048102820181019092528281526000916200641091858580838501838280828437600092019190915250929392505062008f359050565b905068056bc75e2d631000008110806200642c5750603b548111155b15620064555784848484604051630a5a604160e01b81526004016200113494939291906200a4c9565b603c5562006927565b620064cb6040518060400160405280601081526020016f646f776e74696d654a61696c54696d6560801b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed89050565b15620065885760208114620064fd5783838383604051630a5a604160e01b81526004016200113494939291906200a4c9565b604080516020601f84018190048102820181019092528281526000916200654091858580838501838280828437600092019190915250929392505062008f359050565b90506202a300811080620065565750603e548110155b156200657f5784848484604051630a5a604160e01b81526004016200113494939291906200a4c9565b603d5562006927565b620065f36040518060400160405280600e81526020016d66656c6f6e794a61696c54696d6560901b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed89050565b15620066b05760208114620066255783838383604051630a5a604160e01b81526004016200113494939291906200a4c9565b604080516020601f84018190048102820181019092528281526000916200666891858580838501838280828437600092019190915250929392505062008f359050565b9050620d2f008110806200667e5750603d548111155b15620066a75784848484604051630a5a604160e01b81526004016200113494939291906200a4c9565b603e5562006927565b6200672a6040518060400160405280601c81526020017f6d617846656c6f6e794265747765656e42726561746865426c6f636b0000000081525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed89050565b15620067d657602081146200675c5783838383604051630a5a604160e01b81526004016200113494939291906200a4c9565b604080516020601f84018190048102820181019092528281526000916200679f91858580838501838280828437600092019190915250929392505062008f359050565b905080600003620067cd5784848484604051630a5a604160e01b81526004016200113494939291906200a4c9565b604a5562006927565b620068446040518060400160405280601181526020017039ba30b5b2a43ab1283937ba32b1ba37b960791b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed89050565b15620069045760148114620068765783838383604051630a5a604160e01b81526004016200113494939291906200a4c9565b6000620068be601484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008f359050565b90506001600160a01b038116620068f25784848484604051630a5a604160e01b81526004016200113494939291906200a4c9565b620068fd8162008f3a565b5062006927565b838383836040516325ee20d560e21b81526004016200113494939291906200a4c9565b7ff1ce9b2cbf50eeb05769a29e2543fd350cab46894a7dd9978a12d534bb20e633848484846040516200695e94939291906200a4c9565b60405180910390a150505050565b60005462010000900460ff16156200699757604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620069c95760405163b1d02c3d60e01b815260040160405180910390fd5b816000816001600160401b03811115620069e757620069e7620095b3565b60405190808252806020026020018201604052801562006a11578160200160208202803683370190505b5090506000805b8381101562006b0f5762006a5a87878381811062006a3a5762006a3a62009eb5565b905060200201602081019062006a51919062009442565b603f9062007ddd565b62006a785760405163056e881160e01b815260040160405180910390fd5b6041600088888481811062006a915762006a9162009eb5565b905060200201602081019062006aa8919062009442565b6001600160a01b039081168252602082019290925260400160002060020154845191169250829084908390811062006ae45762006ae462009eb5565b6001600160a01b039092166020928302919091019091015262006b078162009f1a565b905062006a18565b50604051634484077560e01b8152612005906344840775906200288f908590889060040162009ecb565b606080600062006b4a603f62008930565b90508085101562006d0e57831562006b63578362006b65565b805b935060008462006b76878462009e85565b1162006b8e5762006b88868362009e85565b62006b90565b845b9050806001600160401b0381111562006bad5762006bad620095b3565b60405190808252806020026020018201604052801562006bd7578160200160208202803683370190505b509350806001600160401b0381111562006bf55762006bf5620095b3565b60405190808252806020026020018201604052801562006c1f578160200160208202803683370190505b50925060005b8181101562006d0b5762006c3e62003a02828962009dc9565b85828151811062006c535762006c5362009eb5565b60200260200101906001600160a01b031690816001600160a01b0316815250506041600086838151811062006c8c5762006c8c62009eb5565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060020160009054906101000a90046001600160a01b031684828151811062006ce05762006ce062009eb5565b6001600160a01b039092166020928302919091019091015262006d038162009f1a565b905062006c25565b50505b9250925092565b336110011462006d3d57604051630f22c43960e41b8152611001600482015260240162001134565b60005462010000900460ff161562006d6857604051631785c68160e01b815260040160405180910390fd5b6001600160a01b038082166000908152604360205260409020541662006d90603f8262007ddd565b62006dae5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b03811660009081526041602052604081209062006dd6620151804262009da6565b604a546000828152604b60205260409020549192501162006e0a5760405163bd52fcdb60e01b815260040160405180910390fd5b6000818152604b6020526040812080546001929062006e2b90849062009dc9565b90915550506001600160a01b0384166000908152604460205260409020541580159062006e8057506001600160a01b038416600090815260446020526040902054429062006e7e90620151809062009dc9565b105b1562006e9f576040516330abb81d60e21b815260040160405180910390fd5b60008062006eaf85600062007e00565b915091508162006ed257604051631b919bb160e11b815260040160405180910390fd5b6002840154603c5460405163045bc4d160e41b815260048101919091526000916001600160a01b0316906345bc4d10906024016020604051808303816000875af115801562006f25573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062006f4b919062009ddf565b905062006f59858362007e8a565b856001600160a01b03167f6e9a2ee7aee95665e3a774a212eb11441b217e3e4656ab9563793094689aabb28383600060405162006f999392919062009e0f565b60405180910390a26002850154604051633041949b60e01b815261200591633041949b9162005736916001600160a01b0316908a9060040162009d66565b6001600160a01b0380821660009081526041602090815260408083208151610160810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180549293849384938493909291608084019190620070489062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620070769062009d30565b8015620070c75780601f106200709b57610100808354040283529160200191620070c7565b820191906000526020600020905b815481529060010190602001808311620070a957829003601f168201915b5050505050815260200160058201604051806080016040529081600082018054620070f29062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620071209062009d30565b8015620071715780601f10620071455761010080835404028352916020019162007171565b820191906000526020600020905b8154815290600101906020018083116200715357829003601f168201915b505050505081526020016001820180546200718c9062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620071ba9062009d30565b80156200720b5780601f10620071df576101008083540402835291602001916200720b565b820191906000526020600020905b815481529060010190602001808311620071ed57829003601f168201915b50505050508152602001600282018054620072269062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620072549062009d30565b8015620072a55780601f106200727957610100808354040283529160200191620072a5565b820191906000526020600020905b8154815290600101906020018083116200728757829003601f168201915b50505050508152602001600382018054620072c09062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620072ee9062009d30565b80156200733f5780601f1062007313576101008083540402835291602001916200733f565b820191906000526020600020905b8154815290600101906020018083116200732157829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b815481526020019060010190808311620073cb5750505091909252505050606081015160e0820151610100909201519097919650945092505050565b60005462010000900460ff16156200743257604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620074645760405163b1d02c3d60e01b815260040160405180910390fd5b3362007472603f8262007ddd565b620074905760405163056e881160e01b815260040160405180910390fd5b336000818152604160205260409020600c8101544290620074b690620151809062009dc9565b1115620074d657604051631f92cdbd60e11b815260040160405180910390fd5b600581018054620074e79062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620075159062009d30565b8015620075665780601f106200753a5761010080835404028352916020019162007566565b820191906000526020600020905b8154815290600101906020018083116200754857829003601f168201915b50505082875250859160058401915081906200758390826200a4f4565b50602082015160018201906200759a90826200a4f4565b5060408201516002820190620075b190826200a4f4565b5060608201516003820190620075c890826200a4f4565b505042600c830155506040516001600160a01b038316907f85d6366b336ade7f106987ec7a8eac1e8799e508aeab045a39d2f63e0dc969d990600090a250505050565b60005462010000900460ff16156200763657604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620076685760405163b1d02c3d60e01b815260040160405180910390fd5b82811462007689576040516341abc80160e01b815260040160405180910390fd5b60005b83811015620076fa57620076e7858583818110620076ae57620076ae62009eb5565b9050602002016020810190620076c5919062009442565b848484818110620076da57620076da62009eb5565b9050602002013562008dcc565b620076f28162009f1a565b90506200768c565b5050505050565b6001600160a01b03808216600090815260416020908152604080832081516101608101835281548616815260018201548616938101939093526002810154909416908201526003830154606082015260048301805492938493909160808401916200776c9062009d30565b80601f01602080910402602001604051908101604052809291908181526020018280546200779a9062009d30565b8015620077eb5780601f10620077bf57610100808354040283529160200191620077eb565b820191906000526020600020905b815481529060010190602001808311620077cd57829003601f168201915b5050505050815260200160058201604051806080016040529081600082018054620078169062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620078449062009d30565b8015620078955780601f10620078695761010080835404028352916020019162007895565b820191906000526020600020905b8154815290600101906020018083116200787757829003601f168201915b50505050508152602001600182018054620078b09062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620078de9062009d30565b80156200792f5780601f1062007903576101008083540402835291602001916200792f565b820191906000526020600020905b8154815290600101906020018083116200791157829003601f168201915b505050505081526020016002820180546200794a9062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620079789062009d30565b8015620079c95780601f106200799d57610100808354040283529160200191620079c9565b820191906000526020600020905b815481529060010190602001808311620079ab57829003601f168201915b50505050508152602001600382018054620079e49062009d30565b80601f016020809104026020016040519081016040528092919081815260200182805462007a129062009d30565b801562007a635780601f1062007a375761010080835404028352916020019162007a63565b820191906000526020600020905b81548152906001019060200180831162007a4557829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b81548152602001906001019080831162007aef5750505091909252505050604001519392505050565b600062007b27603f8462007ddd565b62007b455760405163056e881160e01b815260040160405180910390fd5b6001600160a01b038381166000908152604160205260409081902060020154905163aa1966cd60e01b81526004810185905291169063aa1966cd906024016200509c565b60005462010000900460ff161562007bb457604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161562007be65760405163b1d02c3d60e01b815260040160405180910390fd5b3362007bf4603f8262007ddd565b62007c125760405163056e881160e01b815260040160405180910390fd5b3362007c22818787878762008aeb565b62007c4057604051631647e3cb60e11b815260040160405180910390fd5b60006001600160a01b03166045878760405162007c5f92919062009d80565b908152604051908190036020019020546001600160a01b031614158062007ca957506048868660405162007c9592919062009d80565b9081526040519081900360200190205460ff165b1562007cc8576040516311fdb94760e01b815260040160405180910390fd5b6001600160a01b0381166000908152604160205260409020600c810154429062007cf790620151809062009dc9565b111562007d1757604051631f92cdbd60e11b815260040160405180910390fd5b4260468260040160405162007d2d91906200a5bc565b908152604051908190036020019020556004810162007d4e87898362009fde565b5042600c820155604051829060459062007d6c908a908a9062009d80565b90815260405190819003602001812080546001600160a01b039384166001600160a01b0319909116179055908316907f783156582145bd0ff7924fae6953ba054cf1233eb60739a200ddb10de068ff0d9062007dcc908a908a906200a2af565b60405180910390a250505050505050565b6001600160a01b03811660009081526001830160205260408120541515620050e0565b6000806000848460405160200162007e1a9291906200a63a565b60408051601f1981840301815291815281516020928301206000818152604c9093529120549091504281111562007e5a5760008093509350505062007e83565b603e5462007e69904262009dc9565b6000928352604c6020526040909220829055506001925090505b9250929050565b8154604051631507fdb760e11b81526001600160a01b03909116600482015261100090632a0ffb6e90602401600060405180830381600087803b15801562007ed157600080fd5b505af115801562007ee6573d6000803e3d6000fd5b505050506000600162007efa603f62008930565b62007f06919062009e85565b604954108015915062007fc45760405163d31f968d60e01b81526110006004820152600860248201526120009063d31f968d90604401602060405180830381865afa15801562007f5a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062007f80919062009e3e565b62007fc45760018301546040516001600160a01b03909116907f2afdc18061ac21cff7d9f11527ab9c8dec6fabd4edf6f894ed634bebd6a20d4590600090a2505050565b82600b015482111562007fd957600b83018290555b600a83015460ff166200804c57600a8301805460ff19166001908117909155604980546000906200800c90849062009dc9565b909155505060018301546040516001600160a01b03909116907f4905ac32602da3fb8b4b7b00c285e5fc4c6c2308cc908b4a1e4e9625a29c90a390600090a25b505050565b60408051608080820183526000808352602080840182905283850182905260608085018390528551938401865282845283820183905283860183905283018290528451808601865282815281018290528451808601909552855185528581019085015291928290620080c39062008fa6565b90506000805b620080d48362009019565b15620081a757806000036200810957620080f8620080f2846200903f565b620090a3565b6001600160a01b0316845262008194565b80600103620081355762008121620080f2846200903f565b6001600160a01b0316602085015262008194565b8060020362008161576200814d620080f2846200903f565b6001600160a01b0316604085015262008194565b806003036200818e576200817f62008179846200903f565b620090bb565b60608501526001915062008194565b620081a7565b6200819f8162009f1a565b9050620080c9565b5091959194509092505050565b6020808201516001600160a01b031660009081526001909152604081205460ff1680620081ec575060208201516001600160a01b0316155b15620081fa57506004919050565b81516200820a90603f9062007ddd565b6200821757506002919050565b81516001600160a01b03908116600090815260416020908152604080832081516101608101835281548616815260018201548616938101939093526002810154909416908201526003830154606082015260048301805492939192608084019190620082839062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620082b19062009d30565b8015620083025780601f10620082d65761010080835404028352916020019162008302565b820191906000526020600020905b815481529060010190602001808311620082e457829003601f168201915b50505050508152602001600582016040518060800160405290816000820180546200832d9062009d30565b80601f01602080910402602001604051908101604052809291908181526020018280546200835b9062009d30565b8015620083ac5780601f106200838057610100808354040283529160200191620083ac565b820191906000526020600020905b8154815290600101906020018083116200838e57829003601f168201915b50505050508152602001600182018054620083c79062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620083f59062009d30565b8015620084465780601f106200841a5761010080835404028352916020019162008446565b820191906000526020600020905b8154815290600101906020018083116200842857829003601f168201915b50505050508152602001600282018054620084619062009d30565b80601f01602080910402602001604051908101604052809291908181526020018280546200848f9062009d30565b8015620084e05780601f10620084b457610100808354040283529160200191620084e0565b820191906000526020600020905b815481529060010190602001808311620084c257829003601f168201915b50505050508152602001600382018054620084fb9062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620085299062009d30565b80156200857a5780601f106200854e576101008083540402835291602001916200857a565b820191906000526020600020905b8154815290600101906020018083116200855c57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b815481526020019060010190808311620086065750505050508152505090508060e00151801562008651575082600001516001600160a01b031683602001516001600160a01b031614155b15620086605750600392915050565b6040808201516060850151602086015192516317066a5760e21b81526001600160a01b03938416600482015260009390921691635c19a95c919060240160206040518083038185885af1158015620086bc573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190620086e3919062009ddf565b905083602001516001600160a01b031684600001516001600160a01b03166000805160206200b5b68339815191528387606001516040516200872f929190918252602082015260400190565b60405180910390a383602001516001600160a01b031684600001516001600160a01b03167f607b17598da6bdca05650a2fc08bd2bc8e38c3236806a0fa8e0daabc1d6cb1d883876060015160405162008792929190918252602082015260400190565b60405180910390a360408083015160208601519151633041949b60e01b815261200592633041949b92620087cc9290919060040162009d66565b600060405180830381600087803b158015620087e757600080fd5b505af1158015620087fc573d6000803e3d6000fd5b506000979650505050505050565b6001600160a01b0381166000908152604160205260409020600a81015460ff161562008834575050565b6036546002820154604051630913db4760e01b81526001600160a01b03858116600483015290911690630913db4790602401602060405180830381865afa15801562008884573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620088aa919062009ddf565b101562005ac957620088cc81603d5442620088c6919062009dc9565b62007e8a565b80546040516335409f7f60e01b81526001600160a01b039091166004820152611000906335409f7f90602401600060405180830381600087803b1580156200891357600080fd5b505af115801562008928573d6000803e3d6000fd5b505050505050565b6000620050e3825490565b6000620050e0838362009193565b60008082905060038151108062008961575060098151115b15620089705750600092915050565b60418160008151811062008988576200898862009eb5565b016020015160f81c1080620089ba5750605a81600081518110620089b057620089b062009eb5565b016020015160f81c115b15620089c95750600092915050565b60015b815181101562008ae1576030828281518110620089ed57620089ed62009eb5565b016020015160f81c108062008a1e5750603982828151811062008a145762008a1462009eb5565b016020015160f81c115b801562008a6e5750604182828151811062008a3d5762008a3d62009eb5565b016020015160f81c108062008a6e5750605a82828151811062008a645762008a6462009eb5565b016020015160f81c115b801562008abe5750606182828151811062008a8d5762008a8d62009eb5565b016020015160f81c108062008abe5750607a82828151811062008ab45762008ab462009eb5565b016020015160f81c115b1562008ace575060009392505050565b62008ad98162009f1a565b9050620089cc565b5060019392505050565b600060308414158062008aff575060608214155b1562008b0e5750600062008c12565b60008686864660405160200162008b2994939291906200a678565b60408051808303601f1901815282825280516020918201208184528383019092529092506000919060208201818036833701905050905081602082015260008186868a8a60405160200162008b839594939291906200a6a5565b60408051808303601f190181526001808452838301909252925060009190602082018180368337019050509050815160016020830182602086016066600019fa62008bcd57600080fd5b5060008160008151811062008be65762008be662009eb5565b016020015160f81c90506001811462008c085760009550505050505062008c12565b6001955050505050505b95945050505050565b60008061200361dead60405162008c32906200941e565b6001600160a01b03928316815291166020820152606060408201819052600090820152608001604051809103906000f08015801562008c75573d6000803e3d6000fd5b509050806001600160a01b031663f399e22e3486866040518463ffffffff1660e01b815260040162008ca99291906200a6dd565b6000604051808303818588803b15801562008cc357600080fd5b505af115801562008cd8573d6000803e3d6000fd5b50506040516001600160a01b038086169450881692507fd481492e4e93bb36b4c12a5af93f03be3bf04b454dfbc35dd2663fa26f44d5b09150600090a39392505050565b6000620050e0836001600160a01b038416620091c0565b600054610100900460ff1662008da05760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840162001134565b600080546001600160a01b039092166301000000026301000000600160b81b0319909216919091179055565b8162008dda603f8262007ddd565b62008df85760405163056e881160e01b815260040160405180910390fd5b6001600160a01b03838116600090815260416020526040808220600201549051635569f64b60e11b8152336004820152602481018690529192169063aad3ec96906044016020604051808303816000875af115801562008e5c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062008e82919062009ddf565b9050336001600160a01b0316846001600160a01b03167ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd39926838360405162008eca91815260200190565b60405180910390a350505050565b60008160405160200162008eed91906200a48c565b604051602081830303815290604052805190602001208360405160200162008f1691906200a48c565b6040516020818303038152906040528051906020012014905092915050565b015190565b600080546040516001600160a01b0380851693630100000090930416917f44fc1b38a4abaa91ebd1b628a5b259a698f86238c8217d68f516e87769c60c0b91a3600080546001600160a01b039092166301000000026301000000600160b81b0319909216919091179055565b604080516080810182526000918101828152606082018390528152602081019190915262008fd48262009212565b62008fde57600080fd5b600062008fef836020015162009245565b836020015162009000919062009dc9565b6040805180820190915293845260208401525090919050565b80518051602082015160009291620090319162009dc9565b836020015110915050919050565b60408051808201909152600080825260208201526200905e8262009019565b6200906857600080fd5b602082015160006200907a82620092d4565b905062009088818362009dc9565b60209485015260408051808201909152908152928301525090565b8051600090601514620090b557600080fd5b620050e3825b805160009015801590620090d157508151602110155b620090db57600080fd5b6000620090ec836020015162009245565b90508083600001511015620091445760405162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015260640162001134565b82516000906200915690839062009e85565b90506000808386602001516200916d919062009dc9565b90508051915060208310156200918a57826020036101000a820491505b50949350505050565b6000826000018281548110620091ad57620091ad62009eb5565b9060005260206000200154905092915050565b60008181526001830160205260408120546200920957508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155620050e3565b506000620050e3565b805160009081036200922657506000919050565b6020820151805160001a9060c082101562008ae1575060009392505050565b8051600090811a60808110156200925f5750600092915050565b60b88110806200927c575060c081108015906200927c575060f881105b156200928b5750600192915050565b60c0811015620092c657620092a3600160b86200a703565b620092b29060ff168262009e85565b620092bf90600162009dc9565b9392505050565b620092a3600160f86200a703565b80516000908190811a6080811015620092f1576001915062009417565b60b88110156200931d576200930860808262009e85565b6200931590600162009dc9565b915062009417565b60c08110156200939657600060b78203600186019550806020036101000a8651049150600181018201935050808310156200938f5760405162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015260640162001134565b5062009417565b60f8811015620093ad576200930860c08262009e85565b600060f78203600186019550806020036101000a865104915060018101820193505080831015620094155760405162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015260640162001134565b505b5092915050565b610e96806200a72083390190565b6001600160a01b03811681146200174c57600080fd5b6000602082840312156200945557600080fd5b8135620092bf816200942c565b60008083601f8401126200947557600080fd5b5081356001600160401b038111156200948d57600080fd5b60208301915083602082850101111562007e8357600080fd5b60008060208385031215620094ba57600080fd5b82356001600160401b03811115620094d157600080fd5b620094df8582860162009462565b90969095509350505050565b6000806000604084860312156200950157600080fd5b833560ff811681146200951357600080fd5b925060208401356001600160401b038111156200952f57600080fd5b6200953d8682870162009462565b9497909650939450505050565b60005b83811015620095675781810151838201526020016200954d565b50506000910152565b600081518084526200958a8160208601602086016200954a565b601f01601f19169290920160200192915050565b602081526000620050e0602083018462009570565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b0381118282101715620095ee57620095ee620095b3565b60405290565b604051601f8201601f191681016001600160401b03811182821017156200961f576200961f620095b3565b604052919050565b60006001600160401b03821115620096435762009643620095b3565b50601f01601f191660200190565b600062009668620096628462009627565b620095f4565b90508281528383830111156200967d57600080fd5b828260208301376000602084830101529392505050565b600060208284031215620096a757600080fd5b81356001600160401b03811115620096be57600080fd5b8201601f81018413620096d057600080fd5b620096e18482356020840162009651565b949350505050565b60008060408385031215620096fd57600080fd5b82356200970a816200942c565b946020939093013593505050565b80151581146200174c57600080fd5b600080600080608085870312156200973e57600080fd5b84356200974b816200942c565b935060208501356200975d816200942c565b9250604085013591506060850135620097768162009718565b939692955090935050565b6001600160401b03811681146200174c57600080fd5b600060208284031215620097aa57600080fd5b8135620092bf8162009781565b60008060408385031215620097cb57600080fd5b50508035926020909101359150565b600081518084526020808501945080840160005b83811015620098155781516001600160a01b031687529582019590820190600101620097ee565b509495945050505050565b608081526000620098356080830187620097da565b82810360208481019190915286518083528782019282019060005b818110156200986e5784518352938301939183019160010162009850565b5050848103604086015286518082528282019350600581901b8201830183890160005b83811015620098c357601f19858403018752620098b083835162009570565b9686019692509085019060010162009891565b5050809550505050505082606083015295945050505050565b600080600080600080600087890360e0811215620098f957600080fd5b883562009906816200942c565b975060208901356001600160401b03808211156200992357600080fd5b620099318c838d0162009462565b909950975060408b01359150808211156200994b57600080fd5b620099598c838d0162009462565b90975095508591506060605f19840112156200997457600080fd5b60608b01945060c08b01359250808311156200998f57600080fd5b505088016080818b031215620099a457600080fd5b8091505092959891949750929550565b60008060408385031215620099c857600080fd5b8235620099d5816200942c565b91506020830135620099e78162009718565b809150509250929050565b60208152600082516080602084015262009a1060a084018262009570565b90506020840151601f198085840301604086015262009a30838362009570565b9250604086015191508085840301606086015262009a4f838362009570565b925060608601519150808584030160808601525062008c12828262009570565b6000806000806040858703121562009a8657600080fd5b84356001600160401b038082111562009a9e57600080fd5b62009aac8883890162009462565b9096509450602087013591508082111562009ac657600080fd5b5062009ad58782880162009462565b95989497509550505050565b60008083601f84011262009af457600080fd5b5081356001600160401b0381111562009b0c57600080fd5b6020830191508360208260051b850101111562007e8357600080fd5b60008060006040848603121562009b3e57600080fd5b83356001600160401b0381111562009b5557600080fd5b62009b638682870162009ae1565b909450925050602084013562009b79816200942c565b809150509250925092565b60608152600062009b996060830186620097da565b828103602084015262009bad8186620097da565b915050826040830152949350505050565b600082601f83011262009bd057600080fd5b620050e08383356020850162009651565b60006020828403121562009bf457600080fd5b81356001600160401b038082111562009c0c57600080fd5b908301906080828603121562009c2157600080fd5b62009c2b620095c9565b82358281111562009c3b57600080fd5b62009c498782860162009bbe565b82525060208301358281111562009c5f57600080fd5b62009c6d8782860162009bbe565b60208301525060408301358281111562009c8657600080fd5b62009c948782860162009bbe565b60408301525060608301358281111562009cad57600080fd5b62009cbb8782860162009bbe565b60608301525095945050505050565b6000806000806040858703121562009ce157600080fd5b84356001600160401b038082111562009cf957600080fd5b62009d078883890162009ae1565b9096509450602087013591508082111562009d2157600080fd5b5062009ad58782880162009ae1565b600181811c9082168062009d4557607f821691505b6020821081036200462657634e487b7160e01b600052602260045260246000fd5b6001600160a01b0392831681529116602082015260400190565b8183823760009101908152919050565b634e487b7160e01b600052601160045260246000fd5b60008262009dc457634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115620050e357620050e362009d90565b60006020828403121562009df257600080fd5b5051919050565b634e487b7160e01b600052602160045260246000fd5b83815260208101839052606081016003831062009e305762009e3062009df9565b826040830152949350505050565b60006020828403121562009e5157600080fd5b8151620092bf8162009718565b828152604081016005831062009e785762009e7862009df9565b8260208301529392505050565b81810381811115620050e357620050e362009d90565b8082028115828204841417620050e357620050e362009d90565b634e487b7160e01b600052603260045260246000fd5b60408152600062009ee06040830185620097da565b905060018060a01b03831660208301529392505050565b6001600160401b0382811682821603908082111562009417576200941762009d90565b60006001820162009f2f5762009f2f62009d90565b5060010190565b6000808335601e1984360301811262009f4e57600080fd5b8301803591506001600160401b0382111562009f6957600080fd5b60200191503681900382131562007e8357600080fd5b601f8211156200804c57600081815260208120601f850160051c8101602086101562009fa85750805b601f850160051c820191505b81811015620089285782815560010162009fb4565b600019600383901b1c191660019190911b1790565b6001600160401b0383111562009ff85762009ff8620095b3565b6200a010836200a009835462009d30565b8362009f7f565b6000601f8411600181146200a04357600085156200a02e5750838201355b6200a03a868262009fc9565b845550620076fa565b600083815260209020601f19861690835b828110156200a07657868501358255602094850194600190920191016200a054565b50868210156200a0945760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b6200a0b2828362009f36565b6001600160401b038111156200a0cc576200a0cc620095b3565b6200a0e4816200a0dd855462009d30565b8562009f7f565b6000601f8211600181146200a11757600083156200a1025750838201355b6200a10e848262009fc9565b8655506200a174565b600085815260209020601f19841690835b828110156200a14a57868501358255602094850194600190920191016200a128565b50848210156200a1685760001960f88660031b161c19848701351681555b505060018360011b0185555b505050506200a187602083018362009f36565b6200a19781836001860162009fde565b50506200a1a8604083018362009f36565b6200a1b881836002860162009fde565b50506200a1c9606083018362009f36565b6200a1d981836003860162009fde565b50505050565b81356200a1ec8162009781565b6001600160401b03811690508154816001600160401b0319821617835560208401356200a2198162009781565b6fffffffffffffffff0000000000000000604091821b166fffffffffffffffffffffffffffffffff198316841781178555908501356200a2598162009781565b6001600160c01b0319929092169092179190911760809190911b67ffffffffffffffff60801b1617905550565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b602081526000620096e16020830184866200a286565b60006001600160401b038211156200a2e1576200a2e1620095b3565b5060051b60200190565b600060208083850312156200a2ff57600080fd5b82516001600160401b038111156200a31657600080fd5b8301601f810185136200a32857600080fd5b80516200a33962009662826200a2c5565b81815260059190911b820183019083810190878311156200a35957600080fd5b928401925b828410156200a3845783516200a374816200942c565b825292840192908401906200a35e565b979650505050505050565b600060208083850312156200a3a357600080fd5b82516001600160401b03808211156200a3bb57600080fd5b818501915085601f8301126200a3d057600080fd5b81516200a3e162009662826200a2c5565b81815260059190911b830184019084810190888311156200a40157600080fd5b8585015b838110156200a47f578051858111156200a41f5760008081fd5b8601603f81018b136200a4325760008081fd5b8781015160406200a447620096628362009627565b8281528d828486010111156200a45d5760008081fd5b6200a46e838c83018487016200954a565b86525050509186019186016200a405565b5098975050505050505050565b600082516200a4a08184602087016200954a565b9190910192915050565b60ff8416815260406020820152600062008c126040830184866200a286565b6040815260006200a4df6040830186886200a286565b82810360208401526200a3848185876200a286565b81516001600160401b038111156200a510576200a510620095b3565b6200a528816200a521845462009d30565b8462009f7f565b602080601f8311600181146200a55c57600084156200a5475750858301515b6200a553858262009fc9565b86555062008928565b600085815260208120601f198616915b828110156200a58d578886015182559484019460019091019084016200a56c565b50858210156200a5ac5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60008083546200a5cc8162009d30565b600182811680156200a5e757600181146200a5fd576200a62e565b60ff19841687528215158302870194506200a62e565b8760005260208060002060005b858110156200a6255781548a8201529084019082016200a60a565b50505082870194505b50929695505050505050565b6bffffffffffffffffffffffff198360601b1681526000600383106200a664576200a66462009df9565b5060f89190911b6014820152601501919050565b6bffffffffffffffffffffffff198560601b16815282846014830137601492019182015260340192915050565b600086516200a6b9818460208b016200954a565b82018587823760009086019081528385823760009301928352509095945050505050565b6001600160a01b0383168152604060208201819052600090620096e19083018462009570565b60ff8281168282160390811115620050e357620050e362009d9056fe608060405260405162000e9638038062000e96833981016040819052620000269162000497565b828162000036828260006200004d565b50620000449050826200008a565b505050620005ca565b6200005883620000e5565b600082511180620000665750805b1562000085576200008383836200012760201b620001691760201c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000b562000156565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000e2816200018f565b50565b620000f08162000244565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200014f838360405180606001604052806027815260200162000e6f60279139620002f8565b9392505050565b60006200018060008051602062000e4f83398151915260001b6200037760201b620001951760201c565b546001600160a01b0316919050565b6001600160a01b038116620001fa5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b806200022360008051602062000e4f83398151915260001b6200037760201b620001951760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b6200025a816200037a60201b620001981760201c565b620002be5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001f1565b80620002237f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6200037760201b620001951760201c565b6060600080856001600160a01b03168560405162000317919062000577565b600060405180830381855af49150503d806000811462000354576040519150601f19603f3d011682016040523d82523d6000602084013e62000359565b606091505b5090925090506200036d8683838762000389565b9695505050505050565b90565b6001600160a01b03163b151590565b60608315620003fd578251600003620003f5576001600160a01b0385163b620003f55760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401620001f1565b508162000409565b62000409838362000411565b949350505050565b815115620004225781518083602001fd5b8060405162461bcd60e51b8152600401620001f1919062000595565b80516001600160a01b03811681146200045657600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200048e57818101518382015260200162000474565b50506000910152565b600080600060608486031215620004ad57600080fd5b620004b8846200043e565b9250620004c8602085016200043e565b60408501519092506001600160401b0380821115620004e657600080fd5b818601915086601f830112620004fb57600080fd5b8151818111156200051057620005106200045b565b604051601f8201601f19908116603f011681019083821181831017156200053b576200053b6200045b565b816040528281528960208487010111156200055557600080fd5b6200056883602083016020880162000471565b80955050505050509250925092565b600082516200058b81846020870162000471565b9190910192915050565b6020815260008251806020840152620005b681604085016020870162000471565b601f01601f19169190910160400192915050565b61087580620005da6000396000f3fe60806040523661001357610011610017565b005b6100115b61001f6101a7565b6001600160a01b0316330361015f5760606001600160e01b0319600035166364d3180d60e11b810161005a576100536101da565b9150610157565b63587086bd60e11b6001600160e01b031982160161007a57610053610231565b63070d7c6960e41b6001600160e01b031982160161009a57610053610277565b621eb96f60e61b6001600160e01b03198216016100b9576100536102a8565b63a39f25e560e01b6001600160e01b03198216016100d9576100536102e8565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b6101676102fc565b565b606061018e83836040518060600160405280602781526020016108426027913961030c565b9392505050565b90565b6001600160a01b03163b151590565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101e4610384565b60006101f33660048184610695565b81019061020091906106db565b905061021d8160405180602001604052806000815250600061038f565b505060408051602081019091526000815290565b60606000806102433660048184610695565b810190610250919061070c565b915091506102608282600161038f565b604051806020016040528060008152509250505090565b6060610281610384565b60006102903660048184610695565b81019061029d91906106db565b905061021d816103bb565b60606102b2610384565b60006102bc6101a7565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b60606102f2610384565b60006102bc610412565b610167610307610412565b610421565b6060600080856001600160a01b03168560405161032991906107f2565b600060405180830381855af49150503d8060008114610364576040519150601f19603f3d011682016040523d82523d6000602084013e610369565b606091505b509150915061037a86838387610445565b9695505050505050565b341561016757600080fd5b610398836104c6565b6000825111806103a55750805b156103b6576103b48383610169565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103e46101a7565b604080516001600160a01b03928316815291841660208301520160405180910390a161040f81610506565b50565b600061041c6105af565b905090565b3660008037600080366000845af43d6000803e808015610440573d6000f35b3d6000fd5b606083156104b45782516000036104ad576001600160a01b0385163b6104ad5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161014e565b50816104be565b6104be83836105d7565b949350505050565b6104cf81610601565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6001600160a01b03811661056b5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161014e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101cb565b8151156105e75781518083602001fd5b8060405162461bcd60e51b815260040161014e919061080e565b6001600160a01b0381163b61066e5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161014e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61058e565b600080858511156106a557600080fd5b838611156106b257600080fd5b5050820193919092039150565b80356001600160a01b03811681146106d657600080fd5b919050565b6000602082840312156106ed57600080fd5b61018e826106bf565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561071f57600080fd5b610728836106bf565b9150602083013567ffffffffffffffff8082111561074557600080fd5b818501915085601f83011261075957600080fd5b81358181111561076b5761076b6106f6565b604051601f8201601f19908116603f01168101908382118183101715610793576107936106f6565b816040528281528860208487010111156107ac57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b838110156107e95781810151838201526020016107d1565b50506000910152565b600082516108048184602087016107ce565b9190910192915050565b602081526000825180602084015261082d8160408501602087016107ce565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a164736f6c6343000811000ab53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c656424d7bda8602b916d64417f0dbfe2e2e88ec9b1157bd9f596dfdb91ba26624e0400000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000038000000000000000000000000295e26495cef6f69dfa69911d9d8e4f3bbadb89b00000000000000000000000072b61c6014342d914470ec7ac2975be345796c2b0000000000000000000000002465176c461afb316ebc773c61faee85a6515daa0000000000000000000000007ae2f5b9e386cd1b50a4550696d957cb4900f03a000000000000000000000000b4dd66d7c2c7e57f628210187192fb89d4b99dd4000000000000000000000000e9ae3261a475a27bb1028f140bc2a7c843318afd000000000000000000000000ee226379db83cffc681495730c11fdde79ba4c0c0000000000000000000000003f349bbafec1551819b8be1efea2fc46ca749aa10000000000000000000000008b6c8fd93d6f4cea42bbb345dbc6f0dfdb5bec73000000000000000000000000ef0274e31810c9df02f98fafde0f841f4e66a1cd000000000000000000000000a6f79b60359f141df90a0c745125b131caaffd12000000000000000000000000e2d3a739effcd3a99387d015e260eefac72ebea100000000000000000000000061dd481a114a2e761c554b641742c973867899d3000000000000000000000000cc8e6d00c17eb431350c6c50d8b8f05176b90b11000000000000000000000000ea0a6e3c511bbd10f4519ece37dc24887e11b55d0000000000000000000000002d4c407bbe49438ed859fe965b140dcf1aab71a9000000000000000000000000685b1ded8013785d6623cc18d214320b6bb64759000000000000000000000000d1d6bf74282782b0b3eb1413c901d6ecf02e8e2800000000000000000000000070f657164e5b75689b64b7fd1fa275f334f28e18000000000000000000000000be807dddb074639cd9fa61b47676c064fc50d62c000000000000000000000000b218c5d6af1f979ac42bc68d98a5a0d796c6ab010000000000000000000000009f8ccdafcc39f3c7d6ebf637c9151673cbc36b88000000000000000000000000d93dbfb27e027f5e9e6da52b9e1c413ce35adc11000000000000000000000000ce2fd7544e0b2cc94692d4a704debef7bcb613280000000000000000000000000bac492386862ad3df4b666bc096b0505bb694da000000000000000000000000733fda7714a05960b7536330be4dbb135bef0ed600000000000000000000000035ebb5849518aff370ca25e19e1072cc1a9fabca000000000000000000000000ebe0b55ad7bb78309180cada12427d120fdbcc3a0000000000000000000000006488aa4d1955ee33403f8ccb1d4de5fb97c7ade20000000000000000000000004396e28197653d0c244d95f8c1e57da902a72b4e000000000000000000000000702be18040aa2a9b1af9219941469f1a435854fc00000000000000000000000012d810c13e42811e9907c02e02d1fad46cfa18ba0000000000000000000000002a7cdd959bfe8d9487b2a43b33565295a698f7e2000000000000000000000000b8f7166496996a7da21cf1f1b04d9b3e26a3d0770000000000000000000000009bb832254baf4e8b4cc26bd2b52b31389b56e98b0000000000000000000000004430b3230294d12c6ab2aac5c2cd68e80b16b581000000000000000000000000c2be4ec20253b8642161bc3f444f53679c1f3d47000000000000000000000000ee01c3b1283aa067c58eab4709f85e99d46de5fe0000000000000000000000009ef9f4360c606c7ab4db26b016007d3ad0ab86a00000000000000000000000002f7be8361c80a4c1e7e9aaf001d0877f1cfde21800000000000000000000000035e7a025f4da968de7e4d7e4004197917f4070f1000000000000000000000000d6caa02bbebaebb5d7e581e4b66559e635f805ff0000000000000000000000008c4d90829ce8f72d0163c1d5cf348a862d55063000000000000000000000000068bf0b8b6fb4e317a0f9d6f03eaf8ce6675bc60d00000000000000000000000082012708dafc9e1b880fd083b32182b869be8e090000000000000000000000006bbad7cf34b5fa511d8e963dbba288b1960e75d600000000000000000000000022b81f8e175ffde54d797fe11eb03f9e3bf75f1d00000000000000000000000078f3adfc719c99674c072166708589033e2d9afe00000000000000000000000029a97c6effb8a411dabc6adeefaa84f5067c8bbe000000000000000000000000aacf6a8119f7e11623b5a43da638e91f669a130f0000000000000000000000002b3a6c089311b478bf629c29d790a7a6db3fc1b9000000000000000000000000fe6e72b223f6d6cf4edc6bff92f30e84b8258249000000000000000000000000a6503279e8b5c7bb5cf4defd3ec8abf3e009a80b0000000000000000000000004ee63a09170c3f2207aeca56134fc2bee1b28e3c000000000000000000000000ac0e15a038eedfc68ba3c35c73fed5be4a07afb500000000000000000000000069c77a677c40c7fbea129d4b171a39b7a8ddabfa00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000044000000000000000000000000000000000000000000000000000000000000004a00000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000056000000000000000000000000000000000000000000000000000000000000005c00000000000000000000000000000000000000000000000000000000000000620000000000000000000000000000000000000000000000000000000000000068000000000000000000000000000000000000000000000000000000000000006e0000000000000000000000000000000000000000000000000000000000000074000000000000000000000000000000000000000000000000000000000000007a00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000086000000000000000000000000000000000000000000000000000000000000008c00000000000000000000000000000000000000000000000000000000000000920000000000000000000000000000000000000000000000000000000000000098000000000000000000000000000000000000000000000000000000000000009e00000000000000000000000000000000000000000000000000000000000000a400000000000000000000000000000000000000000000000000000000000000aa00000000000000000000000000000000000000000000000000000000000000b000000000000000000000000000000000000000000000000000000000000000b600000000000000000000000000000000000000000000000000000000000000bc00000000000000000000000000000000000000000000000000000000000000c200000000000000000000000000000000000000000000000000000000000000c800000000000000000000000000000000000000000000000000000000000000ce00000000000000000000000000000000000000000000000000000000000000d400000000000000000000000000000000000000000000000000000000000000da00000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000e600000000000000000000000000000000000000000000000000000000000000ec00000000000000000000000000000000000000000000000000000000000000f200000000000000000000000000000000000000000000000000000000000000f800000000000000000000000000000000000000000000000000000000000000fe0000000000000000000000000000000000000000000000000000000000000104000000000000000000000000000000000000000000000000000000000000010a00000000000000000000000000000000000000000000000000000000000000030977cf58294f7239d515e15b24cfeb82494056cf691eaf729b165f32c9757c429dba5051155903067e56ebe3698678e9100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003081db0422a5fd08e40db1fc2368d2245e4b18b1d0b85c921aaaafd2e341760e29fc613edd39f71254614e2055c3287a510000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000308a923564c6ffd37fb2fe9f118ef88092e8762c7addb526ab7eb1e772baef85181f892c731be0c1891a50e6b06262c816000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b84f83ff2df44193496793b847f64e9d6db1b3953682bb95edd096eb1e69bbd357c200992ca78050d0cbe180cfaa018e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b0de8472be0308918c8bdb369bf5a67525210daffa053c52224c1d2ef4f5b38e4ecfcd06a1cc51c39c3a7dccfcb6b507000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030ae7bc6faa3f0cc3e6093b633fd7ee4f86970926958d0b7ec80437f936acf212b78f0cd095f4565fff144fd458d233a5b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003084248a459464eec1a21e7fc7b71a053d9644e9bb8da4853b8f872cd7c1d6b324bf1922829830646ceadfb658d3de009a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030a8a257074e82b881cfa06ef3eb4efeca060c2531359abd0eab8af1e3edfa2025fca464ac9c3fd123f6c24a0d7886948500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003098cbf822e4bc29f1701ac0350a3d042cd0756e9f74822c6481773ceb000641c51b870a996fe0f6a844510b1061f38cd0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b772e180fbf38a051c97dabc8aaa0126a233a9e828cdafcc7422c4bb1f4030a56ba364c54103f26bad91508b5220b741000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030956c470ddff48cb49300200b5f83497f3a3ccb3aeb83c5edd9818569038e61d197184f4aa6939ea5e9911e3e98ac6d210000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000308a80967d39e406a0a9642d41e9007a27fc1150a267d143a9f786cd2b5eecbdcc4036273705225b956d5e2f8f5eb95d25000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b3a3d4feb825ae9702711566df5dbf38e82add4dd1b573b95d2466fa6501ccb81e9d26a352b96150ccbf7b697fd0a419000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b2d4c6283c44a1c7bd503aaba7666e9f0c830e0ff016c1c750a5e48757a713d0836b1cabfd5c281b1de3b77d1c19218300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003093c1f7f6929d1fe2a17b4e14614ef9fc5bdc713d6631d675403fbeefac55611bf612700b1b65f4744861b80b0f7d6ab00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000308a60f82a7bcf74b4cb053b9bfe83d0ed02a84ebb10865dfdd8e26e7535c43a1cccd268e860f502216b379dfc9971d358000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030939e8fb41b682372335be8070199ad3e8621d1743bcac4cc9d8f0f6e10f41e56461385c8eb5daac804fe3f2bca6ce73900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003096a26afa1295da81418593bd12814463d9f6e45c36a0e47eb4cd3e5b6af29c41e2a3a5636430155a466e216585af3ba7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b1f2c71577def3144fabeb75a8a1c8cb5b51d1d1b4a05eec67988b8685008baa17459ec425dbaebc852f496dc92196cd000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b659ad0fbd9f515893fdd740b29ba0772dbde9b4635921dd91bd2963a0fc855e31f6338f45b211c4e9dedb7f2eb09de70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000308819ec5ec3e97e1f03bbb4bb6055c7a5feac8f4f259df58349a32bb5cb377e2cb1f362b77f1dd398cfd3e9dba46138c3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b313f9cba57c63a84edb4079140e6dbd7829e5023c9532fce57e9fe602400a2953f4bf7dab66cca16e97be95d4de7044000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b64abe25614c9cfd32e456b4d521f29c8357f4af4606978296c9be93494072ac05fa86e3d27cc8d66e65000f8ba33fbb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b0bec348681af766751cb839576e9c515a09c8bffa30a46296ccc56612490eb480d03bf948e10005bbcc0421f90b3d4e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b0245c33bc556cfeb013cd3643b30dbdef6df61a0be3ba00cae104b3c587083852e28f8911689c7033f7021a8a1774c9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030a7f3e2c0b4b16ad183c473bafe30a36e39fa4a143657e229cd23c77f8fbc8e4e4e241695dd3d248d1e51521eee6619140000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000308fdf49777b22f927d460fa3fcdd7f2ba0cf200634a3dfb5197d7359f2f88aaf496ef8c93a065de0f376d164ff2b6db9a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000308ab17a9148339ef40aed8c177379c4db0bb5efc6f5c57a5d1a6b58b84d4b562e227196c79bda9a136830ed0c09f378130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000308dd20979bd63c14df617a6939c3a334798149151577dd3f1fadb2bd1c1b496bf84c25c879da5f0f9dfdb88c6dd17b1e6000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b679cbab0276ac30ff5f198e5e1dedf6b84959129f70fe7a07fcdf13444ba45b5dbaa7b1f650adf8b0acbecd04e2675b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000308974616fe8ab950a3cded19b1d16ff49c97bf5af65154b3b097d5523eb213f3d35fc5c57e7276c7f2d83be87ebfdcdf9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030ab764a39ff81dad720d5691b852898041a3842e09ecbac8025812d51b32223d8420e6ae51a01582220a10f7722de67c10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000309025b6715c8eaabac0bfccdb2f25d651c9b69b0a184011a4a486b0b2080319d2396e7ca337f2abdf01548b2de1b3ba06000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b2317f59d86abfaf690850223d90e9e7593d91a29331dfc2f84d5adecc75fc39ecab4632c1b4400a3dd1e1298835bcca00000000000000000000000000000000a164736f6c6343000811000a", - }, - { - ContractAddr: StakeCreditContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/2dbebb57a0d436d6a30b78c1f123395035249035", - Code: "6080604052600436106101e75760003560e01c8063647df75911610102578063a9664feb11610095578063d241c1ea11610064578063d241c1ea1461068d578063dd62ed3e146106cf578063f1fad104146106ef578063f399e22e1461070457600080fd5b8063a9664feb14610600578063aa1966cd14610620578063aad3ec961461064d578063c2cde2b21461066d57600080fd5b806395d89b41116100d157806395d89b411461058b578063a457c2d7146105a0578063a5d059ca146105c0578063a9059cbb146105e057600080fd5b8063647df759146104e85780636bbf22491461050857806370a082311461053557806391faf0b41461056b57600080fd5b8063313ce5671161017a5780634bf6c882116101495780634bf6c8821461048b5780634d99dd16146104a05780635c19a95c146104c05780635e607d76146104d357600080fd5b8063313ce567146103f157806339509351146104135780633a5381b51461043357806345bc4d101461046b57600080fd5b806315d1f898116101b657806315d1f8981461038657806318160ddd1461039c57806323b872dd146103b15780632f2d448a146103d157600080fd5b8063038c0023146102e157806306fdde03146103145780630913db4714610336578063095ea7b31461035657600080fd5b366102dc57336120021461021757604051630f22c43960e41b815261200260048201526024015b60405180910390fd5b60006120026001600160a01b0316631fa8882b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610259573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061027d9190611de4565b6102879042611e13565b6098546000828152609d6020908152604080832093909355609c9052908120805492935034929091906102bb908490611e35565b9250508190555034609860008282546102d49190611e35565b925050819055005b600080fd5b3480156102ed57600080fd5b506103016102fc366004611e60565b610717565b6040519081526020015b60405180910390f35b34801561032057600080fd5b50610329610747565b60405161030b9190611e84565b34801561034257600080fd5b50610301610351366004611e60565b6107d9565b34801561036257600080fd5b50610376610371366004611ed2565b6107fb565b604051901515815260200161030b565b34801561039257600080fd5b5061030160985481565b3480156103a857600080fd5b50606754610301565b3480156103bd57600080fd5b506103766103cc366004611efe565b610813565b3480156103dd57600080fd5b506103016103ec366004611e60565b610837565b3480156103fd57600080fd5b5060125b60405160ff909116815260200161030b565b34801561041f57600080fd5b5061037661042e366004611ed2565b6108fc565b34801561043f57600080fd5b50609754610453906001600160a01b031681565b6040516001600160a01b03909116815260200161030b565b34801561047757600080fd5b50610301610486366004611f3f565b61091e565b34801561049757600080fd5b50610401600881565b3480156104ac57600080fd5b506103016104bb366004611ed2565b610a11565b6103016104ce366004611e60565b610c28565b6104e66104e1366004611f58565b610c9e565b005b3480156104f457600080fd5b50610301610503366004611f3f565b610e11565b34801561051457600080fd5b50610301610523366004611f3f565b609d6020526000908152604090205481565b34801561054157600080fd5b50610301610550366004611e60565b6001600160a01b031660009081526065602052604090205490565b34801561057757600080fd5b50610301610586366004611f3f565b610e50565b34801561059757600080fd5b50610329610e8b565b3480156105ac57600080fd5b506103766105bb366004611ed2565b610e9a565b3480156105cc57600080fd5b506103016105db366004611ed2565b610f15565b3480156105ec57600080fd5b506103766105fb366004611ed2565b611016565b34801561060c57600080fd5b5061030161061b366004611ed2565b611024565b34801561062c57600080fd5b5061030161063b366004611f3f565b609c6020526000908152604090205481565b34801561065957600080fd5b50610301610668366004611ed2565b61114d565b34801561067957600080fd5b50610301610688366004611e60565b6113f0565b34801561069957600080fd5b506106ad6106a8366004611ed2565b61140e565b604080518251815260208084015190820152918101519082015260600161030b565b3480156106db57600080fd5b506103016106ea366004611f82565b611491565b3480156106fb57600080fd5b50610401601181565b6104e6610712366004611fbb565b6114bc565b6001600160a01b0381166000908152609a6020526040812054600f81810b600160801b909204900b035b92915050565b60606068805461075690612040565b80601f016020809104026020016040519081016040528092919081815260200182805461078290612040565b80156107cf5780601f106107a4576101008083540402835291602001916107cf565b820191906000526020600020905b8154815290600101906020018083116107b257829003601f168201915b5050505050905090565b6001600160a01b03811660009081526065602052604081205461074190610e50565b600033610809818585611672565b5060019392505050565b60003361082185828561168b565b61082c8585856116ff565b506001949350505050565b6001600160a01b0381166000908152609a6020526040812054600f81810b600160801b909204900b0381805b828110156108f4576001600160a01b0385166000908152609a6020526040812061088d9083611718565b6000818152609960209081526040918290208251606081018452815481526001820154928101929092526002015491810182905291925042106108da576108d384612074565b93506108e1565b50506108f4565b5050806108ed90612074565b9050610863565b509392505050565b60003361080981858561090f8383611491565b6109199190611e35565b611672565b6000336120021461094657604051630f22c43960e41b8152612002600482015260240161020e565b6097546001600160a01b03166000908152606560205260408120549061096b84610e11565b905081811161097a578061097c565b815b609754909150600090610998906001600160a01b031683611789565b6040519091506000906110029083908381818185875af1925050503d80600081146109df576040519150601f19603f3d011682016040523d82523d6000602084013e6109e4565b606091505b5050905080610a06576040516312171d8360e31b815260040160405180910390fd5b50925050505b919050565b60003361200214610a3957604051630f22c43960e41b8152612002600482015260240161020e565b81600003610a5a57604051639811e0c760e01b815260040160405180910390fd5b6001600160a01b038316600090815260656020526040902054821115610a9357604051631e9acf1760e31b815260040160405180910390fd5b610a9d8383611789565b905060006120026001600160a01b031663fc0c5ff16040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ae1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b059190611de4565b610b0f9042611e35565b6040805160608101825285815260208101859052908101829052909150600085610b38816117be565b60405160609290921b6bffffffffffffffffffffffff19166020830152603482015260540160408051601f1981840301815291815281516020928301206000818152609990935291205490915015610ba35760405163b19e911560e01b815260040160405180910390fd5b600081815260996020908152604080832085518155828601516001820155818601516002909101556001600160a01b0389168352609a9091529020610c1f90828154600160801b90819004600f0b6000818152600180860160205260409091209390935583546001600160801b03908116939091011602179055565b50505092915050565b60003361200214610c5057604051630f22c43960e41b8152612002600482015260240161020e565b34600003610c7157604051631f2a200560e01b815260040160405180910390fd5b610c7b82346117e6565b905080600003610a0c57604051639811e0c760e01b815260040160405180910390fd5b3361200214610cc457604051630f22c43960e41b8152612002600482015260240161020e565b346000612710610cde67ffffffffffffffff85168461208d565b610ce89190611e13565b90506000610cf682846120a4565b905060006120026001600160a01b0316631fa8882b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d5e9190611de4565b610d689042611e13565b6098546000828152609d6020908152604080832093909355609c905290812080549293508492909190610d9c908490611e35565b925050819055508160986000828254610db59190611e35565b9091555050609754610dd0906001600160a01b0316846117e6565b5060408051838152602081018590527ffb0e1482d62102ab9594f69d4c6d693749e3e2bf1c21af272f5456b2d5a4f6b5910160405180910390a15050505050565b6000609854600003610e36576040516307b76ce760e51b815260040160405180910390fd5b609854606754610e46908461208d565b6107419190611e13565b6000610e5b60675490565b600003610e7b57604051632fe8dae960e01b815260040160405180910390fd5b606754609854610e46908461208d565b60606069805461075690612040565b60003381610ea88286611491565b905083811015610f085760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161020e565b61082c8286868403611672565b60003361200214610f3d57604051630f22c43960e41b8152612002600482015260240161020e565b81600003610f5e57604051639811e0c760e01b815260040160405180910390fd5b6001600160a01b038316600090815260656020526040902054821115610f9757604051631e9acf1760e31b815260040160405180910390fd5b610fa18383611789565b6040519091506000906120029083908381818185875af1925050503d8060008114610fe8576040519150601f19603f3d011682016040523d82523d6000602084013e610fed565b606091505b505090508061100f576040516312171d8360e31b815260040160405180910390fd5b5092915050565b6000336108098185856116ff565b6001600160a01b0382166000908152609a6020526040812054600f81810b600160801b909204900b0360000361105c57506000610741565b81158061109057506001600160a01b0383166000908152609a6020526040902054600f81810b600160801b909204900b0382115b61109a57816110c4565b6001600160a01b0383166000908152609a6020526040902054600f81810b600160801b909204900b035b91506000805b838110156108f4576001600160a01b0385166000908152609a602052604081206110f49083611718565b600081815260996020908152604091829020825160608101845281548152600182015492810183905260029091015492810192909252919250906111389085611e35565b935050508061114690612074565b90506110ca565b6000336120021461117557604051630f22c43960e41b8152612002600482015260240161020e565b61117d61180f565b6001600160a01b0383166000908152609a6020526040902054600f81810b600160801b909204900b036000036111c65760405163ad41893760e01b815260040160405180910390fd5b8115806111fa57506001600160a01b0383166000908152609a6020526040902054600f81810b600160801b909204900b0382115b611204578161122e565b6001600160a01b0383166000908152609a6020526040902054600f81810b600160801b909204900b035b915060005b82156112e4576001600160a01b0384166000908152609a6020526040812061125a90611868565b6000818152609960209081526040918290208251606081018452815481526001820154928101929092526002015491810182905291925042101561129f5750506112e4565b6001600160a01b0386166000908152609a602052604090206112c0906118bc565b5060208101516112d09084611e35565b92506112db856120b7565b94505050611233565b80600003611305576040516303cd8e0960e21b815260040160405180910390fd5b60006120026001600160a01b031663e8f67c3b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611347573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061136b9190611de4565b90506000856001600160a01b03168284604051600060405180830381858888f193505050503d80600081146113bc576040519150601f19603f3d011682016040523d82523d6000602084013e6113c1565b606091505b50509050806113e3576040516312171d8360e31b815260040160405180910390fd5b5050600180559050610741565b6001600160a01b0381166000908152609b6020526040812054610741565b61143260405180606001604052806000815260200160008152602001600081525090565b6001600160a01b0383166000908152609a602052604081206114549084611718565b6000908152609960209081526040918290208251606081018452815481526001820154928101929092526002015491810191909152949350505050565b6001600160a01b03918216600090815260666020908152604080832093909416825291909152205490565b600054610100900460ff16158080156114dc5750600054600160ff909116105b806114f65750303b1580156114f6575060005460ff166001145b6115595760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161020e565b6000805460ff19166001179055801561157c576000805461ff0019166101001790555b33612002146115a257604051630f22c43960e41b8152612002600482015260240161020e565b600083836040516020016115b79291906120ce565b6040516020818303038152906040529050600084846040516020016115dd9291906120fe565b60405160208183030381529060405290506115f88282611941565b611600611986565b609780546001600160a01b0319166001600160a01b038816179055611624346119ad565b5050801561166c576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b604051632028747160e01b815260040160405180910390fd5b60006116978484611491565b9050600019811461166c57818110156116f25760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161020e565b61166c8484848403611672565b604051638cd22d1960e01b815260040160405180910390fd5b60008061173b61172784611b1d565b85546117369190600f0b61211c565b611b8b565b8454909150600160801b9004600f90810b9082900b1261176e57604051632d0483c560e21b815260040160405180910390fd5b600f0b60009081526001939093016020525050604090205490565b600061179482610e50565b90506117a08383611bef565b80609860008282546117b291906120a4565b90915550909392505050565b6001600160a01b0381166000908152609b602052604090208054600181018255905b50919050565b60006117f182610e11565b90506117fd8382611d23565b81609860008282546117b29190611e35565b6002600154036118615760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161020e565b6002600155565b60006118838254600f81810b600160801b909204900b131590565b156118a157604051631ed9509560e11b815260040160405180910390fd5b508054600f0b60009081526001909101602052604090205490565b60006118d78254600f81810b600160801b909204900b131590565b156118f557604051631ed9509560e11b815260040160405180910390fd5b508054600f0b6000818152600180840160205260408220805492905583546fffffffffffffffffffffffffffffffff191692016001600160801b03169190911790915590565b60018055565b600054610100900460ff166119685760405162461bcd60e51b815260040161020e90612144565b606861197483826121f3565b50606961198182826121f3565b505050565b600054610100900460ff1661193b5760405162461bcd60e51b815260040161020e90612144565b600054610100900460ff166119d45760405162461bcd60e51b815260040161020e90612144565b60006120026001600160a01b0316638a4d3fa86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3a9190611de4565b90508082111580611a5457506097546001600160a01b0316155b80611a60575060675415155b15611a7e57604051632163e6b960e21b815260040160405180910390fd5b60006120026001600160a01b0316634e6fd6c46040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ac0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ae491906122b3565b9050611af08183611d23565b6000611afc83856120a4565b609754909150611b15906001600160a01b031682611d23565b505050609855565b60006001600160ff1b03821115611b875760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b606482015260840161020e565b5090565b80600f81900b8114610a0c5760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20316044820152663238206269747360c81b606482015260840161020e565b6001600160a01b038216611c4f5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b606482015260840161020e565b6001600160a01b03821660009081526065602052604090205481811015611cc35760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b606482015260840161020e565b6001600160a01b03831660008181526065602090815260408083208686039055606780548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6001600160a01b038216611d795760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161020e565b8060676000828254611d8b9190611e35565b90915550506001600160a01b0382166000818152606560209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b600060208284031215611df657600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b600082611e3057634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561074157610741611dfd565b6001600160a01b0381168114611e5d57600080fd5b50565b600060208284031215611e7257600080fd5b8135611e7d81611e48565b9392505050565b600060208083528351808285015260005b81811015611eb157858101830151858201604001528201611e95565b506000604082860101526040601f19601f8301168501019250505092915050565b60008060408385031215611ee557600080fd5b8235611ef081611e48565b946020939093013593505050565b600080600060608486031215611f1357600080fd5b8335611f1e81611e48565b92506020840135611f2e81611e48565b929592945050506040919091013590565b600060208284031215611f5157600080fd5b5035919050565b600060208284031215611f6a57600080fd5b813567ffffffffffffffff81168114611e7d57600080fd5b60008060408385031215611f9557600080fd5b8235611fa081611e48565b91506020830135611fb081611e48565b809150509250929050565b600080600060408486031215611fd057600080fd5b8335611fdb81611e48565b9250602084013567ffffffffffffffff80821115611ff857600080fd5b818601915086601f83011261200c57600080fd5b81358181111561201b57600080fd5b87602082850101111561202d57600080fd5b6020830194508093505050509250925092565b600181811c9082168061205457607f821691505b6020821081036117e057634e487b7160e01b600052602260045260246000fd5b60006001820161208657612086611dfd565b5060010190565b808202811582820484141761074157610741611dfd565b8181038181111561074157610741611dfd565b6000816120c6576120c6611dfd565b506000190190565b65029ba30b5b2960d51b815281836006830137660810dc99591a5d60ca1b91016006810191909152600d01919050565b611cdd60f21b81528183600283013760009101600201908152919050565b808201828112600083128015821682158216171561213c5761213c611dfd565b505092915050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b634e487b7160e01b600052604160045260246000fd5b601f82111561198157600081815260208120601f850160051c810160208610156121cc5750805b601f850160051c820191505b818110156121eb578281556001016121d8565b505050505050565b815167ffffffffffffffff81111561220d5761220d61218f565b6122218161221b8454612040565b846121a5565b602080601f831160018114612256576000841561223e5750858301515b600019600386901b1c1916600185901b1785556121eb565b600085815260208120601f198616915b8281101561228557888601518255948401946001909101908401612266565b50858210156122a35787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156122c557600080fd5b8151611e7d81611e4856fea164736f6c6343000811000a", - }, - { - ContractAddr: GovernorContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/2dbebb57a0d436d6a30b78c1f123395035249035", - Code: "6080604052600436106103f35760003560e01c80637b3c71d311610208578063c28bc2fa11610118578063e23a9a52116100ab578063f1fad1041161007a578063f1fad10414610e46578063f23a6e6114610e5b578063f8ce560a14610e87578063fc0c546a14610ea7578063fe0d94c114610ec857600080fd5b8063e23a9a5214610d1b578063ea0217cf14610de6578063eb9019d414610e06578063ece40cc114610e2657600080fd5b8063da95691a116100e7578063da95691a14610c61578063dd4e2ba514610c81578063ddf0b00914610cc7578063deaaa7cc14610ce757600080fd5b8063c28bc2fa14610bef578063c59057e414610c02578063d07f91e914610c22578063d33219b414610c4257600080fd5b8063a7713a701161019b578063b187bd261161016a578063b187bd2614610b55578063b58131b014610b73578063bc197c8114610b88578063c01f9e3714610bb4578063c170ec0b14610bd457600080fd5b8063a7713a7014610ae0578063a890c91014610af5578063ab58fb8e14610b15578063ac43175114610b3557600080fd5b806384b0196e116101d757806384b0196e14610a5857806391ddadf414610a8057806397c3d33414610aac5780639a802a6d14610ac057600080fd5b80637b3c71d3146109ee5780637d5e81e214610a0e5780638129fc1c14610a2e5780638456cb5914610a4357600080fd5b80633932abb1116103035780634a49ac4c1161029657806354fd4d501161026557806354fd4d5014610944578063567813881461096e5780635f398a141461098e57806360c4247f146109ae57806370b0f660146109ce57600080fd5b80634a49ac4c146108b75780634bf5d7e9146108d75780634bf6c882146108ec578063533ddd141461091357600080fd5b8063417c73a7116102d2578063417c73a7146107fc578063438596321461081c578063452115d6146108675780634838d1651461088757600080fd5b80633932abb1146107795780633bccf4fd1461078f5780633e4f49e6146107af57806340e58ee5146107dc57600080fd5b8063150b7a02116103865780632656227d116103555780632656227d146106a25780632d63f693146106b55780632fe3e261146106ec578063328dd9821461072057806332b8113e1461075057600080fd5b8063150b7a02146105fb578063160cbed71461063f57806317977c611461065f57806324bc1a641461068d57600080fd5b8063046f7da2116103c2578063046f7da21461054e57806306f3f9e61461056357806306fdde0314610583578063143489d0146105a557600080fd5b8063013cf08b1461046357806301ffc9a7146104de57806302a251a31461050e578063034201811461052e57600080fd5b3661045e5730610401610edb565b6001600160a01b03161461045c5760405162461bcd60e51b815260206004820152601f60248201527f476f7665726e6f723a206d7573742073656e6420746f206578656375746f720060448201526064015b60405180910390fd5b005b600080fd5b34801561046f57600080fd5b5061048361047e366004615c8b565b610ef5565b604080519a8b526001600160a01b0390991660208b0152978901969096526060880194909452608087019290925260a086015260c085015260e084015215156101008301521515610120820152610140015b60405180910390f35b3480156104ea57600080fd5b506104fe6104f9366004615ca4565b610fb0565b60405190151581526020016104d5565b34801561051a57600080fd5b50610195545b6040519081526020016104d5565b34801561053a57600080fd5b50610520610549366004615dea565b610fc1565b34801561055a57600080fd5b5061045c6110b9565b34801561056f57600080fd5b5061045c61057e366004615c8b565b611149565b34801561058f57600080fd5b506105986111d4565b6040516104d59190615ee0565b3480156105b157600080fd5b506105e36105c0366004615c8b565b60009081526101636020526040902054600160401b90046001600160a01b031690565b6040516001600160a01b0390911681526020016104d5565b34801561060757600080fd5b50610626610616366004615f08565b630a85bd0160e11b949350505050565b6040516001600160e01b031990911681526020016104d5565b34801561064b57600080fd5b5061052061065a3660046160df565b611267565b34801561066b57600080fd5b5061052061067a36600461616e565b6102c36020526000908152604090205481565b34801561069957600080fd5b50610520611352565b6105206106b03660046160df565b611378565b3480156106c157600080fd5b506105206106d0366004615c8b565b600090815261016360205260409020546001600160401b031690565b3480156106f857600080fd5b506105207fb3b3f3b703cd84ce352197dcff232b1b5d3cfb2025ce47cf04742d0651f1af8881565b34801561072c57600080fd5b5061074061073b366004615c8b565b61146b565b6040516104d59493929190616254565b34801561075c57600080fd5b5061028f546040516001600160401b0390911681526020016104d5565b34801561078557600080fd5b5061019454610520565b34801561079b57600080fd5b506105206107aa3660046162a1565b6116fd565b3480156107bb57600080fd5b506107cf6107ca366004615c8b565b611773565b6040516104d59190616305565b3480156107e857600080fd5b5061045c6107f7366004615c8b565b61177e565b34801561080857600080fd5b5061045c61081736600461616e565b6117a9565b34801561082857600080fd5b506104fe61083736600461632d565b60008281526101c6602090815260408083206001600160a01b038516845260080190915290205460ff1692915050565b34801561087357600080fd5b506105206108823660046160df565b61182a565b34801561089357600080fd5b506104fe6108a236600461616e565b60016020526000908152604090205460ff1681565b3480156108c357600080fd5b5061045c6108d236600461616e565b611838565b3480156108e357600080fd5b506105986118b3565b3480156108f857600080fd5b50610901600881565b60405160ff90911681526020016104d5565b34801561091f57600080fd5b506104fe61092e36600461616e565b6102c16020526000908152604090205460ff1681565b34801561095057600080fd5b506040805180820190915260018152603160f81b6020820152610598565b34801561097a57600080fd5b5061052061098936600461635d565b611960565b34801561099a57600080fd5b506105206109a9366004616389565b611989565b3480156109ba57600080fd5b506105206109c9366004615c8b565b6119d3565b3480156109da57600080fd5b5061045c6109e9366004615c8b565b611a88565b3480156109fa57600080fd5b50610520610a0936600461640c565b611b10565b348015610a1a57600080fd5b50610520610a29366004616465565b611b62565b348015610a3a57600080fd5b5061045c611c7d565b348015610a4f57600080fd5b5061045c611eaf565b348015610a6457600080fd5b50610a6d611f45565b6040516104d59796959493929190616505565b348015610a8c57600080fd5b50610a95611fe3565b60405165ffffffffffff90911681526020016104d5565b348015610ab857600080fd5b506064610520565b348015610acc57600080fd5b50610520610adb366004616567565b612057565b348015610aec57600080fd5b5061052061206e565b348015610b0157600080fd5b5061045c610b1036600461616e565b61209b565b348015610b2157600080fd5b50610520610b30366004615c8b565b612123565b348015610b4157600080fd5b5061045c610b503660046165bf565b6121bf565b348015610b6157600080fd5b5060005462010000900460ff166104fe565b348015610b7f57600080fd5b50610520612904565b348015610b9457600080fd5b50610626610ba336600461661e565b63bc197c8160e01b95945050505050565b348015610bc057600080fd5b50610520610bcf366004615c8b565b612910565b348015610be057600080fd5b506102c2546104fe9060ff1681565b61045c610bfd3660046166b1565b61291b565b348015610c0e57600080fd5b50610520610c1d3660046160df565b612a2b565b348015610c2e57600080fd5b5061045c610c3d3660046166f4565b612a65565b348015610c4e57600080fd5b5061022b546001600160a01b03166105e3565b348015610c6d57600080fd5b50610520610c7c36600461671d565b612aed565b348015610c8d57600080fd5b5060408051808201909152601a81527f737570706f72743d627261766f2671756f72756d3d627261766f0000000000006020820152610598565b348015610cd357600080fd5b5061045c610ce2366004615c8b565b612b74565b348015610cf357600080fd5b506105207f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f81565b348015610d2757600080fd5b50610db6610d3636600461632d565b60408051606081018252600080825260208201819052918101919091525060009182526101c6602090815260408084206001600160a01b0393909316845260089092018152918190208151606081018352905460ff8082161515835261010082041693820193909352620100009092046001600160601b03169082015290565b6040805182511515815260208084015160ff1690820152918101516001600160601b0316908201526060016104d5565b348015610df257600080fd5b5061045c610e01366004615c8b565b612b97565b348015610e1257600080fd5b50610520610e213660046167be565b612c1f565b348015610e3257600080fd5b5061045c610e41366004615c8b565b612c40565b348015610e5257600080fd5b50610901601181565b348015610e6757600080fd5b50610626610e763660046167ea565b63f23a6e6160e01b95945050505050565b348015610e9357600080fd5b50610520610ea2366004615c8b565b612cc8565b348015610eb357600080fd5b506101f8546105e3906001600160a01b031681565b61045c610ed6366004615c8b565b612d57565b6000610ef061022b546001600160a01b031690565b905090565b8060008080808080808080610f098a612123565b60008c815261016360205260409020549098506001600160401b03169650610f308b612910565b60008c81526101c66020526040812080546005820154600683015460078401546001600160a01b039093169e50949a509850929650919450610f718d611773565b90506002816007811115610f8757610f876162ef565b1493506007816007811115610f9e57610f9e6162ef565b14925050509193959799509193959799565b6000610fbb82612d7a565b92915050565b60008061106561105d7fb3b3f3b703cd84ce352197dcff232b1b5d3cfb2025ce47cf04742d0651f1af888c8c8c8c604051610ffd929190616852565b60405180910390208b80519060200120604051602001611042959493929190948552602085019390935260ff9190911660408401526060830152608082015260a00190565b60405160208183030381529060405280519060200120612d9f565b868686612dcc565b90506110ab8a828b8b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508d9250612dea915050565b9a9950505050505050505050565b600054630100000090046001600160a01b031633146110eb576040516306fbb1e360e01b815260040160405180910390fd5b60005462010000900460ff1661111457604051636cd6020160e01b815260040160405180910390fd5b6000805462ff0000191681556040517f62451d457bc659158be6e6247f56ec1df424a5c7597f71c20c2bc44e0965c8f99190a1565b611151610edb565b6001600160a01b0316336001600160a01b0316146111815760405162461bcd60e51b815260040161045390616862565b3061118a610edb565b6001600160a01b0316146111c857600080366040516111aa929190616852565b604051809103902090505b806111c1610164612e53565b036111b557505b6111d181612ed2565b50565b606061016280546111e490616899565b80601f016020809104026020016040519081016040528092919081815260200182805461121090616899565b801561125d5780601f106112325761010080835404028352916020019161125d565b820191906000526020600020905b81548152906001019060200180831161124057829003601f168201915b5050505050905090565b6000805462010000900460ff161561129257604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff16156112c35760405163b1d02c3d60e01b815260040160405180910390fd5b60005b855181101561133c576102c160008783815181106112e6576112e66168d3565b6020908102919091018101516001600160a01b031682528101919091526040016000205460ff1661132a57604051630b094f2760e31b815260040160405180910390fd5b80611334816168ff565b9150506112c6565b5061134985858585613043565b95945050505050565b6000610ef06001611361611fe3565b61136b9190616918565b65ffffffffffff16612cc8565b60008061138786868686612a2b565b9050600061139482611773565b905060048160078111156113aa576113aa6162ef565b14806113c7575060058160078111156113c5576113c56162ef565b145b6113e35760405162461bcd60e51b81526004016104539061693e565b6000828152610163602052604090819020600201805460ff19166001179055517f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f906114329084815260200190565b60405180910390a16114478288888888613248565b61145482888888886132e9565b61146182888888886133cb565b5095945050505050565b60608060608060006101c66000878152602001908152602001600020905080600101816002018260030183600401838054806020026020016040519081016040528092919081815260200182805480156114ee57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116114d0575b505050505093508280548060200260200160405190810160405280929190818152602001828054801561154057602002820191906000526020600020905b81548152602001906001019080831161152c575b5050505050925081805480602002602001604051908101604052809291908181526020016000905b8282101561161457838290600052602060002001805461158790616899565b80601f01602080910402602001604051908101604052809291908181526020018280546115b390616899565b80156116005780601f106115d557610100808354040283529160200191611600565b820191906000526020600020905b8154815290600101906020018083116115e357829003601f168201915b505050505081526020019060010190611568565b50505050915080805480602002602001604051908101604052809291908181526020016000905b828210156116e757838290600052602060002001805461165a90616899565b80601f016020809104026020016040519081016040528092919081815260200182805461168690616899565b80156116d35780601f106116a8576101008083540402835291602001916116d3565b820191906000526020600020905b8154815290600101906020018083116116b657829003601f168201915b50505050508152602001906001019061163b565b5050505090509450945094509450509193509193565b604080517f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f602082015290810186905260ff85166060820152600090819061174b9061105d90608001611042565b905061176887828860405180602001604052806000815250613406565b979650505050505050565b6000610fbb82613429565b60008060008061178d85613576565b93509350935093506117a18484848461182a565b505050505050565b600054630100000090046001600160a01b031633146117db576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b0381166000818152600160208190526040808320805460ff1916909217909155517f7fd26be6fc92aff63f1f4409b2b2ddeb272a888031d7f55ec830485ec61941869190a250565b600061134985858585613807565b600054630100000090046001600160a01b0316331461186a576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b038116600081815260016020526040808220805460ff19169055517fe0db3499b7fdc3da4cddff5f45d694549c19835e7f719fb5606d3ad1a5de40119190a250565b6101f85460408051634bf5d7e960e01b815290516060926001600160a01b031691634bf5d7e99160048083019260009291908290030181865afa92505050801561191f57506040513d6000823e601f3d908101601f1916820160405261191c919081019061697f565b60015b61195b575060408051808201909152601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000602082015290565b919050565b60008033905061198184828560405180602001604052806000815250613406565b949350505050565b60008033905061176887828888888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a9250612dea915050565b61025e546000908082036119ec57505061025d54919050565b600061025e6119fc6001846169ec565b81548110611a0c57611a0c6168d3565b60009182526020918290206040805180820190915291015463ffffffff8116808352600160201b9091046001600160e01b03169282019290925291508410611a6257602001516001600160e01b03169392505050565b611a77611a6e856138d2565b61025e9061393b565b6001600160e01b0316949350505050565b611a90610edb565b6001600160a01b0316336001600160a01b031614611ac05760405162461bcd60e51b815260040161045390616862565b30611ac9610edb565b6001600160a01b031614611b075760008036604051611ae9929190616852565b604051809103902090505b80611b00610164612e53565b03611af457505b6111d1816139ee565b600080339050611b5886828787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061340692505050565b9695505050505050565b6000805462010000900460ff1615611b8d57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615611bbe5760405163b1d02c3d60e01b815260040160405180910390fd5b611bc6613a31565b3360009081526102c360205260409020548015611c3b576000611be882611773565b90506001816007811115611bfe57611bfe6162ef565b1480611c1b57506000816007811115611c1957611c196162ef565b145b15611c395760405163867f3ee560e01b815260040160405180910390fd5b505b825160208401206000611c5088888885612a2b565b3360009081526102c3602052604090208190559050611c7188888888613adc565b98975050505050505050565b600054610100900460ff1615808015611c9d5750600054600160ff909116105b80611cb75750303b158015611cb7575060005460ff166001145b611d1a5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610453565b6000805460ff191660011790558015611d3d576000805461ff0019166101001790555b334114611d5d5760405163022d8c9560e31b815260040160405180910390fd5b3a15611d7c576040516383f1b1d360e01b815260040160405180910390fd5b611da86040518060400160405280600b81526020016a2129a1a3b7bb32b93737b960a91b815250613b44565b611dd4611db760036000616a15565b611dc5600362093a80616a15565b680ad78ebc5ac6200000613b9b565b611ddc613bd2565b611de7612005613bf9565b611df2612006613c29565b611dfc600a613c59565b611e12611e0d600362015180616a15565b613c89565b6110076000526102c16020527f2f832952f0ef896b8c8edd6d16a2e4f2591a90375e33021e3b9ff197f3793fc0805460ff19166001179055611e677308e68ec70fa3b629784fdb28887e206ce8561e08613cb9565b80156111d1576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b600054630100000090046001600160a01b03163314611ee1576040516306fbb1e360e01b815260040160405180910390fd5b60005462010000900460ff1615611f0b57604051631785c68160e01b815260040160405180910390fd5b6000805462ff00001916620100001781556040517f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e7529190a1565b6000606080600080600060606098546000801b148015611f655750609954155b611fa95760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606401610453565b611fb1613d0c565b611fb9613d1b565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b6101f854604080516324776b7d60e21b815290516000926001600160a01b0316916391ddadf49160048083019260209291908290030181865afa92505050801561204a575060408051601f3d908101601f1916820190925261204791810190616a37565b60015b61195b57610ef043613d2a565b6000612064848484613d91565b90505b9392505050565b61025e54600090156120935761208561025e613e08565b6001600160e01b0316905090565b5061025d5490565b6120a3610edb565b6001600160a01b0316336001600160a01b0316146120d35760405162461bcd60e51b815260040161045390616862565b306120dc610edb565b6001600160a01b03161461211a57600080366040516120fc929190616852565b604051809103902090505b80612113610164612e53565b0361210757505b6111d181613e38565b61022b54600082815261022c602052604080822054905163d45c443560e01b81526004810191909152909182916001600160a01b039091169063d45c443590602401602060405180830381865afa158015612182573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121a69190616a5f565b9050806001146121b65780612067565b60009392505050565b33611007146121e557604051630f22c43960e41b81526110076004820152602401610453565b61224b6040518060400160405280600b81526020016a766f74696e6744656c617960a81b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613ea39050565b1561230057602081146122795783838383604051630a5a604160e01b81526004016104539493929190616aa1565b604080516020601f84018190048102820181019092528281526000916122ba918585808385018382808284376000920191909152509293925050613efc9050565b90508015806122cb57506201518081115b156122f15784848484604051630a5a604160e01b81526004016104539493929190616aa1565b6122fa816139ee565b506128c1565b6123676040518060400160405280600c81526020016b1d9bdd1a5b99d4195c9a5bd960a21b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613ea39050565b1561241657602081146123955783838383604051630a5a604160e01b81526004016104539493929190616aa1565b604080516020601f84018190048102820181019092528281526000916123d6918585808385018382808284376000920191909152509293925050613efc9050565b90508015806123e7575062278d0081115b1561240d5784848484604051630a5a604160e01b81526004016104539493929190616aa1565b6122fa81613f01565b612482604051806040016040528060118152602001701c1c9bdc1bdcd85b151a1c995cda1bdb19607a1b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613ea39050565b1561253857602081146124b05783838383604051630a5a604160e01b81526004016104539493929190616aa1565b604080516020601f84018190048102820181019092528281526000916124f1918585808385018382808284376000920191909152509293925050613efc9050565b9050801580612509575069021e19e0c9bab240000081115b1561252f5784848484604051630a5a604160e01b81526004016104539493929190616aa1565b6122fa81613fa4565b6125a26040518060400160405280600f81526020016e38bab7b93ab6a73ab6b2b930ba37b960891b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613ea39050565b1561265157602081146125d05783838383604051630a5a604160e01b81526004016104539493929190616aa1565b604080516020601f8401819004810282018101909252828152600091612611918585808385018382808284376000920191909152509293925050613efc9050565b905060058110806126225750601481115b156126485784848484604051630a5a604160e01b81526004016104539493929190616aa1565b6122fa81612ed2565b6126c0604051806040016040528060148152602001736d696e506572696f64416674657251756f72756d60601b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613ea39050565b1561278657600881146126ee5783838383604051630a5a604160e01b81526004016104539493929190616aa1565b6000612734600884848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613efc9050565b90506001600160401b038116158061275757506202a300816001600160401b0316115b1561277d5784848484604051630a5a604160e01b81526004016104539493929190616aa1565b6122fa81613fe7565b6127f26040518060400160405280601181526020017033b7bb32b93737b9283937ba32b1ba37b960791b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613ea39050565b156128a057601481146128205783838383604051630a5a604160e01b81526004016104539493929190616aa1565b6000612866601484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613efc9050565b90506001600160a01b0381166128975784848484604051630a5a604160e01b81526004016104539493929190616aa1565b6122fa81614053565b838383836040516325ee20d560e21b81526004016104539493929190616aa1565b7ff1ce9b2cbf50eeb05769a29e2543fd350cab46894a7dd9978a12d534bb20e633848484846040516128f69493929190616aa1565b60405180910390a150505050565b6000610ef06101965490565b6000610fbb826140bf565b612923610edb565b6001600160a01b0316336001600160a01b0316146129535760405162461bcd60e51b815260040161045390616862565b3061295c610edb565b6001600160a01b03161461299a576000803660405161297c929190616852565b604051809103902090505b80612993610164612e53565b0361298757505b600080856001600160a01b03168585856040516129b8929190616852565b60006040518083038185875af1925050503d80600081146129f5576040519150601f19603f3d011682016040523d82523d6000602084013e6129fa565b606091505b5091509150612a228282604051806060016040528060288152602001616efe602891396140fd565b50505050505050565b600084848484604051602001612a449493929190616ac8565b60408051601f19818403018152919052805160209091012095945050505050565b612a6d610edb565b6001600160a01b0316336001600160a01b031614612a9d5760405162461bcd60e51b815260040161045390616862565b30612aa6610edb565b6001600160a01b031614612ae45760008036604051612ac6929190616852565b604051809103902090505b80612add610164612e53565b03612ad157505b6111d181613fe7565b60008251845114612b515760405162461bcd60e51b815260206004820152602860248201527f476f7665726e6f72427261766f3a20696e76616c6964207369676e61747572656044820152670e640d8cadccee8d60c31b6064820152608401610453565b612b5f338787878787614116565b611b588686612b6e87876141d4565b85611b62565b600080600080612b8385613576565b93509350935093506117a184848484611267565b612b9f610edb565b6001600160a01b0316336001600160a01b031614612bcf5760405162461bcd60e51b815260040161045390616862565b30612bd8610edb565b6001600160a01b031614612c165760008036604051612bf8929190616852565b604051809103902090505b80612c0f610164612e53565b03612c0357505b6111d181613f01565b60006120678383612c3b60408051602081019091526000815290565b613d91565b612c48610edb565b6001600160a01b0316336001600160a01b031614612c785760405162461bcd60e51b815260040161045390616862565b30612c81610edb565b6001600160a01b031614612cbf5760008036604051612ca1929190616852565b604051809103902090505b80612cb8610164612e53565b03612cac57505b6111d181613fa4565b60006064612cd5836119d3565b6101f854604051632394e7a360e21b8152600481018690526001600160a01b0390911690638e539e8c90602401602060405180830381865afa158015612d1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d439190616a5f565b612d4d9190616b13565b610fbb9190616a15565b600080600080612d6685613576565b93509350935093506117a184848484611378565b60006001600160e01b03198216636e665ced60e01b1480610fbb5750610fbb82614306565b6000610fbb612dac6143a2565b8360405161190160f01b8152600281019290925260228201526042902090565b6000806000612ddd878787876143ac565b9150915061146181614470565b6000805462010000900460ff1615612e1557604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615612e465760405163b1d02c3d60e01b815260040160405180910390fd5b611b5886868686866145ba565b6000612e6e8254600f81810b600160801b909204900b131590565b15612e8c57604051631ed9509560e11b815260040160405180910390fd5b508054600f0b6000818152600180840160205260408220805492905583546fffffffffffffffffffffffffffffffff191692016001600160801b03169190911790915590565b6064811115612f555760405162461bcd60e51b815260206004820152604360248201527f476f7665726e6f72566f74657351756f72756d4672616374696f6e3a2071756f60448201527f72756d4e756d657261746f72206f7665722071756f72756d44656e6f6d696e616064820152623a37b960e91b608482015260a401610453565b6000612f5f61206e565b90508015801590612f71575061025e54155b15612fd657604080518082019091526000815261025e9060208101612f95846146bd565b6001600160e01b039081169091528254600181018455600093845260209384902083519490930151909116600160201b0263ffffffff909316929092179101555b613004612ff1612fe4611fe3565b65ffffffffffff166138d2565b612ffa846146bd565b61025e9190614726565b505060408051828152602081018490527f0553476bf02ef2726e8ce5ced78d63e26e602e4a2257b1f559418e24b4633997910160405180910390a15050565b60008061305286868686612a2b565b9050600461305f82611773565b6007811115613070576130706162ef565b1461308d5760405162461bcd60e51b81526004016104539061693e565b61022b546040805163793d064960e11b815290516000926001600160a01b03169163f27a0c929160048083019260209291908290030181865afa1580156130d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130fc9190616a5f565b61022b5460405163b1c5f42760e01b81529192506001600160a01b03169063b1c5f42790613137908a908a908a906000908b90600401616b2a565b602060405180830381865afa158015613154573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131789190616a5f565b600083815261022c60205260408082209290925561022b5491516308f2a0bb60e41b81526001600160a01b0390921691638f2a0bb0916131c5918b918b918b91908b908990600401616b78565b600060405180830381600087803b1580156131df57600080fd5b505af11580156131f3573d6000803e3d6000fd5b505050507f9a2e42fd6722813d69113e7d0079d3d940171428df7373df9c7f7617cfda28928282426132259190616bd0565b604080519283526020830191909152015b60405180910390a15095945050505050565b30613251610edb565b6001600160a01b0316146132e25760005b84518110156117a157306001600160a01b0316858281518110613287576132876168d3565b60200260200101516001600160a01b0316036132d2576132d28382815181106132b2576132b26168d3565b60200260200101518051906020012061016461474190919063ffffffff16565b6132db816168ff565b9050613262565b5050505050565b60005462010000900460ff161561331357604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff16156133445760405163b1d02c3d60e01b815260040160405180910390fd5b60005b84518110156133bd576102c16000868381518110613367576133676168d3565b6020908102919091018101516001600160a01b031682528101919091526040016000205460ff166133ab57604051630b094f2760e31b815260040160405180910390fd5b806133b5816168ff565b915050613347565b506132e2858585858561477d565b306133d4610edb565b6001600160a01b0316146132e25761016454600f81810b600160801b909204900b13156132e2576000610164556132e2565b60006113498585858561342460408051602081019091526000815290565b612dea565b600080613435836147f2565b9050600481600781111561344b5761344b6162ef565b146134565792915050565b600083815261022c602052604090205480613472575092915050565b61022b54604051632ab0f52960e01b8152600481018390526001600160a01b0390911690632ab0f52990602401602060405180830381865afa1580156134bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134e09190616be3565b156134ef575060079392505050565b61022b54604051632c258a9f60e11b8152600481018390526001600160a01b039091169063584b153e90602401602060405180830381865afa158015613539573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061355d9190616be3565b1561356c575060059392505050565b5060029392505050565b60608060606000806101c660008781526020019081526020016000209050806001018160020161374883600301805480602002602001604051908101604052809291908181526020016000905b8282101561366f5783829060005260206000200180546135e290616899565b80601f016020809104026020016040519081016040528092919081815260200182805461360e90616899565b801561365b5780601f106136305761010080835404028352916020019161365b565b820191906000526020600020905b81548152906001019060200180831161363e57829003601f168201915b5050505050815260200190600101906135c3565b50505060048601805460408051602080840282018101909252828152935060009084015b8282101561373f5783829060005260206000200180546136b290616899565b80601f01602080910402602001604051908101604052809291908181526020018280546136de90616899565b801561372b5780601f106137005761010080835404028352916020019161372b565b820191906000526020600020905b81548152906001019060200180831161370e57829003601f168201915b505050505081526020019060010190613693565b505050506141d4565b600984015483546040805160208084028201810190925282815291869183018282801561379e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613780575b50505050509350828054806020026020016040519081016040528092919081815260200182805480156137f057602002820191906000526020600020905b8154815260200190600101908083116137dc575b505050505092509450945094509450509193509193565b60008061381686868686612a2b565b60008181526101c660205260409020549091506001600160a01b03163381148061386a5750613843612904565b613868826001613851611fe3565b61385b9190616918565b65ffffffffffff16612c1f565b105b6138c65760405162461bcd60e51b815260206004820152602760248201527f476f7665726e6f72427261766f3a2070726f706f7365722061626f76652074686044820152661c995cda1bdb1960ca1b6064820152608401610453565b6117688787878761492a565b600063ffffffff8211156139375760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b6064820152608401610453565b5090565b81546000908181600581111561399857600061395684614938565b61396090856169ec565b60008881526020902090915081015463ffffffff908116908716101561398857809150613996565b613993816001616bd0565b92505b505b60006139a687878585614a20565b905080156139e1576139cb876139bd6001846169ec565b600091825260209091200190565b54600160201b90046001600160e01b0316611768565b6000979650505050505050565b6101945460408051918252602082018390527fc565b045403dc03c2eea82b81a0465edad9e2e7fc4d97e11421c209da93d7a93910160405180910390a161019455565b6102c25460ff16613ada576a084595161401484a0000006120056001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613a88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613aac9190616a5f565b1015613acb576040516311b6707f60e01b815260040160405180910390fd5b6102c2805460ff191660011790555b565b6000613b3833868686516001600160401b03811115613afd57613afd615d27565b604051908082528060200260200182016040528015613b3057816020015b6060815260200190600190039081613b1b5790505b508787614116565b61134985858585614a76565b600054610100900460ff16613b6b5760405162461bcd60e51b815260040161045390616c05565b613b9281613b8d6040805180820190915260018152603160f81b602082015290565b614e55565b6111d181614ea4565b600054610100900460ff16613bc25760405162461bcd60e51b815260040161045390616c05565b613bcd838383614edc565b505050565b600054610100900460ff16613ada5760405162461bcd60e51b815260040161045390616c05565b600054610100900460ff16613c205760405162461bcd60e51b815260040161045390616c05565b6111d181614f1e565b600054610100900460ff16613c505760405162461bcd60e51b815260040161045390616c05565b6111d181614f68565b600054610100900460ff16613c805760405162461bcd60e51b815260040161045390616c05565b6111d181614f8f565b600054610100900460ff16613cb05760405162461bcd60e51b815260040161045390616c05565b6111d181614fb6565b600054610100900460ff16613ce05760405162461bcd60e51b815260040161045390616c05565b600080546001600160a01b039092166301000000026301000000600160b81b0319909216919091179055565b6060609a80546111e490616899565b6060609b80546111e490616899565b600065ffffffffffff8211156139375760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203460448201526538206269747360d01b6064820152608401610453565b6101f854604051630748d63560e31b81526001600160a01b038581166004830152602482018590526000921690633a46b1a890604401602060405180830381865afa158015613de4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120649190616a5f565b805460009080156121b657613e22836139bd6001846169ec565b54600160201b90046001600160e01b0316612067565b61022b54604080516001600160a01b03928316815291831660208301527f08f74ea46ef7894f65eabfb5e6e695de773a000b47c529ab559178069b226401910160405180910390a161022b80546001600160a01b0319166001600160a01b0392909216919091179055565b600081604051602001613eb69190616c50565b6040516020818303038152906040528051906020012083604051602001613edd9190616c50565b6040516020818303038152906040528051906020012014905092915050565b015190565b60008111613f615760405162461bcd60e51b815260206004820152602760248201527f476f7665726e6f7253657474696e67733a20766f74696e6720706572696f6420604482015266746f6f206c6f7760c81b6064820152608401610453565b6101955460408051918252602082018390527f7e3f7f0708a84de9203036abaa450dccc85ad5ff52f78c170f3edb55cf5e8828910160405180910390a161019555565b6101965460408051918252602082018390527fccb45da8d5717e6c4544694297c4ba5cf151d455c9bb0ed4fc7a38411bc05461910160405180910390a161019655565b61028f54604080516001600160401b03928316815291831660208301527f7ca4ac117ed3cdce75c1161d8207c440389b1a15d69d096831664657c07dafc2910160405180910390a161028f805467ffffffffffffffff19166001600160401b0392909216919091179055565b600080546040516001600160a01b0380851693630100000090930416917f44fc1b38a4abaa91ebd1b628a5b259a698f86238c8217d68f516e87769c60c0b91a3600080546001600160a01b039092166301000000026301000000600160b81b0319909216919091179055565b60008181526101636020526040812060010154610fbb906001600160401b0316600084815261029060205260409020546001600160401b0316614fdd565b6060831561410c575081612067565b6120678383614ff3565b805160208201206000614134878761412e88886141d4565b85612a2b565b60008181526101c6602052604090206009810154919250906141c95780546001600160a01b0319166001600160a01b038a16178155875161417e90600183019060208b0190615ac2565b50865161419490600283019060208a0190615b23565b5085516141aa9060038301906020890190615b5e565b5084516141c09060048301906020880190615bb0565b50600981018390555b505050505050505050565b6060600082516001600160401b038111156141f1576141f1615d27565b60405190808252806020026020018201604052801561422457816020015b606081526020019060019003908161420f5790505b50905060005b81518110156142fe57848181518110614245576142456168d3565b6020026020010151516000146142b557848181518110614267576142676168d3565b602002602001015180519060200120848281518110614288576142886168d3565b60200260200101516040516020016142a1929190616c6c565b6040516020818303038152906040526142d0565b8381815181106142c7576142c76168d3565b60200260200101515b8282815181106142e2576142e26168d3565b6020026020010181905250806142f7906168ff565b905061422a565b509392505050565b600063288ace0360e11b6318df743f60e31b63bf26d89760e01b6379dd796f60e01b6001600160e01b0319861682148061434c57506001600160e01b0319868116908216145b8061436357506001600160e01b0319868116908516145b8061437e57506001600160e01b03198616630271189760e51b145b80611b5857506301ffc9a760e01b6001600160e01b03198716149695505050505050565b6000610ef061501d565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156143e35750600090506003614467565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614437573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661446057600060019250925050614467565b9150600090505b94509492505050565b6000816004811115614484576144846162ef565b0361448c5750565b60018160048111156144a0576144a06162ef565b036144ed5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610453565b6002816004811115614501576145016162ef565b0361454e5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610453565b6003816004811115614562576145626162ef565b036111d15760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610453565b6000806145ca8787878787615091565b600088815261029060205260409020549091506001600160401b03161580156145f757506145f7876151e7565b15611b5857600061461161028f546001600160401b031690565b614619611fe3565b65ffffffffffff1661462b9190616c9d565b905061463688612910565b816001600160401b03161115614685576040516001600160401b038216815288907f541f725fb9f7c98a30cc9c0ff32fbb14358cd7159c847a3aa20a2bdc442ba5119060200160405180910390a25b600088815261029060205260409020805467ffffffffffffffff19166001600160401b03929092169190911790559695505050505050565b60006001600160e01b038211156139375760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b6064820152608401610453565b600080614734858585615227565b915091505b935093915050565b8154600160801b90819004600f0b6000818152600180860160205260409091209390935583546001600160801b03908116939091011602179055565b61022b5460405163e38335e560e01b81526001600160a01b039091169063e38335e59034906147b9908890889088906000908990600401616b2a565b6000604051808303818588803b1580156147d257600080fd5b505af11580156147e6573d6000803e3d6000fd5b50505050505050505050565b600081815261016360205260408120600281015460ff16156148175750600792915050565b6002810154610100900460ff16156148325750600292915050565b600083815261016360205260408120546001600160401b03169081900361489b5760405162461bcd60e51b815260206004820152601d60248201527f476f7665726e6f723a20756e6b6e6f776e2070726f706f73616c2069640000006044820152606401610453565b60006148a5611fe3565b65ffffffffffff1690508082106148c157506000949350505050565b60006148cc86612910565b90508181106148e15750600195945050505050565b6148ea866151e7565b801561490d575060008681526101c6602052604090206006810154600590910154115b1561491e5750600495945050505050565b50600395945050505050565b6000611349858585856153c6565b60008160000361494a57506000919050565b600060016149578461547c565b901c6001901b90506001818481614970576149706169ff565b048201901c90506001818481614988576149886169ff565b048201901c905060018184816149a0576149a06169ff565b048201901c905060018184816149b8576149b86169ff565b048201901c905060018184816149d0576149d06169ff565b048201901c905060018184816149e8576149e86169ff565b048201901c90506001818481614a0057614a006169ff565b048201901c905061206781828581614a1a57614a1a6169ff565b04615510565b60005b818310156142fe576000614a37848461551f565b60008781526020902090915063ffffffff86169082015463ffffffff161115614a6257809250614a70565b614a6d816001616bd0565b93505b50614a23565b600033614a83818461553a565b614acf5760405162461bcd60e51b815260206004820152601d60248201527f476f7665726e6f723a2070726f706f73657220726573747269637465640000006044820152606401610453565b6000614ad9611fe3565b65ffffffffffff169050614aeb612904565b614afa83610e216001856169ec565b1015614b625760405162461bcd60e51b815260206004820152603160248201527f476f7665726e6f723a2070726f706f73657220766f7465732062656c6f7720706044820152701c9bdc1bdcd85b081d1a1c995cda1bdb19607a1b6064820152608401610453565b6000614b778888888880519060200120612a2b565b90508651885114614b9a5760405162461bcd60e51b815260040161045390616cbd565b8551885114614bbb5760405162461bcd60e51b815260040161045390616cbd565b6000885111614c0c5760405162461bcd60e51b815260206004820152601860248201527f476f7665726e6f723a20656d7074792070726f706f73616c00000000000000006044820152606401610453565b600081815261016360205260409020546001600160401b031615614c7c5760405162461bcd60e51b815260206004820152602160248201527f476f7665726e6f723a2070726f706f73616c20616c72656164792065786973746044820152607360f81b6064820152608401610453565b6000614c886101945490565b614c929084616bd0565b90506000614ca06101955490565b614caa9083616bd0565b90506040518060e00160405280614cc08461562b565b6001600160401b031681526001600160a01b038716602082015260006040820152606001614ced8361562b565b6001600160401b03908116825260006020808401829052604080850183905260609485018390528883526101638252918290208551815492870151878501519186166001600160e01b031990941693909317600160401b6001600160a01b039094168402176001600160e01b0316600160e01b60e09290921c91909102178155938501516080860151908416921c0217600183015560a08301516002909201805460c09094015161ffff1990941692151561ff00191692909217610100931515939093029290921790558a517f7d84a6263ae0d98d3329bd7b46bb4e8d6f98cd35a7adb45c274c8b7fd5ebd5e091859188918e918e91811115614df257614df2615d27565b604051908082528060200260200182016040528015614e2557816020015b6060815260200190600190039081614e105790505b508d88888f604051614e3f99989796959493929190616cfe565b60405180910390a1509098975050505050505050565b600054610100900460ff16614e7c5760405162461bcd60e51b815260040161045390616c05565b609a614e888382616ddc565b50609b614e958282616ddc565b50506000609881905560995550565b600054610100900460ff16614ecb5760405162461bcd60e51b815260040161045390616c05565b610162614ed88282616ddc565b5050565b600054610100900460ff16614f035760405162461bcd60e51b815260040161045390616c05565b614f0c836139ee565b614f1582613f01565b613bcd81613fa4565b600054610100900460ff16614f455760405162461bcd60e51b815260040161045390616c05565b6101f880546001600160a01b0319166001600160a01b0392909216919091179055565b600054610100900460ff1661211a5760405162461bcd60e51b815260040161045390616c05565b600054610100900460ff166111c85760405162461bcd60e51b815260040161045390616c05565b600054610100900460ff16612ae45760405162461bcd60e51b815260040161045390616c05565b6000818311614fec5781612067565b5090919050565b8151156150035781518083602001fd5b8060405162461bcd60e51b81526004016104539190615ee0565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f615048615693565b6150506156ec565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b60008581526101636020526040812060016150ab88611773565b60078111156150bc576150bc6162ef565b146151155760405162461bcd60e51b815260206004820152602360248201527f476f7665726e6f723a20766f7465206e6f742063757272656e746c792061637460448201526269766560e81b6064820152608401610453565b805460009061512f9088906001600160401b031686613d91565b905061513e888888848861571d565b835160000361519357866001600160a01b03167fb8e138887d0aa13bab447e82de9d5c1777041ecd21ca36ba824ff1e6c07ddda4898884896040516151869493929190616e9b565b60405180910390a2611768565b866001600160a01b03167fe2babfbac5889a709b63bb7f598b324e08bc5a4fb9ec647fb3cbc9ec07eb871289888489896040516151d4959493929190616ec3565b60405180910390a2979650505050505050565b60008181526101c660205260408120600581015461521e610ea285600090815261016360205260409020546001600160401b031690565b11159392505050565b82546000908190801561536d576000615245876139bd6001856169ec565b60408051808201909152905463ffffffff808216808452600160201b9092046001600160e01b0316602084015291925090871610156152c65760405162461bcd60e51b815260206004820152601b60248201527f436865636b706f696e743a2064656372656173696e67206b65797300000000006044820152606401610453565b805163ffffffff80881691160361530e57846152e7886139bd6001866169ec565b80546001600160e01b0392909216600160201b0263ffffffff90921691909117905561535d565b6040805180820190915263ffffffff80881682526001600160e01b0380881660208085019182528b54600181018d5560008d81529190912094519151909216600160201b029216919091179101555b6020015192508391506147399050565b50506040805180820190915263ffffffff80851682526001600160e01b0380851660208085019182528854600181018a5560008a815291822095519251909316600160201b029190931617920191909155905081614739565b6000806153d5868686866158bb565b600081815261022c6020526040902054909150156113495761022b54600082815261022c60205260409081902054905163c4d252f560e01b81526001600160a01b039092169163c4d252f5916154319160040190815260200190565b600060405180830381600087803b15801561544b57600080fd5b505af115801561545f573d6000803e3d6000fd5b505050600082815261022c60205260408120555095945050505050565b600080608083901c1561549157608092831c92015b604083901c156154a357604092831c92015b602083901c156154b557602092831c92015b601083901c156154c757601092831c92015b600883901c156154d957600892831c92015b600483901c156154eb57600492831c92015b600283901c156154fd57600292831c92015b600183901c15610fbb5760010192915050565b6000818310614fec5781612067565b600061552e6002848418616a15565b61206790848416616bd0565b80516000906034811015615552576001915050610fbb565b82810160131901516001600160a01b031981166b046e0e4dee0dee6cae47a60f60a31b1461558557600192505050610fbb565b6000806155936028856169ec565b90505b8381101561560a576000806155ca8884815181106155b6576155b66168d3565b01602001516001600160f81b0319166159c8565b91509150816155e25760019650505050505050610fbb565b8060ff166004856001600160a01b0316901b179350505080615603906168ff565b9050615596565b50856001600160a01b0316816001600160a01b031614935050505092915050565b60006001600160401b038211156139375760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201526534206269747360d01b6064820152608401610453565b60008061569e613d0c565b8051909150156156b5578051602090910120919050565b60985480156156c45792915050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4709250505090565b6000806156f7613d1b565b80519091501561570e578051602090910120919050565b60995480156156c45792915050565b60008581526101c6602090815260408083206001600160a01b038816845260088101909252909120805460ff16156157ad5760405162461bcd60e51b815260206004820152602d60248201527f476f7665726e6f72436f6d7061746962696c697479427261766f3a20766f746560448201526c08185b1c9958591e4818d85cdd609a1b6064820152608401610453565b805460ff86166101000261ffff199091161760011781556157cd84615a5a565b81546001600160601b039190911662010000026dffffffffffffffffffffffff00001990911617815560ff851661581d57838260060160008282546158129190616bd0565b90915550612a229050565b60001960ff86160161583d57838260050160008282546158129190616bd0565b60011960ff86160161585d57838260070160008282546158129190616bd0565b60405162461bcd60e51b815260206004820152602d60248201527f476f7665726e6f72436f6d7061746962696c697479427261766f3a20696e766160448201526c6c696420766f7465207479706560981b6064820152608401610453565b6000806158ca86868686612a2b565b905060006158d782611773565b905060028160078111156158ed576158ed6162ef565b1415801561590d5750600681600781111561590a5761590a6162ef565b14155b801561592b57506007816007811115615928576159286162ef565b14155b6159775760405162461bcd60e51b815260206004820152601d60248201527f476f7665726e6f723a2070726f706f73616c206e6f74206163746976650000006044820152606401610453565b6000828152610163602052604090819020600201805461ff001916610100179055517f789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c906132369084815260200190565b60008060f883901c602f811180156159e35750603a8160ff16105b156159f857600194602f199091019350915050565b8060ff166040108015615a0e575060478160ff16105b15615a23576001946036199091019350915050565b8060ff166060108015615a39575060678160ff16105b15615a4e576001946056199091019350915050565b50600093849350915050565b60006001600160601b038211156139375760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203960448201526536206269747360d01b6064820152608401610453565b828054828255906000526020600020908101928215615b17579160200282015b82811115615b1757825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190615ae2565b50613937929150615c02565b828054828255906000526020600020908101928215615b17579160200282015b82811115615b17578251825591602001919060010190615b43565b828054828255906000526020600020908101928215615ba4579160200282015b82811115615ba45782518290615b949082616ddc565b5091602001919060010190615b7e565b50613937929150615c17565b828054828255906000526020600020908101928215615bf6579160200282015b82811115615bf65782518290615be69082616ddc565b5091602001919060010190615bd0565b50613937929150615c34565b5b808211156139375760008155600101615c03565b80821115613937576000615c2b8282615c51565b50600101615c17565b80821115613937576000615c488282615c51565b50600101615c34565b508054615c5d90616899565b6000825580601f10615c6d575050565b601f0160209004906000526020600020908101906111d19190615c02565b600060208284031215615c9d57600080fd5b5035919050565b600060208284031215615cb657600080fd5b81356001600160e01b03198116811461206757600080fd5b803560ff8116811461195b57600080fd5b60008083601f840112615cf157600080fd5b5081356001600160401b03811115615d0857600080fd5b602083019150836020828501011115615d2057600080fd5b9250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715615d6557615d65615d27565b604052919050565b60006001600160401b03821115615d8657615d86615d27565b50601f01601f191660200190565b600082601f830112615da557600080fd5b8135615db8615db382615d6d565b615d3d565b818152846020838601011115615dcd57600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060008060008060e0898b031215615e0657600080fd5b88359750615e1660208a01615cce565b965060408901356001600160401b0380821115615e3257600080fd5b615e3e8c838d01615cdf565b909850965060608b0135915080821115615e5757600080fd5b50615e648b828c01615d94565b945050615e7360808a01615cce565b925060a0890135915060c089013590509295985092959890939650565b60005b83811015615eab578181015183820152602001615e93565b50506000910152565b60008151808452615ecc816020860160208601615e90565b601f01601f19169290920160200192915050565b6020815260006120676020830184615eb4565b6001600160a01b03811681146111d157600080fd5b60008060008060808587031215615f1e57600080fd5b8435615f2981615ef3565b93506020850135615f3981615ef3565b92506040850135915060608501356001600160401b03811115615f5b57600080fd5b615f6787828801615d94565b91505092959194509250565b60006001600160401b03821115615f8c57615f8c615d27565b5060051b60200190565b600082601f830112615fa757600080fd5b81356020615fb7615db383615f73565b82815260059290921b84018101918181019086841115615fd657600080fd5b8286015b84811015615ffa578035615fed81615ef3565b8352918301918301615fda565b509695505050505050565b600082601f83011261601657600080fd5b81356020616026615db383615f73565b82815260059290921b8401810191818101908684111561604557600080fd5b8286015b84811015615ffa5780358352918301918301616049565b600082601f83011261607157600080fd5b81356020616081615db383615f73565b82815260059290921b840181019181810190868411156160a057600080fd5b8286015b84811015615ffa5780356001600160401b038111156160c35760008081fd5b6160d18986838b0101615d94565b8452509183019183016160a4565b600080600080608085870312156160f557600080fd5b84356001600160401b038082111561610c57600080fd5b61611888838901615f96565b9550602087013591508082111561612e57600080fd5b61613a88838901616005565b9450604087013591508082111561615057600080fd5b5061615d87828801616060565b949793965093946060013593505050565b60006020828403121561618057600080fd5b813561206781615ef3565b600081518084526020808501945080840160005b838110156161c45781516001600160a01b03168752958201959082019060010161619f565b509495945050505050565b600081518084526020808501945080840160005b838110156161c4578151875295820195908201906001016161e3565b600081518084526020808501808196508360051b8101915082860160005b85811015616247578284038952616235848351615eb4565b9885019893509084019060010161621d565b5091979650505050505050565b608081526000616267608083018761618b565b828103602084015261627981876161cf565b9050828103604084015261628d81866161ff565b9050828103606084015261176881856161ff565b600080600080600060a086880312156162b957600080fd5b853594506162c960208701615cce565b93506162d760408701615cce565b94979396509394606081013594506080013592915050565b634e487b7160e01b600052602160045260246000fd5b602081016008831061632757634e487b7160e01b600052602160045260246000fd5b91905290565b6000806040838503121561634057600080fd5b82359150602083013561635281615ef3565b809150509250929050565b6000806040838503121561637057600080fd5b8235915061638060208401615cce565b90509250929050565b6000806000806000608086880312156163a157600080fd5b853594506163b160208701615cce565b935060408601356001600160401b03808211156163cd57600080fd5b6163d989838a01615cdf565b909550935060608801359150808211156163f257600080fd5b506163ff88828901615d94565b9150509295509295909350565b6000806000806060858703121561642257600080fd5b8435935061643260208601615cce565b925060408501356001600160401b0381111561644d57600080fd5b61645987828801615cdf565b95989497509550505050565b6000806000806080858703121561647b57600080fd5b84356001600160401b038082111561649257600080fd5b61649e88838901615f96565b955060208701359150808211156164b457600080fd5b6164c088838901616005565b945060408701359150808211156164d657600080fd5b6164e288838901616060565b935060608701359150808211156164f857600080fd5b50615f6787828801615d94565b60ff60f81b8816815260e06020820152600061652460e0830189615eb4565b82810360408401526165368189615eb4565b606084018890526001600160a01b038716608085015260a0840186905283810360c085015290506110ab81856161cf565b60008060006060848603121561657c57600080fd5b833561658781615ef3565b92506020840135915060408401356001600160401b038111156165a957600080fd5b6165b586828701615d94565b9150509250925092565b600080600080604085870312156165d557600080fd5b84356001600160401b03808211156165ec57600080fd5b6165f888838901615cdf565b9096509450602087013591508082111561661157600080fd5b5061645987828801615cdf565b600080600080600060a0868803121561663657600080fd5b853561664181615ef3565b9450602086013561665181615ef3565b935060408601356001600160401b038082111561666d57600080fd5b61667989838a01616005565b9450606088013591508082111561668f57600080fd5b61669b89838a01616005565b935060808801359150808211156163f257600080fd5b600080600080606085870312156166c757600080fd5b84356166d281615ef3565b93506020850135925060408501356001600160401b0381111561644d57600080fd5b60006020828403121561670657600080fd5b81356001600160401b038116811461206757600080fd5b600080600080600060a0868803121561673557600080fd5b85356001600160401b038082111561674c57600080fd5b61675889838a01615f96565b9650602088013591508082111561676e57600080fd5b61677a89838a01616005565b9550604088013591508082111561679057600080fd5b61679c89838a01616060565b945060608801359150808211156167b257600080fd5b61669b89838a01616060565b600080604083850312156167d157600080fd5b82356167dc81615ef3565b946020939093013593505050565b600080600080600060a0868803121561680257600080fd5b853561680d81615ef3565b9450602086013561681d81615ef3565b9350604086013592506060860135915060808601356001600160401b0381111561684657600080fd5b6163ff88828901615d94565b8183823760009101908152919050565b60208082526018908201527f476f7665726e6f723a206f6e6c79476f7665726e616e63650000000000000000604082015260600190565b600181811c908216806168ad57607f821691505b6020821081036168cd57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201616911576169116168e9565b5060010190565b65ffffffffffff828116828216039080821115616937576169376168e9565b5092915050565b60208082526021908201527f476f7665726e6f723a2070726f706f73616c206e6f74207375636365737366756040820152601b60fa1b606082015260800190565b60006020828403121561699157600080fd5b81516001600160401b038111156169a757600080fd5b8201601f810184136169b857600080fd5b80516169c6615db382615d6d565b8181528560208385010111156169db57600080fd5b611349826020830160208601615e90565b81810381811115610fbb57610fbb6168e9565b634e487b7160e01b600052601260045260246000fd5b600082616a3257634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215616a4957600080fd5b815165ffffffffffff8116811461206757600080fd5b600060208284031215616a7157600080fd5b5051919050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b604081526000616ab5604083018688616a78565b8281036020840152611768818587616a78565b608081526000616adb608083018761618b565b8281036020840152616aed81876161cf565b90508281036040840152616b0181866161ff565b91505082606083015295945050505050565b8082028115828204841417610fbb57610fbb6168e9565b60a081526000616b3d60a083018861618b565b8281036020840152616b4f81886161cf565b90508281036040840152616b6381876161ff565b60608401959095525050608001529392505050565b60c081526000616b8b60c083018961618b565b8281036020840152616b9d81896161cf565b90508281036040840152616bb181886161ff565b60608401969096525050608081019290925260a0909101529392505050565b80820180821115610fbb57610fbb6168e9565b600060208284031215616bf557600080fd5b8151801515811461206757600080fd5b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60008251616c62818460208701615e90565b9190910192915050565b6001600160e01b0319831681528151600090616c8f816004850160208701615e90565b919091016004019392505050565b6001600160401b03818116838216019080821115616937576169376168e9565b60208082526021908201527f476f7665726e6f723a20696e76616c69642070726f706f73616c206c656e67746040820152600d60fb1b606082015260800190565b8981526001600160a01b038916602082015261012060408201819052600090616d298382018b61618b565b90508281036060840152616d3d818a6161cf565b90508281036080840152616d5181896161ff565b905082810360a0840152616d6581886161ff565b90508560c08401528460e0840152828103610100840152616d868185615eb4565b9c9b505050505050505050505050565b601f821115613bcd57600081815260208120601f850160051c81016020861015616dbd5750805b601f850160051c820191505b818110156117a157828155600101616dc9565b81516001600160401b03811115616df557616df5615d27565b616e0981616e038454616899565b84616d96565b602080601f831160018114616e3e5760008415616e265750858301515b600019600386901b1c1916600185901b1785556117a1565b600085815260208120601f198616915b82811015616e6d57888601518255948401946001909101908401616e4e565b5085821015616e8b5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b84815260ff84166020820152826040820152608060608201526000611b586080830184615eb4565b85815260ff8516602082015283604082015260a060608201526000616eeb60a0830185615eb4565b8281036080840152611c718185615eb456fe476f7665726e6f723a2072656c617920726576657274656420776974686f7574206d657373616765a164736f6c6343000811000a", - }, - { - ContractAddr: GovTokenContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/2dbebb57a0d436d6a30b78c1f123395035249035", - Code: "608060405234801561001057600080fd5b50600436106102065760003560e01c806370a082311161011a5780639ab24eb0116100ad578063d505accf1161007c578063d505accf1461049d578063dd62ed3e146104b0578063e5ed5b1e146104c3578063f1127ed8146104d6578063f1fad1041461051357600080fd5b80639ab24eb014610451578063a457c2d714610464578063a9059cbb14610477578063c3cda5201461048a57600080fd5b806384b0196e116100e957806384b0196e146103fc5780638e539e8c1461041757806391ddadf41461042a57806395d89b411461044957600080fd5b806370a08231146103aa57806379cc6790146103d35780637ecebe00146103e15780638129fc1c146103f457600080fd5b8063395093511161019d5780634bf5d7e91161016c5780634bf5d7e91461031b5780634bf6c88214610323578063587cde1e1461032b5780635c19a95c1461036f5780636fcfff451461038257600080fd5b806339509351146102cf5780633a46b1a8146102e257806342966c68146102f5578063448407751461030857600080fd5b806323b872dd116101d957806323b872dd1461028a5780633041949b1461029d578063313ce567146102b25780633644e515146102c757600080fd5b8063039c91fc1461020b57806306fdde031461024a578063095ea7b31461025f57806318160ddd14610282575b600080fd5b6102376102193660046120c7565b61013060209081526000928352604080842090915290825290205481565b6040519081526020015b60405180910390f35b61025261051b565b6040516102419190612140565b61027261026d366004612153565b6105ad565b6040519015158152602001610241565b603554610237565b61027261029836600461217d565b6105c7565b6102b06102ab3660046120c7565b6105eb565b005b60125b60405160ff9091168152602001610241565b610237610624565b6102726102dd366004612153565b610633565b6102376102f0366004612153565b610655565b6102b06103033660046121b9565b6106da565b6102b06103163660046121d2565b6106f3565b61025261076c565b6102b5600881565b610357610339366004612256565b6001600160a01b03908116600090815260fe60205260409020541690565b6040516001600160a01b039091168152602001610241565b6102b061037d366004612256565b610804565b610395610390366004612256565b610811565b60405163ffffffff9091168152602001610241565b6102376103b8366004612256565b6001600160a01b031660009081526033602052604090205490565b6102b0610303366004612153565b6102376103ef366004612256565b610833565b6102b0610851565b610404610a31565b6040516102419796959493929190612271565b6102376104253660046121b9565b610acf565b610432610b37565b60405165ffffffffffff9091168152602001610241565b610252610b42565b61023761045f366004612256565b610b51565b610272610472366004612153565b610bd3565b610272610485366004612153565b610c4e565b6102b0610498366004612318565b610c5c565b6102b06104ab366004612370565b610d92565b6102376104be3660046120c7565b610ef6565b6102b06104d13660046120c7565b610f21565b6104e96104e43660046123da565b610f51565b60408051825163ffffffff1681526020928301516001600160e01b03169281019290925201610241565b6102b5601181565b60606036805461052a9061241a565b80601f01602080910402602001604051908101604052809291908181526020018280546105569061241a565b80156105a35780601f10610578576101008083540402835291602001916105a3565b820191906000526020600020905b81548152906001019060200180831161058657829003601f168201915b5050505050905090565b6000336105bb818585610fd5565b60019150505b92915050565b6000336105d5858285610fee565b6105e0858585611068565b506001949350505050565b336120021461061657604051630f22c43960e41b815261200260048201526024015b60405180910390fd5b6106208282611081565b5050565b600061062e6111b1565b905090565b6000336105bb8185856106468383610ef6565b6106509190612464565b610fd5565b600061065f610b37565b65ffffffffffff1682106106b15760405162461bcd60e51b815260206004820152601960248201527804552433230566f7465733a20667574757265206c6f6f6b757603c1b604482015260640161060d565b6001600160a01b038316600090815260ff602052604090206106d390836111bb565b9392505050565b60405163e5d8776760e01b815260040160405180910390fd5b336120021461071957604051630f22c43960e41b8152612002600482015260240161060d565b8160005b818110156107655761075585858381811061073a5761073a612477565b905060200201602081019061074f9190612256565b84611081565b61075e8161248d565b905061071d565b5050505050565b606043610777610b37565b65ffffffffffff16146107cc5760405162461bcd60e51b815260206004820152601d60248201527f4552433230566f7465733a2062726f6b656e20636c6f636b206d6f6465000000604482015260640161060d565b5060408051808201909152601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000602082015290565b61080e33826112a4565b50565b6001600160a01b038116600090815260ff60205260408120546105c19061131e565b6001600160a01b038116600090815260cb60205260408120546105c1565b600054610100900460ff16158080156108715750600054600160ff909116105b8061088b5750303b15801561088b575060005460ff166001145b6108ee5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161060d565b6000805460ff191660011790558015610911576000805461ff0019166101001790555b3341146109315760405163022d8c9560e31b815260040160405180910390fd5b3a15610950576040516383f1b1d360e01b815260040160405180910390fd5b6109a4604051806040016040528060148152602001732129a19023b7bb32b93730b731b2902a37b5b2b760611b8152506040518060400160405280600681526020016533b7bb21272160d11b815250611387565b6109ac6113b8565b6109e1604051806040016040528060148152602001732129a19023b7bb32b93730b731b2902a37b5b2b760611b8152506113e1565b6109e96113b8565b801561080e576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b6000606080600080600060606097546000801b148015610a515750609854155b610a955760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b604482015260640161060d565b610a9d61142b565b610aa561143a565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b6000610ad9610b37565b65ffffffffffff168210610b2b5760405162461bcd60e51b815260206004820152601960248201527804552433230566f7465733a20667574757265206c6f6f6b757603c1b604482015260640161060d565b6105c1610100836111bb565b600061062e43611449565b60606037805461052a9061241a565b6001600160a01b038116600090815260ff60205260408120548015610bc0576001600160a01b038316600090815260ff6020526040902080546000198301908110610b9e57610b9e612477565b60009182526020909120015464010000000090046001600160e01b0316610bc3565b60005b6001600160e01b03169392505050565b60003381610be18286610ef6565b905083811015610c415760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161060d565b6105e08286868403610fd5565b6000336105bb818585611068565b83421115610cac5760405162461bcd60e51b815260206004820152601d60248201527f4552433230566f7465733a207369676e61747572652065787069726564000000604482015260640161060d565b604080517fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60208201526001600160a01b038816918101919091526060810186905260808101859052600090610d2690610d1e9060a001604051602081830303815290604052805190602001206114b0565b8585856114dd565b9050610d3181611505565b8614610d7f5760405162461bcd60e51b815260206004820152601960248201527f4552433230566f7465733a20696e76616c6964206e6f6e636500000000000000604482015260640161060d565b610d8981886112a4565b50505050505050565b83421115610de25760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e65000000604482015260640161060d565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9888888610e118c611505565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090506000610e6c826114b0565b90506000610e7c828787876114dd565b9050896001600160a01b0316816001600160a01b031614610edf5760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e61747572650000604482015260640161060d565b610eea8a8a8a610fd5565b50505050505050505050565b6001600160a01b03918216600090815260346020908152604080832093909416825291909152205490565b3361200214610f4757604051630f22c43960e41b8152612002600482015260240161060d565b61062082826112a4565b60408051808201909152600080825260208201526001600160a01b038316600090815260ff60205260409020805463ffffffff8416908110610f9557610f95612477565b60009182526020918290206040805180820190915291015463ffffffff8116825264010000000090046001600160e01b0316918101919091529392505050565b604051632028747160e01b815260040160405180910390fd5b6000610ffa8484610ef6565b9050600019811461106257818110156110555760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161060d565b6110628484848403610fd5565b50505050565b604051638cd22d1960e01b815260040160405180910390fd5b604051630913db4760e01b81526001600160a01b03828116600483015260009190841690630913db4790602401602060405180830381865afa1580156110cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ef91906124bc565b6001600160a01b03808516600090815261013060209081526040808320938716835292905220549091508181101561116857600061112d82846124d5565b6001600160a01b038087166000908152610130602090815260408083209389168352929052208490559050611162848261152d565b50611062565b8181111561106257600061117c83836124d5565b6001600160a01b0380871660009081526101306020908152604080832093891683529290522084905590506107658482611537565b600061062e611541565b8154600090818160058111156112155760006111d6846115b5565b6111e090856124d5565b600088815260209020909150869082015463ffffffff16111561120557809150611213565b611210816001612464565b92505b505b80821015611262576000611229838361169d565b600088815260209020909150869082015463ffffffff16111561124e5780915061125c565b611259816001612464565b92505b50611215565b801561128e576000868152602090208101600019015464010000000090046001600160e01b0316611291565b60005b6001600160e01b03169695505050505050565b6001600160a01b03828116600081815260fe6020818152604080842080546033845282862054949093528787166001600160a01b03198416811790915590519190951694919391928592917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a46110628284836116b8565b600063ffffffff8211156113835760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b606482015260840161060d565b5090565b600054610100900460ff166113ae5760405162461bcd60e51b815260040161060d906124e8565b61062082826117f6565b600054610100900460ff166113df5760405162461bcd60e51b815260040161060d906124e8565b565b600054610100900460ff166114085760405162461bcd60e51b815260040161060d906124e8565b61080e81604051806040016040528060018152602001603160f81b815250611836565b60606099805461052a9061241a565b6060609a805461052a9061241a565b600065ffffffffffff8211156113835760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203460448201526538206269747360d01b606482015260840161060d565b60006105c16114bd6111b1565b8360405161190160f01b8152600281019290925260228201526042902090565b60008060006114ee87878787611885565b915091506114fb81611949565b5095945050505050565b6001600160a01b038116600090815260cb602052604090208054600181018255905b50919050565b6106208282611a93565b6106208282611b1e565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f61156c611b37565b611574611b90565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b6000816000036115c757506000919050565b600060016115d484611bc1565b901c6001901b905060018184816115ed576115ed612533565b048201901c9050600181848161160557611605612533565b048201901c9050600181848161161d5761161d612533565b048201901c9050600181848161163557611635612533565b048201901c9050600181848161164d5761164d612533565b048201901c9050600181848161166557611665612533565b048201901c9050600181848161167d5761167d612533565b048201901c90506106d38182858161169757611697612533565b04611c55565b60006116ac6002848418612549565b6106d390848416612464565b816001600160a01b0316836001600160a01b0316141580156116da5750600081115b156117f1576001600160a01b03831615611768576001600160a01b038316600090815260ff60205260408120819061171590611c6b85611c77565b91509150846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724838360405161175d929190918252602082015260400190565b60405180910390a250505b6001600160a01b038216156117f1576001600160a01b038216600090815260ff60205260408120819061179e90611dec85611c77565b91509150836001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a72483836040516117e6929190918252602082015260400190565b60405180910390a250505b505050565b600054610100900460ff1661181d5760405162461bcd60e51b815260040161060d906124e8565b603661182983826125b9565b5060376117f182826125b9565b600054610100900460ff1661185d5760405162461bcd60e51b815260040161060d906124e8565b609961186983826125b9565b50609a61187682826125b9565b50506000609781905560985550565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156118bc5750600090506003611940565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611910573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661193957600060019250925050611940565b9150600090505b94509492505050565b600081600481111561195d5761195d612679565b036119655750565b600181600481111561197957611979612679565b036119c65760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161060d565b60028160048111156119da576119da612679565b03611a275760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161060d565b6003816004811115611a3b57611a3b612679565b0361080e5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161060d565b611a9d8282611df8565b6035546001600160e01b031015611b0f5760405162461bcd60e51b815260206004820152603060248201527f4552433230566f7465733a20746f74616c20737570706c79207269736b73206f60448201526f766572666c6f77696e6720766f74657360801b606482015260840161060d565b611062610100611dec83611c77565b611b288282611ec1565b611062610100611c6b83611c77565b600080611b4261142b565b805190915015611b59578051602090910120919050565b6097548015611b685792915050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4709250505090565b600080611b9b61143a565b805190915015611bb2578051602090910120919050565b6098548015611b685792915050565b600080608083901c15611bd657608092831c92015b604083901c15611be857604092831c92015b602083901c15611bfa57602092831c92015b601083901c15611c0c57601092831c92015b600883901c15611c1e57600892831c92015b600483901c15611c3057600492831c92015b600283901c15611c4257600292831c92015b600183901c156105c15760010192915050565b6000818310611c6457816106d3565b5090919050565b60006106d382846124d5565b82546000908190818115611cc45760008781526020902082016000190160408051808201909152905463ffffffff8116825264010000000090046001600160e01b03166020820152611cd9565b60408051808201909152600080825260208201525b905080602001516001600160e01b03169350611cf984868863ffffffff16565b9250600082118015611d235750611d0e610b37565b65ffffffffffff16816000015163ffffffff16145b15611d6857611d3183611ffc565b60008881526020902083016000190180546001600160e01b03929092166401000000000263ffffffff909216919091179055611de2565b866040518060400160405280611d8c611d7f610b37565b65ffffffffffff1661131e565b63ffffffff168152602001611da086611ffc565b6001600160e01b0390811690915282546001810184556000938452602093849020835194909301519091166401000000000263ffffffff909316929092179101555b5050935093915050565b60006106d38284612464565b6001600160a01b038216611e4e5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161060d565b8060356000828254611e609190612464565b90915550506001600160a01b0382166000818152603360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361062060008383612065565b6001600160a01b038216611f215760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b606482015260840161060d565b6001600160a01b03821660009081526033602052604090205481811015611f955760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b606482015260840161060d565b6001600160a01b03831660008181526033602090815260408083208686039055603580548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36117f183600084612065565b60006001600160e01b038211156113835760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b606482015260840161060d565b6117f18383836001600160a01b03808416600090815260fe60205260409020546117f191166001600160a01b03808516600090815260fe602052604090205416836116b8565b80356001600160a01b03811681146120c257600080fd5b919050565b600080604083850312156120da57600080fd5b6120e3836120ab565b91506120f1602084016120ab565b90509250929050565b6000815180845260005b8181101561212057602081850181015186830182015201612104565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006106d360208301846120fa565b6000806040838503121561216657600080fd5b61216f836120ab565b946020939093013593505050565b60008060006060848603121561219257600080fd5b61219b846120ab565b92506121a9602085016120ab565b9150604084013590509250925092565b6000602082840312156121cb57600080fd5b5035919050565b6000806000604084860312156121e757600080fd5b833567ffffffffffffffff808211156121ff57600080fd5b818601915086601f83011261221357600080fd5b81358181111561222257600080fd5b8760208260051b850101111561223757600080fd5b60209283019550935061224d91860190506120ab565b90509250925092565b60006020828403121561226857600080fd5b6106d3826120ab565b60ff60f81b881681526000602060e08184015261229160e084018a6120fa565b83810360408501526122a3818a6120fa565b606085018990526001600160a01b038816608086015260a0850187905284810360c0860152855180825283870192509083019060005b818110156122f5578351835292840192918401916001016122d9565b50909c9b505050505050505050505050565b803560ff811681146120c257600080fd5b60008060008060008060c0878903121561233157600080fd5b61233a876120ab565b9550602087013594506040870135935061235660608801612307565b92506080870135915060a087013590509295509295509295565b600080600080600080600060e0888a03121561238b57600080fd5b612394886120ab565b96506123a2602089016120ab565b955060408801359450606088013593506123be60808901612307565b925060a0880135915060c0880135905092959891949750929550565b600080604083850312156123ed57600080fd5b6123f6836120ab565b9150602083013563ffffffff8116811461240f57600080fd5b809150509250929050565b600181811c9082168061242e57607f821691505b60208210810361152757634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b808201808211156105c1576105c161244e565b634e487b7160e01b600052603260045260246000fd5b60006001820161249f5761249f61244e565b5060010190565b634e487b7160e01b600052604160045260246000fd5b6000602082840312156124ce57600080fd5b5051919050565b818103818111156105c1576105c161244e565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b634e487b7160e01b600052601260045260246000fd5b60008261256657634e487b7160e01b600052601260045260246000fd5b500490565b601f8211156117f157600081815260208120601f850160051c810160208610156125925750805b601f850160051c820191505b818110156125b15782815560010161259e565b505050505050565b815167ffffffffffffffff8111156125d3576125d36124a6565b6125e7816125e1845461241a565b8461256b565b602080601f83116001811461261c57600084156126045750858301515b600019600386901b1c1916600185901b1785556125b1565b600085815260208120601f198616915b8281101561264b5788860151825594840194600190910190840161262c565b50858210156126695787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052602160045260246000fdfea164736f6c6343000811000a", - }, - { - ContractAddr: TimelockContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/2dbebb57a0d436d6a30b78c1f123395035249035", - Code: "6080604052600436106101e75760003560e01c80638129fc1c11610102578063bc197c8111610095578063e38335e511610064578063e38335e5146105e1578063f1fad104146105f4578063f23a6e6114610609578063f27a0c921461063557600080fd5b8063bc197c8114610548578063c4d252f514610574578063d45c443514610594578063d547741f146105c157600080fd5b8063a217fddf116100d1578063a217fddf146104d1578063ac431751146104e6578063b08e51c014610506578063b1c5f4271461052857600080fd5b80638129fc1c1461045a5780638f2a0bb01461046f5780638f61f4f51461048f57806391d14854146104b157600080fd5b80632ab0f5291161017a5780634bf6c882116101495780634bf6c882146103d3578063584b153e146103fa57806364d623531461041a5780638065657f1461043a57600080fd5b80632ab0f529146103435780632f2ff15d1461037357806331d507501461039357806336568abe146103b357600080fd5b8063134008d3116101b6578063134008d31461029c57806313bc9f20146102af578063150b7a02146102cf578063248a9ca31461031357600080fd5b806301d5062a146101f357806301ffc9a71461021557806307bd02651461024a5780630d3cf6fc1461027a57600080fd5b366101ee57005b600080fd5b3480156101ff57600080fd5b5061021361020e366004611aa6565b61064a565b005b34801561022157600080fd5b50610235610230366004611b1a565b61070e565b60405190151581526020015b60405180910390f35b34801561025657600080fd5b5061026c60008051602061258a83398151915281565b604051908152602001610241565b34801561028657600080fd5b5061026c60008051602061254a83398151915281565b6102136102aa366004611b44565b610739565b3480156102bb57600080fd5b506102356102ca366004611baf565b6107dc565b3480156102db57600080fd5b506102fa6102ea366004611c7d565b630a85bd0160e11b949350505050565b6040516001600160e01b03199091168152602001610241565b34801561031f57600080fd5b5061026c61032e366004611baf565b60009081526065602052604090206001015490565b34801561034f57600080fd5b5061023561035e366004611baf565b60009081526097602052604090205460011490565b34801561037f57600080fd5b5061021361038e366004611ce4565b610802565b34801561039f57600080fd5b506102356103ae366004611baf565b61082c565b3480156103bf57600080fd5b506102136103ce366004611ce4565b610845565b3480156103df57600080fd5b506103e8600881565b60405160ff9091168152602001610241565b34801561040657600080fd5b50610235610415366004611baf565b6108c8565b34801561042657600080fd5b50610213610435366004611baf565b6108df565b34801561044657600080fd5b5061026c610455366004611b44565b610983565b34801561046657600080fd5b506102136109c2565b34801561047b57600080fd5b5061021361048a366004611d54565b610b74565b34801561049b57600080fd5b5061026c60008051602061256a83398151915281565b3480156104bd57600080fd5b506102356104cc366004611ce4565b610cf5565b3480156104dd57600080fd5b5061026c600081565b3480156104f257600080fd5b50610213610501366004611e05565b610d20565b34801561051257600080fd5b5061026c6000805160206125aa83398151915281565b34801561053457600080fd5b5061026c610543366004611e70565b610f0a565b34801561055457600080fd5b506102fa610563366004611f97565b63bc197c8160e01b95945050505050565b34801561058057600080fd5b5061021361058f366004611baf565b610f4f565b3480156105a057600080fd5b5061026c6105af366004611baf565b60009081526097602052604090205490565b3480156105cd57600080fd5b506102136105dc366004611ce4565b611012565b6102136105ef366004611e70565b611037565b34801561060057600080fd5b506103e8601181565b34801561061557600080fd5b506102fa610624366004612040565b63f23a6e6160e01b95945050505050565b34801561064157600080fd5b5060985461026c565b60008051602061256a833981519152610662816111af565b6000610672898989898989610983565b905061067e81846111b9565b6000817f4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca8b8b8b8b8b8a6040516106ba969594939291906120cd565b60405180910390a3831561070357807f20fda5fd27a1ea7bf5b9567f143ac5470bb059374a27e8f67cb44f946f6d0387856040516106fa91815260200190565b60405180910390a25b505050505050505050565b60006001600160e01b03198216630271189760e51b14806107335750610733826112a8565b92915050565b60008051602061258a833981519152610753816000610cf5565b6107615761076181336112dd565b6000610771888888888888610983565b905061077d8185611336565b610789888888886113d1565b6000817fc2617efa69bab66782fa219543714338489c4e9e178271560a91b82c3f612b588a8a8a8a6040516107c1949392919061210a565b60405180910390a36107d2816114a4565b5050505050505050565b6000818152609760205260408120546001811180156107fb5750428111155b9392505050565b60008281526065602052604090206001015461081d816111af565b61082783836114dd565b505050565b60008181526097602052604081205481905b1192915050565b6001600160a01b03811633146108ba5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6108c48282611563565b5050565b60008181526097602052604081205460019061083e565b3330146109425760405162461bcd60e51b815260206004820152602b60248201527f54696d656c6f636b436f6e74726f6c6c65723a2063616c6c6572206d7573742060448201526a62652074696d656c6f636b60a81b60648201526084016108b1565b60985460408051918252602082018390527f11c24f4ead16507c69ac467fbd5e4eed5fb5c699626d2cc6d66421df253886d5910160405180910390a1609855565b60008686868686866040516020016109a0969594939291906120cd565b6040516020818303038152906040528051906020012090509695505050505050565b600054610100900460ff16158080156109e25750600054600160ff909116105b806109fc5750303b1580156109fc575060005460ff166001145b610a5f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016108b1565b6000805460ff191660011790558015610a82576000805461ff0019166101001790555b334114610aa25760405163022d8c9560e31b815260040160405180910390fd5b3a15610ac1576040516383f1b1d360e01b815260040160405180910390fd5b6040805160018082528183019092526000916020808301908036833701905050905061200481600081518110610af957610af961213c565b60200260200101906001600160a01b031690816001600160a01b031681525050610b2a6201518082836120046115ca565b508015610b71576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50565b60008051602061256a833981519152610b8c816111af565b888714610bab5760405162461bcd60e51b81526004016108b190612152565b888514610bca5760405162461bcd60e51b81526004016108b190612152565b6000610bdc8b8b8b8b8b8b8b8b610f0a565b9050610be881846111b9565b60005b8a811015610ca65780827f4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca8e8e85818110610c2857610c2861213c565b9050602002016020810190610c3d9190612195565b8d8d86818110610c4f57610c4f61213c565b905060200201358c8c87818110610c6857610c6861213c565b9050602002810190610c7a91906121b0565b8c8b604051610c8e969594939291906120cd565b60405180910390a3610c9f8161220c565b9050610beb565b508315610ce857807f20fda5fd27a1ea7bf5b9567f143ac5470bb059374a27e8f67cb44f946f6d038785604051610cdf91815260200190565b60405180910390a25b5050505050505050505050565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b3361100714610d4657604051630f22c43960e41b815261100760048201526024016108b1565b610da9604051806040016040528060088152602001676d696e44656c617960c01b81525085858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092939250506116039050565b15610ea65760208114610dd75783838383604051630a5a604160e01b81526004016108b19493929190612225565b604080516020601f8401819004810282018101909252828152600091610e1891858580838501838280828437600092019190915250929392505061165c9050565b9050801580610e2957506212750081115b15610e4f5784848484604051630a5a604160e01b81526004016108b19493929190612225565b6040516364d6235360e01b81526004810182905230906364d6235390602401600060405180830381600087803b158015610e8857600080fd5b505af1158015610e9c573d6000803e3d6000fd5b5050505050610ec7565b838383836040516325ee20d560e21b81526004016108b19493929190612225565b7ff1ce9b2cbf50eeb05769a29e2543fd350cab46894a7dd9978a12d534bb20e63384848484604051610efc9493929190612225565b60405180910390a150505050565b60008888888888888888604051602001610f2b9897969594939291906122da565b60405160208183030381529060405280519060200120905098975050505050505050565b6000805160206125aa833981519152610f67816111af565b610f70826108c8565b610fd65760405162461bcd60e51b815260206004820152603160248201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e2063616044820152701b9b9bdd0818994818d85b98d95b1b1959607a1b60648201526084016108b1565b6000828152609760205260408082208290555183917fbaa1eb22f2a492ba1a5fea61b8df4d27c6c8b5f3971e63bb58fa14ff72eedb7091a25050565b60008281526065602052604090206001015461102d816111af565b6108278383611563565b60008051602061258a833981519152611051816000610cf5565b61105f5761105f81336112dd565b87861461107e5760405162461bcd60e51b81526004016108b190612152565b87841461109d5760405162461bcd60e51b81526004016108b190612152565b60006110af8a8a8a8a8a8a8a8a610f0a565b90506110bb8185611336565b60005b898110156111995760008b8b838181106110da576110da61213c565b90506020020160208101906110ef9190612195565b905060008a8a848181106111055761110561213c565b9050602002013590503660008a8a868181106111235761112361213c565b905060200281019061113591906121b0565b91509150611145848484846113d1565b84867fc2617efa69bab66782fa219543714338489c4e9e178271560a91b82c3f612b588686868660405161117c949392919061210a565b60405180910390a350505050806111929061220c565b90506110be565b506111a3816114a4565b50505050505050505050565b610b7181336112dd565b6111c28261082c565b156112275760405162461bcd60e51b815260206004820152602f60248201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e20616c60448201526e1c9958591e481cd8da19591d5b1959608a1b60648201526084016108b1565b6098548110156112885760405162461bcd60e51b815260206004820152602660248201527f54696d656c6f636b436f6e74726f6c6c65723a20696e73756666696369656e746044820152652064656c617960d01b60648201526084016108b1565b611292814261237b565b6000928352609760205260409092209190915550565b60006001600160e01b03198216637965db0b60e01b148061073357506301ffc9a760e01b6001600160e01b0319831614610733565b6112e78282610cf5565b6108c4576112f481611661565b6112ff836020611673565b6040516020016113109291906123b2565b60408051601f198184030181529082905262461bcd60e51b82526108b191600401612427565b61133f826107dc565b61135b5760405162461bcd60e51b81526004016108b19061245a565b80158061137657506000818152609760205260409020546001145b6108c45760405162461bcd60e51b815260206004820152602660248201527f54696d656c6f636b436f6e74726f6c6c65723a206d697373696e6720646570656044820152656e64656e637960d01b60648201526084016108b1565b6000846001600160a01b03168484846040516113ee9291906124a4565b60006040518083038185875af1925050503d806000811461142b576040519150601f19603f3d011682016040523d82523d6000602084013e611430565b606091505b505090508061149d5760405162461bcd60e51b815260206004820152603360248201527f54696d656c6f636b436f6e74726f6c6c65723a20756e6465726c79696e6720746044820152721c985b9cd858dd1a5bdb881c995d995c9d1959606a1b60648201526084016108b1565b5050505050565b6114ad816107dc565b6114c95760405162461bcd60e51b81526004016108b19061245a565b600090815260976020526040902060019055565b6114e78282610cf5565b6108c45760008281526065602090815260408083206001600160a01b03851684529091529020805460ff1916600117905561151f3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b61156d8282610cf5565b156108c45760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600054610100900460ff166115f15760405162461bcd60e51b81526004016108b1906124b4565b6115fd8484848461180e565b50505050565b60008160405160200161161691906124ff565b604051602081830303815290604052805190602001208360405160200161163d91906124ff565b6040516020818303038152906040528051906020012014905092915050565b015190565b60606107336001600160a01b03831660145b6060600061168283600261251b565b61168d90600261237b565b6001600160401b038111156116a4576116a4611bc8565b6040519080825280601f01601f1916602001820160405280156116ce576020820181803683370190505b509050600360fc1b816000815181106116e9576116e961213c565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106117185761171861213c565b60200101906001600160f81b031916908160001a905350600061173c84600261251b565b61174790600161237b565b90505b60018111156117bf576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061177b5761177b61213c565b1a60f81b8282815181106117915761179161213c565b60200101906001600160f81b031916908160001a90535060049490941c936117b881612532565b905061174a565b5083156107fb5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016108b1565b600054610100900460ff166118355760405162461bcd60e51b81526004016108b1906124b4565b61184d60008051602061254a833981519152806119ed565b61187360008051602061256a83398151915260008051602061254a8339815191526119ed565b61189960008051602061258a83398151915260008051602061254a8339815191526119ed565b6118bf6000805160206125aa83398151915260008051602061254a8339815191526119ed565b6118d760008051602061254a83398151915230611a38565b6001600160a01b038116156118fe576118fe60008051602061254a83398151915282611a38565b60005b835181101561196f5761193b60008051602061256a83398151915285838151811061192e5761192e61213c565b6020026020010151611a38565b61195f6000805160206125aa83398151915285838151811061192e5761192e61213c565b6119688161220c565b9050611901565b5060005b82518110156119b0576119a060008051602061258a83398151915284838151811061192e5761192e61213c565b6119a98161220c565b9050611973565b5060988490556040805160008152602081018690527f11c24f4ead16507c69ac467fbd5e4eed5fb5c699626d2cc6d66421df253886d59101610efc565b600082815260656020526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b6108c482826114dd565b80356001600160a01b0381168114611a5957600080fd5b919050565b60008083601f840112611a7057600080fd5b5081356001600160401b03811115611a8757600080fd5b602083019150836020828501011115611a9f57600080fd5b9250929050565b600080600080600080600060c0888a031215611ac157600080fd5b611aca88611a42565b96506020880135955060408801356001600160401b03811115611aec57600080fd5b611af88a828b01611a5e565b989b979a50986060810135976080820135975060a09091013595509350505050565b600060208284031215611b2c57600080fd5b81356001600160e01b0319811681146107fb57600080fd5b60008060008060008060a08789031215611b5d57600080fd5b611b6687611a42565b95506020870135945060408701356001600160401b03811115611b8857600080fd5b611b9489828a01611a5e565b979a9699509760608101359660809091013595509350505050565b600060208284031215611bc157600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611c0657611c06611bc8565b604052919050565b600082601f830112611c1f57600080fd5b81356001600160401b03811115611c3857611c38611bc8565b611c4b601f8201601f1916602001611bde565b818152846020838601011115611c6057600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215611c9357600080fd5b611c9c85611a42565b9350611caa60208601611a42565b92506040850135915060608501356001600160401b03811115611ccc57600080fd5b611cd887828801611c0e565b91505092959194509250565b60008060408385031215611cf757600080fd5b82359150611d0760208401611a42565b90509250929050565b60008083601f840112611d2257600080fd5b5081356001600160401b03811115611d3957600080fd5b6020830191508360208260051b8501011115611a9f57600080fd5b600080600080600080600080600060c08a8c031215611d7257600080fd5b89356001600160401b0380821115611d8957600080fd5b611d958d838e01611d10565b909b50995060208c0135915080821115611dae57600080fd5b611dba8d838e01611d10565b909950975060408c0135915080821115611dd357600080fd5b50611de08c828d01611d10565b9a9d999c50979a969997986060880135976080810135975060a0013595509350505050565b60008060008060408587031215611e1b57600080fd5b84356001600160401b0380821115611e3257600080fd5b611e3e88838901611a5e565b90965094506020870135915080821115611e5757600080fd5b50611e6487828801611a5e565b95989497509550505050565b60008060008060008060008060a0898b031215611e8c57600080fd5b88356001600160401b0380821115611ea357600080fd5b611eaf8c838d01611d10565b909a50985060208b0135915080821115611ec857600080fd5b611ed48c838d01611d10565b909850965060408b0135915080821115611eed57600080fd5b50611efa8b828c01611d10565b999c989b509699959896976060870135966080013595509350505050565b600082601f830112611f2957600080fd5b813560206001600160401b03821115611f4457611f44611bc8565b8160051b611f53828201611bde565b9283528481018201928281019087851115611f6d57600080fd5b83870192505b84831015611f8c57823582529183019190830190611f73565b979650505050505050565b600080600080600060a08688031215611faf57600080fd5b611fb886611a42565b9450611fc660208701611a42565b935060408601356001600160401b0380821115611fe257600080fd5b611fee89838a01611f18565b9450606088013591508082111561200457600080fd5b61201089838a01611f18565b9350608088013591508082111561202657600080fd5b5061203388828901611c0e565b9150509295509295909350565b600080600080600060a0868803121561205857600080fd5b61206186611a42565b945061206f60208701611a42565b9350604086013592506060860135915060808601356001600160401b0381111561209857600080fd5b61203388828901611c0e565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60018060a01b038716815285602082015260a0604082015260006120f560a0830186886120a4565b60608301949094525060800152949350505050565b60018060a01b03851681528360208201526060604082015260006121326060830184866120a4565b9695505050505050565b634e487b7160e01b600052603260045260246000fd5b60208082526023908201527f54696d656c6f636b436f6e74726f6c6c65723a206c656e677468206d69736d616040820152620e8c6d60eb1b606082015260800190565b6000602082840312156121a757600080fd5b6107fb82611a42565b6000808335601e198436030181126121c757600080fd5b8301803591506001600160401b038211156121e157600080fd5b602001915036819003821315611a9f57600080fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161221e5761221e6121f6565b5060010190565b6040815260006122396040830186886120a4565b8281036020840152611f8c8185876120a4565b818352600060208085019450848460051b86018460005b878110156122cd5783830389528135601e1988360301811261228457600080fd5b870185810190356001600160401b0381111561229f57600080fd5b8036038213156122ae57600080fd5b6122b98582846120a4565b9a87019a9450505090840190600101612263565b5090979650505050505050565b60a0808252810188905260008960c08301825b8b81101561231b576001600160a01b0361230684611a42565b168252602092830192909101906001016122ed565b5083810360208501528881526001600160fb1b0389111561233b57600080fd5b8860051b9150818a60208301370182810360209081016040850152612363908201878961224c565b60608401959095525050608001529695505050505050565b80820180821115610733576107336121f6565b60005b838110156123a9578181015183820152602001612391565b50506000910152565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516123ea81601785016020880161238e565b7001034b99036b4b9b9b4b733903937b6329607d1b601791840191820152835161241b81602884016020880161238e565b01602801949350505050565b602081526000825180602084015261244681604085016020870161238e565b601f01601f19169190910160400192915050565b6020808252602a908201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e206973604082015269206e6f7420726561647960b01b606082015260800190565b8183823760009101908152919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6000825161251181846020870161238e565b9190910192915050565b8082028115828204841417610733576107336121f6565b600081612541576125416121f6565b50600019019056fe5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca5b09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc1d8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63fd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f783a164736f6c6343000811000a", - }, - { - ContractAddr: TokenRecoverPortalContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/2dbebb57a0d436d6a30b78c1f123395035249035", - Code: "608060405234801561001057600080fd5b506004361061010b5760003560e01c80638129fc1c116100a2578063b187bd2611610071578063b187bd261461022c578063bfb5a6a114610237578063e33f8d321461024a578063e842426a1461026d578063f1fad1041461029857600080fd5b80638129fc1c146101fc5780638456cb59146102045780639fcb50121461020c578063ac4317511461021957600080fd5b80634a49ac4c116100de5780634a49ac4c1461017c5780634bf6c8821461018f578063572c9980146101a957806374be2150146101bc57600080fd5b8063046f7da2146101105780632eb4a7ab1461011a578063417c73a7146101365780634838d16514610149575b600080fd5b6101186102a0565b005b61012360685481565b6040519081526020015b60405180910390f35b6101186101443660046116a8565b610328565b61016c6101573660046116a8565b60346020526000908152604090205460ff1681565b604051901515815260200161012d565b61011861018a3660046116a8565b6103a4565b610197600881565b60405160ff909116815260200161012d565b6101186101b73660046116c3565b61041d565b6101ef6040518060400160405280601481526020017342696e616e63652d436861696e2d54696772697360601b81525081565b60405161012d919061173f565b6101186104b3565b610118610625565b60695461016c9060ff1681565b61011861022736600461179b565b6106b1565b60335460ff1661016c565b61011861024536600461184c565b610ad0565b61016c610258366004611926565b6000908152606a602052604090205460ff1690565b606754610280906001600160a01b031681565b6040516001600160a01b03909116815260200161012d565b610197601181565b60335461010090046001600160a01b031633146102d0576040516306fbb1e360e01b815260040160405180910390fd5b60335460ff166102f357604051636cd6020160e01b815260040160405180910390fd5b6033805460ff191690556040517f62451d457bc659158be6e6247f56ec1df424a5c7597f71c20c2bc44e0965c8f990600090a1565b60335461010090046001600160a01b03163314610358576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b038116600081815260346020526040808220805460ff19166001179055517f7fd26be6fc92aff63f1f4409b2b2ddeb272a888031d7f55ec830485ec61941869190a250565b60335461010090046001600160a01b031633146103d4576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b038116600081815260346020526040808220805460ff19169055517fe0db3499b7fdc3da4cddff5f45d694549c19835e7f719fb5606d3ad1a5de40119190a250565b60335461010090046001600160a01b0316331461044d576040516306fbb1e360e01b815260040160405180910390fd5b604051638525db0360e01b8152600481018390526001600160a01b038216602482015261100490638525db0390604401600060405180830381600087803b15801561049757600080fd5b505af11580156104ab573d6000803e3d6000fd5b505050505050565b600054610100900460ff16158080156104d35750600054600160ff909116105b806104ed5750303b1580156104ed575060005460ff166001145b6105555760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff191660011790558015610578576000805461ff0019166101001790555b3341146105985760405163022d8c9560e31b815260040160405180910390fd5b3a156105b7576040516383f1b1d360e01b815260040160405180910390fd5b6105bf610e30565b6105dc7308e68ec70fa3b629784fdb28887e206ce8561e08610e5d565b8015610622576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50565b60335461010090046001600160a01b03163314610655576040516306fbb1e360e01b815260040160405180910390fd5b60335460ff161561067957604051631785c68160e01b815260040160405180910390fd5b6033805460ff191660011790556040517f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e75290600090a1565b33611007146106d757604051630f22c43960e41b8152611007600482015260240161054c565b6107416040518060400160405280600f81526020016e617070726f76616c4164647265737360881b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050610eac9050565b1561080b576014811461076f5783838383604051630a5a604160e01b815260040161054c9493929190611968565b60006107b5601484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050610f069050565b90506001600160a01b0381166107e65784848484604051630a5a604160e01b815260040161054c9493929190611968565b606780546001600160a01b0319166001600160a01b0392909216919091179055610a8d565b6108706040518060400160405280600a8152602001691b595c9adb19549bdbdd60b21b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050610eac9050565b156109405760695460ff1615610899576040516379b3306f60e11b815260040160405180910390fd5b602081146108c25783838383604051630a5a604160e01b815260040161054c9493929190611968565b604080516020601f8401819004810282018101909252828152600091610903918585808385018382808284376000920191909152509293925050610f069050565b90508061092b5784848484604051630a5a604160e01b815260040161054c9493929190611968565b6068556069805460ff19166001179055610a8d565b6109b86040518060400160405280601b81526020017f746f6b656e5265636f766572506f7274616c50726f746563746f72000000000081525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050610eac9050565b15610a6c57601481146109e65783838383604051630a5a604160e01b815260040161054c9493929190611968565b6000610a2c601484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050610f069050565b90506001600160a01b038116610a5d5784848484604051630a5a604160e01b815260040161054c9493929190611968565b610a6681610f0b565b50610a8d565b838383836040516325ee20d560e21b815260040161054c9493929190611968565b7ff1ce9b2cbf50eeb05769a29e2543fd350cab46894a7dd9978a12d534bb20e63384848484604051610ac29493929190611968565b60405180910390a150505050565b60695460ff16610af35760405163678f619760e11b815260040160405180910390fd5b606854610b135760405163678f619760e11b815260040160405180910390fd5b6067546001600160a01b0316610b3c57604051631a1b977b60e31b815260040160405180910390fd5b60335460ff1615610b6057604051631785c68160e01b815260040160405180910390fd5b610b68610f72565b6000610bf689898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a9081908401838280828437600081840152601f19601f82011690508083019250505050505050610bf18e8e33610fcb565b6110ec565b90506000818c8c604051602001610c0f9392919061199a565b604051602081830303815290604052805190602001209050610c40816000908152606a602052604090205460ff1690565b15610c5d57604051623e493160e81b815260040160405180910390fd5b610d053389898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a908190840183828082843760009201919091525050604080516020808c0282810182019093528b82528994509092508b918b918291908501908490808284376000920191909152506111c492505050565b610d468484808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505060685491508490506112cf565b610d63576040516309bde33960e01b815260040160405180910390fd5b6000818152606a602052604090819020805460ff191660011790555163799758b960e01b8152600481018d9052336024820152604481018c90526110049063799758b990606401600060405180830381600087803b158015610dc457600080fd5b505af1158015610dd8573d6000803e3d6000fd5b505050507f39cc0b7297a0ef9102d75ebc4919ffec0347d50008c2b865eda4125d5812cb64828d338e604051610e1194939291906119c1565b60405180910390a15050610e2460018055565b50505050505050505050565b600054610100900460ff16610e575760405162461bcd60e51b815260040161054c906119f9565b60018055565b600054610100900460ff16610e845760405162461bcd60e51b815260040161054c906119f9565b603380546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b600081604051602001610ebf9190611a44565b6040516020818303038152906040528051906020012083604051602001610ee69190611a44565b604051602081830303815290604052805190602001201490505b92915050565b015190565b6033546040516001600160a01b0380841692610100900416907f44fc1b38a4abaa91ebd1b628a5b259a698f86238c8217d68f516e87769c60c0b90600090a3603380546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b600260015403610fc45760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161054c565b6002600155565b600060026040518060400160405280601481526020017342696e616e63652d436861696e2d54696772697360601b8152506110288560405160200161101291815260200190565b60405160208183030381529060405260006112e5565b6040516bffffffffffffffffffffffff19606087901b1660208201526110619060340160405160208183030381529060405260016112e5565b6110778860405160200161101291815260200190565b60405160200161108a9493929190611a60565b60408051601f19818403018152908290526110a491611a44565b602060405180830381855afa1580156110c1573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906110e49190611b8f565b949350505050565b6060835160211461111057604051638152ea1b60e01b815260040160405180910390fd5b825160401461113257604051635e4bd79760e11b815260040160405180910390fd5b604080516020808252818301909252600091602082018180368337019050509050826020820152600085858360405160200161117093929190611bbe565b60408051808303601f190181526014808452838301909252925060009190602082018180368337019050509050815160146020830182602086016069600019fa6111b957600080fd5b509695505050505050565b606060005b825181101561122257818382815181106111e5576111e5611c01565b60200260200101516040516020016111fe929190611c17565b6040516020818303038152906040529150808061121a90611c4f565b9150506111c9565b5060006040518060400160405280601481526020017342696e616e63652d436861696e2d54696772697360601b8152508787866068548660405160200161126e96959493929190611c68565b60408051601f1981840301815291905280516020909101206067549091506001600160a01b031661129f86836114b7565b6001600160a01b0316146112c6576040516356b00a4f60e11b815260040160405180910390fd5b50505050505050565b6000826112dc8584611551565b14949350505050565b60606000835160026112f79190611cd9565b67ffffffffffffffff81111561130f5761130f611ba8565b6040519080825280601f01601f191660200182016040528015611339576020820181803683370190505b5060408051808201909152601081526f181899199a1a9b1b9c1cb0b131b232b360811b602082015290915060005b855181101561147f5781825187838151811061138557611385611c01565b0160200151611397919060f81c611d06565b815181106113a7576113a7611c01565b01602001516001600160f81b031916836113c2836002611cd9565b815181106113d2576113d2611c01565b60200101906001600160f81b031916908160001a9053508182518783815181106113fe576113fe611c01565b0160200151611410919060f81c611d1a565b8151811061142057611420611c01565b01602001516001600160f81b0319168361143b836002611cd9565b611446906001611d2e565b8151811061145657611456611c01565b60200101906001600160f81b031916908160001a9053508061147781611c4f565b915050611367565b5083156114af57816040516020016114979190611d41565b60405160208183030381529060405292505050610f00565b509392505050565b600082516041146114db576040516356b00a4f60e11b815260040160405180910390fd5b60208301516040840151606085015160001a601b81101561150457611501601b82611d6b565b90505b601b8160ff1610806115195750601c8160ff16115b15611537576040516356b00a4f60e11b815260040160405180910390fd5b600061154586838686611596565b50979650505050505050565b600081815b84518110156114af576115828286838151811061157557611575611c01565b602002602001015161165a565b91508061158e81611c4f565b915050611556565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156115cd5750600090506003611651565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611621573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661164a57600060019250925050611651565b9150600090505b94509492505050565b6000818310611676576000828152602084905260409020611685565b60008381526020839052604090205b9392505050565b80356001600160a01b03811681146116a357600080fd5b919050565b6000602082840312156116ba57600080fd5b6116858261168c565b600080604083850312156116d657600080fd5b823591506116e66020840161168c565b90509250929050565b60005b8381101561170a5781810151838201526020016116f2565b50506000910152565b6000815180845261172b8160208601602086016116ef565b601f01601f19169290920160200192915050565b6020815260006116856020830184611713565b60008083601f84011261176457600080fd5b50813567ffffffffffffffff81111561177c57600080fd5b60208301915083602082850101111561179457600080fd5b9250929050565b600080600080604085870312156117b157600080fd5b843567ffffffffffffffff808211156117c957600080fd5b6117d588838901611752565b909650945060208701359150808211156117ee57600080fd5b506117fb87828801611752565b95989497509550505050565b60008083601f84011261181957600080fd5b50813567ffffffffffffffff81111561183157600080fd5b6020830191508360208260051b850101111561179457600080fd5b60008060008060008060008060008060c08b8d03121561186b57600080fd5b8a35995060208b0135985060408b013567ffffffffffffffff8082111561189157600080fd5b61189d8e838f01611752565b909a50985060608d01359150808211156118b657600080fd5b6118c28e838f01611752565b909850965060808d01359150808211156118db57600080fd5b6118e78e838f01611752565b909650945060a08d013591508082111561190057600080fd5b5061190d8d828e01611807565b915080935050809150509295989b9194979a5092959850565b60006020828403121561193857600080fd5b5035919050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60408152600061197c60408301868861193f565b828103602084015261198f81858761193f565b979650505050505050565b600084516119ac8184602089016116ef565b91909101928352506020820152604001919050565b6080815260006119d46080830187611713565b6020830195909552506001600160a01b03929092166040830152606090910152919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60008251611a568184602087016116ef565b9190910192915050565b7f7b226163636f756e745f6e756d626572223a2230222c22636861696e5f6964228152611d1160f11b602082015260008551611aa3816022850160208a016116ef565b7f222c2264617461223a6e756c6c2c226d656d6f223a22222c226d736773223a5b6022918401918201526a3d9130b6b7bab73a111d1160a91b60428201528551611af481604d840160208a016116ef565b6e1116113932b1b4b834b2b73a111d1160891b604d92909101918201528451611b2481605c8401602089016116ef565b711116113a37b5b2b72fb9bcb6b137b6111d1160711b605c92909101918201528351611b5781606e8401602088016116ef565b7f227d5d2c2273657175656e6365223a2230222c22736f75726365223a2230227d606e9290910191820152608e019695505050505050565b600060208284031215611ba157600080fd5b5051919050565b634e487b7160e01b600052604160045260246000fd5b60008451611bd08184602089016116ef565b845190830190611be48183602089016116ef565b8451910190611bf78183602088016116ef565b0195945050505050565b634e487b7160e01b600052603260045260246000fd5b60008351611c298184602088016116ef565b9190910191825250602001919050565b634e487b7160e01b600052601160045260246000fd5b600060018201611c6157611c61611c39565b5060010190565b60008751611c7a818460208c016116ef565b606088901b6bffffffffffffffffffffffff19169083019081528651611ca7816014840160208b016116ef565b0160148101869052603481018590528351611cc98160548401602088016116ef565b0160540198975050505050505050565b8082028115828204841417610f0057610f00611c39565b634e487b7160e01b600052601260045260246000fd5b600082611d1557611d15611cf0565b500490565b600082611d2957611d29611cf0565b500690565b80820180821115610f0057610f00611c39565b61060f60f31b815260008251611d5e8160028501602087016116ef565b9190910160020192915050565b60ff8181168382160190811115610f0057610f00611c3956fea164736f6c6343000811000a", - }, - }, - } - - FeynmanUpgrade[networkname.ChapelChainName] = &Upgrade{ - UpgradeName: "feynman", - Configs: []*UpgradeConfig{ - { - ContractAddr: ValidatorContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/9d09d0a3d6332460a810188261ec8195e05aa218", - Code: "6080604052600436106104fb5760003560e01c806388b32f111161028c578063c6d339451161015a578063e40716a1116100cc578063f92eb86b11610085578063f92eb86b14610d2d578063f9a2bbc714610d42578063fc3e590814610d57578063fccc281314610d6c578063fd4ad81f14610d81578063fd6a687914610db057610502565b8063e40716a114610c9b578063ea321e4914610cb0578063eb57e20214610cd0578063eda5868c14610cf0578063f1fad10414610d05578063f340fa0114610d1a57610502565b8063d86222d51161011e578063d86222d514610c1d578063daacdb6614610c32578063dc927faf14610c47578063df8079e914610c5c578063e086c7b114610c71578063e1c7392a14610c8657610502565b8063c6d3394514610bbe578063c81b166214610bd3578063c8509d811461098d578063ce910b0c14610be8578063d68fb56a14610c0857610502565b8063a78abc16116101fe578063ad3c9da6116101b7578063ad3c9da614610b3d578063aef198a914610b5d578063b7ab4db514610b72578063b8cf4ef114610b94578063bf9f4995146106fe578063c466689d14610ba957610502565b8063a78abc1614610ab4578063aa82dce114610ac9578063aad5606314610ade578063aaf5eb6814610af3578063ab51bb9614610b08578063ac43175114610b1d57610502565b806396713da91161025057806396713da914610a365780639dc0926214610a4b5780639fe0f81614610a60578063a0dc275814610a75578063a1a11bf514610a8a578063a5422d5c14610a9f57610502565b806388b32f11146109c25780638a7beb01146109d75780638b5ad0c9146109ec5780638d19a41014610a015780639369d7de14610a2157610502565b806351b4dce3116103c957806370fd5bad1161033b5780637e434d54116102f45780637e434d541461094e57806381650b6214610963578063820dcaa814610978578063831d65d11461098d578063853230aa1461090f57806386249882146109ad57610502565b806370fd5bad146108d0578063718a8aa8146108e557806375d47a0a146108fa57806378dfed4a1461090f5780637942fd05146109245780637a84ca2a1461093957610502565b80635d77156c1161038d5780635d77156c1461082a5780635de1e22c1461083f57806360eba4fe1461085457806362b72cf5146108745780636969a25c146108895780636e47b482146108bb57610502565b806351b4dce3146107ab57806351e80672146107c057806355614fcc146107d5578063565c56b3146107f55780635667515a1461081557610502565b8063300c35671161046d57806343756e5c1161042657806343756e5c1461072057806345cf9daf14610735578063493279b11461074a5780634bf6c8821461076c5780634df6e0c3146107815780635192c82c1461079657610502565b8063300c35671461065b578063321d398a1461067b5780633365af3a1461069b57806335409f7f146106bb5780633b071dcc146106db5780633dffc387146106fe57610502565b8063152ad3b8116104bf578063152ad3b8146105ba5780631e4c1524146105dc5780631ff18069146105fc578063219f22d51461061157806328087028146106265780632a0ffb6e1461063b57610502565b806304c4fec61461050757806307a568471461051e5780630bee7a67146105495780630e2374a51461056b5780631182b8751461058d57610502565b3661050257005b600080fd5b34801561051357600080fd5b5061051c610dc5565b005b34801561052a57600080fd5b50610533610e37565b6040516105409190618ee4565b60405180910390f35b34801561055557600080fd5b5061055e610e3d565b6040516105409190618f0e565b34801561057757600080fd5b50610580610e42565b60405161054091906181f7565b34801561059957600080fd5b506105ad6105a83660046180dd565b610e48565b604051610540919061838a565b3480156105c657600080fd5b506105cf611165565b604051610540919061837f565b3480156105e857600080fd5b5061051c6105f7366004617eeb565b61116e565b34801561060857600080fd5b50610533611844565b34801561061d57600080fd5b5061055e61184a565b34801561063257600080fd5b5061058061184f565b34801561064757600080fd5b5061051c610656366004617e4b565b611855565b34801561066757600080fd5b5061051c610676366004617e83565b611902565b34801561068757600080fd5b506105cf61069636600461808a565b611c4b565b3480156106a757600080fd5b506105cf6106b636600461808a565b611d1a565b3480156106c757600080fd5b5061051c6106d6366004617e4b565b611dcb565b3480156106e757600080fd5b506106f0611f30565b604051610540929190618295565b34801561070a57600080fd5b5061071361220c565b6040516105409190618f1f565b34801561072c57600080fd5b50610580612211565b34801561074157600080fd5b50610533612217565b34801561075657600080fd5b5061075f61221d565b6040516105409190618ed5565b34801561077857600080fd5b50610713612222565b34801561078d57600080fd5b506106f0612227565b3480156107a257600080fd5b506105336123b3565b3480156107b757600080fd5b506105806123b9565b3480156107cc57600080fd5b506105806123bf565b3480156107e157600080fd5b506105cf6107f0366004617e4b565b6123c5565b34801561080157600080fd5b50610533610810366004617e4b565b6123fa565b34801561082157600080fd5b5061071361244b565b34801561083657600080fd5b5061055e612450565b34801561084b57600080fd5b50610533612455565b34801561086057600080fd5b506105ad61086f36600461808a565b61245b565b34801561088057600080fd5b50610533612501565b34801561089557600080fd5b506108a96108a436600461808a565b612507565b60405161054096959493929190618224565b3480156108c757600080fd5b5061058061256b565b3480156108dc57600080fd5b50610713612571565b3480156108f157600080fd5b50610713612576565b34801561090657600080fd5b5061058061257b565b34801561091b57600080fd5b50610533612581565b34801561093057600080fd5b50610713612587565b34801561094557600080fd5b5061053361258c565b34801561095a57600080fd5b50610580612592565b34801561096f57600080fd5b5061055e612598565b34801561098457600080fd5b5061053361259d565b34801561099957600080fd5b5061051c6109a83660046180dd565b6125a3565b3480156109b957600080fd5b50610533612604565b3480156109ce57600080fd5b5061053361260a565b3480156109e357600080fd5b506105cf612610565b3480156109f857600080fd5b50610533612619565b348015610a0d57600080fd5b50610533610a1c366004617e4b565b61261f565b348015610a2d57600080fd5b5061051c61265f565b348015610a4257600080fd5b50610713612773565b348015610a5757600080fd5b50610580612778565b348015610a6c57600080fd5b5061053361277e565b348015610a8157600080fd5b50610533612783565b348015610a9657600080fd5b50610580612788565b348015610aab57600080fd5b506105ad61278e565b348015610ac057600080fd5b506105cf6127ad565b348015610ad557600080fd5b506105806127b6565b348015610aea57600080fd5b506105806127bc565b348015610aff57600080fd5b506105336127c2565b348015610b1457600080fd5b5061055e61244b565b348015610b2957600080fd5b5061051c610b3836600461802e565b6127cb565b348015610b4957600080fd5b50610533610b58366004617e4b565b613084565b348015610b6957600080fd5b50610533613096565b348015610b7e57600080fd5b50610b876130a3565b6040516105409190618282565b348015610ba057600080fd5b5061053361318f565b348015610bb557600080fd5b50610533613194565b348015610bca57600080fd5b50610533612571565b348015610bdf57600080fd5b5061058061319a565b348015610bf457600080fd5b506105ad610c0336600461808a565b6131a0565b348015610c1457600080fd5b506105336131ad565b348015610c2957600080fd5b506105336131ec565b348015610c3e57600080fd5b506105336131f8565b348015610c5357600080fd5b506105806131fe565b348015610c6857600080fd5b50610580613204565b348015610c7d57600080fd5b50610533610e3d565b348015610c9257600080fd5b5061051c61320a565b348015610ca757600080fd5b506105336133b9565b348015610cbc57600080fd5b506105cf610ccb366004617fef565b6133bf565b348015610cdc57600080fd5b5061051c610ceb366004617e4b565b613545565b348015610cfc57600080fd5b5061055e613649565b348015610d1157600080fd5b5061071361364e565b61051c610d28366004617e4b565b613653565b348015610d3957600080fd5b506105336139d2565b348015610d4e57600080fd5b506105806139d8565b348015610d6357600080fd5b5061071361277e565b348015610d7857600080fd5b506105806139de565b348015610d8d57600080fd5b50610da1610d9c36600461808a565b6139e4565b60405161054093929190618eed565b348015610dbc57600080fd5b50610580613aa6565b6000610dd03361261f565b9050600b8181548110610ddf57fe5b600091825260209091206001601690920201015460ff16610e1b5760405162461bcd60e51b8152600401610e1290618af0565b60405180910390fd5b6000610e256131ad565b9050610e32338383613aac565b505050565b60095481565b606481565b61200181565b60005460609060ff16610e6d5760405162461bcd60e51b8152600401610e12906185b1565b3361200014610e8e5760405162461bcd60e51b8152600401610e1290618cf1565b600b54610f4c57610e9d6179f7565b60015460005b81811015610f4857600b8054600181018255600091909152835160008051602061919c83398151915260169092029182019081556020808601516000805160206191dc8339815191528401805460ff1916911515919091179055604086015180518794610f24936000805160206191bc833981519152909101920190617a26565b506060820151610f3a9060038301906013617aa0565b505050806001019050610ea3565b5050505b610f54617acd565b6000610f9585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613d7d92505050565b9150915080610fb157610fa86064613f39565b9250505061115e565b815160009060ff16610fd657610fcf83602001518460400151613f9a565b905061112a565b825160ff16600114156111265782602001515160011461101b5760008051602061917c83398151915260405161100b906189a9565b60405180910390a1506067611121565b6000836020015160008151811061102e57fe5b602090810291909101810151516001600160a01b0381166000908152600490925260409091205490915080158061108f575060018082038154811061106f57fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b156110cd576040516001600160a01b038316907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a261111a565b60006110dc836001840361515c565b905080611118576040516001600160a01b038416907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a25b505b6000925050505b61112a565b5060655b63ffffffff811661114f575050604080516000815260208101909152915061115e9050565b61115881613f39565b93505050505b9392505050565b60075460ff1681565b33411461118d5760405162461bcd60e51b8152600401610e1290618d40565b3a156111ab5760405162461bcd60e51b8152600401610e1290618a2f565b82516040805182815260208084028201019091526060908280156111e957816020015b6111d6617af1565b8152602001906001900390816111ce5790505b50905060005b82811015611293576040518060c0016040528087838151811061120e57fe5b60200260200101516001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b0316815260200186838151811061125057fe5b60200260200101516001600160401b03168152602001600015158152602001600081525082828151811061128057fe5b60209081029190910101526001016111ef565b5060405163d31f968d60e01b81526120009063d31f968d906112be9061100090600890600401618266565b60206040518083038186803b1580156112d657600080fd5b505afa1580156112ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061130e9190617fcf565b15611631578051601554818111156113b057815b818110156113ae57601580548061133557fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055601680548061138857fe5b6001900381819060005260206000200160006113a49190617b26565b9055600101611322565b505b60005b828110156115f0578181106114d85760158482815181106113d057fe5b602090810291909101810151825460018181018555600094855293839020825160049092020180546001600160a01b039283166001600160a01b0319918216178255938301519481018054958316958516959095179094556040820151600285018054606085015160808601511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590961692909716919091179290921692909217169290921790915560a0015160039091015585516016908790839081106114a057fe5b602090810291909101810151825460018101845560009384529282902081516114d29491909101929190910190617a26565b506115e8565b8381815181106114e457fe5b6020026020010151601582815481106114f957fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a09091015160039091015585518690829081106115b457fe5b6020026020010151601682815481106115c957fe5b9060005260206000200190805190602001906115e6929190617a26565b505b6001016113b3565b507fb8e726330a0dad1cf3d04e925663b17e391f1ed547d79b7f4e5f344119b44246826040516116209190618ee4565b60405180910390a150505050610e32565b60608061163e838661551f565b9150915060005b6001548110156117345760006001828154811061165e57fe5b90600052602060002090600402016003015490508060001461172b5760006001838154811061168957fe5b9060005260206000209060040201600301819055506120026001600160a01b031663092193ab82600185815481106116bd57fe5b60009182526020909120600491820201546040516001600160e01b031960e086901b1681526116f8926001600160a01b0390921691016181f7565b6000604051808303818588803b15801561171157600080fd5b505af1158015611725573d6000803e3d6000fd5b50505050505b50600101611645565b5047156117a2577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d4760405161176a9190618ee4565b60405180910390a1604051611002904780156108fc02916000818181858888f193505050501580156117a0573d6000803e3d6000fd5b505b600060038190556005558151156117bd576117bd8282615a06565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156117fa57600080fd5b505af115801561180e573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a150505050505050565b60035481565b606881565b61200581565b33612002146118765760405162461bcd60e51b8152600401610e1290618e9e565b60005b6015548110156118fe57816001600160a01b03166015828154811061189a57fe5b60009182526020909120600490910201546001600160a01b031614156118f6576001601582815481106118c957fe5b9060005260206000209060040201600201601c6101000a81548160ff0219169083151502179055506118fe565b600101611879565b5050565b3341146119215760405162461bcd60e51b8152600401610e1290618d40565b60105443116119425760405162461bcd60e51b8152600401610e1290618744565b3a156119605760405162461bcd60e51b8152600401610e1290618a2f565b60005460ff166119825760405162461bcd60e51b8152600401610e12906185b1565b60006110023168056bc75e2d631000008111156119b9576119b28168056bc75e2d6310000063ffffffff6161f516565b91506119c0565b5050611c41565b6040516309a99b4f60e41b815261100290639a99b4f0906119e7903090869060040161820b565b602060405180830381600087803b158015611a0157600080fd5b505af1158015611a15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3991906180a2565b915081611a47575050611c41565b6000805b84811015611a7557858582818110611a5f57fe5b9050602002013582019150806001019050611a4b565b5080611a8357505050611c41565b6000806000805b89811015611c395784898983818110611a9f57fe5b90506020020135880281611aaf57fe5b0493508a8a82818110611abe57fe5b9050602002016020810190611ad39190617e4b565b6001600160a01b03811660009081526004602052604090205490935091508115611bef576000600180840381548110611b0857fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff1615611b7557836001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d8586604051611b689190618ee4565b60405180910390a2611be9565b600354611b88908663ffffffff61623716565b6003908155810154611ba0908663ffffffff61623716565b60038201556040516001600160a01b038516907fcb0aad6cf9cd03bdf6137e359f541c42f38b39f007cae8e89e88aa7d8c6617b290611be0908890618ee4565b60405180910390a25b50611c31565b826001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d8585604051611c289190618ee4565b60405180910390a25b600101611a8a565b505050505050505b5050436010555050565b6001546000908210611c5f57506000611d15565b60006001600160a01b031660018381548110611c7757fe5b60009182526020909120600490910201546001600160a01b03161480611ca757506008541580611ca75750600a54155b80611cb6575060085460095410155b80611cc75750611cc582611d1a565b155b80611cf057506000600b8381548110611cdc57fe5b906000526020600020906016020160000154115b80611d0457506001611d006130a3565b5111155b15611d1157506000611d15565b5060015b919050565b6001546000908210611d2e57506000611d15565b600b548210611d6b5760018281548110611d4457fe5b9060005260206000209060040201600201601c9054906101000a900460ff16159050611d15565b60018281548110611d7857fe5b9060005260206000209060040201600201601c9054906101000a900460ff16158015611dc55750600b8281548110611dac57fe5b600091825260209091206001601690920201015460ff16155b92915050565b600b54611e8957611dda6179f7565b60015460005b81811015611e8557600b8054600181018255600091909152835160008051602061919c83398151915260169092029182019081556020808601516000805160206191dc8339815191528401805460ff1916911515919091179055604086015180518794611e61936000805160206191bc833981519152909101920190617a26565b506060820151611e779060038301906013617aa0565b505050806001019050611de0565b5050505b336110011480611e9a575033612002145b611eb65760405162461bcd60e51b8152600401610e12906185e8565b6001600160a01b03811660009081526004602052604090205480611eda5750611f2d565b6001810390506000600b8281548110611eef57fe5b600091825260209091206001601690920201015460ff169050611f12838361515c565b8015611f1b5750805b15610e32576009805460001901905550505b50565b60015460609081906000805b82811015611f835760018181548110611f5157fe5b9060005260206000209060040201600201601c9054906101000a900460ff16611f7b576001909101905b600101611f3c565b50606081604051908082528060200260200182016040528015611fb0578160200160208202803683370190505b509050606082604051908082528060200260200182016040528015611fe957816020015b6060815260200190600190039081611fd45790505b50600b54600094509091508414156121645760005b8481101561215e576001818154811061201357fe5b9060005260206000209060040201600201601c9054906101000a900460ff16612156576001818154811061204357fe5b600091825260209091206004909102015483516001600160a01b039091169084908690811061206e57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600b818154811061209b57fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156121335780601f1061210857610100808354040283529160200191612133565b820191906000526020600020905b81548152906001019060200180831161211657829003601f168201915b505050505082858151811061214457fe5b60209081029190910101526001909301925b600101611ffe565b50612200565b60005b848110156121fe576001818154811061217c57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166121f657600181815481106121ac57fe5b600091825260209091206004909102015483516001600160a01b03909116908490869081106121d757fe5b6001600160a01b03909216602092830291909101909101526001909301925b600101612167565b505b909450925050505b9091565b600181565b61100181565b60085481565b606181565b600881565b6060806000600e549050600080600c5411612243576015612247565b600c545b905060606122536130a3565b905060606122608261625c565b905082825111612277579094509250612208915050565b83838351031015612289578282510393505b83156122bf5760c843046122a583838388880360008a8a6163ca565b6122bd8383838888038989038a8b8b8b5103016163ca565b505b6060836040519080825280602002602001820160405280156122eb578160200160208202803683370190505b50905060608460405190808252806020026020018201604052801561232457816020015b606081526020019060019003908161230f5790505b50905060005b858110156123a55784818151811061233e57fe5b602002602001015183828151811061235257fe5b60200260200101906001600160a01b031690816001600160a01b03168152505083818151811061237e57fe5b602002602001015182828151811061239257fe5b602090810291909101015260010161232a565b509096509450505050509091565b60065481565b61200681565b61200081565b6001600160a01b038116600090815260046020526040812054806123ed576000915050611d15565b6000190161115e81611d1a565b6001600160a01b03811660009081526004602052604081205480612422576000915050611d15565b60018082038154811061243157fe5b906000526020600020906004020160030154915050919050565b600081565b606781565b600f5481565b6012818154811061246857fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152935090918301828280156124f95780601f106124ce576101008083540402835291602001916124f9565b820191906000526020600020905b8154815290600101906020018083116124dc57829003601f168201915b505050505081565b60105481565b6001818154811061251457fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b601081565b61100881565b6103e881565b600b81565b600c5481565b61200381565b606681565b61271081565b33612000146125c45760405162461bcd60e51b8152600401610e1290618cf1565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f389021016058383836040516125f793929190618f2d565b60405180910390a1505050565b60025481565b60115481565b60145460ff1681565b600a5481565b6001600160a01b038116600090815260046020526040812054806126555760405162461bcd60e51b8152600401610e1290618c79565b6000190192915050565b600b5461271d5761266e6179f7565b60015460005b8181101561271957600b8054600181018255600091909152835160008051602061919c83398151915260169092029182019081556020808601516000805160206191dc8339815191528401805460ff19169115159190911790556040860151805187946126f5936000805160206191bc833981519152909101920190617a26565b50606082015161270b9060038301906013617aa0565b505050806001019050612674565b5050505b60085461272a5760036008555b600a54612737576002600a555b60006127423361261f565b905061274d81611c4b565b6127695760405162461bcd60e51b8152600401610e1290618966565b611f2d3382616521565b600981565b61100781565b600381565b60c881565b61100681565b604051806101e001604052806101ab8152602001618fd16101ab913981565b60005460ff1681565b61200281565b61300081565b6402540be40081565b60005460ff166127ed5760405162461bcd60e51b8152600401610e12906185b1565b336110071461280e5760405162461bcd60e51b8152600401610e1290618a5d565b61287884848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b602082015291506165b99050565b15612915576020811461289d5760405162461bcd60e51b8152600401610e1290618c33565b604080516020601f84018190048102820181019092528281526000916128db9185858083850183828082843760009201919091525061661292505050565b9050606481101580156128f15750620186a08111155b61290d5760405162461bcd60e51b8152600401610e1290618856565b600255613041565b61297584848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260098152686275726e526174696f60b81b602082015291506165b99050565b15612a18576020811461299a5760405162461bcd60e51b8152600401610e12906183cf565b604080516020601f84018190048102820181019092528281526000916129d89185858083850183828082843760009201919091525061661292505050565b90506127106129f2600f548361623790919063ffffffff16565b1115612a105760405162461bcd60e51b8152600401610e1290618406565b600655613041565b612a8284848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260138152726d61784e756d4f664d61696e7461696e696e6760681b602082015291506165b99050565b15612b1c5760208114612aa75760405162461bcd60e51b8152600401610e129061846e565b604080516020601f8401819004810282018101909252828152600091612ae59185858083850183828082843760009201919091525061661292505050565b600c5490915080612af4575060155b808210612b135760405162461bcd60e51b8152600401610e12906187ae565b50600855613041565b612b8584848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61696e7461696e536c6173685363616c6560701b602082015291506165b99050565b15612c1e5760208114612baa5760405162461bcd60e51b8152600401610e1290618537565b604080516020601f8401819004810282018101909252828152600091612be89185858083850183828082843760009201919091525061661292505050565b9050600081118015612bfa5750600a81105b612c165760405162461bcd60e51b8152600401610e1290618dd1565b600a55613041565b612c9284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601981527f6d61784e756d4f66576f726b696e6743616e6469646174657300000000000000602082015291506165b99050565b15612d215760208114612cb75760405162461bcd60e51b8152600401610e12906184eb565b604080516020601f8401819004810282018101909252828152600091612cf59185858083850183828082843760009201919091525061661292505050565b9050600d54811115612d195760405162461bcd60e51b8152600401610e12906188cc565b600e55613041565b612d8a84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61784e756d4f6643616e6469646174657360701b602082015291506165b99050565b15612e0c5760208114612daf5760405162461bcd60e51b8152600401610e1290618aab565b604080516020601f8401819004810282018101909252828152600091612ded9185858083850183828082843760009201919091525061661292505050565b600d819055600e54909150811015612e0657600d54600e555b50613041565b612e7084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c6e756d4f66436162696e65747360981b602082015291506165b99050565b15612f1e5760208114612e955760405162461bcd60e51b8152600401610e129061857c565b604080516020601f8401819004810282018101909252828152600091612ed39185858083850183828082843760009201919091525061661292505050565b905060008111612ef55760405162461bcd60e51b8152600401610e1290618656565b6064811115612f165760405162461bcd60e51b8152600401610e129061869e565b600c55613041565b612f8684848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601181527073797374656d526577617264526174696f60781b602082015291506165b99050565b156130295760208114612fab5760405162461bcd60e51b8152600401610e1290618d8d565b604080516020601f8401819004810282018101909252828152600091612fe99185858083850183828082843760009201919091525061661292505050565b90506127106130036006548361623790919063ffffffff16565b11156130215760405162461bcd60e51b8152600401610e1290618b94565b600f55613041565b60405162461bcd60e51b8152600401610e1290618e2e565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a84848484604051613076949392919061839d565b60405180910390a150505050565b60046020526000908152604090205481565b68056bc75e2d6310000081565b6001546060906000805b828110156130d2576130be81611d1a565b156130ca578160010191505b6001016130ad565b506060816040519080825280602002602001820160405280156130ff578160200160208202803683370190505b5090506000915060005b838110156131865761311a81611d1a565b1561317e576001818154811061312c57fe5b600091825260209091206004909102015482516001600160a01b039091169083908590811061315757fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508260010192505b600101613109565b50925050505b90565b601581565b61027181565b61100281565b6013818154811061246857fe5b60006131b76130a3565b519050600080600c54116131cc5760156131d0565b600c545b9050808211156131de578091505b816131e857600191505b5090565b67016345785d8a000081565b60055481565b61100381565b61200481565b60005460ff161561322d5760405162461bcd60e51b8152600401610e1290618b5d565b613235617acd565b600061325b604051806101e001604052806101ab8152602001618fd16101ab9139613d7d565b915091508061327c5760405162461bcd60e51b8152600401610e1290618cb0565b60005b8260200151518110156133a15760018360200151828151811061329e57fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a09093015160039093019290925591860151805191850193918590811061337457fe5b602090810291909101810151516001600160a01b031682528101919091526040016000205560010161327f565b50506103e8600255506000805460ff19166001179055565b600d5481565b601354600090815b818110156134c8576134b085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060138054909250859150811061341857fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156134a65780601f1061347b576101008083540402835291602001916134a6565b820191906000526020600020905b81548152906001019060200180831161348957829003601f168201915b5050505050616617565b156134c057600192505050611dc5565b6001016133c7565b5060125460005b818110156135395761352086868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060128054909250859150811061341857fe5b156135315760019350505050611dc5565b6001016134cf565b50600095945050505050565b33611001146135665760405162461bcd60e51b8152600401610e1290618e55565b600b54613624576135756179f7565b60015460005b8181101561362057600b8054600181018255600091909152835160008051602061919c83398151915260169092029182019081556020808601516000805160206191dc8339815191528401805460ff19169115159190911790556040860151805187946135fc936000805160206191bc833981519152909101920190617a26565b5060608201516136129060038301906013617aa0565b50505080600101905061357b565b5050505b600061362f8261667b565b905061363a81611c4b565b156118fe576118fe8282616521565b606581565b601181565b3341146136725760405162461bcd60e51b8152600401610e1290618d40565b60005460ff166136945760405162461bcd60e51b8152600401610e12906185b1565b600034116136b45760405162461bcd60e51b8152600401610e129061889d565b3a156136d25760405162461bcd60e51b8152600401610e1290618a2f565b6001600160a01b03811660009081526004602052604090205460145434919060ff1661371257610271600f556103e86006556014805460ff191660011790555b60008211801561372457506000600f54115b156137d6576000613752612710613746600f54346167fe90919063ffffffff16565b9063ffffffff61683816565b905080156137d4576040516110029082156108fc029083906000818181858888f19350505050158015613789573d6000803e3d6000fd5b507f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d816040516137b99190618ee4565b60405180910390a16137d1838263ffffffff6161f516565b92505b505b6000821180156137e857506000600654115b1561388e57600061380a612710613746600654346167fe90919063ffffffff16565b9050801561388c5760405161dead9082156108fc029083906000818181858888f19350505050158015613841573d6000803e3d6000fd5b507f627059660ea01c4733a328effb2294d2f86905bf806da763a89cee254de8bee5816040516138719190618ee4565b60405180910390a1613889838263ffffffff6161f516565b92505b505b801561398c5760006001808303815481106138a557fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff161561391257836001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4846040516139059190618ee4565b60405180910390a2613986565b600354613925908463ffffffff61623716565b600390815581015461393d908463ffffffff61623716565b60038201556040516001600160a01b038516907f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc0559061397d908690618ee4565b60405180910390a25b50610e32565b826001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4836040516139c59190618ee4565b60405180910390a2505050565b600e5481565b61100081565b61dead81565b600b81815481106139f157fe5b6000918252602091829020601691909102018054600180830154600280850180546040805161010096831615969096026000190190911692909204601f810188900488028501880190925281845293965060ff90911694919291830182828015613a9c5780601f10613a7157610100808354040283529160200191613a9c565b820191906000526020600020905b815481529060010190602001808311613a7f57829003601f168201915b5050505050905083565b61100481565b6000600a5460001480613abd575081155b80613ac85750600954155b15613ad55750600061115e565b60096000815460019003919050819055506000613b20600a5461374685613746600b8981548110613b0257fe5b6000918252602090912060169091020154439063ffffffff6161f516565b90506000600b8581548110613b3157fe5b906000526020600020906016020160010160006101000a81548160ff0219169083151502179055506000806110016001600160a01b0316638256ace66040518163ffffffff1660e01b8152600401604080518083038186803b158015613b9657600080fd5b505afa158015613baa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613bce91906180ba565b9150915060009350808310613d2d57613be7878761515c565b5060405163436aa28360e11b8152600090612002906386d5450690613c10908b906004016181f7565b60206040518083038186803b158015613c2857600080fd5b505afa158015613c3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c609190617e67565b6001600160a01b031614613ccc576040516313d13bdb60e31b815261100190639e89ded890613c95908a90879060040161820b565b600060405180830381600087803b158015613caf57600080fd5b505af1158015613cc3573d6000803e3d6000fd5b50505050613d24565b6040516305bfb49960e41b815261100190635bfb499090613cf1908a906004016181f7565b600060405180830381600087803b158015613d0b57600080fd5b505af1158015613d1f573d6000803e3d6000fd5b505050505b60019350613d3f565b818310613d3f57613d3d8761667b565b505b6040516001600160a01b038816907fb9d38178dc641ff1817967a63c9078cbcd955a9f1fcd75e0e3636de615d44d3b90600090a25050509392505050565b613d85617acd565b6000613d8f617acd565b613d97617b6a565b613da8613da38661687a565b61689f565b90506000805b613db7836168e9565b15613f2b5780613ddc57613dd2613dcd8461690a565b616958565b60ff168452613f23565b8060011415613f1e576060613df8613df38561690a565b6169d8565b90508051604051908082528060200260200182016040528015613e3557816020015b613e22617af1565b815260200190600190039081613e1a5790505b5085602001819052508051604051908082528060200260200182016040528015613e7357816020015b6060815260200190600190039081613e5e5790505b50604086015260005b8151811015613f1357613e8d617af1565b60606000613ead858581518110613ea057fe5b6020026020010151616aa9565b92509250925080613ecd578860009a509a50505050505050505050613f34565b8289602001518581518110613ede57fe5b60200260200101819052508189604001518581518110613efa57fe5b6020026020010181905250505050806001019050613e7c565b506001925050613f23565b613f2b565b600101613dae565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b6060815260200190600190039081613f53579050509050613f798363ffffffff16616bc3565b81600081518110613f8657fe5b602002602001018190525061115e81616bd6565b6000606483511115613fd15760008051602061917c833981519152604051613fc1906186fb565b60405180910390a1506066611dc5565b60005b835181101561406f5760005b8181101561406657848181518110613ff457fe5b6020026020010151600001516001600160a01b031685838151811061401557fe5b6020026020010151600001516001600160a01b0316141561405e5760008051602061917c83398151915260405161404b9061880b565b60405180910390a1606692505050611dc5565b600101613fe0565b50600101613fd4565b5060608060606015805480602002602001604051908101604052809291908181526020016000905b828210156141215760008481526020908190206040805160c0810182526004860290920180546001600160a01b039081168452600180830154821685870152600283015491821693850193909352600160a01b81046001600160401b03166060850152600160e01b900460ff16151560808401526003015460a08301529083529092019101614097565b50505050905060606016805480602002602001604051908101604052809291908181526020016000905b828210156141f65760008481526020908190208301805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156141e25780601f106141b7576101008083540402835291602001916141e2565b820191906000526020600020905b8154815290600101906020018083116141c557829003601f168201915b50505050508152602001906001019061414b565b50505050905060005b82518110156142535782818151811061421457fe5b60200260200101516060015160030283828151811061422f57fe5b60209081029190910101516001600160401b039091166060909101526001016141ff565b5060608061426389898686616c60565b91509150614271828261551f565b600154604080518281526020808402820101909152929850909650600095508594509250606091508280156142b0578160200160208202803683370190505b50905060005b828110156144415760006001600160a01b03166120026001600160a01b03166386d54506600184815481106142e757fe5b60009182526020909120600491820201546040516001600160e01b031960e085901b168152614322926001600160a01b0390921691016181f7565b60206040518083038186803b15801561433a57600080fd5b505afa15801561434e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143729190617e67565b6001600160a01b0316146143d457600182828151811061438e57fe5b602002602001019060ff16908160ff1681525050600181815481106143af57fe5b9060005260206000209060040201600301546000146143cf578360010193505b614439565b67016345785d8a0000600182815481106143ea57fe5b9060005260206000209060040201600301541061440c57846001019450614439565b6001818154811061441957fe5b906000526020600020906004020160030154600014614439578360010193505b6001016142b6565b5060608460405190808252806020026020018201604052801561446e578160200160208202803683370190505b50905060608560405190808252806020026020018201604052801561449d578160200160208202803683370190505b5090506060866040519080825280602002602001820160405280156144cc578160200160208202803683370190505b5090506060876040519080825280602002602001820160405280156144fb578160200160208202803683370190505b509050600060608860405190808252806020026020018201604052801561452c578160200160208202803683370190505b50905060608960405190808252806020026020018201604052801561455b578160200160208202803683370190505b50905060009a506000995060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b1580156145a357600080fd5b505afa1580156145b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145db91906180a2565b905067016345785d8a00008111156146275760008051602061917c83398151915260405161460890618b1c565b60405180910390a160689e505050505050505050505050505050611dc5565b60005b8a8110156149bb5789818151811061463e57fe5b602002602001015160ff1660011415614734576001818154811061465e57fe5b90600052602060002090600402016003015460001461472f576001818154811061468457fe5b600091825260209091206004909102015484516001600160a01b039091169085908e9081106146af57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600181815481106146dc57fe5b906000526020600020906004020160030154838d815181106146fa57fe5b60200260200101818152505060018a8d8151811061471457fe5b602002602001019060ff16908160ff16815250508b6001019b505b6149b3565b67016345785d8a00006001828154811061474a57fe5b906000526020600020906004020160030154106148cf576001818154811061476e57fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316898e8151811061479f57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be400600183815481106147d457fe5b906000526020600020906004020160030154816147ed57fe5b06600183815481106147fb57fe5b90600052602060002090600402016003015403905061482383826161f590919063ffffffff16565b898f8151811061482f57fe5b6020026020010181815250506001828154811061484857fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316878f8151811061487957fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081888f815181106148a657fe5b60209081029190910101526148c1868263ffffffff61623716565b95508d6001019d50506149b3565b600181815481106148dc57fe5b9060005260206000209060040201600301546000146149b3576001818154811061490257fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316848d8151811061493357fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506001818154811061496057fe5b906000526020600020906004020160030154838d8151811061497e57fe5b60200260200101818152505060008a8d8151811061499857fe5b602002602001019060ff16908160ff16815250508b6001019b505b60010161462a565b5060008415614c31576002546040516303702b2960e51b815261100491636e0565209188916149f5918e918e918d91420190600401618305565b6020604051808303818588803b158015614a0e57600080fd5b505af193505050508015614a3f575060408051601f3d908101601f19168201909252614a3c91810190617fcf565b60015b614bb6576040516000815260443d1015614a5b57506000614af6565b60046000803e60005160e01c6308c379a08114614a7c576000915050614af6565b60043d036004833e81513d60248201116001600160401b0382111715614aa757600092505050614af6565b80830180516001600160401b03811115614ac8576000945050505050614af6565b8060208301013d8601811115614ae657600095505050505050614af6565b601f01601f191660405250925050505b80614b015750614b43565b60019150857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf28082604051614b35919061838a565b60405180910390a250614bb1565b3d808015614b6d576040519150601f19603f3d011682016040523d82523d6000602084013e614b72565b606091505b5060019150857fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a4582604051614ba7919061838a565b60405180910390a2505b614c31565b8015614bf8577fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b7086604051614beb9190618ee4565b60405180910390a1614c2f565b857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280604051614c26906184b4565b60405180910390a25b505b8015614de75760005b8751811015614de5576000888281518110614c5157fe5b60200260200101519050600060018281548110614c6a57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc9185908110614c9b57fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f1935050505090508015614d575760018281548110614cdc57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d9185908110614d2b57fe5b906000526020600020906004020160030154604051614d4a9190618ee4565b60405180910390a2614ddb565b60018281548110614d6457fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d9185908110614db357fe5b906000526020600020906004020160030154604051614dd29190618ee4565b60405180910390a25b5050600101614c3a565b505b835115614fdd5760005b8451811015614fdb578a8181518110614e0657fe5b602002602001015160ff1660011415614ea5576120026001600160a01b031663092193ab858381518110614e3657fe5b6020026020010151878481518110614e4a57fe5b60200260200101516040518363ffffffff1660e01b8152600401614e6e91906181f7565b6000604051808303818588803b158015614e8757600080fd5b505af1158015614e9b573d6000803e3d6000fd5b5050505050614fd3565b6000858281518110614eb357fe5b60200260200101516001600160a01b03166108fc868481518110614ed357fe5b60200260200101519081150290604051600060405180830381858888f1935050505090508015614f6957858281518110614f0957fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d868481518110614f4757fe5b6020026020010151604051614f5c9190618ee4565b60405180910390a2614fd1565b858281518110614f7557fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d868481518110614fb357fe5b6020026020010151604051614fc89190618ee4565b60405180910390a25b505b600101614df1565b505b5050505050505050505050505060005b60015481101561504a576001818154811061500457fe5b9060005260206000209060040201600301546000146150425760006001828154811061502c57fe5b9060005260206000209060040201600301819055505b600101614fed565b5047156150b8577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d476040516150809190618ee4565b60405180910390a1604051611002904780156108fc02916000818181858888f193505050501580156150b6573d6000803e3d6000fd5b505b600060038190556005558151156150d3576150d38282615a06565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561511057600080fd5b505af1158015615124573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a1506000949350505050565b6000806001838154811061516c57fe5b906000526020600020906004020160030154905060006001808054905003905060016151966130a3565b51116151cb576000600185815481106151ab57fe5b906000526020600020906004020160030181905550600092505050611dc5565b846001600160a01b03167f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a70836040516152049190618ee4565b60405180910390a26001600160a01b038516600090815260046020526040812055835b600154600019018110156153f1576001816001018154811061524557fe5b90600052602060002090600402016001828154811061526057fe5b60009182526020909120825460049092020180546001600160a01b03199081166001600160a01b0393841617825560018085015481840180548416918616919091179055600280860180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b19909416939093179055600392830154920191909155600b80549091830190811061532157fe5b9060005260206000209060160201600b828154811061533c57fe5b600091825260209091208254601690920201908155600180830154818301805460ff909216151560ff1990921691909117905560028084018054615393938386019390821615610100026000190190911604617b8a565b506153a660038281019084016013617bff565b509050508060010160046000600184815481106153bf57fe5b600091825260208083206004909202909101546001600160a01b03168352820192909252604001902055600101615227565b5060018054806153fd57fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b80548061545057fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906154826002830182617b26565b615490600383016000617c29565b50509055600081838161549f57fe5b04905080156155135760015460005b81811015615510576154e783600183815481106154c757fe5b90600052602060002090600402016003015461623790919063ffffffff16565b600182815481106154f457fe5b60009182526020909120600360049092020101556001016154ae565b50505b50600195945050505050565b6060806000808080806155306131ad565b6001549091505b801561575f57600181039250600b838154811061555057fe5b600091825260209091206001601690920201015460ff1661557057615756565b6001838154811061557d57fe5b60009182526020909120600490910201546001600160a01b031694506155a4858484613aac565b9350836155b057615756565b60405163436aa28360e11b81526000908190612002906386d54506906155da908a906004016181f7565b60206040518083038186803b1580156155f257600080fd5b505afa158015615606573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061562a9190617e67565b90506001600160a01b038116156156b3576040516302ceee9160e11b81526120029063059ddd22906156609084906004016181f7565b60206040518083038186803b15801561567857600080fd5b505afa15801561568c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906156b09190617e67565b91505b60005b8c5181101561575257876001600160a01b03168d82815181106156d557fe5b6020026020010151600001516001600160a01b0316148061571e5750826001600160a01b03168d828151811061570757fe5b6020026020010151600001516001600160a01b0316145b1561574a5760018d828151811061573157fe5b6020908102919091010151901515608090910152615752565b6001016156b6565b5050505b60001901615537565b5060005b89518110156157cc5789818151811061577857fe5b602002602001015160800151806157b8575060006001600160a01b03168a82815181106157a157fe5b6020026020010151600001516001600160a01b0316145b156157c4578560010195505b600101615763565b50885185106158b45760408051600180825281830190925290816020015b6157f2617af1565b8152602001906001900390816157ea575050604080516001808252818301909252919850602082015b606081526020019060019003908161581b5790505095508860008151811061583f57fe5b60200260200101518760008151811061585457fe5b60200260200101819052508760008151811061586c57fe5b60200260200101518660008151811061588157fe5b602002602001018190525060008760008151811061589b57fe5b60209081029190910101519015156080909101526159f9565b848951036040519080825280602002602001820160405280156158f157816020015b6158de617af1565b8152602001906001900390816158d65790505b5096508489510360405190808252806020026020018201604052801561592b57816020015b60608152602001906001900390816159165790505b5095506000915060005b89518110156159f75789818151811061594a57fe5b60200260200101516080015115801561598d575060006001600160a01b03168a828151811061597557fe5b6020026020010151600001516001600160a01b031614155b156159ef5789818151811061599e57fe5b60200260200101518884815181106159b257fe5b60200260200101819052508881815181106159c957fe5b60200260200101518784815181106159dd57fe5b60200260200101819052508260010192505b600101615935565b505b50505050505b9250929050565b600154825160005b82811015615b23576001615a20617af1565b60018381548110615a2d57fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b84811015615af757878181518110615abd57fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b03161415615aef5760009250615af7565b600101615aa9565b508115615b195780516001600160a01b03166000908152600460205260408120555b5050600101615a0e565b5080821115615be257805b82811015615be0576001805480615b4157fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b805480615b9457fe5b60008281526020812060166000199093019283020181815560018101805460ff1916905590615bc66002830182617b26565b615bd4600383016000617c29565b50509055600101615b2e565b505b6000818310615bf15781615bf3565b825b905060005b81811015615f9757615ca5868281518110615c0f57fe5b602002602001015160018381548110615c2457fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a082015261702c565b615e59578060010160046000888481518110615cbd57fe5b6020026020010151600001516001600160a01b03166001600160a01b0316815260200190815260200160002081905550858181518110615cf957fe5b602002602001015160018281548110615d0e57fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a0909101516003909101558451859082908110615dc957fe5b6020026020010151600b8281548110615dde57fe5b90600052602060002090601602016002019080519060200190615e02929190617a26565b506000600b8281548110615e1257fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b805483908110615e4357fe5b6000918252602090912060169091020155615f8f565b858181518110615e6557fe5b60200260200101516060015160018281548110615e7e57fe5b906000526020600020906004020160020160146101000a8154816001600160401b0302191690836001600160401b03160217905550615f44858281518110615ec257fe5b6020026020010151600b8381548110615ed757fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156134a65780601f1061347b576101008083540402835291602001916134a6565b615f8f57848181518110615f5457fe5b6020026020010151600b8281548110615f6957fe5b90600052602060002090601602016002019080519060200190615f8d929190617a26565b505b600101615bf8565b508282111561616f57615fa86179f7565b835b8381101561616c57858181518110615fbe57fe5b602002602001015182604001819052506001878281518110615fdc57fe5b6020908102919091018101518254600181810185556000948552838520835160049093020180546001600160a01b039384166001600160a01b0319918216178255848601518284018054918616918316919091179055604080860151600284018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909a1692909616919091179290921696909617169190911790935560a090930151600390930192909255600b805492830181559093528451601690910260008051602061919c8339815191528101918255858301516000805160206191dc8339815191528201805491151560ff1990921691909117905592850151805186949293616112936000805160206191bc83398151915201920190617a26565b5060608201516161289060038301906013617aa0565b505050806001016004600089848151811061613f57fe5b602090810291909101810151516001600160a01b0316825281019190915260400160002055600101615faa565b50505b616177617088565b61617f617270565b6000600981905560015493505b838110156161ed576000600b82815481106161a357fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b8054839081106161d457fe5b600091825260209091206016909102015560010161618c565b505050505050565b600061115e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061745e565b60008282018381101561115e5760405162461bcd60e51b8152600401610e129061861f565b60015481516040805182815260208084028201019091526060929190839082801561629b57816020015b60608152602001906001900390816162865790505b50600b5490915083146162b2579250611d15915050565b60005b828110156163c157600b6001600460008985815181106162d157fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054038154811061630557fe5b600091825260209182902060026016909202018101805460408051601f60001961010060018616150201909316949094049182018590048502840185019052808352919290919083018282801561639d5780601f106163725761010080835404028352916020019161639d565b820191906000526020600020905b81548152906001019060200180831161638057829003601f168201915b50505050508282815181106163ae57fe5b60209081029190910101526001016162b5565b50949350505050565b60005b8281101561651757600082878388016040516020016163ed9291906181e9565b6040516020818303038152906040528051906020012060001c8161640d57fe5b0690508085018287011461650e576000898388018151811061642b57fe5b602002602001015190506060898489018151811061644557fe5b602002602001015190508a8388018151811061645d57fe5b60200260200101518b858a018151811061647357fe5b60200260200101906001600160a01b031690816001600160a01b031681525050818b848901815181106164a257fe5b60200260200101906001600160a01b031690816001600160a01b03168152505089838801815181106164d057fe5b60200260200101518a858a01815181106164e657fe5b6020026020010181905250808a8489018151811061650057fe5b602002602001018190525050505b506001016163cd565b5050505050505050565b600980546001908101909155600b80548390811061653b57fe5b906000526020600020906016020160010160006101000a81548160ff02191690831515021790555043600b828154811061657157fe5b600091825260208220601690910201919091556040516001600160a01b038416917ff62981a567ec3cec866c6fa93c55bcdf841d6292d18b8d522ececa769375d82d91a25050565b6000816040516020016165cc91906181cd565b60405160208183030381529060405280519060200120836040516020016165f391906181cd565b6040516020818303038152906040528051906020012014905092915050565b015190565b8151815160009160019181148083146166335760009250616671565b600160208701838101602088015b60028483851001141561666c5780518351146166605760009650600093505b60209283019201616641565b505050505b5090949350505050565b6001600160a01b038116600090815260046020526040812054806166a457506000199050611d15565b6001810390506000600182815481106166b957fe5b90600052602060002090600402016003015490506000600183815481106166dc57fe5b6000918252602090912060036004909202010155600154604051600019909101906001600160a01b038616907f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d90616735908590618ee4565b60405180910390a28061674d57829350505050611d15565b600081838161675857fe5b04905080156167f45760005b848110156167a65761677d82600183815481106154c757fe5b6001828154811061678a57fe5b6000918252602090912060036004909202010155600101616764565b50600180549085015b818110156167f1576167c883600183815481106154c757fe5b600182815481106167d557fe5b60009182526020909120600360049092020101556001016167af565b50505b5091949350505050565b60008261680d57506000611dc5565b8282028284828161681a57fe5b041461115e5760405162461bcd60e51b8152600401610e12906189ee565b600061115e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061748a565b616882617c38565b506040805180820190915281518152602082810190820152919050565b6168a7617b6a565b6168b0826174c1565b6168b957600080fd5b60006168c883602001516174fb565b60208085015160408051808201909152868152920190820152915050919050565b60006168f3617c38565b505080518051602091820151919092015191011190565b616912617c38565b61691b826168e9565b61692457600080fd5b602082015160006169348261755e565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061696d57508151602110155b61697657600080fd5b600061698583602001516174fb565b905080836000015110156169ab5760405162461bcd60e51b8152600401610e1290618bfc565b8251602080850151830180519284900392918310156163c157506020919091036101000a90049392505050565b60606169e3826174c1565b6169ec57600080fd5b60006169f78361763f565b9050606081604051908082528060200260200182016040528015616a3557816020015b616a22617c38565b815260200190600190039081616a1a5790505b5090506000616a4785602001516174fb565b60208601510190506000805b84811015616a9e57616a648361755e565b9150604051806040016040528083815260200184815250848281518110616a8757fe5b602090810291909101015291810191600101616a53565b509195945050505050565b616ab1617af1565b60606000616abd617af1565b6060616ac7617b6a565b616ad08761689f565b90506000805b616adf836168e9565b15616bb45780616b0a57616afa616af58461690a565b61769b565b6001600160a01b03168552616bac565b8060011415616b3257616b1f616af58461690a565b6001600160a01b03166020860152616bac565b8060021415616b5a57616b47616af58461690a565b6001600160a01b03166040860152616bac565b8060031415616b8657616b6f613dcd8461690a565b6001600160401b0316606086015260019150616bac565b8060041415616ba757616ba0616b9b8461690a565b6176b5565b9350616bac565b616bb4565b600101616ad6565b50929791965091945092505050565b6060611dc5616bd183617725565b61780b565b6060815160001415616bf75750604080516000815260208101909152611d15565b606082600081518110616c0657fe5b602002602001015190506000600190505b8351811015616c4757616c3d82858381518110616c3057fe5b602002602001015161785d565b9150600101616c17565b5061115e616c5a825160c060ff166178da565b8261785d565b60608060006120026001600160a01b031663c473318f6040518163ffffffff1660e01b815260040160206040518083038186803b158015616ca057600080fd5b505afa158015616cb4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190616cd891906180a2565b90508085518851011015616ced575083518651015b606081604051908082528060200260200182016040528015616d2957816020015b616d16617af1565b815260200190600190039081616d0e5790505b509050606082604051908082528060200260200182016040528015616d6257816020015b6060815260200190600190039081616d4d5790505b50905060008060005b8b51831080616d7a5750895182105b8015616d8557508581105b1561701a578b51831415616df557898281518110616d9f57fe5b6020026020010151858281518110616db357fe5b6020026020010181905250888281518110616dca57fe5b6020026020010151848281518110616dde57fe5b602090810291909101015260019182019101616d6b565b8951821415616e60578b8381518110616e0a57fe5b6020026020010151858281518110616e1e57fe5b60200260200101819052508a8381518110616e3557fe5b6020026020010151848281518110616e4957fe5b602090810291909101015260019283019201616d6b565b898281518110616e6c57fe5b6020026020010151606001516001600160401b03168c8481518110616e8d57fe5b6020026020010151606001516001600160401b03161115616f09578b8381518110616eb457fe5b6020026020010151858281518110616ec857fe5b60200260200101819052508a8381518110616edf57fe5b6020026020010151848281518110616ef357fe5b6020026020010181905250826001019250617012565b898281518110616f1557fe5b6020026020010151606001516001600160401b03168c8481518110616f3657fe5b6020026020010151606001516001600160401b03161015616fb257898281518110616f5d57fe5b6020026020010151858281518110616f7157fe5b6020026020010181905250888281518110616f8857fe5b6020026020010151848281518110616f9c57fe5b6020026020010181905250816001019150617012565b898281518110616fbe57fe5b6020026020010151600001516001600160a01b03168c8481518110616fdf57fe5b6020026020010151600001516001600160a01b03161015617006578b8381518110616eb457fe5b898281518110616d9f57fe5b600101616d6b565b50929a91995090975050505050505050565b805182516000916001600160a01b039182169116148015617066575081602001516001600160a01b031683602001516001600160a01b0316145b801561115e5750506040908101519101516001600160a01b0390811691161490565b601254601354808211156170d357805b828110156170d15760128054806170ab57fe5b6001900381819060005260206000200160006170c79190617b26565b9055600101617098565b505b60008183106170e257816170e4565b825b905060005b818110156171fc576171a16012828154811061710157fe5b600091825260209182902001805460408051601f600260001961010060018716150201909416939093049283018590048502810185019091528181529283018282801561718f5780601f106171645761010080835404028352916020019161718f565b820191906000526020600020905b81548152906001019060200180831161717257829003601f168201915b50505050506013838154811061341857fe5b6171f457601381815481106171b257fe5b90600052602060002001601282815481106171c957fe5b9060005260206000200190805460018160011615610100020316600290046171f2929190617b8a565b505b6001016170e9565b5082821115610e3257825b8281101561726a5760126013828154811061721e57fe5b6000918252602080832084546001818101875595855291909320929091018054617261949390920192909160026101009282161592909202600019011604617b8a565b50600101617207565b50505050565b601354600b54808211156172bb57805b828110156172b957601380548061729357fe5b6001900381819060005260206000200160006172af9190617b26565b9055600101617280565b505b60008183106172ca57816172cc565b825b905060005b818110156173eb57617389601382815481106172e957fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156173775780601f1061734c57610100808354040283529160200191617377565b820191906000526020600020905b81548152906001019060200180831161735a57829003601f168201915b5050505050600b8381548110615ed757fe5b6173e357600b818154811061739a57fe5b9060005260206000209060160201600201601382815481106173b857fe5b9060005260206000200190805460018160011615610100020316600290046173e1929190617b8a565b505b6001016172d1565b5082821115610e3257825b8281101561726a576013600b828154811061740d57fe5b60009182526020808320845460018082018755958552919093206016929092029092016002908101805461745595939094019390926000199082161561010002011604617b8a565b506001016173f6565b600081848411156174825760405162461bcd60e51b8152600401610e12919061838a565b505050900390565b600081836174ab5760405162461bcd60e51b8152600401610e12919061838a565b5060008385816174b757fe5b0495945050505050565b80516000906174d257506000611d15565b6020820151805160001a9060c08210156174f157600092505050611d15565b5060019392505050565b8051600090811a6080811015617515576000915050611d15565b60b8811080617530575060c08110801590617530575060f881105b1561753f576001915050611d15565b60c08110156175535760b519019050611d15565b60f519019050611d15565b80516000908190811a60808110156175795760019150617638565b60b881101561758e57607e1981019150617638565b60c08110156175df57600060b78203600186019550806020036101000a8651049150600181018201935050808310156175d95760405162461bcd60e51b8152600401610e129061893b565b50617638565b60f88110156175f45760be1981019150617638565b600060f78203600186019550806020036101000a8651049150600181018201935050808310156176365760405162461bcd60e51b8152600401610e129061893b565b505b5092915050565b805160009061765057506000611d15565b6000809050600061766484602001516174fb565b602085015185519181019250015b80821015617692576176838261755e565b82019150826001019250617672565b50909392505050565b80516000906015146176ac57600080fd5b611dc582616958565b80516060906176c357600080fd5b60006176d283602001516174fb565b83516040805191839003808352601f19601f8201168301602001909152919250606090828015617709576020820181803683370190505b50905060008160200190506163c18487602001510182856179ac565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166177695750601861778d565b6fffffffffffffffffffffffffffffffff1984166177895750601061778d565b5060005b60208110156177c3578181815181106177a257fe5b01602001516001600160f81b031916156177bb576177c3565b60010161778d565b60008160200390506060816040519080825280601f01601f1916602001820160405280156177f8576020820181803683370190505b5080830196909652508452509192915050565b60608151600114801561783d5750607f60f81b8260008151811061782b57fe5b01602001516001600160f81b03191611155b15617849575080611d15565b611dc561785b8351608060ff166178da565b835b6060806040519050835180825260208201818101602087015b8183101561788e578051835260209283019201617876565b50855184518101855292509050808201602086015b818310156178bb5780518352602092830192016178a3565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106179045760405162461bcd60e51b8152600401610e1290618786565b6040805160018082528183019092526060916020820181803683370190505090506037841161795e5782840160f81b8160008151811061794057fe5b60200101906001600160f81b031916908160001a9053509050611dc5565b606061796985617725565b90508381510160370160f81b8260008151811061798257fe5b60200101906001600160f81b031916908160001a9053506179a3828261785d565b95945050505050565b806179b657610e32565b5b602081106179d6578251825260209283019290910190601f19016179b7565b915181516020939093036101000a6000190180199091169216919091179052565b60405180608001604052806000815260200160001515815260200160608152602001617a21617c52565b905290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10617a6757805160ff1916838001178555617a94565b82800160010185558215617a94579182015b82811115617a94578251825591602001919060010190617a79565b506131e8929150617c71565b8260138101928215617a945791602002820182811115617a94578251825591602001919060010190617a79565b6040518060600160405280600060ff16815260200160608152602001606081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b50805460018160011615610100020316600290046000825580601f10617b4c5750611f2d565b601f016020900490600052602060002090810190611f2d9190617c71565b6040518060400160405280617b7d617c38565b8152602001600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10617bc35780548555617a94565b82800160010185558215617a9457600052602060002091601f016020900482015b82811115617a94578254825591600101919060010190617be4565b8260138101928215617a945791820182811115617a94578254825591600101919060010190617be4565b50611f2d906013810190617c71565b604051806040016040528060008152602001600081525090565b6040518061026001604052806013906020820280368337509192915050565b61318c91905b808211156131e85760008155600101617c77565b8035611dc581618fbb565b60008083601f840112617ca7578182fd5b5081356001600160401b03811115617cbd578182fd5b60208301915083602080830285010111156159ff57600080fd5b6000601f8381840112617ce8578182fd5b8235617cfb617cf682618f70565b618f4a565b818152925060208084019085810160005b84811015617d8d578135880189603f820112617d2757600080fd5b838101356001600160401b03811115617d3f57600080fd5b617d50818901601f19168601618f4a565b81815260408c81848601011115617d6657600080fd5b82818501888401375060009181018601919091528552509282019290820190600101617d0c565b50505050505092915050565b600082601f830112617da9578081fd5b8135617db7617cf682618f70565b818152915060208083019084810181840286018201871015617dd857600080fd5b6000805b85811015617d8d5782356001600160401b0381168114617dfa578283fd5b85529383019391830191600101617ddc565b60008083601f840112617e1d578182fd5b5081356001600160401b03811115617e33578182fd5b6020830191508360208285010111156159ff57600080fd5b600060208284031215617e5c578081fd5b813561115e81618fbb565b600060208284031215617e78578081fd5b815161115e81618fbb565b60008060008060408587031215617e98578283fd5b84356001600160401b0380821115617eae578485fd5b617eba88838901617c96565b90965094506020870135915080821115617ed2578384fd5b50617edf87828801617c96565b95989497509550505050565b600080600060608486031215617eff578283fd5b83356001600160401b0380821115617f15578485fd5b81860187601f820112617f26578586fd5b80359250617f36617cf684618f70565b80848252602080830192508084018b828389028701011115617f5657898afd5b8994505b86851015617f8057617f6c8c82617c8b565b845260019490940193928101928101617f5a565b509097508801359350505080821115617f97578384fd5b617fa387838801617d99565b93506040860135915080821115617fb8578283fd5b50617fc586828701617cd7565b9150509250925092565b600060208284031215617fe0578081fd5b8151801515811461115e578182fd5b60008060208385031215618001578182fd5b82356001600160401b03811115618016578283fd5b61802285828601617e0c565b90969095509350505050565b60008060008060408587031215618043578384fd5b84356001600160401b0380821115618059578586fd5b61806588838901617e0c565b9096509450602087013591508082111561807d578384fd5b50617edf87828801617e0c565b60006020828403121561809b578081fd5b5035919050565b6000602082840312156180b3578081fd5b5051919050565b600080604083850312156180cc578182fd5b505080516020909101519092909150565b6000806000604084860312156180f1578081fd5b833560ff81168114618101578182fd5b925060208401356001600160401b0381111561811b578182fd5b61812786828701617e0c565b9497909650939450505050565b6000815180845260208085019450808401835b8381101561816c5781516001600160a01b031687529582019590820190600101618147565b509495945050505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b600081518084526181b9816020860160208601618f8f565b601f01601f19169290920160200192915050565b600082516181df818460208701618f8f565b9190910192915050565b918252602082015260400190565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b03968716815294861660208601529290941660408401526001600160401b03166060830152911515608082015260a081019190915260c00190565b6001600160a01b0392909216825260ff16602082015260400190565b60006020825261115e6020830184618134565b6000604082526182a86040830185618134565b602083820381850152818551808452828401915082838202850101838801865b838110156182f657601f198784030185526182e48383516181a1565b948601949250908501906001016182c8565b50909998505050505050505050565b6000608082526183186080830187618134565b828103602084810191909152865180835287820192820190845b8181101561834e57845183529383019391830191600101618332565b505084810360408601526183628188618134565b93505050506001600160401b038316606083015295945050505050565b901515815260200190565b60006020825261115e60208301846181a1565b6000604082526183b1604083018688618177565b82810360208401526183c4818587618177565b979650505050505050565b6020808252601c908201527f6c656e677468206f66206275726e526174696f206d69736d6174636800000000604082015260600190565b60208082526042908201527f746865206275726e526174696f20706c75732073797374656d5265776172645260408201527f6174696f206d757374206265206e6f2067726561746572207468616e20313030606082015261030360f41b608082015260a00190565b60208082526026908201527f6c656e677468206f66206d61784e756d4f664d61696e7461696e696e67206d696040820152650e6dac2e8c6d60d31b606082015260800190565b6020808252601b908201527f6261746368207472616e736665722072657475726e2066616c73650000000000604082015260600190565b6020808252602c908201527f6c656e677468206f66206d61784e756d4f66576f726b696e6743616e6469646160408201526b0e8cae640dad2e6dac2e8c6d60a31b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61696e7461696e536c6173685363616c65206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252818101527f6c656e677468206f66206e756d4f66436162696e657473206d69736d61746368604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252601f908201527f6f6e6c7920736c617368206f72207374616b6548756220636f6e747261637400604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526028908201527f746865206e756d4f66436162696e657473206d75737420626520677265617465604082015267072207468616e20360c41b606082015260800190565b60208082526039908201527f746865206e756d4f66436162696e657473206d757374206265206c657373207460408201527f68616e204d41585f4e554d5f4f465f56414c494441544f525300000000000000606082015260800190565b60208082526029908201527f746865206e756d626572206f662076616c696461746f727320657863656564206040820152681d1a19481b1a5b5a5d60ba1b606082015260800190565b60208082526022908201527f63616e206e6f7420646f207468697320747769636520696e206f6e6520626c6f604082015261636b60f01b606082015260800190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526037908201527f746865206d61784e756d4f664d61696e7461696e696e67206d7573742062652060408201527f6c657373207468616e206e756d4f66436162696e657473000000000000000000606082015260800190565b6020808252602b908201527f6475706c696361746520636f6e73656e7375732061646472657373206f66207660408201526a185b1a59185d1bdc94d95d60aa1b606082015260800190565b60208082526027908201527f7468652065787069726554696d655365636f6e64476170206973206f7574206f604082015266662072616e676560c81b606082015260800190565b6020808252601590820152746465706f7369742076616c7565206973207a65726f60581b604082015260600190565b60208082526049908201527f746865206d61784e756d4f66576f726b696e6743616e64696461746573206d7560408201527f7374206265206e6f742067726561746572207468616e206d61784e756d4f6643606082015268616e6469646174657360b81b608082015260a00190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b60208082526023908201527f63616e206e6f7420656e7465722054656d706f72617279204d61696e74656e616040820152626e636560e81b606082015260800190565b60208082526025908201527f6c656e677468206f66206a61696c2076616c696461746f7273206d757374206260408201526465206f6e6560d81b606082015260800190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61784e756d4f6643616e64696461746573206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252601290820152716e6f7420696e206d61696e74656e616e636560701b604082015260600190565b60208082526021908201527f666565206973206c6172676572207468616e2044555354595f494e434f4d494e6040820152604760f81b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b60208082526042908201527f7468652073797374656d526577617264526174696f20706c7573206275726e5260408201527f6174696f206d757374206265206e6f2067726561746572207468616e20313030606082015261030360f41b608082015260a00190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526026908201527f6c656e677468206f662065787069726554696d655365636f6e64476170206d696040820152650e6dac2e8c6d60d31b606082015260800190565b60208082526017908201527f6f6e6c792063757272656e742076616c696461746f7273000000000000000000604082015260600190565b60208082526021908201527f6661696c656420746f20706172736520696e69742076616c696461746f7253656040820152601d60fa1b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b60208082526024908201527f6c656e677468206f662073797374656d526577617264526174696f206d69736d6040820152630c2e8c6d60e31b606082015260800190565b6020808252603e908201527f746865206d61696e7461696e536c6173685363616c65206d757374206265206760408201527f726561746572207468616e203020616e64206c657373207468616e2031300000606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b60208082526029908201527f746865206d6573736167652073656e646572206d75737420626520736c6173686040820152680818dbdb9d1c9858dd60ba1b606082015260800190565b6020808252601f908201527f746865206d73672073656e646572206d757374206265207374616b6548756200604082015260600190565b61ffff91909116815260200190565b90815260200190565b60008482528315156020830152606060408301526179a360608301846181a1565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff85168252604060208301526179a3604083018486618177565b6040518181016001600160401b0381118282101715618f6857600080fd5b604052919050565b60006001600160401b03821115618f85578081fd5b5060209081020190565b60005b83811015618faa578181015183820152602001618f92565b8381111561726a5750506000910152565b6001600160a01b0381168114611f2d57600080fdfef901a880f901a4f844941284214b9b9c85549ab3d2b972df0deef66ac2c9946ddf42a51534fc98d0c0a3b42c963cace8441ddf946ddf42a51534fc98d0c0a3b42c963cace8441ddf8410000000f84494a2959d3f95eae5dc7d70144ce1b73b403b7eb6e0948081ef03f1d9e0bb4a5bf38f16285c879299f07f948081ef03f1d9e0bb4a5bf38f16285c879299f07f8410000000f8449435552c16704d214347f29fa77f77da6d75d7c75294dc4973e838e3949c77aced16ac2315dc2d7ab11194dc4973e838e3949c77aced16ac2315dc2d7ab1118410000000f84494980a75ecd1309ea12fa2ed87a8744fbfc9b863d594cc6ac05c95a99c1f7b5f88de0e3486c82293b27094cc6ac05c95a99c1f7b5f88de0e3486c82293b2708410000000f84494f474cf03cceff28abc65c9cbae594f725c80e12d94e61a183325a18a173319dd8e19c8d069459e217594e61a183325a18a173319dd8e19c8d069459e21758410000000f84494b71b214cb885500844365e95cd9942c7276e7fd894d22ca3ba2141d23adab65ce4940eb7665ea2b6a794d22ca3ba2141d23adab65ce4940eb7665ea2b6a7841000000070e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb20175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbb0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbaa164736f6c6343000604000a", - }, - { - ContractAddr: SlashContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/9d09d0a3d6332460a810188261ec8195e05aa218", - Code: "608060405234801561001057600080fd5b506004361061035d5760003560e01c80637e434d54116101d3578063c80d4b8f11610104578063df8079e9116100a2578063f9a2bbc71161007c578063f9a2bbc714610601578063fc3e590814610609578063fc4333cd14610611578063fd6a6879146106195761035d565b8063df8079e9146105e9578063e1c7392a146105f1578063f1fad104146105f95761035d565b8063c96be4cb116100de578063c96be4cb146105b3578063cc844b73146105c6578063dc927faf146105d9578063dcc6f156146105e15761035d565b8063c80d4b8f14610590578063c81b166214610598578063c8509d81146105a05761035d565b8063a1a11bf511610171578063aad560631161014b578063aad5606314610565578063ab51bb961461056d578063ac0af62914610575578063ac4317511461057d5761035d565b8063a1a11bf51461054d578063a78abc1614610555578063aa82dce11461055d5761035d565b806396713da9116101ad57806396713da9146105225780639dc092621461052a5780639e89ded8146105325780639f804f5f146105455761035d565b80637e434d54146104ff5780638256ace614610507578063831d65d11461050f5761035d565b8063493279b1116102ad57806362b72cf51161024b578063718a8aa811610225578063718a8aa8146104df57806375d47a0a146104e75780637912a65d146104ef5780637942fd05146104f75761035d565b806362b72cf5146104c75780636e47b482146104cf57806370fd5bad146104d75761035d565b806351b4dce31161028757806351b4dce31461049c57806351e80672146104a4578063567a372d146104ac5780635bfb4990146104b45761035d565b8063493279b1146104775780634bf6c8821461048c57806350055f90146104945761035d565b8063280870281161031a57806337c8dab9116102f457806337c8dab914610431578063389f4f71146104525780633dffc3871461045a57806343756e5c1461046f5761035d565b806328087028146104015780633306ccca1461040957806335aa2e441461041e5761035d565b80630bee7a67146103625780630e2374a5146103805780631182b8751461039557806322d1e80b146103b557806323bac5a2146103ca57806327962118146103ec575b600080fd5b61036a610621565b6040516103779190613d56565b60405180910390f35b610388610626565b6040516103779190613534565b6103a86103a336600461346a565b61062c565b604051610377919061356c565b6103bd610692565b6040516103779190613561565b6103dd6103d8366004613181565b61069b565b60405161037793929190613d3e565b6103ff6103fa3660046132c7565b6106be565b005b610388610a13565b610411610a19565b6040516103779190613d27565b61038861042c36600461343a565b610a1f565b61044461043f366004613181565b610a46565b604051610377929190613d30565b610411610a9d565b610462610aa3565b6040516103779190613d67565b610388610aa8565b61047f610aae565b6040516103779190613d18565b610462610ab3565b610411610ab8565b610388610abe565b610388610ac4565b610411610aca565b6103ff6104c2366004613181565b610ad0565b610411610bdc565b610388610be2565b610462610be8565b610462610bed565b610388610bf2565b610411610bf8565b610462610bfd565b610388610c02565b610444610c08565b6103ff61051d36600461346a565b610c12565b610462610d26565b610388610d2b565b6103ff6105403660046131b9565b610d31565b610411610d60565b610388610d66565b6103bd610d6c565b610388610d75565b610388610d7b565b61036a610d81565b610411610d86565b6103ff61058b36600461331e565b610d8b565b610411611327565b61038861132c565b6103ff6105ae36600461346a565b611332565b6103ff6105c1366004613181565b6113a3565b6103ff6105d4366004613387565b611812565b610388611df1565b610411611df7565b610388611dfc565b6103ff611e02565b610462611e3e565b610388611e43565b610462611e49565b6103ff611e4e565b610388612297565b606481565b61200181565b606033612000146106585760405162461bcd60e51b815260040161064f90613bbb565b60405180910390fd5b60005460ff1661067a5760405162461bcd60e51b815260040161064f90613661565b60405162461bcd60e51b815260040161064f90613cac565b60075460ff1681565b600260208190526000918252604090912080546001820154919092015460ff1683565b60005460ff166106e05760405162461bcd60e51b815260040161064f90613661565b6006546106ed5760146006555b6008546106fb576170806008555b81511580159061070b5750805115155b6107275760405162461bcd60e51b815260040161064f90613b19565b60408051600380825260808201909252606091816020015b606081526020019060019003908161073f579050509050610760606161229d565b8160008151811061076d57fe5b6020026020010181905250610781836122b8565b8160018151811061078e57fe5b60200260200101819052506107a2826122b8565b816002815181106107af57fe5b602002602001018190525060606107c58261230e565b60408051603480825260608281019093529293509091602082018180368337019050509050815160346020830182602086016068600019fa61080657600080fd5b506014810151603482015160405163436aa28360e11b8152600090612002906386d5450690610839908690600401613534565b60206040518083038186803b15801561085157600080fd5b505afa158015610865573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610889919061319d565b6001600160a01b031614156108b05760405162461bcd60e51b815260040161064f90613631565b43600854820110156108d45760405162461bcd60e51b815260040161064f906135d2565b604051631871f7d960e31b81526120029063c38fbec8906108f9908590600401613534565b600060405180830381600087803b15801561091357600080fd5b505af1158015610927573d6000803e3d6000fd5b50506040516335409f7f60e01b815261100092506335409f7f9150610950908590600401613534565b600060405180830381600087803b15801561096a57600080fd5b505af115801561097e573d6000803e3d6000fd5b50506006546040516309a99b4f60e41b815260646110028031909302049350909150639a99b4f0906109b69033908590600401613548565b602060405180830381600087803b1580156109d057600080fd5b505af11580156109e4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a089190613452565b505050505050505050565b61200581565b61708081565b60018181548110610a2c57fe5b6000918252602090912001546001600160a01b0316905081565b600080610a51612f68565b5050506001600160a01b0316600090815260026020818152604092839020835160608101855281548082526001830154938201849052919093015460ff16151592909301919091529091565b60055481565b600181565b61100181565b606181565b600881565b60065481565b61200681565b61200081565b60045481565b3361100014610af15760405162461bcd60e51b815260040161064f906138a4565b60005460ff16610b135760405162461bcd60e51b815260040161064f90613661565b61200063f7a251d7600b610b268461239f565b60006040518463ffffffff1660e01b8152600401610b4693929190613d75565b600060405180830381600087803b158015610b6057600080fd5b505af1925050508015610b71575060015b610bd9573d808015610b9f576040519150601f19603f3d011682016040523d82523d6000602084013e610ba4565b606091505b50816001600160a01b0316600080516020613e52833981519152600083604051610bcf92919061357f565b60405180910390a2505b50565b60035481565b61100581565b600281565b601081565b61100881565b603281565b600b81565b61200381565b6004546005549091565b3361200014610c335760405162461bcd60e51b815260040161064f90613bbb565b60005460ff16610c555760405162461bcd60e51b815260040161064f90613661565b610c5d612f8b565b6000610c9e84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061246892505050565b915091508015610ce55781516040517f7f0956d47419b9525356e7111652b653b530ec6f5096dccc04589bc38e62996791610cd891613d56565b60405180910390a1610d1e565b81516040517f7d45f62d17443dd4547bca8a8112c60e2385669318dc300ec61a5d2492f262e791610d1591613d56565b60405180910390a15b50505b505050565b600981565b61100781565b3361100014610d525760405162461bcd60e51b815260040161064f906138a4565b610d5c82826124e8565b5050565b60085481565b61100681565b60005460ff1681565b61200281565b61300081565b600081565b600481565b60005460ff16610dad5760405162461bcd60e51b815260040161064f90613661565b3361100714610dce5760405162461bcd60e51b815260040161064f90613a08565b610e3984848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260148152731b5a5cd9195b59585b9bdc951a1c995cda1bdb1960621b6020820152915061269b9050565b15610ed45760208114610e5e5760405162461bcd60e51b815260040161064f90613830565b604080516020601f8401819004810282018101909252828152600091610e9c918585808385018382808284376000920191909152506126f592505050565b905060018110158015610eb0575060055481105b610ecc5760405162461bcd60e51b815260040161064f90613b76565b6004556112e4565b610f3a84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e19995b1bdb9e551a1c995cda1bdb19608a1b6020820152915061269b9050565b15610fd65760208114610f5f5760405162461bcd60e51b815260040161064f90613a56565b604080516020601f8401819004810282018101909252828152600091610f9d918585808385018382808284376000920191909152506126f592505050565b90506103e88111158015610fb2575060045481115b610fce5760405162461bcd60e51b815260040161064f9061371a565b6005556112e4565b61104384848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601681527566656c6f6e79536c617368526577617264526174696f60501b6020820152915061269b9050565b156110dd57602081146110685760405162461bcd60e51b815260040161064f90613990565b604080516020601f84018190048102820181019092528281526000916110a6918585808385018382808284376000920191909152506126f592505050565b9050600a81101580156110b95750606481105b6110d55760405162461bcd60e51b815260040161064f90613a98565b6006556112e4565b61115184848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f656e61626c654d616c6963696f7573566f7465536c61736800000000000000006020820152915061269b9050565b156111c857602081146111765760405162461bcd60e51b815260040161064f9061374f565b604080516020601f84018190048102820181019092528281526111b291908484808385018382808284376000920191909152506126fa92505050565b6007805460ff19169115159190911790556112e4565b61122f84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601081526f66656c6f6e79536c61736853636f706560801b6020820152915061269b9050565b156112cc57602081146112545760405162461bcd60e51b815260040161064f9061391f565b604080516020601f8401819004810282018101909252828152600091611292918585808385018382808284376000920191909152506126f592505050565b905061708081101580156112a85750620d2f0081105b6112c45760405162461bcd60e51b815260040161064f90613698565b6008556112e4565b60405162461bcd60e51b815260040161064f90613c57565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a8484848460405161131994939291906135a0565b60405180910390a150505050565b609681565b61100281565b33612000146113535760405162461bcd60e51b815260040161064f90613bbb565b60005460ff166113755760405162461bcd60e51b815260040161064f90613661565b6040517f07db600eebe2ac176be8dcebad61858c245a4961bb32ca2aa3d159b09aa0810e90600090a1505050565b3341146113c25760405162461bcd60e51b815260040161064f90613c0a565b60005460ff166113e45760405162461bcd60e51b815260040161064f90613661565b60035443116114055760405162461bcd60e51b815260040161064f90613ce3565b3a156114235760405162461bcd60e51b815260040161064f90613962565b60405163155853f360e21b8152611000906355614fcc90611448908490600401613534565b60206040518083038186803b15801561146057600080fd5b505afa158015611474573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149891906132a7565b6114a15761180b565b6114a9612f68565b506001600160a01b0381166000908152600260208181526040928390208351606081018552815481526001820154928101929092529091015460ff16158015928201929092529061150457602081018051600101905261155d565b60016040820181905260208201819052805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0384161790555b43815260055460208201518161156f57fe5b0661173957600060208201526040516335409f7f60e01b8152611000906335409f7f906115a0908590600401613534565b600060405180830381600087803b1580156115ba57600080fd5b505af11580156115ce573d6000803e3d6000fd5b505060405163436aa28360e11b81526000925061200291506386d54506906115fa908690600401613534565b60206040518083038186803b15801561161257600080fd5b505afa158015611626573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061164a919061319d565b6001600160a01b03161461166b576116668282602001516124e8565b611734565b61200063f7a251d7600b61167e8561239f565b60006040518463ffffffff1660e01b815260040161169e93929190613d75565b600060405180830381600087803b1580156116b857600080fd5b505af19250505080156116c9575060015b611734573d8080156116f7576040519150601f19603f3d011682016040523d82523d6000602084013e6116fc565b606091505b50826001600160a01b0316600080516020613e5283398151915283602001518360405161172a92919061357f565b60405180910390a2505b6117a5565b60045481602001518161174857fe5b066117a5576040516375abf10160e11b81526110009063eb57e20290611772908590600401613534565b600060405180830381600087803b15801561178c57600080fd5b505af11580156117a0573d6000803e3d6000fd5b505050505b6001600160a01b0382166000818152600260208181526040808420865181559186015160018301558581015191909201805460ff1916911515919091179055517fddb6012116e51abf5436d956a4f0ebd927e92c576ff96d7918290c8782291e3e9190a2505b5043600355565b60005460ff166118345760405162461bcd60e51b815260040161064f90613661565b60075460ff166118565760405162461bcd60e51b815260040161064f906135fc565b6006546118635760146006555b600854611871576170806008555b60085481516040015143910111801561189557504360085482602001516040015101115b6118b15760405162461bcd60e51b815260040161064f90613c7e565b8060200151602001518160000151602001511480156118df5750806020015160600151816000015160600151145b156118fc5760405162461bcd60e51b815260040161064f90613877565b80516040810151905110801561191b5750602081015160408101519051105b6119375760405162461bcd60e51b815260040161064f906137f9565b60208101515181515110801561195c5750806000015160400151816020015160400151105b8061198757508051516020820151511080156119875750806020015160400151816000015160400151105b806119a15750806020015160400151816000015160400151145b6119bd5760405162461bcd60e51b815260040161064f906136e3565b604080820151905163ea321e4960e01b81526110009163ea321e49916119e6919060040161356c565b60206040518083038186803b1580156119fe57600080fd5b505afa158015611a12573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3691906132a7565b611a525760405162461bcd60e51b815260040161064f906139d9565b611a6481600001518260400151612722565b8015611a7d5750611a7d81602001518260400151612722565b611a995760405162461bcd60e51b815260040161064f9061379a565b6060806110006001600160a01b0316633b071dcc6040518163ffffffff1660e01b815260040160006040518083038186803b158015611ad757600080fd5b505afa158015611aeb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611b1391908101906131e4565b9150915060005b8151811015611c5057611b44828281518110611b3257fe5b602002602001015185604001516128fa565b15611c48576006546040516309a99b4f60e41b815260646110028031909302049190639a99b4f090611b7c9033908590600401613548565b602060405180830381600087803b158015611b9657600080fd5b505af1158015611baa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bce9190613452565b506110006001600160a01b03166335409f7f858481518110611bec57fe5b60200260200101516040518263ffffffff1660e01b8152600401611c109190613534565b600060405180830381600087803b158015611c2a57600080fd5b505af1158015611c3e573d6000803e3d6000fd5b5050505050611c50565b600101611b1a565b5060408084015190516317b4f35360e01b8152600091612002916317b4f35391611c7c9160040161356c565b60206040518083038186803b158015611c9457600080fd5b505afa158015611ca8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ccc919061319d565b6001600160a01b031614611d3a576040808401519051630e9fbf5160e01b815261200291630e9fbf5191611d03919060040161356c565b600060405180830381600087803b158015611d1d57600080fd5b505af1158015611d31573d6000803e3d6000fd5b50505050610d21565b6120006001600160a01b031663f7a251d7600b611d5a866040015161295e565b60006040518463ffffffff1660e01b8152600401611d7a93929190613d75565b600060405180830381600087803b158015611d9457600080fd5b505af1158015611da8573d6000803e3d6000fd5b505050506000611dbd84604001516000612999565b60405190915081907f7b78aadacff901d8b63d0dba4f86283d4db8aef27f9ed70413dd860f1c9532b690600090a250505050565b61100381565b601481565b61200481565b60005460ff1615611e255760405162461bcd60e51b815260040161064f90613ae2565b603260045560966005556000805460ff19166001179055565b601181565b61100081565b600381565b3361100014611e6f5760405162461bcd60e51b815260040161064f906138a4565b60005460ff16611e915760405162461bcd60e51b815260040161064f90613661565b600154611e9d57612295565b600154600090600019015b808211612269576000805b82841015611fcc57611ec3612f68565b6002600060018781548110611ed457fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff161515908201526005549091506004900481602001511115611fb657600460055481611f4157fe5b04816020015103816020018181525050806002600060018881548110611f6357fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208351815591830151600183015591909101516002909101805460ff1916911515919091179055611fc0565b6001925050611fcc565b50836001019350611eb3565b82841161216357611fdb612f68565b6002600060018681548110611fec57fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff1615159082015260055490915060049004816020015111156120d45760046005548161205957fe5b0481602001510381602001818152505080600260006001878154811061207b57fe5b6000918252602080832091909101546001600160a01b03168352828101939093526040918201902083518155918301516001808401919091559201516002909101805460ff191691151591909117905591506121639050565b60026000600186815481106120e557fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff1916905580548061212957fe5b600082815260209020810160001990810180546001600160a01b0319169055019055836121565750612163565b5060001990920191611fcc565b81801561216d5750805b1561224c57600260006001868154811061218357fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff191690558054849081106121ca57fe5b600091825260209091200154600180546001600160a01b0390921691869081106121f057fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600180548061222957fe5b600082815260209020810160001990810180546001600160a01b03191690550190555b82612258575050612269565b505060019091019060001901611ea8565b6040517fcfdb3b6ccaeccbdc68be3c59c840e3b3c90f0a7c491f5fff1cf56cfda200dd9c90600090a150505b565b61100481565b60606122b06122ab836129b5565b6122b8565b90505b919050565b6060815160011480156122ea5750607f60f81b826000815181106122d857fe5b01602001516001600160f81b03191611155b156122f65750806122b3565b6122b06123088351608060ff16612a9b565b83612b6d565b606081516000141561232f57506040805160008152602081019091526122b3565b60608260008151811061233e57fe5b602002602001015190506000600190505b835181101561237f576123758285838151811061236857fe5b6020026020010151612b6d565b915060010161234f565b50612398612392825160c060ff16612a9b565b82612b6d565b9392505050565b60408051600480825260a08201909252606091829190816020015b60608152602001906001900390816123ba5790505090506123e3836001600160a01b0316612bea565b816000815181106123f057fe5b60200260200101819052506124044361229d565b8160018151811061241157fe5b6020908102919091010152612426606161229d565b8160028151811061243357fe5b60200260200101819052506124474261229d565b8160038151811061245457fe5b60200260200101819052506123988161230e565b612470612f8b565b600061247a612f8b565b612482612f9d565b61249361248e86612c0d565b612c32565b90506000805b6124a283612c7c565b156124db57806124ce576124bd6124b884612c9d565b612ceb565b63ffffffff168452600191506124d3565b6124db565b600101612499565b5091935090915050915091565b6040516375cc7d8960e01b8152612002906375cc7d899061250d908590600401613534565b600060405180830381600087803b15801561252757600080fd5b505af1925050508015612538575060015b610d5c576040516000815260443d1015612554575060006125f1565b60046000803e60005160e01c6308c379a081146125755760009150506125f1565b60043d036004833e81513d602482011167ffffffffffffffff821117156125a1576000925050506125f1565b808301805167ffffffffffffffff8111156125c35760009450505050506125f1565b8060208301013d86018111156125e1576000955050505050506125f1565b601f01601f191660405250925050505b806125fc5750612633565b826001600160a01b0316600080516020613e52833981519152838360405161262592919061357f565b60405180910390a250612696565b3d80801561265d576040519150601f19603f3d011682016040523d82523d6000602084013e612662565b606091505b50826001600160a01b0316600080516020613e52833981519152838360405161268c92919061357f565b60405180910390a2505b610d5c565b6000816040516020016126ae9190613518565b60405160208183030381529060405280519060200120836040516020016126d59190613518565b604051602081830303815290604052805190602001201490505b92915050565b015190565b8082015160009060ff81161561271457600191508161271a565b60009150815b505092915050565b60408051600480825260a0820190925260009160609190816020015b606081526020019060019003908161273e575050604080516020808252818301909252919250606091908082018180368337019050509050612783856000015161229d565b8260008151811061279057fe5b60200260200101819052506127ab6020866020015183612d6d565b6127b4816122b8565b826001815181106127c157fe5b60200260200101819052506127d9856040015161229d565b826002815181106127e657fe5b60200260200101819052506128016020866060015183612d6d565b61280a816122b8565b8260038151811061281757fe5b602002602001018190525061283d60206128308461230e565b8051906020012083612d6d565b6040805160b080825260e0820190925260609160208201818036833701905050905061286d818360006020612d7d565b61287f81876080015160206060612d7d565b61288d818660806030612d7d565b604080516001808252818301909252606091602082018180368337019050509050815160016020830182602086016066600019fa6128ca57600080fd5b5060016128d8826000612dd0565b60ff16146128ed5760009450505050506126ef565b5060019695505050505050565b8151815160009160019181148083146129165760009250612954565b600160208701838101602088015b60028483851001141561294f5780518351146129435760009650600093505b60209283019201612924565b505050505b5090949350505050565b60408051600480825260a08201909252606091829190816020015b60608152602001906001900390816129795790505090506123e3836122b8565b600081602001835110156129ac57600080fd5b50016020015190565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166129f957506018612a1d565b6fffffffffffffffffffffffffffffffff198416612a1957506010612a1d565b5060005b6020811015612a5357818181518110612a3257fe5b01602001516001600160f81b03191615612a4b57612a53565b600101612a1d565b60008160200390506060816040519080825280601f01601f191660200182016040528015612a88576020820181803683370190505b5080830196909652508452509192915050565b6060680100000000000000008310612ac55760405162461bcd60e51b815260040161064f906137d1565b60408051600180825281830190925260609160208201818036833701905050905060378411612b1f5782840160f81b81600081518110612b0157fe5b60200101906001600160f81b031916908160001a90535090506126ef565b6060612b2a856129b5565b90508381510160370160f81b82600081518110612b4357fe5b60200101906001600160f81b031916908160001a905350612b648282612b6d565b95945050505050565b6060806040519050835180825260208201818101602087015b81831015612b9e578051835260209283019201612b86565b50855184518101855292509050808201602086015b81831015612bcb578051835260209283019201612bb3565b508651929092011591909101601f01601f191660405250905092915050565b60408051600560a21b8318601482015260348101909152606090612398816122b8565b612c15612fbd565b506040805180820190915281518152602082810190820152919050565b612c3a612f9d565b612c4382612dec565b612c4c57600080fd5b6000612c5b8360200151612e26565b60208085015160408051808201909152868152920190820152915050919050565b6000612c86612fbd565b505080518051602091820151919092015191011190565b612ca5612fbd565b612cae82612c7c565b612cb757600080fd5b60208201516000612cc782612e89565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590612d0057508151602110155b612d0957600080fd5b6000612d188360200151612e26565b90508083600001511015612d3e5760405162461bcd60e51b815260040161064f90613b3f565b825160208085015183018051928490039291831015612d6457826020036101000a820491505b50949350505050565b9091018181526020918201910152565b60005b81811015610d1e57838181518110612d9457fe5b602001015160f81c60f81b858480600101955081518110612db157fe5b60200101906001600160f81b031916908160001a905350600101612d80565b60008160010183511015612de357600080fd5b50016001015190565b8051600090612dfd575060006122b3565b6020820151805160001a9060c0821015612e1c576000925050506122b3565b5060019392505050565b8051600090811a6080811015612e405760009150506122b3565b60b8811080612e5b575060c08110801590612e5b575060f881105b15612e6a5760019150506122b3565b60c0811015612e7e5760b5190190506122b3565b60f5190190506122b3565b80516000908190811a6080811015612ea45760019150612f61565b60b8811015612eb957607e1981019150612f61565b60c0811015612f0a57600060b78203600186019550806020036101000a865104915060018101820193505080831015612f045760405162461bcd60e51b815260040161064f906138f4565b50612f61565b60f8811015612f1f5760be1981019150612f61565b600060f78203600186019550806020036101000a86510491506001810182019350508083101561271a5760405162461bcd60e51b815260040161064f906138f4565b5092915050565b604051806060016040528060008152602001600081526020016000151581525090565b60408051602081019091526000815290565b6040518060400160405280612fb0612fbd565b8152602001600081525090565b604051806040016040528060008152602001600081525090565b600082601f830112612fe7578081fd5b8151612ffa612ff582613dc8565b613da1565b818152915060208083019084810160005b84811015613070578151870188603f82011261302657600080fd5b83810151613036612ff582613de8565b81815260408b8184860101111561304c57600080fd5b61305b83888401838701613e0c565b5086525050928201929082019060010161300b565b505050505092915050565b60008083601f84011261308c578182fd5b50813567ffffffffffffffff8111156130a3578182fd5b6020830191508360208285010111156130bb57600080fd5b9250929050565b600082601f8301126130d2578081fd5b81356130e0612ff582613de8565b91508082528360208285010111156130f757600080fd5b8060208401602084013760009082016020015292915050565b600060a08284031215613121578081fd5b61312b60a0613da1565b905081358152602082013560208201526040820135604082015260608201356060820152608082013567ffffffffffffffff81111561316957600080fd5b613175848285016130c2565b60808301525092915050565b600060208284031215613192578081fd5b813561239881613e3c565b6000602082840312156131ae578081fd5b815161239881613e3c565b600080604083850312156131cb578081fd5b82356131d681613e3c565b946020939093013593505050565b600080604083850312156131f6578182fd5b825167ffffffffffffffff8082111561320d578384fd5b81850186601f82011261321e578485fd5b8051925061322e612ff584613dc8565b80848252602080830192508084018a82838902870101111561324e578889fd5b8894505b8685101561327957805161326581613e3c565b845260019490940193928101928101613252565b508801519096509350505080821115613290578283fd5b5061329d85828601612fd7565b9150509250929050565b6000602082840312156132b8578081fd5b81518015158114612398578182fd5b600080604083850312156132d9578182fd5b823567ffffffffffffffff808211156132f0578384fd5b6132fc868387016130c2565b93506020850135915080821115613311578283fd5b5061329d858286016130c2565b60008060008060408587031215613333578182fd5b843567ffffffffffffffff8082111561334a578384fd5b6133568883890161307b565b9096509450602087013591508082111561336e578384fd5b5061337b8782880161307b565b95989497509550505050565b600060208284031215613398578081fd5b813567ffffffffffffffff808211156133af578283fd5b818401606081870312156133c1578384fd5b6133cb6060613da1565b92508035828111156133db578485fd5b6133e787828401613110565b8452506020810135828111156133fb578485fd5b61340787828401613110565b60208501525060408101358281111561341e578485fd5b61342a878284016130c2565b6040850152509195945050505050565b60006020828403121561344b578081fd5b5035919050565b600060208284031215613463578081fd5b5051919050565b60008060006040848603121561347e578081fd5b833560ff8116811461348e578182fd5b9250602084013567ffffffffffffffff8111156134a9578182fd5b6134b58682870161307b565b9497909650939450505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008151808452613504816020860160208601613e0c565b601f01601f19169290920160200192915050565b6000825161352a818460208701613e0c565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b60006020825261239860208301846134ec565b60008382526040602083015261359860408301846134ec565b949350505050565b6000604082526135b46040830186886134c2565b82810360208401526135c78185876134c2565b979650505050505050565b60208082526010908201526f195d9a59195b98d9481d1bdbc81bdb1960821b604082015260600190565b6020808252818101527f6d616c6963696f757320766f746520736c617368206e6f7420656e61626c6564604082015260600190565b6020808252601690820152751d985b1a59185d1bdc881b9bdd081b5a59dc985d195960521b604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252602b908201527f746865206d616c6963696f757320766f746520736c6173682073636f7065206f60408201526a7574206f662072616e676560a81b606082015260800190565b6020808252601a908201527f6e6f2076696f6c6174696f6e206f6620766f74652072756c6573000000000000604082015260600190565b6020808252818101527f7468652066656c6f6e795468726573686f6c64206f7574206f662072616e6765604082015260600190565b6020808252602b908201527f6c656e677468206f6620656e61626c654d616c6963696f7573566f7465536c6160408201526a0e6d040dad2e6dac2e8c6d60ab1b606082015260800190565b60208082526017908201527f766572696679207369676e6174757265206661696c6564000000000000000000604082015260600190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526019908201527f7372634e756d20626967676572207468616e207461724e756d00000000000000604082015260600190565b60208082526027908201527f6c656e677468206f66206d697364656d65616e6f725468726573686f6c64206d6040820152660d2e6dac2e8c6d60cb1b606082015260800190565b60208082526013908201527274776f206964656e746963616c20766f74657360681b604082015260600190565b60208082526030908201527f746865206d6573736167652073656e646572206d7573742062652076616c696460408201526f185d1bdc94d95d0818dbdb9d1c9858dd60821b606082015260800190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b60208082526023908201527f6c656e677468206f662066656c6f6e79536c61736853636f7065206d69736d616040820152620e8c6d60eb1b606082015260800190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b60208082526029908201527f6c656e677468206f662066656c6f6e79536c617368526577617264526174696f604082015268040dad2e6dac2e8c6d60bb1b606082015260800190565b6020808252601590820152741d9bdd195059191c881a5cc81b9bdd08199bdd5b99605a1b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526022908201527f6c656e677468206f662066656c6f6e795468726573686f6c64206d69736d61746040820152610c6d60f31b606082015260800190565b6020808252602a908201527f7468652066656c6f6e7920736c6173682072657761726420726174696f206f7560408201526974206f662072616e676560b01b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b6020808252600c908201526b32b6b83a3c903432b0b232b960a11b604082015260600190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526025908201527f746865206d697364656d65616e6f725468726573686f6c64206f7574206f662060408201526472616e676560d81b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b6020808252601490820152731d185c99d95d08189b1bd8dac81d1bdbc81bdb1960621b604082015260600190565b6020808252601e908201527f7265636569766520756e65787065637465642073796e207061636b6167650000604082015260600190565b6020808252818101527f63616e206e6f7420736c61736820747769636520696e206f6e6520626c6f636b604082015260600190565b61ffff91909116815260200190565b90815260200190565b918252602082015260400190565b92835260208301919091521515604082015260600190565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff8516825260606020830152613d9160608301856134ec565b9050826040830152949350505050565b60405181810167ffffffffffffffff81118282101715613dc057600080fd5b604052919050565b600067ffffffffffffffff821115613dde578081fd5b5060209081020190565b600067ffffffffffffffff821115613dfe578081fd5b50601f01601f191660200190565b60005b83811015613e27578181015183820152602001613e0f565b83811115613e36576000848401525b50505050565b6001600160a01b0381168114610bd957600080fdfed7bc86ff5d08c8ab043edec743302aba2520e6635172a428bc956721db9e2d1ca164736f6c6343000604000a", - }, - { - ContractAddr: TokenHubContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/9d09d0a3d6332460a810188261ec8195e05aa218", - Code: "6080604052600436106104405760003560e01c80639509b98011610234578063c81b16621161012e578063ebf71d53116100b6578063fb063e8f1161007a578063fb063e8f146110d3578063fc1a598f146110e8578063fc3e590814610cca578063fd6a68791461111b578063ff9c0027146108a057610488565b8063ebf71d531461106a578063f01484721461107f578063f1fad10414611094578063f9a2bbc7146110a9578063fa9e9159146110be57610488565b8063dc927faf116100fd578063dc927faf14610fce578063df8079e914610fe3578063e04c83a714610ff8578063e1c7392a14611022578063e8f35cea1461103757610488565b8063c81b166214610ef9578063c8509d8114610f0e578063cf41984414610f93578063d9e6dae91461080d57610488565b8063aa7415f5116101bc578063b99328c511610180578063b99328c514610e30578063b9fd21e314610e69578063ba35ead614610e7e578063bbface1f14610e93578063bd46646114610ec657610488565b8063aa7415f514610cdf578063aa82dce114610d26578063aad5606314610d3b578063ab51bb9614610d50578063ac43175114610d6557610488565b80639dc09262116102035780639dc0926214610c76578063a1a11bf514610c8b578063a496fba214610ca0578063a78abc1614610cb5578063a7c9f02d14610cca57610488565b80639509b98014610bda57806396713da914610c135780639a854bbd14610c285780639a99b4f014610c3d57610488565b806359b9278911610345578063727be1f8116102cd578063831d65d111610291578063831d65d114610ac85780638525db0314610b4d5780638b87b21f146107625780638eff336c14610b8657806393ab703f14610bc557610488565b8063727be1f814610a2057806375d47a0a14610a4a5780637942fd0514610a5f578063799758b914610a745780637e434d5414610ab357610488565b80636e056520116103145780636e056520146108b55780636e47b482146109e157806370fd5bad146108a0578063718a8aa8146109f657806371d3086314610a0b57610488565b806359b92789146108615780635d499b1b1461088b578063613684751461080d57806366dea52a146108a057610488565b80633fd8b02f116103c85780634a3acdf4116103975780634a3acdf4146107f85780634bf6c8821461080d57806350432d321461082257806351b4dce31461083757806351e806721461084c57610488565b80633fd8b02f1461078d57806343756e5c146107a257806343a368b9146107b7578063493279b1146107cc57610488565b8063149d14d91161040f578063149d14d91461062157806328087028146106485780632ae454831461065d5780633d713223146106b15780633dffc3871461076257610488565b80630bee7a671461048d5780630e2374a5146104bb5780631182b875146104ec57806312234582146105e657610488565b36610488573415610486576040805133815234602082015281517f6c98249d85d88c3753a04a22230f595e4dc8d3dc86c34af35deeeedc861b89db929181900390910190a15b005b600080fd5b34801561049957600080fd5b506104a2611130565b6040805163ffffffff9092168252519081900360200190f35b3480156104c757600080fd5b506104d0611135565b604080516001600160a01b039092168252519081900360200190f35b3480156104f857600080fd5b506105716004803603604081101561050f57600080fd5b60ff8235169190810190604081016020820135600160201b81111561053357600080fd5b82018360208201111561054557600080fd5b803590602001918460018302840111600160201b8311171561056657600080fd5b50909250905061113b565b6040805160208082528351818301528351919283929083019185019080838360005b838110156105ab578181015183820152602001610593565b50505050905090810190601f1680156105d85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156105f257600080fd5b506104866004803603604081101561060957600080fd5b506001600160a01b0381358116916020013516611269565b34801561062d57600080fd5b50610636611363565b60408051918252519081900360200190f35b34801561065457600080fd5b506104d0611369565b34801561066957600080fd5b506106986004803603604081101561068057600080fd5b506001600160a01b038135811691602001351661136f565b6040805192835260208301919091528051918290030190f35b3480156106bd57600080fd5b506104d0600480360360208110156106d457600080fd5b810190602081018135600160201b8111156106ee57600080fd5b82018360208201111561070057600080fd5b803590602001918460018302840111600160201b8311171561072157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611393945050505050565b34801561076e57600080fd5b506107776113b7565b6040805160ff9092168252519081900360200190f35b34801561079957600080fd5b506106366113bc565b3480156107ae57600080fd5b506104d06113c2565b3480156107c357600080fd5b506106366113c8565b3480156107d857600080fd5b506107e16113d4565b6040805161ffff9092168252519081900360200190f35b34801561080457600080fd5b506106366113d9565b34801561081957600080fd5b506107776113df565b34801561082e57600080fd5b506106366113e4565b34801561084357600080fd5b506104d06113ef565b34801561085857600080fd5b506104d06113f5565b34801561086d57600080fd5b506104d06004803603602081101561088457600080fd5b50356113fb565b34801561089757600080fd5b50610636611416565b3480156108ac57600080fd5b5061077761141f565b6109cd600480360360808110156108cb57600080fd5b810190602081018135600160201b8111156108e557600080fd5b8201836020820111156108f757600080fd5b803590602001918460208302840111600160201b8311171561091857600080fd5b919390929091602081019035600160201b81111561093557600080fd5b82018360208201111561094757600080fd5b803590602001918460208302840111600160201b8311171561096857600080fd5b919390929091602081019035600160201b81111561098557600080fd5b82018360208201111561099757600080fd5b803590602001918460208302840111600160201b831117156109b857600080fd5b91935091503567ffffffffffffffff16611424565b604080519115158252519081900360200190f35b3480156109ed57600080fd5b506104d06118f9565b348015610a0257600080fd5b506107776118ff565b348015610a1757600080fd5b50610636611904565b348015610a2c57600080fd5b506109cd60048036036020811015610a4357600080fd5b503561190a565b348015610a5657600080fd5b506104d061198b565b348015610a6b57600080fd5b50610777611991565b348015610a8057600080fd5b5061048660048036036060811015610a9757600080fd5b508035906001600160a01b036020820135169060400135611996565b348015610abf57600080fd5b506104d0611c46565b348015610ad457600080fd5b5061048660048036036040811015610aeb57600080fd5b60ff8235169190810190604081016020820135600160201b811115610b0f57600080fd5b820183602082011115610b2157600080fd5b803590602001918460018302840111600160201b83111715610b4257600080fd5b509092509050611c4c565b348015610b5957600080fd5b5061048660048036036040811015610b7057600080fd5b50803590602001356001600160a01b0316611d94565b348015610b9257600080fd5b5061048660048036036060811015610ba957600080fd5b508035906001600160a01b036020820135169060400135611efd565b348015610bd157600080fd5b50610636611f83565b348015610be657600080fd5b5061048660048036036040811015610bfd57600080fd5b506001600160a01b038135169060200135611f8a565b348015610c1f57600080fd5b50610777612147565b348015610c3457600080fd5b5061063661214c565b348015610c4957600080fd5b5061063660048036036040811015610c6057600080fd5b506001600160a01b038135169060200135612158565b348015610c8257600080fd5b506104d0612296565b348015610c9757600080fd5b506104d061229c565b348015610cac57600080fd5b506107776122a2565b348015610cc157600080fd5b506109cd6122a7565b348015610cd657600080fd5b506107776122b0565b6109cd60048036036080811015610cf557600080fd5b5080356001600160a01b03908116916020810135909116906040810135906060013567ffffffffffffffff166122b5565b348015610d3257600080fd5b506104d0612335565b348015610d4757600080fd5b506104d061233b565b348015610d5c57600080fd5b506104a26122a2565b348015610d7157600080fd5b5061048660048036036040811015610d8857600080fd5b810190602081018135600160201b811115610da257600080fd5b820183602082011115610db457600080fd5b803590602001918460018302840111600160201b83111715610dd557600080fd5b919390929091602081019035600160201b811115610df257600080fd5b820183602082011115610e0457600080fd5b803590602001918460018302840111600160201b83111715610e2557600080fd5b509092509050612341565b348015610e3c57600080fd5b5061048660048036036040811015610e5357600080fd5b50803590602001356001600160a01b03166127e9565b348015610e7557600080fd5b50610636612869565b348015610e8a57600080fd5b50610636612873565b348015610e9f57600080fd5b5061063660048036036020811015610eb657600080fd5b50356001600160a01b0316612879565b348015610ed257600080fd5b5061063660048036036020811015610ee957600080fd5b50356001600160a01b031661288b565b348015610f0557600080fd5b506104d06128a6565b348015610f1a57600080fd5b5061048660048036036040811015610f3157600080fd5b60ff8235169190810190604081016020820135600160201b811115610f5557600080fd5b820183602082011115610f6757600080fd5b803590602001918460018302840111600160201b83111715610f8857600080fd5b5090925090506128ac565b348015610f9f57600080fd5b5061048660048036036040811015610fb657600080fd5b506001600160a01b038135811691602001351661297c565b348015610fda57600080fd5b506104d0612c50565b348015610fef57600080fd5b506104d0612c56565b34801561100457600080fd5b506109cd6004803603602081101561101b57600080fd5b5035612c5c565b34801561102e57600080fd5b50610486612cfc565b34801561104357600080fd5b506106366004803603602081101561105a57600080fd5b50356001600160a01b0316612d9c565b34801561107657600080fd5b50610777612dae565b34801561108b57600080fd5b50610777612db3565b3480156110a057600080fd5b50610777612db8565b3480156110b557600080fd5b506104d0612dbd565b3480156110ca57600080fd5b50610636612dc3565b3480156110df57600080fd5b50610636612dc9565b3480156110f457600080fd5b506105716004803603602081101561110b57600080fd5b50356001600160a01b0316612dd7565b34801561112757600080fd5b506104d0612efe565b606481565b61200181565b60005460609060ff16611183576040805162461bcd60e51b815260206004820152601960248201526000805160206153e4833981519152604482015290519081900360640190fd5b33612000146111c35760405162461bcd60e51b815260040180806020018281038252602f815260200180615392602f913960400191505060405180910390fd5b60ff8416600214156112155761120e83838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612f0492505050565b9050611262565b6040805162461bcd60e51b815260206004820152601860248201527f756e7265636f676e697a65642073796e207061636b6167650000000000000000604482015290519081900360640190fd5b9392505050565b33612000146112a95760405162461bcd60e51b815260040180806020018281038252602f815260200180615392602f913960400191505060405180910390fd5b6001600160a01b0380831660009081526007602090815260408083209385168352929052208054611314576040805162461bcd60e51b815260206004820152601060248201526f1b9bc81b1bd8dad95908185b5bdd5b9d60821b604482015290519081900360640190fd5b8054600082556040805182815290516001600160a01b0380861692908716917f152fb15aa5d80f843e1e4bd5f2fc9161714f169945024decec7e84fb910fdd519181900360200190a350505050565b60015490565b61200581565b60076020908152600092835260408084209091529082529020805460019091015482565b6020818101516000908152600490915260409020546001600160a01b03165b919050565b600181565b60055481565b61100181565b670de0b6b3a764000081565b606181565b61a8c081565b600881565b66071afd498d000081565b61200681565b61200081565b6000908152600460205260409020546001600160a01b031690565b6402540be40081565b600281565b6000805460ff1661146a576040805162461bcd60e51b815260206004820152601960248201526000805160206153e4833981519152604482015290519081900360640190fd5b8685146114a85760405162461bcd60e51b815260040180806020018281038252603b815260200180615357603b913960400191505060405180910390fd5b8683146114e65760405162461bcd60e51b815260040180806020018281038252603f815260200180615269603f913960400191505060405180910390fd5b426078018267ffffffffffffffff1610156115325760405162461bcd60e51b81526004018080602001828103825260248152602001806151e56024913960400191505060405180910390fd5b6402540be4003406156115765760405162461bcd60e51b815260040180806020018281038252604081526020018061545a6040913960400191505060405180910390fd5b604080518681526020808802820101909152859060009081906060908480156115a9578160200160208202803683370190505b50905060005b84811015611684576402540be4008b8b838181106115c957fe5b90506020020135816115d757fe5b06156116145760405162461bcd60e51b815260040180806020018281038252603c8152602001806152a8603c913960400191505060405180910390fd5b6116398b8b8381811061162357fe5b905060200201358561302890919063ffffffff16565b93506116656402540be4008c8c8481811061165057fe5b9050602002013561308290919063ffffffff16565b82828151811061167157fe5b60209081029190910101526001016115af565b506001546116a99061169c908663ffffffff6130c416565b849063ffffffff61302816565b3410156116e75760405162461bcd60e51b81526004018080602001828103825260568152602001806154046056913960600191505060405180910390fd5b6116f7348463ffffffff61311d16565b9150611701615023565b6040518060c001604052806221272160e91b60001b815260200160006001600160a01b031681526020018381526020018e8e808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505050908252506040805160208c810282810182019093528c82529283019290918d918d91829185019084908082843760009201919091525050509082525067ffffffffffffffff8916602090910152905061200063f7a251d760036117c58461315f565b6117da876402540be40063ffffffff61308216565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611838578181015183820152602001611820565b50505050905090810190601f1680156118655780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561188657600080fd5b505af115801561189a573d6000803e3d6000fd5b505060408051600081523360208201528082018890526060810187905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a15060019c9b505050505050505050505050565b61100581565b601081565b60015481565b6000336120011461194c5760405162461bcd60e51b815260040180806020018281038252603381526020018061513d6033913960400191505060405180910390fd5b8115611983576040516120019083156108fc029084906000818181858888f19350505050158015611981573d6000803e3d6000fd5b505b506001919050565b61100881565b600b81565b60005460ff166119db576040805162461bcd60e51b815260206004820152601960248201526000805160206153e4833981519152604482015290519081900360640190fd5b3361300014611a1b5760405162461bcd60e51b815260040180806020018281038252602b81526020018061523e602b913960400191505060405180910390fd5b677ce66c50e2840000811115611a625760405162461bcd60e51b81526004018080602001828103825260358152602001806152096035913960400191505060405180910390fd5b60006221272160e91b8414611bcc576000848152600460205260409020546001600160a01b031680611ad5576040805184815290516001600160a01b0386169187917fc16ee9013bf67c846d37735983debb0acc5b2d1419cb5931c9843ad4689505499181900360200190a35050611c41565b6001600160a01b038116600090815260026020526040902054611af8848261341a565b604080516370a0823160e01b8152306004820152905191945084916001600160a01b038516916370a08231916024808301926020929190829003018186803b158015611b4357600080fd5b505afa158015611b57573d6000803e3d6000fd5b505050506040513d6020811015611b6d57600080fd5b50511015611bb9576040805162461bcd60e51b8152602060048201526014602482015273696e73756666696369656e742062616c616e636560601b604482015290519081900360640190fd5b611bc58683858861345a565b5050611c3f565b611be1826402540be40063ffffffff6130c416565b905080471015611c2f576040805162461bcd60e51b8152602060048201526014602482015273696e73756666696369656e742062616c616e636560601b604482015290519081900360640190fd5b6000611c3d8582848761345a565b505b505b505050565b61200381565b60005460ff16611c91576040805162461bcd60e51b815260206004820152601960248201526000805160206153e4833981519152604482015290519081900360640190fd5b3361200014611cd15760405162461bcd60e51b815260040180806020018281038252602f815260200180615392602f913960400191505060405180910390fd5b60ff831660031415611d2157611d1c82828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506134f492505050565b611c41565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a1505050565b3361300014611dd45760405162461bcd60e51b815260040180806020018281038252602b81526020018061523e602b913960400191505060405180910390fd5b60006221272160e91b8314611e3f57506000828152600460205260409020546001600160a01b031680611e3f576040805162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a59081cde5b589bdb60921b604482015290519081900360640190fd5b6001600160a01b0380821660009081526007602090815260408083209386168352929052208054611eaa576040805162461bcd60e51b815260206004820152601060248201526f1b9bc81b1bd8dad95908185b5bdd5b9d60821b604482015290519081900360640190fd5b8054600082556040805182815290516001600160a01b03808716929086169188917f8041a9a8704332594e2884f5e0f942281cdd7611854c365b4d0aa70b2295d6b6919081900360200190a45050505050565b3361100814611f3d5760405162461bcd60e51b81526004018080602001828103825260238152602001806153c16023913960400191505060405180910390fd5b600083815260046020908152604080832080546001600160a01b039096166001600160a01b03199096168617905593825260038152838220949094556002909352912055565b6201518081565b81806001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b158015611fc457600080fd5b505afa158015611fd8573d6000803e3d6000fd5b505050506040513d6020811015611fee57600080fd5b50516001600160a01b0316331461204c576040805162461bcd60e51b815260206004820152601860248201527f6e6f74206f776e6572206f6620424550323020746f6b656e0000000000000000604482015290519081900360640190fd5b6000821161209a576040805162461bcd60e51b81526020600482015260166024820152751e995c9bc81b1a5b5a5d081b9bdd08185b1b1bddd95960521b604482015290519081900360640190fd5b6001600160a01b0383166000908152600360205260409020546120f0576040805162461bcd60e51b81526020600482015260096024820152681b9bdd08189bdd5b9960ba1b604482015290519081900360640190fd5b6001600160a01b038316600081815260066020908152604091829020859055815185815291513393927f9df3a90730dbf23b5cc18dbbd5f4af3fa94a0dffb6ff6841f98a9a9a6ac626a892908290030190a3505050565b600981565b677ce66c50e284000081565b6000805460ff1661219e576040805162461bcd60e51b815260206004820152601960248201526000805160206153e4833981519152604482015290519081900360640190fd5b33611005146121de5760405162461bcd60e51b815260040180806020018281038252602f815260200180615170602f913960400191505060405180910390fd5b60004783106121ed57476121ef565b825b9050670de0b6b3a764000081111561220b576000915050612290565b801561228d576040516001600160a01b0385169082156108fc029083906000818181858888f19350505050158015612247573d6000803e3d6000fd5b50604080516001600160a01b03861681526020810183905281517ff8b71c64315fc33b2ead2adfa487955065152a8ac33d9d5193aafd7f45dc15a0929181900390910190a15b90505b92915050565b61100781565b61100681565b600081565b60005460ff1681565b600381565b6000805460ff166122fb576040805162461bcd60e51b815260206004820152601960248201526000805160206153e4833981519152604482015290519081900360640190fd5b6040805162461bcd60e51b815260206004820152600a60248201526919195c1c9958d85d195960b21b604482015290519081900360640190fd5b61200281565b61300081565b33611007146123815760405162461bcd60e51b815260040180806020018281038252602e815260200180615305602e913960400191505060405180910390fd5b602081146123d6576040805162461bcd60e51b815260206004820152601b60248201527f65787065637465642076616c7565206c656e6774682069732033320000000000604482015290519081900360640190fd5b606084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8801819004810282018101909252868152939450606093925086915085908190840183828082843760009201919091525050505060208301519091506772656c617946656560c01b8114156124de576020820151670de0b6b3a7640000811180159061248557506402540be4008106155b6124d6576040805162461bcd60e51b815260206004820152601960248201527f7468652072656c6179466565206f7574206f662072616e676500000000000000604482015290519081900360640190fd5b600155612754565b61255287878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601781527f6c617267655472616e736665724c6f636b506572696f64000000000000000000602082015291506135509050565b156125ee57604080516020601f87018190048102820181019092528581526000916125959188888083850183828082843760009201919091525061363792505050565b905062093a808111156125e6576040805162461bcd60e51b81526020600482015260146024820152736c6f636b20706572696f6420746f6f206c6f6e6760601b604482015290519081900360640190fd5b600555612754565b61265a87878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526015815274189b9893185c99d9551c985b9cd9995c931a5b5a5d605a1b602082015291506135509050565b1561271757604080516020601f870181900481028201810190925285815260009161269d9188888083850183828082843760009201919091525061363792505050565b905068056bc75e2d631000008110156126e75760405162461bcd60e51b815260040180806020018281038252602281526020018061519f6022913960400191505060405180910390fd5b6000805260066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f855612754565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a878787876040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050505050565b33611008146128295760405162461bcd60e51b81526004018080602001828103825260238152602001806153c16023913960400191505060405180910390fd5b600091825260046020908152604080842080546001600160a01b03191690556001600160a01b039290921683526003815281832083905560029052812055565b6221272160e91b81565b61c35081565b60026020526000908152604090205481565b6001600160a01b031660009081526003602052604090205490565b61100281565b60005460ff166128f1576040805162461bcd60e51b815260206004820152601960248201526000805160206153e4833981519152604482015290519081900360640190fd5b33612000146129315760405162461bcd60e51b815260040180806020018281038252602f815260200180615392602f913960400191505060405180910390fd5b60ff831660031415611d2157611d1c82828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061363c92505050565b60085460ff16600214156129c8576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b6008805460ff191660021790556001600160a01b0380831660009081526007602090815260408083209385168352929052208054612a40576040805162461bcd60e51b815260206004820152601060248201526f1b9bc81b1bd8dad95908185b5bdd5b9d60821b604482015290519081900360640190fd5b8060010154421015612a99576040805162461bcd60e51b815260206004820152601760248201527f7374696c6c206f6e206c6f636b696e6720706572696f64000000000000000000604482015290519081900360640190fd5b805460008083556001600160a01b038516612b0c576040516001600160a01b038516906127109084906000818181858888f193505050503d8060008114612afc576040519150601f19603f3d011682016040523d82523d6000602084013e612b01565b606091505b505080915050612b9f565b846001600160a01b031663a9059cbb61c35086856040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b158015612b6f57600080fd5b5087f1158015612b83573d6000803e3d6000fd5b50505050506040513d6020811015612b9a57600080fd5b505190505b80612bf1576040805162461bcd60e51b815260206004820152601e60248201527f776974686472617720756e6c6f636b656420746f6b656e206661696c65640000604482015290519081900360640190fd5b836001600160a01b0316856001600160a01b03167f832fc3e25f2b3e6fb0eb59419a73cba405f2a249fce75f7e31ea5a457a0323f1846040518082815260200191505060405180910390a350506008805460ff19166001179055505050565b61100381565b61200481565b60003361200214612cb4576040805162461bcd60e51b815260206004820152601f60248201527f746865206d73672073656e646572206d757374206265207374616b6548756200604482015290519081900360640190fd5b814710612cf4576040516120029083156108fc029084906000818181858888f19350505050158015612cea573d6000803e3d6000fd5b50600190506113b2565b506000919050565b60005460ff1615612d54576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b66071afd498d000060019081556000808052600260205260127fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b55805460ff19169091179055565b60066020526000908152604090205481565b600481565b600581565b601181565b61100081565b61271081565b69021e19e0c9bab240000081565b6001600160a01b03811660009081526003602090815260409182902054825182815280840190935260609290918391906020820181803683375050506020810183905290506000805b60208160ff161015612e6757828160ff1681518110612e3b57fe5b01602001516001600160f81b03191615612e5a57816001019150612e5f565b612e67565b600101612e20565b5060608160ff166040519080825280601f01601f191660200182016040528015612e98576020820181803683370190505b50905060005b8260ff168160ff161015612ef457838160ff1681518110612ebb57fe5b602001015160f81c60f81b828260ff1681518110612ed557fe5b60200101906001600160f81b031916908160001a905350600101612e9e565b5095945050505050565b61100481565b6060612f0e61506f565b6000612f1984613733565b9150915080612f6f576040805162461bcd60e51b815260206004820152601f60248201527f756e7265636f676e697a6564207472616e73666572496e207061636b61676500604482015290519081900360640190fd5b6000612f7a83613872565b905063ffffffff81161561300e576040808401516020808601516001600160a01b03166000908152600290915291822054612fb59190613bd8565b9050612fbf6150a4565b60405180608001604052808660000151815260200183815260200186608001516001600160a01b031681526020018463ffffffff16815250905061300281613c11565b955050505050506113b2565b505060408051600081526020810190915291506113b29050565b60008282018381101561228d576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600061228d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613ced565b6000826130d357506000612290565b828202828482816130e057fe5b041461228d5760405162461bcd60e51b81526004018080602001828103825260218152602001806152e46021913960400191505060405180910390fd5b600061228d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613d8f565b60408051600680825260e08201909252606091829190816020015b606081526020019060019003908161317a575050835190915061319c90613de9565b816000815181106131a957fe5b60200260200101819052506131ca83602001516001600160a01b0316613dfc565b816001815181106131d757fe5b60200260200101819052506000836040015151905060608160405190808252806020026020018201604052801561322257816020015b606081526020019060019003908161320d5790505b50905060005b8281101561326f576132508660400151828151811061324357fe5b6020026020010151613de9565b82828151811061325c57fe5b6020908102919091010152600101613228565b5061327981613e1f565b8360028151811061328657fe5b60200260200101819052506060826040519080825280602002602001820160405280156132c757816020015b60608152602001906001900390816132b25790505b50905060005b8381101561331d576132fe876060015182815181106132e857fe5b60200260200101516001600160a01b0316613dfc565b82828151811061330a57fe5b60209081029190910101526001016132cd565b5061332781613e1f565b8460038151811061333457fe5b602002602001018190525060608360405190808252806020026020018201604052801561337557816020015b60608152602001906001900390816133605790505b50905060005b848110156133b557613396886080015182815181106132e857fe5b8282815181106133a257fe5b602090810291909101015260010161337b565b506133bf81613e1f565b856004815181106133cc57fe5b60200260200101819052506133ee8760a0015167ffffffffffffffff16613de9565b856005815181106133fb57fe5b602002602001018190525061340f85613e1f565b979650505050505050565b600060088211156134435761343c836007198401600a0a63ffffffff6130c416565b9050612290565b61228d836008849003600a0a63ffffffff61308216565b6001600160a01b0380841660009081526007602090815260408083209385168352929052208054613491908463ffffffff61302816565b81554262015180016001820181905560408051858152602081019290925280516001600160a01b03808616939088169289927f446d1aa056e7b903901f49880e9f252762c1b81dc4301cf28db6dae526497eaa9281900390910190a45050505050565b6134fc6150cb565b600061350783613ea9565b91509150806135475760405162461bcd60e51b81526004018080602001828103825260248152602001806153336024913960400191505060405180910390fd5b611c4182614074565b6000816040516020018082805190602001908083835b602083106135855780518252601f199092019160209182019101613566565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106135f35780518252601f1990920191602091820191016135d4565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b613644615023565b600061364f836144f8565b915091508061368f5760405162461bcd60e51b81526004018080602001828103825260248152602001806151c16024913960400191505060405180910390fd5b6136976150cb565b602080840180516001600160a01b0390811684526040808701518585015291511660009081526002909252812054905b846040015151811015613718576136f5856040015182815181106136e757fe5b60200260200101518361341a565b8560400151828151811061370557fe5b60209081029190910101526001016136c7565b506080840151604083015260056060830152611c3d82614074565b61373b61506f565b600061374561506f565b61374d615102565b61375e6137598661475c565b614781565b90506000805b61376d836147cb565b15613865578061378f57613788613783846147ec565b61483a565b845261385d565b80600114156137bc576137a96137a4846147ec565b6148f1565b6001600160a01b0316602085015261385d565b80600214156137db576137d1613783846147ec565b604085015261385d565b8060031415613803576137f06137a4846147ec565b6001600160a01b0316606085015261385d565b806004141561382b576138186137a4846147ec565b6001600160a01b0316608085015261385d565b806005141561385857613840613783846147ec565b67ffffffffffffffff1660a08501526001915061385d565b613865565b600101613764565b5091935090915050915091565b60208101516000906001600160a01b03166139b6578160a0015167ffffffffffffffff164211156138a5575060016113b2565b81604001514710156138b9575060036113b2565b6138c28261490b565b61393757606082015160408084015190516000926001600160a01b0316916127109184818181858888f193505050503d806000811461391d576040519150601f19603f3d011682016040523d82523d6000602084013e613922565b606091505b50509050806139355750600490506113b2565b505b7f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5982602001518360600151846040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a15060006113b2565b8160a0015167ffffffffffffffff164211156139d4575060016113b2565b81516020808401516001600160a01b031660009081526003909152604090205414613a01575060026113b2565b602080830151604080516370a0823160e01b815230600482015290516000936001600160a01b03909316926370a082319261c3509260248083019392829003018187803b158015613a5157600080fd5b5086fa158015613a65573d6000803e3d6000fd5b50505050506040513d6020811015613a7c57600080fd5b50516040840151909150811015613a975750600390506113b2565b613aa08361490b565b613b5757600083602001516001600160a01b031663a9059cbb61c350866060015187604001516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b158015613b1557600080fd5b5087f1158015613b29573d6000803e3d6000fd5b50505050506040513d6020811015613b4057600080fd5b5051905080613b555750600591506113b29050565b505b7f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5983602001518460600151856040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a150600090506113b2565b60006008821115613bfa5761343c836007198401600a0a63ffffffff61308216565b61228d836008849003600a0a63ffffffff6130c416565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081613c2c5750508351909150613c4e90613de9565b81600081518110613c5b57fe5b6020026020010181905250613c738360200151613de9565b81600181518110613c8057fe5b6020026020010181905250613ca183604001516001600160a01b0316613dfc565b81600281518110613cae57fe5b6020026020010181905250613ccc836060015163ffffffff16613de9565b81600381518110613cd957fe5b602002602001018190525061126281613e1f565b60008183613d795760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613d3e578181015183820152602001613d26565b50505050905090810190601f168015613d6b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581613d8557fe5b0495945050505050565b60008184841115613de15760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315613d3e578181015183820152602001613d26565b505050900390565b6060612290613df783614a79565b614b5f565b60408051600560a21b831860148201526034810190915260609061126281614b5f565b6060815160001415613e4057506040805160008152602081019091526113b2565b606082600081518110613e4f57fe5b602002602001015190506000600190505b8351811015613e9057613e8682858381518110613e7957fe5b6020026020010151614bb1565b9150600101613e60565b50611262613ea3825160c060ff16614c2e565b82614bb1565b613eb16150cb565b6000613ebb6150cb565b613ec3615102565b613ecf6137598661475c565b90506000805b613ede836147cb565b156138655780613f0457613ef46137a4846147ec565b6001600160a01b0316845261406c565b8060011415613fa5576060613f20613f1b856147ec565b614d26565b90508051604051908082528060200260200182016040528015613f4d578160200160208202803683370190505b50602086015260005b8151811015613f9e57613f7b828281518110613f6e57fe5b602002602001015161483a565b86602001518281518110613f8b57fe5b6020908102919091010152600101613f56565b505061406c565b8060021415614047576060613fbc613f1b856147ec565b90508051604051908082528060200260200182016040528015613fe9578160200160208202803683370190505b50604086015260005b8151811015613f9e5761401782828151811061400a57fe5b60200260200101516148f1565b8660400151828151811061402757fe5b6001600160a01b0390921660209283029190910190910152600101613ff2565b80600314156138585761405c613783846147ec565b63ffffffff166060850152600191505b600101613ed5565b80516001600160a01b031661429e5760005b816020015151811015614298576000826040015182815181106140a557fe5b60200260200101516001600160a01b0316612710846020015184815181106140c957fe5b60209081029190910101516040516000818181858888f193505050503d8060008114614111576040519150601f19603f3d011682016040523d82523d6000602084013e614116565b606091505b50509050806141d9577f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061415557fe5b60200260200101518560200151858151811061416d57fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a161428f565b7fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a83600001518460400151848151811061420f57fe5b60200260200101518560200151858151811061422757fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b50600101614086565b506144f5565b60005b8160200151518110156144f357600082600001516001600160a01b031663a9059cbb61c350856040015185815181106142d657fe5b6020026020010151866020015186815181106142ee57fe5b60200260200101516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b15801561434557600080fd5b5087f1158015614359573d6000803e3d6000fd5b50505050506040513d602081101561437057600080fd5b505190508015614434577fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a8360000151846040015184815181106143b057fe5b6020026020010151856020015185815181106143c857fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a16144ea565b7f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061446a57fe5b60200260200101518560200151858151811061448257fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b506001016142a1565b505b50565b614500615023565b600061450a615023565b614512615102565b61451e6137598661475c565b90506000805b61452d836147cb565b15613865578061454a57614543613783846147ec565b8452614754565b80600114156145725761455f6137a4846147ec565b6001600160a01b03166020850152614754565b8060021415614601576060614589613f1b856147ec565b905080516040519080825280602002602001820160405280156145b6578160200160208202803683370190505b50604086015260005b81518110156145fa576145d7828281518110613f6e57fe5b866040015182815181106145e757fe5b60209081029190910101526001016145bf565b5050614754565b8060031415614696576060614618613f1b856147ec565b90508051604051908082528060200260200182016040528015614645578160200160208202803683370190505b50606086015260005b81518110156145fa5761466682828151811061400a57fe5b8660600151828151811061467657fe5b6001600160a01b039092166020928302919091019091015260010161464e565b806004141561472b5760606146ad613f1b856147ec565b905080516040519080825280602002602001820160405280156146da578160200160208202803683370190505b50608086015260005b81518110156145fa576146fb82828151811061400a57fe5b8660800151828151811061470b57fe5b6001600160a01b03909216602092830291909101909101526001016146e3565b806005141561385857614740613783846147ec565b67ffffffffffffffff1660a0850152600191505b600101614524565b614764615122565b506040805180820190915281518152602082810190820152919050565b614789615102565b61479282614df7565b61479b57600080fd5b60006147aa8360200151614e31565b60208085015160408051808201909152868152920190820152915050919050565b60006147d5615122565b505080518051602091820151919092015191011190565b6147f4615122565b6147fd826147cb565b61480657600080fd5b6020820151600061481682614e94565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061484f57508151602110155b61485857600080fd5b60006148678360200151614e31565b905080836000015110156148c2576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b8251602080850151830180519284900392918310156148e857826020036101000a820491505b50949350505050565b805160009060151461490257600080fd5b6122908261483a565b600080805260066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f8541580156149445750600554155b156149865760008052600660205269021e19e0c9bab24000007f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f85561a8c06005555b6020808301516001600160a01b03166000908152600690915260409020548015806149b45750808360400151105b156149c35760009150506113b2565b6020808401516001600160a01b039081166000908152600783526040808220606088015190931682529190925290819020908401518154614a099163ffffffff61302816565b8155600554420160018201819055606085015160208087015160408089015181519081529283019490945283516001600160a01b039384169493909116927f3fb83143cd331170da18fb1e8564d97e8ec39264b6ecb1ba248ea7596ab07258928290030190a35060019392505050565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416614abd57506018614ae1565b6fffffffffffffffffffffffffffffffff198416614add57506010614ae1565b5060005b6020811015614b1757818181518110614af657fe5b01602001516001600160f81b03191615614b0f57614b17565b600101614ae1565b60008160200390506060816040519080825280601f01601f191660200182016040528015614b4c576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015614b915750607f60f81b82600081518110614b7f57fe5b01602001516001600160f81b03191611155b15614b9d5750806113b2565b612290614baf8351608060ff16614c2e565b835b6060806040519050835180825260208201818101602087015b81831015614be2578051835260209283019201614bca565b50855184518101855292509050808201602086015b81831015614c0f578051835260209283019201614bf7565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310614c7e576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b60408051600180825281830190925260609160208201818036833701905050905060378411614cd85782840160f81b81600081518110614cba57fe5b60200101906001600160f81b031916908160001a9053509050612290565b6060614ce385614a79565b90508381510160370160f81b82600081518110614cfc57fe5b60200101906001600160f81b031916908160001a905350614d1d8282614bb1565b95945050505050565b6060614d3182614df7565b614d3a57600080fd5b6000614d4583614fc7565b9050606081604051908082528060200260200182016040528015614d8357816020015b614d70615122565b815260200190600190039081614d685790505b5090506000614d958560200151614e31565b60208601510190506000805b84811015614dec57614db283614e94565b9150604051806040016040528083815260200184815250848281518110614dd557fe5b602090810291909101015291810191600101614da1565b509195945050505050565b8051600090614e08575060006113b2565b6020820151805160001a9060c0821015614e27576000925050506113b2565b5060019392505050565b8051600090811a6080811015614e4b5760009150506113b2565b60b8811080614e66575060c08110801590614e66575060f881105b15614e755760019150506113b2565b60c0811015614e895760b5190190506113b2565b60f5190190506113b2565b80516000908190811a6080811015614eaf5760019150614fc0565b60b8811015614ec457607e1981019150614fc0565b60c0811015614f3e57600060b78203600186019550806020036101000a865104915060018101820193505080831015614f38576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50614fc0565b60f8811015614f535760be1981019150614fc0565b600060f78203600186019550806020036101000a865104915060018101820193505080831015614fbe576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b8051600090614fd8575060006113b2565b60008090506000614fec8460200151614e31565b602085015185519181019250015b8082101561501a5761500b82614e94565b82019150826001019250614ffa565b50909392505050565b6040518060c001604052806000801916815260200160006001600160a01b03168152602001606081526020016060815260200160608152602001600067ffffffffffffffff1681525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b60408051608081018252600080825260208201819052918101829052606081019190915290565b604051806080016040528060006001600160a01b031681526020016060815260200160608152602001600063ffffffff1681525090565b6040518060400160405280615115615122565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe6f6e6c79207374616b696e672073797374656d20636f6e74726163742063616e2063616c6c20746869732066756e6374696f6e746865206d6573736167652073656e646572206d75737420626520696e63656e746976697a6520636f6e7472616374626e62206c61726765207472616e73666572206c696d697420746f6f20736d616c6c756e7265636f676e697a6564207472616e736665724f75742073796e207061636b61676565787069726554696d65206d7573742062652074776f206d696e75746573206c61746572616d6f756e7420697320746f6f206c617267652c20657863656564206d6178696d756d206265703220746f6b656e20616d6f756e74746865206d73672073656e646572206d75737420626520746f6b656e207265636f76657220706f7274616c4c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620726566756e644164647273696e76616c6964207472616e7366657220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374756e7265636f676e697a6564207472616e736665724f75742061636b207061636b6167654c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620616d6f756e7473746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d73672073656e646572206d75737420626520746f6b656e4d616e6167657274686520636f6e7472616374206e6f7420696e69742079657400000000000000726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e7366657220424e4220616d6f756e7420616e642072656c6179466565696e76616c696420726563656976656420424e4220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6ea164736f6c6343000604000a", - }, - { - ContractAddr: GovHubContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/9d09d0a3d6332460a810188261ec8195e05aa218", - Code: "608060405234801561001057600080fd5b506004361061021c5760003560e01c8063831d65d111610125578063ab51bb96116100ad578063df8079e91161007c578063df8079e914610615578063f1fad1041461061d578063f9a2bbc714610625578063fc3e59081461062d578063fd6a6879146106355761021c565b8063ab51bb9614610585578063c81b16621461058d578063c8509d8114610595578063dc927faf1461060d5761021c565b80639dc09262116100f45780639dc0926214610549578063a1a11bf514610551578063a78abc1614610559578063aa82dce114610575578063aad560631461057d5761021c565b8063831d65d1146103f857806388e4194e1461047257806396713da9146105395780639ab1a373146105415761021c565b80634bf6c882116101a857806370fd5bad1161017757806370fd5bad146103d0578063718a8aa8146103d857806375d47a0a146103e05780637942fd05146103e85780637e434d54146103f05761021c565b80634bf6c882146103b057806351b4dce3146103b857806351e80672146103c05780636e47b482146103c85761021c565b80633a21baae116101ef5780633a21baae1461035b5780633dffc3871461036357806343756e5c146103815780634900c4ea14610389578063493279b1146103915761021c565b80630bee7a67146102215780630e2374a5146102425780631182b875146102665780632808702814610353575b600080fd5b61022961063d565b6040805163ffffffff9092168252519081900360200190f35b61024a610642565b604080516001600160a01b039092168252519081900360200190f35b6102de6004803603604081101561027c57600080fd5b60ff8235169190810190604081016020820135600160201b8111156102a057600080fd5b8201836020820111156102b257600080fd5b803590602001918460018302840111600160201b831117156102d357600080fd5b509092509050610648565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610318578181015183820152602001610300565b50505050905090810190601f1680156103455780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61024a610737565b61022961073d565b61036b610742565b6040805160ff9092168252519081900360200190f35b61024a610747565b61036b61074d565b610399610752565b6040805161ffff9092168252519081900360200190f35b61036b610757565b61024a61075c565b61024a610762565b61024a610768565b61036b61076e565b61036b610773565b61024a610778565b61036b61077e565b61024a610783565b6104706004803603604081101561040e57600080fd5b60ff8235169190810190604081016020820135600160201b81111561043257600080fd5b82018360208201111561044457600080fd5b803590602001918460018302840111600160201b8311171561046557600080fd5b509092509050610789565b005b6104706004803603606081101561048857600080fd5b810190602081018135600160201b8111156104a257600080fd5b8201836020820111156104b457600080fd5b803590602001918460018302840111600160201b831117156104d557600080fd5b919390929091602081019035600160201b8111156104f257600080fd5b82018360208201111561050457600080fd5b803590602001918460018302840111600160201b8311171561052557600080fd5b9193509150356001600160a01b031661081b565b61036b610906565b61022961090b565b61024a610910565b61024a610916565b61056161091c565b604080519115158252519081900360200190f35b61024a610925565b61024a61092b565b61022961074d565b61024a610931565b610470600480360360408110156105ab57600080fd5b60ff8235169190810190604081016020820135600160201b8111156105cf57600080fd5b8201836020820111156105e157600080fd5b803590602001918460018302840111600160201b8311171561060257600080fd5b509092509050610937565b61024a6109ae565b61024a6109b4565b61036b6109ba565b61024a6109bf565b61036b6109c5565b61024a6109ca565b606481565b61200181565b6060336120001461068a5760405162461bcd60e51b815260040180806020018281038252602f81526020018061169d602f913960400191505060405180910390fd5b610692611638565b60006106d385858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506109d092505050565b91509150806106ef576106e66064610a96565b92505050610730565b60006106fa83610b00565b905063ffffffff811661072157505060408051600081526020810190915291506107309050565b61072a81610a96565b93505050505b9392505050565b61200581565b606681565b600181565b61100181565b600081565b606181565b600881565b61200681565b61200081565b61100581565b600281565b601081565b61100881565b600b81565b61200381565b33612000146107c95760405162461bcd60e51b815260040180806020018281038252602f81526020018061169d602f913960400191505060405180910390fd5b6040805162461bcd60e51b815260206004820152601e60248201527f7265636569766520756e65787065637465642061636b207061636b6167650000604482015290519081900360640190fd5b505050565b336120061461085b5760405162461bcd60e51b81526004018080602001828103825260318152602001806116cc6031913960400191505060405180910390fd5b610863611638565b604051806060016040528087878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505090825250604080516020601f8801819004810282018101909252868152918101919087908790819084018382808284376000920191909152505050908252506001600160a01b03841660209091015290506108fd81610b00565b50505050505050565b600981565b606581565b61100781565b61100681565b60005460ff1681565b61200281565b61300081565b61100281565b33612000146109775760405162461bcd60e51b815260040180806020018281038252602f81526020018061169d602f913960400191505060405180910390fd5b60405162461bcd60e51b81526004018080602001828103825260238152602001806116fd6023913960400191505060405180910390fd5b61100381565b61200481565b601181565b61100081565b600381565b61100481565b6109d8611638565b60006109e2611638565b6109ea611662565b6109fb6109f686610ea1565b610ec6565b90506000805b610a0a83610f10565b15610a895780610a2c57610a25610a2084610f31565b610f7f565b8452610a81565b8060011415610a4b57610a41610a2084610f31565b6020850152610a81565b8060021415610a7c57610a65610a6084610f31565b610ff8565b6001600160a01b0316604085015260019150610a81565b610a89565b600101610a01565b5091935090915050915091565b604080516001808252818301909252606091829190816020015b6060815260200190600190039081610ab0579050509050610ad68363ffffffff16611018565b81600081518110610ae357fe5b6020026020010181905250610af78161102b565b9150505b919050565b6000610b0f82604001516110b5565b610b7b57604080516020808252601c908201527f74686520746172676574206973206e6f74206120636f6e7472616374000000008183015290517f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb29181900360600190a1506065610afb565b81604001516001600160a01b031663ac431751836000015184602001516040518363ffffffff1660e01b8152600401808060200180602001838103835285818151815260200191508051906020019080838360005b83811015610be8578181015183820152602001610bd0565b50505050905090810190601f168015610c155780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b83811015610c48578181015183820152602001610c30565b50505050905090810190601f168015610c755780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015610c9657600080fd5b505af1925050508015610ca7575060015b610e99576040516000815260443d1015610cc357506000610d60565b60046000803e60005160e01c6308c379a08114610ce4576000915050610d60565b60043d036004833e81513d602482011167ffffffffffffffff82111715610d1057600092505050610d60565b808301805167ffffffffffffffff811115610d32576000945050505050610d60565b8060208301013d8601811115610d5057600095505050505050610d60565b601f01601f191660405250925050505b80610d6b5750610e0e565b7f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2816040518080602001828103825283818151815260200191508051906020019080838360005b83811015610dca578181015183820152602001610db2565b50505050905090810190601f168015610df75780820380516001836020036101000a031916815260200191505b509250505060405180910390a16066915050610afb565b3d808015610e38576040519150601f19603f3d011682016040523d82523d6000602084013e610e3d565b606091505b5060408051602080825283518183015283517f1279f84165b4fd69c35e1f338ff107231b036c655cd1688851e011ce617c4e8d938593928392918301919085019080838360008315610dca578181015183820152602001610db2565b506000919050565b610ea9611682565b506040805180820190915281518152602082810190820152919050565b610ece611662565b610ed7826110bb565b610ee057600080fd5b6000610eef83602001516110f5565b60208085015160408051808201909152868152920190820152915050919050565b6000610f1a611682565b505080518051602091820151919092015191011190565b610f39611682565b610f4282610f10565b610f4b57600080fd5b60208201516000610f5b82611158565b80830160209586015260408051808201909152908152938401919091525090919050565b8051606090610f8d57600080fd5b6000610f9c83602001516110f5565b83516040805191839003808352601f19601f8201168301602001909152919250606090828015610fd3576020820181803683370190505b5090506000816020019050610fef84876020015101828561128b565b50949350505050565b805160009060151461100957600080fd5b611012826112d6565b92915050565b60606110126110268361138b565b611471565b606081516000141561104c5750604080516000815260208101909152610afb565b60608260008151811061105b57fe5b602002602001015190506000600190505b835181101561109c576110928285838151811061108557fe5b60200260200101516114c3565b915060010161106c565b50610af76110af825160c060ff16611540565b826114c3565b3b151590565b80516000906110cc57506000610afb565b6020820151805160001a9060c08210156110eb57600092505050610afb565b5060019392505050565b8051600090811a608081101561110f576000915050610afb565b60b881108061112a575060c0811080159061112a575060f881105b15611139576001915050610afb565b60c081101561114d5760b519019050610afb565b60f519019050610afb565b80516000908190811a60808110156111735760019150611284565b60b881101561118857607e1981019150611284565b60c081101561120257600060b78203600186019550806020036101000a8651049150600181018201935050808310156111fc576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50611284565b60f88110156112175760be1981019150611284565b600060f78203600186019550806020036101000a865104915060018101820193505080831015611282576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b8061129557610816565b5b602081106112b5578251825260209283019290910190601f1901611296565b915181516020939093036101000a6000190180199091169216919091179052565b8051600090158015906112eb57508151602110155b6112f457600080fd5b600061130383602001516110f5565b9050808360000151101561135e576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015610fef57506020919091036101000a90049392505050565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166113cf575060186113f3565b6fffffffffffffffffffffffffffffffff1984166113ef575060106113f3565b5060005b60208110156114295781818151811061140857fe5b01602001516001600160f81b0319161561142157611429565b6001016113f3565b60008160200390506060816040519080825280601f01601f19166020018201604052801561145e576020820181803683370190505b5080830196909652508452509192915050565b6060815160011480156114a35750607f60f81b8260008151811061149157fe5b01602001516001600160f81b03191611155b156114af575080610afb565b6110126114c18351608060ff16611540565b835b6060806040519050835180825260208201818101602087015b818310156114f45780518352602092830192016114dc565b50855184518101855292509050808201602086015b81831015611521578051835260209283019201611509565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310611590576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b604080516001808252818301909252606091602082018180368337019050509050603784116115ea5782840160f81b816000815181106115cc57fe5b60200101906001600160f81b031916908160001a9053509050611012565b60606115f58561138b565b90508381510160370160f81b8260008151811061160e57fe5b60200101906001600160f81b031916908160001a90535061162f82826114c3565b95945050505050565b6040518060600160405280606081526020016060815260200160006001600160a01b031681525090565b6040518060400160405280611675611682565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d73672073656e646572206d75737420626520676f7665726e6f722074696d656c6f636b20636f6e74726163747265636569766520756e6578706563746564206661696c2061636b207061636b616765a164736f6c6343000604000a", - }, - { - ContractAddr: CrossChainContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/9d09d0a3d6332460a810188261ec8195e05aa218", - Code: "608060405234801561001057600080fd5b50600436106103e65760003560e01c806374f079b81161020a578063c27cdcfb11610125578063df8079e9116100b8578063f1fad10411610087578063f1fad10414610bac578063f7a251d714610bb4578063f9a2bbc714610c2c578063fc3e590814610c34578063fd6a687914610c3c576103e6565b8063df8079e914610b74578063e1c7392a14610b7c578063e3b0480514610b84578063e6400bbe14610ba4576103e6565b8063d31f968d116100f4578063d31f968d14610b2d578063d76a867514610b5c578063dc40433114610b64578063dc927faf14610b6c576103e6565b8063c27cdcfb14610af5578063c780e9de14610b15578063c81b166214610b1d578063ccc108d714610b25576103e6565b80639dc092621161019d578063aad560631161016c578063aad5606314610a27578063ab51bb9614610a2f578063ac43175114610a37578063b0355f5b146107d6576103e6565b80639dc0926214610a07578063a1a11bf514610a0f578063a78abc1614610a17578063aa82dce114610a1f576103e6565b806384013b6a116101d957806384013b6a1461091c578063863fe4ab146109f75780638cc8f561146108e457806396713da9146109ff576103e6565b806374f079b8146108fc57806375d47a0a146109045780637942fd051461090c5780637e434d5414610914576103e6565b806343756e5c116103055780636a3cb34d116102985780636e47a51a116102675780636e47a51a146108bc5780636e47b482146108dc57806370fd5bad146108e4578063718a8aa8146108ec578063719482d5146108f4576103e6565b80636a3cb34d146108645780636bacff2c1461086c5780636c46aa68146108645780636de380bd146108b4576103e6565b806351e80672116102d457806351e806721461081e5780635692ddd3146108265780635f8321771461082e57806363e1394e1461085c576103e6565b806343756e5c146107fe578063493279b1146108065780634bf6c8821461080e57806351b4dce314610816576103e6565b8063299b533d1161037d5780633a648b151161034c5780633a648b15146106725780633bdc47a6146106ae5780633dffc387146107d6578063422f9050146107de576103e6565b8063299b533d146105f85780632af6f3991461062c5780632ff32aea14610649578063308325f41461066a576103e6565b80631d130935116103b95780631d130935146104685780631e275ae11461048457806322556cdc146105e857806328087028146105f0576103e6565b806305e68258146103eb5780630bee7a67146104095780630e2374a51461042a57806314b3023b1461044e575b600080fd5b6103f3610c44565b6040805160ff9092168252519081900360200190f35b610411610c49565b6040805163ffffffff9092168252519081900360200190f35b610432610c4e565b604080516001600160a01b039092168252519081900360200190f35b610456610c54565b60408051918252519081900360200190f35b610470610c5a565b604080519115158252519081900360200190f35b6105e6600480360361010081101561049b57600080fd5b81018160a081016080820135600160201b8111156104b857600080fd5b8201836020820111156104ca57600080fd5b803590602001918460018302840111600160201b831117156104eb57600080fd5b919390929091602081019035600160201b81111561050857600080fd5b82018360208201111561051a57600080fd5b803590602001918460018302840111600160201b8311171561053b57600080fd5b919390929091602081019035600160201b81111561055857600080fd5b82018360208201111561056a57600080fd5b803590602001918460018302840111600160201b8311171561058b57600080fd5b919390929091602081019035600160201b8111156105a857600080fd5b8201836020820111156105ba57600080fd5b803590602001918460018302840111600160201b831117156105db57600080fd5b509092509050610c63565b005b610456611347565b61043261134c565b6106156004803603602081101561060e57600080fd5b5035611352565b6040805161ffff9092168252519081900360200190f35b6104706004803603602081101561064257600080fd5b5035611368565b61065161137d565b60408051600792830b90920b8252519081900360200190f35b610456611386565b6106926004803603602081101561068857600080fd5b503560ff1661138c565b604080516001600160401b039092168252519081900360200190f35b610761600480360360608110156106c457600080fd5b60ff82351691602081013591810190606081016040820135600160201b8111156106ed57600080fd5b8201836020820111156106ff57600080fd5b803590602001918460018302840111600160201b8311171561072057600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506113a7945050505050565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561079b578181015183820152602001610783565b50505050905090810190601f1680156107c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103f361141d565b610470600480360360208110156107f457600080fd5b503560ff16611422565b610432611437565b61061561143d565b6103f3611442565b610432611447565b61043261144d565b610456611453565b6105e66004803603604081101561084457600080fd5b506001600160a01b0381358116916020013516611483565b6104566116e3565b61061561170b565b6108896004803603602081101561088257600080fd5b5035611710565b6040805161ffff90941684526001600160801b03909216602084015282820152519081900360600190f35b61045661173f565b610432600480360360208110156108d257600080fd5b503560ff16611766565b610432611781565b6103f361170b565b6103f3611787565b61061561141d565b61045661178c565b610432611792565b6103f3611798565b61043261179d565b6105e6600480360360a081101561093257600080fd5b810190602081018135600160201b81111561094c57600080fd5b82018360208201111561095e57600080fd5b803590602001918460018302840111600160201b8311171561097f57600080fd5b919390929091602081019035600160201b81111561099c57600080fd5b8201836020820111156109ae57600080fd5b803590602001918460018302840111600160201b831117156109cf57600080fd5b919350915080356001600160401b03908116916020810135909116906040013560ff166117a3565b610456612a5d565b6103f3612a65565b610432612a6a565b610432612a70565b610470612a76565b610432612a7f565b610432612a85565b610411610c44565b6105e660048036036040811015610a4d57600080fd5b810190602081018135600160201b811115610a6757600080fd5b820183602082011115610a7957600080fd5b803590602001918460018302840111600160201b83111715610a9a57600080fd5b919390929091602081019035600160201b811115610ab757600080fd5b820183602082011115610ac957600080fd5b803590602001918460018302840111600160201b83111715610aea57600080fd5b509092509050612a8b565b61069260048036036020811015610b0b57600080fd5b503560ff1661354f565b61045661356a565b61043261358e565b6105e6613594565b61047060048036036040811015610b4357600080fd5b5080356001600160a01b0316906020013560ff166137e8565b610761613808565b610456613827565b61043261382d565b610432613833565b6105e6613839565b61069260048036036020811015610b9a57600080fd5b503560ff16613bf0565b6105e6613c0b565b6103f3613e2a565b6105e660048036036060811015610bca57600080fd5b60ff8235169190810190604081016020820135600160201b811115610bee57600080fd5b820183602082011115610c0057600080fd5b803590602001918460018302840111600160201b83111715610c2157600080fd5b919350915035613e2f565b610432613f72565b6103f3613f78565b610432613f7d565b600081565b606481565b61200181565b60015481565b600b5460ff1681565b60005460ff16610ca8576040805162461bcd60e51b81526020600482015260196024820152600080516020614a60833981519152604482015290519081900360640190fd5b604080516337d7f9c160e21b81526001600160401b038b35166004820181905291516110039163df5fe704916024808301926020929190829003018186803b158015610cf357600080fd5b505afa158015610d07573d6000803e3d6000fd5b505050506040513d6020811015610d1d57600080fd5b5051610d5a5760405162461bcd60e51b8152600401808060200182810382526023815260200180614a806023913960400191505060405180910390fd5b604080516337d7f9c160e21b815260208c8101356001600160401b03166004830181905292516110039263df5fe704926024808301939192829003018186803b158015610da657600080fd5b505afa158015610dba573d6000803e3d6000fd5b505050506040513d6020811015610dd057600080fd5b5051610e0d5760405162461bcd60e51b8152600401808060200182810382526023815260200180614a806023913960400191505060405180910390fd5b60608b013560ff81166000908152600560205260409020546001600160401b03909116906001600160a01b0316610e86576040805162461bcd60e51b815260206004820152601860248201527718da185b9b995b081a5cc81b9bdd081cdd5c1c1bdc9d195960421b604482015290519081900360640190fd5b600b5460ff1615610eca576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b8888604051808383808284376040519201829003822094508f93508e9250819050838380828437808301925050509250505060405180910390201415610f46576040805162461bcd60e51b815260206004820152600c60248201526b1cd85b59481c185e5b1bd85960a21b604482015290519081900360640190fd5b60606001600160401b0360408e01358116908e83013516610f678282613f83565b80516020808301919091206000818152600e9092526040909120549194509060ff1615610fd0576040805162461bcd60e51b8152602060048201526012602482015271185b1c9958591e4818da185b1b195b99d95960721b604482015290519081900360640190fd5b6000908152600e60205260408120805460ff191660011790558f8160200201356001600160401b0316905060608f8f8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060608c8c8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506040805163cba510a960e01b81526001600160401b038a16600482015290519596509094611003945063cba510a9935060248083019350602092829003018186803b1580156110c657600080fd5b505afa1580156110da573d6000803e3d6000fd5b505050506040513d60208110156110f057600080fd5b505160408051808201909152600381526269626360e81b602082015290915061111d908290898686613fcb565b611166576040805162461bcd60e51b81526020600482015260156024820152740696e76616c6964206d65726b6c652070726f6f663605c1b604482015290519081900360640190fd5b5050505060008f60016004811061117957fe5b60200201356001600160401b0316905060608d8d8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8f018190048102820181019092528d815293945060609392508d91508c908190840183828082843760009201829052506040805163cba510a960e01b81526001600160401b038a16600482015290519596509094611003945063cba510a9935060248083019350602092829003018186803b15801561124557600080fd5b505afa158015611259573d6000803e3d6000fd5b505050506040513d602081101561126f57600080fd5b505160408051808201909152600381526269626360e81b602082015290915061129c908290898686613fcb565b6112e5576040805162461bcd60e51b8152602060048201526015602482015274696e76616c6964206d65726b6c652070726f6f663160581b604482015290519081900360640190fd5b505050506112f16140c8565b604080516001600160401b038416815260ff83166020820152815133927f039eb91179ffd7d3b6e97f8ea106e748e827f910b872375dbc9c14a362319c3c928290030190a2505050505050505050505050505050565b603281565b61200581565b600d6020526000908152604090205461ffff1681565b600e6020526000908152604090205460ff1681565b60045460070b81565b60025481565b600a602052600090815260409020546001600160401b031681565b60606000825160210190506060816040519080825280601f01601f1916602001820160405280156113df576020820181803683370190505b506021810186905260018101879052828152905060418101600061140286614146565b50905061141181838851614150565b50909695505050505050565b600181565b60096020526000908152604090205460ff1681565b61100181565b606181565b600881565b61200681565b61200081565b604080517710d05390d15317d514905394d1915497d41493d413d4d05360421b8152905190819003601801902081565b60005460ff166114c8576040805162461bcd60e51b81526020600482015260196024820152600080516020614a60833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b15801561150b57600080fd5b505afa15801561151f573d6000803e3d6000fd5b505050506040513d602081101561153557600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b15801561157657600080fd5b505afa15801561158a573d6000803e3d6000fd5b505050506040513d60208110156115a057600080fd5b50519050806115ad575060155b6000821180156115bd5750808211155b6115fc576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b604080516001600160a01b038087166020808401919091529086168284015282518083038401815260608301808552815191909201207710d05390d15317d514905394d1915497d41493d413d4d05360421b90915291519081900360780190206000906116699083614191565b905080156116db5760408051630911a2c160e11b81526001600160a01b03888116600483015287166024820152905161100491631223458291604480830192600092919082900301818387803b1580156116c257600080fd5b505af11580156116d6573d6000803e3d6000fd5b505050505b505050505050565b604080516f14d554d411539117d41493d413d4d05360821b8152905190819003601001902081565b600281565b600c602052600090815260409020805460019091015461ffff8216916201000090046001600160801b03169083565b604080516e149153d4115397d41493d413d4d053608a1b8152905190819003600f01902081565b6005602052600090815260409020546001600160a01b031681565b61100581565b601081565b60035481565b61100881565b600b81565b61200381565b60005460ff166117e8576040805162461bcd60e51b81526020600482015260196024820152600080516020614a60833981519152604482015290519081900360640190fd5b60408051630a83aaa960e31b815233600482015290516110069163541d5548916024808301926020929190829003018186803b15801561182757600080fd5b505afa15801561183b573d6000803e3d6000fd5b505050506040513d602081101561185157600080fd5b50516118a4576040805162461bcd60e51b815260206004820152601f60248201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604482015290519081900360640190fd5b60ff8116600090815260086020526040902054829082906001600160401b039081169083168114611914576040805162461bcd60e51b815260206004820152601560248201527439b2b8bab2b731b2903737ba1034b71037b93232b960591b604482015290519081900360640190fd5b60ff8216600090815260086020908152604091829020805467ffffffffffffffff1916600185016001600160401b039081169190911790915582516337d7f9c160e21b81529089166004820152915188926110039263df5fe70492602480840193829003018186803b15801561198957600080fd5b505afa15801561199d573d6000803e3d6000fd5b505050506040513d60208110156119b357600080fd5b50516119f05760405162461bcd60e51b8152600401808060200182810382526023815260200180614a806023913960400191505060405180910390fd5b60ff851660009081526005602052604090205485906001600160a01b0316611a5a576040805162461bcd60e51b815260206004820152601860248201527718da185b9b995b081a5cc81b9bdd081cdd5c1c1bdc9d195960421b604482015290519081900360640190fd5b60ff86166000908152600a6020526040902054889087906001600160401b039081169083161015611ac3576040805162461bcd60e51b815260206004820152600e60248201526d3a37b79037b632103432b0b232b960911b604482015290519081900360640190fd5b60ff81166000908152600a60205260409020546001600160401b03838116911614611b155760ff81166000908152600a60205260409020805467ffffffffffffffff19166001600160401b0384161790555b600b5460ff1615611b59576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b60608e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060608d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509050611c9d6110036001600160a01b031663cba510a98e6040518263ffffffff1660e01b815260040180826001600160401b03166001600160401b0316815260200191505060206040518083038186803b158015611c4657600080fd5b505afa158015611c5a573d6000803e3d6000fd5b505050506040513d6020811015611c7057600080fd5b505160408051808201909152600381526269626360e81b6020820152611c968e8e613f83565b8585613fcb565b611ce5576040805162461bcd60e51b815260206004820152601460248201527334b73b30b634b21036b2b935b63290383937b7b360611b604482015290519081900360640190fd5b60408051631bb5062960e31b81526001600160401b038e16600482015290516000916110039163dda8314891602480820192602092909190829003018186803b158015611d3157600080fd5b505afa158015611d45573d6000803e3d6000fd5b505050506040513d6020811015611d5b57600080fd5b505190508b8b600080806060611d7089614476565b935093509350935083611e32578460ff16866001600160401b03167ff7b2e42d694eb1100184aae86d4245d9e46966100b1dc7e723275b98326854ac8b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015611dea578181015183820152602001611dd2565b50505050905090810190601f168015611e175780820380516001836020036101000a031916815260200191505b509250505060405180910390a3505050505050505050612a4d565b6040805160ff85811682529151918716916001600160401b038916917f36afdaf439a8f43fe72135135d804ae620b37a474f0943b5b85f6788312cad40919081900360200190a360ff83166123b75760ff85166000818152600560209081526040808320548151631182b87560e01b815260048101958652602481019283528651604482015286516001600160a01b03909216958695631182b875958d958a9593949093606490910192918601918190849084905b83811015611eff578181015183820152602001611ee7565b50505050905090810190601f168015611f2c5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b158015611f4c57600080fd5b505af192505050801561203057506040513d6000823e601f3d908101601f191682016040526020811015611f7f57600080fd5b8101908080516040519392919084600160201b821115611f9e57600080fd5b908301906020820185811115611fb357600080fd5b8251600160201b811182820188101715611fcc57600080fd5b82525081516020918201929091019080838360005b83811015611ff9578181015183820152602001611fe1565b50505050905090810190601f1680156120265780820380516001836020036101000a031916815260200191505b5060405250505060015b612342576040516000815260443d101561204c575060006120e7565b60046000803e60005160e01c6308c379a0811461206d5760009150506120e7565b60043d036004833e81513d60248201116001600160401b0382111715612098576000925050506120e7565b80830180516001600160401b038111156120b95760009450505050506120e7565b8060208301013d86018111156120d7576000955050505050506120e7565b601f01601f191660405250925050505b806120f25750612204565b60ff8716600090815260076020526040812054612129916001600160401b0390911690899061212490600290886113a7565b614526565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf948794849390840192918601918190849084905b838110156121c45781810151838201526020016121ac565b50505050905090810190601f1680156121f15780820380516001836020036101000a031916815260200191505b509250505060405180910390a25061233d565b3d80801561222e576040519150601f19603f3d011682016040523d82523d6000602084013e612233565b606091505b5060ff8716600090815260076020526040812054612266916001600160401b0390911690899061212490600290886113a7565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351948794849390840192918601918190849084905b838110156123015781810151838201526020016122e9565b50505050905090810190601f16801561232e5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b6123b1565b8051156123af5760ff871660009081526007602052604081205461237b916001600160401b0390911690899061212490600190866113a7565b60ff8716600090815260076020526040902080546001600160401b038082166001011667ffffffffffffffff199091161790555b505b50612985565b60ff83166001141561265b5760ff8516600081815260056020908152604080832054815163831d65d160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563831d65d1958d958a9593949093606490910192918601918190849084905b83811015612441578181015183820152602001612429565b50505050905090810190601f16801561246e5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561248e57600080fd5b505af192505050801561249f575060015b6123b1576040516000815260443d10156124bb57506000612556565b60046000803e60005160e01c6308c379a081146124dc576000915050612556565b60043d036004833e81513d60248201116001600160401b038211171561250757600092505050612556565b80830180516001600160401b03811115612528576000945050505050612556565b8060208301013d860181111561254657600095505050505050612556565b601f01601f191660405250925050505b8061256157506125c6565b60408051602080825283518183015283516001600160a01b038616937ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf93869390928392830191850190808383600083156121c45781810151838201526020016121ac565b3d8080156125f0576040519150601f19603f3d011682016040523d82523d6000602084013e6125f5565b606091505b5060408051602080825283518183015283516001600160a01b038616937f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd297735193869390928392830191850190808383600083156123015781810151838201526020016122e9565b60ff8316600214156129855760ff8516600081815260056020908152604080832054815163c8509d8160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563c8509d81958d958a9593949093606490910192918601918190849084905b838110156126e55781810151838201526020016126cd565b50505050905090810190601f1680156127125780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561273257600080fd5b505af1925050508015612743575060015b612983576040516000815260443d101561275f575060006127fa565b60046000803e60005160e01c6308c379a081146127805760009150506127fa565b60043d036004833e81513d60248201116001600160401b03821117156127ab576000925050506127fa565b80830180516001600160401b038111156127cc5760009450505050506127fa565b8060208301013d86018111156127ea576000955050505050506127fa565b601f01601f191660405250925050505b8061280557506128ae565b816001600160a01b03167ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf826040518080602001828103825283818151815260200191508051906020019080838360005b8381101561286e578181015183820152602001612856565b50505050905090810190601f16801561289b5780820380516001836020036101000a031916815260200191505b509250505060405180910390a250612983565b3d8080156128d8576040519150601f19603f3d011682016040523d82523d6000602084013e6128dd565b606091505b50816001600160a01b03167f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351826040518080602001828103825283818151815260200191508051906020019080838360005b8381101561294757818101518382015260200161292f565b50505050905090810190601f1680156129745780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b505b60ff80861660009081526009602052604090205461100591636f93d2e6918a913391879116806129b7575060ff881615155b604080516001600160e01b031960e088901b1681526001600160a01b039586166004820152939094166024840152604483019190915215156064820152905160848083019260209291908290030181600087803b158015612a1757600080fd5b505af1158015612a2b573d6000803e3d6000fd5b505050506040513d6020811015612a4157600080fd5b50505050505050505050505b5050505050505050505050505050565b630100610081565b600981565b61100781565b61100681565b60005460ff1681565b61200281565b61300081565b3361100714612acb5760405162461bcd60e51b815260040180806020018281038252602e8152602001806149b6602e913960400191505060405180910390fd5b600b5460ff1615612b0f576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b612b7884848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526012815271626174636853697a65466f724f7261636c6560701b602082015291506146c09050565b15612c1357604080516020601f8401819004810282018101909252828152600091612bbb918585808385018382808284376000920191909152506147a792505050565b90506127108111158015612bd05750600a8110155b612c0b5760405162461bcd60e51b8152600401808060200182810382526032815260200180614a2e6032913960400191505060405180910390fd5b6001556134bd565b612c7c84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601281527118591913dc955c19185d1950da185b9b995b60721b602082015291506146c09050565b15612e0457606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060169091149050612cff5760405162461bcd60e51b815260040180806020018281038252605a8152602001806148cf605a913960600191505060405180910390fd5b60018101516002820151601683015160ff82161590612d1d816147ac565b612d6e576040805162461bcd60e51b815260206004820152601960248201527f61646472657373206973206e6f74206120636f6e747261637400000000000000604482015290519081900360640190fd5b60ff8416600081815260056020908152604080832080546001600160a01b0319166001600160a01b038716908117909155808452600683528184208585528352818420805460ff199081166001179091556009909352818420805490931687151517909255519092917f7e3b6af43092577ee20e60eaa1d9b114a7031305c895ee7dd3ffe17196d2e1e091a350505050506134bd565b612e7184848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526016815275195b98589b1953dc911a5cd8589b1950da185b9b995b60521b602082015291506146c09050565b15612fa257606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060029091149050612ef45760405162461bcd60e51b815260040180806020018281038252604a8152602001806149e4604a913960600191505060405180910390fd5b600181810151600283015160ff80831660009081526005602052604090205492939192908316909114906001600160a01b03168015612f98576001600160a01b038116600090815260066020908152604080832060ff881680855290835292819020805460ff1916861515908117909155815190815290517fa3132e3f9819fbddc7f0ed6d38d7feef59aa95112090b7c592f5cb5bc4aa4adc929181900390910190a25b50505050506134bd565b61300684848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c73757370656e6451756f72756d60981b602082015291506146c09050565b1561313b576002811461304a5760405162461bcd60e51b815260040180806020018281038252602d81526020018061495d602d913960400191505060405180910390fd5b600061308d600284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506147a792505050565b905060008161ffff161180156130a7575060648161ffff16105b6130f1576040805162461bcd60e51b8152602060048201526016602482015275696e76616c69642073757370656e642071756f72756d60501b604482015290519081900360640190fd5b604080516f14d554d411539117d41493d413d4d05360821b815281519081900360100190206000908152600d60205220805461ffff90921661ffff199092169190911790556134bd565b61319e84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600c81526b72656f70656e51756f72756d60a01b602082015291506146c09050565b156132d157600281146131e25760405162461bcd60e51b815260040180806020018281038252602c81526020018061498a602c913960400191505060405180910390fd5b6000613225600284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506147a792505050565b905060008161ffff1611801561323f575060648161ffff16105b613288576040805162461bcd60e51b8152602060048201526015602482015274696e76616c69642072656f70656e2071756f72756d60581b604482015290519081900360640190fd5b604080516e149153d4115397d41493d413d4d053608a1b8152815190819003600f0190206000908152600d60205220805461ffff90921661ffff199092169190911790556134bd565b61333c84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601481527363616e63656c5472616e7366657251756f72756d60601b602082015291506146c09050565b1561348057600281146133805760405162461bcd60e51b81526004018080602001828103825260348152602001806149296034913960400191505060405180910390fd5b60006133c3600284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506147a792505050565b905060008161ffff161180156133dd575060648161ffff16105b61342e576040805162461bcd60e51b815260206004820152601e60248201527f696e76616c69642063616e63656c207472616e736665722071756f72756d0000604482015290519081900360640190fd5b604080517710d05390d15317d514905394d1915497d41493d413d4d05360421b815281519081900360180190206000908152600d60205220805461ffff90921661ffff199092169190911790556134bd565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b6008602052600090815260409020546001600160401b031681565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081565b61100281565b60005460ff166135d9576040805162461bcd60e51b81526020600482015260196024820152600080516020614a60833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b15801561361c57600080fd5b505afa158015613630573d6000803e3d6000fd5b505050506040513d602081101561364657600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b15801561368757600080fd5b505afa15801561369b573d6000803e3d6000fd5b505050506040513d60208110156136b157600080fd5b50519050806136be575060155b6000821180156136ce5750808211155b61370d576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b600b5460ff16613754576040805162461bcd60e51b815260206004820152600d60248201526c1b9bdd081cdd5cdc195b991959609a1b604482015290519081900360640190fd5b604080516e149153d4115397d41493d413d4d053608a1b8152905190819003600f0190206000906137a5907fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470614191565b905080156137e357600b805460ff1916905560405133907f899fe8c37dc61708a3aaa99c4bf143346c1d1da69af79be9e8920c0a6785b75290600090a25b505050565b600660209081526000928352604080842090915290825290205460ff1681565b6040518060400160405280600381526020016269626360e81b81525081565b610e1081565b61100381565b61200481565b60005460ff1615613891576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b7f1471eb6eb2c5e789fc3de43f8ce62938c7d1836ec861730447e2ada8fd81017b80546001600160a01b0319908116611008179091557f92e85d02570a8092d09a6e3a57665bc3815a2699a4074001bf1ccabf660f5a36805460ff199081169091557fd8af288fc1c8680b4f4706064cf021e264efb6828fcaf7eb5ca36818eb365bcc8054821660019081179091557f89832631fb3c3307a103ba2c84ab569c64d6182a18893dcd163f0f1c2090733a805484166110049081179091557f6cde3cea4b3a3fb2488b2808bae7556f4a405e50f65e1794383bc026131b13c38054841690557f72e4efa1513b071517c6c74dba31b5934a81aa83cddd400e7081df5529c9943680548416831790557fa9bc9a3a348c357ba16b37005d7e6b3236198c0e939f4af8c5f19b8deeb8ebc08054851690911790557fc575c31fea594a6eb97c8e9d3f9caee4c16218c6ef37e923234c0fe9014a61e78054831690557f4e523af77f034e9810f1c94057f5e931fb3d16a51511a4c3add793617d18610580548316821790557ffb33122aa9f93cc639ebe80a7bc4784c11e6053dde89c6f4f7e268c6a623da1e805484166110001790557fc7694af312c4f286114180fd0ba6a52461fcee8a381636770b19a343af92538a80548316821790557f01112dd68e482ba8d68a7e828cff8b3abcea08eab88941953c180a7e650e9cd480548316821790557fc0a4a8be475dfebc377ebef2d7c4ff47656f572a08dd92b81017efcdba0febe1805484166110071790557f87e8a52529e8ece4ef759037313542a6429ff494a9fab9027fb79db90124eba680548316821790557f4c7666bbcb22d46469f7cc282f70764a7012dca2cce630ff8d83db9a9cdd48f080548316821790557f40f28f99a40bc9f6beea1013afdbc3cdcc689eb76b82c4de06c0acf1e1932ed58054909316611001179092557f0d9cf2cd531699eed8dd34e40ff2884a14a698c4898184fba85194e6f6772d248054821683179055600b60009081527f23f68c9bd22b8a93d06adabe17481c87c016bcbd20adc8bfd707a4d813a572176020527fdf0d5d05428057f5455c2dc8e810dd86d1e9350faa72f16bda8a45443c5b39328054831684179055603283556004805467ffffffffffffffff19166001600160401b031790556002819055600381905580549091169091179055565b6007602052600090815260409020546001600160401b031681565b60005460ff16613c50576040805162461bcd60e51b81526020600482015260196024820152600080516020614a60833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b158015613c9357600080fd5b505afa158015613ca7573d6000803e3d6000fd5b505050506040513d6020811015613cbd57600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b158015613cfe57600080fd5b505afa158015613d12573d6000803e3d6000fd5b505050506040513d6020811015613d2857600080fd5b5051905080613d35575060155b600082118015613d455750808211155b613d84576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b600b5460ff1615613dc8576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b604080516f14d554d411539117d41493d413d4d05360821b81529051908190036010019020600090613e1a907fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470614191565b905080156137e3576137e36140c8565b601181565b60005460ff16613e74576040805162461bcd60e51b81526020600482015260196024820152600080516020614a60833981519152604482015290519081900360640190fd5b33600090815260066020908152604080832060ff8089168552925290912054859116613ed15760405162461bcd60e51b815260040180806020018281038252603181526020018061489e6031913960400191505060405180910390fd5b60ff85166000908152600760209081526040808320548151601f88018490048402810184019092528682526001600160401b031692613f369284928a9261212492909189918c908c90819084018382808284376000920191909152506113a792505050565b60ff959095166000908152600760205260409020805467ffffffffffffffff191660019096016001600160401b03169590951790945550505050565b61100081565b600381565b61100481565b60408051600e808252818301909252606091630100610060ff851617918391602082018180368337505050600e81810187905260068201939093529182525090505b92915050565b600085613fda575060006140bf565b606082518451865160800101016040519080825280601f01601f191660200182016040528015614011576020820181803683370190505b509050600061401f826147b2565b60208089015182520190508660008061403789614146565b8086526020909501949092509050614050828583614150565b9283019261405d88614146565b8086526020909501949092509050614076828583614150565b9283018a81526020019261408987614146565b9092509050614099828583614150565b5083516020016140a76147b8565b60208183886065600019fa5051600114955050505050505b95945050505050565b600b5460ff161561410c576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b600b805460ff1916600117905560405133907f6f123d3d54c84a7960a573b31c221dcd86e13fd849c5adb0c6ca851468cc1ae490600090a2565b8051602090910191565b5b60208110614170578251825260209283019290910190601f1901614151565b915181516020939093036101000a6000190180199091169216919091179052565b6000828152600d602052604081205461ffff1661425a57604080516f14d554d411539117d41493d413d4d05360821b815281519081900360100181206000908152600d6020818152848320805461ffff199081166001179091556e149153d4115397d41493d413d4d053608a1b8552855194859003600f01852084528282528584208054821660029081179091557710d05390d15317d514905394d1915497d41493d413d4d05360421b8652865195869003601801909520845291905292902080549092161790555b6000838152600c6020526040902080546201000090046001600160801b03164210158061428b575082816001015414155b1561435e576000848152600d602090815260409182902054835461ffff90911661ffff199091161771ffffffffffffffffffffffffffffffff0000191662010000610e1042016001600160801b03160217835560018084018690558251918201909252338152614300916002840191906147d6565b5080546040805161ffff83168152620100009092046001600160801b0316602083015281810185905251339186917f9e109f0e55ef32e99e4880be2ec357f1ddb3469c79d0747ef4762da6e89fabe5916060908290030190a3614412565b60005b60028201548110156143e957336001600160a01b031682600201828154811061438657fe5b6000918252602090912001546001600160a01b031614156143e1576040805162461bcd60e51b815260206004820152601060248201526f185b1c9958591e48185c1c1c9bdd995960821b604482015290519081900360640190fd5b600101614361565b50600281018054600181018255600091825260209091200180546001600160a01b031916331790555b8054600282015461ffff9091161161446c576000848152600c60205260408120805471ffffffffffffffffffffffffffffffffffff191681556001810182905590614460600283018261483b565b50506001915050613fc5565b5060009392505050565b600080600060606021855110156144a657505060408051600080825260208201909252909250829150819061451f565b600185015160218601518651604080516020198301808252601f19600119909401939093168101602001909152604189019392916060919080156144f1576020820181803683370190505b50905060006144ff82614146565b509050614511858260218d5103614150565b506001975091955093509150505b9193509193565b600b5460ff161561456a576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b6002544311156145a9576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b1617909155600355436002556145ea565b600380546001908101918290555410156145ea576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b16179091556003555b8160ff16836001600160401b0316600460009054906101000a900460070b6001600160401b03167f3a6e0fc61675aa2a100bcba0568368bb92bcec91c97673391074f11138f0cffe606185604051808361ffff1661ffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015614680578181015183820152602001614668565b50505050905090810190601f1680156146ad5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a4505050565b6000816040516020018082805190602001908083835b602083106146f55780518252601f1990920191602091820191016146d6565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106147635780518252601f199092019160209182019101614744565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b3b151590565b60200190565b60405180602001604052806001906020820280368337509192915050565b82805482825590600052602060002090810192821561482b579160200282015b8281111561482b57825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906147f6565b5061483792915061485c565b5090565b50805460008255906000526020600020908101906148599190614883565b50565b61488091905b808211156148375780546001600160a01b0319168155600101614862565b90565b61488091905b80821115614837576000815560010161488956fe74686520636f6e747261637420616e64206368616e6e656c2068617665206e6f74206265656e20726567697374657265646c656e677468206f662076616c756520666f72206164644f725570646174654368616e6e656c2073686f756c642062652032322c206368616e6e656c49643a697346726f6d53797374656d3a68616e646c6572416464726573736c656e677468206f662076616c756520666f722063616e63656c5472616e7366657251756f72756d2073686f756c6420626520326c656e677468206f662076616c756520666f722073757370656e6451756f72756d2073686f756c6420626520326c656e677468206f662076616c756520666f722072656f70656e51756f72756d2073686f756c642062652032746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662076616c756520666f7220656e61626c654f7244697361626c654368616e6e656c2073686f756c6420626520322c206368616e6e656c49643a6973456e61626c65746865206e6577426174636853697a65466f724f7261636c652073686f756c6420626520696e205b31302c2031303030305d74686520636f6e7472616374206e6f7420696e697420796574000000000000006c6967687420636c69656e74206e6f742073796e632074686520626c6f636b20796574a164736f6c6343000604000a", - }, - { - ContractAddr: StakingContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/9d09d0a3d6332460a810188261ec8195e05aa218", - Code: "6080604052600436106103d25760003560e01c8063718a8aa8116101fd578063b88a802f11610118578063dc927faf116100ab578063f45fd80b1161007a578063f45fd80b14610cdb578063f9a2bbc714610d20578063fa03f79714610d35578063fc3e5908146106d3578063fd6a687914610d4a576103d9565b8063dc927faf14610c87578063df8079e914610c9c578063edc1a5b014610cb1578063f1fad10414610cc6576103d9565b8063c81b1662116100e7578063c81b166214610bb2578063c8509d8114610bc7578063d61b9b9314610c4c578063d7ecfcb614610890576103d9565b8063b88a802f14610b38578063baaafd3b14610b4d578063bf8546ca14610b62578063c2117d8214610b9d576103d9565b80639dc0926211610190578063aad560631161015f578063aad5606314610a2e578063ab51bb9614610a43578063ac43175114610a58578063b14315df14610b23576103d9565b80639dc09262146109c6578063a1a11bf5146109db578063a78abc16146109f0578063aa82dce114610a19576103d9565b80637e434d54116101cc5780637e434d5414610917578063831d65d11461092c57806392b888a41461066a57806396713da9146109b1576103d9565b8063718a8aa8146108a557806375aca593146108ba57806375d47a0a146108ed5780637942fd0514610902576103d9565b8063413d9c3a116102ed5780635d17c8bd116102805780636bd8f8041161024f5780636bd8f804146108125780636e47b482146108485780636fb7f7eb1461085d57806370fd5bad14610890576103d9565b80635d17c8bd146107be5780635d499b1b146107d357806362b171d2146107e857806369b635b6146107fd576103d9565b80634d99dd16116102bc5780634d99dd161461075357806351b4dce31461077f57806351e8067214610794578063552aaf93146107a9576103d9565b8063413d9c3a146106e857806343756e5c146106fd578063493279b1146107125780634bf6c8821461073e576103d9565b8063151817e311610365578063333ad3e711610334578063333ad3e7146106a957806334c43354146106be5780633dffc3871461066a5780633fdfa7e4146106d3576103d9565b8063151817e31461063f57806317c9efb01461066a578063280870281461067f5780632fdeb11114610694576103d9565b80630c795715116103a15780630c795715146104cc5780630e2374a5146104e15780631182b8751461051257806311fe9ec61461060c576103d9565b8063026e402b146103de578063029859921461040c578063047636d1146104335780630bee7a671461049e576103d9565b366103d957005b600080fd5b61040a600480360360408110156103f457600080fd5b506001600160a01b038135169060200135610d5f565b005b34801561041857600080fd5b50610421610d9c565b60408051918252519081900360200190f35b34801561043f57600080fd5b506104666004803603602081101561045657600080fd5b50356001600160a01b0316610da2565b6040518082606080838360005b8381101561048b578181015183820152602001610473565b5050505090500191505060405180910390f35b3480156104aa57600080fd5b506104b3610df6565b6040805163ffffffff9092168252519081900360200190f35b3480156104d857600080fd5b50610421610dfb565b3480156104ed57600080fd5b506104f6610e01565b604080516001600160a01b039092168252519081900360200190f35b34801561051e57600080fd5b506105976004803603604081101561053557600080fd5b60ff8235169190810190604081016020820135600160201b81111561055957600080fd5b82018360208201111561056b57600080fd5b803590602001918460018302840111600160201b8311171561058c57600080fd5b509092509050610e07565b6040805160208082528351818301528351919283929083019185019080838360005b838110156105d15781810151838201526020016105b9565b50505050905090810190601f1680156105fe5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561061857600080fd5b506104216004803603602081101561062f57600080fd5b50356001600160a01b0316610fc3565b34801561064b57600080fd5b50610654610fde565b6040805160ff9092168252519081900360200190f35b34801561067657600080fd5b50610654610fe3565b34801561068b57600080fd5b506104f6610fe8565b3480156106a057600080fd5b50610421610fee565b3480156106b557600080fd5b506104b3610ff4565b3480156106ca57600080fd5b50610421610ff9565b3480156106df57600080fd5b50610654611004565b3480156106f457600080fd5b50610421611009565b34801561070957600080fd5b506104f6611010565b34801561071e57600080fd5b50610727611016565b6040805161ffff9092168252519081900360200190f35b34801561074a57600080fd5b5061065461101b565b61040a6004803603604081101561076957600080fd5b506001600160a01b038135169060200135611020565b34801561078b57600080fd5b506104f661164d565b3480156107a057600080fd5b506104f6611653565b3480156107b557600080fd5b50610654611659565b3480156107ca57600080fd5b5061042161165e565b3480156107df57600080fd5b50610421611664565b3480156107f457600080fd5b5061042161166d565b34801561080957600080fd5b5061042161180d565b61040a6004803603606081101561082857600080fd5b506001600160a01b03813581169160208101359091169060400135610d5f565b34801561085457600080fd5b506104f6611813565b34801561086957600080fd5b506104216004803603602081101561088057600080fd5b50356001600160a01b0316611819565b34801561089c57600080fd5b50610654611834565b3480156108b157600080fd5b50610654611839565b3480156108c657600080fd5b50610421600480360360208110156108dd57600080fd5b50356001600160a01b031661183e565b3480156108f957600080fd5b506104f6611859565b34801561090e57600080fd5b5061065461185f565b34801561092357600080fd5b506104f6611864565b34801561093857600080fd5b5061040a6004803603604081101561094f57600080fd5b60ff8235169190810190604081016020820135600160201b81111561097357600080fd5b82018360208201111561098557600080fd5b803590602001918460018302840111600160201b831117156109a657600080fd5b50909250905061186a565b3480156109bd57600080fd5b50610654611b32565b3480156109d257600080fd5b506104f6611b37565b3480156109e757600080fd5b506104f6611b3d565b3480156109fc57600080fd5b50610a05611b43565b604080519115158252519081900360200190f35b348015610a2557600080fd5b506104f6611b4c565b348015610a3a57600080fd5b506104f6611b52565b348015610a4f57600080fd5b506104b3611659565b348015610a6457600080fd5b5061040a60048036036040811015610a7b57600080fd5b810190602081018135600160201b811115610a9557600080fd5b820183602082011115610aa757600080fd5b803590602001918460018302840111600160201b83111715610ac857600080fd5b919390929091602081019035600160201b811115610ae557600080fd5b820183602082011115610af757600080fd5b803590602001918460018302840111600160201b83111715610b1857600080fd5b509092509050611b58565b348015610b2f57600080fd5b506106546122ea565b348015610b4457600080fd5b506104216122ef565b348015610b5957600080fd5b5061042161248c565b348015610b6e57600080fd5b5061042160048036036040811015610b8557600080fd5b506001600160a01b0381358116916020013516612497565b348015610ba957600080fd5b506104216124c4565b348015610bbe57600080fd5b506104f66124ca565b348015610bd357600080fd5b5061040a60048036036040811015610bea57600080fd5b60ff8235169190810190604081016020820135600160201b811115610c0e57600080fd5b820183602082011115610c2057600080fd5b803590602001918460018302840111600160201b83111715610c4157600080fd5b5090925090506124d0565b348015610c5857600080fd5b5061042160048036036040811015610c6f57600080fd5b506001600160a01b03813581169160200135166126f3565b348015610c9357600080fd5b506104f661271e565b348015610ca857600080fd5b506104f6612724565b348015610cbd57600080fd5b5061042161272a565b348015610cd257600080fd5b50610654612737565b348015610ce757600080fd5b5061042160048036036060811015610cfe57600080fd5b506001600160a01b03813581169160208101358216916040909101351661273c565b348015610d2c57600080fd5b506104f6612771565b348015610d4157600080fd5b50610421612777565b348015610d5657600080fd5b506104f661277d565b6040805162461bcd60e51b815260206004820152600d60248201526c1b9bdd081cdd5c1c1bdc9d1959609a1b604482015290519081900360640190fd5b60035481565b610daa614800565b610db2614800565b6001600160a01b0383166000818152600b60209081526040808320548552838352600c82528083205485830152928252600d9052819020549082015290505b919050565b606481565b6108fc81565b61200181565b60603361200014610e495760405162461bcd60e51b815260040180806020018281038252602f8152602001806149e3602f913960400191505060405180910390fd5b60005460ff16610e8c576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b610e9461481e565b610edb610ed685858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278392505050565b6127a8565b90506000610ef0610eeb836127f2565b612840565b90506000606060ff831660041415610f1557610f0b846128f7565b9092509050610f6c565b60ff831660051415610f2a57610f0b84612ad7565b6040805162461bcd60e51b8152602060048201526012602482015271756e6b6e6f776e206576656e74207479706560701b604482015290519081900360640190fd5b63ffffffff821615610fb8576040805163ffffffff84168152905160ff8516917f391d6e5ea6ab6c49b9a0abb1782cae5def8d711f973b00c729658c0b2a80b31b919081900360200190a25b979650505050505050565b6001600160a01b031660009081526006602052604090205490565b600581565b600181565b61200581565b60015481565b606581565b662386f26fc1000081565b600381565b620a8c0081565b61100181565b606181565b600881565b60105460ff166002141561106c576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b6010805460ff19166002179055806402540be400340615801561109457506402540be4008106155b6110e5576040805162461bcd60e51b815260206004820152601c60248201527f707265636973696f6e206c6f737320696e20636f6e76657273696f6e00000000604482015290519081900360640190fd5b60005460ff16611128576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b600154341015611176576040805162461bcd60e51b81526020600482015260146024820152736e6f7420656e6f7567682072656c61792066656560601b604482015290519081900360640190fd5b600354821015611231573360009081526005602090815260408083206001600160a01b038716845290915290205482146111e8576040805162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a5908185b5bdd5b9d60921b604482015290519081900360640190fd5b6002548211611231576040805162461bcd60e51b815260206004820152601060248201526f6e6f7420656e6f7567682066756e647360801b604482015290519081900360640190fd5b3360009081526007602090815260408083206001600160a01b03871684529091529020544210156112a9576040805162461bcd60e51b815260206004820152601a60248201527f70656e64696e6720756e64656c65676174696f6e206578697374000000000000604482015290519081900360640190fd5b604080518082018252601081526f6e6f7420656e6f7567682066756e647360801b602080830191909152336000908152600582528381206001600160a01b03881682529091529182205461130491859063ffffffff612df716565b9050801561134c57600254811161134c5760405162461bcd60e51b81526004018080602001828103825260258152602001806149be6025913960400191505060405180910390fd5b6000611363846402540be40063ffffffff612e8e16565b600254909150349060009061137f90839063ffffffff612ed716565b6040805160038082526080820190925291925060609190816020015b606081526020019060019003908161139b5790505090506113bb33612f19565b816000815181106113c857fe5b60200260200101819052506113e5886001600160a01b0316612f19565b816001815181106113f257fe5b602002602001018190525061140684612f3c565b8160028151811061141357fe5b60200260200101819052506060611433600261142e84612f4f565b612fd9565b8051602080830191909120600f80546000908152600a845260408082209390935581546001908101909255338152600c909352912080549091019055905061148442620a8c0063ffffffff61305f16565b3360009081526007602090815260408083206001600160a01b038e16845290915290205561200063f7a251d76010836114c8876402540be40063ffffffff612e8e16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561152657818101518382015260200161150e565b50505050905090810190601f1680156115535780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561157457600080fd5b505af1158015611588573d6000803e3d6000fd5b5050604051611004925085156108fc02915085906000818181858888f193505050501580156115bb573d6000803e3d6000fd5b506002546040516110029180156108fc02916000818181858888f193505050501580156115ec573d6000803e3d6000fd5b50604080518981526020810185905281516001600160a01b038c169233927fdf0b6ac27f3f3bb31cee3dab0f4fe40cc19c6a3f8daaec52e06b261e58a12519929081900390910190a350506010805460ff1916600117905550505050505050565b61200681565b61200081565b600081565b60025481565b6402540be40081565b60105460009060ff16600214156116bc576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b506010805460ff191660021790553360009081526008602052604090205480611723576040805162461bcd60e51b81526020600482015260146024820152736e6f20756e64656c6567617465642066756e647360601b604482015290519081900360640190fd5b336000818152600860205260408082208290556011549051919291849084818181858888f193505050503d8060008114611779576040519150601f19603f3d011682016040523d82523d6000602084013e61177e565b606091505b50509050806117c6576040805162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b604482015290519081900360640190fd5b60408051838152905133917fc712d133b8d448221aaed2198ed1f0db6dfc860fb01bc3a630916fe6cbef946f919081900360200190a2506010805460ff1916600117905590565b60035490565b61100581565b6001600160a01b031660009081526004602052604090205490565b600281565b601081565b6001600160a01b031660009081526008602052604090205490565b61100881565b600b81565b61200381565b33612000146118aa5760405162461bcd60e51b815260040180806020018281038252602f8152602001806149e3602f913960400191505060405180910390fd5b60005460ff166118ed576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b6118f561481e565b611937610ed684848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278392505050565b905060008060606000805b61194b866130b9565b156119b6578061196857611961610eeb876127f2565b94506119ae565b80600114156119845761197d610eeb876127f2565b93506119ae565b80600214156119a95761199e611999876127f2565b6130da565b9250600191506119ae565b6119b6565b600101611942565b816119fc576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b611a058361314a565b611a48576040805162461bcd60e51b815260206004820152600f60248201526e0eee4dedcce40e0c2c6d640d0c2e6d608b1b604482015290519081900360640190fd5b611a54610ed684612783565b95506000611a64610eeb886127f2565b9050611a6e61481e565b611a77886130b9565b15611a9a57611a93610ed6611a8e6119998b6127f2565b612783565b9050611adb565b6040805162461bcd60e51b8152602060048201526011602482015270656d7074792061636b207061636b61676560781b604482015290519081900360640190fd5b60ff821660011415611af757611af281888861319e565b611b25565b60ff821660021415611b0e57611af2818888613555565b60ff821660031415610f2a57611af2818888613822565b5050505050505050505050565b600981565b61100781565b61100681565b60005460ff1681565b61200281565b61300081565b60005460ff16611baf576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604482015290519081900360640190fd5b3361100714611bef5760405162461bcd60e51b815260040180806020018281038252602e815260200180614934602e913960400191505060405180910390fd5b611c5084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600a81526972656c6179657246656560b01b60208201529150613b879050565b15611db65760208114611caa576040805162461bcd60e51b815260206004820152601d60248201527f6c656e677468206f662072656c61796572466565206d69736d61746368000000604482015290519081900360640190fd5b604080516020601f8401819004810282018101909252828152600091611ce891858580838501838280828437600092019190915250613c6e92505050565b90506003548110611d2a5760405162461bcd60e51b815260040180806020018281038252602e815260200180614962602e913960400191505060405180910390fd5b6002548111611d6a5760405162461bcd60e51b815260040180806020018281038252602e815260200180614990602e913960400191505060405180910390fd5b6402540be400810615611dae5760405162461bcd60e51b815260040180806020018281038252602c815260200180614908602c913960400191505060405180910390fd5b600155612258565b611e1a84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c62534352656c6179657246656560981b60208201529150613b879050565b15611f7c5760208114611e74576040805162461bcd60e51b815260206004820181905260248201527f6c656e677468206f662062534352656c61796572466565206d69736d61746368604482015290519081900360640190fd5b604080516020601f8401819004810282018101909252828152600091611eb291858580838501838280828437600092019190915250613c6e92505050565b905080611ef05760405162461bcd60e51b8152600401808060200182810382526022815260200180614a126022913960400191505060405180910390fd5b6001548110611f305760405162461bcd60e51b815260040180806020018281038252602e815260200180614888602e913960400191505060405180910390fd5b6402540be400810615611f745760405162461bcd60e51b815260040180806020018281038252602f815260200180614859602f913960400191505060405180910390fd5b600255612258565b611fe084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c36b4b72232b632b3b0ba34b7b760991b60208201529150613b879050565b156120c2576020811461203a576040805162461bcd60e51b815260206004820181905260248201527f6c656e677468206f66206d696e44656c65676174696f6e206d69736d61746368604482015290519081900360640190fd5b604080516020601f840181900481028201810190925282815260009161207891858580838501838280828437600092019190915250613c6e92505050565b905060015481116120ba5760405162461bcd60e51b81526004018080602001828103825260318152602001806148b66031913960400191505060405180910390fd5b600355612258565b61212484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600b81526a7472616e7366657247617360a81b60208201529150613b879050565b1561221b576020811461217e576040805162461bcd60e51b815260206004820152601e60248201527f6c656e677468206f66207472616e73666572476173206d69736d617463680000604482015290519081900360640190fd5b604080516020601f84018190048102820181019092528281526000916121bc91858580838501838280828437600092019190915250613c6e92505050565b905060008111612213576040805162461bcd60e51b815260206004820152601e60248201527f746865207472616e736665724761732063616e6e6f74206265207a65726f0000604482015290519081900360640190fd5b601155612258565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b600481565b60105460009060ff166002141561233e576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b506010805460ff1916600217905533600090815260066020526040902054806123a2576040805162461bcd60e51b81526020600482015260116024820152701b9bc81c195b991a5b99c81c995dd85c99607a1b604482015290519081900360640190fd5b336000818152600660205260408082208290556011549051919291849084818181858888f193505050503d80600081146123f8576040519150601f19603f3d011682016040523d82523d6000602084013e6123fd565b606091505b5050905080612445576040805162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b604482015290519081900360640190fd5b60408051838152905133917f83b78188b13346b2ffb484da70d42ee27de7fbf9f2bd8045269e10ed643ccd76919081900360200190a2506010805460ff1916600117905590565b6638d7ea4c68000081565b6001600160a01b038083166000908152600760209081526040808320938516835292905220545b92915050565b60015490565b61100281565b33612000146125105760405162461bcd60e51b815260040180806020018281038252602f8152602001806149e3602f913960400191505060405180910390fd5b60005460ff16612553576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b61259282828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061314a92505050565b6125d5576040805162461bcd60e51b815260206004820152600f60248201526e0eee4dedcce40e0c2c6d640d0c2e6d608b1b604482015290519081900360640190fd5b6125dd61481e565b61261f610ed684848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278392505050565b9050600061262f610eeb836127f2565b905061263961481e565b612642836130b9565b1561266057612659610ed6611a8e611999866127f2565b90506126a6565b6040805162461bcd60e51b8152602060048201526016602482015275656d707479206661696c2061636b207061636b61676560501b604482015290519081900360640190fd5b60ff8216600114156126c0576126bb81613c73565b6126ea565b60ff8216600214156126d5576126bb81613e8d565b60ff821660031415610f2a576126bb81613fb7565b5050505b505050565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b61100381565b61200481565b68056bc75e2d6310000081565b601181565b6001600160a01b0392831660009081526009602090815260408083209486168352938152838220929094168152925290205490565b61100081565b60115481565b61100481565b61278b61483e565b506040805180820190915281518152602082810190820152919050565b6127b061481e565b6127b98261411c565b6127c257600080fd5b60006127d18360200151614156565b60208085015160408051808201909152868152920190820152915050919050565b6127fa61483e565b612803826130b9565b61280c57600080fd5b6020820151600061281c826141b9565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061285557508151602110155b61285e57600080fd5b600061286d8360200151614156565b905080836000015110156128c8576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b8251602080850151830180519284900392918310156128ee57826020036101000a820491505b50949350505050565b600060606000806000805b61290b876130b9565b1561295d578261292d57612926612921886127f2565b6142ec565b9150612952565b826001141561294d57612942610eeb886127f2565b905060019350612952565b61295d565b826001019250612902565b836129a3576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b60006110046001600160a01b031663727be1f8836040518263ffffffff1660e01b815260040180828152602001915050602060405180830381600087803b1580156129ed57600080fd5b505af1158015612a01573d6000803e3d6000fd5b505050506040513d6020811015612a1757600080fd5b5051905080612a3c57612a2e600484846065614306565b965096505050505050612ad2565b6001600160a01b038316600090815260066020526040902054612a65908363ffffffff61305f16565b6001600160a01b038416600081815260066020908152604091829020939093558051858152905191927f7cc266c7b444f808013fa187f7b904d470a051a6564e78f482aa496581ba4bf892918290030190a260408051600080825260208201909252909750955050505050505b915091565b600060606000806000806000805b612aee896130b9565b15612b785784612b0b57612b046129218a6127f2565b9350612b6d565b8460011415612b2757612b206129218a6127f2565b9250612b6d565b8460021415612b4757612b3c610eeb8a6127f2565b915060019550612b6d565b8460031415612b6857612b61612b5c8a6127f2565b614402565b9050612b6d565b612b78565b846001019450612ae5565b85612bbe576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b60006110046001600160a01b031663727be1f8846040518263ffffffff1660e01b815260040180828152602001915050602060405180830381600087803b158015612c0857600080fd5b505af1158015612c1c573d6000803e3d6000fd5b505050506040513d6020811015612c3257600080fd5b5051905080612c5957612c49600586856065614306565b9850985050505050505050612ad2565b6001600160a01b038086166000818152600760209081526040808320948916835293815283822082905591815260089091522054612c9d908463ffffffff61305f16565b6001600160a01b0386166000908152600860205260409020558115612d8b576001600160a01b038516600090815260046020526040902054612ce5908463ffffffff612ed716565b6001600160a01b03808716600090815260046020908152604080832094909455600581528382209288168252919091522054612d27908463ffffffff612ed716565b6001600160a01b038087166000818152600560209081526040808320948a16808452948252918290209490945580518781529051929391927fd6f878a5bcbbe79a64e6418bb0d56aaa20b9a60587d45749819df88dfc7c3c44929181900390910190a35b836001600160a01b0316856001600160a01b03167f35a799836f74fac7eccf5c73902823b970543d2274d3b93d8da3d37a255772a2856040518082815260200191505060405180910390a360408051600080825260208201909252909950975050505050505050915091565b60008184841115612e865760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612e4b578181015183820152602001612e33565b50505050905090810190601f168015612e785780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000612ed083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250614446565b9392505050565b6000612ed083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612df7565b60408051600560a21b8318601482015260348101909152606090612ed0816144ab565b60606124be612f4a83614501565b6144ab565b6060815160001415612f705750604080516000815260208101909152610df1565b606082600081518110612f7f57fe5b602002602001015190506000600190505b8351811015612fc057612fb682858381518110612fa957fe5b60200260200101516145e7565b9150600101612f90565b50612ed0612fd3825160c060ff16614664565b826145e7565b6040805160028082526060828101909352829190816020015b6060815260200190600190039081612ff25790505090506130158460ff16612f3c565b8160008151811061302257fe5b6020026020010181905250613036836144ab565b8160018151811061304357fe5b602002602001018190525061305781612f4f565b949350505050565b600082820183811015612ed0576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60006130c361483e565b505080518051602091820151919092015191011190565b80516060906130e857600080fd5b60006130f78360200151614156565b83516040805191839003808352601f19601f820116830160200190915291925060609082801561312e576020820181803683370190505b50905060008160200190506128ee84876020015101828561475c565b8051602080830191909120600e546000908152600a909252604082205480821461317957600092505050610df1565b5050600e80546000908152600a60205260408120558054600190810190915592915050565b60008060008060005b6131b0886130b9565b1561321957836131cd576131c6612921896127f2565b925061320e565b83600114156131e9576131e2612921896127f2565b915061320e565b8360021415613209576131fe610eeb896127f2565b90506001945061320e565b613219565b8360010193506131a7565b8461325f576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6000613276826402540be40063ffffffff6147a716565b6001600160a01b0385166000908152600b602052604090208054600019019055905060ff8816600114156133bc5760ff8716156132e9576040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b6001600160a01b038416600090815260046020526040902054613312908263ffffffff61305f16565b6001600160a01b03808616600090815260046020908152604080832094909455600581528382209287168252919091522054613354908263ffffffff61305f16565b6001600160a01b038086166000818152600560209081526040808320948916808452948252918290209490945580518581529051929391927f9a57c81564ab02642f34fd87e41baa9b074c18342cec3b7268b62bf752018fd1929181900390910190a361354a565b60ff881661350e576001600160a01b0384166000908152600860205260409020546133ed908263ffffffff61305f16565b6001600160a01b0385166000908152600860209081526040808320939093558251630e4f7c3f60e31b81526004810185905292516110049363727be1f89360248083019493928390030190829087803b15801561344957600080fd5b505af115801561345d573d6000803e3d6000fd5b505050506040513d602081101561347357600080fd5b50516134bc576040805162461bcd60e51b81526020600482015260136024820152721dda5d1a191c985dc8189b988819985a5b1959606a1b604482015290519081900360640190fd5b6040805182815260ff8916602082015281516001600160a01b0380871693908816927fcbd481ae600289fad8c0484d07ce0ffe4f010d7c844ecfdeaf2a13fead52886e929081900390910190a361354a565b6040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b505050505050505050565b60008060008060005b613567886130b9565b156135d057836135845761357d612921896127f2565b92506135c5565b83600114156135a057613599612921896127f2565b91506135c5565b83600214156135c0576135b5610eeb896127f2565b9050600194506135c5565b6135d0565b83600101935061355e565b84613616576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b600061362d826402540be40063ffffffff6147a716565b6001600160a01b0385166000908152600c602052604090208054600019019055905060ff8816600114156137ac5760ff8716156136a0576040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b6001600160a01b0384166000908152600460205260409020546136c9908263ffffffff612ed716565b6001600160a01b0380861660009081526004602090815260408083209490945560058152838220928716825291909152205461370b908263ffffffff612ed716565b6001600160a01b0380861660009081526005602090815260408083209388168352929052205561374442620a8c0063ffffffff61305f16565b6001600160a01b038086166000818152600760209081526040808320948916808452948252918290209490945580518581529051929391927fd6f878a5bcbbe79a64e6418bb0d56aaa20b9a60587d45749819df88dfc7c3c44929181900390910190a361354a565b60ff881661350e576001600160a01b03808516600081815260076020908152604080832094881680845294825280832092909255815185815260ff8c169181019190915281517f4417d10c1e33efa83a770b8d4f47176e78c08c1298d534901ad3b16bb585fa2e929181900390910190a361354a565b6000806000806000805b613835896130b9565b156138ba57846138525761384b6129218a6127f2565b93506138af565b846001141561386e576138676129218a6127f2565b92506138af565b846002141561388a576138836129218a6127f2565b91506138af565b84600314156138aa5761389f610eeb8a6127f2565b9050600195506138af565b6138ba565b84600101945061382c565b85613900576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6000613917826402540be40063ffffffff6147a716565b6001600160a01b0386166000908152600d602052604090208054600019019055905060ff891660011415613aea5760ff88161561398a576040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b6001600160a01b038086166000908152600560209081526040808320938816835292905220546139c0908263ffffffff612ed716565b6001600160a01b038681166000908152600560209081526040808320898516845290915280822093909355908516815220546139fc908261305f565b6001600160a01b03808716600090815260056020908152604080832093881683529290522055613a3542620a8c0063ffffffff61305f16565b6001600160a01b0380871660009081526009602090815260408083208985168452825280832093881683529290522055613a7842620a8c0063ffffffff61305f16565b6001600160a01b038087166000818152600960209081526040808320898616808552908352818420958b1680855295835292819020959095558451868152945191947f78bffae3f8c6691ac7fc1a3bff800cb2d612f5ad9ae5b0444cfe2eb15c189e18929081900390910190a4613b7b565b60ff891661350e576001600160a01b038581166000818152600960209081526040808320898616808552818452828520968a16808652968452828520859055908352818420818552835281842093909355805186815260ff8e169281019290925280519293927fb93bee5c59f85ede6b074a99f4ffcd3e3fc0d5c3d8156de331de89a49e0ce77c9281900390910190a45b50505050505050505050565b6000816040516020018082805190602001908083835b60208310613bbc5780518252601f199092019160209182019101613b9d565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310613c2a5780518252601f199092019160209182019101613c0b565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b60008060008060005b613c85866130b9565b15613cee5783613ca257613c9b612921876127f2565b9250613ce3565b8360011415613cbe57613cb7612921876127f2565b9150613ce3565b8360021415613cde57613cd3610eeb876127f2565b905060019450613ce3565b613cee565b836001019350613c7c565b84613d34576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6000613d4b826402540be40063ffffffff6147a716565b6001600160a01b0385166000908152600b6020908152604080832080546000190190556008909152902054909150613d89908263ffffffff61305f16565b6001600160a01b0385166000908152600860209081526040808320939093558251630e4f7c3f60e31b81526004810185905292516110049363727be1f89360248083019493928390030190829087803b158015613de557600080fd5b505af1158015613df9573d6000803e3d6000fd5b505050506040513d6020811015613e0f57600080fd5b5051613e58576040805162461bcd60e51b81526020600482015260136024820152721dda5d1a191c985dc8189b988819985a5b1959606a1b604482015290519081900360640190fd5b6040516001907ff83de021914a4585482db5ca47d520a5657165b443fa2c7ef8ed4635f054da9b90600090a250505050505050565b60008060008060005b613e9f866130b9565b15613f085783613ebc57613eb5612921876127f2565b9250613efd565b8360011415613ed857613ed1612921876127f2565b9150613efd565b8360021415613ef857613eed610eeb876127f2565b905060019450613efd565b613f08565b836001019350613e96565b84613f4e576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6001600160a01b038084166000908152600c60209081526040808320805460001901905560078252808320938616835292905281812081905590516002917ff83de021914a4585482db5ca47d520a5657165b443fa2c7ef8ed4635f054da9b91a2505050505050565b6000806000806000805b613fca876130b9565b1561404f5784613fe757613fe0612921886127f2565b9350614044565b846001141561400357613ffc612921886127f2565b9250614044565b846002141561401f57614018612921886127f2565b9150614044565b846003141561403f57614034610eeb886127f2565b905060019550614044565b61404f565b846001019450613fc1565b85614095576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6001600160a01b038481166000908152600d602090815260408083208054600019019055600982528083208785168085528184528285209588168552948352818420849055825280832093835292905281812081905590516003917ff83de021914a4585482db5ca47d520a5657165b443fa2c7ef8ed4635f054da9b91a250505050505050565b805160009061412d57506000610df1565b6020820151805160001a9060c082101561414c57600092505050610df1565b5060019392505050565b8051600090811a6080811015614170576000915050610df1565b60b881108061418b575060c0811080159061418b575060f881105b1561419a576001915050610df1565b60c08110156141ae5760b519019050610df1565b60f519019050610df1565b80516000908190811a60808110156141d457600191506142e5565b60b88110156141e957607e19810191506142e5565b60c081101561426357600060b78203600186019550806020036101000a86510491506001810182019350508083101561425d576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b506142e5565b60f88110156142785760be19810191506142e5565b600060f78203600186019550806020036101000a8651049150600181018201935050808310156142e3576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b80516000906015146142fd57600080fd5b6124be82612840565b6000606061431f846402540be40063ffffffff612e8e16565b60408051600480825260a0820190925291955060609190816020015b606081526020019060019003908161433b57905050905061435e8760ff16612f3c565b8160008151811061436b57fe5b6020026020010181905250614388866001600160a01b0316612f19565b8160018151811061439557fe5b60200260200101819052506143a985612f3c565b816002815181106143b657fe5b60200260200101819052506143d08463ffffffff16612f3c565b816003815181106143dd57fe5b602002602001018190525060606143f382612f4f565b94989497509395505050505050565b805160009060011461441357600080fd5b6020820151805160001a9081158061442b5750608082145b1561443b57600092505050610df1565b600192505050610df1565b600081836144955760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315612e4b578181015183820152602001612e33565b5060008385816144a157fe5b0495945050505050565b6060815160011480156144dd5750607f60f81b826000815181106144cb57fe5b01602001516001600160f81b03191611155b156144e9575080610df1565b6124be6144fb8351608060ff16614664565b836145e7565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff19841661454557506018614569565b6fffffffffffffffffffffffffffffffff19841661456557506010614569565b5060005b602081101561459f5781818151811061457e57fe5b01602001516001600160f81b031916156145975761459f565b600101614569565b60008160200390506060816040519080825280601f01601f1916602001820160405280156145d4576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b81831015614618578051835260209283019201614600565b50855184518101855292509050808201602086015b8183101561464557805183526020928301920161462d565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106146b4576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b6040805160018082528183019092526060916020820181803683370190505090506037841161470e5782840160f81b816000815181106146f057fe5b60200101906001600160f81b031916908160001a90535090506124be565b606061471985614501565b90508381510160370160f81b8260008151811061473257fe5b60200101906001600160f81b031916908160001a90535061475382826145e7565b95945050505050565b80614766576126ee565b5b60208110614786578251825260209283019290910190601f1901614767565b915181516020939093036101000a6000190180199091169216919091179052565b6000826147b6575060006124be565b828202828482816147c357fe5b0414612ed05760405162461bcd60e51b81526004018080602001828103825260218152602001806148e76021913960400191505060405180910390fd5b60405180606001604052806003906020820280368337509192915050565b604051806040016040528061483161483e565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe7468652042534352656c61796572466565206d6f642074656e20646563696d616c73206d757374206265207a65726f7468652042534352656c61796572466565206d757374206265206c657373207468616e2072656c61796572466565746865206d696e44656c65676174696f6e206d7573742062652067726561746572207468616e2072656c61796572466565536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f777468652072656c61796572466565206d6f642074656e20646563696d616c73206d757374206265207a65726f746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163747468652072656c61796572466565206d757374206265206c657373207468616e206d696e44656c65676174696f6e7468652072656c61796572466565206d757374206265206d6f7265207468616e2042534352656c61796572466565696e73756666696369656e742062616c616e636520616674657220756e64656c6567617465746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e74726163747468652042534352656c61796572466565206d757374206e6f74206265207a65726fa164736f6c6343000604000a", - }, - { - ContractAddr: StakeHubContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/9d09d0a3d6332460a810188261ec8195e05aa218", - Code: "608060405260043610620003db5760003560e01c806386d545061162000203578063d115a2061162000117578063e992aaf511620000ad578063f80a34021162000078578063f80a34021462000bef578063fb50b31f1462000c14578063fc0c5ff11462000c39578063ff69ab611462000c5157600080fd5b8063e992aaf51462000b6c578063efdbf0e11462000b84578063f1f74d841462000bc0578063f1fad1041462000bd857600080fd5b8063d8ca511f11620000ee578063d8ca511f1462000aff578063daacdb661462000b17578063dbda7fb31462000b2f578063e8f67c3b1462000b5457600080fd5b8063d115a2061462000a9d578063d6ca429d1462000ab5578063d7c2dfc81462000ada57600080fd5b8063b187bd261162000199578063c38fbec81162000164578063c38fbec81462000a1f578063c473318f1462000a44578063c8509d81146200083d578063cbb04d9d1462000a5c57600080fd5b8063b187bd26146200098c578063baa7199e14620009ac578063bdceadf314620009d1578063bff02e2014620009e957600080fd5b8063982ef0a711620001da578063982ef0a714620008f7578063a43569b3146200090e578063aad3ec961462000942578063ac431751146200096757600080fd5b806386d54506146200087a5780638a4d3fa814620008b45780638cd22b2214620008d257600080fd5b80634bf6c88211620002fb578063663706d3116200029157806376e7d6d6116200025c57806376e7d6d6146200080d5780638129fc1c1462000825578063831d65d1146200083d5780638456cb59146200086257600080fd5b8063663706d3146200073a5780636ec01b27146200076b5780636f8e2fa414620007c357806375cc7d8914620007e857600080fd5b80635949187111620002d25780635949187114620006a25780635e7cc1c914620006c757806363a036b514620006ec57806364028fbd146200072357600080fd5b80634bf6c882146200063b5780634d99dd1614620006655780634e6fd6c4146200068a57600080fd5b80631fa8882b1162000371578063449ecfe61162000348578063449ecfe6146200058757806345211bfd14620005ac5780634838d16514620005d15780634a49ac4c146200061657600080fd5b80631fa8882b146200053157806338409988146200054a578063417c73a7146200056257600080fd5b8063092193ab11620003b2578063092193ab146200047c5780630e9fbf5114620004935780631182b87514620004b857806317b4f35314620004ec57600080fd5b8063046f7da214620003fb578063059ddd2214620004135780630661806e146200045557600080fd5b36620003f65760345460ff16600114620003f457600080fd5b005b600080fd5b3480156200040857600080fd5b50620003f462000c69565b3480156200042057600080fd5b506200043862000432366004620093e3565b62000cfb565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156200046257600080fd5b506200046d60365481565b6040519081526020016200044c565b620003f46200048d366004620093e3565b62001110565b348015620004a057600080fd5b50620003f4620004b236600462009447565b6200174e565b348015620004c557600080fd5b50620004dd620004d73660046200948c565b62001a7a565b6040516200044c91906200953f565b348015620004f957600080fd5b50620004386200050b36600462009635565b80516020818301810180516045825292820191909301209152546001600160a01b031681565b3480156200053e57600080fd5b506200046d6201518081565b3480156200055757600080fd5b506200046d60375481565b3480156200056f57600080fd5b50620003f462000581366004620093e3565b62001d53565b3480156200059457600080fd5b50620003f4620005a6366004620093e3565b62001dd5565b348015620005b957600080fd5b50620003f4620005cb366004620093e3565b62001fba565b348015620005de57600080fd5b5062000605620005f0366004620093e3565b60016020526000908152604090205460ff1681565b60405190151581526020016200044c565b3480156200062357600080fd5b50620003f462000635366004620093e3565b62002197565b3480156200064857600080fd5b5062000652600881565b60405160ff90911681526020016200044c565b3480156200067257600080fd5b50620003f4620006843660046200968a565b62002213565b3480156200069757600080fd5b506200043861dead81565b348015620006af57600080fd5b50620003f4620006c1366004620096c8565b62002830565b348015620006d457600080fd5b50620003f4620006e636600462009738565b62003602565b348015620006f957600080fd5b50620007116200070b36600462009758565b6200380a565b6040516200044c9493929190620097c1565b620003f4620007343660046200987d565b62003e9c565b3480156200074757600080fd5b506200046d62000759366004620093e3565b60446020526000908152604090205481565b3480156200077857600080fd5b50620007906200078a366004620093e3565b620044e6565b6040805182516001600160401b03908116825260208085015182169083015292820151909216908201526060016200044c565b348015620007d057600080fd5b50620004dd620007e2366004620093e3565b62004590565b348015620007f557600080fd5b50620003f462000807366004620093e3565b620049a9565b3480156200081a57600080fd5b506200046d603d5481565b3480156200083257600080fd5b50620003f462004b7b565b3480156200084a57600080fd5b50620003f46200085c3660046200948c565b62004e92565b3480156200086f57600080fd5b50620003f462004efc565b3480156200088757600080fd5b506200043862000899366004620093e3565b6043602052600090815260409020546001600160a01b031681565b348015620008c157600080fd5b506200046d670de0b6b3a764000081565b348015620008df57600080fd5b506200046d620008f13660046200968a565b62004f94565b620003f46200090836600462009955565b6200504d565b3480156200091b57600080fd5b50620009336200092d366004620093e3565b620056d7565b6040516200044c919062009993565b3480156200094f57600080fd5b50620003f4620009613660046200968a565b620059c4565b3480156200097457600080fd5b50620003f46200098636600462009a10565b62005a31565b3480156200099957600080fd5b5060005462010000900460ff1662000605565b348015620009b957600080fd5b50620003f4620009cb36600462009ac9565b620068d0565b348015620009de57600080fd5b506200046d603c5481565b348015620009f657600080fd5b5062000a0e62000a0836600462009758565b62006a9d565b6040516200044c9392919062009b25565b34801562000a2c57600080fd5b50620003f462000a3e366004620093e3565b62006c79565b34801562000a5157600080fd5b506200046d60385481565b34801562000a6957600080fd5b5062000a8162000a7b366004620093e3565b62006f3b565b604080519384529115156020840152908201526060016200044c565b34801562000aaa57600080fd5b506200046d61271081565b34801562000ac257600080fd5b50620003f462000ad436600462009b82565b6200736b565b34801562000ae757600080fd5b50620003f462000af936600462009c6b565b6200756f565b34801562000b0c57600080fd5b506200046d603b5481565b34801562000b2457600080fd5b506200046d60495481565b34801562000b3c57600080fd5b506200043862000b4e366004620093e3565b62007665565b34801562000b6157600080fd5b506200046d60355481565b34801562000b7957600080fd5b506200046d603a5481565b34801562000b9157600080fd5b506200046d62000ba336600462009635565b805160208183018101805160468252928201919093012091525481565b34801562000bcd57600080fd5b506200046d603e5481565b34801562000be557600080fd5b5062000652601181565b34801562000bfc57600080fd5b506200046d62000c0e3660046200968a565b62007a7c565b34801562000c2157600080fd5b50620003f462000c3336600462009a10565b62007aed565b34801562000c4657600080fd5b506200046d60395481565b34801562000c5e57600080fd5b506200046d604a5481565b600054630100000090046001600160a01b0316331462000c9c576040516306fbb1e360e01b815260040160405180910390fd5b60005462010000900460ff1662000cc657604051636cd6020160e01b815260040160405180910390fd5b6000805462ff0000191681556040517f62451d457bc659158be6e6247f56ec1df424a5c7597f71c20c2bc44e0965c8f99190a1565b6001600160a01b038082166000908152604160209081526040808320815161016081018352815486168152600182015486169381019390935260028101549094169082015260038301546060820152600483018054929384939091608084019162000d669062009cd1565b80601f016020809104026020016040519081016040528092919081815260200182805462000d949062009cd1565b801562000de55780601f1062000db95761010080835404028352916020019162000de5565b820191906000526020600020905b81548152906001019060200180831162000dc757829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462000e109062009cd1565b80601f016020809104026020016040519081016040528092919081815260200182805462000e3e9062009cd1565b801562000e8f5780601f1062000e635761010080835404028352916020019162000e8f565b820191906000526020600020905b81548152906001019060200180831162000e7157829003601f168201915b5050505050815260200160018201805462000eaa9062009cd1565b80601f016020809104026020016040519081016040528092919081815260200182805462000ed89062009cd1565b801562000f295780601f1062000efd5761010080835404028352916020019162000f29565b820191906000526020600020905b81548152906001019060200180831162000f0b57829003601f168201915b5050505050815260200160028201805462000f449062009cd1565b80601f016020809104026020016040519081016040528092919081815260200182805462000f729062009cd1565b801562000fc35780601f1062000f975761010080835404028352916020019162000fc3565b820191906000526020600020905b81548152906001019060200180831162000fa557829003601f168201915b5050505050815260200160038201805462000fde9062009cd1565b80601f01602080910402602001604051908101604052809291908181526020018280546200100c9062009cd1565b80156200105d5780601f1062001031576101008083540402835291602001916200105d565b820191906000526020600020905b8154815290600101906020018083116200103f57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b815481526020019060010190808311620010e9575050509190925250509051949350505050565b33611000146200113c57604051630f22c43960e41b815261100060048201526024015b60405180910390fd5b6001600160a01b03808216600090815260436020908152604080832054841680845260418352818420825161016081018452815487168152600182015487169481019490945260028101549095169183019190915260038401546060830152600484018054919491608084019190620011b59062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620011e39062009cd1565b8015620012345780601f10620012085761010080835404028352916020019162001234565b820191906000526020600020905b8154815290600101906020018083116200121657829003601f168201915b50505050508152602001600582016040518060800160405290816000820180546200125f9062009cd1565b80601f01602080910402602001604051908101604052809291908181526020018280546200128d9062009cd1565b8015620012de5780601f10620012b257610100808354040283529160200191620012de565b820191906000526020600020905b815481529060010190602001808311620012c057829003601f168201915b50505050508152602001600182018054620012f99062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620013279062009cd1565b8015620013785780601f106200134c5761010080835404028352916020019162001378565b820191906000526020600020905b8154815290600101906020018083116200135a57829003601f168201915b50505050508152602001600282018054620013939062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620013c19062009cd1565b8015620014125780601f10620013e65761010080835404028352916020019162001412565b820191906000526020600020905b815481529060010190602001808311620013f457829003601f168201915b505050505081526020016003820180546200142d9062009cd1565b80601f01602080910402602001604051908101604052809291908181526020018280546200145b9062009cd1565b8015620014ac5780601f106200148057610100808354040283529160200191620014ac565b820191906000526020600020905b8154815290600101906020018083116200148e57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b81548152602001906001019080831162001538575050509190925250505060408101519091506001600160a01b031615806200157557508060e001515b156200163257604051611002903490600081818185875af1925050503d8060008114620015bf576040519150601f19603f3d011682016040523d82523d6000602084013e620015c4565b606091505b505050816001600160a01b03167ffc8bff675087dd2da069cc3fb517b9ed001e19750c0865241a5542dba1ba170d604051620016259060208082526011908201527024a72b20a624a22fab20a624a220aa27a960791b604082015260600190565b60405180910390a2505050565b60408181015160c0830151519151632f303ebb60e11b81526001600160401b0390921660048301526001600160a01b031690635e607d769034906024016000604051808303818588803b1580156200168957600080fd5b505af11580156200169e573d6000803e3d6000fd5b5050505050816001600160a01b03167fe34918ff1c7084970068b53fd71ad6d8b04e9f15d3886cbf006443e6cdc52ea634604051620016df91815260200190565b60405180910390a26040808201519051633041949b60e01b815261200591633041949b91620017149190869060040162009d07565b600060405180830381600087803b1580156200172f57600080fd5b505af115801562001744573d6000803e3d6000fd5b5050505050505b50565b33611001146200177657604051630f22c43960e41b8152611001600482015260240162001133565b60005462010000900460ff1615620017a157604051631785c68160e01b815260040160405180910390fd5b600060458383604051620017b792919062009d21565b908152604051908190036020019020546001600160a01b03169050620017df603f8262007d41565b620017fd5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b03811660009081526041602052604081209062001825620151804262009d47565b604a546000828152604b602052604090205491925011620018595760405163bd52fcdb60e01b815260040160405180910390fd5b6000818152604b602052604081208054600192906200187a90849062009d6a565b909155505060405160469062001894908790879062009d21565b908152602001604051809103902054600014158015620018e55750426201518060468787604051620018c892919062009d21565b908152602001604051809103902054620018e3919062009d6a565b105b156200190457604051631898eb6b60e01b815260040160405180910390fd5b6000806200191485600262007d64565b91509150816200193757604051631b919bb160e11b815260040160405180910390fd5b6002840154603c5460405163045bc4d160e41b815260048101919091526000916001600160a01b0316906345bc4d10906024016020604051808303816000875af11580156200198a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620019b0919062009d80565b9050620019be858362007dee565b856001600160a01b03167f6e9a2ee7aee95665e3a774a212eb11441b217e3e4656ab9563793094689aabb283836002604051620019fe9392919062009db0565b60405180910390a26002850154604051633041949b60e01b815261200591633041949b9162001a3c916001600160a01b0316908a9060040162009d07565b600060405180830381600087803b15801562001a5757600080fd5b505af115801562001a6c573d6000803e3d6000fd5b505050505050505050505050565b6060336120001462001aa457604051630f22c43960e41b8152612000600482015260240162001133565b6034805460ff19166001179055604080516020601f8501819004810282018101909252838152600091829162001af591879087908190840183828082843760009201919091525062007fb592505050565b915091508062001b185760405163035ede3560e21b815260040160405180910390fd5b816060015160000362001b3e575050604080516000815260208101909152905062001d42565b606082015160405163e04c83a760e01b81526000916110049163e04c83a79162001b6e9160040190815260200190565b6020604051808303816000875af115801562001b8e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001bb4919062009ddf565b90508062001c5b5782602001516001600160a01b031683600001516001600160a01b03167fa9084c89a291b43bc984e045671d394974730a159b9a826b577bb148ab504c3a8560600151600160405162001c1092919062009dff565b60405180910390a385858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092965062001d4295505050505050565b600062001c688462008118565b9050600081600381111562001c815762001c8162009d9a565b0362001ca3575050604080516000815260208101909152925062001d42915050565b83602001516001600160a01b031684600001516001600160a01b03167fa9084c89a291b43bc984e045671d394974730a159b9a826b577bb148ab504c3a86606001518460405162001cf692919062009dff565b60405180910390a386868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092975062001d429650505050505050565b6034805460ff191690559392505050565b600054630100000090046001600160a01b0316331462001d86576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b0381166000818152600160208190526040808320805460ff1916909217909155517f7fd26be6fc92aff63f1f4409b2b2ddeb272a888031d7f55ec830485ec61941869190a250565b60005462010000900460ff161562001e0057604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161562001e325760405163b1d02c3d60e01b815260040160405180910390fd5b8062001e40603f8262007d41565b62001e5e5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b0382166000908152604160205260409020600a81015460ff1662001e9c57604051634b6b857d60e01b815260040160405180910390fd5b6036546002820154604051630913db4760e01b81526001600160a01b03868116600483015290911690630913db4790602401602060405180830381865afa15801562001eec573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001f12919062009d80565b101562001f32576040516317b204bf60e11b815260040160405180910390fd5b4281600b0154111562001f585760405163170cb76760e21b815260040160405180910390fd5b600a8101805460ff19169055604980546001919060009062001f7c90849062009e26565b90915550506040516001600160a01b038416907f9390b453426557da5ebdc31f19a37753ca04addf656d32f35232211bb2af3f1990600090a2505050565b60005462010000900460ff161562001fe557604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620020175760405163b1d02c3d60e01b815260040160405180910390fd5b3362002025603f8262007d41565b620020435760405163056e881160e01b815260040160405180910390fd5b6001600160a01b0382166200206b57604051636520611b60e11b815260040160405180910390fd5b6001600160a01b0382811660009081526043602052604090205416151580620020ac57506001600160a01b03821660009081526047602052604090205460ff165b15620020cb57604051631e6f587560e11b815260040160405180910390fd5b336000818152604160205260409020600c8101544290620020f190620151809062009d6a565b11156200211157604051631f92cdbd60e11b815260040160405180910390fd5b80546001600160a01b039081166000908152604460209081526040808320429081905585548986166001600160a01b031991821681178855600c88019290925581855260439093528184208054958816959093168517909255519092917f6e4e747ca35203f16401c69805c7dd52fff67ef60b0ebc5c7fe16890530f223591a350505050565b600054630100000090046001600160a01b03163314620021ca576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b038116600081815260016020526040808220805460ff19169055517fe0db3499b7fdc3da4cddff5f45d694549c19835e7f719fb5606d3ad1a5de40119190a250565b60005462010000900460ff16156200223e57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620022705760405163b1d02c3d60e01b815260040160405180910390fd5b816200227e603f8262007d41565b6200229c5760405163056e881160e01b815260040160405180910390fd5b81600003620022be57604051639811e0c760e01b815260040160405180910390fd5b6001600160a01b0380841660009081526041602090815260408083208151610160810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180543394916080840191620023269062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620023549062009cd1565b8015620023a55780601f106200237957610100808354040283529160200191620023a5565b820191906000526020600020905b8154815290600101906020018083116200238757829003601f168201915b5050505050815260200160058201604051806080016040529081600082018054620023d09062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620023fe9062009cd1565b80156200244f5780601f1062002423576101008083540402835291602001916200244f565b820191906000526020600020905b8154815290600101906020018083116200243157829003601f168201915b505050505081526020016001820180546200246a9062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620024989062009cd1565b8015620024e95780601f10620024bd57610100808354040283529160200191620024e9565b820191906000526020600020905b815481529060010190602001808311620024cb57829003601f168201915b50505050508152602001600282018054620025049062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620025329062009cd1565b8015620025835780601f10620025575761010080835404028352916020019162002583565b820191906000526020600020905b8154815290600101906020018083116200256557829003601f168201915b505050505081526020016003820180546200259e9062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620025cc9062009cd1565b80156200261d5780601f10620025f1576101008083540402835291602001916200261d565b820191906000526020600020905b815481529060010190602001808311620025ff57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b815481526020019060010190808311620026a9575050509190925250505060408082015190516326ccee8b60e11b81526001600160a01b0385811660048301526024820188905292935060009290911690634d99dd16906044016020604051808303816000875af115801562002723573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002749919062009d80565b9050826001600160a01b0316866001600160a01b03167f3aace7340547de7b9156593a7652dc07ee900cea3fd8f82cb6c9d38b4082980287846040516200279a929190918252602082015260400190565b60405180910390a3856001600160a01b0316836001600160a01b031603620027c757620027c786620087ab565b6040808301519051633041949b60e01b815261200591633041949b91620027f49190879060040162009d07565b600060405180830381600087803b1580156200280f57600080fd5b505af115801562002824573d6000803e3d6000fd5b50505050505050505050565b60005462010000900460ff16156200285b57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff16156200288d5760405163b1d02c3d60e01b815260040160405180910390fd5b836200289b603f8262007d41565b620028b95760405163056e881160e01b815260040160405180910390fd5b83620028c7603f8262007d41565b620028e55760405163056e881160e01b815260040160405180910390fd5b6034805460ff1916600117905560008490036200291557604051639811e0c760e01b815260040160405180910390fd5b846001600160a01b0316866001600160a01b031603620029485760405163f0e3e62960e01b815260040160405180910390fd5b6001600160a01b0380871660009081526041602090815260408083208151610160810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180543394916080840191620029b09062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620029de9062009cd1565b801562002a2f5780601f1062002a035761010080835404028352916020019162002a2f565b820191906000526020600020905b81548152906001019060200180831162002a1157829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462002a5a9062009cd1565b80601f016020809104026020016040519081016040528092919081815260200182805462002a889062009cd1565b801562002ad95780601f1062002aad5761010080835404028352916020019162002ad9565b820191906000526020600020905b81548152906001019060200180831162002abb57829003601f168201915b5050505050815260200160018201805462002af49062009cd1565b80601f016020809104026020016040519081016040528092919081815260200182805462002b229062009cd1565b801562002b735780601f1062002b475761010080835404028352916020019162002b73565b820191906000526020600020905b81548152906001019060200180831162002b5557829003601f168201915b5050505050815260200160028201805462002b8e9062009cd1565b80601f016020809104026020016040519081016040528092919081815260200182805462002bbc9062009cd1565b801562002c0d5780601f1062002be15761010080835404028352916020019162002c0d565b820191906000526020600020905b81548152906001019060200180831162002bef57829003601f168201915b5050505050815260200160038201805462002c289062009cd1565b80601f016020809104026020016040519081016040528092919081815260200182805462002c569062009cd1565b801562002ca75780601f1062002c7b5761010080835404028352916020019162002ca7565b820191906000526020600020905b81548152906001019060200180831162002c8957829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b81548152602001906001019080831162002d3357505050919092525050506001600160a01b0380891660009081526041602090815260408083208151610160810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180549495509193909291608084019162002dbe9062009cd1565b80601f016020809104026020016040519081016040528092919081815260200182805462002dec9062009cd1565b801562002e3d5780601f1062002e115761010080835404028352916020019162002e3d565b820191906000526020600020905b81548152906001019060200180831162002e1f57829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462002e689062009cd1565b80601f016020809104026020016040519081016040528092919081815260200182805462002e969062009cd1565b801562002ee75780601f1062002ebb5761010080835404028352916020019162002ee7565b820191906000526020600020905b81548152906001019060200180831162002ec957829003601f168201915b5050505050815260200160018201805462002f029062009cd1565b80601f016020809104026020016040519081016040528092919081815260200182805462002f309062009cd1565b801562002f815780601f1062002f555761010080835404028352916020019162002f81565b820191906000526020600020905b81548152906001019060200180831162002f6357829003601f168201915b5050505050815260200160028201805462002f9c9062009cd1565b80601f016020809104026020016040519081016040528092919081815260200182805462002fca9062009cd1565b80156200301b5780601f1062002fef576101008083540402835291602001916200301b565b820191906000526020600020905b81548152906001019060200180831162002ffd57829003601f168201915b50505050508152602001600382018054620030369062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620030649062009cd1565b8015620030b55780601f106200308957610100808354040283529160200191620030b5565b820191906000526020600020905b8154815290600101906020018083116200309757829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b815481526020019060010190808311620031415750505050508152505090508060e001518015620031845750876001600160a01b0316836001600160a01b031614155b15620031a357604051636468920360e01b815260040160405180910390fd5b60408083015190516352e82ce560e11b81526001600160a01b038581166004830152602482018a9052600092169063a5d059ca906044016020604051808303816000875af1158015620031fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003220919062009d80565b9050603754811015620032465760405163dc6f0bdd60e01b815260040160405180910390fd5b896001600160a01b0316846001600160a01b0316148015620032db57506036546040808501519051630913db4760e01b81526001600160a01b038d8116600483015290911690630913db4790602401602060405180830381865afa158015620032b3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620032d9919062009d80565b105b15620032fa576040516317b204bf60e11b815260040160405180910390fd5b6000612710603a54836200330f919062009e3c565b6200331b919062009d47565b9050600083604001516001600160a01b03168260405160006040518083038185875af1925050503d806000811462003370576040519150601f19603f3d011682016040523d82523d6000602084013e62003375565b606091505b505090508062003398576040516312171d8360e31b815260040160405180910390fd5b620033a4828462009e26565b60408086015190516317066a5760e21b81526001600160a01b03898116600483015292955060009290911690635c19a95c90869060240160206040518083038185885af1158015620033fa573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019062003421919062009d80565b9050866001600160a01b03168c6001600160a01b03168e6001600160a01b03167ffdac6e81913996d95abcc289e90f2d8bd235487ce6fe6f821e7d21002a1915b48e858960405162003486939291909283526020830191909152604082015260600190565b60405180910390a4604080516002808252606082018352600092602083019080368337019050509050866040015181600081518110620034ca57620034ca62009e56565b60200260200101906001600160a01b031690816001600160a01b03168152505085604001518160018151811062003505576200350562009e56565b6001600160a01b0390921660209283029190910190910152604051634484077560e01b815261200590634484077590620035469084908c9060040162009e6c565b600060405180830381600087803b1580156200356157600080fd5b505af115801562003576573d6000803e3d6000fd5b505050508a15620035e8576120056001600160a01b031663e5ed5b1e898f6040518363ffffffff1660e01b8152600401620035b392919062009d07565b600060405180830381600087803b158015620035ce57600080fd5b505af1158015620035e3573d6000803e3d6000fd5b505050505b50506034805460ff19169055505050505050505050505050565b60005462010000900460ff16156200362d57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff16156200365f5760405163b1d02c3d60e01b815260040160405180910390fd5b336200366d603f8262007d41565b6200368b5760405163056e881160e01b815260040160405180910390fd5b336000818152604160205260409020600c8101544290620036b190620151809062009d6a565b1115620036d157604051631f92cdbd60e11b815260040160405180910390fd5b60098101546001600160401b03600160401b909104811690851611156200370b5760405163dc81db8560e01b815260040160405180910390fd5b60098101546000906001600160401b03908116908616101562003749576009820154620037439086906001600160401b031662009e98565b62003763565b600982015462003763906001600160401b03168662009e98565b60098301546001600160401b039182169250600160801b9004168111156200379e5760405163dc81db8560e01b815260040160405180910390fd5b60098201805467ffffffffffffffff19166001600160401b03871690811790915542600c8401556040519081526001600160a01b038416907f78cdd96edf59e09cfd4d26ef6ef6c92d166effe6a40970c54821206d541932cb9060200160405180910390a25050505050565b606080606060006200381d603f620088d1565b90508086101562003e9357841562003836578462003838565b805b945060008562003849888462009e26565b1162003861576200385b878362009e26565b62003863565b855b9050806001600160401b0381111562003880576200388062009554565b604051908082528060200260200182016040528015620038aa578160200160208202803683370190505b509450806001600160401b03811115620038c857620038c862009554565b604051908082528060200260200182016040528015620038f2578160200160208202803683370190505b509350806001600160401b0381111562003910576200391062009554565b6040519080825280602002602001820160405280156200394557816020015b60608152602001906001900390816200392f5790505b50925060005b8181101562003e905760006200396f62003966838b62009d6a565b603f90620088dc565b6001600160a01b03808216600090815260416020908152604080832081516101608101835281548616815260018201548616938101939093526002810154909416908201526003830154606082015260048301805494955091939092916080840191620039dc9062009cd1565b80601f016020809104026020016040519081016040528092919081815260200182805462003a0a9062009cd1565b801562003a5b5780601f1062003a2f5761010080835404028352916020019162003a5b565b820191906000526020600020905b81548152906001019060200180831162003a3d57829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462003a869062009cd1565b80601f016020809104026020016040519081016040528092919081815260200182805462003ab49062009cd1565b801562003b055780601f1062003ad95761010080835404028352916020019162003b05565b820191906000526020600020905b81548152906001019060200180831162003ae757829003601f168201915b5050505050815260200160018201805462003b209062009cd1565b80601f016020809104026020016040519081016040528092919081815260200182805462003b4e9062009cd1565b801562003b9f5780601f1062003b735761010080835404028352916020019162003b9f565b820191906000526020600020905b81548152906001019060200180831162003b8157829003601f168201915b5050505050815260200160028201805462003bba9062009cd1565b80601f016020809104026020016040519081016040528092919081815260200182805462003be89062009cd1565b801562003c395780601f1062003c0d5761010080835404028352916020019162003c39565b820191906000526020600020905b81548152906001019060200180831162003c1b57829003601f168201915b5050505050815260200160038201805462003c549062009cd1565b80601f016020809104026020016040519081016040528092919081815260200182805462003c829062009cd1565b801562003cd35780601f1062003ca75761010080835404028352916020019162003cd3565b820191906000526020600020905b81548152906001019060200180831162003cb557829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b81548152602001906001019080831162003d5f575050505050815250509050806000015188848151811062003d985762003d9862009e56565b60200260200101906001600160a01b031690816001600160a01b0316815250508060e0015162003e315780604001516001600160a01b03166315d1f8986040518163ffffffff1660e01b8152600401602060405180830381865afa15801562003e05573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003e2b919062009d80565b62003e34565b60005b87848151811062003e495762003e4962009e56565b602002602001018181525050806080015186848151811062003e6f5762003e6f62009e56565b602002602001018190525050508062003e889062009ebb565b90506200394b565b50505b92959194509250565b60005462010000900460ff161562003ec757604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161562003ef95760405163b1d02c3d60e01b815260040160405180910390fd5b3362003f07603f8262007d41565b1562003f2657604051635f28f62b60e01b815260040160405180910390fd5b6001600160a01b038881166000908152604360205260409020541615158062003f6757506001600160a01b03881660009081526047602052604090205460ff165b1562003f8657604051631e6f587560e11b815260040160405180910390fd5b60006001600160a01b03166045888860405162003fa592919062009d21565b908152604051908190036020019020546001600160a01b031614158062003fef57506048878760405162003fdb92919062009d21565b9081526040519081900360200190205460ff165b156200400e576040516311fdb94760e01b815260040160405180910390fd5b60006200401c838062009ed7565b6040516020016200402f92919062009d21565b60408051601f1981840301815291815281516020928301206000818152604290935291205490915060ff1615620040795760405163c0bf414360e01b815260040160405180910390fd5b60006200408f670de0b6b3a76400003462009e26565b9050603654811015620040b5576040516317b204bf60e11b815260040160405180910390fd5b6001600160a01b038a16620040dd57604051636520611b60e11b815260040160405180910390fd5b611388620040f2604087016020880162009738565b6001600160401b0316118062004138575062004115604086016020870162009738565b6001600160401b03166200412d602087018762009738565b6001600160401b0316115b8062004177575062004151604086016020870162009738565b6001600160401b03166200416c606087016040880162009738565b6001600160401b0316115b15620041965760405163dc81db8560e01b815260040160405180910390fd5b620041e1620041a6858062009ed7565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250620088ea92505050565b620041ff57604051635dba5ad760e01b815260040160405180910390fd5b6200420e838a8a8a8a62008a8c565b6200422c57604051631647e3cb60e11b815260040160405180910390fd5b60006200427a846200423f878062009ed7565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525062008bbc92505050565b905062004289603f8562008cbd565b506000838152604260209081526040808320805460ff191660019081179091556001600160a01b0380891680865260419094529190932080548f83166001600160a01b031991821617825593810180548516909317909255600282018054918516919093161790915542600382015560048101620043098b8d8362009f7f565b5085600582016200431b82826200a047565b50879050600982016200432f82826200a180565b505042600c8201556001600160a01b038c81166000908152604360205260409081902080546001600160a01b031916928816929092179091555185906045906200437d908e908e9062009d21565b908152602001604051809103902060006101000a8154816001600160a01b0302191690836001600160a01b03160217905550816001600160a01b0316856001600160a01b03168d6001600160a01b03167faecd9fb95e79c75a3a1de93362c6be5fe6ab65770d8614be583884161cd8228d8e8e604051620044009291906200a250565b60405180910390a460408051848152602081018590526001600160a01b0387169182916000805160206200b757833981519152910160405180910390a360408051670de0b6b3a7640000808252602082015261dead916001600160a01b038816916000805160206200b757833981519152910160405180910390a3604051633041949b60e01b815261200590633041949b90620044a4908590899060040162009d07565b600060405180830381600087803b158015620044bf57600080fd5b505af1158015620044d4573d6000803e3d6000fd5b50505050505050505050505050505050565b60408051606081018252600080825260208201819052918101919091528162004511603f8262007d41565b6200452f5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b03831660009081526041602090815260409182902082516060810184526009909101546001600160401b038082168352600160401b8204811693830193909352600160801b90049091169181019190915291505b50919050565b6001600160a01b03808216600090815260416020908152604080832081516101608101835281548616815260018201548616938101939093526002810154909416908201526003830154606082810191909152600484018054919491608084019190620045fd9062009cd1565b80601f01602080910402602001604051908101604052809291908181526020018280546200462b9062009cd1565b80156200467c5780601f1062004650576101008083540402835291602001916200467c565b820191906000526020600020905b8154815290600101906020018083116200465e57829003601f168201915b5050505050815260200160058201604051806080016040529081600082018054620046a79062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620046d59062009cd1565b8015620047265780601f10620046fa5761010080835404028352916020019162004726565b820191906000526020600020905b8154815290600101906020018083116200470857829003601f168201915b50505050508152602001600182018054620047419062009cd1565b80601f01602080910402602001604051908101604052809291908181526020018280546200476f9062009cd1565b8015620047c05780601f106200479457610100808354040283529160200191620047c0565b820191906000526020600020905b815481529060010190602001808311620047a257829003601f168201915b50505050508152602001600282018054620047db9062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620048099062009cd1565b80156200485a5780601f106200482e576101008083540402835291602001916200485a565b820191906000526020600020905b8154815290600101906020018083116200483c57829003601f168201915b50505050508152602001600382018054620048759062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620048a39062009cd1565b8015620048f45780601f10620048c857610100808354040283529160200191620048f4565b820191906000526020600020905b815481529060010190602001808311620048d657829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b815481526020019060010190808311620049805750505091909252505050608001519392505050565b3361100114620049d157604051630f22c43960e41b8152611001600482015260240162001133565b6001600160a01b0380821660009081526043602052604090205416620049f9603f8262007d41565b62004a175760405163056e881160e01b815260040160405180910390fd5b6001600160a01b038181166000908152604160205260408082206002810154603b54925163045bc4d160e41b81526004810193909352909316906345bc4d10906024016020604051808303816000875af115801562004a7a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004aa0919062009d80565b90506000603d544262004ab4919062009d6a565b905062004ac2838262007dee565b836001600160a01b03167f6e9a2ee7aee95665e3a774a212eb11441b217e3e4656ab9563793094689aabb28284600160405162004b029392919062009db0565b60405180910390a26002830154604051633041949b60e01b815261200591633041949b9162004b40916001600160a01b031690889060040162009d07565b600060405180830381600087803b15801562004b5b57600080fd5b505af115801562004b70573d6000803e3d6000fd5b505050505050505050565b600054610100900460ff161580801562004b9c5750600054600160ff909116105b8062004bb85750303b15801562004bb8575060005460ff166001145b62004c1d5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840162001133565b6000805460ff19166001179055801562004c41576000805461ff0019166101001790555b33411462004c625760405163022d8c9560e31b815260040160405180910390fd5b3a1562004c82576040516383f1b1d360e01b815260040160405180910390fd5b611388603555686c6b935b8bbd400000603655670de0b6b3a7640000603755600960385562093a806039556002603a819055678ac7230489e80000603b55680ad78ebc5ac6200000603c556202a300603d5562069780603e55604a5560408051610220810190915261020080825260609182916200b557602083013980602001905181019062004d1391906200a28c565b915060405180610360016040528061034081526020016200b777610340913980602001905181019062004d4791906200a330565b905060005b825181101562004db65760016047600085848151811062004d715762004d7162009e56565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905562004dae8162009ebb565b905062004d4c565b5060005b815181101562004e27576001604883838151811062004ddd5762004ddd62009e56565b602002602001015160405162004df491906200a42d565b908152604051908190036020019020805491151560ff1990921691909117905562004e1f8162009ebb565b905062004dba565b5062004e477330151da466ec8ab345bef3d6983023e050fb067362008cd4565b505080156200174b576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b336120001462004eba57604051630f22c43960e41b8152612000600482015260240162001133565b7faa5ba621c8b3d7d05bb9e51a7506108251d4d5dbe542ca66fc7bb52aacb02b6583838360405162004eef939291906200a44b565b60405180910390a1505050565b600054630100000090046001600160a01b0316331462004f2f576040516306fbb1e360e01b815260040160405180910390fd5b60005462010000900460ff161562004f5a57604051631785c68160e01b815260040160405180910390fd5b6000805462ff00001916620100001781556040517f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e7529190a1565b600062004fa3603f8462007d41565b62004fc15760405163056e881160e01b815260040160405180910390fd5b6001600160a01b0383811660009081526041602052604090819020600201549051636bbf224960e01b815260048101859052911690636bbf2249906024015b602060405180830381865afa1580156200501e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062005044919062009d80565b90505b92915050565b60005462010000900460ff16156200507857604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620050aa5760405163b1d02c3d60e01b815260040160405180910390fd5b81620050b8603f8262007d41565b620050d65760405163056e881160e01b815260040160405180910390fd5b6037543490811015620050fc5760405163dc6f0bdd60e01b815260040160405180910390fd5b6001600160a01b0380851660009081526041602090815260408083208151610160810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180543394916080840191620051649062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620051929062009cd1565b8015620051e35780601f10620051b757610100808354040283529160200191620051e3565b820191906000526020600020905b815481529060010190602001808311620051c557829003601f168201915b50505050508152602001600582016040518060800160405290816000820180546200520e9062009cd1565b80601f01602080910402602001604051908101604052809291908181526020018280546200523c9062009cd1565b80156200528d5780601f1062005261576101008083540402835291602001916200528d565b820191906000526020600020905b8154815290600101906020018083116200526f57829003601f168201915b50505050508152602001600182018054620052a89062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620052d69062009cd1565b8015620053275780601f10620052fb5761010080835404028352916020019162005327565b820191906000526020600020905b8154815290600101906020018083116200530957829003601f168201915b50505050508152602001600282018054620053429062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620053709062009cd1565b8015620053c15780601f106200539557610100808354040283529160200191620053c1565b820191906000526020600020905b815481529060010190602001808311620053a357829003601f168201915b50505050508152602001600382018054620053dc9062009cd1565b80601f01602080910402602001604051908101604052809291908181526020018280546200540a9062009cd1565b80156200545b5780601f106200542f576101008083540402835291602001916200545b565b820191906000526020600020905b8154815290600101906020018083116200543d57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b815481526020019060010190808311620054e75750505050508152505090508060e0015180156200552a5750856001600160a01b0316826001600160a01b031614155b156200554957604051636468920360e01b815260040160405180910390fd5b60408082015190516317066a5760e21b81526001600160a01b0384811660048301526000921690635c19a95c90869060240160206040518083038185885af11580156200559a573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190620055c1919062009d80565b9050826001600160a01b0316876001600160a01b03166000805160206200b757833981519152838760405162005601929190918252602082015260400190565b60405180910390a36040808301519051633041949b60e01b815261200591633041949b91620056369190879060040162009d07565b600060405180830381600087803b1580156200565157600080fd5b505af115801562005666573d6000803e3d6000fd5b50505050851562001744576040516372f6ad8f60e11b81526120059063e5ed5b1e906200569a9086908b9060040162009d07565b600060405180830381600087803b158015620056b557600080fd5b505af1158015620056ca573d6000803e3d6000fd5b5050505050505050505050565b620057036040518060800160405280606081526020016060815260200160608152602001606081525090565b8162005711603f8262007d41565b6200572f5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b03831660009081526041602052604090819020815160808101909252600501805482908290620057669062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620057949062009cd1565b8015620057e55780601f10620057b957610100808354040283529160200191620057e5565b820191906000526020600020905b815481529060010190602001808311620057c757829003601f168201915b50505050508152602001600182018054620058009062009cd1565b80601f01602080910402602001604051908101604052809291908181526020018280546200582e9062009cd1565b80156200587f5780601f1062005853576101008083540402835291602001916200587f565b820191906000526020600020905b8154815290600101906020018083116200586157829003601f168201915b505050505081526020016002820180546200589a9062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620058c89062009cd1565b8015620059195780601f10620058ed5761010080835404028352916020019162005919565b820191906000526020600020905b815481529060010190602001808311620058fb57829003601f168201915b50505050508152602001600382018054620059349062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620059629062009cd1565b8015620059b35780601f106200598757610100808354040283529160200191620059b3565b820191906000526020600020905b8154815290600101906020018083116200599557829003601f168201915b505050505081525050915050919050565b60005462010000900460ff1615620059ef57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161562005a215760405163b1d02c3d60e01b815260040160405180910390fd5b62005a2d828262008d6d565b5050565b336110071462005a5957604051630f22c43960e41b8152611007600482015260240162001133565b62005ac66040518060400160405280601081526020016f1d1c985b9cd9995c91d85cd31a5b5a5d60821b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008e799050565b1562005b81576020811462005af85783838383604051630a5a604160e01b81526004016200113394939291906200a46a565b604080516020601f840181900481028201810190925282815260009162005b3b91858580838501838280828437600092019190915250929392505062008ed69050565b90506108fc81108062005b4f575061271081115b1562005b785784848484604051630a5a604160e01b81526004016200113394939291906200a46a565b6035556200688b565b62005bf26040518060400160405280601481526020017336b4b729b2b6332232b632b3b0ba34b7b721272160611b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008e799050565b1562005cbc576020811462005c245783838383604051630a5a604160e01b81526004016200113394939291906200a46a565b604080516020601f840181900481028201810190925282815260009162005c6791858580838501838280828437600092019190915250929392505062008ed69050565b9050683635c9adc5dea0000081108062005c8a575069152d02c7e14af680000081115b1562005cb35784848484604051630a5a604160e01b81526004016200113394939291906200a46a565b6036556200688b565b62005d2f604051806040016040528060168152602001756d696e44656c65676174696f6e424e424368616e676560501b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008e799050565b1562005df6576020811462005d615783838383604051630a5a604160e01b81526004016200113394939291906200a46a565b604080516020601f840181900481028201810190925282815260009162005da491858580838501838280828437600092019190915250929392505062008ed69050565b905067016345785d8a000081108062005dc45750678ac7230489e8000081115b1562005ded5784848484604051630a5a604160e01b81526004016200113394939291906200a46a565b6037556200688b565b62005e67604051806040016040528060148152602001736d6178456c656374656456616c696461746f727360601b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008e799050565b1562005f1f576020811462005e995783838383604051630a5a604160e01b81526004016200113394939291906200a46a565b604080516020601f840181900481028201810190925282815260009162005edc91858580838501838280828437600092019190915250929392505062008ed69050565b905080158062005eed57506101f481115b1562005f165784848484604051630a5a604160e01b81526004016200113394939291906200a46a565b6038556200688b565b62005f886040518060400160405280600c81526020016b1d5b989bdb9914195c9a5bd960a21b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008e799050565b1562006045576020811462005fba5783838383604051630a5a604160e01b81526004016200113394939291906200a46a565b604080516020601f840181900481028201810190925282815260009162005ffd91858580838501838280828437600092019190915250929392505062008ed69050565b90506203f48081108062006013575062278d0081115b156200603c5784848484604051630a5a604160e01b81526004016200113394939291906200a46a565b6039556200688b565b620060b360405180604001604052806011815260200170726564656c65676174654665655261746560781b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008e799050565b15620061605760208114620060e55783838383604051630a5a604160e01b81526004016200113394939291906200a46a565b604080516020601f84018190048102820181019092528281526000916200612891858580838501838280828437600092019190915250929392505062008ed69050565b90506064811115620061575784848484604051630a5a604160e01b81526004016200113394939291906200a46a565b603a556200688b565b620061d060405180604001604052806013815260200172191bdddb9d1a5b5954db185cda105b5bdd5b9d606a1b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008e799050565b15620062915760208114620062025783838383604051630a5a604160e01b81526004016200113394939291906200a46a565b604080516020601f84018190048102820181019092528281526000916200624591858580838501838280828437600092019190915250929392505062008ed69050565b9050674563918244f400008110806200625f5750603c5481115b15620062885784848484604051630a5a604160e01b81526004016200113394939291906200a46a565b603b556200688b565b620062ff6040518060400160405280601181526020017019995b1bdb9e54db185cda105b5bdd5b9d607a1b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008e799050565b15620063c25760208114620063315783838383604051630a5a604160e01b81526004016200113394939291906200a46a565b604080516020601f84018190048102820181019092528281526000916200637491858580838501838280828437600092019190915250929392505062008ed69050565b905068056bc75e2d63100000811080620063905750603b548111155b15620063b95784848484604051630a5a604160e01b81526004016200113394939291906200a46a565b603c556200688b565b6200642f6040518060400160405280601081526020016f646f776e74696d654a61696c54696d6560801b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008e799050565b15620064ec5760208114620064615783838383604051630a5a604160e01b81526004016200113394939291906200a46a565b604080516020601f8401819004810282018101909252828152600091620064a491858580838501838280828437600092019190915250929392505062008ed69050565b90506202a300811080620064ba5750603e548110155b15620064e35784848484604051630a5a604160e01b81526004016200113394939291906200a46a565b603d556200688b565b620065576040518060400160405280600e81526020016d66656c6f6e794a61696c54696d6560901b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008e799050565b15620066145760208114620065895783838383604051630a5a604160e01b81526004016200113394939291906200a46a565b604080516020601f8401819004810282018101909252828152600091620065cc91858580838501838280828437600092019190915250929392505062008ed69050565b9050620d2f00811080620065e25750603d548111155b156200660b5784848484604051630a5a604160e01b81526004016200113394939291906200a46a565b603e556200688b565b6200668e6040518060400160405280601c81526020017f6d617846656c6f6e794265747765656e42726561746865426c6f636b0000000081525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008e799050565b156200673a5760208114620066c05783838383604051630a5a604160e01b81526004016200113394939291906200a46a565b604080516020601f84018190048102820181019092528281526000916200670391858580838501838280828437600092019190915250929392505062008ed69050565b905080600003620067315784848484604051630a5a604160e01b81526004016200113394939291906200a46a565b604a556200688b565b620067a86040518060400160405280601181526020017039ba30b5b2a43ab1283937ba32b1ba37b960791b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008e799050565b15620068685760148114620067da5783838383604051630a5a604160e01b81526004016200113394939291906200a46a565b600062006822601484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed69050565b90506001600160a01b038116620068565784848484604051630a5a604160e01b81526004016200113394939291906200a46a565b620068618162008edb565b506200688b565b838383836040516325ee20d560e21b81526004016200113394939291906200a46a565b7ff1ce9b2cbf50eeb05769a29e2543fd350cab46894a7dd9978a12d534bb20e63384848484604051620068c294939291906200a46a565b60405180910390a150505050565b60005462010000900460ff1615620068fb57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff16156200692d5760405163b1d02c3d60e01b815260040160405180910390fd5b816000816001600160401b038111156200694b576200694b62009554565b60405190808252806020026020018201604052801562006975578160200160208202803683370190505b5090506000805b8381101562006a7357620069be8787838181106200699e576200699e62009e56565b9050602002016020810190620069b59190620093e3565b603f9062007d41565b620069dc5760405163056e881160e01b815260040160405180910390fd5b60416000888884818110620069f557620069f562009e56565b905060200201602081019062006a0c9190620093e3565b6001600160a01b039081168252602082019290925260400160002060020154845191169250829084908390811062006a485762006a4862009e56565b6001600160a01b039092166020928302919091019091015262006a6b8162009ebb565b90506200697c565b50604051634484077560e01b815261200590634484077590620027f4908590889060040162009e6c565b606080600062006aae603f620088d1565b90508085101562006c7257831562006ac7578362006ac9565b805b935060008462006ada878462009e26565b1162006af25762006aec868362009e26565b62006af4565b845b9050806001600160401b0381111562006b115762006b1162009554565b60405190808252806020026020018201604052801562006b3b578160200160208202803683370190505b509350806001600160401b0381111562006b595762006b5962009554565b60405190808252806020026020018201604052801562006b83578160200160208202803683370190505b50925060005b8181101562006c6f5762006ba262003966828962009d6a565b85828151811062006bb75762006bb762009e56565b60200260200101906001600160a01b031690816001600160a01b0316815250506041600086838151811062006bf05762006bf062009e56565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060020160009054906101000a90046001600160a01b031684828151811062006c445762006c4462009e56565b6001600160a01b039092166020928302919091019091015262006c678162009ebb565b905062006b89565b50505b9250925092565b336110011462006ca157604051630f22c43960e41b8152611001600482015260240162001133565b60005462010000900460ff161562006ccc57604051631785c68160e01b815260040160405180910390fd5b6001600160a01b038082166000908152604360205260409020541662006cf4603f8262007d41565b62006d125760405163056e881160e01b815260040160405180910390fd5b6001600160a01b03811660009081526041602052604081209062006d3a620151804262009d47565b604a546000828152604b60205260409020549192501162006d6e5760405163bd52fcdb60e01b815260040160405180910390fd5b6000818152604b6020526040812080546001929062006d8f90849062009d6a565b90915550506001600160a01b0384166000908152604460205260409020541580159062006de457506001600160a01b038416600090815260446020526040902054429062006de290620151809062009d6a565b105b1562006e03576040516330abb81d60e21b815260040160405180910390fd5b60008062006e1385600062007d64565b915091508162006e3657604051631b919bb160e11b815260040160405180910390fd5b6002840154603c5460405163045bc4d160e41b815260048101919091526000916001600160a01b0316906345bc4d10906024016020604051808303816000875af115801562006e89573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062006eaf919062009d80565b905062006ebd858362007dee565b856001600160a01b03167f6e9a2ee7aee95665e3a774a212eb11441b217e3e4656ab9563793094689aabb28383600060405162006efd9392919062009db0565b60405180910390a26002850154604051633041949b60e01b815261200591633041949b916200569a916001600160a01b0316908a9060040162009d07565b6001600160a01b038082166000908152604160209081526040808320815161016081018352815486168152600182015486169381019390935260028101549094169082015260038301546060820152600483018054929384938493849390929160808401919062006fac9062009cd1565b80601f016020809104026020016040519081016040528092919081815260200182805462006fda9062009cd1565b80156200702b5780601f1062006fff576101008083540402835291602001916200702b565b820191906000526020600020905b8154815290600101906020018083116200700d57829003601f168201915b5050505050815260200160058201604051806080016040529081600082018054620070569062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620070849062009cd1565b8015620070d55780601f10620070a957610100808354040283529160200191620070d5565b820191906000526020600020905b815481529060010190602001808311620070b757829003601f168201915b50505050508152602001600182018054620070f09062009cd1565b80601f01602080910402602001604051908101604052809291908181526020018280546200711e9062009cd1565b80156200716f5780601f1062007143576101008083540402835291602001916200716f565b820191906000526020600020905b8154815290600101906020018083116200715157829003601f168201915b505050505081526020016002820180546200718a9062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620071b89062009cd1565b8015620072095780601f10620071dd5761010080835404028352916020019162007209565b820191906000526020600020905b815481529060010190602001808311620071eb57829003601f168201915b50505050508152602001600382018054620072249062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620072529062009cd1565b8015620072a35780601f106200727757610100808354040283529160200191620072a3565b820191906000526020600020905b8154815290600101906020018083116200728557829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b8154815260200190600101908083116200732f5750505091909252505050606081015160e0820151610100909201519097919650945092505050565b60005462010000900460ff16156200739657604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620073c85760405163b1d02c3d60e01b815260040160405180910390fd5b33620073d6603f8262007d41565b620073f45760405163056e881160e01b815260040160405180910390fd5b336000818152604160205260409020600c81015442906200741a90620151809062009d6a565b11156200743a57604051631f92cdbd60e11b815260040160405180910390fd5b6005810180546200744b9062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620074799062009cd1565b8015620074ca5780601f106200749e57610100808354040283529160200191620074ca565b820191906000526020600020905b815481529060010190602001808311620074ac57829003601f168201915b5050508287525085916005840191508190620074e790826200a495565b5060208201516001820190620074fe90826200a495565b50604082015160028201906200751590826200a495565b50606082015160038201906200752c90826200a495565b505042600c830155506040516001600160a01b038316907f85d6366b336ade7f106987ec7a8eac1e8799e508aeab045a39d2f63e0dc969d990600090a250505050565b60005462010000900460ff16156200759a57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620075cc5760405163b1d02c3d60e01b815260040160405180910390fd5b828114620075ed576040516341abc80160e01b815260040160405180910390fd5b60005b838110156200765e576200764b85858381811062007612576200761262009e56565b9050602002016020810190620076299190620093e3565b8484848181106200763e576200763e62009e56565b9050602002013562008d6d565b620076568162009ebb565b9050620075f0565b5050505050565b6001600160a01b0380821660009081526041602090815260408083208151610160810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180549293849390916080840191620076d09062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620076fe9062009cd1565b80156200774f5780601f1062007723576101008083540402835291602001916200774f565b820191906000526020600020905b8154815290600101906020018083116200773157829003601f168201915b50505050508152602001600582016040518060800160405290816000820180546200777a9062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620077a89062009cd1565b8015620077f95780601f10620077cd57610100808354040283529160200191620077f9565b820191906000526020600020905b815481529060010190602001808311620077db57829003601f168201915b50505050508152602001600182018054620078149062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620078429062009cd1565b8015620078935780601f10620078675761010080835404028352916020019162007893565b820191906000526020600020905b8154815290600101906020018083116200787557829003601f168201915b50505050508152602001600282018054620078ae9062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620078dc9062009cd1565b80156200792d5780601f1062007901576101008083540402835291602001916200792d565b820191906000526020600020905b8154815290600101906020018083116200790f57829003601f168201915b50505050508152602001600382018054620079489062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620079769062009cd1565b8015620079c75780601f106200799b57610100808354040283529160200191620079c7565b820191906000526020600020905b815481529060010190602001808311620079a957829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b81548152602001906001019080831162007a535750505091909252505050604001519392505050565b600062007a8b603f8462007d41565b62007aa95760405163056e881160e01b815260040160405180910390fd5b6001600160a01b038381166000908152604160205260409081902060020154905163aa1966cd60e01b81526004810185905291169063aa1966cd9060240162005000565b60005462010000900460ff161562007b1857604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161562007b4a5760405163b1d02c3d60e01b815260040160405180910390fd5b3362007b58603f8262007d41565b62007b765760405163056e881160e01b815260040160405180910390fd5b3362007b86818787878762008a8c565b62007ba457604051631647e3cb60e11b815260040160405180910390fd5b60006001600160a01b03166045878760405162007bc392919062009d21565b908152604051908190036020019020546001600160a01b031614158062007c0d57506048868660405162007bf992919062009d21565b9081526040519081900360200190205460ff165b1562007c2c576040516311fdb94760e01b815260040160405180910390fd5b6001600160a01b0381166000908152604160205260409020600c810154429062007c5b90620151809062009d6a565b111562007c7b57604051631f92cdbd60e11b815260040160405180910390fd5b4260468260040160405162007c9191906200a55d565b908152604051908190036020019020556004810162007cb287898362009f7f565b5042600c820155604051829060459062007cd0908a908a9062009d21565b90815260405190819003602001812080546001600160a01b039384166001600160a01b0319909116179055908316907f783156582145bd0ff7924fae6953ba054cf1233eb60739a200ddb10de068ff0d9062007d30908a908a906200a250565b60405180910390a250505050505050565b6001600160a01b0381166000908152600183016020526040812054151562005044565b6000806000848460405160200162007d7e9291906200a5db565b60408051601f1981840301815291815281516020928301206000818152604c9093529120549091504281111562007dbe5760008093509350505062007de7565b603e5462007dcd904262009d6a565b6000928352604c6020526040909220829055506001925090505b9250929050565b8154604051631507fdb760e11b81526001600160a01b03909116600482015261100090632a0ffb6e90602401600060405180830381600087803b15801562007e3557600080fd5b505af115801562007e4a573d6000803e3d6000fd5b505050506000600162007e5e603f620088d1565b62007e6a919062009e26565b604954108015915062007f285760405163d31f968d60e01b81526110006004820152600860248201526120009063d31f968d90604401602060405180830381865afa15801562007ebe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062007ee4919062009ddf565b62007f285760018301546040516001600160a01b03909116907f2afdc18061ac21cff7d9f11527ab9c8dec6fabd4edf6f894ed634bebd6a20d4590600090a2505050565b82600b015482111562007f3d57600b83018290555b600a83015460ff1662007fb057600a8301805460ff191660019081179091556049805460009062007f7090849062009d6a565b909155505060018301546040516001600160a01b03909116907f4905ac32602da3fb8b4b7b00c285e5fc4c6c2308cc908b4a1e4e9625a29c90a390600090a25b505050565b60408051608080820183526000808352602080840182905283850182905260608085018390528551938401865282845283820183905283860183905283018290528451808601865282815281018290528451808601909552855185528581019085015291928290620080279062008f47565b90506000805b620080388362008fba565b156200810b57806000036200806d576200805c620080568462008fe0565b62009044565b6001600160a01b03168452620080f8565b80600103620080995762008085620080568462008fe0565b6001600160a01b03166020850152620080f8565b80600203620080c557620080b1620080568462008fe0565b6001600160a01b03166040850152620080f8565b80600303620080f257620080e3620080dd8462008fe0565b6200905c565b606085015260019150620080f8565b6200810b565b620081038162009ebb565b90506200802d565b5091959194509092505050565b6000805462010000900460ff16156200814457604051631785c68160e01b815260040160405180910390fd5b6020808301516001600160a01b031660009081526001909152604090205460ff16806200817c575060208201516001600160a01b0316155b156200819b5760405163b1d02c3d60e01b815260040160405180910390fd5b8151620081ab90603f9062007d41565b620081b857506002919050565b81516001600160a01b03908116600090815260416020908152604080832081516101608101835281548616815260018201548616938101939093526002810154909416908201526003830154606082015260048301805492939192608084019190620082249062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620082529062009cd1565b8015620082a35780601f106200827757610100808354040283529160200191620082a3565b820191906000526020600020905b8154815290600101906020018083116200828557829003601f168201915b5050505050815260200160058201604051806080016040529081600082018054620082ce9062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620082fc9062009cd1565b80156200834d5780601f1062008321576101008083540402835291602001916200834d565b820191906000526020600020905b8154815290600101906020018083116200832f57829003601f168201915b50505050508152602001600182018054620083689062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620083969062009cd1565b8015620083e75780601f10620083bb57610100808354040283529160200191620083e7565b820191906000526020600020905b815481529060010190602001808311620083c957829003601f168201915b50505050508152602001600282018054620084029062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620084309062009cd1565b8015620084815780601f10620084555761010080835404028352916020019162008481565b820191906000526020600020905b8154815290600101906020018083116200846357829003601f168201915b505050505081526020016003820180546200849c9062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620084ca9062009cd1565b80156200851b5780601f10620084ef576101008083540402835291602001916200851b565b820191906000526020600020905b815481529060010190602001808311620084fd57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b815481526020019060010190808311620085a75750505050508152505090508060e001518015620085f2575082600001516001600160a01b031683602001516001600160a01b031614155b15620086015750600392915050565b6040808201516060850151602086015192516317066a5760e21b81526001600160a01b03938416600482015260009390921691635c19a95c919060240160206040518083038185885af11580156200865d573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019062008684919062009d80565b905083602001516001600160a01b031684600001516001600160a01b03166000805160206200b757833981519152838760600151604051620086d0929190918252602082015260400190565b60405180910390a383602001516001600160a01b031684600001516001600160a01b03167f607b17598da6bdca05650a2fc08bd2bc8e38c3236806a0fa8e0daabc1d6cb1d883876060015160405162008733929190918252602082015260400190565b60405180910390a360408083015160208601519151633041949b60e01b815261200592633041949b926200876d9290919060040162009d07565b600060405180830381600087803b1580156200878857600080fd5b505af11580156200879d573d6000803e3d6000fd5b506000979650505050505050565b6001600160a01b0381166000908152604160205260409020600a81015460ff1615620087d5575050565b6036546002820154604051630913db4760e01b81526001600160a01b03858116600483015290911690630913db4790602401602060405180830381865afa15801562008825573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200884b919062009d80565b101562005a2d576200886d81603d544262008867919062009d6a565b62007dee565b80546040516335409f7f60e01b81526001600160a01b039091166004820152611000906335409f7f90602401600060405180830381600087803b158015620088b457600080fd5b505af1158015620088c9573d6000803e3d6000fd5b505050505050565b600062005047825490565b600062005044838362009134565b60008082905060038151108062008902575060098151115b15620089115750600092915050565b60418160008151811062008929576200892962009e56565b016020015160f81c10806200895b5750605a8160008151811062008951576200895162009e56565b016020015160f81c115b156200896a5750600092915050565b60015b815181101562008a825760308282815181106200898e576200898e62009e56565b016020015160f81c1080620089bf57506039828281518110620089b557620089b562009e56565b016020015160f81c115b801562008a0f57506041828281518110620089de57620089de62009e56565b016020015160f81c108062008a0f5750605a82828151811062008a055762008a0562009e56565b016020015160f81c115b801562008a5f5750606182828151811062008a2e5762008a2e62009e56565b016020015160f81c108062008a5f5750607a82828151811062008a555762008a5562009e56565b016020015160f81c115b1562008a6f575060009392505050565b62008a7a8162009ebb565b90506200896d565b5060019392505050565b600060308414158062008aa0575060608214155b1562008aaf5750600062008bb3565b60008686864660405160200162008aca94939291906200a619565b60408051808303601f1901815282825280516020918201208184528383019092529092506000919060208201818036833701905050905081602082015260008186868a8a60405160200162008b249594939291906200a646565b60408051808303601f190181526001808452838301909252925060009190602082018180368337019050509050815160016020830182602086016066600019fa62008b6e57600080fd5b5060008160008151811062008b875762008b8762009e56565b016020015160f81c90506001811462008ba95760009550505050505062008bb3565b6001955050505050505b95945050505050565b60008061200361dead60405162008bd390620093bf565b6001600160a01b03928316815291166020820152606060408201819052600090820152608001604051809103906000f08015801562008c16573d6000803e3d6000fd5b509050806001600160a01b031663f399e22e3486866040518463ffffffff1660e01b815260040162008c4a9291906200a67e565b6000604051808303818588803b15801562008c6457600080fd5b505af115801562008c79573d6000803e3d6000fd5b50506040516001600160a01b038086169450881692507fd481492e4e93bb36b4c12a5af93f03be3bf04b454dfbc35dd2663fa26f44d5b09150600090a39392505050565b600062005044836001600160a01b03841662009161565b600054610100900460ff1662008d415760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840162001133565b600080546001600160a01b039092166301000000026301000000600160b81b0319909216919091179055565b8162008d7b603f8262007d41565b62008d995760405163056e881160e01b815260040160405180910390fd5b6001600160a01b03838116600090815260416020526040808220600201549051635569f64b60e11b8152336004820152602481018690529192169063aad3ec96906044016020604051808303816000875af115801562008dfd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062008e23919062009d80565b9050336001600160a01b0316846001600160a01b03167ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd39926838360405162008e6b91815260200190565b60405180910390a350505050565b60008160405160200162008e8e91906200a42d565b604051602081830303815290604052805190602001208360405160200162008eb791906200a42d565b6040516020818303038152906040528051906020012014905092915050565b015190565b600080546040516001600160a01b0380851693630100000090930416917f44fc1b38a4abaa91ebd1b628a5b259a698f86238c8217d68f516e87769c60c0b91a3600080546001600160a01b039092166301000000026301000000600160b81b0319909216919091179055565b604080516080810182526000918101828152606082018390528152602081019190915262008f7582620091b3565b62008f7f57600080fd5b600062008f908360200151620091e6565b836020015162008fa1919062009d6a565b6040805180820190915293845260208401525090919050565b8051805160208201516000929162008fd29162009d6a565b836020015110915050919050565b604080518082019091526000808252602082015262008fff8262008fba565b6200900957600080fd5b602082015160006200901b8262009275565b905062009029818362009d6a565b60209485015260408051808201909152908152928301525090565b80516000906015146200905657600080fd5b62005047825b8051600090158015906200907257508151602110155b6200907c57600080fd5b60006200908d8360200151620091e6565b90508083600001511015620090e55760405162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015260640162001133565b8251600090620090f790839062009e26565b90506000808386602001516200910e919062009d6a565b90508051915060208310156200912b57826020036101000a820491505b50949350505050565b60008260000182815481106200914e576200914e62009e56565b9060005260206000200154905092915050565b6000818152600183016020526040812054620091aa5750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915562005047565b50600062005047565b80516000908103620091c757506000919050565b6020820151805160001a9060c082101562008a82575060009392505050565b8051600090811a6080811015620092005750600092915050565b60b88110806200921d575060c081108015906200921d575060f881105b156200922c5750600192915050565b60c0811015620092675762009244600160b86200a6a4565b620092539060ff168262009e26565b6200926090600162009d6a565b9392505050565b62009244600160f86200a6a4565b80516000908190811a6080811015620092925760019150620093b8565b60b8811015620092be57620092a960808262009e26565b620092b690600162009d6a565b9150620093b8565b60c08110156200933757600060b78203600186019550806020036101000a865104915060018101820193505080831015620093305760405162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015260640162001133565b50620093b8565b60f88110156200934e57620092a960c08262009e26565b600060f78203600186019550806020036101000a865104915060018101820193505080831015620093b65760405162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015260640162001133565b505b5092915050565b610e96806200a6c183390190565b6001600160a01b03811681146200174b57600080fd5b600060208284031215620093f657600080fd5b81356200926081620093cd565b60008083601f8401126200941657600080fd5b5081356001600160401b038111156200942e57600080fd5b60208301915083602082850101111562007de757600080fd5b600080602083850312156200945b57600080fd5b82356001600160401b038111156200947257600080fd5b620094808582860162009403565b90969095509350505050565b600080600060408486031215620094a257600080fd5b833560ff81168114620094b457600080fd5b925060208401356001600160401b03811115620094d057600080fd5b620094de8682870162009403565b9497909650939450505050565b60005b8381101562009508578181015183820152602001620094ee565b50506000910152565b600081518084526200952b816020860160208601620094eb565b601f01601f19169290920160200192915050565b60208152600062005044602083018462009511565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b03811182821017156200958f576200958f62009554565b60405290565b604051601f8201601f191681016001600160401b0381118282101715620095c057620095c062009554565b604052919050565b60006001600160401b03821115620095e457620095e462009554565b50601f01601f191660200190565b6000620096096200960384620095c8565b62009595565b90508281528383830111156200961e57600080fd5b828260208301376000602084830101529392505050565b6000602082840312156200964857600080fd5b81356001600160401b038111156200965f57600080fd5b8201601f810184136200967157600080fd5b6200968284823560208401620095f2565b949350505050565b600080604083850312156200969e57600080fd5b8235620096ab81620093cd565b946020939093013593505050565b80151581146200174b57600080fd5b60008060008060808587031215620096df57600080fd5b8435620096ec81620093cd565b93506020850135620096fe81620093cd565b92506040850135915060608501356200971781620096b9565b939692955090935050565b6001600160401b03811681146200174b57600080fd5b6000602082840312156200974b57600080fd5b8135620092608162009722565b600080604083850312156200976c57600080fd5b50508035926020909101359150565b600081518084526020808501945080840160005b83811015620097b65781516001600160a01b0316875295820195908201906001016200978f565b509495945050505050565b608081526000620097d660808301876200977b565b82810360208481019190915286518083528782019282019060005b818110156200980f57845183529383019391830191600101620097f1565b5050848103604086015286518082528282019350600581901b8201830183890160005b838110156200986457601f198584030187526200985183835162009511565b9686019692509085019060010162009832565b5050809550505050505082606083015295945050505050565b600080600080600080600087890360e08112156200989a57600080fd5b8835620098a781620093cd565b975060208901356001600160401b0380821115620098c457600080fd5b620098d28c838d0162009403565b909950975060408b0135915080821115620098ec57600080fd5b620098fa8c838d0162009403565b90975095508591506060605f19840112156200991557600080fd5b60608b01945060c08b01359250808311156200993057600080fd5b505088016080818b0312156200994557600080fd5b8091505092959891949750929550565b600080604083850312156200996957600080fd5b82356200997681620093cd565b915060208301356200998881620096b9565b809150509250929050565b602081526000825160806020840152620099b160a084018262009511565b90506020840151601f1980858403016040860152620099d1838362009511565b92506040860151915080858403016060860152620099f0838362009511565b925060608601519150808584030160808601525062008bb3828262009511565b6000806000806040858703121562009a2757600080fd5b84356001600160401b038082111562009a3f57600080fd5b62009a4d8883890162009403565b9096509450602087013591508082111562009a6757600080fd5b5062009a768782880162009403565b95989497509550505050565b60008083601f84011262009a9557600080fd5b5081356001600160401b0381111562009aad57600080fd5b6020830191508360208260051b850101111562007de757600080fd5b60008060006040848603121562009adf57600080fd5b83356001600160401b0381111562009af657600080fd5b62009b048682870162009a82565b909450925050602084013562009b1a81620093cd565b809150509250925092565b60608152600062009b3a60608301866200977b565b828103602084015262009b4e81866200977b565b915050826040830152949350505050565b600082601f83011262009b7157600080fd5b6200504483833560208501620095f2565b60006020828403121562009b9557600080fd5b81356001600160401b038082111562009bad57600080fd5b908301906080828603121562009bc257600080fd5b62009bcc6200956a565b82358281111562009bdc57600080fd5b62009bea8782860162009b5f565b82525060208301358281111562009c0057600080fd5b62009c0e8782860162009b5f565b60208301525060408301358281111562009c2757600080fd5b62009c358782860162009b5f565b60408301525060608301358281111562009c4e57600080fd5b62009c5c8782860162009b5f565b60608301525095945050505050565b6000806000806040858703121562009c8257600080fd5b84356001600160401b038082111562009c9a57600080fd5b62009ca88883890162009a82565b9096509450602087013591508082111562009cc257600080fd5b5062009a768782880162009a82565b600181811c9082168062009ce657607f821691505b6020821081036200458a57634e487b7160e01b600052602260045260246000fd5b6001600160a01b0392831681529116602082015260400190565b8183823760009101908152919050565b634e487b7160e01b600052601160045260246000fd5b60008262009d6557634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111562005047576200504762009d31565b60006020828403121562009d9357600080fd5b5051919050565b634e487b7160e01b600052602160045260246000fd5b83815260208101839052606081016003831062009dd15762009dd162009d9a565b826040830152949350505050565b60006020828403121562009df257600080fd5b81516200926081620096b9565b828152604081016004831062009e195762009e1962009d9a565b8260208301529392505050565b8181038181111562005047576200504762009d31565b808202811582820484141762005047576200504762009d31565b634e487b7160e01b600052603260045260246000fd5b60408152600062009e8160408301856200977b565b905060018060a01b03831660208301529392505050565b6001600160401b03828116828216039080821115620093b857620093b862009d31565b60006001820162009ed05762009ed062009d31565b5060010190565b6000808335601e1984360301811262009eef57600080fd5b8301803591506001600160401b0382111562009f0a57600080fd5b60200191503681900382131562007de757600080fd5b601f82111562007fb057600081815260208120601f850160051c8101602086101562009f495750805b601f850160051c820191505b81811015620088c95782815560010162009f55565b600019600383901b1c191660019190911b1790565b6001600160401b0383111562009f995762009f9962009554565b62009fb18362009faa835462009cd1565b8362009f20565b6000601f84116001811462009fe4576000851562009fcf5750838201355b62009fdb868262009f6a565b8455506200765e565b600083815260209020601f19861690835b828110156200a017578685013582556020948501946001909201910162009ff5565b50868210156200a0355760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b6200a053828362009ed7565b6001600160401b038111156200a06d576200a06d62009554565b6200a085816200a07e855462009cd1565b8562009f20565b6000601f8211600181146200a0b857600083156200a0a35750838201355b6200a0af848262009f6a565b8655506200a115565b600085815260209020601f19841690835b828110156200a0eb57868501358255602094850194600190920191016200a0c9565b50848210156200a1095760001960f88660031b161c19848701351681555b505060018360011b0185555b505050506200a128602083018362009ed7565b6200a13881836001860162009f7f565b50506200a149604083018362009ed7565b6200a15981836002860162009f7f565b50506200a16a606083018362009ed7565b6200a17a81836003860162009f7f565b50505050565b81356200a18d8162009722565b6001600160401b03811690508154816001600160401b0319821617835560208401356200a1ba8162009722565b6fffffffffffffffff0000000000000000604091821b166fffffffffffffffffffffffffffffffff198316841781178555908501356200a1fa8162009722565b6001600160c01b0319929092169092179190911760809190911b67ffffffffffffffff60801b1617905550565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b602081526000620096826020830184866200a227565b60006001600160401b038211156200a282576200a28262009554565b5060051b60200190565b600060208083850312156200a2a057600080fd5b82516001600160401b038111156200a2b757600080fd5b8301601f810185136200a2c957600080fd5b80516200a2da62009603826200a266565b81815260059190911b820183019083810190878311156200a2fa57600080fd5b928401925b828410156200a3255783516200a31581620093cd565b825292840192908401906200a2ff565b979650505050505050565b600060208083850312156200a34457600080fd5b82516001600160401b03808211156200a35c57600080fd5b818501915085601f8301126200a37157600080fd5b81516200a38262009603826200a266565b81815260059190911b830184019084810190888311156200a3a257600080fd5b8585015b838110156200a420578051858111156200a3c05760008081fd5b8601603f81018b136200a3d35760008081fd5b8781015160406200a3e86200960383620095c8565b8281528d828486010111156200a3fe5760008081fd5b6200a40f838c8301848701620094eb565b86525050509186019186016200a3a6565b5098975050505050505050565b600082516200a441818460208701620094eb565b9190910192915050565b60ff8416815260406020820152600062008bb36040830184866200a227565b6040815260006200a4806040830186886200a227565b82810360208401526200a3258185876200a227565b81516001600160401b038111156200a4b1576200a4b162009554565b6200a4c9816200a4c2845462009cd1565b8462009f20565b602080601f8311600181146200a4fd57600084156200a4e85750858301515b6200a4f4858262009f6a565b865550620088c9565b600085815260208120601f198616915b828110156200a52e578886015182559484019460019091019084016200a50d565b50858210156200a54d5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60008083546200a56d8162009cd1565b600182811680156200a58857600181146200a59e576200a5cf565b60ff19841687528215158302870194506200a5cf565b8760005260208060002060005b858110156200a5c65781548a8201529084019082016200a5ab565b50505082870194505b50929695505050505050565b6bffffffffffffffffffffffff198360601b1681526000600383106200a605576200a60562009d9a565b5060f89190911b6014820152601501919050565b6bffffffffffffffffffffffff198560601b16815282846014830137601492019182015260340192915050565b600086516200a65a818460208b01620094eb565b82018587823760009086019081528385823760009301928352509095945050505050565b6001600160a01b0383168152604060208201819052600090620096829083018462009511565b60ff828116828216039081111562005047576200504762009d3156fe608060405260405162000e9638038062000e96833981016040819052620000269162000497565b828162000036828260006200004d565b50620000449050826200008a565b505050620005ca565b6200005883620000e5565b600082511180620000665750805b1562000085576200008383836200012760201b620001691760201c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000b562000156565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000e2816200018f565b50565b620000f08162000244565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200014f838360405180606001604052806027815260200162000e6f60279139620002f8565b9392505050565b60006200018060008051602062000e4f83398151915260001b6200037760201b620001951760201c565b546001600160a01b0316919050565b6001600160a01b038116620001fa5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b806200022360008051602062000e4f83398151915260001b6200037760201b620001951760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b6200025a816200037a60201b620001981760201c565b620002be5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001f1565b80620002237f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6200037760201b620001951760201c565b6060600080856001600160a01b03168560405162000317919062000577565b600060405180830381855af49150503d806000811462000354576040519150601f19603f3d011682016040523d82523d6000602084013e62000359565b606091505b5090925090506200036d8683838762000389565b9695505050505050565b90565b6001600160a01b03163b151590565b60608315620003fd578251600003620003f5576001600160a01b0385163b620003f55760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401620001f1565b508162000409565b62000409838362000411565b949350505050565b815115620004225781518083602001fd5b8060405162461bcd60e51b8152600401620001f1919062000595565b80516001600160a01b03811681146200045657600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200048e57818101518382015260200162000474565b50506000910152565b600080600060608486031215620004ad57600080fd5b620004b8846200043e565b9250620004c8602085016200043e565b60408501519092506001600160401b0380821115620004e657600080fd5b818601915086601f830112620004fb57600080fd5b8151818111156200051057620005106200045b565b604051601f8201601f19908116603f011681019083821181831017156200053b576200053b6200045b565b816040528281528960208487010111156200055557600080fd5b6200056883602083016020880162000471565b80955050505050509250925092565b600082516200058b81846020870162000471565b9190910192915050565b6020815260008251806020840152620005b681604085016020870162000471565b601f01601f19169190910160400192915050565b61087580620005da6000396000f3fe60806040523661001357610011610017565b005b6100115b61001f6101a7565b6001600160a01b0316330361015f5760606001600160e01b0319600035166364d3180d60e11b810161005a576100536101da565b9150610157565b63587086bd60e11b6001600160e01b031982160161007a57610053610231565b63070d7c6960e41b6001600160e01b031982160161009a57610053610277565b621eb96f60e61b6001600160e01b03198216016100b9576100536102a8565b63a39f25e560e01b6001600160e01b03198216016100d9576100536102e8565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b6101676102fc565b565b606061018e83836040518060600160405280602781526020016108426027913961030c565b9392505050565b90565b6001600160a01b03163b151590565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101e4610384565b60006101f33660048184610695565b81019061020091906106db565b905061021d8160405180602001604052806000815250600061038f565b505060408051602081019091526000815290565b60606000806102433660048184610695565b810190610250919061070c565b915091506102608282600161038f565b604051806020016040528060008152509250505090565b6060610281610384565b60006102903660048184610695565b81019061029d91906106db565b905061021d816103bb565b60606102b2610384565b60006102bc6101a7565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b60606102f2610384565b60006102bc610412565b610167610307610412565b610421565b6060600080856001600160a01b03168560405161032991906107f2565b600060405180830381855af49150503d8060008114610364576040519150601f19603f3d011682016040523d82523d6000602084013e610369565b606091505b509150915061037a86838387610445565b9695505050505050565b341561016757600080fd5b610398836104c6565b6000825111806103a55750805b156103b6576103b48383610169565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103e46101a7565b604080516001600160a01b03928316815291841660208301520160405180910390a161040f81610506565b50565b600061041c6105af565b905090565b3660008037600080366000845af43d6000803e808015610440573d6000f35b3d6000fd5b606083156104b45782516000036104ad576001600160a01b0385163b6104ad5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161014e565b50816104be565b6104be83836105d7565b949350505050565b6104cf81610601565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6001600160a01b03811661056b5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161014e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101cb565b8151156105e75781518083602001fd5b8060405162461bcd60e51b815260040161014e919061080e565b6001600160a01b0381163b61066e5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161014e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61058e565b600080858511156106a557600080fd5b838611156106b257600080fd5b5050820193919092039150565b80356001600160a01b03811681146106d657600080fd5b919050565b6000602082840312156106ed57600080fd5b61018e826106bf565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561071f57600080fd5b610728836106bf565b9150602083013567ffffffffffffffff8082111561074557600080fd5b818501915085601f83011261075957600080fd5b81358181111561076b5761076b6106f6565b604051601f8201601f19908116603f01168101908382118183101715610793576107936106f6565b816040528281528860208487010111156107ac57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b838110156107e95781810151838201526020016107d1565b50506000910152565b600082516108048184602087016107ce565b9190910192915050565b602081526000825180602084015261082d8160408501602087016107ce565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a164736f6c6343000811000ab53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000001284214b9b9c85549ab3d2b972df0deef66ac2c9000000000000000000000000a2959d3f95eae5dc7d70144ce1b73b403b7eb6e0000000000000000000000000980a75ecd1309ea12fa2ed87a8744fbfc9b863d5000000000000000000000000b71b214cb885500844365e95cd9942c7276e7fd800000000000000000000000035552c16704d214347f29fa77f77da6d75d7c752000000000000000000000000f474cf03cceff28abc65c9cbae594f725c80e12d00000000000000000000000096c5d20b2a975c050e4220be276ace4892f4b41a00000000000000000000000047788386d0ed6c748e03a53160b4b30ed3748cc5000000000000000000000000bdfbc016c1bd481f5d8ca6f754f4b200a7ed66ce000000000000000000000000372e4887005ec21a5aff9ff62eda9e7713e3643700000000000000000000000055c968cf3430f3ba0534ef49ff4b3fbc9086c7ce000000000000000000000000136bd6343049c9690569db79dcd9208a57d342ad000000000000000000000000977ecef7de795cd248d77fd0d080ce3a35dec013000000000000000000000000b334ced91dff560bc9b5b3c30ae613bf335f181324d7bda8602b916d64417f0dbfe2e2e88ec9b1157bd9f596dfdb91ba26624e040000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000000308e82934ca974fdcd97f3309de967d3c9c43fa711a8d673af5d75465844bf8969c8d1948d903748ac7b8b1720fa64e50c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b973c2d38487e58fd6e145491b110080fb14ac915a0411fc78f19e09a399ddee0d20c63a75d8f930f1694544ad2dc01b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003089037a9ace3b590165ea1c0c5ac72bf600b7c88c1e435f41932c1132aae1bfa0bb68e46b96ccb12c3415e4d82af717d8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030a2750ec6dded3dcdc2f351782310b0eadc077db59abca0f0cd26776e2e7acb9f3bce40b1fa5221fd1561226c6263cc5f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b742ad4855bae330426b823e742da31f816cc83bc16d69a9134be0cfb4a1d17ec34f1b5b32d5c20440b8536b1e88f0f200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003096c9b86c3400e529bfe184056e257c07940bb664636f689e8d2027c834681f8f878b73445261034e946bb2d901b4b87800000000000000000000000000000000a164736f6c6343000811000a", - }, - { - ContractAddr: StakeCreditContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/9d09d0a3d6332460a810188261ec8195e05aa218", - Code: "6080604052600436106101e75760003560e01c8063647df75911610102578063a9664feb11610095578063d241c1ea11610064578063d241c1ea1461068d578063dd62ed3e146106cf578063f1fad104146106ef578063f399e22e1461070457600080fd5b8063a9664feb14610600578063aa1966cd14610620578063aad3ec961461064d578063c2cde2b21461066d57600080fd5b806395d89b41116100d157806395d89b411461058b578063a457c2d7146105a0578063a5d059ca146105c0578063a9059cbb146105e057600080fd5b8063647df759146104e85780636bbf22491461050857806370a082311461053557806391faf0b41461056b57600080fd5b8063313ce5671161017a5780634bf6c882116101495780634bf6c8821461048b5780634d99dd16146104a05780635c19a95c146104c05780635e607d76146104d357600080fd5b8063313ce567146103f157806339509351146104135780633a5381b51461043357806345bc4d101461046b57600080fd5b806315d1f898116101b657806315d1f8981461038657806318160ddd1461039c57806323b872dd146103b15780632f2d448a146103d157600080fd5b8063038c0023146102e157806306fdde03146103145780630913db4714610336578063095ea7b31461035657600080fd5b366102dc57336120021461021757604051630f22c43960e41b815261200260048201526024015b60405180910390fd5b60006120026001600160a01b0316631fa8882b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610259573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061027d9190611de4565b6102879042611e13565b6098546000828152609d6020908152604080832093909355609c9052908120805492935034929091906102bb908490611e35565b9250508190555034609860008282546102d49190611e35565b925050819055005b600080fd5b3480156102ed57600080fd5b506103016102fc366004611e60565b610717565b6040519081526020015b60405180910390f35b34801561032057600080fd5b50610329610747565b60405161030b9190611e84565b34801561034257600080fd5b50610301610351366004611e60565b6107d9565b34801561036257600080fd5b50610376610371366004611ed2565b6107fb565b604051901515815260200161030b565b34801561039257600080fd5b5061030160985481565b3480156103a857600080fd5b50606754610301565b3480156103bd57600080fd5b506103766103cc366004611efe565b610813565b3480156103dd57600080fd5b506103016103ec366004611e60565b610837565b3480156103fd57600080fd5b5060125b60405160ff909116815260200161030b565b34801561041f57600080fd5b5061037661042e366004611ed2565b6108fc565b34801561043f57600080fd5b50609754610453906001600160a01b031681565b6040516001600160a01b03909116815260200161030b565b34801561047757600080fd5b50610301610486366004611f3f565b61091e565b34801561049757600080fd5b50610401600881565b3480156104ac57600080fd5b506103016104bb366004611ed2565b610a11565b6103016104ce366004611e60565b610c28565b6104e66104e1366004611f58565b610c9e565b005b3480156104f457600080fd5b50610301610503366004611f3f565b610e11565b34801561051457600080fd5b50610301610523366004611f3f565b609d6020526000908152604090205481565b34801561054157600080fd5b50610301610550366004611e60565b6001600160a01b031660009081526065602052604090205490565b34801561057757600080fd5b50610301610586366004611f3f565b610e50565b34801561059757600080fd5b50610329610e8b565b3480156105ac57600080fd5b506103766105bb366004611ed2565b610e9a565b3480156105cc57600080fd5b506103016105db366004611ed2565b610f15565b3480156105ec57600080fd5b506103766105fb366004611ed2565b611016565b34801561060c57600080fd5b5061030161061b366004611ed2565b611024565b34801561062c57600080fd5b5061030161063b366004611f3f565b609c6020526000908152604090205481565b34801561065957600080fd5b50610301610668366004611ed2565b61114d565b34801561067957600080fd5b50610301610688366004611e60565b6113f0565b34801561069957600080fd5b506106ad6106a8366004611ed2565b61140e565b604080518251815260208084015190820152918101519082015260600161030b565b3480156106db57600080fd5b506103016106ea366004611f82565b611491565b3480156106fb57600080fd5b50610401601181565b6104e6610712366004611fbb565b6114bc565b6001600160a01b0381166000908152609a6020526040812054600f81810b600160801b909204900b035b92915050565b60606068805461075690612040565b80601f016020809104026020016040519081016040528092919081815260200182805461078290612040565b80156107cf5780601f106107a4576101008083540402835291602001916107cf565b820191906000526020600020905b8154815290600101906020018083116107b257829003601f168201915b5050505050905090565b6001600160a01b03811660009081526065602052604081205461074190610e50565b600033610809818585611672565b5060019392505050565b60003361082185828561168b565b61082c8585856116ff565b506001949350505050565b6001600160a01b0381166000908152609a6020526040812054600f81810b600160801b909204900b0381805b828110156108f4576001600160a01b0385166000908152609a6020526040812061088d9083611718565b6000818152609960209081526040918290208251606081018452815481526001820154928101929092526002015491810182905291925042106108da576108d384612074565b93506108e1565b50506108f4565b5050806108ed90612074565b9050610863565b509392505050565b60003361080981858561090f8383611491565b6109199190611e35565b611672565b6000336120021461094657604051630f22c43960e41b8152612002600482015260240161020e565b6097546001600160a01b03166000908152606560205260408120549061096b84610e11565b905081811161097a578061097c565b815b609754909150600090610998906001600160a01b031683611789565b6040519091506000906110029083908381818185875af1925050503d80600081146109df576040519150601f19603f3d011682016040523d82523d6000602084013e6109e4565b606091505b5050905080610a06576040516312171d8360e31b815260040160405180910390fd5b50925050505b919050565b60003361200214610a3957604051630f22c43960e41b8152612002600482015260240161020e565b81600003610a5a57604051639811e0c760e01b815260040160405180910390fd5b6001600160a01b038316600090815260656020526040902054821115610a9357604051631e9acf1760e31b815260040160405180910390fd5b610a9d8383611789565b905060006120026001600160a01b031663fc0c5ff16040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ae1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b059190611de4565b610b0f9042611e35565b6040805160608101825285815260208101859052908101829052909150600085610b38816117be565b60405160609290921b6bffffffffffffffffffffffff19166020830152603482015260540160408051601f1981840301815291815281516020928301206000818152609990935291205490915015610ba35760405163b19e911560e01b815260040160405180910390fd5b600081815260996020908152604080832085518155828601516001820155818601516002909101556001600160a01b0389168352609a9091529020610c1f90828154600160801b90819004600f0b6000818152600180860160205260409091209390935583546001600160801b03908116939091011602179055565b50505092915050565b60003361200214610c5057604051630f22c43960e41b8152612002600482015260240161020e565b34600003610c7157604051631f2a200560e01b815260040160405180910390fd5b610c7b82346117e6565b905080600003610a0c57604051639811e0c760e01b815260040160405180910390fd5b3361200214610cc457604051630f22c43960e41b8152612002600482015260240161020e565b346000612710610cde67ffffffffffffffff85168461208d565b610ce89190611e13565b90506000610cf682846120a4565b905060006120026001600160a01b0316631fa8882b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d5e9190611de4565b610d689042611e13565b6098546000828152609d6020908152604080832093909355609c905290812080549293508492909190610d9c908490611e35565b925050819055508160986000828254610db59190611e35565b9091555050609754610dd0906001600160a01b0316846117e6565b5060408051838152602081018590527ffb0e1482d62102ab9594f69d4c6d693749e3e2bf1c21af272f5456b2d5a4f6b5910160405180910390a15050505050565b6000609854600003610e36576040516307b76ce760e51b815260040160405180910390fd5b609854606754610e46908461208d565b6107419190611e13565b6000610e5b60675490565b600003610e7b57604051632fe8dae960e01b815260040160405180910390fd5b606754609854610e46908461208d565b60606069805461075690612040565b60003381610ea88286611491565b905083811015610f085760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161020e565b61082c8286868403611672565b60003361200214610f3d57604051630f22c43960e41b8152612002600482015260240161020e565b81600003610f5e57604051639811e0c760e01b815260040160405180910390fd5b6001600160a01b038316600090815260656020526040902054821115610f9757604051631e9acf1760e31b815260040160405180910390fd5b610fa18383611789565b6040519091506000906120029083908381818185875af1925050503d8060008114610fe8576040519150601f19603f3d011682016040523d82523d6000602084013e610fed565b606091505b505090508061100f576040516312171d8360e31b815260040160405180910390fd5b5092915050565b6000336108098185856116ff565b6001600160a01b0382166000908152609a6020526040812054600f81810b600160801b909204900b0360000361105c57506000610741565b81158061109057506001600160a01b0383166000908152609a6020526040902054600f81810b600160801b909204900b0382115b61109a57816110c4565b6001600160a01b0383166000908152609a6020526040902054600f81810b600160801b909204900b035b91506000805b838110156108f4576001600160a01b0385166000908152609a602052604081206110f49083611718565b600081815260996020908152604091829020825160608101845281548152600182015492810183905260029091015492810192909252919250906111389085611e35565b935050508061114690612074565b90506110ca565b6000336120021461117557604051630f22c43960e41b8152612002600482015260240161020e565b61117d61180f565b6001600160a01b0383166000908152609a6020526040902054600f81810b600160801b909204900b036000036111c65760405163ad41893760e01b815260040160405180910390fd5b8115806111fa57506001600160a01b0383166000908152609a6020526040902054600f81810b600160801b909204900b0382115b611204578161122e565b6001600160a01b0383166000908152609a6020526040902054600f81810b600160801b909204900b035b915060005b82156112e4576001600160a01b0384166000908152609a6020526040812061125a90611868565b6000818152609960209081526040918290208251606081018452815481526001820154928101929092526002015491810182905291925042101561129f5750506112e4565b6001600160a01b0386166000908152609a602052604090206112c0906118bc565b5060208101516112d09084611e35565b92506112db856120b7565b94505050611233565b80600003611305576040516303cd8e0960e21b815260040160405180910390fd5b60006120026001600160a01b031663e8f67c3b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611347573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061136b9190611de4565b90506000856001600160a01b03168284604051600060405180830381858888f193505050503d80600081146113bc576040519150601f19603f3d011682016040523d82523d6000602084013e6113c1565b606091505b50509050806113e3576040516312171d8360e31b815260040160405180910390fd5b5050600180559050610741565b6001600160a01b0381166000908152609b6020526040812054610741565b61143260405180606001604052806000815260200160008152602001600081525090565b6001600160a01b0383166000908152609a602052604081206114549084611718565b6000908152609960209081526040918290208251606081018452815481526001820154928101929092526002015491810191909152949350505050565b6001600160a01b03918216600090815260666020908152604080832093909416825291909152205490565b600054610100900460ff16158080156114dc5750600054600160ff909116105b806114f65750303b1580156114f6575060005460ff166001145b6115595760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161020e565b6000805460ff19166001179055801561157c576000805461ff0019166101001790555b33612002146115a257604051630f22c43960e41b8152612002600482015260240161020e565b600083836040516020016115b79291906120ce565b6040516020818303038152906040529050600084846040516020016115dd9291906120fe565b60405160208183030381529060405290506115f88282611941565b611600611986565b609780546001600160a01b0319166001600160a01b038816179055611624346119ad565b5050801561166c576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b604051632028747160e01b815260040160405180910390fd5b60006116978484611491565b9050600019811461166c57818110156116f25760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161020e565b61166c8484848403611672565b604051638cd22d1960e01b815260040160405180910390fd5b60008061173b61172784611b1d565b85546117369190600f0b61211c565b611b8b565b8454909150600160801b9004600f90810b9082900b1261176e57604051632d0483c560e21b815260040160405180910390fd5b600f0b60009081526001939093016020525050604090205490565b600061179482610e50565b90506117a08383611bef565b80609860008282546117b291906120a4565b90915550909392505050565b6001600160a01b0381166000908152609b602052604090208054600181018255905b50919050565b60006117f182610e11565b90506117fd8382611d23565b81609860008282546117b29190611e35565b6002600154036118615760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161020e565b6002600155565b60006118838254600f81810b600160801b909204900b131590565b156118a157604051631ed9509560e11b815260040160405180910390fd5b508054600f0b60009081526001909101602052604090205490565b60006118d78254600f81810b600160801b909204900b131590565b156118f557604051631ed9509560e11b815260040160405180910390fd5b508054600f0b6000818152600180840160205260408220805492905583546fffffffffffffffffffffffffffffffff191692016001600160801b03169190911790915590565b60018055565b600054610100900460ff166119685760405162461bcd60e51b815260040161020e90612144565b606861197483826121f3565b50606961198182826121f3565b505050565b600054610100900460ff1661193b5760405162461bcd60e51b815260040161020e90612144565b600054610100900460ff166119d45760405162461bcd60e51b815260040161020e90612144565b60006120026001600160a01b0316638a4d3fa86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3a9190611de4565b90508082111580611a5457506097546001600160a01b0316155b80611a60575060675415155b15611a7e57604051632163e6b960e21b815260040160405180910390fd5b60006120026001600160a01b0316634e6fd6c46040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ac0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ae491906122b3565b9050611af08183611d23565b6000611afc83856120a4565b609754909150611b15906001600160a01b031682611d23565b505050609855565b60006001600160ff1b03821115611b875760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b606482015260840161020e565b5090565b80600f81900b8114610a0c5760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20316044820152663238206269747360c81b606482015260840161020e565b6001600160a01b038216611c4f5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b606482015260840161020e565b6001600160a01b03821660009081526065602052604090205481811015611cc35760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b606482015260840161020e565b6001600160a01b03831660008181526065602090815260408083208686039055606780548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6001600160a01b038216611d795760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161020e565b8060676000828254611d8b9190611e35565b90915550506001600160a01b0382166000818152606560209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b600060208284031215611df657600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b600082611e3057634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561074157610741611dfd565b6001600160a01b0381168114611e5d57600080fd5b50565b600060208284031215611e7257600080fd5b8135611e7d81611e48565b9392505050565b600060208083528351808285015260005b81811015611eb157858101830151858201604001528201611e95565b506000604082860101526040601f19601f8301168501019250505092915050565b60008060408385031215611ee557600080fd5b8235611ef081611e48565b946020939093013593505050565b600080600060608486031215611f1357600080fd5b8335611f1e81611e48565b92506020840135611f2e81611e48565b929592945050506040919091013590565b600060208284031215611f5157600080fd5b5035919050565b600060208284031215611f6a57600080fd5b813567ffffffffffffffff81168114611e7d57600080fd5b60008060408385031215611f9557600080fd5b8235611fa081611e48565b91506020830135611fb081611e48565b809150509250929050565b600080600060408486031215611fd057600080fd5b8335611fdb81611e48565b9250602084013567ffffffffffffffff80821115611ff857600080fd5b818601915086601f83011261200c57600080fd5b81358181111561201b57600080fd5b87602082850101111561202d57600080fd5b6020830194508093505050509250925092565b600181811c9082168061205457607f821691505b6020821081036117e057634e487b7160e01b600052602260045260246000fd5b60006001820161208657612086611dfd565b5060010190565b808202811582820484141761074157610741611dfd565b8181038181111561074157610741611dfd565b6000816120c6576120c6611dfd565b506000190190565b65029ba30b5b2960d51b815281836006830137660810dc99591a5d60ca1b91016006810191909152600d01919050565b611cdd60f21b81528183600283013760009101600201908152919050565b808201828112600083128015821682158216171561213c5761213c611dfd565b505092915050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b634e487b7160e01b600052604160045260246000fd5b601f82111561198157600081815260208120601f850160051c810160208610156121cc5750805b601f850160051c820191505b818110156121eb578281556001016121d8565b505050505050565b815167ffffffffffffffff81111561220d5761220d61218f565b6122218161221b8454612040565b846121a5565b602080601f831160018114612256576000841561223e5750858301515b600019600386901b1c1916600185901b1785556121eb565b600085815260208120601f198616915b8281101561228557888601518255948401946001909101908401612266565b50858210156122a35787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156122c557600080fd5b8151611e7d81611e4856fea164736f6c6343000811000a", - }, - { - ContractAddr: GovernorContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/9d09d0a3d6332460a810188261ec8195e05aa218", - Code: "6080604052600436106103f35760003560e01c80637b3c71d311610208578063c28bc2fa11610118578063e23a9a52116100ab578063f1fad1041161007a578063f1fad10414610e46578063f23a6e6114610e5b578063f8ce560a14610e87578063fc0c546a14610ea7578063fe0d94c114610ec857600080fd5b8063e23a9a5214610d1b578063ea0217cf14610de6578063eb9019d414610e06578063ece40cc114610e2657600080fd5b8063da95691a116100e7578063da95691a14610c61578063dd4e2ba514610c81578063ddf0b00914610cc7578063deaaa7cc14610ce757600080fd5b8063c28bc2fa14610bef578063c59057e414610c02578063d07f91e914610c22578063d33219b414610c4257600080fd5b8063a7713a701161019b578063b187bd261161016a578063b187bd2614610b55578063b58131b014610b73578063bc197c8114610b88578063c01f9e3714610bb4578063c170ec0b14610bd457600080fd5b8063a7713a7014610ae0578063a890c91014610af5578063ab58fb8e14610b15578063ac43175114610b3557600080fd5b806384b0196e116101d757806384b0196e14610a5857806391ddadf414610a8057806397c3d33414610aac5780639a802a6d14610ac057600080fd5b80637b3c71d3146109ee5780637d5e81e214610a0e5780638129fc1c14610a2e5780638456cb5914610a4357600080fd5b80633932abb1116103035780634a49ac4c1161029657806354fd4d501161026557806354fd4d5014610944578063567813881461096e5780635f398a141461098e57806360c4247f146109ae57806370b0f660146109ce57600080fd5b80634a49ac4c146108b75780634bf5d7e9146108d75780634bf6c882146108ec578063533ddd141461091357600080fd5b8063417c73a7116102d2578063417c73a7146107fc578063438596321461081c578063452115d6146108675780634838d1651461088757600080fd5b80633932abb1146107795780633bccf4fd1461078f5780633e4f49e6146107af57806340e58ee5146107dc57600080fd5b8063150b7a02116103865780632656227d116103555780632656227d146106a25780632d63f693146106b55780632fe3e261146106ec578063328dd9821461072057806332b8113e1461075057600080fd5b8063150b7a02146105fb578063160cbed71461063f57806317977c611461065f57806324bc1a641461068d57600080fd5b8063046f7da2116103c2578063046f7da21461054e57806306f3f9e61461056357806306fdde0314610583578063143489d0146105a557600080fd5b8063013cf08b1461046357806301ffc9a7146104de57806302a251a31461050e578063034201811461052e57600080fd5b3661045e5730610401610edb565b6001600160a01b03161461045c5760405162461bcd60e51b815260206004820152601f60248201527f476f7665726e6f723a206d7573742073656e6420746f206578656375746f720060448201526064015b60405180910390fd5b005b600080fd5b34801561046f57600080fd5b5061048361047e366004615c8a565b610ef5565b604080519a8b526001600160a01b0390991660208b0152978901969096526060880194909452608087019290925260a086015260c085015260e084015215156101008301521515610120820152610140015b60405180910390f35b3480156104ea57600080fd5b506104fe6104f9366004615ca3565b610fb0565b60405190151581526020016104d5565b34801561051a57600080fd5b50610195545b6040519081526020016104d5565b34801561053a57600080fd5b50610520610549366004615de9565b610fc1565b34801561055a57600080fd5b5061045c6110b9565b34801561056f57600080fd5b5061045c61057e366004615c8a565b611149565b34801561058f57600080fd5b506105986111d4565b6040516104d59190615edf565b3480156105b157600080fd5b506105e36105c0366004615c8a565b60009081526101636020526040902054600160401b90046001600160a01b031690565b6040516001600160a01b0390911681526020016104d5565b34801561060757600080fd5b50610626610616366004615f07565b630a85bd0160e11b949350505050565b6040516001600160e01b031990911681526020016104d5565b34801561064b57600080fd5b5061052061065a3660046160de565b611267565b34801561066b57600080fd5b5061052061067a36600461616d565b6102c36020526000908152604090205481565b34801561069957600080fd5b50610520611352565b6105206106b03660046160de565b611378565b3480156106c157600080fd5b506105206106d0366004615c8a565b600090815261016360205260409020546001600160401b031690565b3480156106f857600080fd5b506105207fb3b3f3b703cd84ce352197dcff232b1b5d3cfb2025ce47cf04742d0651f1af8881565b34801561072c57600080fd5b5061074061073b366004615c8a565b61146b565b6040516104d59493929190616253565b34801561075c57600080fd5b5061028f546040516001600160401b0390911681526020016104d5565b34801561078557600080fd5b5061019454610520565b34801561079b57600080fd5b506105206107aa3660046162a0565b6116fd565b3480156107bb57600080fd5b506107cf6107ca366004615c8a565b611773565b6040516104d59190616304565b3480156107e857600080fd5b5061045c6107f7366004615c8a565b61177e565b34801561080857600080fd5b5061045c61081736600461616d565b6117a9565b34801561082857600080fd5b506104fe61083736600461632c565b60008281526101c6602090815260408083206001600160a01b038516845260080190915290205460ff1692915050565b34801561087357600080fd5b506105206108823660046160de565b61182a565b34801561089357600080fd5b506104fe6108a236600461616d565b60016020526000908152604090205460ff1681565b3480156108c357600080fd5b5061045c6108d236600461616d565b611838565b3480156108e357600080fd5b506105986118b3565b3480156108f857600080fd5b50610901600881565b60405160ff90911681526020016104d5565b34801561091f57600080fd5b506104fe61092e36600461616d565b6102c16020526000908152604090205460ff1681565b34801561095057600080fd5b506040805180820190915260018152603160f81b6020820152610598565b34801561097a57600080fd5b5061052061098936600461635c565b611960565b34801561099a57600080fd5b506105206109a9366004616388565b611989565b3480156109ba57600080fd5b506105206109c9366004615c8a565b6119d3565b3480156109da57600080fd5b5061045c6109e9366004615c8a565b611a88565b3480156109fa57600080fd5b50610520610a0936600461640b565b611b10565b348015610a1a57600080fd5b50610520610a29366004616464565b611b62565b348015610a3a57600080fd5b5061045c611c7d565b348015610a4f57600080fd5b5061045c611eae565b348015610a6457600080fd5b50610a6d611f44565b6040516104d59796959493929190616504565b348015610a8c57600080fd5b50610a95611fe2565b60405165ffffffffffff90911681526020016104d5565b348015610ab857600080fd5b506064610520565b348015610acc57600080fd5b50610520610adb366004616566565b612056565b348015610aec57600080fd5b5061052061206d565b348015610b0157600080fd5b5061045c610b1036600461616d565b61209a565b348015610b2157600080fd5b50610520610b30366004615c8a565b612122565b348015610b4157600080fd5b5061045c610b503660046165be565b6121be565b348015610b6157600080fd5b5060005462010000900460ff166104fe565b348015610b7f57600080fd5b50610520612903565b348015610b9457600080fd5b50610626610ba336600461661d565b63bc197c8160e01b95945050505050565b348015610bc057600080fd5b50610520610bcf366004615c8a565b61290f565b348015610be057600080fd5b506102c2546104fe9060ff1681565b61045c610bfd3660046166b0565b61291a565b348015610c0e57600080fd5b50610520610c1d3660046160de565b612a2a565b348015610c2e57600080fd5b5061045c610c3d3660046166f3565b612a64565b348015610c4e57600080fd5b5061022b546001600160a01b03166105e3565b348015610c6d57600080fd5b50610520610c7c36600461671c565b612aec565b348015610c8d57600080fd5b5060408051808201909152601a81527f737570706f72743d627261766f2671756f72756d3d627261766f0000000000006020820152610598565b348015610cd357600080fd5b5061045c610ce2366004615c8a565b612b73565b348015610cf357600080fd5b506105207f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f81565b348015610d2757600080fd5b50610db6610d3636600461632c565b60408051606081018252600080825260208201819052918101919091525060009182526101c6602090815260408084206001600160a01b0393909316845260089092018152918190208151606081018352905460ff8082161515835261010082041693820193909352620100009092046001600160601b03169082015290565b6040805182511515815260208084015160ff1690820152918101516001600160601b0316908201526060016104d5565b348015610df257600080fd5b5061045c610e01366004615c8a565b612b96565b348015610e1257600080fd5b50610520610e213660046167bd565b612c1e565b348015610e3257600080fd5b5061045c610e41366004615c8a565b612c3f565b348015610e5257600080fd5b50610901601181565b348015610e6757600080fd5b50610626610e763660046167e9565b63f23a6e6160e01b95945050505050565b348015610e9357600080fd5b50610520610ea2366004615c8a565b612cc7565b348015610eb357600080fd5b506101f8546105e3906001600160a01b031681565b61045c610ed6366004615c8a565b612d56565b6000610ef061022b546001600160a01b031690565b905090565b8060008080808080808080610f098a612122565b60008c815261016360205260409020549098506001600160401b03169650610f308b61290f565b60008c81526101c66020526040812080546005820154600683015460078401546001600160a01b039093169e50949a509850929650919450610f718d611773565b90506002816007811115610f8757610f876162ee565b1493506007816007811115610f9e57610f9e6162ee565b14925050509193959799509193959799565b6000610fbb82612d79565b92915050565b60008061106561105d7fb3b3f3b703cd84ce352197dcff232b1b5d3cfb2025ce47cf04742d0651f1af888c8c8c8c604051610ffd929190616851565b60405180910390208b80519060200120604051602001611042959493929190948552602085019390935260ff9190911660408401526060830152608082015260a00190565b60405160208183030381529060405280519060200120612d9e565b868686612dcb565b90506110ab8a828b8b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508d9250612de9915050565b9a9950505050505050505050565b600054630100000090046001600160a01b031633146110eb576040516306fbb1e360e01b815260040160405180910390fd5b60005462010000900460ff1661111457604051636cd6020160e01b815260040160405180910390fd5b6000805462ff0000191681556040517f62451d457bc659158be6e6247f56ec1df424a5c7597f71c20c2bc44e0965c8f99190a1565b611151610edb565b6001600160a01b0316336001600160a01b0316146111815760405162461bcd60e51b815260040161045390616861565b3061118a610edb565b6001600160a01b0316146111c857600080366040516111aa929190616851565b604051809103902090505b806111c1610164612e52565b036111b557505b6111d181612ed1565b50565b606061016280546111e490616898565b80601f016020809104026020016040519081016040528092919081815260200182805461121090616898565b801561125d5780601f106112325761010080835404028352916020019161125d565b820191906000526020600020905b81548152906001019060200180831161124057829003601f168201915b5050505050905090565b6000805462010000900460ff161561129257604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff16156112c35760405163b1d02c3d60e01b815260040160405180910390fd5b60005b855181101561133c576102c160008783815181106112e6576112e66168d2565b6020908102919091018101516001600160a01b031682528101919091526040016000205460ff1661132a57604051630b094f2760e31b815260040160405180910390fd5b80611334816168fe565b9150506112c6565b5061134985858585613042565b95945050505050565b6000610ef06001611361611fe2565b61136b9190616917565b65ffffffffffff16612cc7565b60008061138786868686612a2a565b9050600061139482611773565b905060048160078111156113aa576113aa6162ee565b14806113c7575060058160078111156113c5576113c56162ee565b145b6113e35760405162461bcd60e51b81526004016104539061693d565b6000828152610163602052604090819020600201805460ff19166001179055517f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f906114329084815260200190565b60405180910390a16114478288888888613247565b61145482888888886132e8565b61146182888888886133ca565b5095945050505050565b60608060608060006101c66000878152602001908152602001600020905080600101816002018260030183600401838054806020026020016040519081016040528092919081815260200182805480156114ee57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116114d0575b505050505093508280548060200260200160405190810160405280929190818152602001828054801561154057602002820191906000526020600020905b81548152602001906001019080831161152c575b5050505050925081805480602002602001604051908101604052809291908181526020016000905b8282101561161457838290600052602060002001805461158790616898565b80601f01602080910402602001604051908101604052809291908181526020018280546115b390616898565b80156116005780601f106115d557610100808354040283529160200191611600565b820191906000526020600020905b8154815290600101906020018083116115e357829003601f168201915b505050505081526020019060010190611568565b50505050915080805480602002602001604051908101604052809291908181526020016000905b828210156116e757838290600052602060002001805461165a90616898565b80601f016020809104026020016040519081016040528092919081815260200182805461168690616898565b80156116d35780601f106116a8576101008083540402835291602001916116d3565b820191906000526020600020905b8154815290600101906020018083116116b657829003601f168201915b50505050508152602001906001019061163b565b5050505090509450945094509450509193509193565b604080517f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f602082015290810186905260ff85166060820152600090819061174b9061105d90608001611042565b905061176887828860405180602001604052806000815250613405565b979650505050505050565b6000610fbb82613428565b60008060008061178d85613575565b93509350935093506117a18484848461182a565b505050505050565b600054630100000090046001600160a01b031633146117db576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b0381166000818152600160208190526040808320805460ff1916909217909155517f7fd26be6fc92aff63f1f4409b2b2ddeb272a888031d7f55ec830485ec61941869190a250565b600061134985858585613806565b600054630100000090046001600160a01b0316331461186a576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b038116600081815260016020526040808220805460ff19169055517fe0db3499b7fdc3da4cddff5f45d694549c19835e7f719fb5606d3ad1a5de40119190a250565b6101f85460408051634bf5d7e960e01b815290516060926001600160a01b031691634bf5d7e99160048083019260009291908290030181865afa92505050801561191f57506040513d6000823e601f3d908101601f1916820160405261191c919081019061697e565b60015b61195b575060408051808201909152601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000602082015290565b919050565b60008033905061198184828560405180602001604052806000815250613405565b949350505050565b60008033905061176887828888888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a9250612de9915050565b61025e546000908082036119ec57505061025d54919050565b600061025e6119fc6001846169eb565b81548110611a0c57611a0c6168d2565b60009182526020918290206040805180820190915291015463ffffffff8116808352600160201b9091046001600160e01b03169282019290925291508410611a6257602001516001600160e01b03169392505050565b611a77611a6e856138d1565b61025e9061393a565b6001600160e01b0316949350505050565b611a90610edb565b6001600160a01b0316336001600160a01b031614611ac05760405162461bcd60e51b815260040161045390616861565b30611ac9610edb565b6001600160a01b031614611b075760008036604051611ae9929190616851565b604051809103902090505b80611b00610164612e52565b03611af457505b6111d1816139ed565b600080339050611b5886828787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061340592505050565b9695505050505050565b6000805462010000900460ff1615611b8d57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615611bbe5760405163b1d02c3d60e01b815260040160405180910390fd5b611bc6613a30565b3360009081526102c360205260409020548015611c3b576000611be882611773565b90506001816007811115611bfe57611bfe6162ee565b1480611c1b57506000816007811115611c1957611c196162ee565b145b15611c395760405163867f3ee560e01b815260040160405180910390fd5b505b825160208401206000611c5088888885612a2a565b3360009081526102c3602052604090208190559050611c7188888888613adb565b98975050505050505050565b600054610100900460ff1615808015611c9d5750600054600160ff909116105b80611cb75750303b158015611cb7575060005460ff166001145b611d1a5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610453565b6000805460ff191660011790558015611d3d576000805461ff0019166101001790555b334114611d5d5760405163022d8c9560e31b815260040160405180910390fd5b3a15611d7c576040516383f1b1d360e01b815260040160405180910390fd5b611da86040518060400160405280600b81526020016a2129a1a3b7bb32b93737b960a91b815250613b43565b611dd4611db760036000616a14565b611dc5600362015180616a14565b68056bc75e2d63100000613b9a565b611ddc613bd1565b611de7612005613bf8565b611df2612006613c28565b611dfc600a613c58565b611e11611e0c6003610e10616a14565b613c88565b6110076000526102c16020527f2f832952f0ef896b8c8edd6d16a2e4f2591a90375e33021e3b9ff197f3793fc0805460ff19166001179055611e667330151da466ec8ab345bef3d6983023e050fb0673613cb8565b80156111d1576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b600054630100000090046001600160a01b03163314611ee0576040516306fbb1e360e01b815260040160405180910390fd5b60005462010000900460ff1615611f0a57604051631785c68160e01b815260040160405180910390fd5b6000805462ff00001916620100001781556040517f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e7529190a1565b6000606080600080600060606098546000801b148015611f645750609954155b611fa85760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606401610453565b611fb0613d0b565b611fb8613d1a565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b6101f854604080516324776b7d60e21b815290516000926001600160a01b0316916391ddadf49160048083019260209291908290030181865afa925050508015612049575060408051601f3d908101601f1916820190925261204691810190616a36565b60015b61195b57610ef043613d29565b6000612063848484613d90565b90505b9392505050565b61025e54600090156120925761208461025e613e07565b6001600160e01b0316905090565b5061025d5490565b6120a2610edb565b6001600160a01b0316336001600160a01b0316146120d25760405162461bcd60e51b815260040161045390616861565b306120db610edb565b6001600160a01b03161461211957600080366040516120fb929190616851565b604051809103902090505b80612112610164612e52565b0361210657505b6111d181613e37565b61022b54600082815261022c602052604080822054905163d45c443560e01b81526004810191909152909182916001600160a01b039091169063d45c443590602401602060405180830381865afa158015612181573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121a59190616a5e565b9050806001146121b55780612066565b60009392505050565b33611007146121e457604051630f22c43960e41b81526110076004820152602401610453565b61224a6040518060400160405280600b81526020016a766f74696e6744656c617960a81b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613ea29050565b156122ff57602081146122785783838383604051630a5a604160e01b81526004016104539493929190616aa0565b604080516020601f84018190048102820181019092528281526000916122b9918585808385018382808284376000920191909152509293925050613efb9050565b90508015806122ca57506201518081115b156122f05784848484604051630a5a604160e01b81526004016104539493929190616aa0565b6122f9816139ed565b506128c0565b6123666040518060400160405280600c81526020016b1d9bdd1a5b99d4195c9a5bd960a21b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613ea29050565b1561241557602081146123945783838383604051630a5a604160e01b81526004016104539493929190616aa0565b604080516020601f84018190048102820181019092528281526000916123d5918585808385018382808284376000920191909152509293925050613efb9050565b90508015806123e6575062278d0081115b1561240c5784848484604051630a5a604160e01b81526004016104539493929190616aa0565b6122f981613f00565b612481604051806040016040528060118152602001701c1c9bdc1bdcd85b151a1c995cda1bdb19607a1b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613ea29050565b1561253757602081146124af5783838383604051630a5a604160e01b81526004016104539493929190616aa0565b604080516020601f84018190048102820181019092528281526000916124f0918585808385018382808284376000920191909152509293925050613efb9050565b9050801580612508575069021e19e0c9bab240000081115b1561252e5784848484604051630a5a604160e01b81526004016104539493929190616aa0565b6122f981613fa3565b6125a16040518060400160405280600f81526020016e38bab7b93ab6a73ab6b2b930ba37b960891b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613ea29050565b1561265057602081146125cf5783838383604051630a5a604160e01b81526004016104539493929190616aa0565b604080516020601f8401819004810282018101909252828152600091612610918585808385018382808284376000920191909152509293925050613efb9050565b905060058110806126215750601481115b156126475784848484604051630a5a604160e01b81526004016104539493929190616aa0565b6122f981612ed1565b6126bf604051806040016040528060148152602001736d696e506572696f64416674657251756f72756d60601b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613ea29050565b1561278557600881146126ed5783838383604051630a5a604160e01b81526004016104539493929190616aa0565b6000612733600884848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613efb9050565b90506001600160401b038116158061275657506202a300816001600160401b0316115b1561277c5784848484604051630a5a604160e01b81526004016104539493929190616aa0565b6122f981613fe6565b6127f16040518060400160405280601181526020017033b7bb32b93737b9283937ba32b1ba37b960791b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613ea29050565b1561289f576014811461281f5783838383604051630a5a604160e01b81526004016104539493929190616aa0565b6000612865601484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613efb9050565b90506001600160a01b0381166128965784848484604051630a5a604160e01b81526004016104539493929190616aa0565b6122f981614052565b838383836040516325ee20d560e21b81526004016104539493929190616aa0565b7ff1ce9b2cbf50eeb05769a29e2543fd350cab46894a7dd9978a12d534bb20e633848484846040516128f59493929190616aa0565b60405180910390a150505050565b6000610ef06101965490565b6000610fbb826140be565b612922610edb565b6001600160a01b0316336001600160a01b0316146129525760405162461bcd60e51b815260040161045390616861565b3061295b610edb565b6001600160a01b031614612999576000803660405161297b929190616851565b604051809103902090505b80612992610164612e52565b0361298657505b600080856001600160a01b03168585856040516129b7929190616851565b60006040518083038185875af1925050503d80600081146129f4576040519150601f19603f3d011682016040523d82523d6000602084013e6129f9565b606091505b5091509150612a218282604051806060016040528060288152602001616efd602891396140fc565b50505050505050565b600084848484604051602001612a439493929190616ac7565b60408051601f19818403018152919052805160209091012095945050505050565b612a6c610edb565b6001600160a01b0316336001600160a01b031614612a9c5760405162461bcd60e51b815260040161045390616861565b30612aa5610edb565b6001600160a01b031614612ae35760008036604051612ac5929190616851565b604051809103902090505b80612adc610164612e52565b03612ad057505b6111d181613fe6565b60008251845114612b505760405162461bcd60e51b815260206004820152602860248201527f476f7665726e6f72427261766f3a20696e76616c6964207369676e61747572656044820152670e640d8cadccee8d60c31b6064820152608401610453565b612b5e338787878787614115565b611b588686612b6d87876141d3565b85611b62565b600080600080612b8285613575565b93509350935093506117a184848484611267565b612b9e610edb565b6001600160a01b0316336001600160a01b031614612bce5760405162461bcd60e51b815260040161045390616861565b30612bd7610edb565b6001600160a01b031614612c155760008036604051612bf7929190616851565b604051809103902090505b80612c0e610164612e52565b03612c0257505b6111d181613f00565b60006120668383612c3a60408051602081019091526000815290565b613d90565b612c47610edb565b6001600160a01b0316336001600160a01b031614612c775760405162461bcd60e51b815260040161045390616861565b30612c80610edb565b6001600160a01b031614612cbe5760008036604051612ca0929190616851565b604051809103902090505b80612cb7610164612e52565b03612cab57505b6111d181613fa3565b60006064612cd4836119d3565b6101f854604051632394e7a360e21b8152600481018690526001600160a01b0390911690638e539e8c90602401602060405180830381865afa158015612d1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d429190616a5e565b612d4c9190616b12565b610fbb9190616a14565b600080600080612d6585613575565b93509350935093506117a184848484611378565b60006001600160e01b03198216636e665ced60e01b1480610fbb5750610fbb82614305565b6000610fbb612dab6143a1565b8360405161190160f01b8152600281019290925260228201526042902090565b6000806000612ddc878787876143ab565b915091506114618161446f565b6000805462010000900460ff1615612e1457604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615612e455760405163b1d02c3d60e01b815260040160405180910390fd5b611b5886868686866145b9565b6000612e6d8254600f81810b600160801b909204900b131590565b15612e8b57604051631ed9509560e11b815260040160405180910390fd5b508054600f0b6000818152600180840160205260408220805492905583546fffffffffffffffffffffffffffffffff191692016001600160801b03169190911790915590565b6064811115612f545760405162461bcd60e51b815260206004820152604360248201527f476f7665726e6f72566f74657351756f72756d4672616374696f6e3a2071756f60448201527f72756d4e756d657261746f72206f7665722071756f72756d44656e6f6d696e616064820152623a37b960e91b608482015260a401610453565b6000612f5e61206d565b90508015801590612f70575061025e54155b15612fd557604080518082019091526000815261025e9060208101612f94846146bc565b6001600160e01b039081169091528254600181018455600093845260209384902083519490930151909116600160201b0263ffffffff909316929092179101555b613003612ff0612fe3611fe2565b65ffffffffffff166138d1565b612ff9846146bc565b61025e9190614725565b505060408051828152602081018490527f0553476bf02ef2726e8ce5ced78d63e26e602e4a2257b1f559418e24b4633997910160405180910390a15050565b60008061305186868686612a2a565b9050600461305e82611773565b600781111561306f5761306f6162ee565b1461308c5760405162461bcd60e51b81526004016104539061693d565b61022b546040805163793d064960e11b815290516000926001600160a01b03169163f27a0c929160048083019260209291908290030181865afa1580156130d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130fb9190616a5e565b61022b5460405163b1c5f42760e01b81529192506001600160a01b03169063b1c5f42790613136908a908a908a906000908b90600401616b29565b602060405180830381865afa158015613153573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131779190616a5e565b600083815261022c60205260408082209290925561022b5491516308f2a0bb60e41b81526001600160a01b0390921691638f2a0bb0916131c4918b918b918b91908b908990600401616b77565b600060405180830381600087803b1580156131de57600080fd5b505af11580156131f2573d6000803e3d6000fd5b505050507f9a2e42fd6722813d69113e7d0079d3d940171428df7373df9c7f7617cfda28928282426132249190616bcf565b604080519283526020830191909152015b60405180910390a15095945050505050565b30613250610edb565b6001600160a01b0316146132e15760005b84518110156117a157306001600160a01b0316858281518110613286576132866168d2565b60200260200101516001600160a01b0316036132d1576132d18382815181106132b1576132b16168d2565b60200260200101518051906020012061016461474090919063ffffffff16565b6132da816168fe565b9050613261565b5050505050565b60005462010000900460ff161561331257604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff16156133435760405163b1d02c3d60e01b815260040160405180910390fd5b60005b84518110156133bc576102c16000868381518110613366576133666168d2565b6020908102919091018101516001600160a01b031682528101919091526040016000205460ff166133aa57604051630b094f2760e31b815260040160405180910390fd5b806133b4816168fe565b915050613346565b506132e1858585858561477c565b306133d3610edb565b6001600160a01b0316146132e15761016454600f81810b600160801b909204900b13156132e1576000610164556132e1565b60006113498585858561342360408051602081019091526000815290565b612de9565b600080613434836147f1565b9050600481600781111561344a5761344a6162ee565b146134555792915050565b600083815261022c602052604090205480613471575092915050565b61022b54604051632ab0f52960e01b8152600481018390526001600160a01b0390911690632ab0f52990602401602060405180830381865afa1580156134bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134df9190616be2565b156134ee575060079392505050565b61022b54604051632c258a9f60e11b8152600481018390526001600160a01b039091169063584b153e90602401602060405180830381865afa158015613538573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061355c9190616be2565b1561356b575060059392505050565b5060029392505050565b60608060606000806101c660008781526020019081526020016000209050806001018160020161374783600301805480602002602001604051908101604052809291908181526020016000905b8282101561366e5783829060005260206000200180546135e190616898565b80601f016020809104026020016040519081016040528092919081815260200182805461360d90616898565b801561365a5780601f1061362f5761010080835404028352916020019161365a565b820191906000526020600020905b81548152906001019060200180831161363d57829003601f168201915b5050505050815260200190600101906135c2565b50505060048601805460408051602080840282018101909252828152935060009084015b8282101561373e5783829060005260206000200180546136b190616898565b80601f01602080910402602001604051908101604052809291908181526020018280546136dd90616898565b801561372a5780601f106136ff5761010080835404028352916020019161372a565b820191906000526020600020905b81548152906001019060200180831161370d57829003601f168201915b505050505081526020019060010190613692565b505050506141d3565b600984015483546040805160208084028201810190925282815291869183018282801561379d57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161377f575b50505050509350828054806020026020016040519081016040528092919081815260200182805480156137ef57602002820191906000526020600020905b8154815260200190600101908083116137db575b505050505092509450945094509450509193509193565b60008061381586868686612a2a565b60008181526101c660205260409020549091506001600160a01b0316338114806138695750613842612903565b613867826001613850611fe2565b61385a9190616917565b65ffffffffffff16612c1e565b105b6138c55760405162461bcd60e51b815260206004820152602760248201527f476f7665726e6f72427261766f3a2070726f706f7365722061626f76652074686044820152661c995cda1bdb1960ca1b6064820152608401610453565b61176887878787614929565b600063ffffffff8211156139365760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b6064820152608401610453565b5090565b81546000908181600581111561399757600061395584614937565b61395f90856169eb565b60008881526020902090915081015463ffffffff908116908716101561398757809150613995565b613992816001616bcf565b92505b505b60006139a587878585614a1f565b905080156139e0576139ca876139bc6001846169eb565b600091825260209091200190565b54600160201b90046001600160e01b0316611768565b6000979650505050505050565b6101945460408051918252602082018390527fc565b045403dc03c2eea82b81a0465edad9e2e7fc4d97e11421c209da93d7a93910160405180910390a161019455565b6102c25460ff16613ad9576a084595161401484a0000006120056001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613a87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613aab9190616a5e565b1015613aca576040516311b6707f60e01b815260040160405180910390fd5b6102c2805460ff191660011790555b565b6000613b3733868686516001600160401b03811115613afc57613afc615d26565b604051908082528060200260200182016040528015613b2f57816020015b6060815260200190600190039081613b1a5790505b508787614115565b61134985858585614a75565b600054610100900460ff16613b6a5760405162461bcd60e51b815260040161045390616c04565b613b9181613b8c6040805180820190915260018152603160f81b602082015290565b614e54565b6111d181614ea3565b600054610100900460ff16613bc15760405162461bcd60e51b815260040161045390616c04565b613bcc838383614edb565b505050565b600054610100900460ff16613ad95760405162461bcd60e51b815260040161045390616c04565b600054610100900460ff16613c1f5760405162461bcd60e51b815260040161045390616c04565b6111d181614f1d565b600054610100900460ff16613c4f5760405162461bcd60e51b815260040161045390616c04565b6111d181614f67565b600054610100900460ff16613c7f5760405162461bcd60e51b815260040161045390616c04565b6111d181614f8e565b600054610100900460ff16613caf5760405162461bcd60e51b815260040161045390616c04565b6111d181614fb5565b600054610100900460ff16613cdf5760405162461bcd60e51b815260040161045390616c04565b600080546001600160a01b039092166301000000026301000000600160b81b0319909216919091179055565b6060609a80546111e490616898565b6060609b80546111e490616898565b600065ffffffffffff8211156139365760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203460448201526538206269747360d01b6064820152608401610453565b6101f854604051630748d63560e31b81526001600160a01b038581166004830152602482018590526000921690633a46b1a890604401602060405180830381865afa158015613de3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120639190616a5e565b805460009080156121b557613e21836139bc6001846169eb565b54600160201b90046001600160e01b0316612066565b61022b54604080516001600160a01b03928316815291831660208301527f08f74ea46ef7894f65eabfb5e6e695de773a000b47c529ab559178069b226401910160405180910390a161022b80546001600160a01b0319166001600160a01b0392909216919091179055565b600081604051602001613eb59190616c4f565b6040516020818303038152906040528051906020012083604051602001613edc9190616c4f565b6040516020818303038152906040528051906020012014905092915050565b015190565b60008111613f605760405162461bcd60e51b815260206004820152602760248201527f476f7665726e6f7253657474696e67733a20766f74696e6720706572696f6420604482015266746f6f206c6f7760c81b6064820152608401610453565b6101955460408051918252602082018390527f7e3f7f0708a84de9203036abaa450dccc85ad5ff52f78c170f3edb55cf5e8828910160405180910390a161019555565b6101965460408051918252602082018390527fccb45da8d5717e6c4544694297c4ba5cf151d455c9bb0ed4fc7a38411bc05461910160405180910390a161019655565b61028f54604080516001600160401b03928316815291831660208301527f7ca4ac117ed3cdce75c1161d8207c440389b1a15d69d096831664657c07dafc2910160405180910390a161028f805467ffffffffffffffff19166001600160401b0392909216919091179055565b600080546040516001600160a01b0380851693630100000090930416917f44fc1b38a4abaa91ebd1b628a5b259a698f86238c8217d68f516e87769c60c0b91a3600080546001600160a01b039092166301000000026301000000600160b81b0319909216919091179055565b60008181526101636020526040812060010154610fbb906001600160401b0316600084815261029060205260409020546001600160401b0316614fdc565b6060831561410b575081612066565b6120668383614ff2565b805160208201206000614133878761412d88886141d3565b85612a2a565b60008181526101c6602052604090206009810154919250906141c85780546001600160a01b0319166001600160a01b038a16178155875161417d90600183019060208b0190615ac1565b50865161419390600283019060208a0190615b22565b5085516141a99060038301906020890190615b5d565b5084516141bf9060048301906020880190615baf565b50600981018390555b505050505050505050565b6060600082516001600160401b038111156141f0576141f0615d26565b60405190808252806020026020018201604052801561422357816020015b606081526020019060019003908161420e5790505b50905060005b81518110156142fd57848181518110614244576142446168d2565b6020026020010151516000146142b457848181518110614266576142666168d2565b602002602001015180519060200120848281518110614287576142876168d2565b60200260200101516040516020016142a0929190616c6b565b6040516020818303038152906040526142cf565b8381815181106142c6576142c66168d2565b60200260200101515b8282815181106142e1576142e16168d2565b6020026020010181905250806142f6906168fe565b9050614229565b509392505050565b600063288ace0360e11b6318df743f60e31b63bf26d89760e01b6379dd796f60e01b6001600160e01b0319861682148061434b57506001600160e01b0319868116908216145b8061436257506001600160e01b0319868116908516145b8061437d57506001600160e01b03198616630271189760e51b145b80611b5857506301ffc9a760e01b6001600160e01b03198716149695505050505050565b6000610ef061501c565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156143e25750600090506003614466565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614436573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661445f57600060019250925050614466565b9150600090505b94509492505050565b6000816004811115614483576144836162ee565b0361448b5750565b600181600481111561449f5761449f6162ee565b036144ec5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610453565b6002816004811115614500576145006162ee565b0361454d5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610453565b6003816004811115614561576145616162ee565b036111d15760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610453565b6000806145c98787878787615090565b600088815261029060205260409020549091506001600160401b03161580156145f657506145f6876151e6565b15611b5857600061461061028f546001600160401b031690565b614618611fe2565b65ffffffffffff1661462a9190616c9c565b90506146358861290f565b816001600160401b03161115614684576040516001600160401b038216815288907f541f725fb9f7c98a30cc9c0ff32fbb14358cd7159c847a3aa20a2bdc442ba5119060200160405180910390a25b600088815261029060205260409020805467ffffffffffffffff19166001600160401b03929092169190911790559695505050505050565b60006001600160e01b038211156139365760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b6064820152608401610453565b600080614733858585615226565b915091505b935093915050565b8154600160801b90819004600f0b6000818152600180860160205260409091209390935583546001600160801b03908116939091011602179055565b61022b5460405163e38335e560e01b81526001600160a01b039091169063e38335e59034906147b8908890889088906000908990600401616b29565b6000604051808303818588803b1580156147d157600080fd5b505af11580156147e5573d6000803e3d6000fd5b50505050505050505050565b600081815261016360205260408120600281015460ff16156148165750600792915050565b6002810154610100900460ff16156148315750600292915050565b600083815261016360205260408120546001600160401b03169081900361489a5760405162461bcd60e51b815260206004820152601d60248201527f476f7665726e6f723a20756e6b6e6f776e2070726f706f73616c2069640000006044820152606401610453565b60006148a4611fe2565b65ffffffffffff1690508082106148c057506000949350505050565b60006148cb8661290f565b90508181106148e05750600195945050505050565b6148e9866151e6565b801561490c575060008681526101c6602052604090206006810154600590910154115b1561491d5750600495945050505050565b50600395945050505050565b6000611349858585856153c5565b60008160000361494957506000919050565b600060016149568461547b565b901c6001901b9050600181848161496f5761496f6169fe565b048201901c90506001818481614987576149876169fe565b048201901c9050600181848161499f5761499f6169fe565b048201901c905060018184816149b7576149b76169fe565b048201901c905060018184816149cf576149cf6169fe565b048201901c905060018184816149e7576149e76169fe565b048201901c905060018184816149ff576149ff6169fe565b048201901c905061206681828581614a1957614a196169fe565b0461550f565b60005b818310156142fd576000614a36848461551e565b60008781526020902090915063ffffffff86169082015463ffffffff161115614a6157809250614a6f565b614a6c816001616bcf565b93505b50614a22565b600033614a828184615539565b614ace5760405162461bcd60e51b815260206004820152601d60248201527f476f7665726e6f723a2070726f706f73657220726573747269637465640000006044820152606401610453565b6000614ad8611fe2565b65ffffffffffff169050614aea612903565b614af983610e216001856169eb565b1015614b615760405162461bcd60e51b815260206004820152603160248201527f476f7665726e6f723a2070726f706f73657220766f7465732062656c6f7720706044820152701c9bdc1bdcd85b081d1a1c995cda1bdb19607a1b6064820152608401610453565b6000614b768888888880519060200120612a2a565b90508651885114614b995760405162461bcd60e51b815260040161045390616cbc565b8551885114614bba5760405162461bcd60e51b815260040161045390616cbc565b6000885111614c0b5760405162461bcd60e51b815260206004820152601860248201527f476f7665726e6f723a20656d7074792070726f706f73616c00000000000000006044820152606401610453565b600081815261016360205260409020546001600160401b031615614c7b5760405162461bcd60e51b815260206004820152602160248201527f476f7665726e6f723a2070726f706f73616c20616c72656164792065786973746044820152607360f81b6064820152608401610453565b6000614c876101945490565b614c919084616bcf565b90506000614c9f6101955490565b614ca99083616bcf565b90506040518060e00160405280614cbf8461562a565b6001600160401b031681526001600160a01b038716602082015260006040820152606001614cec8361562a565b6001600160401b03908116825260006020808401829052604080850183905260609485018390528883526101638252918290208551815492870151878501519186166001600160e01b031990941693909317600160401b6001600160a01b039094168402176001600160e01b0316600160e01b60e09290921c91909102178155938501516080860151908416921c0217600183015560a08301516002909201805460c09094015161ffff1990941692151561ff00191692909217610100931515939093029290921790558a517f7d84a6263ae0d98d3329bd7b46bb4e8d6f98cd35a7adb45c274c8b7fd5ebd5e091859188918e918e91811115614df157614df1615d26565b604051908082528060200260200182016040528015614e2457816020015b6060815260200190600190039081614e0f5790505b508d88888f604051614e3e99989796959493929190616cfd565b60405180910390a1509098975050505050505050565b600054610100900460ff16614e7b5760405162461bcd60e51b815260040161045390616c04565b609a614e878382616ddb565b50609b614e948282616ddb565b50506000609881905560995550565b600054610100900460ff16614eca5760405162461bcd60e51b815260040161045390616c04565b610162614ed78282616ddb565b5050565b600054610100900460ff16614f025760405162461bcd60e51b815260040161045390616c04565b614f0b836139ed565b614f1482613f00565b613bcc81613fa3565b600054610100900460ff16614f445760405162461bcd60e51b815260040161045390616c04565b6101f880546001600160a01b0319166001600160a01b0392909216919091179055565b600054610100900460ff166121195760405162461bcd60e51b815260040161045390616c04565b600054610100900460ff166111c85760405162461bcd60e51b815260040161045390616c04565b600054610100900460ff16612ae35760405162461bcd60e51b815260040161045390616c04565b6000818311614feb5781612066565b5090919050565b8151156150025781518083602001fd5b8060405162461bcd60e51b81526004016104539190615edf565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f615047615692565b61504f6156eb565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b60008581526101636020526040812060016150aa88611773565b60078111156150bb576150bb6162ee565b146151145760405162461bcd60e51b815260206004820152602360248201527f476f7665726e6f723a20766f7465206e6f742063757272656e746c792061637460448201526269766560e81b6064820152608401610453565b805460009061512e9088906001600160401b031686613d90565b905061513d888888848861571c565b835160000361519257866001600160a01b03167fb8e138887d0aa13bab447e82de9d5c1777041ecd21ca36ba824ff1e6c07ddda4898884896040516151859493929190616e9a565b60405180910390a2611768565b866001600160a01b03167fe2babfbac5889a709b63bb7f598b324e08bc5a4fb9ec647fb3cbc9ec07eb871289888489896040516151d3959493929190616ec2565b60405180910390a2979650505050505050565b60008181526101c660205260408120600581015461521d610ea285600090815261016360205260409020546001600160401b031690565b11159392505050565b82546000908190801561536c576000615244876139bc6001856169eb565b60408051808201909152905463ffffffff808216808452600160201b9092046001600160e01b0316602084015291925090871610156152c55760405162461bcd60e51b815260206004820152601b60248201527f436865636b706f696e743a2064656372656173696e67206b65797300000000006044820152606401610453565b805163ffffffff80881691160361530d57846152e6886139bc6001866169eb565b80546001600160e01b0392909216600160201b0263ffffffff90921691909117905561535c565b6040805180820190915263ffffffff80881682526001600160e01b0380881660208085019182528b54600181018d5560008d81529190912094519151909216600160201b029216919091179101555b6020015192508391506147389050565b50506040805180820190915263ffffffff80851682526001600160e01b0380851660208085019182528854600181018a5560008a815291822095519251909316600160201b029190931617920191909155905081614738565b6000806153d4868686866158ba565b600081815261022c6020526040902054909150156113495761022b54600082815261022c60205260409081902054905163c4d252f560e01b81526001600160a01b039092169163c4d252f5916154309160040190815260200190565b600060405180830381600087803b15801561544a57600080fd5b505af115801561545e573d6000803e3d6000fd5b505050600082815261022c60205260408120555095945050505050565b600080608083901c1561549057608092831c92015b604083901c156154a257604092831c92015b602083901c156154b457602092831c92015b601083901c156154c657601092831c92015b600883901c156154d857600892831c92015b600483901c156154ea57600492831c92015b600283901c156154fc57600292831c92015b600183901c15610fbb5760010192915050565b6000818310614feb5781612066565b600061552d6002848418616a14565b61206690848416616bcf565b80516000906034811015615551576001915050610fbb565b82810160131901516001600160a01b031981166b046e0e4dee0dee6cae47a60f60a31b1461558457600192505050610fbb565b6000806155926028856169eb565b90505b83811015615609576000806155c98884815181106155b5576155b56168d2565b01602001516001600160f81b0319166159c7565b91509150816155e15760019650505050505050610fbb565b8060ff166004856001600160a01b0316901b179350505080615602906168fe565b9050615595565b50856001600160a01b0316816001600160a01b031614935050505092915050565b60006001600160401b038211156139365760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201526534206269747360d01b6064820152608401610453565b60008061569d613d0b565b8051909150156156b4578051602090910120919050565b60985480156156c35792915050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4709250505090565b6000806156f6613d1a565b80519091501561570d578051602090910120919050565b60995480156156c35792915050565b60008581526101c6602090815260408083206001600160a01b038816845260088101909252909120805460ff16156157ac5760405162461bcd60e51b815260206004820152602d60248201527f476f7665726e6f72436f6d7061746962696c697479427261766f3a20766f746560448201526c08185b1c9958591e4818d85cdd609a1b6064820152608401610453565b805460ff86166101000261ffff199091161760011781556157cc84615a59565b81546001600160601b039190911662010000026dffffffffffffffffffffffff00001990911617815560ff851661581c57838260060160008282546158119190616bcf565b90915550612a219050565b60001960ff86160161583c57838260050160008282546158119190616bcf565b60011960ff86160161585c57838260070160008282546158119190616bcf565b60405162461bcd60e51b815260206004820152602d60248201527f476f7665726e6f72436f6d7061746962696c697479427261766f3a20696e766160448201526c6c696420766f7465207479706560981b6064820152608401610453565b6000806158c986868686612a2a565b905060006158d682611773565b905060028160078111156158ec576158ec6162ee565b1415801561590c57506006816007811115615909576159096162ee565b14155b801561592a57506007816007811115615927576159276162ee565b14155b6159765760405162461bcd60e51b815260206004820152601d60248201527f476f7665726e6f723a2070726f706f73616c206e6f74206163746976650000006044820152606401610453565b6000828152610163602052604090819020600201805461ff001916610100179055517f789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c906132359084815260200190565b60008060f883901c602f811180156159e25750603a8160ff16105b156159f757600194602f199091019350915050565b8060ff166040108015615a0d575060478160ff16105b15615a22576001946036199091019350915050565b8060ff166060108015615a38575060678160ff16105b15615a4d576001946056199091019350915050565b50600093849350915050565b60006001600160601b038211156139365760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203960448201526536206269747360d01b6064820152608401610453565b828054828255906000526020600020908101928215615b16579160200282015b82811115615b1657825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190615ae1565b50613936929150615c01565b828054828255906000526020600020908101928215615b16579160200282015b82811115615b16578251825591602001919060010190615b42565b828054828255906000526020600020908101928215615ba3579160200282015b82811115615ba35782518290615b939082616ddb565b5091602001919060010190615b7d565b50613936929150615c16565b828054828255906000526020600020908101928215615bf5579160200282015b82811115615bf55782518290615be59082616ddb565b5091602001919060010190615bcf565b50613936929150615c33565b5b808211156139365760008155600101615c02565b80821115613936576000615c2a8282615c50565b50600101615c16565b80821115613936576000615c478282615c50565b50600101615c33565b508054615c5c90616898565b6000825580601f10615c6c575050565b601f0160209004906000526020600020908101906111d19190615c01565b600060208284031215615c9c57600080fd5b5035919050565b600060208284031215615cb557600080fd5b81356001600160e01b03198116811461206657600080fd5b803560ff8116811461195b57600080fd5b60008083601f840112615cf057600080fd5b5081356001600160401b03811115615d0757600080fd5b602083019150836020828501011115615d1f57600080fd5b9250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715615d6457615d64615d26565b604052919050565b60006001600160401b03821115615d8557615d85615d26565b50601f01601f191660200190565b600082601f830112615da457600080fd5b8135615db7615db282615d6c565b615d3c565b818152846020838601011115615dcc57600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060008060008060e0898b031215615e0557600080fd5b88359750615e1560208a01615ccd565b965060408901356001600160401b0380821115615e3157600080fd5b615e3d8c838d01615cde565b909850965060608b0135915080821115615e5657600080fd5b50615e638b828c01615d93565b945050615e7260808a01615ccd565b925060a0890135915060c089013590509295985092959890939650565b60005b83811015615eaa578181015183820152602001615e92565b50506000910152565b60008151808452615ecb816020860160208601615e8f565b601f01601f19169290920160200192915050565b6020815260006120666020830184615eb3565b6001600160a01b03811681146111d157600080fd5b60008060008060808587031215615f1d57600080fd5b8435615f2881615ef2565b93506020850135615f3881615ef2565b92506040850135915060608501356001600160401b03811115615f5a57600080fd5b615f6687828801615d93565b91505092959194509250565b60006001600160401b03821115615f8b57615f8b615d26565b5060051b60200190565b600082601f830112615fa657600080fd5b81356020615fb6615db283615f72565b82815260059290921b84018101918181019086841115615fd557600080fd5b8286015b84811015615ff9578035615fec81615ef2565b8352918301918301615fd9565b509695505050505050565b600082601f83011261601557600080fd5b81356020616025615db283615f72565b82815260059290921b8401810191818101908684111561604457600080fd5b8286015b84811015615ff95780358352918301918301616048565b600082601f83011261607057600080fd5b81356020616080615db283615f72565b82815260059290921b8401810191818101908684111561609f57600080fd5b8286015b84811015615ff95780356001600160401b038111156160c25760008081fd5b6160d08986838b0101615d93565b8452509183019183016160a3565b600080600080608085870312156160f457600080fd5b84356001600160401b038082111561610b57600080fd5b61611788838901615f95565b9550602087013591508082111561612d57600080fd5b61613988838901616004565b9450604087013591508082111561614f57600080fd5b5061615c8782880161605f565b949793965093946060013593505050565b60006020828403121561617f57600080fd5b813561206681615ef2565b600081518084526020808501945080840160005b838110156161c35781516001600160a01b03168752958201959082019060010161619e565b509495945050505050565b600081518084526020808501945080840160005b838110156161c3578151875295820195908201906001016161e2565b600081518084526020808501808196508360051b8101915082860160005b85811015616246578284038952616234848351615eb3565b9885019893509084019060010161621c565b5091979650505050505050565b608081526000616266608083018761618a565b828103602084015261627881876161ce565b9050828103604084015261628c81866161fe565b9050828103606084015261176881856161fe565b600080600080600060a086880312156162b857600080fd5b853594506162c860208701615ccd565b93506162d660408701615ccd565b94979396509394606081013594506080013592915050565b634e487b7160e01b600052602160045260246000fd5b602081016008831061632657634e487b7160e01b600052602160045260246000fd5b91905290565b6000806040838503121561633f57600080fd5b82359150602083013561635181615ef2565b809150509250929050565b6000806040838503121561636f57600080fd5b8235915061637f60208401615ccd565b90509250929050565b6000806000806000608086880312156163a057600080fd5b853594506163b060208701615ccd565b935060408601356001600160401b03808211156163cc57600080fd5b6163d889838a01615cde565b909550935060608801359150808211156163f157600080fd5b506163fe88828901615d93565b9150509295509295909350565b6000806000806060858703121561642157600080fd5b8435935061643160208601615ccd565b925060408501356001600160401b0381111561644c57600080fd5b61645887828801615cde565b95989497509550505050565b6000806000806080858703121561647a57600080fd5b84356001600160401b038082111561649157600080fd5b61649d88838901615f95565b955060208701359150808211156164b357600080fd5b6164bf88838901616004565b945060408701359150808211156164d557600080fd5b6164e18883890161605f565b935060608701359150808211156164f757600080fd5b50615f6687828801615d93565b60ff60f81b8816815260e06020820152600061652360e0830189615eb3565b82810360408401526165358189615eb3565b606084018890526001600160a01b038716608085015260a0840186905283810360c085015290506110ab81856161ce565b60008060006060848603121561657b57600080fd5b833561658681615ef2565b92506020840135915060408401356001600160401b038111156165a857600080fd5b6165b486828701615d93565b9150509250925092565b600080600080604085870312156165d457600080fd5b84356001600160401b03808211156165eb57600080fd5b6165f788838901615cde565b9096509450602087013591508082111561661057600080fd5b5061645887828801615cde565b600080600080600060a0868803121561663557600080fd5b853561664081615ef2565b9450602086013561665081615ef2565b935060408601356001600160401b038082111561666c57600080fd5b61667889838a01616004565b9450606088013591508082111561668e57600080fd5b61669a89838a01616004565b935060808801359150808211156163f157600080fd5b600080600080606085870312156166c657600080fd5b84356166d181615ef2565b93506020850135925060408501356001600160401b0381111561644c57600080fd5b60006020828403121561670557600080fd5b81356001600160401b038116811461206657600080fd5b600080600080600060a0868803121561673457600080fd5b85356001600160401b038082111561674b57600080fd5b61675789838a01615f95565b9650602088013591508082111561676d57600080fd5b61677989838a01616004565b9550604088013591508082111561678f57600080fd5b61679b89838a0161605f565b945060608801359150808211156167b157600080fd5b61669a89838a0161605f565b600080604083850312156167d057600080fd5b82356167db81615ef2565b946020939093013593505050565b600080600080600060a0868803121561680157600080fd5b853561680c81615ef2565b9450602086013561681c81615ef2565b9350604086013592506060860135915060808601356001600160401b0381111561684557600080fd5b6163fe88828901615d93565b8183823760009101908152919050565b60208082526018908201527f476f7665726e6f723a206f6e6c79476f7665726e616e63650000000000000000604082015260600190565b600181811c908216806168ac57607f821691505b6020821081036168cc57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201616910576169106168e8565b5060010190565b65ffffffffffff828116828216039080821115616936576169366168e8565b5092915050565b60208082526021908201527f476f7665726e6f723a2070726f706f73616c206e6f74207375636365737366756040820152601b60fa1b606082015260800190565b60006020828403121561699057600080fd5b81516001600160401b038111156169a657600080fd5b8201601f810184136169b757600080fd5b80516169c5615db282615d6c565b8181528560208385010111156169da57600080fd5b611349826020830160208601615e8f565b81810381811115610fbb57610fbb6168e8565b634e487b7160e01b600052601260045260246000fd5b600082616a3157634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215616a4857600080fd5b815165ffffffffffff8116811461206657600080fd5b600060208284031215616a7057600080fd5b5051919050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b604081526000616ab4604083018688616a77565b8281036020840152611768818587616a77565b608081526000616ada608083018761618a565b8281036020840152616aec81876161ce565b90508281036040840152616b0081866161fe565b91505082606083015295945050505050565b8082028115828204841417610fbb57610fbb6168e8565b60a081526000616b3c60a083018861618a565b8281036020840152616b4e81886161ce565b90508281036040840152616b6281876161fe565b60608401959095525050608001529392505050565b60c081526000616b8a60c083018961618a565b8281036020840152616b9c81896161ce565b90508281036040840152616bb081886161fe565b60608401969096525050608081019290925260a0909101529392505050565b80820180821115610fbb57610fbb6168e8565b600060208284031215616bf457600080fd5b8151801515811461206657600080fd5b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60008251616c61818460208701615e8f565b9190910192915050565b6001600160e01b0319831681528151600090616c8e816004850160208701615e8f565b919091016004019392505050565b6001600160401b03818116838216019080821115616936576169366168e8565b60208082526021908201527f476f7665726e6f723a20696e76616c69642070726f706f73616c206c656e67746040820152600d60fb1b606082015260800190565b8981526001600160a01b038916602082015261012060408201819052600090616d288382018b61618a565b90508281036060840152616d3c818a6161ce565b90508281036080840152616d5081896161fe565b905082810360a0840152616d6481886161fe565b90508560c08401528460e0840152828103610100840152616d858185615eb3565b9c9b505050505050505050505050565b601f821115613bcc57600081815260208120601f850160051c81016020861015616dbc5750805b601f850160051c820191505b818110156117a157828155600101616dc8565b81516001600160401b03811115616df457616df4615d26565b616e0881616e028454616898565b84616d95565b602080601f831160018114616e3d5760008415616e255750858301515b600019600386901b1c1916600185901b1785556117a1565b600085815260208120601f198616915b82811015616e6c57888601518255948401946001909101908401616e4d565b5085821015616e8a5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b84815260ff84166020820152826040820152608060608201526000611b586080830184615eb3565b85815260ff8516602082015283604082015260a060608201526000616eea60a0830185615eb3565b8281036080840152611c718185615eb356fe476f7665726e6f723a2072656c617920726576657274656420776974686f7574206d657373616765a164736f6c6343000811000a", - }, - { - ContractAddr: GovTokenContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/9d09d0a3d6332460a810188261ec8195e05aa218", - Code: "608060405234801561001057600080fd5b50600436106102065760003560e01c806370a082311161011a5780639ab24eb0116100ad578063d505accf1161007c578063d505accf1461049d578063dd62ed3e146104b0578063e5ed5b1e146104c3578063f1127ed8146104d6578063f1fad1041461051357600080fd5b80639ab24eb014610451578063a457c2d714610464578063a9059cbb14610477578063c3cda5201461048a57600080fd5b806384b0196e116100e957806384b0196e146103fc5780638e539e8c1461041757806391ddadf41461042a57806395d89b411461044957600080fd5b806370a08231146103aa57806379cc6790146103d35780637ecebe00146103e15780638129fc1c146103f457600080fd5b8063395093511161019d5780634bf5d7e91161016c5780634bf5d7e91461031b5780634bf6c88214610323578063587cde1e1461032b5780635c19a95c1461036f5780636fcfff451461038257600080fd5b806339509351146102cf5780633a46b1a8146102e257806342966c68146102f5578063448407751461030857600080fd5b806323b872dd116101d957806323b872dd1461028a5780633041949b1461029d578063313ce567146102b25780633644e515146102c757600080fd5b8063039c91fc1461020b57806306fdde031461024a578063095ea7b31461025f57806318160ddd14610282575b600080fd5b6102376102193660046120c7565b61013060209081526000928352604080842090915290825290205481565b6040519081526020015b60405180910390f35b61025261051b565b6040516102419190612140565b61027261026d366004612153565b6105ad565b6040519015158152602001610241565b603554610237565b61027261029836600461217d565b6105c7565b6102b06102ab3660046120c7565b6105eb565b005b60125b60405160ff9091168152602001610241565b610237610624565b6102726102dd366004612153565b610633565b6102376102f0366004612153565b610655565b6102b06103033660046121b9565b6106da565b6102b06103163660046121d2565b6106f3565b61025261076c565b6102b5600881565b610357610339366004612256565b6001600160a01b03908116600090815260fe60205260409020541690565b6040516001600160a01b039091168152602001610241565b6102b061037d366004612256565b610804565b610395610390366004612256565b610811565b60405163ffffffff9091168152602001610241565b6102376103b8366004612256565b6001600160a01b031660009081526033602052604090205490565b6102b0610303366004612153565b6102376103ef366004612256565b610833565b6102b0610851565b610404610a31565b6040516102419796959493929190612271565b6102376104253660046121b9565b610acf565b610432610b37565b60405165ffffffffffff9091168152602001610241565b610252610b42565b61023761045f366004612256565b610b51565b610272610472366004612153565b610bd3565b610272610485366004612153565b610c4e565b6102b0610498366004612318565b610c5c565b6102b06104ab366004612370565b610d92565b6102376104be3660046120c7565b610ef6565b6102b06104d13660046120c7565b610f21565b6104e96104e43660046123da565b610f51565b60408051825163ffffffff1681526020928301516001600160e01b03169281019290925201610241565b6102b5601181565b60606036805461052a9061241a565b80601f01602080910402602001604051908101604052809291908181526020018280546105569061241a565b80156105a35780601f10610578576101008083540402835291602001916105a3565b820191906000526020600020905b81548152906001019060200180831161058657829003601f168201915b5050505050905090565b6000336105bb818585610fd5565b60019150505b92915050565b6000336105d5858285610fee565b6105e0858585611068565b506001949350505050565b336120021461061657604051630f22c43960e41b815261200260048201526024015b60405180910390fd5b6106208282611081565b5050565b600061062e6111b1565b905090565b6000336105bb8185856106468383610ef6565b6106509190612464565b610fd5565b600061065f610b37565b65ffffffffffff1682106106b15760405162461bcd60e51b815260206004820152601960248201527804552433230566f7465733a20667574757265206c6f6f6b757603c1b604482015260640161060d565b6001600160a01b038316600090815260ff602052604090206106d390836111bb565b9392505050565b60405163e5d8776760e01b815260040160405180910390fd5b336120021461071957604051630f22c43960e41b8152612002600482015260240161060d565b8160005b818110156107655761075585858381811061073a5761073a612477565b905060200201602081019061074f9190612256565b84611081565b61075e8161248d565b905061071d565b5050505050565b606043610777610b37565b65ffffffffffff16146107cc5760405162461bcd60e51b815260206004820152601d60248201527f4552433230566f7465733a2062726f6b656e20636c6f636b206d6f6465000000604482015260640161060d565b5060408051808201909152601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000602082015290565b61080e33826112a4565b50565b6001600160a01b038116600090815260ff60205260408120546105c19061131e565b6001600160a01b038116600090815260cb60205260408120546105c1565b600054610100900460ff16158080156108715750600054600160ff909116105b8061088b5750303b15801561088b575060005460ff166001145b6108ee5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161060d565b6000805460ff191660011790558015610911576000805461ff0019166101001790555b3341146109315760405163022d8c9560e31b815260040160405180910390fd5b3a15610950576040516383f1b1d360e01b815260040160405180910390fd5b6109a4604051806040016040528060148152602001732129a19023b7bb32b93730b731b2902a37b5b2b760611b8152506040518060400160405280600681526020016533b7bb21272160d11b815250611387565b6109ac6113b8565b6109e1604051806040016040528060148152602001732129a19023b7bb32b93730b731b2902a37b5b2b760611b8152506113e1565b6109e96113b8565b801561080e576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b6000606080600080600060606097546000801b148015610a515750609854155b610a955760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b604482015260640161060d565b610a9d61142b565b610aa561143a565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b6000610ad9610b37565b65ffffffffffff168210610b2b5760405162461bcd60e51b815260206004820152601960248201527804552433230566f7465733a20667574757265206c6f6f6b757603c1b604482015260640161060d565b6105c1610100836111bb565b600061062e43611449565b60606037805461052a9061241a565b6001600160a01b038116600090815260ff60205260408120548015610bc0576001600160a01b038316600090815260ff6020526040902080546000198301908110610b9e57610b9e612477565b60009182526020909120015464010000000090046001600160e01b0316610bc3565b60005b6001600160e01b03169392505050565b60003381610be18286610ef6565b905083811015610c415760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161060d565b6105e08286868403610fd5565b6000336105bb818585611068565b83421115610cac5760405162461bcd60e51b815260206004820152601d60248201527f4552433230566f7465733a207369676e61747572652065787069726564000000604482015260640161060d565b604080517fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60208201526001600160a01b038816918101919091526060810186905260808101859052600090610d2690610d1e9060a001604051602081830303815290604052805190602001206114b0565b8585856114dd565b9050610d3181611505565b8614610d7f5760405162461bcd60e51b815260206004820152601960248201527f4552433230566f7465733a20696e76616c6964206e6f6e636500000000000000604482015260640161060d565b610d8981886112a4565b50505050505050565b83421115610de25760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e65000000604482015260640161060d565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9888888610e118c611505565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090506000610e6c826114b0565b90506000610e7c828787876114dd565b9050896001600160a01b0316816001600160a01b031614610edf5760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e61747572650000604482015260640161060d565b610eea8a8a8a610fd5565b50505050505050505050565b6001600160a01b03918216600090815260346020908152604080832093909416825291909152205490565b3361200214610f4757604051630f22c43960e41b8152612002600482015260240161060d565b61062082826112a4565b60408051808201909152600080825260208201526001600160a01b038316600090815260ff60205260409020805463ffffffff8416908110610f9557610f95612477565b60009182526020918290206040805180820190915291015463ffffffff8116825264010000000090046001600160e01b0316918101919091529392505050565b604051632028747160e01b815260040160405180910390fd5b6000610ffa8484610ef6565b9050600019811461106257818110156110555760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161060d565b6110628484848403610fd5565b50505050565b604051638cd22d1960e01b815260040160405180910390fd5b604051630913db4760e01b81526001600160a01b03828116600483015260009190841690630913db4790602401602060405180830381865afa1580156110cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ef91906124bc565b6001600160a01b03808516600090815261013060209081526040808320938716835292905220549091508181101561116857600061112d82846124d5565b6001600160a01b038087166000908152610130602090815260408083209389168352929052208490559050611162848261152d565b50611062565b8181111561106257600061117c83836124d5565b6001600160a01b0380871660009081526101306020908152604080832093891683529290522084905590506107658482611537565b600061062e611541565b8154600090818160058111156112155760006111d6846115b5565b6111e090856124d5565b600088815260209020909150869082015463ffffffff16111561120557809150611213565b611210816001612464565b92505b505b80821015611262576000611229838361169d565b600088815260209020909150869082015463ffffffff16111561124e5780915061125c565b611259816001612464565b92505b50611215565b801561128e576000868152602090208101600019015464010000000090046001600160e01b0316611291565b60005b6001600160e01b03169695505050505050565b6001600160a01b03828116600081815260fe6020818152604080842080546033845282862054949093528787166001600160a01b03198416811790915590519190951694919391928592917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a46110628284836116b8565b600063ffffffff8211156113835760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b606482015260840161060d565b5090565b600054610100900460ff166113ae5760405162461bcd60e51b815260040161060d906124e8565b61062082826117f6565b600054610100900460ff166113df5760405162461bcd60e51b815260040161060d906124e8565b565b600054610100900460ff166114085760405162461bcd60e51b815260040161060d906124e8565b61080e81604051806040016040528060018152602001603160f81b815250611836565b60606099805461052a9061241a565b6060609a805461052a9061241a565b600065ffffffffffff8211156113835760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203460448201526538206269747360d01b606482015260840161060d565b60006105c16114bd6111b1565b8360405161190160f01b8152600281019290925260228201526042902090565b60008060006114ee87878787611885565b915091506114fb81611949565b5095945050505050565b6001600160a01b038116600090815260cb602052604090208054600181018255905b50919050565b6106208282611a93565b6106208282611b1e565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f61156c611b37565b611574611b90565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b6000816000036115c757506000919050565b600060016115d484611bc1565b901c6001901b905060018184816115ed576115ed612533565b048201901c9050600181848161160557611605612533565b048201901c9050600181848161161d5761161d612533565b048201901c9050600181848161163557611635612533565b048201901c9050600181848161164d5761164d612533565b048201901c9050600181848161166557611665612533565b048201901c9050600181848161167d5761167d612533565b048201901c90506106d38182858161169757611697612533565b04611c55565b60006116ac6002848418612549565b6106d390848416612464565b816001600160a01b0316836001600160a01b0316141580156116da5750600081115b156117f1576001600160a01b03831615611768576001600160a01b038316600090815260ff60205260408120819061171590611c6b85611c77565b91509150846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724838360405161175d929190918252602082015260400190565b60405180910390a250505b6001600160a01b038216156117f1576001600160a01b038216600090815260ff60205260408120819061179e90611dec85611c77565b91509150836001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a72483836040516117e6929190918252602082015260400190565b60405180910390a250505b505050565b600054610100900460ff1661181d5760405162461bcd60e51b815260040161060d906124e8565b603661182983826125b9565b5060376117f182826125b9565b600054610100900460ff1661185d5760405162461bcd60e51b815260040161060d906124e8565b609961186983826125b9565b50609a61187682826125b9565b50506000609781905560985550565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156118bc5750600090506003611940565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611910573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661193957600060019250925050611940565b9150600090505b94509492505050565b600081600481111561195d5761195d612679565b036119655750565b600181600481111561197957611979612679565b036119c65760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161060d565b60028160048111156119da576119da612679565b03611a275760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161060d565b6003816004811115611a3b57611a3b612679565b0361080e5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161060d565b611a9d8282611df8565b6035546001600160e01b031015611b0f5760405162461bcd60e51b815260206004820152603060248201527f4552433230566f7465733a20746f74616c20737570706c79207269736b73206f60448201526f766572666c6f77696e6720766f74657360801b606482015260840161060d565b611062610100611dec83611c77565b611b288282611ec1565b611062610100611c6b83611c77565b600080611b4261142b565b805190915015611b59578051602090910120919050565b6097548015611b685792915050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4709250505090565b600080611b9b61143a565b805190915015611bb2578051602090910120919050565b6098548015611b685792915050565b600080608083901c15611bd657608092831c92015b604083901c15611be857604092831c92015b602083901c15611bfa57602092831c92015b601083901c15611c0c57601092831c92015b600883901c15611c1e57600892831c92015b600483901c15611c3057600492831c92015b600283901c15611c4257600292831c92015b600183901c156105c15760010192915050565b6000818310611c6457816106d3565b5090919050565b60006106d382846124d5565b82546000908190818115611cc45760008781526020902082016000190160408051808201909152905463ffffffff8116825264010000000090046001600160e01b03166020820152611cd9565b60408051808201909152600080825260208201525b905080602001516001600160e01b03169350611cf984868863ffffffff16565b9250600082118015611d235750611d0e610b37565b65ffffffffffff16816000015163ffffffff16145b15611d6857611d3183611ffc565b60008881526020902083016000190180546001600160e01b03929092166401000000000263ffffffff909216919091179055611de2565b866040518060400160405280611d8c611d7f610b37565b65ffffffffffff1661131e565b63ffffffff168152602001611da086611ffc565b6001600160e01b0390811690915282546001810184556000938452602093849020835194909301519091166401000000000263ffffffff909316929092179101555b5050935093915050565b60006106d38284612464565b6001600160a01b038216611e4e5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161060d565b8060356000828254611e609190612464565b90915550506001600160a01b0382166000818152603360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361062060008383612065565b6001600160a01b038216611f215760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b606482015260840161060d565b6001600160a01b03821660009081526033602052604090205481811015611f955760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b606482015260840161060d565b6001600160a01b03831660008181526033602090815260408083208686039055603580548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36117f183600084612065565b60006001600160e01b038211156113835760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b606482015260840161060d565b6117f18383836001600160a01b03808416600090815260fe60205260409020546117f191166001600160a01b03808516600090815260fe602052604090205416836116b8565b80356001600160a01b03811681146120c257600080fd5b919050565b600080604083850312156120da57600080fd5b6120e3836120ab565b91506120f1602084016120ab565b90509250929050565b6000815180845260005b8181101561212057602081850181015186830182015201612104565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006106d360208301846120fa565b6000806040838503121561216657600080fd5b61216f836120ab565b946020939093013593505050565b60008060006060848603121561219257600080fd5b61219b846120ab565b92506121a9602085016120ab565b9150604084013590509250925092565b6000602082840312156121cb57600080fd5b5035919050565b6000806000604084860312156121e757600080fd5b833567ffffffffffffffff808211156121ff57600080fd5b818601915086601f83011261221357600080fd5b81358181111561222257600080fd5b8760208260051b850101111561223757600080fd5b60209283019550935061224d91860190506120ab565b90509250925092565b60006020828403121561226857600080fd5b6106d3826120ab565b60ff60f81b881681526000602060e08184015261229160e084018a6120fa565b83810360408501526122a3818a6120fa565b606085018990526001600160a01b038816608086015260a0850187905284810360c0860152855180825283870192509083019060005b818110156122f5578351835292840192918401916001016122d9565b50909c9b505050505050505050505050565b803560ff811681146120c257600080fd5b60008060008060008060c0878903121561233157600080fd5b61233a876120ab565b9550602087013594506040870135935061235660608801612307565b92506080870135915060a087013590509295509295509295565b600080600080600080600060e0888a03121561238b57600080fd5b612394886120ab565b96506123a2602089016120ab565b955060408801359450606088013593506123be60808901612307565b925060a0880135915060c0880135905092959891949750929550565b600080604083850312156123ed57600080fd5b6123f6836120ab565b9150602083013563ffffffff8116811461240f57600080fd5b809150509250929050565b600181811c9082168061242e57607f821691505b60208210810361152757634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b808201808211156105c1576105c161244e565b634e487b7160e01b600052603260045260246000fd5b60006001820161249f5761249f61244e565b5060010190565b634e487b7160e01b600052604160045260246000fd5b6000602082840312156124ce57600080fd5b5051919050565b818103818111156105c1576105c161244e565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b634e487b7160e01b600052601260045260246000fd5b60008261256657634e487b7160e01b600052601260045260246000fd5b500490565b601f8211156117f157600081815260208120601f850160051c810160208610156125925750805b601f850160051c820191505b818110156125b15782815560010161259e565b505050505050565b815167ffffffffffffffff8111156125d3576125d36124a6565b6125e7816125e1845461241a565b8461256b565b602080601f83116001811461261c57600084156126045750858301515b600019600386901b1c1916600185901b1785556125b1565b600085815260208120601f198616915b8281101561264b5788860151825594840194600190910190840161262c565b50858210156126695787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052602160045260246000fdfea164736f6c6343000811000a", - }, - { - ContractAddr: TimelockContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/9d09d0a3d6332460a810188261ec8195e05aa218", - Code: "6080604052600436106101e75760003560e01c80638129fc1c11610102578063bc197c8111610095578063e38335e511610064578063e38335e5146105e1578063f1fad104146105f4578063f23a6e6114610609578063f27a0c921461063557600080fd5b8063bc197c8114610548578063c4d252f514610574578063d45c443514610594578063d547741f146105c157600080fd5b8063a217fddf116100d1578063a217fddf146104d1578063ac431751146104e6578063b08e51c014610506578063b1c5f4271461052857600080fd5b80638129fc1c1461045a5780638f2a0bb01461046f5780638f61f4f51461048f57806391d14854146104b157600080fd5b80632ab0f5291161017a5780634bf6c882116101495780634bf6c882146103d3578063584b153e146103fa57806364d623531461041a5780638065657f1461043a57600080fd5b80632ab0f529146103435780632f2ff15d1461037357806331d507501461039357806336568abe146103b357600080fd5b8063134008d3116101b6578063134008d31461029c57806313bc9f20146102af578063150b7a02146102cf578063248a9ca31461031357600080fd5b806301d5062a146101f357806301ffc9a71461021557806307bd02651461024a5780630d3cf6fc1461027a57600080fd5b366101ee57005b600080fd5b3480156101ff57600080fd5b5061021361020e366004611aa5565b61064a565b005b34801561022157600080fd5b50610235610230366004611b19565b61070e565b60405190151581526020015b60405180910390f35b34801561025657600080fd5b5061026c60008051602061258983398151915281565b604051908152602001610241565b34801561028657600080fd5b5061026c60008051602061254983398151915281565b6102136102aa366004611b43565b610739565b3480156102bb57600080fd5b506102356102ca366004611bae565b6107dc565b3480156102db57600080fd5b506102fa6102ea366004611c7c565b630a85bd0160e11b949350505050565b6040516001600160e01b03199091168152602001610241565b34801561031f57600080fd5b5061026c61032e366004611bae565b60009081526065602052604090206001015490565b34801561034f57600080fd5b5061023561035e366004611bae565b60009081526097602052604090205460011490565b34801561037f57600080fd5b5061021361038e366004611ce3565b610802565b34801561039f57600080fd5b506102356103ae366004611bae565b61082c565b3480156103bf57600080fd5b506102136103ce366004611ce3565b610845565b3480156103df57600080fd5b506103e8600881565b60405160ff9091168152602001610241565b34801561040657600080fd5b50610235610415366004611bae565b6108c8565b34801561042657600080fd5b50610213610435366004611bae565b6108df565b34801561044657600080fd5b5061026c610455366004611b43565b610983565b34801561046657600080fd5b506102136109c2565b34801561047b57600080fd5b5061021361048a366004611d53565b610b73565b34801561049b57600080fd5b5061026c60008051602061256983398151915281565b3480156104bd57600080fd5b506102356104cc366004611ce3565b610cf4565b3480156104dd57600080fd5b5061026c600081565b3480156104f257600080fd5b50610213610501366004611e04565b610d1f565b34801561051257600080fd5b5061026c6000805160206125a983398151915281565b34801561053457600080fd5b5061026c610543366004611e6f565b610f09565b34801561055457600080fd5b506102fa610563366004611f96565b63bc197c8160e01b95945050505050565b34801561058057600080fd5b5061021361058f366004611bae565b610f4e565b3480156105a057600080fd5b5061026c6105af366004611bae565b60009081526097602052604090205490565b3480156105cd57600080fd5b506102136105dc366004611ce3565b611011565b6102136105ef366004611e6f565b611036565b34801561060057600080fd5b506103e8601181565b34801561061557600080fd5b506102fa61062436600461203f565b63f23a6e6160e01b95945050505050565b34801561064157600080fd5b5060985461026c565b600080516020612569833981519152610662816111ae565b6000610672898989898989610983565b905061067e81846111b8565b6000817f4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca8b8b8b8b8b8a6040516106ba969594939291906120cc565b60405180910390a3831561070357807f20fda5fd27a1ea7bf5b9567f143ac5470bb059374a27e8f67cb44f946f6d0387856040516106fa91815260200190565b60405180910390a25b505050505050505050565b60006001600160e01b03198216630271189760e51b14806107335750610733826112a7565b92915050565b600080516020612589833981519152610753816000610cf4565b6107615761076181336112dc565b6000610771888888888888610983565b905061077d8185611335565b610789888888886113d0565b6000817fc2617efa69bab66782fa219543714338489c4e9e178271560a91b82c3f612b588a8a8a8a6040516107c19493929190612109565b60405180910390a36107d2816114a3565b5050505050505050565b6000818152609760205260408120546001811180156107fb5750428111155b9392505050565b60008281526065602052604090206001015461081d816111ae565b61082783836114dc565b505050565b60008181526097602052604081205481905b1192915050565b6001600160a01b03811633146108ba5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6108c48282611562565b5050565b60008181526097602052604081205460019061083e565b3330146109425760405162461bcd60e51b815260206004820152602b60248201527f54696d656c6f636b436f6e74726f6c6c65723a2063616c6c6572206d7573742060448201526a62652074696d656c6f636b60a81b60648201526084016108b1565b60985460408051918252602082018390527f11c24f4ead16507c69ac467fbd5e4eed5fb5c699626d2cc6d66421df253886d5910160405180910390a1609855565b60008686868686866040516020016109a0969594939291906120cc565b6040516020818303038152906040528051906020012090509695505050505050565b600054610100900460ff16158080156109e25750600054600160ff909116105b806109fc5750303b1580156109fc575060005460ff166001145b610a5f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016108b1565b6000805460ff191660011790558015610a82576000805461ff0019166101001790555b334114610aa25760405163022d8c9560e31b815260040160405180910390fd5b3a15610ac1576040516383f1b1d360e01b815260040160405180910390fd5b6040805160018082528183019092526000916020808301908036833701905050905061200481600081518110610af957610af961213b565b60200260200101906001600160a01b031690816001600160a01b031681525050610b2961546082836120046115c9565b508015610b70576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50565b600080516020612569833981519152610b8b816111ae565b888714610baa5760405162461bcd60e51b81526004016108b190612151565b888514610bc95760405162461bcd60e51b81526004016108b190612151565b6000610bdb8b8b8b8b8b8b8b8b610f09565b9050610be781846111b8565b60005b8a811015610ca55780827f4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca8e8e85818110610c2757610c2761213b565b9050602002016020810190610c3c9190612194565b8d8d86818110610c4e57610c4e61213b565b905060200201358c8c87818110610c6757610c6761213b565b9050602002810190610c7991906121af565b8c8b604051610c8d969594939291906120cc565b60405180910390a3610c9e8161220b565b9050610bea565b508315610ce757807f20fda5fd27a1ea7bf5b9567f143ac5470bb059374a27e8f67cb44f946f6d038785604051610cde91815260200190565b60405180910390a25b5050505050505050505050565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b3361100714610d4557604051630f22c43960e41b815261100760048201526024016108b1565b610da8604051806040016040528060088152602001676d696e44656c617960c01b81525085858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092939250506116029050565b15610ea55760208114610dd65783838383604051630a5a604160e01b81526004016108b19493929190612224565b604080516020601f8401819004810282018101909252828152600091610e1791858580838501838280828437600092019190915250929392505061165b9050565b9050801580610e2857506212750081115b15610e4e5784848484604051630a5a604160e01b81526004016108b19493929190612224565b6040516364d6235360e01b81526004810182905230906364d6235390602401600060405180830381600087803b158015610e8757600080fd5b505af1158015610e9b573d6000803e3d6000fd5b5050505050610ec6565b838383836040516325ee20d560e21b81526004016108b19493929190612224565b7ff1ce9b2cbf50eeb05769a29e2543fd350cab46894a7dd9978a12d534bb20e63384848484604051610efb9493929190612224565b60405180910390a150505050565b60008888888888888888604051602001610f2a9897969594939291906122d9565b60405160208183030381529060405280519060200120905098975050505050505050565b6000805160206125a9833981519152610f66816111ae565b610f6f826108c8565b610fd55760405162461bcd60e51b815260206004820152603160248201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e2063616044820152701b9b9bdd0818994818d85b98d95b1b1959607a1b60648201526084016108b1565b6000828152609760205260408082208290555183917fbaa1eb22f2a492ba1a5fea61b8df4d27c6c8b5f3971e63bb58fa14ff72eedb7091a25050565b60008281526065602052604090206001015461102c816111ae565b6108278383611562565b600080516020612589833981519152611050816000610cf4565b61105e5761105e81336112dc565b87861461107d5760405162461bcd60e51b81526004016108b190612151565b87841461109c5760405162461bcd60e51b81526004016108b190612151565b60006110ae8a8a8a8a8a8a8a8a610f09565b90506110ba8185611335565b60005b898110156111985760008b8b838181106110d9576110d961213b565b90506020020160208101906110ee9190612194565b905060008a8a848181106111045761110461213b565b9050602002013590503660008a8a868181106111225761112261213b565b905060200281019061113491906121af565b91509150611144848484846113d0565b84867fc2617efa69bab66782fa219543714338489c4e9e178271560a91b82c3f612b588686868660405161117b9493929190612109565b60405180910390a350505050806111919061220b565b90506110bd565b506111a2816114a3565b50505050505050505050565b610b7081336112dc565b6111c18261082c565b156112265760405162461bcd60e51b815260206004820152602f60248201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e20616c60448201526e1c9958591e481cd8da19591d5b1959608a1b60648201526084016108b1565b6098548110156112875760405162461bcd60e51b815260206004820152602660248201527f54696d656c6f636b436f6e74726f6c6c65723a20696e73756666696369656e746044820152652064656c617960d01b60648201526084016108b1565b611291814261237a565b6000928352609760205260409092209190915550565b60006001600160e01b03198216637965db0b60e01b148061073357506301ffc9a760e01b6001600160e01b0319831614610733565b6112e68282610cf4565b6108c4576112f381611660565b6112fe836020611672565b60405160200161130f9291906123b1565b60408051601f198184030181529082905262461bcd60e51b82526108b191600401612426565b61133e826107dc565b61135a5760405162461bcd60e51b81526004016108b190612459565b80158061137557506000818152609760205260409020546001145b6108c45760405162461bcd60e51b815260206004820152602660248201527f54696d656c6f636b436f6e74726f6c6c65723a206d697373696e6720646570656044820152656e64656e637960d01b60648201526084016108b1565b6000846001600160a01b03168484846040516113ed9291906124a3565b60006040518083038185875af1925050503d806000811461142a576040519150601f19603f3d011682016040523d82523d6000602084013e61142f565b606091505b505090508061149c5760405162461bcd60e51b815260206004820152603360248201527f54696d656c6f636b436f6e74726f6c6c65723a20756e6465726c79696e6720746044820152721c985b9cd858dd1a5bdb881c995d995c9d1959606a1b60648201526084016108b1565b5050505050565b6114ac816107dc565b6114c85760405162461bcd60e51b81526004016108b190612459565b600090815260976020526040902060019055565b6114e68282610cf4565b6108c45760008281526065602090815260408083206001600160a01b03851684529091529020805460ff1916600117905561151e3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b61156c8282610cf4565b156108c45760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600054610100900460ff166115f05760405162461bcd60e51b81526004016108b1906124b3565b6115fc8484848461180d565b50505050565b60008160405160200161161591906124fe565b604051602081830303815290604052805190602001208360405160200161163c91906124fe565b6040516020818303038152906040528051906020012014905092915050565b015190565b60606107336001600160a01b03831660145b6060600061168183600261251a565b61168c90600261237a565b6001600160401b038111156116a3576116a3611bc7565b6040519080825280601f01601f1916602001820160405280156116cd576020820181803683370190505b509050600360fc1b816000815181106116e8576116e861213b565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106117175761171761213b565b60200101906001600160f81b031916908160001a905350600061173b84600261251a565b61174690600161237a565b90505b60018111156117be576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061177a5761177a61213b565b1a60f81b8282815181106117905761179061213b565b60200101906001600160f81b031916908160001a90535060049490941c936117b781612531565b9050611749565b5083156107fb5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016108b1565b600054610100900460ff166118345760405162461bcd60e51b81526004016108b1906124b3565b61184c600080516020612549833981519152806119ec565b6118726000805160206125698339815191526000805160206125498339815191526119ec565b6118986000805160206125898339815191526000805160206125498339815191526119ec565b6118be6000805160206125a98339815191526000805160206125498339815191526119ec565b6118d660008051602061254983398151915230611a37565b6001600160a01b038116156118fd576118fd60008051602061254983398151915282611a37565b60005b835181101561196e5761193a60008051602061256983398151915285838151811061192d5761192d61213b565b6020026020010151611a37565b61195e6000805160206125a983398151915285838151811061192d5761192d61213b565b6119678161220b565b9050611900565b5060005b82518110156119af5761199f60008051602061258983398151915284838151811061192d5761192d61213b565b6119a88161220b565b9050611972565b5060988490556040805160008152602081018690527f11c24f4ead16507c69ac467fbd5e4eed5fb5c699626d2cc6d66421df253886d59101610efb565b600082815260656020526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b6108c482826114dc565b80356001600160a01b0381168114611a5857600080fd5b919050565b60008083601f840112611a6f57600080fd5b5081356001600160401b03811115611a8657600080fd5b602083019150836020828501011115611a9e57600080fd5b9250929050565b600080600080600080600060c0888a031215611ac057600080fd5b611ac988611a41565b96506020880135955060408801356001600160401b03811115611aeb57600080fd5b611af78a828b01611a5d565b989b979a50986060810135976080820135975060a09091013595509350505050565b600060208284031215611b2b57600080fd5b81356001600160e01b0319811681146107fb57600080fd5b60008060008060008060a08789031215611b5c57600080fd5b611b6587611a41565b95506020870135945060408701356001600160401b03811115611b8757600080fd5b611b9389828a01611a5d565b979a9699509760608101359660809091013595509350505050565b600060208284031215611bc057600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611c0557611c05611bc7565b604052919050565b600082601f830112611c1e57600080fd5b81356001600160401b03811115611c3757611c37611bc7565b611c4a601f8201601f1916602001611bdd565b818152846020838601011115611c5f57600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215611c9257600080fd5b611c9b85611a41565b9350611ca960208601611a41565b92506040850135915060608501356001600160401b03811115611ccb57600080fd5b611cd787828801611c0d565b91505092959194509250565b60008060408385031215611cf657600080fd5b82359150611d0660208401611a41565b90509250929050565b60008083601f840112611d2157600080fd5b5081356001600160401b03811115611d3857600080fd5b6020830191508360208260051b8501011115611a9e57600080fd5b600080600080600080600080600060c08a8c031215611d7157600080fd5b89356001600160401b0380821115611d8857600080fd5b611d948d838e01611d0f565b909b50995060208c0135915080821115611dad57600080fd5b611db98d838e01611d0f565b909950975060408c0135915080821115611dd257600080fd5b50611ddf8c828d01611d0f565b9a9d999c50979a969997986060880135976080810135975060a0013595509350505050565b60008060008060408587031215611e1a57600080fd5b84356001600160401b0380821115611e3157600080fd5b611e3d88838901611a5d565b90965094506020870135915080821115611e5657600080fd5b50611e6387828801611a5d565b95989497509550505050565b60008060008060008060008060a0898b031215611e8b57600080fd5b88356001600160401b0380821115611ea257600080fd5b611eae8c838d01611d0f565b909a50985060208b0135915080821115611ec757600080fd5b611ed38c838d01611d0f565b909850965060408b0135915080821115611eec57600080fd5b50611ef98b828c01611d0f565b999c989b509699959896976060870135966080013595509350505050565b600082601f830112611f2857600080fd5b813560206001600160401b03821115611f4357611f43611bc7565b8160051b611f52828201611bdd565b9283528481018201928281019087851115611f6c57600080fd5b83870192505b84831015611f8b57823582529183019190830190611f72565b979650505050505050565b600080600080600060a08688031215611fae57600080fd5b611fb786611a41565b9450611fc560208701611a41565b935060408601356001600160401b0380821115611fe157600080fd5b611fed89838a01611f17565b9450606088013591508082111561200357600080fd5b61200f89838a01611f17565b9350608088013591508082111561202557600080fd5b5061203288828901611c0d565b9150509295509295909350565b600080600080600060a0868803121561205757600080fd5b61206086611a41565b945061206e60208701611a41565b9350604086013592506060860135915060808601356001600160401b0381111561209757600080fd5b61203288828901611c0d565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60018060a01b038716815285602082015260a0604082015260006120f460a0830186886120a3565b60608301949094525060800152949350505050565b60018060a01b03851681528360208201526060604082015260006121316060830184866120a3565b9695505050505050565b634e487b7160e01b600052603260045260246000fd5b60208082526023908201527f54696d656c6f636b436f6e74726f6c6c65723a206c656e677468206d69736d616040820152620e8c6d60eb1b606082015260800190565b6000602082840312156121a657600080fd5b6107fb82611a41565b6000808335601e198436030181126121c657600080fd5b8301803591506001600160401b038211156121e057600080fd5b602001915036819003821315611a9e57600080fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161221d5761221d6121f5565b5060010190565b6040815260006122386040830186886120a3565b8281036020840152611f8b8185876120a3565b818352600060208085019450848460051b86018460005b878110156122cc5783830389528135601e1988360301811261228357600080fd5b870185810190356001600160401b0381111561229e57600080fd5b8036038213156122ad57600080fd5b6122b88582846120a3565b9a87019a9450505090840190600101612262565b5090979650505050505050565b60a0808252810188905260008960c08301825b8b81101561231a576001600160a01b0361230584611a41565b168252602092830192909101906001016122ec565b5083810360208501528881526001600160fb1b0389111561233a57600080fd5b8860051b9150818a60208301370182810360209081016040850152612362908201878961224b565b60608401959095525050608001529695505050505050565b80820180821115610733576107336121f5565b60005b838110156123a8578181015183820152602001612390565b50506000910152565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516123e981601785016020880161238d565b7001034b99036b4b9b9b4b733903937b6329607d1b601791840191820152835161241a81602884016020880161238d565b01602801949350505050565b602081526000825180602084015261244581604085016020870161238d565b601f01601f19169190910160400192915050565b6020808252602a908201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e206973604082015269206e6f7420726561647960b01b606082015260800190565b8183823760009101908152919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6000825161251081846020870161238d565b9190910192915050565b8082028115828204841417610733576107336121f5565b600081612540576125406121f5565b50600019019056fe5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca5b09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc1d8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63fd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f783a164736f6c6343000811000a", - }, - { - ContractAddr: TokenRecoverPortalContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/9d09d0a3d6332460a810188261ec8195e05aa218", - Code: "608060405234801561001057600080fd5b506004361061010b5760003560e01c80638129fc1c116100a2578063b187bd2611610071578063b187bd261461022c578063bfb5a6a114610237578063e33f8d321461024a578063e842426a1461026d578063f1fad1041461029857600080fd5b80638129fc1c146101fc5780638456cb59146102045780639fcb50121461020c578063ac4317511461021957600080fd5b80634a49ac4c116100de5780634a49ac4c1461017c5780634bf6c8821461018f578063572c9980146101a957806374be2150146101bc57600080fd5b8063046f7da2146101105780632eb4a7ab1461011a578063417c73a7146101365780634838d16514610149575b600080fd5b6101186102a0565b005b61012360685481565b6040519081526020015b60405180910390f35b6101186101443660046116a8565b610328565b61016c6101573660046116a8565b60346020526000908152604090205460ff1681565b604051901515815260200161012d565b61011861018a3660046116a8565b6103a4565b610197600881565b60405160ff909116815260200161012d565b6101186101b73660046116c3565b61041d565b6101ef6040518060400160405280601481526020017342696e616e63652d436861696e2d47616e67657360601b81525081565b60405161012d919061173f565b6101186104b3565b610118610625565b60695461016c9060ff1681565b61011861022736600461179b565b6106b1565b60335460ff1661016c565b61011861024536600461184c565b610ad0565b61016c610258366004611926565b6000908152606a602052604090205460ff1690565b606754610280906001600160a01b031681565b6040516001600160a01b03909116815260200161012d565b610197601181565b60335461010090046001600160a01b031633146102d0576040516306fbb1e360e01b815260040160405180910390fd5b60335460ff166102f357604051636cd6020160e01b815260040160405180910390fd5b6033805460ff191690556040517f62451d457bc659158be6e6247f56ec1df424a5c7597f71c20c2bc44e0965c8f990600090a1565b60335461010090046001600160a01b03163314610358576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b038116600081815260346020526040808220805460ff19166001179055517f7fd26be6fc92aff63f1f4409b2b2ddeb272a888031d7f55ec830485ec61941869190a250565b60335461010090046001600160a01b031633146103d4576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b038116600081815260346020526040808220805460ff19169055517fe0db3499b7fdc3da4cddff5f45d694549c19835e7f719fb5606d3ad1a5de40119190a250565b60335461010090046001600160a01b0316331461044d576040516306fbb1e360e01b815260040160405180910390fd5b604051638525db0360e01b8152600481018390526001600160a01b038216602482015261100490638525db0390604401600060405180830381600087803b15801561049757600080fd5b505af11580156104ab573d6000803e3d6000fd5b505050505050565b600054610100900460ff16158080156104d35750600054600160ff909116105b806104ed5750303b1580156104ed575060005460ff166001145b6105555760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff191660011790558015610578576000805461ff0019166101001790555b3341146105985760405163022d8c9560e31b815260040160405180910390fd5b3a156105b7576040516383f1b1d360e01b815260040160405180910390fd5b6105bf610e30565b6105dc7330151da466ec8ab345bef3d6983023e050fb0673610e5d565b8015610622576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50565b60335461010090046001600160a01b03163314610655576040516306fbb1e360e01b815260040160405180910390fd5b60335460ff161561067957604051631785c68160e01b815260040160405180910390fd5b6033805460ff191660011790556040517f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e75290600090a1565b33611007146106d757604051630f22c43960e41b8152611007600482015260240161054c565b6107416040518060400160405280600f81526020016e617070726f76616c4164647265737360881b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050610eac9050565b1561080b576014811461076f5783838383604051630a5a604160e01b815260040161054c9493929190611968565b60006107b5601484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050610f069050565b90506001600160a01b0381166107e65784848484604051630a5a604160e01b815260040161054c9493929190611968565b606780546001600160a01b0319166001600160a01b0392909216919091179055610a8d565b6108706040518060400160405280600a8152602001691b595c9adb19549bdbdd60b21b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050610eac9050565b156109405760695460ff1615610899576040516379b3306f60e11b815260040160405180910390fd5b602081146108c25783838383604051630a5a604160e01b815260040161054c9493929190611968565b604080516020601f8401819004810282018101909252828152600091610903918585808385018382808284376000920191909152509293925050610f069050565b90508061092b5784848484604051630a5a604160e01b815260040161054c9493929190611968565b6068556069805460ff19166001179055610a8d565b6109b86040518060400160405280601b81526020017f746f6b656e5265636f766572506f7274616c50726f746563746f72000000000081525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050610eac9050565b15610a6c57601481146109e65783838383604051630a5a604160e01b815260040161054c9493929190611968565b6000610a2c601484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050610f069050565b90506001600160a01b038116610a5d5784848484604051630a5a604160e01b815260040161054c9493929190611968565b610a6681610f0b565b50610a8d565b838383836040516325ee20d560e21b815260040161054c9493929190611968565b7ff1ce9b2cbf50eeb05769a29e2543fd350cab46894a7dd9978a12d534bb20e63384848484604051610ac29493929190611968565b60405180910390a150505050565b60695460ff16610af35760405163678f619760e11b815260040160405180910390fd5b606854610b135760405163678f619760e11b815260040160405180910390fd5b6067546001600160a01b0316610b3c57604051631a1b977b60e31b815260040160405180910390fd5b60335460ff1615610b6057604051631785c68160e01b815260040160405180910390fd5b610b68610f72565b6000610bf689898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a9081908401838280828437600081840152601f19601f82011690508083019250505050505050610bf18e8e33610fcb565b6110ec565b90506000818c8c604051602001610c0f9392919061199a565b604051602081830303815290604052805190602001209050610c40816000908152606a602052604090205460ff1690565b15610c5d57604051623e493160e81b815260040160405180910390fd5b610d053389898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a908190840183828082843760009201919091525050604080516020808c0282810182019093528b82528994509092508b918b918291908501908490808284376000920191909152506111c492505050565b610d468484808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505060685491508490506112cf565b610d63576040516309bde33960e01b815260040160405180910390fd5b6000818152606a602052604090819020805460ff191660011790555163799758b960e01b8152600481018d9052336024820152604481018c90526110049063799758b990606401600060405180830381600087803b158015610dc457600080fd5b505af1158015610dd8573d6000803e3d6000fd5b505050507f39cc0b7297a0ef9102d75ebc4919ffec0347d50008c2b865eda4125d5812cb64828d338e604051610e1194939291906119c1565b60405180910390a15050610e2460018055565b50505050505050505050565b600054610100900460ff16610e575760405162461bcd60e51b815260040161054c906119f9565b60018055565b600054610100900460ff16610e845760405162461bcd60e51b815260040161054c906119f9565b603380546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b600081604051602001610ebf9190611a44565b6040516020818303038152906040528051906020012083604051602001610ee69190611a44565b604051602081830303815290604052805190602001201490505b92915050565b015190565b6033546040516001600160a01b0380841692610100900416907f44fc1b38a4abaa91ebd1b628a5b259a698f86238c8217d68f516e87769c60c0b90600090a3603380546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b600260015403610fc45760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161054c565b6002600155565b600060026040518060400160405280601481526020017342696e616e63652d436861696e2d47616e67657360601b8152506110288560405160200161101291815260200190565b60405160208183030381529060405260006112e5565b6040516bffffffffffffffffffffffff19606087901b1660208201526110619060340160405160208183030381529060405260016112e5565b6110778860405160200161101291815260200190565b60405160200161108a9493929190611a60565b60408051601f19818403018152908290526110a491611a44565b602060405180830381855afa1580156110c1573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906110e49190611b8f565b949350505050565b6060835160211461111057604051638152ea1b60e01b815260040160405180910390fd5b825160401461113257604051635e4bd79760e11b815260040160405180910390fd5b604080516020808252818301909252600091602082018180368337019050509050826020820152600085858360405160200161117093929190611bbe565b60408051808303601f190181526014808452838301909252925060009190602082018180368337019050509050815160146020830182602086016069600019fa6111b957600080fd5b509695505050505050565b606060005b825181101561122257818382815181106111e5576111e5611c01565b60200260200101516040516020016111fe929190611c17565b6040516020818303038152906040529150808061121a90611c4f565b9150506111c9565b5060006040518060400160405280601481526020017342696e616e63652d436861696e2d47616e67657360601b8152508787866068548660405160200161126e96959493929190611c68565b60408051601f1981840301815291905280516020909101206067549091506001600160a01b031661129f86836114b7565b6001600160a01b0316146112c6576040516356b00a4f60e11b815260040160405180910390fd5b50505050505050565b6000826112dc8584611551565b14949350505050565b60606000835160026112f79190611cd9565b67ffffffffffffffff81111561130f5761130f611ba8565b6040519080825280601f01601f191660200182016040528015611339576020820181803683370190505b5060408051808201909152601081526f181899199a1a9b1b9c1cb0b131b232b360811b602082015290915060005b855181101561147f5781825187838151811061138557611385611c01565b0160200151611397919060f81c611d06565b815181106113a7576113a7611c01565b01602001516001600160f81b031916836113c2836002611cd9565b815181106113d2576113d2611c01565b60200101906001600160f81b031916908160001a9053508182518783815181106113fe576113fe611c01565b0160200151611410919060f81c611d1a565b8151811061142057611420611c01565b01602001516001600160f81b0319168361143b836002611cd9565b611446906001611d2e565b8151811061145657611456611c01565b60200101906001600160f81b031916908160001a9053508061147781611c4f565b915050611367565b5083156114af57816040516020016114979190611d41565b60405160208183030381529060405292505050610f00565b509392505050565b600082516041146114db576040516356b00a4f60e11b815260040160405180910390fd5b60208301516040840151606085015160001a601b81101561150457611501601b82611d6b565b90505b601b8160ff1610806115195750601c8160ff16115b15611537576040516356b00a4f60e11b815260040160405180910390fd5b600061154586838686611596565b50979650505050505050565b600081815b84518110156114af576115828286838151811061157557611575611c01565b602002602001015161165a565b91508061158e81611c4f565b915050611556565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156115cd5750600090506003611651565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611621573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661164a57600060019250925050611651565b9150600090505b94509492505050565b6000818310611676576000828152602084905260409020611685565b60008381526020839052604090205b9392505050565b80356001600160a01b03811681146116a357600080fd5b919050565b6000602082840312156116ba57600080fd5b6116858261168c565b600080604083850312156116d657600080fd5b823591506116e66020840161168c565b90509250929050565b60005b8381101561170a5781810151838201526020016116f2565b50506000910152565b6000815180845261172b8160208601602086016116ef565b601f01601f19169290920160200192915050565b6020815260006116856020830184611713565b60008083601f84011261176457600080fd5b50813567ffffffffffffffff81111561177c57600080fd5b60208301915083602082850101111561179457600080fd5b9250929050565b600080600080604085870312156117b157600080fd5b843567ffffffffffffffff808211156117c957600080fd5b6117d588838901611752565b909650945060208701359150808211156117ee57600080fd5b506117fb87828801611752565b95989497509550505050565b60008083601f84011261181957600080fd5b50813567ffffffffffffffff81111561183157600080fd5b6020830191508360208260051b850101111561179457600080fd5b60008060008060008060008060008060c08b8d03121561186b57600080fd5b8a35995060208b0135985060408b013567ffffffffffffffff8082111561189157600080fd5b61189d8e838f01611752565b909a50985060608d01359150808211156118b657600080fd5b6118c28e838f01611752565b909850965060808d01359150808211156118db57600080fd5b6118e78e838f01611752565b909650945060a08d013591508082111561190057600080fd5b5061190d8d828e01611807565b915080935050809150509295989b9194979a5092959850565b60006020828403121561193857600080fd5b5035919050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60408152600061197c60408301868861193f565b828103602084015261198f81858761193f565b979650505050505050565b600084516119ac8184602089016116ef565b91909101928352506020820152604001919050565b6080815260006119d46080830187611713565b6020830195909552506001600160a01b03929092166040830152606090910152919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60008251611a568184602087016116ef565b9190910192915050565b7f7b226163636f756e745f6e756d626572223a2230222c22636861696e5f6964228152611d1160f11b602082015260008551611aa3816022850160208a016116ef565b7f222c2264617461223a6e756c6c2c226d656d6f223a22222c226d736773223a5b6022918401918201526a3d9130b6b7bab73a111d1160a91b60428201528551611af481604d840160208a016116ef565b6e1116113932b1b4b834b2b73a111d1160891b604d92909101918201528451611b2481605c8401602089016116ef565b711116113a37b5b2b72fb9bcb6b137b6111d1160711b605c92909101918201528351611b5781606e8401602088016116ef565b7f227d5d2c2273657175656e6365223a2230222c22736f75726365223a2230227d606e9290910191820152608e019695505050505050565b600060208284031215611ba157600080fd5b5051919050565b634e487b7160e01b600052604160045260246000fd5b60008451611bd08184602089016116ef565b845190830190611be48183602089016116ef565b8451910190611bf78183602088016116ef565b0195945050505050565b634e487b7160e01b600052603260045260246000fd5b60008351611c298184602088016116ef565b9190910191825250602001919050565b634e487b7160e01b600052601160045260246000fd5b600060018201611c6157611c61611c39565b5060010190565b60008751611c7a818460208c016116ef565b606088901b6bffffffffffffffffffffffff19169083019081528651611ca7816014840160208b016116ef565b0160148101869052603481018590528351611cc98160548401602088016116ef565b0160540198975050505050505050565b8082028115828204841417610f0057610f00611c39565b634e487b7160e01b600052601260045260246000fd5b600082611d1557611d15611cf0565b500490565b600082611d2957611d29611cf0565b500690565b80820180821115610f0057610f00611c39565b61060f60f31b815260008251611d5e8160028501602087016116ef565b9190910160020192915050565b60ff8181168382160190811115610f0057610f00611c3956fea164736f6c6343000811000a", - }, - }, - } - - FeynmanUpgrade[networkname.RialtoChainName] = &Upgrade{ - UpgradeName: "feynman", - Configs: []*UpgradeConfig{ - { - ContractAddr: ValidatorContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/2d6372ddba77902ef01e45887a425938376d5a5c", - Code: "6080604052600436106104fb5760003560e01c806388b32f111161028c578063c6d339451161015a578063e40716a1116100cc578063f92eb86b11610085578063f92eb86b14610d2d578063f9a2bbc714610d42578063fc3e590814610d57578063fccc281314610d6c578063fd4ad81f14610d81578063fd6a687914610db057610502565b8063e40716a114610c9b578063ea321e4914610cb0578063eb57e20214610cd0578063eda5868c14610cf0578063f1fad10414610d05578063f340fa0114610d1a57610502565b8063d86222d51161011e578063d86222d514610c1d578063daacdb6614610c32578063dc927faf14610c47578063df8079e914610c5c578063e086c7b114610c71578063e1c7392a14610c8657610502565b8063c6d3394514610bbe578063c81b166214610bd3578063c8509d811461098d578063ce910b0c14610be8578063d68fb56a14610c0857610502565b8063a78abc16116101fe578063ad3c9da6116101b7578063ad3c9da614610b3d578063aef198a914610b5d578063b7ab4db514610b72578063b8cf4ef114610b94578063bf9f4995146106fe578063c466689d14610ba957610502565b8063a78abc1614610ab4578063aa82dce114610ac9578063aad5606314610ade578063aaf5eb6814610af3578063ab51bb9614610b08578063ac43175114610b1d57610502565b806396713da91161025057806396713da914610a365780639dc0926214610a4b5780639fe0f81614610a60578063a0dc275814610a75578063a1a11bf514610a8a578063a5422d5c14610a9f57610502565b806388b32f11146109c25780638a7beb01146109d75780638b5ad0c9146109ec5780638d19a41014610a015780639369d7de14610a2157610502565b806351b4dce3116103c957806370fd5bad1161033b5780637e434d54116102f45780637e434d541461094e57806381650b6214610963578063820dcaa814610978578063831d65d11461098d578063853230aa1461090f57806386249882146109ad57610502565b806370fd5bad146108d0578063718a8aa8146108e557806375d47a0a146108fa57806378dfed4a1461090f5780637942fd05146109245780637a84ca2a1461093957610502565b80635d77156c1161038d5780635d77156c1461082a5780635de1e22c1461083f57806360eba4fe1461085457806362b72cf5146108745780636969a25c146108895780636e47b482146108bb57610502565b806351b4dce3146107ab57806351e80672146107c057806355614fcc146107d5578063565c56b3146107f55780635667515a1461081557610502565b8063300c35671161046d57806343756e5c1161042657806343756e5c1461072057806345cf9daf14610735578063493279b11461074a5780634bf6c8821461076c5780634df6e0c3146107815780635192c82c1461079657610502565b8063300c35671461065b578063321d398a1461067b5780633365af3a1461069b57806335409f7f146106bb5780633b071dcc146106db5780633dffc387146106fe57610502565b8063152ad3b8116104bf578063152ad3b8146105ba5780631e4c1524146105dc5780631ff18069146105fc578063219f22d51461061157806328087028146106265780632a0ffb6e1461063b57610502565b806304c4fec61461050757806307a568471461051e5780630bee7a67146105495780630e2374a51461056b5780631182b8751461058d57610502565b3661050257005b600080fd5b34801561051357600080fd5b5061051c610dc5565b005b34801561052a57600080fd5b50610533610e37565b6040516105409190618f97565b60405180910390f35b34801561055557600080fd5b5061055e610e3d565b6040516105409190618fc1565b34801561057757600080fd5b50610580610e42565b60405161054091906182aa565b34801561059957600080fd5b506105ad6105a8366004618190565b610e48565b604051610540919061843d565b3480156105c657600080fd5b506105cf611144565b6040516105409190618432565b3480156105e857600080fd5b5061051c6105f7366004617f9e565b61114d565b34801561060857600080fd5b50610533611823565b34801561061d57600080fd5b5061055e611829565b34801561063257600080fd5b5061058061182e565b34801561064757600080fd5b5061051c610656366004617efe565b611834565b34801561066757600080fd5b5061051c610676366004617f36565b6118e1565b34801561068757600080fd5b506105cf61069636600461813d565b611c2a565b3480156106a757600080fd5b506105cf6106b636600461813d565b611cf9565b3480156106c757600080fd5b5061051c6106d6366004617efe565b611daa565b3480156106e757600080fd5b506106f0611f0f565b604051610540929190618348565b34801561070a57600080fd5b506107136121eb565b6040516105409190618fd2565b34801561072c57600080fd5b506105806121f0565b34801561074157600080fd5b506105336121f6565b34801561075657600080fd5b5061075f6121fc565b6040516105409190618f88565b34801561077857600080fd5b50610713612202565b34801561078d57600080fd5b506106f0612207565b3480156107a257600080fd5b50610533612393565b3480156107b757600080fd5b50610580612399565b3480156107cc57600080fd5b5061058061239f565b3480156107e157600080fd5b506105cf6107f0366004617efe565b6123a5565b34801561080157600080fd5b50610533610810366004617efe565b6123da565b34801561082157600080fd5b5061071361242b565b34801561083657600080fd5b5061055e612430565b34801561084b57600080fd5b50610533612435565b34801561086057600080fd5b506105ad61086f36600461813d565b61243b565b34801561088057600080fd5b506105336124e1565b34801561089557600080fd5b506108a96108a436600461813d565b6124e7565b604051610540969594939291906182d7565b3480156108c757600080fd5b5061058061254b565b3480156108dc57600080fd5b50610713612551565b3480156108f157600080fd5b50610713612556565b34801561090657600080fd5b5061058061255b565b34801561091b57600080fd5b50610533612561565b34801561093057600080fd5b50610713612567565b34801561094557600080fd5b5061053361256c565b34801561095a57600080fd5b50610580612572565b34801561096f57600080fd5b5061055e612578565b34801561098457600080fd5b5061053361257d565b34801561099957600080fd5b5061051c6109a8366004618190565b612583565b3480156109b957600080fd5b506105336125e4565b3480156109ce57600080fd5b506105336125ea565b3480156109e357600080fd5b506105cf6125f0565b3480156109f857600080fd5b506105336125f9565b348015610a0d57600080fd5b50610533610a1c366004617efe565b6125ff565b348015610a2d57600080fd5b5061051c61263f565b348015610a4257600080fd5b50610713612753565b348015610a5757600080fd5b50610580612758565b348015610a6c57600080fd5b5061053361275e565b348015610a8157600080fd5b50610533612763565b348015610a9657600080fd5b50610580612768565b348015610aab57600080fd5b506105ad61276e565b348015610ac057600080fd5b506105cf61278a565b348015610ad557600080fd5b50610580612793565b348015610aea57600080fd5b50610580612799565b348015610aff57600080fd5b5061053361279f565b348015610b1457600080fd5b5061055e61242b565b348015610b2957600080fd5b5061051c610b383660046180e1565b6127a8565b348015610b4957600080fd5b50610533610b58366004617efe565b613061565b348015610b6957600080fd5b50610533613073565b348015610b7e57600080fd5b50610b87613080565b6040516105409190618335565b348015610ba057600080fd5b5061053361316c565b348015610bb557600080fd5b50610533613171565b348015610bca57600080fd5b50610533612551565b348015610bdf57600080fd5b50610580613177565b348015610bf457600080fd5b506105ad610c0336600461813d565b61317d565b348015610c1457600080fd5b5061053361318a565b348015610c2957600080fd5b506105336131c9565b348015610c3e57600080fd5b506105336131d5565b348015610c5357600080fd5b506105806131db565b348015610c6857600080fd5b506105806131e1565b348015610c7d57600080fd5b50610533610e3d565b348015610c9257600080fd5b5061051c6131e7565b348015610ca757600080fd5b50610533613478565b348015610cbc57600080fd5b506105cf610ccb3660046180a2565b61347e565b348015610cdc57600080fd5b5061051c610ceb366004617efe565b613604565b348015610cfc57600080fd5b5061055e613708565b348015610d1157600080fd5b5061071361370d565b61051c610d28366004617efe565b613712565b348015610d3957600080fd5b50610533613a91565b348015610d4e57600080fd5b50610580613a97565b348015610d6357600080fd5b5061071361275e565b348015610d7857600080fd5b50610580613a9d565b348015610d8d57600080fd5b50610da1610d9c36600461813d565b613aa3565b60405161054093929190618fa0565b348015610dbc57600080fd5b50610580613b65565b6000610dd0336125ff565b9050600b8181548110610ddf57fe5b600091825260209091206001601690920201015460ff16610e1b5760405162461bcd60e51b8152600401610e1290618ba3565b60405180910390fd5b6000610e2561318a565b9050610e32338383613b6b565b505050565b60095481565b606481565b61200181565b60005460609060ff16610e6d5760405162461bcd60e51b8152600401610e1290618664565b600b54610f2b57610e7c617aaa565b60015460005b81811015610f2757600b805460018101825560009190915283516000805160206190a483398151915260169092029182019081556020808601516000805160206190e48339815191528401805460ff1916911515919091179055604086015180518794610f03936000805160206190c4833981519152909101920190617ad9565b506060820151610f199060038301906013617b53565b505050806001019050610e82565b5050505b610f33617b80565b6000610f7485858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613e3092505050565b9150915080610f9057610f876064613fec565b9250505061113d565b815160009060ff16610fb557610fae8360200151846040015161404d565b9050611109565b825160ff166001141561110557826020015151600114610ffa57600080516020619084833981519152604051610fea90618a5c565b60405180910390a1506067611100565b6000836020015160008151811061100d57fe5b602090810291909101810151516001600160a01b0381166000908152600490925260409091205490915080158061106e575060018082038154811061104e57fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b156110ac576040516001600160a01b038316907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a26110f9565b60006110bb836001840361520f565b9050806110f7576040516001600160a01b038416907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a25b505b6000925050505b611109565b5060655b63ffffffff811661112e575050604080516000815260208101909152915061113d9050565b61113781613fec565b93505050505b9392505050565b60075460ff1681565b33411461116c5760405162461bcd60e51b8152600401610e1290618df3565b3a1561118a5760405162461bcd60e51b8152600401610e1290618ae2565b82516040805182815260208084028201019091526060908280156111c857816020015b6111b5617ba4565b8152602001906001900390816111ad5790505b50905060005b82811015611272576040518060c001604052808783815181106111ed57fe5b60200260200101516001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b0316815260200186838151811061122f57fe5b60200260200101516001600160401b03168152602001600015158152602001600081525082828151811061125f57fe5b60209081029190910101526001016111ce565b5060405163d31f968d60e01b81526120009063d31f968d9061129d9061100090600890600401618319565b60206040518083038186803b1580156112b557600080fd5b505afa1580156112c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ed9190618082565b156116105780516015548181111561138f57815b8181101561138d57601580548061131457fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055601680548061136757fe5b6001900381819060005260206000200160006113839190617bd9565b9055600101611301565b505b60005b828110156115cf578181106114b75760158482815181106113af57fe5b602090810291909101810151825460018181018555600094855293839020825160049092020180546001600160a01b039283166001600160a01b0319918216178255938301519481018054958316958516959095179094556040820151600285018054606085015160808601511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590961692909716919091179290921692909217169290921790915560a00151600390910155855160169087908390811061147f57fe5b602090810291909101810151825460018101845560009384529282902081516114b19491909101929190910190617ad9565b506115c7565b8381815181106114c357fe5b6020026020010151601582815481106114d857fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a090910151600390910155855186908290811061159357fe5b6020026020010151601682815481106115a857fe5b9060005260206000200190805190602001906115c5929190617ad9565b505b600101611392565b507fb8e726330a0dad1cf3d04e925663b17e391f1ed547d79b7f4e5f344119b44246826040516115ff9190618f97565b60405180910390a150505050610e32565b60608061161d83866155d2565b9150915060005b6001548110156117135760006001828154811061163d57fe5b90600052602060002090600402016003015490508060001461170a5760006001838154811061166857fe5b9060005260206000209060040201600301819055506120026001600160a01b031663092193ab826001858154811061169c57fe5b60009182526020909120600491820201546040516001600160e01b031960e086901b1681526116d7926001600160a01b0390921691016182aa565b6000604051808303818588803b1580156116f057600080fd5b505af1158015611704573d6000803e3d6000fd5b50505050505b50600101611624565b504715611781577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d476040516117499190618f97565b60405180910390a1604051611002904780156108fc02916000818181858888f1935050505015801561177f573d6000803e3d6000fd5b505b6000600381905560055581511561179c5761179c8282615ab9565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156117d957600080fd5b505af11580156117ed573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a150505050505050565b60035481565b606881565b61200581565b33612002146118555760405162461bcd60e51b8152600401610e1290618f51565b60005b6015548110156118dd57816001600160a01b03166015828154811061187957fe5b60009182526020909120600490910201546001600160a01b031614156118d5576001601582815481106118a857fe5b9060005260206000209060040201600201601c6101000a81548160ff0219169083151502179055506118dd565b600101611858565b5050565b3341146119005760405162461bcd60e51b8152600401610e1290618df3565b60105443116119215760405162461bcd60e51b8152600401610e12906187f7565b3a1561193f5760405162461bcd60e51b8152600401610e1290618ae2565b60005460ff166119615760405162461bcd60e51b8152600401610e1290618664565b60006110023168056bc75e2d63100000811115611998576119918168056bc75e2d6310000063ffffffff6162a816565b915061199f565b5050611c20565b6040516309a99b4f60e41b815261100290639a99b4f0906119c690309086906004016182be565b602060405180830381600087803b1580156119e057600080fd5b505af11580156119f4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a189190618155565b915081611a26575050611c20565b6000805b84811015611a5457858582818110611a3e57fe5b9050602002013582019150806001019050611a2a565b5080611a6257505050611c20565b6000806000805b89811015611c185784898983818110611a7e57fe5b90506020020135880281611a8e57fe5b0493508a8a82818110611a9d57fe5b9050602002016020810190611ab29190617efe565b6001600160a01b03811660009081526004602052604090205490935091508115611bce576000600180840381548110611ae757fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff1615611b5457836001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d8586604051611b479190618f97565b60405180910390a2611bc8565b600354611b67908663ffffffff6162ea16565b6003908155810154611b7f908663ffffffff6162ea16565b60038201556040516001600160a01b038516907fcb0aad6cf9cd03bdf6137e359f541c42f38b39f007cae8e89e88aa7d8c6617b290611bbf908890618f97565b60405180910390a25b50611c10565b826001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d8585604051611c079190618f97565b60405180910390a25b600101611a69565b505050505050505b5050436010555050565b6001546000908210611c3e57506000611cf4565b60006001600160a01b031660018381548110611c5657fe5b60009182526020909120600490910201546001600160a01b03161480611c8657506008541580611c865750600a54155b80611c95575060085460095410155b80611ca65750611ca482611cf9565b155b80611ccf57506000600b8381548110611cbb57fe5b906000526020600020906016020160000154115b80611ce357506001611cdf613080565b5111155b15611cf057506000611cf4565b5060015b919050565b6001546000908210611d0d57506000611cf4565b600b548210611d4a5760018281548110611d2357fe5b9060005260206000209060040201600201601c9054906101000a900460ff16159050611cf4565b60018281548110611d5757fe5b9060005260206000209060040201600201601c9054906101000a900460ff16158015611da45750600b8281548110611d8b57fe5b600091825260209091206001601690920201015460ff16155b92915050565b600b54611e6857611db9617aaa565b60015460005b81811015611e6457600b805460018101825560009190915283516000805160206190a483398151915260169092029182019081556020808601516000805160206190e48339815191528401805460ff1916911515919091179055604086015180518794611e40936000805160206190c4833981519152909101920190617ad9565b506060820151611e569060038301906013617b53565b505050806001019050611dbf565b5050505b336110011480611e79575033612002145b611e955760405162461bcd60e51b8152600401610e129061869b565b6001600160a01b03811660009081526004602052604090205480611eb95750611f0c565b6001810390506000600b8281548110611ece57fe5b600091825260209091206001601690920201015460ff169050611ef1838361520f565b8015611efa5750805b15610e32576009805460001901905550505b50565b60015460609081906000805b82811015611f625760018181548110611f3057fe5b9060005260206000209060040201600201601c9054906101000a900460ff16611f5a576001909101905b600101611f1b565b50606081604051908082528060200260200182016040528015611f8f578160200160208202803683370190505b509050606082604051908082528060200260200182016040528015611fc857816020015b6060815260200190600190039081611fb35790505b50600b54600094509091508414156121435760005b8481101561213d5760018181548110611ff257fe5b9060005260206000209060040201600201601c9054906101000a900460ff16612135576001818154811061202257fe5b600091825260209091206004909102015483516001600160a01b039091169084908690811061204d57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600b818154811061207a57fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156121125780601f106120e757610100808354040283529160200191612112565b820191906000526020600020905b8154815290600101906020018083116120f557829003601f168201915b505050505082858151811061212357fe5b60209081029190910101526001909301925b600101611fdd565b506121df565b60005b848110156121dd576001818154811061215b57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166121d5576001818154811061218b57fe5b600091825260209091206004909102015483516001600160a01b03909116908490869081106121b657fe5b6001600160a01b03909216602092830291909101909101526001909301925b600101612146565b505b909450925050505b9091565b600181565b61100181565b60085481565b6102ca81565b600881565b6060806000600e549050600080600c5411612223576015612227565b600c545b90506060612233613080565b905060606122408261630f565b9050828251116122575790945092506121e7915050565b83838351031015612269578282510393505b831561229f576014430461228583838388880360008a8a61647d565b61229d8383838888038989038a8b8b8b51030161647d565b505b6060836040519080825280602002602001820160405280156122cb578160200160208202803683370190505b50905060608460405190808252806020026020018201604052801561230457816020015b60608152602001906001900390816122ef5790505b50905060005b858110156123855784818151811061231e57fe5b602002602001015183828151811061233257fe5b60200260200101906001600160a01b031690816001600160a01b03168152505083818151811061235e57fe5b602002602001015182828151811061237257fe5b602090810291909101015260010161230a565b509096509450505050509091565b60065481565b61200681565b61200081565b6001600160a01b038116600090815260046020526040812054806123cd576000915050611cf4565b6000190161113d81611cf9565b6001600160a01b03811660009081526004602052604081205480612402576000915050611cf4565b60018082038154811061241157fe5b906000526020600020906004020160030154915050919050565b600081565b606781565b600f5481565b6012818154811061244857fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152935090918301828280156124d95780601f106124ae576101008083540402835291602001916124d9565b820191906000526020600020905b8154815290600101906020018083116124bc57829003601f168201915b505050505081565b60105481565b600181815481106124f457fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b601081565b61100881565b6103e881565b600b81565b600c5481565b61200381565b606681565b61271081565b33612000146125a45760405162461bcd60e51b8152600401610e1290618da4565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f389021016058383836040516125d793929190618fe0565b60405180910390a1505050565b60025481565b60115481565b60145460ff1681565b600a5481565b6001600160a01b038116600090815260046020526040812054806126355760405162461bcd60e51b8152600401610e1290618d2c565b6000190192915050565b600b546126fd5761264e617aaa565b60015460005b818110156126f957600b805460018101825560009190915283516000805160206190a483398151915260169092029182019081556020808601516000805160206190e48339815191528401805460ff19169115159190911790556040860151805187946126d5936000805160206190c4833981519152909101920190617ad9565b5060608201516126eb9060038301906013617b53565b505050806001019050612654565b5050505b60085461270a5760036008555b600a54612717576002600a555b6000612722336125ff565b905061272d81611c2a565b6127495760405162461bcd60e51b8152600401610e1290618a19565b611f0c33826165d4565b600981565b61100781565b600381565b601481565b61100681565b6040518060a00160405280607881526020016191046078913981565b60005460ff1681565b61200281565b61300081565b6402540be40081565b60005460ff166127ca5760405162461bcd60e51b8152600401610e1290618664565b33611007146127eb5760405162461bcd60e51b8152600401610e1290618b10565b61285584848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b6020820152915061666c9050565b156128f2576020811461287a5760405162461bcd60e51b8152600401610e1290618ce6565b604080516020601f84018190048102820181019092528281526000916128b8918585808385018382808284376000920191909152506166c592505050565b9050606481101580156128ce5750620186a08111155b6128ea5760405162461bcd60e51b8152600401610e1290618909565b60025561301e565b61295284848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260098152686275726e526174696f60b81b6020820152915061666c9050565b156129f557602081146129775760405162461bcd60e51b8152600401610e1290618482565b604080516020601f84018190048102820181019092528281526000916129b5918585808385018382808284376000920191909152506166c592505050565b90506127106129cf600f54836162ea90919063ffffffff16565b11156129ed5760405162461bcd60e51b8152600401610e12906184b9565b60065561301e565b612a5f84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260138152726d61784e756d4f664d61696e7461696e696e6760681b6020820152915061666c9050565b15612af95760208114612a845760405162461bcd60e51b8152600401610e1290618521565b604080516020601f8401819004810282018101909252828152600091612ac2918585808385018382808284376000920191909152506166c592505050565b600c5490915080612ad1575060155b808210612af05760405162461bcd60e51b8152600401610e1290618861565b5060085561301e565b612b6284848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61696e7461696e536c6173685363616c6560701b6020820152915061666c9050565b15612bfb5760208114612b875760405162461bcd60e51b8152600401610e12906185ea565b604080516020601f8401819004810282018101909252828152600091612bc5918585808385018382808284376000920191909152506166c592505050565b9050600081118015612bd75750600a81105b612bf35760405162461bcd60e51b8152600401610e1290618e84565b600a5561301e565b612c6f84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601981527f6d61784e756d4f66576f726b696e6743616e64696461746573000000000000006020820152915061666c9050565b15612cfe5760208114612c945760405162461bcd60e51b8152600401610e129061859e565b604080516020601f8401819004810282018101909252828152600091612cd2918585808385018382808284376000920191909152506166c592505050565b9050600d54811115612cf65760405162461bcd60e51b8152600401610e129061897f565b600e5561301e565b612d6784848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61784e756d4f6643616e6469646174657360701b6020820152915061666c9050565b15612de95760208114612d8c5760405162461bcd60e51b8152600401610e1290618b5e565b604080516020601f8401819004810282018101909252828152600091612dca918585808385018382808284376000920191909152506166c592505050565b600d819055600e54909150811015612de357600d54600e555b5061301e565b612e4d84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c6e756d4f66436162696e65747360981b6020820152915061666c9050565b15612efb5760208114612e725760405162461bcd60e51b8152600401610e129061862f565b604080516020601f8401819004810282018101909252828152600091612eb0918585808385018382808284376000920191909152506166c592505050565b905060008111612ed25760405162461bcd60e51b8152600401610e1290618709565b6064811115612ef35760405162461bcd60e51b8152600401610e1290618751565b600c5561301e565b612f6384848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601181527073797374656d526577617264526174696f60781b6020820152915061666c9050565b156130065760208114612f885760405162461bcd60e51b8152600401610e1290618e40565b604080516020601f8401819004810282018101909252828152600091612fc6918585808385018382808284376000920191909152506166c592505050565b9050612710612fe0600654836162ea90919063ffffffff16565b1115612ffe5760405162461bcd60e51b8152600401610e1290618c47565b600f5561301e565b60405162461bcd60e51b8152600401610e1290618ee1565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040516130539493929190618450565b60405180910390a150505050565b60046020526000908152604090205481565b68056bc75e2d6310000081565b6001546060906000805b828110156130af5761309b81611cf9565b156130a7578160010191505b60010161308a565b506060816040519080825280602002602001820160405280156130dc578160200160208202803683370190505b5090506000915060005b83811015613163576130f781611cf9565b1561315b576001818154811061310957fe5b600091825260209091206004909102015482516001600160a01b039091169083908590811061313457fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508260010192505b6001016130e6565b50925050505b90565b601581565b61027181565b61100281565b6013818154811061244857fe5b6000613194613080565b519050600080600c54116131a95760156131ad565b600c545b9050808211156131bb578091505b816131c557600191505b5090565b67016345785d8a000081565b60055481565b61100381565b61200481565b60005460ff161561320a5760405162461bcd60e51b8152600401610e1290618c10565b613212617b80565b60006132356040518060a001604052806078815260200161910460789139613e30565b91509150806132565760405162461bcd60e51b8152600401610e1290618d63565b61325e617aaa565b60005b83602001515181101561345f57600b805460018101825560009190915282516000805160206190a483398151915260169092029182019081556020808501516000805160206190e48339815191528401805460ff19169115159190911790556040850151805186946132e7936000805160206190c4833981519152909101920190617ad9565b5060608201516132fd9060038301906013617b53565b5050508360400151818151811061331057fe5b6020026020010151600b828154811061332557fe5b90600052602060002090601602016002019080519060200190613349929190617ad9565b5060018460200151828151811061335c57fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a09093015160039093019290925591870151805191850193918590811061343257fe5b602090810291909101810151516001600160a01b0316825281019190915260400160002055600101613261565b50506103e860025550506000805460ff19166001179055565b600d5481565b601354600090815b818110156135875761356f85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506013805490925085915081106134d757fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156135655780601f1061353a57610100808354040283529160200191613565565b820191906000526020600020905b81548152906001019060200180831161354857829003601f168201915b50505050506166ca565b1561357f57600192505050611da4565b600101613486565b5060125460005b818110156135f8576135df86868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506012805490925085915081106134d757fe5b156135f05760019350505050611da4565b60010161358e565b50600095945050505050565b33611001146136255760405162461bcd60e51b8152600401610e1290618f08565b600b546136e357613634617aaa565b60015460005b818110156136df57600b805460018101825560009190915283516000805160206190a483398151915260169092029182019081556020808601516000805160206190e48339815191528401805460ff19169115159190911790556040860151805187946136bb936000805160206190c4833981519152909101920190617ad9565b5060608201516136d19060038301906013617b53565b50505080600101905061363a565b5050505b60006136ee8261672e565b90506136f981611c2a565b156118dd576118dd82826165d4565b606581565b601181565b3341146137315760405162461bcd60e51b8152600401610e1290618df3565b60005460ff166137535760405162461bcd60e51b8152600401610e1290618664565b600034116137735760405162461bcd60e51b8152600401610e1290618950565b3a156137915760405162461bcd60e51b8152600401610e1290618ae2565b6001600160a01b03811660009081526004602052604090205460145434919060ff166137d157610271600f556103e86006556014805460ff191660011790555b6000821180156137e357506000600f54115b15613895576000613811612710613805600f54346168b190919063ffffffff16565b9063ffffffff6168eb16565b90508015613893576040516110029082156108fc029083906000818181858888f19350505050158015613848573d6000803e3d6000fd5b507f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d816040516138789190618f97565b60405180910390a1613890838263ffffffff6162a816565b92505b505b6000821180156138a757506000600654115b1561394d5760006138c9612710613805600654346168b190919063ffffffff16565b9050801561394b5760405161dead9082156108fc029083906000818181858888f19350505050158015613900573d6000803e3d6000fd5b507f627059660ea01c4733a328effb2294d2f86905bf806da763a89cee254de8bee5816040516139309190618f97565b60405180910390a1613948838263ffffffff6162a816565b92505b505b8015613a4b57600060018083038154811061396457fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff16156139d157836001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4846040516139c49190618f97565b60405180910390a2613a45565b6003546139e4908463ffffffff6162ea16565b60039081558101546139fc908463ffffffff6162ea16565b60038201556040516001600160a01b038516907f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc05590613a3c908690618f97565b60405180910390a25b50610e32565b826001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b483604051613a849190618f97565b60405180910390a2505050565b600e5481565b61100081565b61dead81565b600b8181548110613ab057fe5b6000918252602091829020601691909102018054600180830154600280850180546040805161010096831615969096026000190190911692909204601f810188900488028501880190925281845293965060ff90911694919291830182828015613b5b5780601f10613b3057610100808354040283529160200191613b5b565b820191906000526020600020905b815481529060010190602001808311613b3e57829003601f168201915b5050505050905083565b61100481565b6000600a5460001480613b7c575081155b80613b875750600954155b15613b945750600061113d565b6000613bce600a5461380585613805600b8981548110613bb057fe5b6000918252602090912060169091020154439063ffffffff6162a816565b90506000806110016001600160a01b0316638256ace66040518163ffffffff1660e01b8152600401604080518083038186803b158015613c0d57600080fd5b505afa158015613c21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c45919061816d565b9150915060009350808310613da457613c5e878761520f565b5060405163436aa28360e11b8152600090612002906386d5450690613c87908b906004016182aa565b60206040518083038186803b158015613c9f57600080fd5b505afa158015613cb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613cd79190617f1a565b6001600160a01b031614613d43576040516313d13bdb60e31b815261100190639e89ded890613d0c908a9087906004016182be565b600060405180830381600087803b158015613d2657600080fd5b505af1158015613d3a573d6000803e3d6000fd5b50505050613d9b565b6040516305bfb49960e41b815261100190635bfb499090613d68908a906004016182aa565b600060405180830381600087803b158015613d8257600080fd5b505af1158015613d96573d6000803e3d6000fd5b505050505b60019350613db6565b818310613db657613db48761672e565b505b60098054600019019055600b80546000919088908110613dd257fe5b60009182526020822060169190910201600101805460ff1916921515929092179091556040516001600160a01b038916917fb9d38178dc641ff1817967a63c9078cbcd955a9f1fcd75e0e3636de615d44d3b91a25050509392505050565b613e38617b80565b6000613e42617b80565b613e4a617c1d565b613e5b613e568661692d565b616952565b90506000805b613e6a8361699c565b15613fde5780613e8f57613e85613e80846169bd565b616a0b565b60ff168452613fd6565b8060011415613fd1576060613eab613ea6856169bd565b616a8b565b90508051604051908082528060200260200182016040528015613ee857816020015b613ed5617ba4565b815260200190600190039081613ecd5790505b5085602001819052508051604051908082528060200260200182016040528015613f2657816020015b6060815260200190600190039081613f115790505b50604086015260005b8151811015613fc657613f40617ba4565b60606000613f60858581518110613f5357fe5b6020026020010151616b5c565b92509250925080613f80578860009a509a50505050505050505050613fe7565b8289602001518581518110613f9157fe5b60200260200101819052508189604001518581518110613fad57fe5b6020026020010181905250505050806001019050613f2f565b506001925050613fd6565b613fde565b600101613e61565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b606081526020019060019003908161400657905050905061402c8363ffffffff16616c76565b8160008151811061403957fe5b602002602001018190525061113d81616c89565b600060648351111561408457600080516020619084833981519152604051614074906187ae565b60405180910390a1506066611da4565b60005b83518110156141225760005b81811015614119578481815181106140a757fe5b6020026020010151600001516001600160a01b03168583815181106140c857fe5b6020026020010151600001516001600160a01b03161415614111576000805160206190848339815191526040516140fe906188be565b60405180910390a1606692505050611da4565b600101614093565b50600101614087565b5060608060606015805480602002602001604051908101604052809291908181526020016000905b828210156141d45760008481526020908190206040805160c0810182526004860290920180546001600160a01b039081168452600180830154821685870152600283015491821693850193909352600160a01b81046001600160401b03166060850152600160e01b900460ff16151560808401526003015460a0830152908352909201910161414a565b50505050905060606016805480602002602001604051908101604052809291908181526020016000905b828210156142a95760008481526020908190208301805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156142955780601f1061426a57610100808354040283529160200191614295565b820191906000526020600020905b81548152906001019060200180831161427857829003601f168201915b5050505050815260200190600101906141fe565b50505050905060005b8251811015614306578281815181106142c757fe5b6020026020010151606001516003028382815181106142e257fe5b60209081029190910101516001600160401b039091166060909101526001016142b2565b5060608061431689898686616d13565b9150915061432482826155d2565b60015460408051828152602080840282010190915292985090965060009550859450925060609150828015614363578160200160208202803683370190505b50905060005b828110156144f45760006001600160a01b03166120026001600160a01b03166386d545066001848154811061439a57fe5b60009182526020909120600491820201546040516001600160e01b031960e085901b1681526143d5926001600160a01b0390921691016182aa565b60206040518083038186803b1580156143ed57600080fd5b505afa158015614401573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906144259190617f1a565b6001600160a01b03161461448757600182828151811061444157fe5b602002602001019060ff16908160ff16815250506001818154811061446257fe5b906000526020600020906004020160030154600014614482578360010193505b6144ec565b67016345785d8a00006001828154811061449d57fe5b906000526020600020906004020160030154106144bf578460010194506144ec565b600181815481106144cc57fe5b9060005260206000209060040201600301546000146144ec578360010193505b600101614369565b50606084604051908082528060200260200182016040528015614521578160200160208202803683370190505b509050606085604051908082528060200260200182016040528015614550578160200160208202803683370190505b50905060608660405190808252806020026020018201604052801561457f578160200160208202803683370190505b5090506060876040519080825280602002602001820160405280156145ae578160200160208202803683370190505b50905060006060886040519080825280602002602001820160405280156145df578160200160208202803683370190505b50905060608960405190808252806020026020018201604052801561460e578160200160208202803683370190505b50905060009a506000995060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b15801561465657600080fd5b505afa15801561466a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061468e9190618155565b905067016345785d8a00008111156146da576000805160206190848339815191526040516146bb90618bcf565b60405180910390a160689e505050505050505050505050505050611da4565b60005b8a811015614a6e578981815181106146f157fe5b602002602001015160ff16600114156147e7576001818154811061471157fe5b9060005260206000209060040201600301546000146147e2576001818154811061473757fe5b600091825260209091206004909102015484516001600160a01b039091169085908e90811061476257fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506001818154811061478f57fe5b906000526020600020906004020160030154838d815181106147ad57fe5b60200260200101818152505060018a8d815181106147c757fe5b602002602001019060ff16908160ff16815250508b6001019b505b614a66565b67016345785d8a0000600182815481106147fd57fe5b90600052602060002090600402016003015410614982576001818154811061482157fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316898e8151811061485257fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be4006001838154811061488757fe5b906000526020600020906004020160030154816148a057fe5b06600183815481106148ae57fe5b9060005260206000209060040201600301540390506148d683826162a890919063ffffffff16565b898f815181106148e257fe5b602002602001018181525050600182815481106148fb57fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316878f8151811061492c57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081888f8151811061495957fe5b6020908102919091010152614974868263ffffffff6162ea16565b95508d6001019d5050614a66565b6001818154811061498f57fe5b906000526020600020906004020160030154600014614a6657600181815481106149b557fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316848d815181106149e657fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060018181548110614a1357fe5b906000526020600020906004020160030154838d81518110614a3157fe5b60200260200101818152505060008a8d81518110614a4b57fe5b602002602001019060ff16908160ff16815250508b6001019b505b6001016146dd565b5060008415614ce4576002546040516303702b2960e51b815261100491636e056520918891614aa8918e918e918d914201906004016183b8565b6020604051808303818588803b158015614ac157600080fd5b505af193505050508015614af2575060408051601f3d908101601f19168201909252614aef91810190618082565b60015b614c69576040516000815260443d1015614b0e57506000614ba9565b60046000803e60005160e01c6308c379a08114614b2f576000915050614ba9565b60043d036004833e81513d60248201116001600160401b0382111715614b5a57600092505050614ba9565b80830180516001600160401b03811115614b7b576000945050505050614ba9565b8060208301013d8601811115614b9957600095505050505050614ba9565b601f01601f191660405250925050505b80614bb45750614bf6565b60019150857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf28082604051614be8919061843d565b60405180910390a250614c64565b3d808015614c20576040519150601f19603f3d011682016040523d82523d6000602084013e614c25565b606091505b5060019150857fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a4582604051614c5a919061843d565b60405180910390a2505b614ce4565b8015614cab577fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b7086604051614c9e9190618f97565b60405180910390a1614ce2565b857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280604051614cd990618567565b60405180910390a25b505b8015614e9a5760005b8751811015614e98576000888281518110614d0457fe5b60200260200101519050600060018281548110614d1d57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc9185908110614d4e57fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f1935050505090508015614e0a5760018281548110614d8f57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d9185908110614dde57fe5b906000526020600020906004020160030154604051614dfd9190618f97565b60405180910390a2614e8e565b60018281548110614e1757fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d9185908110614e6657fe5b906000526020600020906004020160030154604051614e859190618f97565b60405180910390a25b5050600101614ced565b505b8351156150905760005b845181101561508e578a8181518110614eb957fe5b602002602001015160ff1660011415614f58576120026001600160a01b031663092193ab858381518110614ee957fe5b6020026020010151878481518110614efd57fe5b60200260200101516040518363ffffffff1660e01b8152600401614f2191906182aa565b6000604051808303818588803b158015614f3a57600080fd5b505af1158015614f4e573d6000803e3d6000fd5b5050505050615086565b6000858281518110614f6657fe5b60200260200101516001600160a01b03166108fc868481518110614f8657fe5b60200260200101519081150290604051600060405180830381858888f193505050509050801561501c57858281518110614fbc57fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d868481518110614ffa57fe5b602002602001015160405161500f9190618f97565b60405180910390a2615084565b85828151811061502857fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d86848151811061506657fe5b602002602001015160405161507b9190618f97565b60405180910390a25b505b600101614ea4565b505b5050505050505050505050505060005b6001548110156150fd57600181815481106150b757fe5b9060005260206000209060040201600301546000146150f5576000600182815481106150df57fe5b9060005260206000209060040201600301819055505b6001016150a0565b50471561516b577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d476040516151339190618f97565b60405180910390a1604051611002904780156108fc02916000818181858888f19350505050158015615169573d6000803e3d6000fd5b505b60006003819055600555815115615186576151868282615ab9565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156151c357600080fd5b505af11580156151d7573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a1506000949350505050565b6000806001838154811061521f57fe5b90600052602060002090600402016003015490506000600180805490500390506001615249613080565b511161527e5760006001858154811061525e57fe5b906000526020600020906004020160030181905550600092505050611da4565b846001600160a01b03167f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a70836040516152b79190618f97565b60405180910390a26001600160a01b038516600090815260046020526040812055835b600154600019018110156154a457600181600101815481106152f857fe5b90600052602060002090600402016001828154811061531357fe5b60009182526020909120825460049092020180546001600160a01b03199081166001600160a01b0393841617825560018085015481840180548416918616919091179055600280860180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b19909416939093179055600392830154920191909155600b8054909183019081106153d457fe5b9060005260206000209060160201600b82815481106153ef57fe5b600091825260209091208254601690920201908155600180830154818301805460ff909216151560ff1990921691909117905560028084018054615446938386019390821615610100026000190190911604617c3d565b5061545960038281019084016013617cb2565b5090505080600101600460006001848154811061547257fe5b600091825260208083206004909202909101546001600160a01b031683528201929092526040019020556001016152da565b5060018054806154b057fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b80548061550357fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906155356002830182617bd9565b615543600383016000617cdc565b50509055600081838161555257fe5b04905080156155c65760015460005b818110156155c35761559a836001838154811061557a57fe5b9060005260206000209060040201600301546162ea90919063ffffffff16565b600182815481106155a757fe5b6000918252602090912060036004909202010155600101615561565b50505b50600195945050505050565b6060806000808080806155e361318a565b6001549091505b801561581257600181039250600b838154811061560357fe5b600091825260209091206001601690920201015460ff1661562357615809565b6001838154811061563057fe5b60009182526020909120600490910201546001600160a01b03169450615657858484613b6b565b93508361566357615809565b60405163436aa28360e11b81526000908190612002906386d545069061568d908a906004016182aa565b60206040518083038186803b1580156156a557600080fd5b505afa1580156156b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906156dd9190617f1a565b90506001600160a01b03811615615766576040516302ceee9160e11b81526120029063059ddd22906157139084906004016182aa565b60206040518083038186803b15801561572b57600080fd5b505afa15801561573f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906157639190617f1a565b91505b60005b8c5181101561580557876001600160a01b03168d828151811061578857fe5b6020026020010151600001516001600160a01b031614806157d15750826001600160a01b03168d82815181106157ba57fe5b6020026020010151600001516001600160a01b0316145b156157fd5760018d82815181106157e457fe5b6020908102919091010151901515608090910152615805565b600101615769565b5050505b600019016155ea565b5060005b895181101561587f5789818151811061582b57fe5b6020026020010151608001518061586b575060006001600160a01b03168a828151811061585457fe5b6020026020010151600001516001600160a01b0316145b15615877578560010195505b600101615816565b50885185106159675760408051600180825281830190925290816020015b6158a5617ba4565b81526020019060019003908161589d575050604080516001808252818301909252919850602082015b60608152602001906001900390816158ce579050509550886000815181106158f257fe5b60200260200101518760008151811061590757fe5b60200260200101819052508760008151811061591f57fe5b60200260200101518660008151811061593457fe5b602002602001018190525060008760008151811061594e57fe5b6020908102919091010151901515608090910152615aac565b848951036040519080825280602002602001820160405280156159a457816020015b615991617ba4565b8152602001906001900390816159895790505b509650848951036040519080825280602002602001820160405280156159de57816020015b60608152602001906001900390816159c95790505b5095506000915060005b8951811015615aaa578981815181106159fd57fe5b602002602001015160800151158015615a40575060006001600160a01b03168a8281518110615a2857fe5b6020026020010151600001516001600160a01b031614155b15615aa257898181518110615a5157fe5b6020026020010151888481518110615a6557fe5b6020026020010181905250888181518110615a7c57fe5b6020026020010151878481518110615a9057fe5b60200260200101819052508260010192505b6001016159e8565b505b50505050505b9250929050565b600154825160005b82811015615bd6576001615ad3617ba4565b60018381548110615ae057fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b84811015615baa57878181518110615b7057fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b03161415615ba25760009250615baa565b600101615b5c565b508115615bcc5780516001600160a01b03166000908152600460205260408120555b5050600101615ac1565b5080821115615c9557805b82811015615c93576001805480615bf457fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b805480615c4757fe5b60008281526020812060166000199093019283020181815560018101805460ff1916905590615c796002830182617bd9565b615c87600383016000617cdc565b50509055600101615be1565b505b6000818310615ca45781615ca6565b825b905060005b8181101561604a57615d58868281518110615cc257fe5b602002602001015160018381548110615cd757fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a08201526170df565b615f0c578060010160046000888481518110615d7057fe5b6020026020010151600001516001600160a01b03166001600160a01b0316815260200190815260200160002081905550858181518110615dac57fe5b602002602001015160018281548110615dc157fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a0909101516003909101558451859082908110615e7c57fe5b6020026020010151600b8281548110615e9157fe5b90600052602060002090601602016002019080519060200190615eb5929190617ad9565b506000600b8281548110615ec557fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b805483908110615ef657fe5b6000918252602090912060169091020155616042565b858181518110615f1857fe5b60200260200101516060015160018281548110615f3157fe5b906000526020600020906004020160020160146101000a8154816001600160401b0302191690836001600160401b03160217905550615ff7858281518110615f7557fe5b6020026020010151600b8381548110615f8a57fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156135655780601f1061353a57610100808354040283529160200191613565565b6160425784818151811061600757fe5b6020026020010151600b828154811061601c57fe5b90600052602060002090601602016002019080519060200190616040929190617ad9565b505b600101615cab565b50828211156162225761605b617aaa565b835b8381101561621f5785818151811061607157fe5b60200260200101518260400181905250600187828151811061608f57fe5b6020908102919091018101518254600181810185556000948552838520835160049093020180546001600160a01b039384166001600160a01b0319918216178255848601518284018054918616918316919091179055604080860151600284018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909a1692909616919091179290921696909617169190911790935560a090930151600390930192909255600b80549283018155909352845160169091026000805160206190a48339815191528101918255858301516000805160206190e48339815191528201805491151560ff19909216919091179055928501518051869492936161c5936000805160206190c483398151915201920190617ad9565b5060608201516161db9060038301906013617b53565b50505080600101600460008984815181106161f257fe5b602090810291909101810151516001600160a01b031682528101919091526040016000205560010161605d565b50505b61622a61713b565b616232617323565b6000600981905560015493505b838110156162a0576000600b828154811061625657fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b80548390811061628757fe5b600091825260209091206016909102015560010161623f565b505050505050565b600061113d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250617511565b60008282018381101561113d5760405162461bcd60e51b8152600401610e12906186d2565b60015481516040805182815260208084028201019091526060929190839082801561634e57816020015b60608152602001906001900390816163395790505b50600b549091508314616365579250611cf4915050565b60005b8281101561647457600b60016004600089858151811061638457fe5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205403815481106163b857fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156164505780601f1061642557610100808354040283529160200191616450565b820191906000526020600020905b81548152906001019060200180831161643357829003601f168201915b505050505082828151811061646157fe5b6020908102919091010152600101616368565b50949350505050565b60005b828110156165ca57600082878388016040516020016164a092919061829c565b6040516020818303038152906040528051906020012060001c816164c057fe5b069050808501828701146165c157600089838801815181106164de57fe5b60200260200101519050606089848901815181106164f857fe5b602002602001015190508a8388018151811061651057fe5b60200260200101518b858a018151811061652657fe5b60200260200101906001600160a01b031690816001600160a01b031681525050818b8489018151811061655557fe5b60200260200101906001600160a01b031690816001600160a01b031681525050898388018151811061658357fe5b60200260200101518a858a018151811061659957fe5b6020026020010181905250808a848901815181106165b357fe5b602002602001018190525050505b50600101616480565b5050505050505050565b600980546001908101909155600b8054839081106165ee57fe5b906000526020600020906016020160010160006101000a81548160ff02191690831515021790555043600b828154811061662457fe5b600091825260208220601690910201919091556040516001600160a01b038416917ff62981a567ec3cec866c6fa93c55bcdf841d6292d18b8d522ececa769375d82d91a25050565b60008160405160200161667f9190618280565b60405160208183030381529060405280519060200120836040516020016166a69190618280565b6040516020818303038152906040528051906020012014905092915050565b015190565b8151815160009160019181148083146166e65760009250616724565b600160208701838101602088015b60028483851001141561671f5780518351146167135760009650600093505b602092830192016166f4565b505050505b5090949350505050565b6001600160a01b0381166000908152600460205260408120548061675757506000199050611cf4565b60018103905060006001828154811061676c57fe5b906000526020600020906004020160030154905060006001838154811061678f57fe5b6000918252602090912060036004909202010155600154604051600019909101906001600160a01b038616907f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d906167e8908590618f97565b60405180910390a28061680057829350505050611cf4565b600081838161680b57fe5b04905080156168a75760005b8481101561685957616830826001838154811061557a57fe5b6001828154811061683d57fe5b6000918252602090912060036004909202010155600101616817565b50600180549085015b818110156168a45761687b836001838154811061557a57fe5b6001828154811061688857fe5b6000918252602090912060036004909202010155600101616862565b50505b5091949350505050565b6000826168c057506000611da4565b828202828482816168cd57fe5b041461113d5760405162461bcd60e51b8152600401610e1290618aa1565b600061113d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061753d565b616935617ceb565b506040805180820190915281518152602082810190820152919050565b61695a617c1d565b61696382617574565b61696c57600080fd5b600061697b83602001516175ae565b60208085015160408051808201909152868152920190820152915050919050565b60006169a6617ceb565b505080518051602091820151919092015191011190565b6169c5617ceb565b6169ce8261699c565b6169d757600080fd5b602082015160006169e782617611565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590616a2057508151602110155b616a2957600080fd5b6000616a3883602001516175ae565b90508083600001511015616a5e5760405162461bcd60e51b8152600401610e1290618caf565b82516020808501518301805192849003929183101561647457506020919091036101000a90049392505050565b6060616a9682617574565b616a9f57600080fd5b6000616aaa836176f2565b9050606081604051908082528060200260200182016040528015616ae857816020015b616ad5617ceb565b815260200190600190039081616acd5790505b5090506000616afa85602001516175ae565b60208601510190506000805b84811015616b5157616b1783617611565b9150604051806040016040528083815260200184815250848281518110616b3a57fe5b602090810291909101015291810191600101616b06565b509195945050505050565b616b64617ba4565b60606000616b70617ba4565b6060616b7a617c1d565b616b8387616952565b90506000805b616b928361699c565b15616c675780616bbd57616bad616ba8846169bd565b61774e565b6001600160a01b03168552616c5f565b8060011415616be557616bd2616ba8846169bd565b6001600160a01b03166020860152616c5f565b8060021415616c0d57616bfa616ba8846169bd565b6001600160a01b03166040860152616c5f565b8060031415616c3957616c22613e80846169bd565b6001600160401b0316606086015260019150616c5f565b8060041415616c5a57616c53616c4e846169bd565b617768565b9350616c5f565b616c67565b600101616b89565b50929791965091945092505050565b6060611da4616c84836177d8565b6178be565b6060815160001415616caa5750604080516000815260208101909152611cf4565b606082600081518110616cb957fe5b602002602001015190506000600190505b8351811015616cfa57616cf082858381518110616ce357fe5b6020026020010151617910565b9150600101616cca565b5061113d616d0d825160c060ff1661798d565b82617910565b60608060006120026001600160a01b031663c473318f6040518163ffffffff1660e01b815260040160206040518083038186803b158015616d5357600080fd5b505afa158015616d67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190616d8b9190618155565b90508085518851011015616da0575083518651015b606081604051908082528060200260200182016040528015616ddc57816020015b616dc9617ba4565b815260200190600190039081616dc15790505b509050606082604051908082528060200260200182016040528015616e1557816020015b6060815260200190600190039081616e005790505b50905060008060005b8b51831080616e2d5750895182105b8015616e3857508581105b156170cd578b51831415616ea857898281518110616e5257fe5b6020026020010151858281518110616e6657fe5b6020026020010181905250888281518110616e7d57fe5b6020026020010151848281518110616e9157fe5b602090810291909101015260019182019101616e1e565b8951821415616f13578b8381518110616ebd57fe5b6020026020010151858281518110616ed157fe5b60200260200101819052508a8381518110616ee857fe5b6020026020010151848281518110616efc57fe5b602090810291909101015260019283019201616e1e565b898281518110616f1f57fe5b6020026020010151606001516001600160401b03168c8481518110616f4057fe5b6020026020010151606001516001600160401b03161115616fbc578b8381518110616f6757fe5b6020026020010151858281518110616f7b57fe5b60200260200101819052508a8381518110616f9257fe5b6020026020010151848281518110616fa657fe5b60200260200101819052508260010192506170c5565b898281518110616fc857fe5b6020026020010151606001516001600160401b03168c8481518110616fe957fe5b6020026020010151606001516001600160401b031610156170655789828151811061701057fe5b602002602001015185828151811061702457fe5b602002602001018190525088828151811061703b57fe5b602002602001015184828151811061704f57fe5b60200260200101819052508160010191506170c5565b89828151811061707157fe5b6020026020010151600001516001600160a01b03168c848151811061709257fe5b6020026020010151600001516001600160a01b031610156170b9578b8381518110616f6757fe5b898281518110616e5257fe5b600101616e1e565b50929a91995090975050505050505050565b805182516000916001600160a01b039182169116148015617119575081602001516001600160a01b031683602001516001600160a01b0316145b801561113d5750506040908101519101516001600160a01b0390811691161490565b6012546013548082111561718657805b8281101561718457601280548061715e57fe5b60019003818190600052602060002001600061717a9190617bd9565b905560010161714b565b505b60008183106171955781617197565b825b905060005b818110156172af57617254601282815481106171b457fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156172425780601f1061721757610100808354040283529160200191617242565b820191906000526020600020905b81548152906001019060200180831161722557829003601f168201915b5050505050601383815481106134d757fe5b6172a7576013818154811061726557fe5b906000526020600020016012828154811061727c57fe5b9060005260206000200190805460018160011615610100020316600290046172a5929190617c3d565b505b60010161719c565b5082821115610e3257825b8281101561731d576012601382815481106172d157fe5b6000918252602080832084546001818101875595855291909320929091018054617314949390920192909160026101009282161592909202600019011604617c3d565b506001016172ba565b50505050565b601354600b548082111561736e57805b8281101561736c57601380548061734657fe5b6001900381819060005260206000200160006173629190617bd9565b9055600101617333565b505b600081831061737d578161737f565b825b905060005b8181101561749e5761743c6013828154811061739c57fe5b600091825260209182902001805460408051601f600260001961010060018716150201909416939093049283018590048502810185019091528181529283018282801561742a5780601f106173ff5761010080835404028352916020019161742a565b820191906000526020600020905b81548152906001019060200180831161740d57829003601f168201915b5050505050600b8381548110615f8a57fe5b61749657600b818154811061744d57fe5b90600052602060002090601602016002016013828154811061746b57fe5b906000526020600020019080546001816001161561010002031660029004617494929190617c3d565b505b600101617384565b5082821115610e3257825b8281101561731d576013600b82815481106174c057fe5b60009182526020808320845460018082018755958552919093206016929092029092016002908101805461750895939094019390926000199082161561010002011604617c3d565b506001016174a9565b600081848411156175355760405162461bcd60e51b8152600401610e12919061843d565b505050900390565b6000818361755e5760405162461bcd60e51b8152600401610e12919061843d565b50600083858161756a57fe5b0495945050505050565b805160009061758557506000611cf4565b6020820151805160001a9060c08210156175a457600092505050611cf4565b5060019392505050565b8051600090811a60808110156175c8576000915050611cf4565b60b88110806175e3575060c081108015906175e3575060f881105b156175f2576001915050611cf4565b60c08110156176065760b519019050611cf4565b60f519019050611cf4565b80516000908190811a608081101561762c57600191506176eb565b60b881101561764157607e19810191506176eb565b60c081101561769257600060b78203600186019550806020036101000a86510491506001810182019350508083101561768c5760405162461bcd60e51b8152600401610e12906189ee565b506176eb565b60f88110156176a75760be19810191506176eb565b600060f78203600186019550806020036101000a8651049150600181018201935050808310156176e95760405162461bcd60e51b8152600401610e12906189ee565b505b5092915050565b805160009061770357506000611cf4565b6000809050600061771784602001516175ae565b602085015185519181019250015b808210156177455761773682617611565b82019150826001019250617725565b50909392505050565b805160009060151461775f57600080fd5b611da482616a0b565b805160609061777657600080fd5b600061778583602001516175ae565b83516040805191839003808352601f19601f82011683016020019091529192506060908280156177bc576020820181803683370190505b5090506000816020019050616474848760200151018285617a5f565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff19841661781c57506018617840565b6fffffffffffffffffffffffffffffffff19841661783c57506010617840565b5060005b60208110156178765781818151811061785557fe5b01602001516001600160f81b0319161561786e57617876565b600101617840565b60008160200390506060816040519080825280601f01601f1916602001820160405280156178ab576020820181803683370190505b5080830196909652508452509192915050565b6060815160011480156178f05750607f60f81b826000815181106178de57fe5b01602001516001600160f81b03191611155b156178fc575080611cf4565b611da461790e8351608060ff1661798d565b835b6060806040519050835180825260208201818101602087015b81831015617941578051835260209283019201617929565b50855184518101855292509050808201602086015b8183101561796e578051835260209283019201617956565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106179b75760405162461bcd60e51b8152600401610e1290618839565b60408051600180825281830190925260609160208201818036833701905050905060378411617a115782840160f81b816000815181106179f357fe5b60200101906001600160f81b031916908160001a9053509050611da4565b6060617a1c856177d8565b90508381510160370160f81b82600081518110617a3557fe5b60200101906001600160f81b031916908160001a905350617a568282617910565b95945050505050565b80617a6957610e32565b5b60208110617a89578251825260209283019290910190601f1901617a6a565b915181516020939093036101000a6000190180199091169216919091179052565b60405180608001604052806000815260200160001515815260200160608152602001617ad4617d05565b905290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10617b1a57805160ff1916838001178555617b47565b82800160010185558215617b47579182015b82811115617b47578251825591602001919060010190617b2c565b506131c5929150617d24565b8260138101928215617b475791602002820182811115617b47578251825591602001919060010190617b2c565b6040518060600160405280600060ff16815260200160608152602001606081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b50805460018160011615610100020316600290046000825580601f10617bff5750611f0c565b601f016020900490600052602060002090810190611f0c9190617d24565b6040518060400160405280617c30617ceb565b8152602001600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10617c765780548555617b47565b82800160010185558215617b4757600052602060002091601f016020900482015b82811115617b47578254825591600101919060010190617c97565b8260138101928215617b475791820182811115617b47578254825591600101919060010190617c97565b50611f0c906013810190617d24565b604051806040016040528060008152602001600081525090565b6040518061026001604052806013906020820280368337509192915050565b61316991905b808211156131c55760008155600101617d2a565b8035611da48161906e565b60008083601f840112617d5a578182fd5b5081356001600160401b03811115617d70578182fd5b6020830191508360208083028501011115615ab257600080fd5b6000601f8381840112617d9b578182fd5b8235617dae617da982619023565b618ffd565b818152925060208084019085810160005b84811015617e40578135880189603f820112617dda57600080fd5b838101356001600160401b03811115617df257600080fd5b617e03818901601f19168601618ffd565b81815260408c81848601011115617e1957600080fd5b82818501888401375060009181018601919091528552509282019290820190600101617dbf565b50505050505092915050565b600082601f830112617e5c578081fd5b8135617e6a617da982619023565b818152915060208083019084810181840286018201871015617e8b57600080fd5b6000805b85811015617e405782356001600160401b0381168114617ead578283fd5b85529383019391830191600101617e8f565b60008083601f840112617ed0578182fd5b5081356001600160401b03811115617ee6578182fd5b602083019150836020828501011115615ab257600080fd5b600060208284031215617f0f578081fd5b813561113d8161906e565b600060208284031215617f2b578081fd5b815161113d8161906e565b60008060008060408587031215617f4b578283fd5b84356001600160401b0380821115617f61578485fd5b617f6d88838901617d49565b90965094506020870135915080821115617f85578384fd5b50617f9287828801617d49565b95989497509550505050565b600080600060608486031215617fb2578283fd5b83356001600160401b0380821115617fc8578485fd5b81860187601f820112617fd9578586fd5b80359250617fe9617da984619023565b80848252602080830192508084018b82838902870101111561800957898afd5b8994505b868510156180335761801f8c82617d3e565b84526001949094019392810192810161800d565b50909750880135935050508082111561804a578384fd5b61805687838801617e4c565b9350604086013591508082111561806b578283fd5b5061807886828701617d8a565b9150509250925092565b600060208284031215618093578081fd5b8151801515811461113d578182fd5b600080602083850312156180b4578182fd5b82356001600160401b038111156180c9578283fd5b6180d585828601617ebf565b90969095509350505050565b600080600080604085870312156180f6578384fd5b84356001600160401b038082111561810c578586fd5b61811888838901617ebf565b90965094506020870135915080821115618130578384fd5b50617f9287828801617ebf565b60006020828403121561814e578081fd5b5035919050565b600060208284031215618166578081fd5b5051919050565b6000806040838503121561817f578182fd5b505080516020909101519092909150565b6000806000604084860312156181a4578081fd5b833560ff811681146181b4578182fd5b925060208401356001600160401b038111156181ce578182fd5b6181da86828701617ebf565b9497909650939450505050565b6000815180845260208085019450808401835b8381101561821f5781516001600160a01b0316875295820195908201906001016181fa565b509495945050505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b6000815180845261826c816020860160208601619042565b601f01601f19169290920160200192915050565b60008251618292818460208701619042565b9190910192915050565b918252602082015260400190565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b03968716815294861660208601529290941660408401526001600160401b03166060830152911515608082015260a081019190915260c00190565b6001600160a01b0392909216825260ff16602082015260400190565b60006020825261113d60208301846181e7565b60006040825261835b60408301856181e7565b602083820381850152818551808452828401915082838202850101838801865b838110156183a957601f19878403018552618397838351618254565b9486019492509085019060010161837b565b50909998505050505050505050565b6000608082526183cb60808301876181e7565b828103602084810191909152865180835287820192820190845b81811015618401578451835293830193918301916001016183e5565b5050848103604086015261841581886181e7565b93505050506001600160401b038316606083015295945050505050565b901515815260200190565b60006020825261113d6020830184618254565b60006040825261846460408301868861822a565b828103602084015261847781858761822a565b979650505050505050565b6020808252601c908201527f6c656e677468206f66206275726e526174696f206d69736d6174636800000000604082015260600190565b60208082526042908201527f746865206275726e526174696f20706c75732073797374656d5265776172645260408201527f6174696f206d757374206265206e6f2067726561746572207468616e20313030606082015261030360f41b608082015260a00190565b60208082526026908201527f6c656e677468206f66206d61784e756d4f664d61696e7461696e696e67206d696040820152650e6dac2e8c6d60d31b606082015260800190565b6020808252601b908201527f6261746368207472616e736665722072657475726e2066616c73650000000000604082015260600190565b6020808252602c908201527f6c656e677468206f66206d61784e756d4f66576f726b696e6743616e6469646160408201526b0e8cae640dad2e6dac2e8c6d60a31b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61696e7461696e536c6173685363616c65206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252818101527f6c656e677468206f66206e756d4f66436162696e657473206d69736d61746368604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252601f908201527f6f6e6c7920736c617368206f72207374616b6548756220636f6e747261637400604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526028908201527f746865206e756d4f66436162696e657473206d75737420626520677265617465604082015267072207468616e20360c41b606082015260800190565b60208082526039908201527f746865206e756d4f66436162696e657473206d757374206265206c657373207460408201527f68616e204d41585f4e554d5f4f465f56414c494441544f525300000000000000606082015260800190565b60208082526029908201527f746865206e756d626572206f662076616c696461746f727320657863656564206040820152681d1a19481b1a5b5a5d60ba1b606082015260800190565b60208082526022908201527f63616e206e6f7420646f207468697320747769636520696e206f6e6520626c6f604082015261636b60f01b606082015260800190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526037908201527f746865206d61784e756d4f664d61696e7461696e696e67206d7573742062652060408201527f6c657373207468616e206e756d4f66436162696e657473000000000000000000606082015260800190565b6020808252602b908201527f6475706c696361746520636f6e73656e7375732061646472657373206f66207660408201526a185b1a59185d1bdc94d95d60aa1b606082015260800190565b60208082526027908201527f7468652065787069726554696d655365636f6e64476170206973206f7574206f604082015266662072616e676560c81b606082015260800190565b6020808252601590820152746465706f7369742076616c7565206973207a65726f60581b604082015260600190565b60208082526049908201527f746865206d61784e756d4f66576f726b696e6743616e64696461746573206d7560408201527f7374206265206e6f742067726561746572207468616e206d61784e756d4f6643606082015268616e6469646174657360b81b608082015260a00190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b60208082526023908201527f63616e206e6f7420656e7465722054656d706f72617279204d61696e74656e616040820152626e636560e81b606082015260800190565b60208082526025908201527f6c656e677468206f66206a61696c2076616c696461746f7273206d757374206260408201526465206f6e6560d81b606082015260800190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61784e756d4f6643616e64696461746573206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252601290820152716e6f7420696e206d61696e74656e616e636560701b604082015260600190565b60208082526021908201527f666565206973206c6172676572207468616e2044555354595f494e434f4d494e6040820152604760f81b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b60208082526042908201527f7468652073797374656d526577617264526174696f20706c7573206275726e5260408201527f6174696f206d757374206265206e6f2067726561746572207468616e20313030606082015261030360f41b608082015260a00190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526026908201527f6c656e677468206f662065787069726554696d655365636f6e64476170206d696040820152650e6dac2e8c6d60d31b606082015260800190565b60208082526017908201527f6f6e6c792063757272656e742076616c696461746f7273000000000000000000604082015260600190565b60208082526021908201527f6661696c656420746f20706172736520696e69742076616c696461746f7253656040820152601d60fa1b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b60208082526024908201527f6c656e677468206f662073797374656d526577617264526174696f206d69736d6040820152630c2e8c6d60e31b606082015260800190565b6020808252603e908201527f746865206d61696e7461696e536c6173685363616c65206d757374206265206760408201527f726561746572207468616e203020616e64206c657373207468616e2031300000606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b60208082526029908201527f746865206d6573736167652073656e646572206d75737420626520736c6173686040820152680818dbdb9d1c9858dd60ba1b606082015260800190565b6020808252601f908201527f746865206d73672073656e646572206d757374206265207374616b6548756200604082015260600190565b61ffff91909116815260200190565b90815260200190565b6000848252831515602083015260606040830152617a566060830184618254565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff8516825260406020830152617a5660408301848661822a565b6040518181016001600160401b038111828210171561901b57600080fd5b604052919050565b60006001600160401b03821115619038578081fd5b5060209081020190565b60005b8381101561905d578181015183820152602001619045565b8381111561731d5750506000910152565b6001600160a01b0381168114611f0c57600080fdfe70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb20175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbb0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbaf87680f873f871949fb29aac15b9a4b7f17c3385939b007540f4d791949fb29aac15b9a4b7f17c3385939b007540f4d791949fb29aac15b9a4b7f17c3385939b007540f4d79164b085e6972fc98cd3c81d64d40e325acfed44365b97a7567a27939c14dbc7512ddcf54cb1284eb637cfa308ae4e00cb5588a164736f6c6343000604000a", - }, - { - ContractAddr: SlashContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/2d6372ddba77902ef01e45887a425938376d5a5c", - Code: "608060405234801561001057600080fd5b506004361061035d5760003560e01c80637e434d54116101d3578063c80d4b8f11610104578063df8079e9116100a2578063f9a2bbc71161007c578063f9a2bbc714610601578063fc3e590814610609578063fc4333cd14610611578063fd6a6879146106195761035d565b8063df8079e9146105e9578063e1c7392a146105f1578063f1fad104146105f95761035d565b8063c96be4cb116100de578063c96be4cb146105b3578063cc844b73146105c6578063dc927faf146105d9578063dcc6f156146105e15761035d565b8063c80d4b8f14610590578063c81b166214610598578063c8509d81146105a05761035d565b8063a1a11bf511610171578063aad560631161014b578063aad5606314610565578063ab51bb961461056d578063ac0af62914610575578063ac4317511461057d5761035d565b8063a1a11bf51461054d578063a78abc1614610555578063aa82dce11461055d5761035d565b806396713da9116101ad57806396713da9146105225780639dc092621461052a5780639e89ded8146105325780639f804f5f146105455761035d565b80637e434d54146104ff5780638256ace614610507578063831d65d11461050f5761035d565b8063493279b1116102ad57806362b72cf51161024b578063718a8aa811610225578063718a8aa8146104df57806375d47a0a146104e75780637912a65d146104ef5780637942fd05146104f75761035d565b806362b72cf5146104c75780636e47b482146104cf57806370fd5bad146104d75761035d565b806351b4dce31161028757806351b4dce31461049c57806351e80672146104a4578063567a372d146104ac5780635bfb4990146104b45761035d565b8063493279b1146104775780634bf6c8821461048c57806350055f90146104945761035d565b8063280870281161031a57806337c8dab9116102f457806337c8dab914610431578063389f4f71146104525780633dffc3871461045a57806343756e5c1461046f5761035d565b806328087028146104015780633306ccca1461040957806335aa2e441461041e5761035d565b80630bee7a67146103625780630e2374a5146103805780631182b8751461039557806322d1e80b146103b557806323bac5a2146103ca57806327962118146103ec575b600080fd5b61036a610621565b6040516103779190613d67565b60405180910390f35b610388610626565b6040516103779190613545565b6103a86103a336600461347b565b61062c565b604051610377919061357d565b6103bd610692565b6040516103779190613572565b6103dd6103d8366004613192565b61069b565b60405161037793929190613d4f565b6103ff6103fa3660046132d8565b6106be565b005b610388610a13565b610411610a19565b6040516103779190613d38565b61038861042c36600461344b565b610a1e565b61044461043f366004613192565b610a45565b604051610377929190613d41565b610411610a9c565b610462610aa2565b6040516103779190613d78565b610388610aa7565b61047f610aad565b6040516103779190613d29565b610462610ab3565b610411610ab8565b610388610abe565b610388610ac4565b610411610aca565b6103ff6104c2366004613192565b610ad0565b610411610bdc565b610388610be2565b610462610be8565b610462610bed565b610388610bf2565b610411610bf8565b610462610bfd565b610388610c02565b610444610c08565b6103ff61051d36600461347b565b610c12565b610462610d26565b610388610d2b565b6103ff6105403660046131ca565b610d31565b610411610d60565b610388610d66565b6103bd610d6c565b610388610d75565b610388610d7b565b61036a610d81565b610411610d86565b6103ff61058b36600461332f565b610d8b565b610411611327565b61038861132c565b6103ff6105ae36600461347b565b611332565b6103ff6105c1366004613192565b6113a3565b6103ff6105d4366004613398565b611812565b610388611df0565b610411611df6565b610388611dfb565b6103ff611e01565b610462611e4e565b610388611e53565b610462611e59565b6103ff611e5e565b6103886122a7565b606481565b61200181565b606033612000146106585760405162461bcd60e51b815260040161064f90613bcc565b60405180910390fd5b60005460ff1661067a5760405162461bcd60e51b815260040161064f90613672565b60405162461bcd60e51b815260040161064f90613cbd565b60075460ff1681565b600260208190526000918252604090912080546001820154919092015460ff1683565b60005460ff166106e05760405162461bcd60e51b815260040161064f90613672565b6006546106ed5760146006555b6008546106fa57603c6008555b81511580159061070a5750805115155b6107265760405162461bcd60e51b815260040161064f90613b2a565b60408051600380825260808201909252606091816020015b606081526020019060019003908161073e5790505090506107606102ca6122ad565b8160008151811061076d57fe5b6020026020010181905250610781836122c8565b8160018151811061078e57fe5b60200260200101819052506107a2826122c8565b816002815181106107af57fe5b602002602001018190525060606107c58261231e565b60408051603480825260608281019093529293509091602082018180368337019050509050815160346020830182602086016068600019fa61080657600080fd5b506014810151603482015160405163436aa28360e11b8152600090612002906386d5450690610839908690600401613545565b60206040518083038186803b15801561085157600080fd5b505afa158015610865573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088991906131ae565b6001600160a01b031614156108b05760405162461bcd60e51b815260040161064f90613642565b43600854820110156108d45760405162461bcd60e51b815260040161064f906135e3565b604051631871f7d960e31b81526120029063c38fbec8906108f9908590600401613545565b600060405180830381600087803b15801561091357600080fd5b505af1158015610927573d6000803e3d6000fd5b50506040516335409f7f60e01b815261100092506335409f7f9150610950908590600401613545565b600060405180830381600087803b15801561096a57600080fd5b505af115801561097e573d6000803e3d6000fd5b50506006546040516309a99b4f60e41b815260646110028031909302049350909150639a99b4f0906109b69033908590600401613559565b602060405180830381600087803b1580156109d057600080fd5b505af11580156109e4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a089190613463565b505050505050505050565b61200581565b603c81565b60018181548110610a2b57fe5b6000918252602090912001546001600160a01b0316905081565b600080610a50612f79565b5050506001600160a01b0316600090815260026020818152604092839020835160608101855281548082526001830154938201849052919093015460ff16151592909301919091529091565b60055481565b600181565b61100181565b6102ca81565b600881565b60065481565b61200681565b61200081565b60045481565b3361100014610af15760405162461bcd60e51b815260040161064f906138b5565b60005460ff16610b135760405162461bcd60e51b815260040161064f90613672565b61200063f7a251d7600b610b26846123af565b60006040518463ffffffff1660e01b8152600401610b4693929190613d86565b600060405180830381600087803b158015610b6057600080fd5b505af1925050508015610b71575060015b610bd9573d808015610b9f576040519150601f19603f3d011682016040523d82523d6000602084013e610ba4565b606091505b50816001600160a01b0316600080516020613e63833981519152600083604051610bcf929190613590565b60405180910390a2505b50565b60035481565b61100581565b600281565b601081565b61100881565b600581565b600b81565b61200381565b6004546005549091565b3361200014610c335760405162461bcd60e51b815260040161064f90613bcc565b60005460ff16610c555760405162461bcd60e51b815260040161064f90613672565b610c5d612f9c565b6000610c9e84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061247992505050565b915091508015610ce55781516040517f7f0956d47419b9525356e7111652b653b530ec6f5096dccc04589bc38e62996791610cd891613d67565b60405180910390a1610d1e565b81516040517f7d45f62d17443dd4547bca8a8112c60e2385669318dc300ec61a5d2492f262e791610d1591613d67565b60405180910390a15b50505b505050565b600981565b61100781565b3361100014610d525760405162461bcd60e51b815260040161064f906138b5565b610d5c82826124f9565b5050565b60085481565b61100681565b60005460ff1681565b61200281565b61300081565b600081565b600481565b60005460ff16610dad5760405162461bcd60e51b815260040161064f90613672565b3361100714610dce5760405162461bcd60e51b815260040161064f90613a19565b610e3984848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260148152731b5a5cd9195b59585b9bdc951a1c995cda1bdb1960621b602082015291506126ac9050565b15610ed45760208114610e5e5760405162461bcd60e51b815260040161064f90613841565b604080516020601f8401819004810282018101909252828152600091610e9c9185858083850183828082843760009201919091525061270692505050565b905060018110158015610eb0575060055481105b610ecc5760405162461bcd60e51b815260040161064f90613b87565b6004556112e4565b610f3a84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e19995b1bdb9e551a1c995cda1bdb19608a1b602082015291506126ac9050565b15610fd65760208114610f5f5760405162461bcd60e51b815260040161064f90613a67565b604080516020601f8401819004810282018101909252828152600091610f9d9185858083850183828082843760009201919091525061270692505050565b90506103e88111158015610fb2575060045481115b610fce5760405162461bcd60e51b815260040161064f9061372b565b6005556112e4565b61104384848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601681527566656c6f6e79536c617368526577617264526174696f60501b602082015291506126ac9050565b156110dd57602081146110685760405162461bcd60e51b815260040161064f906139a1565b604080516020601f84018190048102820181019092528281526000916110a69185858083850183828082843760009201919091525061270692505050565b9050600a81101580156110b95750606481105b6110d55760405162461bcd60e51b815260040161064f90613aa9565b6006556112e4565b61115184848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f656e61626c654d616c6963696f7573566f7465536c6173680000000000000000602082015291506126ac9050565b156111c857602081146111765760405162461bcd60e51b815260040161064f90613760565b604080516020601f84018190048102820181019092528281526111b2919084848083850183828082843760009201919091525061270b92505050565b6007805460ff19169115159190911790556112e4565b61122f84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601081526f66656c6f6e79536c61736853636f706560801b602082015291506126ac9050565b156112cc57602081146112545760405162461bcd60e51b815260040161064f90613930565b604080516020601f84018190048102820181019092528281526000916112929185858083850183828082843760009201919091525061270692505050565b905061708081101580156112a85750620d2f0081105b6112c45760405162461bcd60e51b815260040161064f906136a9565b6008556112e4565b60405162461bcd60e51b815260040161064f90613c68565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a8484848460405161131994939291906135b1565b60405180910390a150505050565b600a81565b61100281565b33612000146113535760405162461bcd60e51b815260040161064f90613bcc565b60005460ff166113755760405162461bcd60e51b815260040161064f90613672565b6040517f07db600eebe2ac176be8dcebad61858c245a4961bb32ca2aa3d159b09aa0810e90600090a1505050565b3341146113c25760405162461bcd60e51b815260040161064f90613c1b565b60005460ff166113e45760405162461bcd60e51b815260040161064f90613672565b60035443116114055760405162461bcd60e51b815260040161064f90613cf4565b3a156114235760405162461bcd60e51b815260040161064f90613973565b60405163155853f360e21b8152611000906355614fcc90611448908490600401613545565b60206040518083038186803b15801561146057600080fd5b505afa158015611474573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149891906132b8565b6114a15761180b565b6114a9612f79565b506001600160a01b0381166000908152600260208181526040928390208351606081018552815481526001820154928101929092529091015460ff16158015928201929092529061150457602081018051600101905261155d565b60016040820181905260208201819052805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0384161790555b43815260055460208201518161156f57fe5b0661173957600060208201526040516335409f7f60e01b8152611000906335409f7f906115a0908590600401613545565b600060405180830381600087803b1580156115ba57600080fd5b505af11580156115ce573d6000803e3d6000fd5b505060405163436aa28360e11b81526000925061200291506386d54506906115fa908690600401613545565b60206040518083038186803b15801561161257600080fd5b505afa158015611626573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061164a91906131ae565b6001600160a01b03161461166b576116668282602001516124f9565b611734565b61200063f7a251d7600b61167e856123af565b60006040518463ffffffff1660e01b815260040161169e93929190613d86565b600060405180830381600087803b1580156116b857600080fd5b505af19250505080156116c9575060015b611734573d8080156116f7576040519150601f19603f3d011682016040523d82523d6000602084013e6116fc565b606091505b50826001600160a01b0316600080516020613e6383398151915283602001518360405161172a929190613590565b60405180910390a2505b6117a5565b60045481602001518161174857fe5b066117a5576040516375abf10160e11b81526110009063eb57e20290611772908590600401613545565b600060405180830381600087803b15801561178c57600080fd5b505af11580156117a0573d6000803e3d6000fd5b505050505b6001600160a01b0382166000818152600260208181526040808420865181559186015160018301558581015191909201805460ff1916911515919091179055517fddb6012116e51abf5436d956a4f0ebd927e92c576ff96d7918290c8782291e3e9190a2505b5043600355565b60005460ff166118345760405162461bcd60e51b815260040161064f90613672565b60075460ff166118565760405162461bcd60e51b815260040161064f9061360d565b6006546118635760146006555b60085461187057603c6008555b60085481516040015143910111801561189457504360085482602001516040015101115b6118b05760405162461bcd60e51b815260040161064f90613c8f565b8060200151602001518160000151602001511480156118de5750806020015160600151816000015160600151145b156118fb5760405162461bcd60e51b815260040161064f90613888565b80516040810151905110801561191a5750602081015160408101519051105b6119365760405162461bcd60e51b815260040161064f9061380a565b60208101515181515110801561195b5750806000015160400151816020015160400151105b8061198657508051516020820151511080156119865750806020015160400151816000015160400151105b806119a05750806020015160400151816000015160400151145b6119bc5760405162461bcd60e51b815260040161064f906136f4565b604080820151905163ea321e4960e01b81526110009163ea321e49916119e5919060040161357d565b60206040518083038186803b1580156119fd57600080fd5b505afa158015611a11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3591906132b8565b611a515760405162461bcd60e51b815260040161064f906139ea565b611a6381600001518260400151612733565b8015611a7c5750611a7c81602001518260400151612733565b611a985760405162461bcd60e51b815260040161064f906137ab565b6060806110006001600160a01b0316633b071dcc6040518163ffffffff1660e01b815260040160006040518083038186803b158015611ad657600080fd5b505afa158015611aea573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611b1291908101906131f5565b9150915060005b8151811015611c4f57611b43828281518110611b3157fe5b6020026020010151856040015161290b565b15611c47576006546040516309a99b4f60e41b815260646110028031909302049190639a99b4f090611b7b9033908590600401613559565b602060405180830381600087803b158015611b9557600080fd5b505af1158015611ba9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bcd9190613463565b506110006001600160a01b03166335409f7f858481518110611beb57fe5b60200260200101516040518263ffffffff1660e01b8152600401611c0f9190613545565b600060405180830381600087803b158015611c2957600080fd5b505af1158015611c3d573d6000803e3d6000fd5b5050505050611c4f565b600101611b19565b5060408084015190516317b4f35360e01b8152600091612002916317b4f35391611c7b9160040161357d565b60206040518083038186803b158015611c9357600080fd5b505afa158015611ca7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ccb91906131ae565b6001600160a01b031614611d39576040808401519051630e9fbf5160e01b815261200291630e9fbf5191611d02919060040161357d565b600060405180830381600087803b158015611d1c57600080fd5b505af1158015611d30573d6000803e3d6000fd5b50505050610d21565b6120006001600160a01b031663f7a251d7600b611d59866040015161296f565b60006040518463ffffffff1660e01b8152600401611d7993929190613d86565b600060405180830381600087803b158015611d9357600080fd5b505af1158015611da7573d6000803e3d6000fd5b505050506000611dbc846040015160006129aa565b60405190915081907f7b78aadacff901d8b63d0dba4f86283d4db8aef27f9ed70413dd860f1c9532b690600090a250505050565b61100381565b601481565b61200481565b60005460ff1615611e245760405162461bcd60e51b815260040161064f90613af3565b60056004819055600a905560078054600160ff199182168117909255600080549091169091179055565b601181565b61100081565b600381565b3361100014611e7f5760405162461bcd60e51b815260040161064f906138b5565b60005460ff16611ea15760405162461bcd60e51b815260040161064f90613672565b600154611ead576122a5565b600154600090600019015b808211612279576000805b82841015611fdc57611ed3612f79565b6002600060018781548110611ee457fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff161515908201526005549091506004900481602001511115611fc657600460055481611f5157fe5b04816020015103816020018181525050806002600060018881548110611f7357fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208351815591830151600183015591909101516002909101805460ff1916911515919091179055611fd0565b6001925050611fdc565b50836001019350611ec3565b82841161217357611feb612f79565b6002600060018681548110611ffc57fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff1615159082015260055490915060049004816020015111156120e45760046005548161206957fe5b0481602001510381602001818152505080600260006001878154811061208b57fe5b6000918252602080832091909101546001600160a01b03168352828101939093526040918201902083518155918301516001808401919091559201516002909101805460ff191691151591909117905591506121739050565b60026000600186815481106120f557fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff1916905580548061213957fe5b600082815260209020810160001990810180546001600160a01b0319169055019055836121665750612173565b5060001990920191611fdc565b81801561217d5750805b1561225c57600260006001868154811061219357fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff191690558054849081106121da57fe5b600091825260209091200154600180546001600160a01b03909216918690811061220057fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600180548061223957fe5b600082815260209020810160001990810180546001600160a01b03191690550190555b82612268575050612279565b505060019091019060001901611eb8565b6040517fcfdb3b6ccaeccbdc68be3c59c840e3b3c90f0a7c491f5fff1cf56cfda200dd9c90600090a150505b565b61100481565b60606122c06122bb836129c6565b6122c8565b90505b919050565b6060815160011480156122fa5750607f60f81b826000815181106122e857fe5b01602001516001600160f81b03191611155b156123065750806122c3565b6122c06123188351608060ff16612aac565b83612b7e565b606081516000141561233f57506040805160008152602081019091526122c3565b60608260008151811061234e57fe5b602002602001015190506000600190505b835181101561238f576123858285838151811061237857fe5b6020026020010151612b7e565b915060010161235f565b506123a86123a2825160c060ff16612aac565b82612b7e565b9392505050565b60408051600480825260a08201909252606091829190816020015b60608152602001906001900390816123ca5790505090506123f3836001600160a01b0316612bfb565b8160008151811061240057fe5b6020026020010181905250612414436122ad565b8160018151811061242157fe5b60209081029190910101526124376102ca6122ad565b8160028151811061244457fe5b6020026020010181905250612458426122ad565b8160038151811061246557fe5b60200260200101819052506123a88161231e565b612481612f9c565b600061248b612f9c565b612493612fae565b6124a461249f86612c1e565b612c43565b90506000805b6124b383612c8d565b156124ec57806124df576124ce6124c984612cae565b612cfc565b63ffffffff168452600191506124e4565b6124ec565b6001016124aa565b5091935090915050915091565b6040516375cc7d8960e01b8152612002906375cc7d899061251e908590600401613545565b600060405180830381600087803b15801561253857600080fd5b505af1925050508015612549575060015b610d5c576040516000815260443d101561256557506000612602565b60046000803e60005160e01c6308c379a08114612586576000915050612602565b60043d036004833e81513d602482011167ffffffffffffffff821117156125b257600092505050612602565b808301805167ffffffffffffffff8111156125d4576000945050505050612602565b8060208301013d86018111156125f257600095505050505050612602565b601f01601f191660405250925050505b8061260d5750612644565b826001600160a01b0316600080516020613e638339815191528383604051612636929190613590565b60405180910390a2506126a7565b3d80801561266e576040519150601f19603f3d011682016040523d82523d6000602084013e612673565b606091505b50826001600160a01b0316600080516020613e63833981519152838360405161269d929190613590565b60405180910390a2505b610d5c565b6000816040516020016126bf9190613529565b60405160208183030381529060405280519060200120836040516020016126e69190613529565b604051602081830303815290604052805190602001201490505b92915050565b015190565b8082015160009060ff81161561272557600191508161272b565b60009150815b505092915050565b60408051600480825260a0820190925260009160609190816020015b606081526020019060019003908161274f57505060408051602080825281830190925291925060609190808201818036833701905050905061279485600001516122ad565b826000815181106127a157fe5b60200260200101819052506127bc6020866020015183612d7e565b6127c5816122c8565b826001815181106127d257fe5b60200260200101819052506127ea85604001516122ad565b826002815181106127f757fe5b60200260200101819052506128126020866060015183612d7e565b61281b816122c8565b8260038151811061282857fe5b602002602001018190525061284e60206128418461231e565b8051906020012083612d7e565b6040805160b080825260e0820190925260609160208201818036833701905050905061287e818360006020612d8e565b61289081876080015160206060612d8e565b61289e818660806030612d8e565b604080516001808252818301909252606091602082018180368337019050509050815160016020830182602086016066600019fa6128db57600080fd5b5060016128e9826000612de1565b60ff16146128fe576000945050505050612700565b5060019695505050505050565b8151815160009160019181148083146129275760009250612965565b600160208701838101602088015b6002848385100114156129605780518351146129545760009650600093505b60209283019201612935565b505050505b5090949350505050565b60408051600480825260a08201909252606091829190816020015b606081526020019060019003908161298a5790505090506123f3836122c8565b600081602001835110156129bd57600080fd5b50016020015190565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416612a0a57506018612a2e565b6fffffffffffffffffffffffffffffffff198416612a2a57506010612a2e565b5060005b6020811015612a6457818181518110612a4357fe5b01602001516001600160f81b03191615612a5c57612a64565b600101612a2e565b60008160200390506060816040519080825280601f01601f191660200182016040528015612a99576020820181803683370190505b5080830196909652508452509192915050565b6060680100000000000000008310612ad65760405162461bcd60e51b815260040161064f906137e2565b60408051600180825281830190925260609160208201818036833701905050905060378411612b305782840160f81b81600081518110612b1257fe5b60200101906001600160f81b031916908160001a9053509050612700565b6060612b3b856129c6565b90508381510160370160f81b82600081518110612b5457fe5b60200101906001600160f81b031916908160001a905350612b758282612b7e565b95945050505050565b6060806040519050835180825260208201818101602087015b81831015612baf578051835260209283019201612b97565b50855184518101855292509050808201602086015b81831015612bdc578051835260209283019201612bc4565b508651929092011591909101601f01601f191660405250905092915050565b60408051600560a21b83186014820152603481019091526060906123a8816122c8565b612c26612fce565b506040805180820190915281518152602082810190820152919050565b612c4b612fae565b612c5482612dfd565b612c5d57600080fd5b6000612c6c8360200151612e37565b60208085015160408051808201909152868152920190820152915050919050565b6000612c97612fce565b505080518051602091820151919092015191011190565b612cb6612fce565b612cbf82612c8d565b612cc857600080fd5b60208201516000612cd882612e9a565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590612d1157508151602110155b612d1a57600080fd5b6000612d298360200151612e37565b90508083600001511015612d4f5760405162461bcd60e51b815260040161064f90613b50565b825160208085015183018051928490039291831015612d7557826020036101000a820491505b50949350505050565b9091018181526020918201910152565b60005b81811015610d1e57838181518110612da557fe5b602001015160f81c60f81b858480600101955081518110612dc257fe5b60200101906001600160f81b031916908160001a905350600101612d91565b60008160010183511015612df457600080fd5b50016001015190565b8051600090612e0e575060006122c3565b6020820151805160001a9060c0821015612e2d576000925050506122c3565b5060019392505050565b8051600090811a6080811015612e515760009150506122c3565b60b8811080612e6c575060c08110801590612e6c575060f881105b15612e7b5760019150506122c3565b60c0811015612e8f5760b5190190506122c3565b60f5190190506122c3565b80516000908190811a6080811015612eb55760019150612f72565b60b8811015612eca57607e1981019150612f72565b60c0811015612f1b57600060b78203600186019550806020036101000a865104915060018101820193505080831015612f155760405162461bcd60e51b815260040161064f90613905565b50612f72565b60f8811015612f305760be1981019150612f72565b600060f78203600186019550806020036101000a86510491506001810182019350508083101561272b5760405162461bcd60e51b815260040161064f90613905565b5092915050565b604051806060016040528060008152602001600081526020016000151581525090565b60408051602081019091526000815290565b6040518060400160405280612fc1612fce565b8152602001600081525090565b604051806040016040528060008152602001600081525090565b600082601f830112612ff8578081fd5b815161300b61300682613dd9565b613db2565b818152915060208083019084810160005b84811015613081578151870188603f82011261303757600080fd5b8381015161304761300682613df9565b81815260408b8184860101111561305d57600080fd5b61306c83888401838701613e1d565b5086525050928201929082019060010161301c565b505050505092915050565b60008083601f84011261309d578182fd5b50813567ffffffffffffffff8111156130b4578182fd5b6020830191508360208285010111156130cc57600080fd5b9250929050565b600082601f8301126130e3578081fd5b81356130f161300682613df9565b915080825283602082850101111561310857600080fd5b8060208401602084013760009082016020015292915050565b600060a08284031215613132578081fd5b61313c60a0613db2565b905081358152602082013560208201526040820135604082015260608201356060820152608082013567ffffffffffffffff81111561317a57600080fd5b613186848285016130d3565b60808301525092915050565b6000602082840312156131a3578081fd5b81356123a881613e4d565b6000602082840312156131bf578081fd5b81516123a881613e4d565b600080604083850312156131dc578081fd5b82356131e781613e4d565b946020939093013593505050565b60008060408385031215613207578182fd5b825167ffffffffffffffff8082111561321e578384fd5b81850186601f82011261322f578485fd5b8051925061323f61300684613dd9565b80848252602080830192508084018a82838902870101111561325f578889fd5b8894505b8685101561328a57805161327681613e4d565b845260019490940193928101928101613263565b5088015190965093505050808211156132a1578283fd5b506132ae85828601612fe8565b9150509250929050565b6000602082840312156132c9578081fd5b815180151581146123a8578182fd5b600080604083850312156132ea578182fd5b823567ffffffffffffffff80821115613301578384fd5b61330d868387016130d3565b93506020850135915080821115613322578283fd5b506132ae858286016130d3565b60008060008060408587031215613344578182fd5b843567ffffffffffffffff8082111561335b578384fd5b6133678883890161308c565b9096509450602087013591508082111561337f578384fd5b5061338c8782880161308c565b95989497509550505050565b6000602082840312156133a9578081fd5b813567ffffffffffffffff808211156133c0578283fd5b818401606081870312156133d2578384fd5b6133dc6060613db2565b92508035828111156133ec578485fd5b6133f887828401613121565b84525060208101358281111561340c578485fd5b61341887828401613121565b60208501525060408101358281111561342f578485fd5b61343b878284016130d3565b6040850152509195945050505050565b60006020828403121561345c578081fd5b5035919050565b600060208284031215613474578081fd5b5051919050565b60008060006040848603121561348f578081fd5b833560ff8116811461349f578182fd5b9250602084013567ffffffffffffffff8111156134ba578182fd5b6134c68682870161308c565b9497909650939450505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008151808452613515816020860160208601613e1d565b601f01601f19169290920160200192915050565b6000825161353b818460208701613e1d565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b6000602082526123a860208301846134fd565b6000838252604060208301526135a960408301846134fd565b949350505050565b6000604082526135c56040830186886134d3565b82810360208401526135d88185876134d3565b979650505050505050565b60208082526010908201526f195d9a59195b98d9481d1bdbc81bdb1960821b604082015260600190565b6020808252818101527f6d616c6963696f757320766f746520736c617368206e6f7420656e61626c6564604082015260600190565b6020808252601690820152751d985b1a59185d1bdc881b9bdd081b5a59dc985d195960521b604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252602b908201527f746865206d616c6963696f757320766f746520736c6173682073636f7065206f60408201526a7574206f662072616e676560a81b606082015260800190565b6020808252601a908201527f6e6f2076696f6c6174696f6e206f6620766f74652072756c6573000000000000604082015260600190565b6020808252818101527f7468652066656c6f6e795468726573686f6c64206f7574206f662072616e6765604082015260600190565b6020808252602b908201527f6c656e677468206f6620656e61626c654d616c6963696f7573566f7465536c6160408201526a0e6d040dad2e6dac2e8c6d60ab1b606082015260800190565b60208082526017908201527f766572696679207369676e6174757265206661696c6564000000000000000000604082015260600190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526019908201527f7372634e756d20626967676572207468616e207461724e756d00000000000000604082015260600190565b60208082526027908201527f6c656e677468206f66206d697364656d65616e6f725468726573686f6c64206d6040820152660d2e6dac2e8c6d60cb1b606082015260800190565b60208082526013908201527274776f206964656e746963616c20766f74657360681b604082015260600190565b60208082526030908201527f746865206d6573736167652073656e646572206d7573742062652076616c696460408201526f185d1bdc94d95d0818dbdb9d1c9858dd60821b606082015260800190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b60208082526023908201527f6c656e677468206f662066656c6f6e79536c61736853636f7065206d69736d616040820152620e8c6d60eb1b606082015260800190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b60208082526029908201527f6c656e677468206f662066656c6f6e79536c617368526577617264526174696f604082015268040dad2e6dac2e8c6d60bb1b606082015260800190565b6020808252601590820152741d9bdd195059191c881a5cc81b9bdd08199bdd5b99605a1b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526022908201527f6c656e677468206f662066656c6f6e795468726573686f6c64206d69736d61746040820152610c6d60f31b606082015260800190565b6020808252602a908201527f7468652066656c6f6e7920736c6173682072657761726420726174696f206f7560408201526974206f662072616e676560b01b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b6020808252600c908201526b32b6b83a3c903432b0b232b960a11b604082015260600190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526025908201527f746865206d697364656d65616e6f725468726573686f6c64206f7574206f662060408201526472616e676560d81b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b6020808252601490820152731d185c99d95d08189b1bd8dac81d1bdbc81bdb1960621b604082015260600190565b6020808252601e908201527f7265636569766520756e65787065637465642073796e207061636b6167650000604082015260600190565b6020808252818101527f63616e206e6f7420736c61736820747769636520696e206f6e6520626c6f636b604082015260600190565b61ffff91909116815260200190565b90815260200190565b918252602082015260400190565b92835260208301919091521515604082015260600190565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff8516825260606020830152613da260608301856134fd565b9050826040830152949350505050565b60405181810167ffffffffffffffff81118282101715613dd157600080fd5b604052919050565b600067ffffffffffffffff821115613def578081fd5b5060209081020190565b600067ffffffffffffffff821115613e0f578081fd5b50601f01601f191660200190565b60005b83811015613e38578181015183820152602001613e20565b83811115613e47576000848401525b50505050565b6001600160a01b0381168114610bd957600080fdfed7bc86ff5d08c8ab043edec743302aba2520e6635172a428bc956721db9e2d1ca164736f6c6343000604000a", - }, - { - ContractAddr: TokenHubContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/2d6372ddba77902ef01e45887a425938376d5a5c", - Code: "6080604052600436106104405760003560e01c80639509b98011610234578063c81b16621161012e578063ebf71d53116100b6578063fb063e8f1161007a578063fb063e8f146110d3578063fc1a598f146110e8578063fc3e590814610cca578063fd6a68791461111b578063ff9c0027146108a057610488565b8063ebf71d531461106a578063f01484721461107f578063f1fad10414611094578063f9a2bbc7146110a9578063fa9e9159146110be57610488565b8063dc927faf116100fd578063dc927faf14610fce578063df8079e914610fe3578063e04c83a714610ff8578063e1c7392a14611022578063e8f35cea1461103757610488565b8063c81b166214610ef9578063c8509d8114610f0e578063cf41984414610f93578063d9e6dae91461080d57610488565b8063aa7415f5116101bc578063b99328c511610180578063b99328c514610e30578063b9fd21e314610e69578063ba35ead614610e7e578063bbface1f14610e93578063bd46646114610ec657610488565b8063aa7415f514610cdf578063aa82dce114610d26578063aad5606314610d3b578063ab51bb9614610d50578063ac43175114610d6557610488565b80639dc09262116102035780639dc0926214610c76578063a1a11bf514610c8b578063a496fba214610ca0578063a78abc1614610cb5578063a7c9f02d14610cca57610488565b80639509b98014610bda57806396713da914610c135780639a854bbd14610c285780639a99b4f014610c3d57610488565b806359b9278911610345578063727be1f8116102cd578063831d65d111610291578063831d65d114610ac85780638525db0314610b4d5780638b87b21f146107625780638eff336c14610b8657806393ab703f14610bc557610488565b8063727be1f814610a2057806375d47a0a14610a4a5780637942fd0514610a5f578063799758b914610a745780637e434d5414610ab357610488565b80636e056520116103145780636e056520146108b55780636e47b482146109e157806370fd5bad146108a0578063718a8aa8146109f657806371d3086314610a0b57610488565b806359b92789146108615780635d499b1b1461088b578063613684751461080d57806366dea52a146108a057610488565b80633fd8b02f116103c85780634a3acdf4116103975780634a3acdf4146107f85780634bf6c8821461080d57806350432d321461082257806351b4dce31461083757806351e806721461084c57610488565b80633fd8b02f1461078d57806343756e5c146107a257806343a368b9146107b7578063493279b1146107cc57610488565b8063149d14d91161040f578063149d14d91461062157806328087028146106485780632ae454831461065d5780633d713223146106b15780633dffc3871461076257610488565b80630bee7a671461048d5780630e2374a5146104bb5780631182b875146104ec57806312234582146105e657610488565b36610488573415610486576040805133815234602082015281517f6c98249d85d88c3753a04a22230f595e4dc8d3dc86c34af35deeeedc861b89db929181900390910190a15b005b600080fd5b34801561049957600080fd5b506104a2611130565b6040805163ffffffff9092168252519081900360200190f35b3480156104c757600080fd5b506104d0611135565b604080516001600160a01b039092168252519081900360200190f35b3480156104f857600080fd5b506105716004803603604081101561050f57600080fd5b60ff8235169190810190604081016020820135600160201b81111561053357600080fd5b82018360208201111561054557600080fd5b803590602001918460018302840111600160201b8311171561056657600080fd5b50909250905061113b565b6040805160208082528351818301528351919283929083019185019080838360005b838110156105ab578181015183820152602001610593565b50505050905090810190601f1680156105d85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156105f257600080fd5b506104866004803603604081101561060957600080fd5b506001600160a01b0381358116916020013516611269565b34801561062d57600080fd5b50610636611363565b60408051918252519081900360200190f35b34801561065457600080fd5b506104d0611369565b34801561066957600080fd5b506106986004803603604081101561068057600080fd5b506001600160a01b038135811691602001351661136f565b6040805192835260208301919091528051918290030190f35b3480156106bd57600080fd5b506104d0600480360360208110156106d457600080fd5b810190602081018135600160201b8111156106ee57600080fd5b82018360208201111561070057600080fd5b803590602001918460018302840111600160201b8311171561072157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611393945050505050565b34801561076e57600080fd5b506107776113b7565b6040805160ff9092168252519081900360200190f35b34801561079957600080fd5b506106366113bc565b3480156107ae57600080fd5b506104d06113c2565b3480156107c357600080fd5b506106366113c8565b3480156107d857600080fd5b506107e16113d4565b6040805161ffff9092168252519081900360200190f35b34801561080457600080fd5b506106366113da565b34801561081957600080fd5b506107776113e0565b34801561082e57600080fd5b506106366113e5565b34801561084357600080fd5b506104d06113f0565b34801561085857600080fd5b506104d06113f6565b34801561086d57600080fd5b506104d06004803603602081101561088457600080fd5b50356113fc565b34801561089757600080fd5b50610636611417565b3480156108ac57600080fd5b50610777611420565b6109cd600480360360808110156108cb57600080fd5b810190602081018135600160201b8111156108e557600080fd5b8201836020820111156108f757600080fd5b803590602001918460208302840111600160201b8311171561091857600080fd5b919390929091602081019035600160201b81111561093557600080fd5b82018360208201111561094757600080fd5b803590602001918460208302840111600160201b8311171561096857600080fd5b919390929091602081019035600160201b81111561098557600080fd5b82018360208201111561099757600080fd5b803590602001918460208302840111600160201b831117156109b857600080fd5b91935091503567ffffffffffffffff16611425565b604080519115158252519081900360200190f35b3480156109ed57600080fd5b506104d06118fa565b348015610a0257600080fd5b50610777611900565b348015610a1757600080fd5b50610636611905565b348015610a2c57600080fd5b506109cd60048036036020811015610a4357600080fd5b503561190b565b348015610a5657600080fd5b506104d061198c565b348015610a6b57600080fd5b50610777611992565b348015610a8057600080fd5b5061048660048036036060811015610a9757600080fd5b508035906001600160a01b036020820135169060400135611997565b348015610abf57600080fd5b506104d0611c47565b348015610ad457600080fd5b5061048660048036036040811015610aeb57600080fd5b60ff8235169190810190604081016020820135600160201b811115610b0f57600080fd5b820183602082011115610b2157600080fd5b803590602001918460018302840111600160201b83111715610b4257600080fd5b509092509050611c4d565b348015610b5957600080fd5b5061048660048036036040811015610b7057600080fd5b50803590602001356001600160a01b0316611d95565b348015610b9257600080fd5b5061048660048036036060811015610ba957600080fd5b508035906001600160a01b036020820135169060400135611efe565b348015610bd157600080fd5b50610636611f84565b348015610be657600080fd5b5061048660048036036040811015610bfd57600080fd5b506001600160a01b038135169060200135611f89565b348015610c1f57600080fd5b50610777612146565b348015610c3457600080fd5b5061063661214b565b348015610c4957600080fd5b5061063660048036036040811015610c6057600080fd5b506001600160a01b038135169060200135612157565b348015610c8257600080fd5b506104d0612295565b348015610c9757600080fd5b506104d061229b565b348015610cac57600080fd5b506107776122a1565b348015610cc157600080fd5b506109cd6122a6565b348015610cd657600080fd5b506107776122af565b6109cd60048036036080811015610cf557600080fd5b5080356001600160a01b03908116916020810135909116906040810135906060013567ffffffffffffffff166122b4565b348015610d3257600080fd5b506104d0612334565b348015610d4757600080fd5b506104d061233a565b348015610d5c57600080fd5b506104a26122a1565b348015610d7157600080fd5b5061048660048036036040811015610d8857600080fd5b810190602081018135600160201b811115610da257600080fd5b820183602082011115610db457600080fd5b803590602001918460018302840111600160201b83111715610dd557600080fd5b919390929091602081019035600160201b811115610df257600080fd5b820183602082011115610e0457600080fd5b803590602001918460018302840111600160201b83111715610e2557600080fd5b509092509050612340565b348015610e3c57600080fd5b5061048660048036036040811015610e5357600080fd5b50803590602001356001600160a01b03166127e8565b348015610e7557600080fd5b50610636612868565b348015610e8a57600080fd5b50610636612872565b348015610e9f57600080fd5b5061063660048036036020811015610eb657600080fd5b50356001600160a01b0316612878565b348015610ed257600080fd5b5061063660048036036020811015610ee957600080fd5b50356001600160a01b031661288a565b348015610f0557600080fd5b506104d06128a5565b348015610f1a57600080fd5b5061048660048036036040811015610f3157600080fd5b60ff8235169190810190604081016020820135600160201b811115610f5557600080fd5b820183602082011115610f6757600080fd5b803590602001918460018302840111600160201b83111715610f8857600080fd5b5090925090506128ab565b348015610f9f57600080fd5b5061048660048036036040811015610fb657600080fd5b506001600160a01b038135811691602001351661297b565b348015610fda57600080fd5b506104d0612c4f565b348015610fef57600080fd5b506104d0612c55565b34801561100457600080fd5b506109cd6004803603602081101561101b57600080fd5b5035612c5b565b34801561102e57600080fd5b50610486612cfb565b34801561104357600080fd5b506106366004803603602081101561105a57600080fd5b50356001600160a01b0316612d9b565b34801561107657600080fd5b50610777612dad565b34801561108b57600080fd5b50610777612db2565b3480156110a057600080fd5b50610777612db7565b3480156110b557600080fd5b506104d0612dbc565b3480156110ca57600080fd5b50610636612dc2565b3480156110df57600080fd5b50610636612dc8565b3480156110f457600080fd5b506105716004803603602081101561110b57600080fd5b50356001600160a01b0316612dd6565b34801561112757600080fd5b506104d0612efd565b606481565b61200181565b60005460609060ff16611183576040805162461bcd60e51b815260206004820152601960248201526000805160206153e1833981519152604482015290519081900360640190fd5b33612000146111c35760405162461bcd60e51b815260040180806020018281038252602f81526020018061538f602f913960400191505060405180910390fd5b60ff8416600214156112155761120e83838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612f0392505050565b9050611262565b6040805162461bcd60e51b815260206004820152601860248201527f756e7265636f676e697a65642073796e207061636b6167650000000000000000604482015290519081900360640190fd5b9392505050565b33612000146112a95760405162461bcd60e51b815260040180806020018281038252602f81526020018061538f602f913960400191505060405180910390fd5b6001600160a01b0380831660009081526007602090815260408083209385168352929052208054611314576040805162461bcd60e51b815260206004820152601060248201526f1b9bc81b1bd8dad95908185b5bdd5b9d60821b604482015290519081900360640190fd5b8054600082556040805182815290516001600160a01b0380861692908716917f152fb15aa5d80f843e1e4bd5f2fc9161714f169945024decec7e84fb910fdd519181900360200190a350505050565b60015490565b61200581565b60076020908152600092835260408084209091529082529020805460019091015482565b6020818101516000908152600490915260409020546001600160a01b03165b919050565b600181565b60055481565b61100181565b670de0b6b3a764000081565b6102ca81565b61a8c081565b600881565b66071afd498d000081565b61200681565b61200081565b6000908152600460205260409020546001600160a01b031690565b6402540be40081565b600281565b6000805460ff1661146b576040805162461bcd60e51b815260206004820152601960248201526000805160206153e1833981519152604482015290519081900360640190fd5b8685146114a95760405162461bcd60e51b815260040180806020018281038252603b815260200180615354603b913960400191505060405180910390fd5b8683146114e75760405162461bcd60e51b815260040180806020018281038252603f815260200180615266603f913960400191505060405180910390fd5b426078018267ffffffffffffffff1610156115335760405162461bcd60e51b81526004018080602001828103825260248152602001806151e26024913960400191505060405180910390fd5b6402540be4003406156115775760405162461bcd60e51b81526004018080602001828103825260408152602001806154576040913960400191505060405180910390fd5b604080518681526020808802820101909152859060009081906060908480156115aa578160200160208202803683370190505b50905060005b84811015611685576402540be4008b8b838181106115ca57fe5b90506020020135816115d857fe5b06156116155760405162461bcd60e51b815260040180806020018281038252603c8152602001806152a5603c913960400191505060405180910390fd5b61163a8b8b8381811061162457fe5b905060200201358561302790919063ffffffff16565b93506116666402540be4008c8c8481811061165157fe5b9050602002013561308190919063ffffffff16565b82828151811061167257fe5b60209081029190910101526001016115b0565b506001546116aa9061169d908663ffffffff6130c316565b849063ffffffff61302716565b3410156116e85760405162461bcd60e51b81526004018080602001828103825260568152602001806154016056913960600191505060405180910390fd5b6116f8348463ffffffff61311c16565b9150611702615020565b6040518060c001604052806221272160e91b60001b815260200160006001600160a01b031681526020018381526020018e8e808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505050908252506040805160208c810282810182019093528c82529283019290918d918d91829185019084908082843760009201919091525050509082525067ffffffffffffffff8916602090910152905061200063f7a251d760036117c68461315e565b6117db876402540be40063ffffffff61308116565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611839578181015183820152602001611821565b50505050905090810190601f1680156118665780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561188757600080fd5b505af115801561189b573d6000803e3d6000fd5b505060408051600081523360208201528082018890526060810187905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a15060019c9b505050505050505050505050565b61100581565b601081565b60015481565b6000336120011461194d5760405162461bcd60e51b815260040180806020018281038252603381526020018061513a6033913960400191505060405180910390fd5b8115611984576040516120019083156108fc029084906000818181858888f19350505050158015611982573d6000803e3d6000fd5b505b506001919050565b61100881565b600b81565b60005460ff166119dc576040805162461bcd60e51b815260206004820152601960248201526000805160206153e1833981519152604482015290519081900360640190fd5b3361300014611a1c5760405162461bcd60e51b815260040180806020018281038252602b81526020018061523b602b913960400191505060405180910390fd5b677ce66c50e2840000811115611a635760405162461bcd60e51b81526004018080602001828103825260358152602001806152066035913960400191505060405180910390fd5b60006221272160e91b8414611bcd576000848152600460205260409020546001600160a01b031680611ad6576040805184815290516001600160a01b0386169187917fc16ee9013bf67c846d37735983debb0acc5b2d1419cb5931c9843ad4689505499181900360200190a35050611c42565b6001600160a01b038116600090815260026020526040902054611af98482613419565b604080516370a0823160e01b8152306004820152905191945084916001600160a01b038516916370a08231916024808301926020929190829003018186803b158015611b4457600080fd5b505afa158015611b58573d6000803e3d6000fd5b505050506040513d6020811015611b6e57600080fd5b50511015611bba576040805162461bcd60e51b8152602060048201526014602482015273696e73756666696369656e742062616c616e636560601b604482015290519081900360640190fd5b611bc686838588613459565b5050611c40565b611be2826402540be40063ffffffff6130c316565b905080471015611c30576040805162461bcd60e51b8152602060048201526014602482015273696e73756666696369656e742062616c616e636560601b604482015290519081900360640190fd5b6000611c3e85828487613459565b505b505b505050565b61200381565b60005460ff16611c92576040805162461bcd60e51b815260206004820152601960248201526000805160206153e1833981519152604482015290519081900360640190fd5b3361200014611cd25760405162461bcd60e51b815260040180806020018281038252602f81526020018061538f602f913960400191505060405180910390fd5b60ff831660031415611d2257611d1d82828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506134f192505050565b611c42565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a1505050565b3361300014611dd55760405162461bcd60e51b815260040180806020018281038252602b81526020018061523b602b913960400191505060405180910390fd5b60006221272160e91b8314611e4057506000828152600460205260409020546001600160a01b031680611e40576040805162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a59081cde5b589bdb60921b604482015290519081900360640190fd5b6001600160a01b0380821660009081526007602090815260408083209386168352929052208054611eab576040805162461bcd60e51b815260206004820152601060248201526f1b9bc81b1bd8dad95908185b5bdd5b9d60821b604482015290519081900360640190fd5b8054600082556040805182815290516001600160a01b03808716929086169188917f8041a9a8704332594e2884f5e0f942281cdd7611854c365b4d0aa70b2295d6b6919081900360200190a45050505050565b3361100814611f3e5760405162461bcd60e51b81526004018080602001828103825260238152602001806153be6023913960400191505060405180910390fd5b600083815260046020908152604080832080546001600160a01b039096166001600160a01b03199096168617905593825260038152838220949094556002909352912055565b603c81565b81806001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b158015611fc357600080fd5b505afa158015611fd7573d6000803e3d6000fd5b505050506040513d6020811015611fed57600080fd5b50516001600160a01b0316331461204b576040805162461bcd60e51b815260206004820152601860248201527f6e6f74206f776e6572206f6620424550323020746f6b656e0000000000000000604482015290519081900360640190fd5b60008211612099576040805162461bcd60e51b81526020600482015260166024820152751e995c9bc81b1a5b5a5d081b9bdd08185b1b1bddd95960521b604482015290519081900360640190fd5b6001600160a01b0383166000908152600360205260409020546120ef576040805162461bcd60e51b81526020600482015260096024820152681b9bdd08189bdd5b9960ba1b604482015290519081900360640190fd5b6001600160a01b038316600081815260066020908152604091829020859055815185815291513393927f9df3a90730dbf23b5cc18dbbd5f4af3fa94a0dffb6ff6841f98a9a9a6ac626a892908290030190a3505050565b600981565b677ce66c50e284000081565b6000805460ff1661219d576040805162461bcd60e51b815260206004820152601960248201526000805160206153e1833981519152604482015290519081900360640190fd5b33611005146121dd5760405162461bcd60e51b815260040180806020018281038252602f81526020018061516d602f913960400191505060405180910390fd5b60004783106121ec57476121ee565b825b9050670de0b6b3a764000081111561220a57600091505061228f565b801561228c576040516001600160a01b0385169082156108fc029083906000818181858888f19350505050158015612246573d6000803e3d6000fd5b50604080516001600160a01b03861681526020810183905281517ff8b71c64315fc33b2ead2adfa487955065152a8ac33d9d5193aafd7f45dc15a0929181900390910190a15b90505b92915050565b61100781565b61100681565b600081565b60005460ff1681565b600381565b6000805460ff166122fa576040805162461bcd60e51b815260206004820152601960248201526000805160206153e1833981519152604482015290519081900360640190fd5b6040805162461bcd60e51b815260206004820152600a60248201526919195c1c9958d85d195960b21b604482015290519081900360640190fd5b61200281565b61300081565b33611007146123805760405162461bcd60e51b815260040180806020018281038252602e815260200180615302602e913960400191505060405180910390fd5b602081146123d5576040805162461bcd60e51b815260206004820152601b60248201527f65787065637465642076616c7565206c656e6774682069732033320000000000604482015290519081900360640190fd5b606084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8801819004810282018101909252868152939450606093925086915085908190840183828082843760009201919091525050505060208301519091506772656c617946656560c01b8114156124dd576020820151670de0b6b3a7640000811180159061248457506402540be4008106155b6124d5576040805162461bcd60e51b815260206004820152601960248201527f7468652072656c6179466565206f7574206f662072616e676500000000000000604482015290519081900360640190fd5b600155612753565b61255187878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601781527f6c617267655472616e736665724c6f636b506572696f640000000000000000006020820152915061354d9050565b156125ed57604080516020601f87018190048102820181019092528581526000916125949188888083850183828082843760009201919091525061363492505050565b905062093a808111156125e5576040805162461bcd60e51b81526020600482015260146024820152736c6f636b20706572696f6420746f6f206c6f6e6760601b604482015290519081900360640190fd5b600555612753565b61265987878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526015815274189b9893185c99d9551c985b9cd9995c931a5b5a5d605a1b6020820152915061354d9050565b1561271657604080516020601f870181900481028201810190925285815260009161269c9188888083850183828082843760009201919091525061363492505050565b905068056bc75e2d631000008110156126e65760405162461bcd60e51b815260040180806020018281038252602281526020018061519c6022913960400191505060405180910390fd5b6000805260066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f855612753565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a878787876040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050505050565b33611008146128285760405162461bcd60e51b81526004018080602001828103825260238152602001806153be6023913960400191505060405180910390fd5b600091825260046020908152604080842080546001600160a01b03191690556001600160a01b039290921683526003815281832083905560029052812055565b6221272160e91b81565b61c35081565b60026020526000908152604090205481565b6001600160a01b031660009081526003602052604090205490565b61100281565b60005460ff166128f0576040805162461bcd60e51b815260206004820152601960248201526000805160206153e1833981519152604482015290519081900360640190fd5b33612000146129305760405162461bcd60e51b815260040180806020018281038252602f81526020018061538f602f913960400191505060405180910390fd5b60ff831660031415611d2257611d1d82828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061363992505050565b60085460ff16600214156129c7576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b6008805460ff191660021790556001600160a01b0380831660009081526007602090815260408083209385168352929052208054612a3f576040805162461bcd60e51b815260206004820152601060248201526f1b9bc81b1bd8dad95908185b5bdd5b9d60821b604482015290519081900360640190fd5b8060010154421015612a98576040805162461bcd60e51b815260206004820152601760248201527f7374696c6c206f6e206c6f636b696e6720706572696f64000000000000000000604482015290519081900360640190fd5b805460008083556001600160a01b038516612b0b576040516001600160a01b038516906127109084906000818181858888f193505050503d8060008114612afb576040519150601f19603f3d011682016040523d82523d6000602084013e612b00565b606091505b505080915050612b9e565b846001600160a01b031663a9059cbb61c35086856040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b158015612b6e57600080fd5b5087f1158015612b82573d6000803e3d6000fd5b50505050506040513d6020811015612b9957600080fd5b505190505b80612bf0576040805162461bcd60e51b815260206004820152601e60248201527f776974686472617720756e6c6f636b656420746f6b656e206661696c65640000604482015290519081900360640190fd5b836001600160a01b0316856001600160a01b03167f832fc3e25f2b3e6fb0eb59419a73cba405f2a249fce75f7e31ea5a457a0323f1846040518082815260200191505060405180910390a350506008805460ff19166001179055505050565b61100381565b61200481565b60003361200214612cb3576040805162461bcd60e51b815260206004820152601f60248201527f746865206d73672073656e646572206d757374206265207374616b6548756200604482015290519081900360640190fd5b814710612cf3576040516120029083156108fc029084906000818181858888f19350505050158015612ce9573d6000803e3d6000fd5b50600190506113b2565b506000919050565b60005460ff1615612d53576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b66071afd498d000060019081556000808052600260205260127fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b55805460ff19169091179055565b60066020526000908152604090205481565b600481565b600581565b601181565b61100081565b61271081565b69021e19e0c9bab240000081565b6001600160a01b03811660009081526003602090815260409182902054825182815280840190935260609290918391906020820181803683375050506020810183905290506000805b60208160ff161015612e6657828160ff1681518110612e3a57fe5b01602001516001600160f81b03191615612e5957816001019150612e5e565b612e66565b600101612e1f565b5060608160ff166040519080825280601f01601f191660200182016040528015612e97576020820181803683370190505b50905060005b8260ff168160ff161015612ef357838160ff1681518110612eba57fe5b602001015160f81c60f81b828260ff1681518110612ed457fe5b60200101906001600160f81b031916908160001a905350600101612e9d565b5095945050505050565b61100481565b6060612f0d61506c565b6000612f1884613730565b9150915080612f6e576040805162461bcd60e51b815260206004820152601f60248201527f756e7265636f676e697a6564207472616e73666572496e207061636b61676500604482015290519081900360640190fd5b6000612f798361386f565b905063ffffffff81161561300d576040808401516020808601516001600160a01b03166000908152600290915291822054612fb49190613bd5565b9050612fbe6150a1565b60405180608001604052808660000151815260200183815260200186608001516001600160a01b031681526020018463ffffffff16815250905061300181613c0e565b955050505050506113b2565b505060408051600081526020810190915291506113b29050565b60008282018381101561228c576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600061228c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613cea565b6000826130d25750600061228f565b828202828482816130df57fe5b041461228c5760405162461bcd60e51b81526004018080602001828103825260218152602001806152e16021913960400191505060405180910390fd5b600061228c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613d8c565b60408051600680825260e08201909252606091829190816020015b6060815260200190600190039081613179575050835190915061319b90613de6565b816000815181106131a857fe5b60200260200101819052506131c983602001516001600160a01b0316613df9565b816001815181106131d657fe5b60200260200101819052506000836040015151905060608160405190808252806020026020018201604052801561322157816020015b606081526020019060019003908161320c5790505b50905060005b8281101561326e5761324f8660400151828151811061324257fe5b6020026020010151613de6565b82828151811061325b57fe5b6020908102919091010152600101613227565b5061327881613e1c565b8360028151811061328557fe5b60200260200101819052506060826040519080825280602002602001820160405280156132c657816020015b60608152602001906001900390816132b15790505b50905060005b8381101561331c576132fd876060015182815181106132e757fe5b60200260200101516001600160a01b0316613df9565b82828151811061330957fe5b60209081029190910101526001016132cc565b5061332681613e1c565b8460038151811061333357fe5b602002602001018190525060608360405190808252806020026020018201604052801561337457816020015b606081526020019060019003908161335f5790505b50905060005b848110156133b457613395886080015182815181106132e757fe5b8282815181106133a157fe5b602090810291909101015260010161337a565b506133be81613e1c565b856004815181106133cb57fe5b60200260200101819052506133ed8760a0015167ffffffffffffffff16613de6565b856005815181106133fa57fe5b602002602001018190525061340e85613e1c565b979650505050505050565b600060088211156134425761343b836007198401600a0a63ffffffff6130c316565b905061228f565b61228c836008849003600a0a63ffffffff61308116565b6001600160a01b0380841660009081526007602090815260408083209385168352929052208054613490908463ffffffff61302716565b815542603c016001820181905560408051858152602081019290925280516001600160a01b03808616939088169289927f446d1aa056e7b903901f49880e9f252762c1b81dc4301cf28db6dae526497eaa9281900390910190a45050505050565b6134f96150c8565b600061350483613ea6565b91509150806135445760405162461bcd60e51b81526004018080602001828103825260248152602001806153306024913960400191505060405180910390fd5b611c4282614071565b6000816040516020018082805190602001908083835b602083106135825780518252601f199092019160209182019101613563565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106135f05780518252601f1990920191602091820191016135d1565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b613641615020565b600061364c836144f5565b915091508061368c5760405162461bcd60e51b81526004018080602001828103825260248152602001806151be6024913960400191505060405180910390fd5b6136946150c8565b602080840180516001600160a01b0390811684526040808701518585015291511660009081526002909252812054905b846040015151811015613715576136f2856040015182815181106136e457fe5b602002602001015183613419565b8560400151828151811061370257fe5b60209081029190910101526001016136c4565b506080840151604083015260056060830152611c3e82614071565b61373861506c565b600061374261506c565b61374a6150ff565b61375b61375686614759565b61477e565b90506000805b61376a836147c8565b15613862578061378c57613785613780846147e9565b614837565b845261385a565b80600114156137b9576137a66137a1846147e9565b6148ee565b6001600160a01b0316602085015261385a565b80600214156137d8576137ce613780846147e9565b604085015261385a565b8060031415613800576137ed6137a1846147e9565b6001600160a01b0316606085015261385a565b8060041415613828576138156137a1846147e9565b6001600160a01b0316608085015261385a565b80600514156138555761383d613780846147e9565b67ffffffffffffffff1660a08501526001915061385a565b613862565b600101613761565b5091935090915050915091565b60208101516000906001600160a01b03166139b3578160a0015167ffffffffffffffff164211156138a2575060016113b2565b81604001514710156138b6575060036113b2565b6138bf82614908565b61393457606082015160408084015190516000926001600160a01b0316916127109184818181858888f193505050503d806000811461391a576040519150601f19603f3d011682016040523d82523d6000602084013e61391f565b606091505b50509050806139325750600490506113b2565b505b7f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5982602001518360600151846040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a15060006113b2565b8160a0015167ffffffffffffffff164211156139d1575060016113b2565b81516020808401516001600160a01b0316600090815260039091526040902054146139fe575060026113b2565b602080830151604080516370a0823160e01b815230600482015290516000936001600160a01b03909316926370a082319261c3509260248083019392829003018187803b158015613a4e57600080fd5b5086fa158015613a62573d6000803e3d6000fd5b50505050506040513d6020811015613a7957600080fd5b50516040840151909150811015613a945750600390506113b2565b613a9d83614908565b613b5457600083602001516001600160a01b031663a9059cbb61c350866060015187604001516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b158015613b1257600080fd5b5087f1158015613b26573d6000803e3d6000fd5b50505050506040513d6020811015613b3d57600080fd5b5051905080613b525750600591506113b29050565b505b7f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5983602001518460600151856040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a150600090506113b2565b60006008821115613bf75761343b836007198401600a0a63ffffffff61308116565b61228c836008849003600a0a63ffffffff6130c316565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081613c295750508351909150613c4b90613de6565b81600081518110613c5857fe5b6020026020010181905250613c708360200151613de6565b81600181518110613c7d57fe5b6020026020010181905250613c9e83604001516001600160a01b0316613df9565b81600281518110613cab57fe5b6020026020010181905250613cc9836060015163ffffffff16613de6565b81600381518110613cd657fe5b602002602001018190525061126281613e1c565b60008183613d765760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613d3b578181015183820152602001613d23565b50505050905090810190601f168015613d685780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581613d8257fe5b0495945050505050565b60008184841115613dde5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315613d3b578181015183820152602001613d23565b505050900390565b606061228f613df483614a76565b614b5c565b60408051600560a21b831860148201526034810190915260609061126281614b5c565b6060815160001415613e3d57506040805160008152602081019091526113b2565b606082600081518110613e4c57fe5b602002602001015190506000600190505b8351811015613e8d57613e8382858381518110613e7657fe5b6020026020010151614bae565b9150600101613e5d565b50611262613ea0825160c060ff16614c2b565b82614bae565b613eae6150c8565b6000613eb86150c8565b613ec06150ff565b613ecc61375686614759565b90506000805b613edb836147c8565b156138625780613f0157613ef16137a1846147e9565b6001600160a01b03168452614069565b8060011415613fa2576060613f1d613f18856147e9565b614d23565b90508051604051908082528060200260200182016040528015613f4a578160200160208202803683370190505b50602086015260005b8151811015613f9b57613f78828281518110613f6b57fe5b6020026020010151614837565b86602001518281518110613f8857fe5b6020908102919091010152600101613f53565b5050614069565b8060021415614044576060613fb9613f18856147e9565b90508051604051908082528060200260200182016040528015613fe6578160200160208202803683370190505b50604086015260005b8151811015613f9b5761401482828151811061400757fe5b60200260200101516148ee565b8660400151828151811061402457fe5b6001600160a01b0390921660209283029190910190910152600101613fef565b806003141561385557614059613780846147e9565b63ffffffff166060850152600191505b600101613ed2565b80516001600160a01b031661429b5760005b816020015151811015614295576000826040015182815181106140a257fe5b60200260200101516001600160a01b0316612710846020015184815181106140c657fe5b60209081029190910101516040516000818181858888f193505050503d806000811461410e576040519150601f19603f3d011682016040523d82523d6000602084013e614113565b606091505b50509050806141d6577f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061415257fe5b60200260200101518560200151858151811061416a57fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a161428c565b7fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a83600001518460400151848151811061420c57fe5b60200260200101518560200151858151811061422457fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b50600101614083565b506144f2565b60005b8160200151518110156144f057600082600001516001600160a01b031663a9059cbb61c350856040015185815181106142d357fe5b6020026020010151866020015186815181106142eb57fe5b60200260200101516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b15801561434257600080fd5b5087f1158015614356573d6000803e3d6000fd5b50505050506040513d602081101561436d57600080fd5b505190508015614431577fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a8360000151846040015184815181106143ad57fe5b6020026020010151856020015185815181106143c557fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a16144e7565b7f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061446757fe5b60200260200101518560200151858151811061447f57fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b5060010161429e565b505b50565b6144fd615020565b6000614507615020565b61450f6150ff565b61451b61375686614759565b90506000805b61452a836147c8565b15613862578061454757614540613780846147e9565b8452614751565b806001141561456f5761455c6137a1846147e9565b6001600160a01b03166020850152614751565b80600214156145fe576060614586613f18856147e9565b905080516040519080825280602002602001820160405280156145b3578160200160208202803683370190505b50604086015260005b81518110156145f7576145d4828281518110613f6b57fe5b866040015182815181106145e457fe5b60209081029190910101526001016145bc565b5050614751565b8060031415614693576060614615613f18856147e9565b90508051604051908082528060200260200182016040528015614642578160200160208202803683370190505b50606086015260005b81518110156145f75761466382828151811061400757fe5b8660600151828151811061467357fe5b6001600160a01b039092166020928302919091019091015260010161464b565b80600414156147285760606146aa613f18856147e9565b905080516040519080825280602002602001820160405280156146d7578160200160208202803683370190505b50608086015260005b81518110156145f7576146f882828151811061400757fe5b8660800151828151811061470857fe5b6001600160a01b03909216602092830291909101909101526001016146e0565b80600514156138555761473d613780846147e9565b67ffffffffffffffff1660a0850152600191505b600101614521565b61476161511f565b506040805180820190915281518152602082810190820152919050565b6147866150ff565b61478f82614df4565b61479857600080fd5b60006147a78360200151614e2e565b60208085015160408051808201909152868152920190820152915050919050565b60006147d261511f565b505080518051602091820151919092015191011190565b6147f161511f565b6147fa826147c8565b61480357600080fd5b6020820151600061481382614e91565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061484c57508151602110155b61485557600080fd5b60006148648360200151614e2e565b905080836000015110156148bf576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b8251602080850151830180519284900392918310156148e557826020036101000a820491505b50949350505050565b80516000906015146148ff57600080fd5b61228f82614837565b600080805260066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f8541580156149415750600554155b156149835760008052600660205269021e19e0c9bab24000007f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f85561a8c06005555b6020808301516001600160a01b03166000908152600690915260409020548015806149b15750808360400151105b156149c05760009150506113b2565b6020808401516001600160a01b039081166000908152600783526040808220606088015190931682529190925290819020908401518154614a069163ffffffff61302716565b8155600554420160018201819055606085015160208087015160408089015181519081529283019490945283516001600160a01b039384169493909116927f3fb83143cd331170da18fb1e8564d97e8ec39264b6ecb1ba248ea7596ab07258928290030190a35060019392505050565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416614aba57506018614ade565b6fffffffffffffffffffffffffffffffff198416614ada57506010614ade565b5060005b6020811015614b1457818181518110614af357fe5b01602001516001600160f81b03191615614b0c57614b14565b600101614ade565b60008160200390506060816040519080825280601f01601f191660200182016040528015614b49576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015614b8e5750607f60f81b82600081518110614b7c57fe5b01602001516001600160f81b03191611155b15614b9a5750806113b2565b61228f614bac8351608060ff16614c2b565b835b6060806040519050835180825260208201818101602087015b81831015614bdf578051835260209283019201614bc7565b50855184518101855292509050808201602086015b81831015614c0c578051835260209283019201614bf4565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310614c7b576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b60408051600180825281830190925260609160208201818036833701905050905060378411614cd55782840160f81b81600081518110614cb757fe5b60200101906001600160f81b031916908160001a905350905061228f565b6060614ce085614a76565b90508381510160370160f81b82600081518110614cf957fe5b60200101906001600160f81b031916908160001a905350614d1a8282614bae565b95945050505050565b6060614d2e82614df4565b614d3757600080fd5b6000614d4283614fc4565b9050606081604051908082528060200260200182016040528015614d8057816020015b614d6d61511f565b815260200190600190039081614d655790505b5090506000614d928560200151614e2e565b60208601510190506000805b84811015614de957614daf83614e91565b9150604051806040016040528083815260200184815250848281518110614dd257fe5b602090810291909101015291810191600101614d9e565b509195945050505050565b8051600090614e05575060006113b2565b6020820151805160001a9060c0821015614e24576000925050506113b2565b5060019392505050565b8051600090811a6080811015614e485760009150506113b2565b60b8811080614e63575060c08110801590614e63575060f881105b15614e725760019150506113b2565b60c0811015614e865760b5190190506113b2565b60f5190190506113b2565b80516000908190811a6080811015614eac5760019150614fbd565b60b8811015614ec157607e1981019150614fbd565b60c0811015614f3b57600060b78203600186019550806020036101000a865104915060018101820193505080831015614f35576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50614fbd565b60f8811015614f505760be1981019150614fbd565b600060f78203600186019550806020036101000a865104915060018101820193505080831015614fbb576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b8051600090614fd5575060006113b2565b60008090506000614fe98460200151614e2e565b602085015185519181019250015b808210156150175761500882614e91565b82019150826001019250614ff7565b50909392505050565b6040518060c001604052806000801916815260200160006001600160a01b03168152602001606081526020016060815260200160608152602001600067ffffffffffffffff1681525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b60408051608081018252600080825260208201819052918101829052606081019190915290565b604051806080016040528060006001600160a01b031681526020016060815260200160608152602001600063ffffffff1681525090565b604051806040016040528061511261511f565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe6f6e6c79207374616b696e672073797374656d20636f6e74726163742063616e2063616c6c20746869732066756e6374696f6e746865206d6573736167652073656e646572206d75737420626520696e63656e746976697a6520636f6e7472616374626e62206c61726765207472616e73666572206c696d697420746f6f20736d616c6c756e7265636f676e697a6564207472616e736665724f75742073796e207061636b61676565787069726554696d65206d7573742062652074776f206d696e75746573206c61746572616d6f756e7420697320746f6f206c617267652c20657863656564206d6178696d756d206265703220746f6b656e20616d6f756e74746865206d73672073656e646572206d75737420626520746f6b656e207265636f76657220706f7274616c4c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620726566756e644164647273696e76616c6964207472616e7366657220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374756e7265636f676e697a6564207472616e736665724f75742061636b207061636b6167654c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620616d6f756e7473746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d73672073656e646572206d75737420626520746f6b656e4d616e6167657274686520636f6e7472616374206e6f7420696e69742079657400000000000000726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e7366657220424e4220616d6f756e7420616e642072656c6179466565696e76616c696420726563656976656420424e4220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6ea164736f6c6343000604000a", - }, - { - ContractAddr: GovHubContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/2d6372ddba77902ef01e45887a425938376d5a5c", - Code: "608060405234801561001057600080fd5b506004361061021c5760003560e01c8063831d65d111610125578063ab51bb96116100ad578063df8079e91161007c578063df8079e914610615578063f1fad1041461061d578063f9a2bbc714610625578063fc3e59081461062d578063fd6a6879146106355761021c565b8063ab51bb9614610585578063c81b16621461058d578063c8509d8114610595578063dc927faf1461060d5761021c565b80639dc09262116100f45780639dc0926214610549578063a1a11bf514610551578063a78abc1614610559578063aa82dce114610575578063aad560631461057d5761021c565b8063831d65d1146103f857806388e4194e1461047257806396713da9146105395780639ab1a373146105415761021c565b80634bf6c882116101a857806370fd5bad1161017757806370fd5bad146103d0578063718a8aa8146103d857806375d47a0a146103e05780637942fd05146103e85780637e434d54146103f05761021c565b80634bf6c882146103b057806351b4dce3146103b857806351e80672146103c05780636e47b482146103c85761021c565b80633a21baae116101ef5780633a21baae1461035b5780633dffc3871461036357806343756e5c146103815780634900c4ea14610389578063493279b1146103915761021c565b80630bee7a67146102215780630e2374a5146102425780631182b875146102665780632808702814610353575b600080fd5b61022961063d565b6040805163ffffffff9092168252519081900360200190f35b61024a610642565b604080516001600160a01b039092168252519081900360200190f35b6102de6004803603604081101561027c57600080fd5b60ff8235169190810190604081016020820135600160201b8111156102a057600080fd5b8201836020820111156102b257600080fd5b803590602001918460018302840111600160201b831117156102d357600080fd5b509092509050610648565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610318578181015183820152602001610300565b50505050905090810190601f1680156103455780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61024a6106f7565b6102296106fd565b61036b610702565b6040805160ff9092168252519081900360200190f35b61024a610707565b61036b61070d565b610399610712565b6040805161ffff9092168252519081900360200190f35b61036b610718565b61024a61071d565b61024a610723565b61024a610729565b61036b61072f565b61036b610734565b61024a610739565b61036b61073f565b61024a610744565b6104706004803603604081101561040e57600080fd5b60ff8235169190810190604081016020820135600160201b81111561043257600080fd5b82018360208201111561044457600080fd5b803590602001918460018302840111600160201b8311171561046557600080fd5b50909250905061074a565b005b6104706004803603606081101561048857600080fd5b810190602081018135600160201b8111156104a257600080fd5b8201836020820111156104b457600080fd5b803590602001918460018302840111600160201b831117156104d557600080fd5b919390929091602081019035600160201b8111156104f257600080fd5b82018360208201111561050457600080fd5b803590602001918460018302840111600160201b8311171561052557600080fd5b9193509150356001600160a01b03166107dc565b61036b6108c7565b6102296108cc565b61024a6108d1565b61024a6108d7565b6105616108dd565b604080519115158252519081900360200190f35b61024a6108e6565b61024a6108ec565b61022961070d565b61024a6108f2565b610470600480360360408110156105ab57600080fd5b60ff8235169190810190604081016020820135600160201b8111156105cf57600080fd5b8201836020820111156105e157600080fd5b803590602001918460018302840111600160201b8311171561060257600080fd5b5090925090506108f8565b61024a61096f565b61024a610975565b61036b61097b565b61024a610980565b61036b610986565b61024a61098b565b606481565b61200181565b60606106526115f9565b600061069385858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061099192505050565b91509150806106af576106a66064610a57565b925050506106f0565b60006106ba83610ac1565b905063ffffffff81166106e157505060408051600081526020810190915291506106f09050565b6106ea81610a57565b93505050505b9392505050565b61200581565b606681565b600181565b61100181565b600081565b6102ca81565b600881565b61200681565b61200081565b61100581565b600281565b601081565b61100881565b600b81565b61200381565b336120001461078a5760405162461bcd60e51b815260040180806020018281038252602f81526020018061165e602f913960400191505060405180910390fd5b6040805162461bcd60e51b815260206004820152601e60248201527f7265636569766520756e65787065637465642061636b207061636b6167650000604482015290519081900360640190fd5b505050565b336120061461081c5760405162461bcd60e51b815260040180806020018281038252603181526020018061168d6031913960400191505060405180910390fd5b6108246115f9565b604051806060016040528087878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505090825250604080516020601f8801819004810282018101909252868152918101919087908790819084018382808284376000920191909152505050908252506001600160a01b03841660209091015290506108be81610ac1565b50505050505050565b600981565b606581565b61100781565b61100681565b60005460ff1681565b61200281565b61300081565b61100281565b33612000146109385760405162461bcd60e51b815260040180806020018281038252602f81526020018061165e602f913960400191505060405180910390fd5b60405162461bcd60e51b81526004018080602001828103825260238152602001806116be6023913960400191505060405180910390fd5b61100381565b61200481565b601181565b61100081565b600381565b61100481565b6109996115f9565b60006109a36115f9565b6109ab611623565b6109bc6109b786610e62565b610e87565b90506000805b6109cb83610ed1565b15610a4a57806109ed576109e66109e184610ef2565b610f40565b8452610a42565b8060011415610a0c57610a026109e184610ef2565b6020850152610a42565b8060021415610a3d57610a26610a2184610ef2565b610fb9565b6001600160a01b0316604085015260019150610a42565b610a4a565b6001016109c2565b5091935090915050915091565b604080516001808252818301909252606091829190816020015b6060815260200190600190039081610a71579050509050610a978363ffffffff16610fd9565b81600081518110610aa457fe5b6020026020010181905250610ab881610fec565b9150505b919050565b6000610ad08260400151611076565b610b3c57604080516020808252601c908201527f74686520746172676574206973206e6f74206120636f6e7472616374000000008183015290517f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb29181900360600190a1506065610abc565b81604001516001600160a01b031663ac431751836000015184602001516040518363ffffffff1660e01b8152600401808060200180602001838103835285818151815260200191508051906020019080838360005b83811015610ba9578181015183820152602001610b91565b50505050905090810190601f168015610bd65780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b83811015610c09578181015183820152602001610bf1565b50505050905090810190601f168015610c365780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015610c5757600080fd5b505af1925050508015610c68575060015b610e5a576040516000815260443d1015610c8457506000610d21565b60046000803e60005160e01c6308c379a08114610ca5576000915050610d21565b60043d036004833e81513d602482011167ffffffffffffffff82111715610cd157600092505050610d21565b808301805167ffffffffffffffff811115610cf3576000945050505050610d21565b8060208301013d8601811115610d1157600095505050505050610d21565b601f01601f191660405250925050505b80610d2c5750610dcf565b7f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2816040518080602001828103825283818151815260200191508051906020019080838360005b83811015610d8b578181015183820152602001610d73565b50505050905090810190601f168015610db85780820380516001836020036101000a031916815260200191505b509250505060405180910390a16066915050610abc565b3d808015610df9576040519150601f19603f3d011682016040523d82523d6000602084013e610dfe565b606091505b5060408051602080825283518183015283517f1279f84165b4fd69c35e1f338ff107231b036c655cd1688851e011ce617c4e8d938593928392918301919085019080838360008315610d8b578181015183820152602001610d73565b506000919050565b610e6a611643565b506040805180820190915281518152602082810190820152919050565b610e8f611623565b610e988261107c565b610ea157600080fd5b6000610eb083602001516110b6565b60208085015160408051808201909152868152920190820152915050919050565b6000610edb611643565b505080518051602091820151919092015191011190565b610efa611643565b610f0382610ed1565b610f0c57600080fd5b60208201516000610f1c82611119565b80830160209586015260408051808201909152908152938401919091525090919050565b8051606090610f4e57600080fd5b6000610f5d83602001516110b6565b83516040805191839003808352601f19601f8201168301602001909152919250606090828015610f94576020820181803683370190505b5090506000816020019050610fb084876020015101828561124c565b50949350505050565b8051600090601514610fca57600080fd5b610fd382611297565b92915050565b6060610fd3610fe78361134c565b611432565b606081516000141561100d5750604080516000815260208101909152610abc565b60608260008151811061101c57fe5b602002602001015190506000600190505b835181101561105d576110538285838151811061104657fe5b6020026020010151611484565b915060010161102d565b50610ab8611070825160c060ff16611501565b82611484565b3b151590565b805160009061108d57506000610abc565b6020820151805160001a9060c08210156110ac57600092505050610abc565b5060019392505050565b8051600090811a60808110156110d0576000915050610abc565b60b88110806110eb575060c081108015906110eb575060f881105b156110fa576001915050610abc565b60c081101561110e5760b519019050610abc565b60f519019050610abc565b80516000908190811a60808110156111345760019150611245565b60b881101561114957607e1981019150611245565b60c08110156111c357600060b78203600186019550806020036101000a8651049150600181018201935050808310156111bd576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50611245565b60f88110156111d85760be1981019150611245565b600060f78203600186019550806020036101000a865104915060018101820193505080831015611243576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b80611256576107d7565b5b60208110611276578251825260209283019290910190601f1901611257565b915181516020939093036101000a6000190180199091169216919091179052565b8051600090158015906112ac57508151602110155b6112b557600080fd5b60006112c483602001516110b6565b9050808360000151101561131f576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015610fb057506020919091036101000a90049392505050565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416611390575060186113b4565b6fffffffffffffffffffffffffffffffff1984166113b0575060106113b4565b5060005b60208110156113ea578181815181106113c957fe5b01602001516001600160f81b031916156113e2576113ea565b6001016113b4565b60008160200390506060816040519080825280601f01601f19166020018201604052801561141f576020820181803683370190505b5080830196909652508452509192915050565b6060815160011480156114645750607f60f81b8260008151811061145257fe5b01602001516001600160f81b03191611155b15611470575080610abc565b610fd36114828351608060ff16611501565b835b6060806040519050835180825260208201818101602087015b818310156114b557805183526020928301920161149d565b50855184518101855292509050808201602086015b818310156114e25780518352602092830192016114ca565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310611551576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b604080516001808252818301909252606091602082018180368337019050509050603784116115ab5782840160f81b8160008151811061158d57fe5b60200101906001600160f81b031916908160001a9053509050610fd3565b60606115b68561134c565b90508381510160370160f81b826000815181106115cf57fe5b60200101906001600160f81b031916908160001a9053506115f08282611484565b95945050505050565b6040518060600160405280606081526020016060815260200160006001600160a01b031681525090565b6040518060400160405280611636611643565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d73672073656e646572206d75737420626520676f7665726e6f722074696d656c6f636b20636f6e74726163747265636569766520756e6578706563746564206661696c2061636b207061636b616765a164736f6c6343000604000a", - }, - { - ContractAddr: CrossChainContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/2d6372ddba77902ef01e45887a425938376d5a5c", - Code: "608060405234801561001057600080fd5b50600436106103e65760003560e01c806374f079b81161020a578063c27cdcfb11610125578063df8079e9116100b8578063f1fad10411610087578063f1fad10414610bac578063f7a251d714610bb4578063f9a2bbc714610c2c578063fc3e590814610c34578063fd6a687914610c3c576103e6565b8063df8079e914610b74578063e1c7392a14610b7c578063e3b0480514610b84578063e6400bbe14610ba4576103e6565b8063d31f968d116100f4578063d31f968d14610b2d578063d76a867514610b5c578063dc40433114610b64578063dc927faf14610b6c576103e6565b8063c27cdcfb14610af5578063c780e9de14610b15578063c81b166214610b1d578063ccc108d714610b25576103e6565b80639dc092621161019d578063aad560631161016c578063aad5606314610a27578063ab51bb9614610a2f578063ac43175114610a37578063b0355f5b146107d6576103e6565b80639dc0926214610a07578063a1a11bf514610a0f578063a78abc1614610a17578063aa82dce114610a1f576103e6565b806384013b6a116101d957806384013b6a1461091c578063863fe4ab146109f75780638cc8f561146108e457806396713da9146109ff576103e6565b806374f079b8146108fc57806375d47a0a146109045780637942fd051461090c5780637e434d5414610914576103e6565b806343756e5c116103055780636a3cb34d116102985780636e47a51a116102675780636e47a51a146108bc5780636e47b482146108dc57806370fd5bad146108e4578063718a8aa8146108ec578063719482d5146108f4576103e6565b80636a3cb34d146108645780636bacff2c1461086c5780636c46aa68146108645780636de380bd146108b4576103e6565b806351e80672116102d457806351e806721461081e5780635692ddd3146108265780635f8321771461082e57806363e1394e1461085c576103e6565b806343756e5c146107fe578063493279b1146108065780634bf6c8821461080e57806351b4dce314610816576103e6565b8063299b533d1161037d5780633a648b151161034c5780633a648b15146106725780633bdc47a6146106ae5780633dffc387146107d6578063422f9050146107de576103e6565b8063299b533d146105f85780632af6f3991461062c5780632ff32aea14610649578063308325f41461066a576103e6565b80631d130935116103b95780631d130935146104685780631e275ae11461048457806322556cdc146105e857806328087028146105f0576103e6565b806305e68258146103eb5780630bee7a67146104095780630e2374a51461042a57806314b3023b1461044e575b600080fd5b6103f3610c44565b6040805160ff9092168252519081900360200190f35b610411610c49565b6040805163ffffffff9092168252519081900360200190f35b610432610c4e565b604080516001600160a01b039092168252519081900360200190f35b610456610c54565b60408051918252519081900360200190f35b610470610c5a565b604080519115158252519081900360200190f35b6105e6600480360361010081101561049b57600080fd5b81018160a081016080820135600160201b8111156104b857600080fd5b8201836020820111156104ca57600080fd5b803590602001918460018302840111600160201b831117156104eb57600080fd5b919390929091602081019035600160201b81111561050857600080fd5b82018360208201111561051a57600080fd5b803590602001918460018302840111600160201b8311171561053b57600080fd5b919390929091602081019035600160201b81111561055857600080fd5b82018360208201111561056a57600080fd5b803590602001918460018302840111600160201b8311171561058b57600080fd5b919390929091602081019035600160201b8111156105a857600080fd5b8201836020820111156105ba57600080fd5b803590602001918460018302840111600160201b831117156105db57600080fd5b509092509050610c63565b005b610456611347565b61043261134c565b6106156004803603602081101561060e57600080fd5b5035611352565b6040805161ffff9092168252519081900360200190f35b6104706004803603602081101561064257600080fd5b5035611368565b61065161137d565b60408051600792830b90920b8252519081900360200190f35b610456611386565b6106926004803603602081101561068857600080fd5b503560ff1661138c565b604080516001600160401b039092168252519081900360200190f35b610761600480360360608110156106c457600080fd5b60ff82351691602081013591810190606081016040820135600160201b8111156106ed57600080fd5b8201836020820111156106ff57600080fd5b803590602001918460018302840111600160201b8311171561072057600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506113a7945050505050565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561079b578181015183820152602001610783565b50505050905090810190601f1680156107c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103f361141d565b610470600480360360208110156107f457600080fd5b503560ff16611422565b610432611437565b61061561143d565b6103f3611443565b610432611448565b61043261144e565b610456611454565b6105e66004803603604081101561084457600080fd5b506001600160a01b0381358116916020013516611484565b6104566116e4565b61061561170c565b6108896004803603602081101561088257600080fd5b5035611711565b6040805161ffff90941684526001600160801b03909216602084015282820152519081900360600190f35b610456611740565b610432600480360360208110156108d257600080fd5b503560ff16611767565b610432611782565b6103f361170c565b6103f3611788565b61061561141d565b61045661178d565b610432611793565b6103f3611799565b61043261179e565b6105e6600480360360a081101561093257600080fd5b810190602081018135600160201b81111561094c57600080fd5b82018360208201111561095e57600080fd5b803590602001918460018302840111600160201b8311171561097f57600080fd5b919390929091602081019035600160201b81111561099c57600080fd5b8201836020820111156109ae57600080fd5b803590602001918460018302840111600160201b831117156109cf57600080fd5b919350915080356001600160401b03908116916020810135909116906040013560ff166117a4565b610456612a5e565b6103f3612a66565b610432612a6b565b610432612a71565b610470612a77565b610432612a80565b610432612a86565b610411610c44565b6105e660048036036040811015610a4d57600080fd5b810190602081018135600160201b811115610a6757600080fd5b820183602082011115610a7957600080fd5b803590602001918460018302840111600160201b83111715610a9a57600080fd5b919390929091602081019035600160201b811115610ab757600080fd5b820183602082011115610ac957600080fd5b803590602001918460018302840111600160201b83111715610aea57600080fd5b509092509050612a8c565b61069260048036036020811015610b0b57600080fd5b503560ff16613550565b61045661356b565b61043261358f565b6105e6613595565b61047060048036036040811015610b4357600080fd5b5080356001600160a01b0316906020013560ff166137e9565b610761613809565b610456613828565b61043261382e565b610432613834565b6105e661383a565b61069260048036036020811015610b9a57600080fd5b503560ff16613bf1565b6105e6613c0c565b6103f3613e2b565b6105e660048036036060811015610bca57600080fd5b60ff8235169190810190604081016020820135600160201b811115610bee57600080fd5b820183602082011115610c0057600080fd5b803590602001918460018302840111600160201b83111715610c2157600080fd5b919350915035613e30565b610432613f73565b6103f3613f79565b610432613f7e565b600081565b606481565b61200181565b60015481565b600b5460ff1681565b60005460ff16610ca8576040805162461bcd60e51b81526020600482015260196024820152600080516020614a62833981519152604482015290519081900360640190fd5b604080516337d7f9c160e21b81526001600160401b038b35166004820181905291516110039163df5fe704916024808301926020929190829003018186803b158015610cf357600080fd5b505afa158015610d07573d6000803e3d6000fd5b505050506040513d6020811015610d1d57600080fd5b5051610d5a5760405162461bcd60e51b8152600401808060200182810382526023815260200180614a826023913960400191505060405180910390fd5b604080516337d7f9c160e21b815260208c8101356001600160401b03166004830181905292516110039263df5fe704926024808301939192829003018186803b158015610da657600080fd5b505afa158015610dba573d6000803e3d6000fd5b505050506040513d6020811015610dd057600080fd5b5051610e0d5760405162461bcd60e51b8152600401808060200182810382526023815260200180614a826023913960400191505060405180910390fd5b60608b013560ff81166000908152600560205260409020546001600160401b03909116906001600160a01b0316610e86576040805162461bcd60e51b815260206004820152601860248201527718da185b9b995b081a5cc81b9bdd081cdd5c1c1bdc9d195960421b604482015290519081900360640190fd5b600b5460ff1615610eca576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b8888604051808383808284376040519201829003822094508f93508e9250819050838380828437808301925050509250505060405180910390201415610f46576040805162461bcd60e51b815260206004820152600c60248201526b1cd85b59481c185e5b1bd85960a21b604482015290519081900360640190fd5b60606001600160401b0360408e01358116908e83013516610f678282613f84565b80516020808301919091206000818152600e9092526040909120549194509060ff1615610fd0576040805162461bcd60e51b8152602060048201526012602482015271185b1c9958591e4818da185b1b195b99d95960721b604482015290519081900360640190fd5b6000908152600e60205260408120805460ff191660011790558f8160200201356001600160401b0316905060608f8f8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060608c8c8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506040805163cba510a960e01b81526001600160401b038a16600482015290519596509094611003945063cba510a9935060248083019350602092829003018186803b1580156110c657600080fd5b505afa1580156110da573d6000803e3d6000fd5b505050506040513d60208110156110f057600080fd5b505160408051808201909152600381526269626360e81b602082015290915061111d908290898686613fcc565b611166576040805162461bcd60e51b81526020600482015260156024820152740696e76616c6964206d65726b6c652070726f6f663605c1b604482015290519081900360640190fd5b5050505060008f60016004811061117957fe5b60200201356001600160401b0316905060608d8d8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8f018190048102820181019092528d815293945060609392508d91508c908190840183828082843760009201829052506040805163cba510a960e01b81526001600160401b038a16600482015290519596509094611003945063cba510a9935060248083019350602092829003018186803b15801561124557600080fd5b505afa158015611259573d6000803e3d6000fd5b505050506040513d602081101561126f57600080fd5b505160408051808201909152600381526269626360e81b602082015290915061129c908290898686613fcc565b6112e5576040805162461bcd60e51b8152602060048201526015602482015274696e76616c6964206d65726b6c652070726f6f663160581b604482015290519081900360640190fd5b505050506112f16140c9565b604080516001600160401b038416815260ff83166020820152815133927f039eb91179ffd7d3b6e97f8ea106e748e827f910b872375dbc9c14a362319c3c928290030190a2505050505050505050505050505050565b603281565b61200581565b600d6020526000908152604090205461ffff1681565b600e6020526000908152604090205460ff1681565b60045460070b81565b60025481565b600a602052600090815260409020546001600160401b031681565b60606000825160210190506060816040519080825280601f01601f1916602001820160405280156113df576020820181803683370190505b506021810186905260018101879052828152905060418101600061140286614147565b50905061141181838851614151565b50909695505050505050565b600181565b60096020526000908152604090205460ff1681565b61100181565b6102ca81565b600881565b61200681565b61200081565b604080517710d05390d15317d514905394d1915497d41493d413d4d05360421b8152905190819003601801902081565b60005460ff166114c9576040805162461bcd60e51b81526020600482015260196024820152600080516020614a62833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b15801561150c57600080fd5b505afa158015611520573d6000803e3d6000fd5b505050506040513d602081101561153657600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b15801561157757600080fd5b505afa15801561158b573d6000803e3d6000fd5b505050506040513d60208110156115a157600080fd5b50519050806115ae575060155b6000821180156115be5750808211155b6115fd576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b604080516001600160a01b038087166020808401919091529086168284015282518083038401815260608301808552815191909201207710d05390d15317d514905394d1915497d41493d413d4d05360421b909152915190819003607801902060009061166a9083614192565b905080156116dc5760408051630911a2c160e11b81526001600160a01b03888116600483015287166024820152905161100491631223458291604480830192600092919082900301818387803b1580156116c357600080fd5b505af11580156116d7573d6000803e3d6000fd5b505050505b505050505050565b604080516f14d554d411539117d41493d413d4d05360821b8152905190819003601001902081565b600281565b600c602052600090815260409020805460019091015461ffff8216916201000090046001600160801b03169083565b604080516e149153d4115397d41493d413d4d053608a1b8152905190819003600f01902081565b6005602052600090815260409020546001600160a01b031681565b61100581565b601081565b60035481565b61100881565b600b81565b61200381565b60005460ff166117e9576040805162461bcd60e51b81526020600482015260196024820152600080516020614a62833981519152604482015290519081900360640190fd5b60408051630a83aaa960e31b815233600482015290516110069163541d5548916024808301926020929190829003018186803b15801561182857600080fd5b505afa15801561183c573d6000803e3d6000fd5b505050506040513d602081101561185257600080fd5b50516118a5576040805162461bcd60e51b815260206004820152601f60248201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604482015290519081900360640190fd5b60ff8116600090815260086020526040902054829082906001600160401b039081169083168114611915576040805162461bcd60e51b815260206004820152601560248201527439b2b8bab2b731b2903737ba1034b71037b93232b960591b604482015290519081900360640190fd5b60ff8216600090815260086020908152604091829020805467ffffffffffffffff1916600185016001600160401b039081169190911790915582516337d7f9c160e21b81529089166004820152915188926110039263df5fe70492602480840193829003018186803b15801561198a57600080fd5b505afa15801561199e573d6000803e3d6000fd5b505050506040513d60208110156119b457600080fd5b50516119f15760405162461bcd60e51b8152600401808060200182810382526023815260200180614a826023913960400191505060405180910390fd5b60ff851660009081526005602052604090205485906001600160a01b0316611a5b576040805162461bcd60e51b815260206004820152601860248201527718da185b9b995b081a5cc81b9bdd081cdd5c1c1bdc9d195960421b604482015290519081900360640190fd5b60ff86166000908152600a6020526040902054889087906001600160401b039081169083161015611ac4576040805162461bcd60e51b815260206004820152600e60248201526d3a37b79037b632103432b0b232b960911b604482015290519081900360640190fd5b60ff81166000908152600a60205260409020546001600160401b03838116911614611b165760ff81166000908152600a60205260409020805467ffffffffffffffff19166001600160401b0384161790555b600b5460ff1615611b5a576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b60608e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060608d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509050611c9e6110036001600160a01b031663cba510a98e6040518263ffffffff1660e01b815260040180826001600160401b03166001600160401b0316815260200191505060206040518083038186803b158015611c4757600080fd5b505afa158015611c5b573d6000803e3d6000fd5b505050506040513d6020811015611c7157600080fd5b505160408051808201909152600381526269626360e81b6020820152611c978e8e613f84565b8585613fcc565b611ce6576040805162461bcd60e51b815260206004820152601460248201527334b73b30b634b21036b2b935b63290383937b7b360611b604482015290519081900360640190fd5b60408051631bb5062960e31b81526001600160401b038e16600482015290516000916110039163dda8314891602480820192602092909190829003018186803b158015611d3257600080fd5b505afa158015611d46573d6000803e3d6000fd5b505050506040513d6020811015611d5c57600080fd5b505190508b8b600080806060611d7189614477565b935093509350935083611e33578460ff16866001600160401b03167ff7b2e42d694eb1100184aae86d4245d9e46966100b1dc7e723275b98326854ac8b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015611deb578181015183820152602001611dd3565b50505050905090810190601f168015611e185780820380516001836020036101000a031916815260200191505b509250505060405180910390a3505050505050505050612a4e565b6040805160ff85811682529151918716916001600160401b038916917f36afdaf439a8f43fe72135135d804ae620b37a474f0943b5b85f6788312cad40919081900360200190a360ff83166123b85760ff85166000818152600560209081526040808320548151631182b87560e01b815260048101958652602481019283528651604482015286516001600160a01b03909216958695631182b875958d958a9593949093606490910192918601918190849084905b83811015611f00578181015183820152602001611ee8565b50505050905090810190601f168015611f2d5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b158015611f4d57600080fd5b505af192505050801561203157506040513d6000823e601f3d908101601f191682016040526020811015611f8057600080fd5b8101908080516040519392919084600160201b821115611f9f57600080fd5b908301906020820185811115611fb457600080fd5b8251600160201b811182820188101715611fcd57600080fd5b82525081516020918201929091019080838360005b83811015611ffa578181015183820152602001611fe2565b50505050905090810190601f1680156120275780820380516001836020036101000a031916815260200191505b5060405250505060015b612343576040516000815260443d101561204d575060006120e8565b60046000803e60005160e01c6308c379a0811461206e5760009150506120e8565b60043d036004833e81513d60248201116001600160401b0382111715612099576000925050506120e8565b80830180516001600160401b038111156120ba5760009450505050506120e8565b8060208301013d86018111156120d8576000955050505050506120e8565b601f01601f191660405250925050505b806120f35750612205565b60ff871660009081526007602052604081205461212a916001600160401b0390911690899061212590600290886113a7565b614527565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf948794849390840192918601918190849084905b838110156121c55781810151838201526020016121ad565b50505050905090810190601f1680156121f25780820380516001836020036101000a031916815260200191505b509250505060405180910390a25061233e565b3d80801561222f576040519150601f19603f3d011682016040523d82523d6000602084013e612234565b606091505b5060ff8716600090815260076020526040812054612267916001600160401b0390911690899061212590600290886113a7565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351948794849390840192918601918190849084905b838110156123025781810151838201526020016122ea565b50505050905090810190601f16801561232f5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b6123b2565b8051156123b05760ff871660009081526007602052604081205461237c916001600160401b0390911690899061212590600190866113a7565b60ff8716600090815260076020526040902080546001600160401b038082166001011667ffffffffffffffff199091161790555b505b50612986565b60ff83166001141561265c5760ff8516600081815260056020908152604080832054815163831d65d160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563831d65d1958d958a9593949093606490910192918601918190849084905b8381101561244257818101518382015260200161242a565b50505050905090810190601f16801561246f5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561248f57600080fd5b505af19250505080156124a0575060015b6123b2576040516000815260443d10156124bc57506000612557565b60046000803e60005160e01c6308c379a081146124dd576000915050612557565b60043d036004833e81513d60248201116001600160401b038211171561250857600092505050612557565b80830180516001600160401b03811115612529576000945050505050612557565b8060208301013d860181111561254757600095505050505050612557565b601f01601f191660405250925050505b8061256257506125c7565b60408051602080825283518183015283516001600160a01b038616937ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf93869390928392830191850190808383600083156121c55781810151838201526020016121ad565b3d8080156125f1576040519150601f19603f3d011682016040523d82523d6000602084013e6125f6565b606091505b5060408051602080825283518183015283516001600160a01b038616937f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd297735193869390928392830191850190808383600083156123025781810151838201526020016122ea565b60ff8316600214156129865760ff8516600081815260056020908152604080832054815163c8509d8160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563c8509d81958d958a9593949093606490910192918601918190849084905b838110156126e65781810151838201526020016126ce565b50505050905090810190601f1680156127135780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561273357600080fd5b505af1925050508015612744575060015b612984576040516000815260443d1015612760575060006127fb565b60046000803e60005160e01c6308c379a081146127815760009150506127fb565b60043d036004833e81513d60248201116001600160401b03821117156127ac576000925050506127fb565b80830180516001600160401b038111156127cd5760009450505050506127fb565b8060208301013d86018111156127eb576000955050505050506127fb565b601f01601f191660405250925050505b8061280657506128af565b816001600160a01b03167ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf826040518080602001828103825283818151815260200191508051906020019080838360005b8381101561286f578181015183820152602001612857565b50505050905090810190601f16801561289c5780820380516001836020036101000a031916815260200191505b509250505060405180910390a250612984565b3d8080156128d9576040519150601f19603f3d011682016040523d82523d6000602084013e6128de565b606091505b50816001600160a01b03167f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351826040518080602001828103825283818151815260200191508051906020019080838360005b83811015612948578181015183820152602001612930565b50505050905090810190601f1680156129755780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b505b60ff80861660009081526009602052604090205461100591636f93d2e6918a913391879116806129b8575060ff881615155b604080516001600160e01b031960e088901b1681526001600160a01b039586166004820152939094166024840152604483019190915215156064820152905160848083019260209291908290030181600087803b158015612a1857600080fd5b505af1158015612a2c573d6000803e3d6000fd5b505050506040513d6020811015612a4257600080fd5b50505050505050505050505b5050505050505050505050505050565b630102ca0081565b600981565b61100781565b61100681565b60005460ff1681565b61200281565b61300081565b3361100714612acc5760405162461bcd60e51b815260040180806020018281038252602e8152602001806149b8602e913960400191505060405180910390fd5b600b5460ff1615612b10576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b612b7984848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526012815271626174636853697a65466f724f7261636c6560701b602082015291506146c29050565b15612c1457604080516020601f8401819004810282018101909252828152600091612bbc918585808385018382808284376000920191909152506147a992505050565b90506127108111158015612bd15750600a8110155b612c0c5760405162461bcd60e51b8152600401808060200182810382526032815260200180614a306032913960400191505060405180910390fd5b6001556134be565b612c7d84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601281527118591913dc955c19185d1950da185b9b995b60721b602082015291506146c29050565b15612e0557606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060169091149050612d005760405162461bcd60e51b815260040180806020018281038252605a8152602001806148d1605a913960600191505060405180910390fd5b60018101516002820151601683015160ff82161590612d1e816147ae565b612d6f576040805162461bcd60e51b815260206004820152601960248201527f61646472657373206973206e6f74206120636f6e747261637400000000000000604482015290519081900360640190fd5b60ff8416600081815260056020908152604080832080546001600160a01b0319166001600160a01b038716908117909155808452600683528184208585528352818420805460ff199081166001179091556009909352818420805490931687151517909255519092917f7e3b6af43092577ee20e60eaa1d9b114a7031305c895ee7dd3ffe17196d2e1e091a350505050506134be565b612e7284848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526016815275195b98589b1953dc911a5cd8589b1950da185b9b995b60521b602082015291506146c29050565b15612fa357606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060029091149050612ef55760405162461bcd60e51b815260040180806020018281038252604a8152602001806149e6604a913960600191505060405180910390fd5b600181810151600283015160ff80831660009081526005602052604090205492939192908316909114906001600160a01b03168015612f99576001600160a01b038116600090815260066020908152604080832060ff881680855290835292819020805460ff1916861515908117909155815190815290517fa3132e3f9819fbddc7f0ed6d38d7feef59aa95112090b7c592f5cb5bc4aa4adc929181900390910190a25b50505050506134be565b61300784848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c73757370656e6451756f72756d60981b602082015291506146c29050565b1561313c576002811461304b5760405162461bcd60e51b815260040180806020018281038252602d81526020018061495f602d913960400191505060405180910390fd5b600061308e600284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506147a992505050565b905060008161ffff161180156130a8575060648161ffff16105b6130f2576040805162461bcd60e51b8152602060048201526016602482015275696e76616c69642073757370656e642071756f72756d60501b604482015290519081900360640190fd5b604080516f14d554d411539117d41493d413d4d05360821b815281519081900360100190206000908152600d60205220805461ffff90921661ffff199092169190911790556134be565b61319f84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600c81526b72656f70656e51756f72756d60a01b602082015291506146c29050565b156132d257600281146131e35760405162461bcd60e51b815260040180806020018281038252602c81526020018061498c602c913960400191505060405180910390fd5b6000613226600284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506147a992505050565b905060008161ffff16118015613240575060648161ffff16105b613289576040805162461bcd60e51b8152602060048201526015602482015274696e76616c69642072656f70656e2071756f72756d60581b604482015290519081900360640190fd5b604080516e149153d4115397d41493d413d4d053608a1b8152815190819003600f0190206000908152600d60205220805461ffff90921661ffff199092169190911790556134be565b61333d84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601481527363616e63656c5472616e7366657251756f72756d60601b602082015291506146c29050565b1561348157600281146133815760405162461bcd60e51b815260040180806020018281038252603481526020018061492b6034913960400191505060405180910390fd5b60006133c4600284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506147a992505050565b905060008161ffff161180156133de575060648161ffff16105b61342f576040805162461bcd60e51b815260206004820152601e60248201527f696e76616c69642063616e63656c207472616e736665722071756f72756d0000604482015290519081900360640190fd5b604080517710d05390d15317d514905394d1915497d41493d413d4d05360421b815281519081900360180190206000908152600d60205220805461ffff90921661ffff199092169190911790556134be565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b6008602052600090815260409020546001600160401b031681565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081565b61100281565b60005460ff166135da576040805162461bcd60e51b81526020600482015260196024820152600080516020614a62833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b15801561361d57600080fd5b505afa158015613631573d6000803e3d6000fd5b505050506040513d602081101561364757600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b15801561368857600080fd5b505afa15801561369c573d6000803e3d6000fd5b505050506040513d60208110156136b257600080fd5b50519050806136bf575060155b6000821180156136cf5750808211155b61370e576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b600b5460ff16613755576040805162461bcd60e51b815260206004820152600d60248201526c1b9bdd081cdd5cdc195b991959609a1b604482015290519081900360640190fd5b604080516e149153d4115397d41493d413d4d053608a1b8152905190819003600f0190206000906137a6907fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470614192565b905080156137e457600b805460ff1916905560405133907f899fe8c37dc61708a3aaa99c4bf143346c1d1da69af79be9e8920c0a6785b75290600090a25b505050565b600660209081526000928352604080842090915290825290205460ff1681565b6040518060400160405280600381526020016269626360e81b81525081565b610e1081565b61100381565b61200481565b60005460ff1615613892576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b7f1471eb6eb2c5e789fc3de43f8ce62938c7d1836ec861730447e2ada8fd81017b80546001600160a01b0319908116611008179091557f92e85d02570a8092d09a6e3a57665bc3815a2699a4074001bf1ccabf660f5a36805460ff199081169091557fd8af288fc1c8680b4f4706064cf021e264efb6828fcaf7eb5ca36818eb365bcc8054821660019081179091557f89832631fb3c3307a103ba2c84ab569c64d6182a18893dcd163f0f1c2090733a805484166110049081179091557f6cde3cea4b3a3fb2488b2808bae7556f4a405e50f65e1794383bc026131b13c38054841690557f72e4efa1513b071517c6c74dba31b5934a81aa83cddd400e7081df5529c9943680548416831790557fa9bc9a3a348c357ba16b37005d7e6b3236198c0e939f4af8c5f19b8deeb8ebc08054851690911790557fc575c31fea594a6eb97c8e9d3f9caee4c16218c6ef37e923234c0fe9014a61e78054831690557f4e523af77f034e9810f1c94057f5e931fb3d16a51511a4c3add793617d18610580548316821790557ffb33122aa9f93cc639ebe80a7bc4784c11e6053dde89c6f4f7e268c6a623da1e805484166110001790557fc7694af312c4f286114180fd0ba6a52461fcee8a381636770b19a343af92538a80548316821790557f01112dd68e482ba8d68a7e828cff8b3abcea08eab88941953c180a7e650e9cd480548316821790557fc0a4a8be475dfebc377ebef2d7c4ff47656f572a08dd92b81017efcdba0febe1805484166110071790557f87e8a52529e8ece4ef759037313542a6429ff494a9fab9027fb79db90124eba680548316821790557f4c7666bbcb22d46469f7cc282f70764a7012dca2cce630ff8d83db9a9cdd48f080548316821790557f40f28f99a40bc9f6beea1013afdbc3cdcc689eb76b82c4de06c0acf1e1932ed58054909316611001179092557f0d9cf2cd531699eed8dd34e40ff2884a14a698c4898184fba85194e6f6772d248054821683179055600b60009081527f23f68c9bd22b8a93d06adabe17481c87c016bcbd20adc8bfd707a4d813a572176020527fdf0d5d05428057f5455c2dc8e810dd86d1e9350faa72f16bda8a45443c5b39328054831684179055603283556004805467ffffffffffffffff19166001600160401b031790556002819055600381905580549091169091179055565b6007602052600090815260409020546001600160401b031681565b60005460ff16613c51576040805162461bcd60e51b81526020600482015260196024820152600080516020614a62833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b158015613c9457600080fd5b505afa158015613ca8573d6000803e3d6000fd5b505050506040513d6020811015613cbe57600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b158015613cff57600080fd5b505afa158015613d13573d6000803e3d6000fd5b505050506040513d6020811015613d2957600080fd5b5051905080613d36575060155b600082118015613d465750808211155b613d85576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b600b5460ff1615613dc9576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b604080516f14d554d411539117d41493d413d4d05360821b81529051908190036010019020600090613e1b907fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470614192565b905080156137e4576137e46140c9565b601181565b60005460ff16613e75576040805162461bcd60e51b81526020600482015260196024820152600080516020614a62833981519152604482015290519081900360640190fd5b33600090815260066020908152604080832060ff8089168552925290912054859116613ed25760405162461bcd60e51b81526004018080602001828103825260318152602001806148a06031913960400191505060405180910390fd5b60ff85166000908152600760209081526040808320548151601f88018490048402810184019092528682526001600160401b031692613f379284928a9261212592909189918c908c90819084018382808284376000920191909152506113a792505050565b60ff959095166000908152600760205260409020805467ffffffffffffffff191660019096016001600160401b03169590951790945550505050565b61100081565b600381565b61100481565b60408051600e808252818301909252606091630102ca0060ff851617918391602082018180368337505050600e81810187905260068201939093529182525090505b92915050565b600085613fdb575060006140c0565b606082518451865160800101016040519080825280601f01601f191660200182016040528015614012576020820181803683370190505b5090506000614020826147b4565b60208089015182520190508660008061403889614147565b8086526020909501949092509050614051828583614151565b9283019261405e88614147565b8086526020909501949092509050614077828583614151565b9283018a81526020019261408a87614147565b909250905061409a828583614151565b5083516020016140a86147ba565b60208183886065600019fa5051600114955050505050505b95945050505050565b600b5460ff161561410d576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b600b805460ff1916600117905560405133907f6f123d3d54c84a7960a573b31c221dcd86e13fd849c5adb0c6ca851468cc1ae490600090a2565b8051602090910191565b5b60208110614171578251825260209283019290910190601f1901614152565b915181516020939093036101000a6000190180199091169216919091179052565b6000828152600d602052604081205461ffff1661425b57604080516f14d554d411539117d41493d413d4d05360821b815281519081900360100181206000908152600d6020818152848320805461ffff199081166001179091556e149153d4115397d41493d413d4d053608a1b8552855194859003600f01852084528282528584208054821660029081179091557710d05390d15317d514905394d1915497d41493d413d4d05360421b8652865195869003601801909520845291905292902080549092161790555b6000838152600c6020526040902080546201000090046001600160801b03164210158061428c575082816001015414155b1561435f576000848152600d602090815260409182902054835461ffff90911661ffff199091161771ffffffffffffffffffffffffffffffff0000191662010000610e1042016001600160801b03160217835560018084018690558251918201909252338152614301916002840191906147d8565b5080546040805161ffff83168152620100009092046001600160801b0316602083015281810185905251339186917f9e109f0e55ef32e99e4880be2ec357f1ddb3469c79d0747ef4762da6e89fabe5916060908290030190a3614413565b60005b60028201548110156143ea57336001600160a01b031682600201828154811061438757fe5b6000918252602090912001546001600160a01b031614156143e2576040805162461bcd60e51b815260206004820152601060248201526f185b1c9958591e48185c1c1c9bdd995960821b604482015290519081900360640190fd5b600101614362565b50600281018054600181018255600091825260209091200180546001600160a01b031916331790555b8054600282015461ffff9091161161446d576000848152600c60205260408120805471ffffffffffffffffffffffffffffffffffff191681556001810182905590614461600283018261483d565b50506001915050613fc6565b5060009392505050565b600080600060606021855110156144a7575050604080516000808252602082019092529092508291508190614520565b600185015160218601518651604080516020198301808252601f19600119909401939093168101602001909152604189019392916060919080156144f2576020820181803683370190505b509050600061450082614147565b509050614512858260218d5103614151565b506001975091955093509150505b9193509193565b600b5460ff161561456b576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b6002544311156145aa576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b1617909155600355436002556145eb565b600380546001908101918290555410156145eb576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b16179091556003555b8160ff16836001600160401b0316600460009054906101000a900460070b6001600160401b03167f3a6e0fc61675aa2a100bcba0568368bb92bcec91c97673391074f11138f0cffe6102ca85604051808361ffff1661ffff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561468257818101518382015260200161466a565b50505050905090810190601f1680156146af5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a4505050565b6000816040516020018082805190602001908083835b602083106146f75780518252601f1990920191602091820191016146d8565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106147655780518252601f199092019160209182019101614746565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b3b151590565b60200190565b60405180602001604052806001906020820280368337509192915050565b82805482825590600052602060002090810192821561482d579160200282015b8281111561482d57825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906147f8565b5061483992915061485e565b5090565b508054600082559060005260206000209081019061485b9190614885565b50565b61488291905b808211156148395780546001600160a01b0319168155600101614864565b90565b61488291905b80821115614839576000815560010161488b56fe74686520636f6e747261637420616e64206368616e6e656c2068617665206e6f74206265656e20726567697374657265646c656e677468206f662076616c756520666f72206164644f725570646174654368616e6e656c2073686f756c642062652032322c206368616e6e656c49643a697346726f6d53797374656d3a68616e646c6572416464726573736c656e677468206f662076616c756520666f722063616e63656c5472616e7366657251756f72756d2073686f756c6420626520326c656e677468206f662076616c756520666f722073757370656e6451756f72756d2073686f756c6420626520326c656e677468206f662076616c756520666f722072656f70656e51756f72756d2073686f756c642062652032746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662076616c756520666f7220656e61626c654f7244697361626c654368616e6e656c2073686f756c6420626520322c206368616e6e656c49643a6973456e61626c65746865206e6577426174636853697a65466f724f7261636c652073686f756c6420626520696e205b31302c2031303030305d74686520636f6e7472616374206e6f7420696e697420796574000000000000006c6967687420636c69656e74206e6f742073796e632074686520626c6f636b20796574a164736f6c6343000604000a", - }, - { - ContractAddr: StakingContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/2d6372ddba77902ef01e45887a425938376d5a5c", - Code: "6080604052600436106103d25760003560e01c8063718a8aa8116101fd578063b88a802f11610118578063dc927faf116100ab578063f45fd80b1161007a578063f45fd80b14610cdb578063f9a2bbc714610d20578063fa03f79714610d35578063fc3e5908146106d3578063fd6a687914610d4a576103d9565b8063dc927faf14610c87578063df8079e914610c9c578063edc1a5b014610cb1578063f1fad10414610cc6576103d9565b8063c81b1662116100e7578063c81b166214610bb2578063c8509d8114610bc7578063d61b9b9314610c4c578063d7ecfcb614610890576103d9565b8063b88a802f14610b38578063baaafd3b14610b4d578063bf8546ca14610b62578063c2117d8214610b9d576103d9565b80639dc0926211610190578063aad560631161015f578063aad5606314610a2e578063ab51bb9614610a43578063ac43175114610a58578063b14315df14610b23576103d9565b80639dc09262146109c6578063a1a11bf5146109db578063a78abc16146109f0578063aa82dce114610a19576103d9565b80637e434d54116101cc5780637e434d5414610917578063831d65d11461092c57806392b888a41461066a57806396713da9146109b1576103d9565b8063718a8aa8146108a557806375aca593146108ba57806375d47a0a146108ed5780637942fd0514610902576103d9565b8063413d9c3a116102ed5780635d17c8bd116102805780636bd8f8041161024f5780636bd8f804146108125780636e47b482146108485780636fb7f7eb1461085d57806370fd5bad14610890576103d9565b80635d17c8bd146107be5780635d499b1b146107d357806362b171d2146107e857806369b635b6146107fd576103d9565b80634d99dd16116102bc5780634d99dd161461075357806351b4dce31461077f57806351e8067214610794578063552aaf93146107a9576103d9565b8063413d9c3a146106e857806343756e5c146106fd578063493279b1146107125780634bf6c8821461073e576103d9565b8063151817e311610365578063333ad3e711610334578063333ad3e7146106a957806334c43354146106be5780633dffc3871461066a5780633fdfa7e4146106d3576103d9565b8063151817e31461063f57806317c9efb01461066a578063280870281461067f5780632fdeb11114610694576103d9565b80630c795715116103a15780630c795715146104cc5780630e2374a5146104e15780631182b8751461051257806311fe9ec61461060c576103d9565b8063026e402b146103de578063029859921461040c578063047636d1146104335780630bee7a671461049e576103d9565b366103d957005b600080fd5b61040a600480360360408110156103f457600080fd5b506001600160a01b038135169060200135610d5f565b005b34801561041857600080fd5b50610421610d9c565b60408051918252519081900360200190f35b34801561043f57600080fd5b506104666004803603602081101561045657600080fd5b50356001600160a01b0316610da2565b6040518082606080838360005b8381101561048b578181015183820152602001610473565b5050505090500191505060405180910390f35b3480156104aa57600080fd5b506104b3610df6565b6040805163ffffffff9092168252519081900360200190f35b3480156104d857600080fd5b50610421610dfb565b3480156104ed57600080fd5b506104f6610e01565b604080516001600160a01b039092168252519081900360200190f35b34801561051e57600080fd5b506105976004803603604081101561053557600080fd5b60ff8235169190810190604081016020820135600160201b81111561055957600080fd5b82018360208201111561056b57600080fd5b803590602001918460018302840111600160201b8311171561058c57600080fd5b509092509050610e07565b6040805160208082528351818301528351919283929083019185019080838360005b838110156105d15781810151838201526020016105b9565b50505050905090810190601f1680156105fe5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561061857600080fd5b506104216004803603602081101561062f57600080fd5b50356001600160a01b0316610fc3565b34801561064b57600080fd5b50610654610fde565b6040805160ff9092168252519081900360200190f35b34801561067657600080fd5b50610654610fe3565b34801561068b57600080fd5b506104f6610fe8565b3480156106a057600080fd5b50610421610fee565b3480156106b557600080fd5b506104b3610ff4565b3480156106ca57600080fd5b50610421610ff9565b3480156106df57600080fd5b50610654611004565b3480156106f457600080fd5b50610421611009565b34801561070957600080fd5b506104f6611010565b34801561071e57600080fd5b50610727611016565b6040805161ffff9092168252519081900360200190f35b34801561074a57600080fd5b5061065461101c565b61040a6004803603604081101561076957600080fd5b506001600160a01b038135169060200135611021565b34801561078b57600080fd5b506104f661164e565b3480156107a057600080fd5b506104f6611654565b3480156107b557600080fd5b5061065461165a565b3480156107ca57600080fd5b5061042161165f565b3480156107df57600080fd5b50610421611665565b3480156107f457600080fd5b5061042161166e565b34801561080957600080fd5b5061042161180e565b61040a6004803603606081101561082857600080fd5b506001600160a01b03813581169160208101359091169060400135610d5f565b34801561085457600080fd5b506104f6611814565b34801561086957600080fd5b506104216004803603602081101561088057600080fd5b50356001600160a01b031661181a565b34801561089c57600080fd5b50610654611835565b3480156108b157600080fd5b5061065461183a565b3480156108c657600080fd5b50610421600480360360208110156108dd57600080fd5b50356001600160a01b031661183f565b3480156108f957600080fd5b506104f661185a565b34801561090e57600080fd5b50610654611860565b34801561092357600080fd5b506104f6611865565b34801561093857600080fd5b5061040a6004803603604081101561094f57600080fd5b60ff8235169190810190604081016020820135600160201b81111561097357600080fd5b82018360208201111561098557600080fd5b803590602001918460018302840111600160201b831117156109a657600080fd5b50909250905061186b565b3480156109bd57600080fd5b50610654611b33565b3480156109d257600080fd5b506104f6611b38565b3480156109e757600080fd5b506104f6611b3e565b3480156109fc57600080fd5b50610a05611b44565b604080519115158252519081900360200190f35b348015610a2557600080fd5b506104f6611b4d565b348015610a3a57600080fd5b506104f6611b53565b348015610a4f57600080fd5b506104b361165a565b348015610a6457600080fd5b5061040a60048036036040811015610a7b57600080fd5b810190602081018135600160201b811115610a9557600080fd5b820183602082011115610aa757600080fd5b803590602001918460018302840111600160201b83111715610ac857600080fd5b919390929091602081019035600160201b811115610ae557600080fd5b820183602082011115610af757600080fd5b803590602001918460018302840111600160201b83111715610b1857600080fd5b509092509050611b59565b348015610b2f57600080fd5b506106546122eb565b348015610b4457600080fd5b506104216122f0565b348015610b5957600080fd5b5061042161248d565b348015610b6e57600080fd5b5061042160048036036040811015610b8557600080fd5b506001600160a01b0381358116916020013516612498565b348015610ba957600080fd5b506104216124c5565b348015610bbe57600080fd5b506104f66124cb565b348015610bd357600080fd5b5061040a60048036036040811015610bea57600080fd5b60ff8235169190810190604081016020820135600160201b811115610c0e57600080fd5b820183602082011115610c2057600080fd5b803590602001918460018302840111600160201b83111715610c4157600080fd5b5090925090506124d1565b348015610c5857600080fd5b5061042160048036036040811015610c6f57600080fd5b506001600160a01b03813581169160200135166126f4565b348015610c9357600080fd5b506104f661271f565b348015610ca857600080fd5b506104f6612725565b348015610cbd57600080fd5b5061042161272b565b348015610cd257600080fd5b50610654612738565b348015610ce757600080fd5b5061042160048036036060811015610cfe57600080fd5b506001600160a01b03813581169160208101358216916040909101351661273d565b348015610d2c57600080fd5b506104f6612772565b348015610d4157600080fd5b50610421612778565b348015610d5657600080fd5b506104f661277e565b6040805162461bcd60e51b815260206004820152600d60248201526c1b9bdd081cdd5c1c1bdc9d1959609a1b604482015290519081900360640190fd5b60035481565b610daa614801565b610db2614801565b6001600160a01b0383166000818152600b60209081526040808320548552838352600c82528083205485830152928252600d9052819020549082015290505b919050565b606481565b6108fc81565b61200181565b60603361200014610e495760405162461bcd60e51b815260040180806020018281038252602f8152602001806149e4602f913960400191505060405180910390fd5b60005460ff16610e8c576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b610e9461481f565b610edb610ed685858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278492505050565b6127a9565b90506000610ef0610eeb836127f3565b612841565b90506000606060ff831660041415610f1557610f0b846128f8565b9092509050610f6c565b60ff831660051415610f2a57610f0b84612ad8565b6040805162461bcd60e51b8152602060048201526012602482015271756e6b6e6f776e206576656e74207479706560701b604482015290519081900360640190fd5b63ffffffff821615610fb8576040805163ffffffff84168152905160ff8516917f391d6e5ea6ab6c49b9a0abb1782cae5def8d711f973b00c729658c0b2a80b31b919081900360200190a25b979650505050505050565b6001600160a01b031660009081526006602052604090205490565b600581565b600181565b61200581565b60015481565b606581565b662386f26fc1000081565b600381565b620a8c0081565b61100181565b6102ca81565b600881565b60105460ff166002141561106d576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b6010805460ff19166002179055806402540be400340615801561109557506402540be4008106155b6110e6576040805162461bcd60e51b815260206004820152601c60248201527f707265636973696f6e206c6f737320696e20636f6e76657273696f6e00000000604482015290519081900360640190fd5b60005460ff16611129576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b600154341015611177576040805162461bcd60e51b81526020600482015260146024820152736e6f7420656e6f7567682072656c61792066656560601b604482015290519081900360640190fd5b600354821015611232573360009081526005602090815260408083206001600160a01b038716845290915290205482146111e9576040805162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a5908185b5bdd5b9d60921b604482015290519081900360640190fd5b6002548211611232576040805162461bcd60e51b815260206004820152601060248201526f6e6f7420656e6f7567682066756e647360801b604482015290519081900360640190fd5b3360009081526007602090815260408083206001600160a01b03871684529091529020544210156112aa576040805162461bcd60e51b815260206004820152601a60248201527f70656e64696e6720756e64656c65676174696f6e206578697374000000000000604482015290519081900360640190fd5b604080518082018252601081526f6e6f7420656e6f7567682066756e647360801b602080830191909152336000908152600582528381206001600160a01b03881682529091529182205461130591859063ffffffff612df816565b9050801561134d57600254811161134d5760405162461bcd60e51b81526004018080602001828103825260258152602001806149bf6025913960400191505060405180910390fd5b6000611364846402540be40063ffffffff612e8f16565b600254909150349060009061138090839063ffffffff612ed816565b6040805160038082526080820190925291925060609190816020015b606081526020019060019003908161139c5790505090506113bc33612f1a565b816000815181106113c957fe5b60200260200101819052506113e6886001600160a01b0316612f1a565b816001815181106113f357fe5b602002602001018190525061140784612f3d565b8160028151811061141457fe5b60200260200101819052506060611434600261142f84612f50565b612fda565b8051602080830191909120600f80546000908152600a845260408082209390935581546001908101909255338152600c909352912080549091019055905061148542620a8c0063ffffffff61306016565b3360009081526007602090815260408083206001600160a01b038e16845290915290205561200063f7a251d76010836114c9876402540be40063ffffffff612e8f16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561152757818101518382015260200161150f565b50505050905090810190601f1680156115545780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561157557600080fd5b505af1158015611589573d6000803e3d6000fd5b5050604051611004925085156108fc02915085906000818181858888f193505050501580156115bc573d6000803e3d6000fd5b506002546040516110029180156108fc02916000818181858888f193505050501580156115ed573d6000803e3d6000fd5b50604080518981526020810185905281516001600160a01b038c169233927fdf0b6ac27f3f3bb31cee3dab0f4fe40cc19c6a3f8daaec52e06b261e58a12519929081900390910190a350506010805460ff1916600117905550505050505050565b61200681565b61200081565b600081565b60025481565b6402540be40081565b60105460009060ff16600214156116bd576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b506010805460ff191660021790553360009081526008602052604090205480611724576040805162461bcd60e51b81526020600482015260146024820152736e6f20756e64656c6567617465642066756e647360601b604482015290519081900360640190fd5b336000818152600860205260408082208290556011549051919291849084818181858888f193505050503d806000811461177a576040519150601f19603f3d011682016040523d82523d6000602084013e61177f565b606091505b50509050806117c7576040805162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b604482015290519081900360640190fd5b60408051838152905133917fc712d133b8d448221aaed2198ed1f0db6dfc860fb01bc3a630916fe6cbef946f919081900360200190a2506010805460ff1916600117905590565b60035490565b61100581565b6001600160a01b031660009081526004602052604090205490565b600281565b601081565b6001600160a01b031660009081526008602052604090205490565b61100881565b600b81565b61200381565b33612000146118ab5760405162461bcd60e51b815260040180806020018281038252602f8152602001806149e4602f913960400191505060405180910390fd5b60005460ff166118ee576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b6118f661481f565b611938610ed684848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278492505050565b905060008060606000805b61194c866130ba565b156119b7578061196957611962610eeb876127f3565b94506119af565b80600114156119855761197e610eeb876127f3565b93506119af565b80600214156119aa5761199f61199a876127f3565b6130db565b9250600191506119af565b6119b7565b600101611943565b816119fd576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b611a068361314b565b611a49576040805162461bcd60e51b815260206004820152600f60248201526e0eee4dedcce40e0c2c6d640d0c2e6d608b1b604482015290519081900360640190fd5b611a55610ed684612784565b95506000611a65610eeb886127f3565b9050611a6f61481f565b611a78886130ba565b15611a9b57611a94610ed6611a8f61199a8b6127f3565b612784565b9050611adc565b6040805162461bcd60e51b8152602060048201526011602482015270656d7074792061636b207061636b61676560781b604482015290519081900360640190fd5b60ff821660011415611af857611af381888861319f565b611b26565b60ff821660021415611b0f57611af3818888613556565b60ff821660031415610f2a57611af3818888613823565b5050505050505050505050565b600981565b61100781565b61100681565b60005460ff1681565b61200281565b61300081565b60005460ff16611bb0576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604482015290519081900360640190fd5b3361100714611bf05760405162461bcd60e51b815260040180806020018281038252602e815260200180614935602e913960400191505060405180910390fd5b611c5184848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600a81526972656c6179657246656560b01b60208201529150613b889050565b15611db75760208114611cab576040805162461bcd60e51b815260206004820152601d60248201527f6c656e677468206f662072656c61796572466565206d69736d61746368000000604482015290519081900360640190fd5b604080516020601f8401819004810282018101909252828152600091611ce991858580838501838280828437600092019190915250613c6f92505050565b90506003548110611d2b5760405162461bcd60e51b815260040180806020018281038252602e815260200180614963602e913960400191505060405180910390fd5b6002548111611d6b5760405162461bcd60e51b815260040180806020018281038252602e815260200180614991602e913960400191505060405180910390fd5b6402540be400810615611daf5760405162461bcd60e51b815260040180806020018281038252602c815260200180614909602c913960400191505060405180910390fd5b600155612259565b611e1b84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c62534352656c6179657246656560981b60208201529150613b889050565b15611f7d5760208114611e75576040805162461bcd60e51b815260206004820181905260248201527f6c656e677468206f662062534352656c61796572466565206d69736d61746368604482015290519081900360640190fd5b604080516020601f8401819004810282018101909252828152600091611eb391858580838501838280828437600092019190915250613c6f92505050565b905080611ef15760405162461bcd60e51b8152600401808060200182810382526022815260200180614a136022913960400191505060405180910390fd5b6001548110611f315760405162461bcd60e51b815260040180806020018281038252602e815260200180614889602e913960400191505060405180910390fd5b6402540be400810615611f755760405162461bcd60e51b815260040180806020018281038252602f81526020018061485a602f913960400191505060405180910390fd5b600255612259565b611fe184848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c36b4b72232b632b3b0ba34b7b760991b60208201529150613b889050565b156120c3576020811461203b576040805162461bcd60e51b815260206004820181905260248201527f6c656e677468206f66206d696e44656c65676174696f6e206d69736d61746368604482015290519081900360640190fd5b604080516020601f840181900481028201810190925282815260009161207991858580838501838280828437600092019190915250613c6f92505050565b905060015481116120bb5760405162461bcd60e51b81526004018080602001828103825260318152602001806148b76031913960400191505060405180910390fd5b600355612259565b61212584848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600b81526a7472616e7366657247617360a81b60208201529150613b889050565b1561221c576020811461217f576040805162461bcd60e51b815260206004820152601e60248201527f6c656e677468206f66207472616e73666572476173206d69736d617463680000604482015290519081900360640190fd5b604080516020601f84018190048102820181019092528281526000916121bd91858580838501838280828437600092019190915250613c6f92505050565b905060008111612214576040805162461bcd60e51b815260206004820152601e60248201527f746865207472616e736665724761732063616e6e6f74206265207a65726f0000604482015290519081900360640190fd5b601155612259565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b600481565b60105460009060ff166002141561233f576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b506010805460ff1916600217905533600090815260066020526040902054806123a3576040805162461bcd60e51b81526020600482015260116024820152701b9bc81c195b991a5b99c81c995dd85c99607a1b604482015290519081900360640190fd5b336000818152600660205260408082208290556011549051919291849084818181858888f193505050503d80600081146123f9576040519150601f19603f3d011682016040523d82523d6000602084013e6123fe565b606091505b5050905080612446576040805162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b604482015290519081900360640190fd5b60408051838152905133917f83b78188b13346b2ffb484da70d42ee27de7fbf9f2bd8045269e10ed643ccd76919081900360200190a2506010805460ff1916600117905590565b6638d7ea4c68000081565b6001600160a01b038083166000908152600760209081526040808320938516835292905220545b92915050565b60015490565b61100281565b33612000146125115760405162461bcd60e51b815260040180806020018281038252602f8152602001806149e4602f913960400191505060405180910390fd5b60005460ff16612554576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b61259382828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061314b92505050565b6125d6576040805162461bcd60e51b815260206004820152600f60248201526e0eee4dedcce40e0c2c6d640d0c2e6d608b1b604482015290519081900360640190fd5b6125de61481f565b612620610ed684848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278492505050565b90506000612630610eeb836127f3565b905061263a61481f565b612643836130ba565b156126615761265a610ed6611a8f61199a866127f3565b90506126a7565b6040805162461bcd60e51b8152602060048201526016602482015275656d707479206661696c2061636b207061636b61676560501b604482015290519081900360640190fd5b60ff8216600114156126c1576126bc81613c74565b6126eb565b60ff8216600214156126d6576126bc81613e8e565b60ff821660031415610f2a576126bc81613fb8565b5050505b505050565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b61100381565b61200481565b68056bc75e2d6310000081565b601181565b6001600160a01b0392831660009081526009602090815260408083209486168352938152838220929094168152925290205490565b61100081565b60115481565b61100481565b61278c61483f565b506040805180820190915281518152602082810190820152919050565b6127b161481f565b6127ba8261411d565b6127c357600080fd5b60006127d28360200151614157565b60208085015160408051808201909152868152920190820152915050919050565b6127fb61483f565b612804826130ba565b61280d57600080fd5b6020820151600061281d826141ba565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061285657508151602110155b61285f57600080fd5b600061286e8360200151614157565b905080836000015110156128c9576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b8251602080850151830180519284900392918310156128ef57826020036101000a820491505b50949350505050565b600060606000806000805b61290c876130ba565b1561295e578261292e57612927612922886127f3565b6142ed565b9150612953565b826001141561294e57612943610eeb886127f3565b905060019350612953565b61295e565b826001019250612903565b836129a4576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b60006110046001600160a01b031663727be1f8836040518263ffffffff1660e01b815260040180828152602001915050602060405180830381600087803b1580156129ee57600080fd5b505af1158015612a02573d6000803e3d6000fd5b505050506040513d6020811015612a1857600080fd5b5051905080612a3d57612a2f600484846065614307565b965096505050505050612ad3565b6001600160a01b038316600090815260066020526040902054612a66908363ffffffff61306016565b6001600160a01b038416600081815260066020908152604091829020939093558051858152905191927f7cc266c7b444f808013fa187f7b904d470a051a6564e78f482aa496581ba4bf892918290030190a260408051600080825260208201909252909750955050505050505b915091565b600060606000806000806000805b612aef896130ba565b15612b795784612b0c57612b056129228a6127f3565b9350612b6e565b8460011415612b2857612b216129228a6127f3565b9250612b6e565b8460021415612b4857612b3d610eeb8a6127f3565b915060019550612b6e565b8460031415612b6957612b62612b5d8a6127f3565b614403565b9050612b6e565b612b79565b846001019450612ae6565b85612bbf576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b60006110046001600160a01b031663727be1f8846040518263ffffffff1660e01b815260040180828152602001915050602060405180830381600087803b158015612c0957600080fd5b505af1158015612c1d573d6000803e3d6000fd5b505050506040513d6020811015612c3357600080fd5b5051905080612c5a57612c4a600586856065614307565b9850985050505050505050612ad3565b6001600160a01b038086166000818152600760209081526040808320948916835293815283822082905591815260089091522054612c9e908463ffffffff61306016565b6001600160a01b0386166000908152600860205260409020558115612d8c576001600160a01b038516600090815260046020526040902054612ce6908463ffffffff612ed816565b6001600160a01b03808716600090815260046020908152604080832094909455600581528382209288168252919091522054612d28908463ffffffff612ed816565b6001600160a01b038087166000818152600560209081526040808320948a16808452948252918290209490945580518781529051929391927fd6f878a5bcbbe79a64e6418bb0d56aaa20b9a60587d45749819df88dfc7c3c44929181900390910190a35b836001600160a01b0316856001600160a01b03167f35a799836f74fac7eccf5c73902823b970543d2274d3b93d8da3d37a255772a2856040518082815260200191505060405180910390a360408051600080825260208201909252909950975050505050505050915091565b60008184841115612e875760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612e4c578181015183820152602001612e34565b50505050905090810190601f168015612e795780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000612ed183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250614447565b9392505050565b6000612ed183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612df8565b60408051600560a21b8318601482015260348101909152606090612ed1816144ac565b60606124bf612f4b83614502565b6144ac565b6060815160001415612f715750604080516000815260208101909152610df1565b606082600081518110612f8057fe5b602002602001015190506000600190505b8351811015612fc157612fb782858381518110612faa57fe5b60200260200101516145e8565b9150600101612f91565b50612ed1612fd4825160c060ff16614665565b826145e8565b6040805160028082526060828101909352829190816020015b6060815260200190600190039081612ff35790505090506130168460ff16612f3d565b8160008151811061302357fe5b6020026020010181905250613037836144ac565b8160018151811061304457fe5b602002602001018190525061305881612f50565b949350505050565b600082820183811015612ed1576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60006130c461483f565b505080518051602091820151919092015191011190565b80516060906130e957600080fd5b60006130f88360200151614157565b83516040805191839003808352601f19601f820116830160200190915291925060609082801561312f576020820181803683370190505b50905060008160200190506128ef84876020015101828561475d565b8051602080830191909120600e546000908152600a909252604082205480821461317a57600092505050610df1565b5050600e80546000908152600a60205260408120558054600190810190915592915050565b60008060008060005b6131b1886130ba565b1561321a57836131ce576131c7612922896127f3565b925061320f565b83600114156131ea576131e3612922896127f3565b915061320f565b836002141561320a576131ff610eeb896127f3565b90506001945061320f565b61321a565b8360010193506131a8565b84613260576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6000613277826402540be40063ffffffff6147a816565b6001600160a01b0385166000908152600b602052604090208054600019019055905060ff8816600114156133bd5760ff8716156132ea576040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b6001600160a01b038416600090815260046020526040902054613313908263ffffffff61306016565b6001600160a01b03808616600090815260046020908152604080832094909455600581528382209287168252919091522054613355908263ffffffff61306016565b6001600160a01b038086166000818152600560209081526040808320948916808452948252918290209490945580518581529051929391927f9a57c81564ab02642f34fd87e41baa9b074c18342cec3b7268b62bf752018fd1929181900390910190a361354b565b60ff881661350f576001600160a01b0384166000908152600860205260409020546133ee908263ffffffff61306016565b6001600160a01b0385166000908152600860209081526040808320939093558251630e4f7c3f60e31b81526004810185905292516110049363727be1f89360248083019493928390030190829087803b15801561344a57600080fd5b505af115801561345e573d6000803e3d6000fd5b505050506040513d602081101561347457600080fd5b50516134bd576040805162461bcd60e51b81526020600482015260136024820152721dda5d1a191c985dc8189b988819985a5b1959606a1b604482015290519081900360640190fd5b6040805182815260ff8916602082015281516001600160a01b0380871693908816927fcbd481ae600289fad8c0484d07ce0ffe4f010d7c844ecfdeaf2a13fead52886e929081900390910190a361354b565b6040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b505050505050505050565b60008060008060005b613568886130ba565b156135d157836135855761357e612922896127f3565b92506135c6565b83600114156135a15761359a612922896127f3565b91506135c6565b83600214156135c1576135b6610eeb896127f3565b9050600194506135c6565b6135d1565b83600101935061355f565b84613617576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b600061362e826402540be40063ffffffff6147a816565b6001600160a01b0385166000908152600c602052604090208054600019019055905060ff8816600114156137ad5760ff8716156136a1576040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b6001600160a01b0384166000908152600460205260409020546136ca908263ffffffff612ed816565b6001600160a01b0380861660009081526004602090815260408083209490945560058152838220928716825291909152205461370c908263ffffffff612ed816565b6001600160a01b0380861660009081526005602090815260408083209388168352929052205561374542620a8c0063ffffffff61306016565b6001600160a01b038086166000818152600760209081526040808320948916808452948252918290209490945580518581529051929391927fd6f878a5bcbbe79a64e6418bb0d56aaa20b9a60587d45749819df88dfc7c3c44929181900390910190a361354b565b60ff881661350f576001600160a01b03808516600081815260076020908152604080832094881680845294825280832092909255815185815260ff8c169181019190915281517f4417d10c1e33efa83a770b8d4f47176e78c08c1298d534901ad3b16bb585fa2e929181900390910190a361354b565b6000806000806000805b613836896130ba565b156138bb57846138535761384c6129228a6127f3565b93506138b0565b846001141561386f576138686129228a6127f3565b92506138b0565b846002141561388b576138846129228a6127f3565b91506138b0565b84600314156138ab576138a0610eeb8a6127f3565b9050600195506138b0565b6138bb565b84600101945061382d565b85613901576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6000613918826402540be40063ffffffff6147a816565b6001600160a01b0386166000908152600d602052604090208054600019019055905060ff891660011415613aeb5760ff88161561398b576040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b6001600160a01b038086166000908152600560209081526040808320938816835292905220546139c1908263ffffffff612ed816565b6001600160a01b038681166000908152600560209081526040808320898516845290915280822093909355908516815220546139fd9082613060565b6001600160a01b03808716600090815260056020908152604080832093881683529290522055613a3642620a8c0063ffffffff61306016565b6001600160a01b0380871660009081526009602090815260408083208985168452825280832093881683529290522055613a7942620a8c0063ffffffff61306016565b6001600160a01b038087166000818152600960209081526040808320898616808552908352818420958b1680855295835292819020959095558451868152945191947f78bffae3f8c6691ac7fc1a3bff800cb2d612f5ad9ae5b0444cfe2eb15c189e18929081900390910190a4613b7c565b60ff891661350f576001600160a01b038581166000818152600960209081526040808320898616808552818452828520968a16808652968452828520859055908352818420818552835281842093909355805186815260ff8e169281019290925280519293927fb93bee5c59f85ede6b074a99f4ffcd3e3fc0d5c3d8156de331de89a49e0ce77c9281900390910190a45b50505050505050505050565b6000816040516020018082805190602001908083835b60208310613bbd5780518252601f199092019160209182019101613b9e565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310613c2b5780518252601f199092019160209182019101613c0c565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b60008060008060005b613c86866130ba565b15613cef5783613ca357613c9c612922876127f3565b9250613ce4565b8360011415613cbf57613cb8612922876127f3565b9150613ce4565b8360021415613cdf57613cd4610eeb876127f3565b905060019450613ce4565b613cef565b836001019350613c7d565b84613d35576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6000613d4c826402540be40063ffffffff6147a816565b6001600160a01b0385166000908152600b6020908152604080832080546000190190556008909152902054909150613d8a908263ffffffff61306016565b6001600160a01b0385166000908152600860209081526040808320939093558251630e4f7c3f60e31b81526004810185905292516110049363727be1f89360248083019493928390030190829087803b158015613de657600080fd5b505af1158015613dfa573d6000803e3d6000fd5b505050506040513d6020811015613e1057600080fd5b5051613e59576040805162461bcd60e51b81526020600482015260136024820152721dda5d1a191c985dc8189b988819985a5b1959606a1b604482015290519081900360640190fd5b6040516001907ff83de021914a4585482db5ca47d520a5657165b443fa2c7ef8ed4635f054da9b90600090a250505050505050565b60008060008060005b613ea0866130ba565b15613f095783613ebd57613eb6612922876127f3565b9250613efe565b8360011415613ed957613ed2612922876127f3565b9150613efe565b8360021415613ef957613eee610eeb876127f3565b905060019450613efe565b613f09565b836001019350613e97565b84613f4f576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6001600160a01b038084166000908152600c60209081526040808320805460001901905560078252808320938616835292905281812081905590516002917ff83de021914a4585482db5ca47d520a5657165b443fa2c7ef8ed4635f054da9b91a2505050505050565b6000806000806000805b613fcb876130ba565b156140505784613fe857613fe1612922886127f3565b9350614045565b846001141561400457613ffd612922886127f3565b9250614045565b846002141561402057614019612922886127f3565b9150614045565b846003141561404057614035610eeb886127f3565b905060019550614045565b614050565b846001019450613fc2565b85614096576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6001600160a01b038481166000908152600d602090815260408083208054600019019055600982528083208785168085528184528285209588168552948352818420849055825280832093835292905281812081905590516003917ff83de021914a4585482db5ca47d520a5657165b443fa2c7ef8ed4635f054da9b91a250505050505050565b805160009061412e57506000610df1565b6020820151805160001a9060c082101561414d57600092505050610df1565b5060019392505050565b8051600090811a6080811015614171576000915050610df1565b60b881108061418c575060c0811080159061418c575060f881105b1561419b576001915050610df1565b60c08110156141af5760b519019050610df1565b60f519019050610df1565b80516000908190811a60808110156141d557600191506142e6565b60b88110156141ea57607e19810191506142e6565b60c081101561426457600060b78203600186019550806020036101000a86510491506001810182019350508083101561425e576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b506142e6565b60f88110156142795760be19810191506142e6565b600060f78203600186019550806020036101000a8651049150600181018201935050808310156142e4576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b80516000906015146142fe57600080fd5b6124bf82612841565b60006060614320846402540be40063ffffffff612e8f16565b60408051600480825260a0820190925291955060609190816020015b606081526020019060019003908161433c57905050905061435f8760ff16612f3d565b8160008151811061436c57fe5b6020026020010181905250614389866001600160a01b0316612f1a565b8160018151811061439657fe5b60200260200101819052506143aa85612f3d565b816002815181106143b757fe5b60200260200101819052506143d18463ffffffff16612f3d565b816003815181106143de57fe5b602002602001018190525060606143f482612f50565b94989497509395505050505050565b805160009060011461441457600080fd5b6020820151805160001a9081158061442c5750608082145b1561443c57600092505050610df1565b600192505050610df1565b600081836144965760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315612e4c578181015183820152602001612e34565b5060008385816144a257fe5b0495945050505050565b6060815160011480156144de5750607f60f81b826000815181106144cc57fe5b01602001516001600160f81b03191611155b156144ea575080610df1565b6124bf6144fc8351608060ff16614665565b836145e8565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166145465750601861456a565b6fffffffffffffffffffffffffffffffff1984166145665750601061456a565b5060005b60208110156145a05781818151811061457f57fe5b01602001516001600160f81b03191615614598576145a0565b60010161456a565b60008160200390506060816040519080825280601f01601f1916602001820160405280156145d5576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b81831015614619578051835260209283019201614601565b50855184518101855292509050808201602086015b8183101561464657805183526020928301920161462e565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106146b5576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b6040805160018082528183019092526060916020820181803683370190505090506037841161470f5782840160f81b816000815181106146f157fe5b60200101906001600160f81b031916908160001a90535090506124bf565b606061471a85614502565b90508381510160370160f81b8260008151811061473357fe5b60200101906001600160f81b031916908160001a90535061475482826145e8565b95945050505050565b80614767576126ef565b5b60208110614787578251825260209283019290910190601f1901614768565b915181516020939093036101000a6000190180199091169216919091179052565b6000826147b7575060006124bf565b828202828482816147c457fe5b0414612ed15760405162461bcd60e51b81526004018080602001828103825260218152602001806148e86021913960400191505060405180910390fd5b60405180606001604052806003906020820280368337509192915050565b604051806040016040528061483261483f565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe7468652042534352656c61796572466565206d6f642074656e20646563696d616c73206d757374206265207a65726f7468652042534352656c61796572466565206d757374206265206c657373207468616e2072656c61796572466565746865206d696e44656c65676174696f6e206d7573742062652067726561746572207468616e2072656c61796572466565536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f777468652072656c61796572466565206d6f642074656e20646563696d616c73206d757374206265207a65726f746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163747468652072656c61796572466565206d757374206265206c657373207468616e206d696e44656c65676174696f6e7468652072656c61796572466565206d757374206265206d6f7265207468616e2042534352656c61796572466565696e73756666696369656e742062616c616e636520616674657220756e64656c6567617465746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e74726163747468652042534352656c61796572466565206d757374206e6f74206265207a65726fa164736f6c6343000604000a", - }, - { - ContractAddr: StakeHubContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/2d6372ddba77902ef01e45887a425938376d5a5c", - Code: "608060405260043610620003db5760003560e01c806386d545061162000203578063d115a2061162000117578063e992aaf511620000ad578063f80a34021162000078578063f80a34021462000bed578063fb50b31f1462000c12578063fc0c5ff11462000c37578063ff69ab611462000c4f57600080fd5b8063e992aaf51462000b6a578063efdbf0e11462000b82578063f1f74d841462000bbe578063f1fad1041462000bd657600080fd5b8063d8ca511f11620000ee578063d8ca511f1462000afd578063daacdb661462000b15578063dbda7fb31462000b2d578063e8f67c3b1462000b5257600080fd5b8063d115a2061462000a9b578063d6ca429d1462000ab3578063d7c2dfc81462000ad857600080fd5b8063b187bd261162000199578063c38fbec81162000164578063c38fbec81462000a1d578063c473318f1462000a42578063c8509d81146200083b578063cbb04d9d1462000a5a57600080fd5b8063b187bd26146200098a578063baa7199e14620009aa578063bdceadf314620009cf578063bff02e2014620009e757600080fd5b8063982ef0a711620001da578063982ef0a714620008f5578063a43569b3146200090c578063aad3ec961462000940578063ac431751146200096557600080fd5b806386d5450614620008785780638a4d3fa814620008b25780638cd22b2214620008d057600080fd5b80634bf6c88211620002fb578063663706d3116200029157806376e7d6d6116200025c57806376e7d6d6146200080b5780638129fc1c1462000823578063831d65d1146200083b5780638456cb59146200086057600080fd5b8063663706d314620007385780636ec01b2714620007695780636f8e2fa414620007c157806375cc7d8914620007e657600080fd5b80635949187111620002d25780635949187114620006a05780635e7cc1c914620006c557806363a036b514620006ea57806364028fbd146200072157600080fd5b80634bf6c88214620006395780634d99dd1614620006635780634e6fd6c4146200068857600080fd5b80631fa8882b1162000371578063449ecfe61162000348578063449ecfe6146200058557806345211bfd14620005aa5780634838d16514620005cf5780634a49ac4c146200061457600080fd5b80631fa8882b1462000531578063384099881462000548578063417c73a7146200056057600080fd5b8063092193ab11620003b2578063092193ab146200047c5780630e9fbf5114620004935780631182b87514620004b857806317b4f35314620004ec57600080fd5b8063046f7da214620003fb578063059ddd2214620004135780630661806e146200045557600080fd5b36620003f65760345460ff16600114620003f457600080fd5b005b600080fd5b3480156200040857600080fd5b50620003f462000c67565b3480156200042057600080fd5b50620004386200043236600462009429565b62000cf9565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156200046257600080fd5b506200046d60365481565b6040519081526020016200044c565b620003f46200048d36600462009429565b6200110e565b348015620004a057600080fd5b50620003f4620004b23660046200948d565b6200174c565b348015620004c557600080fd5b50620004dd620004d7366004620094d2565b62001a74565b6040516200044c919062009585565b348015620004f957600080fd5b50620004386200050b3660046200967b565b80516020818301810180516045825292820191909301209152546001600160a01b031681565b3480156200053e57600080fd5b506200046d603c81565b3480156200055557600080fd5b506200046d60375481565b3480156200056d57600080fd5b50620003f46200057f36600462009429565b62001de7565b3480156200059257600080fd5b50620003f4620005a436600462009429565b62001e69565b348015620005b757600080fd5b50620003f4620005c936600462009429565b6200204e565b348015620005dc57600080fd5b5062000603620005ee36600462009429565b60016020526000908152604090205460ff1681565b60405190151581526020016200044c565b3480156200062157600080fd5b50620003f46200063336600462009429565b62002229565b3480156200064657600080fd5b5062000650600881565b60405160ff90911681526020016200044c565b3480156200067057600080fd5b50620003f462000682366004620096d0565b620022a5565b3480156200069557600080fd5b506200043861dead81565b348015620006ad57600080fd5b50620003f4620006bf3660046200970e565b620028c2565b348015620006d257600080fd5b50620003f4620006e43660046200977e565b62003694565b348015620006f757600080fd5b506200070f620007093660046200979e565b6200389a565b6040516200044c949392919062009807565b620003f462000732366004620098c3565b62003f2c565b3480156200074557600080fd5b506200046d6200075736600462009429565b60446020526000908152604090205481565b3480156200077657600080fd5b506200078e6200078836600462009429565b62004576565b6040805182516001600160401b03908116825260208085015182169083015292820151909216908201526060016200044c565b348015620007ce57600080fd5b50620004dd620007e036600462009429565b62004620565b348015620007f357600080fd5b50620003f46200080536600462009429565b62004a39565b3480156200081857600080fd5b506200046d603d5481565b3480156200083057600080fd5b50620003f462004c0b565b3480156200084857600080fd5b50620003f46200085a366004620094d2565b62004f1d565b3480156200086d57600080fd5b50620003f462004f87565b3480156200088557600080fd5b50620004386200089736600462009429565b6043602052600090815260409020546001600160a01b031681565b348015620008bf57600080fd5b506200046d670de0b6b3a764000081565b348015620008dd57600080fd5b506200046d620008ef366004620096d0565b6200501f565b620003f4620009063660046200999b565b620050d8565b3480156200091957600080fd5b50620009316200092b36600462009429565b62005762565b6040516200044c9190620099d9565b3480156200094d57600080fd5b50620003f46200095f366004620096d0565b62005a4f565b3480156200097257600080fd5b50620003f46200098436600462009a56565b62005abc565b3480156200099757600080fd5b5060005462010000900460ff1662000603565b348015620009b757600080fd5b50620003f4620009c936600462009b0f565b6200695b565b348015620009dc57600080fd5b506200046d603c5481565b348015620009f457600080fd5b5062000a0c62000a063660046200979e565b62006b28565b6040516200044c9392919062009b6b565b34801562000a2a57600080fd5b50620003f462000a3c36600462009429565b62006d04565b34801562000a4f57600080fd5b506200046d60385481565b34801562000a6757600080fd5b5062000a7f62000a7936600462009429565b62006fc2565b604080519384529115156020840152908201526060016200044c565b34801562000aa857600080fd5b506200046d61271081565b34801562000ac057600080fd5b50620003f462000ad236600462009bc8565b620073f2565b34801562000ae557600080fd5b50620003f462000af736600462009cb1565b620075f4565b34801562000b0a57600080fd5b506200046d603b5481565b34801562000b2257600080fd5b506200046d60495481565b34801562000b3a57600080fd5b506200043862000b4c36600462009429565b620076ea565b34801562000b5f57600080fd5b506200046d60355481565b34801562000b7757600080fd5b506200046d603a5481565b34801562000b8f57600080fd5b506200046d62000ba13660046200967b565b805160208183018101805160468252928201919093012091525481565b34801562000bcb57600080fd5b506200046d603e5481565b34801562000be357600080fd5b5062000650601181565b34801562000bfa57600080fd5b506200046d62000c0c366004620096d0565b62007b01565b34801562000c1f57600080fd5b50620003f462000c3136600462009a56565b62007b72565b34801562000c4457600080fd5b506200046d60395481565b34801562000c5c57600080fd5b506200046d604a5481565b600054630100000090046001600160a01b0316331462000c9a576040516306fbb1e360e01b815260040160405180910390fd5b60005462010000900460ff1662000cc457604051636cd6020160e01b815260040160405180910390fd5b6000805462ff0000191681556040517f62451d457bc659158be6e6247f56ec1df424a5c7597f71c20c2bc44e0965c8f99190a1565b6001600160a01b038082166000908152604160209081526040808320815161016081018352815486168152600182015486169381019390935260028101549094169082015260038301546060820152600483018054929384939091608084019162000d649062009d17565b80601f016020809104026020016040519081016040528092919081815260200182805462000d929062009d17565b801562000de35780601f1062000db75761010080835404028352916020019162000de3565b820191906000526020600020905b81548152906001019060200180831162000dc557829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462000e0e9062009d17565b80601f016020809104026020016040519081016040528092919081815260200182805462000e3c9062009d17565b801562000e8d5780601f1062000e615761010080835404028352916020019162000e8d565b820191906000526020600020905b81548152906001019060200180831162000e6f57829003601f168201915b5050505050815260200160018201805462000ea89062009d17565b80601f016020809104026020016040519081016040528092919081815260200182805462000ed69062009d17565b801562000f275780601f1062000efb5761010080835404028352916020019162000f27565b820191906000526020600020905b81548152906001019060200180831162000f0957829003601f168201915b5050505050815260200160028201805462000f429062009d17565b80601f016020809104026020016040519081016040528092919081815260200182805462000f709062009d17565b801562000fc15780601f1062000f955761010080835404028352916020019162000fc1565b820191906000526020600020905b81548152906001019060200180831162000fa357829003601f168201915b5050505050815260200160038201805462000fdc9062009d17565b80601f01602080910402602001604051908101604052809291908181526020018280546200100a9062009d17565b80156200105b5780601f106200102f576101008083540402835291602001916200105b565b820191906000526020600020905b8154815290600101906020018083116200103d57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b815481526020019060010190808311620010e7575050509190925250509051949350505050565b33611000146200113a57604051630f22c43960e41b815261100060048201526024015b60405180910390fd5b6001600160a01b03808216600090815260436020908152604080832054841680845260418352818420825161016081018452815487168152600182015487169481019490945260028101549095169183019190915260038401546060830152600484018054919491608084019190620011b39062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620011e19062009d17565b8015620012325780601f10620012065761010080835404028352916020019162001232565b820191906000526020600020905b8154815290600101906020018083116200121457829003601f168201915b50505050508152602001600582016040518060800160405290816000820180546200125d9062009d17565b80601f01602080910402602001604051908101604052809291908181526020018280546200128b9062009d17565b8015620012dc5780601f10620012b057610100808354040283529160200191620012dc565b820191906000526020600020905b815481529060010190602001808311620012be57829003601f168201915b50505050508152602001600182018054620012f79062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620013259062009d17565b8015620013765780601f106200134a5761010080835404028352916020019162001376565b820191906000526020600020905b8154815290600101906020018083116200135857829003601f168201915b50505050508152602001600282018054620013919062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620013bf9062009d17565b8015620014105780601f10620013e45761010080835404028352916020019162001410565b820191906000526020600020905b815481529060010190602001808311620013f257829003601f168201915b505050505081526020016003820180546200142b9062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620014599062009d17565b8015620014aa5780601f106200147e57610100808354040283529160200191620014aa565b820191906000526020600020905b8154815290600101906020018083116200148c57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b81548152602001906001019080831162001536575050509190925250505060408101519091506001600160a01b031615806200157357508060e001515b156200163057604051611002903490600081818185875af1925050503d8060008114620015bd576040519150601f19603f3d011682016040523d82523d6000602084013e620015c2565b606091505b505050816001600160a01b03167ffc8bff675087dd2da069cc3fb517b9ed001e19750c0865241a5542dba1ba170d604051620016239060208082526011908201527024a72b20a624a22fab20a624a220aa27a960791b604082015260600190565b60405180910390a2505050565b60408181015160c0830151519151632f303ebb60e11b81526001600160401b0390921660048301526001600160a01b031690635e607d769034906024016000604051808303818588803b1580156200168757600080fd5b505af11580156200169c573d6000803e3d6000fd5b5050505050816001600160a01b03167fe34918ff1c7084970068b53fd71ad6d8b04e9f15d3886cbf006443e6cdc52ea634604051620016dd91815260200190565b60405180910390a26040808201519051633041949b60e01b815261200591633041949b91620017129190869060040162009d4d565b600060405180830381600087803b1580156200172d57600080fd5b505af115801562001742573d6000803e3d6000fd5b5050505050505b50565b33611001146200177457604051630f22c43960e41b8152611001600482015260240162001131565b60005462010000900460ff16156200179f57604051631785c68160e01b815260040160405180910390fd5b600060458383604051620017b592919062009d67565b908152604051908190036020019020546001600160a01b03169050620017dd603f8262007dc4565b620017fb5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b03811660009081526041602052604081209062001821603c4262009d8d565b604a546000828152604b602052604090205491925011620018555760405163bd52fcdb60e01b815260040160405180910390fd5b6000818152604b602052604081208054600192906200187690849062009db0565b909155505060405160469062001890908790879062009d67565b908152602001604051809103902054600014158015620018df575042603c60468787604051620018c292919062009d67565b908152602001604051809103902054620018dd919062009db0565b105b15620018fe57604051631898eb6b60e01b815260040160405180910390fd5b6000806200190e85600262007de7565b91509150816200193157604051631b919bb160e11b815260040160405180910390fd5b6002840154603c5460405163045bc4d160e41b815260048101919091526000916001600160a01b0316906345bc4d10906024016020604051808303816000875af115801562001984573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620019aa919062009dc6565b9050620019b8858362007e71565b856001600160a01b03167f6e9a2ee7aee95665e3a774a212eb11441b217e3e4656ab9563793094689aabb283836002604051620019f89392919062009df6565b60405180910390a26002850154604051633041949b60e01b815261200591633041949b9162001a36916001600160a01b0316908a9060040162009d4d565b600060405180830381600087803b15801562001a5157600080fd5b505af115801562001a66573d6000803e3d6000fd5b505050505050505050505050565b6060336120001462001a9e57604051630f22c43960e41b8152612000600482015260240162001131565b60005462010000900460ff161562001ac957604051631785c68160e01b815260040160405180910390fd5b6034805460ff19166001179055604080516020601f8501819004810282018101909252838152600091829162001b1a9187908790819084018382808284376000920191909152506200803892505050565b915091508062001b3d5760405163035ede3560e21b815260040160405180910390fd5b816060015160000362001b63575050604080516000815260208101909152905062001dd6565b606082015160405163e04c83a760e01b81526000916110049163e04c83a79162001b939160040190815260200190565b6020604051808303816000875af115801562001bb3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001bd9919062009e25565b90508062001c805782602001516001600160a01b031683600001516001600160a01b03167fa9084c89a291b43bc984e045671d394974730a159b9a826b577bb148ab504c3a8560600151600160405162001c3592919062009e45565b60405180910390a385858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092965062001dd695505050505050565b600062001c8d846200819b565b9050600081600481111562001ca65762001ca662009de0565b0362001cc8575050604080516000815260208101909152925062001dd6915050565b6040516000906110049047908381818185875af1925050503d806000811462001d0e576040519150601f19603f3d011682016040523d82523d6000602084013e62001d13565b606091505b505090508062001d36576040516312171d8360e31b815260040160405180910390fd5b84602001516001600160a01b031685600001516001600160a01b03167fa9084c89a291b43bc984e045671d394974730a159b9a826b577bb148ab504c3a87606001518560405162001d8992919062009e45565b60405180910390a387878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092985062001dd6975050505050505050565b6034805460ff191690559392505050565b600054630100000090046001600160a01b0316331462001e1a576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b0381166000818152600160208190526040808320805460ff1916909217909155517f7fd26be6fc92aff63f1f4409b2b2ddeb272a888031d7f55ec830485ec61941869190a250565b60005462010000900460ff161562001e9457604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161562001ec65760405163b1d02c3d60e01b815260040160405180910390fd5b8062001ed4603f8262007dc4565b62001ef25760405163056e881160e01b815260040160405180910390fd5b6001600160a01b0382166000908152604160205260409020600a81015460ff1662001f3057604051634b6b857d60e01b815260040160405180910390fd5b6036546002820154604051630913db4760e01b81526001600160a01b03868116600483015290911690630913db4790602401602060405180830381865afa15801562001f80573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001fa6919062009dc6565b101562001fc6576040516317b204bf60e11b815260040160405180910390fd5b4281600b0154111562001fec5760405163170cb76760e21b815260040160405180910390fd5b600a8101805460ff1916905560498054600191906000906200201090849062009e6c565b90915550506040516001600160a01b038416907f9390b453426557da5ebdc31f19a37753ca04addf656d32f35232211bb2af3f1990600090a2505050565b60005462010000900460ff16156200207957604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620020ab5760405163b1d02c3d60e01b815260040160405180910390fd5b33620020b9603f8262007dc4565b620020d75760405163056e881160e01b815260040160405180910390fd5b6001600160a01b038216620020ff57604051636520611b60e11b815260040160405180910390fd5b6001600160a01b03828116600090815260436020526040902054161515806200214057506001600160a01b03821660009081526047602052604090205460ff165b156200215f57604051631e6f587560e11b815260040160405180910390fd5b336000818152604160205260409020600c81015442906200218390603c9062009db0565b1115620021a357604051631f92cdbd60e11b815260040160405180910390fd5b80546001600160a01b039081166000908152604460209081526040808320429081905585548986166001600160a01b031991821681178855600c88019290925581855260439093528184208054958816959093168517909255519092917f6e4e747ca35203f16401c69805c7dd52fff67ef60b0ebc5c7fe16890530f223591a350505050565b600054630100000090046001600160a01b031633146200225c576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b038116600081815260016020526040808220805460ff19169055517fe0db3499b7fdc3da4cddff5f45d694549c19835e7f719fb5606d3ad1a5de40119190a250565b60005462010000900460ff1615620022d057604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620023025760405163b1d02c3d60e01b815260040160405180910390fd5b8162002310603f8262007dc4565b6200232e5760405163056e881160e01b815260040160405180910390fd5b816000036200235057604051639811e0c760e01b815260040160405180910390fd5b6001600160a01b0380841660009081526041602090815260408083208151610160810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180543394916080840191620023b89062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620023e69062009d17565b8015620024375780601f106200240b5761010080835404028352916020019162002437565b820191906000526020600020905b8154815290600101906020018083116200241957829003601f168201915b5050505050815260200160058201604051806080016040529081600082018054620024629062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620024909062009d17565b8015620024e15780601f10620024b557610100808354040283529160200191620024e1565b820191906000526020600020905b815481529060010190602001808311620024c357829003601f168201915b50505050508152602001600182018054620024fc9062009d17565b80601f01602080910402602001604051908101604052809291908181526020018280546200252a9062009d17565b80156200257b5780601f106200254f576101008083540402835291602001916200257b565b820191906000526020600020905b8154815290600101906020018083116200255d57829003601f168201915b50505050508152602001600282018054620025969062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620025c49062009d17565b8015620026155780601f10620025e95761010080835404028352916020019162002615565b820191906000526020600020905b815481529060010190602001808311620025f757829003601f168201915b50505050508152602001600382018054620026309062009d17565b80601f01602080910402602001604051908101604052809291908181526020018280546200265e9062009d17565b8015620026af5780601f106200268357610100808354040283529160200191620026af565b820191906000526020600020905b8154815290600101906020018083116200269157829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b8154815260200190600101908083116200273b575050509190925250505060408082015190516326ccee8b60e11b81526001600160a01b0385811660048301526024820188905292935060009290911690634d99dd16906044016020604051808303816000875af1158015620027b5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620027db919062009dc6565b9050826001600160a01b0316866001600160a01b03167f3aace7340547de7b9156593a7652dc07ee900cea3fd8f82cb6c9d38b4082980287846040516200282c929190918252602082015260400190565b60405180910390a3856001600160a01b0316836001600160a01b03160362002859576200285986620087f1565b6040808301519051633041949b60e01b815261200591633041949b91620028869190879060040162009d4d565b600060405180830381600087803b158015620028a157600080fd5b505af1158015620028b6573d6000803e3d6000fd5b50505050505050505050565b60005462010000900460ff1615620028ed57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff16156200291f5760405163b1d02c3d60e01b815260040160405180910390fd5b836200292d603f8262007dc4565b6200294b5760405163056e881160e01b815260040160405180910390fd5b8362002959603f8262007dc4565b620029775760405163056e881160e01b815260040160405180910390fd5b6034805460ff191660011790556000849003620029a757604051639811e0c760e01b815260040160405180910390fd5b846001600160a01b0316866001600160a01b031603620029da5760405163f0e3e62960e01b815260040160405180910390fd5b6001600160a01b038087166000908152604160209081526040808320815161016081018352815486168152600182015486169381019390935260028101549094169082015260038301546060820152600483018054339491608084019162002a429062009d17565b80601f016020809104026020016040519081016040528092919081815260200182805462002a709062009d17565b801562002ac15780601f1062002a955761010080835404028352916020019162002ac1565b820191906000526020600020905b81548152906001019060200180831162002aa357829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462002aec9062009d17565b80601f016020809104026020016040519081016040528092919081815260200182805462002b1a9062009d17565b801562002b6b5780601f1062002b3f5761010080835404028352916020019162002b6b565b820191906000526020600020905b81548152906001019060200180831162002b4d57829003601f168201915b5050505050815260200160018201805462002b869062009d17565b80601f016020809104026020016040519081016040528092919081815260200182805462002bb49062009d17565b801562002c055780601f1062002bd95761010080835404028352916020019162002c05565b820191906000526020600020905b81548152906001019060200180831162002be757829003601f168201915b5050505050815260200160028201805462002c209062009d17565b80601f016020809104026020016040519081016040528092919081815260200182805462002c4e9062009d17565b801562002c9f5780601f1062002c735761010080835404028352916020019162002c9f565b820191906000526020600020905b81548152906001019060200180831162002c8157829003601f168201915b5050505050815260200160038201805462002cba9062009d17565b80601f016020809104026020016040519081016040528092919081815260200182805462002ce89062009d17565b801562002d395780601f1062002d0d5761010080835404028352916020019162002d39565b820191906000526020600020905b81548152906001019060200180831162002d1b57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b81548152602001906001019080831162002dc557505050919092525050506001600160a01b0380891660009081526041602090815260408083208151610160810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180549495509193909291608084019162002e509062009d17565b80601f016020809104026020016040519081016040528092919081815260200182805462002e7e9062009d17565b801562002ecf5780601f1062002ea35761010080835404028352916020019162002ecf565b820191906000526020600020905b81548152906001019060200180831162002eb157829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462002efa9062009d17565b80601f016020809104026020016040519081016040528092919081815260200182805462002f289062009d17565b801562002f795780601f1062002f4d5761010080835404028352916020019162002f79565b820191906000526020600020905b81548152906001019060200180831162002f5b57829003601f168201915b5050505050815260200160018201805462002f949062009d17565b80601f016020809104026020016040519081016040528092919081815260200182805462002fc29062009d17565b8015620030135780601f1062002fe75761010080835404028352916020019162003013565b820191906000526020600020905b81548152906001019060200180831162002ff557829003601f168201915b505050505081526020016002820180546200302e9062009d17565b80601f01602080910402602001604051908101604052809291908181526020018280546200305c9062009d17565b8015620030ad5780601f106200308157610100808354040283529160200191620030ad565b820191906000526020600020905b8154815290600101906020018083116200308f57829003601f168201915b50505050508152602001600382018054620030c89062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620030f69062009d17565b8015620031475780601f106200311b5761010080835404028352916020019162003147565b820191906000526020600020905b8154815290600101906020018083116200312957829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b815481526020019060010190808311620031d35750505050508152505090508060e001518015620032165750876001600160a01b0316836001600160a01b031614155b156200323557604051636468920360e01b815260040160405180910390fd5b60408083015190516352e82ce560e11b81526001600160a01b038581166004830152602482018a9052600092169063a5d059ca906044016020604051808303816000875af11580156200328c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620032b2919062009dc6565b9050603754811015620032d85760405163dc6f0bdd60e01b815260040160405180910390fd5b896001600160a01b0316846001600160a01b03161480156200336d57506036546040808501519051630913db4760e01b81526001600160a01b038d8116600483015290911690630913db4790602401602060405180830381865afa15801562003345573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200336b919062009dc6565b105b156200338c576040516317b204bf60e11b815260040160405180910390fd5b6000612710603a5483620033a1919062009e82565b620033ad919062009d8d565b9050600083604001516001600160a01b03168260405160006040518083038185875af1925050503d806000811462003402576040519150601f19603f3d011682016040523d82523d6000602084013e62003407565b606091505b50509050806200342a576040516312171d8360e31b815260040160405180910390fd5b62003436828462009e6c565b60408086015190516317066a5760e21b81526001600160a01b03898116600483015292955060009290911690635c19a95c90869060240160206040518083038185885af11580156200348c573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190620034b3919062009dc6565b9050866001600160a01b03168c6001600160a01b03168e6001600160a01b03167ffdac6e81913996d95abcc289e90f2d8bd235487ce6fe6f821e7d21002a1915b48e858960405162003518939291909283526020830191909152604082015260600190565b60405180910390a46040805160028082526060820183526000926020830190803683370190505090508660400151816000815181106200355c576200355c62009e9c565b60200260200101906001600160a01b031690816001600160a01b03168152505085604001518160018151811062003597576200359762009e9c565b6001600160a01b0390921660209283029190910190910152604051634484077560e01b815261200590634484077590620035d89084908c9060040162009eb2565b600060405180830381600087803b158015620035f357600080fd5b505af115801562003608573d6000803e3d6000fd5b505050508a156200367a576120056001600160a01b031663e5ed5b1e898f6040518363ffffffff1660e01b81526004016200364592919062009d4d565b600060405180830381600087803b1580156200366057600080fd5b505af115801562003675573d6000803e3d6000fd5b505050505b50506034805460ff19169055505050505050505050505050565b60005462010000900460ff1615620036bf57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620036f15760405163b1d02c3d60e01b815260040160405180910390fd5b33620036ff603f8262007dc4565b6200371d5760405163056e881160e01b815260040160405180910390fd5b336000818152604160205260409020600c81015442906200374190603c9062009db0565b11156200376157604051631f92cdbd60e11b815260040160405180910390fd5b60098101546001600160401b03600160401b909104811690851611156200379b5760405163dc81db8560e01b815260040160405180910390fd5b60098101546000906001600160401b039081169086161015620037d9576009820154620037d39086906001600160401b031662009ede565b620037f3565b6009820154620037f3906001600160401b03168662009ede565b60098301546001600160401b039182169250600160801b9004168111156200382e5760405163dc81db8560e01b815260040160405180910390fd5b60098201805467ffffffffffffffff19166001600160401b03871690811790915542600c8401556040519081526001600160a01b038416907f78cdd96edf59e09cfd4d26ef6ef6c92d166effe6a40970c54821206d541932cb9060200160405180910390a25050505050565b60608060606000620038ad603f62008917565b90508086101562003f23578415620038c65784620038c8565b805b9450600085620038d9888462009e6c565b11620038f157620038eb878362009e6c565b620038f3565b855b9050806001600160401b038111156200391057620039106200959a565b6040519080825280602002602001820160405280156200393a578160200160208202803683370190505b509450806001600160401b038111156200395857620039586200959a565b60405190808252806020026020018201604052801562003982578160200160208202803683370190505b509350806001600160401b03811115620039a057620039a06200959a565b604051908082528060200260200182016040528015620039d557816020015b6060815260200190600190039081620039bf5790505b50925060005b8181101562003f20576000620039ff620039f6838b62009db0565b603f9062008922565b6001600160a01b0380821660009081526041602090815260408083208151610160810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180549495509193909291608084019162003a6c9062009d17565b80601f016020809104026020016040519081016040528092919081815260200182805462003a9a9062009d17565b801562003aeb5780601f1062003abf5761010080835404028352916020019162003aeb565b820191906000526020600020905b81548152906001019060200180831162003acd57829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462003b169062009d17565b80601f016020809104026020016040519081016040528092919081815260200182805462003b449062009d17565b801562003b955780601f1062003b695761010080835404028352916020019162003b95565b820191906000526020600020905b81548152906001019060200180831162003b7757829003601f168201915b5050505050815260200160018201805462003bb09062009d17565b80601f016020809104026020016040519081016040528092919081815260200182805462003bde9062009d17565b801562003c2f5780601f1062003c035761010080835404028352916020019162003c2f565b820191906000526020600020905b81548152906001019060200180831162003c1157829003601f168201915b5050505050815260200160028201805462003c4a9062009d17565b80601f016020809104026020016040519081016040528092919081815260200182805462003c789062009d17565b801562003cc95780601f1062003c9d5761010080835404028352916020019162003cc9565b820191906000526020600020905b81548152906001019060200180831162003cab57829003601f168201915b5050505050815260200160038201805462003ce49062009d17565b80601f016020809104026020016040519081016040528092919081815260200182805462003d129062009d17565b801562003d635780601f1062003d375761010080835404028352916020019162003d63565b820191906000526020600020905b81548152906001019060200180831162003d4557829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b81548152602001906001019080831162003def575050505050815250509050806000015188848151811062003e285762003e2862009e9c565b60200260200101906001600160a01b031690816001600160a01b0316815250508060e0015162003ec15780604001516001600160a01b03166315d1f8986040518163ffffffff1660e01b8152600401602060405180830381865afa15801562003e95573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003ebb919062009dc6565b62003ec4565b60005b87848151811062003ed95762003ed962009e9c565b602002602001018181525050806080015186848151811062003eff5762003eff62009e9c565b602002602001018190525050508062003f189062009f01565b9050620039db565b50505b92959194509250565b60005462010000900460ff161562003f5757604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161562003f895760405163b1d02c3d60e01b815260040160405180910390fd5b3362003f97603f8262007dc4565b1562003fb657604051635f28f62b60e01b815260040160405180910390fd5b6001600160a01b038881166000908152604360205260409020541615158062003ff757506001600160a01b03881660009081526047602052604090205460ff165b156200401657604051631e6f587560e11b815260040160405180910390fd5b60006001600160a01b0316604588886040516200403592919062009d67565b908152604051908190036020019020546001600160a01b03161415806200407f5750604887876040516200406b92919062009d67565b9081526040519081900360200190205460ff165b156200409e576040516311fdb94760e01b815260040160405180910390fd5b6000620040ac838062009f1d565b604051602001620040bf92919062009d67565b60408051601f1981840301815291815281516020928301206000818152604290935291205490915060ff1615620041095760405163c0bf414360e01b815260040160405180910390fd5b60006200411f670de0b6b3a76400003462009e6c565b905060365481101562004145576040516317b204bf60e11b815260040160405180910390fd5b6001600160a01b038a166200416d57604051636520611b60e11b815260040160405180910390fd5b6113886200418260408701602088016200977e565b6001600160401b03161180620041c85750620041a560408601602087016200977e565b6001600160401b0316620041bd60208701876200977e565b6001600160401b0316115b80620042075750620041e160408601602087016200977e565b6001600160401b0316620041fc60608701604088016200977e565b6001600160401b0316115b15620042265760405163dc81db8560e01b815260040160405180910390fd5b6200427162004236858062009f1d565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506200893092505050565b6200428f57604051635dba5ad760e01b815260040160405180910390fd5b6200429e838a8a8a8a62008ad2565b620042bc57604051631647e3cb60e11b815260040160405180910390fd5b60006200430a84620042cf878062009f1d565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525062008c0292505050565b905062004319603f8562008d03565b506000838152604260209081526040808320805460ff191660019081179091556001600160a01b0380891680865260419094529190932080548f83166001600160a01b031991821617825593810180548516909317909255600282018054918516919093161790915542600382015560048101620043998b8d8362009fc5565b508560058201620043ab82826200a08d565b5087905060098201620043bf82826200a1c6565b505042600c8201556001600160a01b038c81166000908152604360205260409081902080546001600160a01b031916928816929092179091555185906045906200440d908e908e9062009d67565b908152602001604051809103902060006101000a8154816001600160a01b0302191690836001600160a01b03160217905550816001600160a01b0316856001600160a01b03168d6001600160a01b03167faecd9fb95e79c75a3a1de93362c6be5fe6ab65770d8614be583884161cd8228d8e8e604051620044909291906200a296565b60405180910390a460408051848152602081018590526001600160a01b0387169182916000805160206200b59d833981519152910160405180910390a360408051670de0b6b3a7640000808252602082015261dead916001600160a01b038816916000805160206200b59d833981519152910160405180910390a3604051633041949b60e01b815261200590633041949b9062004534908590899060040162009d4d565b600060405180830381600087803b1580156200454f57600080fd5b505af115801562004564573d6000803e3d6000fd5b50505050505050505050505050505050565b604080516060810182526000808252602082018190529181019190915281620045a1603f8262007dc4565b620045bf5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b03831660009081526041602090815260409182902082516060810184526009909101546001600160401b038082168352600160401b8204811693830193909352600160801b90049091169181019190915291505b50919050565b6001600160a01b038082166000908152604160209081526040808320815161016081018352815486168152600182015486169381019390935260028101549094169082015260038301546060828101919091526004840180549194916080840191906200468d9062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620046bb9062009d17565b80156200470c5780601f10620046e0576101008083540402835291602001916200470c565b820191906000526020600020905b815481529060010190602001808311620046ee57829003601f168201915b5050505050815260200160058201604051806080016040529081600082018054620047379062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620047659062009d17565b8015620047b65780601f106200478a57610100808354040283529160200191620047b6565b820191906000526020600020905b8154815290600101906020018083116200479857829003601f168201915b50505050508152602001600182018054620047d19062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620047ff9062009d17565b8015620048505780601f10620048245761010080835404028352916020019162004850565b820191906000526020600020905b8154815290600101906020018083116200483257829003601f168201915b505050505081526020016002820180546200486b9062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620048999062009d17565b8015620048ea5780601f10620048be57610100808354040283529160200191620048ea565b820191906000526020600020905b815481529060010190602001808311620048cc57829003601f168201915b50505050508152602001600382018054620049059062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620049339062009d17565b8015620049845780601f10620049585761010080835404028352916020019162004984565b820191906000526020600020905b8154815290600101906020018083116200496657829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b81548152602001906001019080831162004a105750505091909252505050608001519392505050565b336110011462004a6157604051630f22c43960e41b8152611001600482015260240162001131565b6001600160a01b038082166000908152604360205260409020541662004a89603f8262007dc4565b62004aa75760405163056e881160e01b815260040160405180910390fd5b6001600160a01b038181166000908152604160205260408082206002810154603b54925163045bc4d160e41b81526004810193909352909316906345bc4d10906024016020604051808303816000875af115801562004b0a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004b30919062009dc6565b90506000603d544262004b44919062009db0565b905062004b52838262007e71565b836001600160a01b03167f6e9a2ee7aee95665e3a774a212eb11441b217e3e4656ab9563793094689aabb28284600160405162004b929392919062009df6565b60405180910390a26002830154604051633041949b60e01b815261200591633041949b9162004bd0916001600160a01b031690889060040162009d4d565b600060405180830381600087803b15801562004beb57600080fd5b505af115801562004c00573d6000803e3d6000fd5b505050505050505050565b600054610100900460ff161580801562004c2c5750600054600160ff909116105b8062004c485750303b15801562004c48575060005460ff166001145b62004cad5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840162001131565b6000805460ff19166001179055801562004cd1576000805461ff0019166101001790555b33411462004cf25760405163022d8c9560e31b815260040160405180910390fd5b3a1562004d12576040516383f1b1d360e01b815260040160405180910390fd5b611388603555686c6b935b8bbd400000603655670de0b6b3a7640000603755602d603855607860398190556002603a819055678ac7230489e80000603b55680ad78ebc5ac6200000603c55603d9190915560b4603e55604a556040805160c0810190915260a080825260609182916200b5bd602083013980602001905181019062004d9e91906200a2d2565b9150604051806101e001604052806101c081526020016200b65d6101c0913980602001905181019062004dd291906200a376565b905060005b825181101562004e415760016047600085848151811062004dfc5762004dfc62009e9c565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905562004e398162009f01565b905062004dd7565b5060005b815181101562004eb2576001604883838151811062004e685762004e6862009e9c565b602002602001015160405162004e7f91906200a473565b908152604051908190036020019020805491151560ff1990921691909117905562004eaa8162009f01565b905062004e45565b5062004ed273df87f0e2b8519ea2dd4abd8b639cdd628497ed2562008d1a565b5050801562001749576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b336120001462004f4557604051630f22c43960e41b8152612000600482015260240162001131565b7faa5ba621c8b3d7d05bb9e51a7506108251d4d5dbe542ca66fc7bb52aacb02b6583838360405162004f7a939291906200a491565b60405180910390a1505050565b600054630100000090046001600160a01b0316331462004fba576040516306fbb1e360e01b815260040160405180910390fd5b60005462010000900460ff161562004fe557604051631785c68160e01b815260040160405180910390fd5b6000805462ff00001916620100001781556040517f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e7529190a1565b60006200502e603f8462007dc4565b6200504c5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b0383811660009081526041602052604090819020600201549051636bbf224960e01b815260048101859052911690636bbf2249906024015b602060405180830381865afa158015620050a9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620050cf919062009dc6565b90505b92915050565b60005462010000900460ff16156200510357604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620051355760405163b1d02c3d60e01b815260040160405180910390fd5b8162005143603f8262007dc4565b620051615760405163056e881160e01b815260040160405180910390fd5b6037543490811015620051875760405163dc6f0bdd60e01b815260040160405180910390fd5b6001600160a01b0380851660009081526041602090815260408083208151610160810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180543394916080840191620051ef9062009d17565b80601f01602080910402602001604051908101604052809291908181526020018280546200521d9062009d17565b80156200526e5780601f1062005242576101008083540402835291602001916200526e565b820191906000526020600020905b8154815290600101906020018083116200525057829003601f168201915b5050505050815260200160058201604051806080016040529081600082018054620052999062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620052c79062009d17565b8015620053185780601f10620052ec5761010080835404028352916020019162005318565b820191906000526020600020905b815481529060010190602001808311620052fa57829003601f168201915b50505050508152602001600182018054620053339062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620053619062009d17565b8015620053b25780601f106200538657610100808354040283529160200191620053b2565b820191906000526020600020905b8154815290600101906020018083116200539457829003601f168201915b50505050508152602001600282018054620053cd9062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620053fb9062009d17565b80156200544c5780601f1062005420576101008083540402835291602001916200544c565b820191906000526020600020905b8154815290600101906020018083116200542e57829003601f168201915b50505050508152602001600382018054620054679062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620054959062009d17565b8015620054e65780601f10620054ba57610100808354040283529160200191620054e6565b820191906000526020600020905b815481529060010190602001808311620054c857829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b815481526020019060010190808311620055725750505050508152505090508060e001518015620055b55750856001600160a01b0316826001600160a01b031614155b15620055d457604051636468920360e01b815260040160405180910390fd5b60408082015190516317066a5760e21b81526001600160a01b0384811660048301526000921690635c19a95c90869060240160206040518083038185885af115801562005625573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906200564c919062009dc6565b9050826001600160a01b0316876001600160a01b03166000805160206200b59d83398151915283876040516200568c929190918252602082015260400190565b60405180910390a36040808301519051633041949b60e01b815261200591633041949b91620056c19190879060040162009d4d565b600060405180830381600087803b158015620056dc57600080fd5b505af1158015620056f1573d6000803e3d6000fd5b50505050851562001742576040516372f6ad8f60e11b81526120059063e5ed5b1e90620057259086908b9060040162009d4d565b600060405180830381600087803b1580156200574057600080fd5b505af115801562005755573d6000803e3d6000fd5b5050505050505050505050565b6200578e6040518060800160405280606081526020016060815260200160608152602001606081525090565b816200579c603f8262007dc4565b620057ba5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b03831660009081526041602052604090819020815160808101909252600501805482908290620057f19062009d17565b80601f01602080910402602001604051908101604052809291908181526020018280546200581f9062009d17565b8015620058705780601f10620058445761010080835404028352916020019162005870565b820191906000526020600020905b8154815290600101906020018083116200585257829003601f168201915b505050505081526020016001820180546200588b9062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620058b99062009d17565b80156200590a5780601f10620058de576101008083540402835291602001916200590a565b820191906000526020600020905b815481529060010190602001808311620058ec57829003601f168201915b50505050508152602001600282018054620059259062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620059539062009d17565b8015620059a45780601f106200597857610100808354040283529160200191620059a4565b820191906000526020600020905b8154815290600101906020018083116200598657829003601f168201915b50505050508152602001600382018054620059bf9062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620059ed9062009d17565b801562005a3e5780601f1062005a125761010080835404028352916020019162005a3e565b820191906000526020600020905b81548152906001019060200180831162005a2057829003601f168201915b505050505081525050915050919050565b60005462010000900460ff161562005a7a57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161562005aac5760405163b1d02c3d60e01b815260040160405180910390fd5b62005ab8828262008db3565b5050565b336110071462005ae457604051630f22c43960e41b8152611007600482015260240162001131565b62005b516040518060400160405280601081526020016f1d1c985b9cd9995c91d85cd31a5b5a5d60821b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ebf9050565b1562005c0c576020811462005b835783838383604051630a5a604160e01b81526004016200113194939291906200a4b0565b604080516020601f840181900481028201810190925282815260009162005bc691858580838501838280828437600092019190915250929392505062008f1c9050565b90506108fc81108062005bda575061271081115b1562005c035784848484604051630a5a604160e01b81526004016200113194939291906200a4b0565b60355562006916565b62005c7d6040518060400160405280601481526020017336b4b729b2b6332232b632b3b0ba34b7b721272160611b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ebf9050565b1562005d47576020811462005caf5783838383604051630a5a604160e01b81526004016200113194939291906200a4b0565b604080516020601f840181900481028201810190925282815260009162005cf291858580838501838280828437600092019190915250929392505062008f1c9050565b9050683635c9adc5dea0000081108062005d15575069152d02c7e14af680000081115b1562005d3e5784848484604051630a5a604160e01b81526004016200113194939291906200a4b0565b60365562006916565b62005dba604051806040016040528060168152602001756d696e44656c65676174696f6e424e424368616e676560501b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ebf9050565b1562005e81576020811462005dec5783838383604051630a5a604160e01b81526004016200113194939291906200a4b0565b604080516020601f840181900481028201810190925282815260009162005e2f91858580838501838280828437600092019190915250929392505062008f1c9050565b905067016345785d8a000081108062005e4f5750678ac7230489e8000081115b1562005e785784848484604051630a5a604160e01b81526004016200113194939291906200a4b0565b60375562006916565b62005ef2604051806040016040528060148152602001736d6178456c656374656456616c696461746f727360601b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ebf9050565b1562005faa576020811462005f245783838383604051630a5a604160e01b81526004016200113194939291906200a4b0565b604080516020601f840181900481028201810190925282815260009162005f6791858580838501838280828437600092019190915250929392505062008f1c9050565b905080158062005f7857506101f481115b1562005fa15784848484604051630a5a604160e01b81526004016200113194939291906200a4b0565b60385562006916565b620060136040518060400160405280600c81526020016b1d5b989bdb9914195c9a5bd960a21b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ebf9050565b15620060d05760208114620060455783838383604051630a5a604160e01b81526004016200113194939291906200a4b0565b604080516020601f84018190048102820181019092528281526000916200608891858580838501838280828437600092019190915250929392505062008f1c9050565b90506203f4808110806200609e575062278d0081115b15620060c75784848484604051630a5a604160e01b81526004016200113194939291906200a4b0565b60395562006916565b6200613e60405180604001604052806011815260200170726564656c65676174654665655261746560781b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ebf9050565b15620061eb5760208114620061705783838383604051630a5a604160e01b81526004016200113194939291906200a4b0565b604080516020601f8401819004810282018101909252828152600091620061b391858580838501838280828437600092019190915250929392505062008f1c9050565b90506064811115620061e25784848484604051630a5a604160e01b81526004016200113194939291906200a4b0565b603a5562006916565b6200625b60405180604001604052806013815260200172191bdddb9d1a5b5954db185cda105b5bdd5b9d606a1b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ebf9050565b156200631c57602081146200628d5783838383604051630a5a604160e01b81526004016200113194939291906200a4b0565b604080516020601f8401819004810282018101909252828152600091620062d091858580838501838280828437600092019190915250929392505062008f1c9050565b9050674563918244f40000811080620062ea5750603c5481115b15620063135784848484604051630a5a604160e01b81526004016200113194939291906200a4b0565b603b5562006916565b6200638a6040518060400160405280601181526020017019995b1bdb9e54db185cda105b5bdd5b9d607a1b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ebf9050565b156200644d5760208114620063bc5783838383604051630a5a604160e01b81526004016200113194939291906200a4b0565b604080516020601f8401819004810282018101909252828152600091620063ff91858580838501838280828437600092019190915250929392505062008f1c9050565b905068056bc75e2d631000008110806200641b5750603b548111155b15620064445784848484604051630a5a604160e01b81526004016200113194939291906200a4b0565b603c5562006916565b620064ba6040518060400160405280601081526020016f646f776e74696d654a61696c54696d6560801b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ebf9050565b15620065775760208114620064ec5783838383604051630a5a604160e01b81526004016200113194939291906200a4b0565b604080516020601f84018190048102820181019092528281526000916200652f91858580838501838280828437600092019190915250929392505062008f1c9050565b90506202a300811080620065455750603e548110155b156200656e5784848484604051630a5a604160e01b81526004016200113194939291906200a4b0565b603d5562006916565b620065e26040518060400160405280600e81526020016d66656c6f6e794a61696c54696d6560901b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ebf9050565b156200669f5760208114620066145783838383604051630a5a604160e01b81526004016200113194939291906200a4b0565b604080516020601f84018190048102820181019092528281526000916200665791858580838501838280828437600092019190915250929392505062008f1c9050565b9050620d2f008110806200666d5750603d548111155b15620066965784848484604051630a5a604160e01b81526004016200113194939291906200a4b0565b603e5562006916565b620067196040518060400160405280601c81526020017f6d617846656c6f6e794265747765656e42726561746865426c6f636b0000000081525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ebf9050565b15620067c557602081146200674b5783838383604051630a5a604160e01b81526004016200113194939291906200a4b0565b604080516020601f84018190048102820181019092528281526000916200678e91858580838501838280828437600092019190915250929392505062008f1c9050565b905080600003620067bc5784848484604051630a5a604160e01b81526004016200113194939291906200a4b0565b604a5562006916565b620068336040518060400160405280601181526020017039ba30b5b2a43ab1283937ba32b1ba37b960791b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ebf9050565b15620068f35760148114620068655783838383604051630a5a604160e01b81526004016200113194939291906200a4b0565b6000620068ad601484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008f1c9050565b90506001600160a01b038116620068e15784848484604051630a5a604160e01b81526004016200113194939291906200a4b0565b620068ec8162008f21565b5062006916565b838383836040516325ee20d560e21b81526004016200113194939291906200a4b0565b7ff1ce9b2cbf50eeb05769a29e2543fd350cab46894a7dd9978a12d534bb20e633848484846040516200694d94939291906200a4b0565b60405180910390a150505050565b60005462010000900460ff16156200698657604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620069b85760405163b1d02c3d60e01b815260040160405180910390fd5b816000816001600160401b03811115620069d657620069d66200959a565b60405190808252806020026020018201604052801562006a00578160200160208202803683370190505b5090506000805b8381101562006afe5762006a4987878381811062006a295762006a2962009e9c565b905060200201602081019062006a40919062009429565b603f9062007dc4565b62006a675760405163056e881160e01b815260040160405180910390fd5b6041600088888481811062006a805762006a8062009e9c565b905060200201602081019062006a97919062009429565b6001600160a01b039081168252602082019290925260400160002060020154845191169250829084908390811062006ad35762006ad362009e9c565b6001600160a01b039092166020928302919091019091015262006af68162009f01565b905062006a07565b50604051634484077560e01b81526120059063448407759062002886908590889060040162009eb2565b606080600062006b39603f62008917565b90508085101562006cfd57831562006b52578362006b54565b805b935060008462006b65878462009e6c565b1162006b7d5762006b77868362009e6c565b62006b7f565b845b9050806001600160401b0381111562006b9c5762006b9c6200959a565b60405190808252806020026020018201604052801562006bc6578160200160208202803683370190505b509350806001600160401b0381111562006be45762006be46200959a565b60405190808252806020026020018201604052801562006c0e578160200160208202803683370190505b50925060005b8181101562006cfa5762006c2d620039f6828962009db0565b85828151811062006c425762006c4262009e9c565b60200260200101906001600160a01b031690816001600160a01b0316815250506041600086838151811062006c7b5762006c7b62009e9c565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060020160009054906101000a90046001600160a01b031684828151811062006ccf5762006ccf62009e9c565b6001600160a01b039092166020928302919091019091015262006cf28162009f01565b905062006c14565b50505b9250925092565b336110011462006d2c57604051630f22c43960e41b8152611001600482015260240162001131565b60005462010000900460ff161562006d5757604051631785c68160e01b815260040160405180910390fd5b6001600160a01b038082166000908152604360205260409020541662006d7f603f8262007dc4565b62006d9d5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b03811660009081526041602052604081209062006dc3603c4262009d8d565b604a546000828152604b60205260409020549192501162006df75760405163bd52fcdb60e01b815260040160405180910390fd5b6000818152604b6020526040812080546001929062006e1890849062009db0565b90915550506001600160a01b0384166000908152604460205260409020541580159062006e6b57506001600160a01b038416600090815260446020526040902054429062006e6990603c9062009db0565b105b1562006e8a576040516330abb81d60e21b815260040160405180910390fd5b60008062006e9a85600062007de7565b915091508162006ebd57604051631b919bb160e11b815260040160405180910390fd5b6002840154603c5460405163045bc4d160e41b815260048101919091526000916001600160a01b0316906345bc4d10906024016020604051808303816000875af115801562006f10573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062006f36919062009dc6565b905062006f44858362007e71565b856001600160a01b03167f6e9a2ee7aee95665e3a774a212eb11441b217e3e4656ab9563793094689aabb28383600060405162006f849392919062009df6565b60405180910390a26002850154604051633041949b60e01b815261200591633041949b9162005725916001600160a01b0316908a9060040162009d4d565b6001600160a01b0380821660009081526041602090815260408083208151610160810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180549293849384938493909291608084019190620070339062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620070619062009d17565b8015620070b25780601f106200708657610100808354040283529160200191620070b2565b820191906000526020600020905b8154815290600101906020018083116200709457829003601f168201915b5050505050815260200160058201604051806080016040529081600082018054620070dd9062009d17565b80601f01602080910402602001604051908101604052809291908181526020018280546200710b9062009d17565b80156200715c5780601f1062007130576101008083540402835291602001916200715c565b820191906000526020600020905b8154815290600101906020018083116200713e57829003601f168201915b50505050508152602001600182018054620071779062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620071a59062009d17565b8015620071f65780601f10620071ca57610100808354040283529160200191620071f6565b820191906000526020600020905b815481529060010190602001808311620071d857829003601f168201915b50505050508152602001600282018054620072119062009d17565b80601f01602080910402602001604051908101604052809291908181526020018280546200723f9062009d17565b8015620072905780601f10620072645761010080835404028352916020019162007290565b820191906000526020600020905b8154815290600101906020018083116200727257829003601f168201915b50505050508152602001600382018054620072ab9062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620072d99062009d17565b80156200732a5780601f10620072fe576101008083540402835291602001916200732a565b820191906000526020600020905b8154815290600101906020018083116200730c57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b815481526020019060010190808311620073b65750505091909252505050606081015160e0820151610100909201519097919650945092505050565b60005462010000900460ff16156200741d57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff16156200744f5760405163b1d02c3d60e01b815260040160405180910390fd5b336200745d603f8262007dc4565b6200747b5760405163056e881160e01b815260040160405180910390fd5b336000818152604160205260409020600c81015442906200749f90603c9062009db0565b1115620074bf57604051631f92cdbd60e11b815260040160405180910390fd5b600581018054620074d09062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620074fe9062009d17565b80156200754f5780601f1062007523576101008083540402835291602001916200754f565b820191906000526020600020905b8154815290600101906020018083116200753157829003601f168201915b50505082875250859160058401915081906200756c90826200a4db565b50602082015160018201906200758390826200a4db565b50604082015160028201906200759a90826200a4db565b5060608201516003820190620075b190826200a4db565b505042600c830155506040516001600160a01b038316907f85d6366b336ade7f106987ec7a8eac1e8799e508aeab045a39d2f63e0dc969d990600090a250505050565b60005462010000900460ff16156200761f57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620076515760405163b1d02c3d60e01b815260040160405180910390fd5b82811462007672576040516341abc80160e01b815260040160405180910390fd5b60005b83811015620076e357620076d085858381811062007697576200769762009e9c565b9050602002016020810190620076ae919062009429565b848484818110620076c357620076c362009e9c565b9050602002013562008db3565b620076db8162009f01565b905062007675565b5050505050565b6001600160a01b0380821660009081526041602090815260408083208151610160810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180549293849390916080840191620077559062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620077839062009d17565b8015620077d45780601f10620077a857610100808354040283529160200191620077d4565b820191906000526020600020905b815481529060010190602001808311620077b657829003601f168201915b5050505050815260200160058201604051806080016040529081600082018054620077ff9062009d17565b80601f01602080910402602001604051908101604052809291908181526020018280546200782d9062009d17565b80156200787e5780601f1062007852576101008083540402835291602001916200787e565b820191906000526020600020905b8154815290600101906020018083116200786057829003601f168201915b50505050508152602001600182018054620078999062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620078c79062009d17565b8015620079185780601f10620078ec5761010080835404028352916020019162007918565b820191906000526020600020905b815481529060010190602001808311620078fa57829003601f168201915b50505050508152602001600282018054620079339062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620079619062009d17565b8015620079b25780601f106200798657610100808354040283529160200191620079b2565b820191906000526020600020905b8154815290600101906020018083116200799457829003601f168201915b50505050508152602001600382018054620079cd9062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620079fb9062009d17565b801562007a4c5780601f1062007a205761010080835404028352916020019162007a4c565b820191906000526020600020905b81548152906001019060200180831162007a2e57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b81548152602001906001019080831162007ad85750505091909252505050604001519392505050565b600062007b10603f8462007dc4565b62007b2e5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b038381166000908152604160205260409081902060020154905163aa1966cd60e01b81526004810185905291169063aa1966cd906024016200508b565b60005462010000900460ff161562007b9d57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161562007bcf5760405163b1d02c3d60e01b815260040160405180910390fd5b3362007bdd603f8262007dc4565b62007bfb5760405163056e881160e01b815260040160405180910390fd5b3362007c0b818787878762008ad2565b62007c2957604051631647e3cb60e11b815260040160405180910390fd5b60006001600160a01b03166045878760405162007c4892919062009d67565b908152604051908190036020019020546001600160a01b031614158062007c9257506048868660405162007c7e92919062009d67565b9081526040519081900360200190205460ff165b1562007cb1576040516311fdb94760e01b815260040160405180910390fd5b6001600160a01b0381166000908152604160205260409020600c810154429062007cde90603c9062009db0565b111562007cfe57604051631f92cdbd60e11b815260040160405180910390fd5b4260468260040160405162007d1491906200a5a3565b908152604051908190036020019020556004810162007d3587898362009fc5565b5042600c820155604051829060459062007d53908a908a9062009d67565b90815260405190819003602001812080546001600160a01b039384166001600160a01b0319909116179055908316907f783156582145bd0ff7924fae6953ba054cf1233eb60739a200ddb10de068ff0d9062007db3908a908a906200a296565b60405180910390a250505050505050565b6001600160a01b03811660009081526001830160205260408120541515620050cf565b6000806000848460405160200162007e019291906200a621565b60408051601f1981840301815291815281516020928301206000818152604c9093529120549091504281111562007e415760008093509350505062007e6a565b603e5462007e50904262009db0565b6000928352604c6020526040909220829055506001925090505b9250929050565b8154604051631507fdb760e11b81526001600160a01b03909116600482015261100090632a0ffb6e90602401600060405180830381600087803b15801562007eb857600080fd5b505af115801562007ecd573d6000803e3d6000fd5b505050506000600162007ee1603f62008917565b62007eed919062009e6c565b604954108015915062007fab5760405163d31f968d60e01b81526110006004820152600860248201526120009063d31f968d90604401602060405180830381865afa15801562007f41573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062007f67919062009e25565b62007fab5760018301546040516001600160a01b03909116907f2afdc18061ac21cff7d9f11527ab9c8dec6fabd4edf6f894ed634bebd6a20d4590600090a2505050565b82600b015482111562007fc057600b83018290555b600a83015460ff166200803357600a8301805460ff191660019081179091556049805460009062007ff390849062009db0565b909155505060018301546040516001600160a01b03909116907f4905ac32602da3fb8b4b7b00c285e5fc4c6c2308cc908b4a1e4e9625a29c90a390600090a25b505050565b60408051608080820183526000808352602080840182905283850182905260608085018390528551938401865282845283820183905283860183905283018290528451808601865282815281018290528451808601909552855185528581019085015291928290620080aa9062008f8d565b90506000805b620080bb8362009000565b156200818e5780600003620080f057620080df620080d98462009026565b6200908a565b6001600160a01b031684526200817b565b806001036200811c5762008108620080d98462009026565b6001600160a01b031660208501526200817b565b80600203620081485762008134620080d98462009026565b6001600160a01b031660408501526200817b565b80600303620081755762008166620081608462009026565b620090a2565b6060850152600191506200817b565b6200818e565b620081868162009f01565b9050620080b0565b5091959194509092505050565b6020808201516001600160a01b031660009081526001909152604081205460ff1680620081d3575060208201516001600160a01b0316155b15620081e157506004919050565b8151620081f190603f9062007dc4565b620081fe57506002919050565b81516001600160a01b039081166000908152604160209081526040808320815161016081018352815486168152600182015486169381019390935260028101549094169082015260038301546060820152600483018054929391926080840191906200826a9062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620082989062009d17565b8015620082e95780601f10620082bd57610100808354040283529160200191620082e9565b820191906000526020600020905b815481529060010190602001808311620082cb57829003601f168201915b5050505050815260200160058201604051806080016040529081600082018054620083149062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620083429062009d17565b8015620083935780601f10620083675761010080835404028352916020019162008393565b820191906000526020600020905b8154815290600101906020018083116200837557829003601f168201915b50505050508152602001600182018054620083ae9062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620083dc9062009d17565b80156200842d5780601f1062008401576101008083540402835291602001916200842d565b820191906000526020600020905b8154815290600101906020018083116200840f57829003601f168201915b50505050508152602001600282018054620084489062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620084769062009d17565b8015620084c75780601f106200849b57610100808354040283529160200191620084c7565b820191906000526020600020905b815481529060010190602001808311620084a957829003601f168201915b50505050508152602001600382018054620084e29062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620085109062009d17565b8015620085615780601f10620085355761010080835404028352916020019162008561565b820191906000526020600020905b8154815290600101906020018083116200854357829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b815481526020019060010190808311620085ed5750505050508152505090508060e00151801562008638575082600001516001600160a01b031683602001516001600160a01b031614155b15620086475750600392915050565b6040808201516060850151602086015192516317066a5760e21b81526001600160a01b03938416600482015260009390921691635c19a95c919060240160206040518083038185885af1158015620086a3573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190620086ca919062009dc6565b905083602001516001600160a01b031684600001516001600160a01b03166000805160206200b59d83398151915283876060015160405162008716929190918252602082015260400190565b60405180910390a383602001516001600160a01b031684600001516001600160a01b03167f607b17598da6bdca05650a2fc08bd2bc8e38c3236806a0fa8e0daabc1d6cb1d883876060015160405162008779929190918252602082015260400190565b60405180910390a360408083015160208601519151633041949b60e01b815261200592633041949b92620087b39290919060040162009d4d565b600060405180830381600087803b158015620087ce57600080fd5b505af1158015620087e3573d6000803e3d6000fd5b506000979650505050505050565b6001600160a01b0381166000908152604160205260409020600a81015460ff16156200881b575050565b6036546002820154604051630913db4760e01b81526001600160a01b03858116600483015290911690630913db4790602401602060405180830381865afa1580156200886b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062008891919062009dc6565b101562005ab857620088b381603d5442620088ad919062009db0565b62007e71565b80546040516335409f7f60e01b81526001600160a01b039091166004820152611000906335409f7f90602401600060405180830381600087803b158015620088fa57600080fd5b505af11580156200890f573d6000803e3d6000fd5b505050505050565b6000620050d2825490565b6000620050cf83836200917a565b60008082905060038151108062008948575060098151115b15620089575750600092915050565b6041816000815181106200896f576200896f62009e9c565b016020015160f81c1080620089a15750605a8160008151811062008997576200899762009e9c565b016020015160f81c115b15620089b05750600092915050565b60015b815181101562008ac8576030828281518110620089d457620089d462009e9c565b016020015160f81c108062008a0557506039828281518110620089fb57620089fb62009e9c565b016020015160f81c115b801562008a555750604182828151811062008a245762008a2462009e9c565b016020015160f81c108062008a555750605a82828151811062008a4b5762008a4b62009e9c565b016020015160f81c115b801562008aa55750606182828151811062008a745762008a7462009e9c565b016020015160f81c108062008aa55750607a82828151811062008a9b5762008a9b62009e9c565b016020015160f81c115b1562008ab5575060009392505050565b62008ac08162009f01565b9050620089b3565b5060019392505050565b600060308414158062008ae6575060608214155b1562008af55750600062008bf9565b60008686864660405160200162008b1094939291906200a65f565b60408051808303601f1901815282825280516020918201208184528383019092529092506000919060208201818036833701905050905081602082015260008186868a8a60405160200162008b6a9594939291906200a68c565b60408051808303601f190181526001808452838301909252925060009190602082018180368337019050509050815160016020830182602086016066600019fa62008bb457600080fd5b5060008160008151811062008bcd5762008bcd62009e9c565b016020015160f81c90506001811462008bef5760009550505050505062008bf9565b6001955050505050505b95945050505050565b60008061200361dead60405162008c199062009405565b6001600160a01b03928316815291166020820152606060408201819052600090820152608001604051809103906000f08015801562008c5c573d6000803e3d6000fd5b509050806001600160a01b031663f399e22e3486866040518463ffffffff1660e01b815260040162008c909291906200a6c4565b6000604051808303818588803b15801562008caa57600080fd5b505af115801562008cbf573d6000803e3d6000fd5b50506040516001600160a01b038086169450881692507fd481492e4e93bb36b4c12a5af93f03be3bf04b454dfbc35dd2663fa26f44d5b09150600090a39392505050565b6000620050cf836001600160a01b038416620091a7565b600054610100900460ff1662008d875760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840162001131565b600080546001600160a01b039092166301000000026301000000600160b81b0319909216919091179055565b8162008dc1603f8262007dc4565b62008ddf5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b03838116600090815260416020526040808220600201549051635569f64b60e11b8152336004820152602481018690529192169063aad3ec96906044016020604051808303816000875af115801562008e43573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062008e69919062009dc6565b9050336001600160a01b0316846001600160a01b03167ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd39926838360405162008eb191815260200190565b60405180910390a350505050565b60008160405160200162008ed491906200a473565b604051602081830303815290604052805190602001208360405160200162008efd91906200a473565b6040516020818303038152906040528051906020012014905092915050565b015190565b600080546040516001600160a01b0380851693630100000090930416917f44fc1b38a4abaa91ebd1b628a5b259a698f86238c8217d68f516e87769c60c0b91a3600080546001600160a01b039092166301000000026301000000600160b81b0319909216919091179055565b604080516080810182526000918101828152606082018390528152602081019190915262008fbb82620091f9565b62008fc557600080fd5b600062008fd683602001516200922c565b836020015162008fe7919062009db0565b6040805180820190915293845260208401525090919050565b80518051602082015160009291620090189162009db0565b836020015110915050919050565b6040805180820190915260008082526020820152620090458262009000565b6200904f57600080fd5b602082015160006200906182620092bb565b90506200906f818362009db0565b60209485015260408051808201909152908152928301525090565b80516000906015146200909c57600080fd5b620050d2825b805160009015801590620090b857508151602110155b620090c257600080fd5b6000620090d383602001516200922c565b905080836000015110156200912b5760405162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015260640162001131565b82516000906200913d90839062009e6c565b905060008083866020015162009154919062009db0565b90508051915060208310156200917157826020036101000a820491505b50949350505050565b600082600001828154811062009194576200919462009e9c565b9060005260206000200154905092915050565b6000818152600183016020526040812054620091f057508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155620050d2565b506000620050d2565b805160009081036200920d57506000919050565b6020820151805160001a9060c082101562008ac8575060009392505050565b8051600090811a6080811015620092465750600092915050565b60b881108062009263575060c0811080159062009263575060f881105b15620092725750600192915050565b60c0811015620092ad576200928a600160b86200a6ea565b620092999060ff168262009e6c565b620092a690600162009db0565b9392505050565b6200928a600160f86200a6ea565b80516000908190811a6080811015620092d85760019150620093fe565b60b88110156200930457620092ef60808262009e6c565b620092fc90600162009db0565b9150620093fe565b60c08110156200937d57600060b78203600186019550806020036101000a865104915060018101820193505080831015620093765760405162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015260640162001131565b50620093fe565b60f88110156200939457620092ef60c08262009e6c565b600060f78203600186019550806020036101000a865104915060018101820193505080831015620093fc5760405162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015260640162001131565b505b5092915050565b610e96806200a70783390190565b6001600160a01b03811681146200174957600080fd5b6000602082840312156200943c57600080fd5b8135620092a68162009413565b60008083601f8401126200945c57600080fd5b5081356001600160401b038111156200947457600080fd5b60208301915083602082850101111562007e6a57600080fd5b60008060208385031215620094a157600080fd5b82356001600160401b03811115620094b857600080fd5b620094c68582860162009449565b90969095509350505050565b600080600060408486031215620094e857600080fd5b833560ff81168114620094fa57600080fd5b925060208401356001600160401b038111156200951657600080fd5b620095248682870162009449565b9497909650939450505050565b60005b838110156200954e57818101518382015260200162009534565b50506000910152565b600081518084526200957181602086016020860162009531565b601f01601f19169290920160200192915050565b602081526000620050cf602083018462009557565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b0381118282101715620095d557620095d56200959a565b60405290565b604051601f8201601f191681016001600160401b03811182821017156200960657620096066200959a565b604052919050565b60006001600160401b038211156200962a576200962a6200959a565b50601f01601f191660200190565b60006200964f62009649846200960e565b620095db565b90508281528383830111156200966457600080fd5b828260208301376000602084830101529392505050565b6000602082840312156200968e57600080fd5b81356001600160401b03811115620096a557600080fd5b8201601f81018413620096b757600080fd5b620096c88482356020840162009638565b949350505050565b60008060408385031215620096e457600080fd5b8235620096f18162009413565b946020939093013593505050565b80151581146200174957600080fd5b600080600080608085870312156200972557600080fd5b8435620097328162009413565b93506020850135620097448162009413565b92506040850135915060608501356200975d81620096ff565b939692955090935050565b6001600160401b03811681146200174957600080fd5b6000602082840312156200979157600080fd5b8135620092a68162009768565b60008060408385031215620097b257600080fd5b50508035926020909101359150565b600081518084526020808501945080840160005b83811015620097fc5781516001600160a01b031687529582019590820190600101620097d5565b509495945050505050565b6080815260006200981c6080830187620097c1565b82810360208481019190915286518083528782019282019060005b81811015620098555784518352938301939183019160010162009837565b5050848103604086015286518082528282019350600581901b8201830183890160005b83811015620098aa57601f198584030187526200989783835162009557565b9686019692509085019060010162009878565b5050809550505050505082606083015295945050505050565b600080600080600080600087890360e0811215620098e057600080fd5b8835620098ed8162009413565b975060208901356001600160401b03808211156200990a57600080fd5b620099188c838d0162009449565b909950975060408b01359150808211156200993257600080fd5b620099408c838d0162009449565b90975095508591506060605f19840112156200995b57600080fd5b60608b01945060c08b01359250808311156200997657600080fd5b505088016080818b0312156200998b57600080fd5b8091505092959891949750929550565b60008060408385031215620099af57600080fd5b8235620099bc8162009413565b91506020830135620099ce81620096ff565b809150509250929050565b602081526000825160806020840152620099f760a084018262009557565b90506020840151601f198085840301604086015262009a17838362009557565b9250604086015191508085840301606086015262009a36838362009557565b925060608601519150808584030160808601525062008bf9828262009557565b6000806000806040858703121562009a6d57600080fd5b84356001600160401b038082111562009a8557600080fd5b62009a938883890162009449565b9096509450602087013591508082111562009aad57600080fd5b5062009abc8782880162009449565b95989497509550505050565b60008083601f84011262009adb57600080fd5b5081356001600160401b0381111562009af357600080fd5b6020830191508360208260051b850101111562007e6a57600080fd5b60008060006040848603121562009b2557600080fd5b83356001600160401b0381111562009b3c57600080fd5b62009b4a8682870162009ac8565b909450925050602084013562009b608162009413565b809150509250925092565b60608152600062009b806060830186620097c1565b828103602084015262009b948186620097c1565b915050826040830152949350505050565b600082601f83011262009bb757600080fd5b620050cf8383356020850162009638565b60006020828403121562009bdb57600080fd5b81356001600160401b038082111562009bf357600080fd5b908301906080828603121562009c0857600080fd5b62009c12620095b0565b82358281111562009c2257600080fd5b62009c308782860162009ba5565b82525060208301358281111562009c4657600080fd5b62009c548782860162009ba5565b60208301525060408301358281111562009c6d57600080fd5b62009c7b8782860162009ba5565b60408301525060608301358281111562009c9457600080fd5b62009ca28782860162009ba5565b60608301525095945050505050565b6000806000806040858703121562009cc857600080fd5b84356001600160401b038082111562009ce057600080fd5b62009cee8883890162009ac8565b9096509450602087013591508082111562009d0857600080fd5b5062009abc8782880162009ac8565b600181811c9082168062009d2c57607f821691505b6020821081036200461a57634e487b7160e01b600052602260045260246000fd5b6001600160a01b0392831681529116602082015260400190565b8183823760009101908152919050565b634e487b7160e01b600052601160045260246000fd5b60008262009dab57634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115620050d257620050d262009d77565b60006020828403121562009dd957600080fd5b5051919050565b634e487b7160e01b600052602160045260246000fd5b83815260208101839052606081016003831062009e175762009e1762009de0565b826040830152949350505050565b60006020828403121562009e3857600080fd5b8151620092a681620096ff565b828152604081016005831062009e5f5762009e5f62009de0565b8260208301529392505050565b81810381811115620050d257620050d262009d77565b8082028115828204841417620050d257620050d262009d77565b634e487b7160e01b600052603260045260246000fd5b60408152600062009ec76040830185620097c1565b905060018060a01b03831660208301529392505050565b6001600160401b03828116828216039080821115620093fe57620093fe62009d77565b60006001820162009f165762009f1662009d77565b5060010190565b6000808335601e1984360301811262009f3557600080fd5b8301803591506001600160401b0382111562009f5057600080fd5b60200191503681900382131562007e6a57600080fd5b601f8211156200803357600081815260208120601f850160051c8101602086101562009f8f5750805b601f850160051c820191505b818110156200890f5782815560010162009f9b565b600019600383901b1c191660019190911b1790565b6001600160401b0383111562009fdf5762009fdf6200959a565b62009ff78362009ff0835462009d17565b8362009f66565b6000601f8411600181146200a02a57600085156200a0155750838201355b6200a021868262009fb0565b845550620076e3565b600083815260209020601f19861690835b828110156200a05d57868501358255602094850194600190920191016200a03b565b50868210156200a07b5760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b6200a099828362009f1d565b6001600160401b038111156200a0b3576200a0b36200959a565b6200a0cb816200a0c4855462009d17565b8562009f66565b6000601f8211600181146200a0fe57600083156200a0e95750838201355b6200a0f5848262009fb0565b8655506200a15b565b600085815260209020601f19841690835b828110156200a13157868501358255602094850194600190920191016200a10f565b50848210156200a14f5760001960f88660031b161c19848701351681555b505060018360011b0185555b505050506200a16e602083018362009f1d565b6200a17e81836001860162009fc5565b50506200a18f604083018362009f1d565b6200a19f81836002860162009fc5565b50506200a1b0606083018362009f1d565b6200a1c081836003860162009fc5565b50505050565b81356200a1d38162009768565b6001600160401b03811690508154816001600160401b0319821617835560208401356200a2008162009768565b6fffffffffffffffff0000000000000000604091821b166fffffffffffffffffffffffffffffffff198316841781178555908501356200a2408162009768565b6001600160c01b0319929092169092179190911760809190911b67ffffffffffffffff60801b1617905550565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b602081526000620096c86020830184866200a26d565b60006001600160401b038211156200a2c8576200a2c86200959a565b5060051b60200190565b600060208083850312156200a2e657600080fd5b82516001600160401b038111156200a2fd57600080fd5b8301601f810185136200a30f57600080fd5b80516200a32062009649826200a2ac565b81815260059190911b820183019083810190878311156200a34057600080fd5b928401925b828410156200a36b5783516200a35b8162009413565b825292840192908401906200a345565b979650505050505050565b600060208083850312156200a38a57600080fd5b82516001600160401b03808211156200a3a257600080fd5b818501915085601f8301126200a3b757600080fd5b81516200a3c862009649826200a2ac565b81815260059190911b830184019084810190888311156200a3e857600080fd5b8585015b838110156200a466578051858111156200a4065760008081fd5b8601603f81018b136200a4195760008081fd5b8781015160406200a42e62009649836200960e565b8281528d828486010111156200a4445760008081fd5b6200a455838c830184870162009531565b86525050509186019186016200a3ec565b5098975050505050505050565b600082516200a48781846020870162009531565b9190910192915050565b60ff8416815260406020820152600062008bf96040830184866200a26d565b6040815260006200a4c66040830186886200a26d565b82810360208401526200a36b8185876200a26d565b81516001600160401b038111156200a4f7576200a4f76200959a565b6200a50f816200a508845462009d17565b8462009f66565b602080601f8311600181146200a54357600084156200a52e5750858301515b6200a53a858262009fb0565b8655506200890f565b600085815260208120601f198616915b828110156200a574578886015182559484019460019091019084016200a553565b50858210156200a5935787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60008083546200a5b38162009d17565b600182811680156200a5ce57600181146200a5e4576200a615565b60ff19841687528215158302870194506200a615565b8760005260208060002060005b858110156200a60c5781548a8201529084019082016200a5f1565b50505082870194505b50929695505050505050565b6bffffffffffffffffffffffff198360601b1681526000600383106200a64b576200a64b62009de0565b5060f89190911b6014820152601501919050565b6bffffffffffffffffffffffff198560601b16815282846014830137601492019182015260340192915050565b600086516200a6a0818460208b0162009531565b82018587823760009086019081528385823760009301928352509095945050505050565b6001600160a01b0383168152604060208201819052600090620096c89083018462009557565b60ff8281168282160390811115620050d257620050d262009d7756fe608060405260405162000e9638038062000e96833981016040819052620000269162000497565b828162000036828260006200004d565b50620000449050826200008a565b505050620005ca565b6200005883620000e5565b600082511180620000665750805b1562000085576200008383836200012760201b620001691760201c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000b562000156565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000e2816200018f565b50565b620000f08162000244565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200014f838360405180606001604052806027815260200162000e6f60279139620002f8565b9392505050565b60006200018060008051602062000e4f83398151915260001b6200037760201b620001951760201c565b546001600160a01b0316919050565b6001600160a01b038116620001fa5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b806200022360008051602062000e4f83398151915260001b6200037760201b620001951760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b6200025a816200037a60201b620001981760201c565b620002be5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001f1565b80620002237f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6200037760201b620001951760201c565b6060600080856001600160a01b03168560405162000317919062000577565b600060405180830381855af49150503d806000811462000354576040519150601f19603f3d011682016040523d82523d6000602084013e62000359565b606091505b5090925090506200036d8683838762000389565b9695505050505050565b90565b6001600160a01b03163b151590565b60608315620003fd578251600003620003f5576001600160a01b0385163b620003f55760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401620001f1565b508162000409565b62000409838362000411565b949350505050565b815115620004225781518083602001fd5b8060405162461bcd60e51b8152600401620001f1919062000595565b80516001600160a01b03811681146200045657600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200048e57818101518382015260200162000474565b50506000910152565b600080600060608486031215620004ad57600080fd5b620004b8846200043e565b9250620004c8602085016200043e565b60408501519092506001600160401b0380821115620004e657600080fd5b818601915086601f830112620004fb57600080fd5b8151818111156200051057620005106200045b565b604051601f8201601f19908116603f011681019083821181831017156200053b576200053b6200045b565b816040528281528960208487010111156200055557600080fd5b6200056883602083016020880162000471565b80955050505050509250925092565b600082516200058b81846020870162000471565b9190910192915050565b6020815260008251806020840152620005b681604085016020870162000471565b601f01601f19169190910160400192915050565b61087580620005da6000396000f3fe60806040523661001357610011610017565b005b6100115b61001f6101a7565b6001600160a01b0316330361015f5760606001600160e01b0319600035166364d3180d60e11b810161005a576100536101da565b9150610157565b63587086bd60e11b6001600160e01b031982160161007a57610053610231565b63070d7c6960e41b6001600160e01b031982160161009a57610053610277565b621eb96f60e61b6001600160e01b03198216016100b9576100536102a8565b63a39f25e560e01b6001600160e01b03198216016100d9576100536102e8565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b6101676102fc565b565b606061018e83836040518060600160405280602781526020016108426027913961030c565b9392505050565b90565b6001600160a01b03163b151590565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101e4610384565b60006101f33660048184610695565b81019061020091906106db565b905061021d8160405180602001604052806000815250600061038f565b505060408051602081019091526000815290565b60606000806102433660048184610695565b810190610250919061070c565b915091506102608282600161038f565b604051806020016040528060008152509250505090565b6060610281610384565b60006102903660048184610695565b81019061029d91906106db565b905061021d816103bb565b60606102b2610384565b60006102bc6101a7565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b60606102f2610384565b60006102bc610412565b610167610307610412565b610421565b6060600080856001600160a01b03168560405161032991906107f2565b600060405180830381855af49150503d8060008114610364576040519150601f19603f3d011682016040523d82523d6000602084013e610369565b606091505b509150915061037a86838387610445565b9695505050505050565b341561016757600080fd5b610398836104c6565b6000825111806103a55750805b156103b6576103b48383610169565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103e46101a7565b604080516001600160a01b03928316815291841660208301520160405180910390a161040f81610506565b50565b600061041c6105af565b905090565b3660008037600080366000845af43d6000803e808015610440573d6000f35b3d6000fd5b606083156104b45782516000036104ad576001600160a01b0385163b6104ad5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161014e565b50816104be565b6104be83836105d7565b949350505050565b6104cf81610601565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6001600160a01b03811661056b5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161014e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101cb565b8151156105e75781518083602001fd5b8060405162461bcd60e51b815260040161014e919061080e565b6001600160a01b0381163b61066e5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161014e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61058e565b600080858511156106a557600080fd5b838611156106b257600080fd5b5050820193919092039150565b80356001600160a01b03811681146106d657600080fd5b919050565b6000602082840312156106ed57600080fd5b61018e826106bf565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561071f57600080fd5b610728836106bf565b9150602083013567ffffffffffffffff8082111561074557600080fd5b818501915085601f83011261075957600080fd5b81358181111561076b5761076b6106f6565b604051601f8201601f19908116603f01168101908382118183101715610793576107936106f6565b816040528281528860208487010111156107ac57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b838110156107e95781810151838201526020016107d1565b50506000910152565b600082516108048184602087016107ce565b9190910192915050565b602081526000825180602084015261082d8160408501602087016107ce565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a164736f6c6343000811000ab53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c656424d7bda8602b916d64417f0dbfe2e2e88ec9b1157bd9f596dfdb91ba26624e0400000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000003000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb9226600000000000000000000000070997970c51812dc3a010c7d01b50e0d17dc79c80000000000000000000000003c44cdddb6a900fa2b585dd299e03d12fa4293bc00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000030b86b3146bdd2200b1dbdb1cea5e40d3451c028cbb4fb03b1826f7f2d82bee76bbd5cd68a74a16a7eceea093fd5826b9200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003087ce273bb9b51fd69e50de7a8d9a99cfb3b1a5c6a7b85f6673d137a5a2ce7df3d6ee4e6d579a142d58b0606c4a7a1c27000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030a33ac14980d85c0d154c5909ebf7a11d455f54beb4d5d0dc1d8b3670b9c4a6b6c450ee3d623ecc48026f09ed1f0b5c1200000000000000000000000000000000a164736f6c6343000811000a", - }, - { - ContractAddr: StakeCreditContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/2d6372ddba77902ef01e45887a425938376d5a5c", - Code: "6080604052600436106101e75760003560e01c8063647df75911610102578063a9664feb11610095578063d241c1ea11610064578063d241c1ea1461068d578063dd62ed3e146106cf578063f1fad104146106ef578063f399e22e1461070457600080fd5b8063a9664feb14610600578063aa1966cd14610620578063aad3ec961461064d578063c2cde2b21461066d57600080fd5b806395d89b41116100d157806395d89b411461058b578063a457c2d7146105a0578063a5d059ca146105c0578063a9059cbb146105e057600080fd5b8063647df759146104e85780636bbf22491461050857806370a082311461053557806391faf0b41461056b57600080fd5b8063313ce5671161017a5780634bf6c882116101495780634bf6c8821461048b5780634d99dd16146104a05780635c19a95c146104c05780635e607d76146104d357600080fd5b8063313ce567146103f157806339509351146104135780633a5381b51461043357806345bc4d101461046b57600080fd5b806315d1f898116101b657806315d1f8981461038657806318160ddd1461039c57806323b872dd146103b15780632f2d448a146103d157600080fd5b8063038c0023146102e157806306fdde03146103145780630913db4714610336578063095ea7b31461035657600080fd5b366102dc57336120021461021757604051630f22c43960e41b815261200260048201526024015b60405180910390fd5b60006120026001600160a01b0316631fa8882b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610259573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061027d9190611de4565b6102879042611e13565b6098546000828152609d6020908152604080832093909355609c9052908120805492935034929091906102bb908490611e35565b9250508190555034609860008282546102d49190611e35565b925050819055005b600080fd5b3480156102ed57600080fd5b506103016102fc366004611e60565b610717565b6040519081526020015b60405180910390f35b34801561032057600080fd5b50610329610747565b60405161030b9190611e84565b34801561034257600080fd5b50610301610351366004611e60565b6107d9565b34801561036257600080fd5b50610376610371366004611ed2565b6107fb565b604051901515815260200161030b565b34801561039257600080fd5b5061030160985481565b3480156103a857600080fd5b50606754610301565b3480156103bd57600080fd5b506103766103cc366004611efe565b610813565b3480156103dd57600080fd5b506103016103ec366004611e60565b610837565b3480156103fd57600080fd5b5060125b60405160ff909116815260200161030b565b34801561041f57600080fd5b5061037661042e366004611ed2565b6108fc565b34801561043f57600080fd5b50609754610453906001600160a01b031681565b6040516001600160a01b03909116815260200161030b565b34801561047757600080fd5b50610301610486366004611f3f565b61091e565b34801561049757600080fd5b50610401600881565b3480156104ac57600080fd5b506103016104bb366004611ed2565b610a11565b6103016104ce366004611e60565b610c28565b6104e66104e1366004611f58565b610c9e565b005b3480156104f457600080fd5b50610301610503366004611f3f565b610e11565b34801561051457600080fd5b50610301610523366004611f3f565b609d6020526000908152604090205481565b34801561054157600080fd5b50610301610550366004611e60565b6001600160a01b031660009081526065602052604090205490565b34801561057757600080fd5b50610301610586366004611f3f565b610e50565b34801561059757600080fd5b50610329610e8b565b3480156105ac57600080fd5b506103766105bb366004611ed2565b610e9a565b3480156105cc57600080fd5b506103016105db366004611ed2565b610f15565b3480156105ec57600080fd5b506103766105fb366004611ed2565b611016565b34801561060c57600080fd5b5061030161061b366004611ed2565b611024565b34801561062c57600080fd5b5061030161063b366004611f3f565b609c6020526000908152604090205481565b34801561065957600080fd5b50610301610668366004611ed2565b61114d565b34801561067957600080fd5b50610301610688366004611e60565b6113f0565b34801561069957600080fd5b506106ad6106a8366004611ed2565b61140e565b604080518251815260208084015190820152918101519082015260600161030b565b3480156106db57600080fd5b506103016106ea366004611f82565b611491565b3480156106fb57600080fd5b50610401601181565b6104e6610712366004611fbb565b6114bc565b6001600160a01b0381166000908152609a6020526040812054600f81810b600160801b909204900b035b92915050565b60606068805461075690612040565b80601f016020809104026020016040519081016040528092919081815260200182805461078290612040565b80156107cf5780601f106107a4576101008083540402835291602001916107cf565b820191906000526020600020905b8154815290600101906020018083116107b257829003601f168201915b5050505050905090565b6001600160a01b03811660009081526065602052604081205461074190610e50565b600033610809818585611672565b5060019392505050565b60003361082185828561168b565b61082c8585856116ff565b506001949350505050565b6001600160a01b0381166000908152609a6020526040812054600f81810b600160801b909204900b0381805b828110156108f4576001600160a01b0385166000908152609a6020526040812061088d9083611718565b6000818152609960209081526040918290208251606081018452815481526001820154928101929092526002015491810182905291925042106108da576108d384612074565b93506108e1565b50506108f4565b5050806108ed90612074565b9050610863565b509392505050565b60003361080981858561090f8383611491565b6109199190611e35565b611672565b6000336120021461094657604051630f22c43960e41b8152612002600482015260240161020e565b6097546001600160a01b03166000908152606560205260408120549061096b84610e11565b905081811161097a578061097c565b815b609754909150600090610998906001600160a01b031683611789565b6040519091506000906110029083908381818185875af1925050503d80600081146109df576040519150601f19603f3d011682016040523d82523d6000602084013e6109e4565b606091505b5050905080610a06576040516312171d8360e31b815260040160405180910390fd5b50925050505b919050565b60003361200214610a3957604051630f22c43960e41b8152612002600482015260240161020e565b81600003610a5a57604051639811e0c760e01b815260040160405180910390fd5b6001600160a01b038316600090815260656020526040902054821115610a9357604051631e9acf1760e31b815260040160405180910390fd5b610a9d8383611789565b905060006120026001600160a01b031663fc0c5ff16040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ae1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b059190611de4565b610b0f9042611e35565b6040805160608101825285815260208101859052908101829052909150600085610b38816117be565b60405160609290921b6bffffffffffffffffffffffff19166020830152603482015260540160408051601f1981840301815291815281516020928301206000818152609990935291205490915015610ba35760405163b19e911560e01b815260040160405180910390fd5b600081815260996020908152604080832085518155828601516001820155818601516002909101556001600160a01b0389168352609a9091529020610c1f90828154600160801b90819004600f0b6000818152600180860160205260409091209390935583546001600160801b03908116939091011602179055565b50505092915050565b60003361200214610c5057604051630f22c43960e41b8152612002600482015260240161020e565b34600003610c7157604051631f2a200560e01b815260040160405180910390fd5b610c7b82346117e6565b905080600003610a0c57604051639811e0c760e01b815260040160405180910390fd5b3361200214610cc457604051630f22c43960e41b8152612002600482015260240161020e565b346000612710610cde67ffffffffffffffff85168461208d565b610ce89190611e13565b90506000610cf682846120a4565b905060006120026001600160a01b0316631fa8882b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d5e9190611de4565b610d689042611e13565b6098546000828152609d6020908152604080832093909355609c905290812080549293508492909190610d9c908490611e35565b925050819055508160986000828254610db59190611e35565b9091555050609754610dd0906001600160a01b0316846117e6565b5060408051838152602081018590527ffb0e1482d62102ab9594f69d4c6d693749e3e2bf1c21af272f5456b2d5a4f6b5910160405180910390a15050505050565b6000609854600003610e36576040516307b76ce760e51b815260040160405180910390fd5b609854606754610e46908461208d565b6107419190611e13565b6000610e5b60675490565b600003610e7b57604051632fe8dae960e01b815260040160405180910390fd5b606754609854610e46908461208d565b60606069805461075690612040565b60003381610ea88286611491565b905083811015610f085760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161020e565b61082c8286868403611672565b60003361200214610f3d57604051630f22c43960e41b8152612002600482015260240161020e565b81600003610f5e57604051639811e0c760e01b815260040160405180910390fd5b6001600160a01b038316600090815260656020526040902054821115610f9757604051631e9acf1760e31b815260040160405180910390fd5b610fa18383611789565b6040519091506000906120029083908381818185875af1925050503d8060008114610fe8576040519150601f19603f3d011682016040523d82523d6000602084013e610fed565b606091505b505090508061100f576040516312171d8360e31b815260040160405180910390fd5b5092915050565b6000336108098185856116ff565b6001600160a01b0382166000908152609a6020526040812054600f81810b600160801b909204900b0360000361105c57506000610741565b81158061109057506001600160a01b0383166000908152609a6020526040902054600f81810b600160801b909204900b0382115b61109a57816110c4565b6001600160a01b0383166000908152609a6020526040902054600f81810b600160801b909204900b035b91506000805b838110156108f4576001600160a01b0385166000908152609a602052604081206110f49083611718565b600081815260996020908152604091829020825160608101845281548152600182015492810183905260029091015492810192909252919250906111389085611e35565b935050508061114690612074565b90506110ca565b6000336120021461117557604051630f22c43960e41b8152612002600482015260240161020e565b61117d61180f565b6001600160a01b0383166000908152609a6020526040902054600f81810b600160801b909204900b036000036111c65760405163ad41893760e01b815260040160405180910390fd5b8115806111fa57506001600160a01b0383166000908152609a6020526040902054600f81810b600160801b909204900b0382115b611204578161122e565b6001600160a01b0383166000908152609a6020526040902054600f81810b600160801b909204900b035b915060005b82156112e4576001600160a01b0384166000908152609a6020526040812061125a90611868565b6000818152609960209081526040918290208251606081018452815481526001820154928101929092526002015491810182905291925042101561129f5750506112e4565b6001600160a01b0386166000908152609a602052604090206112c0906118bc565b5060208101516112d09084611e35565b92506112db856120b7565b94505050611233565b80600003611305576040516303cd8e0960e21b815260040160405180910390fd5b60006120026001600160a01b031663e8f67c3b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611347573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061136b9190611de4565b90506000856001600160a01b03168284604051600060405180830381858888f193505050503d80600081146113bc576040519150601f19603f3d011682016040523d82523d6000602084013e6113c1565b606091505b50509050806113e3576040516312171d8360e31b815260040160405180910390fd5b5050600180559050610741565b6001600160a01b0381166000908152609b6020526040812054610741565b61143260405180606001604052806000815260200160008152602001600081525090565b6001600160a01b0383166000908152609a602052604081206114549084611718565b6000908152609960209081526040918290208251606081018452815481526001820154928101929092526002015491810191909152949350505050565b6001600160a01b03918216600090815260666020908152604080832093909416825291909152205490565b600054610100900460ff16158080156114dc5750600054600160ff909116105b806114f65750303b1580156114f6575060005460ff166001145b6115595760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161020e565b6000805460ff19166001179055801561157c576000805461ff0019166101001790555b33612002146115a257604051630f22c43960e41b8152612002600482015260240161020e565b600083836040516020016115b79291906120ce565b6040516020818303038152906040529050600084846040516020016115dd9291906120fe565b60405160208183030381529060405290506115f88282611941565b611600611986565b609780546001600160a01b0319166001600160a01b038816179055611624346119ad565b5050801561166c576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b604051632028747160e01b815260040160405180910390fd5b60006116978484611491565b9050600019811461166c57818110156116f25760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161020e565b61166c8484848403611672565b604051638cd22d1960e01b815260040160405180910390fd5b60008061173b61172784611b1d565b85546117369190600f0b61211c565b611b8b565b8454909150600160801b9004600f90810b9082900b1261176e57604051632d0483c560e21b815260040160405180910390fd5b600f0b60009081526001939093016020525050604090205490565b600061179482610e50565b90506117a08383611bef565b80609860008282546117b291906120a4565b90915550909392505050565b6001600160a01b0381166000908152609b602052604090208054600181018255905b50919050565b60006117f182610e11565b90506117fd8382611d23565b81609860008282546117b29190611e35565b6002600154036118615760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161020e565b6002600155565b60006118838254600f81810b600160801b909204900b131590565b156118a157604051631ed9509560e11b815260040160405180910390fd5b508054600f0b60009081526001909101602052604090205490565b60006118d78254600f81810b600160801b909204900b131590565b156118f557604051631ed9509560e11b815260040160405180910390fd5b508054600f0b6000818152600180840160205260408220805492905583546fffffffffffffffffffffffffffffffff191692016001600160801b03169190911790915590565b60018055565b600054610100900460ff166119685760405162461bcd60e51b815260040161020e90612144565b606861197483826121f3565b50606961198182826121f3565b505050565b600054610100900460ff1661193b5760405162461bcd60e51b815260040161020e90612144565b600054610100900460ff166119d45760405162461bcd60e51b815260040161020e90612144565b60006120026001600160a01b0316638a4d3fa86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3a9190611de4565b90508082111580611a5457506097546001600160a01b0316155b80611a60575060675415155b15611a7e57604051632163e6b960e21b815260040160405180910390fd5b60006120026001600160a01b0316634e6fd6c46040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ac0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ae491906122b3565b9050611af08183611d23565b6000611afc83856120a4565b609754909150611b15906001600160a01b031682611d23565b505050609855565b60006001600160ff1b03821115611b875760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b606482015260840161020e565b5090565b80600f81900b8114610a0c5760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20316044820152663238206269747360c81b606482015260840161020e565b6001600160a01b038216611c4f5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b606482015260840161020e565b6001600160a01b03821660009081526065602052604090205481811015611cc35760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b606482015260840161020e565b6001600160a01b03831660008181526065602090815260408083208686039055606780548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6001600160a01b038216611d795760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161020e565b8060676000828254611d8b9190611e35565b90915550506001600160a01b0382166000818152606560209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b600060208284031215611df657600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b600082611e3057634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561074157610741611dfd565b6001600160a01b0381168114611e5d57600080fd5b50565b600060208284031215611e7257600080fd5b8135611e7d81611e48565b9392505050565b600060208083528351808285015260005b81811015611eb157858101830151858201604001528201611e95565b506000604082860101526040601f19601f8301168501019250505092915050565b60008060408385031215611ee557600080fd5b8235611ef081611e48565b946020939093013593505050565b600080600060608486031215611f1357600080fd5b8335611f1e81611e48565b92506020840135611f2e81611e48565b929592945050506040919091013590565b600060208284031215611f5157600080fd5b5035919050565b600060208284031215611f6a57600080fd5b813567ffffffffffffffff81168114611e7d57600080fd5b60008060408385031215611f9557600080fd5b8235611fa081611e48565b91506020830135611fb081611e48565b809150509250929050565b600080600060408486031215611fd057600080fd5b8335611fdb81611e48565b9250602084013567ffffffffffffffff80821115611ff857600080fd5b818601915086601f83011261200c57600080fd5b81358181111561201b57600080fd5b87602082850101111561202d57600080fd5b6020830194508093505050509250925092565b600181811c9082168061205457607f821691505b6020821081036117e057634e487b7160e01b600052602260045260246000fd5b60006001820161208657612086611dfd565b5060010190565b808202811582820484141761074157610741611dfd565b8181038181111561074157610741611dfd565b6000816120c6576120c6611dfd565b506000190190565b65029ba30b5b2960d51b815281836006830137660810dc99591a5d60ca1b91016006810191909152600d01919050565b611cdd60f21b81528183600283013760009101600201908152919050565b808201828112600083128015821682158216171561213c5761213c611dfd565b505092915050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b634e487b7160e01b600052604160045260246000fd5b601f82111561198157600081815260208120601f850160051c810160208610156121cc5750805b601f850160051c820191505b818110156121eb578281556001016121d8565b505050505050565b815167ffffffffffffffff81111561220d5761220d61218f565b6122218161221b8454612040565b846121a5565b602080601f831160018114612256576000841561223e5750858301515b600019600386901b1c1916600185901b1785556121eb565b600085815260208120601f198616915b8281101561228557888601518255948401946001909101908401612266565b50858210156122a35787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156122c557600080fd5b8151611e7d81611e4856fea164736f6c6343000811000a", - }, - { - ContractAddr: GovernorContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/2d6372ddba77902ef01e45887a425938376d5a5c", - Code: "6080604052600436106103f35760003560e01c80637b3c71d311610208578063c28bc2fa11610118578063e23a9a52116100ab578063f1fad1041161007a578063f1fad10414610e46578063f23a6e6114610e5b578063f8ce560a14610e87578063fc0c546a14610ea7578063fe0d94c114610ec857600080fd5b8063e23a9a5214610d1b578063ea0217cf14610de6578063eb9019d414610e06578063ece40cc114610e2657600080fd5b8063da95691a116100e7578063da95691a14610c61578063dd4e2ba514610c81578063ddf0b00914610cc7578063deaaa7cc14610ce757600080fd5b8063c28bc2fa14610bef578063c59057e414610c02578063d07f91e914610c22578063d33219b414610c4257600080fd5b8063a7713a701161019b578063b187bd261161016a578063b187bd2614610b55578063b58131b014610b73578063bc197c8114610b88578063c01f9e3714610bb4578063c170ec0b14610bd457600080fd5b8063a7713a7014610ae0578063a890c91014610af5578063ab58fb8e14610b15578063ac43175114610b3557600080fd5b806384b0196e116101d757806384b0196e14610a5857806391ddadf414610a8057806397c3d33414610aac5780639a802a6d14610ac057600080fd5b80637b3c71d3146109ee5780637d5e81e214610a0e5780638129fc1c14610a2e5780638456cb5914610a4357600080fd5b80633932abb1116103035780634a49ac4c1161029657806354fd4d501161026557806354fd4d5014610944578063567813881461096e5780635f398a141461098e57806360c4247f146109ae57806370b0f660146109ce57600080fd5b80634a49ac4c146108b75780634bf5d7e9146108d75780634bf6c882146108ec578063533ddd141461091357600080fd5b8063417c73a7116102d2578063417c73a7146107fc578063438596321461081c578063452115d6146108675780634838d1651461088757600080fd5b80633932abb1146107795780633bccf4fd1461078f5780633e4f49e6146107af57806340e58ee5146107dc57600080fd5b8063150b7a02116103865780632656227d116103555780632656227d146106a25780632d63f693146106b55780632fe3e261146106ec578063328dd9821461072057806332b8113e1461075057600080fd5b8063150b7a02146105fb578063160cbed71461063f57806317977c611461065f57806324bc1a641461068d57600080fd5b8063046f7da2116103c2578063046f7da21461054e57806306f3f9e61461056357806306fdde0314610583578063143489d0146105a557600080fd5b8063013cf08b1461046357806301ffc9a7146104de57806302a251a31461050e578063034201811461052e57600080fd5b3661045e5730610401610edb565b6001600160a01b03161461045c5760405162461bcd60e51b815260206004820152601f60248201527f476f7665726e6f723a206d7573742073656e6420746f206578656375746f720060448201526064015b60405180910390fd5b005b600080fd5b34801561046f57600080fd5b5061048361047e366004615c87565b610ef5565b604080519a8b526001600160a01b0390991660208b0152978901969096526060880194909452608087019290925260a086015260c085015260e084015215156101008301521515610120820152610140015b60405180910390f35b3480156104ea57600080fd5b506104fe6104f9366004615ca0565b610fb0565b60405190151581526020016104d5565b34801561051a57600080fd5b50610195545b6040519081526020016104d5565b34801561053a57600080fd5b50610520610549366004615de6565b610fc1565b34801561055a57600080fd5b5061045c6110b9565b34801561056f57600080fd5b5061045c61057e366004615c87565b611149565b34801561058f57600080fd5b506105986111d4565b6040516104d59190615edc565b3480156105b157600080fd5b506105e36105c0366004615c87565b60009081526101636020526040902054600160401b90046001600160a01b031690565b6040516001600160a01b0390911681526020016104d5565b34801561060757600080fd5b50610626610616366004615f04565b630a85bd0160e11b949350505050565b6040516001600160e01b031990911681526020016104d5565b34801561064b57600080fd5b5061052061065a3660046160db565b611267565b34801561066b57600080fd5b5061052061067a36600461616a565b6102c36020526000908152604090205481565b34801561069957600080fd5b50610520611352565b6105206106b03660046160db565b611378565b3480156106c157600080fd5b506105206106d0366004615c87565b600090815261016360205260409020546001600160401b031690565b3480156106f857600080fd5b506105207fb3b3f3b703cd84ce352197dcff232b1b5d3cfb2025ce47cf04742d0651f1af8881565b34801561072c57600080fd5b5061074061073b366004615c87565b61146b565b6040516104d59493929190616250565b34801561075c57600080fd5b5061028f546040516001600160401b0390911681526020016104d5565b34801561078557600080fd5b5061019454610520565b34801561079b57600080fd5b506105206107aa36600461629d565b6116fd565b3480156107bb57600080fd5b506107cf6107ca366004615c87565b611773565b6040516104d59190616301565b3480156107e857600080fd5b5061045c6107f7366004615c87565b61177e565b34801561080857600080fd5b5061045c61081736600461616a565b6117a9565b34801561082857600080fd5b506104fe610837366004616329565b60008281526101c6602090815260408083206001600160a01b038516845260080190915290205460ff1692915050565b34801561087357600080fd5b506105206108823660046160db565b61182a565b34801561089357600080fd5b506104fe6108a236600461616a565b60016020526000908152604090205460ff1681565b3480156108c357600080fd5b5061045c6108d236600461616a565b611838565b3480156108e357600080fd5b506105986118b3565b3480156108f857600080fd5b50610901600881565b60405160ff90911681526020016104d5565b34801561091f57600080fd5b506104fe61092e36600461616a565b6102c16020526000908152604090205460ff1681565b34801561095057600080fd5b506040805180820190915260018152603160f81b6020820152610598565b34801561097a57600080fd5b50610520610989366004616359565b611960565b34801561099a57600080fd5b506105206109a9366004616385565b611989565b3480156109ba57600080fd5b506105206109c9366004615c87565b6119d3565b3480156109da57600080fd5b5061045c6109e9366004615c87565b611a88565b3480156109fa57600080fd5b50610520610a09366004616408565b611b10565b348015610a1a57600080fd5b50610520610a29366004616461565b611b62565b348015610a3a57600080fd5b5061045c611c7d565b348015610a4f57600080fd5b5061045c611eab565b348015610a6457600080fd5b50610a6d611f41565b6040516104d59796959493929190616501565b348015610a8c57600080fd5b50610a95611fdf565b60405165ffffffffffff90911681526020016104d5565b348015610ab857600080fd5b506064610520565b348015610acc57600080fd5b50610520610adb366004616563565b612053565b348015610aec57600080fd5b5061052061206a565b348015610b0157600080fd5b5061045c610b1036600461616a565b612097565b348015610b2157600080fd5b50610520610b30366004615c87565b61211f565b348015610b4157600080fd5b5061045c610b503660046165bb565b6121bb565b348015610b6157600080fd5b5060005462010000900460ff166104fe565b348015610b7f57600080fd5b50610520612900565b348015610b9457600080fd5b50610626610ba336600461661a565b63bc197c8160e01b95945050505050565b348015610bc057600080fd5b50610520610bcf366004615c87565b61290c565b348015610be057600080fd5b506102c2546104fe9060ff1681565b61045c610bfd3660046166ad565b612917565b348015610c0e57600080fd5b50610520610c1d3660046160db565b612a27565b348015610c2e57600080fd5b5061045c610c3d3660046166f0565b612a61565b348015610c4e57600080fd5b5061022b546001600160a01b03166105e3565b348015610c6d57600080fd5b50610520610c7c366004616719565b612ae9565b348015610c8d57600080fd5b5060408051808201909152601a81527f737570706f72743d627261766f2671756f72756d3d627261766f0000000000006020820152610598565b348015610cd357600080fd5b5061045c610ce2366004615c87565b612b70565b348015610cf357600080fd5b506105207f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f81565b348015610d2757600080fd5b50610db6610d36366004616329565b60408051606081018252600080825260208201819052918101919091525060009182526101c6602090815260408084206001600160a01b0393909316845260089092018152918190208151606081018352905460ff8082161515835261010082041693820193909352620100009092046001600160601b03169082015290565b6040805182511515815260208084015160ff1690820152918101516001600160601b0316908201526060016104d5565b348015610df257600080fd5b5061045c610e01366004615c87565b612b93565b348015610e1257600080fd5b50610520610e213660046167ba565b612c1b565b348015610e3257600080fd5b5061045c610e41366004615c87565b612c3c565b348015610e5257600080fd5b50610901601181565b348015610e6757600080fd5b50610626610e763660046167e6565b63f23a6e6160e01b95945050505050565b348015610e9357600080fd5b50610520610ea2366004615c87565b612cc4565b348015610eb357600080fd5b506101f8546105e3906001600160a01b031681565b61045c610ed6366004615c87565b612d53565b6000610ef061022b546001600160a01b031690565b905090565b8060008080808080808080610f098a61211f565b60008c815261016360205260409020549098506001600160401b03169650610f308b61290c565b60008c81526101c66020526040812080546005820154600683015460078401546001600160a01b039093169e50949a509850929650919450610f718d611773565b90506002816007811115610f8757610f876162eb565b1493506007816007811115610f9e57610f9e6162eb565b14925050509193959799509193959799565b6000610fbb82612d76565b92915050565b60008061106561105d7fb3b3f3b703cd84ce352197dcff232b1b5d3cfb2025ce47cf04742d0651f1af888c8c8c8c604051610ffd92919061684e565b60405180910390208b80519060200120604051602001611042959493929190948552602085019390935260ff9190911660408401526060830152608082015260a00190565b60405160208183030381529060405280519060200120612d9b565b868686612dc8565b90506110ab8a828b8b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508d9250612de6915050565b9a9950505050505050505050565b600054630100000090046001600160a01b031633146110eb576040516306fbb1e360e01b815260040160405180910390fd5b60005462010000900460ff1661111457604051636cd6020160e01b815260040160405180910390fd5b6000805462ff0000191681556040517f62451d457bc659158be6e6247f56ec1df424a5c7597f71c20c2bc44e0965c8f99190a1565b611151610edb565b6001600160a01b0316336001600160a01b0316146111815760405162461bcd60e51b81526004016104539061685e565b3061118a610edb565b6001600160a01b0316146111c857600080366040516111aa92919061684e565b604051809103902090505b806111c1610164612e4f565b036111b557505b6111d181612ece565b50565b606061016280546111e490616895565b80601f016020809104026020016040519081016040528092919081815260200182805461121090616895565b801561125d5780601f106112325761010080835404028352916020019161125d565b820191906000526020600020905b81548152906001019060200180831161124057829003601f168201915b5050505050905090565b6000805462010000900460ff161561129257604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff16156112c35760405163b1d02c3d60e01b815260040160405180910390fd5b60005b855181101561133c576102c160008783815181106112e6576112e66168cf565b6020908102919091018101516001600160a01b031682528101919091526040016000205460ff1661132a57604051630b094f2760e31b815260040160405180910390fd5b80611334816168fb565b9150506112c6565b506113498585858561303f565b95945050505050565b6000610ef06001611361611fdf565b61136b9190616914565b65ffffffffffff16612cc4565b60008061138786868686612a27565b9050600061139482611773565b905060048160078111156113aa576113aa6162eb565b14806113c7575060058160078111156113c5576113c56162eb565b145b6113e35760405162461bcd60e51b81526004016104539061693a565b6000828152610163602052604090819020600201805460ff19166001179055517f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f906114329084815260200190565b60405180910390a16114478288888888613244565b61145482888888886132e5565b61146182888888886133c7565b5095945050505050565b60608060608060006101c66000878152602001908152602001600020905080600101816002018260030183600401838054806020026020016040519081016040528092919081815260200182805480156114ee57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116114d0575b505050505093508280548060200260200160405190810160405280929190818152602001828054801561154057602002820191906000526020600020905b81548152602001906001019080831161152c575b5050505050925081805480602002602001604051908101604052809291908181526020016000905b8282101561161457838290600052602060002001805461158790616895565b80601f01602080910402602001604051908101604052809291908181526020018280546115b390616895565b80156116005780601f106115d557610100808354040283529160200191611600565b820191906000526020600020905b8154815290600101906020018083116115e357829003601f168201915b505050505081526020019060010190611568565b50505050915080805480602002602001604051908101604052809291908181526020016000905b828210156116e757838290600052602060002001805461165a90616895565b80601f016020809104026020016040519081016040528092919081815260200182805461168690616895565b80156116d35780601f106116a8576101008083540402835291602001916116d3565b820191906000526020600020905b8154815290600101906020018083116116b657829003601f168201915b50505050508152602001906001019061163b565b5050505090509450945094509450509193509193565b604080517f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f602082015290810186905260ff85166060820152600090819061174b9061105d90608001611042565b905061176887828860405180602001604052806000815250613402565b979650505050505050565b6000610fbb82613425565b60008060008061178d85613572565b93509350935093506117a18484848461182a565b505050505050565b600054630100000090046001600160a01b031633146117db576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b0381166000818152600160208190526040808320805460ff1916909217909155517f7fd26be6fc92aff63f1f4409b2b2ddeb272a888031d7f55ec830485ec61941869190a250565b600061134985858585613803565b600054630100000090046001600160a01b0316331461186a576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b038116600081815260016020526040808220805460ff19169055517fe0db3499b7fdc3da4cddff5f45d694549c19835e7f719fb5606d3ad1a5de40119190a250565b6101f85460408051634bf5d7e960e01b815290516060926001600160a01b031691634bf5d7e99160048083019260009291908290030181865afa92505050801561191f57506040513d6000823e601f3d908101601f1916820160405261191c919081019061697b565b60015b61195b575060408051808201909152601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000602082015290565b919050565b60008033905061198184828560405180602001604052806000815250613402565b949350505050565b60008033905061176887828888888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a9250612de6915050565b61025e546000908082036119ec57505061025d54919050565b600061025e6119fc6001846169e8565b81548110611a0c57611a0c6168cf565b60009182526020918290206040805180820190915291015463ffffffff8116808352600160201b9091046001600160e01b03169282019290925291508410611a6257602001516001600160e01b03169392505050565b611a77611a6e856138ce565b61025e90613937565b6001600160e01b0316949350505050565b611a90610edb565b6001600160a01b0316336001600160a01b031614611ac05760405162461bcd60e51b81526004016104539061685e565b30611ac9610edb565b6001600160a01b031614611b075760008036604051611ae992919061684e565b604051809103902090505b80611b00610164612e4f565b03611af457505b6111d1816139ea565b600080339050611b5886828787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061340292505050565b9695505050505050565b6000805462010000900460ff1615611b8d57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615611bbe5760405163b1d02c3d60e01b815260040160405180910390fd5b611bc6613a2d565b3360009081526102c360205260409020548015611c3b576000611be882611773565b90506001816007811115611bfe57611bfe6162eb565b1480611c1b57506000816007811115611c1957611c196162eb565b145b15611c395760405163867f3ee560e01b815260040160405180910390fd5b505b825160208401206000611c5088888885612a27565b3360009081526102c3602052604090208190559050611c7188888888613ad8565b98975050505050505050565b600054610100900460ff1615808015611c9d5750600054600160ff909116105b80611cb75750303b158015611cb7575060005460ff166001145b611d1a5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610453565b6000805460ff191660011790558015611d3d576000805461ff0019166101001790555b334114611d5d5760405163022d8c9560e31b815260040160405180910390fd5b3a15611d7c576040516383f1b1d360e01b815260040160405180910390fd5b611da86040518060400160405280600b81526020016a2129a1a3b7bb32b93737b960a91b815250613b40565b611dd2611db76003603c616a11565b611dc360036078616a11565b680ad78ebc5ac6200000613b97565b611dda613bce565b611de5612005613bf5565b611df0612006613c25565b611dfa600a613c55565b611e0e611e096003603c616a11565b613c85565b6110076000526102c16020527f2f832952f0ef896b8c8edd6d16a2e4f2591a90375e33021e3b9ff197f3793fc0805460ff19166001179055611e6373df87f0e2b8519ea2dd4abd8b639cdd628497ed25613cb5565b80156111d1576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b600054630100000090046001600160a01b03163314611edd576040516306fbb1e360e01b815260040160405180910390fd5b60005462010000900460ff1615611f0757604051631785c68160e01b815260040160405180910390fd5b6000805462ff00001916620100001781556040517f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e7529190a1565b6000606080600080600060606098546000801b148015611f615750609954155b611fa55760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606401610453565b611fad613d08565b611fb5613d17565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b6101f854604080516324776b7d60e21b815290516000926001600160a01b0316916391ddadf49160048083019260209291908290030181865afa925050508015612046575060408051601f3d908101601f1916820190925261204391810190616a33565b60015b61195b57610ef043613d26565b6000612060848484613d8d565b90505b9392505050565b61025e546000901561208f5761208161025e613e04565b6001600160e01b0316905090565b5061025d5490565b61209f610edb565b6001600160a01b0316336001600160a01b0316146120cf5760405162461bcd60e51b81526004016104539061685e565b306120d8610edb565b6001600160a01b03161461211657600080366040516120f892919061684e565b604051809103902090505b8061210f610164612e4f565b0361210357505b6111d181613e34565b61022b54600082815261022c602052604080822054905163d45c443560e01b81526004810191909152909182916001600160a01b039091169063d45c443590602401602060405180830381865afa15801561217e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121a29190616a5b565b9050806001146121b25780612063565b60009392505050565b33611007146121e157604051630f22c43960e41b81526110076004820152602401610453565b6122476040518060400160405280600b81526020016a766f74696e6744656c617960a81b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613e9f9050565b156122fc57602081146122755783838383604051630a5a604160e01b81526004016104539493929190616a9d565b604080516020601f84018190048102820181019092528281526000916122b6918585808385018382808284376000920191909152509293925050613ef89050565b90508015806122c757506201518081115b156122ed5784848484604051630a5a604160e01b81526004016104539493929190616a9d565b6122f6816139ea565b506128bd565b6123636040518060400160405280600c81526020016b1d9bdd1a5b99d4195c9a5bd960a21b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613e9f9050565b1561241257602081146123915783838383604051630a5a604160e01b81526004016104539493929190616a9d565b604080516020601f84018190048102820181019092528281526000916123d2918585808385018382808284376000920191909152509293925050613ef89050565b90508015806123e3575062278d0081115b156124095784848484604051630a5a604160e01b81526004016104539493929190616a9d565b6122f681613efd565b61247e604051806040016040528060118152602001701c1c9bdc1bdcd85b151a1c995cda1bdb19607a1b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613e9f9050565b1561253457602081146124ac5783838383604051630a5a604160e01b81526004016104539493929190616a9d565b604080516020601f84018190048102820181019092528281526000916124ed918585808385018382808284376000920191909152509293925050613ef89050565b9050801580612505575069021e19e0c9bab240000081115b1561252b5784848484604051630a5a604160e01b81526004016104539493929190616a9d565b6122f681613fa0565b61259e6040518060400160405280600f81526020016e38bab7b93ab6a73ab6b2b930ba37b960891b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613e9f9050565b1561264d57602081146125cc5783838383604051630a5a604160e01b81526004016104539493929190616a9d565b604080516020601f840181900481028201810190925282815260009161260d918585808385018382808284376000920191909152509293925050613ef89050565b9050600581108061261e5750601481115b156126445784848484604051630a5a604160e01b81526004016104539493929190616a9d565b6122f681612ece565b6126bc604051806040016040528060148152602001736d696e506572696f64416674657251756f72756d60601b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613e9f9050565b1561278257600881146126ea5783838383604051630a5a604160e01b81526004016104539493929190616a9d565b6000612730600884848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613ef89050565b90506001600160401b038116158061275357506202a300816001600160401b0316115b156127795784848484604051630a5a604160e01b81526004016104539493929190616a9d565b6122f681613fe3565b6127ee6040518060400160405280601181526020017033b7bb32b93737b9283937ba32b1ba37b960791b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613e9f9050565b1561289c576014811461281c5783838383604051630a5a604160e01b81526004016104539493929190616a9d565b6000612862601484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613ef89050565b90506001600160a01b0381166128935784848484604051630a5a604160e01b81526004016104539493929190616a9d565b6122f68161404f565b838383836040516325ee20d560e21b81526004016104539493929190616a9d565b7ff1ce9b2cbf50eeb05769a29e2543fd350cab46894a7dd9978a12d534bb20e633848484846040516128f29493929190616a9d565b60405180910390a150505050565b6000610ef06101965490565b6000610fbb826140bb565b61291f610edb565b6001600160a01b0316336001600160a01b03161461294f5760405162461bcd60e51b81526004016104539061685e565b30612958610edb565b6001600160a01b031614612996576000803660405161297892919061684e565b604051809103902090505b8061298f610164612e4f565b0361298357505b600080856001600160a01b03168585856040516129b492919061684e565b60006040518083038185875af1925050503d80600081146129f1576040519150601f19603f3d011682016040523d82523d6000602084013e6129f6565b606091505b5091509150612a1e8282604051806060016040528060288152602001616efa602891396140f9565b50505050505050565b600084848484604051602001612a409493929190616ac4565b60408051601f19818403018152919052805160209091012095945050505050565b612a69610edb565b6001600160a01b0316336001600160a01b031614612a995760405162461bcd60e51b81526004016104539061685e565b30612aa2610edb565b6001600160a01b031614612ae05760008036604051612ac292919061684e565b604051809103902090505b80612ad9610164612e4f565b03612acd57505b6111d181613fe3565b60008251845114612b4d5760405162461bcd60e51b815260206004820152602860248201527f476f7665726e6f72427261766f3a20696e76616c6964207369676e61747572656044820152670e640d8cadccee8d60c31b6064820152608401610453565b612b5b338787878787614112565b611b588686612b6a87876141d0565b85611b62565b600080600080612b7f85613572565b93509350935093506117a184848484611267565b612b9b610edb565b6001600160a01b0316336001600160a01b031614612bcb5760405162461bcd60e51b81526004016104539061685e565b30612bd4610edb565b6001600160a01b031614612c125760008036604051612bf492919061684e565b604051809103902090505b80612c0b610164612e4f565b03612bff57505b6111d181613efd565b60006120638383612c3760408051602081019091526000815290565b613d8d565b612c44610edb565b6001600160a01b0316336001600160a01b031614612c745760405162461bcd60e51b81526004016104539061685e565b30612c7d610edb565b6001600160a01b031614612cbb5760008036604051612c9d92919061684e565b604051809103902090505b80612cb4610164612e4f565b03612ca857505b6111d181613fa0565b60006064612cd1836119d3565b6101f854604051632394e7a360e21b8152600481018690526001600160a01b0390911690638e539e8c90602401602060405180830381865afa158015612d1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d3f9190616a5b565b612d499190616b0f565b610fbb9190616a11565b600080600080612d6285613572565b93509350935093506117a184848484611378565b60006001600160e01b03198216636e665ced60e01b1480610fbb5750610fbb82614302565b6000610fbb612da861439e565b8360405161190160f01b8152600281019290925260228201526042902090565b6000806000612dd9878787876143a8565b915091506114618161446c565b6000805462010000900460ff1615612e1157604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615612e425760405163b1d02c3d60e01b815260040160405180910390fd5b611b5886868686866145b6565b6000612e6a8254600f81810b600160801b909204900b131590565b15612e8857604051631ed9509560e11b815260040160405180910390fd5b508054600f0b6000818152600180840160205260408220805492905583546fffffffffffffffffffffffffffffffff191692016001600160801b03169190911790915590565b6064811115612f515760405162461bcd60e51b815260206004820152604360248201527f476f7665726e6f72566f74657351756f72756d4672616374696f6e3a2071756f60448201527f72756d4e756d657261746f72206f7665722071756f72756d44656e6f6d696e616064820152623a37b960e91b608482015260a401610453565b6000612f5b61206a565b90508015801590612f6d575061025e54155b15612fd257604080518082019091526000815261025e9060208101612f91846146b9565b6001600160e01b039081169091528254600181018455600093845260209384902083519490930151909116600160201b0263ffffffff909316929092179101555b613000612fed612fe0611fdf565b65ffffffffffff166138ce565b612ff6846146b9565b61025e9190614722565b505060408051828152602081018490527f0553476bf02ef2726e8ce5ced78d63e26e602e4a2257b1f559418e24b4633997910160405180910390a15050565b60008061304e86868686612a27565b9050600461305b82611773565b600781111561306c5761306c6162eb565b146130895760405162461bcd60e51b81526004016104539061693a565b61022b546040805163793d064960e11b815290516000926001600160a01b03169163f27a0c929160048083019260209291908290030181865afa1580156130d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130f89190616a5b565b61022b5460405163b1c5f42760e01b81529192506001600160a01b03169063b1c5f42790613133908a908a908a906000908b90600401616b26565b602060405180830381865afa158015613150573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131749190616a5b565b600083815261022c60205260408082209290925561022b5491516308f2a0bb60e41b81526001600160a01b0390921691638f2a0bb0916131c1918b918b918b91908b908990600401616b74565b600060405180830381600087803b1580156131db57600080fd5b505af11580156131ef573d6000803e3d6000fd5b505050507f9a2e42fd6722813d69113e7d0079d3d940171428df7373df9c7f7617cfda28928282426132219190616bcc565b604080519283526020830191909152015b60405180910390a15095945050505050565b3061324d610edb565b6001600160a01b0316146132de5760005b84518110156117a157306001600160a01b0316858281518110613283576132836168cf565b60200260200101516001600160a01b0316036132ce576132ce8382815181106132ae576132ae6168cf565b60200260200101518051906020012061016461473d90919063ffffffff16565b6132d7816168fb565b905061325e565b5050505050565b60005462010000900460ff161561330f57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff16156133405760405163b1d02c3d60e01b815260040160405180910390fd5b60005b84518110156133b9576102c16000868381518110613363576133636168cf565b6020908102919091018101516001600160a01b031682528101919091526040016000205460ff166133a757604051630b094f2760e31b815260040160405180910390fd5b806133b1816168fb565b915050613343565b506132de8585858585614779565b306133d0610edb565b6001600160a01b0316146132de5761016454600f81810b600160801b909204900b13156132de576000610164556132de565b60006113498585858561342060408051602081019091526000815290565b612de6565b600080613431836147ee565b90506004816007811115613447576134476162eb565b146134525792915050565b600083815261022c60205260409020548061346e575092915050565b61022b54604051632ab0f52960e01b8152600481018390526001600160a01b0390911690632ab0f52990602401602060405180830381865afa1580156134b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134dc9190616bdf565b156134eb575060079392505050565b61022b54604051632c258a9f60e11b8152600481018390526001600160a01b039091169063584b153e90602401602060405180830381865afa158015613535573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135599190616bdf565b15613568575060059392505050565b5060029392505050565b60608060606000806101c660008781526020019081526020016000209050806001018160020161374483600301805480602002602001604051908101604052809291908181526020016000905b8282101561366b5783829060005260206000200180546135de90616895565b80601f016020809104026020016040519081016040528092919081815260200182805461360a90616895565b80156136575780601f1061362c57610100808354040283529160200191613657565b820191906000526020600020905b81548152906001019060200180831161363a57829003601f168201915b5050505050815260200190600101906135bf565b50505060048601805460408051602080840282018101909252828152935060009084015b8282101561373b5783829060005260206000200180546136ae90616895565b80601f01602080910402602001604051908101604052809291908181526020018280546136da90616895565b80156137275780601f106136fc57610100808354040283529160200191613727565b820191906000526020600020905b81548152906001019060200180831161370a57829003601f168201915b50505050508152602001906001019061368f565b505050506141d0565b600984015483546040805160208084028201810190925282815291869183018282801561379a57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161377c575b50505050509350828054806020026020016040519081016040528092919081815260200182805480156137ec57602002820191906000526020600020905b8154815260200190600101908083116137d8575b505050505092509450945094509450509193509193565b60008061381286868686612a27565b60008181526101c660205260409020549091506001600160a01b031633811480613866575061383f612900565b61386482600161384d611fdf565b6138579190616914565b65ffffffffffff16612c1b565b105b6138c25760405162461bcd60e51b815260206004820152602760248201527f476f7665726e6f72427261766f3a2070726f706f7365722061626f76652074686044820152661c995cda1bdb1960ca1b6064820152608401610453565b61176887878787614926565b600063ffffffff8211156139335760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b6064820152608401610453565b5090565b81546000908181600581111561399457600061395284614934565b61395c90856169e8565b60008881526020902090915081015463ffffffff908116908716101561398457809150613992565b61398f816001616bcc565b92505b505b60006139a287878585614a1c565b905080156139dd576139c7876139b96001846169e8565b600091825260209091200190565b54600160201b90046001600160e01b0316611768565b6000979650505050505050565b6101945460408051918252602082018390527fc565b045403dc03c2eea82b81a0465edad9e2e7fc4d97e11421c209da93d7a93910160405180910390a161019455565b6102c25460ff16613ad6576a084595161401484a0000006120056001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613a84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613aa89190616a5b565b1015613ac7576040516311b6707f60e01b815260040160405180910390fd5b6102c2805460ff191660011790555b565b6000613b3433868686516001600160401b03811115613af957613af9615d23565b604051908082528060200260200182016040528015613b2c57816020015b6060815260200190600190039081613b175790505b508787614112565b61134985858585614a72565b600054610100900460ff16613b675760405162461bcd60e51b815260040161045390616c01565b613b8e81613b896040805180820190915260018152603160f81b602082015290565b614e51565b6111d181614ea0565b600054610100900460ff16613bbe5760405162461bcd60e51b815260040161045390616c01565b613bc9838383614ed8565b505050565b600054610100900460ff16613ad65760405162461bcd60e51b815260040161045390616c01565b600054610100900460ff16613c1c5760405162461bcd60e51b815260040161045390616c01565b6111d181614f1a565b600054610100900460ff16613c4c5760405162461bcd60e51b815260040161045390616c01565b6111d181614f64565b600054610100900460ff16613c7c5760405162461bcd60e51b815260040161045390616c01565b6111d181614f8b565b600054610100900460ff16613cac5760405162461bcd60e51b815260040161045390616c01565b6111d181614fb2565b600054610100900460ff16613cdc5760405162461bcd60e51b815260040161045390616c01565b600080546001600160a01b039092166301000000026301000000600160b81b0319909216919091179055565b6060609a80546111e490616895565b6060609b80546111e490616895565b600065ffffffffffff8211156139335760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203460448201526538206269747360d01b6064820152608401610453565b6101f854604051630748d63560e31b81526001600160a01b038581166004830152602482018590526000921690633a46b1a890604401602060405180830381865afa158015613de0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120609190616a5b565b805460009080156121b257613e1e836139b96001846169e8565b54600160201b90046001600160e01b0316612063565b61022b54604080516001600160a01b03928316815291831660208301527f08f74ea46ef7894f65eabfb5e6e695de773a000b47c529ab559178069b226401910160405180910390a161022b80546001600160a01b0319166001600160a01b0392909216919091179055565b600081604051602001613eb29190616c4c565b6040516020818303038152906040528051906020012083604051602001613ed99190616c4c565b6040516020818303038152906040528051906020012014905092915050565b015190565b60008111613f5d5760405162461bcd60e51b815260206004820152602760248201527f476f7665726e6f7253657474696e67733a20766f74696e6720706572696f6420604482015266746f6f206c6f7760c81b6064820152608401610453565b6101955460408051918252602082018390527f7e3f7f0708a84de9203036abaa450dccc85ad5ff52f78c170f3edb55cf5e8828910160405180910390a161019555565b6101965460408051918252602082018390527fccb45da8d5717e6c4544694297c4ba5cf151d455c9bb0ed4fc7a38411bc05461910160405180910390a161019655565b61028f54604080516001600160401b03928316815291831660208301527f7ca4ac117ed3cdce75c1161d8207c440389b1a15d69d096831664657c07dafc2910160405180910390a161028f805467ffffffffffffffff19166001600160401b0392909216919091179055565b600080546040516001600160a01b0380851693630100000090930416917f44fc1b38a4abaa91ebd1b628a5b259a698f86238c8217d68f516e87769c60c0b91a3600080546001600160a01b039092166301000000026301000000600160b81b0319909216919091179055565b60008181526101636020526040812060010154610fbb906001600160401b0316600084815261029060205260409020546001600160401b0316614fd9565b60608315614108575081612063565b6120638383614fef565b805160208201206000614130878761412a88886141d0565b85612a27565b60008181526101c6602052604090206009810154919250906141c55780546001600160a01b0319166001600160a01b038a16178155875161417a90600183019060208b0190615abe565b50865161419090600283019060208a0190615b1f565b5085516141a69060038301906020890190615b5a565b5084516141bc9060048301906020880190615bac565b50600981018390555b505050505050505050565b6060600082516001600160401b038111156141ed576141ed615d23565b60405190808252806020026020018201604052801561422057816020015b606081526020019060019003908161420b5790505b50905060005b81518110156142fa57848181518110614241576142416168cf565b6020026020010151516000146142b157848181518110614263576142636168cf565b602002602001015180519060200120848281518110614284576142846168cf565b602002602001015160405160200161429d929190616c68565b6040516020818303038152906040526142cc565b8381815181106142c3576142c36168cf565b60200260200101515b8282815181106142de576142de6168cf565b6020026020010181905250806142f3906168fb565b9050614226565b509392505050565b600063288ace0360e11b6318df743f60e31b63bf26d89760e01b6379dd796f60e01b6001600160e01b0319861682148061434857506001600160e01b0319868116908216145b8061435f57506001600160e01b0319868116908516145b8061437a57506001600160e01b03198616630271189760e51b145b80611b5857506301ffc9a760e01b6001600160e01b03198716149695505050505050565b6000610ef0615019565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156143df5750600090506003614463565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614433573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661445c57600060019250925050614463565b9150600090505b94509492505050565b6000816004811115614480576144806162eb565b036144885750565b600181600481111561449c5761449c6162eb565b036144e95760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610453565b60028160048111156144fd576144fd6162eb565b0361454a5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610453565b600381600481111561455e5761455e6162eb565b036111d15760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610453565b6000806145c6878787878761508d565b600088815261029060205260409020549091506001600160401b03161580156145f357506145f3876151e3565b15611b5857600061460d61028f546001600160401b031690565b614615611fdf565b65ffffffffffff166146279190616c99565b90506146328861290c565b816001600160401b03161115614681576040516001600160401b038216815288907f541f725fb9f7c98a30cc9c0ff32fbb14358cd7159c847a3aa20a2bdc442ba5119060200160405180910390a25b600088815261029060205260409020805467ffffffffffffffff19166001600160401b03929092169190911790559695505050505050565b60006001600160e01b038211156139335760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b6064820152608401610453565b600080614730858585615223565b915091505b935093915050565b8154600160801b90819004600f0b6000818152600180860160205260409091209390935583546001600160801b03908116939091011602179055565b61022b5460405163e38335e560e01b81526001600160a01b039091169063e38335e59034906147b5908890889088906000908990600401616b26565b6000604051808303818588803b1580156147ce57600080fd5b505af11580156147e2573d6000803e3d6000fd5b50505050505050505050565b600081815261016360205260408120600281015460ff16156148135750600792915050565b6002810154610100900460ff161561482e5750600292915050565b600083815261016360205260408120546001600160401b0316908190036148975760405162461bcd60e51b815260206004820152601d60248201527f476f7665726e6f723a20756e6b6e6f776e2070726f706f73616c2069640000006044820152606401610453565b60006148a1611fdf565b65ffffffffffff1690508082106148bd57506000949350505050565b60006148c88661290c565b90508181106148dd5750600195945050505050565b6148e6866151e3565b8015614909575060008681526101c6602052604090206006810154600590910154115b1561491a5750600495945050505050565b50600395945050505050565b6000611349858585856153c2565b60008160000361494657506000919050565b6000600161495384615478565b901c6001901b9050600181848161496c5761496c6169fb565b048201901c90506001818481614984576149846169fb565b048201901c9050600181848161499c5761499c6169fb565b048201901c905060018184816149b4576149b46169fb565b048201901c905060018184816149cc576149cc6169fb565b048201901c905060018184816149e4576149e46169fb565b048201901c905060018184816149fc576149fc6169fb565b048201901c905061206381828581614a1657614a166169fb565b0461550c565b60005b818310156142fa576000614a33848461551b565b60008781526020902090915063ffffffff86169082015463ffffffff161115614a5e57809250614a6c565b614a69816001616bcc565b93505b50614a1f565b600033614a7f8184615536565b614acb5760405162461bcd60e51b815260206004820152601d60248201527f476f7665726e6f723a2070726f706f73657220726573747269637465640000006044820152606401610453565b6000614ad5611fdf565b65ffffffffffff169050614ae7612900565b614af683610e216001856169e8565b1015614b5e5760405162461bcd60e51b815260206004820152603160248201527f476f7665726e6f723a2070726f706f73657220766f7465732062656c6f7720706044820152701c9bdc1bdcd85b081d1a1c995cda1bdb19607a1b6064820152608401610453565b6000614b738888888880519060200120612a27565b90508651885114614b965760405162461bcd60e51b815260040161045390616cb9565b8551885114614bb75760405162461bcd60e51b815260040161045390616cb9565b6000885111614c085760405162461bcd60e51b815260206004820152601860248201527f476f7665726e6f723a20656d7074792070726f706f73616c00000000000000006044820152606401610453565b600081815261016360205260409020546001600160401b031615614c785760405162461bcd60e51b815260206004820152602160248201527f476f7665726e6f723a2070726f706f73616c20616c72656164792065786973746044820152607360f81b6064820152608401610453565b6000614c846101945490565b614c8e9084616bcc565b90506000614c9c6101955490565b614ca69083616bcc565b90506040518060e00160405280614cbc84615627565b6001600160401b031681526001600160a01b038716602082015260006040820152606001614ce983615627565b6001600160401b03908116825260006020808401829052604080850183905260609485018390528883526101638252918290208551815492870151878501519186166001600160e01b031990941693909317600160401b6001600160a01b039094168402176001600160e01b0316600160e01b60e09290921c91909102178155938501516080860151908416921c0217600183015560a08301516002909201805460c09094015161ffff1990941692151561ff00191692909217610100931515939093029290921790558a517f7d84a6263ae0d98d3329bd7b46bb4e8d6f98cd35a7adb45c274c8b7fd5ebd5e091859188918e918e91811115614dee57614dee615d23565b604051908082528060200260200182016040528015614e2157816020015b6060815260200190600190039081614e0c5790505b508d88888f604051614e3b99989796959493929190616cfa565b60405180910390a1509098975050505050505050565b600054610100900460ff16614e785760405162461bcd60e51b815260040161045390616c01565b609a614e848382616dd8565b50609b614e918282616dd8565b50506000609881905560995550565b600054610100900460ff16614ec75760405162461bcd60e51b815260040161045390616c01565b610162614ed48282616dd8565b5050565b600054610100900460ff16614eff5760405162461bcd60e51b815260040161045390616c01565b614f08836139ea565b614f1182613efd565b613bc981613fa0565b600054610100900460ff16614f415760405162461bcd60e51b815260040161045390616c01565b6101f880546001600160a01b0319166001600160a01b0392909216919091179055565b600054610100900460ff166121165760405162461bcd60e51b815260040161045390616c01565b600054610100900460ff166111c85760405162461bcd60e51b815260040161045390616c01565b600054610100900460ff16612ae05760405162461bcd60e51b815260040161045390616c01565b6000818311614fe85781612063565b5090919050565b815115614fff5781518083602001fd5b8060405162461bcd60e51b81526004016104539190615edc565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f61504461568f565b61504c6156e8565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b60008581526101636020526040812060016150a788611773565b60078111156150b8576150b86162eb565b146151115760405162461bcd60e51b815260206004820152602360248201527f476f7665726e6f723a20766f7465206e6f742063757272656e746c792061637460448201526269766560e81b6064820152608401610453565b805460009061512b9088906001600160401b031686613d8d565b905061513a8888888488615719565b835160000361518f57866001600160a01b03167fb8e138887d0aa13bab447e82de9d5c1777041ecd21ca36ba824ff1e6c07ddda4898884896040516151829493929190616e97565b60405180910390a2611768565b866001600160a01b03167fe2babfbac5889a709b63bb7f598b324e08bc5a4fb9ec647fb3cbc9ec07eb871289888489896040516151d0959493929190616ebf565b60405180910390a2979650505050505050565b60008181526101c660205260408120600581015461521a610ea285600090815261016360205260409020546001600160401b031690565b11159392505050565b825460009081908015615369576000615241876139b96001856169e8565b60408051808201909152905463ffffffff808216808452600160201b9092046001600160e01b0316602084015291925090871610156152c25760405162461bcd60e51b815260206004820152601b60248201527f436865636b706f696e743a2064656372656173696e67206b65797300000000006044820152606401610453565b805163ffffffff80881691160361530a57846152e3886139b96001866169e8565b80546001600160e01b0392909216600160201b0263ffffffff909216919091179055615359565b6040805180820190915263ffffffff80881682526001600160e01b0380881660208085019182528b54600181018d5560008d81529190912094519151909216600160201b029216919091179101555b6020015192508391506147359050565b50506040805180820190915263ffffffff80851682526001600160e01b0380851660208085019182528854600181018a5560008a815291822095519251909316600160201b029190931617920191909155905081614735565b6000806153d1868686866158b7565b600081815261022c6020526040902054909150156113495761022b54600082815261022c60205260409081902054905163c4d252f560e01b81526001600160a01b039092169163c4d252f59161542d9160040190815260200190565b600060405180830381600087803b15801561544757600080fd5b505af115801561545b573d6000803e3d6000fd5b505050600082815261022c60205260408120555095945050505050565b600080608083901c1561548d57608092831c92015b604083901c1561549f57604092831c92015b602083901c156154b157602092831c92015b601083901c156154c357601092831c92015b600883901c156154d557600892831c92015b600483901c156154e757600492831c92015b600283901c156154f957600292831c92015b600183901c15610fbb5760010192915050565b6000818310614fe85781612063565b600061552a6002848418616a11565b61206390848416616bcc565b8051600090603481101561554e576001915050610fbb565b82810160131901516001600160a01b031981166b046e0e4dee0dee6cae47a60f60a31b1461558157600192505050610fbb565b60008061558f6028856169e8565b90505b83811015615606576000806155c68884815181106155b2576155b26168cf565b01602001516001600160f81b0319166159c4565b91509150816155de5760019650505050505050610fbb565b8060ff166004856001600160a01b0316901b1793505050806155ff906168fb565b9050615592565b50856001600160a01b0316816001600160a01b031614935050505092915050565b60006001600160401b038211156139335760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201526534206269747360d01b6064820152608401610453565b60008061569a613d08565b8051909150156156b1578051602090910120919050565b60985480156156c05792915050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4709250505090565b6000806156f3613d17565b80519091501561570a578051602090910120919050565b60995480156156c05792915050565b60008581526101c6602090815260408083206001600160a01b038816845260088101909252909120805460ff16156157a95760405162461bcd60e51b815260206004820152602d60248201527f476f7665726e6f72436f6d7061746962696c697479427261766f3a20766f746560448201526c08185b1c9958591e4818d85cdd609a1b6064820152608401610453565b805460ff86166101000261ffff199091161760011781556157c984615a56565b81546001600160601b039190911662010000026dffffffffffffffffffffffff00001990911617815560ff8516615819578382600601600082825461580e9190616bcc565b90915550612a1e9050565b60001960ff861601615839578382600501600082825461580e9190616bcc565b60011960ff861601615859578382600701600082825461580e9190616bcc565b60405162461bcd60e51b815260206004820152602d60248201527f476f7665726e6f72436f6d7061746962696c697479427261766f3a20696e766160448201526c6c696420766f7465207479706560981b6064820152608401610453565b6000806158c686868686612a27565b905060006158d382611773565b905060028160078111156158e9576158e96162eb565b1415801561590957506006816007811115615906576159066162eb565b14155b801561592757506007816007811115615924576159246162eb565b14155b6159735760405162461bcd60e51b815260206004820152601d60248201527f476f7665726e6f723a2070726f706f73616c206e6f74206163746976650000006044820152606401610453565b6000828152610163602052604090819020600201805461ff001916610100179055517f789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c906132329084815260200190565b60008060f883901c602f811180156159df5750603a8160ff16105b156159f457600194602f199091019350915050565b8060ff166040108015615a0a575060478160ff16105b15615a1f576001946036199091019350915050565b8060ff166060108015615a35575060678160ff16105b15615a4a576001946056199091019350915050565b50600093849350915050565b60006001600160601b038211156139335760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203960448201526536206269747360d01b6064820152608401610453565b828054828255906000526020600020908101928215615b13579160200282015b82811115615b1357825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190615ade565b50613933929150615bfe565b828054828255906000526020600020908101928215615b13579160200282015b82811115615b13578251825591602001919060010190615b3f565b828054828255906000526020600020908101928215615ba0579160200282015b82811115615ba05782518290615b909082616dd8565b5091602001919060010190615b7a565b50613933929150615c13565b828054828255906000526020600020908101928215615bf2579160200282015b82811115615bf25782518290615be29082616dd8565b5091602001919060010190615bcc565b50613933929150615c30565b5b808211156139335760008155600101615bff565b80821115613933576000615c278282615c4d565b50600101615c13565b80821115613933576000615c448282615c4d565b50600101615c30565b508054615c5990616895565b6000825580601f10615c69575050565b601f0160209004906000526020600020908101906111d19190615bfe565b600060208284031215615c9957600080fd5b5035919050565b600060208284031215615cb257600080fd5b81356001600160e01b03198116811461206357600080fd5b803560ff8116811461195b57600080fd5b60008083601f840112615ced57600080fd5b5081356001600160401b03811115615d0457600080fd5b602083019150836020828501011115615d1c57600080fd5b9250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715615d6157615d61615d23565b604052919050565b60006001600160401b03821115615d8257615d82615d23565b50601f01601f191660200190565b600082601f830112615da157600080fd5b8135615db4615daf82615d69565b615d39565b818152846020838601011115615dc957600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060008060008060e0898b031215615e0257600080fd5b88359750615e1260208a01615cca565b965060408901356001600160401b0380821115615e2e57600080fd5b615e3a8c838d01615cdb565b909850965060608b0135915080821115615e5357600080fd5b50615e608b828c01615d90565b945050615e6f60808a01615cca565b925060a0890135915060c089013590509295985092959890939650565b60005b83811015615ea7578181015183820152602001615e8f565b50506000910152565b60008151808452615ec8816020860160208601615e8c565b601f01601f19169290920160200192915050565b6020815260006120636020830184615eb0565b6001600160a01b03811681146111d157600080fd5b60008060008060808587031215615f1a57600080fd5b8435615f2581615eef565b93506020850135615f3581615eef565b92506040850135915060608501356001600160401b03811115615f5757600080fd5b615f6387828801615d90565b91505092959194509250565b60006001600160401b03821115615f8857615f88615d23565b5060051b60200190565b600082601f830112615fa357600080fd5b81356020615fb3615daf83615f6f565b82815260059290921b84018101918181019086841115615fd257600080fd5b8286015b84811015615ff6578035615fe981615eef565b8352918301918301615fd6565b509695505050505050565b600082601f83011261601257600080fd5b81356020616022615daf83615f6f565b82815260059290921b8401810191818101908684111561604157600080fd5b8286015b84811015615ff65780358352918301918301616045565b600082601f83011261606d57600080fd5b8135602061607d615daf83615f6f565b82815260059290921b8401810191818101908684111561609c57600080fd5b8286015b84811015615ff65780356001600160401b038111156160bf5760008081fd5b6160cd8986838b0101615d90565b8452509183019183016160a0565b600080600080608085870312156160f157600080fd5b84356001600160401b038082111561610857600080fd5b61611488838901615f92565b9550602087013591508082111561612a57600080fd5b61613688838901616001565b9450604087013591508082111561614c57600080fd5b506161598782880161605c565b949793965093946060013593505050565b60006020828403121561617c57600080fd5b813561206381615eef565b600081518084526020808501945080840160005b838110156161c05781516001600160a01b03168752958201959082019060010161619b565b509495945050505050565b600081518084526020808501945080840160005b838110156161c0578151875295820195908201906001016161df565b600081518084526020808501808196508360051b8101915082860160005b85811015616243578284038952616231848351615eb0565b98850198935090840190600101616219565b5091979650505050505050565b6080815260006162636080830187616187565b828103602084015261627581876161cb565b9050828103604084015261628981866161fb565b9050828103606084015261176881856161fb565b600080600080600060a086880312156162b557600080fd5b853594506162c560208701615cca565b93506162d360408701615cca565b94979396509394606081013594506080013592915050565b634e487b7160e01b600052602160045260246000fd5b602081016008831061632357634e487b7160e01b600052602160045260246000fd5b91905290565b6000806040838503121561633c57600080fd5b82359150602083013561634e81615eef565b809150509250929050565b6000806040838503121561636c57600080fd5b8235915061637c60208401615cca565b90509250929050565b60008060008060006080868803121561639d57600080fd5b853594506163ad60208701615cca565b935060408601356001600160401b03808211156163c957600080fd5b6163d589838a01615cdb565b909550935060608801359150808211156163ee57600080fd5b506163fb88828901615d90565b9150509295509295909350565b6000806000806060858703121561641e57600080fd5b8435935061642e60208601615cca565b925060408501356001600160401b0381111561644957600080fd5b61645587828801615cdb565b95989497509550505050565b6000806000806080858703121561647757600080fd5b84356001600160401b038082111561648e57600080fd5b61649a88838901615f92565b955060208701359150808211156164b057600080fd5b6164bc88838901616001565b945060408701359150808211156164d257600080fd5b6164de8883890161605c565b935060608701359150808211156164f457600080fd5b50615f6387828801615d90565b60ff60f81b8816815260e06020820152600061652060e0830189615eb0565b82810360408401526165328189615eb0565b606084018890526001600160a01b038716608085015260a0840186905283810360c085015290506110ab81856161cb565b60008060006060848603121561657857600080fd5b833561658381615eef565b92506020840135915060408401356001600160401b038111156165a557600080fd5b6165b186828701615d90565b9150509250925092565b600080600080604085870312156165d157600080fd5b84356001600160401b03808211156165e857600080fd5b6165f488838901615cdb565b9096509450602087013591508082111561660d57600080fd5b5061645587828801615cdb565b600080600080600060a0868803121561663257600080fd5b853561663d81615eef565b9450602086013561664d81615eef565b935060408601356001600160401b038082111561666957600080fd5b61667589838a01616001565b9450606088013591508082111561668b57600080fd5b61669789838a01616001565b935060808801359150808211156163ee57600080fd5b600080600080606085870312156166c357600080fd5b84356166ce81615eef565b93506020850135925060408501356001600160401b0381111561644957600080fd5b60006020828403121561670257600080fd5b81356001600160401b038116811461206357600080fd5b600080600080600060a0868803121561673157600080fd5b85356001600160401b038082111561674857600080fd5b61675489838a01615f92565b9650602088013591508082111561676a57600080fd5b61677689838a01616001565b9550604088013591508082111561678c57600080fd5b61679889838a0161605c565b945060608801359150808211156167ae57600080fd5b61669789838a0161605c565b600080604083850312156167cd57600080fd5b82356167d881615eef565b946020939093013593505050565b600080600080600060a086880312156167fe57600080fd5b853561680981615eef565b9450602086013561681981615eef565b9350604086013592506060860135915060808601356001600160401b0381111561684257600080fd5b6163fb88828901615d90565b8183823760009101908152919050565b60208082526018908201527f476f7665726e6f723a206f6e6c79476f7665726e616e63650000000000000000604082015260600190565b600181811c908216806168a957607f821691505b6020821081036168c957634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161690d5761690d6168e5565b5060010190565b65ffffffffffff828116828216039080821115616933576169336168e5565b5092915050565b60208082526021908201527f476f7665726e6f723a2070726f706f73616c206e6f74207375636365737366756040820152601b60fa1b606082015260800190565b60006020828403121561698d57600080fd5b81516001600160401b038111156169a357600080fd5b8201601f810184136169b457600080fd5b80516169c2615daf82615d69565b8181528560208385010111156169d757600080fd5b611349826020830160208601615e8c565b81810381811115610fbb57610fbb6168e5565b634e487b7160e01b600052601260045260246000fd5b600082616a2e57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215616a4557600080fd5b815165ffffffffffff8116811461206357600080fd5b600060208284031215616a6d57600080fd5b5051919050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b604081526000616ab1604083018688616a74565b8281036020840152611768818587616a74565b608081526000616ad76080830187616187565b8281036020840152616ae981876161cb565b90508281036040840152616afd81866161fb565b91505082606083015295945050505050565b8082028115828204841417610fbb57610fbb6168e5565b60a081526000616b3960a0830188616187565b8281036020840152616b4b81886161cb565b90508281036040840152616b5f81876161fb565b60608401959095525050608001529392505050565b60c081526000616b8760c0830189616187565b8281036020840152616b9981896161cb565b90508281036040840152616bad81886161fb565b60608401969096525050608081019290925260a0909101529392505050565b80820180821115610fbb57610fbb6168e5565b600060208284031215616bf157600080fd5b8151801515811461206357600080fd5b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60008251616c5e818460208701615e8c565b9190910192915050565b6001600160e01b0319831681528151600090616c8b816004850160208701615e8c565b919091016004019392505050565b6001600160401b03818116838216019080821115616933576169336168e5565b60208082526021908201527f476f7665726e6f723a20696e76616c69642070726f706f73616c206c656e67746040820152600d60fb1b606082015260800190565b8981526001600160a01b038916602082015261012060408201819052600090616d258382018b616187565b90508281036060840152616d39818a6161cb565b90508281036080840152616d4d81896161fb565b905082810360a0840152616d6181886161fb565b90508560c08401528460e0840152828103610100840152616d828185615eb0565b9c9b505050505050505050505050565b601f821115613bc957600081815260208120601f850160051c81016020861015616db95750805b601f850160051c820191505b818110156117a157828155600101616dc5565b81516001600160401b03811115616df157616df1615d23565b616e0581616dff8454616895565b84616d92565b602080601f831160018114616e3a5760008415616e225750858301515b600019600386901b1c1916600185901b1785556117a1565b600085815260208120601f198616915b82811015616e6957888601518255948401946001909101908401616e4a565b5085821015616e875787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b84815260ff84166020820152826040820152608060608201526000611b586080830184615eb0565b85815260ff8516602082015283604082015260a060608201526000616ee760a0830185615eb0565b8281036080840152611c718185615eb056fe476f7665726e6f723a2072656c617920726576657274656420776974686f7574206d657373616765a164736f6c6343000811000a", - }, - { - ContractAddr: GovTokenContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/2d6372ddba77902ef01e45887a425938376d5a5c", - Code: "608060405234801561001057600080fd5b50600436106102065760003560e01c806370a082311161011a5780639ab24eb0116100ad578063d505accf1161007c578063d505accf1461049d578063dd62ed3e146104b0578063e5ed5b1e146104c3578063f1127ed8146104d6578063f1fad1041461051357600080fd5b80639ab24eb014610451578063a457c2d714610464578063a9059cbb14610477578063c3cda5201461048a57600080fd5b806384b0196e116100e957806384b0196e146103fc5780638e539e8c1461041757806391ddadf41461042a57806395d89b411461044957600080fd5b806370a08231146103aa57806379cc6790146103d35780637ecebe00146103e15780638129fc1c146103f457600080fd5b8063395093511161019d5780634bf5d7e91161016c5780634bf5d7e91461031b5780634bf6c88214610323578063587cde1e1461032b5780635c19a95c1461036f5780636fcfff451461038257600080fd5b806339509351146102cf5780633a46b1a8146102e257806342966c68146102f5578063448407751461030857600080fd5b806323b872dd116101d957806323b872dd1461028a5780633041949b1461029d578063313ce567146102b25780633644e515146102c757600080fd5b8063039c91fc1461020b57806306fdde031461024a578063095ea7b31461025f57806318160ddd14610282575b600080fd5b6102376102193660046120c7565b61013060209081526000928352604080842090915290825290205481565b6040519081526020015b60405180910390f35b61025261051b565b6040516102419190612140565b61027261026d366004612153565b6105ad565b6040519015158152602001610241565b603554610237565b61027261029836600461217d565b6105c7565b6102b06102ab3660046120c7565b6105eb565b005b60125b60405160ff9091168152602001610241565b610237610624565b6102726102dd366004612153565b610633565b6102376102f0366004612153565b610655565b6102b06103033660046121b9565b6106da565b6102b06103163660046121d2565b6106f3565b61025261076c565b6102b5600881565b610357610339366004612256565b6001600160a01b03908116600090815260fe60205260409020541690565b6040516001600160a01b039091168152602001610241565b6102b061037d366004612256565b610804565b610395610390366004612256565b610811565b60405163ffffffff9091168152602001610241565b6102376103b8366004612256565b6001600160a01b031660009081526033602052604090205490565b6102b0610303366004612153565b6102376103ef366004612256565b610833565b6102b0610851565b610404610a31565b6040516102419796959493929190612271565b6102376104253660046121b9565b610acf565b610432610b37565b60405165ffffffffffff9091168152602001610241565b610252610b42565b61023761045f366004612256565b610b51565b610272610472366004612153565b610bd3565b610272610485366004612153565b610c4e565b6102b0610498366004612318565b610c5c565b6102b06104ab366004612370565b610d92565b6102376104be3660046120c7565b610ef6565b6102b06104d13660046120c7565b610f21565b6104e96104e43660046123da565b610f51565b60408051825163ffffffff1681526020928301516001600160e01b03169281019290925201610241565b6102b5601181565b60606036805461052a9061241a565b80601f01602080910402602001604051908101604052809291908181526020018280546105569061241a565b80156105a35780601f10610578576101008083540402835291602001916105a3565b820191906000526020600020905b81548152906001019060200180831161058657829003601f168201915b5050505050905090565b6000336105bb818585610fd5565b60019150505b92915050565b6000336105d5858285610fee565b6105e0858585611068565b506001949350505050565b336120021461061657604051630f22c43960e41b815261200260048201526024015b60405180910390fd5b6106208282611081565b5050565b600061062e6111b1565b905090565b6000336105bb8185856106468383610ef6565b6106509190612464565b610fd5565b600061065f610b37565b65ffffffffffff1682106106b15760405162461bcd60e51b815260206004820152601960248201527804552433230566f7465733a20667574757265206c6f6f6b757603c1b604482015260640161060d565b6001600160a01b038316600090815260ff602052604090206106d390836111bb565b9392505050565b60405163e5d8776760e01b815260040160405180910390fd5b336120021461071957604051630f22c43960e41b8152612002600482015260240161060d565b8160005b818110156107655761075585858381811061073a5761073a612477565b905060200201602081019061074f9190612256565b84611081565b61075e8161248d565b905061071d565b5050505050565b606043610777610b37565b65ffffffffffff16146107cc5760405162461bcd60e51b815260206004820152601d60248201527f4552433230566f7465733a2062726f6b656e20636c6f636b206d6f6465000000604482015260640161060d565b5060408051808201909152601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000602082015290565b61080e33826112a4565b50565b6001600160a01b038116600090815260ff60205260408120546105c19061131e565b6001600160a01b038116600090815260cb60205260408120546105c1565b600054610100900460ff16158080156108715750600054600160ff909116105b8061088b5750303b15801561088b575060005460ff166001145b6108ee5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161060d565b6000805460ff191660011790558015610911576000805461ff0019166101001790555b3341146109315760405163022d8c9560e31b815260040160405180910390fd5b3a15610950576040516383f1b1d360e01b815260040160405180910390fd5b6109a4604051806040016040528060148152602001732129a19023b7bb32b93730b731b2902a37b5b2b760611b8152506040518060400160405280600681526020016533b7bb21272160d11b815250611387565b6109ac6113b8565b6109e1604051806040016040528060148152602001732129a19023b7bb32b93730b731b2902a37b5b2b760611b8152506113e1565b6109e96113b8565b801561080e576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b6000606080600080600060606097546000801b148015610a515750609854155b610a955760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b604482015260640161060d565b610a9d61142b565b610aa561143a565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b6000610ad9610b37565b65ffffffffffff168210610b2b5760405162461bcd60e51b815260206004820152601960248201527804552433230566f7465733a20667574757265206c6f6f6b757603c1b604482015260640161060d565b6105c1610100836111bb565b600061062e43611449565b60606037805461052a9061241a565b6001600160a01b038116600090815260ff60205260408120548015610bc0576001600160a01b038316600090815260ff6020526040902080546000198301908110610b9e57610b9e612477565b60009182526020909120015464010000000090046001600160e01b0316610bc3565b60005b6001600160e01b03169392505050565b60003381610be18286610ef6565b905083811015610c415760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161060d565b6105e08286868403610fd5565b6000336105bb818585611068565b83421115610cac5760405162461bcd60e51b815260206004820152601d60248201527f4552433230566f7465733a207369676e61747572652065787069726564000000604482015260640161060d565b604080517fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60208201526001600160a01b038816918101919091526060810186905260808101859052600090610d2690610d1e9060a001604051602081830303815290604052805190602001206114b0565b8585856114dd565b9050610d3181611505565b8614610d7f5760405162461bcd60e51b815260206004820152601960248201527f4552433230566f7465733a20696e76616c6964206e6f6e636500000000000000604482015260640161060d565b610d8981886112a4565b50505050505050565b83421115610de25760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e65000000604482015260640161060d565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9888888610e118c611505565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090506000610e6c826114b0565b90506000610e7c828787876114dd565b9050896001600160a01b0316816001600160a01b031614610edf5760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e61747572650000604482015260640161060d565b610eea8a8a8a610fd5565b50505050505050505050565b6001600160a01b03918216600090815260346020908152604080832093909416825291909152205490565b3361200214610f4757604051630f22c43960e41b8152612002600482015260240161060d565b61062082826112a4565b60408051808201909152600080825260208201526001600160a01b038316600090815260ff60205260409020805463ffffffff8416908110610f9557610f95612477565b60009182526020918290206040805180820190915291015463ffffffff8116825264010000000090046001600160e01b0316918101919091529392505050565b604051632028747160e01b815260040160405180910390fd5b6000610ffa8484610ef6565b9050600019811461106257818110156110555760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161060d565b6110628484848403610fd5565b50505050565b604051638cd22d1960e01b815260040160405180910390fd5b604051630913db4760e01b81526001600160a01b03828116600483015260009190841690630913db4790602401602060405180830381865afa1580156110cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ef91906124bc565b6001600160a01b03808516600090815261013060209081526040808320938716835292905220549091508181101561116857600061112d82846124d5565b6001600160a01b038087166000908152610130602090815260408083209389168352929052208490559050611162848261152d565b50611062565b8181111561106257600061117c83836124d5565b6001600160a01b0380871660009081526101306020908152604080832093891683529290522084905590506107658482611537565b600061062e611541565b8154600090818160058111156112155760006111d6846115b5565b6111e090856124d5565b600088815260209020909150869082015463ffffffff16111561120557809150611213565b611210816001612464565b92505b505b80821015611262576000611229838361169d565b600088815260209020909150869082015463ffffffff16111561124e5780915061125c565b611259816001612464565b92505b50611215565b801561128e576000868152602090208101600019015464010000000090046001600160e01b0316611291565b60005b6001600160e01b03169695505050505050565b6001600160a01b03828116600081815260fe6020818152604080842080546033845282862054949093528787166001600160a01b03198416811790915590519190951694919391928592917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a46110628284836116b8565b600063ffffffff8211156113835760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b606482015260840161060d565b5090565b600054610100900460ff166113ae5760405162461bcd60e51b815260040161060d906124e8565b61062082826117f6565b600054610100900460ff166113df5760405162461bcd60e51b815260040161060d906124e8565b565b600054610100900460ff166114085760405162461bcd60e51b815260040161060d906124e8565b61080e81604051806040016040528060018152602001603160f81b815250611836565b60606099805461052a9061241a565b6060609a805461052a9061241a565b600065ffffffffffff8211156113835760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203460448201526538206269747360d01b606482015260840161060d565b60006105c16114bd6111b1565b8360405161190160f01b8152600281019290925260228201526042902090565b60008060006114ee87878787611885565b915091506114fb81611949565b5095945050505050565b6001600160a01b038116600090815260cb602052604090208054600181018255905b50919050565b6106208282611a93565b6106208282611b1e565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f61156c611b37565b611574611b90565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b6000816000036115c757506000919050565b600060016115d484611bc1565b901c6001901b905060018184816115ed576115ed612533565b048201901c9050600181848161160557611605612533565b048201901c9050600181848161161d5761161d612533565b048201901c9050600181848161163557611635612533565b048201901c9050600181848161164d5761164d612533565b048201901c9050600181848161166557611665612533565b048201901c9050600181848161167d5761167d612533565b048201901c90506106d38182858161169757611697612533565b04611c55565b60006116ac6002848418612549565b6106d390848416612464565b816001600160a01b0316836001600160a01b0316141580156116da5750600081115b156117f1576001600160a01b03831615611768576001600160a01b038316600090815260ff60205260408120819061171590611c6b85611c77565b91509150846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724838360405161175d929190918252602082015260400190565b60405180910390a250505b6001600160a01b038216156117f1576001600160a01b038216600090815260ff60205260408120819061179e90611dec85611c77565b91509150836001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a72483836040516117e6929190918252602082015260400190565b60405180910390a250505b505050565b600054610100900460ff1661181d5760405162461bcd60e51b815260040161060d906124e8565b603661182983826125b9565b5060376117f182826125b9565b600054610100900460ff1661185d5760405162461bcd60e51b815260040161060d906124e8565b609961186983826125b9565b50609a61187682826125b9565b50506000609781905560985550565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156118bc5750600090506003611940565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611910573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661193957600060019250925050611940565b9150600090505b94509492505050565b600081600481111561195d5761195d612679565b036119655750565b600181600481111561197957611979612679565b036119c65760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161060d565b60028160048111156119da576119da612679565b03611a275760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161060d565b6003816004811115611a3b57611a3b612679565b0361080e5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161060d565b611a9d8282611df8565b6035546001600160e01b031015611b0f5760405162461bcd60e51b815260206004820152603060248201527f4552433230566f7465733a20746f74616c20737570706c79207269736b73206f60448201526f766572666c6f77696e6720766f74657360801b606482015260840161060d565b611062610100611dec83611c77565b611b288282611ec1565b611062610100611c6b83611c77565b600080611b4261142b565b805190915015611b59578051602090910120919050565b6097548015611b685792915050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4709250505090565b600080611b9b61143a565b805190915015611bb2578051602090910120919050565b6098548015611b685792915050565b600080608083901c15611bd657608092831c92015b604083901c15611be857604092831c92015b602083901c15611bfa57602092831c92015b601083901c15611c0c57601092831c92015b600883901c15611c1e57600892831c92015b600483901c15611c3057600492831c92015b600283901c15611c4257600292831c92015b600183901c156105c15760010192915050565b6000818310611c6457816106d3565b5090919050565b60006106d382846124d5565b82546000908190818115611cc45760008781526020902082016000190160408051808201909152905463ffffffff8116825264010000000090046001600160e01b03166020820152611cd9565b60408051808201909152600080825260208201525b905080602001516001600160e01b03169350611cf984868863ffffffff16565b9250600082118015611d235750611d0e610b37565b65ffffffffffff16816000015163ffffffff16145b15611d6857611d3183611ffc565b60008881526020902083016000190180546001600160e01b03929092166401000000000263ffffffff909216919091179055611de2565b866040518060400160405280611d8c611d7f610b37565b65ffffffffffff1661131e565b63ffffffff168152602001611da086611ffc565b6001600160e01b0390811690915282546001810184556000938452602093849020835194909301519091166401000000000263ffffffff909316929092179101555b5050935093915050565b60006106d38284612464565b6001600160a01b038216611e4e5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161060d565b8060356000828254611e609190612464565b90915550506001600160a01b0382166000818152603360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361062060008383612065565b6001600160a01b038216611f215760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b606482015260840161060d565b6001600160a01b03821660009081526033602052604090205481811015611f955760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b606482015260840161060d565b6001600160a01b03831660008181526033602090815260408083208686039055603580548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36117f183600084612065565b60006001600160e01b038211156113835760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b606482015260840161060d565b6117f18383836001600160a01b03808416600090815260fe60205260409020546117f191166001600160a01b03808516600090815260fe602052604090205416836116b8565b80356001600160a01b03811681146120c257600080fd5b919050565b600080604083850312156120da57600080fd5b6120e3836120ab565b91506120f1602084016120ab565b90509250929050565b6000815180845260005b8181101561212057602081850181015186830182015201612104565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006106d360208301846120fa565b6000806040838503121561216657600080fd5b61216f836120ab565b946020939093013593505050565b60008060006060848603121561219257600080fd5b61219b846120ab565b92506121a9602085016120ab565b9150604084013590509250925092565b6000602082840312156121cb57600080fd5b5035919050565b6000806000604084860312156121e757600080fd5b833567ffffffffffffffff808211156121ff57600080fd5b818601915086601f83011261221357600080fd5b81358181111561222257600080fd5b8760208260051b850101111561223757600080fd5b60209283019550935061224d91860190506120ab565b90509250925092565b60006020828403121561226857600080fd5b6106d3826120ab565b60ff60f81b881681526000602060e08184015261229160e084018a6120fa565b83810360408501526122a3818a6120fa565b606085018990526001600160a01b038816608086015260a0850187905284810360c0860152855180825283870192509083019060005b818110156122f5578351835292840192918401916001016122d9565b50909c9b505050505050505050505050565b803560ff811681146120c257600080fd5b60008060008060008060c0878903121561233157600080fd5b61233a876120ab565b9550602087013594506040870135935061235660608801612307565b92506080870135915060a087013590509295509295509295565b600080600080600080600060e0888a03121561238b57600080fd5b612394886120ab565b96506123a2602089016120ab565b955060408801359450606088013593506123be60808901612307565b925060a0880135915060c0880135905092959891949750929550565b600080604083850312156123ed57600080fd5b6123f6836120ab565b9150602083013563ffffffff8116811461240f57600080fd5b809150509250929050565b600181811c9082168061242e57607f821691505b60208210810361152757634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b808201808211156105c1576105c161244e565b634e487b7160e01b600052603260045260246000fd5b60006001820161249f5761249f61244e565b5060010190565b634e487b7160e01b600052604160045260246000fd5b6000602082840312156124ce57600080fd5b5051919050565b818103818111156105c1576105c161244e565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b634e487b7160e01b600052601260045260246000fd5b60008261256657634e487b7160e01b600052601260045260246000fd5b500490565b601f8211156117f157600081815260208120601f850160051c810160208610156125925750805b601f850160051c820191505b818110156125b15782815560010161259e565b505050505050565b815167ffffffffffffffff8111156125d3576125d36124a6565b6125e7816125e1845461241a565b8461256b565b602080601f83116001811461261c57600084156126045750858301515b600019600386901b1c1916600185901b1785556125b1565b600085815260208120601f198616915b8281101561264b5788860151825594840194600190910190840161262c565b50858210156126695787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052602160045260246000fdfea164736f6c6343000811000a", - }, - { - ContractAddr: TimelockContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/2d6372ddba77902ef01e45887a425938376d5a5c", - Code: "6080604052600436106101e75760003560e01c80638129fc1c11610102578063bc197c8111610095578063e38335e511610064578063e38335e5146105e1578063f1fad104146105f4578063f23a6e6114610609578063f27a0c921461063557600080fd5b8063bc197c8114610548578063c4d252f514610574578063d45c443514610594578063d547741f146105c157600080fd5b8063a217fddf116100d1578063a217fddf146104d1578063ac431751146104e6578063b08e51c014610506578063b1c5f4271461052857600080fd5b80638129fc1c1461045a5780638f2a0bb01461046f5780638f61f4f51461048f57806391d14854146104b157600080fd5b80632ab0f5291161017a5780634bf6c882116101495780634bf6c882146103d3578063584b153e146103fa57806364d623531461041a5780638065657f1461043a57600080fd5b80632ab0f529146103435780632f2ff15d1461037357806331d507501461039357806336568abe146103b357600080fd5b8063134008d3116101b6578063134008d31461029c57806313bc9f20146102af578063150b7a02146102cf578063248a9ca31461031357600080fd5b806301d5062a146101f357806301ffc9a71461021557806307bd02651461024a5780630d3cf6fc1461027a57600080fd5b366101ee57005b600080fd5b3480156101ff57600080fd5b5061021361020e366004611aa4565b61064a565b005b34801561022157600080fd5b50610235610230366004611b18565b61070e565b60405190151581526020015b60405180910390f35b34801561025657600080fd5b5061026c60008051602061258883398151915281565b604051908152602001610241565b34801561028657600080fd5b5061026c60008051602061254883398151915281565b6102136102aa366004611b42565b610739565b3480156102bb57600080fd5b506102356102ca366004611bad565b6107dc565b3480156102db57600080fd5b506102fa6102ea366004611c7b565b630a85bd0160e11b949350505050565b6040516001600160e01b03199091168152602001610241565b34801561031f57600080fd5b5061026c61032e366004611bad565b60009081526065602052604090206001015490565b34801561034f57600080fd5b5061023561035e366004611bad565b60009081526097602052604090205460011490565b34801561037f57600080fd5b5061021361038e366004611ce2565b610802565b34801561039f57600080fd5b506102356103ae366004611bad565b61082c565b3480156103bf57600080fd5b506102136103ce366004611ce2565b610845565b3480156103df57600080fd5b506103e8600881565b60405160ff9091168152602001610241565b34801561040657600080fd5b50610235610415366004611bad565b6108c8565b34801561042657600080fd5b50610213610435366004611bad565b6108df565b34801561044657600080fd5b5061026c610455366004611b42565b610983565b34801561046657600080fd5b506102136109c2565b34801561047b57600080fd5b5061021361048a366004611d52565b610b72565b34801561049b57600080fd5b5061026c60008051602061256883398151915281565b3480156104bd57600080fd5b506102356104cc366004611ce2565b610cf3565b3480156104dd57600080fd5b5061026c600081565b3480156104f257600080fd5b50610213610501366004611e03565b610d1e565b34801561051257600080fd5b5061026c6000805160206125a883398151915281565b34801561053457600080fd5b5061026c610543366004611e6e565b610f08565b34801561055457600080fd5b506102fa610563366004611f95565b63bc197c8160e01b95945050505050565b34801561058057600080fd5b5061021361058f366004611bad565b610f4d565b3480156105a057600080fd5b5061026c6105af366004611bad565b60009081526097602052604090205490565b3480156105cd57600080fd5b506102136105dc366004611ce2565b611010565b6102136105ef366004611e6e565b611035565b34801561060057600080fd5b506103e8601181565b34801561061557600080fd5b506102fa61062436600461203e565b63f23a6e6160e01b95945050505050565b34801561064157600080fd5b5060985461026c565b600080516020612568833981519152610662816111ad565b6000610672898989898989610983565b905061067e81846111b7565b6000817f4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca8b8b8b8b8b8a6040516106ba969594939291906120cb565b60405180910390a3831561070357807f20fda5fd27a1ea7bf5b9567f143ac5470bb059374a27e8f67cb44f946f6d0387856040516106fa91815260200190565b60405180910390a25b505050505050505050565b60006001600160e01b03198216630271189760e51b14806107335750610733826112a6565b92915050565b600080516020612588833981519152610753816000610cf3565b6107615761076181336112db565b6000610771888888888888610983565b905061077d8185611334565b610789888888886113cf565b6000817fc2617efa69bab66782fa219543714338489c4e9e178271560a91b82c3f612b588a8a8a8a6040516107c19493929190612108565b60405180910390a36107d2816114a2565b5050505050505050565b6000818152609760205260408120546001811180156107fb5750428111155b9392505050565b60008281526065602052604090206001015461081d816111ad565b61082783836114db565b505050565b60008181526097602052604081205481905b1192915050565b6001600160a01b03811633146108ba5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6108c48282611561565b5050565b60008181526097602052604081205460019061083e565b3330146109425760405162461bcd60e51b815260206004820152602b60248201527f54696d656c6f636b436f6e74726f6c6c65723a2063616c6c6572206d7573742060448201526a62652074696d656c6f636b60a81b60648201526084016108b1565b60985460408051918252602082018390527f11c24f4ead16507c69ac467fbd5e4eed5fb5c699626d2cc6d66421df253886d5910160405180910390a1609855565b60008686868686866040516020016109a0969594939291906120cb565b6040516020818303038152906040528051906020012090509695505050505050565b600054610100900460ff16158080156109e25750600054600160ff909116105b806109fc5750303b1580156109fc575060005460ff166001145b610a5f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016108b1565b6000805460ff191660011790558015610a82576000805461ff0019166101001790555b334114610aa25760405163022d8c9560e31b815260040160405180910390fd5b3a15610ac1576040516383f1b1d360e01b815260040160405180910390fd5b6040805160018082528183019092526000916020808301908036833701905050905061200481600081518110610af957610af961213a565b60200260200101906001600160a01b031690816001600160a01b031681525050610b28603c82836120046115c8565b508015610b6f576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50565b600080516020612568833981519152610b8a816111ad565b888714610ba95760405162461bcd60e51b81526004016108b190612150565b888514610bc85760405162461bcd60e51b81526004016108b190612150565b6000610bda8b8b8b8b8b8b8b8b610f08565b9050610be681846111b7565b60005b8a811015610ca45780827f4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca8e8e85818110610c2657610c2661213a565b9050602002016020810190610c3b9190612193565b8d8d86818110610c4d57610c4d61213a565b905060200201358c8c87818110610c6657610c6661213a565b9050602002810190610c7891906121ae565b8c8b604051610c8c969594939291906120cb565b60405180910390a3610c9d8161220a565b9050610be9565b508315610ce657807f20fda5fd27a1ea7bf5b9567f143ac5470bb059374a27e8f67cb44f946f6d038785604051610cdd91815260200190565b60405180910390a25b5050505050505050505050565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b3361100714610d4457604051630f22c43960e41b815261100760048201526024016108b1565b610da7604051806040016040528060088152602001676d696e44656c617960c01b81525085858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092939250506116019050565b15610ea45760208114610dd55783838383604051630a5a604160e01b81526004016108b19493929190612223565b604080516020601f8401819004810282018101909252828152600091610e1691858580838501838280828437600092019190915250929392505061165a9050565b9050801580610e2757506212750081115b15610e4d5784848484604051630a5a604160e01b81526004016108b19493929190612223565b6040516364d6235360e01b81526004810182905230906364d6235390602401600060405180830381600087803b158015610e8657600080fd5b505af1158015610e9a573d6000803e3d6000fd5b5050505050610ec5565b838383836040516325ee20d560e21b81526004016108b19493929190612223565b7ff1ce9b2cbf50eeb05769a29e2543fd350cab46894a7dd9978a12d534bb20e63384848484604051610efa9493929190612223565b60405180910390a150505050565b60008888888888888888604051602001610f299897969594939291906122d8565b60405160208183030381529060405280519060200120905098975050505050505050565b6000805160206125a8833981519152610f65816111ad565b610f6e826108c8565b610fd45760405162461bcd60e51b815260206004820152603160248201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e2063616044820152701b9b9bdd0818994818d85b98d95b1b1959607a1b60648201526084016108b1565b6000828152609760205260408082208290555183917fbaa1eb22f2a492ba1a5fea61b8df4d27c6c8b5f3971e63bb58fa14ff72eedb7091a25050565b60008281526065602052604090206001015461102b816111ad565b6108278383611561565b60008051602061258883398151915261104f816000610cf3565b61105d5761105d81336112db565b87861461107c5760405162461bcd60e51b81526004016108b190612150565b87841461109b5760405162461bcd60e51b81526004016108b190612150565b60006110ad8a8a8a8a8a8a8a8a610f08565b90506110b98185611334565b60005b898110156111975760008b8b838181106110d8576110d861213a565b90506020020160208101906110ed9190612193565b905060008a8a848181106111035761110361213a565b9050602002013590503660008a8a868181106111215761112161213a565b905060200281019061113391906121ae565b91509150611143848484846113cf565b84867fc2617efa69bab66782fa219543714338489c4e9e178271560a91b82c3f612b588686868660405161117a9493929190612108565b60405180910390a350505050806111909061220a565b90506110bc565b506111a1816114a2565b50505050505050505050565b610b6f81336112db565b6111c08261082c565b156112255760405162461bcd60e51b815260206004820152602f60248201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e20616c60448201526e1c9958591e481cd8da19591d5b1959608a1b60648201526084016108b1565b6098548110156112865760405162461bcd60e51b815260206004820152602660248201527f54696d656c6f636b436f6e74726f6c6c65723a20696e73756666696369656e746044820152652064656c617960d01b60648201526084016108b1565b6112908142612379565b6000928352609760205260409092209190915550565b60006001600160e01b03198216637965db0b60e01b148061073357506301ffc9a760e01b6001600160e01b0319831614610733565b6112e58282610cf3565b6108c4576112f28161165f565b6112fd836020611671565b60405160200161130e9291906123b0565b60408051601f198184030181529082905262461bcd60e51b82526108b191600401612425565b61133d826107dc565b6113595760405162461bcd60e51b81526004016108b190612458565b80158061137457506000818152609760205260409020546001145b6108c45760405162461bcd60e51b815260206004820152602660248201527f54696d656c6f636b436f6e74726f6c6c65723a206d697373696e6720646570656044820152656e64656e637960d01b60648201526084016108b1565b6000846001600160a01b03168484846040516113ec9291906124a2565b60006040518083038185875af1925050503d8060008114611429576040519150601f19603f3d011682016040523d82523d6000602084013e61142e565b606091505b505090508061149b5760405162461bcd60e51b815260206004820152603360248201527f54696d656c6f636b436f6e74726f6c6c65723a20756e6465726c79696e6720746044820152721c985b9cd858dd1a5bdb881c995d995c9d1959606a1b60648201526084016108b1565b5050505050565b6114ab816107dc565b6114c75760405162461bcd60e51b81526004016108b190612458565b600090815260976020526040902060019055565b6114e58282610cf3565b6108c45760008281526065602090815260408083206001600160a01b03851684529091529020805460ff1916600117905561151d3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b61156b8282610cf3565b156108c45760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600054610100900460ff166115ef5760405162461bcd60e51b81526004016108b1906124b2565b6115fb8484848461180c565b50505050565b60008160405160200161161491906124fd565b604051602081830303815290604052805190602001208360405160200161163b91906124fd565b6040516020818303038152906040528051906020012014905092915050565b015190565b60606107336001600160a01b03831660145b60606000611680836002612519565b61168b906002612379565b6001600160401b038111156116a2576116a2611bc6565b6040519080825280601f01601f1916602001820160405280156116cc576020820181803683370190505b509050600360fc1b816000815181106116e7576116e761213a565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106117165761171661213a565b60200101906001600160f81b031916908160001a905350600061173a846002612519565b611745906001612379565b90505b60018111156117bd576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106117795761177961213a565b1a60f81b82828151811061178f5761178f61213a565b60200101906001600160f81b031916908160001a90535060049490941c936117b681612530565b9050611748565b5083156107fb5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016108b1565b600054610100900460ff166118335760405162461bcd60e51b81526004016108b1906124b2565b61184b600080516020612548833981519152806119eb565b6118716000805160206125688339815191526000805160206125488339815191526119eb565b6118976000805160206125888339815191526000805160206125488339815191526119eb565b6118bd6000805160206125a88339815191526000805160206125488339815191526119eb565b6118d560008051602061254883398151915230611a36565b6001600160a01b038116156118fc576118fc60008051602061254883398151915282611a36565b60005b835181101561196d5761193960008051602061256883398151915285838151811061192c5761192c61213a565b6020026020010151611a36565b61195d6000805160206125a883398151915285838151811061192c5761192c61213a565b6119668161220a565b90506118ff565b5060005b82518110156119ae5761199e60008051602061258883398151915284838151811061192c5761192c61213a565b6119a78161220a565b9050611971565b5060988490556040805160008152602081018690527f11c24f4ead16507c69ac467fbd5e4eed5fb5c699626d2cc6d66421df253886d59101610efa565b600082815260656020526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b6108c482826114db565b80356001600160a01b0381168114611a5757600080fd5b919050565b60008083601f840112611a6e57600080fd5b5081356001600160401b03811115611a8557600080fd5b602083019150836020828501011115611a9d57600080fd5b9250929050565b600080600080600080600060c0888a031215611abf57600080fd5b611ac888611a40565b96506020880135955060408801356001600160401b03811115611aea57600080fd5b611af68a828b01611a5c565b989b979a50986060810135976080820135975060a09091013595509350505050565b600060208284031215611b2a57600080fd5b81356001600160e01b0319811681146107fb57600080fd5b60008060008060008060a08789031215611b5b57600080fd5b611b6487611a40565b95506020870135945060408701356001600160401b03811115611b8657600080fd5b611b9289828a01611a5c565b979a9699509760608101359660809091013595509350505050565b600060208284031215611bbf57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611c0457611c04611bc6565b604052919050565b600082601f830112611c1d57600080fd5b81356001600160401b03811115611c3657611c36611bc6565b611c49601f8201601f1916602001611bdc565b818152846020838601011115611c5e57600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215611c9157600080fd5b611c9a85611a40565b9350611ca860208601611a40565b92506040850135915060608501356001600160401b03811115611cca57600080fd5b611cd687828801611c0c565b91505092959194509250565b60008060408385031215611cf557600080fd5b82359150611d0560208401611a40565b90509250929050565b60008083601f840112611d2057600080fd5b5081356001600160401b03811115611d3757600080fd5b6020830191508360208260051b8501011115611a9d57600080fd5b600080600080600080600080600060c08a8c031215611d7057600080fd5b89356001600160401b0380821115611d8757600080fd5b611d938d838e01611d0e565b909b50995060208c0135915080821115611dac57600080fd5b611db88d838e01611d0e565b909950975060408c0135915080821115611dd157600080fd5b50611dde8c828d01611d0e565b9a9d999c50979a969997986060880135976080810135975060a0013595509350505050565b60008060008060408587031215611e1957600080fd5b84356001600160401b0380821115611e3057600080fd5b611e3c88838901611a5c565b90965094506020870135915080821115611e5557600080fd5b50611e6287828801611a5c565b95989497509550505050565b60008060008060008060008060a0898b031215611e8a57600080fd5b88356001600160401b0380821115611ea157600080fd5b611ead8c838d01611d0e565b909a50985060208b0135915080821115611ec657600080fd5b611ed28c838d01611d0e565b909850965060408b0135915080821115611eeb57600080fd5b50611ef88b828c01611d0e565b999c989b509699959896976060870135966080013595509350505050565b600082601f830112611f2757600080fd5b813560206001600160401b03821115611f4257611f42611bc6565b8160051b611f51828201611bdc565b9283528481018201928281019087851115611f6b57600080fd5b83870192505b84831015611f8a57823582529183019190830190611f71565b979650505050505050565b600080600080600060a08688031215611fad57600080fd5b611fb686611a40565b9450611fc460208701611a40565b935060408601356001600160401b0380821115611fe057600080fd5b611fec89838a01611f16565b9450606088013591508082111561200257600080fd5b61200e89838a01611f16565b9350608088013591508082111561202457600080fd5b5061203188828901611c0c565b9150509295509295909350565b600080600080600060a0868803121561205657600080fd5b61205f86611a40565b945061206d60208701611a40565b9350604086013592506060860135915060808601356001600160401b0381111561209657600080fd5b61203188828901611c0c565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60018060a01b038716815285602082015260a0604082015260006120f360a0830186886120a2565b60608301949094525060800152949350505050565b60018060a01b03851681528360208201526060604082015260006121306060830184866120a2565b9695505050505050565b634e487b7160e01b600052603260045260246000fd5b60208082526023908201527f54696d656c6f636b436f6e74726f6c6c65723a206c656e677468206d69736d616040820152620e8c6d60eb1b606082015260800190565b6000602082840312156121a557600080fd5b6107fb82611a40565b6000808335601e198436030181126121c557600080fd5b8301803591506001600160401b038211156121df57600080fd5b602001915036819003821315611a9d57600080fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161221c5761221c6121f4565b5060010190565b6040815260006122376040830186886120a2565b8281036020840152611f8a8185876120a2565b818352600060208085019450848460051b86018460005b878110156122cb5783830389528135601e1988360301811261228257600080fd5b870185810190356001600160401b0381111561229d57600080fd5b8036038213156122ac57600080fd5b6122b78582846120a2565b9a87019a9450505090840190600101612261565b5090979650505050505050565b60a0808252810188905260008960c08301825b8b811015612319576001600160a01b0361230484611a40565b168252602092830192909101906001016122eb565b5083810360208501528881526001600160fb1b0389111561233957600080fd5b8860051b9150818a60208301370182810360209081016040850152612361908201878961224a565b60608401959095525050608001529695505050505050565b80820180821115610733576107336121f4565b60005b838110156123a757818101518382015260200161238f565b50506000910152565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516123e881601785016020880161238c565b7001034b99036b4b9b9b4b733903937b6329607d1b601791840191820152835161241981602884016020880161238c565b01602801949350505050565b602081526000825180602084015261244481604085016020870161238c565b601f01601f19169190910160400192915050565b6020808252602a908201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e206973604082015269206e6f7420726561647960b01b606082015260800190565b8183823760009101908152919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6000825161250f81846020870161238c565b9190910192915050565b8082028115828204841417610733576107336121f4565b60008161253f5761253f6121f4565b50600019019056fe5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca5b09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc1d8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63fd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f783a164736f6c6343000811000a", - }, - { - ContractAddr: TokenRecoverPortalContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/2d6372ddba77902ef01e45887a425938376d5a5c", - Code: "608060405234801561001057600080fd5b506004361061010b5760003560e01c80638129fc1c116100a2578063b187bd2611610071578063b187bd261461022c578063bfb5a6a114610237578063e33f8d321461024a578063e842426a1461026d578063f1fad1041461029857600080fd5b80638129fc1c146101fc5780638456cb59146102045780639fcb50121461020c578063ac4317511461021957600080fd5b80634a49ac4c116100de5780634a49ac4c1461017c5780634bf6c8821461018f578063572c9980146101a957806374be2150146101bc57600080fd5b8063046f7da2146101105780632eb4a7ab1461011a578063417c73a7146101365780634838d16514610149575b600080fd5b6101186102a0565b005b61012360685481565b6040519081526020015b60405180910390f35b610118610144366004611696565b610328565b61016c610157366004611696565b60346020526000908152604090205460ff1681565b604051901515815260200161012d565b61011861018a366004611696565b6103a4565b610197600881565b60405160ff909116815260200161012d565b6101186101b73660046116b1565b61041d565b6101ef6040518060400160405280601481526020017342696e616e63652d436861696e2d47616e67657360601b81525081565b60405161012d919061172d565b6101186104b3565b610118610613565b60695461016c9060ff1681565b610118610227366004611789565b61069f565b60335460ff1661016c565b61011861024536600461183a565b610abe565b61016c610258366004611914565b6000908152606a602052604090205460ff1690565b606754610280906001600160a01b031681565b6040516001600160a01b03909116815260200161012d565b610197601181565b60335461010090046001600160a01b031633146102d0576040516306fbb1e360e01b815260040160405180910390fd5b60335460ff166102f357604051636cd6020160e01b815260040160405180910390fd5b6033805460ff191690556040517f62451d457bc659158be6e6247f56ec1df424a5c7597f71c20c2bc44e0965c8f990600090a1565b60335461010090046001600160a01b03163314610358576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b038116600081815260346020526040808220805460ff19166001179055517f7fd26be6fc92aff63f1f4409b2b2ddeb272a888031d7f55ec830485ec61941869190a250565b60335461010090046001600160a01b031633146103d4576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b038116600081815260346020526040808220805460ff19169055517fe0db3499b7fdc3da4cddff5f45d694549c19835e7f719fb5606d3ad1a5de40119190a250565b60335461010090046001600160a01b0316331461044d576040516306fbb1e360e01b815260040160405180910390fd5b604051638525db0360e01b8152600481018390526001600160a01b038216602482015261100490638525db0390604401600060405180830381600087803b15801561049757600080fd5b505af11580156104ab573d6000803e3d6000fd5b505050505050565b600054610100900460ff16158080156104d35750600054600160ff909116105b806104ed5750303b1580156104ed575060005460ff166001145b6105555760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff191660011790558015610578576000805461ff0019166101001790555b3341146105985760405163022d8c9560e31b815260040160405180910390fd5b3a156105b7576040516383f1b1d360e01b815260040160405180910390fd5b6105bf610e1e565b6105ca61dead610e4b565b8015610610576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50565b60335461010090046001600160a01b03163314610643576040516306fbb1e360e01b815260040160405180910390fd5b60335460ff161561066757604051631785c68160e01b815260040160405180910390fd5b6033805460ff191660011790556040517f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e75290600090a1565b33611007146106c557604051630f22c43960e41b8152611007600482015260240161054c565b61072f6040518060400160405280600f81526020016e617070726f76616c4164647265737360881b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050610e9a9050565b156107f9576014811461075d5783838383604051630a5a604160e01b815260040161054c9493929190611956565b60006107a3601484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050610ef49050565b90506001600160a01b0381166107d45784848484604051630a5a604160e01b815260040161054c9493929190611956565b606780546001600160a01b0319166001600160a01b0392909216919091179055610a7b565b61085e6040518060400160405280600a8152602001691b595c9adb19549bdbdd60b21b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050610e9a9050565b1561092e5760695460ff1615610887576040516379b3306f60e11b815260040160405180910390fd5b602081146108b05783838383604051630a5a604160e01b815260040161054c9493929190611956565b604080516020601f84018190048102820181019092528281526000916108f1918585808385018382808284376000920191909152509293925050610ef49050565b9050806109195784848484604051630a5a604160e01b815260040161054c9493929190611956565b6068556069805460ff19166001179055610a7b565b6109a66040518060400160405280601b81526020017f746f6b656e5265636f766572506f7274616c50726f746563746f72000000000081525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050610e9a9050565b15610a5a57601481146109d45783838383604051630a5a604160e01b815260040161054c9493929190611956565b6000610a1a601484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050610ef49050565b90506001600160a01b038116610a4b5784848484604051630a5a604160e01b815260040161054c9493929190611956565b610a5481610ef9565b50610a7b565b838383836040516325ee20d560e21b815260040161054c9493929190611956565b7ff1ce9b2cbf50eeb05769a29e2543fd350cab46894a7dd9978a12d534bb20e63384848484604051610ab09493929190611956565b60405180910390a150505050565b60695460ff16610ae15760405163678f619760e11b815260040160405180910390fd5b606854610b015760405163678f619760e11b815260040160405180910390fd5b6067546001600160a01b0316610b2a57604051631a1b977b60e31b815260040160405180910390fd5b60335460ff1615610b4e57604051631785c68160e01b815260040160405180910390fd5b610b56610f60565b6000610be489898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a9081908401838280828437600081840152601f19601f82011690508083019250505050505050610bdf8e8e33610fb9565b6110da565b90506000818c8c604051602001610bfd93929190611988565b604051602081830303815290604052805190602001209050610c2e816000908152606a602052604090205460ff1690565b15610c4b57604051623e493160e81b815260040160405180910390fd5b610cf33389898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a908190840183828082843760009201919091525050604080516020808c0282810182019093528b82528994509092508b918b918291908501908490808284376000920191909152506111b292505050565b610d348484808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505060685491508490506112bd565b610d51576040516309bde33960e01b815260040160405180910390fd5b6000818152606a602052604090819020805460ff191660011790555163799758b960e01b8152600481018d9052336024820152604481018c90526110049063799758b990606401600060405180830381600087803b158015610db257600080fd5b505af1158015610dc6573d6000803e3d6000fd5b505050507f39cc0b7297a0ef9102d75ebc4919ffec0347d50008c2b865eda4125d5812cb64828d338e604051610dff94939291906119af565b60405180910390a15050610e1260018055565b50505050505050505050565b600054610100900460ff16610e455760405162461bcd60e51b815260040161054c906119e7565b60018055565b600054610100900460ff16610e725760405162461bcd60e51b815260040161054c906119e7565b603380546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b600081604051602001610ead9190611a32565b6040516020818303038152906040528051906020012083604051602001610ed49190611a32565b604051602081830303815290604052805190602001201490505b92915050565b015190565b6033546040516001600160a01b0380841692610100900416907f44fc1b38a4abaa91ebd1b628a5b259a698f86238c8217d68f516e87769c60c0b90600090a3603380546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b600260015403610fb25760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161054c565b6002600155565b600060026040518060400160405280601481526020017342696e616e63652d436861696e2d47616e67657360601b8152506110168560405160200161100091815260200190565b60405160208183030381529060405260006112d3565b6040516bffffffffffffffffffffffff19606087901b16602082015261104f9060340160405160208183030381529060405260016112d3565b6110658860405160200161100091815260200190565b6040516020016110789493929190611a4e565b60408051601f198184030181529082905261109291611a32565b602060405180830381855afa1580156110af573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906110d29190611b7d565b949350505050565b606083516021146110fe57604051638152ea1b60e01b815260040160405180910390fd5b825160401461112057604051635e4bd79760e11b815260040160405180910390fd5b604080516020808252818301909252600091602082018180368337019050509050826020820152600085858360405160200161115e93929190611bac565b60408051808303601f190181526014808452838301909252925060009190602082018180368337019050509050815160146020830182602086016069600019fa6111a757600080fd5b509695505050505050565b606060005b825181101561121057818382815181106111d3576111d3611bef565b60200260200101516040516020016111ec929190611c05565b6040516020818303038152906040529150808061120890611c3d565b9150506111b7565b5060006040518060400160405280601481526020017342696e616e63652d436861696e2d47616e67657360601b8152508787866068548660405160200161125c96959493929190611c56565b60408051601f1981840301815291905280516020909101206067549091506001600160a01b031661128d86836114a5565b6001600160a01b0316146112b4576040516356b00a4f60e11b815260040160405180910390fd5b50505050505050565b6000826112ca858461153f565b14949350505050565b60606000835160026112e59190611cc7565b67ffffffffffffffff8111156112fd576112fd611b96565b6040519080825280601f01601f191660200182016040528015611327576020820181803683370190505b5060408051808201909152601081526f181899199a1a9b1b9c1cb0b131b232b360811b602082015290915060005b855181101561146d5781825187838151811061137357611373611bef565b0160200151611385919060f81c611cf4565b8151811061139557611395611bef565b01602001516001600160f81b031916836113b0836002611cc7565b815181106113c0576113c0611bef565b60200101906001600160f81b031916908160001a9053508182518783815181106113ec576113ec611bef565b01602001516113fe919060f81c611d08565b8151811061140e5761140e611bef565b01602001516001600160f81b03191683611429836002611cc7565b611434906001611d1c565b8151811061144457611444611bef565b60200101906001600160f81b031916908160001a9053508061146581611c3d565b915050611355565b50831561149d57816040516020016114859190611d2f565b60405160208183030381529060405292505050610eee565b509392505050565b600082516041146114c9576040516356b00a4f60e11b815260040160405180910390fd5b60208301516040840151606085015160001a601b8110156114f2576114ef601b82611d59565b90505b601b8160ff1610806115075750601c8160ff16115b15611525576040516356b00a4f60e11b815260040160405180910390fd5b600061153386838686611584565b50979650505050505050565b600081815b845181101561149d576115708286838151811061156357611563611bef565b6020026020010151611648565b91508061157c81611c3d565b915050611544565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156115bb575060009050600361163f565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561160f573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166116385760006001925092505061163f565b9150600090505b94509492505050565b6000818310611664576000828152602084905260409020611673565b60008381526020839052604090205b9392505050565b80356001600160a01b038116811461169157600080fd5b919050565b6000602082840312156116a857600080fd5b6116738261167a565b600080604083850312156116c457600080fd5b823591506116d46020840161167a565b90509250929050565b60005b838110156116f85781810151838201526020016116e0565b50506000910152565b600081518084526117198160208601602086016116dd565b601f01601f19169290920160200192915050565b6020815260006116736020830184611701565b60008083601f84011261175257600080fd5b50813567ffffffffffffffff81111561176a57600080fd5b60208301915083602082850101111561178257600080fd5b9250929050565b6000806000806040858703121561179f57600080fd5b843567ffffffffffffffff808211156117b757600080fd5b6117c388838901611740565b909650945060208701359150808211156117dc57600080fd5b506117e987828801611740565b95989497509550505050565b60008083601f84011261180757600080fd5b50813567ffffffffffffffff81111561181f57600080fd5b6020830191508360208260051b850101111561178257600080fd5b60008060008060008060008060008060c08b8d03121561185957600080fd5b8a35995060208b0135985060408b013567ffffffffffffffff8082111561187f57600080fd5b61188b8e838f01611740565b909a50985060608d01359150808211156118a457600080fd5b6118b08e838f01611740565b909850965060808d01359150808211156118c957600080fd5b6118d58e838f01611740565b909650945060a08d01359150808211156118ee57600080fd5b506118fb8d828e016117f5565b915080935050809150509295989b9194979a5092959850565b60006020828403121561192657600080fd5b5035919050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60408152600061196a60408301868861192d565b828103602084015261197d81858761192d565b979650505050505050565b6000845161199a8184602089016116dd565b91909101928352506020820152604001919050565b6080815260006119c26080830187611701565b6020830195909552506001600160a01b03929092166040830152606090910152919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60008251611a448184602087016116dd565b9190910192915050565b7f7b226163636f756e745f6e756d626572223a2230222c22636861696e5f6964228152611d1160f11b602082015260008551611a91816022850160208a016116dd565b7f222c2264617461223a6e756c6c2c226d656d6f223a22222c226d736773223a5b6022918401918201526a3d9130b6b7bab73a111d1160a91b60428201528551611ae281604d840160208a016116dd565b6e1116113932b1b4b834b2b73a111d1160891b604d92909101918201528451611b1281605c8401602089016116dd565b711116113a37b5b2b72fb9bcb6b137b6111d1160711b605c92909101918201528351611b4581606e8401602088016116dd565b7f227d5d2c2273657175656e6365223a2230222c22736f75726365223a2230227d606e9290910191820152608e019695505050505050565b600060208284031215611b8f57600080fd5b5051919050565b634e487b7160e01b600052604160045260246000fd5b60008451611bbe8184602089016116dd565b845190830190611bd28183602089016116dd565b8451910190611be58183602088016116dd565b0195945050505050565b634e487b7160e01b600052603260045260246000fd5b60008351611c178184602088016116dd565b9190910191825250602001919050565b634e487b7160e01b600052601160045260246000fd5b600060018201611c4f57611c4f611c27565b5060010190565b60008751611c68818460208c016116dd565b606088901b6bffffffffffffffffffffffff19169083019081528651611c95816014840160208b016116dd565b0160148101869052603481018590528351611cb78160548401602088016116dd565b0160540198975050505050505050565b8082028115828204841417610eee57610eee611c27565b634e487b7160e01b600052601260045260246000fd5b600082611d0357611d03611cde565b500490565b600082611d1757611d17611cde565b500690565b80820180821115610eee57610eee611c27565b61060f60f31b815260008251611d4c8160028501602087016116dd565b9190910160020192915050565b60ff8181168382160190811115610eee57610eee611c2756fea164736f6c6343000811000a", - }, - }, - } - - // This upgrade is to fix an error on testnet only. So the upgrade config of mainnet is empty. - FeynmanFixUpgrade[networkname.BSCChainName] = &Upgrade{ - UpgradeName: "feynmanFix", - Configs: []*UpgradeConfig{}, - } - - FeynmanFixUpgrade[networkname.ChapelChainName] = &Upgrade{ - UpgradeName: "feynmanFix", - Configs: []*UpgradeConfig{ - { - ContractAddr: ValidatorContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/2d6372ddba77902ef01e45887a425938376d5a5c", - Code: "6080604052600436106104fb5760003560e01c806388b32f111161028c578063c6d339451161015a578063e40716a1116100cc578063f92eb86b11610085578063f92eb86b14610d2d578063f9a2bbc714610d42578063fc3e590814610d57578063fccc281314610d6c578063fd4ad81f14610d81578063fd6a687914610db057610502565b8063e40716a114610c9b578063ea321e4914610cb0578063eb57e20214610cd0578063eda5868c14610cf0578063f1fad10414610d05578063f340fa0114610d1a57610502565b8063d86222d51161011e578063d86222d514610c1d578063daacdb6614610c32578063dc927faf14610c47578063df8079e914610c5c578063e086c7b114610c71578063e1c7392a14610c8657610502565b8063c6d3394514610bbe578063c81b166214610bd3578063c8509d811461098d578063ce910b0c14610be8578063d68fb56a14610c0857610502565b8063a78abc16116101fe578063ad3c9da6116101b7578063ad3c9da614610b3d578063aef198a914610b5d578063b7ab4db514610b72578063b8cf4ef114610b94578063bf9f4995146106fe578063c466689d14610ba957610502565b8063a78abc1614610ab4578063aa82dce114610ac9578063aad5606314610ade578063aaf5eb6814610af3578063ab51bb9614610b08578063ac43175114610b1d57610502565b806396713da91161025057806396713da914610a365780639dc0926214610a4b5780639fe0f81614610a60578063a0dc275814610a75578063a1a11bf514610a8a578063a5422d5c14610a9f57610502565b806388b32f11146109c25780638a7beb01146109d75780638b5ad0c9146109ec5780638d19a41014610a015780639369d7de14610a2157610502565b806351b4dce3116103c957806370fd5bad1161033b5780637e434d54116102f45780637e434d541461094e57806381650b6214610963578063820dcaa814610978578063831d65d11461098d578063853230aa1461090f57806386249882146109ad57610502565b806370fd5bad146108d0578063718a8aa8146108e557806375d47a0a146108fa57806378dfed4a1461090f5780637942fd05146109245780637a84ca2a1461093957610502565b80635d77156c1161038d5780635d77156c1461082a5780635de1e22c1461083f57806360eba4fe1461085457806362b72cf5146108745780636969a25c146108895780636e47b482146108bb57610502565b806351b4dce3146107ab57806351e80672146107c057806355614fcc146107d5578063565c56b3146107f55780635667515a1461081557610502565b8063300c35671161046d57806343756e5c1161042657806343756e5c1461072057806345cf9daf14610735578063493279b11461074a5780634bf6c8821461076c5780634df6e0c3146107815780635192c82c1461079657610502565b8063300c35671461065b578063321d398a1461067b5780633365af3a1461069b57806335409f7f146106bb5780633b071dcc146106db5780633dffc387146106fe57610502565b8063152ad3b8116104bf578063152ad3b8146105ba5780631e4c1524146105dc5780631ff18069146105fc578063219f22d51461061157806328087028146106265780632a0ffb6e1461063b57610502565b806304c4fec61461050757806307a568471461051e5780630bee7a67146105495780630e2374a51461056b5780631182b8751461058d57610502565b3661050257005b600080fd5b34801561051357600080fd5b5061051c610dc5565b005b34801561052a57600080fd5b50610533610e37565b6040516105409190618ed8565b60405180910390f35b34801561055557600080fd5b5061055e610e3d565b6040516105409190618f02565b34801561057757600080fd5b50610580610e42565b60405161054091906181eb565b34801561059957600080fd5b506105ad6105a83660046180d1565b610e48565b604051610540919061837e565b3480156105c657600080fd5b506105cf611165565b6040516105409190618373565b3480156105e857600080fd5b5061051c6105f7366004617edf565b61116e565b34801561060857600080fd5b50610533611844565b34801561061d57600080fd5b5061055e61184a565b34801561063257600080fd5b5061058061184f565b34801561064757600080fd5b5061051c610656366004617e3f565b611855565b34801561066757600080fd5b5061051c610676366004617e77565b611902565b34801561068757600080fd5b506105cf61069636600461807e565b611c4b565b3480156106a757600080fd5b506105cf6106b636600461807e565b611d1a565b3480156106c757600080fd5b5061051c6106d6366004617e3f565b611dcb565b3480156106e757600080fd5b506106f0611f30565b604051610540929190618289565b34801561070a57600080fd5b5061071361220c565b6040516105409190618f13565b34801561072c57600080fd5b50610580612211565b34801561074157600080fd5b50610533612217565b34801561075657600080fd5b5061075f61221d565b6040516105409190618ec9565b34801561077857600080fd5b50610713612222565b34801561078d57600080fd5b506106f0612227565b3480156107a257600080fd5b506105336123b3565b3480156107b757600080fd5b506105806123b9565b3480156107cc57600080fd5b506105806123bf565b3480156107e157600080fd5b506105cf6107f0366004617e3f565b6123c5565b34801561080157600080fd5b50610533610810366004617e3f565b6123fa565b34801561082157600080fd5b5061071361244b565b34801561083657600080fd5b5061055e612450565b34801561084b57600080fd5b50610533612455565b34801561086057600080fd5b506105ad61086f36600461807e565b61245b565b34801561088057600080fd5b50610533612501565b34801561089557600080fd5b506108a96108a436600461807e565b612507565b60405161054096959493929190618218565b3480156108c757600080fd5b5061058061256b565b3480156108dc57600080fd5b50610713612571565b3480156108f157600080fd5b50610713612576565b34801561090657600080fd5b5061058061257b565b34801561091b57600080fd5b50610533612581565b34801561093057600080fd5b50610713612587565b34801561094557600080fd5b5061053361258c565b34801561095a57600080fd5b50610580612592565b34801561096f57600080fd5b5061055e612598565b34801561098457600080fd5b5061053361259d565b34801561099957600080fd5b5061051c6109a83660046180d1565b6125a3565b3480156109b957600080fd5b50610533612604565b3480156109ce57600080fd5b5061053361260a565b3480156109e357600080fd5b506105cf612610565b3480156109f857600080fd5b50610533612619565b348015610a0d57600080fd5b50610533610a1c366004617e3f565b61261f565b348015610a2d57600080fd5b5061051c61265f565b348015610a4257600080fd5b50610713612773565b348015610a5757600080fd5b50610580612778565b348015610a6c57600080fd5b5061053361277e565b348015610a8157600080fd5b50610533612783565b348015610a9657600080fd5b50610580612788565b348015610aab57600080fd5b506105ad61278e565b348015610ac057600080fd5b506105cf6127ad565b348015610ad557600080fd5b506105806127b6565b348015610aea57600080fd5b506105806127bc565b348015610aff57600080fd5b506105336127c2565b348015610b1457600080fd5b5061055e61244b565b348015610b2957600080fd5b5061051c610b38366004618022565b6127cb565b348015610b4957600080fd5b50610533610b58366004617e3f565b613084565b348015610b6957600080fd5b50610533613096565b348015610b7e57600080fd5b50610b876130a3565b6040516105409190618276565b348015610ba057600080fd5b5061053361318f565b348015610bb557600080fd5b50610533613194565b348015610bca57600080fd5b50610533612571565b348015610bdf57600080fd5b5061058061319a565b348015610bf457600080fd5b506105ad610c0336600461807e565b6131a0565b348015610c1457600080fd5b506105336131ad565b348015610c2957600080fd5b506105336131ec565b348015610c3e57600080fd5b506105336131f8565b348015610c5357600080fd5b506105806131fe565b348015610c6857600080fd5b50610580613204565b348015610c7d57600080fd5b50610533610e3d565b348015610c9257600080fd5b5061051c61320a565b348015610ca757600080fd5b506105336133b9565b348015610cbc57600080fd5b506105cf610ccb366004617fe3565b6133bf565b348015610cdc57600080fd5b5061051c610ceb366004617e3f565b613545565b348015610cfc57600080fd5b5061055e613649565b348015610d1157600080fd5b5061071361364e565b61051c610d28366004617e3f565b613653565b348015610d3957600080fd5b506105336139d2565b348015610d4e57600080fd5b506105806139d8565b348015610d6357600080fd5b5061071361277e565b348015610d7857600080fd5b506105806139de565b348015610d8d57600080fd5b50610da1610d9c36600461807e565b6139e4565b60405161054093929190618ee1565b348015610dbc57600080fd5b50610580613aa6565b6000610dd03361261f565b9050600b8181548110610ddf57fe5b600091825260209091206001601690920201015460ff16610e1b5760405162461bcd60e51b8152600401610e1290618ae4565b60405180910390fd5b6000610e256131ad565b9050610e32338383613aac565b505050565b60095481565b606481565b61200181565b60005460609060ff16610e6d5760405162461bcd60e51b8152600401610e12906185a5565b3361200014610e8e5760405162461bcd60e51b8152600401610e1290618ce5565b600b54610f4c57610e9d6179eb565b60015460005b81811015610f4857600b8054600181018255600091909152835160008051602061919083398151915260169092029182019081556020808601516000805160206191d08339815191528401805460ff1916911515919091179055604086015180518794610f24936000805160206191b0833981519152909101920190617a1a565b506060820151610f3a9060038301906013617a94565b505050806001019050610ea3565b5050505b610f54617ac1565b6000610f9585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613d7192505050565b9150915080610fb157610fa86064613f2d565b9250505061115e565b815160009060ff16610fd657610fcf83602001518460400151613f8e565b905061112a565b825160ff16600114156111265782602001515160011461101b5760008051602061917083398151915260405161100b9061899d565b60405180910390a1506067611121565b6000836020015160008151811061102e57fe5b602090810291909101810151516001600160a01b0381166000908152600490925260409091205490915080158061108f575060018082038154811061106f57fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b156110cd576040516001600160a01b038316907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a261111a565b60006110dc8360018403615150565b905080611118576040516001600160a01b038416907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a25b505b6000925050505b61112a565b5060655b63ffffffff811661114f575050604080516000815260208101909152915061115e9050565b61115881613f2d565b93505050505b9392505050565b60075460ff1681565b33411461118d5760405162461bcd60e51b8152600401610e1290618d34565b3a156111ab5760405162461bcd60e51b8152600401610e1290618a23565b82516040805182815260208084028201019091526060908280156111e957816020015b6111d6617ae5565b8152602001906001900390816111ce5790505b50905060005b82811015611293576040518060c0016040528087838151811061120e57fe5b60200260200101516001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b0316815260200186838151811061125057fe5b60200260200101516001600160401b03168152602001600015158152602001600081525082828151811061128057fe5b60209081029190910101526001016111ef565b5060405163d31f968d60e01b81526120009063d31f968d906112be906110009060089060040161825a565b60206040518083038186803b1580156112d657600080fd5b505afa1580156112ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061130e9190617fc3565b15611631578051601554818111156113b057815b818110156113ae57601580548061133557fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055601680548061138857fe5b6001900381819060005260206000200160006113a49190617b1a565b9055600101611322565b505b60005b828110156115f0578181106114d85760158482815181106113d057fe5b602090810291909101810151825460018181018555600094855293839020825160049092020180546001600160a01b039283166001600160a01b0319918216178255938301519481018054958316958516959095179094556040820151600285018054606085015160808601511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590961692909716919091179290921692909217169290921790915560a0015160039091015585516016908790839081106114a057fe5b602090810291909101810151825460018101845560009384529282902081516114d29491909101929190910190617a1a565b506115e8565b8381815181106114e457fe5b6020026020010151601582815481106114f957fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a09091015160039091015585518690829081106115b457fe5b6020026020010151601682815481106115c957fe5b9060005260206000200190805190602001906115e6929190617a1a565b505b6001016113b3565b507fb8e726330a0dad1cf3d04e925663b17e391f1ed547d79b7f4e5f344119b44246826040516116209190618ed8565b60405180910390a150505050610e32565b60608061163e8386615513565b9150915060005b6001548110156117345760006001828154811061165e57fe5b90600052602060002090600402016003015490508060001461172b5760006001838154811061168957fe5b9060005260206000209060040201600301819055506120026001600160a01b031663092193ab82600185815481106116bd57fe5b60009182526020909120600491820201546040516001600160e01b031960e086901b1681526116f8926001600160a01b0390921691016181eb565b6000604051808303818588803b15801561171157600080fd5b505af1158015611725573d6000803e3d6000fd5b50505050505b50600101611645565b5047156117a2577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d4760405161176a9190618ed8565b60405180910390a1604051611002904780156108fc02916000818181858888f193505050501580156117a0573d6000803e3d6000fd5b505b600060038190556005558151156117bd576117bd82826159fa565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156117fa57600080fd5b505af115801561180e573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a150505050505050565b60035481565b606881565b61200581565b33612002146118765760405162461bcd60e51b8152600401610e1290618e92565b60005b6015548110156118fe57816001600160a01b03166015828154811061189a57fe5b60009182526020909120600490910201546001600160a01b031614156118f6576001601582815481106118c957fe5b9060005260206000209060040201600201601c6101000a81548160ff0219169083151502179055506118fe565b600101611879565b5050565b3341146119215760405162461bcd60e51b8152600401610e1290618d34565b60105443116119425760405162461bcd60e51b8152600401610e1290618738565b3a156119605760405162461bcd60e51b8152600401610e1290618a23565b60005460ff166119825760405162461bcd60e51b8152600401610e12906185a5565b60006110023168056bc75e2d631000008111156119b9576119b28168056bc75e2d6310000063ffffffff6161e916565b91506119c0565b5050611c41565b6040516309a99b4f60e41b815261100290639a99b4f0906119e790309086906004016181ff565b602060405180830381600087803b158015611a0157600080fd5b505af1158015611a15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a399190618096565b915081611a47575050611c41565b6000805b84811015611a7557858582818110611a5f57fe5b9050602002013582019150806001019050611a4b565b5080611a8357505050611c41565b6000806000805b89811015611c395784898983818110611a9f57fe5b90506020020135880281611aaf57fe5b0493508a8a82818110611abe57fe5b9050602002016020810190611ad39190617e3f565b6001600160a01b03811660009081526004602052604090205490935091508115611bef576000600180840381548110611b0857fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff1615611b7557836001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d8586604051611b689190618ed8565b60405180910390a2611be9565b600354611b88908663ffffffff61622b16565b6003908155810154611ba0908663ffffffff61622b16565b60038201556040516001600160a01b038516907fcb0aad6cf9cd03bdf6137e359f541c42f38b39f007cae8e89e88aa7d8c6617b290611be0908890618ed8565b60405180910390a25b50611c31565b826001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d8585604051611c289190618ed8565b60405180910390a25b600101611a8a565b505050505050505b5050436010555050565b6001546000908210611c5f57506000611d15565b60006001600160a01b031660018381548110611c7757fe5b60009182526020909120600490910201546001600160a01b03161480611ca757506008541580611ca75750600a54155b80611cb6575060085460095410155b80611cc75750611cc582611d1a565b155b80611cf057506000600b8381548110611cdc57fe5b906000526020600020906016020160000154115b80611d0457506001611d006130a3565b5111155b15611d1157506000611d15565b5060015b919050565b6001546000908210611d2e57506000611d15565b600b548210611d6b5760018281548110611d4457fe5b9060005260206000209060040201600201601c9054906101000a900460ff16159050611d15565b60018281548110611d7857fe5b9060005260206000209060040201600201601c9054906101000a900460ff16158015611dc55750600b8281548110611dac57fe5b600091825260209091206001601690920201015460ff16155b92915050565b600b54611e8957611dda6179eb565b60015460005b81811015611e8557600b8054600181018255600091909152835160008051602061919083398151915260169092029182019081556020808601516000805160206191d08339815191528401805460ff1916911515919091179055604086015180518794611e61936000805160206191b0833981519152909101920190617a1a565b506060820151611e779060038301906013617a94565b505050806001019050611de0565b5050505b336110011480611e9a575033612002145b611eb65760405162461bcd60e51b8152600401610e12906185dc565b6001600160a01b03811660009081526004602052604090205480611eda5750611f2d565b6001810390506000600b8281548110611eef57fe5b600091825260209091206001601690920201015460ff169050611f128383615150565b8015611f1b5750805b15610e32576009805460001901905550505b50565b60015460609081906000805b82811015611f835760018181548110611f5157fe5b9060005260206000209060040201600201601c9054906101000a900460ff16611f7b576001909101905b600101611f3c565b50606081604051908082528060200260200182016040528015611fb0578160200160208202803683370190505b509050606082604051908082528060200260200182016040528015611fe957816020015b6060815260200190600190039081611fd45790505b50600b54600094509091508414156121645760005b8481101561215e576001818154811061201357fe5b9060005260206000209060040201600201601c9054906101000a900460ff16612156576001818154811061204357fe5b600091825260209091206004909102015483516001600160a01b039091169084908690811061206e57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600b818154811061209b57fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156121335780601f1061210857610100808354040283529160200191612133565b820191906000526020600020905b81548152906001019060200180831161211657829003601f168201915b505050505082858151811061214457fe5b60209081029190910101526001909301925b600101611ffe565b50612200565b60005b848110156121fe576001818154811061217c57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166121f657600181815481106121ac57fe5b600091825260209091206004909102015483516001600160a01b03909116908490869081106121d757fe5b6001600160a01b03909216602092830291909101909101526001909301925b600101612167565b505b909450925050505b9091565b600181565b61100181565b60085481565b606181565b600881565b6060806000600e549050600080600c5411612243576015612247565b600c545b905060606122536130a3565b9050606061226082616250565b905082825111612277579094509250612208915050565b83838351031015612289578282510393505b83156122bf5760c843046122a583838388880360008a8a6163be565b6122bd8383838888038989038a8b8b8b5103016163be565b505b6060836040519080825280602002602001820160405280156122eb578160200160208202803683370190505b50905060608460405190808252806020026020018201604052801561232457816020015b606081526020019060019003908161230f5790505b50905060005b858110156123a55784818151811061233e57fe5b602002602001015183828151811061235257fe5b60200260200101906001600160a01b031690816001600160a01b03168152505083818151811061237e57fe5b602002602001015182828151811061239257fe5b602090810291909101015260010161232a565b509096509450505050509091565b60065481565b61200681565b61200081565b6001600160a01b038116600090815260046020526040812054806123ed576000915050611d15565b6000190161115e81611d1a565b6001600160a01b03811660009081526004602052604081205480612422576000915050611d15565b60018082038154811061243157fe5b906000526020600020906004020160030154915050919050565b600081565b606781565b600f5481565b6012818154811061246857fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152935090918301828280156124f95780601f106124ce576101008083540402835291602001916124f9565b820191906000526020600020905b8154815290600101906020018083116124dc57829003601f168201915b505050505081565b60105481565b6001818154811061251457fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b601081565b61100881565b6103e881565b600b81565b600c5481565b61200381565b606681565b61271081565b33612000146125c45760405162461bcd60e51b8152600401610e1290618ce5565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f389021016058383836040516125f793929190618f21565b60405180910390a1505050565b60025481565b60115481565b60145460ff1681565b600a5481565b6001600160a01b038116600090815260046020526040812054806126555760405162461bcd60e51b8152600401610e1290618c6d565b6000190192915050565b600b5461271d5761266e6179eb565b60015460005b8181101561271957600b8054600181018255600091909152835160008051602061919083398151915260169092029182019081556020808601516000805160206191d08339815191528401805460ff19169115159190911790556040860151805187946126f5936000805160206191b0833981519152909101920190617a1a565b50606082015161270b9060038301906013617a94565b505050806001019050612674565b5050505b60085461272a5760036008555b600a54612737576002600a555b60006127423361261f565b905061274d81611c4b565b6127695760405162461bcd60e51b8152600401610e129061895a565b611f2d3382616515565b600981565b61100781565b600381565b60c881565b61100681565b604051806101e001604052806101ab8152602001618fc56101ab913981565b60005460ff1681565b61200281565b61300081565b6402540be40081565b60005460ff166127ed5760405162461bcd60e51b8152600401610e12906185a5565b336110071461280e5760405162461bcd60e51b8152600401610e1290618a51565b61287884848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b602082015291506165ad9050565b15612915576020811461289d5760405162461bcd60e51b8152600401610e1290618c27565b604080516020601f84018190048102820181019092528281526000916128db9185858083850183828082843760009201919091525061660692505050565b9050606481101580156128f15750620186a08111155b61290d5760405162461bcd60e51b8152600401610e129061884a565b600255613041565b61297584848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260098152686275726e526174696f60b81b602082015291506165ad9050565b15612a18576020811461299a5760405162461bcd60e51b8152600401610e12906183c3565b604080516020601f84018190048102820181019092528281526000916129d89185858083850183828082843760009201919091525061660692505050565b90506127106129f2600f548361622b90919063ffffffff16565b1115612a105760405162461bcd60e51b8152600401610e12906183fa565b600655613041565b612a8284848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260138152726d61784e756d4f664d61696e7461696e696e6760681b602082015291506165ad9050565b15612b1c5760208114612aa75760405162461bcd60e51b8152600401610e1290618462565b604080516020601f8401819004810282018101909252828152600091612ae59185858083850183828082843760009201919091525061660692505050565b600c5490915080612af4575060155b808210612b135760405162461bcd60e51b8152600401610e12906187a2565b50600855613041565b612b8584848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61696e7461696e536c6173685363616c6560701b602082015291506165ad9050565b15612c1e5760208114612baa5760405162461bcd60e51b8152600401610e129061852b565b604080516020601f8401819004810282018101909252828152600091612be89185858083850183828082843760009201919091525061660692505050565b9050600081118015612bfa5750600a81105b612c165760405162461bcd60e51b8152600401610e1290618dc5565b600a55613041565b612c9284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601981527f6d61784e756d4f66576f726b696e6743616e6469646174657300000000000000602082015291506165ad9050565b15612d215760208114612cb75760405162461bcd60e51b8152600401610e12906184df565b604080516020601f8401819004810282018101909252828152600091612cf59185858083850183828082843760009201919091525061660692505050565b9050600d54811115612d195760405162461bcd60e51b8152600401610e12906188c0565b600e55613041565b612d8a84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61784e756d4f6643616e6469646174657360701b602082015291506165ad9050565b15612e0c5760208114612daf5760405162461bcd60e51b8152600401610e1290618a9f565b604080516020601f8401819004810282018101909252828152600091612ded9185858083850183828082843760009201919091525061660692505050565b600d819055600e54909150811015612e0657600d54600e555b50613041565b612e7084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c6e756d4f66436162696e65747360981b602082015291506165ad9050565b15612f1e5760208114612e955760405162461bcd60e51b8152600401610e1290618570565b604080516020601f8401819004810282018101909252828152600091612ed39185858083850183828082843760009201919091525061660692505050565b905060008111612ef55760405162461bcd60e51b8152600401610e129061864a565b6064811115612f165760405162461bcd60e51b8152600401610e1290618692565b600c55613041565b612f8684848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601181527073797374656d526577617264526174696f60781b602082015291506165ad9050565b156130295760208114612fab5760405162461bcd60e51b8152600401610e1290618d81565b604080516020601f8401819004810282018101909252828152600091612fe99185858083850183828082843760009201919091525061660692505050565b90506127106130036006548361622b90919063ffffffff16565b11156130215760405162461bcd60e51b8152600401610e1290618b88565b600f55613041565b60405162461bcd60e51b8152600401610e1290618e22565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040516130769493929190618391565b60405180910390a150505050565b60046020526000908152604090205481565b68056bc75e2d6310000081565b6001546060906000805b828110156130d2576130be81611d1a565b156130ca578160010191505b6001016130ad565b506060816040519080825280602002602001820160405280156130ff578160200160208202803683370190505b5090506000915060005b838110156131865761311a81611d1a565b1561317e576001818154811061312c57fe5b600091825260209091206004909102015482516001600160a01b039091169083908590811061315757fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508260010192505b600101613109565b50925050505b90565b601581565b61027181565b61100281565b6013818154811061246857fe5b60006131b76130a3565b519050600080600c54116131cc5760156131d0565b600c545b9050808211156131de578091505b816131e857600191505b5090565b67016345785d8a000081565b60055481565b61100381565b61200481565b60005460ff161561322d5760405162461bcd60e51b8152600401610e1290618b51565b613235617ac1565b600061325b604051806101e001604052806101ab8152602001618fc56101ab9139613d71565b915091508061327c5760405162461bcd60e51b8152600401610e1290618ca4565b60005b8260200151518110156133a15760018360200151828151811061329e57fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a09093015160039093019290925591860151805191850193918590811061337457fe5b602090810291909101810151516001600160a01b031682528101919091526040016000205560010161327f565b50506103e8600255506000805460ff19166001179055565b600d5481565b601354600090815b818110156134c8576134b085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060138054909250859150811061341857fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156134a65780601f1061347b576101008083540402835291602001916134a6565b820191906000526020600020905b81548152906001019060200180831161348957829003601f168201915b505050505061660b565b156134c057600192505050611dc5565b6001016133c7565b5060125460005b818110156135395761352086868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060128054909250859150811061341857fe5b156135315760019350505050611dc5565b6001016134cf565b50600095945050505050565b33611001146135665760405162461bcd60e51b8152600401610e1290618e49565b600b54613624576135756179eb565b60015460005b8181101561362057600b8054600181018255600091909152835160008051602061919083398151915260169092029182019081556020808601516000805160206191d08339815191528401805460ff19169115159190911790556040860151805187946135fc936000805160206191b0833981519152909101920190617a1a565b5060608201516136129060038301906013617a94565b50505080600101905061357b565b5050505b600061362f8261666f565b905061363a81611c4b565b156118fe576118fe8282616515565b606581565b601181565b3341146136725760405162461bcd60e51b8152600401610e1290618d34565b60005460ff166136945760405162461bcd60e51b8152600401610e12906185a5565b600034116136b45760405162461bcd60e51b8152600401610e1290618891565b3a156136d25760405162461bcd60e51b8152600401610e1290618a23565b6001600160a01b03811660009081526004602052604090205460145434919060ff1661371257610271600f556103e86006556014805460ff191660011790555b60008211801561372457506000600f54115b156137d6576000613752612710613746600f54346167f290919063ffffffff16565b9063ffffffff61682c16565b905080156137d4576040516110029082156108fc029083906000818181858888f19350505050158015613789573d6000803e3d6000fd5b507f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d816040516137b99190618ed8565b60405180910390a16137d1838263ffffffff6161e916565b92505b505b6000821180156137e857506000600654115b1561388e57600061380a612710613746600654346167f290919063ffffffff16565b9050801561388c5760405161dead9082156108fc029083906000818181858888f19350505050158015613841573d6000803e3d6000fd5b507f627059660ea01c4733a328effb2294d2f86905bf806da763a89cee254de8bee5816040516138719190618ed8565b60405180910390a1613889838263ffffffff6161e916565b92505b505b801561398c5760006001808303815481106138a557fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff161561391257836001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4846040516139059190618ed8565b60405180910390a2613986565b600354613925908463ffffffff61622b16565b600390815581015461393d908463ffffffff61622b16565b60038201556040516001600160a01b038516907f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc0559061397d908690618ed8565b60405180910390a25b50610e32565b826001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4836040516139c59190618ed8565b60405180910390a2505050565b600e5481565b61100081565b61dead81565b600b81815481106139f157fe5b6000918252602091829020601691909102018054600180830154600280850180546040805161010096831615969096026000190190911692909204601f810188900488028501880190925281845293965060ff90911694919291830182828015613a9c5780601f10613a7157610100808354040283529160200191613a9c565b820191906000526020600020905b815481529060010190602001808311613a7f57829003601f168201915b5050505050905083565b61100481565b6000600a5460001480613abd575081155b80613ac85750600954155b15613ad55750600061115e565b6000613b0f600a5461374685613746600b8981548110613af157fe5b6000918252602090912060169091020154439063ffffffff6161e916565b90506000806110016001600160a01b0316638256ace66040518163ffffffff1660e01b8152600401604080518083038186803b158015613b4e57600080fd5b505afa158015613b62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b8691906180ae565b9150915060009350808310613ce557613b9f8787615150565b5060405163436aa28360e11b8152600090612002906386d5450690613bc8908b906004016181eb565b60206040518083038186803b158015613be057600080fd5b505afa158015613bf4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c189190617e5b565b6001600160a01b031614613c84576040516313d13bdb60e31b815261100190639e89ded890613c4d908a9087906004016181ff565b600060405180830381600087803b158015613c6757600080fd5b505af1158015613c7b573d6000803e3d6000fd5b50505050613cdc565b6040516305bfb49960e41b815261100190635bfb499090613ca9908a906004016181eb565b600060405180830381600087803b158015613cc357600080fd5b505af1158015613cd7573d6000803e3d6000fd5b505050505b60019350613cf7565b818310613cf757613cf58761666f565b505b60098054600019019055600b80546000919088908110613d1357fe5b60009182526020822060169190910201600101805460ff1916921515929092179091556040516001600160a01b038916917fb9d38178dc641ff1817967a63c9078cbcd955a9f1fcd75e0e3636de615d44d3b91a25050509392505050565b613d79617ac1565b6000613d83617ac1565b613d8b617b5e565b613d9c613d978661686e565b616893565b90506000805b613dab836168dd565b15613f1f5780613dd057613dc6613dc1846168fe565b61694c565b60ff168452613f17565b8060011415613f12576060613dec613de7856168fe565b6169cc565b90508051604051908082528060200260200182016040528015613e2957816020015b613e16617ae5565b815260200190600190039081613e0e5790505b5085602001819052508051604051908082528060200260200182016040528015613e6757816020015b6060815260200190600190039081613e525790505b50604086015260005b8151811015613f0757613e81617ae5565b60606000613ea1858581518110613e9457fe5b6020026020010151616a9d565b92509250925080613ec1578860009a509a50505050505050505050613f28565b8289602001518581518110613ed257fe5b60200260200101819052508189604001518581518110613eee57fe5b6020026020010181905250505050806001019050613e70565b506001925050613f17565b613f1f565b600101613da2565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b6060815260200190600190039081613f47579050509050613f6d8363ffffffff16616bb7565b81600081518110613f7a57fe5b602002602001018190525061115e81616bca565b6000606483511115613fc557600080516020619170833981519152604051613fb5906186ef565b60405180910390a1506066611dc5565b60005b83518110156140635760005b8181101561405a57848181518110613fe857fe5b6020026020010151600001516001600160a01b031685838151811061400957fe5b6020026020010151600001516001600160a01b031614156140525760008051602061917083398151915260405161403f906187ff565b60405180910390a1606692505050611dc5565b600101613fd4565b50600101613fc8565b5060608060606015805480602002602001604051908101604052809291908181526020016000905b828210156141155760008481526020908190206040805160c0810182526004860290920180546001600160a01b039081168452600180830154821685870152600283015491821693850193909352600160a01b81046001600160401b03166060850152600160e01b900460ff16151560808401526003015460a0830152908352909201910161408b565b50505050905060606016805480602002602001604051908101604052809291908181526020016000905b828210156141ea5760008481526020908190208301805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156141d65780601f106141ab576101008083540402835291602001916141d6565b820191906000526020600020905b8154815290600101906020018083116141b957829003601f168201915b50505050508152602001906001019061413f565b50505050905060005b82518110156142475782818151811061420857fe5b60200260200101516060015160030283828151811061422357fe5b60209081029190910101516001600160401b039091166060909101526001016141f3565b5060608061425789898686616c54565b915091506142658282615513565b600154604080518281526020808402820101909152929850909650600095508594509250606091508280156142a4578160200160208202803683370190505b50905060005b828110156144355760006001600160a01b03166120026001600160a01b03166386d54506600184815481106142db57fe5b60009182526020909120600491820201546040516001600160e01b031960e085901b168152614316926001600160a01b0390921691016181eb565b60206040518083038186803b15801561432e57600080fd5b505afa158015614342573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143669190617e5b565b6001600160a01b0316146143c857600182828151811061438257fe5b602002602001019060ff16908160ff1681525050600181815481106143a357fe5b9060005260206000209060040201600301546000146143c3578360010193505b61442d565b67016345785d8a0000600182815481106143de57fe5b906000526020600020906004020160030154106144005784600101945061442d565b6001818154811061440d57fe5b90600052602060002090600402016003015460001461442d578360010193505b6001016142aa565b50606084604051908082528060200260200182016040528015614462578160200160208202803683370190505b509050606085604051908082528060200260200182016040528015614491578160200160208202803683370190505b5090506060866040519080825280602002602001820160405280156144c0578160200160208202803683370190505b5090506060876040519080825280602002602001820160405280156144ef578160200160208202803683370190505b5090506000606088604051908082528060200260200182016040528015614520578160200160208202803683370190505b50905060608960405190808252806020026020018201604052801561454f578160200160208202803683370190505b50905060009a506000995060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b15801561459757600080fd5b505afa1580156145ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145cf9190618096565b905067016345785d8a000081111561461b576000805160206191708339815191526040516145fc90618b10565b60405180910390a160689e505050505050505050505050505050611dc5565b60005b8a8110156149af5789818151811061463257fe5b602002602001015160ff1660011415614728576001818154811061465257fe5b906000526020600020906004020160030154600014614723576001818154811061467857fe5b600091825260209091206004909102015484516001600160a01b039091169085908e9081106146a357fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600181815481106146d057fe5b906000526020600020906004020160030154838d815181106146ee57fe5b60200260200101818152505060018a8d8151811061470857fe5b602002602001019060ff16908160ff16815250508b6001019b505b6149a7565b67016345785d8a00006001828154811061473e57fe5b906000526020600020906004020160030154106148c3576001818154811061476257fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316898e8151811061479357fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be400600183815481106147c857fe5b906000526020600020906004020160030154816147e157fe5b06600183815481106147ef57fe5b90600052602060002090600402016003015403905061481783826161e990919063ffffffff16565b898f8151811061482357fe5b6020026020010181815250506001828154811061483c57fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316878f8151811061486d57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081888f8151811061489a57fe5b60209081029190910101526148b5868263ffffffff61622b16565b95508d6001019d50506149a7565b600181815481106148d057fe5b9060005260206000209060040201600301546000146149a757600181815481106148f657fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316848d8151811061492757fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506001818154811061495457fe5b906000526020600020906004020160030154838d8151811061497257fe5b60200260200101818152505060008a8d8151811061498c57fe5b602002602001019060ff16908160ff16815250508b6001019b505b60010161461e565b5060008415614c25576002546040516303702b2960e51b815261100491636e0565209188916149e9918e918e918d914201906004016182f9565b6020604051808303818588803b158015614a0257600080fd5b505af193505050508015614a33575060408051601f3d908101601f19168201909252614a3091810190617fc3565b60015b614baa576040516000815260443d1015614a4f57506000614aea565b60046000803e60005160e01c6308c379a08114614a70576000915050614aea565b60043d036004833e81513d60248201116001600160401b0382111715614a9b57600092505050614aea565b80830180516001600160401b03811115614abc576000945050505050614aea565b8060208301013d8601811115614ada57600095505050505050614aea565b601f01601f191660405250925050505b80614af55750614b37565b60019150857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf28082604051614b29919061837e565b60405180910390a250614ba5565b3d808015614b61576040519150601f19603f3d011682016040523d82523d6000602084013e614b66565b606091505b5060019150857fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a4582604051614b9b919061837e565b60405180910390a2505b614c25565b8015614bec577fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b7086604051614bdf9190618ed8565b60405180910390a1614c23565b857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280604051614c1a906184a8565b60405180910390a25b505b8015614ddb5760005b8751811015614dd9576000888281518110614c4557fe5b60200260200101519050600060018281548110614c5e57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc9185908110614c8f57fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f1935050505090508015614d4b5760018281548110614cd057fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d9185908110614d1f57fe5b906000526020600020906004020160030154604051614d3e9190618ed8565b60405180910390a2614dcf565b60018281548110614d5857fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d9185908110614da757fe5b906000526020600020906004020160030154604051614dc69190618ed8565b60405180910390a25b5050600101614c2e565b505b835115614fd15760005b8451811015614fcf578a8181518110614dfa57fe5b602002602001015160ff1660011415614e99576120026001600160a01b031663092193ab858381518110614e2a57fe5b6020026020010151878481518110614e3e57fe5b60200260200101516040518363ffffffff1660e01b8152600401614e6291906181eb565b6000604051808303818588803b158015614e7b57600080fd5b505af1158015614e8f573d6000803e3d6000fd5b5050505050614fc7565b6000858281518110614ea757fe5b60200260200101516001600160a01b03166108fc868481518110614ec757fe5b60200260200101519081150290604051600060405180830381858888f1935050505090508015614f5d57858281518110614efd57fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d868481518110614f3b57fe5b6020026020010151604051614f509190618ed8565b60405180910390a2614fc5565b858281518110614f6957fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d868481518110614fa757fe5b6020026020010151604051614fbc9190618ed8565b60405180910390a25b505b600101614de5565b505b5050505050505050505050505060005b60015481101561503e5760018181548110614ff857fe5b9060005260206000209060040201600301546000146150365760006001828154811061502057fe5b9060005260206000209060040201600301819055505b600101614fe1565b5047156150ac577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d476040516150749190618ed8565b60405180910390a1604051611002904780156108fc02916000818181858888f193505050501580156150aa573d6000803e3d6000fd5b505b600060038190556005558151156150c7576150c782826159fa565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561510457600080fd5b505af1158015615118573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a1506000949350505050565b6000806001838154811061516057fe5b9060005260206000209060040201600301549050600060018080549050039050600161518a6130a3565b51116151bf5760006001858154811061519f57fe5b906000526020600020906004020160030181905550600092505050611dc5565b846001600160a01b03167f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a70836040516151f89190618ed8565b60405180910390a26001600160a01b038516600090815260046020526040812055835b600154600019018110156153e5576001816001018154811061523957fe5b90600052602060002090600402016001828154811061525457fe5b60009182526020909120825460049092020180546001600160a01b03199081166001600160a01b0393841617825560018085015481840180548416918616919091179055600280860180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b19909416939093179055600392830154920191909155600b80549091830190811061531557fe5b9060005260206000209060160201600b828154811061533057fe5b600091825260209091208254601690920201908155600180830154818301805460ff909216151560ff1990921691909117905560028084018054615387938386019390821615610100026000190190911604617b7e565b5061539a60038281019084016013617bf3565b509050508060010160046000600184815481106153b357fe5b600091825260208083206004909202909101546001600160a01b0316835282019290925260400190205560010161521b565b5060018054806153f157fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b80548061544457fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906154766002830182617b1a565b615484600383016000617c1d565b50509055600081838161549357fe5b04905080156155075760015460005b81811015615504576154db83600183815481106154bb57fe5b90600052602060002090600402016003015461622b90919063ffffffff16565b600182815481106154e857fe5b60009182526020909120600360049092020101556001016154a2565b50505b50600195945050505050565b6060806000808080806155246131ad565b6001549091505b801561575357600181039250600b838154811061554457fe5b600091825260209091206001601690920201015460ff166155645761574a565b6001838154811061557157fe5b60009182526020909120600490910201546001600160a01b03169450615598858484613aac565b9350836155a45761574a565b60405163436aa28360e11b81526000908190612002906386d54506906155ce908a906004016181eb565b60206040518083038186803b1580156155e657600080fd5b505afa1580156155fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061561e9190617e5b565b90506001600160a01b038116156156a7576040516302ceee9160e11b81526120029063059ddd22906156549084906004016181eb565b60206040518083038186803b15801561566c57600080fd5b505afa158015615680573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906156a49190617e5b565b91505b60005b8c5181101561574657876001600160a01b03168d82815181106156c957fe5b6020026020010151600001516001600160a01b031614806157125750826001600160a01b03168d82815181106156fb57fe5b6020026020010151600001516001600160a01b0316145b1561573e5760018d828151811061572557fe5b6020908102919091010151901515608090910152615746565b6001016156aa565b5050505b6000190161552b565b5060005b89518110156157c05789818151811061576c57fe5b602002602001015160800151806157ac575060006001600160a01b03168a828151811061579557fe5b6020026020010151600001516001600160a01b0316145b156157b8578560010195505b600101615757565b50885185106158a85760408051600180825281830190925290816020015b6157e6617ae5565b8152602001906001900390816157de575050604080516001808252818301909252919850602082015b606081526020019060019003908161580f5790505095508860008151811061583357fe5b60200260200101518760008151811061584857fe5b60200260200101819052508760008151811061586057fe5b60200260200101518660008151811061587557fe5b602002602001018190525060008760008151811061588f57fe5b60209081029190910101519015156080909101526159ed565b848951036040519080825280602002602001820160405280156158e557816020015b6158d2617ae5565b8152602001906001900390816158ca5790505b5096508489510360405190808252806020026020018201604052801561591f57816020015b606081526020019060019003908161590a5790505b5095506000915060005b89518110156159eb5789818151811061593e57fe5b602002602001015160800151158015615981575060006001600160a01b03168a828151811061596957fe5b6020026020010151600001516001600160a01b031614155b156159e35789818151811061599257fe5b60200260200101518884815181106159a657fe5b60200260200101819052508881815181106159bd57fe5b60200260200101518784815181106159d157fe5b60200260200101819052508260010192505b600101615929565b505b50505050505b9250929050565b600154825160005b82811015615b17576001615a14617ae5565b60018381548110615a2157fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b84811015615aeb57878181518110615ab157fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b03161415615ae35760009250615aeb565b600101615a9d565b508115615b0d5780516001600160a01b03166000908152600460205260408120555b5050600101615a02565b5080821115615bd657805b82811015615bd4576001805480615b3557fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b805480615b8857fe5b60008281526020812060166000199093019283020181815560018101805460ff1916905590615bba6002830182617b1a565b615bc8600383016000617c1d565b50509055600101615b22565b505b6000818310615be55781615be7565b825b905060005b81811015615f8b57615c99868281518110615c0357fe5b602002602001015160018381548110615c1857fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a0820152617020565b615e4d578060010160046000888481518110615cb157fe5b6020026020010151600001516001600160a01b03166001600160a01b0316815260200190815260200160002081905550858181518110615ced57fe5b602002602001015160018281548110615d0257fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a0909101516003909101558451859082908110615dbd57fe5b6020026020010151600b8281548110615dd257fe5b90600052602060002090601602016002019080519060200190615df6929190617a1a565b506000600b8281548110615e0657fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b805483908110615e3757fe5b6000918252602090912060169091020155615f83565b858181518110615e5957fe5b60200260200101516060015160018281548110615e7257fe5b906000526020600020906004020160020160146101000a8154816001600160401b0302191690836001600160401b03160217905550615f38858281518110615eb657fe5b6020026020010151600b8381548110615ecb57fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156134a65780601f1061347b576101008083540402835291602001916134a6565b615f8357848181518110615f4857fe5b6020026020010151600b8281548110615f5d57fe5b90600052602060002090601602016002019080519060200190615f81929190617a1a565b505b600101615bec565b508282111561616357615f9c6179eb565b835b8381101561616057858181518110615fb257fe5b602002602001015182604001819052506001878281518110615fd057fe5b6020908102919091018101518254600181810185556000948552838520835160049093020180546001600160a01b039384166001600160a01b0319918216178255848601518284018054918616918316919091179055604080860151600284018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909a1692909616919091179290921696909617169190911790935560a090930151600390930192909255600b80549283018155909352845160169091026000805160206191908339815191528101918255858301516000805160206191d08339815191528201805491151560ff1990921691909117905592850151805186949293616106936000805160206191b083398151915201920190617a1a565b50606082015161611c9060038301906013617a94565b505050806001016004600089848151811061613357fe5b602090810291909101810151516001600160a01b0316825281019190915260400160002055600101615f9e565b50505b61616b61707c565b616173617264565b6000600981905560015493505b838110156161e1576000600b828154811061619757fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b8054839081106161c857fe5b6000918252602090912060169091020155600101616180565b505050505050565b600061115e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250617452565b60008282018381101561115e5760405162461bcd60e51b8152600401610e1290618613565b60015481516040805182815260208084028201019091526060929190839082801561628f57816020015b606081526020019060019003908161627a5790505b50600b5490915083146162a6579250611d15915050565b60005b828110156163b557600b6001600460008985815181106162c557fe5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205403815481106162f957fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156163915780601f1061636657610100808354040283529160200191616391565b820191906000526020600020905b81548152906001019060200180831161637457829003601f168201915b50505050508282815181106163a257fe5b60209081029190910101526001016162a9565b50949350505050565b60005b8281101561650b57600082878388016040516020016163e19291906181dd565b6040516020818303038152906040528051906020012060001c8161640157fe5b06905080850182870114616502576000898388018151811061641f57fe5b602002602001015190506060898489018151811061643957fe5b602002602001015190508a8388018151811061645157fe5b60200260200101518b858a018151811061646757fe5b60200260200101906001600160a01b031690816001600160a01b031681525050818b8489018151811061649657fe5b60200260200101906001600160a01b031690816001600160a01b03168152505089838801815181106164c457fe5b60200260200101518a858a01815181106164da57fe5b6020026020010181905250808a848901815181106164f457fe5b602002602001018190525050505b506001016163c1565b5050505050505050565b600980546001908101909155600b80548390811061652f57fe5b906000526020600020906016020160010160006101000a81548160ff02191690831515021790555043600b828154811061656557fe5b600091825260208220601690910201919091556040516001600160a01b038416917ff62981a567ec3cec866c6fa93c55bcdf841d6292d18b8d522ececa769375d82d91a25050565b6000816040516020016165c091906181c1565b60405160208183030381529060405280519060200120836040516020016165e791906181c1565b6040516020818303038152906040528051906020012014905092915050565b015190565b8151815160009160019181148083146166275760009250616665565b600160208701838101602088015b6002848385100114156166605780518351146166545760009650600093505b60209283019201616635565b505050505b5090949350505050565b6001600160a01b0381166000908152600460205260408120548061669857506000199050611d15565b6001810390506000600182815481106166ad57fe5b90600052602060002090600402016003015490506000600183815481106166d057fe5b6000918252602090912060036004909202010155600154604051600019909101906001600160a01b038616907f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d90616729908590618ed8565b60405180910390a28061674157829350505050611d15565b600081838161674c57fe5b04905080156167e85760005b8481101561679a5761677182600183815481106154bb57fe5b6001828154811061677e57fe5b6000918252602090912060036004909202010155600101616758565b50600180549085015b818110156167e5576167bc83600183815481106154bb57fe5b600182815481106167c957fe5b60009182526020909120600360049092020101556001016167a3565b50505b5091949350505050565b60008261680157506000611dc5565b8282028284828161680e57fe5b041461115e5760405162461bcd60e51b8152600401610e12906189e2565b600061115e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061747e565b616876617c2c565b506040805180820190915281518152602082810190820152919050565b61689b617b5e565b6168a4826174b5565b6168ad57600080fd5b60006168bc83602001516174ef565b60208085015160408051808201909152868152920190820152915050919050565b60006168e7617c2c565b505080518051602091820151919092015191011190565b616906617c2c565b61690f826168dd565b61691857600080fd5b6020820151600061692882617552565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061696157508151602110155b61696a57600080fd5b600061697983602001516174ef565b9050808360000151101561699f5760405162461bcd60e51b8152600401610e1290618bf0565b8251602080850151830180519284900392918310156163b557506020919091036101000a90049392505050565b60606169d7826174b5565b6169e057600080fd5b60006169eb83617633565b9050606081604051908082528060200260200182016040528015616a2957816020015b616a16617c2c565b815260200190600190039081616a0e5790505b5090506000616a3b85602001516174ef565b60208601510190506000805b84811015616a9257616a5883617552565b9150604051806040016040528083815260200184815250848281518110616a7b57fe5b602090810291909101015291810191600101616a47565b509195945050505050565b616aa5617ae5565b60606000616ab1617ae5565b6060616abb617b5e565b616ac487616893565b90506000805b616ad3836168dd565b15616ba85780616afe57616aee616ae9846168fe565b61768f565b6001600160a01b03168552616ba0565b8060011415616b2657616b13616ae9846168fe565b6001600160a01b03166020860152616ba0565b8060021415616b4e57616b3b616ae9846168fe565b6001600160a01b03166040860152616ba0565b8060031415616b7a57616b63613dc1846168fe565b6001600160401b0316606086015260019150616ba0565b8060041415616b9b57616b94616b8f846168fe565b6176a9565b9350616ba0565b616ba8565b600101616aca565b50929791965091945092505050565b6060611dc5616bc583617719565b6177ff565b6060815160001415616beb5750604080516000815260208101909152611d15565b606082600081518110616bfa57fe5b602002602001015190506000600190505b8351811015616c3b57616c3182858381518110616c2457fe5b6020026020010151617851565b9150600101616c0b565b5061115e616c4e825160c060ff166178ce565b82617851565b60608060006120026001600160a01b031663c473318f6040518163ffffffff1660e01b815260040160206040518083038186803b158015616c9457600080fd5b505afa158015616ca8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190616ccc9190618096565b90508085518851011015616ce1575083518651015b606081604051908082528060200260200182016040528015616d1d57816020015b616d0a617ae5565b815260200190600190039081616d025790505b509050606082604051908082528060200260200182016040528015616d5657816020015b6060815260200190600190039081616d415790505b50905060008060005b8b51831080616d6e5750895182105b8015616d7957508581105b1561700e578b51831415616de957898281518110616d9357fe5b6020026020010151858281518110616da757fe5b6020026020010181905250888281518110616dbe57fe5b6020026020010151848281518110616dd257fe5b602090810291909101015260019182019101616d5f565b8951821415616e54578b8381518110616dfe57fe5b6020026020010151858281518110616e1257fe5b60200260200101819052508a8381518110616e2957fe5b6020026020010151848281518110616e3d57fe5b602090810291909101015260019283019201616d5f565b898281518110616e6057fe5b6020026020010151606001516001600160401b03168c8481518110616e8157fe5b6020026020010151606001516001600160401b03161115616efd578b8381518110616ea857fe5b6020026020010151858281518110616ebc57fe5b60200260200101819052508a8381518110616ed357fe5b6020026020010151848281518110616ee757fe5b6020026020010181905250826001019250617006565b898281518110616f0957fe5b6020026020010151606001516001600160401b03168c8481518110616f2a57fe5b6020026020010151606001516001600160401b03161015616fa657898281518110616f5157fe5b6020026020010151858281518110616f6557fe5b6020026020010181905250888281518110616f7c57fe5b6020026020010151848281518110616f9057fe5b6020026020010181905250816001019150617006565b898281518110616fb257fe5b6020026020010151600001516001600160a01b03168c8481518110616fd357fe5b6020026020010151600001516001600160a01b03161015616ffa578b8381518110616ea857fe5b898281518110616d9357fe5b600101616d5f565b50929a91995090975050505050505050565b805182516000916001600160a01b03918216911614801561705a575081602001516001600160a01b031683602001516001600160a01b0316145b801561115e5750506040908101519101516001600160a01b0390811691161490565b601254601354808211156170c757805b828110156170c557601280548061709f57fe5b6001900381819060005260206000200160006170bb9190617b1a565b905560010161708c565b505b60008183106170d657816170d8565b825b905060005b818110156171f057617195601282815481106170f557fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156171835780601f1061715857610100808354040283529160200191617183565b820191906000526020600020905b81548152906001019060200180831161716657829003601f168201915b50505050506013838154811061341857fe5b6171e857601381815481106171a657fe5b90600052602060002001601282815481106171bd57fe5b9060005260206000200190805460018160011615610100020316600290046171e6929190617b7e565b505b6001016170dd565b5082821115610e3257825b8281101561725e5760126013828154811061721257fe5b6000918252602080832084546001818101875595855291909320929091018054617255949390920192909160026101009282161592909202600019011604617b7e565b506001016171fb565b50505050565b601354600b54808211156172af57805b828110156172ad57601380548061728757fe5b6001900381819060005260206000200160006172a39190617b1a565b9055600101617274565b505b60008183106172be57816172c0565b825b905060005b818110156173df5761737d601382815481106172dd57fe5b600091825260209182902001805460408051601f600260001961010060018716150201909416939093049283018590048502810185019091528181529283018282801561736b5780601f106173405761010080835404028352916020019161736b565b820191906000526020600020905b81548152906001019060200180831161734e57829003601f168201915b5050505050600b8381548110615ecb57fe5b6173d757600b818154811061738e57fe5b9060005260206000209060160201600201601382815481106173ac57fe5b9060005260206000200190805460018160011615610100020316600290046173d5929190617b7e565b505b6001016172c5565b5082821115610e3257825b8281101561725e576013600b828154811061740157fe5b60009182526020808320845460018082018755958552919093206016929092029092016002908101805461744995939094019390926000199082161561010002011604617b7e565b506001016173ea565b600081848411156174765760405162461bcd60e51b8152600401610e12919061837e565b505050900390565b6000818361749f5760405162461bcd60e51b8152600401610e12919061837e565b5060008385816174ab57fe5b0495945050505050565b80516000906174c657506000611d15565b6020820151805160001a9060c08210156174e557600092505050611d15565b5060019392505050565b8051600090811a6080811015617509576000915050611d15565b60b8811080617524575060c08110801590617524575060f881105b15617533576001915050611d15565b60c08110156175475760b519019050611d15565b60f519019050611d15565b80516000908190811a608081101561756d576001915061762c565b60b881101561758257607e198101915061762c565b60c08110156175d357600060b78203600186019550806020036101000a8651049150600181018201935050808310156175cd5760405162461bcd60e51b8152600401610e129061892f565b5061762c565b60f88110156175e85760be198101915061762c565b600060f78203600186019550806020036101000a86510491506001810182019350508083101561762a5760405162461bcd60e51b8152600401610e129061892f565b505b5092915050565b805160009061764457506000611d15565b6000809050600061765884602001516174ef565b602085015185519181019250015b808210156176865761767782617552565b82019150826001019250617666565b50909392505050565b80516000906015146176a057600080fd5b611dc58261694c565b80516060906176b757600080fd5b60006176c683602001516174ef565b83516040805191839003808352601f19601f82011683016020019091529192506060908280156176fd576020820181803683370190505b50905060008160200190506163b58487602001510182856179a0565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff19841661775d57506018617781565b6fffffffffffffffffffffffffffffffff19841661777d57506010617781565b5060005b60208110156177b75781818151811061779657fe5b01602001516001600160f81b031916156177af576177b7565b600101617781565b60008160200390506060816040519080825280601f01601f1916602001820160405280156177ec576020820181803683370190505b5080830196909652508452509192915050565b6060815160011480156178315750607f60f81b8260008151811061781f57fe5b01602001516001600160f81b03191611155b1561783d575080611d15565b611dc561784f8351608060ff166178ce565b835b6060806040519050835180825260208201818101602087015b8183101561788257805183526020928301920161786a565b50855184518101855292509050808201602086015b818310156178af578051835260209283019201617897565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106178f85760405162461bcd60e51b8152600401610e129061877a565b604080516001808252818301909252606091602082018180368337019050509050603784116179525782840160f81b8160008151811061793457fe5b60200101906001600160f81b031916908160001a9053509050611dc5565b606061795d85617719565b90508381510160370160f81b8260008151811061797657fe5b60200101906001600160f81b031916908160001a9053506179978282617851565b95945050505050565b806179aa57610e32565b5b602081106179ca578251825260209283019290910190601f19016179ab565b915181516020939093036101000a6000190180199091169216919091179052565b60405180608001604052806000815260200160001515815260200160608152602001617a15617c46565b905290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10617a5b57805160ff1916838001178555617a88565b82800160010185558215617a88579182015b82811115617a88578251825591602001919060010190617a6d565b506131e8929150617c65565b8260138101928215617a885791602002820182811115617a88578251825591602001919060010190617a6d565b6040518060600160405280600060ff16815260200160608152602001606081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b50805460018160011615610100020316600290046000825580601f10617b405750611f2d565b601f016020900490600052602060002090810190611f2d9190617c65565b6040518060400160405280617b71617c2c565b8152602001600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10617bb75780548555617a88565b82800160010185558215617a8857600052602060002091601f016020900482015b82811115617a88578254825591600101919060010190617bd8565b8260138101928215617a885791820182811115617a88578254825591600101919060010190617bd8565b50611f2d906013810190617c65565b604051806040016040528060008152602001600081525090565b6040518061026001604052806013906020820280368337509192915050565b61318c91905b808211156131e85760008155600101617c6b565b8035611dc581618faf565b60008083601f840112617c9b578182fd5b5081356001600160401b03811115617cb1578182fd5b60208301915083602080830285010111156159f357600080fd5b6000601f8381840112617cdc578182fd5b8235617cef617cea82618f64565b618f3e565b818152925060208084019085810160005b84811015617d81578135880189603f820112617d1b57600080fd5b838101356001600160401b03811115617d3357600080fd5b617d44818901601f19168601618f3e565b81815260408c81848601011115617d5a57600080fd5b82818501888401375060009181018601919091528552509282019290820190600101617d00565b50505050505092915050565b600082601f830112617d9d578081fd5b8135617dab617cea82618f64565b818152915060208083019084810181840286018201871015617dcc57600080fd5b6000805b85811015617d815782356001600160401b0381168114617dee578283fd5b85529383019391830191600101617dd0565b60008083601f840112617e11578182fd5b5081356001600160401b03811115617e27578182fd5b6020830191508360208285010111156159f357600080fd5b600060208284031215617e50578081fd5b813561115e81618faf565b600060208284031215617e6c578081fd5b815161115e81618faf565b60008060008060408587031215617e8c578283fd5b84356001600160401b0380821115617ea2578485fd5b617eae88838901617c8a565b90965094506020870135915080821115617ec6578384fd5b50617ed387828801617c8a565b95989497509550505050565b600080600060608486031215617ef3578283fd5b83356001600160401b0380821115617f09578485fd5b81860187601f820112617f1a578586fd5b80359250617f2a617cea84618f64565b80848252602080830192508084018b828389028701011115617f4a57898afd5b8994505b86851015617f7457617f608c82617c7f565b845260019490940193928101928101617f4e565b509097508801359350505080821115617f8b578384fd5b617f9787838801617d8d565b93506040860135915080821115617fac578283fd5b50617fb986828701617ccb565b9150509250925092565b600060208284031215617fd4578081fd5b8151801515811461115e578182fd5b60008060208385031215617ff5578182fd5b82356001600160401b0381111561800a578283fd5b61801685828601617e00565b90969095509350505050565b60008060008060408587031215618037578384fd5b84356001600160401b038082111561804d578586fd5b61805988838901617e00565b90965094506020870135915080821115618071578384fd5b50617ed387828801617e00565b60006020828403121561808f578081fd5b5035919050565b6000602082840312156180a7578081fd5b5051919050565b600080604083850312156180c0578182fd5b505080516020909101519092909150565b6000806000604084860312156180e5578081fd5b833560ff811681146180f5578182fd5b925060208401356001600160401b0381111561810f578182fd5b61811b86828701617e00565b9497909650939450505050565b6000815180845260208085019450808401835b838110156181605781516001600160a01b03168752958201959082019060010161813b565b509495945050505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b600081518084526181ad816020860160208601618f83565b601f01601f19169290920160200192915050565b600082516181d3818460208701618f83565b9190910192915050565b918252602082015260400190565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b03968716815294861660208601529290941660408401526001600160401b03166060830152911515608082015260a081019190915260c00190565b6001600160a01b0392909216825260ff16602082015260400190565b60006020825261115e6020830184618128565b60006040825261829c6040830185618128565b602083820381850152818551808452828401915082838202850101838801865b838110156182ea57601f198784030185526182d8838351618195565b948601949250908501906001016182bc565b50909998505050505050505050565b60006080825261830c6080830187618128565b828103602084810191909152865180835287820192820190845b8181101561834257845183529383019391830191600101618326565b505084810360408601526183568188618128565b93505050506001600160401b038316606083015295945050505050565b901515815260200190565b60006020825261115e6020830184618195565b6000604082526183a560408301868861816b565b82810360208401526183b881858761816b565b979650505050505050565b6020808252601c908201527f6c656e677468206f66206275726e526174696f206d69736d6174636800000000604082015260600190565b60208082526042908201527f746865206275726e526174696f20706c75732073797374656d5265776172645260408201527f6174696f206d757374206265206e6f2067726561746572207468616e20313030606082015261030360f41b608082015260a00190565b60208082526026908201527f6c656e677468206f66206d61784e756d4f664d61696e7461696e696e67206d696040820152650e6dac2e8c6d60d31b606082015260800190565b6020808252601b908201527f6261746368207472616e736665722072657475726e2066616c73650000000000604082015260600190565b6020808252602c908201527f6c656e677468206f66206d61784e756d4f66576f726b696e6743616e6469646160408201526b0e8cae640dad2e6dac2e8c6d60a31b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61696e7461696e536c6173685363616c65206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252818101527f6c656e677468206f66206e756d4f66436162696e657473206d69736d61746368604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252601f908201527f6f6e6c7920736c617368206f72207374616b6548756220636f6e747261637400604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526028908201527f746865206e756d4f66436162696e657473206d75737420626520677265617465604082015267072207468616e20360c41b606082015260800190565b60208082526039908201527f746865206e756d4f66436162696e657473206d757374206265206c657373207460408201527f68616e204d41585f4e554d5f4f465f56414c494441544f525300000000000000606082015260800190565b60208082526029908201527f746865206e756d626572206f662076616c696461746f727320657863656564206040820152681d1a19481b1a5b5a5d60ba1b606082015260800190565b60208082526022908201527f63616e206e6f7420646f207468697320747769636520696e206f6e6520626c6f604082015261636b60f01b606082015260800190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526037908201527f746865206d61784e756d4f664d61696e7461696e696e67206d7573742062652060408201527f6c657373207468616e206e756d4f66436162696e657473000000000000000000606082015260800190565b6020808252602b908201527f6475706c696361746520636f6e73656e7375732061646472657373206f66207660408201526a185b1a59185d1bdc94d95d60aa1b606082015260800190565b60208082526027908201527f7468652065787069726554696d655365636f6e64476170206973206f7574206f604082015266662072616e676560c81b606082015260800190565b6020808252601590820152746465706f7369742076616c7565206973207a65726f60581b604082015260600190565b60208082526049908201527f746865206d61784e756d4f66576f726b696e6743616e64696461746573206d7560408201527f7374206265206e6f742067726561746572207468616e206d61784e756d4f6643606082015268616e6469646174657360b81b608082015260a00190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b60208082526023908201527f63616e206e6f7420656e7465722054656d706f72617279204d61696e74656e616040820152626e636560e81b606082015260800190565b60208082526025908201527f6c656e677468206f66206a61696c2076616c696461746f7273206d757374206260408201526465206f6e6560d81b606082015260800190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61784e756d4f6643616e64696461746573206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252601290820152716e6f7420696e206d61696e74656e616e636560701b604082015260600190565b60208082526021908201527f666565206973206c6172676572207468616e2044555354595f494e434f4d494e6040820152604760f81b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b60208082526042908201527f7468652073797374656d526577617264526174696f20706c7573206275726e5260408201527f6174696f206d757374206265206e6f2067726561746572207468616e20313030606082015261030360f41b608082015260a00190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526026908201527f6c656e677468206f662065787069726554696d655365636f6e64476170206d696040820152650e6dac2e8c6d60d31b606082015260800190565b60208082526017908201527f6f6e6c792063757272656e742076616c696461746f7273000000000000000000604082015260600190565b60208082526021908201527f6661696c656420746f20706172736520696e69742076616c696461746f7253656040820152601d60fa1b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b60208082526024908201527f6c656e677468206f662073797374656d526577617264526174696f206d69736d6040820152630c2e8c6d60e31b606082015260800190565b6020808252603e908201527f746865206d61696e7461696e536c6173685363616c65206d757374206265206760408201527f726561746572207468616e203020616e64206c657373207468616e2031300000606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b60208082526029908201527f746865206d6573736167652073656e646572206d75737420626520736c6173686040820152680818dbdb9d1c9858dd60ba1b606082015260800190565b6020808252601f908201527f746865206d73672073656e646572206d757374206265207374616b6548756200604082015260600190565b61ffff91909116815260200190565b90815260200190565b60008482528315156020830152606060408301526179976060830184618195565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff851682526040602083015261799760408301848661816b565b6040518181016001600160401b0381118282101715618f5c57600080fd5b604052919050565b60006001600160401b03821115618f79578081fd5b5060209081020190565b60005b83811015618f9e578181015183820152602001618f86565b8381111561725e5750506000910152565b6001600160a01b0381168114611f2d57600080fdfef901a880f901a4f844941284214b9b9c85549ab3d2b972df0deef66ac2c9946ddf42a51534fc98d0c0a3b42c963cace8441ddf946ddf42a51534fc98d0c0a3b42c963cace8441ddf8410000000f84494a2959d3f95eae5dc7d70144ce1b73b403b7eb6e0948081ef03f1d9e0bb4a5bf38f16285c879299f07f948081ef03f1d9e0bb4a5bf38f16285c879299f07f8410000000f8449435552c16704d214347f29fa77f77da6d75d7c75294dc4973e838e3949c77aced16ac2315dc2d7ab11194dc4973e838e3949c77aced16ac2315dc2d7ab1118410000000f84494980a75ecd1309ea12fa2ed87a8744fbfc9b863d594cc6ac05c95a99c1f7b5f88de0e3486c82293b27094cc6ac05c95a99c1f7b5f88de0e3486c82293b2708410000000f84494f474cf03cceff28abc65c9cbae594f725c80e12d94e61a183325a18a173319dd8e19c8d069459e217594e61a183325a18a173319dd8e19c8d069459e21758410000000f84494b71b214cb885500844365e95cd9942c7276e7fd894d22ca3ba2141d23adab65ce4940eb7665ea2b6a794d22ca3ba2141d23adab65ce4940eb7665ea2b6a7841000000070e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb20175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbb0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbaa164736f6c6343000604000a", - }, - { - ContractAddr: StakeHubContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/2d6372ddba77902ef01e45887a425938376d5a5c", - Code: "608060405260043610620003db5760003560e01c806386d545061162000203578063d115a2061162000117578063e992aaf511620000ad578063f80a34021162000078578063f80a34021462000bef578063fb50b31f1462000c14578063fc0c5ff11462000c39578063ff69ab611462000c5157600080fd5b8063e992aaf51462000b6c578063efdbf0e11462000b84578063f1f74d841462000bc0578063f1fad1041462000bd857600080fd5b8063d8ca511f11620000ee578063d8ca511f1462000aff578063daacdb661462000b17578063dbda7fb31462000b2f578063e8f67c3b1462000b5457600080fd5b8063d115a2061462000a9d578063d6ca429d1462000ab5578063d7c2dfc81462000ada57600080fd5b8063b187bd261162000199578063c38fbec81162000164578063c38fbec81462000a1f578063c473318f1462000a44578063c8509d81146200083d578063cbb04d9d1462000a5c57600080fd5b8063b187bd26146200098c578063baa7199e14620009ac578063bdceadf314620009d1578063bff02e2014620009e957600080fd5b8063982ef0a711620001da578063982ef0a714620008f7578063a43569b3146200090e578063aad3ec961462000942578063ac431751146200096757600080fd5b806386d54506146200087a5780638a4d3fa814620008b45780638cd22b2214620008d257600080fd5b80634bf6c88211620002fb578063663706d3116200029157806376e7d6d6116200025c57806376e7d6d6146200080d5780638129fc1c1462000825578063831d65d1146200083d5780638456cb59146200086257600080fd5b8063663706d3146200073a5780636ec01b27146200076b5780636f8e2fa414620007c357806375cc7d8914620007e857600080fd5b80635949187111620002d25780635949187114620006a25780635e7cc1c914620006c757806363a036b514620006ec57806364028fbd146200072357600080fd5b80634bf6c882146200063b5780634d99dd1614620006655780634e6fd6c4146200068a57600080fd5b80631fa8882b1162000371578063449ecfe61162000348578063449ecfe6146200058757806345211bfd14620005ac5780634838d16514620005d15780634a49ac4c146200061657600080fd5b80631fa8882b146200053157806338409988146200054a578063417c73a7146200056257600080fd5b8063092193ab11620003b2578063092193ab146200047c5780630e9fbf5114620004935780631182b87514620004b857806317b4f35314620004ec57600080fd5b8063046f7da214620003fb578063059ddd2214620004135780630661806e146200045557600080fd5b36620003f65760345460ff16600114620003f457600080fd5b005b600080fd5b3480156200040857600080fd5b50620003f462000c69565b3480156200042057600080fd5b50620004386200043236600462009440565b62000cfb565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156200046257600080fd5b506200046d60365481565b6040519081526020016200044c565b620003f46200048d36600462009440565b62001110565b348015620004a057600080fd5b50620003f4620004b2366004620094a4565b6200174e565b348015620004c557600080fd5b50620004dd620004d7366004620094e9565b62001a7a565b6040516200044c91906200959c565b348015620004f957600080fd5b50620004386200050b36600462009692565b80516020818301810180516045825292820191909301209152546001600160a01b031681565b3480156200053e57600080fd5b506200046d6201518081565b3480156200055757600080fd5b506200046d60375481565b3480156200056f57600080fd5b50620003f46200058136600462009440565b62001ded565b3480156200059457600080fd5b50620003f4620005a636600462009440565b62001e6f565b348015620005b957600080fd5b50620003f4620005cb36600462009440565b62002054565b348015620005de57600080fd5b5062000605620005f036600462009440565b60016020526000908152604090205460ff1681565b60405190151581526020016200044c565b3480156200062357600080fd5b50620003f46200063536600462009440565b62002231565b3480156200064857600080fd5b5062000652600881565b60405160ff90911681526020016200044c565b3480156200067257600080fd5b50620003f462000684366004620096e7565b620022ad565b3480156200069757600080fd5b506200043861dead81565b348015620006af57600080fd5b50620003f4620006c136600462009725565b620028ca565b348015620006d457600080fd5b50620003f4620006e636600462009795565b6200369c565b348015620006f957600080fd5b50620007116200070b366004620097b5565b620038a4565b6040516200044c94939291906200981e565b620003f462000734366004620098da565b62003f36565b3480156200074757600080fd5b506200046d6200075936600462009440565b60446020526000908152604090205481565b3480156200077857600080fd5b50620007906200078a36600462009440565b62004580565b6040805182516001600160401b03908116825260208085015182169083015292820151909216908201526060016200044c565b348015620007d057600080fd5b50620004dd620007e236600462009440565b6200462a565b348015620007f557600080fd5b50620003f46200080736600462009440565b62004a43565b3480156200081a57600080fd5b506200046d603d5481565b3480156200083257600080fd5b50620003f462004c15565b3480156200084a57600080fd5b50620003f46200085c366004620094e9565b62004f2c565b3480156200086f57600080fd5b50620003f462004f96565b3480156200088757600080fd5b50620004386200089936600462009440565b6043602052600090815260409020546001600160a01b031681565b348015620008c157600080fd5b506200046d670de0b6b3a764000081565b348015620008df57600080fd5b506200046d620008f1366004620096e7565b6200502e565b620003f462000908366004620099b2565b620050e7565b3480156200091b57600080fd5b50620009336200092d36600462009440565b62005771565b6040516200044c9190620099f0565b3480156200094f57600080fd5b50620003f462000961366004620096e7565b62005a5e565b3480156200097457600080fd5b50620003f46200098636600462009a6d565b62005acb565b3480156200099957600080fd5b5060005462010000900460ff1662000605565b348015620009b957600080fd5b50620003f4620009cb36600462009b26565b6200696a565b348015620009de57600080fd5b506200046d603c5481565b348015620009f657600080fd5b5062000a0e62000a08366004620097b5565b62006b37565b6040516200044c9392919062009b82565b34801562000a2c57600080fd5b50620003f462000a3e36600462009440565b62006d13565b34801562000a5157600080fd5b506200046d60385481565b34801562000a6957600080fd5b5062000a8162000a7b36600462009440565b62006fd5565b604080519384529115156020840152908201526060016200044c565b34801562000aaa57600080fd5b506200046d61271081565b34801562000ac257600080fd5b50620003f462000ad436600462009bdf565b62007405565b34801562000ae757600080fd5b50620003f462000af936600462009cc8565b62007609565b34801562000b0c57600080fd5b506200046d603b5481565b34801562000b2457600080fd5b506200046d60495481565b34801562000b3c57600080fd5b506200043862000b4e36600462009440565b620076ff565b34801562000b6157600080fd5b506200046d60355481565b34801562000b7957600080fd5b506200046d603a5481565b34801562000b9157600080fd5b506200046d62000ba336600462009692565b805160208183018101805160468252928201919093012091525481565b34801562000bcd57600080fd5b506200046d603e5481565b34801562000be557600080fd5b5062000652601181565b34801562000bfc57600080fd5b506200046d62000c0e366004620096e7565b62007b16565b34801562000c2157600080fd5b50620003f462000c3336600462009a6d565b62007b87565b34801562000c4657600080fd5b506200046d60395481565b34801562000c5e57600080fd5b506200046d604a5481565b600054630100000090046001600160a01b0316331462000c9c576040516306fbb1e360e01b815260040160405180910390fd5b60005462010000900460ff1662000cc657604051636cd6020160e01b815260040160405180910390fd5b6000805462ff0000191681556040517f62451d457bc659158be6e6247f56ec1df424a5c7597f71c20c2bc44e0965c8f99190a1565b6001600160a01b038082166000908152604160209081526040808320815161016081018352815486168152600182015486169381019390935260028101549094169082015260038301546060820152600483018054929384939091608084019162000d669062009d2e565b80601f016020809104026020016040519081016040528092919081815260200182805462000d949062009d2e565b801562000de55780601f1062000db95761010080835404028352916020019162000de5565b820191906000526020600020905b81548152906001019060200180831162000dc757829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462000e109062009d2e565b80601f016020809104026020016040519081016040528092919081815260200182805462000e3e9062009d2e565b801562000e8f5780601f1062000e635761010080835404028352916020019162000e8f565b820191906000526020600020905b81548152906001019060200180831162000e7157829003601f168201915b5050505050815260200160018201805462000eaa9062009d2e565b80601f016020809104026020016040519081016040528092919081815260200182805462000ed89062009d2e565b801562000f295780601f1062000efd5761010080835404028352916020019162000f29565b820191906000526020600020905b81548152906001019060200180831162000f0b57829003601f168201915b5050505050815260200160028201805462000f449062009d2e565b80601f016020809104026020016040519081016040528092919081815260200182805462000f729062009d2e565b801562000fc35780601f1062000f975761010080835404028352916020019162000fc3565b820191906000526020600020905b81548152906001019060200180831162000fa557829003601f168201915b5050505050815260200160038201805462000fde9062009d2e565b80601f01602080910402602001604051908101604052809291908181526020018280546200100c9062009d2e565b80156200105d5780601f1062001031576101008083540402835291602001916200105d565b820191906000526020600020905b8154815290600101906020018083116200103f57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b815481526020019060010190808311620010e9575050509190925250509051949350505050565b33611000146200113c57604051630f22c43960e41b815261100060048201526024015b60405180910390fd5b6001600160a01b03808216600090815260436020908152604080832054841680845260418352818420825161016081018452815487168152600182015487169481019490945260028101549095169183019190915260038401546060830152600484018054919491608084019190620011b59062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620011e39062009d2e565b8015620012345780601f10620012085761010080835404028352916020019162001234565b820191906000526020600020905b8154815290600101906020018083116200121657829003601f168201915b50505050508152602001600582016040518060800160405290816000820180546200125f9062009d2e565b80601f01602080910402602001604051908101604052809291908181526020018280546200128d9062009d2e565b8015620012de5780601f10620012b257610100808354040283529160200191620012de565b820191906000526020600020905b815481529060010190602001808311620012c057829003601f168201915b50505050508152602001600182018054620012f99062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620013279062009d2e565b8015620013785780601f106200134c5761010080835404028352916020019162001378565b820191906000526020600020905b8154815290600101906020018083116200135a57829003601f168201915b50505050508152602001600282018054620013939062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620013c19062009d2e565b8015620014125780601f10620013e65761010080835404028352916020019162001412565b820191906000526020600020905b815481529060010190602001808311620013f457829003601f168201915b505050505081526020016003820180546200142d9062009d2e565b80601f01602080910402602001604051908101604052809291908181526020018280546200145b9062009d2e565b8015620014ac5780601f106200148057610100808354040283529160200191620014ac565b820191906000526020600020905b8154815290600101906020018083116200148e57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b81548152602001906001019080831162001538575050509190925250505060408101519091506001600160a01b031615806200157557508060e001515b156200163257604051611002903490600081818185875af1925050503d8060008114620015bf576040519150601f19603f3d011682016040523d82523d6000602084013e620015c4565b606091505b505050816001600160a01b03167ffc8bff675087dd2da069cc3fb517b9ed001e19750c0865241a5542dba1ba170d604051620016259060208082526011908201527024a72b20a624a22fab20a624a220aa27a960791b604082015260600190565b60405180910390a2505050565b60408181015160c0830151519151632f303ebb60e11b81526001600160401b0390921660048301526001600160a01b031690635e607d769034906024016000604051808303818588803b1580156200168957600080fd5b505af11580156200169e573d6000803e3d6000fd5b5050505050816001600160a01b03167fe34918ff1c7084970068b53fd71ad6d8b04e9f15d3886cbf006443e6cdc52ea634604051620016df91815260200190565b60405180910390a26040808201519051633041949b60e01b815261200591633041949b91620017149190869060040162009d64565b600060405180830381600087803b1580156200172f57600080fd5b505af115801562001744573d6000803e3d6000fd5b5050505050505b50565b33611001146200177657604051630f22c43960e41b8152611001600482015260240162001133565b60005462010000900460ff1615620017a157604051631785c68160e01b815260040160405180910390fd5b600060458383604051620017b792919062009d7e565b908152604051908190036020019020546001600160a01b03169050620017df603f8262007ddb565b620017fd5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b03811660009081526041602052604081209062001825620151804262009da4565b604a546000828152604b602052604090205491925011620018595760405163bd52fcdb60e01b815260040160405180910390fd5b6000818152604b602052604081208054600192906200187a90849062009dc7565b909155505060405160469062001894908790879062009d7e565b908152602001604051809103902054600014158015620018e55750426201518060468787604051620018c892919062009d7e565b908152602001604051809103902054620018e3919062009dc7565b105b156200190457604051631898eb6b60e01b815260040160405180910390fd5b6000806200191485600262007dfe565b91509150816200193757604051631b919bb160e11b815260040160405180910390fd5b6002840154603c5460405163045bc4d160e41b815260048101919091526000916001600160a01b0316906345bc4d10906024016020604051808303816000875af11580156200198a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620019b0919062009ddd565b9050620019be858362007e88565b856001600160a01b03167f6e9a2ee7aee95665e3a774a212eb11441b217e3e4656ab9563793094689aabb283836002604051620019fe9392919062009e0d565b60405180910390a26002850154604051633041949b60e01b815261200591633041949b9162001a3c916001600160a01b0316908a9060040162009d64565b600060405180830381600087803b15801562001a5757600080fd5b505af115801562001a6c573d6000803e3d6000fd5b505050505050505050505050565b6060336120001462001aa457604051630f22c43960e41b8152612000600482015260240162001133565b60005462010000900460ff161562001acf57604051631785c68160e01b815260040160405180910390fd5b6034805460ff19166001179055604080516020601f8501819004810282018101909252838152600091829162001b209187908790819084018382808284376000920191909152506200804f92505050565b915091508062001b435760405163035ede3560e21b815260040160405180910390fd5b816060015160000362001b69575050604080516000815260208101909152905062001ddc565b606082015160405163e04c83a760e01b81526000916110049163e04c83a79162001b999160040190815260200190565b6020604051808303816000875af115801562001bb9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001bdf919062009e3c565b90508062001c865782602001516001600160a01b031683600001516001600160a01b03167fa9084c89a291b43bc984e045671d394974730a159b9a826b577bb148ab504c3a8560600151600160405162001c3b92919062009e5c565b60405180910390a385858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092965062001ddc95505050505050565b600062001c9384620081b2565b9050600081600481111562001cac5762001cac62009df7565b0362001cce575050604080516000815260208101909152925062001ddc915050565b6040516000906110049047908381818185875af1925050503d806000811462001d14576040519150601f19603f3d011682016040523d82523d6000602084013e62001d19565b606091505b505090508062001d3c576040516312171d8360e31b815260040160405180910390fd5b84602001516001600160a01b031685600001516001600160a01b03167fa9084c89a291b43bc984e045671d394974730a159b9a826b577bb148ab504c3a87606001518560405162001d8f92919062009e5c565b60405180910390a387878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092985062001ddc975050505050505050565b6034805460ff191690559392505050565b600054630100000090046001600160a01b0316331462001e20576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b0381166000818152600160208190526040808320805460ff1916909217909155517f7fd26be6fc92aff63f1f4409b2b2ddeb272a888031d7f55ec830485ec61941869190a250565b60005462010000900460ff161562001e9a57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161562001ecc5760405163b1d02c3d60e01b815260040160405180910390fd5b8062001eda603f8262007ddb565b62001ef85760405163056e881160e01b815260040160405180910390fd5b6001600160a01b0382166000908152604160205260409020600a81015460ff1662001f3657604051634b6b857d60e01b815260040160405180910390fd5b6036546002820154604051630913db4760e01b81526001600160a01b03868116600483015290911690630913db4790602401602060405180830381865afa15801562001f86573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001fac919062009ddd565b101562001fcc576040516317b204bf60e11b815260040160405180910390fd5b4281600b0154111562001ff25760405163170cb76760e21b815260040160405180910390fd5b600a8101805460ff1916905560498054600191906000906200201690849062009e83565b90915550506040516001600160a01b038416907f9390b453426557da5ebdc31f19a37753ca04addf656d32f35232211bb2af3f1990600090a2505050565b60005462010000900460ff16156200207f57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620020b15760405163b1d02c3d60e01b815260040160405180910390fd5b33620020bf603f8262007ddb565b620020dd5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b0382166200210557604051636520611b60e11b815260040160405180910390fd5b6001600160a01b03828116600090815260436020526040902054161515806200214657506001600160a01b03821660009081526047602052604090205460ff165b156200216557604051631e6f587560e11b815260040160405180910390fd5b336000818152604160205260409020600c81015442906200218b90620151809062009dc7565b1115620021ab57604051631f92cdbd60e11b815260040160405180910390fd5b80546001600160a01b039081166000908152604460209081526040808320429081905585548986166001600160a01b031991821681178855600c88019290925581855260439093528184208054958816959093168517909255519092917f6e4e747ca35203f16401c69805c7dd52fff67ef60b0ebc5c7fe16890530f223591a350505050565b600054630100000090046001600160a01b0316331462002264576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b038116600081815260016020526040808220805460ff19169055517fe0db3499b7fdc3da4cddff5f45d694549c19835e7f719fb5606d3ad1a5de40119190a250565b60005462010000900460ff1615620022d857604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff16156200230a5760405163b1d02c3d60e01b815260040160405180910390fd5b8162002318603f8262007ddb565b620023365760405163056e881160e01b815260040160405180910390fd5b816000036200235857604051639811e0c760e01b815260040160405180910390fd5b6001600160a01b0380841660009081526041602090815260408083208151610160810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180543394916080840191620023c09062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620023ee9062009d2e565b80156200243f5780601f1062002413576101008083540402835291602001916200243f565b820191906000526020600020905b8154815290600101906020018083116200242157829003601f168201915b50505050508152602001600582016040518060800160405290816000820180546200246a9062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620024989062009d2e565b8015620024e95780601f10620024bd57610100808354040283529160200191620024e9565b820191906000526020600020905b815481529060010190602001808311620024cb57829003601f168201915b50505050508152602001600182018054620025049062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620025329062009d2e565b8015620025835780601f10620025575761010080835404028352916020019162002583565b820191906000526020600020905b8154815290600101906020018083116200256557829003601f168201915b505050505081526020016002820180546200259e9062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620025cc9062009d2e565b80156200261d5780601f10620025f1576101008083540402835291602001916200261d565b820191906000526020600020905b815481529060010190602001808311620025ff57829003601f168201915b50505050508152602001600382018054620026389062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620026669062009d2e565b8015620026b75780601f106200268b57610100808354040283529160200191620026b7565b820191906000526020600020905b8154815290600101906020018083116200269957829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b81548152602001906001019080831162002743575050509190925250505060408082015190516326ccee8b60e11b81526001600160a01b0385811660048301526024820188905292935060009290911690634d99dd16906044016020604051808303816000875af1158015620027bd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620027e3919062009ddd565b9050826001600160a01b0316866001600160a01b03167f3aace7340547de7b9156593a7652dc07ee900cea3fd8f82cb6c9d38b40829802878460405162002834929190918252602082015260400190565b60405180910390a3856001600160a01b0316836001600160a01b0316036200286157620028618662008808565b6040808301519051633041949b60e01b815261200591633041949b916200288e9190879060040162009d64565b600060405180830381600087803b158015620028a957600080fd5b505af1158015620028be573d6000803e3d6000fd5b50505050505050505050565b60005462010000900460ff1615620028f557604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620029275760405163b1d02c3d60e01b815260040160405180910390fd5b8362002935603f8262007ddb565b620029535760405163056e881160e01b815260040160405180910390fd5b8362002961603f8262007ddb565b6200297f5760405163056e881160e01b815260040160405180910390fd5b6034805460ff191660011790556000849003620029af57604051639811e0c760e01b815260040160405180910390fd5b846001600160a01b0316866001600160a01b031603620029e25760405163f0e3e62960e01b815260040160405180910390fd5b6001600160a01b038087166000908152604160209081526040808320815161016081018352815486168152600182015486169381019390935260028101549094169082015260038301546060820152600483018054339491608084019162002a4a9062009d2e565b80601f016020809104026020016040519081016040528092919081815260200182805462002a789062009d2e565b801562002ac95780601f1062002a9d5761010080835404028352916020019162002ac9565b820191906000526020600020905b81548152906001019060200180831162002aab57829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462002af49062009d2e565b80601f016020809104026020016040519081016040528092919081815260200182805462002b229062009d2e565b801562002b735780601f1062002b475761010080835404028352916020019162002b73565b820191906000526020600020905b81548152906001019060200180831162002b5557829003601f168201915b5050505050815260200160018201805462002b8e9062009d2e565b80601f016020809104026020016040519081016040528092919081815260200182805462002bbc9062009d2e565b801562002c0d5780601f1062002be15761010080835404028352916020019162002c0d565b820191906000526020600020905b81548152906001019060200180831162002bef57829003601f168201915b5050505050815260200160028201805462002c289062009d2e565b80601f016020809104026020016040519081016040528092919081815260200182805462002c569062009d2e565b801562002ca75780601f1062002c7b5761010080835404028352916020019162002ca7565b820191906000526020600020905b81548152906001019060200180831162002c8957829003601f168201915b5050505050815260200160038201805462002cc29062009d2e565b80601f016020809104026020016040519081016040528092919081815260200182805462002cf09062009d2e565b801562002d415780601f1062002d155761010080835404028352916020019162002d41565b820191906000526020600020905b81548152906001019060200180831162002d2357829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b81548152602001906001019080831162002dcd57505050919092525050506001600160a01b0380891660009081526041602090815260408083208151610160810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180549495509193909291608084019162002e589062009d2e565b80601f016020809104026020016040519081016040528092919081815260200182805462002e869062009d2e565b801562002ed75780601f1062002eab5761010080835404028352916020019162002ed7565b820191906000526020600020905b81548152906001019060200180831162002eb957829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462002f029062009d2e565b80601f016020809104026020016040519081016040528092919081815260200182805462002f309062009d2e565b801562002f815780601f1062002f555761010080835404028352916020019162002f81565b820191906000526020600020905b81548152906001019060200180831162002f6357829003601f168201915b5050505050815260200160018201805462002f9c9062009d2e565b80601f016020809104026020016040519081016040528092919081815260200182805462002fca9062009d2e565b80156200301b5780601f1062002fef576101008083540402835291602001916200301b565b820191906000526020600020905b81548152906001019060200180831162002ffd57829003601f168201915b50505050508152602001600282018054620030369062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620030649062009d2e565b8015620030b55780601f106200308957610100808354040283529160200191620030b5565b820191906000526020600020905b8154815290600101906020018083116200309757829003601f168201915b50505050508152602001600382018054620030d09062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620030fe9062009d2e565b80156200314f5780601f1062003123576101008083540402835291602001916200314f565b820191906000526020600020905b8154815290600101906020018083116200313157829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b815481526020019060010190808311620031db5750505050508152505090508060e0015180156200321e5750876001600160a01b0316836001600160a01b031614155b156200323d57604051636468920360e01b815260040160405180910390fd5b60408083015190516352e82ce560e11b81526001600160a01b038581166004830152602482018a9052600092169063a5d059ca906044016020604051808303816000875af115801562003294573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620032ba919062009ddd565b9050603754811015620032e05760405163dc6f0bdd60e01b815260040160405180910390fd5b896001600160a01b0316846001600160a01b03161480156200337557506036546040808501519051630913db4760e01b81526001600160a01b038d8116600483015290911690630913db4790602401602060405180830381865afa1580156200334d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003373919062009ddd565b105b1562003394576040516317b204bf60e11b815260040160405180910390fd5b6000612710603a5483620033a9919062009e99565b620033b5919062009da4565b9050600083604001516001600160a01b03168260405160006040518083038185875af1925050503d80600081146200340a576040519150601f19603f3d011682016040523d82523d6000602084013e6200340f565b606091505b505090508062003432576040516312171d8360e31b815260040160405180910390fd5b6200343e828462009e83565b60408086015190516317066a5760e21b81526001600160a01b03898116600483015292955060009290911690635c19a95c90869060240160206040518083038185885af115801562003494573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190620034bb919062009ddd565b9050866001600160a01b03168c6001600160a01b03168e6001600160a01b03167ffdac6e81913996d95abcc289e90f2d8bd235487ce6fe6f821e7d21002a1915b48e858960405162003520939291909283526020830191909152604082015260600190565b60405180910390a460408051600280825260608201835260009260208301908036833701905050905086604001518160008151811062003564576200356462009eb3565b60200260200101906001600160a01b031690816001600160a01b0316815250508560400151816001815181106200359f576200359f62009eb3565b6001600160a01b0390921660209283029190910190910152604051634484077560e01b815261200590634484077590620035e09084908c9060040162009ec9565b600060405180830381600087803b158015620035fb57600080fd5b505af115801562003610573d6000803e3d6000fd5b505050508a1562003682576120056001600160a01b031663e5ed5b1e898f6040518363ffffffff1660e01b81526004016200364d92919062009d64565b600060405180830381600087803b1580156200366857600080fd5b505af11580156200367d573d6000803e3d6000fd5b505050505b50506034805460ff19169055505050505050505050505050565b60005462010000900460ff1615620036c757604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620036f95760405163b1d02c3d60e01b815260040160405180910390fd5b3362003707603f8262007ddb565b620037255760405163056e881160e01b815260040160405180910390fd5b336000818152604160205260409020600c81015442906200374b90620151809062009dc7565b11156200376b57604051631f92cdbd60e11b815260040160405180910390fd5b60098101546001600160401b03600160401b90910481169085161115620037a55760405163dc81db8560e01b815260040160405180910390fd5b60098101546000906001600160401b039081169086161015620037e3576009820154620037dd9086906001600160401b031662009ef5565b620037fd565b6009820154620037fd906001600160401b03168662009ef5565b60098301546001600160401b039182169250600160801b900416811115620038385760405163dc81db8560e01b815260040160405180910390fd5b60098201805467ffffffffffffffff19166001600160401b03871690811790915542600c8401556040519081526001600160a01b038416907f78cdd96edf59e09cfd4d26ef6ef6c92d166effe6a40970c54821206d541932cb9060200160405180910390a25050505050565b60608060606000620038b7603f6200892e565b90508086101562003f2d578415620038d05784620038d2565b805b9450600085620038e3888462009e83565b11620038fb57620038f5878362009e83565b620038fd565b855b9050806001600160401b038111156200391a576200391a620095b1565b60405190808252806020026020018201604052801562003944578160200160208202803683370190505b509450806001600160401b03811115620039625762003962620095b1565b6040519080825280602002602001820160405280156200398c578160200160208202803683370190505b509350806001600160401b03811115620039aa57620039aa620095b1565b604051908082528060200260200182016040528015620039df57816020015b6060815260200190600190039081620039c95790505b50925060005b8181101562003f2a57600062003a0962003a00838b62009dc7565b603f9062008939565b6001600160a01b0380821660009081526041602090815260408083208151610160810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180549495509193909291608084019162003a769062009d2e565b80601f016020809104026020016040519081016040528092919081815260200182805462003aa49062009d2e565b801562003af55780601f1062003ac95761010080835404028352916020019162003af5565b820191906000526020600020905b81548152906001019060200180831162003ad757829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462003b209062009d2e565b80601f016020809104026020016040519081016040528092919081815260200182805462003b4e9062009d2e565b801562003b9f5780601f1062003b735761010080835404028352916020019162003b9f565b820191906000526020600020905b81548152906001019060200180831162003b8157829003601f168201915b5050505050815260200160018201805462003bba9062009d2e565b80601f016020809104026020016040519081016040528092919081815260200182805462003be89062009d2e565b801562003c395780601f1062003c0d5761010080835404028352916020019162003c39565b820191906000526020600020905b81548152906001019060200180831162003c1b57829003601f168201915b5050505050815260200160028201805462003c549062009d2e565b80601f016020809104026020016040519081016040528092919081815260200182805462003c829062009d2e565b801562003cd35780601f1062003ca75761010080835404028352916020019162003cd3565b820191906000526020600020905b81548152906001019060200180831162003cb557829003601f168201915b5050505050815260200160038201805462003cee9062009d2e565b80601f016020809104026020016040519081016040528092919081815260200182805462003d1c9062009d2e565b801562003d6d5780601f1062003d415761010080835404028352916020019162003d6d565b820191906000526020600020905b81548152906001019060200180831162003d4f57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b81548152602001906001019080831162003df9575050505050815250509050806000015188848151811062003e325762003e3262009eb3565b60200260200101906001600160a01b031690816001600160a01b0316815250508060e0015162003ecb5780604001516001600160a01b03166315d1f8986040518163ffffffff1660e01b8152600401602060405180830381865afa15801562003e9f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003ec5919062009ddd565b62003ece565b60005b87848151811062003ee35762003ee362009eb3565b602002602001018181525050806080015186848151811062003f095762003f0962009eb3565b602002602001018190525050508062003f229062009f18565b9050620039e5565b50505b92959194509250565b60005462010000900460ff161562003f6157604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161562003f935760405163b1d02c3d60e01b815260040160405180910390fd5b3362003fa1603f8262007ddb565b1562003fc057604051635f28f62b60e01b815260040160405180910390fd5b6001600160a01b03888116600090815260436020526040902054161515806200400157506001600160a01b03881660009081526047602052604090205460ff165b156200402057604051631e6f587560e11b815260040160405180910390fd5b60006001600160a01b0316604588886040516200403f92919062009d7e565b908152604051908190036020019020546001600160a01b0316141580620040895750604887876040516200407592919062009d7e565b9081526040519081900360200190205460ff165b15620040a8576040516311fdb94760e01b815260040160405180910390fd5b6000620040b6838062009f34565b604051602001620040c992919062009d7e565b60408051601f1981840301815291815281516020928301206000818152604290935291205490915060ff1615620041135760405163c0bf414360e01b815260040160405180910390fd5b600062004129670de0b6b3a76400003462009e83565b90506036548110156200414f576040516317b204bf60e11b815260040160405180910390fd5b6001600160a01b038a166200417757604051636520611b60e11b815260040160405180910390fd5b6113886200418c604087016020880162009795565b6001600160401b03161180620041d25750620041af604086016020870162009795565b6001600160401b0316620041c7602087018762009795565b6001600160401b0316115b80620042115750620041eb604086016020870162009795565b6001600160401b031662004206606087016040880162009795565b6001600160401b0316115b15620042305760405163dc81db8560e01b815260040160405180910390fd5b6200427b62004240858062009f34565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506200894792505050565b6200429957604051635dba5ad760e01b815260040160405180910390fd5b620042a8838a8a8a8a62008ae9565b620042c657604051631647e3cb60e11b815260040160405180910390fd5b60006200431484620042d9878062009f34565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525062008c1992505050565b905062004323603f8562008d1a565b506000838152604260209081526040808320805460ff191660019081179091556001600160a01b0380891680865260419094529190932080548f83166001600160a01b031991821617825593810180548516909317909255600282018054918516919093161790915542600382015560048101620043a38b8d8362009fdc565b508560058201620043b582826200a0a4565b5087905060098201620043c982826200a1dd565b505042600c8201556001600160a01b038c81166000908152604360205260409081902080546001600160a01b0319169288169290921790915551859060459062004417908e908e9062009d7e565b908152602001604051809103902060006101000a8154816001600160a01b0302191690836001600160a01b03160217905550816001600160a01b0316856001600160a01b03168d6001600160a01b03167faecd9fb95e79c75a3a1de93362c6be5fe6ab65770d8614be583884161cd8228d8e8e6040516200449a9291906200a2ad565b60405180910390a460408051848152602081018590526001600160a01b0387169182916000805160206200b7b4833981519152910160405180910390a360408051670de0b6b3a7640000808252602082015261dead916001600160a01b038816916000805160206200b7b4833981519152910160405180910390a3604051633041949b60e01b815261200590633041949b906200453e908590899060040162009d64565b600060405180830381600087803b1580156200455957600080fd5b505af11580156200456e573d6000803e3d6000fd5b50505050505050505050505050505050565b604080516060810182526000808252602082018190529181019190915281620045ab603f8262007ddb565b620045c95760405163056e881160e01b815260040160405180910390fd5b6001600160a01b03831660009081526041602090815260409182902082516060810184526009909101546001600160401b038082168352600160401b8204811693830193909352600160801b90049091169181019190915291505b50919050565b6001600160a01b03808216600090815260416020908152604080832081516101608101835281548616815260018201548616938101939093526002810154909416908201526003830154606082810191909152600484018054919491608084019190620046979062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620046c59062009d2e565b8015620047165780601f10620046ea5761010080835404028352916020019162004716565b820191906000526020600020905b815481529060010190602001808311620046f857829003601f168201915b5050505050815260200160058201604051806080016040529081600082018054620047419062009d2e565b80601f01602080910402602001604051908101604052809291908181526020018280546200476f9062009d2e565b8015620047c05780601f106200479457610100808354040283529160200191620047c0565b820191906000526020600020905b815481529060010190602001808311620047a257829003601f168201915b50505050508152602001600182018054620047db9062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620048099062009d2e565b80156200485a5780601f106200482e576101008083540402835291602001916200485a565b820191906000526020600020905b8154815290600101906020018083116200483c57829003601f168201915b50505050508152602001600282018054620048759062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620048a39062009d2e565b8015620048f45780601f10620048c857610100808354040283529160200191620048f4565b820191906000526020600020905b815481529060010190602001808311620048d657829003601f168201915b505050505081526020016003820180546200490f9062009d2e565b80601f01602080910402602001604051908101604052809291908181526020018280546200493d9062009d2e565b80156200498e5780601f1062004962576101008083540402835291602001916200498e565b820191906000526020600020905b8154815290600101906020018083116200497057829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b81548152602001906001019080831162004a1a5750505091909252505050608001519392505050565b336110011462004a6b57604051630f22c43960e41b8152611001600482015260240162001133565b6001600160a01b038082166000908152604360205260409020541662004a93603f8262007ddb565b62004ab15760405163056e881160e01b815260040160405180910390fd5b6001600160a01b038181166000908152604160205260408082206002810154603b54925163045bc4d160e41b81526004810193909352909316906345bc4d10906024016020604051808303816000875af115801562004b14573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004b3a919062009ddd565b90506000603d544262004b4e919062009dc7565b905062004b5c838262007e88565b836001600160a01b03167f6e9a2ee7aee95665e3a774a212eb11441b217e3e4656ab9563793094689aabb28284600160405162004b9c9392919062009e0d565b60405180910390a26002830154604051633041949b60e01b815261200591633041949b9162004bda916001600160a01b031690889060040162009d64565b600060405180830381600087803b15801562004bf557600080fd5b505af115801562004c0a573d6000803e3d6000fd5b505050505050505050565b600054610100900460ff161580801562004c365750600054600160ff909116105b8062004c525750303b15801562004c52575060005460ff166001145b62004cb75760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840162001133565b6000805460ff19166001179055801562004cdb576000805461ff0019166101001790555b33411462004cfc5760405163022d8c9560e31b815260040160405180910390fd5b3a1562004d1c576040516383f1b1d360e01b815260040160405180910390fd5b611388603555686c6b935b8bbd400000603655670de0b6b3a7640000603755600960385562093a806039556002603a819055678ac7230489e80000603b55680ad78ebc5ac6200000603c556202a300603d5562069780603e55604a5560408051610220810190915261020080825260609182916200b5b4602083013980602001905181019062004dad91906200a2e9565b915060405180610360016040528061034081526020016200b7d4610340913980602001905181019062004de191906200a38d565b905060005b825181101562004e505760016047600085848151811062004e0b5762004e0b62009eb3565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905562004e488162009f18565b905062004de6565b5060005b815181101562004ec1576001604883838151811062004e775762004e7762009eb3565b602002602001015160405162004e8e91906200a48a565b908152604051908190036020019020805491151560ff1990921691909117905562004eb98162009f18565b905062004e54565b5062004ee17330151da466ec8ab345bef3d6983023e050fb067362008d31565b505080156200174b576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b336120001462004f5457604051630f22c43960e41b8152612000600482015260240162001133565b7faa5ba621c8b3d7d05bb9e51a7506108251d4d5dbe542ca66fc7bb52aacb02b6583838360405162004f89939291906200a4a8565b60405180910390a1505050565b600054630100000090046001600160a01b0316331462004fc9576040516306fbb1e360e01b815260040160405180910390fd5b60005462010000900460ff161562004ff457604051631785c68160e01b815260040160405180910390fd5b6000805462ff00001916620100001781556040517f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e7529190a1565b60006200503d603f8462007ddb565b6200505b5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b0383811660009081526041602052604090819020600201549051636bbf224960e01b815260048101859052911690636bbf2249906024015b602060405180830381865afa158015620050b8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620050de919062009ddd565b90505b92915050565b60005462010000900460ff16156200511257604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620051445760405163b1d02c3d60e01b815260040160405180910390fd5b8162005152603f8262007ddb565b620051705760405163056e881160e01b815260040160405180910390fd5b6037543490811015620051965760405163dc6f0bdd60e01b815260040160405180910390fd5b6001600160a01b0380851660009081526041602090815260408083208151610160810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180543394916080840191620051fe9062009d2e565b80601f01602080910402602001604051908101604052809291908181526020018280546200522c9062009d2e565b80156200527d5780601f1062005251576101008083540402835291602001916200527d565b820191906000526020600020905b8154815290600101906020018083116200525f57829003601f168201915b5050505050815260200160058201604051806080016040529081600082018054620052a89062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620052d69062009d2e565b8015620053275780601f10620052fb5761010080835404028352916020019162005327565b820191906000526020600020905b8154815290600101906020018083116200530957829003601f168201915b50505050508152602001600182018054620053429062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620053709062009d2e565b8015620053c15780601f106200539557610100808354040283529160200191620053c1565b820191906000526020600020905b815481529060010190602001808311620053a357829003601f168201915b50505050508152602001600282018054620053dc9062009d2e565b80601f01602080910402602001604051908101604052809291908181526020018280546200540a9062009d2e565b80156200545b5780601f106200542f576101008083540402835291602001916200545b565b820191906000526020600020905b8154815290600101906020018083116200543d57829003601f168201915b50505050508152602001600382018054620054769062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620054a49062009d2e565b8015620054f55780601f10620054c957610100808354040283529160200191620054f5565b820191906000526020600020905b815481529060010190602001808311620054d757829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b815481526020019060010190808311620055815750505050508152505090508060e001518015620055c45750856001600160a01b0316826001600160a01b031614155b15620055e357604051636468920360e01b815260040160405180910390fd5b60408082015190516317066a5760e21b81526001600160a01b0384811660048301526000921690635c19a95c90869060240160206040518083038185885af115801562005634573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906200565b919062009ddd565b9050826001600160a01b0316876001600160a01b03166000805160206200b7b483398151915283876040516200569b929190918252602082015260400190565b60405180910390a36040808301519051633041949b60e01b815261200591633041949b91620056d09190879060040162009d64565b600060405180830381600087803b158015620056eb57600080fd5b505af115801562005700573d6000803e3d6000fd5b50505050851562001744576040516372f6ad8f60e11b81526120059063e5ed5b1e90620057349086908b9060040162009d64565b600060405180830381600087803b1580156200574f57600080fd5b505af115801562005764573d6000803e3d6000fd5b5050505050505050505050565b6200579d6040518060800160405280606081526020016060815260200160608152602001606081525090565b81620057ab603f8262007ddb565b620057c95760405163056e881160e01b815260040160405180910390fd5b6001600160a01b03831660009081526041602052604090819020815160808101909252600501805482908290620058009062009d2e565b80601f01602080910402602001604051908101604052809291908181526020018280546200582e9062009d2e565b80156200587f5780601f1062005853576101008083540402835291602001916200587f565b820191906000526020600020905b8154815290600101906020018083116200586157829003601f168201915b505050505081526020016001820180546200589a9062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620058c89062009d2e565b8015620059195780601f10620058ed5761010080835404028352916020019162005919565b820191906000526020600020905b815481529060010190602001808311620058fb57829003601f168201915b50505050508152602001600282018054620059349062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620059629062009d2e565b8015620059b35780601f106200598757610100808354040283529160200191620059b3565b820191906000526020600020905b8154815290600101906020018083116200599557829003601f168201915b50505050508152602001600382018054620059ce9062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620059fc9062009d2e565b801562005a4d5780601f1062005a215761010080835404028352916020019162005a4d565b820191906000526020600020905b81548152906001019060200180831162005a2f57829003601f168201915b505050505081525050915050919050565b60005462010000900460ff161562005a8957604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161562005abb5760405163b1d02c3d60e01b815260040160405180910390fd5b62005ac7828262008dca565b5050565b336110071462005af357604051630f22c43960e41b8152611007600482015260240162001133565b62005b606040518060400160405280601081526020016f1d1c985b9cd9995c91d85cd31a5b5a5d60821b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed69050565b1562005c1b576020811462005b925783838383604051630a5a604160e01b81526004016200113394939291906200a4c7565b604080516020601f840181900481028201810190925282815260009162005bd591858580838501838280828437600092019190915250929392505062008f339050565b90506108fc81108062005be9575061271081115b1562005c125784848484604051630a5a604160e01b81526004016200113394939291906200a4c7565b60355562006925565b62005c8c6040518060400160405280601481526020017336b4b729b2b6332232b632b3b0ba34b7b721272160611b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed69050565b1562005d56576020811462005cbe5783838383604051630a5a604160e01b81526004016200113394939291906200a4c7565b604080516020601f840181900481028201810190925282815260009162005d0191858580838501838280828437600092019190915250929392505062008f339050565b9050683635c9adc5dea0000081108062005d24575069152d02c7e14af680000081115b1562005d4d5784848484604051630a5a604160e01b81526004016200113394939291906200a4c7565b60365562006925565b62005dc9604051806040016040528060168152602001756d696e44656c65676174696f6e424e424368616e676560501b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed69050565b1562005e90576020811462005dfb5783838383604051630a5a604160e01b81526004016200113394939291906200a4c7565b604080516020601f840181900481028201810190925282815260009162005e3e91858580838501838280828437600092019190915250929392505062008f339050565b905067016345785d8a000081108062005e5e5750678ac7230489e8000081115b1562005e875784848484604051630a5a604160e01b81526004016200113394939291906200a4c7565b60375562006925565b62005f01604051806040016040528060148152602001736d6178456c656374656456616c696461746f727360601b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed69050565b1562005fb9576020811462005f335783838383604051630a5a604160e01b81526004016200113394939291906200a4c7565b604080516020601f840181900481028201810190925282815260009162005f7691858580838501838280828437600092019190915250929392505062008f339050565b905080158062005f8757506101f481115b1562005fb05784848484604051630a5a604160e01b81526004016200113394939291906200a4c7565b60385562006925565b620060226040518060400160405280600c81526020016b1d5b989bdb9914195c9a5bd960a21b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed69050565b15620060df5760208114620060545783838383604051630a5a604160e01b81526004016200113394939291906200a4c7565b604080516020601f84018190048102820181019092528281526000916200609791858580838501838280828437600092019190915250929392505062008f339050565b90506203f480811080620060ad575062278d0081115b15620060d65784848484604051630a5a604160e01b81526004016200113394939291906200a4c7565b60395562006925565b6200614d60405180604001604052806011815260200170726564656c65676174654665655261746560781b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed69050565b15620061fa57602081146200617f5783838383604051630a5a604160e01b81526004016200113394939291906200a4c7565b604080516020601f8401819004810282018101909252828152600091620061c291858580838501838280828437600092019190915250929392505062008f339050565b90506064811115620061f15784848484604051630a5a604160e01b81526004016200113394939291906200a4c7565b603a5562006925565b6200626a60405180604001604052806013815260200172191bdddb9d1a5b5954db185cda105b5bdd5b9d606a1b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed69050565b156200632b57602081146200629c5783838383604051630a5a604160e01b81526004016200113394939291906200a4c7565b604080516020601f8401819004810282018101909252828152600091620062df91858580838501838280828437600092019190915250929392505062008f339050565b9050674563918244f40000811080620062f95750603c5481115b15620063225784848484604051630a5a604160e01b81526004016200113394939291906200a4c7565b603b5562006925565b620063996040518060400160405280601181526020017019995b1bdb9e54db185cda105b5bdd5b9d607a1b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed69050565b156200645c5760208114620063cb5783838383604051630a5a604160e01b81526004016200113394939291906200a4c7565b604080516020601f84018190048102820181019092528281526000916200640e91858580838501838280828437600092019190915250929392505062008f339050565b905068056bc75e2d631000008110806200642a5750603b548111155b15620064535784848484604051630a5a604160e01b81526004016200113394939291906200a4c7565b603c5562006925565b620064c96040518060400160405280601081526020016f646f776e74696d654a61696c54696d6560801b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed69050565b15620065865760208114620064fb5783838383604051630a5a604160e01b81526004016200113394939291906200a4c7565b604080516020601f84018190048102820181019092528281526000916200653e91858580838501838280828437600092019190915250929392505062008f339050565b90506202a300811080620065545750603e548110155b156200657d5784848484604051630a5a604160e01b81526004016200113394939291906200a4c7565b603d5562006925565b620065f16040518060400160405280600e81526020016d66656c6f6e794a61696c54696d6560901b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed69050565b15620066ae5760208114620066235783838383604051630a5a604160e01b81526004016200113394939291906200a4c7565b604080516020601f84018190048102820181019092528281526000916200666691858580838501838280828437600092019190915250929392505062008f339050565b9050620d2f008110806200667c5750603d548111155b15620066a55784848484604051630a5a604160e01b81526004016200113394939291906200a4c7565b603e5562006925565b620067286040518060400160405280601c81526020017f6d617846656c6f6e794265747765656e42726561746865426c6f636b0000000081525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed69050565b15620067d457602081146200675a5783838383604051630a5a604160e01b81526004016200113394939291906200a4c7565b604080516020601f84018190048102820181019092528281526000916200679d91858580838501838280828437600092019190915250929392505062008f339050565b905080600003620067cb5784848484604051630a5a604160e01b81526004016200113394939291906200a4c7565b604a5562006925565b620068426040518060400160405280601181526020017039ba30b5b2a43ab1283937ba32b1ba37b960791b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed69050565b15620069025760148114620068745783838383604051630a5a604160e01b81526004016200113394939291906200a4c7565b6000620068bc601484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008f339050565b90506001600160a01b038116620068f05784848484604051630a5a604160e01b81526004016200113394939291906200a4c7565b620068fb8162008f38565b5062006925565b838383836040516325ee20d560e21b81526004016200113394939291906200a4c7565b7ff1ce9b2cbf50eeb05769a29e2543fd350cab46894a7dd9978a12d534bb20e633848484846040516200695c94939291906200a4c7565b60405180910390a150505050565b60005462010000900460ff16156200699557604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620069c75760405163b1d02c3d60e01b815260040160405180910390fd5b816000816001600160401b03811115620069e557620069e5620095b1565b60405190808252806020026020018201604052801562006a0f578160200160208202803683370190505b5090506000805b8381101562006b0d5762006a5887878381811062006a385762006a3862009eb3565b905060200201602081019062006a4f919062009440565b603f9062007ddb565b62006a765760405163056e881160e01b815260040160405180910390fd5b6041600088888481811062006a8f5762006a8f62009eb3565b905060200201602081019062006aa6919062009440565b6001600160a01b039081168252602082019290925260400160002060020154845191169250829084908390811062006ae25762006ae262009eb3565b6001600160a01b039092166020928302919091019091015262006b058162009f18565b905062006a16565b50604051634484077560e01b8152612005906344840775906200288e908590889060040162009ec9565b606080600062006b48603f6200892e565b90508085101562006d0c57831562006b61578362006b63565b805b935060008462006b74878462009e83565b1162006b8c5762006b86868362009e83565b62006b8e565b845b9050806001600160401b0381111562006bab5762006bab620095b1565b60405190808252806020026020018201604052801562006bd5578160200160208202803683370190505b509350806001600160401b0381111562006bf35762006bf3620095b1565b60405190808252806020026020018201604052801562006c1d578160200160208202803683370190505b50925060005b8181101562006d095762006c3c62003a00828962009dc7565b85828151811062006c515762006c5162009eb3565b60200260200101906001600160a01b031690816001600160a01b0316815250506041600086838151811062006c8a5762006c8a62009eb3565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060020160009054906101000a90046001600160a01b031684828151811062006cde5762006cde62009eb3565b6001600160a01b039092166020928302919091019091015262006d018162009f18565b905062006c23565b50505b9250925092565b336110011462006d3b57604051630f22c43960e41b8152611001600482015260240162001133565b60005462010000900460ff161562006d6657604051631785c68160e01b815260040160405180910390fd5b6001600160a01b038082166000908152604360205260409020541662006d8e603f8262007ddb565b62006dac5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b03811660009081526041602052604081209062006dd4620151804262009da4565b604a546000828152604b60205260409020549192501162006e085760405163bd52fcdb60e01b815260040160405180910390fd5b6000818152604b6020526040812080546001929062006e2990849062009dc7565b90915550506001600160a01b0384166000908152604460205260409020541580159062006e7e57506001600160a01b038416600090815260446020526040902054429062006e7c90620151809062009dc7565b105b1562006e9d576040516330abb81d60e21b815260040160405180910390fd5b60008062006ead85600062007dfe565b915091508162006ed057604051631b919bb160e11b815260040160405180910390fd5b6002840154603c5460405163045bc4d160e41b815260048101919091526000916001600160a01b0316906345bc4d10906024016020604051808303816000875af115801562006f23573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062006f49919062009ddd565b905062006f57858362007e88565b856001600160a01b03167f6e9a2ee7aee95665e3a774a212eb11441b217e3e4656ab9563793094689aabb28383600060405162006f979392919062009e0d565b60405180910390a26002850154604051633041949b60e01b815261200591633041949b9162005734916001600160a01b0316908a9060040162009d64565b6001600160a01b0380821660009081526041602090815260408083208151610160810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180549293849384938493909291608084019190620070469062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620070749062009d2e565b8015620070c55780601f106200709957610100808354040283529160200191620070c5565b820191906000526020600020905b815481529060010190602001808311620070a757829003601f168201915b5050505050815260200160058201604051806080016040529081600082018054620070f09062009d2e565b80601f01602080910402602001604051908101604052809291908181526020018280546200711e9062009d2e565b80156200716f5780601f1062007143576101008083540402835291602001916200716f565b820191906000526020600020905b8154815290600101906020018083116200715157829003601f168201915b505050505081526020016001820180546200718a9062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620071b89062009d2e565b8015620072095780601f10620071dd5761010080835404028352916020019162007209565b820191906000526020600020905b815481529060010190602001808311620071eb57829003601f168201915b50505050508152602001600282018054620072249062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620072529062009d2e565b8015620072a35780601f106200727757610100808354040283529160200191620072a3565b820191906000526020600020905b8154815290600101906020018083116200728557829003601f168201915b50505050508152602001600382018054620072be9062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620072ec9062009d2e565b80156200733d5780601f1062007311576101008083540402835291602001916200733d565b820191906000526020600020905b8154815290600101906020018083116200731f57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b815481526020019060010190808311620073c95750505091909252505050606081015160e0820151610100909201519097919650945092505050565b60005462010000900460ff16156200743057604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620074625760405163b1d02c3d60e01b815260040160405180910390fd5b3362007470603f8262007ddb565b6200748e5760405163056e881160e01b815260040160405180910390fd5b336000818152604160205260409020600c8101544290620074b490620151809062009dc7565b1115620074d457604051631f92cdbd60e11b815260040160405180910390fd5b600581018054620074e59062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620075139062009d2e565b8015620075645780601f10620075385761010080835404028352916020019162007564565b820191906000526020600020905b8154815290600101906020018083116200754657829003601f168201915b50505082875250859160058401915081906200758190826200a4f2565b50602082015160018201906200759890826200a4f2565b5060408201516002820190620075af90826200a4f2565b5060608201516003820190620075c690826200a4f2565b505042600c830155506040516001600160a01b038316907f85d6366b336ade7f106987ec7a8eac1e8799e508aeab045a39d2f63e0dc969d990600090a250505050565b60005462010000900460ff16156200763457604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620076665760405163b1d02c3d60e01b815260040160405180910390fd5b82811462007687576040516341abc80160e01b815260040160405180910390fd5b60005b83811015620076f857620076e5858583818110620076ac57620076ac62009eb3565b9050602002016020810190620076c3919062009440565b848484818110620076d857620076d862009eb3565b9050602002013562008dca565b620076f08162009f18565b90506200768a565b5050505050565b6001600160a01b03808216600090815260416020908152604080832081516101608101835281548616815260018201548616938101939093526002810154909416908201526003830154606082015260048301805492938493909160808401916200776a9062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620077989062009d2e565b8015620077e95780601f10620077bd57610100808354040283529160200191620077e9565b820191906000526020600020905b815481529060010190602001808311620077cb57829003601f168201915b5050505050815260200160058201604051806080016040529081600082018054620078149062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620078429062009d2e565b8015620078935780601f10620078675761010080835404028352916020019162007893565b820191906000526020600020905b8154815290600101906020018083116200787557829003601f168201915b50505050508152602001600182018054620078ae9062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620078dc9062009d2e565b80156200792d5780601f1062007901576101008083540402835291602001916200792d565b820191906000526020600020905b8154815290600101906020018083116200790f57829003601f168201915b50505050508152602001600282018054620079489062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620079769062009d2e565b8015620079c75780601f106200799b57610100808354040283529160200191620079c7565b820191906000526020600020905b815481529060010190602001808311620079a957829003601f168201915b50505050508152602001600382018054620079e29062009d2e565b80601f016020809104026020016040519081016040528092919081815260200182805462007a109062009d2e565b801562007a615780601f1062007a355761010080835404028352916020019162007a61565b820191906000526020600020905b81548152906001019060200180831162007a4357829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b81548152602001906001019080831162007aed5750505091909252505050604001519392505050565b600062007b25603f8462007ddb565b62007b435760405163056e881160e01b815260040160405180910390fd5b6001600160a01b038381166000908152604160205260409081902060020154905163aa1966cd60e01b81526004810185905291169063aa1966cd906024016200509a565b60005462010000900460ff161562007bb257604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161562007be45760405163b1d02c3d60e01b815260040160405180910390fd5b3362007bf2603f8262007ddb565b62007c105760405163056e881160e01b815260040160405180910390fd5b3362007c20818787878762008ae9565b62007c3e57604051631647e3cb60e11b815260040160405180910390fd5b60006001600160a01b03166045878760405162007c5d92919062009d7e565b908152604051908190036020019020546001600160a01b031614158062007ca757506048868660405162007c9392919062009d7e565b9081526040519081900360200190205460ff165b1562007cc6576040516311fdb94760e01b815260040160405180910390fd5b6001600160a01b0381166000908152604160205260409020600c810154429062007cf590620151809062009dc7565b111562007d1557604051631f92cdbd60e11b815260040160405180910390fd5b4260468260040160405162007d2b91906200a5ba565b908152604051908190036020019020556004810162007d4c87898362009fdc565b5042600c820155604051829060459062007d6a908a908a9062009d7e565b90815260405190819003602001812080546001600160a01b039384166001600160a01b0319909116179055908316907f783156582145bd0ff7924fae6953ba054cf1233eb60739a200ddb10de068ff0d9062007dca908a908a906200a2ad565b60405180910390a250505050505050565b6001600160a01b03811660009081526001830160205260408120541515620050de565b6000806000848460405160200162007e189291906200a638565b60408051601f1981840301815291815281516020928301206000818152604c9093529120549091504281111562007e585760008093509350505062007e81565b603e5462007e67904262009dc7565b6000928352604c6020526040909220829055506001925090505b9250929050565b8154604051631507fdb760e11b81526001600160a01b03909116600482015261100090632a0ffb6e90602401600060405180830381600087803b15801562007ecf57600080fd5b505af115801562007ee4573d6000803e3d6000fd5b505050506000600162007ef8603f6200892e565b62007f04919062009e83565b604954108015915062007fc25760405163d31f968d60e01b81526110006004820152600860248201526120009063d31f968d90604401602060405180830381865afa15801562007f58573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062007f7e919062009e3c565b62007fc25760018301546040516001600160a01b03909116907f2afdc18061ac21cff7d9f11527ab9c8dec6fabd4edf6f894ed634bebd6a20d4590600090a2505050565b82600b015482111562007fd757600b83018290555b600a83015460ff166200804a57600a8301805460ff19166001908117909155604980546000906200800a90849062009dc7565b909155505060018301546040516001600160a01b03909116907f4905ac32602da3fb8b4b7b00c285e5fc4c6c2308cc908b4a1e4e9625a29c90a390600090a25b505050565b60408051608080820183526000808352602080840182905283850182905260608085018390528551938401865282845283820183905283860183905283018290528451808601865282815281018290528451808601909552855185528581019085015291928290620080c19062008fa4565b90506000805b620080d28362009017565b15620081a557806000036200810757620080f6620080f0846200903d565b620090a1565b6001600160a01b0316845262008192565b8060010362008133576200811f620080f0846200903d565b6001600160a01b0316602085015262008192565b806002036200815f576200814b620080f0846200903d565b6001600160a01b0316604085015262008192565b806003036200818c576200817d62008177846200903d565b620090b9565b60608501526001915062008192565b620081a5565b6200819d8162009f18565b9050620080c7565b5091959194509092505050565b6020808201516001600160a01b031660009081526001909152604081205460ff1680620081ea575060208201516001600160a01b0316155b15620081f857506004919050565b81516200820890603f9062007ddb565b6200821557506002919050565b81516001600160a01b03908116600090815260416020908152604080832081516101608101835281548616815260018201548616938101939093526002810154909416908201526003830154606082015260048301805492939192608084019190620082819062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620082af9062009d2e565b8015620083005780601f10620082d45761010080835404028352916020019162008300565b820191906000526020600020905b815481529060010190602001808311620082e257829003601f168201915b50505050508152602001600582016040518060800160405290816000820180546200832b9062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620083599062009d2e565b8015620083aa5780601f106200837e57610100808354040283529160200191620083aa565b820191906000526020600020905b8154815290600101906020018083116200838c57829003601f168201915b50505050508152602001600182018054620083c59062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620083f39062009d2e565b8015620084445780601f10620084185761010080835404028352916020019162008444565b820191906000526020600020905b8154815290600101906020018083116200842657829003601f168201915b505050505081526020016002820180546200845f9062009d2e565b80601f01602080910402602001604051908101604052809291908181526020018280546200848d9062009d2e565b8015620084de5780601f10620084b257610100808354040283529160200191620084de565b820191906000526020600020905b815481529060010190602001808311620084c057829003601f168201915b50505050508152602001600382018054620084f99062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620085279062009d2e565b8015620085785780601f106200854c5761010080835404028352916020019162008578565b820191906000526020600020905b8154815290600101906020018083116200855a57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b815481526020019060010190808311620086045750505050508152505090508060e0015180156200864f575082600001516001600160a01b031683602001516001600160a01b031614155b156200865e5750600392915050565b6040808201516060850151602086015192516317066a5760e21b81526001600160a01b03938416600482015260009390921691635c19a95c919060240160206040518083038185885af1158015620086ba573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190620086e1919062009ddd565b905083602001516001600160a01b031684600001516001600160a01b03166000805160206200b7b48339815191528387606001516040516200872d929190918252602082015260400190565b60405180910390a383602001516001600160a01b031684600001516001600160a01b03167f607b17598da6bdca05650a2fc08bd2bc8e38c3236806a0fa8e0daabc1d6cb1d883876060015160405162008790929190918252602082015260400190565b60405180910390a360408083015160208601519151633041949b60e01b815261200592633041949b92620087ca9290919060040162009d64565b600060405180830381600087803b158015620087e557600080fd5b505af1158015620087fa573d6000803e3d6000fd5b506000979650505050505050565b6001600160a01b0381166000908152604160205260409020600a81015460ff161562008832575050565b6036546002820154604051630913db4760e01b81526001600160a01b03858116600483015290911690630913db4790602401602060405180830381865afa15801562008882573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620088a8919062009ddd565b101562005ac757620088ca81603d5442620088c4919062009dc7565b62007e88565b80546040516335409f7f60e01b81526001600160a01b039091166004820152611000906335409f7f90602401600060405180830381600087803b1580156200891157600080fd5b505af115801562008926573d6000803e3d6000fd5b505050505050565b6000620050e1825490565b6000620050de838362009191565b6000808290506003815110806200895f575060098151115b156200896e5750600092915050565b60418160008151811062008986576200898662009eb3565b016020015160f81c1080620089b85750605a81600081518110620089ae57620089ae62009eb3565b016020015160f81c115b15620089c75750600092915050565b60015b815181101562008adf576030828281518110620089eb57620089eb62009eb3565b016020015160f81c108062008a1c5750603982828151811062008a125762008a1262009eb3565b016020015160f81c115b801562008a6c5750604182828151811062008a3b5762008a3b62009eb3565b016020015160f81c108062008a6c5750605a82828151811062008a625762008a6262009eb3565b016020015160f81c115b801562008abc5750606182828151811062008a8b5762008a8b62009eb3565b016020015160f81c108062008abc5750607a82828151811062008ab25762008ab262009eb3565b016020015160f81c115b1562008acc575060009392505050565b62008ad78162009f18565b9050620089ca565b5060019392505050565b600060308414158062008afd575060608214155b1562008b0c5750600062008c10565b60008686864660405160200162008b2794939291906200a676565b60408051808303601f1901815282825280516020918201208184528383019092529092506000919060208201818036833701905050905081602082015260008186868a8a60405160200162008b819594939291906200a6a3565b60408051808303601f190181526001808452838301909252925060009190602082018180368337019050509050815160016020830182602086016066600019fa62008bcb57600080fd5b5060008160008151811062008be45762008be462009eb3565b016020015160f81c90506001811462008c065760009550505050505062008c10565b6001955050505050505b95945050505050565b60008061200361dead60405162008c30906200941c565b6001600160a01b03928316815291166020820152606060408201819052600090820152608001604051809103906000f08015801562008c73573d6000803e3d6000fd5b509050806001600160a01b031663f399e22e3486866040518463ffffffff1660e01b815260040162008ca79291906200a6db565b6000604051808303818588803b15801562008cc157600080fd5b505af115801562008cd6573d6000803e3d6000fd5b50506040516001600160a01b038086169450881692507fd481492e4e93bb36b4c12a5af93f03be3bf04b454dfbc35dd2663fa26f44d5b09150600090a39392505050565b6000620050de836001600160a01b038416620091be565b600054610100900460ff1662008d9e5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840162001133565b600080546001600160a01b039092166301000000026301000000600160b81b0319909216919091179055565b8162008dd8603f8262007ddb565b62008df65760405163056e881160e01b815260040160405180910390fd5b6001600160a01b03838116600090815260416020526040808220600201549051635569f64b60e11b8152336004820152602481018690529192169063aad3ec96906044016020604051808303816000875af115801562008e5a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062008e80919062009ddd565b9050336001600160a01b0316846001600160a01b03167ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd39926838360405162008ec891815260200190565b60405180910390a350505050565b60008160405160200162008eeb91906200a48a565b604051602081830303815290604052805190602001208360405160200162008f1491906200a48a565b6040516020818303038152906040528051906020012014905092915050565b015190565b600080546040516001600160a01b0380851693630100000090930416917f44fc1b38a4abaa91ebd1b628a5b259a698f86238c8217d68f516e87769c60c0b91a3600080546001600160a01b039092166301000000026301000000600160b81b0319909216919091179055565b604080516080810182526000918101828152606082018390528152602081019190915262008fd28262009210565b62008fdc57600080fd5b600062008fed836020015162009243565b836020015162008ffe919062009dc7565b6040805180820190915293845260208401525090919050565b805180516020820151600092916200902f9162009dc7565b836020015110915050919050565b60408051808201909152600080825260208201526200905c8262009017565b6200906657600080fd5b602082015160006200907882620092d2565b905062009086818362009dc7565b60209485015260408051808201909152908152928301525090565b8051600090601514620090b357600080fd5b620050e1825b805160009015801590620090cf57508151602110155b620090d957600080fd5b6000620090ea836020015162009243565b90508083600001511015620091425760405162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015260640162001133565b82516000906200915490839062009e83565b90506000808386602001516200916b919062009dc7565b90508051915060208310156200918857826020036101000a820491505b50949350505050565b6000826000018281548110620091ab57620091ab62009eb3565b9060005260206000200154905092915050565b60008181526001830160205260408120546200920757508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155620050e1565b506000620050e1565b805160009081036200922457506000919050565b6020820151805160001a9060c082101562008adf575060009392505050565b8051600090811a60808110156200925d5750600092915050565b60b88110806200927a575060c081108015906200927a575060f881105b15620092895750600192915050565b60c0811015620092c457620092a1600160b86200a701565b620092b09060ff168262009e83565b620092bd90600162009dc7565b9392505050565b620092a1600160f86200a701565b80516000908190811a6080811015620092ef576001915062009415565b60b88110156200931b576200930660808262009e83565b6200931390600162009dc7565b915062009415565b60c08110156200939457600060b78203600186019550806020036101000a8651049150600181018201935050808310156200938d5760405162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015260640162001133565b5062009415565b60f8811015620093ab576200930660c08262009e83565b600060f78203600186019550806020036101000a865104915060018101820193505080831015620094135760405162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015260640162001133565b505b5092915050565b610e96806200a71e83390190565b6001600160a01b03811681146200174b57600080fd5b6000602082840312156200945357600080fd5b8135620092bd816200942a565b60008083601f8401126200947357600080fd5b5081356001600160401b038111156200948b57600080fd5b60208301915083602082850101111562007e8157600080fd5b60008060208385031215620094b857600080fd5b82356001600160401b03811115620094cf57600080fd5b620094dd8582860162009460565b90969095509350505050565b600080600060408486031215620094ff57600080fd5b833560ff811681146200951157600080fd5b925060208401356001600160401b038111156200952d57600080fd5b6200953b8682870162009460565b9497909650939450505050565b60005b83811015620095655781810151838201526020016200954b565b50506000910152565b600081518084526200958881602086016020860162009548565b601f01601f19169290920160200192915050565b602081526000620050de60208301846200956e565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b0381118282101715620095ec57620095ec620095b1565b60405290565b604051601f8201601f191681016001600160401b03811182821017156200961d576200961d620095b1565b604052919050565b60006001600160401b03821115620096415762009641620095b1565b50601f01601f191660200190565b600062009666620096608462009625565b620095f2565b90508281528383830111156200967b57600080fd5b828260208301376000602084830101529392505050565b600060208284031215620096a557600080fd5b81356001600160401b03811115620096bc57600080fd5b8201601f81018413620096ce57600080fd5b620096df848235602084016200964f565b949350505050565b60008060408385031215620096fb57600080fd5b823562009708816200942a565b946020939093013593505050565b80151581146200174b57600080fd5b600080600080608085870312156200973c57600080fd5b843562009749816200942a565b935060208501356200975b816200942a565b9250604085013591506060850135620097748162009716565b939692955090935050565b6001600160401b03811681146200174b57600080fd5b600060208284031215620097a857600080fd5b8135620092bd816200977f565b60008060408385031215620097c957600080fd5b50508035926020909101359150565b600081518084526020808501945080840160005b83811015620098135781516001600160a01b031687529582019590820190600101620097ec565b509495945050505050565b608081526000620098336080830187620097d8565b82810360208481019190915286518083528782019282019060005b818110156200986c578451835293830193918301916001016200984e565b5050848103604086015286518082528282019350600581901b8201830183890160005b83811015620098c157601f19858403018752620098ae8383516200956e565b968601969250908501906001016200988f565b5050809550505050505082606083015295945050505050565b600080600080600080600087890360e0811215620098f757600080fd5b883562009904816200942a565b975060208901356001600160401b03808211156200992157600080fd5b6200992f8c838d0162009460565b909950975060408b01359150808211156200994957600080fd5b620099578c838d0162009460565b90975095508591506060605f19840112156200997257600080fd5b60608b01945060c08b01359250808311156200998d57600080fd5b505088016080818b031215620099a257600080fd5b8091505092959891949750929550565b60008060408385031215620099c657600080fd5b8235620099d3816200942a565b91506020830135620099e58162009716565b809150509250929050565b60208152600082516080602084015262009a0e60a08401826200956e565b90506020840151601f198085840301604086015262009a2e83836200956e565b9250604086015191508085840301606086015262009a4d83836200956e565b925060608601519150808584030160808601525062008c1082826200956e565b6000806000806040858703121562009a8457600080fd5b84356001600160401b038082111562009a9c57600080fd5b62009aaa8883890162009460565b9096509450602087013591508082111562009ac457600080fd5b5062009ad38782880162009460565b95989497509550505050565b60008083601f84011262009af257600080fd5b5081356001600160401b0381111562009b0a57600080fd5b6020830191508360208260051b850101111562007e8157600080fd5b60008060006040848603121562009b3c57600080fd5b83356001600160401b0381111562009b5357600080fd5b62009b618682870162009adf565b909450925050602084013562009b77816200942a565b809150509250925092565b60608152600062009b976060830186620097d8565b828103602084015262009bab8186620097d8565b915050826040830152949350505050565b600082601f83011262009bce57600080fd5b620050de838335602085016200964f565b60006020828403121562009bf257600080fd5b81356001600160401b038082111562009c0a57600080fd5b908301906080828603121562009c1f57600080fd5b62009c29620095c7565b82358281111562009c3957600080fd5b62009c478782860162009bbc565b82525060208301358281111562009c5d57600080fd5b62009c6b8782860162009bbc565b60208301525060408301358281111562009c8457600080fd5b62009c928782860162009bbc565b60408301525060608301358281111562009cab57600080fd5b62009cb98782860162009bbc565b60608301525095945050505050565b6000806000806040858703121562009cdf57600080fd5b84356001600160401b038082111562009cf757600080fd5b62009d058883890162009adf565b9096509450602087013591508082111562009d1f57600080fd5b5062009ad38782880162009adf565b600181811c9082168062009d4357607f821691505b6020821081036200462457634e487b7160e01b600052602260045260246000fd5b6001600160a01b0392831681529116602082015260400190565b8183823760009101908152919050565b634e487b7160e01b600052601160045260246000fd5b60008262009dc257634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115620050e157620050e162009d8e565b60006020828403121562009df057600080fd5b5051919050565b634e487b7160e01b600052602160045260246000fd5b83815260208101839052606081016003831062009e2e5762009e2e62009df7565b826040830152949350505050565b60006020828403121562009e4f57600080fd5b8151620092bd8162009716565b828152604081016005831062009e765762009e7662009df7565b8260208301529392505050565b81810381811115620050e157620050e162009d8e565b8082028115828204841417620050e157620050e162009d8e565b634e487b7160e01b600052603260045260246000fd5b60408152600062009ede6040830185620097d8565b905060018060a01b03831660208301529392505050565b6001600160401b0382811682821603908082111562009415576200941562009d8e565b60006001820162009f2d5762009f2d62009d8e565b5060010190565b6000808335601e1984360301811262009f4c57600080fd5b8301803591506001600160401b0382111562009f6757600080fd5b60200191503681900382131562007e8157600080fd5b601f8211156200804a57600081815260208120601f850160051c8101602086101562009fa65750805b601f850160051c820191505b81811015620089265782815560010162009fb2565b600019600383901b1c191660019190911b1790565b6001600160401b0383111562009ff65762009ff6620095b1565b6200a00e836200a007835462009d2e565b8362009f7d565b6000601f8411600181146200a04157600085156200a02c5750838201355b6200a038868262009fc7565b845550620076f8565b600083815260209020601f19861690835b828110156200a07457868501358255602094850194600190920191016200a052565b50868210156200a0925760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b6200a0b0828362009f34565b6001600160401b038111156200a0ca576200a0ca620095b1565b6200a0e2816200a0db855462009d2e565b8562009f7d565b6000601f8211600181146200a11557600083156200a1005750838201355b6200a10c848262009fc7565b8655506200a172565b600085815260209020601f19841690835b828110156200a14857868501358255602094850194600190920191016200a126565b50848210156200a1665760001960f88660031b161c19848701351681555b505060018360011b0185555b505050506200a185602083018362009f34565b6200a19581836001860162009fdc565b50506200a1a6604083018362009f34565b6200a1b681836002860162009fdc565b50506200a1c7606083018362009f34565b6200a1d781836003860162009fdc565b50505050565b81356200a1ea816200977f565b6001600160401b03811690508154816001600160401b0319821617835560208401356200a217816200977f565b6fffffffffffffffff0000000000000000604091821b166fffffffffffffffffffffffffffffffff198316841781178555908501356200a257816200977f565b6001600160c01b0319929092169092179190911760809190911b67ffffffffffffffff60801b1617905550565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b602081526000620096df6020830184866200a284565b60006001600160401b038211156200a2df576200a2df620095b1565b5060051b60200190565b600060208083850312156200a2fd57600080fd5b82516001600160401b038111156200a31457600080fd5b8301601f810185136200a32657600080fd5b80516200a33762009660826200a2c3565b81815260059190911b820183019083810190878311156200a35757600080fd5b928401925b828410156200a3825783516200a372816200942a565b825292840192908401906200a35c565b979650505050505050565b600060208083850312156200a3a157600080fd5b82516001600160401b03808211156200a3b957600080fd5b818501915085601f8301126200a3ce57600080fd5b81516200a3df62009660826200a2c3565b81815260059190911b830184019084810190888311156200a3ff57600080fd5b8585015b838110156200a47d578051858111156200a41d5760008081fd5b8601603f81018b136200a4305760008081fd5b8781015160406200a445620096608362009625565b8281528d828486010111156200a45b5760008081fd5b6200a46c838c830184870162009548565b86525050509186019186016200a403565b5098975050505050505050565b600082516200a49e81846020870162009548565b9190910192915050565b60ff8416815260406020820152600062008c106040830184866200a284565b6040815260006200a4dd6040830186886200a284565b82810360208401526200a3828185876200a284565b81516001600160401b038111156200a50e576200a50e620095b1565b6200a526816200a51f845462009d2e565b8462009f7d565b602080601f8311600181146200a55a57600084156200a5455750858301515b6200a551858262009fc7565b86555062008926565b600085815260208120601f198616915b828110156200a58b578886015182559484019460019091019084016200a56a565b50858210156200a5aa5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60008083546200a5ca8162009d2e565b600182811680156200a5e557600181146200a5fb576200a62c565b60ff19841687528215158302870194506200a62c565b8760005260208060002060005b858110156200a6235781548a8201529084019082016200a608565b50505082870194505b50929695505050505050565b6bffffffffffffffffffffffff198360601b1681526000600383106200a662576200a66262009df7565b5060f89190911b6014820152601501919050565b6bffffffffffffffffffffffff198560601b16815282846014830137601492019182015260340192915050565b600086516200a6b7818460208b0162009548565b82018587823760009086019081528385823760009301928352509095945050505050565b6001600160a01b0383168152604060208201819052600090620096df908301846200956e565b60ff8281168282160390811115620050e157620050e162009d8e56fe608060405260405162000e9638038062000e96833981016040819052620000269162000497565b828162000036828260006200004d565b50620000449050826200008a565b505050620005ca565b6200005883620000e5565b600082511180620000665750805b1562000085576200008383836200012760201b620001691760201c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000b562000156565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000e2816200018f565b50565b620000f08162000244565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200014f838360405180606001604052806027815260200162000e6f60279139620002f8565b9392505050565b60006200018060008051602062000e4f83398151915260001b6200037760201b620001951760201c565b546001600160a01b0316919050565b6001600160a01b038116620001fa5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b806200022360008051602062000e4f83398151915260001b6200037760201b620001951760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b6200025a816200037a60201b620001981760201c565b620002be5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001f1565b80620002237f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6200037760201b620001951760201c565b6060600080856001600160a01b03168560405162000317919062000577565b600060405180830381855af49150503d806000811462000354576040519150601f19603f3d011682016040523d82523d6000602084013e62000359565b606091505b5090925090506200036d8683838762000389565b9695505050505050565b90565b6001600160a01b03163b151590565b60608315620003fd578251600003620003f5576001600160a01b0385163b620003f55760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401620001f1565b508162000409565b62000409838362000411565b949350505050565b815115620004225781518083602001fd5b8060405162461bcd60e51b8152600401620001f1919062000595565b80516001600160a01b03811681146200045657600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200048e57818101518382015260200162000474565b50506000910152565b600080600060608486031215620004ad57600080fd5b620004b8846200043e565b9250620004c8602085016200043e565b60408501519092506001600160401b0380821115620004e657600080fd5b818601915086601f830112620004fb57600080fd5b8151818111156200051057620005106200045b565b604051601f8201601f19908116603f011681019083821181831017156200053b576200053b6200045b565b816040528281528960208487010111156200055557600080fd5b6200056883602083016020880162000471565b80955050505050509250925092565b600082516200058b81846020870162000471565b9190910192915050565b6020815260008251806020840152620005b681604085016020870162000471565b601f01601f19169190910160400192915050565b61087580620005da6000396000f3fe60806040523661001357610011610017565b005b6100115b61001f6101a7565b6001600160a01b0316330361015f5760606001600160e01b0319600035166364d3180d60e11b810161005a576100536101da565b9150610157565b63587086bd60e11b6001600160e01b031982160161007a57610053610231565b63070d7c6960e41b6001600160e01b031982160161009a57610053610277565b621eb96f60e61b6001600160e01b03198216016100b9576100536102a8565b63a39f25e560e01b6001600160e01b03198216016100d9576100536102e8565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b6101676102fc565b565b606061018e83836040518060600160405280602781526020016108426027913961030c565b9392505050565b90565b6001600160a01b03163b151590565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101e4610384565b60006101f33660048184610695565b81019061020091906106db565b905061021d8160405180602001604052806000815250600061038f565b505060408051602081019091526000815290565b60606000806102433660048184610695565b810190610250919061070c565b915091506102608282600161038f565b604051806020016040528060008152509250505090565b6060610281610384565b60006102903660048184610695565b81019061029d91906106db565b905061021d816103bb565b60606102b2610384565b60006102bc6101a7565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b60606102f2610384565b60006102bc610412565b610167610307610412565b610421565b6060600080856001600160a01b03168560405161032991906107f2565b600060405180830381855af49150503d8060008114610364576040519150601f19603f3d011682016040523d82523d6000602084013e610369565b606091505b509150915061037a86838387610445565b9695505050505050565b341561016757600080fd5b610398836104c6565b6000825111806103a55750805b156103b6576103b48383610169565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103e46101a7565b604080516001600160a01b03928316815291841660208301520160405180910390a161040f81610506565b50565b600061041c6105af565b905090565b3660008037600080366000845af43d6000803e808015610440573d6000f35b3d6000fd5b606083156104b45782516000036104ad576001600160a01b0385163b6104ad5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161014e565b50816104be565b6104be83836105d7565b949350505050565b6104cf81610601565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6001600160a01b03811661056b5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161014e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101cb565b8151156105e75781518083602001fd5b8060405162461bcd60e51b815260040161014e919061080e565b6001600160a01b0381163b61066e5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161014e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61058e565b600080858511156106a557600080fd5b838611156106b257600080fd5b5050820193919092039150565b80356001600160a01b03811681146106d657600080fd5b919050565b6000602082840312156106ed57600080fd5b61018e826106bf565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561071f57600080fd5b610728836106bf565b9150602083013567ffffffffffffffff8082111561074557600080fd5b818501915085601f83011261075957600080fd5b81358181111561076b5761076b6106f6565b604051601f8201601f19908116603f01168101908382118183101715610793576107936106f6565b816040528281528860208487010111156107ac57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b838110156107e95781810151838201526020016107d1565b50506000910152565b600082516108048184602087016107ce565b9190910192915050565b602081526000825180602084015261082d8160408501602087016107ce565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a164736f6c6343000811000ab53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000001284214b9b9c85549ab3d2b972df0deef66ac2c9000000000000000000000000a2959d3f95eae5dc7d70144ce1b73b403b7eb6e0000000000000000000000000980a75ecd1309ea12fa2ed87a8744fbfc9b863d5000000000000000000000000b71b214cb885500844365e95cd9942c7276e7fd800000000000000000000000035552c16704d214347f29fa77f77da6d75d7c752000000000000000000000000f474cf03cceff28abc65c9cbae594f725c80e12d00000000000000000000000096c5d20b2a975c050e4220be276ace4892f4b41a00000000000000000000000047788386d0ed6c748e03a53160b4b30ed3748cc5000000000000000000000000bdfbc016c1bd481f5d8ca6f754f4b200a7ed66ce000000000000000000000000372e4887005ec21a5aff9ff62eda9e7713e3643700000000000000000000000055c968cf3430f3ba0534ef49ff4b3fbc9086c7ce000000000000000000000000136bd6343049c9690569db79dcd9208a57d342ad000000000000000000000000977ecef7de795cd248d77fd0d080ce3a35dec013000000000000000000000000b334ced91dff560bc9b5b3c30ae613bf335f181324d7bda8602b916d64417f0dbfe2e2e88ec9b1157bd9f596dfdb91ba26624e040000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000000308e82934ca974fdcd97f3309de967d3c9c43fa711a8d673af5d75465844bf8969c8d1948d903748ac7b8b1720fa64e50c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b973c2d38487e58fd6e145491b110080fb14ac915a0411fc78f19e09a399ddee0d20c63a75d8f930f1694544ad2dc01b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003089037a9ace3b590165ea1c0c5ac72bf600b7c88c1e435f41932c1132aae1bfa0bb68e46b96ccb12c3415e4d82af717d8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030a2750ec6dded3dcdc2f351782310b0eadc077db59abca0f0cd26776e2e7acb9f3bce40b1fa5221fd1561226c6263cc5f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b742ad4855bae330426b823e742da31f816cc83bc16d69a9134be0cfb4a1d17ec34f1b5b32d5c20440b8536b1e88f0f200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003096c9b86c3400e529bfe184056e257c07940bb664636f689e8d2027c834681f8f878b73445261034e946bb2d901b4b87800000000000000000000000000000000a164736f6c6343000811000a", - }, - }, - } - - FeynmanFixUpgrade[networkname.RialtoChainName] = &Upgrade{ - UpgradeName: "feynmanFix", - Configs: []*UpgradeConfig{}, - } - - HaberFixUpgrade[networkname.BSCChainName] = &Upgrade{ - UpgradeName: "haberFix", - Configs: []*UpgradeConfig{ - { - ContractAddr: ValidatorContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/b743ce3f1f1e94c349b175cd6593bc263463b33b", - Code: "6080604052600436106104fb5760003560e01c806388b32f111161028c578063c6d339451161015a578063e40716a1116100cc578063f92eb86b11610085578063f92eb86b14610d2d578063f9a2bbc714610d42578063fc3e590814610d57578063fccc281314610d6c578063fd4ad81f14610d81578063fd6a687914610db057610502565b8063e40716a114610c9b578063ea321e4914610cb0578063eb57e20214610cd0578063eda5868c14610cf0578063f1fad10414610d05578063f340fa0114610d1a57610502565b8063d86222d51161011e578063d86222d514610c1d578063daacdb6614610c32578063dc927faf14610c47578063df8079e914610c5c578063e086c7b114610c71578063e1c7392a14610c8657610502565b8063c6d3394514610bbe578063c81b166214610bd3578063c8509d811461098d578063ce910b0c14610be8578063d68fb56a14610c0857610502565b8063a78abc16116101fe578063ad3c9da6116101b7578063ad3c9da614610b3d578063aef198a914610b5d578063b7ab4db514610b72578063b8cf4ef114610b94578063bf9f4995146106fe578063c466689d14610ba957610502565b8063a78abc1614610ab4578063aa82dce114610ac9578063aad5606314610ade578063aaf5eb6814610af3578063ab51bb9614610b08578063ac43175114610b1d57610502565b806396713da91161025057806396713da914610a365780639dc0926214610a4b5780639fe0f81614610a60578063a0dc275814610a75578063a1a11bf514610a8a578063a5422d5c14610a9f57610502565b806388b32f11146109c25780638a7beb01146109d75780638b5ad0c9146109ec5780638d19a41014610a015780639369d7de14610a2157610502565b806351b4dce3116103c957806370fd5bad1161033b5780637e434d54116102f45780637e434d541461094e57806381650b6214610963578063820dcaa814610978578063831d65d11461098d578063853230aa1461090f57806386249882146109ad57610502565b806370fd5bad146108d0578063718a8aa8146108e557806375d47a0a146108fa57806378dfed4a1461090f5780637942fd05146109245780637a84ca2a1461093957610502565b80635d77156c1161038d5780635d77156c1461082a5780635de1e22c1461083f57806360eba4fe1461085457806362b72cf5146108745780636969a25c146108895780636e47b482146108bb57610502565b806351b4dce3146107ab57806351e80672146107c057806355614fcc146107d5578063565c56b3146107f55780635667515a1461081557610502565b8063300c35671161046d57806343756e5c1161042657806343756e5c1461072057806345cf9daf14610735578063493279b11461074a5780634bf6c8821461076c5780634df6e0c3146107815780635192c82c1461079657610502565b8063300c35671461065b578063321d398a1461067b5780633365af3a1461069b57806335409f7f146106bb5780633b071dcc146106db5780633dffc387146106fe57610502565b8063152ad3b8116104bf578063152ad3b8146105ba5780631e4c1524146105dc5780631ff18069146105fc578063219f22d51461061157806328087028146106265780632a0ffb6e1461063b57610502565b806304c4fec61461050757806307a568471461051e5780630bee7a67146105495780630e2374a51461056b5780631182b8751461058d57610502565b3661050257005b600080fd5b34801561051357600080fd5b5061051c610dc5565b005b34801561052a57600080fd5b50610533610e39565b6040516105409190618f10565b60405180910390f35b34801561055557600080fd5b5061055e610e3f565b6040516105409190618f3a565b34801561057757600080fd5b50610580610e44565b6040516105409190618200565b34801561059957600080fd5b506105ad6105a83660046180e6565b610e4a565b60405161054091906183b6565b3480156105c657600080fd5b506105cf611167565b60405161054091906183ab565b3480156105e857600080fd5b5061051c6105f7366004617ef4565b611170565b34801561060857600080fd5b50610533611846565b34801561061d57600080fd5b5061055e61184c565b34801561063257600080fd5b50610580611851565b34801561064757600080fd5b5061051c610656366004617e54565b611857565b34801561066757600080fd5b5061051c610676366004617e8c565b611904565b34801561068757600080fd5b506105cf610696366004618093565b611c4d565b3480156106a757600080fd5b506105cf6106b6366004618093565b611d1c565b3480156106c757600080fd5b5061051c6106d6366004617e54565b611dcd565b3480156106e757600080fd5b506106f0611f32565b6040516105409291906182c1565b34801561070a57600080fd5b5061071361220e565b6040516105409190618f4b565b34801561072c57600080fd5b50610580612213565b34801561074157600080fd5b50610533612219565b34801561075657600080fd5b5061075f61221f565b6040516105409190618f01565b34801561077857600080fd5b50610713612224565b34801561078d57600080fd5b506106f0612229565b3480156107a257600080fd5b506105336123b5565b3480156107b757600080fd5b506105806123bb565b3480156107cc57600080fd5b506105806123c1565b3480156107e157600080fd5b506105cf6107f0366004617e54565b6123c7565b34801561080157600080fd5b50610533610810366004617e54565b6123fc565b34801561082157600080fd5b5061071361244d565b34801561083657600080fd5b5061055e612452565b34801561084b57600080fd5b50610533612457565b34801561086057600080fd5b506105ad61086f366004618093565b61245d565b34801561088057600080fd5b50610533612503565b34801561089557600080fd5b506108a96108a4366004618093565b612509565b6040516105409695949392919061822d565b3480156108c757600080fd5b5061058061256d565b3480156108dc57600080fd5b50610713612573565b3480156108f157600080fd5b50610713612578565b34801561090657600080fd5b5061058061257d565b34801561091b57600080fd5b50610533612583565b34801561093057600080fd5b50610713612589565b34801561094557600080fd5b5061053361258e565b34801561095a57600080fd5b50610580612594565b34801561096f57600080fd5b5061055e61259a565b34801561098457600080fd5b5061053361259f565b34801561099957600080fd5b5061051c6109a83660046180e6565b6125a5565b3480156109b957600080fd5b50610533612606565b3480156109ce57600080fd5b5061053361260c565b3480156109e357600080fd5b506105cf612612565b3480156109f857600080fd5b5061053361261b565b348015610a0d57600080fd5b50610533610a1c366004617e54565b612621565b348015610a2d57600080fd5b5061051c612661565b348015610a4257600080fd5b50610713612775565b348015610a5757600080fd5b5061058061277a565b348015610a6c57600080fd5b50610533612780565b348015610a8157600080fd5b50610533612785565b348015610a9657600080fd5b5061058061278a565b348015610aab57600080fd5b506105ad612790565b348015610ac057600080fd5b506105cf6127af565b348015610ad557600080fd5b506105806127b8565b348015610aea57600080fd5b506105806127be565b348015610aff57600080fd5b506105336127c4565b348015610b1457600080fd5b5061055e61244d565b348015610b2957600080fd5b5061051c610b38366004618037565b6127cd565b348015610b4957600080fd5b50610533610b58366004617e54565b613086565b348015610b6957600080fd5b50610533613098565b348015610b7e57600080fd5b50610b876130a5565b60405161054091906182ae565b348015610ba057600080fd5b50610533613191565b348015610bb557600080fd5b50610533613196565b348015610bca57600080fd5b50610533612573565b348015610bdf57600080fd5b5061058061319c565b348015610bf457600080fd5b506105ad610c03366004618093565b6131a2565b348015610c1457600080fd5b506105336131af565b348015610c2957600080fd5b506105336131ee565b348015610c3e57600080fd5b506105336131fa565b348015610c5357600080fd5b50610580613200565b348015610c6857600080fd5b50610580613206565b348015610c7d57600080fd5b50610533610e3f565b348015610c9257600080fd5b5061051c61320c565b348015610ca757600080fd5b506105336133bb565b348015610cbc57600080fd5b506105cf610ccb366004617ff8565b6133c1565b348015610cdc57600080fd5b5061051c610ceb366004617e54565b613547565b348015610cfc57600080fd5b5061055e61364b565b348015610d1157600080fd5b50610713613650565b61051c610d28366004617e54565b613655565b348015610d3957600080fd5b506105336139d4565b348015610d4e57600080fd5b506105806139da565b348015610d6357600080fd5b50610713612780565b348015610d7857600080fd5b506105806139e0565b348015610d8d57600080fd5b50610da1610d9c366004618093565b6139e6565b60405161054093929190618f19565b348015610dbc57600080fd5b50610580613aa8565b6000610dd033612621565b9050600b8181548110610ddf57fe5b600091825260209091206001601690920201015460ff16610e1b5760405162461bcd60e51b8152600401610e1290618b1c565b60405180910390fd5b6000610e256131af565b9050610e343383836001613aae565b505050565b60095481565b606481565b61200181565b60005460609060ff16610e6f5760405162461bcd60e51b8152600401610e12906185dd565b3361200014610e905760405162461bcd60e51b8152600401610e1290618d1d565b600b54610f4e57610e9f617a00565b60015460005b81811015610f4a57600b8054600181018255600091909152835160008051602061901d833981519152601690920291820190815560208086015160008051602061964c8339815191528401805460ff1916911515919091179055604086015180518794610f269360008051602061903d833981519152909101920190617a2f565b506060820151610f3c9060038301906013617aa9565b505050806001019050610ea5565b5050505b610f56617ad6565b6000610f9785858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613d8392505050565b9150915080610fb357610faa6064613f3f565b92505050611160565b815160009060ff16610fd857610fd183602001518460400151613fa0565b905061112c565b825160ff16600114156111285782602001515160011461101d57600080516020618ffd83398151915260405161100d906189d5565b60405180910390a1506067611123565b6000836020015160008151811061103057fe5b602090810291909101810151516001600160a01b03811660009081526004909252604090912054909150801580611091575060018082038154811061107157fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b156110cf576040516001600160a01b038316907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a261111c565b60006110de8360018403615162565b90508061111a576040516001600160a01b038416907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a25b505b6000925050505b61112c565b5060655b63ffffffff811661115157505060408051600081526020810190915291506111609050565b61115a81613f3f565b93505050505b9392505050565b60075460ff1681565b33411461118f5760405162461bcd60e51b8152600401610e1290618d6c565b3a156111ad5760405162461bcd60e51b8152600401610e1290618a5b565b82516040805182815260208084028201019091526060908280156111eb57816020015b6111d8617afa565b8152602001906001900390816111d05790505b50905060005b82811015611295576040518060c0016040528087838151811061121057fe5b60200260200101516001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b0316815260200186838151811061125257fe5b60200260200101516001600160401b03168152602001600015158152602001600081525082828151811061128257fe5b60209081029190910101526001016111f1565b5060405163d31f968d60e01b81526120009063d31f968d906112c09061100090600890600401618292565b60206040518083038186803b1580156112d857600080fd5b505afa1580156112ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113109190617fd8565b15611633578051601554818111156113b257815b818110156113b057601580548061133757fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055601680548061138a57fe5b6001900381819060005260206000200160006113a69190617b2f565b9055600101611324565b505b60005b828110156115f2578181106114da5760158482815181106113d257fe5b602090810291909101810151825460018181018555600094855293839020825160049092020180546001600160a01b039283166001600160a01b0319918216178255938301519481018054958316958516959095179094556040820151600285018054606085015160808601511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590961692909716919091179290921692909217169290921790915560a0015160039091015585516016908790839081106114a257fe5b602090810291909101810151825460018101845560009384529282902081516114d49491909101929190910190617a2f565b506115ea565b8381815181106114e657fe5b6020026020010151601582815481106114fb57fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a09091015160039091015585518690829081106115b657fe5b6020026020010151601682815481106115cb57fe5b9060005260206000200190805190602001906115e8929190617a2f565b505b6001016113b5565b507fb8e726330a0dad1cf3d04e925663b17e391f1ed547d79b7f4e5f344119b44246826040516116229190618f10565b60405180910390a150505050610e34565b6060806116408386615525565b9150915060005b6001548110156117365760006001828154811061166057fe5b90600052602060002090600402016003015490508060001461172d5760006001838154811061168b57fe5b9060005260206000209060040201600301819055506120026001600160a01b031663092193ab82600185815481106116bf57fe5b60009182526020909120600491820201546040516001600160e01b031960e086901b1681526116fa926001600160a01b039092169101618200565b6000604051808303818588803b15801561171357600080fd5b505af1158015611727573d6000803e3d6000fd5b50505050505b50600101611647565b5047156117a4577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d4760405161176c9190618f10565b60405180910390a1604051611002904780156108fc02916000818181858888f193505050501580156117a2573d6000803e3d6000fd5b505b600060038190556005558151156117bf576117bf8282615a0f565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156117fc57600080fd5b505af1158015611810573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a150505050505050565b60035481565b606881565b61200581565b33612002146118785760405162461bcd60e51b8152600401610e1290618eca565b60005b60155481101561190057816001600160a01b03166015828154811061189c57fe5b60009182526020909120600490910201546001600160a01b031614156118f8576001601582815481106118cb57fe5b9060005260206000209060040201600201601c6101000a81548160ff021916908315150217905550611900565b60010161187b565b5050565b3341146119235760405162461bcd60e51b8152600401610e1290618d6c565b60105443116119445760405162461bcd60e51b8152600401610e1290618770565b3a156119625760405162461bcd60e51b8152600401610e1290618a5b565b60005460ff166119845760405162461bcd60e51b8152600401610e12906185dd565b60006110023168056bc75e2d631000008111156119bb576119b48168056bc75e2d6310000063ffffffff6161fe16565b91506119c2565b5050611c43565b6040516309a99b4f60e41b815261100290639a99b4f0906119e99030908690600401618214565b602060405180830381600087803b158015611a0357600080fd5b505af1158015611a17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3b91906180ab565b915081611a49575050611c43565b6000805b84811015611a7757858582818110611a6157fe5b9050602002013582019150806001019050611a4d565b5080611a8557505050611c43565b6000806000805b89811015611c3b5784898983818110611aa157fe5b90506020020135880281611ab157fe5b0493508a8a82818110611ac057fe5b9050602002016020810190611ad59190617e54565b6001600160a01b03811660009081526004602052604090205490935091508115611bf1576000600180840381548110611b0a57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff1615611b7757836001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d8586604051611b6a9190618f10565b60405180910390a2611beb565b600354611b8a908663ffffffff61624016565b6003908155810154611ba2908663ffffffff61624016565b60038201556040516001600160a01b038516907fcb0aad6cf9cd03bdf6137e359f541c42f38b39f007cae8e89e88aa7d8c6617b290611be2908890618f10565b60405180910390a25b50611c33565b826001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d8585604051611c2a9190618f10565b60405180910390a25b600101611a8c565b505050505050505b5050436010555050565b6001546000908210611c6157506000611d17565b60006001600160a01b031660018381548110611c7957fe5b60009182526020909120600490910201546001600160a01b03161480611ca957506008541580611ca95750600a54155b80611cb8575060085460095410155b80611cc95750611cc782611d1c565b155b80611cf257506000600b8381548110611cde57fe5b906000526020600020906016020160000154115b80611d0657506001611d026130a5565b5111155b15611d1357506000611d17565b5060015b919050565b6001546000908210611d3057506000611d17565b600b548210611d6d5760018281548110611d4657fe5b9060005260206000209060040201600201601c9054906101000a900460ff16159050611d17565b60018281548110611d7a57fe5b9060005260206000209060040201600201601c9054906101000a900460ff16158015611dc75750600b8281548110611dae57fe5b600091825260209091206001601690920201015460ff16155b92915050565b600b54611e8b57611ddc617a00565b60015460005b81811015611e8757600b8054600181018255600091909152835160008051602061901d833981519152601690920291820190815560208086015160008051602061964c8339815191528401805460ff1916911515919091179055604086015180518794611e639360008051602061903d833981519152909101920190617a2f565b506060820151611e799060038301906013617aa9565b505050806001019050611de2565b5050505b336110011480611e9c575033612002145b611eb85760405162461bcd60e51b8152600401610e1290618614565b6001600160a01b03811660009081526004602052604090205480611edc5750611f2f565b6001810390506000600b8281548110611ef157fe5b600091825260209091206001601690920201015460ff169050611f148383615162565b8015611f1d5750805b15610e34576009805460001901905550505b50565b60015460609081906000805b82811015611f855760018181548110611f5357fe5b9060005260206000209060040201600201601c9054906101000a900460ff16611f7d576001909101905b600101611f3e565b50606081604051908082528060200260200182016040528015611fb2578160200160208202803683370190505b509050606082604051908082528060200260200182016040528015611feb57816020015b6060815260200190600190039081611fd65790505b50600b54600094509091508414156121665760005b84811015612160576001818154811061201557fe5b9060005260206000209060040201600201601c9054906101000a900460ff16612158576001818154811061204557fe5b600091825260209091206004909102015483516001600160a01b039091169084908690811061207057fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600b818154811061209d57fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156121355780601f1061210a57610100808354040283529160200191612135565b820191906000526020600020905b81548152906001019060200180831161211857829003601f168201915b505050505082858151811061214657fe5b60209081029190910101526001909301925b600101612000565b50612202565b60005b84811015612200576001818154811061217e57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166121f857600181815481106121ae57fe5b600091825260209091206004909102015483516001600160a01b03909116908490869081106121d957fe5b6001600160a01b03909216602092830291909101909101526001909301925b600101612169565b505b909450925050505b9091565b600181565b61100181565b60085481565b603881565b600881565b6060806000600e549050600080600c5411612245576015612249565b600c545b905060606122556130a5565b9050606061226282616265565b90508282511161227957909450925061220a915050565b8383835103101561228b578282510393505b83156122c15760c843046122a783838388880360008a8a6163d3565b6122bf8383838888038989038a8b8b8b5103016163d3565b505b6060836040519080825280602002602001820160405280156122ed578160200160208202803683370190505b50905060608460405190808252806020026020018201604052801561232657816020015b60608152602001906001900390816123115790505b50905060005b858110156123a75784818151811061234057fe5b602002602001015183828151811061235457fe5b60200260200101906001600160a01b031690816001600160a01b03168152505083818151811061238057fe5b602002602001015182828151811061239457fe5b602090810291909101015260010161232c565b509096509450505050509091565b60065481565b61200681565b61200081565b6001600160a01b038116600090815260046020526040812054806123ef576000915050611d17565b6000190161116081611d1c565b6001600160a01b03811660009081526004602052604081205480612424576000915050611d17565b60018082038154811061243357fe5b906000526020600020906004020160030154915050919050565b600081565b606781565b600f5481565b6012818154811061246a57fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152935090918301828280156124fb5780601f106124d0576101008083540402835291602001916124fb565b820191906000526020600020905b8154815290600101906020018083116124de57829003601f168201915b505050505081565b60105481565b6001818154811061251657fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b601081565b61100881565b6103e881565b600b81565b600c5481565b61200381565b606681565b61271081565b33612000146125c65760405162461bcd60e51b8152600401610e1290618d1d565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f389021016058383836040516125f993929190618f59565b60405180910390a1505050565b60025481565b60115481565b60145460ff1681565b600a5481565b6001600160a01b038116600090815260046020526040812054806126575760405162461bcd60e51b8152600401610e1290618ca5565b6000190192915050565b600b5461271f57612670617a00565b60015460005b8181101561271b57600b8054600181018255600091909152835160008051602061901d833981519152601690920291820190815560208086015160008051602061964c8339815191528401805460ff19169115159190911790556040860151805187946126f79360008051602061903d833981519152909101920190617a2f565b50606082015161270d9060038301906013617aa9565b505050806001019050612676565b5050505b60085461272c5760036008555b600a54612739576002600a555b600061274433612621565b905061274f81611c4d565b61276b5760405162461bcd60e51b8152600401610e1290618992565b611f2f338261652a565b600981565b61100781565b600381565b60c881565b61100681565b6040518061062001604052806105ef815260200161905d6105ef913981565b60005460ff1681565b61200281565b61300081565b6402540be40081565b60005460ff166127ef5760405162461bcd60e51b8152600401610e12906185dd565b33611007146128105760405162461bcd60e51b8152600401610e1290618a89565b61287a84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b602082015291506165c29050565b15612917576020811461289f5760405162461bcd60e51b8152600401610e1290618c5f565b604080516020601f84018190048102820181019092528281526000916128dd9185858083850183828082843760009201919091525061661b92505050565b9050606481101580156128f35750620186a08111155b61290f5760405162461bcd60e51b8152600401610e1290618882565b600255613043565b61297784848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260098152686275726e526174696f60b81b602082015291506165c29050565b15612a1a576020811461299c5760405162461bcd60e51b8152600401610e12906183fb565b604080516020601f84018190048102820181019092528281526000916129da9185858083850183828082843760009201919091525061661b92505050565b90506127106129f4600f548361624090919063ffffffff16565b1115612a125760405162461bcd60e51b8152600401610e1290618432565b600655613043565b612a8484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260138152726d61784e756d4f664d61696e7461696e696e6760681b602082015291506165c29050565b15612b1e5760208114612aa95760405162461bcd60e51b8152600401610e129061849a565b604080516020601f8401819004810282018101909252828152600091612ae79185858083850183828082843760009201919091525061661b92505050565b600c5490915080612af6575060155b808210612b155760405162461bcd60e51b8152600401610e12906187da565b50600855613043565b612b8784848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61696e7461696e536c6173685363616c6560701b602082015291506165c29050565b15612c205760208114612bac5760405162461bcd60e51b8152600401610e1290618563565b604080516020601f8401819004810282018101909252828152600091612bea9185858083850183828082843760009201919091525061661b92505050565b9050600081118015612bfc5750600a81105b612c185760405162461bcd60e51b8152600401610e1290618dfd565b600a55613043565b612c9484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601981527f6d61784e756d4f66576f726b696e6743616e6469646174657300000000000000602082015291506165c29050565b15612d235760208114612cb95760405162461bcd60e51b8152600401610e1290618517565b604080516020601f8401819004810282018101909252828152600091612cf79185858083850183828082843760009201919091525061661b92505050565b9050600d54811115612d1b5760405162461bcd60e51b8152600401610e12906188f8565b600e55613043565b612d8c84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61784e756d4f6643616e6469646174657360701b602082015291506165c29050565b15612e0e5760208114612db15760405162461bcd60e51b8152600401610e1290618ad7565b604080516020601f8401819004810282018101909252828152600091612def9185858083850183828082843760009201919091525061661b92505050565b600d819055600e54909150811015612e0857600d54600e555b50613043565b612e7284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c6e756d4f66436162696e65747360981b602082015291506165c29050565b15612f205760208114612e975760405162461bcd60e51b8152600401610e12906185a8565b604080516020601f8401819004810282018101909252828152600091612ed59185858083850183828082843760009201919091525061661b92505050565b905060008111612ef75760405162461bcd60e51b8152600401610e1290618682565b6064811115612f185760405162461bcd60e51b8152600401610e12906186ca565b600c55613043565b612f8884848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601181527073797374656d526577617264526174696f60781b602082015291506165c29050565b1561302b5760208114612fad5760405162461bcd60e51b8152600401610e1290618db9565b604080516020601f8401819004810282018101909252828152600091612feb9185858083850183828082843760009201919091525061661b92505050565b90506127106130056006548361624090919063ffffffff16565b11156130235760405162461bcd60e51b8152600401610e1290618bc0565b600f55613043565b60405162461bcd60e51b8152600401610e1290618e5a565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a8484848460405161307894939291906183c9565b60405180910390a150505050565b60046020526000908152604090205481565b68056bc75e2d6310000081565b6001546060906000805b828110156130d4576130c081611d1c565b156130cc578160010191505b6001016130af565b50606081604051908082528060200260200182016040528015613101578160200160208202803683370190505b5090506000915060005b838110156131885761311c81611d1c565b15613180576001818154811061312e57fe5b600091825260209091206004909102015482516001600160a01b039091169083908590811061315957fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508260010192505b60010161310b565b50925050505b90565b601581565b61027181565b61100281565b6013818154811061246a57fe5b60006131b96130a5565b519050600080600c54116131ce5760156131d2565b600c545b9050808211156131e0578091505b816131ea57600191505b5090565b67016345785d8a000081565b60055481565b61100381565b61200481565b60005460ff161561322f5760405162461bcd60e51b8152600401610e1290618b89565b613237617ad6565b600061325d6040518061062001604052806105ef815260200161905d6105ef9139613d83565b915091508061327e5760405162461bcd60e51b8152600401610e1290618cdc565b60005b8260200151518110156133a3576001836020015182815181106132a057fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a09093015160039093019290925591860151805191850193918590811061337657fe5b602090810291909101810151516001600160a01b0316825281019190915260400160002055600101613281565b50506103e8600255506000805460ff19166001179055565b600d5481565b601354600090815b818110156134ca576134b285858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060138054909250859150811061341a57fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156134a85780601f1061347d576101008083540402835291602001916134a8565b820191906000526020600020905b81548152906001019060200180831161348b57829003601f168201915b5050505050616620565b156134c257600192505050611dc7565b6001016133c9565b5060125460005b8181101561353b5761352286868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060128054909250859150811061341a57fe5b156135335760019350505050611dc7565b6001016134d1565b50600095945050505050565b33611001146135685760405162461bcd60e51b8152600401610e1290618e81565b600b5461362657613577617a00565b60015460005b8181101561362257600b8054600181018255600091909152835160008051602061901d833981519152601690920291820190815560208086015160008051602061964c8339815191528401805460ff19169115159190911790556040860151805187946135fe9360008051602061903d833981519152909101920190617a2f565b5060608201516136149060038301906013617aa9565b50505080600101905061357d565b5050505b600061363182616684565b905061363c81611c4d565b1561190057611900828261652a565b606581565b601181565b3341146136745760405162461bcd60e51b8152600401610e1290618d6c565b60005460ff166136965760405162461bcd60e51b8152600401610e12906185dd565b600034116136b65760405162461bcd60e51b8152600401610e12906188c9565b3a156136d45760405162461bcd60e51b8152600401610e1290618a5b565b6001600160a01b03811660009081526004602052604090205460145434919060ff1661371457610271600f556103e86006556014805460ff191660011790555b60008211801561372657506000600f54115b156137d8576000613754612710613748600f543461680790919063ffffffff16565b9063ffffffff61684116565b905080156137d6576040516110029082156108fc029083906000818181858888f1935050505015801561378b573d6000803e3d6000fd5b507f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d816040516137bb9190618f10565b60405180910390a16137d3838263ffffffff6161fe16565b92505b505b6000821180156137ea57506000600654115b1561389057600061380c6127106137486006543461680790919063ffffffff16565b9050801561388e5760405161dead9082156108fc029083906000818181858888f19350505050158015613843573d6000803e3d6000fd5b507f627059660ea01c4733a328effb2294d2f86905bf806da763a89cee254de8bee5816040516138739190618f10565b60405180910390a161388b838263ffffffff6161fe16565b92505b505b801561398e5760006001808303815481106138a757fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff161561391457836001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4846040516139079190618f10565b60405180910390a2613988565b600354613927908463ffffffff61624016565b600390815581015461393f908463ffffffff61624016565b60038201556040516001600160a01b038516907f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc0559061397f908690618f10565b60405180910390a25b50610e34565b826001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4836040516139c79190618f10565b60405180910390a2505050565b600e5481565b61100081565b61dead81565b600b81815481106139f357fe5b6000918252602091829020601691909102018054600180830154600280850180546040805161010096831615969096026000190190911692909204601f810188900488028501880190925281845293965060ff90911694919291830182828015613a9e5780601f10613a7357610100808354040283529160200191613a9e565b820191906000526020600020905b815481529060010190602001808311613a8157829003601f168201915b5050505050905083565b61100481565b6000600a5460001480613abf575082155b80613aca5750600954155b15613ad757506000613d7b565b60096000815460019003919050819055506000613b22600a5461374886613748600b8a81548110613b0457fe5b6000918252602090912060169091020154439063ffffffff6161fe16565b90506000600b8681548110613b3357fe5b906000526020600020906016020160010160006101000a81548160ff0219169083151502179055506000806110016001600160a01b0316638256ace66040518163ffffffff1660e01b8152600401604080518083038186803b158015613b9857600080fd5b505afa158015613bac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613bd091906180c3565b9150915060009350808310613d3157613be98888615162565b5060405163436aa28360e11b8152600090612002906386d5450690613c12908c90600401618200565b60206040518083038186803b158015613c2a57600080fd5b505afa158015613c3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c629190617e70565b6001600160a01b031614613cd0576040516328aa02b160e01b8152611001906328aa02b190613c99908b9087908a9060040161826f565b600060405180830381600087803b158015613cb357600080fd5b505af1158015613cc7573d6000803e3d6000fd5b50505050613d28565b6040516305bfb49960e41b815261100190635bfb499090613cf5908b90600401618200565b600060405180830381600087803b158015613d0f57600080fd5b505af1158015613d23573d6000803e3d6000fd5b505050505b60019350613d43565b818310613d4357613d4188616684565b505b6040516001600160a01b038916907fb9d38178dc641ff1817967a63c9078cbcd955a9f1fcd75e0e3636de615d44d3b90600090a25050505b949350505050565b613d8b617ad6565b6000613d95617ad6565b613d9d617b73565b613dae613da986616883565b6168a8565b90506000805b613dbd836168f2565b15613f315780613de257613dd8613dd384616913565b616961565b60ff168452613f29565b8060011415613f24576060613dfe613df985616913565b6169e1565b90508051604051908082528060200260200182016040528015613e3b57816020015b613e28617afa565b815260200190600190039081613e205790505b5085602001819052508051604051908082528060200260200182016040528015613e7957816020015b6060815260200190600190039081613e645790505b50604086015260005b8151811015613f1957613e93617afa565b60606000613eb3858581518110613ea657fe5b6020026020010151616ab2565b92509250925080613ed3578860009a509a50505050505050505050613f3a565b8289602001518581518110613ee457fe5b60200260200101819052508189604001518581518110613f0057fe5b6020026020010181905250505050806001019050613e82565b506001925050613f29565b613f31565b600101613db4565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b6060815260200190600190039081613f59579050509050613f7f8363ffffffff16616bcc565b81600081518110613f8c57fe5b602002602001018190525061116081616bdf565b6000606483511115613fd757600080516020618ffd833981519152604051613fc790618727565b60405180910390a1506066611dc7565b60005b83518110156140755760005b8181101561406c57848181518110613ffa57fe5b6020026020010151600001516001600160a01b031685838151811061401b57fe5b6020026020010151600001516001600160a01b0316141561406457600080516020618ffd83398151915260405161405190618837565b60405180910390a1606692505050611dc7565b600101613fe6565b50600101613fda565b5060608060606015805480602002602001604051908101604052809291908181526020016000905b828210156141275760008481526020908190206040805160c0810182526004860290920180546001600160a01b039081168452600180830154821685870152600283015491821693850193909352600160a01b81046001600160401b03166060850152600160e01b900460ff16151560808401526003015460a0830152908352909201910161409d565b50505050905060606016805480602002602001604051908101604052809291908181526020016000905b828210156141fc5760008481526020908190208301805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156141e85780601f106141bd576101008083540402835291602001916141e8565b820191906000526020600020905b8154815290600101906020018083116141cb57829003601f168201915b505050505081526020019060010190614151565b50505050905060005b82518110156142595782818151811061421a57fe5b60200260200101516060015160030283828151811061423557fe5b60209081029190910101516001600160401b03909116606090910152600101614205565b5060608061426989898686616c69565b915091506142778282615525565b600154604080518281526020808402820101909152929850909650600095508594509250606091508280156142b6578160200160208202803683370190505b50905060005b828110156144475760006001600160a01b03166120026001600160a01b03166386d54506600184815481106142ed57fe5b60009182526020909120600491820201546040516001600160e01b031960e085901b168152614328926001600160a01b039092169101618200565b60206040518083038186803b15801561434057600080fd5b505afa158015614354573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143789190617e70565b6001600160a01b0316146143da57600182828151811061439457fe5b602002602001019060ff16908160ff1681525050600181815481106143b557fe5b9060005260206000209060040201600301546000146143d5578360010193505b61443f565b67016345785d8a0000600182815481106143f057fe5b906000526020600020906004020160030154106144125784600101945061443f565b6001818154811061441f57fe5b90600052602060002090600402016003015460001461443f578360010193505b6001016142bc565b50606084604051908082528060200260200182016040528015614474578160200160208202803683370190505b5090506060856040519080825280602002602001820160405280156144a3578160200160208202803683370190505b5090506060866040519080825280602002602001820160405280156144d2578160200160208202803683370190505b509050606087604051908082528060200260200182016040528015614501578160200160208202803683370190505b5090506000606088604051908082528060200260200182016040528015614532578160200160208202803683370190505b509050606089604051908082528060200260200182016040528015614561578160200160208202803683370190505b50905060009a506000995060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b1580156145a957600080fd5b505afa1580156145bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145e191906180ab565b905067016345785d8a000081111561462d57600080516020618ffd83398151915260405161460e90618b48565b60405180910390a160689e505050505050505050505050505050611dc7565b60005b8a8110156149c15789818151811061464457fe5b602002602001015160ff166001141561473a576001818154811061466457fe5b906000526020600020906004020160030154600014614735576001818154811061468a57fe5b600091825260209091206004909102015484516001600160a01b039091169085908e9081106146b557fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600181815481106146e257fe5b906000526020600020906004020160030154838d8151811061470057fe5b60200260200101818152505060018a8d8151811061471a57fe5b602002602001019060ff16908160ff16815250508b6001019b505b6149b9565b67016345785d8a00006001828154811061475057fe5b906000526020600020906004020160030154106148d5576001818154811061477457fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316898e815181106147a557fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be400600183815481106147da57fe5b906000526020600020906004020160030154816147f357fe5b066001838154811061480157fe5b90600052602060002090600402016003015403905061482983826161fe90919063ffffffff16565b898f8151811061483557fe5b6020026020010181815250506001828154811061484e57fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316878f8151811061487f57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081888f815181106148ac57fe5b60209081029190910101526148c7868263ffffffff61624016565b95508d6001019d50506149b9565b600181815481106148e257fe5b9060005260206000209060040201600301546000146149b9576001818154811061490857fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316848d8151811061493957fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506001818154811061496657fe5b906000526020600020906004020160030154838d8151811061498457fe5b60200260200101818152505060008a8d8151811061499e57fe5b602002602001019060ff16908160ff16815250508b6001019b505b600101614630565b5060008415614c37576002546040516303702b2960e51b815261100491636e0565209188916149fb918e918e918d91420190600401618331565b6020604051808303818588803b158015614a1457600080fd5b505af193505050508015614a45575060408051601f3d908101601f19168201909252614a4291810190617fd8565b60015b614bbc576040516000815260443d1015614a6157506000614afc565b60046000803e60005160e01c6308c379a08114614a82576000915050614afc565b60043d036004833e81513d60248201116001600160401b0382111715614aad57600092505050614afc565b80830180516001600160401b03811115614ace576000945050505050614afc565b8060208301013d8601811115614aec57600095505050505050614afc565b601f01601f191660405250925050505b80614b075750614b49565b60019150857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf28082604051614b3b91906183b6565b60405180910390a250614bb7565b3d808015614b73576040519150601f19603f3d011682016040523d82523d6000602084013e614b78565b606091505b5060019150857fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a4582604051614bad91906183b6565b60405180910390a2505b614c37565b8015614bfe577fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b7086604051614bf19190618f10565b60405180910390a1614c35565b857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280604051614c2c906184e0565b60405180910390a25b505b8015614ded5760005b8751811015614deb576000888281518110614c5757fe5b60200260200101519050600060018281548110614c7057fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc9185908110614ca157fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f1935050505090508015614d5d5760018281548110614ce257fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d9185908110614d3157fe5b906000526020600020906004020160030154604051614d509190618f10565b60405180910390a2614de1565b60018281548110614d6a57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d9185908110614db957fe5b906000526020600020906004020160030154604051614dd89190618f10565b60405180910390a25b5050600101614c40565b505b835115614fe35760005b8451811015614fe1578a8181518110614e0c57fe5b602002602001015160ff1660011415614eab576120026001600160a01b031663092193ab858381518110614e3c57fe5b6020026020010151878481518110614e5057fe5b60200260200101516040518363ffffffff1660e01b8152600401614e749190618200565b6000604051808303818588803b158015614e8d57600080fd5b505af1158015614ea1573d6000803e3d6000fd5b5050505050614fd9565b6000858281518110614eb957fe5b60200260200101516001600160a01b03166108fc868481518110614ed957fe5b60200260200101519081150290604051600060405180830381858888f1935050505090508015614f6f57858281518110614f0f57fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d868481518110614f4d57fe5b6020026020010151604051614f629190618f10565b60405180910390a2614fd7565b858281518110614f7b57fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d868481518110614fb957fe5b6020026020010151604051614fce9190618f10565b60405180910390a25b505b600101614df7565b505b5050505050505050505050505060005b600154811015615050576001818154811061500a57fe5b9060005260206000209060040201600301546000146150485760006001828154811061503257fe5b9060005260206000209060040201600301819055505b600101614ff3565b5047156150be577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d476040516150869190618f10565b60405180910390a1604051611002904780156108fc02916000818181858888f193505050501580156150bc573d6000803e3d6000fd5b505b600060038190556005558151156150d9576150d98282615a0f565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561511657600080fd5b505af115801561512a573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a1506000949350505050565b6000806001838154811061517257fe5b9060005260206000209060040201600301549050600060018080549050039050600161519c6130a5565b51116151d1576000600185815481106151b157fe5b906000526020600020906004020160030181905550600092505050611dc7565b846001600160a01b03167f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a708360405161520a9190618f10565b60405180910390a26001600160a01b038516600090815260046020526040812055835b600154600019018110156153f7576001816001018154811061524b57fe5b90600052602060002090600402016001828154811061526657fe5b60009182526020909120825460049092020180546001600160a01b03199081166001600160a01b0393841617825560018085015481840180548416918616919091179055600280860180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b19909416939093179055600392830154920191909155600b80549091830190811061532757fe5b9060005260206000209060160201600b828154811061534257fe5b600091825260209091208254601690920201908155600180830154818301805460ff909216151560ff1990921691909117905560028084018054615399938386019390821615610100026000190190911604617b93565b506153ac60038281019084016013617c08565b509050508060010160046000600184815481106153c557fe5b600091825260208083206004909202909101546001600160a01b0316835282019290925260400190205560010161522d565b50600180548061540357fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b80548061545657fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906154886002830182617b2f565b615496600383016000617c32565b5050905560008183816154a557fe5b04905080156155195760015460005b81811015615516576154ed83600183815481106154cd57fe5b90600052602060002090600402016003015461624090919063ffffffff16565b600182815481106154fa57fe5b60009182526020909120600360049092020101556001016154b4565b50505b50600195945050505050565b6060806000808080806155366131af565b6001549091505b801561576857600181039250600b838154811061555657fe5b600091825260209091206001601690920201015460ff166155765761575f565b6001838154811061558357fe5b600091825260208220600490910201546001600160a01b031695506155ad90869085908590613aae565b9350836155b95761575f565b60405163436aa28360e11b81526000908190612002906386d54506906155e3908a90600401618200565b60206040518083038186803b1580156155fb57600080fd5b505afa15801561560f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906156339190617e70565b90506001600160a01b038116156156bc576040516302ceee9160e11b81526120029063059ddd2290615669908490600401618200565b60206040518083038186803b15801561568157600080fd5b505afa158015615695573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906156b99190617e70565b91505b60005b8c5181101561575b57876001600160a01b03168d82815181106156de57fe5b6020026020010151600001516001600160a01b031614806157275750826001600160a01b03168d828151811061571057fe5b6020026020010151600001516001600160a01b0316145b156157535760018d828151811061573a57fe5b602090810291909101015190151560809091015261575b565b6001016156bf565b5050505b6000190161553d565b5060005b89518110156157d55789818151811061578157fe5b602002602001015160800151806157c1575060006001600160a01b03168a82815181106157aa57fe5b6020026020010151600001516001600160a01b0316145b156157cd578560010195505b60010161576c565b50885185106158bd5760408051600180825281830190925290816020015b6157fb617afa565b8152602001906001900390816157f3575050604080516001808252818301909252919850602082015b60608152602001906001900390816158245790505095508860008151811061584857fe5b60200260200101518760008151811061585d57fe5b60200260200101819052508760008151811061587557fe5b60200260200101518660008151811061588a57fe5b60200260200101819052506000876000815181106158a457fe5b6020908102919091010151901515608090910152615a02565b848951036040519080825280602002602001820160405280156158fa57816020015b6158e7617afa565b8152602001906001900390816158df5790505b5096508489510360405190808252806020026020018201604052801561593457816020015b606081526020019060019003908161591f5790505b5095506000915060005b8951811015615a005789818151811061595357fe5b602002602001015160800151158015615996575060006001600160a01b03168a828151811061597e57fe5b6020026020010151600001516001600160a01b031614155b156159f8578981815181106159a757fe5b60200260200101518884815181106159bb57fe5b60200260200101819052508881815181106159d257fe5b60200260200101518784815181106159e657fe5b60200260200101819052508260010192505b60010161593e565b505b50505050505b9250929050565b600154825160005b82811015615b2c576001615a29617afa565b60018381548110615a3657fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b84811015615b0057878181518110615ac657fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b03161415615af85760009250615b00565b600101615ab2565b508115615b225780516001600160a01b03166000908152600460205260408120555b5050600101615a17565b5080821115615beb57805b82811015615be9576001805480615b4a57fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b805480615b9d57fe5b60008281526020812060166000199093019283020181815560018101805460ff1916905590615bcf6002830182617b2f565b615bdd600383016000617c32565b50509055600101615b37565b505b6000818310615bfa5781615bfc565b825b905060005b81811015615fa057615cae868281518110615c1857fe5b602002602001015160018381548110615c2d57fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a0820152617035565b615e62578060010160046000888481518110615cc657fe5b6020026020010151600001516001600160a01b03166001600160a01b0316815260200190815260200160002081905550858181518110615d0257fe5b602002602001015160018281548110615d1757fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a0909101516003909101558451859082908110615dd257fe5b6020026020010151600b8281548110615de757fe5b90600052602060002090601602016002019080519060200190615e0b929190617a2f565b506000600b8281548110615e1b57fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b805483908110615e4c57fe5b6000918252602090912060169091020155615f98565b858181518110615e6e57fe5b60200260200101516060015160018281548110615e8757fe5b906000526020600020906004020160020160146101000a8154816001600160401b0302191690836001600160401b03160217905550615f4d858281518110615ecb57fe5b6020026020010151600b8381548110615ee057fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156134a85780601f1061347d576101008083540402835291602001916134a8565b615f9857848181518110615f5d57fe5b6020026020010151600b8281548110615f7257fe5b90600052602060002090601602016002019080519060200190615f96929190617a2f565b505b600101615c01565b508282111561617857615fb1617a00565b835b8381101561617557858181518110615fc757fe5b602002602001015182604001819052506001878281518110615fe557fe5b6020908102919091018101518254600181810185556000948552838520835160049093020180546001600160a01b039384166001600160a01b0319918216178255848601518284018054918616918316919091179055604080860151600284018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909a1692909616919091179290921696909617169190911790935560a090930151600390930192909255600b805492830181559093528451601690910260008051602061901d83398151915281019182558583015160008051602061964c8339815191528201805491151560ff199092169190911790559285015180518694929361611b9360008051602061903d83398151915201920190617a2f565b5060608201516161319060038301906013617aa9565b505050806001016004600089848151811061614857fe5b602090810291909101810151516001600160a01b0316825281019190915260400160002055600101615fb3565b50505b616180617091565b616188617279565b6000600981905560015493505b838110156161f6576000600b82815481106161ac57fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b8054839081106161dd57fe5b6000918252602090912060169091020155600101616195565b505050505050565b600061116083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250617467565b6000828201838110156111605760405162461bcd60e51b8152600401610e129061864b565b6001548151604080518281526020808402820101909152606092919083908280156162a457816020015b606081526020019060019003908161628f5790505b50600b5490915083146162bb579250611d17915050565b60005b828110156163ca57600b6001600460008985815181106162da57fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054038154811061630e57fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156163a65780601f1061637b576101008083540402835291602001916163a6565b820191906000526020600020905b81548152906001019060200180831161638957829003601f168201915b50505050508282815181106163b757fe5b60209081029190910101526001016162be565b50949350505050565b60005b8281101561652057600082878388016040516020016163f69291906181f2565b6040516020818303038152906040528051906020012060001c8161641657fe5b06905080850182870114616517576000898388018151811061643457fe5b602002602001015190506060898489018151811061644e57fe5b602002602001015190508a8388018151811061646657fe5b60200260200101518b858a018151811061647c57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050818b848901815181106164ab57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505089838801815181106164d957fe5b60200260200101518a858a01815181106164ef57fe5b6020026020010181905250808a8489018151811061650957fe5b602002602001018190525050505b506001016163d6565b5050505050505050565b600980546001908101909155600b80548390811061654457fe5b906000526020600020906016020160010160006101000a81548160ff02191690831515021790555043600b828154811061657a57fe5b600091825260208220601690910201919091556040516001600160a01b038416917ff62981a567ec3cec866c6fa93c55bcdf841d6292d18b8d522ececa769375d82d91a25050565b6000816040516020016165d591906181d6565b60405160208183030381529060405280519060200120836040516020016165fc91906181d6565b6040516020818303038152906040528051906020012014905092915050565b015190565b81518151600091600191811480831461663c576000925061667a565b600160208701838101602088015b6002848385100114156166755780518351146166695760009650600093505b6020928301920161664a565b505050505b5090949350505050565b6001600160a01b038116600090815260046020526040812054806166ad57506000199050611d17565b6001810390506000600182815481106166c257fe5b90600052602060002090600402016003015490506000600183815481106166e557fe5b6000918252602090912060036004909202010155600154604051600019909101906001600160a01b038616907f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d9061673e908590618f10565b60405180910390a28061675657829350505050611d17565b600081838161676157fe5b04905080156167fd5760005b848110156167af5761678682600183815481106154cd57fe5b6001828154811061679357fe5b600091825260209091206003600490920201015560010161676d565b50600180549085015b818110156167fa576167d183600183815481106154cd57fe5b600182815481106167de57fe5b60009182526020909120600360049092020101556001016167b8565b50505b5091949350505050565b60008261681657506000611dc7565b8282028284828161682357fe5b04146111605760405162461bcd60e51b8152600401610e1290618a1a565b600061116083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250617493565b61688b617c41565b506040805180820190915281518152602082810190820152919050565b6168b0617b73565b6168b9826174ca565b6168c257600080fd5b60006168d18360200151617504565b60208085015160408051808201909152868152920190820152915050919050565b60006168fc617c41565b505080518051602091820151919092015191011190565b61691b617c41565b616924826168f2565b61692d57600080fd5b6020820151600061693d82617567565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061697657508151602110155b61697f57600080fd5b600061698e8360200151617504565b905080836000015110156169b45760405162461bcd60e51b8152600401610e1290618c28565b8251602080850151830180519284900392918310156163ca57506020919091036101000a90049392505050565b60606169ec826174ca565b6169f557600080fd5b6000616a0083617648565b9050606081604051908082528060200260200182016040528015616a3e57816020015b616a2b617c41565b815260200190600190039081616a235790505b5090506000616a508560200151617504565b60208601510190506000805b84811015616aa757616a6d83617567565b9150604051806040016040528083815260200184815250848281518110616a9057fe5b602090810291909101015291810191600101616a5c565b509195945050505050565b616aba617afa565b60606000616ac6617afa565b6060616ad0617b73565b616ad9876168a8565b90506000805b616ae8836168f2565b15616bbd5780616b1357616b03616afe84616913565b6176a4565b6001600160a01b03168552616bb5565b8060011415616b3b57616b28616afe84616913565b6001600160a01b03166020860152616bb5565b8060021415616b6357616b50616afe84616913565b6001600160a01b03166040860152616bb5565b8060031415616b8f57616b78613dd384616913565b6001600160401b0316606086015260019150616bb5565b8060041415616bb057616ba9616ba484616913565b6176be565b9350616bb5565b616bbd565b600101616adf565b50929791965091945092505050565b6060611dc7616bda8361772e565b617814565b6060815160001415616c005750604080516000815260208101909152611d17565b606082600081518110616c0f57fe5b602002602001015190506000600190505b8351811015616c5057616c4682858381518110616c3957fe5b6020026020010151617866565b9150600101616c20565b50611160616c63825160c060ff166178e3565b82617866565b60608060006120026001600160a01b031663c473318f6040518163ffffffff1660e01b815260040160206040518083038186803b158015616ca957600080fd5b505afa158015616cbd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190616ce191906180ab565b90508085518851011015616cf6575083518651015b606081604051908082528060200260200182016040528015616d3257816020015b616d1f617afa565b815260200190600190039081616d175790505b509050606082604051908082528060200260200182016040528015616d6b57816020015b6060815260200190600190039081616d565790505b50905060008060005b8b51831080616d835750895182105b8015616d8e57508581105b15617023578b51831415616dfe57898281518110616da857fe5b6020026020010151858281518110616dbc57fe5b6020026020010181905250888281518110616dd357fe5b6020026020010151848281518110616de757fe5b602090810291909101015260019182019101616d74565b8951821415616e69578b8381518110616e1357fe5b6020026020010151858281518110616e2757fe5b60200260200101819052508a8381518110616e3e57fe5b6020026020010151848281518110616e5257fe5b602090810291909101015260019283019201616d74565b898281518110616e7557fe5b6020026020010151606001516001600160401b03168c8481518110616e9657fe5b6020026020010151606001516001600160401b03161115616f12578b8381518110616ebd57fe5b6020026020010151858281518110616ed157fe5b60200260200101819052508a8381518110616ee857fe5b6020026020010151848281518110616efc57fe5b602002602001018190525082600101925061701b565b898281518110616f1e57fe5b6020026020010151606001516001600160401b03168c8481518110616f3f57fe5b6020026020010151606001516001600160401b03161015616fbb57898281518110616f6657fe5b6020026020010151858281518110616f7a57fe5b6020026020010181905250888281518110616f9157fe5b6020026020010151848281518110616fa557fe5b602002602001018190525081600101915061701b565b898281518110616fc757fe5b6020026020010151600001516001600160a01b03168c8481518110616fe857fe5b6020026020010151600001516001600160a01b0316101561700f578b8381518110616ebd57fe5b898281518110616da857fe5b600101616d74565b50929a91995090975050505050505050565b805182516000916001600160a01b03918216911614801561706f575081602001516001600160a01b031683602001516001600160a01b0316145b80156111605750506040908101519101516001600160a01b0390811691161490565b601254601354808211156170dc57805b828110156170da5760128054806170b457fe5b6001900381819060005260206000200160006170d09190617b2f565b90556001016170a1565b505b60008183106170eb57816170ed565b825b905060005b81811015617205576171aa6012828154811061710a57fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156171985780601f1061716d57610100808354040283529160200191617198565b820191906000526020600020905b81548152906001019060200180831161717b57829003601f168201915b50505050506013838154811061341a57fe5b6171fd57601381815481106171bb57fe5b90600052602060002001601282815481106171d257fe5b9060005260206000200190805460018160011615610100020316600290046171fb929190617b93565b505b6001016170f2565b5082821115610e3457825b828110156172735760126013828154811061722757fe5b600091825260208083208454600181810187559585529190932092909101805461726a949390920192909160026101009282161592909202600019011604617b93565b50600101617210565b50505050565b601354600b54808211156172c457805b828110156172c257601380548061729c57fe5b6001900381819060005260206000200160006172b89190617b2f565b9055600101617289565b505b60008183106172d357816172d5565b825b905060005b818110156173f457617392601382815481106172f257fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156173805780601f1061735557610100808354040283529160200191617380565b820191906000526020600020905b81548152906001019060200180831161736357829003601f168201915b5050505050600b8381548110615ee057fe5b6173ec57600b81815481106173a357fe5b9060005260206000209060160201600201601382815481106173c157fe5b9060005260206000200190805460018160011615610100020316600290046173ea929190617b93565b505b6001016172da565b5082821115610e3457825b82811015617273576013600b828154811061741657fe5b60009182526020808320845460018082018755958552919093206016929092029092016002908101805461745e95939094019390926000199082161561010002011604617b93565b506001016173ff565b6000818484111561748b5760405162461bcd60e51b8152600401610e1291906183b6565b505050900390565b600081836174b45760405162461bcd60e51b8152600401610e1291906183b6565b5060008385816174c057fe5b0495945050505050565b80516000906174db57506000611d17565b6020820151805160001a9060c08210156174fa57600092505050611d17565b5060019392505050565b8051600090811a608081101561751e576000915050611d17565b60b8811080617539575060c08110801590617539575060f881105b15617548576001915050611d17565b60c081101561755c5760b519019050611d17565b60f519019050611d17565b80516000908190811a60808110156175825760019150617641565b60b881101561759757607e1981019150617641565b60c08110156175e857600060b78203600186019550806020036101000a8651049150600181018201935050808310156175e25760405162461bcd60e51b8152600401610e1290618967565b50617641565b60f88110156175fd5760be1981019150617641565b600060f78203600186019550806020036101000a86510491506001810182019350508083101561763f5760405162461bcd60e51b8152600401610e1290618967565b505b5092915050565b805160009061765957506000611d17565b6000809050600061766d8460200151617504565b602085015185519181019250015b8082101561769b5761768c82617567565b8201915082600101925061767b565b50909392505050565b80516000906015146176b557600080fd5b611dc782616961565b80516060906176cc57600080fd5b60006176db8360200151617504565b83516040805191839003808352601f19601f8201168301602001909152919250606090828015617712576020820181803683370190505b50905060008160200190506163ca8487602001510182856179b5565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff19841661777257506018617796565b6fffffffffffffffffffffffffffffffff19841661779257506010617796565b5060005b60208110156177cc578181815181106177ab57fe5b01602001516001600160f81b031916156177c4576177cc565b600101617796565b60008160200390506060816040519080825280601f01601f191660200182016040528015617801576020820181803683370190505b5080830196909652508452509192915050565b6060815160011480156178465750607f60f81b8260008151811061783457fe5b01602001516001600160f81b03191611155b15617852575080611d17565b611dc76178648351608060ff166178e3565b835b6060806040519050835180825260208201818101602087015b8183101561789757805183526020928301920161787f565b50855184518101855292509050808201602086015b818310156178c45780518352602092830192016178ac565b508651929092011591909101601f01601f191660405250905092915050565b606068010000000000000000831061790d5760405162461bcd60e51b8152600401610e12906187b2565b604080516001808252818301909252606091602082018180368337019050509050603784116179675782840160f81b8160008151811061794957fe5b60200101906001600160f81b031916908160001a9053509050611dc7565b60606179728561772e565b90508381510160370160f81b8260008151811061798b57fe5b60200101906001600160f81b031916908160001a9053506179ac8282617866565b95945050505050565b806179bf57610e34565b5b602081106179df578251825260209283019290910190601f19016179c0565b915181516020939093036101000a6000190180199091169216919091179052565b60405180608001604052806000815260200160001515815260200160608152602001617a2a617c5b565b905290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10617a7057805160ff1916838001178555617a9d565b82800160010185558215617a9d579182015b82811115617a9d578251825591602001919060010190617a82565b506131ea929150617c7a565b8260138101928215617a9d5791602002820182811115617a9d578251825591602001919060010190617a82565b6040518060600160405280600060ff16815260200160608152602001606081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b50805460018160011615610100020316600290046000825580601f10617b555750611f2f565b601f016020900490600052602060002090810190611f2f9190617c7a565b6040518060400160405280617b86617c41565b8152602001600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10617bcc5780548555617a9d565b82800160010185558215617a9d57600052602060002091601f016020900482015b82811115617a9d578254825591600101919060010190617bed565b8260138101928215617a9d5791820182811115617a9d578254825591600101919060010190617bed565b50611f2f906013810190617c7a565b604051806040016040528060008152602001600081525090565b6040518061026001604052806013906020820280368337509192915050565b61318e91905b808211156131ea5760008155600101617c80565b8035611dc781618fe7565b60008083601f840112617cb0578182fd5b5081356001600160401b03811115617cc6578182fd5b6020830191508360208083028501011115615a0857600080fd5b6000601f8381840112617cf1578182fd5b8235617d04617cff82618f9c565b618f76565b818152925060208084019085810160005b84811015617d96578135880189603f820112617d3057600080fd5b838101356001600160401b03811115617d4857600080fd5b617d59818901601f19168601618f76565b81815260408c81848601011115617d6f57600080fd5b82818501888401375060009181018601919091528552509282019290820190600101617d15565b50505050505092915050565b600082601f830112617db2578081fd5b8135617dc0617cff82618f9c565b818152915060208083019084810181840286018201871015617de157600080fd5b6000805b85811015617d965782356001600160401b0381168114617e03578283fd5b85529383019391830191600101617de5565b60008083601f840112617e26578182fd5b5081356001600160401b03811115617e3c578182fd5b602083019150836020828501011115615a0857600080fd5b600060208284031215617e65578081fd5b813561116081618fe7565b600060208284031215617e81578081fd5b815161116081618fe7565b60008060008060408587031215617ea1578283fd5b84356001600160401b0380821115617eb7578485fd5b617ec388838901617c9f565b90965094506020870135915080821115617edb578384fd5b50617ee887828801617c9f565b95989497509550505050565b600080600060608486031215617f08578283fd5b83356001600160401b0380821115617f1e578485fd5b81860187601f820112617f2f578586fd5b80359250617f3f617cff84618f9c565b80848252602080830192508084018b828389028701011115617f5f57898afd5b8994505b86851015617f8957617f758c82617c94565b845260019490940193928101928101617f63565b509097508801359350505080821115617fa0578384fd5b617fac87838801617da2565b93506040860135915080821115617fc1578283fd5b50617fce86828701617ce0565b9150509250925092565b600060208284031215617fe9578081fd5b81518015158114611160578182fd5b6000806020838503121561800a578182fd5b82356001600160401b0381111561801f578283fd5b61802b85828601617e15565b90969095509350505050565b6000806000806040858703121561804c578384fd5b84356001600160401b0380821115618062578586fd5b61806e88838901617e15565b90965094506020870135915080821115618086578384fd5b50617ee887828801617e15565b6000602082840312156180a4578081fd5b5035919050565b6000602082840312156180bc578081fd5b5051919050565b600080604083850312156180d5578182fd5b505080516020909101519092909150565b6000806000604084860312156180fa578081fd5b833560ff8116811461810a578182fd5b925060208401356001600160401b03811115618124578182fd5b61813086828701617e15565b9497909650939450505050565b6000815180845260208085019450808401835b838110156181755781516001600160a01b031687529582019590820190600101618150565b509495945050505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b600081518084526181c2816020860160208601618fbb565b601f01601f19169290920160200192915050565b600082516181e8818460208701618fbb565b9190910192915050565b918252602082015260400190565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b03968716815294861660208601529290941660408401526001600160401b03166060830152911515608082015260a081019190915260c00190565b6001600160a01b0393909316835260208301919091521515604082015260600190565b6001600160a01b0392909216825260ff16602082015260400190565b600060208252611160602083018461813d565b6000604082526182d4604083018561813d565b602083820381850152818551808452828401915082838202850101838801865b8381101561832257601f198784030185526183108383516181aa565b948601949250908501906001016182f4565b50909998505050505050505050565b600060808252618344608083018761813d565b828103602084810191909152865180835287820192820190845b8181101561837a5784518352938301939183019160010161835e565b5050848103604086015261838e818861813d565b93505050506001600160401b038316606083015295945050505050565b901515815260200190565b60006020825261116060208301846181aa565b6000604082526183dd604083018688618180565b82810360208401526183f0818587618180565b979650505050505050565b6020808252601c908201527f6c656e677468206f66206275726e526174696f206d69736d6174636800000000604082015260600190565b60208082526042908201527f746865206275726e526174696f20706c75732073797374656d5265776172645260408201527f6174696f206d757374206265206e6f2067726561746572207468616e20313030606082015261030360f41b608082015260a00190565b60208082526026908201527f6c656e677468206f66206d61784e756d4f664d61696e7461696e696e67206d696040820152650e6dac2e8c6d60d31b606082015260800190565b6020808252601b908201527f6261746368207472616e736665722072657475726e2066616c73650000000000604082015260600190565b6020808252602c908201527f6c656e677468206f66206d61784e756d4f66576f726b696e6743616e6469646160408201526b0e8cae640dad2e6dac2e8c6d60a31b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61696e7461696e536c6173685363616c65206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252818101527f6c656e677468206f66206e756d4f66436162696e657473206d69736d61746368604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252601f908201527f6f6e6c7920736c617368206f72207374616b6548756220636f6e747261637400604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526028908201527f746865206e756d4f66436162696e657473206d75737420626520677265617465604082015267072207468616e20360c41b606082015260800190565b60208082526039908201527f746865206e756d4f66436162696e657473206d757374206265206c657373207460408201527f68616e204d41585f4e554d5f4f465f56414c494441544f525300000000000000606082015260800190565b60208082526029908201527f746865206e756d626572206f662076616c696461746f727320657863656564206040820152681d1a19481b1a5b5a5d60ba1b606082015260800190565b60208082526022908201527f63616e206e6f7420646f207468697320747769636520696e206f6e6520626c6f604082015261636b60f01b606082015260800190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526037908201527f746865206d61784e756d4f664d61696e7461696e696e67206d7573742062652060408201527f6c657373207468616e206e756d4f66436162696e657473000000000000000000606082015260800190565b6020808252602b908201527f6475706c696361746520636f6e73656e7375732061646472657373206f66207660408201526a185b1a59185d1bdc94d95d60aa1b606082015260800190565b60208082526027908201527f7468652065787069726554696d655365636f6e64476170206973206f7574206f604082015266662072616e676560c81b606082015260800190565b6020808252601590820152746465706f7369742076616c7565206973207a65726f60581b604082015260600190565b60208082526049908201527f746865206d61784e756d4f66576f726b696e6743616e64696461746573206d7560408201527f7374206265206e6f742067726561746572207468616e206d61784e756d4f6643606082015268616e6469646174657360b81b608082015260a00190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b60208082526023908201527f63616e206e6f7420656e7465722054656d706f72617279204d61696e74656e616040820152626e636560e81b606082015260800190565b60208082526025908201527f6c656e677468206f66206a61696c2076616c696461746f7273206d757374206260408201526465206f6e6560d81b606082015260800190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61784e756d4f6643616e64696461746573206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252601290820152716e6f7420696e206d61696e74656e616e636560701b604082015260600190565b60208082526021908201527f666565206973206c6172676572207468616e2044555354595f494e434f4d494e6040820152604760f81b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b60208082526042908201527f7468652073797374656d526577617264526174696f20706c7573206275726e5260408201527f6174696f206d757374206265206e6f2067726561746572207468616e20313030606082015261030360f41b608082015260a00190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526026908201527f6c656e677468206f662065787069726554696d655365636f6e64476170206d696040820152650e6dac2e8c6d60d31b606082015260800190565b60208082526017908201527f6f6e6c792063757272656e742076616c696461746f7273000000000000000000604082015260600190565b60208082526021908201527f6661696c656420746f20706172736520696e69742076616c696461746f7253656040820152601d60fa1b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b60208082526024908201527f6c656e677468206f662073797374656d526577617264526174696f206d69736d6040820152630c2e8c6d60e31b606082015260800190565b6020808252603e908201527f746865206d61696e7461696e536c6173685363616c65206d757374206265206760408201527f726561746572207468616e203020616e64206c657373207468616e2031300000606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b60208082526029908201527f746865206d6573736167652073656e646572206d75737420626520736c6173686040820152680818dbdb9d1c9858dd60ba1b606082015260800190565b6020808252601f908201527f746865206d73672073656e646572206d757374206265207374616b6548756200604082015260600190565b61ffff91909116815260200190565b90815260200190565b60008482528315156020830152606060408301526179ac60608301846181aa565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff85168252604060208301526179ac604083018486618180565b6040518181016001600160401b0381118282101715618f9457600080fd5b604052919050565b60006001600160401b03821115618fb1578081fd5b5060209081020190565b60005b83811015618fd6578181015183820152602001618fbe565b838111156172735750506000910152565b6001600160a01b0381168114611f2f57600080fdfe70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb20175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbbf905ec80f905e8f846942a7cdd959bfe8d9487b2a43b33565295a698f7e294b6a7edd747c0554875d3fc531d19ba1497992c5e941ff80f3f7f110ffd8920a3ac38fdef318fe94a3f86048c27395000f846946488aa4d1955ee33403f8ccb1d4de5fb97c7ade294220f003d8bdfaadf52aa1e55ae4cc485e6794875941a87e90e440a39c99aa9cb5cea0ad6a3f0b2407b86048c27395000f846949ef9f4360c606c7ab4db26b016007d3ad0ab86a0946103af86a874b705854033438383c82575f25bc29418e2db06cbff3e3c5f856410a1838649e760175786048c27395000f84694ee01c3b1283aa067c58eab4709f85e99d46de5fe94ee4b9bfb1871c64e2bcabb1dc382dc8b7c4218a29415904ab26ab0e99d70b51c220ccdcccabee6e29786048c27395000f84694685b1ded8013785d6623cc18d214320b6bb6475994a20ef4e5e4e7e36258dbf51f4d905114cb1b34bc9413e39085dc88704f4394d35209a02b1a9520320c86048c27395000f8469478f3adfc719c99674c072166708589033e2d9afe9448a30d5eaa7b64492a160f139e2da2800ec3834e94055838358c29edf4dcc1ba1985ad58aedbb6be2b86048c27395000f84694c2be4ec20253b8642161bc3f444f53679c1f3d479466f50c616d737e60d7ca6311ff0d9c434197898a94d1d678a2506eeaa365056fe565df8bc8659f28b086048c27395000f846942f7be8361c80a4c1e7e9aaf001d0877f1cfde218945f93992ac37f3e61db2ef8a587a436a161fd210b94ecbc4fb1a97861344dad0867ca3cba2b860411f086048c27395000f84694ce2fd7544e0b2cc94692d4a704debef7bcb613289444abc67b4b2fba283c582387f54c9cba7c34bafa948acc2ab395ded08bb75ce85bf0f95ad2abc51ad586048c27395000f84694b8f7166496996a7da21cf1f1b04d9b3e26a3d077946770572763289aac606e4f327c2f6cc1aa3b3e3b94882d745ed97d4422ca8da1c22ec49d880c4c097286048c27395000f846942d4c407bbe49438ed859fe965b140dcf1aab71a9943ad0939e120f33518fbba04631afe7a3ed6327b194b2bbb170ca4e499a2b0f3cc85ebfa6e8c4dfcbea86048c27395000f846946bbad7cf34b5fa511d8e963dbba288b1960e75d694853b0f6c324d1f4e76c8266942337ac1b0af1a229442498946a51ca5924552ead6fc2af08b94fcba648601d1a94a2000f846944430b3230294d12c6ab2aac5c2cd68e80b16b581947b107f4976a252a6939b771202c28e64e03f52d694795811a7f214084116949fc4f53cedbf189eeab28601d1a94a2000f84694ea0a6e3c511bbd10f4519ece37dc24887e11b55d946811ca77acfb221a49393c193f3a22db829fcc8e9464feb7c04830dd9ace164fc5c52b3f5a29e5018a8601d1a94a2000f846947ae2f5b9e386cd1b50a4550696d957cb4900f03a94e83bcc5077e6b873995c24bac871b5ad856047e19464e48d4057a90b233e026c1041e6012ada897fe88601d1a94a2000f8469482012708dafc9e1b880fd083b32182b869be8e09948e5adc73a2d233a1b496ed3115464dd6c7b887509428b383d324bc9a37f4e276190796ba5a8947f5ed8601d1a94a2000f8469422b81f8e175ffde54d797fe11eb03f9e3bf75f1d94a1c3ef7ca38d8ba80cce3bfc53ebd2903ed21658942767f7447f7b9b70313d4147b795414aecea54718601d1a94a2000f8469468bf0b8b6fb4e317a0f9d6f03eaf8ce6675bc60d94675cfe570b7902623f47e7f59c9664b5f5065dcf94d84f0d2e50bcf00f2fc476e1c57f5ca2d57f625b8601d1a94a2000f846948c4d90829ce8f72d0163c1d5cf348a862d5506309485c42a7b34309bee2ed6a235f86d16f059deec5894cc2cedc53f0fa6d376336efb67e43d167169f3b78601d1a94a2000f8469435e7a025f4da968de7e4d7e4004197917f4070f194b1182abaeeb3b4d8eba7e6a4162eac7ace23d57394c4fd0d870da52e73de2dd8ded19fe3d26f43a1138601d1a94a2000f84694d6caa02bbebaebb5d7e581e4b66559e635f805ff94c07335cf083c1c46a487f0325769d88e163b653694efaff03b42e41f953a925fc43720e45fb61a19938601d1a94a20000175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbaa164736f6c6343000604000a", - }, - { - ContractAddr: SlashContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/b743ce3f1f1e94c349b175cd6593bc263463b33b", - Code: "608060405234801561001057600080fd5b506004361061035d5760003560e01c80637942fd05116101d3578063c80d4b8f11610104578063df8079e9116100a2578063f9a2bbc71161007c578063f9a2bbc714610601578063fc3e590814610609578063fc4333cd14610611578063fd6a6879146106195761035d565b8063df8079e9146105e9578063e1c7392a146105f1578063f1fad104146105f95761035d565b8063c96be4cb116100de578063c96be4cb146105b3578063cc844b73146105c6578063dc927faf146105d9578063dcc6f156146105e15761035d565b8063c80d4b8f14610590578063c81b166214610598578063c8509d81146105a05761035d565b8063a1a11bf511610171578063aad560631161014b578063aad5606314610565578063ab51bb961461056d578063ac0af62914610575578063ac4317511461057d5761035d565b8063a1a11bf51461054d578063a78abc1614610555578063aa82dce11461055d5761035d565b8063831d65d1116101ad578063831d65d11461052257806396713da9146105355780639dc092621461053d5780639f804f5f146105455761035d565b80637942fd051461050a5780637e434d54146105125780638256ace61461051a5761035d565b806343756e5c116102ad5780635bfb49901161024b57806370fd5bad1161022557806370fd5bad146104ea578063718a8aa8146104f257806375d47a0a146104fa5780637912a65d146105025761035d565b80635bfb4990146104c757806362b72cf5146104da5780636e47b482146104e25761035d565b806350055f901161028757806350055f90146104a757806351b4dce3146104af57806351e80672146104b7578063567a372d146104bf5761035d565b806343756e5c14610482578063493279b11461048a5780634bf6c8821461049f5761035d565b8063280870281161031a57806335aa2e44116102f457806335aa2e441461043157806337c8dab914610444578063389f4f71146104655780633dffc3871461046d5761035d565b8063280870281461040157806328aa02b1146104095780633306ccca1461041c5761035d565b80630bee7a67146103625780630e2374a5146103805780631182b8751461039557806322d1e80b146103b557806323bac5a2146103ca57806327962118146103ec575b600080fd5b61036a610621565b6040516103779190613d96565b60405180910390f35b610388610626565b6040516103779190613574565b6103a86103a33660046134aa565b61062c565b60405161037791906135ac565b6103bd610692565b60405161037791906135a1565b6103dd6103d83660046131af565b61069b565b60405161037793929190613d7e565b6103ff6103fa366004613307565b6106be565b005b610388610a13565b6103ff6104173660046131e7565b610a19565b610424610a4a565b6040516103779190613d67565b61038861043f36600461347a565b610a50565b6104576104523660046131af565b610a77565b604051610377929190613d70565b610424610ace565b610475610ad4565b6040516103779190613da7565b610388610ad9565b610492610adf565b6040516103779190613d58565b610475610ae4565b610424610ae9565b610388610aef565b610388610af5565b610424610afb565b6103ff6104d53660046131af565b610b01565b610424610c0d565b610388610c13565b610475610c19565b610475610c1e565b610388610c23565b610424610c29565b610475610c2e565b610388610c33565b610457610c39565b6103ff6105303660046134aa565b610c43565b610475610d56565b610388610d5b565b610424610d61565b610388610d67565b6103bd610d6d565b610388610d76565b610388610d7c565b61036a610d82565b610424610d87565b6103ff61058b36600461335e565b610d8c565b610424611328565b61038861132d565b6103ff6105ae3660046134aa565b611333565b6103ff6105c13660046131af565b6113a4565b6103ff6105d43660046133c7565b611815565b610388611df4565b610424611dfa565b610388611dff565b6103ff611e05565b610475611e41565b610388611e46565b610475611e4c565b6103ff611e51565b61038861229a565b606481565b61200181565b606033612000146106585760405162461bcd60e51b815260040161064f90613bfb565b60405180910390fd5b60005460ff1661067a5760405162461bcd60e51b815260040161064f906136a1565b60405162461bcd60e51b815260040161064f90613cec565b60075460ff1681565b600260208190526000918252604090912080546001820154919092015460ff1683565b60005460ff166106e05760405162461bcd60e51b815260040161064f906136a1565b6006546106ed5760146006555b6008546106fb576170806008555b81511580159061070b5750805115155b6107275760405162461bcd60e51b815260040161064f90613b59565b60408051600380825260808201909252606091816020015b606081526020019060019003908161073f57905050905061076060386122a0565b8160008151811061076d57fe5b6020026020010181905250610781836122bb565b8160018151811061078e57fe5b60200260200101819052506107a2826122bb565b816002815181106107af57fe5b602002602001018190525060606107c582612311565b60408051603480825260608281019093529293509091602082018180368337019050509050815160346020830182602086016068600019fa61080657600080fd5b506014810151603482015160405163436aa28360e11b8152600090612002906386d5450690610839908690600401613574565b60206040518083038186803b15801561085157600080fd5b505afa158015610865573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088991906131cb565b6001600160a01b031614156108b05760405162461bcd60e51b815260040161064f90613671565b43600854820110156108d45760405162461bcd60e51b815260040161064f90613612565b604051631871f7d960e31b81526120029063c38fbec8906108f9908590600401613574565b600060405180830381600087803b15801561091357600080fd5b505af1158015610927573d6000803e3d6000fd5b50506040516335409f7f60e01b815261100092506335409f7f9150610950908590600401613574565b600060405180830381600087803b15801561096a57600080fd5b505af115801561097e573d6000803e3d6000fd5b50506006546040516309a99b4f60e41b815260646110028031909302049350909150639a99b4f0906109b69033908590600401613588565b602060405180830381600087803b1580156109d057600080fd5b505af11580156109e4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a089190613492565b505050505050505050565b61200581565b3361100014610a3a5760405162461bcd60e51b815260040161064f906138e4565b610a458383836123a2565b505050565b61708081565b60018181548110610a5d57fe5b6000918252602090912001546001600160a01b0316905081565b600080610a82612f96565b5050506001600160a01b0316600090815260026020818152604092839020835160608101855281548082526001830154938201849052919093015460ff16151592909301919091529091565b60055481565b600181565b61100181565b603881565b600881565b60065481565b61200681565b61200081565b60045481565b3361100014610b225760405162461bcd60e51b815260040161064f906138e4565b60005460ff16610b445760405162461bcd60e51b815260040161064f906136a1565b61200063f7a251d7600b610b5784612580565b60006040518463ffffffff1660e01b8152600401610b7793929190613db5565b600060405180830381600087803b158015610b9157600080fd5b505af1925050508015610ba2575060015b610c0a573d808015610bd0576040519150601f19603f3d011682016040523d82523d6000602084013e610bd5565b606091505b50816001600160a01b0316600080516020613ea0833981519152600083604051610c009291906135bf565b60405180910390a2505b50565b60035481565b61100581565b600281565b601081565b61100881565b603281565b600b81565b61200381565b6004546005549091565b3361200014610c645760405162461bcd60e51b815260040161064f90613bfb565b60005460ff16610c865760405162461bcd60e51b815260040161064f906136a1565b610c8e612fb9565b6000610ccf84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061264992505050565b915091508015610d165781516040517f7f0956d47419b9525356e7111652b653b530ec6f5096dccc04589bc38e62996791610d0991613d96565b60405180910390a1610d4f565b81516040517f7d45f62d17443dd4547bca8a8112c60e2385669318dc300ec61a5d2492f262e791610d4691613d96565b60405180910390a15b5050505050565b600981565b61100781565b60085481565b61100681565b60005460ff1681565b61200281565b61300081565b600081565b600481565b60005460ff16610dae5760405162461bcd60e51b815260040161064f906136a1565b3361100714610dcf5760405162461bcd60e51b815260040161064f90613a48565b610e3a84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260148152731b5a5cd9195b59585b9bdc951a1c995cda1bdb1960621b602082015291506126c99050565b15610ed55760208114610e5f5760405162461bcd60e51b815260040161064f90613870565b604080516020601f8401819004810282018101909252828152600091610e9d9185858083850183828082843760009201919091525061272392505050565b905060018110158015610eb1575060055481105b610ecd5760405162461bcd60e51b815260040161064f90613bb6565b6004556112e5565b610f3b84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e19995b1bdb9e551a1c995cda1bdb19608a1b602082015291506126c99050565b15610fd75760208114610f605760405162461bcd60e51b815260040161064f90613a96565b604080516020601f8401819004810282018101909252828152600091610f9e9185858083850183828082843760009201919091525061272392505050565b90506103e88111158015610fb3575060045481115b610fcf5760405162461bcd60e51b815260040161064f9061375a565b6005556112e5565b61104484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601681527566656c6f6e79536c617368526577617264526174696f60501b602082015291506126c99050565b156110de57602081146110695760405162461bcd60e51b815260040161064f906139d0565b604080516020601f84018190048102820181019092528281526000916110a79185858083850183828082843760009201919091525061272392505050565b9050600a81101580156110ba5750606481105b6110d65760405162461bcd60e51b815260040161064f90613ad8565b6006556112e5565b61115284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f656e61626c654d616c6963696f7573566f7465536c6173680000000000000000602082015291506126c99050565b156111c957602081146111775760405162461bcd60e51b815260040161064f9061378f565b604080516020601f84018190048102820181019092528281526111b3919084848083850183828082843760009201919091525061272892505050565b6007805460ff19169115159190911790556112e5565b61123084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601081526f66656c6f6e79536c61736853636f706560801b602082015291506126c99050565b156112cd57602081146112555760405162461bcd60e51b815260040161064f9061395f565b604080516020601f84018190048102820181019092528281526000916112939185858083850183828082843760009201919091525061272392505050565b905061708081101580156112a95750620d2f0081105b6112c55760405162461bcd60e51b815260040161064f906136d8565b6008556112e5565b60405162461bcd60e51b815260040161064f90613c97565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a8484848460405161131a94939291906135e0565b60405180910390a150505050565b609681565b61100281565b33612000146113545760405162461bcd60e51b815260040161064f90613bfb565b60005460ff166113765760405162461bcd60e51b815260040161064f906136a1565b6040517f07db600eebe2ac176be8dcebad61858c245a4961bb32ca2aa3d159b09aa0810e90600090a1505050565b3341146113c35760405162461bcd60e51b815260040161064f90613c4a565b60005460ff166113e55760405162461bcd60e51b815260040161064f906136a1565b60035443116114065760405162461bcd60e51b815260040161064f90613d23565b3a156114245760405162461bcd60e51b815260040161064f906139a2565b60405163155853f360e21b8152611000906355614fcc90611449908490600401613574565b60206040518083038186803b15801561146157600080fd5b505afa158015611475573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149991906132eb565b6114a25761180e565b6114aa612f96565b506001600160a01b0381166000908152600260208181526040928390208351606081018552815481526001820154928101929092529091015460ff16158015928201929092529061150557602081018051600101905261155e565b60016040820181905260208201819052805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0384161790555b43815260055460208201518161157057fe5b0661173c57600060208201526040516335409f7f60e01b8152611000906335409f7f906115a1908590600401613574565b600060405180830381600087803b1580156115bb57600080fd5b505af11580156115cf573d6000803e3d6000fd5b505060405163436aa28360e11b81526000925061200291506386d54506906115fb908690600401613574565b60206040518083038186803b15801561161357600080fd5b505afa158015611627573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061164b91906131cb565b6001600160a01b03161461166e5761166982826020015160006123a2565b611737565b61200063f7a251d7600b61168185612580565b60006040518463ffffffff1660e01b81526004016116a193929190613db5565b600060405180830381600087803b1580156116bb57600080fd5b505af19250505080156116cc575060015b611737573d8080156116fa576040519150601f19603f3d011682016040523d82523d6000602084013e6116ff565b606091505b50826001600160a01b0316600080516020613ea083398151915283602001518360405161172d9291906135bf565b60405180910390a2505b6117a8565b60045481602001518161174b57fe5b066117a8576040516375abf10160e11b81526110009063eb57e20290611775908590600401613574565b600060405180830381600087803b15801561178f57600080fd5b505af11580156117a3573d6000803e3d6000fd5b505050505b6001600160a01b0382166000818152600260208181526040808420865181559186015160018301558581015191909201805460ff1916911515919091179055517fddb6012116e51abf5436d956a4f0ebd927e92c576ff96d7918290c8782291e3e9190a2505b5043600355565b60005460ff166118375760405162461bcd60e51b815260040161064f906136a1565b60075460ff166118595760405162461bcd60e51b815260040161064f9061363c565b6006546118665760146006555b600854611874576170806008555b60085481516040015143910111801561189857504360085482602001516040015101115b6118b45760405162461bcd60e51b815260040161064f90613cbe565b8060200151602001518160000151602001511480156118e25750806020015160600151816000015160600151145b156118ff5760405162461bcd60e51b815260040161064f906138b7565b80516040810151905110801561191e5750602081015160408101519051105b61193a5760405162461bcd60e51b815260040161064f90613839565b60208101515181515110801561195f5750806000015160400151816020015160400151105b8061198a575080515160208201515110801561198a5750806020015160400151816000015160400151105b806119a45750806020015160400151816000015160400151145b6119c05760405162461bcd60e51b815260040161064f90613723565b604080820151905163ea321e4960e01b81526110009163ea321e49916119e991906004016135ac565b60206040518083038186803b158015611a0157600080fd5b505afa158015611a15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3991906132eb565b611a555760405162461bcd60e51b815260040161064f90613a19565b611a6781600001518260400151612750565b8015611a805750611a8081602001518260400151612750565b611a9c5760405162461bcd60e51b815260040161064f906137da565b6060806110006001600160a01b0316633b071dcc6040518163ffffffff1660e01b815260040160006040518083038186803b158015611ada57600080fd5b505afa158015611aee573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611b169190810190613228565b9150915060005b8151811015611c5357611b47828281518110611b3557fe5b60200260200101518560400151612928565b15611c4b576006546040516309a99b4f60e41b815260646110028031909302049190639a99b4f090611b7f9033908590600401613588565b602060405180830381600087803b158015611b9957600080fd5b505af1158015611bad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bd19190613492565b506110006001600160a01b03166335409f7f858481518110611bef57fe5b60200260200101516040518263ffffffff1660e01b8152600401611c139190613574565b600060405180830381600087803b158015611c2d57600080fd5b505af1158015611c41573d6000803e3d6000fd5b5050505050611c53565b600101611b1d565b5060408084015190516317b4f35360e01b8152600091612002916317b4f35391611c7f916004016135ac565b60206040518083038186803b158015611c9757600080fd5b505afa158015611cab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ccf91906131cb565b6001600160a01b031614611d3d576040808401519051630e9fbf5160e01b815261200291630e9fbf5191611d0691906004016135ac565b600060405180830381600087803b158015611d2057600080fd5b505af1158015611d34573d6000803e3d6000fd5b50505050610a45565b6120006001600160a01b031663f7a251d7600b611d5d866040015161298c565b60006040518463ffffffff1660e01b8152600401611d7d93929190613db5565b600060405180830381600087803b158015611d9757600080fd5b505af1158015611dab573d6000803e3d6000fd5b505050506000611dc0846040015160006129c7565b60405190915081907f7b78aadacff901d8b63d0dba4f86283d4db8aef27f9ed70413dd860f1c9532b690600090a250505050565b61100381565b601481565b61200481565b60005460ff1615611e285760405162461bcd60e51b815260040161064f90613b22565b603260045560966005556000805460ff19166001179055565b601181565b61100081565b600381565b3361100014611e725760405162461bcd60e51b815260040161064f906138e4565b60005460ff16611e945760405162461bcd60e51b815260040161064f906136a1565b600154611ea057612298565b600154600090600019015b80821161226c576000805b82841015611fcf57611ec6612f96565b6002600060018781548110611ed757fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff161515908201526005549091506004900481602001511115611fb957600460055481611f4457fe5b04816020015103816020018181525050806002600060018881548110611f6657fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208351815591830151600183015591909101516002909101805460ff1916911515919091179055611fc3565b6001925050611fcf565b50836001019350611eb6565b82841161216657611fde612f96565b6002600060018681548110611fef57fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff1615159082015260055490915060049004816020015111156120d75760046005548161205c57fe5b0481602001510381602001818152505080600260006001878154811061207e57fe5b6000918252602080832091909101546001600160a01b03168352828101939093526040918201902083518155918301516001808401919091559201516002909101805460ff191691151591909117905591506121669050565b60026000600186815481106120e857fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff1916905580548061212c57fe5b600082815260209020810160001990810180546001600160a01b0319169055019055836121595750612166565b5060001990920191611fcf565b8180156121705750805b1561224f57600260006001868154811061218657fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff191690558054849081106121cd57fe5b600091825260209091200154600180546001600160a01b0390921691869081106121f357fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600180548061222c57fe5b600082815260209020810160001990810180546001600160a01b03191690550190555b8261225b57505061226c565b505060019091019060001901611eab565b6040517fcfdb3b6ccaeccbdc68be3c59c840e3b3c90f0a7c491f5fff1cf56cfda200dd9c90600090a150505b565b61100481565b60606122b36122ae836129e3565b6122bb565b90505b919050565b6060815160011480156122ed5750607f60f81b826000815181106122db57fe5b01602001516001600160f81b03191611155b156122f95750806122b6565b6122b361230b8351608060ff16612ac9565b83612b9b565b606081516000141561233257506040805160008152602081019091526122b6565b60608260008151811061234157fe5b602002602001015190506000600190505b8351811015612382576123788285838151811061236b57fe5b6020026020010151612b9b565b9150600101612352565b5061239b612395825160c060ff16612ac9565b82612b9b565b9392505050565b80156123cd576040516375cc7d8960e01b8152612002906375cc7d8990611d06908690600401613574565b6040516375cc7d8960e01b8152612002906375cc7d89906123f2908690600401613574565b600060405180830381600087803b15801561240c57600080fd5b505af192505050801561241d575060015b610a45576040516000815260443d1015612439575060006124d6565b60046000803e60005160e01c6308c379a0811461245a5760009150506124d6565b60043d036004833e81513d602482011167ffffffffffffffff82111715612486576000925050506124d6565b808301805167ffffffffffffffff8111156124a85760009450505050506124d6565b8060208301013d86018111156124c6576000955050505050506124d6565b601f01601f191660405250925050505b806124e15750612518565b836001600160a01b0316600080516020613ea0833981519152848360405161250a9291906135bf565b60405180910390a25061257b565b3d808015612542576040519150601f19603f3d011682016040523d82523d6000602084013e612547565b606091505b50836001600160a01b0316600080516020613ea083398151915284836040516125719291906135bf565b60405180910390a2505b610a45565b60408051600480825260a08201909252606091829190816020015b606081526020019060019003908161259b5790505090506125c4836001600160a01b0316612c18565b816000815181106125d157fe5b60200260200101819052506125e5436122a0565b816001815181106125f257fe5b602090810291909101015261260760386122a0565b8160028151811061261457fe5b6020026020010181905250612628426122a0565b8160038151811061263557fe5b602002602001018190525061239b81612311565b612651612fb9565b600061265b612fb9565b612663612fcb565b61267461266f86612c3b565b612c60565b90506000805b61268383612caa565b156126bc57806126af5761269e61269984612ccb565b612d19565b63ffffffff168452600191506126b4565b6126bc565b60010161267a565b5091935090915050915091565b6000816040516020016126dc9190613558565b60405160208183030381529060405280519060200120836040516020016127039190613558565b604051602081830303815290604052805190602001201490505b92915050565b015190565b8082015160009060ff811615612742576001915081612748565b60009150815b505092915050565b60408051600480825260a0820190925260009160609190816020015b606081526020019060019003908161276c5750506040805160208082528183019092529192506060919080820181803683370190505090506127b185600001516122a0565b826000815181106127be57fe5b60200260200101819052506127d96020866020015183612d9b565b6127e2816122bb565b826001815181106127ef57fe5b602002602001018190525061280785604001516122a0565b8260028151811061281457fe5b602002602001018190525061282f6020866060015183612d9b565b612838816122bb565b8260038151811061284557fe5b602002602001018190525061286b602061285e84612311565b8051906020012083612d9b565b6040805160b080825260e0820190925260609160208201818036833701905050905061289b818360006020612dab565b6128ad81876080015160206060612dab565b6128bb818660806030612dab565b604080516001808252818301909252606091602082018180368337019050509050815160016020830182602086016066600019fa6128f857600080fd5b506001612906826000612dfe565b60ff161461291b57600094505050505061271d565b5060019695505050505050565b8151815160009160019181148083146129445760009250612982565b600160208701838101602088015b60028483851001141561297d5780518351146129715760009650600093505b60209283019201612952565b505050505b5090949350505050565b60408051600480825260a08201909252606091829190816020015b60608152602001906001900390816129a75790505090506125c4836122bb565b600081602001835110156129da57600080fd5b50016020015190565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416612a2757506018612a4b565b6fffffffffffffffffffffffffffffffff198416612a4757506010612a4b565b5060005b6020811015612a8157818181518110612a6057fe5b01602001516001600160f81b03191615612a7957612a81565b600101612a4b565b60008160200390506060816040519080825280601f01601f191660200182016040528015612ab6576020820181803683370190505b5080830196909652508452509192915050565b6060680100000000000000008310612af35760405162461bcd60e51b815260040161064f90613811565b60408051600180825281830190925260609160208201818036833701905050905060378411612b4d5782840160f81b81600081518110612b2f57fe5b60200101906001600160f81b031916908160001a905350905061271d565b6060612b58856129e3565b90508381510160370160f81b82600081518110612b7157fe5b60200101906001600160f81b031916908160001a905350612b928282612b9b565b95945050505050565b6060806040519050835180825260208201818101602087015b81831015612bcc578051835260209283019201612bb4565b50855184518101855292509050808201602086015b81831015612bf9578051835260209283019201612be1565b508651929092011591909101601f01601f191660405250905092915050565b60408051600560a21b831860148201526034810190915260609061239b816122bb565b612c43612feb565b506040805180820190915281518152602082810190820152919050565b612c68612fcb565b612c7182612e1a565b612c7a57600080fd5b6000612c898360200151612e54565b60208085015160408051808201909152868152920190820152915050919050565b6000612cb4612feb565b505080518051602091820151919092015191011190565b612cd3612feb565b612cdc82612caa565b612ce557600080fd5b60208201516000612cf582612eb7565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590612d2e57508151602110155b612d3757600080fd5b6000612d468360200151612e54565b90508083600001511015612d6c5760405162461bcd60e51b815260040161064f90613b7f565b825160208085015183018051928490039291831015612d9257826020036101000a820491505b50949350505050565b9091018181526020918201910152565b60005b81811015610d4f57838181518110612dc257fe5b602001015160f81c60f81b858480600101955081518110612ddf57fe5b60200101906001600160f81b031916908160001a905350600101612dae565b60008160010183511015612e1157600080fd5b50016001015190565b8051600090612e2b575060006122b6565b6020820151805160001a9060c0821015612e4a576000925050506122b6565b5060019392505050565b8051600090811a6080811015612e6e5760009150506122b6565b60b8811080612e89575060c08110801590612e89575060f881105b15612e985760019150506122b6565b60c0811015612eac5760b5190190506122b6565b60f5190190506122b6565b80516000908190811a6080811015612ed25760019150612f8f565b60b8811015612ee757607e1981019150612f8f565b60c0811015612f3857600060b78203600186019550806020036101000a865104915060018101820193505080831015612f325760405162461bcd60e51b815260040161064f90613934565b50612f8f565b60f8811015612f4d5760be1981019150612f8f565b600060f78203600186019550806020036101000a8651049150600181018201935050808310156127485760405162461bcd60e51b815260040161064f90613934565b5092915050565b604051806060016040528060008152602001600081526020016000151581525090565b60408051602081019091526000815290565b6040518060400160405280612fde612feb565b8152602001600081525090565b604051806040016040528060008152602001600081525090565b600082601f830112613015578081fd5b815161302861302382613e08565b613de1565b818152915060208083019084810160005b8481101561309e578151870188603f82011261305457600080fd5b8381015161306461302382613e28565b81815260408b8184860101111561307a57600080fd5b61308983888401838701613e4c565b50865250509282019290820190600101613039565b505050505092915050565b60008083601f8401126130ba578182fd5b50813567ffffffffffffffff8111156130d1578182fd5b6020830191508360208285010111156130e957600080fd5b9250929050565b600082601f830112613100578081fd5b813561310e61302382613e28565b915080825283602082850101111561312557600080fd5b8060208401602084013760009082016020015292915050565b600060a0828403121561314f578081fd5b61315960a0613de1565b905081358152602082013560208201526040820135604082015260608201356060820152608082013567ffffffffffffffff81111561319757600080fd5b6131a3848285016130f0565b60808301525092915050565b6000602082840312156131c0578081fd5b813561239b81613e7c565b6000602082840312156131dc578081fd5b815161239b81613e7c565b6000806000606084860312156131fb578182fd5b833561320681613e7c565b925060208401359150604084013561321d81613e91565b809150509250925092565b6000806040838503121561323a578182fd5b825167ffffffffffffffff80821115613251578384fd5b81850186601f820112613262578485fd5b8051925061327261302384613e08565b80848252602080830192508084018a828389028701011115613292578889fd5b8894505b868510156132bd5780516132a981613e7c565b845260019490940193928101928101613296565b5088015190965093505050808211156132d4578283fd5b506132e185828601613005565b9150509250929050565b6000602082840312156132fc578081fd5b815161239b81613e91565b60008060408385031215613319578182fd5b823567ffffffffffffffff80821115613330578384fd5b61333c868387016130f0565b93506020850135915080821115613351578283fd5b506132e1858286016130f0565b60008060008060408587031215613373578182fd5b843567ffffffffffffffff8082111561338a578384fd5b613396888389016130a9565b909650945060208701359150808211156133ae578384fd5b506133bb878288016130a9565b95989497509550505050565b6000602082840312156133d8578081fd5b813567ffffffffffffffff808211156133ef578283fd5b81840160608187031215613401578384fd5b61340b6060613de1565b925080358281111561341b578485fd5b6134278782840161313e565b84525060208101358281111561343b578485fd5b6134478782840161313e565b60208501525060408101358281111561345e578485fd5b61346a878284016130f0565b6040850152509195945050505050565b60006020828403121561348b578081fd5b5035919050565b6000602082840312156134a3578081fd5b5051919050565b6000806000604084860312156134be578081fd5b833560ff811681146134ce578182fd5b9250602084013567ffffffffffffffff8111156134e9578182fd5b6134f5868287016130a9565b9497909650939450505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008151808452613544816020860160208601613e4c565b601f01601f19169290920160200192915050565b6000825161356a818460208701613e4c565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b60006020825261239b602083018461352c565b6000838252604060208301526135d8604083018461352c565b949350505050565b6000604082526135f4604083018688613502565b8281036020840152613607818587613502565b979650505050505050565b60208082526010908201526f195d9a59195b98d9481d1bdbc81bdb1960821b604082015260600190565b6020808252818101527f6d616c6963696f757320766f746520736c617368206e6f7420656e61626c6564604082015260600190565b6020808252601690820152751d985b1a59185d1bdc881b9bdd081b5a59dc985d195960521b604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252602b908201527f746865206d616c6963696f757320766f746520736c6173682073636f7065206f60408201526a7574206f662072616e676560a81b606082015260800190565b6020808252601a908201527f6e6f2076696f6c6174696f6e206f6620766f74652072756c6573000000000000604082015260600190565b6020808252818101527f7468652066656c6f6e795468726573686f6c64206f7574206f662072616e6765604082015260600190565b6020808252602b908201527f6c656e677468206f6620656e61626c654d616c6963696f7573566f7465536c6160408201526a0e6d040dad2e6dac2e8c6d60ab1b606082015260800190565b60208082526017908201527f766572696679207369676e6174757265206661696c6564000000000000000000604082015260600190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526019908201527f7372634e756d20626967676572207468616e207461724e756d00000000000000604082015260600190565b60208082526027908201527f6c656e677468206f66206d697364656d65616e6f725468726573686f6c64206d6040820152660d2e6dac2e8c6d60cb1b606082015260800190565b60208082526013908201527274776f206964656e746963616c20766f74657360681b604082015260600190565b60208082526030908201527f746865206d6573736167652073656e646572206d7573742062652076616c696460408201526f185d1bdc94d95d0818dbdb9d1c9858dd60821b606082015260800190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b60208082526023908201527f6c656e677468206f662066656c6f6e79536c61736853636f7065206d69736d616040820152620e8c6d60eb1b606082015260800190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b60208082526029908201527f6c656e677468206f662066656c6f6e79536c617368526577617264526174696f604082015268040dad2e6dac2e8c6d60bb1b606082015260800190565b6020808252601590820152741d9bdd195059191c881a5cc81b9bdd08199bdd5b99605a1b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526022908201527f6c656e677468206f662066656c6f6e795468726573686f6c64206d69736d61746040820152610c6d60f31b606082015260800190565b6020808252602a908201527f7468652066656c6f6e7920736c6173682072657761726420726174696f206f7560408201526974206f662072616e676560b01b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b6020808252600c908201526b32b6b83a3c903432b0b232b960a11b604082015260600190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526025908201527f746865206d697364656d65616e6f725468726573686f6c64206f7574206f662060408201526472616e676560d81b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b6020808252601490820152731d185c99d95d08189b1bd8dac81d1bdbc81bdb1960621b604082015260600190565b6020808252601e908201527f7265636569766520756e65787065637465642073796e207061636b6167650000604082015260600190565b6020808252818101527f63616e206e6f7420736c61736820747769636520696e206f6e6520626c6f636b604082015260600190565b61ffff91909116815260200190565b90815260200190565b918252602082015260400190565b92835260208301919091521515604082015260600190565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff8516825260606020830152613dd1606083018561352c565b9050826040830152949350505050565b60405181810167ffffffffffffffff81118282101715613e0057600080fd5b604052919050565b600067ffffffffffffffff821115613e1e578081fd5b5060209081020190565b600067ffffffffffffffff821115613e3e578081fd5b50601f01601f191660200190565b60005b83811015613e67578181015183820152602001613e4f565b83811115613e76576000848401525b50505050565b6001600160a01b0381168114610c0a57600080fd5b8015158114610c0a57600080fdfed7bc86ff5d08c8ab043edec743302aba2520e6635172a428bc956721db9e2d1ca164736f6c6343000604000a", - }, - }, - } - - HaberFixUpgrade[networkname.ChapelChainName] = &Upgrade{ - UpgradeName: "haberFix", - Configs: []*UpgradeConfig{ - { - ContractAddr: ValidatorContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/b743ce3f1f1e94c349b175cd6593bc263463b33b", - Code: "6080604052600436106104fb5760003560e01c806388b32f111161028c578063c6d339451161015a578063e40716a1116100cc578063f92eb86b11610085578063f92eb86b14610d2d578063f9a2bbc714610d42578063fc3e590814610d57578063fccc281314610d6c578063fd4ad81f14610d81578063fd6a687914610db057610502565b8063e40716a114610c9b578063ea321e4914610cb0578063eb57e20214610cd0578063eda5868c14610cf0578063f1fad10414610d05578063f340fa0114610d1a57610502565b8063d86222d51161011e578063d86222d514610c1d578063daacdb6614610c32578063dc927faf14610c47578063df8079e914610c5c578063e086c7b114610c71578063e1c7392a14610c8657610502565b8063c6d3394514610bbe578063c81b166214610bd3578063c8509d811461098d578063ce910b0c14610be8578063d68fb56a14610c0857610502565b8063a78abc16116101fe578063ad3c9da6116101b7578063ad3c9da614610b3d578063aef198a914610b5d578063b7ab4db514610b72578063b8cf4ef114610b94578063bf9f4995146106fe578063c466689d14610ba957610502565b8063a78abc1614610ab4578063aa82dce114610ac9578063aad5606314610ade578063aaf5eb6814610af3578063ab51bb9614610b08578063ac43175114610b1d57610502565b806396713da91161025057806396713da914610a365780639dc0926214610a4b5780639fe0f81614610a60578063a0dc275814610a75578063a1a11bf514610a8a578063a5422d5c14610a9f57610502565b806388b32f11146109c25780638a7beb01146109d75780638b5ad0c9146109ec5780638d19a41014610a015780639369d7de14610a2157610502565b806351b4dce3116103c957806370fd5bad1161033b5780637e434d54116102f45780637e434d541461094e57806381650b6214610963578063820dcaa814610978578063831d65d11461098d578063853230aa1461090f57806386249882146109ad57610502565b806370fd5bad146108d0578063718a8aa8146108e557806375d47a0a146108fa57806378dfed4a1461090f5780637942fd05146109245780637a84ca2a1461093957610502565b80635d77156c1161038d5780635d77156c1461082a5780635de1e22c1461083f57806360eba4fe1461085457806362b72cf5146108745780636969a25c146108895780636e47b482146108bb57610502565b806351b4dce3146107ab57806351e80672146107c057806355614fcc146107d5578063565c56b3146107f55780635667515a1461081557610502565b8063300c35671161046d57806343756e5c1161042657806343756e5c1461072057806345cf9daf14610735578063493279b11461074a5780634bf6c8821461076c5780634df6e0c3146107815780635192c82c1461079657610502565b8063300c35671461065b578063321d398a1461067b5780633365af3a1461069b57806335409f7f146106bb5780633b071dcc146106db5780633dffc387146106fe57610502565b8063152ad3b8116104bf578063152ad3b8146105ba5780631e4c1524146105dc5780631ff18069146105fc578063219f22d51461061157806328087028146106265780632a0ffb6e1461063b57610502565b806304c4fec61461050757806307a568471461051e5780630bee7a67146105495780630e2374a51461056b5780631182b8751461058d57610502565b3661050257005b600080fd5b34801561051357600080fd5b5061051c610dc5565b005b34801561052a57600080fd5b50610533610e39565b6040516105409190618f10565b60405180910390f35b34801561055557600080fd5b5061055e610e3f565b6040516105409190618f3a565b34801561057757600080fd5b50610580610e44565b6040516105409190618200565b34801561059957600080fd5b506105ad6105a83660046180e6565b610e4a565b60405161054091906183b6565b3480156105c657600080fd5b506105cf611167565b60405161054091906183ab565b3480156105e857600080fd5b5061051c6105f7366004617ef4565b611170565b34801561060857600080fd5b50610533611846565b34801561061d57600080fd5b5061055e61184c565b34801561063257600080fd5b50610580611851565b34801561064757600080fd5b5061051c610656366004617e54565b611857565b34801561066757600080fd5b5061051c610676366004617e8c565b611904565b34801561068757600080fd5b506105cf610696366004618093565b611c4d565b3480156106a757600080fd5b506105cf6106b6366004618093565b611d1c565b3480156106c757600080fd5b5061051c6106d6366004617e54565b611dcd565b3480156106e757600080fd5b506106f0611f32565b6040516105409291906182c1565b34801561070a57600080fd5b5061071361220e565b6040516105409190618f4b565b34801561072c57600080fd5b50610580612213565b34801561074157600080fd5b50610533612219565b34801561075657600080fd5b5061075f61221f565b6040516105409190618f01565b34801561077857600080fd5b50610713612224565b34801561078d57600080fd5b506106f0612229565b3480156107a257600080fd5b506105336123b5565b3480156107b757600080fd5b506105806123bb565b3480156107cc57600080fd5b506105806123c1565b3480156107e157600080fd5b506105cf6107f0366004617e54565b6123c7565b34801561080157600080fd5b50610533610810366004617e54565b6123fc565b34801561082157600080fd5b5061071361244d565b34801561083657600080fd5b5061055e612452565b34801561084b57600080fd5b50610533612457565b34801561086057600080fd5b506105ad61086f366004618093565b61245d565b34801561088057600080fd5b50610533612503565b34801561089557600080fd5b506108a96108a4366004618093565b612509565b6040516105409695949392919061822d565b3480156108c757600080fd5b5061058061256d565b3480156108dc57600080fd5b50610713612573565b3480156108f157600080fd5b50610713612578565b34801561090657600080fd5b5061058061257d565b34801561091b57600080fd5b50610533612583565b34801561093057600080fd5b50610713612589565b34801561094557600080fd5b5061053361258e565b34801561095a57600080fd5b50610580612594565b34801561096f57600080fd5b5061055e61259a565b34801561098457600080fd5b5061053361259f565b34801561099957600080fd5b5061051c6109a83660046180e6565b6125a5565b3480156109b957600080fd5b50610533612606565b3480156109ce57600080fd5b5061053361260c565b3480156109e357600080fd5b506105cf612612565b3480156109f857600080fd5b5061053361261b565b348015610a0d57600080fd5b50610533610a1c366004617e54565b612621565b348015610a2d57600080fd5b5061051c612661565b348015610a4257600080fd5b50610713612775565b348015610a5757600080fd5b5061058061277a565b348015610a6c57600080fd5b50610533612780565b348015610a8157600080fd5b50610533612785565b348015610a9657600080fd5b5061058061278a565b348015610aab57600080fd5b506105ad612790565b348015610ac057600080fd5b506105cf6127af565b348015610ad557600080fd5b506105806127b8565b348015610aea57600080fd5b506105806127be565b348015610aff57600080fd5b506105336127c4565b348015610b1457600080fd5b5061055e61244d565b348015610b2957600080fd5b5061051c610b38366004618037565b6127cd565b348015610b4957600080fd5b50610533610b58366004617e54565b613086565b348015610b6957600080fd5b50610533613098565b348015610b7e57600080fd5b50610b876130a5565b60405161054091906182ae565b348015610ba057600080fd5b50610533613191565b348015610bb557600080fd5b50610533613196565b348015610bca57600080fd5b50610533612573565b348015610bdf57600080fd5b5061058061319c565b348015610bf457600080fd5b506105ad610c03366004618093565b6131a2565b348015610c1457600080fd5b506105336131af565b348015610c2957600080fd5b506105336131ee565b348015610c3e57600080fd5b506105336131fa565b348015610c5357600080fd5b50610580613200565b348015610c6857600080fd5b50610580613206565b348015610c7d57600080fd5b50610533610e3f565b348015610c9257600080fd5b5061051c61320c565b348015610ca757600080fd5b506105336133bb565b348015610cbc57600080fd5b506105cf610ccb366004617ff8565b6133c1565b348015610cdc57600080fd5b5061051c610ceb366004617e54565b613547565b348015610cfc57600080fd5b5061055e61364b565b348015610d1157600080fd5b50610713613650565b61051c610d28366004617e54565b613655565b348015610d3957600080fd5b506105336139d4565b348015610d4e57600080fd5b506105806139da565b348015610d6357600080fd5b50610713612780565b348015610d7857600080fd5b506105806139e0565b348015610d8d57600080fd5b50610da1610d9c366004618093565b6139e6565b60405161054093929190618f19565b348015610dbc57600080fd5b50610580613aa8565b6000610dd033612621565b9050600b8181548110610ddf57fe5b600091825260209091206001601690920201015460ff16610e1b5760405162461bcd60e51b8152600401610e1290618b1c565b60405180910390fd5b6000610e256131af565b9050610e343383836001613aae565b505050565b60095481565b606481565b61200181565b60005460609060ff16610e6f5760405162461bcd60e51b8152600401610e12906185dd565b3361200014610e905760405162461bcd60e51b8152600401610e1290618d1d565b600b54610f4e57610e9f617a00565b60015460005b81811015610f4a57600b805460018101825560009190915283516000805160206191c883398151915260169092029182019081556020808601516000805160206192088339815191528401805460ff1916911515919091179055604086015180518794610f26936000805160206191e8833981519152909101920190617a2f565b506060820151610f3c9060038301906013617aa9565b505050806001019050610ea5565b5050505b610f56617ad6565b6000610f9785858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613d8392505050565b9150915080610fb357610faa6064613f3f565b92505050611160565b815160009060ff16610fd857610fd183602001518460400151613fa0565b905061112c565b825160ff16600114156111285782602001515160011461101d576000805160206191a883398151915260405161100d906189d5565b60405180910390a1506067611123565b6000836020015160008151811061103057fe5b602090810291909101810151516001600160a01b03811660009081526004909252604090912054909150801580611091575060018082038154811061107157fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b156110cf576040516001600160a01b038316907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a261111c565b60006110de8360018403615162565b90508061111a576040516001600160a01b038416907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a25b505b6000925050505b61112c565b5060655b63ffffffff811661115157505060408051600081526020810190915291506111609050565b61115a81613f3f565b93505050505b9392505050565b60075460ff1681565b33411461118f5760405162461bcd60e51b8152600401610e1290618d6c565b3a156111ad5760405162461bcd60e51b8152600401610e1290618a5b565b82516040805182815260208084028201019091526060908280156111eb57816020015b6111d8617afa565b8152602001906001900390816111d05790505b50905060005b82811015611295576040518060c0016040528087838151811061121057fe5b60200260200101516001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b0316815260200186838151811061125257fe5b60200260200101516001600160401b03168152602001600015158152602001600081525082828151811061128257fe5b60209081029190910101526001016111f1565b5060405163d31f968d60e01b81526120009063d31f968d906112c09061100090600890600401618292565b60206040518083038186803b1580156112d857600080fd5b505afa1580156112ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113109190617fd8565b15611633578051601554818111156113b257815b818110156113b057601580548061133757fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055601680548061138a57fe5b6001900381819060005260206000200160006113a69190617b2f565b9055600101611324565b505b60005b828110156115f2578181106114da5760158482815181106113d257fe5b602090810291909101810151825460018181018555600094855293839020825160049092020180546001600160a01b039283166001600160a01b0319918216178255938301519481018054958316958516959095179094556040820151600285018054606085015160808601511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590961692909716919091179290921692909217169290921790915560a0015160039091015585516016908790839081106114a257fe5b602090810291909101810151825460018101845560009384529282902081516114d49491909101929190910190617a2f565b506115ea565b8381815181106114e657fe5b6020026020010151601582815481106114fb57fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a09091015160039091015585518690829081106115b657fe5b6020026020010151601682815481106115cb57fe5b9060005260206000200190805190602001906115e8929190617a2f565b505b6001016113b5565b507fb8e726330a0dad1cf3d04e925663b17e391f1ed547d79b7f4e5f344119b44246826040516116229190618f10565b60405180910390a150505050610e34565b6060806116408386615525565b9150915060005b6001548110156117365760006001828154811061166057fe5b90600052602060002090600402016003015490508060001461172d5760006001838154811061168b57fe5b9060005260206000209060040201600301819055506120026001600160a01b031663092193ab82600185815481106116bf57fe5b60009182526020909120600491820201546040516001600160e01b031960e086901b1681526116fa926001600160a01b039092169101618200565b6000604051808303818588803b15801561171357600080fd5b505af1158015611727573d6000803e3d6000fd5b50505050505b50600101611647565b5047156117a4577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d4760405161176c9190618f10565b60405180910390a1604051611002904780156108fc02916000818181858888f193505050501580156117a2573d6000803e3d6000fd5b505b600060038190556005558151156117bf576117bf8282615a0f565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156117fc57600080fd5b505af1158015611810573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a150505050505050565b60035481565b606881565b61200581565b33612002146118785760405162461bcd60e51b8152600401610e1290618eca565b60005b60155481101561190057816001600160a01b03166015828154811061189c57fe5b60009182526020909120600490910201546001600160a01b031614156118f8576001601582815481106118cb57fe5b9060005260206000209060040201600201601c6101000a81548160ff021916908315150217905550611900565b60010161187b565b5050565b3341146119235760405162461bcd60e51b8152600401610e1290618d6c565b60105443116119445760405162461bcd60e51b8152600401610e1290618770565b3a156119625760405162461bcd60e51b8152600401610e1290618a5b565b60005460ff166119845760405162461bcd60e51b8152600401610e12906185dd565b60006110023168056bc75e2d631000008111156119bb576119b48168056bc75e2d6310000063ffffffff6161fe16565b91506119c2565b5050611c43565b6040516309a99b4f60e41b815261100290639a99b4f0906119e99030908690600401618214565b602060405180830381600087803b158015611a0357600080fd5b505af1158015611a17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3b91906180ab565b915081611a49575050611c43565b6000805b84811015611a7757858582818110611a6157fe5b9050602002013582019150806001019050611a4d565b5080611a8557505050611c43565b6000806000805b89811015611c3b5784898983818110611aa157fe5b90506020020135880281611ab157fe5b0493508a8a82818110611ac057fe5b9050602002016020810190611ad59190617e54565b6001600160a01b03811660009081526004602052604090205490935091508115611bf1576000600180840381548110611b0a57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff1615611b7757836001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d8586604051611b6a9190618f10565b60405180910390a2611beb565b600354611b8a908663ffffffff61624016565b6003908155810154611ba2908663ffffffff61624016565b60038201556040516001600160a01b038516907fcb0aad6cf9cd03bdf6137e359f541c42f38b39f007cae8e89e88aa7d8c6617b290611be2908890618f10565b60405180910390a25b50611c33565b826001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d8585604051611c2a9190618f10565b60405180910390a25b600101611a8c565b505050505050505b5050436010555050565b6001546000908210611c6157506000611d17565b60006001600160a01b031660018381548110611c7957fe5b60009182526020909120600490910201546001600160a01b03161480611ca957506008541580611ca95750600a54155b80611cb8575060085460095410155b80611cc95750611cc782611d1c565b155b80611cf257506000600b8381548110611cde57fe5b906000526020600020906016020160000154115b80611d0657506001611d026130a5565b5111155b15611d1357506000611d17565b5060015b919050565b6001546000908210611d3057506000611d17565b600b548210611d6d5760018281548110611d4657fe5b9060005260206000209060040201600201601c9054906101000a900460ff16159050611d17565b60018281548110611d7a57fe5b9060005260206000209060040201600201601c9054906101000a900460ff16158015611dc75750600b8281548110611dae57fe5b600091825260209091206001601690920201015460ff16155b92915050565b600b54611e8b57611ddc617a00565b60015460005b81811015611e8757600b805460018101825560009190915283516000805160206191c883398151915260169092029182019081556020808601516000805160206192088339815191528401805460ff1916911515919091179055604086015180518794611e63936000805160206191e8833981519152909101920190617a2f565b506060820151611e799060038301906013617aa9565b505050806001019050611de2565b5050505b336110011480611e9c575033612002145b611eb85760405162461bcd60e51b8152600401610e1290618614565b6001600160a01b03811660009081526004602052604090205480611edc5750611f2f565b6001810390506000600b8281548110611ef157fe5b600091825260209091206001601690920201015460ff169050611f148383615162565b8015611f1d5750805b15610e34576009805460001901905550505b50565b60015460609081906000805b82811015611f855760018181548110611f5357fe5b9060005260206000209060040201600201601c9054906101000a900460ff16611f7d576001909101905b600101611f3e565b50606081604051908082528060200260200182016040528015611fb2578160200160208202803683370190505b509050606082604051908082528060200260200182016040528015611feb57816020015b6060815260200190600190039081611fd65790505b50600b54600094509091508414156121665760005b84811015612160576001818154811061201557fe5b9060005260206000209060040201600201601c9054906101000a900460ff16612158576001818154811061204557fe5b600091825260209091206004909102015483516001600160a01b039091169084908690811061207057fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600b818154811061209d57fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156121355780601f1061210a57610100808354040283529160200191612135565b820191906000526020600020905b81548152906001019060200180831161211857829003601f168201915b505050505082858151811061214657fe5b60209081029190910101526001909301925b600101612000565b50612202565b60005b84811015612200576001818154811061217e57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166121f857600181815481106121ae57fe5b600091825260209091206004909102015483516001600160a01b03909116908490869081106121d957fe5b6001600160a01b03909216602092830291909101909101526001909301925b600101612169565b505b909450925050505b9091565b600181565b61100181565b60085481565b606181565b600881565b6060806000600e549050600080600c5411612245576015612249565b600c545b905060606122556130a5565b9050606061226282616265565b90508282511161227957909450925061220a915050565b8383835103101561228b578282510393505b83156122c15760c843046122a783838388880360008a8a6163d3565b6122bf8383838888038989038a8b8b8b5103016163d3565b505b6060836040519080825280602002602001820160405280156122ed578160200160208202803683370190505b50905060608460405190808252806020026020018201604052801561232657816020015b60608152602001906001900390816123115790505b50905060005b858110156123a75784818151811061234057fe5b602002602001015183828151811061235457fe5b60200260200101906001600160a01b031690816001600160a01b03168152505083818151811061238057fe5b602002602001015182828151811061239457fe5b602090810291909101015260010161232c565b509096509450505050509091565b60065481565b61200681565b61200081565b6001600160a01b038116600090815260046020526040812054806123ef576000915050611d17565b6000190161116081611d1c565b6001600160a01b03811660009081526004602052604081205480612424576000915050611d17565b60018082038154811061243357fe5b906000526020600020906004020160030154915050919050565b600081565b606781565b600f5481565b6012818154811061246a57fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152935090918301828280156124fb5780601f106124d0576101008083540402835291602001916124fb565b820191906000526020600020905b8154815290600101906020018083116124de57829003601f168201915b505050505081565b60105481565b6001818154811061251657fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b601081565b61100881565b6103e881565b600b81565b600c5481565b61200381565b606681565b61271081565b33612000146125c65760405162461bcd60e51b8152600401610e1290618d1d565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f389021016058383836040516125f993929190618f59565b60405180910390a1505050565b60025481565b60115481565b60145460ff1681565b600a5481565b6001600160a01b038116600090815260046020526040812054806126575760405162461bcd60e51b8152600401610e1290618ca5565b6000190192915050565b600b5461271f57612670617a00565b60015460005b8181101561271b57600b805460018101825560009190915283516000805160206191c883398151915260169092029182019081556020808601516000805160206192088339815191528401805460ff19169115159190911790556040860151805187946126f7936000805160206191e8833981519152909101920190617a2f565b50606082015161270d9060038301906013617aa9565b505050806001019050612676565b5050505b60085461272c5760036008555b600a54612739576002600a555b600061274433612621565b905061274f81611c4d565b61276b5760405162461bcd60e51b8152600401610e1290618992565b611f2f338261652a565b600981565b61100781565b600381565b60c881565b61100681565b604051806101e001604052806101ab8152602001618ffd6101ab913981565b60005460ff1681565b61200281565b61300081565b6402540be40081565b60005460ff166127ef5760405162461bcd60e51b8152600401610e12906185dd565b33611007146128105760405162461bcd60e51b8152600401610e1290618a89565b61287a84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b602082015291506165c29050565b15612917576020811461289f5760405162461bcd60e51b8152600401610e1290618c5f565b604080516020601f84018190048102820181019092528281526000916128dd9185858083850183828082843760009201919091525061661b92505050565b9050606481101580156128f35750620186a08111155b61290f5760405162461bcd60e51b8152600401610e1290618882565b600255613043565b61297784848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260098152686275726e526174696f60b81b602082015291506165c29050565b15612a1a576020811461299c5760405162461bcd60e51b8152600401610e12906183fb565b604080516020601f84018190048102820181019092528281526000916129da9185858083850183828082843760009201919091525061661b92505050565b90506127106129f4600f548361624090919063ffffffff16565b1115612a125760405162461bcd60e51b8152600401610e1290618432565b600655613043565b612a8484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260138152726d61784e756d4f664d61696e7461696e696e6760681b602082015291506165c29050565b15612b1e5760208114612aa95760405162461bcd60e51b8152600401610e129061849a565b604080516020601f8401819004810282018101909252828152600091612ae79185858083850183828082843760009201919091525061661b92505050565b600c5490915080612af6575060155b808210612b155760405162461bcd60e51b8152600401610e12906187da565b50600855613043565b612b8784848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61696e7461696e536c6173685363616c6560701b602082015291506165c29050565b15612c205760208114612bac5760405162461bcd60e51b8152600401610e1290618563565b604080516020601f8401819004810282018101909252828152600091612bea9185858083850183828082843760009201919091525061661b92505050565b9050600081118015612bfc5750600a81105b612c185760405162461bcd60e51b8152600401610e1290618dfd565b600a55613043565b612c9484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601981527f6d61784e756d4f66576f726b696e6743616e6469646174657300000000000000602082015291506165c29050565b15612d235760208114612cb95760405162461bcd60e51b8152600401610e1290618517565b604080516020601f8401819004810282018101909252828152600091612cf79185858083850183828082843760009201919091525061661b92505050565b9050600d54811115612d1b5760405162461bcd60e51b8152600401610e12906188f8565b600e55613043565b612d8c84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61784e756d4f6643616e6469646174657360701b602082015291506165c29050565b15612e0e5760208114612db15760405162461bcd60e51b8152600401610e1290618ad7565b604080516020601f8401819004810282018101909252828152600091612def9185858083850183828082843760009201919091525061661b92505050565b600d819055600e54909150811015612e0857600d54600e555b50613043565b612e7284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c6e756d4f66436162696e65747360981b602082015291506165c29050565b15612f205760208114612e975760405162461bcd60e51b8152600401610e12906185a8565b604080516020601f8401819004810282018101909252828152600091612ed59185858083850183828082843760009201919091525061661b92505050565b905060008111612ef75760405162461bcd60e51b8152600401610e1290618682565b6064811115612f185760405162461bcd60e51b8152600401610e12906186ca565b600c55613043565b612f8884848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601181527073797374656d526577617264526174696f60781b602082015291506165c29050565b1561302b5760208114612fad5760405162461bcd60e51b8152600401610e1290618db9565b604080516020601f8401819004810282018101909252828152600091612feb9185858083850183828082843760009201919091525061661b92505050565b90506127106130056006548361624090919063ffffffff16565b11156130235760405162461bcd60e51b8152600401610e1290618bc0565b600f55613043565b60405162461bcd60e51b8152600401610e1290618e5a565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a8484848460405161307894939291906183c9565b60405180910390a150505050565b60046020526000908152604090205481565b68056bc75e2d6310000081565b6001546060906000805b828110156130d4576130c081611d1c565b156130cc578160010191505b6001016130af565b50606081604051908082528060200260200182016040528015613101578160200160208202803683370190505b5090506000915060005b838110156131885761311c81611d1c565b15613180576001818154811061312e57fe5b600091825260209091206004909102015482516001600160a01b039091169083908590811061315957fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508260010192505b60010161310b565b50925050505b90565b601581565b61027181565b61100281565b6013818154811061246a57fe5b60006131b96130a5565b519050600080600c54116131ce5760156131d2565b600c545b9050808211156131e0578091505b816131ea57600191505b5090565b67016345785d8a000081565b60055481565b61100381565b61200481565b60005460ff161561322f5760405162461bcd60e51b8152600401610e1290618b89565b613237617ad6565b600061325d604051806101e001604052806101ab8152602001618ffd6101ab9139613d83565b915091508061327e5760405162461bcd60e51b8152600401610e1290618cdc565b60005b8260200151518110156133a3576001836020015182815181106132a057fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a09093015160039093019290925591860151805191850193918590811061337657fe5b602090810291909101810151516001600160a01b0316825281019190915260400160002055600101613281565b50506103e8600255506000805460ff19166001179055565b600d5481565b601354600090815b818110156134ca576134b285858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060138054909250859150811061341a57fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156134a85780601f1061347d576101008083540402835291602001916134a8565b820191906000526020600020905b81548152906001019060200180831161348b57829003601f168201915b5050505050616620565b156134c257600192505050611dc7565b6001016133c9565b5060125460005b8181101561353b5761352286868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060128054909250859150811061341a57fe5b156135335760019350505050611dc7565b6001016134d1565b50600095945050505050565b33611001146135685760405162461bcd60e51b8152600401610e1290618e81565b600b5461362657613577617a00565b60015460005b8181101561362257600b805460018101825560009190915283516000805160206191c883398151915260169092029182019081556020808601516000805160206192088339815191528401805460ff19169115159190911790556040860151805187946135fe936000805160206191e8833981519152909101920190617a2f565b5060608201516136149060038301906013617aa9565b50505080600101905061357d565b5050505b600061363182616684565b905061363c81611c4d565b1561190057611900828261652a565b606581565b601181565b3341146136745760405162461bcd60e51b8152600401610e1290618d6c565b60005460ff166136965760405162461bcd60e51b8152600401610e12906185dd565b600034116136b65760405162461bcd60e51b8152600401610e12906188c9565b3a156136d45760405162461bcd60e51b8152600401610e1290618a5b565b6001600160a01b03811660009081526004602052604090205460145434919060ff1661371457610271600f556103e86006556014805460ff191660011790555b60008211801561372657506000600f54115b156137d8576000613754612710613748600f543461680790919063ffffffff16565b9063ffffffff61684116565b905080156137d6576040516110029082156108fc029083906000818181858888f1935050505015801561378b573d6000803e3d6000fd5b507f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d816040516137bb9190618f10565b60405180910390a16137d3838263ffffffff6161fe16565b92505b505b6000821180156137ea57506000600654115b1561389057600061380c6127106137486006543461680790919063ffffffff16565b9050801561388e5760405161dead9082156108fc029083906000818181858888f19350505050158015613843573d6000803e3d6000fd5b507f627059660ea01c4733a328effb2294d2f86905bf806da763a89cee254de8bee5816040516138739190618f10565b60405180910390a161388b838263ffffffff6161fe16565b92505b505b801561398e5760006001808303815481106138a757fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff161561391457836001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4846040516139079190618f10565b60405180910390a2613988565b600354613927908463ffffffff61624016565b600390815581015461393f908463ffffffff61624016565b60038201556040516001600160a01b038516907f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc0559061397f908690618f10565b60405180910390a25b50610e34565b826001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4836040516139c79190618f10565b60405180910390a2505050565b600e5481565b61100081565b61dead81565b600b81815481106139f357fe5b6000918252602091829020601691909102018054600180830154600280850180546040805161010096831615969096026000190190911692909204601f810188900488028501880190925281845293965060ff90911694919291830182828015613a9e5780601f10613a7357610100808354040283529160200191613a9e565b820191906000526020600020905b815481529060010190602001808311613a8157829003601f168201915b5050505050905083565b61100481565b6000600a5460001480613abf575082155b80613aca5750600954155b15613ad757506000613d7b565b60096000815460019003919050819055506000613b22600a5461374886613748600b8a81548110613b0457fe5b6000918252602090912060169091020154439063ffffffff6161fe16565b90506000600b8681548110613b3357fe5b906000526020600020906016020160010160006101000a81548160ff0219169083151502179055506000806110016001600160a01b0316638256ace66040518163ffffffff1660e01b8152600401604080518083038186803b158015613b9857600080fd5b505afa158015613bac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613bd091906180c3565b9150915060009350808310613d3157613be98888615162565b5060405163436aa28360e11b8152600090612002906386d5450690613c12908c90600401618200565b60206040518083038186803b158015613c2a57600080fd5b505afa158015613c3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c629190617e70565b6001600160a01b031614613cd0576040516328aa02b160e01b8152611001906328aa02b190613c99908b9087908a9060040161826f565b600060405180830381600087803b158015613cb357600080fd5b505af1158015613cc7573d6000803e3d6000fd5b50505050613d28565b6040516305bfb49960e41b815261100190635bfb499090613cf5908b90600401618200565b600060405180830381600087803b158015613d0f57600080fd5b505af1158015613d23573d6000803e3d6000fd5b505050505b60019350613d43565b818310613d4357613d4188616684565b505b6040516001600160a01b038916907fb9d38178dc641ff1817967a63c9078cbcd955a9f1fcd75e0e3636de615d44d3b90600090a25050505b949350505050565b613d8b617ad6565b6000613d95617ad6565b613d9d617b73565b613dae613da986616883565b6168a8565b90506000805b613dbd836168f2565b15613f315780613de257613dd8613dd384616913565b616961565b60ff168452613f29565b8060011415613f24576060613dfe613df985616913565b6169e1565b90508051604051908082528060200260200182016040528015613e3b57816020015b613e28617afa565b815260200190600190039081613e205790505b5085602001819052508051604051908082528060200260200182016040528015613e7957816020015b6060815260200190600190039081613e645790505b50604086015260005b8151811015613f1957613e93617afa565b60606000613eb3858581518110613ea657fe5b6020026020010151616ab2565b92509250925080613ed3578860009a509a50505050505050505050613f3a565b8289602001518581518110613ee457fe5b60200260200101819052508189604001518581518110613f0057fe5b6020026020010181905250505050806001019050613e82565b506001925050613f29565b613f31565b600101613db4565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b6060815260200190600190039081613f59579050509050613f7f8363ffffffff16616bcc565b81600081518110613f8c57fe5b602002602001018190525061116081616bdf565b6000606483511115613fd7576000805160206191a8833981519152604051613fc790618727565b60405180910390a1506066611dc7565b60005b83518110156140755760005b8181101561406c57848181518110613ffa57fe5b6020026020010151600001516001600160a01b031685838151811061401b57fe5b6020026020010151600001516001600160a01b03161415614064576000805160206191a883398151915260405161405190618837565b60405180910390a1606692505050611dc7565b600101613fe6565b50600101613fda565b5060608060606015805480602002602001604051908101604052809291908181526020016000905b828210156141275760008481526020908190206040805160c0810182526004860290920180546001600160a01b039081168452600180830154821685870152600283015491821693850193909352600160a01b81046001600160401b03166060850152600160e01b900460ff16151560808401526003015460a0830152908352909201910161409d565b50505050905060606016805480602002602001604051908101604052809291908181526020016000905b828210156141fc5760008481526020908190208301805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156141e85780601f106141bd576101008083540402835291602001916141e8565b820191906000526020600020905b8154815290600101906020018083116141cb57829003601f168201915b505050505081526020019060010190614151565b50505050905060005b82518110156142595782818151811061421a57fe5b60200260200101516060015160030283828151811061423557fe5b60209081029190910101516001600160401b03909116606090910152600101614205565b5060608061426989898686616c69565b915091506142778282615525565b600154604080518281526020808402820101909152929850909650600095508594509250606091508280156142b6578160200160208202803683370190505b50905060005b828110156144475760006001600160a01b03166120026001600160a01b03166386d54506600184815481106142ed57fe5b60009182526020909120600491820201546040516001600160e01b031960e085901b168152614328926001600160a01b039092169101618200565b60206040518083038186803b15801561434057600080fd5b505afa158015614354573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143789190617e70565b6001600160a01b0316146143da57600182828151811061439457fe5b602002602001019060ff16908160ff1681525050600181815481106143b557fe5b9060005260206000209060040201600301546000146143d5578360010193505b61443f565b67016345785d8a0000600182815481106143f057fe5b906000526020600020906004020160030154106144125784600101945061443f565b6001818154811061441f57fe5b90600052602060002090600402016003015460001461443f578360010193505b6001016142bc565b50606084604051908082528060200260200182016040528015614474578160200160208202803683370190505b5090506060856040519080825280602002602001820160405280156144a3578160200160208202803683370190505b5090506060866040519080825280602002602001820160405280156144d2578160200160208202803683370190505b509050606087604051908082528060200260200182016040528015614501578160200160208202803683370190505b5090506000606088604051908082528060200260200182016040528015614532578160200160208202803683370190505b509050606089604051908082528060200260200182016040528015614561578160200160208202803683370190505b50905060009a506000995060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b1580156145a957600080fd5b505afa1580156145bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145e191906180ab565b905067016345785d8a000081111561462d576000805160206191a883398151915260405161460e90618b48565b60405180910390a160689e505050505050505050505050505050611dc7565b60005b8a8110156149c15789818151811061464457fe5b602002602001015160ff166001141561473a576001818154811061466457fe5b906000526020600020906004020160030154600014614735576001818154811061468a57fe5b600091825260209091206004909102015484516001600160a01b039091169085908e9081106146b557fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600181815481106146e257fe5b906000526020600020906004020160030154838d8151811061470057fe5b60200260200101818152505060018a8d8151811061471a57fe5b602002602001019060ff16908160ff16815250508b6001019b505b6149b9565b67016345785d8a00006001828154811061475057fe5b906000526020600020906004020160030154106148d5576001818154811061477457fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316898e815181106147a557fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be400600183815481106147da57fe5b906000526020600020906004020160030154816147f357fe5b066001838154811061480157fe5b90600052602060002090600402016003015403905061482983826161fe90919063ffffffff16565b898f8151811061483557fe5b6020026020010181815250506001828154811061484e57fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316878f8151811061487f57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081888f815181106148ac57fe5b60209081029190910101526148c7868263ffffffff61624016565b95508d6001019d50506149b9565b600181815481106148e257fe5b9060005260206000209060040201600301546000146149b9576001818154811061490857fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316848d8151811061493957fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506001818154811061496657fe5b906000526020600020906004020160030154838d8151811061498457fe5b60200260200101818152505060008a8d8151811061499e57fe5b602002602001019060ff16908160ff16815250508b6001019b505b600101614630565b5060008415614c37576002546040516303702b2960e51b815261100491636e0565209188916149fb918e918e918d91420190600401618331565b6020604051808303818588803b158015614a1457600080fd5b505af193505050508015614a45575060408051601f3d908101601f19168201909252614a4291810190617fd8565b60015b614bbc576040516000815260443d1015614a6157506000614afc565b60046000803e60005160e01c6308c379a08114614a82576000915050614afc565b60043d036004833e81513d60248201116001600160401b0382111715614aad57600092505050614afc565b80830180516001600160401b03811115614ace576000945050505050614afc565b8060208301013d8601811115614aec57600095505050505050614afc565b601f01601f191660405250925050505b80614b075750614b49565b60019150857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf28082604051614b3b91906183b6565b60405180910390a250614bb7565b3d808015614b73576040519150601f19603f3d011682016040523d82523d6000602084013e614b78565b606091505b5060019150857fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a4582604051614bad91906183b6565b60405180910390a2505b614c37565b8015614bfe577fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b7086604051614bf19190618f10565b60405180910390a1614c35565b857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280604051614c2c906184e0565b60405180910390a25b505b8015614ded5760005b8751811015614deb576000888281518110614c5757fe5b60200260200101519050600060018281548110614c7057fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc9185908110614ca157fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f1935050505090508015614d5d5760018281548110614ce257fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d9185908110614d3157fe5b906000526020600020906004020160030154604051614d509190618f10565b60405180910390a2614de1565b60018281548110614d6a57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d9185908110614db957fe5b906000526020600020906004020160030154604051614dd89190618f10565b60405180910390a25b5050600101614c40565b505b835115614fe35760005b8451811015614fe1578a8181518110614e0c57fe5b602002602001015160ff1660011415614eab576120026001600160a01b031663092193ab858381518110614e3c57fe5b6020026020010151878481518110614e5057fe5b60200260200101516040518363ffffffff1660e01b8152600401614e749190618200565b6000604051808303818588803b158015614e8d57600080fd5b505af1158015614ea1573d6000803e3d6000fd5b5050505050614fd9565b6000858281518110614eb957fe5b60200260200101516001600160a01b03166108fc868481518110614ed957fe5b60200260200101519081150290604051600060405180830381858888f1935050505090508015614f6f57858281518110614f0f57fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d868481518110614f4d57fe5b6020026020010151604051614f629190618f10565b60405180910390a2614fd7565b858281518110614f7b57fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d868481518110614fb957fe5b6020026020010151604051614fce9190618f10565b60405180910390a25b505b600101614df7565b505b5050505050505050505050505060005b600154811015615050576001818154811061500a57fe5b9060005260206000209060040201600301546000146150485760006001828154811061503257fe5b9060005260206000209060040201600301819055505b600101614ff3565b5047156150be577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d476040516150869190618f10565b60405180910390a1604051611002904780156108fc02916000818181858888f193505050501580156150bc573d6000803e3d6000fd5b505b600060038190556005558151156150d9576150d98282615a0f565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561511657600080fd5b505af115801561512a573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a1506000949350505050565b6000806001838154811061517257fe5b9060005260206000209060040201600301549050600060018080549050039050600161519c6130a5565b51116151d1576000600185815481106151b157fe5b906000526020600020906004020160030181905550600092505050611dc7565b846001600160a01b03167f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a708360405161520a9190618f10565b60405180910390a26001600160a01b038516600090815260046020526040812055835b600154600019018110156153f7576001816001018154811061524b57fe5b90600052602060002090600402016001828154811061526657fe5b60009182526020909120825460049092020180546001600160a01b03199081166001600160a01b0393841617825560018085015481840180548416918616919091179055600280860180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b19909416939093179055600392830154920191909155600b80549091830190811061532757fe5b9060005260206000209060160201600b828154811061534257fe5b600091825260209091208254601690920201908155600180830154818301805460ff909216151560ff1990921691909117905560028084018054615399938386019390821615610100026000190190911604617b93565b506153ac60038281019084016013617c08565b509050508060010160046000600184815481106153c557fe5b600091825260208083206004909202909101546001600160a01b0316835282019290925260400190205560010161522d565b50600180548061540357fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b80548061545657fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906154886002830182617b2f565b615496600383016000617c32565b5050905560008183816154a557fe5b04905080156155195760015460005b81811015615516576154ed83600183815481106154cd57fe5b90600052602060002090600402016003015461624090919063ffffffff16565b600182815481106154fa57fe5b60009182526020909120600360049092020101556001016154b4565b50505b50600195945050505050565b6060806000808080806155366131af565b6001549091505b801561576857600181039250600b838154811061555657fe5b600091825260209091206001601690920201015460ff166155765761575f565b6001838154811061558357fe5b600091825260208220600490910201546001600160a01b031695506155ad90869085908590613aae565b9350836155b95761575f565b60405163436aa28360e11b81526000908190612002906386d54506906155e3908a90600401618200565b60206040518083038186803b1580156155fb57600080fd5b505afa15801561560f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906156339190617e70565b90506001600160a01b038116156156bc576040516302ceee9160e11b81526120029063059ddd2290615669908490600401618200565b60206040518083038186803b15801561568157600080fd5b505afa158015615695573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906156b99190617e70565b91505b60005b8c5181101561575b57876001600160a01b03168d82815181106156de57fe5b6020026020010151600001516001600160a01b031614806157275750826001600160a01b03168d828151811061571057fe5b6020026020010151600001516001600160a01b0316145b156157535760018d828151811061573a57fe5b602090810291909101015190151560809091015261575b565b6001016156bf565b5050505b6000190161553d565b5060005b89518110156157d55789818151811061578157fe5b602002602001015160800151806157c1575060006001600160a01b03168a82815181106157aa57fe5b6020026020010151600001516001600160a01b0316145b156157cd578560010195505b60010161576c565b50885185106158bd5760408051600180825281830190925290816020015b6157fb617afa565b8152602001906001900390816157f3575050604080516001808252818301909252919850602082015b60608152602001906001900390816158245790505095508860008151811061584857fe5b60200260200101518760008151811061585d57fe5b60200260200101819052508760008151811061587557fe5b60200260200101518660008151811061588a57fe5b60200260200101819052506000876000815181106158a457fe5b6020908102919091010151901515608090910152615a02565b848951036040519080825280602002602001820160405280156158fa57816020015b6158e7617afa565b8152602001906001900390816158df5790505b5096508489510360405190808252806020026020018201604052801561593457816020015b606081526020019060019003908161591f5790505b5095506000915060005b8951811015615a005789818151811061595357fe5b602002602001015160800151158015615996575060006001600160a01b03168a828151811061597e57fe5b6020026020010151600001516001600160a01b031614155b156159f8578981815181106159a757fe5b60200260200101518884815181106159bb57fe5b60200260200101819052508881815181106159d257fe5b60200260200101518784815181106159e657fe5b60200260200101819052508260010192505b60010161593e565b505b50505050505b9250929050565b600154825160005b82811015615b2c576001615a29617afa565b60018381548110615a3657fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b84811015615b0057878181518110615ac657fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b03161415615af85760009250615b00565b600101615ab2565b508115615b225780516001600160a01b03166000908152600460205260408120555b5050600101615a17565b5080821115615beb57805b82811015615be9576001805480615b4a57fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b805480615b9d57fe5b60008281526020812060166000199093019283020181815560018101805460ff1916905590615bcf6002830182617b2f565b615bdd600383016000617c32565b50509055600101615b37565b505b6000818310615bfa5781615bfc565b825b905060005b81811015615fa057615cae868281518110615c1857fe5b602002602001015160018381548110615c2d57fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a0820152617035565b615e62578060010160046000888481518110615cc657fe5b6020026020010151600001516001600160a01b03166001600160a01b0316815260200190815260200160002081905550858181518110615d0257fe5b602002602001015160018281548110615d1757fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a0909101516003909101558451859082908110615dd257fe5b6020026020010151600b8281548110615de757fe5b90600052602060002090601602016002019080519060200190615e0b929190617a2f565b506000600b8281548110615e1b57fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b805483908110615e4c57fe5b6000918252602090912060169091020155615f98565b858181518110615e6e57fe5b60200260200101516060015160018281548110615e8757fe5b906000526020600020906004020160020160146101000a8154816001600160401b0302191690836001600160401b03160217905550615f4d858281518110615ecb57fe5b6020026020010151600b8381548110615ee057fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156134a85780601f1061347d576101008083540402835291602001916134a8565b615f9857848181518110615f5d57fe5b6020026020010151600b8281548110615f7257fe5b90600052602060002090601602016002019080519060200190615f96929190617a2f565b505b600101615c01565b508282111561617857615fb1617a00565b835b8381101561617557858181518110615fc757fe5b602002602001015182604001819052506001878281518110615fe557fe5b6020908102919091018101518254600181810185556000948552838520835160049093020180546001600160a01b039384166001600160a01b0319918216178255848601518284018054918616918316919091179055604080860151600284018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909a1692909616919091179290921696909617169190911790935560a090930151600390930192909255600b80549283018155909352845160169091026000805160206191c88339815191528101918255858301516000805160206192088339815191528201805491151560ff199092169190911790559285015180518694929361611b936000805160206191e883398151915201920190617a2f565b5060608201516161319060038301906013617aa9565b505050806001016004600089848151811061614857fe5b602090810291909101810151516001600160a01b0316825281019190915260400160002055600101615fb3565b50505b616180617091565b616188617279565b6000600981905560015493505b838110156161f6576000600b82815481106161ac57fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b8054839081106161dd57fe5b6000918252602090912060169091020155600101616195565b505050505050565b600061116083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250617467565b6000828201838110156111605760405162461bcd60e51b8152600401610e129061864b565b6001548151604080518281526020808402820101909152606092919083908280156162a457816020015b606081526020019060019003908161628f5790505b50600b5490915083146162bb579250611d17915050565b60005b828110156163ca57600b6001600460008985815181106162da57fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054038154811061630e57fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156163a65780601f1061637b576101008083540402835291602001916163a6565b820191906000526020600020905b81548152906001019060200180831161638957829003601f168201915b50505050508282815181106163b757fe5b60209081029190910101526001016162be565b50949350505050565b60005b8281101561652057600082878388016040516020016163f69291906181f2565b6040516020818303038152906040528051906020012060001c8161641657fe5b06905080850182870114616517576000898388018151811061643457fe5b602002602001015190506060898489018151811061644e57fe5b602002602001015190508a8388018151811061646657fe5b60200260200101518b858a018151811061647c57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050818b848901815181106164ab57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505089838801815181106164d957fe5b60200260200101518a858a01815181106164ef57fe5b6020026020010181905250808a8489018151811061650957fe5b602002602001018190525050505b506001016163d6565b5050505050505050565b600980546001908101909155600b80548390811061654457fe5b906000526020600020906016020160010160006101000a81548160ff02191690831515021790555043600b828154811061657a57fe5b600091825260208220601690910201919091556040516001600160a01b038416917ff62981a567ec3cec866c6fa93c55bcdf841d6292d18b8d522ececa769375d82d91a25050565b6000816040516020016165d591906181d6565b60405160208183030381529060405280519060200120836040516020016165fc91906181d6565b6040516020818303038152906040528051906020012014905092915050565b015190565b81518151600091600191811480831461663c576000925061667a565b600160208701838101602088015b6002848385100114156166755780518351146166695760009650600093505b6020928301920161664a565b505050505b5090949350505050565b6001600160a01b038116600090815260046020526040812054806166ad57506000199050611d17565b6001810390506000600182815481106166c257fe5b90600052602060002090600402016003015490506000600183815481106166e557fe5b6000918252602090912060036004909202010155600154604051600019909101906001600160a01b038616907f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d9061673e908590618f10565b60405180910390a28061675657829350505050611d17565b600081838161676157fe5b04905080156167fd5760005b848110156167af5761678682600183815481106154cd57fe5b6001828154811061679357fe5b600091825260209091206003600490920201015560010161676d565b50600180549085015b818110156167fa576167d183600183815481106154cd57fe5b600182815481106167de57fe5b60009182526020909120600360049092020101556001016167b8565b50505b5091949350505050565b60008261681657506000611dc7565b8282028284828161682357fe5b04146111605760405162461bcd60e51b8152600401610e1290618a1a565b600061116083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250617493565b61688b617c41565b506040805180820190915281518152602082810190820152919050565b6168b0617b73565b6168b9826174ca565b6168c257600080fd5b60006168d18360200151617504565b60208085015160408051808201909152868152920190820152915050919050565b60006168fc617c41565b505080518051602091820151919092015191011190565b61691b617c41565b616924826168f2565b61692d57600080fd5b6020820151600061693d82617567565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061697657508151602110155b61697f57600080fd5b600061698e8360200151617504565b905080836000015110156169b45760405162461bcd60e51b8152600401610e1290618c28565b8251602080850151830180519284900392918310156163ca57506020919091036101000a90049392505050565b60606169ec826174ca565b6169f557600080fd5b6000616a0083617648565b9050606081604051908082528060200260200182016040528015616a3e57816020015b616a2b617c41565b815260200190600190039081616a235790505b5090506000616a508560200151617504565b60208601510190506000805b84811015616aa757616a6d83617567565b9150604051806040016040528083815260200184815250848281518110616a9057fe5b602090810291909101015291810191600101616a5c565b509195945050505050565b616aba617afa565b60606000616ac6617afa565b6060616ad0617b73565b616ad9876168a8565b90506000805b616ae8836168f2565b15616bbd5780616b1357616b03616afe84616913565b6176a4565b6001600160a01b03168552616bb5565b8060011415616b3b57616b28616afe84616913565b6001600160a01b03166020860152616bb5565b8060021415616b6357616b50616afe84616913565b6001600160a01b03166040860152616bb5565b8060031415616b8f57616b78613dd384616913565b6001600160401b0316606086015260019150616bb5565b8060041415616bb057616ba9616ba484616913565b6176be565b9350616bb5565b616bbd565b600101616adf565b50929791965091945092505050565b6060611dc7616bda8361772e565b617814565b6060815160001415616c005750604080516000815260208101909152611d17565b606082600081518110616c0f57fe5b602002602001015190506000600190505b8351811015616c5057616c4682858381518110616c3957fe5b6020026020010151617866565b9150600101616c20565b50611160616c63825160c060ff166178e3565b82617866565b60608060006120026001600160a01b031663c473318f6040518163ffffffff1660e01b815260040160206040518083038186803b158015616ca957600080fd5b505afa158015616cbd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190616ce191906180ab565b90508085518851011015616cf6575083518651015b606081604051908082528060200260200182016040528015616d3257816020015b616d1f617afa565b815260200190600190039081616d175790505b509050606082604051908082528060200260200182016040528015616d6b57816020015b6060815260200190600190039081616d565790505b50905060008060005b8b51831080616d835750895182105b8015616d8e57508581105b15617023578b51831415616dfe57898281518110616da857fe5b6020026020010151858281518110616dbc57fe5b6020026020010181905250888281518110616dd357fe5b6020026020010151848281518110616de757fe5b602090810291909101015260019182019101616d74565b8951821415616e69578b8381518110616e1357fe5b6020026020010151858281518110616e2757fe5b60200260200101819052508a8381518110616e3e57fe5b6020026020010151848281518110616e5257fe5b602090810291909101015260019283019201616d74565b898281518110616e7557fe5b6020026020010151606001516001600160401b03168c8481518110616e9657fe5b6020026020010151606001516001600160401b03161115616f12578b8381518110616ebd57fe5b6020026020010151858281518110616ed157fe5b60200260200101819052508a8381518110616ee857fe5b6020026020010151848281518110616efc57fe5b602002602001018190525082600101925061701b565b898281518110616f1e57fe5b6020026020010151606001516001600160401b03168c8481518110616f3f57fe5b6020026020010151606001516001600160401b03161015616fbb57898281518110616f6657fe5b6020026020010151858281518110616f7a57fe5b6020026020010181905250888281518110616f9157fe5b6020026020010151848281518110616fa557fe5b602002602001018190525081600101915061701b565b898281518110616fc757fe5b6020026020010151600001516001600160a01b03168c8481518110616fe857fe5b6020026020010151600001516001600160a01b0316101561700f578b8381518110616ebd57fe5b898281518110616da857fe5b600101616d74565b50929a91995090975050505050505050565b805182516000916001600160a01b03918216911614801561706f575081602001516001600160a01b031683602001516001600160a01b0316145b80156111605750506040908101519101516001600160a01b0390811691161490565b601254601354808211156170dc57805b828110156170da5760128054806170b457fe5b6001900381819060005260206000200160006170d09190617b2f565b90556001016170a1565b505b60008183106170eb57816170ed565b825b905060005b81811015617205576171aa6012828154811061710a57fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156171985780601f1061716d57610100808354040283529160200191617198565b820191906000526020600020905b81548152906001019060200180831161717b57829003601f168201915b50505050506013838154811061341a57fe5b6171fd57601381815481106171bb57fe5b90600052602060002001601282815481106171d257fe5b9060005260206000200190805460018160011615610100020316600290046171fb929190617b93565b505b6001016170f2565b5082821115610e3457825b828110156172735760126013828154811061722757fe5b600091825260208083208454600181810187559585529190932092909101805461726a949390920192909160026101009282161592909202600019011604617b93565b50600101617210565b50505050565b601354600b54808211156172c457805b828110156172c257601380548061729c57fe5b6001900381819060005260206000200160006172b89190617b2f565b9055600101617289565b505b60008183106172d357816172d5565b825b905060005b818110156173f457617392601382815481106172f257fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156173805780601f1061735557610100808354040283529160200191617380565b820191906000526020600020905b81548152906001019060200180831161736357829003601f168201915b5050505050600b8381548110615ee057fe5b6173ec57600b81815481106173a357fe5b9060005260206000209060160201600201601382815481106173c157fe5b9060005260206000200190805460018160011615610100020316600290046173ea929190617b93565b505b6001016172da565b5082821115610e3457825b82811015617273576013600b828154811061741657fe5b60009182526020808320845460018082018755958552919093206016929092029092016002908101805461745e95939094019390926000199082161561010002011604617b93565b506001016173ff565b6000818484111561748b5760405162461bcd60e51b8152600401610e1291906183b6565b505050900390565b600081836174b45760405162461bcd60e51b8152600401610e1291906183b6565b5060008385816174c057fe5b0495945050505050565b80516000906174db57506000611d17565b6020820151805160001a9060c08210156174fa57600092505050611d17565b5060019392505050565b8051600090811a608081101561751e576000915050611d17565b60b8811080617539575060c08110801590617539575060f881105b15617548576001915050611d17565b60c081101561755c5760b519019050611d17565b60f519019050611d17565b80516000908190811a60808110156175825760019150617641565b60b881101561759757607e1981019150617641565b60c08110156175e857600060b78203600186019550806020036101000a8651049150600181018201935050808310156175e25760405162461bcd60e51b8152600401610e1290618967565b50617641565b60f88110156175fd5760be1981019150617641565b600060f78203600186019550806020036101000a86510491506001810182019350508083101561763f5760405162461bcd60e51b8152600401610e1290618967565b505b5092915050565b805160009061765957506000611d17565b6000809050600061766d8460200151617504565b602085015185519181019250015b8082101561769b5761768c82617567565b8201915082600101925061767b565b50909392505050565b80516000906015146176b557600080fd5b611dc782616961565b80516060906176cc57600080fd5b60006176db8360200151617504565b83516040805191839003808352601f19601f8201168301602001909152919250606090828015617712576020820181803683370190505b50905060008160200190506163ca8487602001510182856179b5565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff19841661777257506018617796565b6fffffffffffffffffffffffffffffffff19841661779257506010617796565b5060005b60208110156177cc578181815181106177ab57fe5b01602001516001600160f81b031916156177c4576177cc565b600101617796565b60008160200390506060816040519080825280601f01601f191660200182016040528015617801576020820181803683370190505b5080830196909652508452509192915050565b6060815160011480156178465750607f60f81b8260008151811061783457fe5b01602001516001600160f81b03191611155b15617852575080611d17565b611dc76178648351608060ff166178e3565b835b6060806040519050835180825260208201818101602087015b8183101561789757805183526020928301920161787f565b50855184518101855292509050808201602086015b818310156178c45780518352602092830192016178ac565b508651929092011591909101601f01601f191660405250905092915050565b606068010000000000000000831061790d5760405162461bcd60e51b8152600401610e12906187b2565b604080516001808252818301909252606091602082018180368337019050509050603784116179675782840160f81b8160008151811061794957fe5b60200101906001600160f81b031916908160001a9053509050611dc7565b60606179728561772e565b90508381510160370160f81b8260008151811061798b57fe5b60200101906001600160f81b031916908160001a9053506179ac8282617866565b95945050505050565b806179bf57610e34565b5b602081106179df578251825260209283019290910190601f19016179c0565b915181516020939093036101000a6000190180199091169216919091179052565b60405180608001604052806000815260200160001515815260200160608152602001617a2a617c5b565b905290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10617a7057805160ff1916838001178555617a9d565b82800160010185558215617a9d579182015b82811115617a9d578251825591602001919060010190617a82565b506131ea929150617c7a565b8260138101928215617a9d5791602002820182811115617a9d578251825591602001919060010190617a82565b6040518060600160405280600060ff16815260200160608152602001606081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b50805460018160011615610100020316600290046000825580601f10617b555750611f2f565b601f016020900490600052602060002090810190611f2f9190617c7a565b6040518060400160405280617b86617c41565b8152602001600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10617bcc5780548555617a9d565b82800160010185558215617a9d57600052602060002091601f016020900482015b82811115617a9d578254825591600101919060010190617bed565b8260138101928215617a9d5791820182811115617a9d578254825591600101919060010190617bed565b50611f2f906013810190617c7a565b604051806040016040528060008152602001600081525090565b6040518061026001604052806013906020820280368337509192915050565b61318e91905b808211156131ea5760008155600101617c80565b8035611dc781618fe7565b60008083601f840112617cb0578182fd5b5081356001600160401b03811115617cc6578182fd5b6020830191508360208083028501011115615a0857600080fd5b6000601f8381840112617cf1578182fd5b8235617d04617cff82618f9c565b618f76565b818152925060208084019085810160005b84811015617d96578135880189603f820112617d3057600080fd5b838101356001600160401b03811115617d4857600080fd5b617d59818901601f19168601618f76565b81815260408c81848601011115617d6f57600080fd5b82818501888401375060009181018601919091528552509282019290820190600101617d15565b50505050505092915050565b600082601f830112617db2578081fd5b8135617dc0617cff82618f9c565b818152915060208083019084810181840286018201871015617de157600080fd5b6000805b85811015617d965782356001600160401b0381168114617e03578283fd5b85529383019391830191600101617de5565b60008083601f840112617e26578182fd5b5081356001600160401b03811115617e3c578182fd5b602083019150836020828501011115615a0857600080fd5b600060208284031215617e65578081fd5b813561116081618fe7565b600060208284031215617e81578081fd5b815161116081618fe7565b60008060008060408587031215617ea1578283fd5b84356001600160401b0380821115617eb7578485fd5b617ec388838901617c9f565b90965094506020870135915080821115617edb578384fd5b50617ee887828801617c9f565b95989497509550505050565b600080600060608486031215617f08578283fd5b83356001600160401b0380821115617f1e578485fd5b81860187601f820112617f2f578586fd5b80359250617f3f617cff84618f9c565b80848252602080830192508084018b828389028701011115617f5f57898afd5b8994505b86851015617f8957617f758c82617c94565b845260019490940193928101928101617f63565b509097508801359350505080821115617fa0578384fd5b617fac87838801617da2565b93506040860135915080821115617fc1578283fd5b50617fce86828701617ce0565b9150509250925092565b600060208284031215617fe9578081fd5b81518015158114611160578182fd5b6000806020838503121561800a578182fd5b82356001600160401b0381111561801f578283fd5b61802b85828601617e15565b90969095509350505050565b6000806000806040858703121561804c578384fd5b84356001600160401b0380821115618062578586fd5b61806e88838901617e15565b90965094506020870135915080821115618086578384fd5b50617ee887828801617e15565b6000602082840312156180a4578081fd5b5035919050565b6000602082840312156180bc578081fd5b5051919050565b600080604083850312156180d5578182fd5b505080516020909101519092909150565b6000806000604084860312156180fa578081fd5b833560ff8116811461810a578182fd5b925060208401356001600160401b03811115618124578182fd5b61813086828701617e15565b9497909650939450505050565b6000815180845260208085019450808401835b838110156181755781516001600160a01b031687529582019590820190600101618150565b509495945050505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b600081518084526181c2816020860160208601618fbb565b601f01601f19169290920160200192915050565b600082516181e8818460208701618fbb565b9190910192915050565b918252602082015260400190565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b03968716815294861660208601529290941660408401526001600160401b03166060830152911515608082015260a081019190915260c00190565b6001600160a01b0393909316835260208301919091521515604082015260600190565b6001600160a01b0392909216825260ff16602082015260400190565b600060208252611160602083018461813d565b6000604082526182d4604083018561813d565b602083820381850152818551808452828401915082838202850101838801865b8381101561832257601f198784030185526183108383516181aa565b948601949250908501906001016182f4565b50909998505050505050505050565b600060808252618344608083018761813d565b828103602084810191909152865180835287820192820190845b8181101561837a5784518352938301939183019160010161835e565b5050848103604086015261838e818861813d565b93505050506001600160401b038316606083015295945050505050565b901515815260200190565b60006020825261116060208301846181aa565b6000604082526183dd604083018688618180565b82810360208401526183f0818587618180565b979650505050505050565b6020808252601c908201527f6c656e677468206f66206275726e526174696f206d69736d6174636800000000604082015260600190565b60208082526042908201527f746865206275726e526174696f20706c75732073797374656d5265776172645260408201527f6174696f206d757374206265206e6f2067726561746572207468616e20313030606082015261030360f41b608082015260a00190565b60208082526026908201527f6c656e677468206f66206d61784e756d4f664d61696e7461696e696e67206d696040820152650e6dac2e8c6d60d31b606082015260800190565b6020808252601b908201527f6261746368207472616e736665722072657475726e2066616c73650000000000604082015260600190565b6020808252602c908201527f6c656e677468206f66206d61784e756d4f66576f726b696e6743616e6469646160408201526b0e8cae640dad2e6dac2e8c6d60a31b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61696e7461696e536c6173685363616c65206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252818101527f6c656e677468206f66206e756d4f66436162696e657473206d69736d61746368604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252601f908201527f6f6e6c7920736c617368206f72207374616b6548756220636f6e747261637400604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526028908201527f746865206e756d4f66436162696e657473206d75737420626520677265617465604082015267072207468616e20360c41b606082015260800190565b60208082526039908201527f746865206e756d4f66436162696e657473206d757374206265206c657373207460408201527f68616e204d41585f4e554d5f4f465f56414c494441544f525300000000000000606082015260800190565b60208082526029908201527f746865206e756d626572206f662076616c696461746f727320657863656564206040820152681d1a19481b1a5b5a5d60ba1b606082015260800190565b60208082526022908201527f63616e206e6f7420646f207468697320747769636520696e206f6e6520626c6f604082015261636b60f01b606082015260800190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526037908201527f746865206d61784e756d4f664d61696e7461696e696e67206d7573742062652060408201527f6c657373207468616e206e756d4f66436162696e657473000000000000000000606082015260800190565b6020808252602b908201527f6475706c696361746520636f6e73656e7375732061646472657373206f66207660408201526a185b1a59185d1bdc94d95d60aa1b606082015260800190565b60208082526027908201527f7468652065787069726554696d655365636f6e64476170206973206f7574206f604082015266662072616e676560c81b606082015260800190565b6020808252601590820152746465706f7369742076616c7565206973207a65726f60581b604082015260600190565b60208082526049908201527f746865206d61784e756d4f66576f726b696e6743616e64696461746573206d7560408201527f7374206265206e6f742067726561746572207468616e206d61784e756d4f6643606082015268616e6469646174657360b81b608082015260a00190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b60208082526023908201527f63616e206e6f7420656e7465722054656d706f72617279204d61696e74656e616040820152626e636560e81b606082015260800190565b60208082526025908201527f6c656e677468206f66206a61696c2076616c696461746f7273206d757374206260408201526465206f6e6560d81b606082015260800190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61784e756d4f6643616e64696461746573206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252601290820152716e6f7420696e206d61696e74656e616e636560701b604082015260600190565b60208082526021908201527f666565206973206c6172676572207468616e2044555354595f494e434f4d494e6040820152604760f81b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b60208082526042908201527f7468652073797374656d526577617264526174696f20706c7573206275726e5260408201527f6174696f206d757374206265206e6f2067726561746572207468616e20313030606082015261030360f41b608082015260a00190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526026908201527f6c656e677468206f662065787069726554696d655365636f6e64476170206d696040820152650e6dac2e8c6d60d31b606082015260800190565b60208082526017908201527f6f6e6c792063757272656e742076616c696461746f7273000000000000000000604082015260600190565b60208082526021908201527f6661696c656420746f20706172736520696e69742076616c696461746f7253656040820152601d60fa1b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b60208082526024908201527f6c656e677468206f662073797374656d526577617264526174696f206d69736d6040820152630c2e8c6d60e31b606082015260800190565b6020808252603e908201527f746865206d61696e7461696e536c6173685363616c65206d757374206265206760408201527f726561746572207468616e203020616e64206c657373207468616e2031300000606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b60208082526029908201527f746865206d6573736167652073656e646572206d75737420626520736c6173686040820152680818dbdb9d1c9858dd60ba1b606082015260800190565b6020808252601f908201527f746865206d73672073656e646572206d757374206265207374616b6548756200604082015260600190565b61ffff91909116815260200190565b90815260200190565b60008482528315156020830152606060408301526179ac60608301846181aa565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff85168252604060208301526179ac604083018486618180565b6040518181016001600160401b0381118282101715618f9457600080fd5b604052919050565b60006001600160401b03821115618fb1578081fd5b5060209081020190565b60005b83811015618fd6578181015183820152602001618fbe565b838111156172735750506000910152565b6001600160a01b0381168114611f2f57600080fdfef901a880f901a4f844941284214b9b9c85549ab3d2b972df0deef66ac2c9946ddf42a51534fc98d0c0a3b42c963cace8441ddf946ddf42a51534fc98d0c0a3b42c963cace8441ddf8410000000f84494a2959d3f95eae5dc7d70144ce1b73b403b7eb6e0948081ef03f1d9e0bb4a5bf38f16285c879299f07f948081ef03f1d9e0bb4a5bf38f16285c879299f07f8410000000f8449435552c16704d214347f29fa77f77da6d75d7c75294dc4973e838e3949c77aced16ac2315dc2d7ab11194dc4973e838e3949c77aced16ac2315dc2d7ab1118410000000f84494980a75ecd1309ea12fa2ed87a8744fbfc9b863d594cc6ac05c95a99c1f7b5f88de0e3486c82293b27094cc6ac05c95a99c1f7b5f88de0e3486c82293b2708410000000f84494f474cf03cceff28abc65c9cbae594f725c80e12d94e61a183325a18a173319dd8e19c8d069459e217594e61a183325a18a173319dd8e19c8d069459e21758410000000f84494b71b214cb885500844365e95cd9942c7276e7fd894d22ca3ba2141d23adab65ce4940eb7665ea2b6a794d22ca3ba2141d23adab65ce4940eb7665ea2b6a7841000000070e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb20175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbb0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbaa164736f6c6343000604000a", - }, - { - ContractAddr: SlashContract, - CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/b743ce3f1f1e94c349b175cd6593bc263463b33b", - Code: "608060405234801561001057600080fd5b506004361061035d5760003560e01c80637942fd05116101d3578063c80d4b8f11610104578063df8079e9116100a2578063f9a2bbc71161007c578063f9a2bbc714610601578063fc3e590814610609578063fc4333cd14610611578063fd6a6879146106195761035d565b8063df8079e9146105e9578063e1c7392a146105f1578063f1fad104146105f95761035d565b8063c96be4cb116100de578063c96be4cb146105b3578063cc844b73146105c6578063dc927faf146105d9578063dcc6f156146105e15761035d565b8063c80d4b8f14610590578063c81b166214610598578063c8509d81146105a05761035d565b8063a1a11bf511610171578063aad560631161014b578063aad5606314610565578063ab51bb961461056d578063ac0af62914610575578063ac4317511461057d5761035d565b8063a1a11bf51461054d578063a78abc1614610555578063aa82dce11461055d5761035d565b8063831d65d1116101ad578063831d65d11461052257806396713da9146105355780639dc092621461053d5780639f804f5f146105455761035d565b80637942fd051461050a5780637e434d54146105125780638256ace61461051a5761035d565b806343756e5c116102ad5780635bfb49901161024b57806370fd5bad1161022557806370fd5bad146104ea578063718a8aa8146104f257806375d47a0a146104fa5780637912a65d146105025761035d565b80635bfb4990146104c757806362b72cf5146104da5780636e47b482146104e25761035d565b806350055f901161028757806350055f90146104a757806351b4dce3146104af57806351e80672146104b7578063567a372d146104bf5761035d565b806343756e5c14610482578063493279b11461048a5780634bf6c8821461049f5761035d565b8063280870281161031a57806335aa2e44116102f457806335aa2e441461043157806337c8dab914610444578063389f4f71146104655780633dffc3871461046d5761035d565b8063280870281461040157806328aa02b1146104095780633306ccca1461041c5761035d565b80630bee7a67146103625780630e2374a5146103805780631182b8751461039557806322d1e80b146103b557806323bac5a2146103ca57806327962118146103ec575b600080fd5b61036a610621565b6040516103779190613d96565b60405180910390f35b610388610626565b6040516103779190613574565b6103a86103a33660046134aa565b61062c565b60405161037791906135ac565b6103bd610692565b60405161037791906135a1565b6103dd6103d83660046131af565b61069b565b60405161037793929190613d7e565b6103ff6103fa366004613307565b6106be565b005b610388610a13565b6103ff6104173660046131e7565b610a19565b610424610a4a565b6040516103779190613d67565b61038861043f36600461347a565b610a50565b6104576104523660046131af565b610a77565b604051610377929190613d70565b610424610ace565b610475610ad4565b6040516103779190613da7565b610388610ad9565b610492610adf565b6040516103779190613d58565b610475610ae4565b610424610ae9565b610388610aef565b610388610af5565b610424610afb565b6103ff6104d53660046131af565b610b01565b610424610c0d565b610388610c13565b610475610c19565b610475610c1e565b610388610c23565b610424610c29565b610475610c2e565b610388610c33565b610457610c39565b6103ff6105303660046134aa565b610c43565b610475610d56565b610388610d5b565b610424610d61565b610388610d67565b6103bd610d6d565b610388610d76565b610388610d7c565b61036a610d82565b610424610d87565b6103ff61058b36600461335e565b610d8c565b610424611328565b61038861132d565b6103ff6105ae3660046134aa565b611333565b6103ff6105c13660046131af565b6113a4565b6103ff6105d43660046133c7565b611815565b610388611df4565b610424611dfa565b610388611dff565b6103ff611e05565b610475611e41565b610388611e46565b610475611e4c565b6103ff611e51565b61038861229a565b606481565b61200181565b606033612000146106585760405162461bcd60e51b815260040161064f90613bfb565b60405180910390fd5b60005460ff1661067a5760405162461bcd60e51b815260040161064f906136a1565b60405162461bcd60e51b815260040161064f90613cec565b60075460ff1681565b600260208190526000918252604090912080546001820154919092015460ff1683565b60005460ff166106e05760405162461bcd60e51b815260040161064f906136a1565b6006546106ed5760146006555b6008546106fb576170806008555b81511580159061070b5750805115155b6107275760405162461bcd60e51b815260040161064f90613b59565b60408051600380825260808201909252606091816020015b606081526020019060019003908161073f57905050905061076060616122a0565b8160008151811061076d57fe5b6020026020010181905250610781836122bb565b8160018151811061078e57fe5b60200260200101819052506107a2826122bb565b816002815181106107af57fe5b602002602001018190525060606107c582612311565b60408051603480825260608281019093529293509091602082018180368337019050509050815160346020830182602086016068600019fa61080657600080fd5b506014810151603482015160405163436aa28360e11b8152600090612002906386d5450690610839908690600401613574565b60206040518083038186803b15801561085157600080fd5b505afa158015610865573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088991906131cb565b6001600160a01b031614156108b05760405162461bcd60e51b815260040161064f90613671565b43600854820110156108d45760405162461bcd60e51b815260040161064f90613612565b604051631871f7d960e31b81526120029063c38fbec8906108f9908590600401613574565b600060405180830381600087803b15801561091357600080fd5b505af1158015610927573d6000803e3d6000fd5b50506040516335409f7f60e01b815261100092506335409f7f9150610950908590600401613574565b600060405180830381600087803b15801561096a57600080fd5b505af115801561097e573d6000803e3d6000fd5b50506006546040516309a99b4f60e41b815260646110028031909302049350909150639a99b4f0906109b69033908590600401613588565b602060405180830381600087803b1580156109d057600080fd5b505af11580156109e4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a089190613492565b505050505050505050565b61200581565b3361100014610a3a5760405162461bcd60e51b815260040161064f906138e4565b610a458383836123a2565b505050565b61708081565b60018181548110610a5d57fe5b6000918252602090912001546001600160a01b0316905081565b600080610a82612f96565b5050506001600160a01b0316600090815260026020818152604092839020835160608101855281548082526001830154938201849052919093015460ff16151592909301919091529091565b60055481565b600181565b61100181565b606181565b600881565b60065481565b61200681565b61200081565b60045481565b3361100014610b225760405162461bcd60e51b815260040161064f906138e4565b60005460ff16610b445760405162461bcd60e51b815260040161064f906136a1565b61200063f7a251d7600b610b5784612580565b60006040518463ffffffff1660e01b8152600401610b7793929190613db5565b600060405180830381600087803b158015610b9157600080fd5b505af1925050508015610ba2575060015b610c0a573d808015610bd0576040519150601f19603f3d011682016040523d82523d6000602084013e610bd5565b606091505b50816001600160a01b0316600080516020613ea0833981519152600083604051610c009291906135bf565b60405180910390a2505b50565b60035481565b61100581565b600281565b601081565b61100881565b603281565b600b81565b61200381565b6004546005549091565b3361200014610c645760405162461bcd60e51b815260040161064f90613bfb565b60005460ff16610c865760405162461bcd60e51b815260040161064f906136a1565b610c8e612fb9565b6000610ccf84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061264992505050565b915091508015610d165781516040517f7f0956d47419b9525356e7111652b653b530ec6f5096dccc04589bc38e62996791610d0991613d96565b60405180910390a1610d4f565b81516040517f7d45f62d17443dd4547bca8a8112c60e2385669318dc300ec61a5d2492f262e791610d4691613d96565b60405180910390a15b5050505050565b600981565b61100781565b60085481565b61100681565b60005460ff1681565b61200281565b61300081565b600081565b600481565b60005460ff16610dae5760405162461bcd60e51b815260040161064f906136a1565b3361100714610dcf5760405162461bcd60e51b815260040161064f90613a48565b610e3a84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260148152731b5a5cd9195b59585b9bdc951a1c995cda1bdb1960621b602082015291506126c99050565b15610ed55760208114610e5f5760405162461bcd60e51b815260040161064f90613870565b604080516020601f8401819004810282018101909252828152600091610e9d9185858083850183828082843760009201919091525061272392505050565b905060018110158015610eb1575060055481105b610ecd5760405162461bcd60e51b815260040161064f90613bb6565b6004556112e5565b610f3b84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e19995b1bdb9e551a1c995cda1bdb19608a1b602082015291506126c99050565b15610fd75760208114610f605760405162461bcd60e51b815260040161064f90613a96565b604080516020601f8401819004810282018101909252828152600091610f9e9185858083850183828082843760009201919091525061272392505050565b90506103e88111158015610fb3575060045481115b610fcf5760405162461bcd60e51b815260040161064f9061375a565b6005556112e5565b61104484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601681527566656c6f6e79536c617368526577617264526174696f60501b602082015291506126c99050565b156110de57602081146110695760405162461bcd60e51b815260040161064f906139d0565b604080516020601f84018190048102820181019092528281526000916110a79185858083850183828082843760009201919091525061272392505050565b9050600a81101580156110ba5750606481105b6110d65760405162461bcd60e51b815260040161064f90613ad8565b6006556112e5565b61115284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f656e61626c654d616c6963696f7573566f7465536c6173680000000000000000602082015291506126c99050565b156111c957602081146111775760405162461bcd60e51b815260040161064f9061378f565b604080516020601f84018190048102820181019092528281526111b3919084848083850183828082843760009201919091525061272892505050565b6007805460ff19169115159190911790556112e5565b61123084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601081526f66656c6f6e79536c61736853636f706560801b602082015291506126c99050565b156112cd57602081146112555760405162461bcd60e51b815260040161064f9061395f565b604080516020601f84018190048102820181019092528281526000916112939185858083850183828082843760009201919091525061272392505050565b905061708081101580156112a95750620d2f0081105b6112c55760405162461bcd60e51b815260040161064f906136d8565b6008556112e5565b60405162461bcd60e51b815260040161064f90613c97565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a8484848460405161131a94939291906135e0565b60405180910390a150505050565b609681565b61100281565b33612000146113545760405162461bcd60e51b815260040161064f90613bfb565b60005460ff166113765760405162461bcd60e51b815260040161064f906136a1565b6040517f07db600eebe2ac176be8dcebad61858c245a4961bb32ca2aa3d159b09aa0810e90600090a1505050565b3341146113c35760405162461bcd60e51b815260040161064f90613c4a565b60005460ff166113e55760405162461bcd60e51b815260040161064f906136a1565b60035443116114065760405162461bcd60e51b815260040161064f90613d23565b3a156114245760405162461bcd60e51b815260040161064f906139a2565b60405163155853f360e21b8152611000906355614fcc90611449908490600401613574565b60206040518083038186803b15801561146157600080fd5b505afa158015611475573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149991906132eb565b6114a25761180e565b6114aa612f96565b506001600160a01b0381166000908152600260208181526040928390208351606081018552815481526001820154928101929092529091015460ff16158015928201929092529061150557602081018051600101905261155e565b60016040820181905260208201819052805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0384161790555b43815260055460208201518161157057fe5b0661173c57600060208201526040516335409f7f60e01b8152611000906335409f7f906115a1908590600401613574565b600060405180830381600087803b1580156115bb57600080fd5b505af11580156115cf573d6000803e3d6000fd5b505060405163436aa28360e11b81526000925061200291506386d54506906115fb908690600401613574565b60206040518083038186803b15801561161357600080fd5b505afa158015611627573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061164b91906131cb565b6001600160a01b03161461166e5761166982826020015160006123a2565b611737565b61200063f7a251d7600b61168185612580565b60006040518463ffffffff1660e01b81526004016116a193929190613db5565b600060405180830381600087803b1580156116bb57600080fd5b505af19250505080156116cc575060015b611737573d8080156116fa576040519150601f19603f3d011682016040523d82523d6000602084013e6116ff565b606091505b50826001600160a01b0316600080516020613ea083398151915283602001518360405161172d9291906135bf565b60405180910390a2505b6117a8565b60045481602001518161174b57fe5b066117a8576040516375abf10160e11b81526110009063eb57e20290611775908590600401613574565b600060405180830381600087803b15801561178f57600080fd5b505af11580156117a3573d6000803e3d6000fd5b505050505b6001600160a01b0382166000818152600260208181526040808420865181559186015160018301558581015191909201805460ff1916911515919091179055517fddb6012116e51abf5436d956a4f0ebd927e92c576ff96d7918290c8782291e3e9190a2505b5043600355565b60005460ff166118375760405162461bcd60e51b815260040161064f906136a1565b60075460ff166118595760405162461bcd60e51b815260040161064f9061363c565b6006546118665760146006555b600854611874576170806008555b60085481516040015143910111801561189857504360085482602001516040015101115b6118b45760405162461bcd60e51b815260040161064f90613cbe565b8060200151602001518160000151602001511480156118e25750806020015160600151816000015160600151145b156118ff5760405162461bcd60e51b815260040161064f906138b7565b80516040810151905110801561191e5750602081015160408101519051105b61193a5760405162461bcd60e51b815260040161064f90613839565b60208101515181515110801561195f5750806000015160400151816020015160400151105b8061198a575080515160208201515110801561198a5750806020015160400151816000015160400151105b806119a45750806020015160400151816000015160400151145b6119c05760405162461bcd60e51b815260040161064f90613723565b604080820151905163ea321e4960e01b81526110009163ea321e49916119e991906004016135ac565b60206040518083038186803b158015611a0157600080fd5b505afa158015611a15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3991906132eb565b611a555760405162461bcd60e51b815260040161064f90613a19565b611a6781600001518260400151612750565b8015611a805750611a8081602001518260400151612750565b611a9c5760405162461bcd60e51b815260040161064f906137da565b6060806110006001600160a01b0316633b071dcc6040518163ffffffff1660e01b815260040160006040518083038186803b158015611ada57600080fd5b505afa158015611aee573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611b169190810190613228565b9150915060005b8151811015611c5357611b47828281518110611b3557fe5b60200260200101518560400151612928565b15611c4b576006546040516309a99b4f60e41b815260646110028031909302049190639a99b4f090611b7f9033908590600401613588565b602060405180830381600087803b158015611b9957600080fd5b505af1158015611bad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bd19190613492565b506110006001600160a01b03166335409f7f858481518110611bef57fe5b60200260200101516040518263ffffffff1660e01b8152600401611c139190613574565b600060405180830381600087803b158015611c2d57600080fd5b505af1158015611c41573d6000803e3d6000fd5b5050505050611c53565b600101611b1d565b5060408084015190516317b4f35360e01b8152600091612002916317b4f35391611c7f916004016135ac565b60206040518083038186803b158015611c9757600080fd5b505afa158015611cab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ccf91906131cb565b6001600160a01b031614611d3d576040808401519051630e9fbf5160e01b815261200291630e9fbf5191611d0691906004016135ac565b600060405180830381600087803b158015611d2057600080fd5b505af1158015611d34573d6000803e3d6000fd5b50505050610a45565b6120006001600160a01b031663f7a251d7600b611d5d866040015161298c565b60006040518463ffffffff1660e01b8152600401611d7d93929190613db5565b600060405180830381600087803b158015611d9757600080fd5b505af1158015611dab573d6000803e3d6000fd5b505050506000611dc0846040015160006129c7565b60405190915081907f7b78aadacff901d8b63d0dba4f86283d4db8aef27f9ed70413dd860f1c9532b690600090a250505050565b61100381565b601481565b61200481565b60005460ff1615611e285760405162461bcd60e51b815260040161064f90613b22565b603260045560966005556000805460ff19166001179055565b601181565b61100081565b600381565b3361100014611e725760405162461bcd60e51b815260040161064f906138e4565b60005460ff16611e945760405162461bcd60e51b815260040161064f906136a1565b600154611ea057612298565b600154600090600019015b80821161226c576000805b82841015611fcf57611ec6612f96565b6002600060018781548110611ed757fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff161515908201526005549091506004900481602001511115611fb957600460055481611f4457fe5b04816020015103816020018181525050806002600060018881548110611f6657fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208351815591830151600183015591909101516002909101805460ff1916911515919091179055611fc3565b6001925050611fcf565b50836001019350611eb6565b82841161216657611fde612f96565b6002600060018681548110611fef57fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff1615159082015260055490915060049004816020015111156120d75760046005548161205c57fe5b0481602001510381602001818152505080600260006001878154811061207e57fe5b6000918252602080832091909101546001600160a01b03168352828101939093526040918201902083518155918301516001808401919091559201516002909101805460ff191691151591909117905591506121669050565b60026000600186815481106120e857fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff1916905580548061212c57fe5b600082815260209020810160001990810180546001600160a01b0319169055019055836121595750612166565b5060001990920191611fcf565b8180156121705750805b1561224f57600260006001868154811061218657fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff191690558054849081106121cd57fe5b600091825260209091200154600180546001600160a01b0390921691869081106121f357fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600180548061222c57fe5b600082815260209020810160001990810180546001600160a01b03191690550190555b8261225b57505061226c565b505060019091019060001901611eab565b6040517fcfdb3b6ccaeccbdc68be3c59c840e3b3c90f0a7c491f5fff1cf56cfda200dd9c90600090a150505b565b61100481565b60606122b36122ae836129e3565b6122bb565b90505b919050565b6060815160011480156122ed5750607f60f81b826000815181106122db57fe5b01602001516001600160f81b03191611155b156122f95750806122b6565b6122b361230b8351608060ff16612ac9565b83612b9b565b606081516000141561233257506040805160008152602081019091526122b6565b60608260008151811061234157fe5b602002602001015190506000600190505b8351811015612382576123788285838151811061236b57fe5b6020026020010151612b9b565b9150600101612352565b5061239b612395825160c060ff16612ac9565b82612b9b565b9392505050565b80156123cd576040516375cc7d8960e01b8152612002906375cc7d8990611d06908690600401613574565b6040516375cc7d8960e01b8152612002906375cc7d89906123f2908690600401613574565b600060405180830381600087803b15801561240c57600080fd5b505af192505050801561241d575060015b610a45576040516000815260443d1015612439575060006124d6565b60046000803e60005160e01c6308c379a0811461245a5760009150506124d6565b60043d036004833e81513d602482011167ffffffffffffffff82111715612486576000925050506124d6565b808301805167ffffffffffffffff8111156124a85760009450505050506124d6565b8060208301013d86018111156124c6576000955050505050506124d6565b601f01601f191660405250925050505b806124e15750612518565b836001600160a01b0316600080516020613ea0833981519152848360405161250a9291906135bf565b60405180910390a25061257b565b3d808015612542576040519150601f19603f3d011682016040523d82523d6000602084013e612547565b606091505b50836001600160a01b0316600080516020613ea083398151915284836040516125719291906135bf565b60405180910390a2505b610a45565b60408051600480825260a08201909252606091829190816020015b606081526020019060019003908161259b5790505090506125c4836001600160a01b0316612c18565b816000815181106125d157fe5b60200260200101819052506125e5436122a0565b816001815181106125f257fe5b602090810291909101015261260760616122a0565b8160028151811061261457fe5b6020026020010181905250612628426122a0565b8160038151811061263557fe5b602002602001018190525061239b81612311565b612651612fb9565b600061265b612fb9565b612663612fcb565b61267461266f86612c3b565b612c60565b90506000805b61268383612caa565b156126bc57806126af5761269e61269984612ccb565b612d19565b63ffffffff168452600191506126b4565b6126bc565b60010161267a565b5091935090915050915091565b6000816040516020016126dc9190613558565b60405160208183030381529060405280519060200120836040516020016127039190613558565b604051602081830303815290604052805190602001201490505b92915050565b015190565b8082015160009060ff811615612742576001915081612748565b60009150815b505092915050565b60408051600480825260a0820190925260009160609190816020015b606081526020019060019003908161276c5750506040805160208082528183019092529192506060919080820181803683370190505090506127b185600001516122a0565b826000815181106127be57fe5b60200260200101819052506127d96020866020015183612d9b565b6127e2816122bb565b826001815181106127ef57fe5b602002602001018190525061280785604001516122a0565b8260028151811061281457fe5b602002602001018190525061282f6020866060015183612d9b565b612838816122bb565b8260038151811061284557fe5b602002602001018190525061286b602061285e84612311565b8051906020012083612d9b565b6040805160b080825260e0820190925260609160208201818036833701905050905061289b818360006020612dab565b6128ad81876080015160206060612dab565b6128bb818660806030612dab565b604080516001808252818301909252606091602082018180368337019050509050815160016020830182602086016066600019fa6128f857600080fd5b506001612906826000612dfe565b60ff161461291b57600094505050505061271d565b5060019695505050505050565b8151815160009160019181148083146129445760009250612982565b600160208701838101602088015b60028483851001141561297d5780518351146129715760009650600093505b60209283019201612952565b505050505b5090949350505050565b60408051600480825260a08201909252606091829190816020015b60608152602001906001900390816129a75790505090506125c4836122bb565b600081602001835110156129da57600080fd5b50016020015190565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416612a2757506018612a4b565b6fffffffffffffffffffffffffffffffff198416612a4757506010612a4b565b5060005b6020811015612a8157818181518110612a6057fe5b01602001516001600160f81b03191615612a7957612a81565b600101612a4b565b60008160200390506060816040519080825280601f01601f191660200182016040528015612ab6576020820181803683370190505b5080830196909652508452509192915050565b6060680100000000000000008310612af35760405162461bcd60e51b815260040161064f90613811565b60408051600180825281830190925260609160208201818036833701905050905060378411612b4d5782840160f81b81600081518110612b2f57fe5b60200101906001600160f81b031916908160001a905350905061271d565b6060612b58856129e3565b90508381510160370160f81b82600081518110612b7157fe5b60200101906001600160f81b031916908160001a905350612b928282612b9b565b95945050505050565b6060806040519050835180825260208201818101602087015b81831015612bcc578051835260209283019201612bb4565b50855184518101855292509050808201602086015b81831015612bf9578051835260209283019201612be1565b508651929092011591909101601f01601f191660405250905092915050565b60408051600560a21b831860148201526034810190915260609061239b816122bb565b612c43612feb565b506040805180820190915281518152602082810190820152919050565b612c68612fcb565b612c7182612e1a565b612c7a57600080fd5b6000612c898360200151612e54565b60208085015160408051808201909152868152920190820152915050919050565b6000612cb4612feb565b505080518051602091820151919092015191011190565b612cd3612feb565b612cdc82612caa565b612ce557600080fd5b60208201516000612cf582612eb7565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590612d2e57508151602110155b612d3757600080fd5b6000612d468360200151612e54565b90508083600001511015612d6c5760405162461bcd60e51b815260040161064f90613b7f565b825160208085015183018051928490039291831015612d9257826020036101000a820491505b50949350505050565b9091018181526020918201910152565b60005b81811015610d4f57838181518110612dc257fe5b602001015160f81c60f81b858480600101955081518110612ddf57fe5b60200101906001600160f81b031916908160001a905350600101612dae565b60008160010183511015612e1157600080fd5b50016001015190565b8051600090612e2b575060006122b6565b6020820151805160001a9060c0821015612e4a576000925050506122b6565b5060019392505050565b8051600090811a6080811015612e6e5760009150506122b6565b60b8811080612e89575060c08110801590612e89575060f881105b15612e985760019150506122b6565b60c0811015612eac5760b5190190506122b6565b60f5190190506122b6565b80516000908190811a6080811015612ed25760019150612f8f565b60b8811015612ee757607e1981019150612f8f565b60c0811015612f3857600060b78203600186019550806020036101000a865104915060018101820193505080831015612f325760405162461bcd60e51b815260040161064f90613934565b50612f8f565b60f8811015612f4d5760be1981019150612f8f565b600060f78203600186019550806020036101000a8651049150600181018201935050808310156127485760405162461bcd60e51b815260040161064f90613934565b5092915050565b604051806060016040528060008152602001600081526020016000151581525090565b60408051602081019091526000815290565b6040518060400160405280612fde612feb565b8152602001600081525090565b604051806040016040528060008152602001600081525090565b600082601f830112613015578081fd5b815161302861302382613e08565b613de1565b818152915060208083019084810160005b8481101561309e578151870188603f82011261305457600080fd5b8381015161306461302382613e28565b81815260408b8184860101111561307a57600080fd5b61308983888401838701613e4c565b50865250509282019290820190600101613039565b505050505092915050565b60008083601f8401126130ba578182fd5b50813567ffffffffffffffff8111156130d1578182fd5b6020830191508360208285010111156130e957600080fd5b9250929050565b600082601f830112613100578081fd5b813561310e61302382613e28565b915080825283602082850101111561312557600080fd5b8060208401602084013760009082016020015292915050565b600060a0828403121561314f578081fd5b61315960a0613de1565b905081358152602082013560208201526040820135604082015260608201356060820152608082013567ffffffffffffffff81111561319757600080fd5b6131a3848285016130f0565b60808301525092915050565b6000602082840312156131c0578081fd5b813561239b81613e7c565b6000602082840312156131dc578081fd5b815161239b81613e7c565b6000806000606084860312156131fb578182fd5b833561320681613e7c565b925060208401359150604084013561321d81613e91565b809150509250925092565b6000806040838503121561323a578182fd5b825167ffffffffffffffff80821115613251578384fd5b81850186601f820112613262578485fd5b8051925061327261302384613e08565b80848252602080830192508084018a828389028701011115613292578889fd5b8894505b868510156132bd5780516132a981613e7c565b845260019490940193928101928101613296565b5088015190965093505050808211156132d4578283fd5b506132e185828601613005565b9150509250929050565b6000602082840312156132fc578081fd5b815161239b81613e91565b60008060408385031215613319578182fd5b823567ffffffffffffffff80821115613330578384fd5b61333c868387016130f0565b93506020850135915080821115613351578283fd5b506132e1858286016130f0565b60008060008060408587031215613373578182fd5b843567ffffffffffffffff8082111561338a578384fd5b613396888389016130a9565b909650945060208701359150808211156133ae578384fd5b506133bb878288016130a9565b95989497509550505050565b6000602082840312156133d8578081fd5b813567ffffffffffffffff808211156133ef578283fd5b81840160608187031215613401578384fd5b61340b6060613de1565b925080358281111561341b578485fd5b6134278782840161313e565b84525060208101358281111561343b578485fd5b6134478782840161313e565b60208501525060408101358281111561345e578485fd5b61346a878284016130f0565b6040850152509195945050505050565b60006020828403121561348b578081fd5b5035919050565b6000602082840312156134a3578081fd5b5051919050565b6000806000604084860312156134be578081fd5b833560ff811681146134ce578182fd5b9250602084013567ffffffffffffffff8111156134e9578182fd5b6134f5868287016130a9565b9497909650939450505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008151808452613544816020860160208601613e4c565b601f01601f19169290920160200192915050565b6000825161356a818460208701613e4c565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b60006020825261239b602083018461352c565b6000838252604060208301526135d8604083018461352c565b949350505050565b6000604082526135f4604083018688613502565b8281036020840152613607818587613502565b979650505050505050565b60208082526010908201526f195d9a59195b98d9481d1bdbc81bdb1960821b604082015260600190565b6020808252818101527f6d616c6963696f757320766f746520736c617368206e6f7420656e61626c6564604082015260600190565b6020808252601690820152751d985b1a59185d1bdc881b9bdd081b5a59dc985d195960521b604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252602b908201527f746865206d616c6963696f757320766f746520736c6173682073636f7065206f60408201526a7574206f662072616e676560a81b606082015260800190565b6020808252601a908201527f6e6f2076696f6c6174696f6e206f6620766f74652072756c6573000000000000604082015260600190565b6020808252818101527f7468652066656c6f6e795468726573686f6c64206f7574206f662072616e6765604082015260600190565b6020808252602b908201527f6c656e677468206f6620656e61626c654d616c6963696f7573566f7465536c6160408201526a0e6d040dad2e6dac2e8c6d60ab1b606082015260800190565b60208082526017908201527f766572696679207369676e6174757265206661696c6564000000000000000000604082015260600190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526019908201527f7372634e756d20626967676572207468616e207461724e756d00000000000000604082015260600190565b60208082526027908201527f6c656e677468206f66206d697364656d65616e6f725468726573686f6c64206d6040820152660d2e6dac2e8c6d60cb1b606082015260800190565b60208082526013908201527274776f206964656e746963616c20766f74657360681b604082015260600190565b60208082526030908201527f746865206d6573736167652073656e646572206d7573742062652076616c696460408201526f185d1bdc94d95d0818dbdb9d1c9858dd60821b606082015260800190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b60208082526023908201527f6c656e677468206f662066656c6f6e79536c61736853636f7065206d69736d616040820152620e8c6d60eb1b606082015260800190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b60208082526029908201527f6c656e677468206f662066656c6f6e79536c617368526577617264526174696f604082015268040dad2e6dac2e8c6d60bb1b606082015260800190565b6020808252601590820152741d9bdd195059191c881a5cc81b9bdd08199bdd5b99605a1b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526022908201527f6c656e677468206f662066656c6f6e795468726573686f6c64206d69736d61746040820152610c6d60f31b606082015260800190565b6020808252602a908201527f7468652066656c6f6e7920736c6173682072657761726420726174696f206f7560408201526974206f662072616e676560b01b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b6020808252600c908201526b32b6b83a3c903432b0b232b960a11b604082015260600190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526025908201527f746865206d697364656d65616e6f725468726573686f6c64206f7574206f662060408201526472616e676560d81b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b6020808252601490820152731d185c99d95d08189b1bd8dac81d1bdbc81bdb1960621b604082015260600190565b6020808252601e908201527f7265636569766520756e65787065637465642073796e207061636b6167650000604082015260600190565b6020808252818101527f63616e206e6f7420736c61736820747769636520696e206f6e6520626c6f636b604082015260600190565b61ffff91909116815260200190565b90815260200190565b918252602082015260400190565b92835260208301919091521515604082015260600190565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff8516825260606020830152613dd1606083018561352c565b9050826040830152949350505050565b60405181810167ffffffffffffffff81118282101715613e0057600080fd5b604052919050565b600067ffffffffffffffff821115613e1e578081fd5b5060209081020190565b600067ffffffffffffffff821115613e3e578081fd5b50601f01601f191660200190565b60005b83811015613e67578181015183820152602001613e4f565b83811115613e76576000848401525b50505050565b6001600160a01b0381168114610c0a57600080fd5b8015158114610c0a57600080fdfed7bc86ff5d08c8ab043edec743302aba2520e6635172a428bc956721db9e2d1ca164736f6c6343000604000a", - }, - }, - } - HaberFixUpgrade[networkname.RialtoChainName] = &Upgrade{ - UpgradeName: "haberFix", - Configs: []*UpgradeConfig{}, - } - - LatestUpgrade[networkname.DefaultChainName] = LatestUpgrade[networkname.RialtoChainName] - -} - -func UpgradeBuildInSystemContract(config *chain.Config, blockNumber *big.Int, lastBlockTime uint64, blockTime uint64, statedb *state.IntraBlockState, logger log.Logger) { - if config == nil || blockNumber == nil || statedb == nil { +func UpgradeBuildInSystemContract(config *chain.Config, blockNumber *big.Int, lastBlockTime uint64, blockTime uint64, state *state.IntraBlockState, logger log.Logger) { + if config == nil || blockNumber == nil || state == nil { return } - var network string - switch config.ChainName { - case networkname.BSCChainName: - network = networkname.BSCChainName - case networkname.ChapelChainName: - network = networkname.ChapelChainName - default: - network = networkname.DefaultChainName - } - - if config.IsOnRamanujan(blockNumber) { - applySystemContractUpgrade(RamanujanUpgrade[network], blockNumber, statedb, logger) - } - - if config.IsOnNiels(blockNumber) { - applySystemContractUpgrade(NielsUpgrade[network], blockNumber, statedb, logger) - } - - if config.IsOnMirrorSync(blockNumber) { - applySystemContractUpgrade(MirrorUpgrade[network], blockNumber, statedb, logger) - } - - if config.IsOnBruno(blockNumber) { - applySystemContractUpgrade(BrunoUpgrade[network], blockNumber, statedb, logger) - } - - if config.IsOnEuler(blockNumber) { - applySystemContractUpgrade(EulerUpgrade[network], blockNumber, statedb, logger) - } - - if config.IsOnMoran(blockNumber) { - applySystemContractUpgrade(MoranUpgrade[network], blockNumber, statedb, logger) - } - - if config.IsOnPlanck(blockNumber) { - applySystemContractUpgrade(PlanckUpgrade[network], blockNumber, statedb, logger) - } - - if config.IsOnGibbs(blockNumber) { - applySystemContractUpgrade(GibbsUpgrade[network], blockNumber, statedb, logger) - } - - if config.IsOnLuban(blockNumber) { - applySystemContractUpgrade(LubanUpgrade[network], blockNumber, statedb, logger) - } - - if config.IsOnPlato(blockNumber) { - applySystemContractUpgrade(PlatoUpgrade[network], blockNumber, statedb, logger) - } - - if config.IsOnKepler(blockNumber, lastBlockTime, blockTime) { - applySystemContractUpgrade(KeplerUpgrade[network], blockNumber, statedb, logger) - } - - if config.IsOnFeynman(blockNumber, lastBlockTime, blockTime) { - applySystemContractUpgrade(FeynmanUpgrade[network], blockNumber, statedb, logger) - } - - if config.IsOnFeynmanFix(blockNumber, lastBlockTime, blockTime) { - applySystemContractUpgrade(FeynmanFixUpgrade[network], blockNumber, statedb, logger) - } - if config.IsOnHaberFix(blockNumber, lastBlockTime, blockTime) { - applySystemContractUpgrade(HaberFixUpgrade[network], blockNumber, statedb, logger) - } - /* - apply other upgrades - */ -} - -func applySystemContractUpgrade(upgrade *Upgrade, blockNumber *big.Int, statedb *state.IntraBlockState, logger log.Logger) { - if upgrade == nil { - logger.Info("Empty upgrade config", "height", blockNumber.String()) + if config.Parlia == nil || config.Parlia.BlockAlloc == nil { return } - logger.Info(fmt.Sprintf("Apply upgrade %s at height %d", upgrade.UpgradeName, blockNumber.Int64())) - for _, cfg := range upgrade.Configs { - logger.Info(fmt.Sprintf("Upgrade contract %s to commit %s", cfg.ContractAddr.String(), cfg.CommitUrl)) - - if cfg.BeforeUpgrade != nil { - err := cfg.BeforeUpgrade(blockNumber, cfg.ContractAddr, statedb) - if err != nil { - panic(fmt.Errorf("contract address: %s, execute beforeUpgrade error: %s", cfg.ContractAddr.String(), err.Error())) - } - } - - newContractCode, err := hex.DecodeString(strings.TrimSpace(cfg.Code)) + for blockNumberOrTime, genesisAlloc := range config.Parlia.BlockAlloc { + numOrTime, err := strconv.ParseUint(blockNumberOrTime, 10, 64) if err != nil { - panic(fmt.Errorf("failed to decode new contract code: %s", err.Error())) + panic(fmt.Errorf("failed to parse block number in BlockAlloc: %s", err.Error())) } - - prevContractCode := statedb.GetCode(cfg.ContractAddr) - if len(prevContractCode) == 0 && len(newContractCode) > 0 { - // system contracts defined after genesis need to be explicitly created - statedb.CreateAccount(cfg.ContractAddr, true) - } - - statedb.SetCode(cfg.ContractAddr, newContractCode) - - if cfg.AfterUpgrade != nil { - err := cfg.AfterUpgrade(blockNumber, cfg.ContractAddr, statedb) + if numOrTime == blockNumber.Uint64() || (lastBlockTime < numOrTime && blockTime >= numOrTime) { + allocs, err := types.DecodeGenesisAlloc(genesisAlloc) if err != nil { - panic(fmt.Errorf("contract address: %s, execute afterUpgrade error: %s", cfg.ContractAddr.String(), err.Error())) + panic(fmt.Errorf("failed to decode genesis alloc: %v", err)) + } + for addr, account := range allocs { + logger.Debug("[parlia] upgrade System Contract code", "blockNumber", blockNumber, "blockTime", blockTime, "targetNumberOrTime", numOrTime, "address", addr) + state.SetCode(addr, account.Code) } } } diff --git a/erigon-lib/chain/chain_config.go b/erigon-lib/chain/chain_config.go index b81432ec6e1..234c6978bb1 100644 --- a/erigon-lib/chain/chain_config.go +++ b/erigon-lib/chain/chain_config.go @@ -703,10 +703,11 @@ func (c *CliqueConfig) String() string { } type ParliaConfig struct { - DBPath string - InMemory bool - Period uint64 `json:"period"` // Number of seconds between blocks to enforce - Epoch uint64 `json:"epoch"` // Epoch length to update validatorSet + DBPath string + InMemory bool + Period uint64 `json:"period"` // Number of seconds between blocks to enforce + Epoch uint64 `json:"epoch"` // Epoch length to update validatorSet + BlockAlloc map[string]interface{} `json:"blockAlloc"` // For systemContract upgrade } // String implements the stringer interface, returning the consensus engine details. diff --git a/params/chainspecs/bsc.json b/params/chainspecs/bsc.json index d96cbf5ba53..e5c111cc988 100644 --- a/params/chainspecs/bsc.json +++ b/params/chainspecs/bsc.json @@ -36,6 +36,182 @@ "DBPath": "", "InMemory": false, "period": 3, - "epoch": 200 + "epoch": 200, + "blockAlloc": { + "5184000": { + "0x0000000000000000000000000000000000001008": { + "balance": "0x0", + "code": "0x6080604052600436106103815760003560e01c80637d078e13116101d1578063b795031711610102578063d9e6dae9116100a0578063fa9e91591161006f578063fa9e915914610d38578063fc3e5908146105b2578063fd6a687914610d4d578063fe3a2af514610d6257610381565b8063d9e6dae9146106fc578063dc927faf14610cf9578063e605bca014610d0e578063f9a2bbc714610d2357610381565b8063c8509d81116100dc578063c8509d8114610bdf578063c8e704a4146105b2578063d117a11014610c64578063d7109ce614610ce457610381565b8063b79503171461073b578063bd32d3f9146104d9578063c81b166214610bca57610381565b80639a854bbd1161016f578063a78abc1611610149578063a78abc1614610ad5578063ab51bb9614610aea578063ab67a4851461073b578063ac43175114610aff57610381565b80639a854bbd14610a965780639dc0926214610aab578063a1a11bf514610ac057610381565b8063859180fb116101ab578063859180fb146106e757806394553a4e14610a3757806395b9ad2614610a6c57806396713da914610a8157610381565b80637d078e13146104ee5780637ec816dd1461099b578063831d65d1146109b057610381565b8063493279b1116102b657806366dea52a1161025457806372c4e0861161022357806372c4e0861461081957806375d47a0a146108bd57806377d9dae8146108d25780637942fd051461098657610381565b806366dea52a1461073b5780636b3f1307146107505780636e47b4821461080457806370fd5bad1461073b57610381565b806351e806721161029057806351e80672146107115780635d499b1b146107265780635f558f861461073b57806361368475146106fc57610381565b8063493279b1146106bb5780634bc81c00146106e75780634bf6c882146106fc57610381565b80632e02d77611610323578063401809f9116102fd578063401809f9146105b257806343756e5c146105c7578063445fcefe146105f8578063487c88ac146104ee57610381565b80632e02d7761461054c57806337e6ecda1461057f5780633dffc387146104ee57610381565b80631f91600b1161035f5780631f91600b146104d957806323996b53146104ee57806325c751b7146105035780632d89ac32146104ee57610381565b80630bee7a67146103865780630f212b1b146103b45780631182b875146103df575b600080fd5b34801561039257600080fd5b5061039b610d77565b6040805163ffffffff9092168252519081900360200190f35b3480156103c057600080fd5b506103c9610d7c565b6040805160ff9092168252519081900360200190f35b3480156103eb57600080fd5b506104646004803603604081101561040257600080fd5b60ff8235169190810190604081016020820135600160201b81111561042657600080fd5b82018360208201111561043857600080fd5b803590602001918460018302840111600160201b8311171561045957600080fd5b509092509050610d81565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561049e578181015183820152602001610486565b50505050905090810190601f1680156104cb5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156104e557600080fd5b506103c9610e9b565b3480156104fa57600080fd5b506103c9610ea0565b6105386004803603604081101561051957600080fd5b5080356001600160a01b031690602001356001600160401b0316610ea5565b604080519115158252519081900360200190f35b34801561055857600080fd5b506105386004803603602081101561056f57600080fd5b50356001600160a01b03166113f1565b34801561058b57600080fd5b50610538600480360360208110156105a257600080fd5b50356001600160a01b0316611406565b3480156105be57600080fd5b506103c961141b565b3480156105d357600080fd5b506105dc611420565b604080516001600160a01b039092168252519081900360200190f35b34801561060457600080fd5b506106a96004803603602081101561061b57600080fd5b810190602081018135600160201b81111561063557600080fd5b82018360208201111561064757600080fd5b803590602001918460018302840111600160201b8311171561066857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611426945050505050565b60408051918252519081900360200190f35b3480156106c757600080fd5b506106d0611584565b6040805161ffff9092168252519081900360200190f35b3480156106f357600080fd5b506103c9611589565b34801561070857600080fd5b506103c961158e565b34801561071d57600080fd5b506105dc611593565b34801561073257600080fd5b506106a9611599565b34801561074757600080fd5b506103c96115a2565b6105386004803603604081101561076657600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561079057600080fd5b8201836020820111156107a257600080fd5b803590602001918460018302840111600160201b831117156107c357600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506115a7945050505050565b34801561081057600080fd5b506105dc611e7d565b6105386004803603602081101561082f57600080fd5b810190602081018135600160201b81111561084957600080fd5b82018360208201111561085b57600080fd5b803590602001918460018302840111600160201b8311171561087c57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611e83945050505050565b3480156108c957600080fd5b506105dc6122cf565b610538600480360360408110156108e857600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561091257600080fd5b82018360208201111561092457600080fd5b803590602001918460018302840111600160201b8311171561094557600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506122d5945050505050565b34801561099257600080fd5b506103c96127db565b3480156109a757600080fd5b506106a96127e0565b3480156109bc57600080fd5b50610a35600480360360408110156109d357600080fd5b60ff8235169190810190604081016020820135600160201b8111156109f757600080fd5b820183602082011115610a0957600080fd5b803590602001918460018302840111600160201b83111715610a2a57600080fd5b5090925090506127e6565b005b61053860048036036040811015610a4d57600080fd5b5080356001600160a01b031690602001356001600160401b0316612935565b348015610a7857600080fd5b506103c961332c565b348015610a8d57600080fd5b506103c9613331565b348015610aa257600080fd5b506106a9613336565b348015610ab757600080fd5b506105dc613342565b348015610acc57600080fd5b506105dc613348565b348015610ae157600080fd5b5061053861334e565b348015610af657600080fd5b5061039b613357565b348015610b0b57600080fd5b50610a3560048036036040811015610b2257600080fd5b810190602081018135600160201b811115610b3c57600080fd5b820183602082011115610b4e57600080fd5b803590602001918460018302840111600160201b83111715610b6f57600080fd5b919390929091602081019035600160201b811115610b8c57600080fd5b820183602082011115610b9e57600080fd5b803590602001918460018302840111600160201b83111715610bbf57600080fd5b50909250905061335c565b348015610bd657600080fd5b506105dc613631565b348015610beb57600080fd5b50610a3560048036036040811015610c0257600080fd5b60ff8235169190810190604081016020820135600160201b811115610c2657600080fd5b820183602082011115610c3857600080fd5b803590602001918460018302840111600160201b83111715610c5957600080fd5b509092509050613637565b348015610c7057600080fd5b50610c8e60048036036020811015610c8757600080fd5b503561370d565b6040805160ff988916815260208101979097526001600160a01b03909516868601526060860193909352608085019190915290931660a08301526001600160401b0390921660c082015290519081900360e00190f35b348015610cf057600080fd5b506106a9613764565b348015610d0557600080fd5b506105dc613769565b348015610d1a57600080fd5b506106a961376f565b348015610d2f57600080fd5b506105dc613775565b348015610d4457600080fd5b506106a961377b565b348015610d5957600080fd5b506105dc613781565b348015610d6e57600080fd5b506103c9613357565b606481565b600681565b60603361200014610dc35760405162461bcd60e51b815260040180806020018281038252602f815260200180615b89602f913960400191505060405180910390fd5b60ff841660011415610e1557610e0e83838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061378792505050565b9050610e94565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605848484604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a1506040805160008152602081019091525b9392505050565b600481565b600181565b6040805163bd46646160e01b81526001600160a01b0384166004820152905160009182916110049163bd466461916024808301926020929190829003018186803b158015610ef257600080fd5b505afa158015610f06573d6000803e3d6000fd5b505050506040513d6020811015610f1c57600080fd5b5051905080610f5e576040805162461bcd60e51b81526020600482015260096024820152681b9bdd08189bdd5b9960ba1b604482015290519081900360640190fd5b6001600160a01b03841660009081526003602052604090205460ff16610fc1576040805162461bcd60e51b81526020600482015260136024820152723737ba103137bab73210313c9036b4b93937b960691b604482015290519081900360640190fd5b60006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b158015610ffe57600080fd5b505afa158015611012573d6000803e3d6000fd5b505050506040513d602081101561102857600080fd5b505190506402540be4003406158015611053575060055461104f908263ffffffff613a1716565b3410155b61108e5760405162461bcd60e51b8152600401808060200182810382526046815260200180615b156046913960600191505060405180910390fd5b42607801846001600160401b0316101580156110b85750426201518001846001600160401b031611155b6110f35760405162461bcd60e51b8152600401808060200182810382526038815260200180615a126038913960400191505060405180910390fd5b6000856001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561112e57600080fd5b505afa158015611142573d6000803e3d6000fd5b505050506040513d602081101561115857600080fd5b50516040805163313ce56760e01b815290519192506000916001600160a01b0389169163313ce567916004808301926020929190829003018186803b1580156111a057600080fd5b505afa1580156111b4573d6000803e3d6000fd5b505050506040513d60208110156111ca57600080fd5b50519050677ce66c50e28400006111e48360ff8416613a71565b1115611230576040805162461bcd60e51b8152602060048201526016602482015275746f6f206c6172676520746f74616c20737570706c7960501b604482015290519081900360640190fd5b600554611004906108fc9061124c90349063ffffffff613b0016565b6040518115909202916000818181858888f19350505050158015611274573d6000803e3d6000fd5b5061127d615869565b6040518060c00160405280336001600160a01b03168152602001896001600160a01b031681526020018681526020018481526020016112cc6402540be400600554613b4290919063ffffffff16565b81526001600160401b038916602090910152905061200063f7a251d760056112f384613b84565b61131d6402540be40061131160055434613b0090919063ffffffff16565b9063ffffffff613b4216565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561137b578181015183820152602001611363565b50505050905090810190601f1680156113a85780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156113c957600080fd5b505af11580156113dd573d6000803e3d6000fd5b505050506001955050505050505b92915050565b60036020526000908152604090205460ff1681565b60026020526000908152604090205460ff1681565b600381565b61100181565b602081015160009061143661589e565b50600081815260016020818152604092839020835160e081018552815460ff9081168252938201549281019290925260028101546001600160a01b031693820184905260038101546060830152600481015460808301526005015491821660a08201526101009091046001600160401b031660c0820152906114bd5760009250505061157f565b600081604001516001600160a01b03166370a082316110046040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561151b57600080fd5b505afa15801561152f573d6000803e3d6000fd5b505050506040513d602081101561154557600080fd5b5051608083015160608401519192506000916115669163ffffffff613b0016565b9050611578818363ffffffff613b0016565b9450505050505b919050565b603881565b600581565b600881565b61200081565b6402540be40081565b600281565b6001600160a01b03821660009081526002602052604081205460ff16156115ff5760405162461bcd60e51b815260040180806020018281038252602b815260200180615bb8602b913960400191505060405180910390fd5b600061160a83613cb9565b905061161461589e565b50600081815260016020818152604092839020835160e081018552815460ff90811682529382015492810183905260028201546001600160a01b03169481019490945260038101546060850152600481015460808501526005015491821660a08401526101009091046001600160401b031660c08301526116d9576040805162461bcd60e51b815260206004820152601a602482015279189a5b99081c995c5d595cdd08191bd95cdb89dd08195e1a5cdd60321b604482015290519081900360640190fd5b60006116f682608001518360600151613b0090919063ffffffff16565b905081604001516001600160a01b0316866001600160a01b03161461174c5760405162461bcd60e51b8152600401808060200182810382526045815260200180615a816045913960600191505060405180910390fd5b336001600160a01b0316866001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b15801561178f57600080fd5b505afa1580156117a3573d6000803e3d6000fd5b505050506040513d60208110156117b957600080fd5b50516001600160a01b0316146118005760405162461bcd60e51b815260040180806020018281038252602e8152602001806159e4602e913960400191505060405180910390fd5b604080516370a0823160e01b8152611004600482015290516000916001600160a01b038916916370a0823191602480820192602092909190829003018186803b15801561184c57600080fd5b505afa158015611860573d6000803e3d6000fd5b505050506040513d602081101561187657600080fd5b505160408051636eb1769f60e11b8152336004820152306024820152905191925083916119079184916001600160a01b038c169163dd62ed3e916044808301926020929190829003018186803b1580156118cf57600080fd5b505afa1580156118e3573d6000803e3d6000fd5b505050506040513d60208110156118f957600080fd5b50519063ffffffff613a1716565b101561195a576040805162461bcd60e51b815260206004820152601760248201527f616c6c6f77616e6365206973206e6f7420656e6f756768000000000000000000604482015290519081900360640190fd5b600034905060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b15801561199c57600080fd5b505afa1580156119b0573d6000803e3d6000fd5b505050506040513d60208110156119c657600080fd5b505190508082108015906119df57506402540be4008206155b611a1a5760405162461bcd60e51b8152600401808060200182810382526037815260200180615a4a6037913960400191505060405180910390fd5b6000611a26868b613cc0565b905063ffffffff8116611c25576001600160a01b038a166323b872dd33611004611a56898963ffffffff613b0016565b6040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b031681526020018281526020019350505050602060405180830381600087803b158015611abe57600080fd5b505af1158015611ad2573d6000803e3d6000fd5b505050506040513d6020811015611ae857600080fd5b5050602086015160408088015160a089015182516323bfccdb60e21b815260048101949094526001600160a01b03909116602484015260ff1660448301525161100491638eff336c91606480830192600092919082900301818387803b158015611b5157600080fd5b505af1158015611b65573d6000803e3d6000fd5b50505050896001600160a01b03167f78e7dd9aefcdbf795c4936a66f7dc6d41bb56637b54f561a6bf7829dca3348a88a8860600151886040518080602001848152602001838152602001828103825285818151815260200191508051906020019080838360005b83811015611be4578181015183820152602001611bcc565b50505050905090810190601f168015611c115780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a2611cdd565b896001600160a01b03167f831c0ef4d93bda3bce08b69ae3f29ef1a6e052b833200988554158494405a1078a8360405180806020018363ffffffff1663ffffffff168152602001828103825284818151815260200191508051906020019080838360005b83811015611ca1578181015183820152602001611c89565b50505050905090810190601f168015611cce5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a25b60008781526001602081905260408220805460ff191681559081018290556002810180546001600160a01b0319169055600381018290556004810191909155600501805468ffffffffffffffffff19169055611d376158da565b5060408051808201825263ffffffff831681526020810189905290516110049085156108fc029086906000818181858888f19350505050158015611d7f573d6000803e3d6000fd5b5061200063f7a251d76001611d938461411a565b611da8886402540be40063ffffffff613b4216565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611e06578181015183820152602001611dee565b50505050905090810190601f168015611e335780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015611e5457600080fd5b505af1158015611e68573d6000803e3d6000fd5b5060019e9d5050505050505050505050505050565b61100581565b600080611e8f83613cb9565b9050611e9961589e565b50600081815260016020818152604092839020835160e081018552815460ff90811682529382015492810183905260028201546001600160a01b03169481019490945260038101546060850152600481015460808501526005015491821660a08401526101009091046001600160401b031660c0830152611f5e576040805162461bcd60e51b815260206004820152601a602482015279189a5b99081c995c5d595cdd08191bd95cdb89dd08195e1a5cdd60321b604482015290519081900360640190fd5b428160c001516001600160401b031610611fbf576040805162461bcd60e51b815260206004820152601b60248201527f62696e642072657175657374206973206e6f7420657870697265640000000000604482015290519081900360640190fd5b600034905060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b15801561200157600080fd5b505afa158015612015573d6000803e3d6000fd5b505050506040513d602081101561202b57600080fd5b5051905080821080159061204457506402540be4008206155b61207f5760405162461bcd60e51b8152600401808060200182810382526037815260200180615a4a6037913960400191505060405180910390fd5b60008481526001602081905260408220805460ff191681559081018290556002810180546001600160a01b0319169055600381018290556004810191909155600501805468ffffffffffffffffff191690556120d96158da565b50604080518082018252600181526020810186905290516110049084156108fc029085906000818181858888f1935050505015801561211c573d6000803e3d6000fd5b5061200063f7a251d760016121308461411a565b612145876402540be40063ffffffff613b4216565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156121a357818101518382015260200161218b565b50505050905090810190601f1680156121d05780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156121f157600080fd5b505af1158015612205573d6000803e3d6000fd5b5050505083604001516001600160a01b03167f831c0ef4d93bda3bce08b69ae3f29ef1a6e052b833200988554158494405a10788600160405180806020018360ff1663ffffffff168152602001828103825284818151815260200191508051906020019080838360005b8381101561228757818101518382015260200161226f565b50505050905090810190601f1680156122b45780820380516001836020036101000a031916815260200191505b50935050505060405180910390a25060019695505050505050565b61100881565b6000806122e183613cb9565b90506122eb61589e565b50600081815260016020818152604092839020835160e081018552815460ff90811682529382015492810183905260028201546001600160a01b03169481019490945260038101546060850152600481015460808501526005015491821660a08401526101009091046001600160401b031660c08301526123b0576040805162461bcd60e51b815260206004820152601a602482015279189a5b99081c995c5d595cdd08191bd95cdb89dd08195e1a5cdd60321b604482015290519081900360640190fd5b80604001516001600160a01b0316856001600160a01b0316146124045760405162461bcd60e51b8152600401808060200182810382526045815260200180615a816045913960600191505060405180910390fd5b336001600160a01b0316856001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b15801561244757600080fd5b505afa15801561245b573d6000803e3d6000fd5b505050506040513d602081101561247157600080fd5b50516001600160a01b0316146124ce576040805162461bcd60e51b815260206004820152601b60248201527f6f6e6c79206265703230206f776e65722063616e2072656a6563740000000000604482015290519081900360640190fd5b600034905060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b15801561251057600080fd5b505afa158015612524573d6000803e3d6000fd5b505050506040513d602081101561253a57600080fd5b5051905080821080159061255357506402540be4008206155b61258e5760405162461bcd60e51b8152600401808060200182810382526037815260200180615a4a6037913960400191505060405180910390fd5b60008481526001602081905260408220805460ff191681559081018290556002810180546001600160a01b0319169055600381018290556004810191909155600501805468ffffffffffffffffff191690556125e86158da565b50604080518082018252600781526020810186905290516110049084156108fc029085906000818181858888f1935050505015801561262b573d6000803e3d6000fd5b5061200063f7a251d7600161263f8461411a565b612654876402540be40063ffffffff613b4216565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156126b257818101518382015260200161269a565b50505050905090810190601f1680156126df5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561270057600080fd5b505af1158015612714573d6000803e3d6000fd5b50505050876001600160a01b03167f831c0ef4d93bda3bce08b69ae3f29ef1a6e052b833200988554158494405a10788600760405180806020018360ff1663ffffffff168152602001828103825284818151815260200191508051906020019080838360005b8381101561279257818101518382015260200161277a565b50505050905090810190601f1680156127bf5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a2506001979650505050505050565b600b81565b60045481565b33612000146128265760405162461bcd60e51b815260040180806020018281038252602f815260200180615b89602f913960400191505060405180910390fd5b60ff8316600414156128765761287182828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061419092505050565b612930565b60ff8316600514156128c15761287182828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061443d92505050565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a15b505050565b6040805163bd46646160e01b81526001600160a01b0384166004820152905160009182916110049163bd466461916024808301926020929190829003018186803b15801561298257600080fd5b505afa158015612996573d6000803e3d6000fd5b505050506040513d60208110156129ac57600080fd5b5051146129f0576040805162461bcd60e51b815260206004820152600d60248201526c185b1c9958591e48189bdd5b99609a1b604482015290519081900360640190fd5b6001600160a01b03831660009081526002602052604090205460ff1615612a4f576040805162461bcd60e51b815260206004820152600e60248201526d6d6972726f722070656e64696e6760901b604482015290519081900360640190fd5b60006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b158015612a8c57600080fd5b505afa158015612aa0573d6000803e3d6000fd5b505050506040513d6020811015612ab657600080fd5b505190506402540be4003406158015612ae15750600454612add908263ffffffff613a1716565b3410155b612b1c5760405162461bcd60e51b815260040180806020018281038252604d815260200180615997604d913960600191505060405180910390fd5b42607801836001600160401b031610158015612b465750426201518001836001600160401b031611155b612b815760405162461bcd60e51b8152600401808060200182810382526038815260200180615a126038913960400191505060405180910390fd5b6000846001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015612bbc57600080fd5b505afa158015612bd0573d6000803e3d6000fd5b505050506040513d6020811015612be657600080fd5b5051604080516318160ddd60e01b815290519192506000916001600160a01b038816916318160ddd916004808301926020929190829003018186803b158015612c2e57600080fd5b505afa158015612c42573d6000803e3d6000fd5b505050506040513d6020811015612c5857600080fd5b50519050677ce66c50e2840000612c728260ff8516613a71565b1115612cbe576040805162461bcd60e51b8152602060048201526016602482015275746f6f206c6172676520746f74616c20737570706c7960501b604482015290519081900360640190fd5b6060866001600160a01b03166306fdde036040518163ffffffff1660e01b815260040160006040518083038186803b158015612cf957600080fd5b505afa158015612d0d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015612d3657600080fd5b8101908080516040519392919084600160201b821115612d5557600080fd5b908301906020820185811115612d6a57600080fd5b8251600160201b811182820188101715612d8357600080fd5b82525081516020918201929091019080838360005b83811015612db0578181015183820152602001612d98565b50505050905090810190601f168015612ddd5780820380516001836020036101000a031916815260200191505b50604052505050905060608190506001815110158015612dff57506020815111155b612e50576040805162461bcd60e51b815260206004820152601d60248201527f6e616d65206c656e677468206d75737420626520696e205b312c33325d000000604482015290519081900360640190fd5b6060886001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b158015612e8b57600080fd5b505afa158015612e9f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015612ec857600080fd5b8101908080516040519392919084600160201b821115612ee757600080fd5b908301906020820185811115612efc57600080fd5b8251600160201b811182820188101715612f1557600080fd5b82525081516020918201929091019080838360005b83811015612f42578181015183820152602001612f2a565b50505050905090810190601f168015612f6f5780820380516001836020036101000a031916815260200191505b5060405250508151919250829160021180159150612f8f57508051600810155b612fe0576040805162461bcd60e51b815260206004820152601e60248201527f73796d626f6c206c656e677468206d75737420626520696e205b322c385d0000604482015290519081900360640190fd5b60005b81518160ff16101561313457604160f81b828260ff168151811061300357fe5b01602001516001600160f81b031916108015906130415750602d60f91b828260ff168151811061302f57fe5b01602001516001600160f81b03191611155b806130995750606160f81b828260ff168151811061305b57fe5b01602001516001600160f81b031916108015906130995750603d60f91b828260ff168151811061308757fe5b01602001516001600160f81b03191611155b806130f15750600360fc1b828260ff16815181106130b357fe5b01602001516001600160f81b031916108015906130f15750603960f81b828260ff16815181106130df57fe5b01602001516001600160f81b03191611155b61312c5760405162461bcd60e51b815260040180806020018281038252602e815260200180615ac6602e913960400191505060405180910390fd5b600101612fe3565b50600454611004906108fc9061315190349063ffffffff613b0016565b6040518115909202916000818181858888f19350505050158015613179573d6000803e3d6000fd5b506001600160a01b038a166000908152600260209081526040909120805460ff1916600117905584810151908301516131b06158f1565b604051806101000160405280336001600160a01b031681526020018e6001600160a01b031681526020018481526020018381526020018981526020018a60ff16815260200161320f6402540be400600454613b4290919063ffffffff16565b81526001600160401b038e16602090910152905061200063f7a251d7600461323684614608565b6132546402540be40061131160045434613b0090919063ffffffff16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156132b257818101518382015260200161329a565b50505050905090810190601f1680156132df5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561330057600080fd5b505af1158015613314573d6000803e3d6000fd5b5050505060019a505050505050505050505092915050565b600781565b600981565b677ce66c50e284000081565b61100781565b61100681565b60005460ff1681565b600081565b336110071461339c5760405162461bcd60e51b815260040180806020018281038252602e815260200180615b5b602e913960400191505060405180910390fd5b602081146133f1576040805162461bcd60e51b815260206004820152601860248201527f65787065637465642076616c7565206c656e6774682033320000000000000000604482015290519081900360640190fd5b606084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f880181900481028201810190925286815293945060609392508691508590819084018382808284376000920191909152505050506020830151909150686d6972726f7246656560b81b8114156134e65760208201516402540be4008106156134de576040805162461bcd60e51b815260206004820152601a60248201527f6d6972726f72466565206d757374206265204e202a2031653130000000000000604482015290519081900360640190fd5b60045561359c565b6673796e6346656560c81b81141561355f5760208201516402540be400810615613557576040805162461bcd60e51b815260206004820152601860248201527f73796e63466565206d757374206265204e202a20316531300000000000000000604482015290519081900360640190fd5b60055561359c565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a878787876040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050505050565b61100281565b33612000146136775760405162461bcd60e51b815260040180806020018281038252602f815260200180615b89602f913960400191505060405180910390fd5b60ff8316600414156136c25761287182828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061477a92505050565b60ff8316600514156128c15761287182828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506148b992505050565b600160208190526000918252604090912080549181015460028201546003830154600484015460059094015460ff9586169593946001600160a01b039093169391929181169061010090046001600160401b031687565b604d81565b61100381565b60055481565b61100081565b61271081565b61100481565b606061379161589e565b600061379c846149b3565b91509150806137f2576040805162461bcd60e51b815260206004820152601f60248201527f756e7265636f676e697a6564207472616e73666572496e207061636b61676500604482015290519081900360640190fd5b815160ff166138a5576020828101805160009081526001928390526040908190208551815460ff1990811660ff928316178355935194820194909455908501516002820180546001600160a01b0319166001600160a01b03909216919091179055606085015160038201556080850151600482015560a08501516005909101805460c08701519316919093161768ffffffffffffffff0019166101006001600160401b03909216919091021790556139fc565b815160ff16600114156139af5760006110046001600160a01b03166359b9278984602001516040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156138fe57600080fd5b505afa158015613912573d6000803e3d6000fd5b505050506040513d602081101561392857600080fd5b505190506001600160a01b038116156139a95760208301516040805163b99328c560e01b815260048101929092526001600160a01b0383166024830152516110049163b99328c591604480830192600092919082900301818387803b15801561399057600080fd5b505af11580156139a4573d6000803e3d6000fd5b505050505b506139fc565b6040805162461bcd60e51b815260206004820152601960248201527f756e7265636f676e697a65642062696e64207061636b61676500000000000000604482015290519081900360640190fd5b60408051600080825260208201909252905b50949350505050565b600082820183811015610e94576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60006008821115613ae957604d60071983011115613acb576040805162461bcd60e51b8152602060048201526012602482015271746f6f206c6172676520646563696d616c7360701b604482015290519081900360640190fd5b613ae2836007198401600a0a63ffffffff613b4216565b90506113eb565b610e94836008849003600a0a63ffffffff614b0416565b6000610e9483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250614b5d565b6000610e9483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250614bf4565b60408051600680825260e08201909252606091829190816020015b6060815260200190600190039081613b9f5750508351909150613bca906001600160a01b0316614c59565b81600081518110613bd757fe5b6020026020010181905250613bf883602001516001600160a01b0316614c59565b81600181518110613c0557fe5b6020026020010181905250613c20836040015160001c614c7c565b81600281518110613c2d57fe5b6020026020010181905250613c458360600151614c7c565b81600381518110613c5257fe5b6020026020010181905250613c6a8360800151614c7c565b81600481518110613c7757fe5b6020026020010181905250613c988360a001516001600160401b0316614c7c565b81600581518110613ca557fe5b6020026020010181905250610e9481614c8f565b6020015190565b600080826001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015613cfc57600080fd5b505afa158015613d10573d6000803e3d6000fd5b505050506040513d6020811015613d2657600080fd5b5051604080516395d89b4160e01b8152905160ff90921692506060916001600160a01b038616916395d89b41916004808301926000929190829003018186803b158015613d7257600080fd5b505afa158015613d86573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015613daf57600080fd5b8101908080516040519392919084600160201b821115613dce57600080fd5b908301906020820185811115613de357600080fd5b8251600160201b811182820188101715613dfc57600080fd5b82525081516020918201929091019080838360005b83811015613e29578181015183820152602001613e11565b50505050905090810190601f168015613e565780820380516001836020036101000a031916815260200191505b5060408181526370a0823160e01b82526110046004830152519495506000946001600160a01b038a1694506370a08231935060248083019350602092829003018186803b158015613ea657600080fd5b505afa158015613eba573d6000803e3d6000fd5b505050506040513d6020811015613ed057600080fd5b505160808701516060880151919250600091613ef19163ffffffff613b0016565b9050428760c001516001600160401b03161015613f165750600193506113eb92505050565b613f24838860200151614d19565b613f365750600293506113eb92505050565b80821115613f4c5750600393506113eb92505050565b866060015187604001516001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015613f8e57600080fd5b505afa158015613fa2573d6000803e3d6000fd5b505050506040513d6020811015613fb857600080fd5b505114613fcd5750600493506113eb92505050565b8660a0015160ff168414613fe95750600593506113eb92505050565b602080880151604080516359b9278960e01b8152600481019290925251600092611004926359b927899260248083019392829003018186803b15801561402e57600080fd5b505afa158015614042573d6000803e3d6000fd5b505050506040513d602081101561405857600080fd5b50516001600160a01b03161415806140fa57506000801b6110046001600160a01b031663bd46646189604001516040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156140cb57600080fd5b505afa1580156140df573d6000803e3d6000fd5b505050506040513d60208110156140f557600080fd5b505114155b1561410d5750600693506113eb92505050565b5060009695505050505050565b6040805160028082526060828101909352829190816020015b6060815260200190600190039081614133575050835190915061415b9063ffffffff16614c7c565b8160008151811061416857fe5b6020026020010181905250614183836020015160001c614c7c565b81600181518110613ca557fe5b614198615869565b60006141a383614e01565b91509150806141f0576040805162461bcd60e51b8152602060048201526014602482015273756e7265636f676e697a6564207061636b61676560601b604482015290519081900360640190fd5b6020808301516001600160a01b03166000908152600290915260409020805460ff1916905560a082015160ff166143515760808201516040516110049180156108fc02916000818181858888f19350505050158015614253573d6000803e3d6000fd5b506110046001600160a01b0316638eff336c8360600151846020015185604001516040518463ffffffff1660e01b815260040180848152602001836001600160a01b03166001600160a01b031681526020018260ff1681526020019350505050600060405180830381600087803b1580156142cd57600080fd5b505af11580156142e1573d6000803e3d6000fd5b50505050602082810180516001600160a01b03908116600090815260038452604090819020805460ff1916600117905591516060860151835190815292519116927f41787d7db08fc5907641ee8343379f28215727eb123d4b462099afab4300b036928290030190a2505061443a565b815160808301516040516000926001600160a01b0316916127109184818181858888f193505050503d80600081146143a5576040519150601f19603f3d011682016040523d82523d6000602084013e6143aa565b606091505b50509050806143e75760808301516040516110029180156108fc02916000818181858888f193505050501580156143e5573d6000803e3d6000fd5b505b82602001516001600160a01b03167fefe400ad0042ebf81a245de9ae669616105e0ca9fc946352c085da0c2bc524e58460a00151604051808260ff1660ff16815260200191505060405180910390a25050505b50565b614445615935565b600061445083614f0e565b915091508061449d576040805162461bcd60e51b8152602060048201526014602482015273756e7265636f676e697a6564207061636b61676560601b604482015290519081900360640190fd5b606082015160ff1661451d5760408083015190516110049180156108fc02916000818181858888f193505050501580156144db573d6000803e3d6000fd5b5081602001516001600160a01b03167fbb7d3a9a559080d8281b0e4fb39dacbe2fdcafd5ef765e9a6ed871c9167dc60f60405160405180910390a2505061443a565b81602001516001600160a01b03167ff1e25fa536da84053644fd788b1d6a27ea6edd1f3af80c7d36ca253c4c82c9c38360600151604051808260ff1660ff16815260200191505060405180910390a2815160408084015190516000926001600160a01b0316916127109184818181858888f193505050503d80600081146145c0576040519150601f19603f3d011682016040523d82523d6000602084013e6145c5565b606091505b50509050806146025760408084015190516110029180156108fc02916000818181858888f19350505050158015614600573d6000803e3d6000fd5b505b50505050565b6040805160088082526101208201909252606091829190816020015b6060815260200190600190039081614624575050835190915061464f906001600160a01b0316614c59565b8160008151811061465c57fe5b602002602001018190525061467d83602001516001600160a01b0316614c59565b8160018151811061468a57fe5b60200260200101819052506146a5836040015160001c614c7c565b816002815181106146b257fe5b60200260200101819052506146cd836060015160001c614c7c565b816003815181106146da57fe5b60200260200101819052506146f28360800151614c7c565b816004815181106146ff57fe5b602002602001018190525061471a8360a0015160ff16614c7c565b8160058151811061472757fe5b602002602001018190525061473f8360c00151614c7c565b8160068151811061474c57fe5b602002602001018190525061476d8360e001516001600160401b0316614c7c565b81600781518110613ca557fe5b6147826158f1565b600061478d83614fda565b91509150806147da576040805162461bcd60e51b8152602060048201526014602482015273756e7265636f676e697a6564207061636b61676560601b604482015290519081900360640190fd5b6020808301516001600160a01b039081166000908152600290925260408220805460ff19169055835160c085015191169061271090614824906402540be40063ffffffff614b0416565b6040516000818181858888f193505050503d8060008114614861576040519150601f19603f3d011682016040523d82523d6000602084013e614866565b606091505b50509050806146025760c0830151611002906108fc90614891906402540be40063ffffffff614b0416565b6040518115909202916000818181858888f19350505050158015614600573d6000803e3d6000fd5b6148c1615869565b60006148cc8361512b565b9150915080614919576040805162461bcd60e51b8152602060048201526014602482015273756e7265636f676e697a6564207061636b61676560601b604482015290519081900360640190fd5b815160808301516000916001600160a01b03169061271090614946906402540be40063ffffffff614b0416565b6040516000818181858888f193505050503d8060008114614983576040519150601f19603f3d011682016040523d82523d6000602084013e614988565b606091505b5050905080614602576080830151611002906108fc90614891906402540be40063ffffffff614b0416565b6149bb61589e565b60006149c561589e565b6149cd61595c565b6149de6149d98661523b565b615260565b90506000805b6149ed836152aa565b15614af75780614a1257614a08614a03846152cb565b615319565b60ff168452614aef565b8060011415614a3157614a27614a03846152cb565b6020850152614aef565b8060021415614a5e57614a4b614a46846152cb565b6153ce565b6001600160a01b03166040850152614aef565b8060031415614a7d57614a73614a03846152cb565b6060850152614aef565b8060041415614a9c57614a92614a03846152cb565b6080850152614aef565b8060051415614abe57614ab1614a03846152cb565b60ff1660a0850152614aef565b8060061415614aea57614ad3614a03846152cb565b6001600160401b031660c085015260019150614aef565b614af7565b6001016149e4565b5091935090915050915091565b600082614b13575060006113eb565b82820282848281614b2057fe5b0414610e945760405162461bcd60e51b8152600401808060200182810382526021815260200180615af46021913960400191505060405180910390fd5b60008184841115614bec5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015614bb1578181015183820152602001614b99565b50505050905090810190601f168015614bde5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008183614c435760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315614bb1578181015183820152602001614b99565b506000838581614c4f57fe5b0495945050505050565b60408051600560a21b8318601482015260348101909152606090610e94816153e8565b60606113eb614c8a8361543e565b6153e8565b6060815160001415614cb0575060408051600081526020810190915261157f565b606082600081518110614cbf57fe5b602002602001015190506000600190505b8351811015614d0057614cf682858381518110614ce957fe5b6020026020010151615524565b9150600101614cd0565b50610e94614d13825160c060ff166155a1565b82615524565b8151600090839060081080614d2f575080516002115b15614d3e5760009150506113eb565b60408051602080825281830190925260609160208201818036833701905050905083602082015280825181518110614d7257fe5b6020910101516001600160f81b031916602d60f81b14614d97576000925050506113eb565b600160005b8351811015614df757828181518110614db157fe5b602001015160f81c60f81b6001600160f81b031916848281518110614dd257fe5b01602001516001600160f81b03191614614def5760009150614df7565b600101614d9c565b5095945050505050565b614e09615869565b6000614e13615869565b614e1b61595c565b614e276149d98661523b565b90506000805b614e36836152aa565b15614af75780614e5c57614e4c614a46846152cb565b6001600160a01b03168452614f06565b8060011415614e8457614e71614a46846152cb565b6001600160a01b03166020850152614f06565b8060021415614ea657614e99614a03846152cb565b60ff166040850152614f06565b8060031415614ec557614ebb614a03846152cb565b6060850152614f06565b8060041415614ee457614eda614a03846152cb565b6080850152614f06565b8060051415614aea57614ef9614a03846152cb565b60ff1660a0850152600191505b600101614e2d565b614f16615935565b6000614f20615935565b614f2861595c565b614f346149d98661523b565b90506000805b614f43836152aa565b15614af75780614f6957614f59614a46846152cb565b6001600160a01b03168452614fd2565b8060011415614f9157614f7e614a46846152cb565b6001600160a01b03166020850152614fd2565b8060021415614fb057614fa6614a03846152cb565b6040850152614fd2565b8060031415614aea57614fc5614a03846152cb565b60ff166060850152600191505b600101614f3a565b614fe26158f1565b6000614fec6158f1565b614ff461595c565b6150006149d98661523b565b90506000805b61500f836152aa565b15614af7578061503557615025614a46846152cb565b6001600160a01b03168452615123565b806001141561505d5761504a614a46846152cb565b6001600160a01b03166020850152615123565b806002141561507c57615072614a03846152cb565b6040850152615123565b806003141561509b57615091614a03846152cb565b6060850152615123565b80600414156150ba576150b0614a03846152cb565b6080850152615123565b80600514156150dc576150cf614a03846152cb565b60ff1660a0850152615123565b80600614156150fb576150f1614a03846152cb565b60c0850152615123565b8060071415614aea57615110614a03846152cb565b6001600160401b031660e0850152600191505b600101615006565b615133615869565b600061513d615869565b61514561595c565b6151516149d98661523b565b90506000805b615160836152aa565b15614af7578061518657615176614a46846152cb565b6001600160a01b03168452615233565b80600114156151ae5761519b614a46846152cb565b6001600160a01b03166020850152615233565b80600214156151cd576151c3614a03846152cb565b6040850152615233565b80600314156151ec576151e2614a03846152cb565b6060850152615233565b806004141561520b57615201614a03846152cb565b6080850152615233565b8060051415614aea57615220614a03846152cb565b6001600160401b031660a0850152600191505b600101615157565b61524361597c565b506040805180820190915281518152602082810190820152919050565b61526861595c565b61527182615699565b61527a57600080fd5b600061528983602001516156d3565b60208085015160408051808201909152868152920190820152915050919050565b60006152b461597c565b505080518051602091820151919092015191011190565b6152d361597c565b6152dc826152aa565b6152e557600080fd5b602082015160006152f582615736565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061532e57508151602110155b61533757600080fd5b600061534683602001516156d3565b905080836000015110156153a1576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015613a0e57506020919091036101000a90049392505050565b80516000906015146153df57600080fd5b6113eb82615319565b60608151600114801561541a5750607f60f81b8260008151811061540857fe5b01602001516001600160f81b03191611155b1561542657508061157f565b6113eb6154388351608060ff166155a1565b83615524565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416615482575060186154a6565b6fffffffffffffffffffffffffffffffff1984166154a2575060106154a6565b5060005b60208110156154dc578181815181106154bb57fe5b01602001516001600160f81b031916156154d4576154dc565b6001016154a6565b60008160200390506060816040519080825280601f01601f191660200182016040528015615511576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b8183101561555557805183526020928301920161553d565b50855184518101855292509050808201602086015b8183101561558257805183526020928301920161556a565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106155f1576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b6040805160018082528183019092526060916020820181803683370190505090506037841161564b5782840160f81b8160008151811061562d57fe5b60200101906001600160f81b031916908160001a90535090506113eb565b60606156568561543e565b90508381510160370160f81b8260008151811061566f57fe5b60200101906001600160f81b031916908160001a9053506156908282615524565b95945050505050565b80516000906156aa5750600061157f565b6020820151805160001a9060c08210156156c95760009250505061157f565b5060019392505050565b8051600090811a60808110156156ed57600091505061157f565b60b8811080615708575060c08110801590615708575060f881105b1561571757600191505061157f565b60c081101561572b5760b51901905061157f565b60f51901905061157f565b80516000908190811a60808110156157515760019150615862565b60b881101561576657607e1981019150615862565b60c08110156157e057600060b78203600186019550806020036101000a8651049150600181018201935050808310156157da576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50615862565b60f88110156157f55760be1981019150615862565b600060f78203600186019550806020036101000a865104915060018101820193505080831015615860576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c081019190915290565b604080518082019091526000808252602082015290565b6040805161010081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081019190915290565b60408051608081018252600080825260208201819052918101829052606081019190915290565b604051806040016040528061596f61597c565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe6d73672e76616c7565206d757374206265204e202a203165313020616e642067726561746572207468616e2073756d206f66206d696e6952656c617946656520616e64206d6972726f724665656f6e6c79206265703230206f776e65722063616e20617070726f766520746869732062696e64207265717565737465787069726554696d65206d7573742062652074776f206d696e75746573206c6174657220616e64206f6e6520646179206561726c69657272656c6179466565206d757374206265204e202a203165313020616e642067726561746572207468616e206d696e6952656c6179466565636f6e74616374206164647265737320646f65736e277420657175616c20746f2074686520636f6e7472616374206164647265737320696e2062696e64207265717565737473796d626f6c2073686f756c64206f6e6c7920636f6e7461696e20616c70686162657420616e64206e756d626572536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f776d73672e76616c7565206d757374206265204e202a203165313020616e64206e6f206c6573732073756d206f66206d696e6952656c617946656520616e642073796e63466565746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e747261637474686520626570323020746f6b656e20697320696e206d6972726f722070656e64696e6720737461747573a2646970667358221220ab8dfdd9914857b55fc1c6e49c911de2d861380dc81004c5ff0a4e67915545b764736f6c63430006040033" + }, + "0x0000000000000000000000000000000000001004": { + "balance": "0x0", + "code": "0x60806040526004361061031e5760003560e01c80639a99b4f0116101ab578063bd466461116100f7578063f014847211610095578063fc1a598f1161006f578063fc1a598f14610cb3578063fc3e590814610996578063fd6a687914610ce6578063ff9c00271461068657610366565b8063f014847214610c74578063f9a2bbc714610c89578063fa9e915914610c9e57610366565b8063d9e6dae9116100d1578063d9e6dae914610608578063dc927faf14610c35578063e1c7392a14610c4a578063ebf71d5314610c5f57610366565b8063bd46646114610b68578063c81b166214610b9b578063c8509d8114610bb057610366565b8063aa7415f511610164578063b99328c51161013e578063b99328c514610ad2578063b9fd21e314610b0b578063ba35ead614610b20578063bbface1f14610b3557610366565b8063aa7415f5146109ab578063ab51bb96146109f2578063ac43175114610a0757610366565b80639a99b4f0146109095780639dc0926214610942578063a1a11bf514610957578063a496fba21461096c578063a78abc1614610981578063a7c9f02d1461099657610366565b8063613684751161026a57806375d47a0a116102235780638b87b21f116101fd5780638b87b21f146105875780638eff336c146108a057806396713da9146108df5780639a854bbd146108f457610366565b806375d47a0a146107f15780637942fd0514610806578063831d65d11461081b57610366565b8063613684751461060857806366dea52a146106865780636e0565201461069b5780636e47b482146107c757806370fd5bad1461068657806371d30863146107dc57610366565b806343a368b9116102d757806350432d32116102b157806350432d321461061d57806351e806721461063257806359b92789146106475780635d499b1b1461067157610366565b806343a368b9146105c7578063493279b1146105dc5780634bf6c8821461060857610366565b80630bee7a671461036b5780631182b87514610399578063149d14d9146104935780633d713223146104ba5780633dffc3871461058757806343756e5c146105b257610366565b36610366573415610364576040805133815234602082015281517f6c98249d85d88c3753a04a22230f595e4dc8d3dc86c34af35deeeedc861b89db929181900390910190a15b005b600080fd5b34801561037757600080fd5b50610380610cfb565b6040805163ffffffff9092168252519081900360200190f35b3480156103a557600080fd5b5061041e600480360360408110156103bc57600080fd5b60ff8235169190810190604081016020820135600160201b8111156103e057600080fd5b8201836020820111156103f257600080fd5b803590602001918460018302840111600160201b8311171561041357600080fd5b509092509050610d00565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610458578181015183820152602001610440565b50505050905090810190601f1680156104855780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561049f57600080fd5b506104a8610e2e565b60408051918252519081900360200190f35b3480156104c657600080fd5b5061056b600480360360208110156104dd57600080fd5b810190602081018135600160201b8111156104f757600080fd5b82018360208201111561050957600080fd5b803590602001918460018302840111600160201b8311171561052a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610e34945050505050565b604080516001600160a01b039092168252519081900360200190f35b34801561059357600080fd5b5061059c610e58565b6040805160ff9092168252519081900360200190f35b3480156105be57600080fd5b5061056b610e5d565b3480156105d357600080fd5b506104a8610e63565b3480156105e857600080fd5b506105f1610e6f565b6040805161ffff9092168252519081900360200190f35b34801561061457600080fd5b5061059c610e74565b34801561062957600080fd5b506104a8610e79565b34801561063e57600080fd5b5061056b610e84565b34801561065357600080fd5b5061056b6004803603602081101561066a57600080fd5b5035610e8a565b34801561067d57600080fd5b506104a8610ea5565b34801561069257600080fd5b5061059c610eae565b6107b3600480360360808110156106b157600080fd5b810190602081018135600160201b8111156106cb57600080fd5b8201836020820111156106dd57600080fd5b803590602001918460208302840111600160201b831117156106fe57600080fd5b919390929091602081019035600160201b81111561071b57600080fd5b82018360208201111561072d57600080fd5b803590602001918460208302840111600160201b8311171561074e57600080fd5b919390929091602081019035600160201b81111561076b57600080fd5b82018360208201111561077d57600080fd5b803590602001918460208302840111600160201b8311171561079e57600080fd5b91935091503567ffffffffffffffff16610eb3565b604080519115158252519081900360200190f35b3480156107d357600080fd5b5061056b611388565b3480156107e857600080fd5b506104a861138e565b3480156107fd57600080fd5b5061056b611394565b34801561081257600080fd5b5061059c61139a565b34801561082757600080fd5b506103646004803603604081101561083e57600080fd5b60ff8235169190810190604081016020820135600160201b81111561086257600080fd5b82018360208201111561087457600080fd5b803590602001918460018302840111600160201b8311171561089557600080fd5b50909250905061139f565b3480156108ac57600080fd5b50610364600480360360608110156108c357600080fd5b508035906001600160a01b0360208201351690604001356114e8565b3480156108eb57600080fd5b5061059c61156e565b34801561090057600080fd5b506104a8611573565b34801561091557600080fd5b506104a86004803603604081101561092c57600080fd5b506001600160a01b03813516906020013561157f565b34801561094e57600080fd5b5061056b6116bd565b34801561096357600080fd5b5061056b6116c3565b34801561097857600080fd5b5061059c6116c9565b34801561098d57600080fd5b506107b36116ce565b3480156109a257600080fd5b5061059c6116d7565b6107b3600480360360808110156109c157600080fd5b5080356001600160a01b03908116916020810135909116906040810135906060013567ffffffffffffffff166116dc565b3480156109fe57600080fd5b506103806116c9565b348015610a1357600080fd5b5061036460048036036040811015610a2a57600080fd5b810190602081018135600160201b811115610a4457600080fd5b820183602082011115610a5657600080fd5b803590602001918460018302840111600160201b83111715610a7757600080fd5b919390929091602081019035600160201b811115610a9457600080fd5b820183602082011115610aa657600080fd5b803590602001918460018302840111600160201b83111715610ac757600080fd5b509092509050611d9d565b348015610ade57600080fd5b5061036460048036036040811015610af557600080fd5b50803590602001356001600160a01b031661200c565b348015610b1757600080fd5b506104a8612082565b348015610b2c57600080fd5b506104a861208c565b348015610b4157600080fd5b506104a860048036036020811015610b5857600080fd5b50356001600160a01b0316612092565b348015610b7457600080fd5b506104a860048036036020811015610b8b57600080fd5b50356001600160a01b03166120a4565b348015610ba757600080fd5b5061056b6120bf565b348015610bbc57600080fd5b5061036460048036036040811015610bd357600080fd5b60ff8235169190810190604081016020820135600160201b811115610bf757600080fd5b820183602082011115610c0957600080fd5b803590602001918460018302840111600160201b83111715610c2a57600080fd5b5090925090506120c5565b348015610c4157600080fd5b5061056b612195565b348015610c5657600080fd5b5061036461219b565b348015610c6b57600080fd5b5061059c61223b565b348015610c8057600080fd5b5061059c612240565b348015610c9557600080fd5b5061056b612245565b348015610caa57600080fd5b506104a861224b565b348015610cbf57600080fd5b5061041e60048036036020811015610cd657600080fd5b50356001600160a01b0316612251565b348015610cf257600080fd5b5061056b612378565b606481565b60005460609060ff16610d48576040805162461bcd60e51b815260206004820152601960248201526000805160206147a8833981519152604482015290519081900360640190fd5b3361200014610d885760405162461bcd60e51b815260040180806020018281038252602f815260200180614756602f913960400191505060405180910390fd5b60ff841660021415610dda57610dd383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061237e92505050565b9050610e27565b6040805162461bcd60e51b815260206004820152601860248201527f756e7265636f676e697a65642073796e207061636b6167650000000000000000604482015290519081900360640190fd5b9392505050565b60015490565b6020818101516000908152600490915260409020546001600160a01b03165b919050565b600181565b61100181565b670de0b6b3a764000081565b603881565b600881565b66071afd498d000081565b61200081565b6000908152600460205260409020546001600160a01b031690565b6402540be40081565b600281565b6000805460ff16610ef9576040805162461bcd60e51b815260206004820152601960248201526000805160206147a8833981519152604482015290519081900360640190fd5b868514610f375760405162461bcd60e51b815260040180806020018281038252603b81526020018061471b603b913960400191505060405180910390fd5b868314610f755760405162461bcd60e51b815260040180806020018281038252603f8152602001806145ee603f913960400191505060405180910390fd5b426078018267ffffffffffffffff161015610fc15760405162461bcd60e51b81526004018080602001828103825260248152602001806144de6024913960400191505060405180910390fd5b6402540be4003406156110055760405162461bcd60e51b815260040180806020018281038252604081526020018061481e6040913960400191505060405180910390fd5b60408051868152602080880282010190915285906000908190606090848015611038578160200160208202803683370190505b50905060005b84811015611113576402540be4008b8b8381811061105857fe5b905060200201358161106657fe5b06156110a35760405162461bcd60e51b815260040180806020018281038252603c81526020018061462d603c913960400191505060405180910390fd5b6110c88b8b838181106110b257fe5b90506020020135856124a290919063ffffffff16565b93506110f46402540be4008c8c848181106110df57fe5b905060200201356124fc90919063ffffffff16565b82828151811061110057fe5b602090810291909101015260010161103e565b506001546111389061112b908663ffffffff61253e16565b849063ffffffff6124a216565b3410156111765760405162461bcd60e51b81526004018080602001828103825260568152602001806147c86056913960600191505060405180910390fd5b611186348463ffffffff61259716565b9150611190614337565b6040518060c001604052806221272160e91b60001b815260200160006001600160a01b031681526020018381526020018e8e808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505050908252506040805160208c810282810182019093528c82529283019290918d918d91829185019084908082843760009201919091525050509082525067ffffffffffffffff8916602090910152905061200063f7a251d76003611254846125d9565b611269876402540be40063ffffffff6124fc16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156112c75781810151838201526020016112af565b50505050905090810190601f1680156112f45780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561131557600080fd5b505af1158015611329573d6000803e3d6000fd5b505060408051600081523360208201528082018890526060810187905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a15060019c9b505050505050505050505050565b61100581565b60015481565b61100881565b600b81565b60005460ff166113e4576040805162461bcd60e51b815260206004820152601960248201526000805160206147a8833981519152604482015290519081900360640190fd5b33612000146114245760405162461bcd60e51b815260040180806020018281038252602f815260200180614756602f913960400191505060405180910390fd5b60ff8316600314156114745761146f82828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061289492505050565b6114e3565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a15b505050565b33611008146115285760405162461bcd60e51b81526004018080602001828103825260238152602001806147856023913960400191505060405180910390fd5b600083815260046020908152604080832080546001600160a01b039096166001600160a01b03199096168617905593825260038152838220949094556002909352912055565b600981565b677ce66c50e284000081565b6000805460ff166115c5576040805162461bcd60e51b815260206004820152601960248201526000805160206147a8833981519152604482015290519081900360640190fd5b33611005146116055760405162461bcd60e51b815260040180806020018281038252602f815260200180614451602f913960400191505060405180910390fd5b60004783106116145747611616565b825b9050670de0b6b3a76400008111156116325760009150506116b7565b80156116b4576040516001600160a01b0385169082156108fc029083906000818181858888f1935050505015801561166e573d6000803e3d6000fd5b50604080516001600160a01b03861681526020810183905281517ff8b71c64315fc33b2ead2adfa487955065152a8ac33d9d5193aafd7f45dc15a0929181900390910190a15b90505b92915050565b61100781565b61100681565b600081565b60005460ff1681565b600381565b6000805460ff16611722576040805162461bcd60e51b815260206004820152601960248201526000805160206147a8833981519152604482015290519081900360640190fd5b426078018267ffffffffffffffff16101561176e5760405162461bcd60e51b81526004018080602001828103825260248152602001806144de6024913960400191505060405180910390fd5b6402540be4003406156117b25760405162461bcd60e51b815260040180806020018281038252604081526020018061481e6040913960400191505060405180910390fd5b600080806001600160a01b038816611891576001546117d890879063ffffffff6124a216565b3410156118165760405162461bcd60e51b81526004018080602001828103825260618152602001806145686061913960800191505060405180910390fd5b6402540be40086061561185a5760405162461bcd60e51b815260040180806020018281038252603c81526020018061462d603c913960400191505060405180910390fd5b61186a348763ffffffff61259716565b9050611881866402540be40063ffffffff6124fc16565b6221272160e91b93509150611b34565b6001600160a01b0388166000908152600360205260409020549250826118e85760405162461bcd60e51b81526004018080602001828103825260318152602001806145376031913960400191505060405180910390fd5b6001543410156119295760405162461bcd60e51b815260040180806020018281038252603f81526020018061468a603f913960400191505060405180910390fd5b506001600160a01b038716600090815260026020526040902054349060088111158061197457506008811180156119745750611972876007198301600a0a63ffffffff6128f016565b155b6119af5760405162461bcd60e51b815260040180806020018281038252603c81526020018061462d603c913960400191505060405180910390fd5b6119b98782612932565b92506119c484612972565b15611a0c576305f5e100831015611a0c5760405162461bcd60e51b815260040180806020018281038252603a815260200180614480603a913960400191505060405180910390fd5b600881101580611a265750600881108015611a2657508683115b611a615760405162461bcd60e51b81526004018080602001828103825260258152602001806145c96025913960400191505060405180910390fd5b677ce66c50e2840000831115611aa85760405162461bcd60e51b81526004018080602001828103825260358152602001806145026035913960400191505060405180910390fd5b604080516323b872dd60e01b81523360048201523060248201526044810189905290516001600160a01b038b16916323b872dd9160648083019260209291908290030181600087803b158015611afd57600080fd5b505af1158015611b11573d6000803e3d6000fd5b505050506040513d6020811015611b2757600080fd5b5051611b3257600080fd5b505b611b3c614337565b6040805160c0810182528581526001600160a01b038b166020820152815160018082528184018452919283019181602001602082028036833750505081526040805160018082528183019092526020928301929091908083019080368337505050815260408051600180825281830190925260209283019290919080830190803683370190505081526020018767ffffffffffffffff168152509050828160400151600081518110611bea57fe5b602002602001018181525050878160600151600081518110611c0857fe5b60200260200101906001600160a01b031690816001600160a01b031681525050338160800151600081518110611c3a57fe5b6001600160a01b039092166020928302919091019091015261200063f7a251d76003611c65846125d9565b611c7a866402540be40063ffffffff6124fc16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611cd8578181015183820152602001611cc0565b50505050905090810190601f168015611d055780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015611d2657600080fd5b505af1158015611d3a573d6000803e3d6000fd5b5050604080516001600160a01b038d1681523360208201528082018b90526060810186905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a150600198975050505050505050565b3361100714611ddd5760405162461bcd60e51b815260040180806020018281038252602e8152602001806146c9602e913960400191505060405180910390fd5b60208114611e32576040805162461bcd60e51b815260206004820152601b60248201527f65787065637465642076616c7565206c656e6774682069732033320000000000604482015290519081900360640190fd5b606084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8801819004810282018101909252868152939450606093925086915085908190840183828082843760009201919091525050505060208301519091506772656c617946656560c01b811415611f3a576020820151670de0b6b3a76400008111801590611ee157506402540be4008106155b611f32576040805162461bcd60e51b815260206004820152601960248201527f7468652072656c6179466565206f7574206f662072616e676500000000000000604482015290519081900360640190fd5b600155611f77565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a878787876040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050505050565b336110081461204c5760405162461bcd60e51b81526004018080602001828103825260238152602001806147856023913960400191505060405180910390fd5b600091825260046020908152604080842080546001600160a01b03191690556001600160a01b0392909216835260039052812055565b6221272160e91b81565b61c35081565b60026020526000908152604090205481565b6001600160a01b031660009081526003602052604090205490565b61100281565b60005460ff1661210a576040805162461bcd60e51b815260206004820152601960248201526000805160206147a8833981519152604482015290519081900360640190fd5b336120001461214a5760405162461bcd60e51b815260040180806020018281038252602f815260200180614756602f913960400191505060405180910390fd5b60ff8316600314156114745761146f82828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612a7892505050565b61100381565b60005460ff16156121f3576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b66071afd498d000060019081556000808052600260205260127fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b55805460ff19169091179055565b600481565b600581565b61100081565b61271081565b6001600160a01b03811660009081526003602090815260409182902054825182815280840190935260609290918391906020820181803683375050506020810183905290506000805b60208160ff1610156122e157828160ff16815181106122b557fe5b01602001516001600160f81b031916156122d4576001909101906122d9565b6122e1565b60010161229a565b5060608160ff166040519080825280601f01601f191660200182016040528015612312576020820181803683370190505b50905060005b8260ff168160ff16101561236e57838160ff168151811061233557fe5b602001015160f81c60f81b828260ff168151811061234f57fe5b60200101906001600160f81b031916908160001a905350600101612318565b5095945050505050565b61100481565b6060612388614383565b600061239384612b76565b91509150806123e9576040805162461bcd60e51b815260206004820152601f60248201527f756e7265636f676e697a6564207472616e73666572496e207061636b61676500604482015290519081900360640190fd5b60006123f483612cb5565b905063ffffffff811615612488576040808401516020808601516001600160a01b0316600090815260029091529182205461242f9190612932565b90506124396143b8565b60405180608001604052808660000151815260200183815260200186608001516001600160a01b031681526020018463ffffffff16815250905061247c81613002565b95505050505050610e53565b50506040805160008152602081019091529150610e539050565b6000828201838110156116b4576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60006116b483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506130de565b60008261254d575060006116b7565b8282028284828161255a57fe5b04146116b45760405162461bcd60e51b81526004018080602001828103825260218152602001806146696021913960400191505060405180910390fd5b60006116b483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613180565b60408051600680825260e08201909252606091829190816020015b60608152602001906001900390816125f45750508351909150612616906131da565b8160008151811061262357fe5b602002602001018190525061264483602001516001600160a01b03166131ed565b8160018151811061265157fe5b60200260200101819052506000836040015151905060608160405190808252806020026020018201604052801561269c57816020015b60608152602001906001900390816126875790505b50905060005b828110156126e9576126ca866040015182815181106126bd57fe5b60200260200101516131da565b8282815181106126d657fe5b60209081029190910101526001016126a2565b506126f381613210565b8360028151811061270057fe5b602002602001018190525060608260405190808252806020026020018201604052801561274157816020015b606081526020019060019003908161272c5790505b50905060005b83811015612797576127788760600151828151811061276257fe5b60200260200101516001600160a01b03166131ed565b82828151811061278457fe5b6020908102919091010152600101612747565b506127a181613210565b846003815181106127ae57fe5b60200260200101819052506060836040519080825280602002602001820160405280156127ef57816020015b60608152602001906001900390816127da5790505b50905060005b8481101561282f576128108860800151828151811061276257fe5b82828151811061281c57fe5b60209081029190910101526001016127f5565b5061283981613210565b8560048151811061284657fe5b60200260200101819052506128688760a0015167ffffffffffffffff166131da565b8560058151811061287557fe5b602002602001018190525061288985613210565b979650505050505050565b61289c6143df565b60006128a78361329a565b91509150806128e75760405162461bcd60e51b81526004018080602001828103825260248152602001806146f76024913960400191505060405180910390fd5b6114e382613465565b60006116b483836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f00000000000000008152506138e9565b6000600882111561295b57612954836007198401600a0a63ffffffff6124fc16565b90506116b7565b6116b4836008849003600a0a63ffffffff61253e16565b604080516020808252818301909252600091606091906020820181803683375050506020810184905290506000805b60208160ff1610156129e857828160ff16815181106129bc57fe5b01602001516001600160f81b031916156129db576001909101906129e0565b6129e8565b6001016129a1565b50600760ff82161015612a0057600092505050610e53565b816005820360ff1681518110612a1257fe5b6020910101516001600160f81b031916602d60f81b14612a3757600092505050610e53565b816001820360ff1681518110612a4957fe5b6020910101516001600160f81b031916604d60f81b14612a6e57600092505050610e53565b5060019392505050565b612a80614337565b6000612a8b8361394b565b9150915080612acb5760405162461bcd60e51b81526004018080602001828103825260248152602001806144ba6024913960400191505060405180910390fd5b612ad36143df565b602080840180516001600160a01b0390811684526040808701518585015291511660009081526002909252812054905b846040015151811015612b5457612b3185604001518281518110612b2357fe5b602002602001015183613baf565b85604001518281518110612b4157fe5b6020908102919091010152600101612b03565b506080840151604083015260056060830152612b6f82613465565b5050505050565b612b7e614383565b6000612b88614383565b612b90614416565b612ba1612b9c86613be8565b613c0d565b90506000805b612bb083613c57565b15612ca85780612bd257612bcb612bc684613c78565b613cc6565b8452612ca0565b8060011415612bff57612bec612be784613c78565b613d7d565b6001600160a01b03166020850152612ca0565b8060021415612c1e57612c14612bc684613c78565b6040850152612ca0565b8060031415612c4657612c33612be784613c78565b6001600160a01b03166060850152612ca0565b8060041415612c6e57612c5b612be784613c78565b6001600160a01b03166080850152612ca0565b8060051415612c9b57612c83612bc684613c78565b67ffffffffffffffff1660a085015260019150612ca0565b612ca8565b600101612ba7565b5091935090915050915091565b60208101516000906001600160a01b0316612dec578160a0015167ffffffffffffffff16421115612ce857506001610e53565b8160400151471015612cfc57506003610e53565b606082015160408084015190516000926001600160a01b0316916127109184818181858888f193505050503d8060008114612d53576040519150601f19603f3d011682016040523d82523d6000602084013e612d58565b606091505b5050905080612d6b575060049050610e53565b7f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5983602001518460600151856040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a15060009050610e53565b8160a0015167ffffffffffffffff16421115612e0a57506001610e53565b81516020808401516001600160a01b031660009081526003909152604090205414612e3757506002610e53565b602080830151604080516370a0823160e01b815230600482015290516000936001600160a01b03909316926370a082319261c3509260248083019392829003018187803b158015612e8757600080fd5b5086fa158015612e9b573d6000803e3d6000fd5b50505050506040513d6020811015612eb257600080fd5b50516040840151909150811015612ecd575060039050610e53565b600083602001516001600160a01b031663a9059cbb61c350866060015187604001516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b158015612f3e57600080fd5b5087f1158015612f52573d6000803e3d6000fd5b50505050506040513d6020811015612f6957600080fd5b505190508015612ff6577f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5984602001518560600151866040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a15060009150610e539050565b5060059150610e539050565b60408051600480825260a08201909252606091829190816020015b606081526020019060019003908161301d575050835190915061303f906131da565b8160008151811061304c57fe5b602002602001018190525061306483602001516131da565b8160018151811061307157fe5b602002602001018190525061309283604001516001600160a01b03166131ed565b8160028151811061309f57fe5b60200260200101819052506130bd836060015163ffffffff166131da565b816003815181106130ca57fe5b6020026020010181905250610e2781613210565b6000818361316a5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561312f578181015183820152602001613117565b50505050905090810190601f16801561315c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161317657fe5b0495945050505050565b600081848411156131d25760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561312f578181015183820152602001613117565b505050900390565b60606116b76131e883613d97565b613e7d565b60408051600560a21b8318601482015260348101909152606090610e2781613e7d565b60608151600014156132315750604080516000815260208101909152610e53565b60608260008151811061324057fe5b602002602001015190506000600190505b8351811015613281576132778285838151811061326a57fe5b6020026020010151613ecf565b9150600101613251565b50610e27613294825160c060ff16613f4c565b82613ecf565b6132a26143df565b60006132ac6143df565b6132b4614416565b6132c0612b9c86613be8565b90506000805b6132cf83613c57565b15612ca857806132f5576132e5612be784613c78565b6001600160a01b0316845261345d565b806001141561339657606061331161330c85613c78565b614044565b9050805160405190808252806020026020018201604052801561333e578160200160208202803683370190505b50602086015260005b815181101561338f5761336c82828151811061335f57fe5b6020026020010151613cc6565b8660200151828151811061337c57fe5b6020908102919091010152600101613347565b505061345d565b80600214156134385760606133ad61330c85613c78565b905080516040519080825280602002602001820160405280156133da578160200160208202803683370190505b50604086015260005b815181101561338f576134088282815181106133fb57fe5b6020026020010151613d7d565b8660400151828151811061341857fe5b6001600160a01b03909216602092830291909101909101526001016133e3565b8060031415612c9b5761344d612bc684613c78565b63ffffffff166060850152600191505b6001016132c6565b80516001600160a01b031661368f5760005b8160200151518110156136895760008260400151828151811061349657fe5b60200260200101516001600160a01b0316612710846020015184815181106134ba57fe5b60209081029190910101516040516000818181858888f193505050503d8060008114613502576040519150601f19603f3d011682016040523d82523d6000602084013e613507565b606091505b50509050806135ca577f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061354657fe5b60200260200101518560200151858151811061355e57fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a1613680565b7fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a83600001518460400151848151811061360057fe5b60200260200101518560200151858151811061361857fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b50600101613477565b506138e6565b60005b8160200151518110156138e457600082600001516001600160a01b031663a9059cbb61c350856040015185815181106136c757fe5b6020026020010151866020015186815181106136df57fe5b60200260200101516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b15801561373657600080fd5b5087f115801561374a573d6000803e3d6000fd5b50505050506040513d602081101561376157600080fd5b505190508015613825577fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a8360000151846040015184815181106137a157fe5b6020026020010151856020015185815181106137b957fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a16138db565b7f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061385b57fe5b60200260200101518560200151858151811061387357fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b50600101613692565b505b50565b600081836139385760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561312f578181015183820152602001613117565b5082848161394257fe5b06949350505050565b613953614337565b600061395d614337565b613965614416565b613971612b9c86613be8565b90506000805b61398083613c57565b15612ca8578061399d57613996612bc684613c78565b8452613ba7565b80600114156139c5576139b2612be784613c78565b6001600160a01b03166020850152613ba7565b8060021415613a545760606139dc61330c85613c78565b90508051604051908082528060200260200182016040528015613a09578160200160208202803683370190505b50604086015260005b8151811015613a4d57613a2a82828151811061335f57fe5b86604001518281518110613a3a57fe5b6020908102919091010152600101613a12565b5050613ba7565b8060031415613ae9576060613a6b61330c85613c78565b90508051604051908082528060200260200182016040528015613a98578160200160208202803683370190505b50606086015260005b8151811015613a4d57613ab98282815181106133fb57fe5b86606001518281518110613ac957fe5b6001600160a01b0390921660209283029190910190910152600101613aa1565b8060041415613b7e576060613b0061330c85613c78565b90508051604051908082528060200260200182016040528015613b2d578160200160208202803683370190505b50608086015260005b8151811015613a4d57613b4e8282815181106133fb57fe5b86608001518281518110613b5e57fe5b6001600160a01b0390921660209283029190910190910152600101613b36565b8060051415612c9b57613b93612bc684613c78565b67ffffffffffffffff1660a0850152600191505b600101613977565b60006008821115613bd157612954836007198401600a0a63ffffffff61253e16565b6116b4836008849003600a0a63ffffffff6124fc16565b613bf0614436565b506040805180820190915281518152602082810190820152919050565b613c15614416565b613c1e82614115565b613c2757600080fd5b6000613c368360200151614145565b60208085015160408051808201909152868152920190820152915050919050565b6000613c61614436565b505080518051602091820151919092015191011190565b613c80614436565b613c8982613c57565b613c9257600080fd5b60208201516000613ca2826141a8565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590613cdb57508151602110155b613ce457600080fd5b6000613cf38360200151614145565b90508083600001511015613d4e576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015613d7457826020036101000a820491505b50949350505050565b8051600090601514613d8e57600080fd5b6116b782613cc6565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416613ddb57506018613dff565b6fffffffffffffffffffffffffffffffff198416613dfb57506010613dff565b5060005b6020811015613e3557818181518110613e1457fe5b01602001516001600160f81b03191615613e2d57613e35565b600101613dff565b60008160200390506060816040519080825280601f01601f191660200182016040528015613e6a576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015613eaf5750607f60f81b82600081518110613e9d57fe5b01602001516001600160f81b03191611155b15613ebb575080610e53565b6116b7613ecd8351608060ff16613f4c565b835b6060806040519050835180825260208201818101602087015b81831015613f00578051835260209283019201613ee8565b50855184518101855292509050808201602086015b81831015613f2d578051835260209283019201613f15565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310613f9c576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b60408051600180825281830190925260609160208201818036833701905050905060378411613ff65782840160f81b81600081518110613fd857fe5b60200101906001600160f81b031916908160001a90535090506116b7565b606061400185613d97565b90508381510160370160f81b8260008151811061401a57fe5b60200101906001600160f81b031916908160001a90535061403b8282613ecf565b95945050505050565b606061404f82614115565b61405857600080fd5b6000614063836142db565b90506060816040519080825280602002602001820160405280156140a157816020015b61408e614436565b8152602001906001900390816140865790505b50905060006140b38560200151614145565b60208601510190506000805b8481101561410a576140d0836141a8565b91506040518060400160405280838152602001848152508482815181106140f357fe5b6020908102919091010152918101916001016140bf565b509195945050505050565b805160009061412657506000610e53565b6020820151805160001a9060c0821015612a6e57600092505050610e53565b8051600090811a608081101561415f576000915050610e53565b60b881108061417a575060c0811080159061417a575060f881105b15614189576001915050610e53565b60c081101561419d5760b519019050610e53565b60f519019050610e53565b80516000908190811a60808110156141c357600191506142d4565b60b88110156141d857607e19810191506142d4565b60c081101561425257600060b78203600186019550806020036101000a86510491506001810182019350508083101561424c576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b506142d4565b60f88110156142675760be19810191506142d4565b600060f78203600186019550806020036101000a8651049150600181018201935050808310156142d2576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b80516000906142ec57506000610e53565b600080905060006143008460200151614145565b602085015185519181019250015b8082101561432e5761431f826141a8565b6001909301929091019061430e565b50909392505050565b6040518060c001604052806000801916815260200160006001600160a01b03168152602001606081526020016060815260200160608152602001600067ffffffffffffffff1681525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b60408051608081018252600080825260208201819052918101829052606081019190915290565b604051806080016040528060006001600160a01b031681526020016060815260200160608152602001600063ffffffff1681525090565b6040518060400160405280614429614436565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe746865206d6573736167652073656e646572206d75737420626520696e63656e746976697a6520636f6e7472616374466f72206d696e69546f6b656e2c20746865207472616e7366657220616d6f756e74206d757374206e6f74206265206c657373207468616e2031756e7265636f676e697a6564207472616e736665724f75742073796e207061636b61676565787069726554696d65206d7573742062652074776f206d696e75746573206c61746572616d6f756e7420697320746f6f206c617267652c20657863656564206d6178696d756d206265703220746f6b656e20616d6f756e7474686520636f6e747261637420686173206e6f74206265656e20626f756e6420746f20616e79206265703220746f6b656e726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e736665724f757420424e4220616d6f756e7420616e64206d696e696d756d2072656c6179466565616d6f756e7420697320746f6f206c617267652c2075696e74323536206f766572666c6f774c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620726566756e644164647273696e76616c6964207472616e7366657220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e20746865206d696e696d756d2072656c6179466565746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374756e7265636f676e697a6564207472616e736665724f75742061636b207061636b6167654c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620616d6f756e7473746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d73672073656e646572206d75737420626520746f6b656e4d616e6167657274686520636f6e7472616374206e6f7420696e69742079657400000000000000726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e7366657220424e4220616d6f756e7420616e642072656c6179466565696e76616c696420726563656976656420424e4220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6ea2646970667358221220c72f4ad63f8f84b0b15ae9d71fffb0d09b3b3b97a728e64b385305ecb6431b0e64736f6c63430006040033" + }, + "0x0000000000000000000000000000000000001005": { + "balance": "0x0", + "code": "0x6080604052600436106102815760003560e01c8063930e1b091161014f578063bd4cc830116100c1578063e75d72c71161007a578063e75d72c7146107b5578063e89a3020146107e8578063f9a2bbc714610812578063fc3e590814610827578063fd6a68791461083c578063fdd31fcd1461085157610288565b8063bd4cc83014610722578063c81b16621461074c578063d0ab528a14610761578063dc927faf14610776578063dcae76ab1461078b578063e1c7392a146107a057610288565b8063a78abc1611610113578063a78abc16146105d3578063a7c6a59d146105e8578063ab51bb96146105fd578063ac43175114610612578063ace9fcc2146106e3578063af400681146106f857610288565b8063930e1b091461054c57806396713da91461057f5780639dc0926214610594578063a1a11bf5146105a9578063a3c3c0ad146105be57610288565b806343756e5c116101f35780636f93d2e6116101ac5780636f93d2e61461048457806370fd5bad146104e357806374f2272d146104f857806375d47a0a1461050d5780637942fd05146105225780637e146cc51461053757610288565b806343756e5c146103ef578063493279b1146104045780634bf6c8821461043057806351e8067214610445578063541333071461045a5780636e47b4821461046f57610288565b806312950c461161024557806312950c46146103215780631b20087c146103365780631c6433121461034b5780633a9756121461028d5780633dffc3871461039157806340bb43c0146103bc57610288565b8063081e9d131461028d57806308f2ec06146102b4578063093f2fc4146102c95780630bee7a67146102de57806310e06a761461030c57610288565b3661028857005b600080fd5b34801561029957600080fd5b506102a2610884565b60408051918252519081900360200190f35b3480156102c057600080fd5b506102a2610889565b3480156102d557600080fd5b506102a261088e565b3480156102ea57600080fd5b506102f3610893565b6040805163ffffffff9092168252519081900360200190f35b34801561031857600080fd5b506102a2610898565b34801561032d57600080fd5b506102a261089e565b34801561034257600080fd5b506102a26108a4565b34801561035757600080fd5b506103756004803603602081101561036e57600080fd5b50356108aa565b604080516001600160a01b039092168252519081900360200190f35b34801561039d57600080fd5b506103a6610884565b6040805160ff9092168252519081900360200190f35b3480156103c857600080fd5b506102a2600480360360208110156103df57600080fd5b50356001600160a01b03166108d1565b3480156103fb57600080fd5b506103756108e3565b34801561041057600080fd5b506104196108e9565b6040805161ffff9092168252519081900360200190f35b34801561043c57600080fd5b506103a66108ee565b34801561045157600080fd5b506103756108f3565b34801561046657600080fd5b506102a2610893565b34801561047b57600080fd5b506103756108f9565b34801561049057600080fd5b506104cf600480360360808110156104a757600080fd5b506001600160a01b0381358116916020810135909116906040810135906060013515156108ff565b604080519115158252519081900360200190f35b3480156104ef57600080fd5b506103a6610d91565b34801561050457600080fd5b506102a2610d96565b34801561051957600080fd5b50610375610d9c565b34801561052e57600080fd5b506103a6610da2565b34801561054357600080fd5b506102a2610da7565b34801561055857600080fd5b506102a26004803603602081101561056f57600080fd5b50356001600160a01b0316610dac565b34801561058b57600080fd5b506103a6610dbe565b3480156105a057600080fd5b50610375610dc3565b3480156105b557600080fd5b50610375610dc9565b3480156105ca57600080fd5b506102a2610dcf565b3480156105df57600080fd5b506104cf610dd5565b3480156105f457600080fd5b506102a2610dde565b34801561060957600080fd5b506102f3610de4565b34801561061e57600080fd5b506106e16004803603604081101561063557600080fd5b81019060208101813564010000000081111561065057600080fd5b82018360208201111561066257600080fd5b8035906020019184600183028401116401000000008311171561068457600080fd5b9193909290916020810190356401000000008111156106a257600080fd5b8201836020820111156106b457600080fd5b803590602001918460018302840111640100000000831117156106d657600080fd5b509092509050610de9565b005b3480156106ef57600080fd5b506102a2611537565b34801561070457600080fd5b506102a26004803603602081101561071b57600080fd5b503561153d565b34801561072e57600080fd5b506102a26004803603602081101561074557600080fd5b5035611598565b34801561075857600080fd5b506103756115b1565b34801561076d57600080fd5b506102a26115b7565b34801561078257600080fd5b506103756115bd565b34801561079757600080fd5b506102a26115c3565b3480156107ac57600080fd5b506106e16115c9565b3480156107c157600080fd5b506106e1600480360360208110156107d857600080fd5b50356001600160a01b0316611692565b3480156107f457600080fd5b506103756004803603602081101561080b57600080fd5b50356117eb565b34801561081e57600080fd5b506103756117f8565b34801561083357600080fd5b506103a66117fe565b34801561084857600080fd5b50610375611803565b34801561085d57600080fd5b506102a26004803603602081101561087457600080fd5b50356001600160a01b0316611809565b600181565b602881565b605081565b606481565b600b5481565b60015481565b600c5481565b600681815481106108b757fe5b6000918252602090912001546001600160a01b0316905081565b60076020526000908152604090205481565b61100181565b603881565b600881565b61200081565b61100581565b6000805460ff16610957576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604482015290519081900360640190fd5b33612000146109975760405162461bcd60e51b815260040180806020018281038252602f815260200180612377602f913960400191505060405180910390fd5b60008215610a4a576110026001600160a01b0316639a99b4f06110056109c8600e548861181b90919063ffffffff16565b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015610a1757600080fd5b505af1158015610a2b573d6000803e3d6000fd5b505050506040513d6020811015610a4157600080fd5b50519050610b59565b604080516309a99b4f60e41b8152611005600482015260248101869052905161100491639a99b4f09160448083019260209291908290030181600087803b158015610a9457600080fd5b505af1158015610aa8573d6000803e3d6000fd5b505050506040513d6020811015610abe57600080fd5b5051600e5490915015610b5957600e54604080516309a99b4f60e41b81526110056004820152602481019290925251610b569161100291639a99b4f0916044808201926020929091908290030181600087803b158015610b1d57600080fd5b505af1158015610b31573d6000803e3d6000fd5b505050506040513d6020811015610b4757600080fd5b5051829063ffffffff61181b16565b90505b600c805460010190556000610b6d8261187e565b600954909150610b83908263ffffffff61181b16565b600955600a54610bab908290610b9f908563ffffffff61181b16565b9063ffffffff6118a716565b600a556001600160a01b038716600090815260056020526040902054610c1757600680546001810182556000919091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319166001600160a01b0389161790555b6001600160a01b038088166000908152600560209081526040808320805460010190559289168252600790522054610c9557600880546001810182556000919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319166001600160a01b0388161790555b6001600160a01b038616600090815260076020526040902080546001019055600c54606411610d8457600b54600954600a5460408051938452602084019290925282820152517f2649b1b772a1a74bd332a67695e285317dd722941166595741c60a00fa65bb759181900360600190a16000610d0f6118e9565b90506000610d1b611bcd565b6001600160a01b0389166000908152600d6020526040902054909150610d59908290610d4d908563ffffffff61181b16565b9063ffffffff61181b16565b6001600160a01b0389166000908152600d6020526040812091909155600b80546001019055600c5550505b5060019695505050505050565b600281565b60035481565b61100881565b600b81565b600581565b60056020526000908152604090205481565b600981565b61100781565b61100681565b600a5481565b60005460ff1681565b60045481565b600081565b3361100714610e295760405162461bcd60e51b815260040180806020018281038252602e8152602001806122bc602e913960400191505060405180910390fd5b60005460ff16610e6a5760405162461bcd60e51b81526004018080602001828103825260218152602001806122ea6021913960400191505060405180910390fd5b610ede84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601f81527f68656164657252656c61796572526577617264526174654d6f6c6563756c650060208201529150611e4b9050565b15610fab5760208114610f225760405162461bcd60e51b81526004018080602001828103825260328152602001806123a66032913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610f6091858580838501838280828437600092019190915250611f3292505050565b9050600254811115610fa35760405162461bcd60e51b81526004018080602001828103825260608152602001806121956060913960600191505060405180910390fd5b6001556114a5565b61100484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051606081019091526022808252909250905061229a6020830139611e4b565b156110dc57602081146110485760405162461bcd60e51b815260040180806020018281038252602e81526020018061224b602e913960400191505060405180910390fd5b604080516020601f840181900481028201810190925282815260009161108691858580838501838280828437600092019190915250611f3292505050565b9050801580159061109957506001548110155b6110d45760405162461bcd60e51b815260040180806020018281038252606c81526020018061230b606c913960800191505060405180910390fd5b6002556114a5565b61115084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601a81527f63616c6c6572436f6d70656e736174696f6e4d6f6c6563756c6500000000000060208201529150611e4b9050565b1561121d57602081146111945760405162461bcd60e51b815260040180806020018281038252602e81526020018061224b602e913960400191505060405180910390fd5b604080516020601f84018190048102820181019092528281526000916111d291858580838501838280828437600092019190915250611f3292505050565b90506004548111156112155760405162461bcd60e51b81526004018080602001828103825260568152602001806121f56056913960600191505060405180910390fd5b6003556114a5565b61129184848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601d81527f63616c6c6572436f6d70656e736174696f6e44656e6f6d696e61746f7200000060208201529150611e4b9050565b1561136957602081146112d55760405162461bcd60e51b815260040180806020018281038252602e81526020018061224b602e913960400191505060405180910390fd5b604080516020601f840181900481028201810190925282815260009161131391858580838501838280828437600092019190915250611f3292505050565b9050801580159061132657506003548110155b6113615760405162461bcd60e51b81526004018080602001828103825260618152602001806121066061913960800191505060405180910390fd5b6004556114a5565b6113dd84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601b81527f64796e616d69634578747261496e63656e74697665416d6f756e74000000000060208201529150611e4b9050565b1561146857602081146114215760405162461bcd60e51b815260040180806020018281038252602e815260200180612167602e913960400191505060405180910390fd5b604080516020601f840181900481028201810190925282815260009161145f91858580838501838280828437600092019190915250611f3292505050565b600e55506114a5565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b60025481565b60006028821161154e575080611593565b81602810801561155f575060508211155b1561156c57506028611593565b60508211801561157d5750606e8211155b1561158d57506078819003611593565b50600481045b919050565b6000602882116115a9575080611593565b506028611593565b61100281565b600e5481565b61100381565b60095481565b60005460ff1615611621576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b60005460ff161561166f576040805162461bcd60e51b8152602060048201526013602482015272185b1c9958591e481a5b9a5d1a585b1a5e9959606a1b604482015290519081900360640190fd5b60018080556005600255600381905560506004556000805460ff19169091179055565b6001600160a01b0381166000908152600d6020526040902054806116f1576040805162461bcd60e51b81526020600482015260116024820152701b9bc81c995b185e595c881c995dd85c99607a1b604482015290519081900360640190fd5b6001600160a01b0382166000818152600d60205260408082208290555184929184156108fc02918591818181858888f193505050506117a15760405161100290819084156108fc029085906000818181858888f1935050505015801561175b573d6000803e3d6000fd5b506040805161100281526020810185905281517f24502838a334c8f2bb2ee1f8262a4fa7183e4489a717e96cc824e325f8b39e11929181900390910190a15050506117e8565b604080516001600160a01b03851681526020810184905281517f24502838a334c8f2bb2ee1f8262a4fa7183e4489a717e96cc824e325f8b39e11929181900390910190a150505b50565b600881815481106108b757fe5b61100081565b600381565b61100481565b600d6020526000908152604090205481565b600082820183811015611875576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b90505b92915050565b600061187860025461189b60015485611f3790919063ffffffff16565b9063ffffffff611f9016565b600061187583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611fd2565b600954600680546040805160208084028201810190925282815260009493859360609383018282801561194557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611927575b5050505050905060608151604051908082528060200260200182016040528015611979578160200160208202803683370190505b50905060005b8251811015611a0657600083828151811061199657fe5b6020026020010151905060006119d060056000846001600160a01b03166001600160a01b0316815260200190815260200160002054611598565b9050808484815181106119df57fe5b60209081029190910101526119fa868263ffffffff61181b16565b9550505060010161197f565b506000611a2460045461189b60035488611f3790919063ffffffff16565b9050611a36858263ffffffff6118a716565b94508460015b8451811015611b0d576000611a718761189b8a888681518110611a5b57fe5b6020026020010151611f3790919063ffffffff16565b9050611abe81600d6000898681518110611a8757fe5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205461181b90919063ffffffff16565b600d6000888581518110611ace57fe5b6020908102919091018101516001600160a01b0316825281019190915260400160002055611b02838263ffffffff6118a716565b925050600101611a3c565b50611b2381600d600087600081518110611a8757fe5b600d600086600081518110611b3457fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002081905550600060098190555060008090505b8451811015611bb55760056000868381518110611b8757fe5b6020908102919091018101516001600160a01b03168252810191909152604001600090812055600101611b6e565b50611bc2600660006120ce565b509450505050505b90565b600a546008805460408051602080840282018101909252828152600094938593606093830182828015611c2957602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611c0b575b5050505050905060608151604051908082528060200260200182016040528015611c5d578160200160208202803683370190505b50905060005b8251811015611cdc576000838281518110611c7a57fe5b602002602001015190506000611cb460076000846001600160a01b03166001600160a01b031681526020019081526020016000205461153d565b905080848481518110611cc357fe5b6020908102919091010152949094019350600101611c63565b506000611cfa60045461189b60035488611f3790919063ffffffff16565b9050611d0c858263ffffffff6118a716565b94508460015b8451811015611d96576000611d318761189b8a888681518110611a5b57fe5b9050611d4781600d6000898681518110611a8757fe5b600d6000888581518110611d5757fe5b6020908102919091018101516001600160a01b0316825281019190915260400160002055611d8b838263ffffffff6118a716565b925050600101611d12565b50611dac81600d600087600081518110611a8757fe5b600d600086600081518110611dbd57fe5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020819055506000600a8190555060008090505b8451811015611e3e5760076000868381518110611e1057fe5b6020908102919091018101516001600160a01b03168252810191909152604001600090812055600101611df7565b50611bc2600860006120ce565b6000816040516020018082805190602001908083835b60208310611e805780518252601f199092019160209182019101611e61565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310611eee5780518252601f199092019160209182019101611ecf565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b600082611f4657506000611878565b82820282848281611f5357fe5b04146118755760405162461bcd60e51b81526004018080602001828103825260218152602001806122796021913960400191505060405180910390fd5b600061187583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612069565b600081848411156120615760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561202657818101518382015260200161200e565b50505050905090810190601f1680156120535780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600081836120b85760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561202657818101518382015260200161200e565b5060008385816120c457fe5b0495945050505050565b50805460008255906000526020600020908101906117e89190611bca91905b8082111561210157600081556001016120ed565b509056fe746865206e657743616c6c6572436f6d70656e736174696f6e44656e6f6d696e61746f72206d757374206e6f74206265207a65726f20616e64206e6f206c657373207468616e2063616c6c6572436f6d70656e736174696f6e4d6f6c6563756c656c656e677468206f662064796e616d69634578747261496e63656e74697665416d6f756e74206d69736d617463686e65772068656164657252656c61796572526577617264526174654d6f6c6563756c652073686f756c646e27742062652067726561746572207468616e2068656164657252656c617965725265776172645261746544656e6f6d696e61746f726e65772063616c6c6572436f6d70656e736174696f6e4d6f6c6563756c652073686f756c646e27742062652067726561746572207468616e2063616c6c6572436f6d70656e736174696f6e44656e6f6d696e61746f726c656e677468206f6620726577617264466f7256616c696461746f725365744368616e6765206d69736d61746368536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7768656164657252656c617965725265776172645261746544656e6f6d696e61746f72746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374636f6e747261637420686173206e6f74206265656e20696e697469616c697a6564746865206e65772068656164657252656c617965725265776172645261746544656e6f6d696e61746f72206d757374206e6f74206265207a65726f20616e64206e6f206c657373207468616e2068656164657252656c61796572526577617264526174654d6f6c6563756c65746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e74726163746c656e677468206f662068656164657252656c61796572526577617264526174654d6f6c6563756c65206d69736d61746368a2646970667358221220ed761a0a8bb4eac3f5f94897efb6059f8cb261a19ed73bef336cbc05af2a532064736f6c63430006040033" + } + }, + "13082000": { + "0x0000000000000000000000000000000000001000": { + "balance": "0x0", + "code": "0x6080604052600436106102e45760003560e01c80638624988211610190578063c8509d81116100dc578063eb57e20211610095578063f9a2bbc71161006f578063f9a2bbc714610a54578063fc3e590814610a69578063fccc281314610a7e578063fd6a687914610a93576102e4565b8063eb57e202146109e6578063eda5868c14610a19578063f340fa0114610a2e576102e4565b8063c8509d81146106d8578063d86222d51461097d578063daacdb6614610992578063dc927faf146109a7578063e086c7b1146109bc578063e1c7392a146109d1576102e4565b8063aaf5eb6811610149578063ad3c9da611610123578063ad3c9da6146108d0578063b7ab4db514610903578063bf9f4995146104c0578063c81b166214610968576102e4565b8063aaf5eb68146107db578063ab51bb96146107f0578063ac43175114610805576102e4565b8063862498821461075d57806396713da9146107725780639dc0926214610787578063a1a11bf51461079c578063a5422d5c146107b1578063a78abc16146107c6576102e4565b806351e806721161024f57806370fd5bad116102085780637942fd05116101e25780637942fd05146106ae57806381650b62146106c3578063831d65d1146106d8578063853230aa14610699576102e4565b806370fd5bad1461066f57806375d47a0a1461068457806378dfed4a14610699576102e4565b806351e8067214610572578063565c56b3146105875780635667515a146105ba5780635d77156c146105cf5780636969a25c146105e45780636e47b4821461065a576102e4565b80633de0f0d8116102a15780633de0f0d8146104ab5780633dffc387146104c057806343756e5c146104eb578063493279b11461051c5780634bf6c882146105485780635192c82c1461055d576102e4565b80630bee7a67146102e95780631182b87514610317578063152ad3b8146104115780631ff180691461043a578063219f22d51461046157806335409f7f14610476575b600080fd5b3480156102f557600080fd5b506102fe610aa8565b6040805163ffffffff9092168252519081900360200190f35b34801561032357600080fd5b5061039c6004803603604081101561033a57600080fd5b60ff8235169190810190604081016020820135600160201b81111561035e57600080fd5b82018360208201111561037057600080fd5b803590602001918460018302840111600160201b8311171561039157600080fd5b509092509050610aad565b6040805160208082528351818301528351919283929083019185019080838360005b838110156103d65781810151838201526020016103be565b50505050905090810190601f1680156104035780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561041d57600080fd5b50610426610c9a565b604080519115158252519081900360200190f35b34801561044657600080fd5b5061044f610ca3565b60408051918252519081900360200190f35b34801561046d57600080fd5b506102fe610ca9565b34801561048257600080fd5b506104a96004803603602081101561049957600080fd5b50356001600160a01b0316610cae565b005b3480156104b757600080fd5b5061044f610fc2565b3480156104cc57600080fd5b506104d5610fc8565b6040805160ff9092168252519081900360200190f35b3480156104f757600080fd5b50610500610fcd565b604080516001600160a01b039092168252519081900360200190f35b34801561052857600080fd5b50610531610fd3565b6040805161ffff9092168252519081900360200190f35b34801561055457600080fd5b506104d5610fd8565b34801561056957600080fd5b5061044f610fdd565b34801561057e57600080fd5b50610500610fe3565b34801561059357600080fd5b5061044f600480360360208110156105aa57600080fd5b50356001600160a01b0316610fe9565b3480156105c657600080fd5b506104d561103b565b3480156105db57600080fd5b506102fe611040565b3480156105f057600080fd5b5061060e6004803603602081101561060757600080fd5b5035611045565b604080516001600160a01b039788168152958716602087015293909516848401526001600160401b0390911660608401521515608083015260a082019290925290519081900360c00190f35b34801561066657600080fd5b506105006110a9565b34801561067b57600080fd5b506104d56110af565b34801561069057600080fd5b506105006110b4565b3480156106a557600080fd5b5061044f6110ba565b3480156106ba57600080fd5b506104d56110c0565b3480156106cf57600080fd5b506102fe6110c5565b3480156106e457600080fd5b506104a9600480360360408110156106fb57600080fd5b60ff8235169190810190604081016020820135600160201b81111561071f57600080fd5b82018360208201111561073157600080fd5b803590602001918460018302840111600160201b8311171561075257600080fd5b5090925090506110ca565b34801561076957600080fd5b5061044f61117d565b34801561077e57600080fd5b506104d5611183565b34801561079357600080fd5b50610500611188565b3480156107a857600080fd5b5061050061118e565b3480156107bd57600080fd5b5061039c611194565b3480156107d257600080fd5b506104266111b3565b3480156107e757600080fd5b5061044f6111bc565b3480156107fc57600080fd5b506102fe61103b565b34801561081157600080fd5b506104a96004803603604081101561082857600080fd5b810190602081018135600160201b81111561084257600080fd5b82018360208201111561085457600080fd5b803590602001918460018302840111600160201b8311171561087557600080fd5b919390929091602081019035600160201b81111561089257600080fd5b8201836020820111156108a457600080fd5b803590602001918460018302840111600160201b831117156108c557600080fd5b5090925090506111c5565b3480156108dc57600080fd5b5061044f600480360360208110156108f357600080fd5b50356001600160a01b03166115bc565b34801561090f57600080fd5b506109186115ce565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561095457818101518382015260200161093c565b505050509050019250505060405180910390f35b34801561097457600080fd5b506105006116f4565b34801561098957600080fd5b5061044f6116fa565b34801561099e57600080fd5b5061044f611706565b3480156109b357600080fd5b5061050061170c565b3480156109c857600080fd5b5061044f611712565b3480156109dd57600080fd5b506104a9611717565b3480156109f257600080fd5b506104a960048036036020811015610a0957600080fd5b50356001600160a01b031661191a565b348015610a2557600080fd5b506102fe611ae9565b6104a960048036036020811015610a4457600080fd5b50356001600160a01b0316611aee565b348015610a6057600080fd5b50610500611df3565b348015610a7557600080fd5b506104d5611df9565b348015610a8a57600080fd5b50610500611dfe565b348015610a9f57600080fd5b50610500611e04565b606481565b60005460609060ff16610b03576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b3361200014610b435760405162461bcd60e51b815260040180806020018281038252602f815260200180614951602f913960400191505060405180910390fd5b610b4b614158565b6000610b8c85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611e0a92505050565b9150915080610ba857610b9f6064611f63565b92505050610c93565b815160009060ff16610bc857610bc18360200151611fc4565b9050610c5f565b825160ff1660011415610c5b57826020015151600114610c35577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb26040518080602001828103825260258152602001806142866025913960400191505060405180910390a1506067610c56565b610bc18360200151600081518110610c4957fe5b6020026020010151612dca565b610c5f565b5060655b63ffffffff8116610c845750506040805160008152602081019091529150610c939050565b610c8d81611f63565b93505050505b9392505050565b60075460ff1681565b60035481565b606881565b3361100114610cee5760405162461bcd60e51b81526004018080602001828103825260298152602001806149ad6029913960400191505060405180910390fd5b6001600160a01b03811660009081526004602052604090205480610d125750610fbf565b600181039050600060018281548110610d2757fe5b60009182526020909120600360049092020101546001549091506000190180610d7657600060018481548110610d5957fe5b906000526020600020906004020160030181905550505050610fbf565b6040805183815290516001600160a01b038616917f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a70919081900360200190a26001600160a01b038416600090815260046020526040812055600154600019018314610ef857600180546000198101908110610ded57fe5b906000526020600020906004020160018481548110610e0857fe5b6000918252602082208354600492830290910180546001600160a01b03199081166001600160a01b0393841617825560018087015481840180548416918616919091179055600280880180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b199094169390931790556003948501549401939093558254868401939192919087908110610ecd57fe5b600091825260208083206004909202909101546001600160a01b031683528201929092526040019020555b6001805480610f0357fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b03191690556003018190559155818381610f5657fe5b0490508015610fba5760015460005b81811015610fb7578260018281548110610f7b57fe5b9060005260206000209060040201600301540160018281548110610f9b57fe5b6000918252602090912060036004909202010155600101610f65565b50505b505050505b50565b61271081565b600181565b61100181565b603881565b600881565b60065481565b61200081565b6001600160a01b03811660009081526004602052604081205480611011576000915050611036565b60018082038154811061102057fe5b9060005260206000209060040201600301549150505b919050565b600081565b606781565b6001818154811061105257fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b61100881565b6103e881565b600b81565b606681565b336120001461110a5760405162461bcd60e51b815260040180806020018281038252602f815260200180614951602f913960400191505060405180910390fd5b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a1505050565b60025481565b600981565b61100781565b61100681565b6040518061062001604052806105ef81526020016143626105ef913981565b60005460ff1681565b6402540be40081565b60005460ff16611218576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b33611007146112585760405162461bcd60e51b815260040180806020018281038252602e8152602001806142cc602e913960400191505060405180910390fd5b6112c284848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b60208201529150612f419050565b1561139d57602081146113065760405162461bcd60e51b815260040180806020018281038252602681526020018061431b6026913960400191505060405180910390fd5b604080516020601f84018190048102820181019092528281526000916113449185858083850183828082843760009201919091525061302992505050565b90506064811015801561135a5750620186a08111155b6113955760405162461bcd60e51b815260040180806020018281038252602781526020018061425f6027913960400191505060405180910390fd5b60025561152a565b6113fd84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260098152686275726e526174696f60b81b60208201529150612f419050565b156114ed5760208114611457576040805162461bcd60e51b815260206004820152601c60248201527f6c656e677468206f66206275726e526174696f206d69736d6174636800000000604482015290519081900360640190fd5b604080516020601f84018190048102820181019092528281526000916114959185858083850183828082843760009201919091525061302992505050565b90506127108111156114d85760405162461bcd60e51b815260040180806020018281038252602b815260200180614209602b913960400191505060405180910390fd5b6006556007805460ff1916600117905561152a565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b60046020526000908152604090205481565b6001546060906000805b8281101561161f57600181815481106115ed57fe5b9060005260206000209060040201600201601c9054906101000a900460ff16611617576001909101905b6001016115d8565b5060608160405190808252806020026020018201604052801561164c578160200160208202803683370190505b50600092509050815b838110156116ec576001818154811061166a57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166116e4576001818154811061169a57fe5b600091825260209091206004909102015482516001600160a01b03909116908390859081106116c557fe5b6001600160a01b03909216602092830291909101909101526001909201915b600101611655565b509250505090565b61100281565b67016345785d8a000081565b60055481565b61100381565b602981565b60005460ff161561176f576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b611777614158565b600061179d6040518061062001604052806105ef81526020016143626105ef9139611e0a565b91509150806117dd5760405162461bcd60e51b81526004018080602001828103825260218152602001806143416021913960400191505060405180910390fd5b60005b826020015151811015611902576001836020015182815181106117ff57fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a0909301516003909301929092559186015180519185019391859081106118d557fe5b602090810291909101810151516001600160a01b03168252810191909152604001600020556001016117e0565b50506103e8600255506000805460ff19166001179055565b336110011461195a5760405162461bcd60e51b81526004018080602001828103825260298152602001806149ad6029913960400191505060405180910390fd5b6001600160a01b0381166000908152600460205260409020548061197e5750610fbf565b60018103905060006001828154811061199357fe5b90600052602060002090600402016003015490506000600183815481106119b657fe5b906000526020600020906004020160030181905550600060018080549050039050836001600160a01b03167f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d836040518082815260200191505060405180910390a280611a2557505050610fbf565b6000818381611a3057fe5b0490508015610fba5760005b84811015611a8e578160018281548110611a5257fe5b9060005260206000209060040201600301540160018281548110611a7257fe5b6000918252602090912060036004909202010155600101611a3c565b50600180549085015b81811015610fb7578260018281548110611aad57fe5b9060005260206000209060040201600301540160018281548110611acd57fe5b6000918252602090912060036004909202010155600101611a97565b606581565b334114611b2c5760405162461bcd60e51b815260040180806020018281038252602d815260200180614980602d913960400191505060405180910390fd5b60005460ff16611b7f576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b60003411611bcc576040805162461bcd60e51b81526020600482015260156024820152746465706f7369742076616c7565206973207a65726f60581b604482015290519081900360640190fd5b6001600160a01b0381166000908152600460205260409020546007543491906103e89060ff1615611bfc57506006545b600083118015611c0c5750600081115b15611cb5576000611c35612710611c29868563ffffffff61302e16565b9063ffffffff61308716565b90508015611cb35760405161dead9082156108fc029083906000818181858888f19350505050158015611c6c573d6000803e3d6000fd5b506040805182815290517f627059660ea01c4733a328effb2294d2f86905bf806da763a89cee254de8bee59181900360200190a1611cb0848263ffffffff6130c916565b93505b505b8115611dad576000600180840381548110611ccc57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff1615611d37576040805185815290516001600160a01b038716917ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4919081900360200190a2611da7565b600354611d4a908563ffffffff61310b16565b6003908155810154611d62908563ffffffff61310b16565b60038201556040805185815290516001600160a01b038716917f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc055919081900360200190a25b50611ded565b6040805184815290516001600160a01b038616917ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4919081900360200190a25b50505050565b61100081565b600381565b61dead81565b61100481565b611e12614158565b6000611e1c614158565b611e24614170565b611e35611e3086613165565b61318a565b90506000805b611e44836131d4565b15611f555780611e6957611e5f611e5a846131f5565b613243565b60ff168452611f4d565b8060011415611f48576060611e85611e80856131f5565b6132fa565b90508051604051908082528060200260200182016040528015611ec257816020015b611eaf614190565b815260200190600190039081611ea75790505b50602086015260005b8151811015611f3d57611edc614190565b6000611efa848481518110611eed57fe5b60200260200101516133cb565b9150915080611f1757876000995099505050505050505050611f5e565b8188602001518481518110611f2857fe5b60209081029190910101525050600101611ecb565b506001925050611f4d565b611f55565b600101611e3b565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b6060815260200190600190039081611f7d579050509050611fa38363ffffffff166134a8565b81600081518110611fb057fe5b6020026020010181905250610c93816134bb565b6000806060611fd284613545565b915091508161207f577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2816040518080602001828103825283818151815260200191508051906020019080838360005b8381101561203a578181015183820152602001612022565b50505050905090810190601f1680156120675780820380516001836020036101000a031916815260200191505b509250505060405180910390a1606692505050611036565b600080805b6001548110156120fc5767016345785d8a0000600182815481106120a457fe5b906000526020600020906004020160030154106120c6576001909201916120f4565b6000600182815481106120d557fe5b90600052602060002090600402016003015411156120f4576001909101905b600101612084565b50606082604051908082528060200260200182016040528015612129578160200160208202803683370190505b509050606083604051908082528060200260200182016040528015612158578160200160208202803683370190505b509050606084604051908082528060200260200182016040528015612187578160200160208202803683370190505b5090506060856040519080825280602002602001820160405280156121b6578160200160208202803683370190505b50905060006060866040519080825280602002602001820160405280156121e7578160200160208202803683370190505b509050606087604051908082528060200260200182016040528015612216578160200160208202803683370190505b509050600098506000975060608d905060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b15801561226357600080fd5b505afa158015612277573d6000803e3d6000fd5b505050506040513d602081101561228d57600080fd5b5051905067016345785d8a0000811115612302577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb26040518080602001828103825260218152602001806142fa6021913960400191505060405180910390a160689d5050505050505050505050505050611036565b60005b6001548110156125755767016345785d8a00006001828154811061232557fe5b906000526020600020906004020160030154106124ab576001818154811061234957fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b03168a8d8151811061237a57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be400600183815481106123af57fe5b906000526020600020906004020160030154816123c857fe5b06600183815481106123d657fe5b9060005260206000209060040201600301540390506123fe83826130c990919063ffffffff16565b8a8e8151811061240a57fe5b6020026020010181815250506001828154811061242357fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316888e8151811061245457fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081898e8151811061248157fe5b602090810291909101015261249c878263ffffffff61310b16565b6001909d019c965061256d9050565b6000600182815481106124ba57fe5b906000526020600020906004020160030154111561256d57600181815481106124df57fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316858c8151811061251057fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506001818154811061253d57fe5b906000526020600020906004020160030154848c8151811061255b57fe5b60209081029190910101526001909a01995b600101612305565b50600085156129b3576110046001600160a01b0316636e056520878c8c8b60025442016040518663ffffffff1660e01b815260040180806020018060200180602001856001600160401b03166001600160401b03168152602001848103845288818151815260200191508051906020019060200280838360005b838110156126075781810151838201526020016125ef565b50505050905001848103835287818151815260200191508051906020019060200280838360005b8381101561264657818101518382015260200161262e565b50505050905001848103825286818151815260200191508051906020019060200280838360005b8381101561268557818101518382015260200161266d565b505050509050019750505050505050506020604051808303818588803b1580156126ae57600080fd5b505af1935050505080156126d457506040513d60208110156126cf57600080fd5b505160015b61290f576040516000815260443d10156126f05750600061278b565b60046000803e60005160e01c6308c379a0811461271157600091505061278b565b60043d036004833e81513d60248201116001600160401b038211171561273c5760009250505061278b565b80830180516001600160401b0381111561275d57600094505050505061278b565b8060208301013d860181111561277b5760009550505050505061278b565b601f01601f191660405250925050505b80612796575061283a565b60019150867fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280826040518080602001828103825283818151815260200191508051906020019080838360005b838110156127fa5781810151838201526020016127e2565b50505050905090810190601f1680156128275780820380516001836020036101000a031916815260200191505b509250505060405180910390a25061290a565b3d808015612864576040519150601f19603f3d011682016040523d82523d6000602084013e612869565b606091505b5060019150867fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a45826040518080602001828103825283818151815260200191508051906020019080838360005b838110156128ce5781810151838201526020016128b6565b50505050905090810190601f1680156128fb5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b6129b3565b801561294d576040805188815290517fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b709181900360200190a16129b1565b604080516020808252601b908201527f6261746368207472616e736665722072657475726e2066616c7365000000000081830152905188917fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280919081900360600190a25b505b8015612b695760005b8851811015612b675760008982815181106129d357fe5b602002602001015190506000600182815481106129ec57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc9185908110612a1d57fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f1935050505090508015612ad95760018281548110612a5e57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d9185908110612aad57fe5b9060005260206000209060040201600301546040518082815260200191505060405180910390a2612b5d565b60018281548110612ae657fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d9185908110612b3557fe5b9060005260206000209060040201600301546040518082815260200191505060405180910390a25b50506001016129bc565b505b845115612cb35760005b8551811015612cb1576000868281518110612b8a57fe5b60200260200101516001600160a01b03166108fc878481518110612baa57fe5b60200260200101519081150290604051600060405180830381858888f1935050505090508015612c4057868281518110612be057fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d878481518110612c1e57fe5b60200260200101516040518082815260200191505060405180910390a2612ca8565b868281518110612c4c57fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d878481518110612c8a57fe5b60200260200101516040518082815260200191505060405180910390a25b50600101612b73565b505b4715612d1c576040805147815290517f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d9181900360200190a1604051611002904780156108fc02916000818181858888f19350505050158015612d1a573d6000803e3d6000fd5b505b60006003819055600555825115612d3657612d3683613627565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015612d7357600080fd5b505af1158015612d87573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a15060009f9e505050505050505050505050505050565b80516001600160a01b0316600090815260046020526040812054801580612e1b5750600180820381548110612dfb57fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b15612e615782516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a26000915050611036565b600154600554600019820111801590612eb75784516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a260009350505050611036565b600580546001908101909155805481906000198601908110612ed557fe5b6000918252602082206002600490920201018054921515600160e01b0260ff60e01b199093169290921790915585516040516001600160a01b03909116917ff226e7d8f547ff903d9d419cf5f54e0d7d07efa9584135a53a057c5f1f27f49a91a2506000949350505050565b6000816040516020018082805190602001908083835b60208310612f765780518252601f199092019160209182019101612f57565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310612fe45780518252601f199092019160209182019101612fc5565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052805190602001201490505b92915050565b015190565b60008261303d57506000613023565b8282028284828161304a57fe5b0414610c935760405162461bcd60e51b81526004018080602001828103825260218152602001806142ab6021913960400191505060405180910390fd5b6000610c9383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613ae8565b6000610c9383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613b8a565b600082820183811015610c93576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b61316d6141c5565b506040805180820190915281518152602082810190820152919050565b613192614170565b61319b82613be4565b6131a457600080fd5b60006131b38360200151613c1e565b60208085015160408051808201909152868152920190820152915050919050565b60006131de6141c5565b505080518051602091820151919092015191011190565b6131fd6141c5565b613206826131d4565b61320f57600080fd5b6020820151600061321f82613c81565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061325857508151602110155b61326157600080fd5b60006132708360200151613c1e565b905080836000015110156132cb576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b8251602080850151830180519284900392918310156132f157826020036101000a820491505b50949350505050565b606061330582613be4565b61330e57600080fd5b600061331983613db4565b905060608160405190808252806020026020018201604052801561335757816020015b6133446141c5565b81526020019060019003908161333c5790505b50905060006133698560200151613c1e565b60208601510190506000805b848110156133c05761338683613c81565b91506040518060400160405280838152602001848152508482815181106133a957fe5b602090810291909101015291810191600101613375565b509195945050505050565b6133d3614190565b60006133dd614190565b6133e5614170565b6133ee8561318a565b90506000805b6133fd836131d4565b15611f55578061342857613418613413846131f5565b613e10565b6001600160a01b031684526134a0565b80600114156134505761343d613413846131f5565b6001600160a01b031660208501526134a0565b806002141561347857613465613413846131f5565b6001600160a01b031660408501526134a0565b8060031415611f485761348d611e5a846131f5565b6001600160401b03166060850152600191505b6001016133f4565b60606130236134b683613e2a565b613f10565b60608151600014156134dc5750604080516000815260208101909152611036565b6060826000815181106134eb57fe5b602002602001015190506000600190505b835181101561352c576135228285838151811061351557fe5b6020026020010151613f62565b91506001016134fc565b50610c9361353f825160c060ff16613fdf565b82613f62565b600060606029835111156135775760006040518060600160405280602981526020016141e06029913991509150611f5e565b60005b835181101561360d5760005b818110156136045784818151811061359a57fe5b6020026020010151600001516001600160a01b03168583815181106135bb57fe5b6020026020010151600001516001600160a01b031614156135fc5760006040518060600160405280602b8152602001614234602b9139935093505050611f5e565b600101613586565b5060010161357a565b505060408051602081019091526000815260019150915091565b600154815160005b82811015613744576001613641614190565b6001838154811061364e57fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b84811015613718578681815181106136de57fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b031614156137105760009250613718565b6001016136ca565b50811561373a5780516001600160a01b03166000908152600460205260408120555b505060010161362f565b50808211156137b957805b828110156137b757600180548061376257fe5b60008281526020812060046000199093019283020180546001600160a01b03199081168255600182810180549092169091556002820180546001600160e81b031916905560039091019190915591550161374f565b505b60008183106137c857816137ca565b825b905060005b818110156139c45761387c8582815181106137e657fe5b6020026020010151600183815481106137fb57fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a08201526140d7565b61399757806001016004600087848151811061389457fe5b6020026020010151600001516001600160a01b03166001600160a01b03168152602001908152602001600020819055508481815181106138d057fe5b6020026020010151600182815481106138e557fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a0909101516003909101556139bc565b6000600182815481106139a657fe5b9060005260206000209060040201600301819055505b6001016137cf565b5082821115611ded57825b82811015610fba5760018582815181106139e557fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782559585015181840180549184169188169190911790556040850151600282018054606088015160808901511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590971692909a169190911792909216939093171695909517905560a09092015160039093019290925587519084019290889085908110613abb57fe5b602090810291909101810151516001600160a01b03168252810191909152604001600020556001016139cf565b60008183613b745760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613b39578181015183820152602001613b21565b50505050905090810190601f168015613b665780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581613b8057fe5b0495945050505050565b60008184841115613bdc5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315613b39578181015183820152602001613b21565b505050900390565b8051600090613bf557506000611036565b6020820151805160001a9060c0821015613c1457600092505050611036565b5060019392505050565b8051600090811a6080811015613c38576000915050611036565b60b8811080613c53575060c08110801590613c53575060f881105b15613c62576001915050611036565b60c0811015613c765760b519019050611036565b60f519019050611036565b80516000908190811a6080811015613c9c5760019150613dad565b60b8811015613cb157607e1981019150613dad565b60c0811015613d2b57600060b78203600186019550806020036101000a865104915060018101820193505080831015613d25576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50613dad565b60f8811015613d405760be1981019150613dad565b600060f78203600186019550806020036101000a865104915060018101820193505080831015613dab576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b8051600090613dc557506000611036565b60008090506000613dd98460200151613c1e565b602085015185519181019250015b80821015613e0757613df882613c81565b60019093019290910190613de7565b50909392505050565b8051600090601514613e2157600080fd5b61302382613243565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416613e6e57506018613e92565b6fffffffffffffffffffffffffffffffff198416613e8e57506010613e92565b5060005b6020811015613ec857818181518110613ea757fe5b01602001516001600160f81b03191615613ec057613ec8565b600101613e92565b60008160200390506060816040519080825280601f01601f191660200182016040528015613efd576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015613f425750607f60f81b82600081518110613f3057fe5b01602001516001600160f81b03191611155b15613f4e575080611036565b613023613f608351608060ff16613fdf565b835b6060806040519050835180825260208201818101602087015b81831015613f93578051835260209283019201613f7b565b50855184518101855292509050808201602086015b81831015613fc0578051835260209283019201613fa8565b508651929092011591909101601f01601f191660405250905092915050565b606068010000000000000000831061402f576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b604080516001808252818301909252606091602082018180368337019050509050603784116140895782840160f81b8160008151811061406b57fe5b60200101906001600160f81b031916908160001a9053509050613023565b606061409485613e2a565b90508381510160370160f81b826000815181106140ad57fe5b60200101906001600160f81b031916908160001a9053506140ce8282613f62565b95945050505050565b805182516000916001600160a01b039182169116148015614111575081602001516001600160a01b031683602001516001600160a01b0316145b8015614136575081604001516001600160a01b031683604001516001600160a01b0316145b8015610c935750506060908101519101516001600160401b0390811691161490565b60408051808201909152600081526060602082015290565b60405180604001604052806141836141c5565b8152602001600081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b60405180604001604052806000815260200160008152509056fe746865206e756d626572206f662076616c696461746f72732065786365656420746865206c696d6974746865206275726e526174696f206d757374206265206e6f2067726561746572207468616e2031303030306475706c696361746520636f6e73656e7375732061646472657373206f662076616c696461746f725365747468652065787069726554696d655365636f6e64476170206973206f7574206f662072616e67656c656e677468206f66206a61696c2076616c696461746f7273206d757374206265206f6e65536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374666565206973206c6172676572207468616e2044555354595f494e434f4d494e476c656e677468206f662065787069726554696d655365636f6e64476170206d69736d617463686661696c656420746f20706172736520696e69742076616c696461746f72536574f905ec80f905e8f846942a7cdd959bfe8d9487b2a43b33565295a698f7e294b6a7edd747c0554875d3fc531d19ba1497992c5e941ff80f3f7f110ffd8920a3ac38fdef318fe94a3f86048c27395000f846946488aa4d1955ee33403f8ccb1d4de5fb97c7ade294220f003d8bdfaadf52aa1e55ae4cc485e6794875941a87e90e440a39c99aa9cb5cea0ad6a3f0b2407b86048c27395000f846949ef9f4360c606c7ab4db26b016007d3ad0ab86a0946103af86a874b705854033438383c82575f25bc29418e2db06cbff3e3c5f856410a1838649e760175786048c27395000f84694ee01c3b1283aa067c58eab4709f85e99d46de5fe94ee4b9bfb1871c64e2bcabb1dc382dc8b7c4218a29415904ab26ab0e99d70b51c220ccdcccabee6e29786048c27395000f84694685b1ded8013785d6623cc18d214320b6bb6475994a20ef4e5e4e7e36258dbf51f4d905114cb1b34bc9413e39085dc88704f4394d35209a02b1a9520320c86048c27395000f8469478f3adfc719c99674c072166708589033e2d9afe9448a30d5eaa7b64492a160f139e2da2800ec3834e94055838358c29edf4dcc1ba1985ad58aedbb6be2b86048c27395000f84694c2be4ec20253b8642161bc3f444f53679c1f3d479466f50c616d737e60d7ca6311ff0d9c434197898a94d1d678a2506eeaa365056fe565df8bc8659f28b086048c27395000f846942f7be8361c80a4c1e7e9aaf001d0877f1cfde218945f93992ac37f3e61db2ef8a587a436a161fd210b94ecbc4fb1a97861344dad0867ca3cba2b860411f086048c27395000f84694ce2fd7544e0b2cc94692d4a704debef7bcb613289444abc67b4b2fba283c582387f54c9cba7c34bafa948acc2ab395ded08bb75ce85bf0f95ad2abc51ad586048c27395000f84694b8f7166496996a7da21cf1f1b04d9b3e26a3d077946770572763289aac606e4f327c2f6cc1aa3b3e3b94882d745ed97d4422ca8da1c22ec49d880c4c097286048c27395000f846942d4c407bbe49438ed859fe965b140dcf1aab71a9943ad0939e120f33518fbba04631afe7a3ed6327b194b2bbb170ca4e499a2b0f3cc85ebfa6e8c4dfcbea86048c27395000f846946bbad7cf34b5fa511d8e963dbba288b1960e75d694853b0f6c324d1f4e76c8266942337ac1b0af1a229442498946a51ca5924552ead6fc2af08b94fcba648601d1a94a2000f846944430b3230294d12c6ab2aac5c2cd68e80b16b581947b107f4976a252a6939b771202c28e64e03f52d694795811a7f214084116949fc4f53cedbf189eeab28601d1a94a2000f84694ea0a6e3c511bbd10f4519ece37dc24887e11b55d946811ca77acfb221a49393c193f3a22db829fcc8e9464feb7c04830dd9ace164fc5c52b3f5a29e5018a8601d1a94a2000f846947ae2f5b9e386cd1b50a4550696d957cb4900f03a94e83bcc5077e6b873995c24bac871b5ad856047e19464e48d4057a90b233e026c1041e6012ada897fe88601d1a94a2000f8469482012708dafc9e1b880fd083b32182b869be8e09948e5adc73a2d233a1b496ed3115464dd6c7b887509428b383d324bc9a37f4e276190796ba5a8947f5ed8601d1a94a2000f8469422b81f8e175ffde54d797fe11eb03f9e3bf75f1d94a1c3ef7ca38d8ba80cce3bfc53ebd2903ed21658942767f7447f7b9b70313d4147b795414aecea54718601d1a94a2000f8469468bf0b8b6fb4e317a0f9d6f03eaf8ce6675bc60d94675cfe570b7902623f47e7f59c9664b5f5065dcf94d84f0d2e50bcf00f2fc476e1c57f5ca2d57f625b8601d1a94a2000f846948c4d90829ce8f72d0163c1d5cf348a862d5506309485c42a7b34309bee2ed6a235f86d16f059deec5894cc2cedc53f0fa6d376336efb67e43d167169f3b78601d1a94a2000f8469435e7a025f4da968de7e4d7e4004197917f4070f194b1182abaeeb3b4d8eba7e6a4162eac7ace23d57394c4fd0d870da52e73de2dd8ded19fe3d26f43a1138601d1a94a2000f84694d6caa02bbebaebb5d7e581e4b66559e635f805ff94c07335cf083c1c46a487f0325769d88e163b653694efaff03b42e41f953a925fc43720e45fb61a19938601d1a94a2000746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d6573736167652073656e646572206d7573742062652074686520626c6f636b2070726f6475636572746865206d6573736167652073656e646572206d75737420626520736c61736820636f6e7472616374a2646970667358221220b806ba3d9dd9e078bac9726f79b32c9b62db327924a189cc1a9e4e106ffbe50d64736f6c63430006040033" + } + }, + "18907621": { + "0x0000000000000000000000000000000000001000": { + "balance": "0x0", + "code": "0x6080604052600436106104055760003560e01c80638d19a41011610213578063c81b166211610123578063eb57e202116100ab578063f9a2bbc71161007a578063f9a2bbc714610d55578063fc3e590814610d6a578063fccc281314610d7f578063fd4ad81f14610d94578063fd6a687914610dd757610405565b8063eb57e20214610cd2578063eda5868c14610d05578063f340fa0114610d1a578063f92eb86b14610d4057610405565b8063daacdb66116100f2578063daacdb6614610c69578063dc927faf14610c7e578063e086c7b114610c93578063e1c7392a14610ca8578063e40716a114610cbd57610405565b8063c81b166214610c2a578063c8509d8114610939578063d68fb56a14610c3f578063d86222d514610c5457610405565b8063a78abc16116101a6578063ad3c9da611610175578063ad3c9da614610bb8578063b7ab4db514610beb578063b8cf4ef114610c00578063bf9f49951461065f578063c6d3394514610c1557610405565b8063a78abc1614610aae578063aaf5eb6814610ac3578063ab51bb9614610ad8578063ac43175114610aed57610405565b80639fe0f816116101e25780639fe0f81614610a5a578063a0dc275814610a6f578063a1a11bf514610a84578063a5422d5c14610a9957610405565b80638d19a410146109e85780639369d7de14610a1b57806396713da914610a305780639dc0926214610a4557610405565b80635192c82c1161031957806375d47a0a116102a157806381650b621161027057806381650b6214610924578063831d65d114610939578063853230aa146108e557806386249882146109be5780638b5ad0c9146109d357610405565b806375d47a0a146108d057806378dfed4a146108e55780637942fd05146108fa5780637a84ca2a1461090f57610405565b80635667515a116102e85780635667515a146108065780635d77156c1461081b5780636969a25c146108305780636e47b482146108a657806370fd5bad146108bb57610405565b80635192c82c1461077657806351e806721461078b57806355614fcc146107a0578063565c56b3146107d357610405565b80633365af3a1161039c57806343756e5c1161036b57806343756e5c1461068a57806345cf9daf146106bb578063493279b1146106d05780634bf6c882146106fc5780634df6e0c31461071157610405565b80633365af3a146105ed57806335409f7f146106175780633de0f0d81461064a5780633dffc3871461065f57610405565b8063152ad3b8116103d8578063152ad3b8146105705780631ff1806914610599578063219f22d5146105ae578063321d398a146105c357610405565b806304c4fec61461040a57806307a56847146104215780630bee7a67146104485780631182b87514610476575b600080fd5b34801561041657600080fd5b5061041f610dec565b005b34801561042d57600080fd5b50610436610e7f565b60408051918252519081900360200190f35b34801561045457600080fd5b5061045d610e85565b6040805163ffffffff9092168252519081900360200190f35b34801561048257600080fd5b506104fb6004803603604081101561049957600080fd5b60ff8235169190810190604081016020820135600160201b8111156104bd57600080fd5b8201836020820111156104cf57600080fd5b803590602001918460018302840111600160201b831117156104f057600080fd5b509092509050610e8a565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561053557818101518382015260200161051d565b50505050905090810190601f1680156105625780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561057c57600080fd5b5061058561111c565b604080519115158252519081900360200190f35b3480156105a557600080fd5b50610436611125565b3480156105ba57600080fd5b5061045d61112b565b3480156105cf57600080fd5b50610585600480360360208110156105e657600080fd5b5035611130565b3480156105f957600080fd5b506105856004803603602081101561061057600080fd5b50356111ff565b34801561062357600080fd5b5061041f6004803603602081101561063a57600080fd5b50356001600160a01b03166112b0565b34801561065657600080fd5b5061043661140f565b34801561066b57600080fd5b50610674611415565b6040805160ff9092168252519081900360200190f35b34801561069657600080fd5b5061069f61141a565b604080516001600160a01b039092168252519081900360200190f35b3480156106c757600080fd5b50610436611420565b3480156106dc57600080fd5b506106e5611426565b6040805161ffff9092168252519081900360200190f35b34801561070857600080fd5b5061067461142b565b34801561071d57600080fd5b50610726611430565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561076257818101518382015260200161074a565b505050509050019250505060405180910390f35b34801561078257600080fd5b5061043661152b565b34801561079757600080fd5b5061069f611531565b3480156107ac57600080fd5b50610585600480360360208110156107c357600080fd5b50356001600160a01b0316611537565b3480156107df57600080fd5b50610436600480360360208110156107f657600080fd5b50356001600160a01b031661156c565b34801561081257600080fd5b506106746115bd565b34801561082757600080fd5b5061045d6115c2565b34801561083c57600080fd5b5061085a6004803603602081101561085357600080fd5b50356115c7565b604080516001600160a01b039788168152958716602087015293909516848401526001600160401b0390911660608401521515608083015260a082019290925290519081900360c00190f35b3480156108b257600080fd5b5061069f61162b565b3480156108c757600080fd5b50610674611631565b3480156108dc57600080fd5b5061069f611636565b3480156108f157600080fd5b5061043661163c565b34801561090657600080fd5b50610674611642565b34801561091b57600080fd5b50610436611647565b34801561093057600080fd5b5061045d61164d565b34801561094557600080fd5b5061041f6004803603604081101561095c57600080fd5b60ff8235169190810190604081016020820135600160201b81111561098057600080fd5b82018360208201111561099257600080fd5b803590602001918460018302840111600160201b831117156109b357600080fd5b509092509050611652565b3480156109ca57600080fd5b50610436611705565b3480156109df57600080fd5b5061043661170b565b3480156109f457600080fd5b5061043660048036036020811015610a0b57600080fd5b50356001600160a01b0316611711565b348015610a2757600080fd5b5061041f611786565b348015610a3c57600080fd5b506106746118a0565b348015610a5157600080fd5b5061069f6118a5565b348015610a6657600080fd5b506104366118ab565b348015610a7b57600080fd5b506104366118b0565b348015610a9057600080fd5b5061069f6118b5565b348015610aa557600080fd5b506104fb6118bb565b348015610aba57600080fd5b506105856118da565b348015610acf57600080fd5b506104366118e3565b348015610ae457600080fd5b5061045d6115bd565b348015610af957600080fd5b5061041f60048036036040811015610b1057600080fd5b810190602081018135600160201b811115610b2a57600080fd5b820183602082011115610b3c57600080fd5b803590602001918460018302840111600160201b83111715610b5d57600080fd5b919390929091602081019035600160201b811115610b7a57600080fd5b820183602082011115610b8c57600080fd5b803590602001918460018302840111600160201b83111715610bad57600080fd5b5090925090506118ec565b348015610bc457600080fd5b5061043660048036036020811015610bdb57600080fd5b50356001600160a01b0316612329565b348015610bf757600080fd5b5061072661233b565b348015610c0c57600080fd5b5061043661241e565b348015610c2157600080fd5b50610436611631565b348015610c3657600080fd5b5061069f612423565b348015610c4b57600080fd5b50610436612429565b348015610c6057600080fd5b50610436612468565b348015610c7557600080fd5b50610436612474565b348015610c8a57600080fd5b5061069f61247a565b348015610c9f57600080fd5b50610436612480565b348015610cb457600080fd5b5061041f612485565b348015610cc957600080fd5b50610436612688565b348015610cde57600080fd5b5061041f60048036036020811015610cf557600080fd5b50356001600160a01b031661268e565b348015610d1157600080fd5b5061045d61279c565b61041f60048036036020811015610d3057600080fd5b50356001600160a01b03166127a1565b348015610d4c57600080fd5b50610436612aa6565b348015610d6157600080fd5b5061069f612aac565b348015610d7657600080fd5b506106746118ab565b348015610d8b57600080fd5b5061069f612ab2565b348015610da057600080fd5b50610dbe60048036036020811015610db757600080fd5b5035612ab8565b6040805192835290151560208301528051918290030190f35b348015610de357600080fd5b5061069f612ae6565b6000610df733611711565b9050600b8181548110610e0657fe5b600091825260209091206001601690920201015460ff16610e63576040805162461bcd60e51b81526020600482015260126024820152716e6f7420696e206d61696e74656e616e636560701b604482015290519081900360640190fd5b6000610e6d612429565b9050610e7a338383612aec565b505050565b60095481565b606481565b60005460609060ff16610ee0576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b3361200014610f205760405162461bcd60e51b815260040180806020018281038252602f81526020018061648b602f913960400191505060405180910390fd5b600b54610fc557610f2f6159e0565b60015460005b81811015610fc157600b80546001810182556000919091528351600080516020615e15833981519152601690920291820190815560208501516000805160206165148339815191528301805460ff191691151591909117905560408501518592610fb391600080516020615e5b833981519152909101906014615a04565b505050806001019050610f35565b5050505b610fcd615a3e565b600061100e85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612ce092505050565b915091508061102a576110216064612e39565b92505050611115565b815160009060ff1661104a576110438360200151612e9a565b90506110e1565b825160ff16600114156110dd578260200151516001146110b7577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2604051808060200182810382526025815260200180615d5b6025913960400191505060405180910390a15060676110d8565b61104383602001516000815181106110cb57fe5b6020026020010151613caa565b6110e1565b5060655b63ffffffff811661110657505060408051600081526020810190915291506111159050565b61110f81612e39565b93505050505b9392505050565b60075460ff1681565b60035481565b606881565b6001546000908210611144575060006111fa565b60006001600160a01b03166001838154811061115c57fe5b60009182526020909120600490910201546001600160a01b0316148061118c5750600854158061118c5750600a54155b8061119b575060085460095410155b806111ac57506111aa826111ff565b155b806111d557506000600b83815481106111c157fe5b906000526020600020906016020160000154115b806111e9575060016111e561233b565b5111155b156111f6575060006111fa565b5060015b919050565b6001546000908210611213575060006111fa565b600b548210611250576001828154811061122957fe5b9060005260206000209060040201600201601c9054906101000a900460ff161590506111fa565b6001828154811061125d57fe5b9060005260206000209060040201600201601c9054906101000a900460ff161580156112aa5750600b828154811061129157fe5b600091825260209091206001601690920201015460ff16155b92915050565b33611001146112f05760405162461bcd60e51b81526004018080602001828103825260298152602001806165346029913960400191505060405180910390fd5b600b54611395576112ff6159e0565b60015460005b8181101561139157600b80546001810182556000919091528351600080516020615e15833981519152601690920291820190815560208501516000805160206165148339815191528301805460ff19169115159190911790556040850151859261138391600080516020615e5b833981519152909101906014615a04565b505050806001019050611305565b5050505b6001600160a01b038116600090815260046020526040902054806113b9575061140c565b6001810390506000600b82815481106113ce57fe5b600091825260209091206001601690920201015460ff1690506113f18383613e21565b80156113fa5750805b15610e7a576009805460001901905550505b50565b61271081565b600181565b61100181565b60085481565b603881565b600881565b600e54600c546060919080611443575060155b606061144d61233b565b905081815111611461579250611528915050565b82828251031015611473578181510392505b82156114a75760c8430461148e82828686036000888861419d565b6114a582828686038787038889898951030161419d565b505b6060826040519080825280602002602001820160405280156114d3578160200160208202803683370190505b50905060005b83811015611521578281815181106114ed57fe5b602002602001015182828151811061150157fe5b6001600160a01b03909216602092830291909101909101526001016114d9565b5093505050505b90565b60065481565b61200081565b6001600160a01b0381166000908152600460205260408120548061155f5760009150506111fa565b60001901611115816111ff565b6001600160a01b038116600090815260046020526040812054806115945760009150506111fa565b6001808203815481106115a357fe5b906000526020600020906004020160030154915050919050565b600081565b606781565b600181815481106115d457fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b61100881565b6103e881565b600b81565b600c5481565b606681565b33612000146116925760405162461bcd60e51b815260040180806020018281038252602f81526020018061648b602f913960400191505060405180910390fd5b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a1505050565b60025481565b600a5481565b6001600160a01b0381166000908152600460205260408120548061177c576040805162461bcd60e51b815260206004820152601760248201527f6f6e6c792063757272656e742076616c696461746f7273000000000000000000604482015290519081900360640190fd5b6000190192915050565b600b5461182b576117956159e0565b60015460005b8181101561182757600b80546001810182556000919091528351600080516020615e15833981519152601690920291820190815560208501516000805160206165148339815191528301805460ff19169115159190911790556040850151859261181991600080516020615e5b833981519152909101906014615a04565b50505080600101905061179b565b5050505b6008546118385760036008555b600a54611845576002600a555b600061185033611711565b905061185b81611130565b6118965760405162461bcd60e51b8152600401808060200182810382526023815260200180615d386023913960400191505060405180910390fd5b61140c338261428c565b600981565b61100781565b600381565b60c881565b61100681565b6040518061062001604052806105ef8152602001615e9c6105ef913981565b60005460ff1681565b6402540be40081565b60005460ff1661193f576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b336110071461197f5760405162461bcd60e51b815260040180806020018281038252602e815260200180615da1602e913960400191505060405180910390fd5b6119e984848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b602082015291506143249050565b15611ac45760208114611a2d5760405162461bcd60e51b8152600401808060200182810382526026815260200180615e356026913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091611a6b9185858083850183828082843760009201919091525061440b92505050565b905060648110158015611a815750620186a08111155b611abc5760405162461bcd60e51b8152600401808060200182810382526027815260200180615cc86027913960400191505060405180910390fd5b600255612297565b611b2484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260098152686275726e526174696f60b81b602082015291506143249050565b15611c145760208114611b7e576040805162461bcd60e51b815260206004820152601c60248201527f6c656e677468206f66206275726e526174696f206d69736d6174636800000000604482015290519081900360640190fd5b604080516020601f8401819004810282018101909252828152600091611bbc9185858083850183828082843760009201919091525061440b92505050565b9050612710811115611bff5760405162461bcd60e51b815260040180806020018281038252602b815260200180615c72602b913960400191505060405180910390fd5b6006556007805460ff19166001179055612297565b611c7e84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260138152726d61784e756d4f664d61696e7461696e696e6760681b602082015291506143249050565b15611d565760208114611cc25760405162461bcd60e51b8152600401808060200182810382526026815260200180615b396026913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091611d009185858083850183828082843760009201919091525061440b92505050565b600c5490915080611d0f575060155b808210611d4d5760405162461bcd60e51b8152600401808060200182810382526038815260200180615bb06038913960400191505060405180910390fd5b50600855612297565b611dbf84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61696e7461696e536c6173685363616c6560701b602082015291506143249050565b15611e8a5760208114611e035760405162461bcd60e51b8152600401808060200182810382526025815260200180615b8b6025913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091611e419185858083850183828082843760009201919091525061440b92505050565b905060008111611e825760405162461bcd60e51b815260040180806020018281038252602d8152602001806164e7602d913960400191505060405180910390fd5b600a55612297565b611efe84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601981527f6d61784e756d4f66576f726b696e6743616e6469646174657300000000000000602082015291506143249050565b15611fcb5760208114611f425760405162461bcd60e51b815260040180806020018281038252602c815260200180615b5f602c913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091611f809185858083850183828082843760009201919091525061440b92505050565b9050600d54811115611fc35760405162461bcd60e51b8152600401808060200182810382526049815260200180615cef6049913960600191505060405180910390fd5b600e55612297565b61203484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61784e756d4f6643616e6469646174657360701b602082015291506143249050565b156120d557602081146120785760405162461bcd60e51b8152600401808060200182810382526025815260200180615dcf6025913960400191505060405180910390fd5b604080516020601f84018190048102820181019092528281526000916120b69185858083850183828082843760009201919091525061440b92505050565b600d819055600e549091508110156120cf57600d54600e555b50612297565b61213984848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c6e756d4f66436162696e65747360981b602082015291506143249050565b1561225a5760208114612193576040805162461bcd60e51b815260206004820181905260248201527f6c656e677468206f66206e756d4f66436162696e657473206d69736d61746368604482015290519081900360640190fd5b604080516020601f84018190048102820181019092528281526000916121d19185858083850183828082843760009201919091525061440b92505050565b9050600081116122125760405162461bcd60e51b8152600401808060200182810382526028815260200180615be86028913960400191505060405180910390fd5b60298111156122525760405162461bcd60e51b8152600401808060200182810382526039815260200180615c106039913960400191505060405180910390fd5b600c55612297565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b60046020526000908152604090205481565b6001546060906000805b8281101561236a57612356816111ff565b15612362576001909101905b600101612345565b50606081604051908082528060200260200182016040528015612397578160200160208202803683370190505b5090506000915060005b83811015612416576123b2816111ff565b1561240e57600181815481106123c457fe5b600091825260209091206004909102015482516001600160a01b03909116908390859081106123ef57fe5b6001600160a01b03909216602092830291909101909101526001909201915b6001016123a1565b509250505090565b601581565b61100281565b600061243361233b565b519050600080600c541161244857601561244c565b600c545b90508082111561245a578091505b8161246457600191505b5090565b67016345785d8a000081565b60055481565b61100381565b602981565b60005460ff16156124dd576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b6124e5615a3e565b600061250b6040518061062001604052806105ef8152602001615e9c6105ef9139612ce0565b915091508061254b5760405162461bcd60e51b8152600401808060200182810382526021815260200180615e7b6021913960400191505060405180910390fd5b60005b8260200151518110156126705760018360200151828151811061256d57fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a09093015160039093019290925591860151805191850193918590811061264357fe5b602090810291909101810151516001600160a01b031682528101919091526040016000205560010161254e565b50506103e8600255506000805460ff19166001179055565b600d5481565b33611001146126ce5760405162461bcd60e51b81526004018080602001828103825260298152602001806165346029913960400191505060405180910390fd5b600b54612773576126dd6159e0565b60015460005b8181101561276f57600b80546001810182556000919091528351600080516020615e15833981519152601690920291820190815560208501516000805160206165148339815191528301805460ff19169115159190911790556040850151859261276191600080516020615e5b833981519152909101906014615a04565b5050508060010190506126e3565b5050505b600061277e82614410565b905061278981611130565b1561279857612798828261428c565b5050565b606581565b3341146127df5760405162461bcd60e51b815260040180806020018281038252602d8152602001806164ba602d913960400191505060405180910390fd5b60005460ff16612832576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b6000341161287f576040805162461bcd60e51b81526020600482015260156024820152746465706f7369742076616c7565206973207a65726f60581b604482015290519081900360640190fd5b6001600160a01b0381166000908152600460205260409020546007543491906103e89060ff16156128af57506006545b6000831180156128bf5750600081115b156129685760006128e86127106128dc868563ffffffff6145b416565b9063ffffffff61460d16565b905080156129665760405161dead9082156108fc029083906000818181858888f1935050505015801561291f573d6000803e3d6000fd5b506040805182815290517f627059660ea01c4733a328effb2294d2f86905bf806da763a89cee254de8bee59181900360200190a1612963848263ffffffff61464f16565b93505b505b8115612a6057600060018084038154811061297f57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff16156129ea576040805185815290516001600160a01b038716917ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4919081900360200190a2612a5a565b6003546129fd908563ffffffff61469116565b6003908155810154612a15908563ffffffff61469116565b60038201556040805185815290516001600160a01b038716917f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc055919081900360200190a25b50612aa0565b6040805184815290516001600160a01b038616917ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4919081900360200190a25b50505050565b600e5481565b61100081565b61dead81565b600b8181548110612ac557fe5b60009182526020909120601690910201805460019091015490915060ff1682565b61100481565b6000600a5460001480612afd575081155b80612b085750600954155b15612b1557506000611115565b600960008154809291906001900391905055506000612b62600a546128dc856128dc600b8981548110612b4457fe5b6000918252602090912060169091020154439063ffffffff61464f16565b90506000600b8581548110612b7357fe5b906000526020600020906016020160010160006101000a81548160ff0219169083151502179055506000806110016001600160a01b0316638256ace66040518163ffffffff1660e01b8152600401604080518083038186803b158015612bd857600080fd5b505afa158015612bec573d6000803e3d6000fd5b505050506040513d6040811015612c0257600080fd5b508051602090910151600095509092509050808310612c9057612c258787613e21565b50604080516305bfb49960e41b81526001600160a01b0389166004820152905161100191635bfb499091602480830192600092919082900301818387803b158015612c6f57600080fd5b505af1158015612c83573d6000803e3d6000fd5b5050505060019350612ca2565b818310612ca257612ca087614410565b505b6040516001600160a01b038816907fb9d38178dc641ff1817967a63c9078cbcd955a9f1fcd75e0e3636de615d44d3b90600090a25050509392505050565b612ce8615a3e565b6000612cf2615a3e565b612cfa615a56565b612d0b612d06866146eb565b614710565b90506000805b612d1a8361475a565b15612e2b5780612d3f57612d35612d308461477b565b6147c9565b60ff168452612e23565b8060011415612e1e576060612d5b612d568561477b565b614880565b90508051604051908082528060200260200182016040528015612d9857816020015b612d85615a76565b815260200190600190039081612d7d5790505b50602086015260005b8151811015612e1357612db2615a76565b6000612dd0848481518110612dc357fe5b6020026020010151614951565b9150915080612ded57876000995099505050505050505050612e34565b8188602001518481518110612dfe57fe5b60209081029190910101525050600101612da1565b506001925050612e23565b612e2b565b600101612d11565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b6060815260200190600190039081612e53579050509050612e798363ffffffff16614a2e565b81600081518110612e8657fe5b602002602001018190525061111581614a41565b6000806060612ea884614acb565b9150915081612f55577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2816040518080602001828103825283818151815260200191508051906020019080838360005b83811015612f10578181015183820152602001612ef8565b50505050905090810190601f168015612f3d5780820380516001836020036101000a031916815260200191505b509250505060405180910390a16066925050506111fa565b50506060612f6283614bad565b6001549091506000908190815b81811015612fe55767016345785d8a000060018281548110612f8d57fe5b90600052602060002090600402016003015410612faf57600190930192612fdd565b600060018281548110612fbe57fe5b9060005260206000209060040201600301541115612fdd576001909201915b600101612f6f565b50606083604051908082528060200260200182016040528015613012578160200160208202803683370190505b509050606084604051908082528060200260200182016040528015613041578160200160208202803683370190505b509050606085604051908082528060200260200182016040528015613070578160200160208202803683370190505b50905060608660405190808252806020026020018201604052801561309f578160200160208202803683370190505b50905060006060876040519080825280602002602001820160405280156130d0578160200160208202803683370190505b5090506060886040519080825280602002602001820160405280156130ff578160200160208202803683370190505b509050600099506000985060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b15801561314757600080fd5b505afa15801561315b573d6000803e3d6000fd5b505050506040513d602081101561317157600080fd5b5051905067016345785d8a00008111156131e5577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2604051808060200182810382526021815260200180615df46021913960400191505060405180910390a160689c505050505050505050505050506111fa565b60005b898110156134565767016345785d8a00006001828154811061320657fe5b9060005260206000209060040201600301541061338c576001818154811061322a57fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316898d8151811061325b57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be4006001838154811061329057fe5b906000526020600020906004020160030154816132a957fe5b06600183815481106132b757fe5b9060005260206000209060040201600301540390506132df838261464f90919063ffffffff16565b898e815181106132eb57fe5b6020026020010181815250506001828154811061330457fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316878e8151811061333557fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081888e8151811061336257fe5b602090810291909101015261337d868263ffffffff61469116565b6001909d019c955061344e9050565b60006001828154811061339b57fe5b906000526020600020906004020160030154111561344e57600181815481106133c057fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316848c815181106133f157fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506001818154811061341e57fe5b906000526020600020906004020160030154838c8151811061343c57fe5b60209081029190910101526001909a01995b6001016131e8565b5060008415613894576110046001600160a01b0316636e056520868b8b8a60025442016040518663ffffffff1660e01b815260040180806020018060200180602001856001600160401b03166001600160401b03168152602001848103845288818151815260200191508051906020019060200280838360005b838110156134e85781810151838201526020016134d0565b50505050905001848103835287818151815260200191508051906020019060200280838360005b8381101561352757818101518382015260200161350f565b50505050905001848103825286818151815260200191508051906020019060200280838360005b8381101561356657818101518382015260200161354e565b505050509050019750505050505050506020604051808303818588803b15801561358f57600080fd5b505af1935050505080156135b557506040513d60208110156135b057600080fd5b505160015b6137f0576040516000815260443d10156135d15750600061366c565b60046000803e60005160e01c6308c379a081146135f257600091505061366c565b60043d036004833e81513d60248201116001600160401b038211171561361d5760009250505061366c565b80830180516001600160401b0381111561363e57600094505050505061366c565b8060208301013d860181111561365c5760009550505050505061366c565b601f01601f191660405250925050505b80613677575061371b565b60019150857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280826040518080602001828103825283818151815260200191508051906020019080838360005b838110156136db5781810151838201526020016136c3565b50505050905090810190601f1680156137085780820380516001836020036101000a031916815260200191505b509250505060405180910390a2506137eb565b3d808015613745576040519150601f19603f3d011682016040523d82523d6000602084013e61374a565b606091505b5060019150857fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a45826040518080602001828103825283818151815260200191508051906020019080838360005b838110156137af578181015183820152602001613797565b50505050905090810190601f1680156137dc5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b613894565b801561382e576040805187815290517fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b709181900360200190a1613892565b604080516020808252601b908201527f6261746368207472616e736665722072657475726e2066616c7365000000000081830152905187917fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280919081900360600190a25b505b8015613a4a5760005b8751811015613a485760008882815181106138b457fe5b602002602001015190506000600182815481106138cd57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc91859081106138fe57fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f19350505050905080156139ba576001828154811061393f57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d918590811061398e57fe5b9060005260206000209060040201600301546040518082815260200191505060405180910390a2613a3e565b600182815481106139c757fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d9185908110613a1657fe5b9060005260206000209060040201600301546040518082815260200191505060405180910390a25b505060010161389d565b505b835115613b945760005b8451811015613b92576000858281518110613a6b57fe5b60200260200101516001600160a01b03166108fc868481518110613a8b57fe5b60200260200101519081150290604051600060405180830381858888f1935050505090508015613b2157858281518110613ac157fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d868481518110613aff57fe5b60200260200101516040518082815260200191505060405180910390a2613b89565b858281518110613b2d57fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d868481518110613b6b57fe5b60200260200101516040518082815260200191505060405180910390a25b50600101613a54565b505b4715613bfd576040805147815290517f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d9181900360200190a1604051611002904780156108fc02916000818181858888f19350505050158015613bfb573d6000803e3d6000fd5b505b600060038190556005558c5115613c1757613c178d614d7d565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015613c5457600080fd5b505af1158015613c68573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a15060009e9d5050505050505050505050505050565b80516001600160a01b0316600090815260046020526040812054801580613cfb5750600180820381548110613cdb57fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b15613d415782516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a260009150506111fa565b600154600554600019820111801590613d975784516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a2600093505050506111fa565b600580546001908101909155805481906000198601908110613db557fe5b6000918252602082206002600490920201018054921515600160e01b0260ff60e01b199093169290921790915585516040516001600160a01b03909116917ff226e7d8f547ff903d9d419cf5f54e0d7d07efa9584135a53a057c5f1f27f49a91a2506000949350505050565b60008060018381548110613e3157fe5b90600052602060002090600402016003015490506000600180805490500390506001613e5b61233b565b5111613e9057600060018581548110613e7057fe5b9060005260206000209060040201600301819055506000925050506112aa565b6040805183815290516001600160a01b038716917f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a70919081900360200190a26001600160a01b038516600090815260046020526040812055835b6001546000190181101561408d5760018160010181548110613f0857fe5b906000526020600020906004020160018281548110613f2357fe5b60009182526020909120825460049092020180546001600160a01b03199081166001600160a01b0393841617825560018085015481840180548416918616919091179055600280860180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b19909416939093179055600392830154920191909155600b805490918301908110613fe457fe5b9060005260206000209060160201600b8281548110613fff57fe5b600091825260209091208254601690920201908155600180830154908201805460ff191660ff909216151591909117905561404260028083019084016014615aab565b5090505080600101600460006001848154811061405b57fe5b600091825260208083206004909202909101546001600160a01b03168352820192909252604001902055600101613eea565b50600180548061409957fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b8054806140ec57fe5b60008281526020812060166000199093019283020181815560018101805460ff191690559061411e6002830182615ad6565b50509055600081838161412d57fe5b04905080156141915760015460005b8181101561418e57826001828154811061415257fe5b906000526020600020906004020160030154016001828154811061417257fe5b600091825260209091206003600490920201015560010161413c565b50505b50600195945050505050565b60005b828110156142835760408051602080820189905287840182840152825180830384018152606090920190925280519101206000908390816141dd57fe5b0690508085018287011461427a57600088838801815181106141fb57fe5b60200260200101519050888287018151811061421357fe5b6020026020010151898489018151811061422957fe5b60200260200101906001600160a01b031690816001600160a01b03168152505080898388018151811061425857fe5b60200260200101906001600160a01b031690816001600160a01b031681525050505b506001016141a0565b50505050505050565b600980546001908101909155600b8054839081106142a657fe5b906000526020600020906016020160010160006101000a81548160ff02191690831515021790555043600b82815481106142dc57fe5b600091825260208220601690910201919091556040516001600160a01b038416917ff62981a567ec3cec866c6fa93c55bcdf841d6292d18b8d522ececa769375d82d91a25050565b6000816040516020018082805190602001908083835b602083106143595780518252601f19909201916020918201910161433a565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106143c75780518252601f1990920191602091820191016143a8565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b6001600160a01b03811660009081526004602052604081205480614439575060001990506111fa565b60018103905060006001828154811061444e57fe5b906000526020600020906004020160030154905060006001838154811061447157fe5b906000526020600020906004020160030181905550600060018080549050039050846001600160a01b03167f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d836040518082815260200191505060405180910390a2806144e3578293505050506111fa565b60008183816144ee57fe5b04905080156145aa5760005b8481101561454c57816001828154811061451057fe5b906000526020600020906004020160030154016001828154811061453057fe5b60009182526020909120600360049092020101556001016144fa565b50600180549085015b818110156145a757826001828154811061456b57fe5b906000526020600020906004020160030154016001828154811061458b57fe5b6000918252602090912060036004909202010155600101614555565b50505b5091949350505050565b6000826145c3575060006112aa565b828202828482816145d057fe5b04146111155760405162461bcd60e51b8152600401808060200182810382526021815260200180615d806021913960400191505060405180910390fd5b600061111583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250615370565b600061111583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250615412565b600082820183811015611115576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6146f3615ae5565b506040805180820190915281518152602082810190820152919050565b614718615a56565b6147218261546c565b61472a57600080fd5b600061473983602001516154a6565b60208085015160408051808201909152868152920190820152915050919050565b6000614764615ae5565b505080518051602091820151919092015191011190565b614783615ae5565b61478c8261475a565b61479557600080fd5b602082015160006147a582615509565b80830160209586015260408051808201909152908152938401919091525090919050565b8051600090158015906147de57508151602110155b6147e757600080fd5b60006147f683602001516154a6565b90508083600001511015614851576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b82516020808501518301805192849003929183101561487757826020036101000a820491505b50949350505050565b606061488b8261546c565b61489457600080fd5b600061489f8361563c565b90506060816040519080825280602002602001820160405280156148dd57816020015b6148ca615ae5565b8152602001906001900390816148c25790505b50905060006148ef85602001516154a6565b60208601510190506000805b848110156149465761490c83615509565b915060405180604001604052808381526020018481525084828151811061492f57fe5b6020908102919091010152918101916001016148fb565b509195945050505050565b614959615a76565b6000614963615a76565b61496b615a56565b61497485614710565b90506000805b6149838361475a565b15612e2b57806149ae5761499e6149998461477b565b615698565b6001600160a01b03168452614a26565b80600114156149d6576149c36149998461477b565b6001600160a01b03166020850152614a26565b80600214156149fe576149eb6149998461477b565b6001600160a01b03166040850152614a26565b8060031415612e1e57614a13612d308461477b565b6001600160401b03166060850152600191505b60010161497a565b60606112aa614a3c836156b2565b615798565b6060815160001415614a6257506040805160008152602081019091526111fa565b606082600081518110614a7157fe5b602002602001015190506000600190505b8351811015614ab257614aa882858381518110614a9b57fe5b60200260200101516157ea565b9150600101614a82565b50611115614ac5825160c060ff16615867565b826157ea565b60006060602983511115614afd576000604051806060016040528060298152602001615c496029913991509150612e34565b60005b8351811015614b935760005b81811015614b8a57848181518110614b2057fe5b6020026020010151600001516001600160a01b0316858381518110614b4157fe5b6020026020010151600001516001600160a01b03161415614b825760006040518060600160405280602b8152602001615c9d602b9139935093505050612e34565b600101614b0c565b50600101614b00565b505060408051602081019091526000815260019150915091565b6060600080808080614bbd612429565b6001549091505b8015614ccb57600181039250600b8381548110614bdd57fe5b600091825260209091206001601690920201015460ff16614bfd57614cc2565b60018381548110614c0a57fe5b60009182526020909120600490910201546001600160a01b03169450614c31858484612aec565b9350831580614c44575060018851038610155b15614c4e57614cc2565b60005b8851811015614cc057856001600160a01b0316898281518110614c7057fe5b6020026020010151600001516001600160a01b03161415614cb8576001898281518110614c9957fe5b6020908102919091010151901515608090910152600190960195614cc0565b600101614c51565b505b60001901614bc4565b5084875103604051908082528060200260200182016040528015614d0957816020015b614cf6615a76565b815260200190600190039081614cee5790505b5095506000915060005b8751811015614d7257878181518110614d2857fe5b602002602001015160800151614d6a57878181518110614d4457fe5b6020026020010151878481518110614d5857fe5b60209081029190910101526001909201915b600101614d13565b505050505050919050565b600154815160005b82811015614e9a576001614d97615a76565b60018381548110614da457fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b84811015614e6e57868181518110614e3457fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b03161415614e665760009250614e6e565b600101614e20565b508115614e905780516001600160a01b03166000908152600460205260408120555b5050600101614d85565b5080821115614f4b57805b82811015614f49576001805480614eb857fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b805480614f0b57fe5b60008281526020812060166000199093019283020181815560018101805460ff1916905590614f3d6002830182615ad6565b50509055600101614ea5565b505b6000818310614f5a5781614f5c565b825b905060005b818110156151565761500e858281518110614f7857fe5b602002602001015160018381548110614f8d57fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a082015261595f565b61512957806001016004600087848151811061502657fe5b6020026020010151600001516001600160a01b03166001600160a01b031681526020019081526020016000208190555084818151811061506257fe5b60200260200101516001828154811061507757fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a09091015160039091015561514e565b60006001828154811061513857fe5b9060005260206000209060040201600301819055505b600101614f61565b50828211156152fb576151676159e0565b835b838110156152f857600186828151811061517f57fe5b6020908102919091018101518254600181810185556000948552838520835160049093020180546001600160a01b039384166001600160a01b0319918216178255848601518284018054918616918316919091179055604080860151600284018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909a1692909616919091179290921696909617169190911790935560a090930151600390930192909255600b8054928301815590935284516016909102600080516020615e158339815191528101918255918501516000805160206165148339815191528301805491151560ff19909216919091179055918401518492916152b491600080516020615e5b833981519152909101906014615a04565b50505080600101600460008884815181106152cb57fe5b602090810291909101810151516001600160a01b0316825281019190915260400160002055600101615169565b50505b6000600981905560015493505b83811015615369576000600b828154811061531f57fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b80548390811061535057fe5b6000918252602090912060169091020155600101615308565b5050505050565b600081836153fc5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156153c15781810151838201526020016153a9565b50505050905090810190601f1680156153ee5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161540857fe5b0495945050505050565b600081848411156154645760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156153c15781810151838201526020016153a9565b505050900390565b805160009061547d575060006111fa565b6020820151805160001a9060c082101561549c576000925050506111fa565b5060019392505050565b8051600090811a60808110156154c05760009150506111fa565b60b88110806154db575060c081108015906154db575060f881105b156154ea5760019150506111fa565b60c08110156154fe5760b5190190506111fa565b60f5190190506111fa565b80516000908190811a60808110156155245760019150615635565b60b881101561553957607e1981019150615635565b60c08110156155b357600060b78203600186019550806020036101000a8651049150600181018201935050808310156155ad576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50615635565b60f88110156155c85760be1981019150615635565b600060f78203600186019550806020036101000a865104915060018101820193505080831015615633576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b805160009061564d575060006111fa565b6000809050600061566184602001516154a6565b602085015185519181019250015b8082101561568f5761568082615509565b6001909301929091019061566f565b50909392505050565b80516000906015146156a957600080fd5b6112aa826147c9565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166156f65750601861571a565b6fffffffffffffffffffffffffffffffff1984166157165750601061571a565b5060005b60208110156157505781818151811061572f57fe5b01602001516001600160f81b0319161561574857615750565b60010161571a565b60008160200390506060816040519080825280601f01601f191660200182016040528015615785576020820181803683370190505b5080830196909652508452509192915050565b6060815160011480156157ca5750607f60f81b826000815181106157b857fe5b01602001516001600160f81b03191611155b156157d65750806111fa565b6112aa6157e88351608060ff16615867565b835b6060806040519050835180825260208201818101602087015b8183101561581b578051835260209283019201615803565b50855184518101855292509050808201602086015b81831015615848578051835260209283019201615830565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106158b7576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b604080516001808252818301909252606091602082018180368337019050509050603784116159115782840160f81b816000815181106158f357fe5b60200101906001600160f81b031916908160001a90535090506112aa565b606061591c856156b2565b90508381510160370160f81b8260008151811061593557fe5b60200101906001600160f81b031916908160001a90535061595682826157ea565b95945050505050565b805182516000916001600160a01b039182169116148015615999575081602001516001600160a01b031683602001516001600160a01b0316145b80156159be575081604001516001600160a01b031683604001516001600160a01b0316145b80156111155750506060908101519101516001600160401b0390811691161490565b60408051606081018252600080825260208201529081016159ff615aff565b905290565b8260148101928215615a32579160200282015b82811115615a32578251825591602001919060010190615a17565b50612464929150615b1e565b60408051808201909152600081526060602082015290565b6040518060400160405280615a69615ae5565b8152602001600081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b8260148101928215615a32579182015b82811115615a32578254825591600101919060010190615abb565b5061140c906014810190615b1e565b604051806040016040528060008152602001600081525090565b6040518061028001604052806014906020820280368337509192915050565b61152891905b808211156124645760008155600101615b2456fe6c656e677468206f66206d61784e756d4f664d61696e7461696e696e67206d69736d617463686c656e677468206f66206d61784e756d4f66576f726b696e6743616e64696461746573206d69736d617463686c656e677468206f66206d61696e7461696e536c6173685363616c65206d69736d61746368746865206d61784e756d4f664d61696e7461696e696e67206d757374206265206c657373207468616e206e756d4f6643616e696e61746573746865206e756d4f66436162696e657473206d7573742062652067726561746572207468616e2030746865206e756d4f66436162696e657473206d757374206265206c657373207468616e204d41585f4e554d5f4f465f56414c494441544f5253746865206e756d626572206f662076616c696461746f72732065786365656420746865206c696d6974746865206275726e526174696f206d757374206265206e6f2067726561746572207468616e2031303030306475706c696361746520636f6e73656e7375732061646472657373206f662076616c696461746f725365747468652065787069726554696d655365636f6e64476170206973206f7574206f662072616e6765746865206d61784e756d4f66576f726b696e6743616e64696461746573206d757374206265206e6f742067726561746572207468616e206d61784e756d4f6643616e6469646174657363616e206e6f7420656e7465722054656d706f72617279204d61696e74656e616e63656c656e677468206f66206a61696c2076616c696461746f7273206d757374206265206f6e65536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f66206d61784e756d4f6643616e64696461746573206d69736d61746368666565206973206c6172676572207468616e2044555354595f494e434f4d494e470175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db96c656e677468206f662065787069726554696d655365636f6e64476170206d69736d617463680175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbb6661696c656420746f20706172736520696e69742076616c696461746f72536574f905ec80f905e8f846942a7cdd959bfe8d9487b2a43b33565295a698f7e294b6a7edd747c0554875d3fc531d19ba1497992c5e941ff80f3f7f110ffd8920a3ac38fdef318fe94a3f86048c27395000f846946488aa4d1955ee33403f8ccb1d4de5fb97c7ade294220f003d8bdfaadf52aa1e55ae4cc485e6794875941a87e90e440a39c99aa9cb5cea0ad6a3f0b2407b86048c27395000f846949ef9f4360c606c7ab4db26b016007d3ad0ab86a0946103af86a874b705854033438383c82575f25bc29418e2db06cbff3e3c5f856410a1838649e760175786048c27395000f84694ee01c3b1283aa067c58eab4709f85e99d46de5fe94ee4b9bfb1871c64e2bcabb1dc382dc8b7c4218a29415904ab26ab0e99d70b51c220ccdcccabee6e29786048c27395000f84694685b1ded8013785d6623cc18d214320b6bb6475994a20ef4e5e4e7e36258dbf51f4d905114cb1b34bc9413e39085dc88704f4394d35209a02b1a9520320c86048c27395000f8469478f3adfc719c99674c072166708589033e2d9afe9448a30d5eaa7b64492a160f139e2da2800ec3834e94055838358c29edf4dcc1ba1985ad58aedbb6be2b86048c27395000f84694c2be4ec20253b8642161bc3f444f53679c1f3d479466f50c616d737e60d7ca6311ff0d9c434197898a94d1d678a2506eeaa365056fe565df8bc8659f28b086048c27395000f846942f7be8361c80a4c1e7e9aaf001d0877f1cfde218945f93992ac37f3e61db2ef8a587a436a161fd210b94ecbc4fb1a97861344dad0867ca3cba2b860411f086048c27395000f84694ce2fd7544e0b2cc94692d4a704debef7bcb613289444abc67b4b2fba283c582387f54c9cba7c34bafa948acc2ab395ded08bb75ce85bf0f95ad2abc51ad586048c27395000f84694b8f7166496996a7da21cf1f1b04d9b3e26a3d077946770572763289aac606e4f327c2f6cc1aa3b3e3b94882d745ed97d4422ca8da1c22ec49d880c4c097286048c27395000f846942d4c407bbe49438ed859fe965b140dcf1aab71a9943ad0939e120f33518fbba04631afe7a3ed6327b194b2bbb170ca4e499a2b0f3cc85ebfa6e8c4dfcbea86048c27395000f846946bbad7cf34b5fa511d8e963dbba288b1960e75d694853b0f6c324d1f4e76c8266942337ac1b0af1a229442498946a51ca5924552ead6fc2af08b94fcba648601d1a94a2000f846944430b3230294d12c6ab2aac5c2cd68e80b16b581947b107f4976a252a6939b771202c28e64e03f52d694795811a7f214084116949fc4f53cedbf189eeab28601d1a94a2000f84694ea0a6e3c511bbd10f4519ece37dc24887e11b55d946811ca77acfb221a49393c193f3a22db829fcc8e9464feb7c04830dd9ace164fc5c52b3f5a29e5018a8601d1a94a2000f846947ae2f5b9e386cd1b50a4550696d957cb4900f03a94e83bcc5077e6b873995c24bac871b5ad856047e19464e48d4057a90b233e026c1041e6012ada897fe88601d1a94a2000f8469482012708dafc9e1b880fd083b32182b869be8e09948e5adc73a2d233a1b496ed3115464dd6c7b887509428b383d324bc9a37f4e276190796ba5a8947f5ed8601d1a94a2000f8469422b81f8e175ffde54d797fe11eb03f9e3bf75f1d94a1c3ef7ca38d8ba80cce3bfc53ebd2903ed21658942767f7447f7b9b70313d4147b795414aecea54718601d1a94a2000f8469468bf0b8b6fb4e317a0f9d6f03eaf8ce6675bc60d94675cfe570b7902623f47e7f59c9664b5f5065dcf94d84f0d2e50bcf00f2fc476e1c57f5ca2d57f625b8601d1a94a2000f846948c4d90829ce8f72d0163c1d5cf348a862d5506309485c42a7b34309bee2ed6a235f86d16f059deec5894cc2cedc53f0fa6d376336efb67e43d167169f3b78601d1a94a2000f8469435e7a025f4da968de7e4d7e4004197917f4070f194b1182abaeeb3b4d8eba7e6a4162eac7ace23d57394c4fd0d870da52e73de2dd8ded19fe3d26f43a1138601d1a94a2000f84694d6caa02bbebaebb5d7e581e4b66559e635f805ff94c07335cf083c1c46a487f0325769d88e163b653694efaff03b42e41f953a925fc43720e45fb61a19938601d1a94a2000746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d6573736167652073656e646572206d7573742062652074686520626c6f636b2070726f6475636572746865206d61696e7461696e536c6173685363616c65206d7573742062652067726561746572207468616e20300175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dba746865206d6573736167652073656e646572206d75737420626520736c61736820636f6e7472616374a264697066735822122091dd90b1dd27923c787e9f55bd1bebe31e8416465e6ce432022dfeb252e6701e64736f6c63430006040033" + }, + "0x0000000000000000000000000000000000001001": { + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b506004361061023d5760003560e01c80638256ace61161013b578063c80d4b8f116100b8578063e1c7392a1161007c578063e1c7392a1461071d578063f9a2bbc714610725578063fc3e59081461072d578063fc4333cd14610735578063fd6a68791461073d5761023d565b8063c80d4b8f14610667578063c81b16621461066f578063c8509d8114610677578063c96be4cb146106ef578063dc927faf146107155761023d565b8063a1a11bf5116100ff578063a1a11bf514610575578063a78abc161461057d578063ab51bb9614610599578063ac0af629146105a1578063ac431751146105a95761023d565b80638256ace6146104dd578063831d65d1146104e557806396713da91461055d5780639bc8e4f2146105655780639dc092621461056d5761023d565b80634bf6c882116101c95780636e47b4821161018d5780636e47b482146104b557806370fd5bad146104bd57806375d47a0a146104c55780637912a65d146104cd5780637942fd05146104d55761023d565b80634bf6c8821461046d57806351e8067214610475578063567a372d1461047d5780635bfb49901461048557806362b72cf5146104ad5761023d565b806337c8dab91161021057806337c8dab9146103cf578063389f4f711461040e5780633dffc3871461042857806343756e5c14610446578063493279b11461044e5761023d565b80630bee7a67146102425780631182b8751461026357806323bac5a21461035057806335aa2e4414610396575b600080fd5b61024a610745565b6040805163ffffffff9092168252519081900360200190f35b6102db6004803603604081101561027957600080fd5b60ff8235169190810190604081016020820135600160201b81111561029d57600080fd5b8201836020820111156102af57600080fd5b803590602001918460018302840111600160201b831117156102d057600080fd5b50909250905061074a565b6040805160208082528351818301528351919283929083019185019080838360005b838110156103155781810151838201526020016102fd565b50505050905090810190601f1680156103425780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103766004803603602081101561036657600080fd5b50356001600160a01b031661081e565b604080519384526020840192909252151582820152519081900360600190f35b6103b3600480360360208110156103ac57600080fd5b5035610841565b604080516001600160a01b039092168252519081900360200190f35b6103f5600480360360208110156103e557600080fd5b50356001600160a01b0316610868565b6040805192835260208301919091528051918290030190f35b6104166108bf565b60408051918252519081900360200190f35b6104306108c5565b6040805160ff9092168252519081900360200190f35b6103b36108ca565b6104566108d0565b6040805161ffff9092168252519081900360200190f35b6104306108d5565b6103b36108da565b6104166108e0565b6104ab6004803603602081101561049b57600080fd5b50356001600160a01b03166108e6565b005b610416610a47565b6103b3610a4d565b610430610a53565b6103b3610a58565b610416610a5e565b610430610a63565b6103f5610a68565b6104ab600480360360408110156104fb57600080fd5b60ff8235169190810190604081016020820135600160201b81111561051f57600080fd5b82018360208201111561053157600080fd5b803590602001918460018302840111600160201b8311171561055257600080fd5b509092509050610a72565b610430610bcc565b610416610bd1565b6103b3610bdc565b6103b3610be2565b610585610be8565b604080519115158252519081900360200190f35b61024a610bf1565b610416610bf6565b6104ab600480360360408110156105bf57600080fd5b810190602081018135600160201b8111156105d957600080fd5b8201836020820111156105eb57600080fd5b803590602001918460018302840111600160201b8311171561060c57600080fd5b919390929091602081019035600160201b81111561062957600080fd5b82018360208201111561063b57600080fd5b803590602001918460018302840111600160201b8311171561065c57600080fd5b509092509050610bfb565b610416610fe9565b6103b3610fee565b6104ab6004803603604081101561068d57600080fd5b60ff8235169190810190604081016020820135600160201b8111156106b157600080fd5b8201836020820111156106c357600080fd5b803590602001918460018302840111600160201b831117156106e457600080fd5b509092509050610ff4565b6104ab6004803603602081101561070557600080fd5b50356001600160a01b03166110a7565b6103b361154a565b6104ab611550565b6103b36115c1565b6104306115c7565b6104ab6115cc565b6103b3611a57565b606481565b6060336120001461078c5760405162461bcd60e51b815260040180806020018281038252602f8152602001806124ae602f913960400191505060405180910390fd5b60005460ff166107d1576040805162461bcd60e51b8152602060048201526019602482015260008051602061250a833981519152604482015290519081900360640190fd5b6040805162461bcd60e51b815260206004820152601e60248201527f7265636569766520756e65787065637465642073796e207061636b6167650000604482015290519081900360640190fd5b600260208190526000918252604090912080546001820154919092015460ff1683565b6001818154811061084e57fe5b6000918252602090912001546001600160a01b0316905081565b600080610873612372565b5050506001600160a01b0316600090815260026020818152604092839020835160608101855281548082526001830154938201849052919093015460ff16151592909301919091529091565b60055481565b600181565b61100181565b603881565b600881565b61200081565b60045481565b33611000146109265760405162461bcd60e51b81526004018080602001828103825260308152602001806124096030913960400191505060405180910390fd5b60005460ff1661096b576040805162461bcd60e51b8152602060048201526019602482015260008051602061250a833981519152604482015290519081900360640190fd5b61200063f7a251d7600b61097e84611a5d565b60006040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156109de5781810151838201526020016109c6565b50505050905090810190601f168015610a0b5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015610a2c57600080fd5b505af1158015610a40573d6000803e3d6000fd5b5050505050565b60035481565b61100581565b600281565b61100881565b603281565b600b81565b6004546005549091565b3361200014610ab25760405162461bcd60e51b815260040180806020018281038252602f8152602001806124ae602f913960400191505060405180910390fd5b60005460ff16610af7576040805162461bcd60e51b8152602060048201526019602482015260008051602061250a833981519152604482015290519081900360640190fd5b610aff612395565b6000610b4084848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611b2f92505050565b915091508015610b8a5781516040805163ffffffff9092168252517f7f0956d47419b9525356e7111652b653b530ec6f5096dccc04589bc38e6299679181900360200190a1610a40565b81516040805163ffffffff9092168252517f7d45f62d17443dd4547bca8a8112c60e2385669318dc300ec61a5d2492f262e79181900360200190a15050505050565b600981565b662386f26fc1000081565b61100781565b61100681565b60005460ff1681565b600081565b600481565b60005460ff16610c40576040805162461bcd60e51b8152602060048201526019602482015260008051602061250a833981519152604482015290519081900360640190fd5b3361100714610c805760405162461bcd60e51b815260040180806020018281038252602e815260200180612439602e913960400191505060405180910390fd5b610ceb84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260148152731b5a5cd9195b59585b9bdc951a1c995cda1bdb1960621b60208201529150611baf9050565b15610dc45760208114610d2f5760405162461bcd60e51b81526004018080602001828103825260278152602001806123e26027913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610d6d91858580838501838280828437600092019190915250611c9792505050565b905060018110158015610d81575060055481105b610dbc5760405162461bcd60e51b81526004018080602001828103825260258152602001806124896025913960400191505060405180910390fd5b600455610f57565b610e2a84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e19995b1bdb9e551a1c995cda1bdb19608a1b60208201529150611baf9050565b15610f1a5760208114610e6e5760405162461bcd60e51b81526004018080602001828103825260228152602001806124676022913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610eac91858580838501838280828437600092019190915250611c9792505050565b90506103e88111158015610ec1575060045481115b610f12576040805162461bcd60e51b815260206004820181905260248201527f7468652066656c6f6e795468726573686f6c64206f7574206f662072616e6765604482015290519081900360640190fd5b600555610f57565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b609681565b61100281565b33612000146110345760405162461bcd60e51b815260040180806020018281038252602f8152602001806124ae602f913960400191505060405180910390fd5b60005460ff16611079576040805162461bcd60e51b8152602060048201526019602482015260008051602061250a833981519152604482015290519081900360640190fd5b6040517f07db600eebe2ac176be8dcebad61858c245a4961bb32ca2aa3d159b09aa0810e90600090a1505050565b3341146110e55760405162461bcd60e51b815260040180806020018281038252602d8152602001806124dd602d913960400191505060405180910390fd5b60005460ff1661112a576040805162461bcd60e51b8152602060048201526019602482015260008051602061250a833981519152604482015290519081900360640190fd5b6003544311611180576040805162461bcd60e51b815260206004820181905260248201527f63616e206e6f7420736c61736820747769636520696e206f6e6520626c6f636b604482015290519081900360640190fd5b3a156111ca576040805162461bcd60e51b81526020600482015260146024820152736761737072696365206973206e6f74207a65726f60601b604482015290519081900360640190fd5b6040805163155853f360e21b81526001600160a01b03831660048201529051611000916355614fcc916024808301926020929190829003018186803b15801561121257600080fd5b505afa158015611226573d6000803e3d6000fd5b505050506040513d602081101561123c57600080fd5b505161124757611543565b61124f612372565b506001600160a01b0381166000908152600260208181526040928390208351606081018552815481526001820154928101929092529091015460ff1615801592820192909252906112aa576020810180516001019052611303565b60016040820181905260208201819052805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0384161790555b43815260055460208201518161131557fe5b0661146757600060208201819052604080516335409f7f60e01b81526001600160a01b03851660048201529051611000926335409f7f926024808201939182900301818387803b15801561136857600080fd5b505af115801561137c573d6000803e3d6000fd5b505050506120006001600160a01b031663f7a251d7600b61139c85611a5d565b60006040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156113fc5781810151838201526020016113e4565b50505050905090810190601f1680156114295780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561144a57600080fd5b505af115801561145e573d6000803e3d6000fd5b505050506114dd565b60045481602001518161147657fe5b066114dd57604080516375abf10160e11b81526001600160a01b038416600482015290516110009163eb57e20291602480830192600092919082900301818387803b1580156114c457600080fd5b505af11580156114d8573d6000803e3d6000fd5b505050505b6001600160a01b0382166000818152600260208181526040808420865181559186015160018301558581015191909201805460ff1916911515919091179055517fddb6012116e51abf5436d956a4f0ebd927e92c576ff96d7918290c8782291e3e9190a2505b5043600355565b61100381565b60005460ff16156115a8576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b603260045560966005556000805460ff19166001179055565b61100081565b600381565b336110001461160c5760405162461bcd60e51b81526004018080602001828103825260308152602001806124096030913960400191505060405180910390fd5b60005460ff16611651576040805162461bcd60e51b8152602060048201526019602482015260008051602061250a833981519152604482015290519081900360640190fd5b60015461165d57611a55565b600154600090600019015b808211611a29576000805b8284101561178c57611683612372565b600260006001878154811061169457fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff1615159082015260055490915060049004816020015111156117765760046005548161170157fe5b0481602001510381602001818152505080600260006001888154811061172357fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208351815591830151600183015591909101516002909101805460ff1916911515919091179055611780565b600192505061178c565b50600190930192611673565b8284116119235761179b612372565b60026000600186815481106117ac57fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff1615159082015260055490915060049004816020015111156118945760046005548161181957fe5b0481602001510381602001818152505080600260006001878154811061183b57fe5b6000918252602080832091909101546001600160a01b03168352828101939093526040918201902083518155918301516001808401919091559201516002909101805460ff191691151591909117905591506119239050565b60026000600186815481106118a557fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff191690558054806118e957fe5b600082815260209020810160001990810180546001600160a01b0319169055019055836119165750611923565b506000199092019161178c565b81801561192d5750805b15611a0c57600260006001868154811061194357fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff1916905580548490811061198a57fe5b600091825260209091200154600180546001600160a01b0390921691869081106119b057fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060018054806119e957fe5b600082815260209020810160001990810180546001600160a01b03191690550190555b82611a18575050611a29565b505060019091019060001901611668565b6040517fcfdb3b6ccaeccbdc68be3c59c840e3b3c90f0a7c491f5fff1cf56cfda200dd9c90600090a150505b565b61100481565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081611a78579050509050611aa1836001600160a01b0316611c9c565b81600081518110611aae57fe5b6020026020010181905250611ac243611cbf565b81600181518110611acf57fe5b6020908102919091010152611ae46038611cbf565b81600281518110611af157fe5b6020026020010181905250611b0542611cbf565b81600381518110611b1257fe5b6020026020010181905250611b2681611cd2565b9150505b919050565b611b37612395565b6000611b41612395565b611b496123a7565b611b5a611b5586611d5c565b611d81565b90506000805b611b6983611dcb565b15611ba25780611b9557611b84611b7f84611dec565b611e3a565b63ffffffff16845260019150611b9a565b611ba2565b600101611b60565b5091935090915050915091565b6000816040516020018082805190602001908083835b60208310611be45780518252601f199092019160209182019101611bc5565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310611c525780518252601f199092019160209182019101611c33565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052805190602001201490505b92915050565b015190565b60408051600560a21b8318601482015260348101909152606090611b2681611ef1565b6060611c91611ccd83611f47565b611ef1565b6060815160001415611cf35750604080516000815260208101909152611b2a565b606082600081518110611d0257fe5b602002602001015190506000600190505b8351811015611d4357611d3982858381518110611d2c57fe5b602002602001015161202d565b9150600101611d13565b50611b26611d56825160c060ff166120aa565b8261202d565b611d646123c7565b506040805180820190915281518152602082810190820152919050565b611d896123a7565b611d92826121a2565b611d9b57600080fd5b6000611daa83602001516121dc565b60208085015160408051808201909152868152920190820152915050919050565b6000611dd56123c7565b505080518051602091820151919092015191011190565b611df46123c7565b611dfd82611dcb565b611e0657600080fd5b60208201516000611e168261223f565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590611e4f57508151602110155b611e5857600080fd5b6000611e6783602001516121dc565b90508083600001511015611ec2576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015611ee857826020036101000a820491505b50949350505050565b606081516001148015611f235750607f60f81b82600081518110611f1157fe5b01602001516001600160f81b03191611155b15611f2f575080611b2a565b611c91611f418351608060ff166120aa565b8361202d565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416611f8b57506018611faf565b6fffffffffffffffffffffffffffffffff198416611fab57506010611faf565b5060005b6020811015611fe557818181518110611fc457fe5b01602001516001600160f81b03191615611fdd57611fe5565b600101611faf565b60008160200390506060816040519080825280601f01601f19166020018201604052801561201a576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b8183101561205e578051835260209283019201612046565b50855184518101855292509050808201602086015b8183101561208b578051835260209283019201612073565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106120fa576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b604080516001808252818301909252606091602082018180368337019050509050603784116121545782840160f81b8160008151811061213657fe5b60200101906001600160f81b031916908160001a9053509050611c91565b606061215f85611f47565b90508381510160370160f81b8260008151811061217857fe5b60200101906001600160f81b031916908160001a905350612199828261202d565b95945050505050565b80516000906121b357506000611b2a565b6020820151805160001a9060c08210156121d257600092505050611b2a565b5060019392505050565b8051600090811a60808110156121f6576000915050611b2a565b60b8811080612211575060c08110801590612211575060f881105b15612220576001915050611b2a565b60c08110156122345760b519019050611b2a565b60f519019050611b2a565b80516000908190811a608081101561225a576001915061236b565b60b881101561226f57607e198101915061236b565b60c08110156122e957600060b78203600186019550806020036101000a8651049150600181018201935050808310156122e3576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b5061236b565b60f88110156122fe5760be198101915061236b565b600060f78203600186019550806020036101000a865104915060018101820193505080831015612369576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b604051806060016040528060008152602001600081526020016000151581525090565b60408051602081019091526000815290565b60405180604001604052806123ba6123c7565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe6c656e677468206f66206d697364656d65616e6f725468726573686f6c64206d69736d61746368746865206d6573736167652073656e646572206d7573742062652076616c696461746f7253657420636f6e7472616374746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662066656c6f6e795468726573686f6c64206d69736d61746368746865206d697364656d65616e6f725468726573686f6c64206f7574206f662072616e6765746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d6573736167652073656e646572206d7573742062652074686520626c6f636b2070726f647563657274686520636f6e7472616374206e6f7420696e69742079657400000000000000a264697066735822122018b8714d9e81a204e6cb56a28d2122ac3178937ed053b34fef2460106855598d64736f6c63430006040033" + } + }, + "22107423": { + "0x0000000000000000000000000000000000001006": { + "balance": "0x0", + "code": "0x6080604052600436106101d85760003560e01c80637ae2308811610102578063c81b166211610095578063f9a2bbc711610064578063f9a2bbc714610569578063fb7cfdd71461057e578063fc3e590814610593578063fd6a6879146105a8576101d8565b8063c81b166214610515578063dc927faf1461052a578063e1c7392a1461053f578063e79a198f14610554576101d8565b8063a1a11bf5116100d1578063a1a11bf514610407578063a78abc161461041c578063ab51bb9614610431578063ac43175114610446576101d8565b80637ae23088146103b357806395468d26146103c857806396713da9146103dd5780639dc09262146103f2576101d8565b806351e806721161017a57806370fd5bad1161014957806370fd5bad1461035f578063718a8aa81461037457806375d47a0a146103895780637942fd051461039e576101d8565b806351e80672146102c7578063541d5548146102dc5780636a87d780146103235780636e47b4821461034a576101d8565b80633dffc387116101b65780633dffc3871461024657806343756e5c14610271578063493279b1146102865780634bf6c882146102b2576101d8565b80630bee7a67146101dd5780630e2374a51461020b5780631aa3a0081461023c575b600080fd5b3480156101e957600080fd5b506101f26105bd565b6040805163ffffffff9092168252519081900360200190f35b34801561021757600080fd5b506102206105c2565b604080516001600160a01b039092168252519081900360200190f35b6102446105c8565b005b34801561025257600080fd5b5061025b610749565b6040805160ff9092168252519081900360200190f35b34801561027d57600080fd5b5061022061074e565b34801561029257600080fd5b5061029b610754565b6040805161ffff9092168252519081900360200190f35b3480156102be57600080fd5b5061025b610759565b3480156102d357600080fd5b5061022061075e565b3480156102e857600080fd5b5061030f600480360360208110156102ff57600080fd5b50356001600160a01b0316610764565b604080519115158252519081900360200190f35b34801561032f57600080fd5b50610338610782565b60408051918252519081900360200190f35b34801561035657600080fd5b50610220610788565b34801561036b57600080fd5b5061025b61078e565b34801561038057600080fd5b5061025b610793565b34801561039557600080fd5b50610220610798565b3480156103aa57600080fd5b5061025b61079e565b3480156103bf57600080fd5b506103386107a3565b3480156103d457600080fd5b506103386107b0565b3480156103e957600080fd5b5061025b6107bc565b3480156103fe57600080fd5b506102206107c1565b34801561041357600080fd5b506102206107c7565b34801561042857600080fd5b5061030f6107cd565b34801561043d57600080fd5b506101f26107d6565b34801561045257600080fd5b506102446004803603604081101561046957600080fd5b81019060208101813564010000000081111561048457600080fd5b82018360208201111561049657600080fd5b803590602001918460018302840111640100000000831117156104b857600080fd5b9193909290916020810190356401000000008111156104d657600080fd5b8201836020820111156104e857600080fd5b8035906020019184600183028401116401000000008311171561050a57600080fd5b5090925090506107db565b34801561052157600080fd5b50610220610bfd565b34801561053657600080fd5b50610220610c03565b34801561054b57600080fd5b50610244610c09565b34801561056057600080fd5b50610244610c8b565b34801561057557600080fd5b50610220610e44565b34801561058a57600080fd5b50610338610e4a565b34801561059f57600080fd5b5061025b610e50565b3480156105b457600080fd5b50610220610e55565b606481565b61200181565b3360009081526004602052604090205460ff1615610625576040805162461bcd60e51b81526020600482015260156024820152741c995b185e595c88185b1c9958591e48195e1a5cdd605a1b604482015290519081900360640190fd5b60005460ff16610678576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b61068133610e5b565b156106bd5760405162461bcd60e51b81526004018080602001828103825260278152602001806110486027913960400191505060405180910390fd5b333214610707576040805162461bcd60e51b81526020600482015260136024820152721b9bc81c1c9bde1e481a5cc8185b1b1bddd959606a1b604482015290519081900360640190fd5b6040805162461bcd60e51b81526020600482015260126024820152711c9959da5cdd195c881cdd5cdc195b99195960721b604482015290519081900360640190fd5b600181565b61100181565b603881565b600881565b61200081565b6001600160a01b031660009081526004602052604090205460ff1690565b60025481565b61100581565b600281565b601081565b61100881565b600b81565b68056bc75e2d6310000081565b67016345785d8a000081565b600981565b61100781565b61100681565b60005460ff1681565b600081565b60005460ff1661082e576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b336110071461086e5760405162461bcd60e51b815260040180806020018281038252602e81526020018061106f602e913960400191505060405180910390fd5b6108d484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e1c995c5d5a5c995911195c1bdcda5d608a1b60208201529150610e619050565b156109d757602081146109185760405162461bcd60e51b815260040180806020018281038252602281526020018061109d6022913960400191505060405180910390fd5b604080516020601f840181900481028201810190925282815260009161095691858580838501838280828437600092019190915250610f4892505050565b90506001811180156109715750683635c9adc5dea000008111155b801561097e575060025481115b6109cf576040805162461bcd60e51b815260206004820181905260248201527f7468652072657175697265644465706f736974206f7574206f662072616e6765604482015290519081900360640190fd5b600155610b6b565b610a3284848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260048152636475657360e01b60208201529150610e619050565b15610b2e5760208114610a8c576040805162461bcd60e51b815260206004820152601760248201527f6c656e677468206f662064756573206d69736d61746368000000000000000000604482015290519081900360640190fd5b604080516020601f8401819004810282018101909252828152600091610aca91858580838501838280828437600092019190915250610f4892505050565b9050600081118015610add575060015481105b610b26576040805162461bcd60e51b81526020600482015260156024820152747468652064756573206f7574206f662072616e676560581b604482015290519081900360640190fd5b600255610b6b565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b61100281565b61100381565b60005460ff1615610c61576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b68056bc75e2d63100000600190815567016345785d8a00006002556000805460ff19169091179055565b3360009081526004602052604090205460ff16610ce6576040805162461bcd60e51b81526020600482015260146024820152731c995b185e595c88191bc81b9bdd08195e1a5cdd60621b604482015290519081900360640190fd5b60005460ff16610d39576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b610d4161102d565b5033600081815260036020908152604091829020825180840190935280548084526001909101549183018290529192916108fc91610d85919063ffffffff610f4d16565b6040518115909202916000818181858888f19350505050158015610dad573d6000803e3d6000fd5b50602081015160405161100291829181156108fc0291906000818181858888f19350505050158015610de3573d6000803e3d6000fd5b50336000818152600460209081526040808320805460ff191690556003825280832083815560010192909255815192835290517fd17202129b83db7880d6b9f25df81c58ad46f7e0e2c92236b1aa10663a4876679281900390910190a15050565b61100081565b60015481565b600381565b61100481565b3b151590565b6000816040516020018082805190602001908083835b60208310610e965780518252601f199092019160209182019101610e77565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310610f045780518252601f199092019160209182019101610ee5565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b6000610f8f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f96565b9392505050565b600081848411156110255760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610fea578181015183820152602001610fd2565b50505050905090810190601f1680156110175780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60405180604001604052806000815260200160008152509056fe636f6e7472616374206973206e6f7420616c6c6f77656420746f20626520612072656c61796572746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662072657175697265644465706f736974206d69736d61746368a26469706673582212201c4e7448b0b43bce697ca53ce9878e494069d8ceccfdd4081cee4d8b0deb5ae064736f6c63430006040033" + }, + "0x0000000000000000000000000000000000001003": { + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b50600436106102275760003560e01c8063a1a11bf511610130578063dc927faf116100b8578063e405bbc31161007c578063e405bbc3146106a7578063ea54b2aa146106af578063f9a2bbc7146106b7578063fc3e5908146106bf578063fd6a6879146106c757610227565b8063dc927faf14610627578063dda831481461062f578063df5fe70414610655578063e1c7392a1461067b578063e2761af01461068357610227565b8063adc879e9116100ff578063adc879e914610552578063c81b16621461055a578063cba510a914610562578063d816987914610588578063da8d08f01461060157610227565b8063a1a11bf514610462578063a78abc161461046a578063ab51bb9614610486578063ac4317511461048e57610227565b8063564b81ef116101b3578063718a8aa811610182578063718a8aa81461043a57806375d47a0a146104425780637942fd051461044a57806396713da9146104525780639dc092621461045a57610227565b8063564b81ef146102e85780635c5ae8db146103655780636e47b4821461042a57806370fd5bad1461043257610227565b80633dffc387116101fa5780633dffc3871461029357806343756e5c146102b1578063493279b1146102b95780634bf6c882146102d857806351e80672146102e057610227565b80630bee7a671461022c5780630e2374a51461024d5780632657e9b61461027157806333f7798d1461028b575b600080fd5b6102346106cf565b6040805163ffffffff9092168252519081900360200190f35b6102556106d4565b604080516001600160a01b039092168252519081900360200190f35b6102796106da565b60408051918252519081900360200190f35b6102796106e5565b61029b6106eb565b6040805160ff9092168252519081900360200190f35b6102556106f0565b6102c16106f6565b6040805161ffff9092168252519081900360200190f35b61029b6106fb565b610255610700565b6102f0610706565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561032a578181015183820152602001610312565b50505050905090810190601f1680156103575780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61038b6004803603602081101561037b57600080fd5b50356001600160401b0316610812565b60405180856001600160401b03166001600160401b0316815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156103ec5781810151838201526020016103d4565b50505050905090810190601f1680156104195780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b6102556108cd565b61029b6108d3565b61029b6108d8565b6102556108dd565b61029b6108e3565b61029b6108e8565b6102556108ed565b6102556108f3565b6104726108f9565b604080519115158252519081900360200190f35b610234610902565b610550600480360360408110156104a457600080fd5b8101906020810181356401000000008111156104bf57600080fd5b8201836020820111156104d157600080fd5b803590602001918460018302840111640100000000831117156104f357600080fd5b91939092909160208101903564010000000081111561051157600080fd5b82018360208201111561052357600080fd5b8035906020019184600183028401116401000000008311171561054557600080fd5b509092509050610907565b005b610279610bc0565b610255610bc6565b6102796004803603602081101561057857600080fd5b50356001600160401b0316610bcc565b6104726004803603604081101561059e57600080fd5b8101906020810181356401000000008111156105b957600080fd5b8201836020820111156105cb57600080fd5b803590602001918460018302840111640100000000831117156105ed57600080fd5b9193509150356001600160401b0316610beb565b6102556004803603602081101561061757600080fd5b50356001600160401b031661143c565b610255611457565b6102556004803603602081101561064557600080fd5b50356001600160401b031661145d565b6104726004803603602081101561066b57600080fd5b50356001600160401b0316611481565b6105506114c3565b61068b61166a565b604080516001600160401b039092168252519081900360200190f35b61068b611679565b6102f061168f565b6102556116ae565b61029b6116b4565b6102556116b9565b606481565b61200181565b662386f26fc1000081565b60055481565b600181565b61100181565b603881565b600881565b61200081565b604080516020808252818301909252606091829190602082018180368337505060045460208301525090506000805b60208160ff16101561077c57828160ff168151811061075057fe5b01602001516001600160f81b0319161561076f57600190910190610774565b61077c565b600101610735565b5060608160ff166040519080825280601f01601f1916602001820160405280156107ad576020820181803683370190505b50905060005b8260ff168160ff16101561080957838160ff16815181106107d057fe5b602001015160f81c60f81b828260ff16815181106107ea57fe5b60200101906001600160f81b031916908160001a9053506001016107b3565b50925050505b90565b60016020818152600092835260409283902080548184015460028084015460038501805489516101009982161599909902600019011692909204601f81018790048702880187019098528787526001600160401b0390931696919592949091908301828280156108c35780601f10610898576101008083540402835291602001916108c3565b820191906000526020600020905b8154815290600101906020018083116108a657829003601f168201915b5050505050905084565b61100581565b600281565b601081565b61100881565b600b81565b600981565b61100781565b61100681565b60005460ff1681565b600081565b60005460ff1661095e576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604482015290519081900360640190fd5b336110071461099e5760405162461bcd60e51b815260040180806020018281038252602e815260200180611a8b602e913960400191505060405180910390fd5b610a1284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601b81527f726577617264466f7256616c696461746f725365744368616e67650000000000602082015291506116bf9050565b15610af15760208114610a565760405162461bcd60e51b815260040180806020018281038252602e815260200180611a2a602e913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610a94918585808385018382808284376000920191909152506117a692505050565b9050600081118015610aae5750670de0b6b3a76400008111155b610ae95760405162461bcd60e51b815260040180806020018281038252602f815260200180611ab9602f913960400191505060405180910390fd5b600555610b2e565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b60045481565b61100281565b6001600160401b03166000908152600160208190526040909120015490565b60408051630a83aaa960e31b815233600482015290516000916110069163541d554891602480820192602092909190829003018186803b158015610c2e57600080fd5b505afa158015610c42573d6000803e3d6000fd5b505050506040513d6020811015610c5857600080fd5b5051610cab576040805162461bcd60e51b815260206004820152601f60248201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604482015290519081900360640190fd5b73b005741528b86f5952469d80a8614591e3c5b632331480610ce0575073446aa6e0dc65690403df3f127750da1322941f3e33145b610d1b5760405162461bcd60e51b815260040180806020018281038252602a815260200180611ae8602a913960400191505060405180910390fd5b6001600160401b0382166000908152600260205260409020546001600160a01b031615610d8f576040805162461bcd60e51b815260206004820152601c60248201527f63616e27742073796e63206475706c6963617465642068656164657200000000604482015290519081900360640190fd5b6003546001600160401b0390811690831611610ddc5760405162461bcd60e51b8152600401808060200182810382526026815260200180611b126026913960400191505060405180910390fd5b600354600160401b90046001600160401b0316610df7611908565b6001600160401b0382811660009081526001602081815260409283902083516080810185528154909516855280830154858301526002808201548686015260038201805486516101009682161596909602600019011691909104601f81018490048402850184019095528484529093606086019392830182828015610ebd5780601f10610e9257610100808354040283529160200191610ebd565b820191906000526020600020905b815481529060010190602001808311610ea057829003601f168201915b50505050508152505090505b836001600160401b0316826001600160401b031610158015610efa57506003546001600160401b0390811690831610155b15610fdb5780516001600160401b0380821660009081526001602081815260409283902083516080810185528154909516855280830154858301526002808201548686015260038201805486516101009682161596909602600019011691909104601f8101849004840285018401909552848452959750939460608601939091830182828015610fcb5780601f10610fa057610100808354040283529160200191610fcb565b820191906000526020600020905b815481529060010190602001808311610fae57829003601f168201915b5050505050815250509050610ec9565b6060810151516110d25780516001600160401b03811660009081526001602081815260409283902060030180548451600294821615610100026000190190911693909304601f81018390048302840183019094528383529395509092919083018282801561108a5780601f1061105f5761010080835404028352916020019161108a565b820191906000526020600020905b81548152906001019060200180831161106d57829003601f168201915b505050506060830182905250516110d25760405162461bcd60e51b8152600401808060200182810382526021815260200180611a096021913960400191505060405180910390fd5b6000816060015151608801905060608787905082016040519080825280601f01601f191660200182016040528015611111576020820181803683370190505b509050600061111f826117ab565b905061112d848683866117b1565b6111685760405162461bcd60e51b81526004018080602001828103825260238152602001806119e66023913960400191505060405180910390fd5b600083820191506111ae8a8a8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061181d92505050565b945090506111bd818386611827565b825160200193506111cc61192e565b6110008186866064600019fa6111e157600080fd5b805194506000600160f81b8616156112705750600554604080516309a99b4f60e41b815233600482015260248101929092525160019161100291639a99b4f0916044808201926020929091908290030181600087803b15801561124357600080fd5b505af1158015611257573d6000803e3d6000fd5b505050506040513d602081101561126d57600080fd5b50505b856001600160401b03169550602082019350600061129085888415611868565b90985090506001600160401b03808216908c16146112df5760405162461bcd60e51b8152600401808060200182810382526033815260200180611a586033913960400191505060405180910390fd5b6001600160401b03808c16600081815260026020818152604080842080546001600160a01b031916331790558e86168e529383526001808252928490208d518154961667ffffffffffffffff199096169590951785558c81015192850192909255918b01519183019190915560608a015180518b939261136692600385019291019061194d565b50506003546001600160401b03600160401b9091048116908d16111590506113ae576003805467ffffffffffffffff60401b1916600160401b6001600160401b038e16021790555b7f4042c1020a8f410fb1c8859d276ab436aeb2c3074960e48467299cf1c966d3b48b8a8a602001518560405180856001600160401b03166001600160401b03168152602001846001600160401b03166001600160401b031681526020018381526020018215151515815260200194505050505060405180910390a15060019c9b505050505050505050505050565b6002602052600090815260409020546001600160a01b031681565b61100381565b6001600160401b03166000908152600260205260409020546001600160a01b031690565b6001600160401b0381166000908152600260205260408120546001600160a01b03161515806114bd57506003546001600160401b038381169116145b92915050565b60005460ff161561151b576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b6000806115426040518061024001604052806102208152602001611b38610220913961181d565b81516004559092509050611554611908565b600061156284846000611868565b60008083526001600160401b038281168252600160208181526040938490208651815467ffffffffffffffff19169416939093178355808601519183019190915591840151600282015560608401518051949650929450859390926115ce92600385019291019061194d565b50506003805467ffffffffffffffff19166001600160401b0384811691821767ffffffffffffffff60401b1916600160401b9290920291909117918290556000805460ff19166001179055662386f26fc10000600555602085810151604080519490931684529083015280517f5ac9b37d571677b80957ca05693f371526c602fd08042b416a29fdab7efefa499350918290030190a150505050565b6003546001600160401b031681565b600354600160401b90046001600160401b031681565b6040518061024001604052806102208152602001611b38610220913981565b61100081565b600381565b61100481565b6000816040516020018082805190602001908083835b602083106116f45780518252601f1990920191602091820191016116d5565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106117625780518252601f199092019160209182019101611743565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b60200190565b60008460600151518284010392506000806117cf876060015161181d565b90925090506117df828683611827565b5050506040840151601f1983810191909152602090940151603f19830152605f19820192909252600454606719820152910160871990910152600190565b8051602090910191565b5b60208110611847578251825260209283019290910190601f1901611828565b915181516020939093036101000a6000190180199091169216919091179052565b611870611908565b600884015160288501516048909501805190956000929161188f611908565b6020810183905260408101829052866118fa5760008060688a036040519080825280601f01601f1916602001820160405280156118d3576020820181803683370190505b50606084018190526118e49061181d565b90925090506118f760208c018383611827565b50505b989297509195505050505050565b604080516080810182526000808252602082018190529181019190915260608082015290565b6040518061100001604052806080906020820280368337509192915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061198e57805160ff19168380011785556119bb565b828001600101855582156119bb579182015b828111156119bb5782518255916020019190600101906119a0565b506119c79291506119cb565b5090565b61080f91905b808211156119c757600081556001016119d156fe6661696c656420746f2073657269616c697a6520636f6e73656e7375732073746174656661696c656420746f206c6f61642076616c696461746f722073657420646174616c656e677468206f6620726577617264466f7256616c696461746f725365744368616e6765206d69736d617463686865616465722068656967687420646f65736e277420657175616c20746f207468652073706563696669656420686569676874746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374746865206e6577526577617264466f7256616c696461746f725365744368616e6765206f7574206f662072616e6765746865206d73672073656e646572206973206e6f7420612077686974656c6162656c2072656c6179657263616e27742073796e6320686561646572206265666f726520696e697469616c48656967687442696e616e63652d436861696e2d5469677269730000000000000000000000000000000006915167cedaf7bbf7df47d932fdda630527ee648562cf3e52c5e5f46156a3a971a4ceb443c53a50d8653ef8cf1e5716da68120fb51b636dc6d111ec3277b098ecd42d49d3769d8a1f78b4c17a965f7a30d4181fabbd1f969f46d3c8e83b5ad4845421d8000000e8d4a510002ba4e81542f437b7ae1f8a35ddb233c789a8dc22734377d9b6d63af1ca403b61000000e8d4a51000df8da8c5abfdb38595391308bb71e5a1e0aabdc1d0cf38315d50d6be939b2606000000e8d4a51000b6619edca4143484800281d698b70c935e9152ad57b31d85c05f2f79f64b39f3000000e8d4a510009446d14ad86c8d2d74780b0847110001a1c2e252eedfea4753ebbbfce3a22f52000000e8d4a510000353c639f80cc8015944436dab1032245d44f912edc31ef668ff9f4a45cd0599000000e8d4a51000e81d3797e0544c3a718e1f05f0fb782212e248e784c1a851be87e77ae0db230e000000e8d4a510005e3fcda30bd19d45c4b73688da35e7da1fce7c6859b2c1f20ed5202d24144e3e000000e8d4a51000b06a59a2d75bf5d014fce7c999b5e71e7a960870f725847d4ba3235baeaa08ef000000e8d4a510000c910e2fe650e4e01406b3310b489fb60a84bc3ff5c5bee3a56d5898b6a8af32000000e8d4a5100071f2d7b8ec1c8b99a653429b0118cd201f794f409d0fea4d65b1b662f2b00063000000e8d4a51000a2646970667358221220fb8b53bdce206113a24d3b8bc0be2f8f42197b57532be92e2ab23b199c941c8064736f6c63430006040033" + }, + "0x0000000000000000000000000000000000002000": { + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b50600436106102695760003560e01c80637942fd0511610151578063c27cdcfb116100c3578063e1c7392a11610087578063e1c7392a14610775578063e3b048051461077d578063f7a251d71461079d578063f9a2bbc714610815578063fc3e59081461081d578063fd6a68791461082557610269565b8063c27cdcfb1461070e578063c81b16621461072e578063d31f968d14610736578063d76a867514610765578063dc927faf1461076d57610269565b80639dc09262116101155780639dc0926214610630578063a1a11bf514610638578063a78abc1614610640578063ab51bb9614610648578063ac43175114610650578063b0355f5b1461048057610269565b80637942fd051461053b57806384013b6a14610543578063863fe4ab146106205780638cc8f5611461051b57806396713da91461062857610269565b8063422f9050116101ea5780636e47a51a116101ae5780636e47a51a146104f35780636e47b4821461051357806370fd5bad1461051b578063718a8aa81461052357806374f079b81461052b57806375d47a0a1461053357610269565b8063422f90501461048857806343756e5c146104bc578063493279b1146104c45780634bf6c882146104e357806351e80672146104eb57610269565b80632ff32aea116102315780632ff32aea146102f3578063308325f4146103145780633a648b151461031c5780633bdc47a6146103585780633dffc3871461048057610269565b806305e682581461026e5780630bee7a671461028c5780630e2374a5146102ad57806314b3023b146102d157806322556cdc146102eb575b600080fd5b61027661082d565b6040805160ff9092168252519081900360200190f35b610294610832565b6040805163ffffffff9092168252519081900360200190f35b6102b5610837565b604080516001600160a01b039092168252519081900360200190f35b6102d961083d565b60408051918252519081900360200190f35b6102d9610843565b6102fb610848565b60408051600792830b90920b8252519081900360200190f35b6102d9610851565b61033c6004803603602081101561033257600080fd5b503560ff16610857565b604080516001600160401b039092168252519081900360200190f35b61040b6004803603606081101561036e57600080fd5b60ff82351691602081013591810190606081016040820135600160201b81111561039757600080fd5b8201836020820111156103a957600080fd5b803590602001918460018302840111600160201b831117156103ca57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610872945050505050565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561044557818101518382015260200161042d565b50505050905090810190601f1680156104725780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102766108e8565b6104a86004803603602081101561049e57600080fd5b503560ff166108ed565b604080519115158252519081900360200190f35b6102b5610902565b6104cc610908565b6040805161ffff9092168252519081900360200190f35b61027661090d565b6102b5610912565b6102b56004803603602081101561050957600080fd5b503560ff16610918565b6102b5610933565b610276610939565b61027661093e565b6102d9610943565b6102b5610949565b61027661094f565b61061e600480360360a081101561055957600080fd5b810190602081018135600160201b81111561057357600080fd5b82018360208201111561058557600080fd5b803590602001918460018302840111600160201b831117156105a657600080fd5b919390929091602081019035600160201b8111156105c357600080fd5b8201836020820111156105d557600080fd5b803590602001918460018302840111600160201b831117156105f657600080fd5b919350915080356001600160401b03908116916020810135909116906040013560ff16610954565b005b6102d9611c4d565b610276611c55565b6102b5611c5a565b6102b5611c60565b6104a8611c66565b61029461082d565b61061e6004803603604081101561066657600080fd5b810190602081018135600160201b81111561068057600080fd5b82018360208201111561069257600080fd5b803590602001918460018302840111600160201b831117156106b357600080fd5b919390929091602081019035600160201b8111156106d057600080fd5b8201836020820111156106e257600080fd5b803590602001918460018302840111600160201b8311171561070357600080fd5b509092509050611c6f565b61033c6004803603602081101561072457600080fd5b503560ff16612211565b6102b561222c565b6104a86004803603604081101561074c57600080fd5b5080356001600160a01b0316906020013560ff16612232565b61040b612252565b6102b5612271565b61061e612277565b61033c6004803603602081101561079357600080fd5b503560ff1661262e565b61061e600480360360608110156107b357600080fd5b60ff8235169190810190604081016020820135600160201b8111156107d757600080fd5b8201836020820111156107e957600080fd5b803590602001918460018302840111600160201b8311171561080a57600080fd5b919350915035612649565b6102b561279a565b6102766127a0565b6102b56127a5565b600081565b606481565b61200181565b60015481565b603281565b60045460070b81565b60025481565b600a602052600090815260409020546001600160401b031681565b60606000825160210190506060816040519080825280601f01601f1916602001820160405280156108aa576020820181803683370190505b50602181018690526001810187905282815290506041810160006108cd866127ab565b5090506108dc818388516127b5565b50909695505050505050565b600181565b60096020526000908152604090205460ff1681565b61100181565b603881565b600881565b61200081565b6005602052600090815260409020546001600160a01b031681565b61100581565b600281565b601081565b60035481565b61100881565b600b81565b60005460ff166109a7576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b60408051630a83aaa960e31b815233600482015290516110069163541d5548916024808301926020929190829003018186803b1580156109e657600080fd5b505afa1580156109fa573d6000803e3d6000fd5b505050506040513d6020811015610a1057600080fd5b5051610a63576040805162461bcd60e51b815260206004820152601f60248201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604482015290519081900360640190fd5b73b005741528b86f5952469d80a8614591e3c5b632331480610a98575073446aa6e0dc65690403df3f127750da1322941f3e33145b610ad35760405162461bcd60e51b815260040180806020018281038252602a815260200180612d5a602a913960400191505060405180910390fd5b60ff8116600090815260086020526040902054829082906001600160401b039081169083168114610b43576040805162461bcd60e51b815260206004820152601560248201527439b2b8bab2b731b2903737ba1034b71037b93232b960591b604482015290519081900360640190fd5b60ff8216600090815260086020908152604091829020805467ffffffffffffffff1916600185016001600160401b039081169190911790915582516337d7f9c160e21b81529089166004820152915188926110039263df5fe70492602480840193829003018186803b158015610bb857600080fd5b505afa158015610bcc573d6000803e3d6000fd5b505050506040513d6020811015610be257600080fd5b5051610c1f5760405162461bcd60e51b8152600401808060200182810382526023815260200180612db66023913960400191505060405180910390fd5b60ff851660009081526005602052604090205485906001600160a01b0316610c8e576040805162461bcd60e51b815260206004820152601860248201527f6368616e6e656c206973206e6f7420737570706f727465640000000000000000604482015290519081900360640190fd5b60ff86166000908152600a6020526040902054889087906001600160401b039081169083161015610cf7576040805162461bcd60e51b815260206004820152600e60248201526d3a37b79037b632103432b0b232b960911b604482015290519081900360640190fd5b60ff81166000908152600a60205260409020546001600160401b03838116911614610d495760ff81166000908152600a60205260409020805467ffffffffffffffff19166001600160401b0384161790555b60608e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060608d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509050610e8d6110036001600160a01b031663cba510a98e6040518263ffffffff1660e01b815260040180826001600160401b03166001600160401b0316815260200191505060206040518083038186803b158015610e3657600080fd5b505afa158015610e4a573d6000803e3d6000fd5b505050506040513d6020811015610e6057600080fd5b505160408051808201909152600381526269626360e81b6020820152610e868e8e6127f6565b858561283d565b610ed5576040805162461bcd60e51b815260206004820152601460248201527334b73b30b634b21036b2b935b63290383937b7b360611b604482015290519081900360640190fd5b60408051631bb5062960e31b81526001600160401b038e16600482015290516000916110039163dda8314891602480820192602092909190829003018186803b158015610f2157600080fd5b505afa158015610f35573d6000803e3d6000fd5b505050506040513d6020811015610f4b57600080fd5b505190508b8b600080806060610f608961293a565b935093509350935083611022578460ff16866001600160401b03167ff7b2e42d694eb1100184aae86d4245d9e46966100b1dc7e723275b98326854ac8b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610fda578181015183820152602001610fc2565b50505050905090810190601f1680156110075780820380516001836020036101000a031916815260200191505b509250505060405180910390a3505050505050505050611c3d565b6040805160ff85811682529151918716916001600160401b038916917f36afdaf439a8f43fe72135135d804ae620b37a474f0943b5b85f6788312cad40919081900360200190a360ff83166115a75760ff85166000818152600560209081526040808320548151631182b87560e01b815260048101958652602481019283528651604482015286516001600160a01b03909216958695631182b875958d958a9593949093606490910192918601918190849084905b838110156110ef5781810151838201526020016110d7565b50505050905090810190601f16801561111c5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561113c57600080fd5b505af192505050801561122057506040513d6000823e601f3d908101601f19168201604052602081101561116f57600080fd5b8101908080516040519392919084600160201b82111561118e57600080fd5b9083019060208201858111156111a357600080fd5b8251600160201b8111828201881017156111bc57600080fd5b82525081516020918201929091019080838360005b838110156111e95781810151838201526020016111d1565b50505050905090810190601f1680156112165780820380516001836020036101000a031916815260200191505b5060405250505060015b611532576040516000815260443d101561123c575060006112d7565b60046000803e60005160e01c6308c379a0811461125d5760009150506112d7565b60043d036004833e81513d60248201116001600160401b0382111715611288576000925050506112d7565b80830180516001600160401b038111156112a95760009450505050506112d7565b8060208301013d86018111156112c7576000955050505050506112d7565b601f01601f191660405250925050505b806112e257506113f4565b60ff8716600090815260076020526040812054611319916001600160401b039091169089906113149060029088610872565b6129ea565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf948794849390840192918601918190849084905b838110156113b457818101518382015260200161139c565b50505050905090810190601f1680156113e15780820380516001836020036101000a031916815260200191505b509250505060405180910390a25061152d565b3d80801561141e576040519150601f19603f3d011682016040523d82523d6000602084013e611423565b606091505b5060ff8716600090815260076020526040812054611456916001600160401b039091169089906113149060029088610872565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351948794849390840192918601918190849084905b838110156114f15781810151838201526020016114d9565b50505050905090810190601f16801561151e5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b6115a1565b80511561159f5760ff871660009081526007602052604081205461156b916001600160401b039091169089906113149060019086610872565b60ff8716600090815260076020526040902080546001600160401b038082166001011667ffffffffffffffff199091161790555b505b50611b75565b60ff83166001141561184b5760ff8516600081815260056020908152604080832054815163831d65d160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563831d65d1958d958a9593949093606490910192918601918190849084905b83811015611631578181015183820152602001611619565b50505050905090810190601f16801561165e5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561167e57600080fd5b505af192505050801561168f575060015b6115a1576040516000815260443d10156116ab57506000611746565b60046000803e60005160e01c6308c379a081146116cc576000915050611746565b60043d036004833e81513d60248201116001600160401b03821117156116f757600092505050611746565b80830180516001600160401b03811115611718576000945050505050611746565b8060208301013d860181111561173657600095505050505050611746565b601f01601f191660405250925050505b8061175157506117b6565b60408051602080825283518183015283516001600160a01b038616937ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf93869390928392830191850190808383600083156113b457818101518382015260200161139c565b3d8080156117e0576040519150601f19603f3d011682016040523d82523d6000602084013e6117e5565b606091505b5060408051602080825283518183015283516001600160a01b038616937f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd297735193869390928392830191850190808383600083156114f15781810151838201526020016114d9565b60ff831660021415611b755760ff8516600081815260056020908152604080832054815163c8509d8160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563c8509d81958d958a9593949093606490910192918601918190849084905b838110156118d55781810151838201526020016118bd565b50505050905090810190601f1680156119025780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561192257600080fd5b505af1925050508015611933575060015b611b73576040516000815260443d101561194f575060006119ea565b60046000803e60005160e01c6308c379a081146119705760009150506119ea565b60043d036004833e81513d60248201116001600160401b038211171561199b576000925050506119ea565b80830180516001600160401b038111156119bc5760009450505050506119ea565b8060208301013d86018111156119da576000955050505050506119ea565b601f01601f191660405250925050505b806119f55750611a9e565b816001600160a01b03167ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf826040518080602001828103825283818151815260200191508051906020019080838360005b83811015611a5e578181015183820152602001611a46565b50505050905090810190601f168015611a8b5780820380516001836020036101000a031916815260200191505b509250505060405180910390a250611b73565b3d808015611ac8576040519150601f19603f3d011682016040523d82523d6000602084013e611acd565b606091505b50816001600160a01b03167f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351826040518080602001828103825283818151815260200191508051906020019080838360005b83811015611b37578181015183820152602001611b1f565b50505050905090810190601f168015611b645780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b505b60ff80861660009081526009602052604090205461100591636f93d2e6918a91339187911680611ba7575060ff881615155b604080516001600160e01b031960e088901b1681526001600160a01b039586166004820152939094166024840152604483019190915215156064820152905160848083019260209291908290030181600087803b158015611c0757600080fd5b505af1158015611c1b573d6000803e3d6000fd5b505050506040513d6020811015611c3157600080fd5b50505050505050505050505b5050505050505050505050505050565b630100380081565b600981565b61100781565b61100681565b60005460ff1681565b3361100714611caf5760405162461bcd60e51b815260040180806020018281038252602e815260200180612ce2602e913960400191505060405180910390fd5b611d1884848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526012815271626174636853697a65466f724f7261636c6560701b60208201529150612b409050565b15611db357604080516020601f8401819004810282018101909252828152600091611d5b91858580838501838280828437600092019190915250612c2792505050565b90506127108111158015611d705750600a8110155b611dab5760405162461bcd60e51b8152600401808060200182810382526032815260200180612d846032913960400191505060405180910390fd5b60015561217f565b611e1c84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601281527118591913dc955c19185d1950da185b9b995b60721b60208201529150612b409050565b15611fa457606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060169091149050611e9f5760405162461bcd60e51b815260040180806020018281038252605a815260200180612c88605a913960600191505060405180910390fd5b60018101516002820151601683015160ff82161590611ebd81612c2c565b611f0e576040805162461bcd60e51b815260206004820152601960248201527f61646472657373206973206e6f74206120636f6e747261637400000000000000604482015290519081900360640190fd5b60ff8416600081815260056020908152604080832080546001600160a01b0319166001600160a01b038716908117909155808452600683528184208585528352818420805460ff199081166001179091556009909352818420805490931687151517909255519092917f7e3b6af43092577ee20e60eaa1d9b114a7031305c895ee7dd3ffe17196d2e1e091a3505050505061217f565b61201184848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526016815275195b98589b1953dc911a5cd8589b1950da185b9b995b60521b60208201529150612b409050565b1561214257606082828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050825192935050600290911490506120945760405162461bcd60e51b815260040180806020018281038252604a815260200180612d10604a913960600191505060405180910390fd5b600181810151600283015160ff80831660009081526005602052604090205492939192908316909114906001600160a01b03168015612138576001600160a01b038116600090815260066020908152604080832060ff881680855290835292819020805460ff1916861515908117909155815190815290517fa3132e3f9819fbddc7f0ed6d38d7feef59aa95112090b7c592f5cb5bc4aa4adc929181900390910190a25b505050505061217f565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b6008602052600090815260409020546001600160401b031681565b61100281565b600660209081526000928352604080842090915290825290205460ff1681565b6040518060400160405280600381526020016269626360e81b81525081565b61100381565b60005460ff16156122cf576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b7f1471eb6eb2c5e789fc3de43f8ce62938c7d1836ec861730447e2ada8fd81017b80546001600160a01b0319908116611008179091557f92e85d02570a8092d09a6e3a57665bc3815a2699a4074001bf1ccabf660f5a36805460ff199081169091557fd8af288fc1c8680b4f4706064cf021e264efb6828fcaf7eb5ca36818eb365bcc8054821660019081179091557f89832631fb3c3307a103ba2c84ab569c64d6182a18893dcd163f0f1c2090733a805484166110049081179091557f6cde3cea4b3a3fb2488b2808bae7556f4a405e50f65e1794383bc026131b13c38054841690557f72e4efa1513b071517c6c74dba31b5934a81aa83cddd400e7081df5529c9943680548416831790557fa9bc9a3a348c357ba16b37005d7e6b3236198c0e939f4af8c5f19b8deeb8ebc08054851690911790557fc575c31fea594a6eb97c8e9d3f9caee4c16218c6ef37e923234c0fe9014a61e78054831690557f4e523af77f034e9810f1c94057f5e931fb3d16a51511a4c3add793617d18610580548316821790557ffb33122aa9f93cc639ebe80a7bc4784c11e6053dde89c6f4f7e268c6a623da1e805484166110001790557fc7694af312c4f286114180fd0ba6a52461fcee8a381636770b19a343af92538a80548316821790557f01112dd68e482ba8d68a7e828cff8b3abcea08eab88941953c180a7e650e9cd480548316821790557fc0a4a8be475dfebc377ebef2d7c4ff47656f572a08dd92b81017efcdba0febe1805484166110071790557f87e8a52529e8ece4ef759037313542a6429ff494a9fab9027fb79db90124eba680548316821790557f4c7666bbcb22d46469f7cc282f70764a7012dca2cce630ff8d83db9a9cdd48f080548316821790557f40f28f99a40bc9f6beea1013afdbc3cdcc689eb76b82c4de06c0acf1e1932ed58054909316611001179092557f0d9cf2cd531699eed8dd34e40ff2884a14a698c4898184fba85194e6f6772d248054821683179055600b60009081527f23f68c9bd22b8a93d06adabe17481c87c016bcbd20adc8bfd707a4d813a572176020527fdf0d5d05428057f5455c2dc8e810dd86d1e9350faa72f16bda8a45443c5b39328054831684179055603283556004805467ffffffffffffffff19166001600160401b031790556002819055600381905580549091169091179055565b6007602052600090815260409020546001600160401b031681565b60005460ff1661269c576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b33600090815260066020908152604080832060ff80891685529252909120548591166126f95760405162461bcd60e51b8152600401808060200182810382526031815260200180612c576031913960400191505060405180910390fd5b60ff85166000908152600760209081526040808320548151601f88018490048402810184019092528682526001600160401b03169261275e9284928a9261131492909189918c908c908190840183828082843760009201919091525061087292505050565b60ff959095166000908152600760205260409020805467ffffffffffffffff191660019096016001600160401b03169590951790945550505050565b61100081565b600381565b61100481565b8051602090910191565b5b602081106127d5578251825260209283019290910190601f19016127b6565b915181516020939093036101000a6000190180199091169216919091179052565b60408051600e808252818301909252606091630100380060ff851617918391602082018180368337505050600e818101969096526006810192909252509283525090919050565b60008561284c57506000612931565b606082518451865160800101016040519080825280601f01601f191660200182016040528015612883576020820181803683370190505b509050600061289182612c32565b6020808901518252019050866000806128a9896127ab565b80865260209095019490925090506128c28285836127b5565b928301926128cf886127ab565b80865260209095019490925090506128e88285836127b5565b9283018a8152602001926128fb876127ab565b909250905061290b8285836127b5565b508351602001612919612c38565b60208183886065600019fa5051600114955050505050505b95945050505050565b6000806000606060218551101561296a5750506040805160008082526020820190925290925082915081906129e3565b600185015160218601518651604080516020198301808252601f19600119909401939093168101602001909152604189019392916060919080156129b5576020820181803683370190505b50905060006129c3826127ab565b5090506129d5858260218d51036127b5565b506001975091955093509150505b9193509193565b600254431115612a29576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b161790915560035543600255612a6a565b60038054600190810191829055541015612a6a576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b16179091556003555b8160ff16836001600160401b0316600460009054906101000a900460070b6001600160401b03167f3a6e0fc61675aa2a100bcba0568368bb92bcec91c97673391074f11138f0cffe603885604051808361ffff1661ffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015612b00578181015183820152602001612ae8565b50505050905090810190601f168015612b2d5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a4505050565b6000816040516020018082805190602001908083835b60208310612b755780518252601f199092019160209182019101612b56565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310612be35780518252601f199092019160209182019101612bc4565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b3b151590565b60200190565b6040518060200160405280600190602082028036833750919291505056fe74686520636f6e747261637420616e64206368616e6e656c2068617665206e6f74206265656e20726567697374657265646c656e677468206f662076616c756520666f72206164644f725570646174654368616e6e656c2073686f756c642062652032322c206368616e6e656c49643a697346726f6d53797374656d3a68616e646c657241646472657373746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662076616c756520666f7220656e61626c654f7244697361626c654368616e6e656c2073686f756c6420626520322c206368616e6e656c49643a6973456e61626c65746865206d73672073656e646572206973206e6f7420612077686974656c6162656c2072656c61796572746865206e6577426174636853697a65466f724f7261636c652073686f756c6420626520696e205b31302c2031303030305d6c6967687420636c69656e74206e6f742073796e632074686520626c6f636b20796574a2646970667358221220273761c387b9ebd0b15a5a47689f1de8e0168465c6b2da4606f3abaa43a17fef64736f6c63430006040033" + } + }, + "23846001": { + "0x0000000000000000000000000000000000001004": { + "balance": "0x0", + "code": "0x60806040526004361061036f5760003560e01c80639a854bbd116101c6578063bd466461116100f7578063f014847211610095578063fc1a598f1161006f578063fc1a598f14610d58578063fc3e590814610a3b578063fd6a687914610d8b578063ff9c0027146106ec576103b7565b8063f014847214610d19578063f9a2bbc714610d2e578063fa9e915914610d43576103b7565b8063d9e6dae9116100d1578063d9e6dae91461066e578063dc927faf14610cda578063e1c7392a14610cef578063ebf71d5314610d04576103b7565b8063bd46646114610c0d578063c81b166214610c40578063c8509d8114610c55576103b7565b8063aa7415f511610164578063b99328c51161013e578063b99328c514610b77578063b9fd21e314610bb0578063ba35ead614610bc5578063bbface1f14610bda576103b7565b8063aa7415f514610a50578063ab51bb9614610a97578063ac43175114610aac576103b7565b8063a1a11bf5116101a0578063a1a11bf5146109fc578063a496fba214610a11578063a78abc1614610a26578063a7c9f02d14610a3b576103b7565b80639a854bbd146109995780639a99b4f0146109ae5780639dc09262146109e7576103b7565b806361368475116102a0578063727be1f81161023e578063831d65d111610218578063831d65d1146108c05780638b87b21f146105ed5780638eff336c1461094557806396713da914610984576103b7565b8063727be1f81461086c57806375d47a0a146108965780637942fd05146108ab576103b7565b80636e47b4821161027a5780636e47b4821461082d57806370fd5bad146106ec578063718a8aa81461084257806371d3086314610857576103b7565b8063613684751461066e57806366dea52a146106ec5780636e05652014610701576103b7565b806343a368b91161030d57806350432d32116102e757806350432d321461068357806351e806721461069857806359b92789146106ad5780635d499b1b146106d7576103b7565b806343a368b91461062d578063493279b1146106425780634bf6c8821461066e576103b7565b8063149d14d911610349578063149d14d9146105155780633d7132231461053c5780633dffc387146105ed57806343756e5c14610618576103b7565b80630bee7a67146103bc5780630e2374a5146103ea5780631182b8751461041b576103b7565b366103b75734156103b5576040805133815234602082015281517f6c98249d85d88c3753a04a22230f595e4dc8d3dc86c34af35deeeedc861b89db929181900390910190a15b005b600080fd5b3480156103c857600080fd5b506103d1610da0565b6040805163ffffffff9092168252519081900360200190f35b3480156103f657600080fd5b506103ff610da5565b604080516001600160a01b039092168252519081900360200190f35b34801561042757600080fd5b506104a06004803603604081101561043e57600080fd5b60ff8235169190810190604081016020820135600160201b81111561046257600080fd5b82018360208201111561047457600080fd5b803590602001918460018302840111600160201b8311171561049557600080fd5b509092509050610dab565b6040805160208082528351818301528351919283929083019185019080838360005b838110156104da5781810151838201526020016104c2565b50505050905090810190601f1680156105075780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561052157600080fd5b5061052a610ed9565b60408051918252519081900360200190f35b34801561054857600080fd5b506103ff6004803603602081101561055f57600080fd5b810190602081018135600160201b81111561057957600080fd5b82018360208201111561058b57600080fd5b803590602001918460018302840111600160201b831117156105ac57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610edf945050505050565b3480156105f957600080fd5b50610602610f03565b6040805160ff9092168252519081900360200190f35b34801561062457600080fd5b506103ff610f08565b34801561063957600080fd5b5061052a610f0e565b34801561064e57600080fd5b50610657610f1a565b6040805161ffff9092168252519081900360200190f35b34801561067a57600080fd5b50610602610f1f565b34801561068f57600080fd5b5061052a610f24565b3480156106a457600080fd5b506103ff610f2f565b3480156106b957600080fd5b506103ff600480360360208110156106d057600080fd5b5035610f35565b3480156106e357600080fd5b5061052a610f50565b3480156106f857600080fd5b50610602610f59565b6108196004803603608081101561071757600080fd5b810190602081018135600160201b81111561073157600080fd5b82018360208201111561074357600080fd5b803590602001918460208302840111600160201b8311171561076457600080fd5b919390929091602081019035600160201b81111561078157600080fd5b82018360208201111561079357600080fd5b803590602001918460208302840111600160201b831117156107b457600080fd5b919390929091602081019035600160201b8111156107d157600080fd5b8201836020820111156107e357600080fd5b803590602001918460208302840111600160201b8311171561080457600080fd5b91935091503567ffffffffffffffff16610f5e565b604080519115158252519081900360200190f35b34801561083957600080fd5b506103ff611433565b34801561084e57600080fd5b50610602611439565b34801561086357600080fd5b5061052a61143e565b34801561087857600080fd5b506108196004803603602081101561088f57600080fd5b5035611444565b3480156108a257600080fd5b506103ff6114c5565b3480156108b757600080fd5b506106026114cb565b3480156108cc57600080fd5b506103b5600480360360408110156108e357600080fd5b60ff8235169190810190604081016020820135600160201b81111561090757600080fd5b82018360208201111561091957600080fd5b803590602001918460018302840111600160201b8311171561093a57600080fd5b5090925090506114d0565b34801561095157600080fd5b506103b56004803603606081101561096857600080fd5b508035906001600160a01b036020820135169060400135611619565b34801561099057600080fd5b5061060261169f565b3480156109a557600080fd5b5061052a6116a4565b3480156109ba57600080fd5b5061052a600480360360408110156109d157600080fd5b506001600160a01b0381351690602001356116b0565b3480156109f357600080fd5b506103ff6117ee565b348015610a0857600080fd5b506103ff6117f4565b348015610a1d57600080fd5b506106026117fa565b348015610a3257600080fd5b506108196117ff565b348015610a4757600080fd5b50610602611808565b61081960048036036080811015610a6657600080fd5b5080356001600160a01b03908116916020810135909116906040810135906060013567ffffffffffffffff1661180d565b348015610aa357600080fd5b506103d16117fa565b348015610ab857600080fd5b506103b560048036036040811015610acf57600080fd5b810190602081018135600160201b811115610ae957600080fd5b820183602082011115610afb57600080fd5b803590602001918460018302840111600160201b83111715610b1c57600080fd5b919390929091602081019035600160201b811115610b3957600080fd5b820183602082011115610b4b57600080fd5b803590602001918460018302840111600160201b83111715610b6c57600080fd5b509092509050611ece565b348015610b8357600080fd5b506103b560048036036040811015610b9a57600080fd5b50803590602001356001600160a01b031661213d565b348015610bbc57600080fd5b5061052a6121b3565b348015610bd157600080fd5b5061052a6121bd565b348015610be657600080fd5b5061052a60048036036020811015610bfd57600080fd5b50356001600160a01b03166121c3565b348015610c1957600080fd5b5061052a60048036036020811015610c3057600080fd5b50356001600160a01b03166121d5565b348015610c4c57600080fd5b506103ff6121f0565b348015610c6157600080fd5b506103b560048036036040811015610c7857600080fd5b60ff8235169190810190604081016020820135600160201b811115610c9c57600080fd5b820183602082011115610cae57600080fd5b803590602001918460018302840111600160201b83111715610ccf57600080fd5b5090925090506121f6565b348015610ce657600080fd5b506103ff6122c6565b348015610cfb57600080fd5b506103b56122cc565b348015610d1057600080fd5b5061060261236c565b348015610d2557600080fd5b50610602612371565b348015610d3a57600080fd5b506103ff612376565b348015610d4f57600080fd5b5061052a61237c565b348015610d6457600080fd5b506104a060048036036020811015610d7b57600080fd5b50356001600160a01b0316612382565b348015610d9757600080fd5b506103ff6124a9565b606481565b61200181565b60005460609060ff16610df3576040805162461bcd60e51b8152602060048201526019602482015260008051602061490c833981519152604482015290519081900360640190fd5b3361200014610e335760405162461bcd60e51b815260040180806020018281038252602f8152602001806148ba602f913960400191505060405180910390fd5b60ff841660021415610e8557610e7e83838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506124af92505050565b9050610ed2565b6040805162461bcd60e51b815260206004820152601860248201527f756e7265636f676e697a65642073796e207061636b6167650000000000000000604482015290519081900360640190fd5b9392505050565b60015490565b6020818101516000908152600490915260409020546001600160a01b03165b919050565b600181565b61100181565b670de0b6b3a764000081565b603881565b600881565b66071afd498d000081565b61200081565b6000908152600460205260409020546001600160a01b031690565b6402540be40081565b600281565b6000805460ff16610fa4576040805162461bcd60e51b8152602060048201526019602482015260008051602061490c833981519152604482015290519081900360640190fd5b868514610fe25760405162461bcd60e51b815260040180806020018281038252603b81526020018061487f603b913960400191505060405180910390fd5b8683146110205760405162461bcd60e51b815260040180806020018281038252603f815260200180614752603f913960400191505060405180910390fd5b426078018267ffffffffffffffff16101561106c5760405162461bcd60e51b81526004018080602001828103825260248152602001806146426024913960400191505060405180910390fd5b6402540be4003406156110b05760405162461bcd60e51b81526004018080602001828103825260408152602001806149826040913960400191505060405180910390fd5b604080518681526020808802820101909152859060009081906060908480156110e3578160200160208202803683370190505b50905060005b848110156111be576402540be4008b8b8381811061110357fe5b905060200201358161111157fe5b061561114e5760405162461bcd60e51b815260040180806020018281038252603c815260200180614791603c913960400191505060405180910390fd5b6111738b8b8381811061115d57fe5b90506020020135856125d390919063ffffffff16565b935061119f6402540be4008c8c8481811061118a57fe5b9050602002013561262d90919063ffffffff16565b8282815181106111ab57fe5b60209081029190910101526001016110e9565b506001546111e3906111d6908663ffffffff61266f16565b849063ffffffff6125d316565b3410156112215760405162461bcd60e51b815260040180806020018281038252605681526020018061492c6056913960600191505060405180910390fd5b611231348463ffffffff6126c816565b915061123b614468565b6040518060c001604052806221272160e91b60001b815260200160006001600160a01b031681526020018381526020018e8e808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505050908252506040805160208c810282810182019093528c82529283019290918d918d91829185019084908082843760009201919091525050509082525067ffffffffffffffff8916602090910152905061200063f7a251d760036112ff8461270a565b611314876402540be40063ffffffff61262d16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561137257818101518382015260200161135a565b50505050905090810190601f16801561139f5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156113c057600080fd5b505af11580156113d4573d6000803e3d6000fd5b505060408051600081523360208201528082018890526060810187905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a15060019c9b505050505050505050505050565b61100581565b601081565b60015481565b600033612001146114865760405162461bcd60e51b81526004018080602001828103825260338152602001806145826033913960400191505060405180910390fd5b81156114bd576040516120019083156108fc029084906000818181858888f193505050501580156114bb573d6000803e3d6000fd5b505b506001919050565b61100881565b600b81565b60005460ff16611515576040805162461bcd60e51b8152602060048201526019602482015260008051602061490c833981519152604482015290519081900360640190fd5b33612000146115555760405162461bcd60e51b815260040180806020018281038252602f8152602001806148ba602f913960400191505060405180910390fd5b60ff8316600314156115a5576115a082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506129c592505050565b611614565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a15b505050565b33611008146116595760405162461bcd60e51b81526004018080602001828103825260238152602001806148e96023913960400191505060405180910390fd5b600083815260046020908152604080832080546001600160a01b039096166001600160a01b03199096168617905593825260038152838220949094556002909352912055565b600981565b677ce66c50e284000081565b6000805460ff166116f6576040805162461bcd60e51b8152602060048201526019602482015260008051602061490c833981519152604482015290519081900360640190fd5b33611005146117365760405162461bcd60e51b815260040180806020018281038252602f8152602001806145b5602f913960400191505060405180910390fd5b60004783106117455747611747565b825b9050670de0b6b3a76400008111156117635760009150506117e8565b80156117e5576040516001600160a01b0385169082156108fc029083906000818181858888f1935050505015801561179f573d6000803e3d6000fd5b50604080516001600160a01b03861681526020810183905281517ff8b71c64315fc33b2ead2adfa487955065152a8ac33d9d5193aafd7f45dc15a0929181900390910190a15b90505b92915050565b61100781565b61100681565b600081565b60005460ff1681565b600381565b6000805460ff16611853576040805162461bcd60e51b8152602060048201526019602482015260008051602061490c833981519152604482015290519081900360640190fd5b426078018267ffffffffffffffff16101561189f5760405162461bcd60e51b81526004018080602001828103825260248152602001806146426024913960400191505060405180910390fd5b6402540be4003406156118e35760405162461bcd60e51b81526004018080602001828103825260408152602001806149826040913960400191505060405180910390fd5b600080806001600160a01b0388166119c25760015461190990879063ffffffff6125d316565b3410156119475760405162461bcd60e51b81526004018080602001828103825260618152602001806146cc6061913960800191505060405180910390fd5b6402540be40086061561198b5760405162461bcd60e51b815260040180806020018281038252603c815260200180614791603c913960400191505060405180910390fd5b61199b348763ffffffff6126c816565b90506119b2866402540be40063ffffffff61262d16565b6221272160e91b93509150611c65565b6001600160a01b038816600090815260036020526040902054925082611a195760405162461bcd60e51b815260040180806020018281038252603181526020018061469b6031913960400191505060405180910390fd5b600154341015611a5a5760405162461bcd60e51b815260040180806020018281038252603f8152602001806147ee603f913960400191505060405180910390fd5b506001600160a01b0387166000908152600260205260409020543490600881111580611aa55750600881118015611aa55750611aa3876007198301600a0a63ffffffff612a2116565b155b611ae05760405162461bcd60e51b815260040180806020018281038252603c815260200180614791603c913960400191505060405180910390fd5b611aea8782612a63565b9250611af584612aa3565b15611b3d576305f5e100831015611b3d5760405162461bcd60e51b815260040180806020018281038252603a8152602001806145e4603a913960400191505060405180910390fd5b600881101580611b575750600881108015611b5757508683115b611b925760405162461bcd60e51b815260040180806020018281038252602581526020018061472d6025913960400191505060405180910390fd5b677ce66c50e2840000831115611bd95760405162461bcd60e51b81526004018080602001828103825260358152602001806146666035913960400191505060405180910390fd5b604080516323b872dd60e01b81523360048201523060248201526044810189905290516001600160a01b038b16916323b872dd9160648083019260209291908290030181600087803b158015611c2e57600080fd5b505af1158015611c42573d6000803e3d6000fd5b505050506040513d6020811015611c5857600080fd5b5051611c6357600080fd5b505b611c6d614468565b6040805160c0810182528581526001600160a01b038b166020820152815160018082528184018452919283019181602001602082028036833750505081526040805160018082528183019092526020928301929091908083019080368337505050815260408051600180825281830190925260209283019290919080830190803683370190505081526020018767ffffffffffffffff168152509050828160400151600081518110611d1b57fe5b602002602001018181525050878160600151600081518110611d3957fe5b60200260200101906001600160a01b031690816001600160a01b031681525050338160800151600081518110611d6b57fe5b6001600160a01b039092166020928302919091019091015261200063f7a251d76003611d968461270a565b611dab866402540be40063ffffffff61262d16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611e09578181015183820152602001611df1565b50505050905090810190601f168015611e365780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015611e5757600080fd5b505af1158015611e6b573d6000803e3d6000fd5b5050604080516001600160a01b038d1681523360208201528082018b90526060810186905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a150600198975050505050505050565b3361100714611f0e5760405162461bcd60e51b815260040180806020018281038252602e81526020018061482d602e913960400191505060405180910390fd5b60208114611f63576040805162461bcd60e51b815260206004820152601b60248201527f65787065637465642076616c7565206c656e6774682069732033320000000000604482015290519081900360640190fd5b606084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8801819004810282018101909252868152939450606093925086915085908190840183828082843760009201919091525050505060208301519091506772656c617946656560c01b81141561206b576020820151670de0b6b3a7640000811180159061201257506402540be4008106155b612063576040805162461bcd60e51b815260206004820152601960248201527f7468652072656c6179466565206f7574206f662072616e676500000000000000604482015290519081900360640190fd5b6001556120a8565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a878787876040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050505050565b336110081461217d5760405162461bcd60e51b81526004018080602001828103825260238152602001806148e96023913960400191505060405180910390fd5b600091825260046020908152604080842080546001600160a01b03191690556001600160a01b0392909216835260039052812055565b6221272160e91b81565b61c35081565b60026020526000908152604090205481565b6001600160a01b031660009081526003602052604090205490565b61100281565b60005460ff1661223b576040805162461bcd60e51b8152602060048201526019602482015260008051602061490c833981519152604482015290519081900360640190fd5b336120001461227b5760405162461bcd60e51b815260040180806020018281038252602f8152602001806148ba602f913960400191505060405180910390fd5b60ff8316600314156115a5576115a082828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612ba992505050565b61100381565b60005460ff1615612324576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b66071afd498d000060019081556000808052600260205260127fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b55805460ff19169091179055565b600481565b600581565b61100081565b61271081565b6001600160a01b03811660009081526003602090815260409182902054825182815280840190935260609290918391906020820181803683375050506020810183905290506000805b60208160ff16101561241257828160ff16815181106123e657fe5b01602001516001600160f81b031916156124055760019091019061240a565b612412565b6001016123cb565b5060608160ff166040519080825280601f01601f191660200182016040528015612443576020820181803683370190505b50905060005b8260ff168160ff16101561249f57838160ff168151811061246657fe5b602001015160f81c60f81b828260ff168151811061248057fe5b60200101906001600160f81b031916908160001a905350600101612449565b5095945050505050565b61100481565b60606124b96144b4565b60006124c484612ca7565b915091508061251a576040805162461bcd60e51b815260206004820152601f60248201527f756e7265636f676e697a6564207472616e73666572496e207061636b61676500604482015290519081900360640190fd5b600061252583612de6565b905063ffffffff8116156125b9576040808401516020808601516001600160a01b031660009081526002909152918220546125609190612a63565b905061256a6144e9565b60405180608001604052808660000151815260200183815260200186608001516001600160a01b031681526020018463ffffffff1681525090506125ad81613133565b95505050505050610efe565b50506040805160008152602081019091529150610efe9050565b6000828201838110156117e5576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60006117e583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061320f565b60008261267e575060006117e8565b8282028284828161268b57fe5b04146117e55760405162461bcd60e51b81526004018080602001828103825260218152602001806147cd6021913960400191505060405180910390fd5b60006117e583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506132b1565b60408051600680825260e08201909252606091829190816020015b606081526020019060019003908161272557505083519091506127479061330b565b8160008151811061275457fe5b602002602001018190525061277583602001516001600160a01b031661331e565b8160018151811061278257fe5b6020026020010181905250600083604001515190506060816040519080825280602002602001820160405280156127cd57816020015b60608152602001906001900390816127b85790505b50905060005b8281101561281a576127fb866040015182815181106127ee57fe5b602002602001015161330b565b82828151811061280757fe5b60209081029190910101526001016127d3565b5061282481613341565b8360028151811061283157fe5b602002602001018190525060608260405190808252806020026020018201604052801561287257816020015b606081526020019060019003908161285d5790505b50905060005b838110156128c8576128a98760600151828151811061289357fe5b60200260200101516001600160a01b031661331e565b8282815181106128b557fe5b6020908102919091010152600101612878565b506128d281613341565b846003815181106128df57fe5b602002602001018190525060608360405190808252806020026020018201604052801561292057816020015b606081526020019060019003908161290b5790505b50905060005b84811015612960576129418860800151828151811061289357fe5b82828151811061294d57fe5b6020908102919091010152600101612926565b5061296a81613341565b8560048151811061297757fe5b60200260200101819052506129998760a0015167ffffffffffffffff1661330b565b856005815181106129a657fe5b60200260200101819052506129ba85613341565b979650505050505050565b6129cd614510565b60006129d8836133cb565b9150915080612a185760405162461bcd60e51b815260040180806020018281038252602481526020018061485b6024913960400191505060405180910390fd5b61161482613596565b60006117e583836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f0000000000000000815250613a1a565b60006008821115612a8c57612a85836007198401600a0a63ffffffff61262d16565b90506117e8565b6117e5836008849003600a0a63ffffffff61266f16565b604080516020808252818301909252600091606091906020820181803683375050506020810184905290506000805b60208160ff161015612b1957828160ff1681518110612aed57fe5b01602001516001600160f81b03191615612b0c57600190910190612b11565b612b19565b600101612ad2565b50600760ff82161015612b3157600092505050610efe565b816005820360ff1681518110612b4357fe5b6020910101516001600160f81b031916602d60f81b14612b6857600092505050610efe565b816001820360ff1681518110612b7a57fe5b6020910101516001600160f81b031916604d60f81b14612b9f57600092505050610efe565b5060019392505050565b612bb1614468565b6000612bbc83613a7c565b9150915080612bfc5760405162461bcd60e51b815260040180806020018281038252602481526020018061461e6024913960400191505060405180910390fd5b612c04614510565b602080840180516001600160a01b0390811684526040808701518585015291511660009081526002909252812054905b846040015151811015612c8557612c6285604001518281518110612c5457fe5b602002602001015183613ce0565b85604001518281518110612c7257fe5b6020908102919091010152600101612c34565b506080840151604083015260056060830152612ca082613596565b5050505050565b612caf6144b4565b6000612cb96144b4565b612cc1614547565b612cd2612ccd86613d19565b613d3e565b90506000805b612ce183613d88565b15612dd95780612d0357612cfc612cf784613da9565b613df7565b8452612dd1565b8060011415612d3057612d1d612d1884613da9565b613eae565b6001600160a01b03166020850152612dd1565b8060021415612d4f57612d45612cf784613da9565b6040850152612dd1565b8060031415612d7757612d64612d1884613da9565b6001600160a01b03166060850152612dd1565b8060041415612d9f57612d8c612d1884613da9565b6001600160a01b03166080850152612dd1565b8060051415612dcc57612db4612cf784613da9565b67ffffffffffffffff1660a085015260019150612dd1565b612dd9565b600101612cd8565b5091935090915050915091565b60208101516000906001600160a01b0316612f1d578160a0015167ffffffffffffffff16421115612e1957506001610efe565b8160400151471015612e2d57506003610efe565b606082015160408084015190516000926001600160a01b0316916127109184818181858888f193505050503d8060008114612e84576040519150601f19603f3d011682016040523d82523d6000602084013e612e89565b606091505b5050905080612e9c575060049050610efe565b7f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5983602001518460600151856040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a15060009050610efe565b8160a0015167ffffffffffffffff16421115612f3b57506001610efe565b81516020808401516001600160a01b031660009081526003909152604090205414612f6857506002610efe565b602080830151604080516370a0823160e01b815230600482015290516000936001600160a01b03909316926370a082319261c3509260248083019392829003018187803b158015612fb857600080fd5b5086fa158015612fcc573d6000803e3d6000fd5b50505050506040513d6020811015612fe357600080fd5b50516040840151909150811015612ffe575060039050610efe565b600083602001516001600160a01b031663a9059cbb61c350866060015187604001516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b15801561306f57600080fd5b5087f1158015613083573d6000803e3d6000fd5b50505050506040513d602081101561309a57600080fd5b505190508015613127577f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5984602001518560600151866040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a15060009150610efe9050565b5060059150610efe9050565b60408051600480825260a08201909252606091829190816020015b606081526020019060019003908161314e57505083519091506131709061330b565b8160008151811061317d57fe5b6020026020010181905250613195836020015161330b565b816001815181106131a257fe5b60200260200101819052506131c383604001516001600160a01b031661331e565b816002815181106131d057fe5b60200260200101819052506131ee836060015163ffffffff1661330b565b816003815181106131fb57fe5b6020026020010181905250610ed281613341565b6000818361329b5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613260578181015183820152602001613248565b50505050905090810190601f16801561328d5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816132a757fe5b0495945050505050565b600081848411156133035760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315613260578181015183820152602001613248565b505050900390565b60606117e861331983613ec8565b613fae565b60408051600560a21b8318601482015260348101909152606090610ed281613fae565b60608151600014156133625750604080516000815260208101909152610efe565b60608260008151811061337157fe5b602002602001015190506000600190505b83518110156133b2576133a88285838151811061339b57fe5b6020026020010151614000565b9150600101613382565b50610ed26133c5825160c060ff1661407d565b82614000565b6133d3614510565b60006133dd614510565b6133e5614547565b6133f1612ccd86613d19565b90506000805b61340083613d88565b15612dd9578061342657613416612d1884613da9565b6001600160a01b0316845261358e565b80600114156134c757606061344261343d85613da9565b614175565b9050805160405190808252806020026020018201604052801561346f578160200160208202803683370190505b50602086015260005b81518110156134c05761349d82828151811061349057fe5b6020026020010151613df7565b866020015182815181106134ad57fe5b6020908102919091010152600101613478565b505061358e565b80600214156135695760606134de61343d85613da9565b9050805160405190808252806020026020018201604052801561350b578160200160208202803683370190505b50604086015260005b81518110156134c05761353982828151811061352c57fe5b6020026020010151613eae565b8660400151828151811061354957fe5b6001600160a01b0390921660209283029190910190910152600101613514565b8060031415612dcc5761357e612cf784613da9565b63ffffffff166060850152600191505b6001016133f7565b80516001600160a01b03166137c05760005b8160200151518110156137ba576000826040015182815181106135c757fe5b60200260200101516001600160a01b0316612710846020015184815181106135eb57fe5b60209081029190910101516040516000818181858888f193505050503d8060008114613633576040519150601f19603f3d011682016040523d82523d6000602084013e613638565b606091505b50509050806136fb577f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061367757fe5b60200260200101518560200151858151811061368f57fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a16137b1565b7fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a83600001518460400151848151811061373157fe5b60200260200101518560200151858151811061374957fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b506001016135a8565b50613a17565b60005b816020015151811015613a1557600082600001516001600160a01b031663a9059cbb61c350856040015185815181106137f857fe5b60200260200101518660200151868151811061381057fe5b60200260200101516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b15801561386757600080fd5b5087f115801561387b573d6000803e3d6000fd5b50505050506040513d602081101561389257600080fd5b505190508015613956577fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a8360000151846040015184815181106138d257fe5b6020026020010151856020015185815181106138ea57fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a1613a0c565b7f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061398c57fe5b6020026020010151856020015185815181106139a457fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b506001016137c3565b505b50565b60008183613a695760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315613260578181015183820152602001613248565b50828481613a7357fe5b06949350505050565b613a84614468565b6000613a8e614468565b613a96614547565b613aa2612ccd86613d19565b90506000805b613ab183613d88565b15612dd95780613ace57613ac7612cf784613da9565b8452613cd8565b8060011415613af657613ae3612d1884613da9565b6001600160a01b03166020850152613cd8565b8060021415613b85576060613b0d61343d85613da9565b90508051604051908082528060200260200182016040528015613b3a578160200160208202803683370190505b50604086015260005b8151811015613b7e57613b5b82828151811061349057fe5b86604001518281518110613b6b57fe5b6020908102919091010152600101613b43565b5050613cd8565b8060031415613c1a576060613b9c61343d85613da9565b90508051604051908082528060200260200182016040528015613bc9578160200160208202803683370190505b50606086015260005b8151811015613b7e57613bea82828151811061352c57fe5b86606001518281518110613bfa57fe5b6001600160a01b0390921660209283029190910190910152600101613bd2565b8060041415613caf576060613c3161343d85613da9565b90508051604051908082528060200260200182016040528015613c5e578160200160208202803683370190505b50608086015260005b8151811015613b7e57613c7f82828151811061352c57fe5b86608001518281518110613c8f57fe5b6001600160a01b0390921660209283029190910190910152600101613c67565b8060051415612dcc57613cc4612cf784613da9565b67ffffffffffffffff1660a0850152600191505b600101613aa8565b60006008821115613d0257612a85836007198401600a0a63ffffffff61266f16565b6117e5836008849003600a0a63ffffffff61262d16565b613d21614567565b506040805180820190915281518152602082810190820152919050565b613d46614547565b613d4f82614246565b613d5857600080fd5b6000613d678360200151614276565b60208085015160408051808201909152868152920190820152915050919050565b6000613d92614567565b505080518051602091820151919092015191011190565b613db1614567565b613dba82613d88565b613dc357600080fd5b60208201516000613dd3826142d9565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590613e0c57508151602110155b613e1557600080fd5b6000613e248360200151614276565b90508083600001511015613e7f576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015613ea557826020036101000a820491505b50949350505050565b8051600090601514613ebf57600080fd5b6117e882613df7565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416613f0c57506018613f30565b6fffffffffffffffffffffffffffffffff198416613f2c57506010613f30565b5060005b6020811015613f6657818181518110613f4557fe5b01602001516001600160f81b03191615613f5e57613f66565b600101613f30565b60008160200390506060816040519080825280601f01601f191660200182016040528015613f9b576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015613fe05750607f60f81b82600081518110613fce57fe5b01602001516001600160f81b03191611155b15613fec575080610efe565b6117e8613ffe8351608060ff1661407d565b835b6060806040519050835180825260208201818101602087015b81831015614031578051835260209283019201614019565b50855184518101855292509050808201602086015b8183101561405e578051835260209283019201614046565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106140cd576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b604080516001808252818301909252606091602082018180368337019050509050603784116141275782840160f81b8160008151811061410957fe5b60200101906001600160f81b031916908160001a90535090506117e8565b606061413285613ec8565b90508381510160370160f81b8260008151811061414b57fe5b60200101906001600160f81b031916908160001a90535061416c8282614000565b95945050505050565b606061418082614246565b61418957600080fd5b60006141948361440c565b90506060816040519080825280602002602001820160405280156141d257816020015b6141bf614567565b8152602001906001900390816141b75790505b50905060006141e48560200151614276565b60208601510190506000805b8481101561423b57614201836142d9565b915060405180604001604052808381526020018481525084828151811061422457fe5b6020908102919091010152918101916001016141f0565b509195945050505050565b805160009061425757506000610efe565b6020820151805160001a9060c0821015612b9f57600092505050610efe565b8051600090811a6080811015614290576000915050610efe565b60b88110806142ab575060c081108015906142ab575060f881105b156142ba576001915050610efe565b60c08110156142ce5760b519019050610efe565b60f519019050610efe565b80516000908190811a60808110156142f45760019150614405565b60b881101561430957607e1981019150614405565b60c081101561438357600060b78203600186019550806020036101000a86510491506001810182019350508083101561437d576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50614405565b60f88110156143985760be1981019150614405565b600060f78203600186019550806020036101000a865104915060018101820193505080831015614403576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b805160009061441d57506000610efe565b600080905060006144318460200151614276565b602085015185519181019250015b8082101561445f57614450826142d9565b6001909301929091019061443f565b50909392505050565b6040518060c001604052806000801916815260200160006001600160a01b03168152602001606081526020016060815260200160608152602001600067ffffffffffffffff1681525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b60408051608081018252600080825260208201819052918101829052606081019190915290565b604051806080016040528060006001600160a01b031681526020016060815260200160608152602001600063ffffffff1681525090565b604051806040016040528061455a614567565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe6f6e6c79207374616b696e672073797374656d20636f6e74726163742063616e2063616c6c20746869732066756e6374696f6e746865206d6573736167652073656e646572206d75737420626520696e63656e746976697a6520636f6e7472616374466f72206d696e69546f6b656e2c20746865207472616e7366657220616d6f756e74206d757374206e6f74206265206c657373207468616e2031756e7265636f676e697a6564207472616e736665724f75742073796e207061636b61676565787069726554696d65206d7573742062652074776f206d696e75746573206c61746572616d6f756e7420697320746f6f206c617267652c20657863656564206d6178696d756d206265703220746f6b656e20616d6f756e7474686520636f6e747261637420686173206e6f74206265656e20626f756e6420746f20616e79206265703220746f6b656e726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e736665724f757420424e4220616d6f756e7420616e64206d696e696d756d2072656c6179466565616d6f756e7420697320746f6f206c617267652c2075696e74323536206f766572666c6f774c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620726566756e644164647273696e76616c6964207472616e7366657220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e20746865206d696e696d756d2072656c6179466565746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374756e7265636f676e697a6564207472616e736665724f75742061636b207061636b6167654c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620616d6f756e7473746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d73672073656e646572206d75737420626520746f6b656e4d616e6167657274686520636f6e7472616374206e6f7420696e69742079657400000000000000726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e7366657220424e4220616d6f756e7420616e642072656c6179466565696e76616c696420726563656976656420424e4220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6ea264697066735822122012cb49df8f867c0c8903152f4f4e8058086f9ead137f1a15b2400e401b8e252f64736f6c63430006040033" + }, + "0x0000000000000000000000000000000000002001": { + "balance": "0x0", + "code": "0x6080604052600436106103855760003560e01c806370fd5bad116101d1578063b88a802f11610102578063d7ecfcb6116100a0578063f9a2bbc71161006f578063f9a2bbc714610c40578063fa03f79714610c55578063fc3e590814610671578063fd6a687914610c6a5761038c565b8063d7ecfcb614610819578063dc927faf14610bd1578063edc1a5b014610be6578063f45fd80b14610bfb5761038c565b8063c2117d82116100dc578063c2117d8214610ae7578063c81b166214610afc578063c8509d8114610b11578063d61b9b9314610b965761038c565b8063b88a802f14610a82578063baaafd3b14610a97578063bf8546ca14610aac5761038c565b806396713da91161016f578063a78abc1611610149578063a78abc1614610964578063ab51bb961461098d578063ac431751146109a2578063b14315df14610a6d5761038c565b806396713da9146109255780639dc092621461093a578063a1a11bf51461094f5761038c565b806375d47a0a116101ab57806375d47a0a146108765780637942fd051461088b578063831d65d1146108a057806392b888a41461061d5761038c565b806370fd5bad14610819578063718a8aa81461082e57806375aca593146108435761038c565b80633fdfa7e4116102b6578063552aaf931161025457806369b635b61161022357806369b635b6146107865780636bd8f8041461079b5780636e47b482146107d15780636fb7f7eb146107e65761038c565b8063552aaf93146107325780635d17c8bd146107475780635d499b1b1461075c57806362b171d2146107715761038c565b8063493279b111610290578063493279b1146106b05780634bf6c882146106dc5780634d99dd16146106f157806351e806721461071d5761038c565b80633fdfa7e414610671578063413d9c3a1461068657806343756e5c1461069b5761038c565b806311fe9ec6116103235780632fdeb111116102fd5780632fdeb11114610632578063333ad3e71461064757806334c433541461065c5780633dffc3871461061d5761038c565b806311fe9ec6146105bf578063151817e3146105f257806317c9efb01461061d5761038c565b80630bee7a671161035f5780630bee7a67146104515780630c7957151461047f5780630e2374a5146104945780631182b875146104c55761038c565b8063026e402b1461039157806302985992146103bf578063047636d1146103e65761038c565b3661038c57005b600080fd5b6103bd600480360360408110156103a757600080fd5b506001600160a01b038135169060200135610c7f565b005b3480156103cb57600080fd5b506103d46111bc565b60408051918252519081900360200190f35b3480156103f257600080fd5b506104196004803603602081101561040957600080fd5b50356001600160a01b03166111c2565b6040518082606080838360005b8381101561043e578181015183820152602001610426565b5050505090500191505060405180910390f35b34801561045d57600080fd5b50610466611216565b6040805163ffffffff9092168252519081900360200190f35b34801561048b57600080fd5b506103d461121b565b3480156104a057600080fd5b506104a9611221565b604080516001600160a01b039092168252519081900360200190f35b3480156104d157600080fd5b5061054a600480360360408110156104e857600080fd5b60ff8235169190810190604081016020820135600160201b81111561050c57600080fd5b82018360208201111561051e57600080fd5b803590602001918460018302840111600160201b8311171561053f57600080fd5b509092509050611227565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561058457818101518382015260200161056c565b50505050905090810190601f1680156105b15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156105cb57600080fd5b506103d4600480360360208110156105e257600080fd5b50356001600160a01b03166113e3565b3480156105fe57600080fd5b506106076113fe565b6040805160ff9092168252519081900360200190f35b34801561062957600080fd5b50610607611403565b34801561063e57600080fd5b506103d4611408565b34801561065357600080fd5b5061046661140e565b34801561066857600080fd5b506103d4611413565b34801561067d57600080fd5b5061060761141e565b34801561069257600080fd5b506103d4611423565b3480156106a757600080fd5b506104a961142a565b3480156106bc57600080fd5b506106c5611430565b6040805161ffff9092168252519081900360200190f35b3480156106e857600080fd5b50610607611435565b6103bd6004803603604081101561070757600080fd5b506001600160a01b03813516906020013561143a565b34801561072957600080fd5b506104a9611a62565b34801561073e57600080fd5b50610607611a68565b34801561075357600080fd5b506103d4611a6d565b34801561076857600080fd5b506103d4611a73565b34801561077d57600080fd5b506103d4611a7c565b34801561079257600080fd5b506103d4611c1c565b6103bd600480360360608110156107b157600080fd5b506001600160a01b03813581169160208101359091169060400135611c22565b3480156107dd57600080fd5b506104a961230b565b3480156107f257600080fd5b506103d46004803603602081101561080957600080fd5b50356001600160a01b0316612311565b34801561082557600080fd5b5061060761232c565b34801561083a57600080fd5b50610607612331565b34801561084f57600080fd5b506103d46004803603602081101561086657600080fd5b50356001600160a01b0316612336565b34801561088257600080fd5b506104a9612351565b34801561089757600080fd5b50610607612357565b3480156108ac57600080fd5b506103bd600480360360408110156108c357600080fd5b60ff8235169190810190604081016020820135600160201b8111156108e757600080fd5b8201836020820111156108f957600080fd5b803590602001918460018302840111600160201b8311171561091a57600080fd5b50909250905061235c565b34801561093157600080fd5b50610607612624565b34801561094657600080fd5b506104a9612629565b34801561095b57600080fd5b506104a961262f565b34801561097057600080fd5b50610979612635565b604080519115158252519081900360200190f35b34801561099957600080fd5b50610466611a68565b3480156109ae57600080fd5b506103bd600480360360408110156109c557600080fd5b810190602081018135600160201b8111156109df57600080fd5b8201836020820111156109f157600080fd5b803590602001918460018302840111600160201b83111715610a1257600080fd5b919390929091602081019035600160201b811115610a2f57600080fd5b820183602082011115610a4157600080fd5b803590602001918460018302840111600160201b83111715610a6257600080fd5b50909250905061263e565b348015610a7957600080fd5b50610607612dd0565b348015610a8e57600080fd5b506103d4612dd5565b348015610aa357600080fd5b506103d4612f72565b348015610ab857600080fd5b506103d460048036036040811015610acf57600080fd5b506001600160a01b0381358116916020013516612f7d565b348015610af357600080fd5b506103d4612faa565b348015610b0857600080fd5b506104a9612fb0565b348015610b1d57600080fd5b506103bd60048036036040811015610b3457600080fd5b60ff8235169190810190604081016020820135600160201b811115610b5857600080fd5b820183602082011115610b6a57600080fd5b803590602001918460018302840111600160201b83111715610b8b57600080fd5b509092509050612fb6565b348015610ba257600080fd5b506103d460048036036040811015610bb957600080fd5b506001600160a01b03813581169160200135166131d9565b348015610bdd57600080fd5b506104a9613204565b348015610bf257600080fd5b506103d461320a565b348015610c0757600080fd5b506103d460048036036060811015610c1e57600080fd5b506001600160a01b038135811691602081013582169160409091013516613217565b348015610c4c57600080fd5b506104a961324c565b348015610c6157600080fd5b506103d4613252565b348015610c7657600080fd5b506104a9613258565b60105460ff1660021415610ccb576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b6010805460ff19166002179055806402540be4003406158015610cf357506402540be4008106155b610d44576040805162461bcd60e51b815260206004820152601c60248201527f707265636973696f6e206c6f737320696e20636f6e76657273696f6e00000000604482015290519081900360640190fd5b60005460ff16610d87576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b600354821015610dde576040805162461bcd60e51b815260206004820152601760248201527f696e76616c69642064656c656761746520616d6f756e74000000000000000000604482015290519081900360640190fd5b600154610df290839063ffffffff61325e16565b341015610e3d576040805162461bcd60e51b81526020600482015260146024820152736e6f7420656e6f756768206d73672076616c756560601b604482015290519081900360640190fd5b601154604051600091339183818181818787f1925050503d8060008114610e80576040519150601f19603f3d011682016040523d82523d6000602084013e610e85565b606091505b5050905080610ecf576040805162461bcd60e51b815260206004820152601160248201527034b73b30b634b2103232b632b3b0ba37b960791b604482015290519081900360640190fd5b6000610ee6846402540be40063ffffffff6132bf16565b90506000610efa348663ffffffff61330116565b90506000610f136002548361330190919063ffffffff16565b6040805160038082526080820190925291925060609190816020015b6060815260200190600190039081610f2f579050509050610f4f33613343565b81600081518110610f5c57fe5b6020026020010181905250610f79886001600160a01b0316613343565b81600181518110610f8657fe5b6020026020010181905250610f9a84613366565b81600281518110610fa757fe5b60200260200101819052506060610fc76001610fc284613379565b613403565b8051602080830191909120600f80546000908152600a845260408082209390935581546001908101909255338152600b909352912080549091019055905061200063f7a251d7601083611025876402540be40063ffffffff6132bf16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561108357818101518382015260200161106b565b50505050905090810190601f1680156110b05780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156110d157600080fd5b505af11580156110e5573d6000803e3d6000fd5b5061100492506108fc915061110290508a8663ffffffff61325e16565b6040518115909202916000818181858888f1935050505015801561112a573d6000803e3d6000fd5b506002546040516110029180156108fc02916000818181858888f1935050505015801561115b573d6000803e3d6000fd5b50604080518981526020810185905281516001600160a01b038c169233927f5f32ed2794e2e72d19e3cb2320e8820a499c4204887372beba51f5e61c040867929081900390910190a350506010805460ff1916600117905550505050505050565b60035481565b6111ca615193565b6111d2615193565b6001600160a01b0383166000818152600b60209081526040808320548552838352600c82528083205485830152928252600d9052819020549082015290505b919050565b606481565b6108fc81565b61200181565b606033612000146112695760405162461bcd60e51b815260040180806020018281038252602f81526020018061539b602f913960400191505060405180910390fd5b60005460ff166112ac576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b6112b46151b1565b6112fb6112f685858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061348992505050565b6134ae565b9050600061131061130b836134f8565b613546565b90506000606060ff8316600414156113355761132b846135fd565b909250905061138c565b60ff83166005141561134a5761132b846137dd565b6040805162461bcd60e51b8152602060048201526012602482015271756e6b6e6f776e206576656e74207479706560701b604482015290519081900360640190fd5b63ffffffff8216156113d8576040805163ffffffff84168152905160ff8516917f391d6e5ea6ab6c49b9a0abb1782cae5def8d711f973b00c729658c0b2a80b31b919081900360200190a25b979650505050505050565b6001600160a01b031660009081526006602052604090205490565b600581565b600181565b60015481565b606581565b662386f26fc1000081565b600381565b620a8c0081565b61100181565b603881565b600881565b60105460ff1660021415611486576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b6010805460ff19166002179055806402540be40034061580156114ae57506402540be4008106155b6114ff576040805162461bcd60e51b815260206004820152601c60248201527f707265636973696f6e206c6f737320696e20636f6e76657273696f6e00000000604482015290519081900360640190fd5b60005460ff16611542576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b600154341015611590576040805162461bcd60e51b81526020600482015260146024820152736e6f7420656e6f7567682072656c61792066656560601b604482015290519081900360640190fd5b60035482101561164b573360009081526005602090815260408083206001600160a01b03871684529091529020548214611602576040805162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a5908185b5bdd5b9d60921b604482015290519081900360640190fd5b600254821161164b576040805162461bcd60e51b815260206004820152601060248201526f6e6f7420656e6f7567682066756e647360801b604482015290519081900360640190fd5b3360009081526007602090815260408083206001600160a01b03871684529091529020544210156116c3576040805162461bcd60e51b815260206004820152601a60248201527f70656e64696e6720756e64656c65676174696f6e206578697374000000000000604482015290519081900360640190fd5b604080518082018252601081526f6e6f7420656e6f7567682066756e647360801b602080830191909152336000908152600582528381206001600160a01b03881682529091529182205461171e91859063ffffffff6139f916565b905080156117665760025481116117665760405162461bcd60e51b81526004018080602001828103825260258152602001806153766025913960400191505060405180910390fd5b600061177d846402540be40063ffffffff6132bf16565b600254909150349060009061179990839063ffffffff61330116565b6040805160038082526080820190925291925060609190816020015b60608152602001906001900390816117b55790505090506117d533613343565b816000815181106117e257fe5b60200260200101819052506117ff886001600160a01b0316613343565b8160018151811061180c57fe5b602002602001018190525061182084613366565b8160028151811061182d57fe5b602002602001018190525060606118486002610fc284613379565b8051602080830191909120600f80546000908152600a845260408082209390935581546001908101909255338152600c909352912080549091019055905061189942620a8c0063ffffffff61325e16565b3360009081526007602090815260408083206001600160a01b038e16845290915290205561200063f7a251d76010836118dd876402540be40063ffffffff6132bf16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561193b578181015183820152602001611923565b50505050905090810190601f1680156119685780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561198957600080fd5b505af115801561199d573d6000803e3d6000fd5b5050604051611004925085156108fc02915085906000818181858888f193505050501580156119d0573d6000803e3d6000fd5b506002546040516110029180156108fc02916000818181858888f19350505050158015611a01573d6000803e3d6000fd5b50604080518981526020810185905281516001600160a01b038c169233927fdf0b6ac27f3f3bb31cee3dab0f4fe40cc19c6a3f8daaec52e06b261e58a12519929081900390910190a350506010805460ff1916600117905550505050505050565b61200081565b600081565b60025481565b6402540be40081565b60105460009060ff1660021415611acb576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b506010805460ff191660021790553360009081526008602052604090205480611b32576040805162461bcd60e51b81526020600482015260146024820152736e6f20756e64656c6567617465642066756e647360601b604482015290519081900360640190fd5b336000818152600860205260408082208290556011549051919291849084818181858888f193505050503d8060008114611b88576040519150601f19603f3d011682016040523d82523d6000602084013e611b8d565b606091505b5050905080611bd5576040805162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b604482015290519081900360640190fd5b60408051838152905133917fc712d133b8d448221aaed2198ed1f0db6dfc860fb01bc3a630916fe6cbef946f919081900360200190a2506010805460ff1916600117905590565b60035490565b60105460ff1660021415611c6e576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b6010805460ff19166002179055806402540be4003406158015611c9657506402540be4008106155b611ce7576040805162461bcd60e51b815260206004820152601c60248201527f707265636973696f6e206c6f737320696e20636f6e76657273696f6e00000000604482015290519081900360640190fd5b60005460ff16611d2a576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b826001600160a01b0316846001600160a01b03161415611d88576040805162461bcd60e51b815260206004820152601460248201527334b73b30b634b2103932b232b632b3b0ba34b7b760611b604482015290519081900360640190fd5b600154341015611dd6576040805162461bcd60e51b81526020600482015260146024820152736e6f7420656e6f7567682072656c61792066656560601b604482015290519081900360640190fd5b600354821015611e1e576040805162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a5908185b5bdd5b9d60921b604482015290519081900360640190fd5b3360009081526009602090815260408083206001600160a01b03888116855290835281842090871684529091529020544210801590611e8c57503360009081526009602090815260408083206001600160a01b03878116855290835281842090881684529091529020544210155b611edd576040805162461bcd60e51b815260206004820152601a60248201527f70656e64696e6720726564656c65676174696f6e206578697374000000000000604482015290519081900360640190fd5b604080518082018252601081526f6e6f7420656e6f7567682066756e647360801b602080830191909152336000908152600582528381206001600160a01b038916825290915291822054611f3891859063ffffffff6139f916565b90508015611f80576002548111611f805760405162461bcd60e51b815260040180806020018281038252602581526020018061527a6025913960400191505060405180910390fd5b6000611f97846402540be40063ffffffff6132bf16565b6002549091503490600090611fb390839063ffffffff61330116565b60408051600480825260a0820190925291925060609190816020015b6060815260200190600190039081611fcf579050509050611fef33613343565b81600081518110611ffc57fe5b6020026020010181905250612019896001600160a01b0316613343565b8160018151811061202657fe5b6020026020010181905250612043886001600160a01b0316613343565b8160028151811061205057fe5b602002602001018190525061206484613366565b8160038151811061207157fe5b6020026020010181905250606061208c6003610fc284613379565b8051602080830191909120600f80546000908152600a845260408082209390935581546001908101909255338152600d90935291208054909101905590506120dd42620a8c0063ffffffff61325e16565b3360009081526009602090815260408083206001600160a01b038e81168552908352818420908f16845290915290205561212042620a8c0063ffffffff61325e16565b3360009081526009602090815260408083206001600160a01b038f81168552908352818420908e16845290915290205561200063f7a251d7601083612170876402540be40063ffffffff6132bf16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156121ce5781810151838201526020016121b6565b50505050905090810190601f1680156121fb5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561221c57600080fd5b505af1158015612230573d6000803e3d6000fd5b5050604051611004925085156108fc02915085906000818181858888f19350505050158015612263573d6000803e3d6000fd5b506002546040516110029180156108fc02916000818181858888f19350505050158015612294573d6000803e3d6000fd5b50886001600160a01b03168a6001600160a01b0316336001600160a01b03167fdb0d03fdfcb145c486c442659e6a341a8828985505097cb5190afcf541e840158b87604051808381526020018281526020019250505060405180910390a450506010805460ff191660011790555050505050505050565b61100581565b6001600160a01b031660009081526004602052604090205490565b600281565b601081565b6001600160a01b031660009081526008602052604090205490565b61100881565b600b81565b336120001461239c5760405162461bcd60e51b815260040180806020018281038252602f81526020018061539b602f913960400191505060405180910390fd5b60005460ff166123df576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b6123e76151b1565b6124296112f684848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061348992505050565b905060008060606000805b61243d86613a90565b156124a8578061245a5761245361130b876134f8565b94506124a0565b80600114156124765761246f61130b876134f8565b93506124a0565b806002141561249b5761249061248b876134f8565b613ab1565b9250600191506124a0565b6124a8565b600101612434565b816124ee576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6124f783613b21565b61253a576040805162461bcd60e51b815260206004820152600f60248201526e0eee4dedcce40e0c2c6d640d0c2e6d608b1b604482015290519081900360640190fd5b6125466112f684613489565b9550600061255661130b886134f8565b90506125606151b1565b61256988613a90565b1561258c576125856112f661258061248b8b6134f8565b613489565b90506125cd565b6040805162461bcd60e51b8152602060048201526011602482015270656d7074792061636b207061636b61676560781b604482015290519081900360640190fd5b60ff8216600114156125e9576125e4818888613b75565b612617565b60ff821660021415612600576125e4818888613f2c565b60ff82166003141561134a576125e48188886141f9565b5050505050505050505050565b600981565b61100781565b61100681565b60005460ff1681565b60005460ff16612695576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604482015290519081900360640190fd5b33611007146126d55760405162461bcd60e51b815260040180806020018281038252602e8152602001806152ec602e913960400191505060405180910390fd5b61273684848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600a81526972656c6179657246656560b01b6020820152915061455e9050565b1561289c5760208114612790576040805162461bcd60e51b815260206004820152601d60248201527f6c656e677468206f662072656c61796572466565206d69736d61746368000000604482015290519081900360640190fd5b604080516020601f84018190048102820181019092528281526000916127ce9185858083850183828082843760009201919091525061464592505050565b905060035481106128105760405162461bcd60e51b815260040180806020018281038252602e81526020018061531a602e913960400191505060405180910390fd5b60025481116128505760405162461bcd60e51b815260040180806020018281038252602e815260200180615348602e913960400191505060405180910390fd5b6402540be4008106156128945760405162461bcd60e51b815260040180806020018281038252602c8152602001806152c0602c913960400191505060405180910390fd5b600155612d3e565b61290084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c62534352656c6179657246656560981b6020820152915061455e9050565b15612a62576020811461295a576040805162461bcd60e51b815260206004820181905260248201527f6c656e677468206f662062534352656c61796572466565206d69736d61746368604482015290519081900360640190fd5b604080516020601f84018190048102820181019092528281526000916129989185858083850183828082843760009201919091525061464592505050565b9050806129d65760405162461bcd60e51b81526004018080602001828103825260228152602001806153ca6022913960400191505060405180910390fd5b6001548110612a165760405162461bcd60e51b815260040180806020018281038252602e81526020018061521b602e913960400191505060405180910390fd5b6402540be400810615612a5a5760405162461bcd60e51b815260040180806020018281038252602f8152602001806151ec602f913960400191505060405180910390fd5b600255612d3e565b612ac684848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c36b4b72232b632b3b0ba34b7b760991b6020820152915061455e9050565b15612ba85760208114612b20576040805162461bcd60e51b815260206004820181905260248201527f6c656e677468206f66206d696e44656c65676174696f6e206d69736d61746368604482015290519081900360640190fd5b604080516020601f8401819004810282018101909252828152600091612b5e9185858083850183828082843760009201919091525061464592505050565b90506001548111612ba05760405162461bcd60e51b81526004018080602001828103825260318152602001806152496031913960400191505060405180910390fd5b600355612d3e565b612c0a84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600b81526a7472616e7366657247617360a81b6020820152915061455e9050565b15612d015760208114612c64576040805162461bcd60e51b815260206004820152601e60248201527f6c656e677468206f66207472616e73666572476173206d69736d617463680000604482015290519081900360640190fd5b604080516020601f8401819004810282018101909252828152600091612ca29185858083850183828082843760009201919091525061464592505050565b905060008111612cf9576040805162461bcd60e51b815260206004820152601e60248201527f746865207472616e736665724761732063616e6e6f74206265207a65726f0000604482015290519081900360640190fd5b601155612d3e565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b600481565b60105460009060ff1660021415612e24576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b506010805460ff191660021790553360009081526006602052604090205480612e88576040805162461bcd60e51b81526020600482015260116024820152701b9bc81c195b991a5b99c81c995dd85c99607a1b604482015290519081900360640190fd5b336000818152600660205260408082208290556011549051919291849084818181858888f193505050503d8060008114612ede576040519150601f19603f3d011682016040523d82523d6000602084013e612ee3565b606091505b5050905080612f2b576040805162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b604482015290519081900360640190fd5b60408051838152905133917f83b78188b13346b2ffb484da70d42ee27de7fbf9f2bd8045269e10ed643ccd76919081900360200190a2506010805460ff1916600117905590565b6638d7ea4c68000081565b6001600160a01b038083166000908152600760209081526040808320938516835292905220545b92915050565b60015490565b61100281565b3361200014612ff65760405162461bcd60e51b815260040180806020018281038252602f81526020018061539b602f913960400191505060405180910390fd5b60005460ff16613039576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b61307882828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613b2192505050565b6130bb576040805162461bcd60e51b815260206004820152600f60248201526e0eee4dedcce40e0c2c6d640d0c2e6d608b1b604482015290519081900360640190fd5b6130c36151b1565b6131056112f684848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061348992505050565b9050600061311561130b836134f8565b905061311f6151b1565b61312883613a90565b156131465761313f6112f661258061248b866134f8565b905061318c565b6040805162461bcd60e51b8152602060048201526016602482015275656d707479206661696c2061636b207061636b61676560501b604482015290519081900360640190fd5b60ff8216600114156131a6576131a18161464a565b6131d0565b60ff8216600214156131bb576131a181614864565b60ff82166003141561134a576131a18161498e565b5050505b505050565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b61100381565b68056bc75e2d6310000081565b6001600160a01b0392831660009081526009602090815260408083209486168352938152838220929094168152925290205490565b61100081565b60115481565b61100481565b6000828201838110156132b8576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b60006132b883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250614af3565b60006132b883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506139f9565b60408051600560a21b83186014820152603481019091526060906132b881614b58565b6060612fa461337483614bae565b614b58565b606081516000141561339a5750604080516000815260208101909152611211565b6060826000815181106133a957fe5b602002602001015190506000600190505b83518110156133ea576133e0828583815181106133d357fe5b6020026020010151614c94565b91506001016133ba565b506132b86133fd825160c060ff16614d11565b82614c94565b6040805160028082526060828101909352829190816020015b606081526020019060019003908161341c57905050905061343f8460ff16613366565b8160008151811061344c57fe5b602002602001018190525061346083614b58565b8160018151811061346d57fe5b602002602001018190525061348181613379565b949350505050565b6134916151d1565b506040805180820190915281518152602082810190820152919050565b6134b66151b1565b6134bf82614e09565b6134c857600080fd5b60006134d78360200151614e43565b60208085015160408051808201909152868152920190820152915050919050565b6135006151d1565b61350982613a90565b61351257600080fd5b6020820151600061352282614ea6565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061355b57508151602110155b61356457600080fd5b60006135738360200151614e43565b905080836000015110156135ce576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b8251602080850151830180519284900392918310156135f457826020036101000a820491505b50949350505050565b600060606000806000805b61361187613a90565b1561366357826136335761362c613627886134f8565b614fd9565b9150613658565b82600114156136535761364861130b886134f8565b905060019350613658565b613663565b826001019250613608565b836136a9576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b60006110046001600160a01b031663727be1f8836040518263ffffffff1660e01b815260040180828152602001915050602060405180830381600087803b1580156136f357600080fd5b505af1158015613707573d6000803e3d6000fd5b505050506040513d602081101561371d57600080fd5b505190508061374257613734600484846065614ff3565b9650965050505050506137d8565b6001600160a01b03831660009081526006602052604090205461376b908363ffffffff61325e16565b6001600160a01b038416600081815260066020908152604091829020939093558051858152905191927f7cc266c7b444f808013fa187f7b904d470a051a6564e78f482aa496581ba4bf892918290030190a260408051600080825260208201909252909750955050505050505b915091565b6000606060008060008060005b6137f388613a90565b1561385c578361381057613809613627896134f8565b9250613851565b836001141561382c57613825613627896134f8565b9150613851565b836002141561384c5761384161130b896134f8565b905060019450613851565b61385c565b8360010193506137ea565b846138a2576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b60006110046001600160a01b031663727be1f8836040518263ffffffff1660e01b815260040180828152602001915050602060405180830381600087803b1580156138ec57600080fd5b505af1158015613900573d6000803e3d6000fd5b505050506040513d602081101561391657600080fd5b505190508061393c5761392d600585846065614ff3565b975097505050505050506137d8565b6001600160a01b038085166000818152600760209081526040808320948816835293815283822082905591815260089091522054613980908363ffffffff61325e16565b6001600160a01b0380861660008181526008602090815260409182902094909455805186815290519287169391927f35a799836f74fac7eccf5c73902823b970543d2274d3b93d8da3d37a255772a2929181900390910190a3604080516000808252602082019092529098509650505050505050915091565b60008184841115613a885760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613a4d578181015183820152602001613a35565b50505050905090810190601f168015613a7a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000613a9a6151d1565b505080518051602091820151919092015191011190565b8051606090613abf57600080fd5b6000613ace8360200151614e43565b83516040805191839003808352601f19601f8201168301602001909152919250606090828015613b05576020820181803683370190505b50905060008160200190506135f48487602001510182856150ef565b8051602080830191909120600e546000908152600a9092526040822054808214613b5057600092505050611211565b5050600e80546000908152600a60205260408120558054600190810190915592915050565b60008060008060005b613b8788613a90565b15613bf05783613ba457613b9d613627896134f8565b9250613be5565b8360011415613bc057613bb9613627896134f8565b9150613be5565b8360021415613be057613bd561130b896134f8565b905060019450613be5565b613bf0565b836001019350613b7e565b84613c36576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6000613c4d826402540be40063ffffffff61513a16565b6001600160a01b0385166000908152600b602052604090208054600019019055905060ff881660011415613d935760ff871615613cc0576040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b6001600160a01b038416600090815260046020526040902054613ce9908263ffffffff61325e16565b6001600160a01b03808616600090815260046020908152604080832094909455600581528382209287168252919091522054613d2b908263ffffffff61325e16565b6001600160a01b038086166000818152600560209081526040808320948916808452948252918290209490945580518581529051929391927f9a57c81564ab02642f34fd87e41baa9b074c18342cec3b7268b62bf752018fd1929181900390910190a3613f21565b60ff8816613ee5576001600160a01b038416600090815260086020526040902054613dc4908263ffffffff61325e16565b6001600160a01b0385166000908152600860209081526040808320939093558251630e4f7c3f60e31b81526004810185905292516110049363727be1f89360248083019493928390030190829087803b158015613e2057600080fd5b505af1158015613e34573d6000803e3d6000fd5b505050506040513d6020811015613e4a57600080fd5b5051613e93576040805162461bcd60e51b81526020600482015260136024820152721dda5d1a191c985dc8189b988819985a5b1959606a1b604482015290519081900360640190fd5b6040805182815260ff8916602082015281516001600160a01b0380871693908816927fcbd481ae600289fad8c0484d07ce0ffe4f010d7c844ecfdeaf2a13fead52886e929081900390910190a3613f21565b6040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b505050505050505050565b60008060008060005b613f3e88613a90565b15613fa75783613f5b57613f54613627896134f8565b9250613f9c565b8360011415613f7757613f70613627896134f8565b9150613f9c565b8360021415613f9757613f8c61130b896134f8565b905060019450613f9c565b613fa7565b836001019350613f35565b84613fed576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6000614004826402540be40063ffffffff61513a16565b6001600160a01b0385166000908152600c602052604090208054600019019055905060ff8816600114156141835760ff871615614077576040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b6001600160a01b0384166000908152600460205260409020546140a0908263ffffffff61330116565b6001600160a01b038086166000908152600460209081526040808320949094556005815283822092871682529190915220546140e2908263ffffffff61330116565b6001600160a01b0380861660009081526005602090815260408083209388168352929052205561411b42620a8c0063ffffffff61325e16565b6001600160a01b038086166000818152600760209081526040808320948916808452948252918290209490945580518581529051929391927fd6f878a5bcbbe79a64e6418bb0d56aaa20b9a60587d45749819df88dfc7c3c44929181900390910190a3613f21565b60ff8816613ee5576001600160a01b03808516600081815260076020908152604080832094881680845294825280832092909255815185815260ff8c169181019190915281517f4417d10c1e33efa83a770b8d4f47176e78c08c1298d534901ad3b16bb585fa2e929181900390910190a3613f21565b6000806000806000805b61420c89613a90565b156142915784614229576142226136278a6134f8565b9350614286565b84600114156142455761423e6136278a6134f8565b9250614286565b84600214156142615761425a6136278a6134f8565b9150614286565b84600314156142815761427661130b8a6134f8565b905060019550614286565b614291565b846001019450614203565b856142d7576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b60006142ee826402540be40063ffffffff61513a16565b6001600160a01b0386166000908152600d602052604090208054600019019055905060ff8916600114156144c15760ff881615614361576040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b6001600160a01b03808616600090815260056020908152604080832093881683529290522054614397908263ffffffff61330116565b6001600160a01b038681166000908152600560209081526040808320898516845290915280822093909355908516815220546143d3908261325e565b6001600160a01b0380871660009081526005602090815260408083209388168352929052205561440c42620a8c0063ffffffff61325e16565b6001600160a01b038087166000908152600960209081526040808320898516845282528083209388168352929052205561444f42620a8c0063ffffffff61325e16565b6001600160a01b038087166000818152600960209081526040808320898616808552908352818420958b1680855295835292819020959095558451868152945191947f78bffae3f8c6691ac7fc1a3bff800cb2d612f5ad9ae5b0444cfe2eb15c189e18929081900390910190a4614552565b60ff8916613ee5576001600160a01b038581166000818152600960209081526040808320898616808552818452828520968a16808652968452828520859055908352818420818552835281842093909355805186815260ff8e169281019290925280519293927fb93bee5c59f85ede6b074a99f4ffcd3e3fc0d5c3d8156de331de89a49e0ce77c9281900390910190a45b50505050505050505050565b6000816040516020018082805190602001908083835b602083106145935780518252601f199092019160209182019101614574565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106146015780518252601f1990920191602091820191016145e2565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b60008060008060005b61465c86613a90565b156146c5578361467957614672613627876134f8565b92506146ba565b83600114156146955761468e613627876134f8565b91506146ba565b83600214156146b5576146aa61130b876134f8565b9050600194506146ba565b6146c5565b836001019350614653565b8461470b576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6000614722826402540be40063ffffffff61513a16565b6001600160a01b0385166000908152600b6020908152604080832080546000190190556008909152902054909150614760908263ffffffff61325e16565b6001600160a01b0385166000908152600860209081526040808320939093558251630e4f7c3f60e31b81526004810185905292516110049363727be1f89360248083019493928390030190829087803b1580156147bc57600080fd5b505af11580156147d0573d6000803e3d6000fd5b505050506040513d60208110156147e657600080fd5b505161482f576040805162461bcd60e51b81526020600482015260136024820152721dda5d1a191c985dc8189b988819985a5b1959606a1b604482015290519081900360640190fd5b6040516001907ff83de021914a4585482db5ca47d520a5657165b443fa2c7ef8ed4635f054da9b90600090a250505050505050565b60008060008060005b61487686613a90565b156148df57836148935761488c613627876134f8565b92506148d4565b83600114156148af576148a8613627876134f8565b91506148d4565b83600214156148cf576148c461130b876134f8565b9050600194506148d4565b6148df565b83600101935061486d565b84614925576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6001600160a01b038084166000908152600c60209081526040808320805460001901905560078252808320938616835292905281812081905590516002917ff83de021914a4585482db5ca47d520a5657165b443fa2c7ef8ed4635f054da9b91a2505050505050565b6000806000806000805b6149a187613a90565b15614a2657846149be576149b7613627886134f8565b9350614a1b565b84600114156149da576149d3613627886134f8565b9250614a1b565b84600214156149f6576149ef613627886134f8565b9150614a1b565b8460031415614a1657614a0b61130b886134f8565b905060019550614a1b565b614a26565b846001019450614998565b85614a6c576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6001600160a01b038481166000908152600d602090815260408083208054600019019055600982528083208785168085528184528285209588168552948352818420849055825280832093835292905281812081905590516003917ff83de021914a4585482db5ca47d520a5657165b443fa2c7ef8ed4635f054da9b91a250505050505050565b60008183614b425760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315613a4d578181015183820152602001613a35565b506000838581614b4e57fe5b0495945050505050565b606081516001148015614b8a5750607f60f81b82600081518110614b7857fe5b01602001516001600160f81b03191611155b15614b96575080611211565b612fa4614ba88351608060ff16614d11565b83614c94565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416614bf257506018614c16565b6fffffffffffffffffffffffffffffffff198416614c1257506010614c16565b5060005b6020811015614c4c57818181518110614c2b57fe5b01602001516001600160f81b03191615614c4457614c4c565b600101614c16565b60008160200390506060816040519080825280601f01601f191660200182016040528015614c81576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b81831015614cc5578051835260209283019201614cad565b50855184518101855292509050808201602086015b81831015614cf2578051835260209283019201614cda565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310614d61576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b60408051600180825281830190925260609160208201818036833701905050905060378411614dbb5782840160f81b81600081518110614d9d57fe5b60200101906001600160f81b031916908160001a9053509050612fa4565b6060614dc685614bae565b90508381510160370160f81b82600081518110614ddf57fe5b60200101906001600160f81b031916908160001a905350614e008282614c94565b95945050505050565b8051600090614e1a57506000611211565b6020820151805160001a9060c0821015614e3957600092505050611211565b5060019392505050565b8051600090811a6080811015614e5d576000915050611211565b60b8811080614e78575060c08110801590614e78575060f881105b15614e87576001915050611211565b60c0811015614e9b5760b519019050611211565b60f519019050611211565b80516000908190811a6080811015614ec15760019150614fd2565b60b8811015614ed657607e1981019150614fd2565b60c0811015614f5057600060b78203600186019550806020036101000a865104915060018101820193505080831015614f4a576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50614fd2565b60f8811015614f655760be1981019150614fd2565b600060f78203600186019550806020036101000a865104915060018101820193505080831015614fd0576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b8051600090601514614fea57600080fd5b612fa482613546565b6000606061500c846402540be40063ffffffff6132bf16565b60408051600480825260a0820190925291955060609190816020015b606081526020019060019003908161502857905050905061504b8760ff16613366565b8160008151811061505857fe5b6020026020010181905250615075866001600160a01b0316613343565b8160018151811061508257fe5b602002602001018190525061509685613366565b816002815181106150a357fe5b60200260200101819052506150bd8463ffffffff16613366565b816003815181106150ca57fe5b602002602001018190525060606150e082613379565b94989497509395505050505050565b806150f9576131d4565b5b60208110615119578251825260209283019290910190601f19016150fa565b915181516020939093036101000a6000190180199091169216919091179052565b60008261514957506000612fa4565b8282028284828161515657fe5b04146132b85760405162461bcd60e51b815260040180806020018281038252602181526020018061529f6021913960400191505060405180910390fd5b60405180606001604052806003906020820280368337509192915050565b60405180604001604052806151c46151d1565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe7468652042534352656c61796572466565206d6f642074656e20646563696d616c73206d757374206265207a65726f7468652042534352656c61796572466565206d757374206265206c657373207468616e2072656c61796572466565746865206d696e44656c65676174696f6e206d7573742062652067726561746572207468616e2072656c61796572466565696e73756666696369656e742062616c616e636520616674657220726564656c6567617465536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f777468652072656c61796572466565206d6f642074656e20646563696d616c73206d757374206265207a65726f746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163747468652072656c61796572466565206d757374206265206c657373207468616e206d696e44656c65676174696f6e7468652072656c61796572466565206d757374206265206d6f7265207468616e2042534352656c61796572466565696e73756666696369656e742062616c616e636520616674657220756e64656c6567617465746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e74726163747468652042534352656c61796572466565206d757374206e6f74206265207a65726fa2646970667358221220f93b7c737ada8f392b296e539e2479e336344a76181ff9ba33d0303334f6a7c064736f6c63430006040033" + } + }, + "27281024": { + "0x0000000000000000000000000000000000001001": { + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b50600436106102535760003560e01c80637942fd0511610146578063ac431751116100c3578063dc927faf11610087578063dc927faf1461073b578063e1c7392a14610743578063f9a2bbc71461074b578063fc3e590814610753578063fc4333cd1461075b578063fd6a68791461076357610253565b8063ac431751146105cf578063c80d4b8f1461068d578063c81b166214610695578063c8509d811461069d578063c96be4cb1461071557610253565b80639dc092621161010a5780639dc0926214610593578063a1a11bf51461059b578063a78abc16146105a3578063ab51bb96146105bf578063ac0af629146105c757610253565b80637942fd05146104fb5780638256ace614610503578063831d65d11461050b57806396713da9146105835780639bc8e4f21461058b57610253565b80634bf6c882116101d45780636e47b482116101985780636e47b482146104d357806370fd5bad146104db578063718a8aa8146104e357806375d47a0a146104eb5780637912a65d146104f357610253565b80634bf6c8821461048b57806351e8067214610493578063567a372d1461049b5780635bfb4990146104a357806362b72cf5146104cb57610253565b806337c8dab91161021b57806337c8dab9146103ed578063389f4f711461042c5780633dffc3871461044657806343756e5c14610464578063493279b11461046c57610253565b80630bee7a67146102585780630e2374a5146102795780631182b8751461029d57806323bac5a21461038a57806335aa2e44146103d0575b600080fd5b61026061076b565b6040805163ffffffff9092168252519081900360200190f35b610281610770565b604080516001600160a01b039092168252519081900360200190f35b610315600480360360408110156102b357600080fd5b60ff8235169190810190604081016020820135600160201b8111156102d757600080fd5b8201836020820111156102e957600080fd5b803590602001918460018302840111600160201b8311171561030a57600080fd5b509092509050610776565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561034f578181015183820152602001610337565b50505050905090810190601f16801561037c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103b0600480360360208110156103a057600080fd5b50356001600160a01b031661084a565b604080519384526020840192909252151582820152519081900360600190f35b610281600480360360208110156103e657600080fd5b503561086d565b6104136004803603602081101561040357600080fd5b50356001600160a01b0316610894565b6040805192835260208301919091528051918290030190f35b6104346108eb565b60408051918252519081900360200190f35b61044e6108f1565b6040805160ff9092168252519081900360200190f35b6102816108f6565b6104746108fc565b6040805161ffff9092168252519081900360200190f35b61044e610901565b610281610906565b61043461090c565b6104c9600480360360208110156104b957600080fd5b50356001600160a01b0316610912565b005b610434610a73565b610281610a79565b61044e610a7f565b61044e610a84565b610281610a89565b610434610a8f565b61044e610a94565b610413610a99565b6104c96004803603604081101561052157600080fd5b60ff8235169190810190604081016020820135600160201b81111561054557600080fd5b82018360208201111561055757600080fd5b803590602001918460018302840111600160201b8311171561057857600080fd5b509092509050610aa3565b61044e610bfd565b610434610c02565b610281610c0d565b610281610c13565b6105ab610c19565b604080519115158252519081900360200190f35b610260610c22565b610434610c27565b6104c9600480360360408110156105e557600080fd5b810190602081018135600160201b8111156105ff57600080fd5b82018360208201111561061157600080fd5b803590602001918460018302840111600160201b8311171561063257600080fd5b919390929091602081019035600160201b81111561064f57600080fd5b82018360208201111561066157600080fd5b803590602001918460018302840111600160201b8311171561068257600080fd5b509092509050610c2c565b61043461101a565b61028161101f565b6104c9600480360360408110156106b357600080fd5b60ff8235169190810190604081016020820135600160201b8111156106d757600080fd5b8201836020820111156106e957600080fd5b803590602001918460018302840111600160201b8311171561070a57600080fd5b509092509050611025565b6104c96004803603602081101561072b57600080fd5b50356001600160a01b03166110d8565b610281611659565b6104c961165f565b6102816116d0565b61044e6116d6565b6104c96116db565b610281611b66565b606481565b61200181565b606033612000146107b85760405162461bcd60e51b815260040180806020018281038252602f8152602001806125bd602f913960400191505060405180910390fd5b60005460ff166107fd576040805162461bcd60e51b81526020600482015260196024820152600080516020612619833981519152604482015290519081900360640190fd5b6040805162461bcd60e51b815260206004820152601e60248201527f7265636569766520756e65787065637465642073796e207061636b6167650000604482015290519081900360640190fd5b600260208190526000918252604090912080546001820154919092015460ff1683565b6001818154811061087a57fe5b6000918252602090912001546001600160a01b0316905081565b60008061089f612481565b5050506001600160a01b0316600090815260026020818152604092839020835160608101855281548082526001830154938201849052919093015460ff16151592909301919091529091565b60055481565b600181565b61100181565b603881565b600881565b61200081565b60045481565b33611000146109525760405162461bcd60e51b81526004018080602001828103825260308152602001806125186030913960400191505060405180910390fd5b60005460ff16610997576040805162461bcd60e51b81526020600482015260196024820152600080516020612619833981519152604482015290519081900360640190fd5b61200063f7a251d7600b6109aa84611b6c565b60006040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015610a0a5781810151838201526020016109f2565b50505050905090810190601f168015610a375780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015610a5857600080fd5b505af1158015610a6c573d6000803e3d6000fd5b5050505050565b60035481565b61100581565b600281565b601081565b61100881565b603281565b600b81565b6004546005549091565b3361200014610ae35760405162461bcd60e51b815260040180806020018281038252602f8152602001806125bd602f913960400191505060405180910390fd5b60005460ff16610b28576040805162461bcd60e51b81526020600482015260196024820152600080516020612619833981519152604482015290519081900360640190fd5b610b306124a4565b6000610b7184848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611c3e92505050565b915091508015610bbb5781516040805163ffffffff9092168252517f7f0956d47419b9525356e7111652b653b530ec6f5096dccc04589bc38e6299679181900360200190a1610a6c565b81516040805163ffffffff9092168252517f7d45f62d17443dd4547bca8a8112c60e2385669318dc300ec61a5d2492f262e79181900360200190a15050505050565b600981565b662386f26fc1000081565b61100781565b61100681565b60005460ff1681565b600081565b600481565b60005460ff16610c71576040805162461bcd60e51b81526020600482015260196024820152600080516020612619833981519152604482015290519081900360640190fd5b3361100714610cb15760405162461bcd60e51b815260040180806020018281038252602e815260200180612548602e913960400191505060405180910390fd5b610d1c84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260148152731b5a5cd9195b59585b9bdc951a1c995cda1bdb1960621b60208201529150611cbe9050565b15610df55760208114610d605760405162461bcd60e51b81526004018080602001828103825260278152602001806124f16027913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610d9e91858580838501838280828437600092019190915250611da692505050565b905060018110158015610db2575060055481105b610ded5760405162461bcd60e51b81526004018080602001828103825260258152602001806125986025913960400191505060405180910390fd5b600455610f88565b610e5b84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e19995b1bdb9e551a1c995cda1bdb19608a1b60208201529150611cbe9050565b15610f4b5760208114610e9f5760405162461bcd60e51b81526004018080602001828103825260228152602001806125766022913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610edd91858580838501838280828437600092019190915250611da692505050565b90506103e88111158015610ef2575060045481115b610f43576040805162461bcd60e51b815260206004820181905260248201527f7468652066656c6f6e795468726573686f6c64206f7574206f662072616e6765604482015290519081900360640190fd5b600555610f88565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b609681565b61100281565b33612000146110655760405162461bcd60e51b815260040180806020018281038252602f8152602001806125bd602f913960400191505060405180910390fd5b60005460ff166110aa576040805162461bcd60e51b81526020600482015260196024820152600080516020612619833981519152604482015290519081900360640190fd5b6040517f07db600eebe2ac176be8dcebad61858c245a4961bb32ca2aa3d159b09aa0810e90600090a1505050565b3341146111165760405162461bcd60e51b815260040180806020018281038252602d8152602001806125ec602d913960400191505060405180910390fd5b60005460ff1661115b576040805162461bcd60e51b81526020600482015260196024820152600080516020612619833981519152604482015290519081900360640190fd5b60035443116111b1576040805162461bcd60e51b815260206004820181905260248201527f63616e206e6f7420736c61736820747769636520696e206f6e6520626c6f636b604482015290519081900360640190fd5b3a156111fb576040805162461bcd60e51b81526020600482015260146024820152736761737072696365206973206e6f74207a65726f60601b604482015290519081900360640190fd5b6040805163155853f360e21b81526001600160a01b03831660048201529051611000916355614fcc916024808301926020929190829003018186803b15801561124357600080fd5b505afa158015611257573d6000803e3d6000fd5b505050506040513d602081101561126d57600080fd5b505161127857611652565b611280612481565b506001600160a01b0381166000908152600260208181526040928390208351606081018552815481526001820154928101929092529091015460ff1615801592820192909252906112db576020810180516001019052611334565b60016040820181905260208201819052805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0384161790555b43815260055460208201518161134657fe5b0661157657600060208201819052604080516335409f7f60e01b81526001600160a01b03851660048201529051611000926335409f7f926024808201939182900301818387803b15801561139957600080fd5b505af11580156113ad573d6000803e3d6000fd5b505050506120006001600160a01b031663f7a251d7600b6113cd85611b6c565b60006040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561142d578181015183820152602001611415565b50505050905090810190601f16801561145a5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561147b57600080fd5b505af192505050801561148c575060015b611571573d8080156114ba576040519150601f19603f3d011682016040523d82523d6000602084013e6114bf565b606091505b50826001600160a01b03167fd7bc86ff5d08c8ab043edec743302aba2520e6635172a428bc956721db9e2d1c8360200151836040518083815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561153457818101518382015260200161151c565b50505050905090810190601f1680156115615780820380516001836020036101000a031916815260200191505b50935050505060405180910390a2505b6115ec565b60045481602001518161158557fe5b066115ec57604080516375abf10160e11b81526001600160a01b038416600482015290516110009163eb57e20291602480830192600092919082900301818387803b1580156115d357600080fd5b505af11580156115e7573d6000803e3d6000fd5b505050505b6001600160a01b0382166000818152600260208181526040808420865181559186015160018301558581015191909201805460ff1916911515919091179055517fddb6012116e51abf5436d956a4f0ebd927e92c576ff96d7918290c8782291e3e9190a2505b5043600355565b61100381565b60005460ff16156116b7576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b603260045560966005556000805460ff19166001179055565b61100081565b600381565b336110001461171b5760405162461bcd60e51b81526004018080602001828103825260308152602001806125186030913960400191505060405180910390fd5b60005460ff16611760576040805162461bcd60e51b81526020600482015260196024820152600080516020612619833981519152604482015290519081900360640190fd5b60015461176c57611b64565b600154600090600019015b808211611b38576000805b8284101561189b57611792612481565b60026000600187815481106117a357fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff1615159082015260055490915060049004816020015111156118855760046005548161181057fe5b0481602001510381602001818152505080600260006001888154811061183257fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208351815591830151600183015591909101516002909101805460ff191691151591909117905561188f565b600192505061189b565b50600190930192611782565b828411611a32576118aa612481565b60026000600186815481106118bb57fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff1615159082015260055490915060049004816020015111156119a35760046005548161192857fe5b0481602001510381602001818152505080600260006001878154811061194a57fe5b6000918252602080832091909101546001600160a01b03168352828101939093526040918201902083518155918301516001808401919091559201516002909101805460ff19169115159190911790559150611a329050565b60026000600186815481106119b457fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff191690558054806119f857fe5b600082815260209020810160001990810180546001600160a01b031916905501905583611a255750611a32565b506000199092019161189b565b818015611a3c5750805b15611b1b576002600060018681548110611a5257fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff19169055805484908110611a9957fe5b600091825260209091200154600180546001600160a01b039092169186908110611abf57fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506001805480611af857fe5b600082815260209020810160001990810180546001600160a01b03191690550190555b82611b27575050611b38565b505060019091019060001901611777565b6040517fcfdb3b6ccaeccbdc68be3c59c840e3b3c90f0a7c491f5fff1cf56cfda200dd9c90600090a150505b565b61100481565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081611b87579050509050611bb0836001600160a01b0316611dab565b81600081518110611bbd57fe5b6020026020010181905250611bd143611dce565b81600181518110611bde57fe5b6020908102919091010152611bf36038611dce565b81600281518110611c0057fe5b6020026020010181905250611c1442611dce565b81600381518110611c2157fe5b6020026020010181905250611c3581611de1565b9150505b919050565b611c466124a4565b6000611c506124a4565b611c586124b6565b611c69611c6486611e6b565b611e90565b90506000805b611c7883611eda565b15611cb15780611ca457611c93611c8e84611efb565b611f49565b63ffffffff16845260019150611ca9565b611cb1565b600101611c6f565b5091935090915050915091565b6000816040516020018082805190602001908083835b60208310611cf35780518252601f199092019160209182019101611cd4565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310611d615780518252601f199092019160209182019101611d42565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052805190602001201490505b92915050565b015190565b60408051600560a21b8318601482015260348101909152606090611c3581612000565b6060611da0611ddc83612056565b612000565b6060815160001415611e025750604080516000815260208101909152611c39565b606082600081518110611e1157fe5b602002602001015190506000600190505b8351811015611e5257611e4882858381518110611e3b57fe5b602002602001015161213c565b9150600101611e22565b50611c35611e65825160c060ff166121b9565b8261213c565b611e736124d6565b506040805180820190915281518152602082810190820152919050565b611e986124b6565b611ea1826122b1565b611eaa57600080fd5b6000611eb983602001516122eb565b60208085015160408051808201909152868152920190820152915050919050565b6000611ee46124d6565b505080518051602091820151919092015191011190565b611f036124d6565b611f0c82611eda565b611f1557600080fd5b60208201516000611f258261234e565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590611f5e57508151602110155b611f6757600080fd5b6000611f7683602001516122eb565b90508083600001511015611fd1576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015611ff757826020036101000a820491505b50949350505050565b6060815160011480156120325750607f60f81b8260008151811061202057fe5b01602001516001600160f81b03191611155b1561203e575080611c39565b611da06120508351608060ff166121b9565b8361213c565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff19841661209a575060186120be565b6fffffffffffffffffffffffffffffffff1984166120ba575060106120be565b5060005b60208110156120f4578181815181106120d357fe5b01602001516001600160f81b031916156120ec576120f4565b6001016120be565b60008160200390506060816040519080825280601f01601f191660200182016040528015612129576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b8183101561216d578051835260209283019201612155565b50855184518101855292509050808201602086015b8183101561219a578051835260209283019201612182565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310612209576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b604080516001808252818301909252606091602082018180368337019050509050603784116122635782840160f81b8160008151811061224557fe5b60200101906001600160f81b031916908160001a9053509050611da0565b606061226e85612056565b90508381510160370160f81b8260008151811061228757fe5b60200101906001600160f81b031916908160001a9053506122a8828261213c565b95945050505050565b80516000906122c257506000611c39565b6020820151805160001a9060c08210156122e157600092505050611c39565b5060019392505050565b8051600090811a6080811015612305576000915050611c39565b60b8811080612320575060c08110801590612320575060f881105b1561232f576001915050611c39565b60c08110156123435760b519019050611c39565b60f519019050611c39565b80516000908190811a6080811015612369576001915061247a565b60b881101561237e57607e198101915061247a565b60c08110156123f857600060b78203600186019550806020036101000a8651049150600181018201935050808310156123f2576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b5061247a565b60f881101561240d5760be198101915061247a565b600060f78203600186019550806020036101000a865104915060018101820193505080831015612478576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b604051806060016040528060008152602001600081526020016000151581525090565b60408051602081019091526000815290565b60405180604001604052806124c96124d6565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe6c656e677468206f66206d697364656d65616e6f725468726573686f6c64206d69736d61746368746865206d6573736167652073656e646572206d7573742062652076616c696461746f7253657420636f6e7472616374746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662066656c6f6e795468726573686f6c64206d69736d61746368746865206d697364656d65616e6f725468726573686f6c64206f7574206f662072616e6765746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d6573736167652073656e646572206d7573742062652074686520626c6f636b2070726f647563657274686520636f6e7472616374206e6f7420696e69742079657400000000000000a2646970667358221220638a87b280b96494e110d626ea9527bb15cb9cf42454fbab93839017affa9a8564736f6c63430006040033" + }, + "0x0000000000000000000000000000000000001004": { + "balance": "0x0", + "code": "0x6080604052600436106103c75760003560e01c806396713da9116101f2578063c81b16621161010d578063f0148472116100a0578063fc1a598f1161006f578063fc1a598f14610f25578063fc3e590814610b85578063fd6a687914610f58578063ff9c0027146107fd5761040f565b8063f014847214610ed1578063f9a2bbc714610ee6578063fa9e915914610efb578063fb063e8f14610f105761040f565b8063dc927faf116100dc578063dc927faf14610e5f578063e1c7392a14610e74578063e8f35cea14610e89578063ebf71d5314610ebc5761040f565b8063c81b166214610d8a578063c8509d8114610d9f578063cf41984414610e24578063d9e6dae91461077f5761040f565b8063aa7415f511610185578063b9fd21e311610154578063b9fd21e314610cfa578063ba35ead614610d0f578063bbface1f14610d24578063bd46646114610d575761040f565b8063aa7415f514610b9a578063ab51bb9614610be1578063ac43175114610bf6578063b99328c514610cc15761040f565b8063a1a11bf5116101c1578063a1a11bf514610b46578063a496fba214610b5b578063a78abc1614610b70578063a7c9f02d14610b855761040f565b806396713da914610ace5780639a854bbd14610ae35780639a99b4f014610af85780639dc0926214610b315761040f565b806359b92789116102e257806371d3086311610275578063831d65d111610244578063831d65d1146109d15780638b87b21f146106d45780638eff336c14610a565780639509b98014610a955761040f565b806371d3086314610968578063727be1f81461097d57806375d47a0a146109a75780637942fd05146109bc5761040f565b80636e056520116102b15780636e056520146108125780636e47b4821461093e57806370fd5bad146107fd578063718a8aa8146109535761040f565b806359b92789146107be5780635d499b1b146107e8578063613684751461077f57806366dea52a146107fd5761040f565b80633fd8b02f1161035a5780634a3acdf4116103295780634a3acdf41461076a5780634bf6c8821461077f57806350432d321461079457806351e80672146107a95761040f565b80633fd8b02f146106ff57806343756e5c1461071457806343a368b914610729578063493279b11461073e5761040f565b8063149d14d911610396578063149d14d9146105a85780632ae45483146105cf5780633d713223146106235780633dffc387146106d45761040f565b80630bee7a67146104145780630e2374a5146104425780631182b87514610473578063122345821461056d5761040f565b3661040f57341561040d576040805133815234602082015281517f6c98249d85d88c3753a04a22230f595e4dc8d3dc86c34af35deeeedc861b89db929181900390910190a15b005b600080fd5b34801561042057600080fd5b50610429610f6d565b6040805163ffffffff9092168252519081900360200190f35b34801561044e57600080fd5b50610457610f72565b604080516001600160a01b039092168252519081900360200190f35b34801561047f57600080fd5b506104f86004803603604081101561049657600080fd5b60ff8235169190810190604081016020820135600160201b8111156104ba57600080fd5b8201836020820111156104cc57600080fd5b803590602001918460018302840111600160201b831117156104ed57600080fd5b509092509050610f78565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561053257818101518382015260200161051a565b50505050905090810190601f16801561055f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561057957600080fd5b5061040d6004803603604081101561059057600080fd5b506001600160a01b03813581169160200135166110a6565b3480156105b457600080fd5b506105bd6111a0565b60408051918252519081900360200190f35b3480156105db57600080fd5b5061060a600480360360408110156105f257600080fd5b506001600160a01b03813581169160200135166111a6565b6040805192835260208301919091528051918290030190f35b34801561062f57600080fd5b506104576004803603602081101561064657600080fd5b810190602081018135600160201b81111561066057600080fd5b82018360208201111561067257600080fd5b803590602001918460018302840111600160201b8311171561069357600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506111ca945050505050565b3480156106e057600080fd5b506106e96111ee565b6040805160ff9092168252519081900360200190f35b34801561070b57600080fd5b506105bd6111f3565b34801561072057600080fd5b506104576111f9565b34801561073557600080fd5b506105bd6111ff565b34801561074a57600080fd5b5061075361120b565b6040805161ffff9092168252519081900360200190f35b34801561077657600080fd5b506105bd611210565b34801561078b57600080fd5b506106e9611216565b3480156107a057600080fd5b506105bd61121b565b3480156107b557600080fd5b50610457611226565b3480156107ca57600080fd5b50610457600480360360208110156107e157600080fd5b503561122c565b3480156107f457600080fd5b506105bd611247565b34801561080957600080fd5b506106e9611250565b61092a6004803603608081101561082857600080fd5b810190602081018135600160201b81111561084257600080fd5b82018360208201111561085457600080fd5b803590602001918460208302840111600160201b8311171561087557600080fd5b919390929091602081019035600160201b81111561089257600080fd5b8201836020820111156108a457600080fd5b803590602001918460208302840111600160201b831117156108c557600080fd5b919390929091602081019035600160201b8111156108e257600080fd5b8201836020820111156108f457600080fd5b803590602001918460208302840111600160201b8311171561091557600080fd5b91935091503567ffffffffffffffff16611255565b604080519115158252519081900360200190f35b34801561094a57600080fd5b5061045761172a565b34801561095f57600080fd5b506106e9611730565b34801561097457600080fd5b506105bd611735565b34801561098957600080fd5b5061092a600480360360208110156109a057600080fd5b503561173b565b3480156109b357600080fd5b506104576117bc565b3480156109c857600080fd5b506106e96117c2565b3480156109dd57600080fd5b5061040d600480360360408110156109f457600080fd5b60ff8235169190810190604081016020820135600160201b811115610a1857600080fd5b820183602082011115610a2a57600080fd5b803590602001918460018302840111600160201b83111715610a4b57600080fd5b5090925090506117c7565b348015610a6257600080fd5b5061040d60048036036060811015610a7957600080fd5b508035906001600160a01b036020820135169060400135611910565b348015610aa157600080fd5b5061040d60048036036040811015610ab857600080fd5b506001600160a01b038135169060200135611996565b348015610ada57600080fd5b506106e9611b53565b348015610aef57600080fd5b506105bd611b58565b348015610b0457600080fd5b506105bd60048036036040811015610b1b57600080fd5b506001600160a01b038135169060200135611b64565b348015610b3d57600080fd5b50610457611ca2565b348015610b5257600080fd5b50610457611ca8565b348015610b6757600080fd5b506106e9611cae565b348015610b7c57600080fd5b5061092a611cb3565b348015610b9157600080fd5b506106e9611cbc565b61092a60048036036080811015610bb057600080fd5b5080356001600160a01b03908116916020810135909116906040810135906060013567ffffffffffffffff16611cc1565b348015610bed57600080fd5b50610429611cae565b348015610c0257600080fd5b5061040d60048036036040811015610c1957600080fd5b810190602081018135600160201b811115610c3357600080fd5b820183602082011115610c4557600080fd5b803590602001918460018302840111600160201b83111715610c6657600080fd5b919390929091602081019035600160201b811115610c8357600080fd5b820183602082011115610c9557600080fd5b803590602001918460018302840111600160201b83111715610cb657600080fd5b509092509050612382565b348015610ccd57600080fd5b5061040d60048036036040811015610ce457600080fd5b50803590602001356001600160a01b031661282a565b348015610d0657600080fd5b506105bd6128a0565b348015610d1b57600080fd5b506105bd6128aa565b348015610d3057600080fd5b506105bd60048036036020811015610d4757600080fd5b50356001600160a01b03166128b0565b348015610d6357600080fd5b506105bd60048036036020811015610d7a57600080fd5b50356001600160a01b03166128c2565b348015610d9657600080fd5b506104576128dd565b348015610dab57600080fd5b5061040d60048036036040811015610dc257600080fd5b60ff8235169190810190604081016020820135600160201b811115610de657600080fd5b820183602082011115610df857600080fd5b803590602001918460018302840111600160201b83111715610e1957600080fd5b5090925090506128e3565b348015610e3057600080fd5b5061040d60048036036040811015610e4757600080fd5b506001600160a01b03813581169160200135166129b3565b348015610e6b57600080fd5b50610457612c87565b348015610e8057600080fd5b5061040d612c8d565b348015610e9557600080fd5b506105bd60048036036020811015610eac57600080fd5b50356001600160a01b0316612d2d565b348015610ec857600080fd5b506106e9612d3f565b348015610edd57600080fd5b506106e9612d44565b348015610ef257600080fd5b50610457612d49565b348015610f0757600080fd5b506105bd612d4f565b348015610f1c57600080fd5b506105bd612d55565b348015610f3157600080fd5b506104f860048036036020811015610f4857600080fd5b50356001600160a01b0316612d63565b348015610f6457600080fd5b50610457612e8a565b606481565b61200181565b60005460609060ff16610fc0576040805162461bcd60e51b81526020600482015260196024820152600080516020615582833981519152604482015290519081900360640190fd5b33612000146110005760405162461bcd60e51b815260040180806020018281038252602f815260200180615530602f913960400191505060405180910390fd5b60ff8416600214156110525761104b83838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612e9092505050565b905061109f565b6040805162461bcd60e51b815260206004820152601860248201527f756e7265636f676e697a65642073796e207061636b6167650000000000000000604482015290519081900360640190fd5b9392505050565b33612000146110e65760405162461bcd60e51b815260040180806020018281038252602f815260200180615530602f913960400191505060405180910390fd5b6001600160a01b0380831660009081526007602090815260408083209385168352929052208054611151576040805162461bcd60e51b815260206004820152601060248201526f1b9bc81b1bd8dad95908185b5bdd5b9d60821b604482015290519081900360640190fd5b8054600082556040805182815290516001600160a01b0380861692908716917f152fb15aa5d80f843e1e4bd5f2fc9161714f169945024decec7e84fb910fdd519181900360200190a350505050565b60015490565b60076020908152600092835260408084209091529082529020805460019091015482565b6020818101516000908152600490915260409020546001600160a01b03165b919050565b600181565b60055481565b61100181565b670de0b6b3a764000081565b603881565b61a8c081565b600881565b66071afd498d000081565b61200081565b6000908152600460205260409020546001600160a01b031690565b6402540be40081565b600281565b6000805460ff1661129b576040805162461bcd60e51b81526020600482015260196024820152600080516020615582833981519152604482015290519081900360640190fd5b8685146112d95760405162461bcd60e51b815260040180806020018281038252603b8152602001806154f5603b913960400191505060405180910390fd5b8683146113175760405162461bcd60e51b815260040180806020018281038252603f8152602001806153c8603f913960400191505060405180910390fd5b426078018267ffffffffffffffff1610156113635760405162461bcd60e51b81526004018080602001828103825260248152602001806152b86024913960400191505060405180910390fd5b6402540be4003406156113a75760405162461bcd60e51b81526004018080602001828103825260408152602001806155f86040913960400191505060405180910390fd5b604080518681526020808802820101909152859060009081906060908480156113da578160200160208202803683370190505b50905060005b848110156114b5576402540be4008b8b838181106113fa57fe5b905060200201358161140857fe5b06156114455760405162461bcd60e51b815260040180806020018281038252603c815260200180615407603c913960400191505060405180910390fd5b61146a8b8b8381811061145457fe5b9050602002013585612fb490919063ffffffff16565b93506114966402540be4008c8c8481811061148157fe5b9050602002013561300e90919063ffffffff16565b8282815181106114a257fe5b60209081029190910101526001016113e0565b506001546114da906114cd908663ffffffff61305016565b849063ffffffff612fb416565b3410156115185760405162461bcd60e51b81526004018080602001828103825260568152602001806155a26056913960600191505060405180910390fd5b611528348463ffffffff6130a916565b91506115326150bc565b6040518060c001604052806221272160e91b60001b815260200160006001600160a01b031681526020018381526020018e8e808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505050908252506040805160208c810282810182019093528c82529283019290918d918d91829185019084908082843760009201919091525050509082525067ffffffffffffffff8916602090910152905061200063f7a251d760036115f6846130eb565b61160b876402540be40063ffffffff61300e16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611669578181015183820152602001611651565b50505050905090810190601f1680156116965780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156116b757600080fd5b505af11580156116cb573d6000803e3d6000fd5b505060408051600081523360208201528082018890526060810187905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a15060019c9b505050505050505050505050565b61100581565b601081565b60015481565b6000336120011461177d5760405162461bcd60e51b81526004018080602001828103825260338152602001806151d66033913960400191505060405180910390fd5b81156117b4576040516120019083156108fc029084906000818181858888f193505050501580156117b2573d6000803e3d6000fd5b505b506001919050565b61100881565b600b81565b60005460ff1661180c576040805162461bcd60e51b81526020600482015260196024820152600080516020615582833981519152604482015290519081900360640190fd5b336120001461184c5760405162461bcd60e51b815260040180806020018281038252602f815260200180615530602f913960400191505060405180910390fd5b60ff83166003141561189c5761189782828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506133a692505050565b61190b565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a15b505050565b33611008146119505760405162461bcd60e51b815260040180806020018281038252602381526020018061555f6023913960400191505060405180910390fd5b600083815260046020908152604080832080546001600160a01b039096166001600160a01b03199096168617905593825260038152838220949094556002909352912055565b81806001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b1580156119d057600080fd5b505afa1580156119e4573d6000803e3d6000fd5b505050506040513d60208110156119fa57600080fd5b50516001600160a01b03163314611a58576040805162461bcd60e51b815260206004820152601860248201527f6e6f74206f776e6572206f6620424550323020746f6b656e0000000000000000604482015290519081900360640190fd5b60008211611aa6576040805162461bcd60e51b81526020600482015260166024820152751e995c9bc81b1a5b5a5d081b9bdd08185b1b1bddd95960521b604482015290519081900360640190fd5b6001600160a01b038316600090815260036020526040902054611afc576040805162461bcd60e51b81526020600482015260096024820152681b9bdd08189bdd5b9960ba1b604482015290519081900360640190fd5b6001600160a01b038316600081815260066020908152604091829020859055815185815291513393927f9df3a90730dbf23b5cc18dbbd5f4af3fa94a0dffb6ff6841f98a9a9a6ac626a892908290030190a3505050565b600981565b677ce66c50e284000081565b6000805460ff16611baa576040805162461bcd60e51b81526020600482015260196024820152600080516020615582833981519152604482015290519081900360640190fd5b3361100514611bea5760405162461bcd60e51b815260040180806020018281038252602f815260200180615209602f913960400191505060405180910390fd5b6000478310611bf95747611bfb565b825b9050670de0b6b3a7640000811115611c17576000915050611c9c565b8015611c99576040516001600160a01b0385169082156108fc029083906000818181858888f19350505050158015611c53573d6000803e3d6000fd5b50604080516001600160a01b03861681526020810183905281517ff8b71c64315fc33b2ead2adfa487955065152a8ac33d9d5193aafd7f45dc15a0929181900390910190a15b90505b92915050565b61100781565b61100681565b600081565b60005460ff1681565b600381565b6000805460ff16611d07576040805162461bcd60e51b81526020600482015260196024820152600080516020615582833981519152604482015290519081900360640190fd5b426078018267ffffffffffffffff161015611d535760405162461bcd60e51b81526004018080602001828103825260248152602001806152b86024913960400191505060405180910390fd5b6402540be400340615611d975760405162461bcd60e51b81526004018080602001828103825260408152602001806155f86040913960400191505060405180910390fd5b600080806001600160a01b038816611e7657600154611dbd90879063ffffffff612fb416565b341015611dfb5760405162461bcd60e51b81526004018080602001828103825260618152602001806153426061913960800191505060405180910390fd5b6402540be400860615611e3f5760405162461bcd60e51b815260040180806020018281038252603c815260200180615407603c913960400191505060405180910390fd5b611e4f348763ffffffff6130a916565b9050611e66866402540be40063ffffffff61300e16565b6221272160e91b93509150612119565b6001600160a01b038816600090815260036020526040902054925082611ecd5760405162461bcd60e51b81526004018080602001828103825260318152602001806153116031913960400191505060405180910390fd5b600154341015611f0e5760405162461bcd60e51b815260040180806020018281038252603f815260200180615464603f913960400191505060405180910390fd5b506001600160a01b0387166000908152600260205260409020543490600881111580611f595750600881118015611f595750611f57876007198301600a0a63ffffffff61340216565b155b611f945760405162461bcd60e51b815260040180806020018281038252603c815260200180615407603c913960400191505060405180910390fd5b611f9e8782613444565b9250611fa984613484565b15611ff1576305f5e100831015611ff15760405162461bcd60e51b815260040180806020018281038252603a81526020018061525a603a913960400191505060405180910390fd5b60088110158061200b575060088110801561200b57508683115b6120465760405162461bcd60e51b81526004018080602001828103825260258152602001806153a36025913960400191505060405180910390fd5b677ce66c50e284000083111561208d5760405162461bcd60e51b81526004018080602001828103825260358152602001806152dc6035913960400191505060405180910390fd5b604080516323b872dd60e01b81523360048201523060248201526044810189905290516001600160a01b038b16916323b872dd9160648083019260209291908290030181600087803b1580156120e257600080fd5b505af11580156120f6573d6000803e3d6000fd5b505050506040513d602081101561210c57600080fd5b505161211757600080fd5b505b6121216150bc565b6040805160c0810182528581526001600160a01b038b166020820152815160018082528184018452919283019181602001602082028036833750505081526040805160018082528183019092526020928301929091908083019080368337505050815260408051600180825281830190925260209283019290919080830190803683370190505081526020018767ffffffffffffffff1681525090508281604001516000815181106121cf57fe5b6020026020010181815250508781606001516000815181106121ed57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505033816080015160008151811061221f57fe5b6001600160a01b039092166020928302919091019091015261200063f7a251d7600361224a846130eb565b61225f866402540be40063ffffffff61300e16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156122bd5781810151838201526020016122a5565b50505050905090810190601f1680156122ea5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561230b57600080fd5b505af115801561231f573d6000803e3d6000fd5b5050604080516001600160a01b038d1681523360208201528082018b90526060810186905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a150600198975050505050505050565b33611007146123c25760405162461bcd60e51b815260040180806020018281038252602e8152602001806154a3602e913960400191505060405180910390fd5b60208114612417576040805162461bcd60e51b815260206004820152601b60248201527f65787065637465642076616c7565206c656e6774682069732033320000000000604482015290519081900360640190fd5b606084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8801819004810282018101909252868152939450606093925086915085908190840183828082843760009201919091525050505060208301519091506772656c617946656560c01b81141561251f576020820151670de0b6b3a764000081118015906124c657506402540be4008106155b612517576040805162461bcd60e51b815260206004820152601960248201527f7468652072656c6179466565206f7574206f662072616e676500000000000000604482015290519081900360640190fd5b600155612795565b61259387878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601781527f6c617267655472616e736665724c6f636b506572696f640000000000000000006020820152915061358a9050565b1561262f57604080516020601f87018190048102820181019092528581526000916125d69188888083850183828082843760009201919091525061367192505050565b905062093a80811115612627576040805162461bcd60e51b81526020600482015260146024820152736c6f636b20706572696f6420746f6f206c6f6e6760601b604482015290519081900360640190fd5b600555612795565b61269b87878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526015815274189b9893185c99d9551c985b9cd9995c931a5b5a5d605a1b6020820152915061358a9050565b1561275857604080516020601f87018190048102820181019092528581526000916126de9188888083850183828082843760009201919091525061367192505050565b905068056bc75e2d631000008110156127285760405162461bcd60e51b81526004018080602001828103825260228152602001806152386022913960400191505060405180910390fd5b6000805260066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f855612795565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a878787876040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050505050565b336110081461286a5760405162461bcd60e51b815260040180806020018281038252602381526020018061555f6023913960400191505060405180910390fd5b600091825260046020908152604080842080546001600160a01b03191690556001600160a01b0392909216835260039052812055565b6221272160e91b81565b61c35081565b60026020526000908152604090205481565b6001600160a01b031660009081526003602052604090205490565b61100281565b60005460ff16612928576040805162461bcd60e51b81526020600482015260196024820152600080516020615582833981519152604482015290519081900360640190fd5b33612000146129685760405162461bcd60e51b815260040180806020018281038252602f815260200180615530602f913960400191505060405180910390fd5b60ff83166003141561189c5761189782828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061367692505050565b60085460ff16600214156129ff576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b6008805460ff191660021790556001600160a01b0380831660009081526007602090815260408083209385168352929052208054612a77576040805162461bcd60e51b815260206004820152601060248201526f1b9bc81b1bd8dad95908185b5bdd5b9d60821b604482015290519081900360640190fd5b8060010154421015612ad0576040805162461bcd60e51b815260206004820152601760248201527f7374696c6c206f6e206c6f636b696e6720706572696f64000000000000000000604482015290519081900360640190fd5b805460008083556001600160a01b038516612b43576040516001600160a01b038516906127109084906000818181858888f193505050503d8060008114612b33576040519150601f19603f3d011682016040523d82523d6000602084013e612b38565b606091505b505080915050612bd6565b846001600160a01b031663a9059cbb61c35086856040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b158015612ba657600080fd5b5087f1158015612bba573d6000803e3d6000fd5b50505050506040513d6020811015612bd157600080fd5b505190505b80612c28576040805162461bcd60e51b815260206004820152601e60248201527f776974686472617720756e6c6f636b656420746f6b656e206661696c65640000604482015290519081900360640190fd5b836001600160a01b0316856001600160a01b03167f832fc3e25f2b3e6fb0eb59419a73cba405f2a249fce75f7e31ea5a457a0323f1846040518082815260200191505060405180910390a350506008805460ff19166001179055505050565b61100381565b60005460ff1615612ce5576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b66071afd498d000060019081556000808052600260205260127fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b55805460ff19169091179055565b60066020526000908152604090205481565b600481565b600581565b61100081565b61271081565b69021e19e0c9bab240000081565b6001600160a01b03811660009081526003602090815260409182902054825182815280840190935260609290918391906020820181803683375050506020810183905290506000805b60208160ff161015612df357828160ff1681518110612dc757fe5b01602001516001600160f81b03191615612de657600190910190612deb565b612df3565b600101612dac565b5060608160ff166040519080825280601f01601f191660200182016040528015612e24576020820181803683370190505b50905060005b8260ff168160ff161015612e8057838160ff1681518110612e4757fe5b602001015160f81c60f81b828260ff1681518110612e6157fe5b60200101906001600160f81b031916908160001a905350600101612e2a565b5095945050505050565b61100481565b6060612e9a615108565b6000612ea584613774565b9150915080612efb576040805162461bcd60e51b815260206004820152601f60248201527f756e7265636f676e697a6564207472616e73666572496e207061636b61676500604482015290519081900360640190fd5b6000612f06836138b3565b905063ffffffff811615612f9a576040808401516020808601516001600160a01b03166000908152600290915291822054612f419190613444565b9050612f4b61513d565b60405180608001604052808660000151815260200183815260200186608001516001600160a01b031681526020018463ffffffff168152509050612f8e81613c19565b955050505050506111e9565b505060408051600081526020810190915291506111e99050565b600082820183811015611c99576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000611c9983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613cf5565b60008261305f57506000611c9c565b8282028284828161306c57fe5b0414611c995760405162461bcd60e51b81526004018080602001828103825260218152602001806154436021913960400191505060405180910390fd5b6000611c9983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613d97565b60408051600680825260e08201909252606091829190816020015b6060815260200190600190039081613106575050835190915061312890613df1565b8160008151811061313557fe5b602002602001018190525061315683602001516001600160a01b0316613e04565b8160018151811061316357fe5b6020026020010181905250600083604001515190506060816040519080825280602002602001820160405280156131ae57816020015b60608152602001906001900390816131995790505b50905060005b828110156131fb576131dc866040015182815181106131cf57fe5b6020026020010151613df1565b8282815181106131e857fe5b60209081029190910101526001016131b4565b5061320581613e27565b8360028151811061321257fe5b602002602001018190525060608260405190808252806020026020018201604052801561325357816020015b606081526020019060019003908161323e5790505b50905060005b838110156132a95761328a8760600151828151811061327457fe5b60200260200101516001600160a01b0316613e04565b82828151811061329657fe5b6020908102919091010152600101613259565b506132b381613e27565b846003815181106132c057fe5b602002602001018190525060608360405190808252806020026020018201604052801561330157816020015b60608152602001906001900390816132ec5790505b50905060005b84811015613341576133228860800151828151811061327457fe5b82828151811061332e57fe5b6020908102919091010152600101613307565b5061334b81613e27565b8560048151811061335857fe5b602002602001018190525061337a8760a0015167ffffffffffffffff16613df1565b8560058151811061338757fe5b602002602001018190525061339b85613e27565b979650505050505050565b6133ae615164565b60006133b983613eb1565b91509150806133f95760405162461bcd60e51b81526004018080602001828103825260248152602001806154d16024913960400191505060405180910390fd5b61190b8261407c565b6000611c9983836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f0000000000000000815250614500565b6000600882111561346d57613466836007198401600a0a63ffffffff61300e16565b9050611c9c565b611c99836008849003600a0a63ffffffff61305016565b604080516020808252818301909252600091606091906020820181803683375050506020810184905290506000805b60208160ff1610156134fa57828160ff16815181106134ce57fe5b01602001516001600160f81b031916156134ed576001909101906134f2565b6134fa565b6001016134b3565b50600760ff82161015613512576000925050506111e9565b816005820360ff168151811061352457fe5b6020910101516001600160f81b031916602d60f81b14613549576000925050506111e9565b816001820360ff168151811061355b57fe5b6020910101516001600160f81b031916604d60f81b14613580576000925050506111e9565b5060019392505050565b6000816040516020018082805190602001908083835b602083106135bf5780518252601f1990920191602091820191016135a0565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b6020831061362d5780518252601f19909201916020918201910161360e565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b61367e6150bc565b600061368983614562565b91509150806136c95760405162461bcd60e51b81526004018080602001828103825260248152602001806152946024913960400191505060405180910390fd5b6136d1615164565b602080840180516001600160a01b0390811684526040808701518585015291511660009081526002909252812054905b8460400151518110156137525761372f8560400151828151811061372157fe5b6020026020010151836147c6565b8560400151828151811061373f57fe5b6020908102919091010152600101613701565b50608084015160408301526005606083015261376d8261407c565b5050505050565b61377c615108565b6000613786615108565b61378e61519b565b61379f61379a866147ff565b614824565b90506000805b6137ae8361486e565b156138a657806137d0576137c96137c48461488f565b6148dd565b845261389e565b80600114156137fd576137ea6137e58461488f565b614994565b6001600160a01b0316602085015261389e565b806002141561381c576138126137c48461488f565b604085015261389e565b8060031415613844576138316137e58461488f565b6001600160a01b0316606085015261389e565b806004141561386c576138596137e58461488f565b6001600160a01b0316608085015261389e565b8060051415613899576138816137c48461488f565b67ffffffffffffffff1660a08501526001915061389e565b6138a6565b6001016137a5565b5091935090915050915091565b60208101516000906001600160a01b03166139f7578160a0015167ffffffffffffffff164211156138e6575060016111e9565b81604001514710156138fa575060036111e9565b613903826149ae565b61397857606082015160408084015190516000926001600160a01b0316916127109184818181858888f193505050503d806000811461395e576040519150601f19603f3d011682016040523d82523d6000602084013e613963565b606091505b50509050806139765750600490506111e9565b505b7f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5982602001518360600151846040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a15060006111e9565b8160a0015167ffffffffffffffff16421115613a15575060016111e9565b81516020808401516001600160a01b031660009081526003909152604090205414613a42575060026111e9565b602080830151604080516370a0823160e01b815230600482015290516000936001600160a01b03909316926370a082319261c3509260248083019392829003018187803b158015613a9257600080fd5b5086fa158015613aa6573d6000803e3d6000fd5b50505050506040513d6020811015613abd57600080fd5b50516040840151909150811015613ad85750600390506111e9565b613ae1836149ae565b613b9857600083602001516001600160a01b031663a9059cbb61c350866060015187604001516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b158015613b5657600080fd5b5087f1158015613b6a573d6000803e3d6000fd5b50505050506040513d6020811015613b8157600080fd5b5051905080613b965750600591506111e99050565b505b7f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5983602001518460600151856040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a150600090506111e9565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081613c345750508351909150613c5690613df1565b81600081518110613c6357fe5b6020026020010181905250613c7b8360200151613df1565b81600181518110613c8857fe5b6020026020010181905250613ca983604001516001600160a01b0316613e04565b81600281518110613cb657fe5b6020026020010181905250613cd4836060015163ffffffff16613df1565b81600381518110613ce157fe5b602002602001018190525061109f81613e27565b60008183613d815760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613d46578181015183820152602001613d2e565b50505050905090810190601f168015613d735780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581613d8d57fe5b0495945050505050565b60008184841115613de95760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315613d46578181015183820152602001613d2e565b505050900390565b6060611c9c613dff83614b1c565b614c02565b60408051600560a21b831860148201526034810190915260609061109f81614c02565b6060815160001415613e4857506040805160008152602081019091526111e9565b606082600081518110613e5757fe5b602002602001015190506000600190505b8351811015613e9857613e8e82858381518110613e8157fe5b6020026020010151614c54565b9150600101613e68565b5061109f613eab825160c060ff16614cd1565b82614c54565b613eb9615164565b6000613ec3615164565b613ecb61519b565b613ed761379a866147ff565b90506000805b613ee68361486e565b156138a65780613f0c57613efc6137e58461488f565b6001600160a01b03168452614074565b8060011415613fad576060613f28613f238561488f565b614dc9565b90508051604051908082528060200260200182016040528015613f55578160200160208202803683370190505b50602086015260005b8151811015613fa657613f83828281518110613f7657fe5b60200260200101516148dd565b86602001518281518110613f9357fe5b6020908102919091010152600101613f5e565b5050614074565b806002141561404f576060613fc4613f238561488f565b90508051604051908082528060200260200182016040528015613ff1578160200160208202803683370190505b50604086015260005b8151811015613fa65761401f82828151811061401257fe5b6020026020010151614994565b8660400151828151811061402f57fe5b6001600160a01b0390921660209283029190910190910152600101613ffa565b8060031415613899576140646137c48461488f565b63ffffffff166060850152600191505b600101613edd565b80516001600160a01b03166142a65760005b8160200151518110156142a0576000826040015182815181106140ad57fe5b60200260200101516001600160a01b0316612710846020015184815181106140d157fe5b60209081029190910101516040516000818181858888f193505050503d8060008114614119576040519150601f19603f3d011682016040523d82523d6000602084013e61411e565b606091505b50509050806141e1577f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061415d57fe5b60200260200101518560200151858151811061417557fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a1614297565b7fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a83600001518460400151848151811061421757fe5b60200260200101518560200151858151811061422f57fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b5060010161408e565b506144fd565b60005b8160200151518110156144fb57600082600001516001600160a01b031663a9059cbb61c350856040015185815181106142de57fe5b6020026020010151866020015186815181106142f657fe5b60200260200101516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b15801561434d57600080fd5b5087f1158015614361573d6000803e3d6000fd5b50505050506040513d602081101561437857600080fd5b50519050801561443c577fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a8360000151846040015184815181106143b857fe5b6020026020010151856020015185815181106143d057fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a16144f2565b7f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061447257fe5b60200260200101518560200151858151811061448a57fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b506001016142a9565b505b50565b6000818361454f5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315613d46578181015183820152602001613d2e565b5082848161455957fe5b06949350505050565b61456a6150bc565b60006145746150bc565b61457c61519b565b61458861379a866147ff565b90506000805b6145978361486e565b156138a657806145b4576145ad6137c48461488f565b84526147be565b80600114156145dc576145c96137e58461488f565b6001600160a01b031660208501526147be565b806002141561466b5760606145f3613f238561488f565b90508051604051908082528060200260200182016040528015614620578160200160208202803683370190505b50604086015260005b815181101561466457614641828281518110613f7657fe5b8660400151828151811061465157fe5b6020908102919091010152600101614629565b50506147be565b8060031415614700576060614682613f238561488f565b905080516040519080825280602002602001820160405280156146af578160200160208202803683370190505b50606086015260005b8151811015614664576146d082828151811061401257fe5b866060015182815181106146e057fe5b6001600160a01b03909216602092830291909101909101526001016146b8565b8060041415614795576060614717613f238561488f565b90508051604051908082528060200260200182016040528015614744578160200160208202803683370190505b50608086015260005b81518110156146645761476582828151811061401257fe5b8660800151828151811061477557fe5b6001600160a01b039092166020928302919091019091015260010161474d565b8060051415613899576147aa6137c48461488f565b67ffffffffffffffff1660a0850152600191505b60010161458e565b600060088211156147e857613466836007198401600a0a63ffffffff61305016565b611c99836008849003600a0a63ffffffff61300e16565b6148076151bb565b506040805180820190915281518152602082810190820152919050565b61482c61519b565b61483582614e9a565b61483e57600080fd5b600061484d8360200151614eca565b60208085015160408051808201909152868152920190820152915050919050565b60006148786151bb565b505080518051602091820151919092015191011190565b6148976151bb565b6148a08261486e565b6148a957600080fd5b602082015160006148b982614f2d565b80830160209586015260408051808201909152908152938401919091525090919050565b8051600090158015906148f257508151602110155b6148fb57600080fd5b600061490a8360200151614eca565b90508083600001511015614965576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b82516020808501518301805192849003929183101561498b57826020036101000a820491505b50949350505050565b80516000906015146149a557600080fd5b611c9c826148dd565b600080805260066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f8541580156149e75750600554155b15614a295760008052600660205269021e19e0c9bab24000007f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f85561a8c06005555b6020808301516001600160a01b0316600090815260069091526040902054801580614a575750808360400151105b15614a665760009150506111e9565b6020808401516001600160a01b039081166000908152600783526040808220606088015190931682529190925290819020908401518154614aac9163ffffffff612fb416565b8155600554420160018201819055606085015160208087015160408089015181519081529283019490945283516001600160a01b039384169493909116927f3fb83143cd331170da18fb1e8564d97e8ec39264b6ecb1ba248ea7596ab07258928290030190a35060019392505050565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416614b6057506018614b84565b6fffffffffffffffffffffffffffffffff198416614b8057506010614b84565b5060005b6020811015614bba57818181518110614b9957fe5b01602001516001600160f81b03191615614bb257614bba565b600101614b84565b60008160200390506060816040519080825280601f01601f191660200182016040528015614bef576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015614c345750607f60f81b82600081518110614c2257fe5b01602001516001600160f81b03191611155b15614c405750806111e9565b611c9c614c528351608060ff16614cd1565b835b6060806040519050835180825260208201818101602087015b81831015614c85578051835260209283019201614c6d565b50855184518101855292509050808201602086015b81831015614cb2578051835260209283019201614c9a565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310614d21576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b60408051600180825281830190925260609160208201818036833701905050905060378411614d7b5782840160f81b81600081518110614d5d57fe5b60200101906001600160f81b031916908160001a9053509050611c9c565b6060614d8685614b1c565b90508381510160370160f81b82600081518110614d9f57fe5b60200101906001600160f81b031916908160001a905350614dc08282614c54565b95945050505050565b6060614dd482614e9a565b614ddd57600080fd5b6000614de883615060565b9050606081604051908082528060200260200182016040528015614e2657816020015b614e136151bb565b815260200190600190039081614e0b5790505b5090506000614e388560200151614eca565b60208601510190506000805b84811015614e8f57614e5583614f2d565b9150604051806040016040528083815260200184815250848281518110614e7857fe5b602090810291909101015291810191600101614e44565b509195945050505050565b8051600090614eab575060006111e9565b6020820151805160001a9060c0821015613580576000925050506111e9565b8051600090811a6080811015614ee45760009150506111e9565b60b8811080614eff575060c08110801590614eff575060f881105b15614f0e5760019150506111e9565b60c0811015614f225760b5190190506111e9565b60f5190190506111e9565b80516000908190811a6080811015614f485760019150615059565b60b8811015614f5d57607e1981019150615059565b60c0811015614fd757600060b78203600186019550806020036101000a865104915060018101820193505080831015614fd1576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50615059565b60f8811015614fec5760be1981019150615059565b600060f78203600186019550806020036101000a865104915060018101820193505080831015615057576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b8051600090615071575060006111e9565b600080905060006150858460200151614eca565b602085015185519181019250015b808210156150b3576150a482614f2d565b60019093019290910190615093565b50909392505050565b6040518060c001604052806000801916815260200160006001600160a01b03168152602001606081526020016060815260200160608152602001600067ffffffffffffffff1681525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b60408051608081018252600080825260208201819052918101829052606081019190915290565b604051806080016040528060006001600160a01b031681526020016060815260200160608152602001600063ffffffff1681525090565b60405180604001604052806151ae6151bb565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe6f6e6c79207374616b696e672073797374656d20636f6e74726163742063616e2063616c6c20746869732066756e6374696f6e746865206d6573736167652073656e646572206d75737420626520696e63656e746976697a6520636f6e7472616374626e62206c61726765207472616e73666572206c696d697420746f6f20736d616c6c466f72206d696e69546f6b656e2c20746865207472616e7366657220616d6f756e74206d757374206e6f74206265206c657373207468616e2031756e7265636f676e697a6564207472616e736665724f75742073796e207061636b61676565787069726554696d65206d7573742062652074776f206d696e75746573206c61746572616d6f756e7420697320746f6f206c617267652c20657863656564206d6178696d756d206265703220746f6b656e20616d6f756e7474686520636f6e747261637420686173206e6f74206265656e20626f756e6420746f20616e79206265703220746f6b656e726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e736665724f757420424e4220616d6f756e7420616e64206d696e696d756d2072656c6179466565616d6f756e7420697320746f6f206c617267652c2075696e74323536206f766572666c6f774c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620726566756e644164647273696e76616c6964207472616e7366657220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e20746865206d696e696d756d2072656c6179466565746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374756e7265636f676e697a6564207472616e736665724f75742061636b207061636b6167654c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620616d6f756e7473746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d73672073656e646572206d75737420626520746f6b656e4d616e6167657274686520636f6e7472616374206e6f7420696e69742079657400000000000000726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e7366657220424e4220616d6f756e7420616e642072656c6179466565696e76616c696420726563656976656420424e4220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6ea2646970667358221220b559cd4e3125714f2f5ec5e81bc7a26f9ea28156afc15d661cb954c3ea9a53d864736f6c63430006040033" + }, + "0x0000000000000000000000000000000000002000": { + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b50600436106103995760003560e01c8063718a8aa8116101e9578063c27cdcfb1161010f578063dc927faf116100ad578063f7a251d71161007c578063f7a251d714610b2f578063f9a2bbc714610ba7578063fc3e590814610baf578063fd6a687914610bb757610399565b8063dc927faf14610af7578063e1c7392a14610aff578063e3b0480514610b07578063e6400bbe14610b2757610399565b8063ccc108d7116100e9578063ccc108d714610ab0578063d31f968d14610ab8578063d76a867514610ae7578063dc40433114610aef57610399565b8063c27cdcfb14610a80578063c780e9de14610aa0578063c81b166214610aa857610399565b80638cc8f56111610187578063a78abc1611610156578063a78abc16146109b2578063ab51bb96146109ba578063ac431751146109c2578063b0355f5b1461078157610399565b80638cc8f5611461088757806396713da91461099a5780639dc09262146109a2578063a1a11bf5146109aa57610399565b806375d47a0a116101c357806375d47a0a146108a75780637942fd05146108af57806384013b6a146108b7578063863fe4ab1461099257610399565b8063718a8aa81461088f578063719482d51461089757806374f079b81461089f57610399565b8063422f9050116102ce57806363e1394e1161026c5780636de380bd1161023b5780636de380bd146108575780636e47a51a1461085f5780636e47b4821461087f57806370fd5bad1461088757610399565b806363e1394e146107ff5780636a3cb34d146108075780636bacff2c1461080f5780636c46aa681461080757610399565b80634bf6c882116102a85780634bf6c882146107b957806351e80672146107c15780635692ddd3146107c95780635f832177146107d157610399565b8063422f90501461078957806343756e5c146107a9578063493279b1146107b157610399565b8063299b533d1161033b578063308325f411610315578063308325f4146106155780633a648b151461061d5780633bdc47a6146106595780633dffc3871461078157610399565b8063299b533d146105a35780632af6f399146105d75780632ff32aea146105f457610399565b806314b3023b1161037757806314b3023b146104015780631d1309351461041b5780631e275ae11461043757806322556cdc1461059b57610399565b806305e682581461039e5780630bee7a67146103bc5780630e2374a5146103dd575b600080fd5b6103a6610bbf565b6040805160ff9092168252519081900360200190f35b6103c4610bc4565b6040805163ffffffff9092168252519081900360200190f35b6103e5610bc9565b604080516001600160a01b039092168252519081900360200190f35b610409610bcf565b60408051918252519081900360200190f35b610423610bd5565b604080519115158252519081900360200190f35b610599600480360361010081101561044e57600080fd5b81018160a081016080820135600160201b81111561046b57600080fd5b82018360208201111561047d57600080fd5b803590602001918460018302840111600160201b8311171561049e57600080fd5b919390929091602081019035600160201b8111156104bb57600080fd5b8201836020820111156104cd57600080fd5b803590602001918460018302840111600160201b831117156104ee57600080fd5b919390929091602081019035600160201b81111561050b57600080fd5b82018360208201111561051d57600080fd5b803590602001918460018302840111600160201b8311171561053e57600080fd5b919390929091602081019035600160201b81111561055b57600080fd5b82018360208201111561056d57600080fd5b803590602001918460018302840111600160201b8311171561058e57600080fd5b509092509050610bde565b005b6104096112c2565b6105c0600480360360208110156105b957600080fd5b50356112c7565b6040805161ffff9092168252519081900360200190f35b610423600480360360208110156105ed57600080fd5b50356112dd565b6105fc6112f2565b60408051600792830b90920b8252519081900360200190f35b6104096112fb565b61063d6004803603602081101561063357600080fd5b503560ff16611301565b604080516001600160401b039092168252519081900360200190f35b61070c6004803603606081101561066f57600080fd5b60ff82351691602081013591810190606081016040820135600160201b81111561069857600080fd5b8201836020820111156106aa57600080fd5b803590602001918460018302840111600160201b831117156106cb57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061131c945050505050565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561074657818101518382015260200161072e565b50505050905090810190601f1680156107735780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103a6611392565b6104236004803603602081101561079f57600080fd5b503560ff16611397565b6103e56113ac565b6105c06113b2565b6103a66113b7565b6103e56113bc565b6104096113c2565b610599600480360360408110156107e757600080fd5b506001600160a01b03813581169160200135166113f2565b610409611652565b6105c061167a565b61082c6004803603602081101561082557600080fd5b503561167f565b6040805161ffff90941684526001600160801b03909216602084015282820152519081900360600190f35b6104096116ae565b6103e56004803603602081101561087557600080fd5b503560ff166116d5565b6103e56116f0565b6103a661167a565b6103a66116f6565b6105c0611392565b6104096116fb565b6103e5611701565b6103a6611707565b610599600480360360a08110156108cd57600080fd5b810190602081018135600160201b8111156108e757600080fd5b8201836020820111156108f957600080fd5b803590602001918460018302840111600160201b8311171561091a57600080fd5b919390929091602081019035600160201b81111561093757600080fd5b82018360208201111561094957600080fd5b803590602001918460018302840111600160201b8311171561096a57600080fd5b919350915080356001600160401b03908116916020810135909116906040013560ff1661170c565b610409612a36565b6103a6612a3e565b6103e5612a43565b6103e5612a49565b610423612a4f565b6103c4610bbf565b610599600480360360408110156109d857600080fd5b810190602081018135600160201b8111156109f257600080fd5b820183602082011115610a0457600080fd5b803590602001918460018302840111600160201b83111715610a2557600080fd5b919390929091602081019035600160201b811115610a4257600080fd5b820183602082011115610a5457600080fd5b803590602001918460018302840111600160201b83111715610a7557600080fd5b509092509050612a58565b61063d60048036036020811015610a9657600080fd5b503560ff1661351c565b610409613537565b6103e561355b565b610599613561565b61042360048036036040811015610ace57600080fd5b5080356001600160a01b0316906020013560ff166137b5565b61070c6137d5565b6104096137f4565b6103e56137fa565b610599613800565b61063d60048036036020811015610b1d57600080fd5b503560ff16613bb7565b610599613bd2565b61059960048036036060811015610b4557600080fd5b60ff8235169190810190604081016020820135600160201b811115610b6957600080fd5b820183602082011115610b7b57600080fd5b803590602001918460018302840111600160201b83111715610b9c57600080fd5b919350915035613df1565b6103e5613f34565b6103a6613f3a565b6103e5613f3f565b600081565b606481565b61200181565b60015481565b600b5460ff1681565b60005460ff16610c23576040805162461bcd60e51b81526020600482015260196024820152600080516020614a4c833981519152604482015290519081900360640190fd5b604080516337d7f9c160e21b81526001600160401b038b35166004820181905291516110039163df5fe704916024808301926020929190829003018186803b158015610c6e57600080fd5b505afa158015610c82573d6000803e3d6000fd5b505050506040513d6020811015610c9857600080fd5b5051610cd55760405162461bcd60e51b8152600401808060200182810382526023815260200180614a6c6023913960400191505060405180910390fd5b604080516337d7f9c160e21b815260208c8101356001600160401b03166004830181905292516110039263df5fe704926024808301939192829003018186803b158015610d2157600080fd5b505afa158015610d35573d6000803e3d6000fd5b505050506040513d6020811015610d4b57600080fd5b5051610d885760405162461bcd60e51b8152600401808060200182810382526023815260200180614a6c6023913960400191505060405180910390fd5b60608b013560ff81166000908152600560205260409020546001600160401b03909116906001600160a01b0316610e01576040805162461bcd60e51b815260206004820152601860248201527718da185b9b995b081a5cc81b9bdd081cdd5c1c1bdc9d195960421b604482015290519081900360640190fd5b600b5460ff1615610e45576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b8888604051808383808284376040519201829003822094508f93508e9250819050838380828437808301925050509250505060405180910390201415610ec1576040805162461bcd60e51b815260206004820152600c60248201526b1cd85b59481c185e5b1bd85960a21b604482015290519081900360640190fd5b60606001600160401b0360408e01358116908e83013516610ee28282613f45565b80516020808301919091206000818152600e9092526040909120549194509060ff1615610f4b576040805162461bcd60e51b8152602060048201526012602482015271185b1c9958591e4818da185b1b195b99d95960721b604482015290519081900360640190fd5b6000908152600e60205260408120805460ff191660011790558f8160200201356001600160401b0316905060608f8f8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060608c8c8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506040805163cba510a960e01b81526001600160401b038a16600482015290519596509094611003945063cba510a9935060248083019350602092829003018186803b15801561104157600080fd5b505afa158015611055573d6000803e3d6000fd5b505050506040513d602081101561106b57600080fd5b505160408051808201909152600381526269626360e81b6020820152909150611098908290898686613f8d565b6110e1576040805162461bcd60e51b81526020600482015260156024820152740696e76616c6964206d65726b6c652070726f6f663605c1b604482015290519081900360640190fd5b5050505060008f6001600481106110f457fe5b60200201356001600160401b0316905060608d8d8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8f018190048102820181019092528d815293945060609392508d91508c908190840183828082843760009201829052506040805163cba510a960e01b81526001600160401b038a16600482015290519596509094611003945063cba510a9935060248083019350602092829003018186803b1580156111c057600080fd5b505afa1580156111d4573d6000803e3d6000fd5b505050506040513d60208110156111ea57600080fd5b505160408051808201909152600381526269626360e81b6020820152909150611217908290898686613f8d565b611260576040805162461bcd60e51b8152602060048201526015602482015274696e76616c6964206d65726b6c652070726f6f663160581b604482015290519081900360640190fd5b5050505061126c61408a565b604080516001600160401b038416815260ff83166020820152815133927f039eb91179ffd7d3b6e97f8ea106e748e827f910b872375dbc9c14a362319c3c928290030190a2505050505050505050505050505050565b603281565b600d6020526000908152604090205461ffff1681565b600e6020526000908152604090205460ff1681565b60045460070b81565b60025481565b600a602052600090815260409020546001600160401b031681565b60606000825160210190506060816040519080825280601f01601f191660200182016040528015611354576020820181803683370190505b506021810186905260018101879052828152905060418101600061137786614108565b50905061138681838851614112565b50909695505050505050565b600181565b60096020526000908152604090205460ff1681565b61100181565b603881565b600881565b61200081565b604080517710d05390d15317d514905394d1915497d41493d413d4d05360421b8152905190819003601801902081565b60005460ff16611437576040805162461bcd60e51b81526020600482015260196024820152600080516020614a4c833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b15801561147a57600080fd5b505afa15801561148e573d6000803e3d6000fd5b505050506040513d60208110156114a457600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b1580156114e557600080fd5b505afa1580156114f9573d6000803e3d6000fd5b505050506040513d602081101561150f57600080fd5b505190508061151c575060155b60008211801561152c5750808211155b61156b576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b604080516001600160a01b038087166020808401919091529086168284015282518083038401815260608301808552815191909201207710d05390d15317d514905394d1915497d41493d413d4d05360421b90915291519081900360780190206000906115d89083614153565b9050801561164a5760408051630911a2c160e11b81526001600160a01b03888116600483015287166024820152905161100491631223458291604480830192600092919082900301818387803b15801561163157600080fd5b505af1158015611645573d6000803e3d6000fd5b505050505b505050505050565b604080516f14d554d411539117d41493d413d4d05360821b8152905190819003601001902081565b600281565b600c602052600090815260409020805460019091015461ffff8216916201000090046001600160801b03169083565b604080516e149153d4115397d41493d413d4d053608a1b8152905190819003600f01902081565b6005602052600090815260409020546001600160a01b031681565b61100581565b601081565b60035481565b61100881565b600b81565b60005460ff16611751576040805162461bcd60e51b81526020600482015260196024820152600080516020614a4c833981519152604482015290519081900360640190fd5b60408051630a83aaa960e31b815233600482015290516110069163541d5548916024808301926020929190829003018186803b15801561179057600080fd5b505afa1580156117a4573d6000803e3d6000fd5b505050506040513d60208110156117ba57600080fd5b505161180d576040805162461bcd60e51b815260206004820152601f60248201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604482015290519081900360640190fd5b73b005741528b86f5952469d80a8614591e3c5b632331480611842575073446aa6e0dc65690403df3f127750da1322941f3e33145b61187d5760405162461bcd60e51b815260040180806020018281038252602a8152602001806149f0602a913960400191505060405180910390fd5b60ff8116600090815260086020526040902054829082906001600160401b0390811690831681146118ed576040805162461bcd60e51b815260206004820152601560248201527439b2b8bab2b731b2903737ba1034b71037b93232b960591b604482015290519081900360640190fd5b60ff8216600090815260086020908152604091829020805467ffffffffffffffff1916600185016001600160401b039081169190911790915582516337d7f9c160e21b81529089166004820152915188926110039263df5fe70492602480840193829003018186803b15801561196257600080fd5b505afa158015611976573d6000803e3d6000fd5b505050506040513d602081101561198c57600080fd5b50516119c95760405162461bcd60e51b8152600401808060200182810382526023815260200180614a6c6023913960400191505060405180910390fd5b60ff851660009081526005602052604090205485906001600160a01b0316611a33576040805162461bcd60e51b815260206004820152601860248201527718da185b9b995b081a5cc81b9bdd081cdd5c1c1bdc9d195960421b604482015290519081900360640190fd5b60ff86166000908152600a6020526040902054889087906001600160401b039081169083161015611a9c576040805162461bcd60e51b815260206004820152600e60248201526d3a37b79037b632103432b0b232b960911b604482015290519081900360640190fd5b60ff81166000908152600a60205260409020546001600160401b03838116911614611aee5760ff81166000908152600a60205260409020805467ffffffffffffffff19166001600160401b0384161790555b600b5460ff1615611b32576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b60608e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060608d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509050611c766110036001600160a01b031663cba510a98e6040518263ffffffff1660e01b815260040180826001600160401b03166001600160401b0316815260200191505060206040518083038186803b158015611c1f57600080fd5b505afa158015611c33573d6000803e3d6000fd5b505050506040513d6020811015611c4957600080fd5b505160408051808201909152600381526269626360e81b6020820152611c6f8e8e613f45565b8585613f8d565b611cbe576040805162461bcd60e51b815260206004820152601460248201527334b73b30b634b21036b2b935b63290383937b7b360611b604482015290519081900360640190fd5b60408051631bb5062960e31b81526001600160401b038e16600482015290516000916110039163dda8314891602480820192602092909190829003018186803b158015611d0a57600080fd5b505afa158015611d1e573d6000803e3d6000fd5b505050506040513d6020811015611d3457600080fd5b505190508b8b600080806060611d4989614438565b935093509350935083611e0b578460ff16866001600160401b03167ff7b2e42d694eb1100184aae86d4245d9e46966100b1dc7e723275b98326854ac8b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015611dc3578181015183820152602001611dab565b50505050905090810190601f168015611df05780820380516001836020036101000a031916815260200191505b509250505060405180910390a3505050505050505050612a26565b6040805160ff85811682529151918716916001600160401b038916917f36afdaf439a8f43fe72135135d804ae620b37a474f0943b5b85f6788312cad40919081900360200190a360ff83166123905760ff85166000818152600560209081526040808320548151631182b87560e01b815260048101958652602481019283528651604482015286516001600160a01b03909216958695631182b875958d958a9593949093606490910192918601918190849084905b83811015611ed8578181015183820152602001611ec0565b50505050905090810190601f168015611f055780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b158015611f2557600080fd5b505af192505050801561200957506040513d6000823e601f3d908101601f191682016040526020811015611f5857600080fd5b8101908080516040519392919084600160201b821115611f7757600080fd5b908301906020820185811115611f8c57600080fd5b8251600160201b811182820188101715611fa557600080fd5b82525081516020918201929091019080838360005b83811015611fd2578181015183820152602001611fba565b50505050905090810190601f168015611fff5780820380516001836020036101000a031916815260200191505b5060405250505060015b61231b576040516000815260443d1015612025575060006120c0565b60046000803e60005160e01c6308c379a081146120465760009150506120c0565b60043d036004833e81513d60248201116001600160401b0382111715612071576000925050506120c0565b80830180516001600160401b038111156120925760009450505050506120c0565b8060208301013d86018111156120b0576000955050505050506120c0565b601f01601f191660405250925050505b806120cb57506121dd565b60ff8716600090815260076020526040812054612102916001600160401b039091169089906120fd906002908861131c565b6144e8565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf948794849390840192918601918190849084905b8381101561219d578181015183820152602001612185565b50505050905090810190601f1680156121ca5780820380516001836020036101000a031916815260200191505b509250505060405180910390a250612316565b3d808015612207576040519150601f19603f3d011682016040523d82523d6000602084013e61220c565b606091505b5060ff871660009081526007602052604081205461223f916001600160401b039091169089906120fd906002908861131c565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351948794849390840192918601918190849084905b838110156122da5781810151838201526020016122c2565b50505050905090810190601f1680156123075780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b61238a565b8051156123885760ff8716600090815260076020526040812054612354916001600160401b039091169089906120fd906001908661131c565b60ff8716600090815260076020526040902080546001600160401b038082166001011667ffffffffffffffff199091161790555b505b5061295e565b60ff8316600114156126345760ff8516600081815260056020908152604080832054815163831d65d160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563831d65d1958d958a9593949093606490910192918601918190849084905b8381101561241a578181015183820152602001612402565b50505050905090810190601f1680156124475780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561246757600080fd5b505af1925050508015612478575060015b61238a576040516000815260443d10156124945750600061252f565b60046000803e60005160e01c6308c379a081146124b557600091505061252f565b60043d036004833e81513d60248201116001600160401b03821117156124e05760009250505061252f565b80830180516001600160401b0381111561250157600094505050505061252f565b8060208301013d860181111561251f5760009550505050505061252f565b601f01601f191660405250925050505b8061253a575061259f565b60408051602080825283518183015283516001600160a01b038616937ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf938693909283928301918501908083836000831561219d578181015183820152602001612185565b3d8080156125c9576040519150601f19603f3d011682016040523d82523d6000602084013e6125ce565b606091505b5060408051602080825283518183015283516001600160a01b038616937f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd297735193869390928392830191850190808383600083156122da5781810151838201526020016122c2565b60ff83166002141561295e5760ff8516600081815260056020908152604080832054815163c8509d8160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563c8509d81958d958a9593949093606490910192918601918190849084905b838110156126be5781810151838201526020016126a6565b50505050905090810190601f1680156126eb5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561270b57600080fd5b505af192505050801561271c575060015b61295c576040516000815260443d1015612738575060006127d3565b60046000803e60005160e01c6308c379a081146127595760009150506127d3565b60043d036004833e81513d60248201116001600160401b0382111715612784576000925050506127d3565b80830180516001600160401b038111156127a55760009450505050506127d3565b8060208301013d86018111156127c3576000955050505050506127d3565b601f01601f191660405250925050505b806127de5750612887565b816001600160a01b03167ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf826040518080602001828103825283818151815260200191508051906020019080838360005b8381101561284757818101518382015260200161282f565b50505050905090810190601f1680156128745780820380516001836020036101000a031916815260200191505b509250505060405180910390a25061295c565b3d8080156128b1576040519150601f19603f3d011682016040523d82523d6000602084013e6128b6565b606091505b50816001600160a01b03167f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351826040518080602001828103825283818151815260200191508051906020019080838360005b83811015612920578181015183820152602001612908565b50505050905090810190601f16801561294d5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b505b60ff80861660009081526009602052604090205461100591636f93d2e6918a91339187911680612990575060ff881615155b604080516001600160e01b031960e088901b1681526001600160a01b039586166004820152939094166024840152604483019190915215156064820152905160848083019260209291908290030181600087803b1580156129f057600080fd5b505af1158015612a04573d6000803e3d6000fd5b505050506040513d6020811015612a1a57600080fd5b50505050505050505050505b5050505050505050505050505050565b630100380081565b600981565b61100781565b61100681565b60005460ff1681565b3361100714612a985760405162461bcd60e51b815260040180806020018281038252602e815260200180614978602e913960400191505060405180910390fd5b600b5460ff1615612adc576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b612b4584848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526012815271626174636853697a65466f724f7261636c6560701b602082015291506146829050565b15612be057604080516020601f8401819004810282018101909252828152600091612b889185858083850183828082843760009201919091525061476992505050565b90506127108111158015612b9d5750600a8110155b612bd85760405162461bcd60e51b8152600401808060200182810382526032815260200180614a1a6032913960400191505060405180910390fd5b60015561348a565b612c4984848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601281527118591913dc955c19185d1950da185b9b995b60721b602082015291506146829050565b15612dd157606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060169091149050612ccc5760405162461bcd60e51b815260040180806020018281038252605a815260200180614891605a913960600191505060405180910390fd5b60018101516002820151601683015160ff82161590612cea8161476e565b612d3b576040805162461bcd60e51b815260206004820152601960248201527f61646472657373206973206e6f74206120636f6e747261637400000000000000604482015290519081900360640190fd5b60ff8416600081815260056020908152604080832080546001600160a01b0319166001600160a01b038716908117909155808452600683528184208585528352818420805460ff199081166001179091556009909352818420805490931687151517909255519092917f7e3b6af43092577ee20e60eaa1d9b114a7031305c895ee7dd3ffe17196d2e1e091a3505050505061348a565b612e3e84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526016815275195b98589b1953dc911a5cd8589b1950da185b9b995b60521b602082015291506146829050565b15612f6f57606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060029091149050612ec15760405162461bcd60e51b815260040180806020018281038252604a8152602001806149a6604a913960600191505060405180910390fd5b600181810151600283015160ff80831660009081526005602052604090205492939192908316909114906001600160a01b03168015612f65576001600160a01b038116600090815260066020908152604080832060ff881680855290835292819020805460ff1916861515908117909155815190815290517fa3132e3f9819fbddc7f0ed6d38d7feef59aa95112090b7c592f5cb5bc4aa4adc929181900390910190a25b505050505061348a565b612fd384848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c73757370656e6451756f72756d60981b602082015291506146829050565b1561310857600281146130175760405162461bcd60e51b815260040180806020018281038252602d81526020018061491f602d913960400191505060405180910390fd5b600061305a600284848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061476992505050565b905060008161ffff16118015613074575060648161ffff16105b6130be576040805162461bcd60e51b8152602060048201526016602482015275696e76616c69642073757370656e642071756f72756d60501b604482015290519081900360640190fd5b604080516f14d554d411539117d41493d413d4d05360821b815281519081900360100190206000908152600d60205220805461ffff90921661ffff1990921691909117905561348a565b61316b84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600c81526b72656f70656e51756f72756d60a01b602082015291506146829050565b1561329e57600281146131af5760405162461bcd60e51b815260040180806020018281038252602c81526020018061494c602c913960400191505060405180910390fd5b60006131f2600284848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061476992505050565b905060008161ffff1611801561320c575060648161ffff16105b613255576040805162461bcd60e51b8152602060048201526015602482015274696e76616c69642072656f70656e2071756f72756d60581b604482015290519081900360640190fd5b604080516e149153d4115397d41493d413d4d053608a1b8152815190819003600f0190206000908152600d60205220805461ffff90921661ffff1990921691909117905561348a565b61330984848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601481527363616e63656c5472616e7366657251756f72756d60601b602082015291506146829050565b1561344d576002811461334d5760405162461bcd60e51b81526004018080602001828103825260348152602001806148eb6034913960400191505060405180910390fd5b6000613390600284848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061476992505050565b905060008161ffff161180156133aa575060648161ffff16105b6133fb576040805162461bcd60e51b815260206004820152601e60248201527f696e76616c69642063616e63656c207472616e736665722071756f72756d0000604482015290519081900360640190fd5b604080517710d05390d15317d514905394d1915497d41493d413d4d05360421b815281519081900360180190206000908152600d60205220805461ffff90921661ffff1990921691909117905561348a565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b6008602052600090815260409020546001600160401b031681565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081565b61100281565b60005460ff166135a6576040805162461bcd60e51b81526020600482015260196024820152600080516020614a4c833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b1580156135e957600080fd5b505afa1580156135fd573d6000803e3d6000fd5b505050506040513d602081101561361357600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b15801561365457600080fd5b505afa158015613668573d6000803e3d6000fd5b505050506040513d602081101561367e57600080fd5b505190508061368b575060155b60008211801561369b5750808211155b6136da576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b600b5460ff16613721576040805162461bcd60e51b815260206004820152600d60248201526c1b9bdd081cdd5cdc195b991959609a1b604482015290519081900360640190fd5b604080516e149153d4115397d41493d413d4d053608a1b8152905190819003600f019020600090613772907fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470614153565b905080156137b057600b805460ff1916905560405133907f899fe8c37dc61708a3aaa99c4bf143346c1d1da69af79be9e8920c0a6785b75290600090a25b505050565b600660209081526000928352604080842090915290825290205460ff1681565b6040518060400160405280600381526020016269626360e81b81525081565b610e1081565b61100381565b60005460ff1615613858576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b7f1471eb6eb2c5e789fc3de43f8ce62938c7d1836ec861730447e2ada8fd81017b80546001600160a01b0319908116611008179091557f92e85d02570a8092d09a6e3a57665bc3815a2699a4074001bf1ccabf660f5a36805460ff199081169091557fd8af288fc1c8680b4f4706064cf021e264efb6828fcaf7eb5ca36818eb365bcc8054821660019081179091557f89832631fb3c3307a103ba2c84ab569c64d6182a18893dcd163f0f1c2090733a805484166110049081179091557f6cde3cea4b3a3fb2488b2808bae7556f4a405e50f65e1794383bc026131b13c38054841690557f72e4efa1513b071517c6c74dba31b5934a81aa83cddd400e7081df5529c9943680548416831790557fa9bc9a3a348c357ba16b37005d7e6b3236198c0e939f4af8c5f19b8deeb8ebc08054851690911790557fc575c31fea594a6eb97c8e9d3f9caee4c16218c6ef37e923234c0fe9014a61e78054831690557f4e523af77f034e9810f1c94057f5e931fb3d16a51511a4c3add793617d18610580548316821790557ffb33122aa9f93cc639ebe80a7bc4784c11e6053dde89c6f4f7e268c6a623da1e805484166110001790557fc7694af312c4f286114180fd0ba6a52461fcee8a381636770b19a343af92538a80548316821790557f01112dd68e482ba8d68a7e828cff8b3abcea08eab88941953c180a7e650e9cd480548316821790557fc0a4a8be475dfebc377ebef2d7c4ff47656f572a08dd92b81017efcdba0febe1805484166110071790557f87e8a52529e8ece4ef759037313542a6429ff494a9fab9027fb79db90124eba680548316821790557f4c7666bbcb22d46469f7cc282f70764a7012dca2cce630ff8d83db9a9cdd48f080548316821790557f40f28f99a40bc9f6beea1013afdbc3cdcc689eb76b82c4de06c0acf1e1932ed58054909316611001179092557f0d9cf2cd531699eed8dd34e40ff2884a14a698c4898184fba85194e6f6772d248054821683179055600b60009081527f23f68c9bd22b8a93d06adabe17481c87c016bcbd20adc8bfd707a4d813a572176020527fdf0d5d05428057f5455c2dc8e810dd86d1e9350faa72f16bda8a45443c5b39328054831684179055603283556004805467ffffffffffffffff19166001600160401b031790556002819055600381905580549091169091179055565b6007602052600090815260409020546001600160401b031681565b60005460ff16613c17576040805162461bcd60e51b81526020600482015260196024820152600080516020614a4c833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b158015613c5a57600080fd5b505afa158015613c6e573d6000803e3d6000fd5b505050506040513d6020811015613c8457600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b158015613cc557600080fd5b505afa158015613cd9573d6000803e3d6000fd5b505050506040513d6020811015613cef57600080fd5b5051905080613cfc575060155b600082118015613d0c5750808211155b613d4b576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b600b5460ff1615613d8f576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b604080516f14d554d411539117d41493d413d4d05360821b81529051908190036010019020600090613de1907fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470614153565b905080156137b0576137b061408a565b60005460ff16613e36576040805162461bcd60e51b81526020600482015260196024820152600080516020614a4c833981519152604482015290519081900360640190fd5b33600090815260066020908152604080832060ff8089168552925290912054859116613e935760405162461bcd60e51b81526004018080602001828103825260318152602001806148606031913960400191505060405180910390fd5b60ff85166000908152600760209081526040808320548151601f88018490048402810184019092528682526001600160401b031692613ef89284928a926120fd92909189918c908c908190840183828082843760009201919091525061131c92505050565b60ff959095166000908152600760205260409020805467ffffffffffffffff191660019096016001600160401b03169590951790945550505050565b61100081565b600381565b61100481565b60408051600e808252818301909252606091630100380060ff851617918391602082018180368337505050600e81810187905260068201939093529182525090505b92915050565b600085613f9c57506000614081565b606082518451865160800101016040519080825280601f01601f191660200182016040528015613fd3576020820181803683370190505b5090506000613fe182614774565b602080890151825201905086600080613ff989614108565b8086526020909501949092509050614012828583614112565b9283019261401f88614108565b8086526020909501949092509050614038828583614112565b9283018a81526020019261404b87614108565b909250905061405b828583614112565b50835160200161406961477a565b60208183886065600019fa5051600114955050505050505b95945050505050565b600b5460ff16156140ce576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b600b805460ff1916600117905560405133907f6f123d3d54c84a7960a573b31c221dcd86e13fd849c5adb0c6ca851468cc1ae490600090a2565b8051602090910191565b5b60208110614132578251825260209283019290910190601f1901614113565b915181516020939093036101000a6000190180199091169216919091179052565b6000828152600d602052604081205461ffff1661421c57604080516f14d554d411539117d41493d413d4d05360821b815281519081900360100181206000908152600d6020818152848320805461ffff199081166001179091556e149153d4115397d41493d413d4d053608a1b8552855194859003600f01852084528282528584208054821660029081179091557710d05390d15317d514905394d1915497d41493d413d4d05360421b8652865195869003601801909520845291905292902080549092161790555b6000838152600c6020526040902080546201000090046001600160801b03164210158061424d575082816001015414155b15614320576000848152600d602090815260409182902054835461ffff90911661ffff199091161771ffffffffffffffffffffffffffffffff0000191662010000610e1042016001600160801b031602178355600180840186905582519182019092523381526142c291600284019190614798565b5080546040805161ffff83168152620100009092046001600160801b0316602083015281810185905251339186917f9e109f0e55ef32e99e4880be2ec357f1ddb3469c79d0747ef4762da6e89fabe5916060908290030190a36143d4565b60005b60028201548110156143ab57336001600160a01b031682600201828154811061434857fe5b6000918252602090912001546001600160a01b031614156143a3576040805162461bcd60e51b815260206004820152601060248201526f185b1c9958591e48185c1c1c9bdd995960821b604482015290519081900360640190fd5b600101614323565b50600281018054600181018255600091825260209091200180546001600160a01b031916331790555b8054600282015461ffff9091161161442e576000848152600c60205260408120805471ffffffffffffffffffffffffffffffffffff19168155600181018290559061442260028301826147fd565b50506001915050613f87565b5060009392505050565b600080600060606021855110156144685750506040805160008082526020820190925290925082915081906144e1565b600185015160218601518651604080516020198301808252601f19600119909401939093168101602001909152604189019392916060919080156144b3576020820181803683370190505b50905060006144c182614108565b5090506144d3858260218d5103614112565b506001975091955093509150505b9193509193565b600b5460ff161561452c576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b60025443111561456b576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b1617909155600355436002556145ac565b600380546001908101918290555410156145ac576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b16179091556003555b8160ff16836001600160401b0316600460009054906101000a900460070b6001600160401b03167f3a6e0fc61675aa2a100bcba0568368bb92bcec91c97673391074f11138f0cffe603885604051808361ffff1661ffff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561464257818101518382015260200161462a565b50505050905090810190601f16801561466f5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a4505050565b6000816040516020018082805190602001908083835b602083106146b75780518252601f199092019160209182019101614698565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106147255780518252601f199092019160209182019101614706565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b3b151590565b60200190565b60405180602001604052806001906020820280368337509192915050565b8280548282559060005260206000209081019282156147ed579160200282015b828111156147ed57825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906147b8565b506147f992915061481e565b5090565b508054600082559060005260206000209081019061481b9190614845565b50565b61484291905b808211156147f95780546001600160a01b0319168155600101614824565b90565b61484291905b808211156147f9576000815560010161484b56fe74686520636f6e747261637420616e64206368616e6e656c2068617665206e6f74206265656e20726567697374657265646c656e677468206f662076616c756520666f72206164644f725570646174654368616e6e656c2073686f756c642062652032322c206368616e6e656c49643a697346726f6d53797374656d3a68616e646c6572416464726573736c656e677468206f662076616c756520666f722063616e63656c5472616e7366657251756f72756d2073686f756c6420626520326c656e677468206f662076616c756520666f722073757370656e6451756f72756d2073686f756c6420626520326c656e677468206f662076616c756520666f722072656f70656e51756f72756d2073686f756c642062652032746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662076616c756520666f7220656e61626c654f7244697361626c654368616e6e656c2073686f756c6420626520322c206368616e6e656c49643a6973456e61626c65746865206d73672073656e646572206973206e6f7420612077686974656c6162656c2072656c61796572746865206e6577426174636853697a65466f724f7261636c652073686f756c6420626520696e205b31302c2031303030305d74686520636f6e7472616374206e6f7420696e697420796574000000000000006c6967687420636c69656e74206e6f742073796e632074686520626c6f636b20796574a264697066735822122041ff13fe956e0a3b951862bdc1d377a102e361a8960c89b2a595749204aba3ed64736f6c63430006040033" + } + }, + "29020050": { + "0x0000000000000000000000000000000000001000": { + "balance": "0x0", + "code": "0x60806040526004361061046c5760003560e01c8063862498821161024a578063c6d3394511610139578063e40716a1116100b6578063f9a2bbc71161007a578063f9a2bbc714610b6b578063fc3e590814610b80578063fccc281314610b95578063fd4ad81f14610baa578063fd6a687914610bd957610473565b8063e40716a114610af9578063eb57e20214610b0e578063eda5868c14610b2e578063f340fa0114610b43578063f92eb86b14610b5657610473565b8063d86222d5116100fd578063d86222d514610a90578063daacdb6614610aa5578063dc927faf14610aba578063e086c7b114610acf578063e1c7392a14610ae457610473565b8063c6d3394514610a3c578063c81b166214610a51578063c8509d811461085f578063d04aa99614610a66578063d68fb56a14610a7b57610473565b8063a5422d5c116101c7578063ad3c9da61161018b578063ad3c9da6146109d0578063aef198a9146109f0578063b7ab4db514610a05578063b8cf4ef114610a27578063bf9f49951461062f57610473565b8063a5422d5c1461095c578063a78abc1614610971578063aaf5eb6814610986578063ab51bb961461099b578063ac431751146109b057610473565b806396713da91161020e57806396713da9146108f35780639dc09262146109085780639fe0f8161461091d578063a0dc275814610932578063a1a11bf51461094757610473565b8063862498821461087f57806388b32f11146108945780638b5ad0c9146108a95780638d19a410146108be5780639369d7de146108de57610473565b80634df6e0c3116103665780636e47b482116102e35780637942fd05116102a75780637942fd05146108205780637a84ca2a1461083557806381650b621461084a578063831d65d11461085f578063853230aa1461080b57610473565b80636e47b482146107b757806370fd5bad146107cc578063718a8aa8146107e157806375d47a0a146107f657806378dfed4a1461080b57610473565b8063565c56b31161032a578063565c56b3146107265780635667515a146107465780635d77156c1461075b57806362b72cf5146107705780636969a25c1461078557610473565b80634df6e0c3146106b25780635192c82c146106c757806351e80672146106dc578063549b03f2146106f157806355614fcc1461070657610473565b8063321d398a116103f45780633dffc387116103b85780633dffc3871461062f57806343756e5c1461065157806345cf9daf14610666578063493279b11461067b5780634bf6c8821461069d57610473565b8063321d398a146105975780633365af3a146105b757806335409f7f146105d75780633b071dcc146105f75780633de0f0d81461061a57610473565b80631182b8751161043b5780631182b875146104fe578063152ad3b81461052b5780631ff180691461054d578063219f22d514610562578063300c35671461057757610473565b806304c4fec61461047857806307a568471461048f5780630bee7a67146104ba5780630e2374a5146104dc57610473565b3661047357005b600080fd5b34801561048457600080fd5b5061048d610bee565b005b34801561049b57600080fd5b506104a4610c60565b6040516104b19190616ef0565b60405180910390f35b3480156104c657600080fd5b506104cf610c66565b6040516104b19190616f1a565b3480156104e857600080fd5b506104f1610c6b565b6040516104b191906162f7565b34801561050a57600080fd5b5061051e6105193660046161dd565b610c71565b6040516104b1919061646e565b34801561053757600080fd5b50610540610ea9565b6040516104b19190616463565b34801561055957600080fd5b506104a4610eb2565b34801561056e57600080fd5b506104cf610eb8565b34801561058357600080fd5b5061048d6105923660046160a6565b610ebd565b3480156105a357600080fd5b506105406105b236600461618a565b611241565b3480156105c357600080fd5b506105406105d236600461618a565b611310565b3480156105e357600080fd5b5061048d6105f236600461607f565b6113c1565b34801561060357600080fd5b5061060c61151a565b6040516104b1929190616379565b34801561062657600080fd5b506104a46117f6565b34801561063b57600080fd5b506106446117fc565b6040516104b19190616f2b565b34801561065d57600080fd5b506104f1611801565b34801561067257600080fd5b506104a4611807565b34801561068757600080fd5b5061069061180d565b6040516104b19190616ee1565b3480156106a957600080fd5b50610644611812565b3480156106be57600080fd5b5061060c611817565b3480156106d357600080fd5b506104a4611995565b3480156106e857600080fd5b506104f161199b565b3480156106fd57600080fd5b506104a46119a1565b34801561071257600080fd5b5061054061072136600461607f565b6119a7565b34801561073257600080fd5b506104a461074136600461607f565b6119dc565b34801561075257600080fd5b50610644611a2d565b34801561076757600080fd5b506104cf611a32565b34801561077c57600080fd5b506104a4611a37565b34801561079157600080fd5b506107a56107a036600461618a565b611a3d565b6040516104b196959493929190616324565b3480156107c357600080fd5b506104f1611aa1565b3480156107d857600080fd5b50610644611aa7565b3480156107ed57600080fd5b50610644611aac565b34801561080257600080fd5b506104f1611ab1565b34801561081757600080fd5b506104a4611ab7565b34801561082c57600080fd5b50610644611abd565b34801561084157600080fd5b506104a4611ac2565b34801561085657600080fd5b506104cf611ac8565b34801561086b57600080fd5b5061048d61087a3660046161dd565b611acd565b34801561088b57600080fd5b506104a4611b2e565b3480156108a057600080fd5b506104a4611b34565b3480156108b557600080fd5b506104a4611b3a565b3480156108ca57600080fd5b506104a46108d936600461607f565b611b40565b3480156108ea57600080fd5b5061048d611b80565b3480156108ff57600080fd5b50610644611c94565b34801561091457600080fd5b506104f1611c99565b34801561092957600080fd5b506104a4611c9f565b34801561093e57600080fd5b506104a4611ca4565b34801561095357600080fd5b506104f1611ca9565b34801561096857600080fd5b5061051e611caf565b34801561097d57600080fd5b50610540611cce565b34801561099257600080fd5b506104a4611cd7565b3480156109a757600080fd5b506104cf611a2d565b3480156109bc57600080fd5b5061048d6109cb36600461612e565b611ce0565b3480156109dc57600080fd5b506104a46109eb36600461607f565b61258c565b3480156109fc57600080fd5b506104a461259e565b348015610a1157600080fd5b50610a1a6125ab565b6040516104b19190616366565b348015610a3357600080fd5b506104a4612697565b348015610a4857600080fd5b506104a4611aa7565b348015610a5d57600080fd5b506104f161269c565b348015610a7257600080fd5b506104a46126a2565b348015610a8757600080fd5b506104a46126a7565b348015610a9c57600080fd5b506104a46126e6565b348015610ab157600080fd5b506104a46126f2565b348015610ac657600080fd5b506104f16126f8565b348015610adb57600080fd5b506104a46126fe565b348015610af057600080fd5b5061048d612703565b348015610b0557600080fd5b506104a46128b2565b348015610b1a57600080fd5b5061048d610b2936600461607f565b6128b8565b348015610b3a57600080fd5b506104cf6129c0565b61048d610b5136600461607f565b6129c5565b348015610b6257600080fd5b506104a4612c4d565b348015610b7757600080fd5b506104f1612c53565b348015610b8c57600080fd5b50610644611c9f565b348015610ba157600080fd5b506104f1612c59565b348015610bb657600080fd5b50610bca610bc536600461618a565b612c5f565b6040516104b193929190616ef9565b348015610be557600080fd5b506104f1612d21565b6000610bf933611b40565b9050600b8181548110610c0857fe5b600091825260209091206001601690920201015460ff16610c445760405162461bcd60e51b8152600401610c3b90616b99565b60405180910390fd5b6000610c4e6126a7565b9050610c5b338383612d27565b505050565b60095481565b606481565b61200181565b60005460609060ff16610c965760405162461bcd60e51b8152600401610c3b9061662d565b3361200014610cb75760405162461bcd60e51b8152600401610c3b90616d78565b600b54610d7557610cc6615d6b565b60015460005b81811015610d7157600b80546001810182556000919091528351600080516020616fa383398151915260169092029182019081556020808601516000805160206175d28339815191528401805460ff1916911515919091179055604086015180518794610d4d93600080516020616fc3833981519152909101920190615d9a565b506060820151610d639060038301906013615e14565b505050806001019050610ccc565b5050505b610d7d615e41565b6000610dbe85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612f1392505050565b9150915080610dda57610dd160646130cf565b92505050610ea2565b815160009060ff16610dff57610df883602001518460400151613130565b9050610e6e565b825160ff1660011415610e6a57826020015151600114610e4457600080516020616f83833981519152604051610e3490616a80565b60405180910390a1506067610e65565b610df88360200151600081518110610e5857fe5b6020026020010151613d84565b610e6e565b5060655b63ffffffff8116610e935750506040805160008152602081019091529150610ea29050565b610e9c816130cf565b93505050505b9392505050565b60075460ff1681565b60035481565b606881565b334114610edc5760405162461bcd60e51b8152600401610c3b90616dc7565b6010544311610efd5760405162461bcd60e51b8152600401610c3b90616789565b60005460ff16610f1f5760405162461bcd60e51b8152600401610c3b9061662d565b600f54610f37576032600f5561100231601155611237565b60006110023168056bc75e2d63100000811115610f6657610f5f81606463ffffffff613efb16565b9150610faf565b601154811115610fa857610f5f6064610f9c600f54610f9060115486613f3d90919063ffffffff16565b9063ffffffff613f7f16565b9063ffffffff613efb16565b5050611237565b6040516309a99b4f60e41b815261100290639a99b4f090610fd6903090869060040161630b565b602060405180830381600087803b158015610ff057600080fd5b505af1158015611004573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061102891906161a2565b6110023160115591508161103d575050611237565b6000805b8481101561106b5785858281811061105557fe5b9050602002013582019150806001019050611041565b508061107957505050611237565b6000806000805b8981101561122f578489898381811061109557fe5b905060200201358802816110a557fe5b0493508a8a828181106110b457fe5b90506020020160208101906110c9919061607f565b6001600160a01b038116600090815260046020526040902054909350915081156111e55760006001808403815481106110fe57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff161561116b57836001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d858660405161115e9190616ef0565b60405180910390a26111df565b60035461117e908663ffffffff613fb916565b6003908155810154611196908663ffffffff613fb916565b60038201556040516001600160a01b038516907fcb0aad6cf9cd03bdf6137e359f541c42f38b39f007cae8e89e88aa7d8c6617b2906111d6908890616ef0565b60405180910390a25b50611227565b826001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d858560405161121e9190616ef0565b60405180910390a25b600101611080565b505050505050505b5050436010555050565b60015460009082106112555750600061130b565b60006001600160a01b03166001838154811061126d57fe5b60009182526020909120600490910201546001600160a01b0316148061129d5750600854158061129d5750600a54155b806112ac575060085460095410155b806112bd57506112bb82611310565b155b806112e657506000600b83815481106112d257fe5b906000526020600020906016020160000154115b806112fa575060016112f66125ab565b5111155b156113075750600061130b565b5060015b919050565b60015460009082106113245750600061130b565b600b548210611361576001828154811061133a57fe5b9060005260206000209060040201600201601c9054906101000a900460ff1615905061130b565b6001828154811061136e57fe5b9060005260206000209060040201600201601c9054906101000a900460ff161580156113bb5750600b82815481106113a257fe5b600091825260209091206001601690920201015460ff16155b92915050565b33611001146113e25760405162461bcd60e51b8152600401610c3b90616e98565b600b546114a0576113f1615d6b565b60015460005b8181101561149c57600b80546001810182556000919091528351600080516020616fa383398151915260169092029182019081556020808601516000805160206175d28339815191528401805460ff191691151591909117905560408601518051879461147893600080516020616fc3833981519152909101920190615d9a565b50606082015161148e9060038301906013615e14565b5050508060010190506113f7565b5050505b6001600160a01b038116600090815260046020526040902054806114c45750611517565b6001810390506000600b82815481106114d957fe5b600091825260209091206001601690920201015460ff1690506114fc8383613fde565b80156115055750805b15610c5b576009805460001901905550505b50565b60015460609081906000805b8281101561156d576001818154811061153b57fe5b9060005260206000209060040201600201601c9054906101000a900460ff16611565576001909101905b600101611526565b5060608160405190808252806020026020018201604052801561159a578160200160208202803683370190505b5090506060826040519080825280602002602001820160405280156115d357816020015b60608152602001906001900390816115be5790505b50600b546000945090915084141561174e5760005b8481101561174857600181815481106115fd57fe5b9060005260206000209060040201600201601c9054906101000a900460ff16611740576001818154811061162d57fe5b600091825260209091206004909102015483516001600160a01b039091169084908690811061165857fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600b818154811061168557fe5b600091825260209182902060026016909202018101805460408051601f60001961010060018616150201909316949094049182018590048502840185019052808352919290919083018282801561171d5780601f106116f25761010080835404028352916020019161171d565b820191906000526020600020905b81548152906001019060200180831161170057829003601f168201915b505050505082858151811061172e57fe5b60209081029190910101526001909301925b6001016115e8565b506117ea565b60005b848110156117e8576001818154811061176657fe5b9060005260206000209060040201600201601c9054906101000a900460ff166117e0576001818154811061179657fe5b600091825260209091206004909102015483516001600160a01b03909116908490869081106117c157fe5b6001600160a01b03909216602092830291909101909101526001909301925b600101611751565b505b909450925050505b9091565b61271081565b600181565b61100181565b60085481565b603881565b600881565b600e54600c5460609182918061182b575060155b60606118356125ab565b9050606061184282614391565b9050828251116118595790945092506117f2915050565b8383835103101561186b578282510393505b83156118a15760c8430461188783838388880360008a8a6144ff565b61189f8383838888038989038a8b8b8b5103016144ff565b505b6060836040519080825280602002602001820160405280156118cd578160200160208202803683370190505b50905060608460405190808252806020026020018201604052801561190657816020015b60608152602001906001900390816118f15790505b50905060005b858110156119875784818151811061192057fe5b602002602001015183828151811061193457fe5b60200260200101906001600160a01b031690816001600160a01b03168152505083818151811061196057fe5b602002602001015182828151811061197457fe5b602090810291909101015260010161190c565b509096509450505050509091565b60065481565b61200081565b600f5481565b6001600160a01b038116600090815260046020526040812054806119cf57600091505061130b565b60001901610ea281611310565b6001600160a01b03811660009081526004602052604081205480611a0457600091505061130b565b600180820381548110611a1357fe5b906000526020600020906004020160030154915050919050565b600081565b606781565b60105481565b60018181548110611a4a57fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b601081565b61100881565b6103e881565b600b81565b600c5481565b606681565b3361200014611aee5760405162461bcd60e51b8152600401610c3b90616d78565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051611b2193929190616f39565b60405180910390a1505050565b60025481565b60115481565b600a5481565b6001600160a01b03811660009081526004602052604081205480611b765760405162461bcd60e51b8152600401610c3b90616d00565b6000190192915050565b600b54611c3e57611b8f615d6b565b60015460005b81811015611c3a57600b80546001810182556000919091528351600080516020616fa383398151915260169092029182019081556020808601516000805160206175d28339815191528401805460ff1916911515919091179055604086015180518794611c1693600080516020616fc3833981519152909101920190615d9a565b506060820151611c2c9060038301906013615e14565b505050806001019050611b95565b5050505b600854611c4b5760036008555b600a54611c58576002600a555b6000611c6333611b40565b9050611c6e81611241565b611c8a5760405162461bcd60e51b8152600401610c3b90616a3d565b6115173382614656565b600981565b61100781565b600381565b60c881565b61100681565b6040518061062001604052806105ef8152602001616fe36105ef913981565b60005460ff1681565b6402540be40081565b60005460ff16611d025760405162461bcd60e51b8152600401610c3b9061662d565b3361100714611d235760405162461bcd60e51b8152600401610c3b90616b06565b611d8d84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b602082015291506146ee9050565b15611e2a5760208114611db25760405162461bcd60e51b8152600401610c3b90616cba565b604080516020601f8401819004810282018101909252828152600091611df09185858083850183828082843760009201919091525061474792505050565b905060648110158015611e065750620186a08111155b611e225760405162461bcd60e51b8152600401610c3b906168e6565b600255612549565b611e8a84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260098152686275726e526174696f60b81b602082015291506146ee9050565b15611f265760208114611eaf5760405162461bcd60e51b8152600401610c3b906164b3565b604080516020601f8401819004810282018101909252828152600091611eed9185858083850183828082843760009201919091525061474792505050565b9050612710811115611f115760405162461bcd60e51b8152600401610c3b906167cb565b6006556007805460ff19166001179055612549565b611f9084848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260138152726d61784e756d4f664d61696e7461696e696e6760681b602082015291506146ee9050565b1561202a5760208114611fb55760405162461bcd60e51b8152600401610c3b906164ea565b604080516020601f8401819004810282018101909252828152600091611ff39185858083850183828082843760009201919091525061474792505050565b600c5490915080612002575060155b8082106120215760405162461bcd60e51b8152600401610c3b9061683e565b50600855612549565b61209384848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61696e7461696e536c6173685363616c6560701b602082015291506146ee9050565b1561212c57602081146120b85760405162461bcd60e51b8152600401610c3b906165b3565b604080516020601f84018190048102820181019092528281526000916120f69185858083850183828082843760009201919091525061474792505050565b90506000811180156121085750600a81105b6121245760405162461bcd60e51b8152600401610c3b90616e14565b600a55612549565b6121a084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601981527f6d61784e756d4f66576f726b696e6743616e6469646174657300000000000000602082015291506146ee9050565b1561222f57602081146121c55760405162461bcd60e51b8152600401610c3b90616567565b604080516020601f84018190048102820181019092528281526000916122039185858083850183828082843760009201919091525061474792505050565b9050600d548111156122275760405162461bcd60e51b8152600401610c3b9061695c565b600e55612549565b61229884848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61784e756d4f6643616e6469646174657360701b602082015291506146ee9050565b1561231a57602081146122bd5760405162461bcd60e51b8152600401610c3b90616b54565b604080516020601f84018190048102820181019092528281526000916122fb9185858083850183828082843760009201919091525061474792505050565b600d819055600e5490915081101561231457600d54600e555b50612549565b61237e84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c6e756d4f66436162696e65747360981b602082015291506146ee9050565b1561242c57602081146123a35760405162461bcd60e51b8152600401610c3b906165f8565b604080516020601f84018190048102820181019092528281526000916123e19185858083850183828082843760009201919091525061474792505050565b9050600081116124035760405162461bcd60e51b8152600401610c3b9061669b565b60298111156124245760405162461bcd60e51b8152600401610c3b906166e3565b600c55612549565b61249684848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601381527266696e616c697479526577617264526174696f60681b602082015291506146ee9050565b1561253157602081146124bb5760405162461bcd60e51b8152600401610c3b90616c3d565b604080516020601f84018190048102820181019092528281526000916124f99185858083850183828082843760009201919091525061474792505050565b90506001811015801561250d575060648111155b6125295760405162461bcd60e51b8152600401610c3b906169cb565b600f55612549565b60405162461bcd60e51b8152600401610c3b90616e71565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a8484848460405161257e9493929190616481565b60405180910390a150505050565b60046020526000908152604090205481565b68056bc75e2d6310000081565b6001546060906000805b828110156125da576125c681611310565b156125d2578160010191505b6001016125b5565b50606081604051908082528060200260200182016040528015612607578160200160208202803683370190505b5090506000915060005b8381101561268e5761262281611310565b15612686576001818154811061263457fe5b600091825260209091206004909102015482516001600160a01b039091169083908590811061265f57fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508260010192505b600101612611565b50925050505b90565b601581565b61100281565b603281565b60006126b16125ab565b519050600080600c54116126c65760156126ca565b600c545b9050808211156126d8578091505b816126e257600191505b5090565b67016345785d8a000081565b60055481565b61100381565b602981565b60005460ff16156127265760405162461bcd60e51b8152600401610c3b90616c06565b61272e615e41565b60006127546040518061062001604052806105ef8152602001616fe36105ef9139612f13565b91509150806127755760405162461bcd60e51b8152600401610c3b90616d37565b60005b82602001515181101561289a5760018360200151828151811061279757fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a09093015160039093019290925591860151805191850193918590811061286d57fe5b602090810291909101810151516001600160a01b0316825281019190915260400160002055600101612778565b50506103e8600255506000805460ff19166001179055565b600d5481565b33611001146128d95760405162461bcd60e51b8152600401610c3b90616e98565b600b54612997576128e8615d6b565b60015460005b8181101561299357600b80546001810182556000919091528351600080516020616fa383398151915260169092029182019081556020808601516000805160206175d28339815191528401805460ff191691151591909117905560408601518051879461296f93600080516020616fc3833981519152909101920190615d9a565b5060608201516129859060038301906013615e14565b5050508060010190506128ee565b5050505b60006129a28261474c565b90506129ad81611241565b156129bc576129bc8282614656565b5050565b606581565b3341146129e45760405162461bcd60e51b8152600401610c3b90616dc7565b60005460ff16612a065760405162461bcd60e51b8152600401610c3b9061662d565b60003411612a265760405162461bcd60e51b8152600401610c3b9061692d565b6001600160a01b0381166000908152600460205260409020546007543491906103e89060ff1615612a5657506006545b600083118015612a665750600081115b15612b07576000612a83612710610f9c868563ffffffff613f7f16565b90508015612b055760405161dead9082156108fc029083906000818181858888f19350505050158015612aba573d6000803e3d6000fd5b507f627059660ea01c4733a328effb2294d2f86905bf806da763a89cee254de8bee581604051612aea9190616ef0565b60405180910390a1612b02848263ffffffff613f3d16565b93505b505b8115612c05576000600180840381548110612b1e57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff1615612b8b57846001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b485604051612b7e9190616ef0565b60405180910390a2612bff565b600354612b9e908563ffffffff613fb916565b6003908155810154612bb6908563ffffffff613fb916565b60038201556040516001600160a01b038616907f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc05590612bf6908790616ef0565b60405180910390a25b50612c47565b836001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b484604051612c3e9190616ef0565b60405180910390a25b50505050565b600e5481565b61100081565b61dead81565b600b8181548110612c6c57fe5b6000918252602091829020601691909102018054600180830154600280850180546040805161010096831615969096026000190190911692909204601f810188900488028501880190925281845293965060ff90911694919291830182828015612d175780601f10612cec57610100808354040283529160200191612d17565b820191906000526020600020905b815481529060010190602001808311612cfa57829003601f168201915b5050505050905083565b61100481565b6000600a5460001480612d38575081155b80612d435750600954155b15612d5057506000610ea2565b60096000815460019003919050819055506000612d9b600a54610f9c85610f9c600b8981548110612d7d57fe5b6000918252602090912060169091020154439063ffffffff613f3d16565b90506000600b8581548110612dac57fe5b906000526020600020906016020160010160006101000a81548160ff0219169083151502179055506000806110016001600160a01b0316638256ace66040518163ffffffff1660e01b8152600401604080518083038186803b158015612e1157600080fd5b505afa158015612e25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e4991906161ba565b9150915060009350808310612ec357612e628787613fde565b506040516305bfb49960e41b815261100190635bfb499090612e88908a906004016162f7565b600060405180830381600087803b158015612ea257600080fd5b505af1158015612eb6573d6000803e3d6000fd5b5050505060019350612ed5565b818310612ed557612ed38761474c565b505b6040516001600160a01b038816907fb9d38178dc641ff1817967a63c9078cbcd955a9f1fcd75e0e3636de615d44d3b90600090a25050509392505050565b612f1b615e41565b6000612f25615e41565b612f2d615e65565b612f3e612f39866148ef565b614914565b90506000805b612f4d8361495e565b156130c15780612f7257612f68612f638461497f565b6149cd565b60ff1684526130b9565b80600114156130b4576060612f8e612f898561497f565b614a4d565b90508051604051908082528060200260200182016040528015612fcb57816020015b612fb8615e85565b815260200190600190039081612fb05790505b508560200181905250805160405190808252806020026020018201604052801561300957816020015b6060815260200190600190039081612ff45790505b50604086015260005b81518110156130a957613023615e85565b6060600061304385858151811061303657fe5b6020026020010151614b1e565b92509250925080613063578860009a509a505050505050505050506130ca565b828960200151858151811061307457fe5b6020026020010181905250818960400151858151811061309057fe5b6020026020010181905250505050806001019050613012565b5060019250506130b9565b6130c1565b600101612f44565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b60608152602001906001900390816130e957905050905061310f8363ffffffff16614c38565b8160008151811061311c57fe5b6020026020010181905250610ea281614c4b565b600060298351111561316757600080516020616f8383398151915260405161315790616740565b60405180910390a15060666113bb565b60005b83518110156132055760005b818110156131fc5784818151811061318a57fe5b6020026020010151600001516001600160a01b03168583815181106131ab57fe5b6020026020010151600001516001600160a01b031614156131f457600080516020616f838339815191526040516131e19061689b565b60405180910390a16066925050506113bb565b600101613176565b5060010161316a565b506060806132138585614cd5565b60015491935091506000908190815b818110156132985767016345785d8a00006001828154811061324057fe5b9060005260206000209060040201600301541061326257836001019350613290565b60006001828154811061327157fe5b9060005260206000209060040201600301541115613290578260010192505b600101613222565b506060836040519080825280602002602001820160405280156132c5578160200160208202803683370190505b5090506060846040519080825280602002602001820160405280156132f4578160200160208202803683370190505b509050606085604051908082528060200260200182016040528015613323578160200160208202803683370190505b509050606086604051908082528060200260200182016040528015613352578160200160208202803683370190505b5090506000606087604051908082528060200260200182016040528015613383578160200160208202803683370190505b5090506060886040519080825280602002602001820160405280156133b2578160200160208202803683370190505b509050600099506000985060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b1580156133fa57600080fd5b505afa15801561340e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061343291906161a2565b905067016345785d8a000081111561347d57600080516020616f8383398151915260405161345f90616bc5565b60405180910390a160689d50505050505050505050505050506113bb565b60005b898110156136ee5767016345785d8a00006001828154811061349e57fe5b9060005260206000209060040201600301541061362357600181815481106134c257fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316898d815181106134f357fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be4006001838154811061352857fe5b9060005260206000209060040201600301548161354157fe5b066001838154811061354f57fe5b9060005260206000209060040201600301540390506135778382613f3d90919063ffffffff16565b898e8151811061358357fe5b6020026020010181815250506001828154811061359c57fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316878e815181106135cd57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081888e815181106135fa57fe5b6020908102919091010152613615868263ffffffff613fb916565b95508c6001019c50506136e6565b60006001828154811061363257fe5b90600052602060002090600402016003015411156136e6576001818154811061365757fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316848c8151811061368857fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600181815481106136b557fe5b906000526020600020906004020160030154838c815181106136d357fe5b6020026020010181815250508a6001019a505b600101613480565b5060008415613964576002546040516303702b2960e51b815261100491636e056520918891613728918e918e918d914201906004016163e9565b6020604051808303818588803b15801561374157600080fd5b505af193505050508015613772575060408051601f3d908101601f1916820190925261376f9181019061610e565b60015b6138e9576040516000815260443d101561378e57506000613829565b60046000803e60005160e01c6308c379a081146137af576000915050613829565b60043d036004833e81513d60248201116001600160401b03821117156137da57600092505050613829565b80830180516001600160401b038111156137fb576000945050505050613829565b8060208301013d860181111561381957600095505050505050613829565b601f01601f191660405250925050505b806138345750613876565b60019150857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf28082604051613868919061646e565b60405180910390a2506138e4565b3d8080156138a0576040519150601f19603f3d011682016040523d82523d6000602084013e6138a5565b606091505b5060019150857fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a45826040516138da919061646e565b60405180910390a2505b613964565b801561392b577fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b708660405161391e9190616ef0565b60405180910390a1613962565b857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf28060405161395990616530565b60405180910390a25b505b8015613b1a5760005b8751811015613b1857600088828151811061398457fe5b6020026020010151905060006001828154811061399d57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc91859081106139ce57fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f1935050505090508015613a8a5760018281548110613a0f57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d9185908110613a5e57fe5b906000526020600020906004020160030154604051613a7d9190616ef0565b60405180910390a2613b0e565b60018281548110613a9757fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d9185908110613ae657fe5b906000526020600020906004020160030154604051613b059190616ef0565b60405180910390a25b505060010161396d565b505b835115613c645760005b8451811015613c62576000858281518110613b3b57fe5b60200260200101516001600160a01b03166108fc868481518110613b5b57fe5b60200260200101519081150290604051600060405180830381858888f1935050505090508015613bf157858281518110613b9157fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d868481518110613bcf57fe5b6020026020010151604051613be49190616ef0565b60405180910390a2613c59565b858281518110613bfd57fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d868481518110613c3b57fe5b6020026020010151604051613c509190616ef0565b60405180910390a25b50600101613b24565b505b5050505050505050505050506000471115613ce0577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d47604051613ca89190616ef0565b60405180910390a1604051611002904780156108fc02916000818181858888f19350505050158015613cde573d6000803e3d6000fd5b505b60006003819055600555815115613cfb57613cfb8282614f0e565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015613d3857600080fd5b505af1158015613d4c573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a1506000949350505050565b80516001600160a01b0316600090815260046020526040812054801580613dd55750600180820381548110613db557fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b15613e1b5782516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a2600091505061130b565b600154600554600019820111801590613e715784516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a26000935050505061130b565b600580546001908101909155805481906000198601908110613e8f57fe5b6000918252602082206002600490920201018054921515600160e01b0260ff60e01b199093169290921790915585516040516001600160a01b03909116917ff226e7d8f547ff903d9d419cf5f54e0d7d07efa9584135a53a057c5f1f27f49a91a2506000949350505050565b6000610ea283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506156ed565b6000610ea283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250615724565b600082613f8e575060006113bb565b82820282848281613f9b57fe5b0414610ea25760405162461bcd60e51b8152600401610c3b90616ac5565b600082820183811015610ea25760405162461bcd60e51b8152600401610c3b90616664565b60008060018381548110613fee57fe5b906000526020600020906004020160030154905060006001808054905003905060016140186125ab565b511161404d5760006001858154811061402d57fe5b9060005260206000209060040201600301819055506000925050506113bb565b846001600160a01b03167f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a70836040516140869190616ef0565b60405180910390a26001600160a01b038516600090815260046020526040812055835b6001546000190181101561427357600181600101815481106140c757fe5b9060005260206000209060040201600182815481106140e257fe5b60009182526020909120825460049092020180546001600160a01b03199081166001600160a01b0393841617825560018085015481840180548416918616919091179055600280860180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b19909416939093179055600392830154920191909155600b8054909183019081106141a357fe5b9060005260206000209060160201600b82815481106141be57fe5b600091825260209091208254601690920201908155600180830154818301805460ff909216151560ff1990921691909117905560028084018054614215938386019390821615610100026000190190911604615eba565b5061422860038281019084016013615f2f565b5090505080600101600460006001848154811061424157fe5b600091825260208083206004909202909101546001600160a01b031683528201929092526040019020556001016140a9565b50600180548061427f57fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b8054806142d257fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906143046002830182615f59565b614312600383016000615f9d565b50509055600081838161432157fe5b04905080156143855760015460005b8181101561438257826001828154811061434657fe5b906000526020600020906004020160030154016001828154811061436657fe5b6000918252602090912060036004909202010155600101614330565b50505b50600195945050505050565b6001548151604080518281526020808402820101909152606092919083908280156143d057816020015b60608152602001906001900390816143bb5790505b50600b5490915083146143e757925061130b915050565b60005b828110156144f657600b60016004600089858151811061440657fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054038154811061443a57fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156144d25780601f106144a7576101008083540402835291602001916144d2565b820191906000526020600020905b8154815290600101906020018083116144b557829003601f168201915b50505050508282815181106144e357fe5b60209081029190910101526001016143ea565b50949350505050565b60005b8281101561464c57600082878388016040516020016145229291906162e9565b6040516020818303038152906040528051906020012060001c8161454257fe5b06905080850182870114614643576000898388018151811061456057fe5b602002602001015190506060898489018151811061457a57fe5b602002602001015190508a8388018151811061459257fe5b60200260200101518b858a01815181106145a857fe5b60200260200101906001600160a01b031690816001600160a01b031681525050818b848901815181106145d757fe5b60200260200101906001600160a01b031690816001600160a01b031681525050898388018151811061460557fe5b60200260200101518a858a018151811061461b57fe5b6020026020010181905250808a8489018151811061463557fe5b602002602001018190525050505b50600101614502565b5050505050505050565b600980546001908101909155600b80548390811061467057fe5b906000526020600020906016020160010160006101000a81548160ff02191690831515021790555043600b82815481106146a657fe5b600091825260208220601690910201919091556040516001600160a01b038416917ff62981a567ec3cec866c6fa93c55bcdf841d6292d18b8d522ececa769375d82d91a25050565b60008160405160200161470191906162cd565b604051602081830303815290604052805190602001208360405160200161472891906162cd565b6040516020818303038152906040528051906020012014905092915050565b015190565b6001600160a01b038116600090815260046020526040812054806147755750600019905061130b565b60018103905060006001828154811061478a57fe5b90600052602060002090600402016003015490506000600183815481106147ad57fe5b6000918252602090912060036004909202010155600154604051600019909101906001600160a01b038616907f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d90614806908590616ef0565b60405180910390a28061481e5782935050505061130b565b600081838161482957fe5b04905080156148e55760005b8481101561488757816001828154811061484b57fe5b906000526020600020906004020160030154016001828154811061486b57fe5b6000918252602090912060036004909202010155600101614835565b50600180549085015b818110156148e25782600182815481106148a657fe5b90600052602060002090600402016003015401600182815481106148c657fe5b6000918252602090912060036004909202010155600101614890565b50505b5091949350505050565b6148f7615fac565b506040805180820190915281518152602082810190820152919050565b61491c615e65565b61492582615750565b61492e57600080fd5b600061493d836020015161578a565b60208085015160408051808201909152868152920190820152915050919050565b6000614968615fac565b505080518051602091820151919092015191011190565b614987615fac565b6149908261495e565b61499957600080fd5b602082015160006149a9826157ed565b80830160209586015260408051808201909152908152938401919091525090919050565b8051600090158015906149e257508151602110155b6149eb57600080fd5b60006149fa836020015161578a565b90508083600001511015614a205760405162461bcd60e51b8152600401610c3b90616c83565b8251602080850151830180519284900392918310156144f657506020919091036101000a90049392505050565b6060614a5882615750565b614a6157600080fd5b6000614a6c836158ce565b9050606081604051908082528060200260200182016040528015614aaa57816020015b614a97615fac565b815260200190600190039081614a8f5790505b5090506000614abc856020015161578a565b60208601510190506000805b84811015614b1357614ad9836157ed565b9150604051806040016040528083815260200184815250848281518110614afc57fe5b602090810291909101015291810191600101614ac8565b509195945050505050565b614b26615e85565b60606000614b32615e85565b6060614b3c615e65565b614b4587614914565b90506000805b614b548361495e565b15614c295780614b7f57614b6f614b6a8461497f565b61592a565b6001600160a01b03168552614c21565b8060011415614ba757614b94614b6a8461497f565b6001600160a01b03166020860152614c21565b8060021415614bcf57614bbc614b6a8461497f565b6001600160a01b03166040860152614c21565b8060031415614bfb57614be4612f638461497f565b6001600160401b0316606086015260019150614c21565b8060041415614c1c57614c15614c108461497f565b615944565b9350614c21565b614c29565b600101614b4b565b50929791965091945092505050565b60606113bb614c46836159b4565b615a9a565b6060815160001415614c6c575060408051600081526020810190915261130b565b606082600081518110614c7b57fe5b602002602001015190506000600190505b8351811015614cbc57614cb282858381518110614ca557fe5b6020026020010151615aec565b9150600101614c8c565b50610ea2614ccf825160c060ff16615b69565b82615aec565b606080600080808080614ce66126a7565b6001549091505b8015614df457600181039250600b8381548110614d0657fe5b600091825260209091206001601690920201015460ff16614d2657614deb565b60018381548110614d3357fe5b60009182526020909120600490910201546001600160a01b03169450614d5a858484612d27565b9350831580614d6d575060018a51038610155b15614d7757614deb565b60005b8a51811015614de957856001600160a01b03168b8281518110614d9957fe5b6020026020010151600001516001600160a01b03161415614de15760018b8281518110614dc257fe5b6020908102919091010151901515608090910152600190960195614de9565b600101614d7a565b505b60001901614ced565b5084895103604051908082528060200260200182016040528015614e3257816020015b614e1f615e85565b815260200190600190039081614e175790505b50965084895103604051908082528060200260200182016040528015614e6c57816020015b6060815260200190600190039081614e575790505b5095506000915060005b8951811015614f0057898181518110614e8b57fe5b602002602001015160800151614ef857898181518110614ea757fe5b6020026020010151888481518110614ebb57fe5b6020026020010181905250888181518110614ed257fe5b6020026020010151878481518110614ee657fe5b60200260200101819052508260010192505b600101614e76565b5050505050505b9250929050565b600154825160005b8281101561502b576001614f28615e85565b60018381548110614f3557fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b84811015614fff57878181518110614fc557fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b03161415614ff75760009250614fff565b600101614fb1565b5081156150215780516001600160a01b03166000908152600460205260408120555b5050600101614f16565b50808211156150ea57805b828110156150e857600180548061504957fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b80548061509c57fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906150ce6002830182615f59565b6150dc600383016000615f9d565b50509055600101615036565b505b60008183106150f957816150fb565b825b905060005b8181101561549f576151ad86828151811061511757fe5b60200260200101516001838154811061512c57fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a0820152615c3b565b6153615780600101600460008884815181106151c557fe5b6020026020010151600001516001600160a01b03166001600160a01b031681526020019081526020016000208190555085818151811061520157fe5b60200260200101516001828154811061521657fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a09091015160039091015584518590829081106152d157fe5b6020026020010151600b82815481106152e657fe5b9060005260206000209060160201600201908051906020019061530a929190615d9a565b506000600b828154811061531a57fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b80548390811061534b57fe5b6000918252602090912060169091020155615497565b61542785828151811061537057fe5b6020026020010151600b838154811061538557fe5b600091825260209182902060026016909202018101805460408051601f60001961010060018616150201909316949094049182018590048502840185019052808352919290919083018282801561541d5780601f106153f25761010080835404028352916020019161541d565b820191906000526020600020905b81548152906001019060200180831161540057829003601f168201915b5050505050615cbc565b6154725784818151811061543757fe5b6020026020010151600b828154811061544c57fe5b90600052602060002090601602016002019080519060200190615470929190615d9a565b505b60006001828154811061548157fe5b9060005260206000209060040201600301819055505b600101615100565b5082821115615677576154b0615d6b565b835b83811015615674578581815181106154c657fe5b6020026020010151826040018190525060018782815181106154e457fe5b6020908102919091018101518254600181810185556000948552838520835160049093020180546001600160a01b039384166001600160a01b0319918216178255848601518284018054918616918316919091179055604080860151600284018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909a1692909616919091179290921696909617169190911790935560a090930151600390930192909255600b8054928301815590935284516016909102600080516020616fa38339815191528101918255858301516000805160206175d28339815191528201805491151560ff199092169190911790559285015180518694929361561a93600080516020616fc383398151915201920190615d9a565b5060608201516156309060038301906013615e14565b505050806001016004600089848151811061564757fe5b602090810291909101810151516001600160a01b03168252810191909152604001600020556001016154b2565b50505b6000600981905560015493505b838110156156e5576000600b828154811061569b57fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b8054839081106156cc57fe5b6000918252602090912060169091020155600101615684565b505050505050565b6000818361570e5760405162461bcd60e51b8152600401610c3b919061646e565b50600083858161571a57fe5b0495945050505050565b600081848411156157485760405162461bcd60e51b8152600401610c3b919061646e565b505050900390565b80516000906157615750600061130b565b6020820151805160001a9060c08210156157805760009250505061130b565b5060019392505050565b8051600090811a60808110156157a457600091505061130b565b60b88110806157bf575060c081108015906157bf575060f881105b156157ce57600191505061130b565b60c08110156157e25760b51901905061130b565b60f51901905061130b565b80516000908190811a608081101561580857600191506158c7565b60b881101561581d57607e19810191506158c7565b60c081101561586e57600060b78203600186019550806020036101000a8651049150600181018201935050808310156158685760405162461bcd60e51b8152600401610c3b90616a12565b506158c7565b60f88110156158835760be19810191506158c7565b600060f78203600186019550806020036101000a8651049150600181018201935050808310156158c55760405162461bcd60e51b8152600401610c3b90616a12565b505b5092915050565b80516000906158df5750600061130b565b600080905060006158f3846020015161578a565b602085015185519181019250015b8082101561592157615912826157ed565b82019150826001019250615901565b50909392505050565b805160009060151461593b57600080fd5b6113bb826149cd565b805160609061595257600080fd5b6000615961836020015161578a565b83516040805191839003808352601f19601f8201168301602001909152919250606090828015615998576020820181803683370190505b50905060008160200190506144f6848760200151018285615d20565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166159f857506018615a1c565b6fffffffffffffffffffffffffffffffff198416615a1857506010615a1c565b5060005b6020811015615a5257818181518110615a3157fe5b01602001516001600160f81b03191615615a4a57615a52565b600101615a1c565b60008160200390506060816040519080825280601f01601f191660200182016040528015615a87576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015615acc5750607f60f81b82600081518110615aba57fe5b01602001516001600160f81b03191611155b15615ad857508061130b565b6113bb615aea8351608060ff16615b69565b835b6060806040519050835180825260208201818101602087015b81831015615b1d578051835260209283019201615b05565b50855184518101855292509050808201602086015b81831015615b4a578051835260209283019201615b32565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310615b935760405162461bcd60e51b8152600401610c3b90616816565b60408051600180825281830190925260609160208201818036833701905050905060378411615bed5782840160f81b81600081518110615bcf57fe5b60200101906001600160f81b031916908160001a90535090506113bb565b6060615bf8856159b4565b90508381510160370160f81b82600081518110615c1157fe5b60200101906001600160f81b031916908160001a905350615c328282615aec565b95945050505050565b805182516000916001600160a01b039182169116148015615c75575081602001516001600160a01b031683602001516001600160a01b0316145b8015615c9a575081604001516001600160a01b031683604001516001600160a01b0316145b8015610ea25750506060908101519101516001600160401b0390811691161490565b815181516000916001918114808314615cd85760009250615d16565b600160208701838101602088015b600284838510011415615d11578051835114615d055760009650600093505b60209283019201615ce6565b505050505b5090949350505050565b80615d2a57610c5b565b5b60208110615d4a578251825260209283019290910190601f1901615d2b565b915181516020939093036101000a6000190180199091169216919091179052565b60405180608001604052806000815260200160001515815260200160608152602001615d95615fc6565b905290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10615ddb57805160ff1916838001178555615e08565b82800160010185558215615e08579182015b82811115615e08578251825591602001919060010190615ded565b506126e2929150615fe5565b8260138101928215615e085791602002820182811115615e08578251825591602001919060010190615ded565b6040518060600160405280600060ff16815260200160608152602001606081525090565b6040518060400160405280615e78615fac565b8152602001600081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10615ef35780548555615e08565b82800160010185558215615e0857600052602060002091601f016020900482015b82811115615e08578254825591600101919060010190615f14565b8260138101928215615e085791820182811115615e08578254825591600101919060010190615f14565b50805460018160011615610100020316600290046000825580601f10615f7f5750611517565b601f0160209004906000526020600020908101906115179190615fe5565b50611517906013810190615fe5565b604051806040016040528060008152602001600081525090565b6040518061026001604052806013906020820280368337509192915050565b61269491905b808211156126e25760008155600101615feb565b60008083601f840112616010578182fd5b5081356001600160401b03811115616026578182fd5b6020830191508360208083028501011115614f0757600080fd5b60008083601f840112616051578182fd5b5081356001600160401b03811115616067578182fd5b602083019150836020828501011115614f0757600080fd5b600060208284031215616090578081fd5b81356001600160a01b0381168114610ea2578182fd5b600080600080604085870312156160bb578283fd5b84356001600160401b03808211156160d1578485fd5b6160dd88838901615fff565b909650945060208701359150808211156160f5578384fd5b5061610287828801615fff565b95989497509550505050565b60006020828403121561611f578081fd5b81518015158114610ea2578182fd5b60008060008060408587031215616143578384fd5b84356001600160401b0380821115616159578586fd5b61616588838901616040565b9096509450602087013591508082111561617d578384fd5b5061610287828801616040565b60006020828403121561619b578081fd5b5035919050565b6000602082840312156161b3578081fd5b5051919050565b600080604083850312156161cc578182fd5b505080516020909101519092909150565b6000806000604084860312156161f1578283fd5b833560ff81168114616201578384fd5b925060208401356001600160401b0381111561621b578283fd5b61622786828701616040565b9497909650939450505050565b6000815180845260208085019450808401835b8381101561626c5781516001600160a01b031687529582019590820190600101616247565b509495945050505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b600081518084526162b9816020860160208601616f56565b601f01601f19169290920160200192915050565b600082516162df818460208701616f56565b9190910192915050565b918252602082015260400190565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b03968716815294861660208601529290941660408401526001600160401b03166060830152911515608082015260a081019190915260c00190565b600060208252610ea26020830184616234565b60006040825261638c6040830185616234565b602083820381850152818551808452828401915082838202850101838801865b838110156163da57601f198784030185526163c88383516162a1565b948601949250908501906001016163ac565b50909998505050505050505050565b6000608082526163fc6080830187616234565b828103602084810191909152865180835287820192820190845b8181101561643257845183529383019391830191600101616416565b505084810360408601526164468188616234565b93505050506001600160401b038316606083015295945050505050565b901515815260200190565b600060208252610ea260208301846162a1565b600060408252616495604083018688616277565b82810360208401526164a8818587616277565b979650505050505050565b6020808252601c908201527f6c656e677468206f66206275726e526174696f206d69736d6174636800000000604082015260600190565b60208082526026908201527f6c656e677468206f66206d61784e756d4f664d61696e7461696e696e67206d696040820152650e6dac2e8c6d60d31b606082015260800190565b6020808252601b908201527f6261746368207472616e736665722072657475726e2066616c73650000000000604082015260600190565b6020808252602c908201527f6c656e677468206f66206d61784e756d4f66576f726b696e6743616e6469646160408201526b0e8cae640dad2e6dac2e8c6d60a31b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61696e7461696e536c6173685363616c65206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252818101527f6c656e677468206f66206e756d4f66436162696e657473206d69736d61746368604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526028908201527f746865206e756d4f66436162696e657473206d75737420626520677265617465604082015267072207468616e20360c41b606082015260800190565b60208082526039908201527f746865206e756d4f66436162696e657473206d757374206265206c657373207460408201527f68616e204d41585f4e554d5f4f465f56414c494441544f525300000000000000606082015260800190565b60208082526029908201527f746865206e756d626572206f662076616c696461746f727320657863656564206040820152681d1a19481b1a5b5a5d60ba1b606082015260800190565b60208082526022908201527f63616e206e6f7420646f207468697320747769636520696e206f6e6520626c6f604082015261636b60f01b606082015260800190565b6020808252602b908201527f746865206275726e526174696f206d757374206265206e6f206772656174657260408201526a0207468616e2031303030360ac1b606082015260800190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526037908201527f746865206d61784e756d4f664d61696e7461696e696e67206d7573742062652060408201527f6c657373207468616e206e756d4f66436162696e657473000000000000000000606082015260800190565b6020808252602b908201527f6475706c696361746520636f6e73656e7375732061646472657373206f66207660408201526a185b1a59185d1bdc94d95d60aa1b606082015260800190565b60208082526027908201527f7468652065787069726554696d655365636f6e64476170206973206f7574206f604082015266662072616e676560c81b606082015260800190565b6020808252601590820152746465706f7369742076616c7565206973207a65726f60581b604082015260600190565b60208082526049908201527f746865206d61784e756d4f66576f726b696e6743616e64696461746573206d7560408201527f7374206265206e6f742067726561746572207468616e206d61784e756d4f6643606082015268616e6469646174657360b81b608082015260a00190565b60208082526027908201527f7468652066696e616c697479526577617264526174696f206973206f7574206f604082015266662072616e676560c81b606082015260800190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b60208082526023908201527f63616e206e6f7420656e7465722054656d706f72617279204d61696e74656e616040820152626e636560e81b606082015260800190565b60208082526025908201527f6c656e677468206f66206a61696c2076616c696461746f7273206d757374206260408201526465206f6e6560d81b606082015260800190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61784e756d4f6643616e64696461746573206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252601290820152716e6f7420696e206d61696e74656e616e636560701b604082015260600190565b60208082526021908201527f666565206973206c6172676572207468616e2044555354595f494e434f4d494e6040820152604760f81b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b60208082526026908201527f6c656e677468206f662066696e616c697479526577617264526174696f206d696040820152650e6dac2e8c6d60d31b606082015260800190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526026908201527f6c656e677468206f662065787069726554696d655365636f6e64476170206d696040820152650e6dac2e8c6d60d31b606082015260800190565b60208082526017908201527f6f6e6c792063757272656e742076616c696461746f7273000000000000000000604082015260600190565b60208082526021908201527f6661696c656420746f20706172736520696e69742076616c696461746f7253656040820152601d60fa1b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b6020808252603e908201527f746865206d61696e7461696e536c6173685363616c65206d757374206265206760408201527f726561746572207468616e203020616e64206c657373207468616e2031300000606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b60208082526029908201527f746865206d6573736167652073656e646572206d75737420626520736c6173686040820152680818dbdb9d1c9858dd60ba1b606082015260800190565b61ffff91909116815260200190565b90815260200190565b6000848252831515602083015260606040830152615c3260608301846162a1565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff8516825260406020830152615c32604083018486616277565b60005b83811015616f71578181015183820152602001616f59565b83811115612c47575050600091015256fe70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb20175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbbf905ec80f905e8f846942a7cdd959bfe8d9487b2a43b33565295a698f7e294b6a7edd747c0554875d3fc531d19ba1497992c5e941ff80f3f7f110ffd8920a3ac38fdef318fe94a3f86048c27395000f846946488aa4d1955ee33403f8ccb1d4de5fb97c7ade294220f003d8bdfaadf52aa1e55ae4cc485e6794875941a87e90e440a39c99aa9cb5cea0ad6a3f0b2407b86048c27395000f846949ef9f4360c606c7ab4db26b016007d3ad0ab86a0946103af86a874b705854033438383c82575f25bc29418e2db06cbff3e3c5f856410a1838649e760175786048c27395000f84694ee01c3b1283aa067c58eab4709f85e99d46de5fe94ee4b9bfb1871c64e2bcabb1dc382dc8b7c4218a29415904ab26ab0e99d70b51c220ccdcccabee6e29786048c27395000f84694685b1ded8013785d6623cc18d214320b6bb6475994a20ef4e5e4e7e36258dbf51f4d905114cb1b34bc9413e39085dc88704f4394d35209a02b1a9520320c86048c27395000f8469478f3adfc719c99674c072166708589033e2d9afe9448a30d5eaa7b64492a160f139e2da2800ec3834e94055838358c29edf4dcc1ba1985ad58aedbb6be2b86048c27395000f84694c2be4ec20253b8642161bc3f444f53679c1f3d479466f50c616d737e60d7ca6311ff0d9c434197898a94d1d678a2506eeaa365056fe565df8bc8659f28b086048c27395000f846942f7be8361c80a4c1e7e9aaf001d0877f1cfde218945f93992ac37f3e61db2ef8a587a436a161fd210b94ecbc4fb1a97861344dad0867ca3cba2b860411f086048c27395000f84694ce2fd7544e0b2cc94692d4a704debef7bcb613289444abc67b4b2fba283c582387f54c9cba7c34bafa948acc2ab395ded08bb75ce85bf0f95ad2abc51ad586048c27395000f84694b8f7166496996a7da21cf1f1b04d9b3e26a3d077946770572763289aac606e4f327c2f6cc1aa3b3e3b94882d745ed97d4422ca8da1c22ec49d880c4c097286048c27395000f846942d4c407bbe49438ed859fe965b140dcf1aab71a9943ad0939e120f33518fbba04631afe7a3ed6327b194b2bbb170ca4e499a2b0f3cc85ebfa6e8c4dfcbea86048c27395000f846946bbad7cf34b5fa511d8e963dbba288b1960e75d694853b0f6c324d1f4e76c8266942337ac1b0af1a229442498946a51ca5924552ead6fc2af08b94fcba648601d1a94a2000f846944430b3230294d12c6ab2aac5c2cd68e80b16b581947b107f4976a252a6939b771202c28e64e03f52d694795811a7f214084116949fc4f53cedbf189eeab28601d1a94a2000f84694ea0a6e3c511bbd10f4519ece37dc24887e11b55d946811ca77acfb221a49393c193f3a22db829fcc8e9464feb7c04830dd9ace164fc5c52b3f5a29e5018a8601d1a94a2000f846947ae2f5b9e386cd1b50a4550696d957cb4900f03a94e83bcc5077e6b873995c24bac871b5ad856047e19464e48d4057a90b233e026c1041e6012ada897fe88601d1a94a2000f8469482012708dafc9e1b880fd083b32182b869be8e09948e5adc73a2d233a1b496ed3115464dd6c7b887509428b383d324bc9a37f4e276190796ba5a8947f5ed8601d1a94a2000f8469422b81f8e175ffde54d797fe11eb03f9e3bf75f1d94a1c3ef7ca38d8ba80cce3bfc53ebd2903ed21658942767f7447f7b9b70313d4147b795414aecea54718601d1a94a2000f8469468bf0b8b6fb4e317a0f9d6f03eaf8ce6675bc60d94675cfe570b7902623f47e7f59c9664b5f5065dcf94d84f0d2e50bcf00f2fc476e1c57f5ca2d57f625b8601d1a94a2000f846948c4d90829ce8f72d0163c1d5cf348a862d5506309485c42a7b34309bee2ed6a235f86d16f059deec5894cc2cedc53f0fa6d376336efb67e43d167169f3b78601d1a94a2000f8469435e7a025f4da968de7e4d7e4004197917f4070f194b1182abaeeb3b4d8eba7e6a4162eac7ace23d57394c4fd0d870da52e73de2dd8ded19fe3d26f43a1138601d1a94a2000f84694d6caa02bbebaebb5d7e581e4b66559e635f805ff94c07335cf083c1c46a487f0325769d88e163b653694efaff03b42e41f953a925fc43720e45fb61a19938601d1a94a20000175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbaa26469706673582212206cf6e773ca0b0d999abe4e586cd00abd836c1f2e74f76626269d55c8fc09634364736f6c63430006040033" + }, + "0x0000000000000000000000000000000000001001": { + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b506004361061027f5760003560e01c80637942fd051161015c578063c80d4b8f116100ce578063dc927faf11610087578063dc927faf146104ad578063e1c7392a146104b5578063f9a2bbc7146104bd578063fc3e5908146104c5578063fc4333cd146104cd578063fd6a6879146104d55761027f565b8063c80d4b8f1461045c578063c81b166214610464578063c8509d811461046c578063c96be4cb1461047f578063cc844b7314610492578063d2a42e4b146104a55761027f565b80639dc09262116101205780639dc0926214610421578063a1a11bf514610429578063a78abc1614610431578063ab51bb9614610439578063ac0af62914610441578063ac431751146104495761027f565b80637942fd05146103ee5780638256ace6146103f6578063831d65d1146103fe57806396713da9146104115780639bc8e4f2146104195761027f565b8063493279b1116101f557806362b72cf5116101b957806362b72cf5146103be5780636e47b482146103c657806370fd5bad146103ce578063718a8aa8146103d657806375d47a0a146103de5780637912a65d146103e65761027f565b8063493279b11461037c5780634bf6c8821461039157806351e8067214610399578063567a372d146103a15780635bfb4990146103a95761027f565b806335aa2e441161024757806335aa2e441461030e57806337c8dab914610321578063389f4f71146103425780633a63f4b1146103575780633dffc3871461035f57806343756e5c146103745761027f565b80630bee7a67146102845780630e2374a5146102a25780631182b875146102b757806322d1e80b146102d757806323bac5a2146102ec575b600080fd5b61028c6104dd565b60405161029991906132a4565b60405180910390f35b6102aa6104e2565b6040516102999190612b82565b6102ca6102c5366004612ab8565b6104e8565b6040516102999190612bba565b6102df61054e565b6040516102999190612baf565b6102ff6102fa366004612866565b610557565b6040516102999392919061328c565b6102aa61031c366004612a88565b61057a565b61033461032f366004612866565b6105a1565b60405161029992919061327e565b61034a6105f8565b6040516102999190613254565b61034a6105fe565b610367610604565b60405161029991906132b5565b6102aa610609565b61038461060f565b6040516102999190613245565b610367610614565b6102aa610619565b61034a61061f565b6103bc6103b7366004612866565b610625565b005b61034a6106d0565b6102aa6106d6565b6103676106dc565b6103676106e1565b6102aa6106e6565b61034a6106ec565b6103676106f1565b6103346106f6565b6103bc61040c366004612ab8565b610700565b610367610812565b61034a610817565b6102aa610822565b6102aa610828565b6102df61082e565b61028c610837565b61034a61083c565b6103bc61045736600461296c565b610841565b61034a610ce0565b6102aa610ce5565b6103bc61047a366004612ab8565b610ceb565b6103bc61048d366004612866565b610d5c565b6103bc6104a03660046129d5565b61114d565b61034a61169a565b6102aa61169f565b6103bc6116a5565b6102aa6116e1565b6103676116e7565b6103bc6116ec565b6102aa611b35565b606481565b61200181565b606033612000146105145760405162461bcd60e51b815260040161050b906130cb565b60405180910390fd5b60005460ff166105365760405162461bcd60e51b815260040161050b90612c9b565b60405162461bcd60e51b815260040161050b9061318e565b60075460ff1681565b600260208190526000918252604090912080546001820154919092015460ff1683565b6001818154811061058757fe5b6000918252602090912001546001600160a01b0316905081565b6000806105ac61264d565b5050506001600160a01b0316600090815260026020818152604092839020835160608101855281548082526001830154938201849052919093015460ff16151592909301919091529091565b60055481565b60065481565b600181565b61100181565b603881565b600881565b61200081565b60045481565b33611000146106465760405162461bcd60e51b815260040161050b90612edf565b60005460ff166106685760405162461bcd60e51b815260040161050b90612c9b565b61200063f7a251d7600b61067b84611b3b565b60006040518463ffffffff1660e01b815260040161069b939291906132c3565b600060405180830381600087803b1580156106b557600080fd5b505af11580156106c9573d6000803e3d6000fd5b5050505050565b60035481565b61100581565b600281565b601081565b61100881565b603281565b600b81565b6004546005549091565b33612000146107215760405162461bcd60e51b815260040161050b906130cb565b60005460ff166107435760405162461bcd60e51b815260040161050b90612c9b565b61074b612670565b600061078c84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611c0d92505050565b9150915080156107d35781516040517f7f0956d47419b9525356e7111652b653b530ec6f5096dccc04589bc38e629967916107c6916132a4565b60405180910390a16106c9565b81516040517f7d45f62d17443dd4547bca8a8112c60e2385669318dc300ec61a5d2492f262e791610803916132a4565b60405180910390a15050505050565b600981565b662386f26fc1000081565b61100781565b61100681565b60005460ff1681565b600081565b600481565b60005460ff166108635760405162461bcd60e51b815260040161050b90612c9b565b33611007146108845760405162461bcd60e51b815260040161050b90612f88565b6108ef84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260148152731b5a5cd9195b59585b9bdc951a1c995cda1bdb1960621b60208201529150611c8d9050565b1561098a57602081146109145760405162461bcd60e51b815260040161050b90612e6b565b604080516020601f840181900481028201810190925282815260009161095291858580838501838280828437600092019190915250611ce792505050565b905060018110158015610966575060055481105b6109825760405162461bcd60e51b815260040161050b90613086565b600455610c9d565b6109f084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e19995b1bdb9e551a1c995cda1bdb19608a1b60208201529150611c8d9050565b15610a8c5760208114610a155760405162461bcd60e51b815260040161050b90612fd6565b604080516020601f8401819004810282018101909252828152600091610a5391858580838501838280828437600092019190915250611ce792505050565b90506103e88111158015610a68575060045481115b610a845760405162461bcd60e51b815260040161050b90612d09565b600555610c9d565b610b0084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f66696e616c697479536c617368526577617264526174696f000000000000000060208201529150611c8d9050565b15610b9a5760208114610b255760405162461bcd60e51b815260040161050b906131c5565b604080516020601f8401819004810282018101909252828152600091610b6391858580838501838280828437600092019190915250611ce792505050565b9050600a8110158015610b765750606481105b610b925760405162461bcd60e51b815260040161050b90612e1f565b600655610c9d565b610c0e84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f656e61626c654d616c6963696f7573566f7465536c617368000000000000000060208201529150611c8d9050565b15610c855760208114610c335760405162461bcd60e51b815260040161050b90612d3e565b604080516020601f8401819004810282018101909252828152610c6f9190848480838501838280828437600092019190915250611cec92505050565b6007805460ff1916911515919091179055610c9d565b60405162461bcd60e51b815260040161050b90613167565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a84848484604051610cd29493929190612bcd565b60405180910390a150505050565b609681565b61100281565b3361200014610d0c5760405162461bcd60e51b815260040161050b906130cb565b60005460ff16610d2e5760405162461bcd60e51b815260040161050b90612c9b565b6040517f07db600eebe2ac176be8dcebad61858c245a4961bb32ca2aa3d159b09aa0810e90600090a1505050565b334114610d7b5760405162461bcd60e51b815260040161050b9061311a565b60005460ff16610d9d5760405162461bcd60e51b815260040161050b90612c9b565b6003544311610dbe5760405162461bcd60e51b815260040161050b90613210565b3a15610ddc5760405162461bcd60e51b815260040161050b90612f5a565b60405163155853f360e21b8152611000906355614fcc90610e01908490600401612b82565b60206040518083038186803b158015610e1957600080fd5b505afa158015610e2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e51919061294c565b610e5a57611146565b610e6261264d565b506001600160a01b0381166000908152600260208181526040928390208351606081018552815481526001820154928101929092529091015460ff161580159282019290925290610ebd576020810180516001019052610f16565b60016040820181905260208201819052805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0384161790555b438152600554602082015181610f2857fe5b0661107457600060208201526040516335409f7f60e01b8152611000906335409f7f90610f59908590600401612b82565b600060405180830381600087803b158015610f7357600080fd5b505af1158015610f87573d6000803e3d6000fd5b505050506120006001600160a01b031663f7a251d7600b610fa785611b3b565b60006040518463ffffffff1660e01b8152600401610fc7939291906132c3565b600060405180830381600087803b158015610fe157600080fd5b505af1925050508015610ff2575060015b61106f573d808015611020576040519150601f19603f3d011682016040523d82523d6000602084013e611025565b606091505b50826001600160a01b03167fd7bc86ff5d08c8ab043edec743302aba2520e6635172a428bc956721db9e2d1c83602001518360405161106592919061325d565b60405180910390a2505b6110e0565b60045481602001518161108357fe5b066110e0576040516375abf10160e11b81526110009063eb57e202906110ad908590600401612b82565b600060405180830381600087803b1580156110c757600080fd5b505af11580156110db573d6000803e3d6000fd5b505050505b6001600160a01b0382166000818152600260208181526040808420865181559186015160018301558581015191909201805460ff1916911515919091179055517fddb6012116e51abf5436d956a4f0ebd927e92c576ff96d7918290c8782291e3e9190a2505b5043600355565b60005460ff1661116f5760405162461bcd60e51b815260040161050b90612c9b565b604051630a83aaa960e31b81526110069063541d554890611194903390600401612b82565b60206040518083038186803b1580156111ac57600080fd5b505afa1580156111c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111e4919061294c565b6112005760405162461bcd60e51b815260040161050b90612bff565b60075460ff166112225760405162461bcd60e51b815260040161050b90612c66565b60065461122f5760146006555b8051514361010090910111801561125157504381602001516000015161010001115b61126d5760405162461bcd60e51b815260040161050b90612c36565b80602001516020015181600001516020015114801561129b5750806020015160600151816000015160600151145b156112b85760405162461bcd60e51b815260040161050b90612eb2565b8051604081015190511080156112d75750602081015160408101519051105b6112f35760405162461bcd60e51b815260040161050b90612de8565b6020810151518151511080156113185750806000015160400151816020015160400151105b8061134357508051516020820151511080156113435750806020015160400151816000015160400151105b8061135d5750806020015160400151816000015160400151145b6113795760405162461bcd60e51b815260040161050b90612cd2565b61138b81600001518260400151611d14565b80156113a457506113a481602001518260400151611d14565b6113c05760405162461bcd60e51b815260040161050b90612d89565b6060806110006001600160a01b0316633b071dcc6040518163ffffffff1660e01b815260040160006040518083038186803b1580156113fe57600080fd5b505afa158015611412573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261143a9190810190612889565b9150915060005b81518110156115775761146b82828151811061145957fe5b60200260200101518560400151611eec565b1561156f576006546040516309a99b4f60e41b815260646110028031909302049190639a99b4f0906114a39033908590600401612b96565b602060405180830381600087803b1580156114bd57600080fd5b505af11580156114d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f59190612aa0565b506110006001600160a01b03166335409f7f85848151811061151357fe5b60200260200101516040518263ffffffff1660e01b81526004016115379190612b82565b600060405180830381600087803b15801561155157600080fd5b505af1158015611565573d6000803e3d6000fd5b5050505050611577565b600101611441565b50600061158984604001516000611f50565b90506120006001600160a01b031663f7a251d7600b6115ab8760400151611f6c565b60006040518463ffffffff1660e01b81526004016115cb939291906132c3565b600060405180830381600087803b1580156115e557600080fd5b505af19250505080156115f6575060015b611668573d808015611624576040519150601f19603f3d011682016040523d82523d6000602084013e611629565b606091505b50817fd58d1183100bd0932c0588f31c4205d6bc6168909765a96c41adbed3115f36288260405161165a9190612bba565b60405180910390a250611694565b60405181907f7b78aadacff901d8b63d0dba4f86283d4db8aef27f9ed70413dd860f1c9532b690600090a25b50505050565b601481565b61100381565b60005460ff16156116c85760405162461bcd60e51b815260040161050b90613018565b603260045560966005556000805460ff19166001179055565b61100081565b600381565b336110001461170d5760405162461bcd60e51b815260040161050b90612edf565b60005460ff1661172f5760405162461bcd60e51b815260040161050b90612c9b565b60015461173b57611b33565b600154600090600019015b808211611b07576000805b8284101561186a5761176161264d565b600260006001878154811061177257fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff161515908201526005549091506004900481602001511115611854576004600554816117df57fe5b0481602001510381602001818152505080600260006001888154811061180157fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208351815591830151600183015591909101516002909101805460ff191691151591909117905561185e565b600192505061186a565b50836001019350611751565b828411611a015761187961264d565b600260006001868154811061188a57fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff161515908201526005549091506004900481602001511115611972576004600554816118f757fe5b0481602001510381602001818152505080600260006001878154811061191957fe5b6000918252602080832091909101546001600160a01b03168352828101939093526040918201902083518155918301516001808401919091559201516002909101805460ff19169115159190911790559150611a019050565b600260006001868154811061198357fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff191690558054806119c757fe5b600082815260209020810160001990810180546001600160a01b0319169055019055836119f45750611a01565b506000199092019161186a565b818015611a0b5750805b15611aea576002600060018681548110611a2157fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff19169055805484908110611a6857fe5b600091825260209091200154600180546001600160a01b039092169186908110611a8e57fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506001805480611ac757fe5b600082815260209020810160001990810180546001600160a01b03191690550190555b82611af6575050611b07565b505060019091019060001901611746565b6040517fcfdb3b6ccaeccbdc68be3c59c840e3b3c90f0a7c491f5fff1cf56cfda200dd9c90600090a150505b565b61100481565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081611b56579050509050611b7f836001600160a01b0316611fa7565b81600081518110611b8c57fe5b6020026020010181905250611ba043611fca565b81600181518110611bad57fe5b6020908102919091010152611bc26038611fca565b81600281518110611bcf57fe5b6020026020010181905250611be342611fca565b81600381518110611bf057fe5b6020026020010181905250611c0481611fdd565b9150505b919050565b611c15612670565b6000611c1f612670565b611c27612682565b611c38611c3386612067565b61208c565b90506000805b611c47836120d6565b15611c805780611c7357611c62611c5d846120f7565b612145565b63ffffffff16845260019150611c78565b611c80565b600101611c3e565b5091935090915050915091565b600081604051602001611ca09190612b66565b6040516020818303038152906040528051906020012083604051602001611cc79190612b66565b604051602081830303815290604052805190602001201490505b92915050565b015190565b8082015160009060ff811615611d06576001915081611d0c565b60009150815b505092915050565b60408051600480825260a0820190925260009160609190816020015b6060815260200190600190039081611d30575050604080516020808252818301909252919250606091908082018180368337019050509050611d758560000151611fca565b82600081518110611d8257fe5b6020026020010181905250611d9d60208660200151836121c7565b611da6816121d7565b82600181518110611db357fe5b6020026020010181905250611dcb8560400151611fca565b82600281518110611dd857fe5b6020026020010181905250611df360208660600151836121c7565b611dfc816121d7565b82600381518110611e0957fe5b6020026020010181905250611e2f6020611e2284611fdd565b80519060200120836121c7565b6040805160b080825260e08201909252606091602082018180368337019050509050611e5f81836000602061222d565b611e718187608001516020606061222d565b611e7f81866080603061222d565b604080516001808252818301909252606091602082018180368337019050509050815160016020830182602086016066600019fa611ebc57600080fd5b506001611eca826000612280565b60ff1614611edf576000945050505050611ce1565b5060019695505050505050565b815181516000916001918114808314611f085760009250611f46565b600160208701838101602088015b600284838510011415611f41578051835114611f355760009650600093505b60209283019201611f16565b505050505b5090949350505050565b60008160200183511015611f6357600080fd5b50016020015190565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081611f87579050509050611b7f836121d7565b60408051600560a21b8318601482015260348101909152606090611c04816121d7565b6060611ce1611fd88361229c565b6121d7565b6060815160001415611ffe5750604080516000815260208101909152611c08565b60608260008151811061200d57fe5b602002602001015190506000600190505b835181101561204e576120448285838151811061203757fe5b6020026020010151612382565b915060010161201e565b50611c04612061825160c060ff166123ff565b82612382565b61206f6126a2565b506040805180820190915281518152602082810190820152919050565b612094612682565b61209d826124d1565b6120a657600080fd5b60006120b5836020015161250b565b60208085015160408051808201909152868152920190820152915050919050565b60006120e06126a2565b505080518051602091820151919092015191011190565b6120ff6126a2565b612108826120d6565b61211157600080fd5b602082015160006121218261256e565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061215a57508151602110155b61216357600080fd5b6000612172836020015161250b565b905080836000015110156121985760405162461bcd60e51b815260040161050b9061304f565b8251602080850151830180519284900392918310156121be57826020036101000a820491505b50949350505050565b9091018181526020918201910152565b6060815160011480156122095750607f60f81b826000815181106121f757fe5b01602001516001600160f81b03191611155b15612215575080611c08565b611ce16122278351608060ff166123ff565b83612382565b60005b818110156106c95783818151811061224457fe5b602001015160f81c60f81b85848060010195508151811061226157fe5b60200101906001600160f81b031916908160001a905350600101612230565b6000816001018351101561229357600080fd5b50016001015190565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166122e057506018612304565b6fffffffffffffffffffffffffffffffff19841661230057506010612304565b5060005b602081101561233a5781818151811061231957fe5b01602001516001600160f81b031916156123325761233a565b600101612304565b60008160200390506060816040519080825280601f01601f19166020018201604052801561236f576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b818310156123b357805183526020928301920161239b565b50855184518101855292509050808201602086015b818310156123e05780518352602092830192016123c8565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106124295760405162461bcd60e51b815260040161050b90612dc0565b604080516001808252818301909252606091602082018180368337019050509050603784116124835782840160f81b8160008151811061246557fe5b60200101906001600160f81b031916908160001a9053509050611ce1565b606061248e8561229c565b90508381510160370160f81b826000815181106124a757fe5b60200101906001600160f81b031916908160001a9053506124c88282612382565b95945050505050565b80516000906124e257506000611c08565b6020820151805160001a9060c082101561250157600092505050611c08565b5060019392505050565b8051600090811a6080811015612525576000915050611c08565b60b8811080612540575060c08110801590612540575060f881105b1561254f576001915050611c08565b60c08110156125635760b519019050611c08565b60f519019050611c08565b80516000908190811a60808110156125895760019150612646565b60b881101561259e57607e1981019150612646565b60c08110156125ef57600060b78203600186019550806020036101000a8651049150600181018201935050808310156125e95760405162461bcd60e51b815260040161050b90612f2f565b50612646565b60f88110156126045760be1981019150612646565b600060f78203600186019550806020036101000a865104915060018101820193505080831015611d0c5760405162461bcd60e51b815260040161050b90612f2f565b5092915050565b604051806060016040528060008152602001600081526020016000151581525090565b60408051602081019091526000815290565b60405180604001604052806126956126a2565b8152602001600081525090565b604051806040016040528060008152602001600081525090565b600082601f8301126126cc578081fd5b81516126df6126da82613316565b6132ef565b818152915060208083019084810160005b84811015612755578151870188603f82011261270b57600080fd5b8381015161271b6126da82613336565b81815260408b8184860101111561273157600080fd5b6127408388840183870161335a565b508652505092820192908201906001016126f0565b505050505092915050565b60008083601f840112612771578182fd5b50813567ffffffffffffffff811115612788578182fd5b6020830191508360208285010111156127a057600080fd5b9250929050565b600082601f8301126127b7578081fd5b81356127c56126da82613336565b91508082528360208285010111156127dc57600080fd5b8060208401602084013760009082016020015292915050565b600060a08284031215612806578081fd5b61281060a06132ef565b905081358152602082013560208201526040820135604082015260608201356060820152608082013567ffffffffffffffff81111561284e57600080fd5b61285a848285016127a7565b60808301525092915050565b600060208284031215612877578081fd5b813561288281613386565b9392505050565b6000806040838503121561289b578081fd5b825167ffffffffffffffff808211156128b2578283fd5b81850186601f8201126128c3578384fd5b805192506128d36126da84613316565b80848252602080830192508084018a8283890287010111156128f3578788fd5b8794505b8685101561291e57805161290a81613386565b8452600194909401939281019281016128f7565b508801519096509350505080821115612935578283fd5b50612942858286016126bc565b9150509250929050565b60006020828403121561295d578081fd5b81518015158114612882578182fd5b60008060008060408587031215612981578182fd5b843567ffffffffffffffff80821115612998578384fd5b6129a488838901612760565b909650945060208701359150808211156129bc578384fd5b506129c987828801612760565b95989497509550505050565b6000602082840312156129e6578081fd5b813567ffffffffffffffff808211156129fd578283fd5b81840160608187031215612a0f578384fd5b612a1960606132ef565b9250803582811115612a29578485fd5b612a35878284016127f5565b845250602081013582811115612a49578485fd5b612a55878284016127f5565b602085015250604081013582811115612a6c578485fd5b612a78878284016127a7565b6040850152509195945050505050565b600060208284031215612a99578081fd5b5035919050565b600060208284031215612ab1578081fd5b5051919050565b600080600060408486031215612acc578283fd5b833560ff81168114612adc578384fd5b9250602084013567ffffffffffffffff811115612af7578283fd5b612b0386828701612760565b9497909650939450505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008151808452612b5281602086016020860161335a565b601f01601f19169290920160200192915050565b60008251612b7881846020870161335a565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b6000602082526128826020830184612b3a565b600060408252612be1604083018688612b10565b8281036020840152612bf4818587612b10565b979650505050505050565b6020808252601f908201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604082015260600190565b6020808252601690820152751d1bdbc81bdb1908189b1bd8dac81a5b9d9bdb1d995960521b604082015260600190565b6020808252818101527f6d616c6963696f757320766f746520736c617368206e6f7420656e61626c6564604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252601a908201527f6e6f2076696f6c6174696f6e206f6620766f74652072756c6573000000000000604082015260600190565b6020808252818101527f7468652066656c6f6e795468726573686f6c64206f7574206f662072616e6765604082015260600190565b6020808252602b908201527f6c656e677468206f6620656e61626c654d616c6963696f7573566f7465536c6160408201526a0e6d040dad2e6dac2e8c6d60ab1b606082015260800190565b60208082526017908201527f766572696679207369676e6174757265206661696c6564000000000000000000604082015260600190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526019908201527f7372634e756d20626967676572207468616e207461724e756d00000000000000604082015260600190565b6020808252602c908201527f7468652066696e616c69747920736c6173682072657761726420726174696f2060408201526b6f7574206f662072616e676560a01b606082015260800190565b60208082526027908201527f6c656e677468206f66206d697364656d65616e6f725468726573686f6c64206d6040820152660d2e6dac2e8c6d60cb1b606082015260800190565b60208082526013908201527274776f206964656e746963616c20766f74657360681b604082015260600190565b60208082526030908201527f746865206d6573736167652073656e646572206d7573742062652076616c696460408201526f185d1bdc94d95d0818dbdb9d1c9858dd60821b606082015260800190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526022908201527f6c656e677468206f662066656c6f6e795468726573686f6c64206d69736d61746040820152610c6d60f31b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526025908201527f746865206d697364656d65616e6f725468726573686f6c64206f7574206f662060408201526472616e676560d81b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b6020808252601e908201527f7265636569766520756e65787065637465642073796e207061636b6167650000604082015260600190565b6020808252602b908201527f6c656e677468206f662066696e616c697479536c61736852657761726452617460408201526a0d2de40dad2e6dac2e8c6d60ab1b606082015260800190565b6020808252818101527f63616e206e6f7420736c61736820747769636520696e206f6e6520626c6f636b604082015260600190565b61ffff91909116815260200190565b90815260200190565b6000838252604060208301526132766040830184612b3a565b949350505050565b918252602082015260400190565b92835260208301919091521515604082015260600190565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff85168252606060208301526132df6060830185612b3a565b9050826040830152949350505050565b60405181810167ffffffffffffffff8111828210171561330e57600080fd5b604052919050565b600067ffffffffffffffff82111561332c578081fd5b5060209081020190565b600067ffffffffffffffff82111561334c578081fd5b50601f01601f191660200190565b60005b8381101561337557818101518382015260200161335d565b838111156116945750506000910152565b6001600160a01b038116811461339b57600080fd5b5056fea26469706673582212207e6be46f5e0281709e9788d33be4928c51610752d8a32e78d1c8c64bea3df55764736f6c63430006040033" + }, + "0x0000000000000000000000000000000000001002": { + "balance": "0x0", + "code": "0x6080604052600436106101a05760003560e01c80637942fd05116100ec578063ac4317511161008a578063f9a2bbc711610064578063f9a2bbc714610550578063fb5478b314610565578063fc3e59081461057a578063fd6a68791461058f576101e4565b8063ac43175114610457578063c81b166214610526578063dc927faf1461053b576101e4565b80639dc09262116100c65780639dc0926214610403578063a1a11bf514610418578063a78abc161461042d578063ab51bb9614610442576101e4565b80637942fd05146103a057806396713da9146103b55780639a99b4f0146103ca576101e4565b80634bf6c882116101595780636e47b482116101335780636e47b4821461034c57806370fd5bad14610361578063718a8aa81461037657806375d47a0a1461038b576101e4565b80634bf6c882146102db57806351e80672146102f05780636d70f7ae14610305576101e4565b80630bee7a67146101e95780630e2374a5146102175780633a0b0eff146102485780633dffc3871461026f57806343756e5c1461029a578063493279b1146102af576101e4565b366101e45734156101e25760408051348152905133917f6c98249d85d88c3753a04a22230f595e4dc8d3dc86c34af35deeeedc861b89db919081900360200190a25b005b600080fd5b3480156101f557600080fd5b506101fe6105a4565b6040805163ffffffff9092168252519081900360200190f35b34801561022357600080fd5b5061022c6105a9565b604080516001600160a01b039092168252519081900360200190f35b34801561025457600080fd5b5061025d6105af565b60408051918252519081900360200190f35b34801561027b57600080fd5b506102846105b5565b6040805160ff9092168252519081900360200190f35b3480156102a657600080fd5b5061022c6105ba565b3480156102bb57600080fd5b506102c46105c0565b6040805161ffff9092168252519081900360200190f35b3480156102e757600080fd5b506102846105c5565b3480156102fc57600080fd5b5061022c6105ca565b34801561031157600080fd5b506103386004803603602081101561032857600080fd5b50356001600160a01b03166105d0565b604080519115158252519081900360200190f35b34801561035857600080fd5b5061022c6105ee565b34801561036d57600080fd5b506102846105f4565b34801561038257600080fd5b506102846105f9565b34801561039757600080fd5b5061022c6105fe565b3480156103ac57600080fd5b50610284610604565b3480156103c157600080fd5b50610284610609565b3480156103d657600080fd5b5061025d600480360360408110156103ed57600080fd5b506001600160a01b03813516906020013561060e565b34801561040f57600080fd5b5061022c6107b9565b34801561042457600080fd5b5061022c6107bf565b34801561043957600080fd5b506103386107c5565b34801561044e57600080fd5b506101fe6107ce565b34801561046357600080fd5b506101e26004803603604081101561047a57600080fd5b81019060208101813564010000000081111561049557600080fd5b8201836020820111156104a757600080fd5b803590602001918460018302840111640100000000831117156104c957600080fd5b9193909290916020810190356401000000008111156104e757600080fd5b8201836020820111156104f957600080fd5b8035906020019184600183028401116401000000008311171561051b57600080fd5b5090925090506107d3565b34801561053257600080fd5b5061022c610b56565b34801561054757600080fd5b5061022c610b5c565b34801561055c57600080fd5b5061022c610b62565b34801561057157600080fd5b5061025d610b68565b34801561058657600080fd5b50610284610b74565b34801561059b57600080fd5b5061022c610b79565b606481565b61200181565b60015481565b600181565b61100181565b603881565b600881565b61200081565b6001600160a01b031660009081526002602052604090205460ff1690565b61100581565b600281565b601081565b61100881565b600b81565b600981565b6000805460ff1661068b57600260208190527fe57bda0a954a7c7381b17b2c763e646ba2c60f67292d287ba583603e2c1c41668054600160ff19918216811790925561100560009081527fe25235fc0de9d7165652bef0846fefda506174abb9a190f03d0f7bcc6146dbce80548316841790559282558254161790555b3360009081526002602052604090205460ff166106d95760405162461bcd60e51b815260040180806020018281038252602b815260200180610c67602b913960400191505060405180910390fd5b60004783106106e857476106ea565b825b9050670de0b6b3a76400008111156107075750670de0b6b3a76400005b8015610788576040516001600160a01b0385169082156108fc029083906000818181858888f19350505050158015610743573d6000803e3d6000fd5b506040805182815290516001600160a01b038616917ff8b71c64315fc33b2ead2adfa487955065152a8ac33d9d5193aafd7f45dc15a0919081900360200190a26107b2565b6040517fe589651933c2457488cc0d8e0941518abf748e799435e4e396d9c4d0b2db2d4d90600090a15b9392505050565b61100781565b61100681565b60005460ff1681565b600081565b33611007146108135760405162461bcd60e51b815260040180806020018281038252602e815260200180610cc1602e913960400191505060405180910390fd5b61087584848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600b81526a30b23227b832b930ba37b960a91b60208201529150610b7f9050565b1561094d57606082828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050825192935050601490911490506108f85760405162461bcd60e51b815260040180806020018281038252602c815260200180610cef602c913960400191505060405180910390fd5b60148101516001600160a01b038116600081815260026020526040808220805460ff19166001179055517f9870d7fe5d112134c55844951dedf365363006d9c588db07c4c85af6322a06199190a25050610ac4565b6109b284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600e81526d3232b632ba32a7b832b930ba37b960911b60208201529150610b7f9050565b15610a8757606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060149091149050610a355760405162461bcd60e51b815260040180806020018281038252602f815260200180610c92602f913960400191505060405180910390fd5b60148101516001600160a01b038116600081815260026020526040808220805460ff19169055517fb40992a19dba61ea600e87fce607102bf5908dc89076217b6ca6ae195224f7029190a25050610ac4565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b61100281565b61100381565b61100081565b670de0b6b3a764000081565b600381565b61100481565b6000816040516020018082805190602001908083835b60208310610bb45780518252601f199092019160209182019101610b95565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310610c225780518252601f199092019160209182019101610c03565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052805190602001201490509291505056fe6f6e6c79206f70657261746f7220697320616c6c6f77656420746f2063616c6c20746865206d6574686f646c656e677468206f662076616c756520666f722064656c6574654f70657261746f722073686f756c64206265203230746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662076616c756520666f72206164644f70657261746f722073686f756c64206265203230a264697066735822122078be72e2672a87e28d3e6849bea141a139b304a089fceb003c016dabd5f556fb64736f6c63430006040033" + }, + "0x0000000000000000000000000000000000001006": { + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b50600436106102275760003560e01c80638f83ab1311610130578063c81b1662116100b8578063f3ae24151161007c578063f3ae2415146104e8578063f9a2bbc71461050e578063fc3e590814610516578063fd30d9b81461051e578063fd6a68791461052657610227565b8063c81b1662146104c0578063dc927faf146104c8578063dd91d1c5146104d0578063e1c7392a146104d8578063e79a198f146104e057610227565b8063a1a11bf5116100ff578063a1a11bf5146103de578063a74b83ca146103e6578063a78abc16146103ee578063ab51bb96146103f6578063ac431751146103fe57610227565b80638f83ab13146103a057806395468d26146103c657806396713da9146103ce5780639dc09262146103d657610227565b8063541d5548116101b3578063718a8aa811610182578063718a8aa81461034857806375d47a0a1461035057806378beee67146103585780637942fd051461037e5780637ae230881461038657610227565b8063541d5548146102d85780636a6a419e146103125780636e47b4821461033857806370fd5bad1461034057610227565b80633dffc387116101fa5780633dffc3871461028357806343756e5c146102a1578063493279b1146102a95780634bf6c882146102c857806351e80672146102d057610227565b806303aff02b1461022c578063049a5716146102365780630bee7a671461025a5780630e2374a51461027b575b600080fd5b61023461052e565b005b61023e610539565b604080516001600160a01b039092168252519081900360200190f35b610262610551565b6040805163ffffffff9092168252519081900360200190f35b61023e610556565b61028b61055c565b6040805160ff9092168252519081900360200190f35b61023e610561565b6102b1610567565b6040805161ffff9092168252519081900360200190f35b61028b61056c565b61023e610571565b6102fe600480360360208110156102ee57600080fd5b50356001600160a01b0316610577565b604080519115158252519081900360200190f35b6102fe6004803603602081101561032857600080fd5b50356001600160a01b0316610595565b61023e6105b3565b61028b6105b9565b61028b6105be565b61023e6105c3565b6102346004803603602081101561036e57600080fd5b50356001600160a01b03166105c9565b61028b6107b1565b61038e6107b6565b60408051918252519081900360200190f35b610234600480360360208110156103b657600080fd5b50356001600160a01b03166107c3565b61038e610a02565b61028b610a0e565b61023e610a13565b61023e610a19565b61023e610a1f565b6102fe610a37565b610262610a40565b6102346004803603604081101561041457600080fd5b81019060208101813564010000000081111561042f57600080fd5b82018360208201111561044157600080fd5b8035906020019184600183028401116401000000008311171561046357600080fd5b91939092909160208101903564010000000081111561048157600080fd5b82018360208201111561049357600080fd5b803590602001918460018302840111640100000000831117156104b557600080fd5b509092509050610a45565b61023e610d96565b61023e610d9c565b610234610da2565b610234610e43565b610234610ec5565b6102fe600480360360208110156104fe57600080fd5b50356001600160a01b031661107e565b61023e61109c565b61028b6110a2565b6102fe6110a7565b61023e6110b0565b610537336110b6565b565b73b005741528b86f5952469d80a8614591e3c5b63281565b606481565b61200181565b600181565b61100181565b603881565b600881565b61200081565b6001600160a01b031660009081526007602052604090205460ff1690565b6001600160a01b031660009081526008602052604090205460ff1690565b61100581565b600281565b601081565b61100881565b3360009081526008602052604090205460ff166106175760405162461bcd60e51b81526004018080602001828103825260248152602001806115c26024913960400191505060405180910390fd5b61062033611218565b1561065c5760405162461bcd60e51b815260040180806020018281038252602181526020018061157f6021913960400191505060405180910390fd5b3233146106b0576040805162461bcd60e51b815260206004820152601e60248201527f70726f766973696f6e616c2072656c6179657220697320612070726f78790000604482015290519081900360640190fd5b6001600160a01b038181166000908152600960205260409020541633146107085760405162461bcd60e51b815260040180806020018281038252602781526020018061163b6027913960400191505060405180910390fd5b6001600160a01b03818116600081815260066020908152604080832080543380865260078086528487208054600160ff199182161790915584546001600160a01b031990811684179095556008875285882080548216905597875260098652848720805490941690935596168085529083529281902080549094169093558251828152908101939093528151909260008051602061166283398151915292908290030190a15050565b600b81565b68056bc75e2d6310000081565b3360009081526005602052604090205460ff16610820576040805162461bcd60e51b81526020600482015260166024820152751b585b9859d95c88191bd95cc81b9bdd08195e1a5cdd60521b604482015290519081900360640190fd5b61082981611218565b156108655760405162461bcd60e51b81526004018080602001828103825260278152602001806115e66027913960400191505060405180910390fd5b6001600160a01b03811615610921576001600160a01b03811660009081526007602052604090205460ff16156108db576040805162461bcd60e51b815260206004820152601660248201527572656c6179657220616c72656164792065786973747360501b604482015290519081900360640190fd5b6001600160a01b0381166000818152600860209081526040808320805460ff191660011790553383526009909152902080546001600160a01b03191690911790556109c2565b3360008181526006602090815260408083208054600980855283862080546001600160a01b03198085169095556001600160a01b0393841680895260078852868920805460ff19908116909155918516808a5260088952878a20805490931690925598909752908552805490921690915581518581529086169281019290925280516000805160206116628339815191529281900390910190a150506109ff565b604080516001600160a01b038316815290517ffba56633276570c7d3120d4535bf3bce26523da53958e40734210b9fd99b36939181900360200190a15b50565b67016345785d8a000081565b600981565b61100781565b61100681565b73446aa6e0dc65690403df3f127750da1322941f3e81565b60005460ff1681565b600081565b60005460ff16610a98576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b3361100714610ad85760405162461bcd60e51b815260040180806020018281038252602e81526020018061160d602e913960400191505060405180910390fd5b610b3984848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600a81526930b23226b0b730b3b2b960b11b6020820152915061121e9050565b15610bd15760148114610b7d5760405162461bcd60e51b81526004018080602001828103825260228152602001806115a06022913960400191505060405180910390fd5b6000610bc0601484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061130592505050565b9050610bcb8161130a565b50610d04565b610c3584848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c3932b6b7bb32a6b0b730b3b2b960991b6020820152915061121e9050565b15610cc75760148114610c795760405162461bcd60e51b81526004018080602001828103825260228152602001806115a06022913960400191505060405180910390fd5b6000610cbc601484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061130592505050565b9050610bcb816110b6565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b61100281565b61100381565b600a5460ff1615610dfa576040805162461bcd60e51b815260206004820152601e60248201527f7468652077686974656c6973747320616c726561647920757064617465640000604482015290519081900360640190fd5b610e1773b005741528b86f5952469d80a8614591e3c5b6326113cc565b610e3473446aa6e0dc65690403df3f127750da1322941f3e6113cc565b600a805460ff19166001179055565b60005460ff1615610e9b576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b68056bc75e2d63100000600190815567016345785d8a00006002556000805460ff19169091179055565b3360009081526004602052604090205460ff16610f20576040805162461bcd60e51b81526020600482015260146024820152731c995b185e595c88191bc81b9bdd08195e1a5cdd60621b604482015290519081900360640190fd5b60005460ff16610f73576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b610f7b611564565b5033600081815260036020908152604091829020825180840190935280548084526001909101549183018290529192916108fc91610fbf919063ffffffff61148416565b6040518115909202916000818181858888f19350505050158015610fe7573d6000803e3d6000fd5b50602081015160405161100291829181156108fc0291906000818181858888f1935050505015801561101d573d6000803e3d6000fd5b50336000818152600460209081526040808320805460ff191690556003825280832083815560010192909255815192835290517fd17202129b83db7880d6b9f25df81c58ad46f7e0e2c92236b1aa10663a4876679281900390910190a15050565b6001600160a01b031660009081526005602052604090205460ff1690565b61100081565b600381565b600a5460ff1681565b61100481565b6001600160a01b03811660009081526005602052604090205460ff1661111b576040805162461bcd60e51b81526020600482015260156024820152741b585b9859d95c88191bd95cdb89dd08195e1a5cdd605a1b604482015290519081900360640190fd5b6001600160a01b038082166000818152600660209081526040808320805460058452828520805460ff1990811690915582546001600160a01b0319908116909355600980865284872080548a16885260088752858820805490931690925595879052948452845490911690935580519384525191909316927f2002866d443ac6c241fecaaa2af4895828c7de2cc423b9d01f7969650f557c76928290030190a16001600160a01b03811615611214576001600160a01b0381166000818152600760209081526040808320805460ff1916905580519384529083019190915280516000805160206116628339815191529281900390910190a15b5050565b3b151590565b6000816040516020018082805190602001908083835b602083106112535780518252601f199092019160209182019101611234565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106112c15780518252601f1990920191602091820191016112a2565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b6001600160a01b03811660009081526005602052604090205460ff1615611371576040805162461bcd60e51b81526020600482015260166024820152756d616e6167657220616c72656164792065786973747360501b604482015290519081900360640190fd5b6001600160a01b038116600081815260056020908152604091829020805460ff19166001179055815192835290517fe0de8e71a22c046647f4ef744348fa126ad6d052d4ce070999481f69d45575179281900390910190a150565b6001600160a01b03811660008181526005602090815260408083208054600160ff1991821681179092556006845282852080546001600160a01b031916871790556007845293829020805490941617909255815192835290517fe0de8e71a22c046647f4ef744348fa126ad6d052d4ce070999481f69d45575179281900390910190a160408051600081526001600160a01b03831660208201528151600080516020611662833981519152929181900390910190a150565b60006114c683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506114cd565b9392505050565b6000818484111561155c5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611521578181015183820152602001611509565b50505050905090810190601f16801561154e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60405180604001604052806000815260200160008152509056fe70726f766973696f6e616c2072656c61796572206973206120636f6e74726163746c656e677468206f66206d616e616765722061646472657373206d69736d6174636872656c61796572206973206e6f7420612070726f766973696f6e616c2072656c61796572636f6e7472616374206973206e6f7420616c6c6f77656420746f20626520612072656c61796572746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e747261637470726f766973696f6e616c206973206e6f742073657420666f722074686973206d616e61676572a5a19d7e9dab30a215022382d7abe782b579986fcbedec9942ecd0db9510a148a2646970667358221220ca640b19c40787a49d8b8b52c563d76e0125386bfdf94825087004f989e9989d64736f6c63430006040033" + }, + "0x0000000000000000000000000000000000002000": { + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b50600436106103995760003560e01c8063718a8aa8116101e9578063c27cdcfb1161010f578063dc927faf116100ad578063f7a251d71161007c578063f7a251d714610b2f578063f9a2bbc714610ba7578063fc3e590814610baf578063fd6a687914610bb757610399565b8063dc927faf14610af7578063e1c7392a14610aff578063e3b0480514610b07578063e6400bbe14610b2757610399565b8063ccc108d7116100e9578063ccc108d714610ab0578063d31f968d14610ab8578063d76a867514610ae7578063dc40433114610aef57610399565b8063c27cdcfb14610a80578063c780e9de14610aa0578063c81b166214610aa857610399565b80638cc8f56111610187578063a78abc1611610156578063a78abc16146109b2578063ab51bb96146109ba578063ac431751146109c2578063b0355f5b1461078157610399565b80638cc8f5611461088757806396713da91461099a5780639dc09262146109a2578063a1a11bf5146109aa57610399565b806375d47a0a116101c357806375d47a0a146108a75780637942fd05146108af57806384013b6a146108b7578063863fe4ab1461099257610399565b8063718a8aa81461088f578063719482d51461089757806374f079b81461089f57610399565b8063422f9050116102ce57806363e1394e1161026c5780636de380bd1161023b5780636de380bd146108575780636e47a51a1461085f5780636e47b4821461087f57806370fd5bad1461088757610399565b806363e1394e146107ff5780636a3cb34d146108075780636bacff2c1461080f5780636c46aa681461080757610399565b80634bf6c882116102a85780634bf6c882146107b957806351e80672146107c15780635692ddd3146107c95780635f832177146107d157610399565b8063422f90501461078957806343756e5c146107a9578063493279b1146107b157610399565b8063299b533d1161033b578063308325f411610315578063308325f4146106155780633a648b151461061d5780633bdc47a6146106595780633dffc3871461078157610399565b8063299b533d146105a35780632af6f399146105d75780632ff32aea146105f457610399565b806314b3023b1161037757806314b3023b146104015780631d1309351461041b5780631e275ae11461043757806322556cdc1461059b57610399565b806305e682581461039e5780630bee7a67146103bc5780630e2374a5146103dd575b600080fd5b6103a6610bbf565b6040805160ff9092168252519081900360200190f35b6103c4610bc4565b6040805163ffffffff9092168252519081900360200190f35b6103e5610bc9565b604080516001600160a01b039092168252519081900360200190f35b610409610bcf565b60408051918252519081900360200190f35b610423610bd5565b604080519115158252519081900360200190f35b610599600480360361010081101561044e57600080fd5b81018160a081016080820135600160201b81111561046b57600080fd5b82018360208201111561047d57600080fd5b803590602001918460018302840111600160201b8311171561049e57600080fd5b919390929091602081019035600160201b8111156104bb57600080fd5b8201836020820111156104cd57600080fd5b803590602001918460018302840111600160201b831117156104ee57600080fd5b919390929091602081019035600160201b81111561050b57600080fd5b82018360208201111561051d57600080fd5b803590602001918460018302840111600160201b8311171561053e57600080fd5b919390929091602081019035600160201b81111561055b57600080fd5b82018360208201111561056d57600080fd5b803590602001918460018302840111600160201b8311171561058e57600080fd5b509092509050610bde565b005b6104096112c2565b6105c0600480360360208110156105b957600080fd5b50356112c7565b6040805161ffff9092168252519081900360200190f35b610423600480360360208110156105ed57600080fd5b50356112dd565b6105fc6112f2565b60408051600792830b90920b8252519081900360200190f35b6104096112fb565b61063d6004803603602081101561063357600080fd5b503560ff16611301565b604080516001600160401b039092168252519081900360200190f35b61070c6004803603606081101561066f57600080fd5b60ff82351691602081013591810190606081016040820135600160201b81111561069857600080fd5b8201836020820111156106aa57600080fd5b803590602001918460018302840111600160201b831117156106cb57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061131c945050505050565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561074657818101518382015260200161072e565b50505050905090810190601f1680156107735780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103a6611392565b6104236004803603602081101561079f57600080fd5b503560ff16611397565b6103e56113ac565b6105c06113b2565b6103a66113b7565b6103e56113bc565b6104096113c2565b610599600480360360408110156107e757600080fd5b506001600160a01b03813581169160200135166113f2565b610409611652565b6105c061167a565b61082c6004803603602081101561082557600080fd5b503561167f565b6040805161ffff90941684526001600160801b03909216602084015282820152519081900360600190f35b6104096116ae565b6103e56004803603602081101561087557600080fd5b503560ff166116d5565b6103e56116f0565b6103a661167a565b6103a66116f6565b6105c0611392565b6104096116fb565b6103e5611701565b6103a6611707565b610599600480360360a08110156108cd57600080fd5b810190602081018135600160201b8111156108e757600080fd5b8201836020820111156108f957600080fd5b803590602001918460018302840111600160201b8311171561091a57600080fd5b919390929091602081019035600160201b81111561093757600080fd5b82018360208201111561094957600080fd5b803590602001918460018302840111600160201b8311171561096a57600080fd5b919350915080356001600160401b03908116916020810135909116906040013560ff1661170c565b6104096129c6565b6103a66129ce565b6103e56129d3565b6103e56129d9565b6104236129df565b6103c4610bbf565b610599600480360360408110156109d857600080fd5b810190602081018135600160201b8111156109f257600080fd5b820183602082011115610a0457600080fd5b803590602001918460018302840111600160201b83111715610a2557600080fd5b919390929091602081019035600160201b811115610a4257600080fd5b820183602082011115610a5457600080fd5b803590602001918460018302840111600160201b83111715610a7557600080fd5b5090925090506129e8565b61063d60048036036020811015610a9657600080fd5b503560ff166134ac565b6104096134c7565b6103e56134eb565b6105996134f1565b61042360048036036040811015610ace57600080fd5b5080356001600160a01b0316906020013560ff16613745565b61070c613765565b610409613784565b6103e561378a565b610599613790565b61063d60048036036020811015610b1d57600080fd5b503560ff16613b47565b610599613b62565b61059960048036036060811015610b4557600080fd5b60ff8235169190810190604081016020820135600160201b811115610b6957600080fd5b820183602082011115610b7b57600080fd5b803590602001918460018302840111600160201b83111715610b9c57600080fd5b919350915035613d81565b6103e5613ec4565b6103a6613eca565b6103e5613ecf565b600081565b606481565b61200181565b60015481565b600b5460ff1681565b60005460ff16610c23576040805162461bcd60e51b815260206004820152601960248201526000805160206149b2833981519152604482015290519081900360640190fd5b604080516337d7f9c160e21b81526001600160401b038b35166004820181905291516110039163df5fe704916024808301926020929190829003018186803b158015610c6e57600080fd5b505afa158015610c82573d6000803e3d6000fd5b505050506040513d6020811015610c9857600080fd5b5051610cd55760405162461bcd60e51b81526004018080602001828103825260238152602001806149d26023913960400191505060405180910390fd5b604080516337d7f9c160e21b815260208c8101356001600160401b03166004830181905292516110039263df5fe704926024808301939192829003018186803b158015610d2157600080fd5b505afa158015610d35573d6000803e3d6000fd5b505050506040513d6020811015610d4b57600080fd5b5051610d885760405162461bcd60e51b81526004018080602001828103825260238152602001806149d26023913960400191505060405180910390fd5b60608b013560ff81166000908152600560205260409020546001600160401b03909116906001600160a01b0316610e01576040805162461bcd60e51b815260206004820152601860248201527718da185b9b995b081a5cc81b9bdd081cdd5c1c1bdc9d195960421b604482015290519081900360640190fd5b600b5460ff1615610e45576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b8888604051808383808284376040519201829003822094508f93508e9250819050838380828437808301925050509250505060405180910390201415610ec1576040805162461bcd60e51b815260206004820152600c60248201526b1cd85b59481c185e5b1bd85960a21b604482015290519081900360640190fd5b60606001600160401b0360408e01358116908e83013516610ee28282613ed5565b80516020808301919091206000818152600e9092526040909120549194509060ff1615610f4b576040805162461bcd60e51b8152602060048201526012602482015271185b1c9958591e4818da185b1b195b99d95960721b604482015290519081900360640190fd5b6000908152600e60205260408120805460ff191660011790558f8160200201356001600160401b0316905060608f8f8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060608c8c8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506040805163cba510a960e01b81526001600160401b038a16600482015290519596509094611003945063cba510a9935060248083019350602092829003018186803b15801561104157600080fd5b505afa158015611055573d6000803e3d6000fd5b505050506040513d602081101561106b57600080fd5b505160408051808201909152600381526269626360e81b6020820152909150611098908290898686613f1d565b6110e1576040805162461bcd60e51b81526020600482015260156024820152740696e76616c6964206d65726b6c652070726f6f663605c1b604482015290519081900360640190fd5b5050505060008f6001600481106110f457fe5b60200201356001600160401b0316905060608d8d8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8f018190048102820181019092528d815293945060609392508d91508c908190840183828082843760009201829052506040805163cba510a960e01b81526001600160401b038a16600482015290519596509094611003945063cba510a9935060248083019350602092829003018186803b1580156111c057600080fd5b505afa1580156111d4573d6000803e3d6000fd5b505050506040513d60208110156111ea57600080fd5b505160408051808201909152600381526269626360e81b6020820152909150611217908290898686613f1d565b611260576040805162461bcd60e51b8152602060048201526015602482015274696e76616c6964206d65726b6c652070726f6f663160581b604482015290519081900360640190fd5b5050505061126c61401a565b604080516001600160401b038416815260ff83166020820152815133927f039eb91179ffd7d3b6e97f8ea106e748e827f910b872375dbc9c14a362319c3c928290030190a2505050505050505050505050505050565b603281565b600d6020526000908152604090205461ffff1681565b600e6020526000908152604090205460ff1681565b60045460070b81565b60025481565b600a602052600090815260409020546001600160401b031681565b60606000825160210190506060816040519080825280601f01601f191660200182016040528015611354576020820181803683370190505b506021810186905260018101879052828152905060418101600061137786614098565b509050611386818388516140a2565b50909695505050505050565b600181565b60096020526000908152604090205460ff1681565b61100181565b603881565b600881565b61200081565b604080517710d05390d15317d514905394d1915497d41493d413d4d05360421b8152905190819003601801902081565b60005460ff16611437576040805162461bcd60e51b815260206004820152601960248201526000805160206149b2833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b15801561147a57600080fd5b505afa15801561148e573d6000803e3d6000fd5b505050506040513d60208110156114a457600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b1580156114e557600080fd5b505afa1580156114f9573d6000803e3d6000fd5b505050506040513d602081101561150f57600080fd5b505190508061151c575060155b60008211801561152c5750808211155b61156b576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b604080516001600160a01b038087166020808401919091529086168284015282518083038401815260608301808552815191909201207710d05390d15317d514905394d1915497d41493d413d4d05360421b90915291519081900360780190206000906115d890836140e3565b9050801561164a5760408051630911a2c160e11b81526001600160a01b03888116600483015287166024820152905161100491631223458291604480830192600092919082900301818387803b15801561163157600080fd5b505af1158015611645573d6000803e3d6000fd5b505050505b505050505050565b604080516f14d554d411539117d41493d413d4d05360821b8152905190819003601001902081565b600281565b600c602052600090815260409020805460019091015461ffff8216916201000090046001600160801b03169083565b604080516e149153d4115397d41493d413d4d053608a1b8152905190819003600f01902081565b6005602052600090815260409020546001600160a01b031681565b61100581565b601081565b60035481565b61100881565b600b81565b60005460ff16611751576040805162461bcd60e51b815260206004820152601960248201526000805160206149b2833981519152604482015290519081900360640190fd5b60408051630a83aaa960e31b815233600482015290516110069163541d5548916024808301926020929190829003018186803b15801561179057600080fd5b505afa1580156117a4573d6000803e3d6000fd5b505050506040513d60208110156117ba57600080fd5b505161180d576040805162461bcd60e51b815260206004820152601f60248201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604482015290519081900360640190fd5b60ff8116600090815260086020526040902054829082906001600160401b03908116908316811461187d576040805162461bcd60e51b815260206004820152601560248201527439b2b8bab2b731b2903737ba1034b71037b93232b960591b604482015290519081900360640190fd5b60ff8216600090815260086020908152604091829020805467ffffffffffffffff1916600185016001600160401b039081169190911790915582516337d7f9c160e21b81529089166004820152915188926110039263df5fe70492602480840193829003018186803b1580156118f257600080fd5b505afa158015611906573d6000803e3d6000fd5b505050506040513d602081101561191c57600080fd5b50516119595760405162461bcd60e51b81526004018080602001828103825260238152602001806149d26023913960400191505060405180910390fd5b60ff851660009081526005602052604090205485906001600160a01b03166119c3576040805162461bcd60e51b815260206004820152601860248201527718da185b9b995b081a5cc81b9bdd081cdd5c1c1bdc9d195960421b604482015290519081900360640190fd5b60ff86166000908152600a6020526040902054889087906001600160401b039081169083161015611a2c576040805162461bcd60e51b815260206004820152600e60248201526d3a37b79037b632103432b0b232b960911b604482015290519081900360640190fd5b60ff81166000908152600a60205260409020546001600160401b03838116911614611a7e5760ff81166000908152600a60205260409020805467ffffffffffffffff19166001600160401b0384161790555b600b5460ff1615611ac2576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b60608e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060608d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509050611c066110036001600160a01b031663cba510a98e6040518263ffffffff1660e01b815260040180826001600160401b03166001600160401b0316815260200191505060206040518083038186803b158015611baf57600080fd5b505afa158015611bc3573d6000803e3d6000fd5b505050506040513d6020811015611bd957600080fd5b505160408051808201909152600381526269626360e81b6020820152611bff8e8e613ed5565b8585613f1d565b611c4e576040805162461bcd60e51b815260206004820152601460248201527334b73b30b634b21036b2b935b63290383937b7b360611b604482015290519081900360640190fd5b60408051631bb5062960e31b81526001600160401b038e16600482015290516000916110039163dda8314891602480820192602092909190829003018186803b158015611c9a57600080fd5b505afa158015611cae573d6000803e3d6000fd5b505050506040513d6020811015611cc457600080fd5b505190508b8b600080806060611cd9896143c8565b935093509350935083611d9b578460ff16866001600160401b03167ff7b2e42d694eb1100184aae86d4245d9e46966100b1dc7e723275b98326854ac8b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015611d53578181015183820152602001611d3b565b50505050905090810190601f168015611d805780820380516001836020036101000a031916815260200191505b509250505060405180910390a35050505050505050506129b6565b6040805160ff85811682529151918716916001600160401b038916917f36afdaf439a8f43fe72135135d804ae620b37a474f0943b5b85f6788312cad40919081900360200190a360ff83166123205760ff85166000818152600560209081526040808320548151631182b87560e01b815260048101958652602481019283528651604482015286516001600160a01b03909216958695631182b875958d958a9593949093606490910192918601918190849084905b83811015611e68578181015183820152602001611e50565b50505050905090810190601f168015611e955780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b158015611eb557600080fd5b505af1925050508015611f9957506040513d6000823e601f3d908101601f191682016040526020811015611ee857600080fd5b8101908080516040519392919084600160201b821115611f0757600080fd5b908301906020820185811115611f1c57600080fd5b8251600160201b811182820188101715611f3557600080fd5b82525081516020918201929091019080838360005b83811015611f62578181015183820152602001611f4a565b50505050905090810190601f168015611f8f5780820380516001836020036101000a031916815260200191505b5060405250505060015b6122ab576040516000815260443d1015611fb557506000612050565b60046000803e60005160e01c6308c379a08114611fd6576000915050612050565b60043d036004833e81513d60248201116001600160401b038211171561200157600092505050612050565b80830180516001600160401b03811115612022576000945050505050612050565b8060208301013d860181111561204057600095505050505050612050565b601f01601f191660405250925050505b8061205b575061216d565b60ff8716600090815260076020526040812054612092916001600160401b0390911690899061208d906002908861131c565b614478565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf948794849390840192918601918190849084905b8381101561212d578181015183820152602001612115565b50505050905090810190601f16801561215a5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2506122a6565b3d808015612197576040519150601f19603f3d011682016040523d82523d6000602084013e61219c565b606091505b5060ff87166000908152600760205260408120546121cf916001600160401b0390911690899061208d906002908861131c565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351948794849390840192918601918190849084905b8381101561226a578181015183820152602001612252565b50505050905090810190601f1680156122975780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b61231a565b8051156123185760ff87166000908152600760205260408120546122e4916001600160401b0390911690899061208d906001908661131c565b60ff8716600090815260076020526040902080546001600160401b038082166001011667ffffffffffffffff199091161790555b505b506128ee565b60ff8316600114156125c45760ff8516600081815260056020908152604080832054815163831d65d160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563831d65d1958d958a9593949093606490910192918601918190849084905b838110156123aa578181015183820152602001612392565b50505050905090810190601f1680156123d75780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b1580156123f757600080fd5b505af1925050508015612408575060015b61231a576040516000815260443d1015612424575060006124bf565b60046000803e60005160e01c6308c379a081146124455760009150506124bf565b60043d036004833e81513d60248201116001600160401b0382111715612470576000925050506124bf565b80830180516001600160401b038111156124915760009450505050506124bf565b8060208301013d86018111156124af576000955050505050506124bf565b601f01601f191660405250925050505b806124ca575061252f565b60408051602080825283518183015283516001600160a01b038616937ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf938693909283928301918501908083836000831561212d578181015183820152602001612115565b3d808015612559576040519150601f19603f3d011682016040523d82523d6000602084013e61255e565b606091505b5060408051602080825283518183015283516001600160a01b038616937f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351938693909283928301918501908083836000831561226a578181015183820152602001612252565b60ff8316600214156128ee5760ff8516600081815260056020908152604080832054815163c8509d8160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563c8509d81958d958a9593949093606490910192918601918190849084905b8381101561264e578181015183820152602001612636565b50505050905090810190601f16801561267b5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561269b57600080fd5b505af19250505080156126ac575060015b6128ec576040516000815260443d10156126c857506000612763565b60046000803e60005160e01c6308c379a081146126e9576000915050612763565b60043d036004833e81513d60248201116001600160401b038211171561271457600092505050612763565b80830180516001600160401b03811115612735576000945050505050612763565b8060208301013d860181111561275357600095505050505050612763565b601f01601f191660405250925050505b8061276e5750612817565b816001600160a01b03167ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf826040518080602001828103825283818151815260200191508051906020019080838360005b838110156127d75781810151838201526020016127bf565b50505050905090810190601f1680156128045780820380516001836020036101000a031916815260200191505b509250505060405180910390a2506128ec565b3d808015612841576040519150601f19603f3d011682016040523d82523d6000602084013e612846565b606091505b50816001600160a01b03167f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351826040518080602001828103825283818151815260200191508051906020019080838360005b838110156128b0578181015183820152602001612898565b50505050905090810190601f1680156128dd5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b505b60ff80861660009081526009602052604090205461100591636f93d2e6918a91339187911680612920575060ff881615155b604080516001600160e01b031960e088901b1681526001600160a01b039586166004820152939094166024840152604483019190915215156064820152905160848083019260209291908290030181600087803b15801561298057600080fd5b505af1158015612994573d6000803e3d6000fd5b505050506040513d60208110156129aa57600080fd5b50505050505050505050505b5050505050505050505050505050565b630100380081565b600981565b61100781565b61100681565b60005460ff1681565b3361100714612a285760405162461bcd60e51b815260040180806020018281038252602e815260200180614908602e913960400191505060405180910390fd5b600b5460ff1615612a6c576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b612ad584848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526012815271626174636853697a65466f724f7261636c6560701b602082015291506146129050565b15612b7057604080516020601f8401819004810282018101909252828152600091612b18918585808385018382808284376000920191909152506146f992505050565b90506127108111158015612b2d5750600a8110155b612b685760405162461bcd60e51b81526004018080602001828103825260328152602001806149806032913960400191505060405180910390fd5b60015561341a565b612bd984848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601281527118591913dc955c19185d1950da185b9b995b60721b602082015291506146129050565b15612d6157606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060169091149050612c5c5760405162461bcd60e51b815260040180806020018281038252605a815260200180614821605a913960600191505060405180910390fd5b60018101516002820151601683015160ff82161590612c7a816146fe565b612ccb576040805162461bcd60e51b815260206004820152601960248201527f61646472657373206973206e6f74206120636f6e747261637400000000000000604482015290519081900360640190fd5b60ff8416600081815260056020908152604080832080546001600160a01b0319166001600160a01b038716908117909155808452600683528184208585528352818420805460ff199081166001179091556009909352818420805490931687151517909255519092917f7e3b6af43092577ee20e60eaa1d9b114a7031305c895ee7dd3ffe17196d2e1e091a3505050505061341a565b612dce84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526016815275195b98589b1953dc911a5cd8589b1950da185b9b995b60521b602082015291506146129050565b15612eff57606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060029091149050612e515760405162461bcd60e51b815260040180806020018281038252604a815260200180614936604a913960600191505060405180910390fd5b600181810151600283015160ff80831660009081526005602052604090205492939192908316909114906001600160a01b03168015612ef5576001600160a01b038116600090815260066020908152604080832060ff881680855290835292819020805460ff1916861515908117909155815190815290517fa3132e3f9819fbddc7f0ed6d38d7feef59aa95112090b7c592f5cb5bc4aa4adc929181900390910190a25b505050505061341a565b612f6384848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c73757370656e6451756f72756d60981b602082015291506146129050565b156130985760028114612fa75760405162461bcd60e51b815260040180806020018281038252602d8152602001806148af602d913960400191505060405180910390fd5b6000612fea600284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506146f992505050565b905060008161ffff16118015613004575060648161ffff16105b61304e576040805162461bcd60e51b8152602060048201526016602482015275696e76616c69642073757370656e642071756f72756d60501b604482015290519081900360640190fd5b604080516f14d554d411539117d41493d413d4d05360821b815281519081900360100190206000908152600d60205220805461ffff90921661ffff1990921691909117905561341a565b6130fb84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600c81526b72656f70656e51756f72756d60a01b602082015291506146129050565b1561322e576002811461313f5760405162461bcd60e51b815260040180806020018281038252602c8152602001806148dc602c913960400191505060405180910390fd5b6000613182600284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506146f992505050565b905060008161ffff1611801561319c575060648161ffff16105b6131e5576040805162461bcd60e51b8152602060048201526015602482015274696e76616c69642072656f70656e2071756f72756d60581b604482015290519081900360640190fd5b604080516e149153d4115397d41493d413d4d053608a1b8152815190819003600f0190206000908152600d60205220805461ffff90921661ffff1990921691909117905561341a565b61329984848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601481527363616e63656c5472616e7366657251756f72756d60601b602082015291506146129050565b156133dd57600281146132dd5760405162461bcd60e51b815260040180806020018281038252603481526020018061487b6034913960400191505060405180910390fd5b6000613320600284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506146f992505050565b905060008161ffff1611801561333a575060648161ffff16105b61338b576040805162461bcd60e51b815260206004820152601e60248201527f696e76616c69642063616e63656c207472616e736665722071756f72756d0000604482015290519081900360640190fd5b604080517710d05390d15317d514905394d1915497d41493d413d4d05360421b815281519081900360180190206000908152600d60205220805461ffff90921661ffff1990921691909117905561341a565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b6008602052600090815260409020546001600160401b031681565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081565b61100281565b60005460ff16613536576040805162461bcd60e51b815260206004820152601960248201526000805160206149b2833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b15801561357957600080fd5b505afa15801561358d573d6000803e3d6000fd5b505050506040513d60208110156135a357600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b1580156135e457600080fd5b505afa1580156135f8573d6000803e3d6000fd5b505050506040513d602081101561360e57600080fd5b505190508061361b575060155b60008211801561362b5750808211155b61366a576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b600b5460ff166136b1576040805162461bcd60e51b815260206004820152600d60248201526c1b9bdd081cdd5cdc195b991959609a1b604482015290519081900360640190fd5b604080516e149153d4115397d41493d413d4d053608a1b8152905190819003600f019020600090613702907fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4706140e3565b9050801561374057600b805460ff1916905560405133907f899fe8c37dc61708a3aaa99c4bf143346c1d1da69af79be9e8920c0a6785b75290600090a25b505050565b600660209081526000928352604080842090915290825290205460ff1681565b6040518060400160405280600381526020016269626360e81b81525081565b610e1081565b61100381565b60005460ff16156137e8576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b7f1471eb6eb2c5e789fc3de43f8ce62938c7d1836ec861730447e2ada8fd81017b80546001600160a01b0319908116611008179091557f92e85d02570a8092d09a6e3a57665bc3815a2699a4074001bf1ccabf660f5a36805460ff199081169091557fd8af288fc1c8680b4f4706064cf021e264efb6828fcaf7eb5ca36818eb365bcc8054821660019081179091557f89832631fb3c3307a103ba2c84ab569c64d6182a18893dcd163f0f1c2090733a805484166110049081179091557f6cde3cea4b3a3fb2488b2808bae7556f4a405e50f65e1794383bc026131b13c38054841690557f72e4efa1513b071517c6c74dba31b5934a81aa83cddd400e7081df5529c9943680548416831790557fa9bc9a3a348c357ba16b37005d7e6b3236198c0e939f4af8c5f19b8deeb8ebc08054851690911790557fc575c31fea594a6eb97c8e9d3f9caee4c16218c6ef37e923234c0fe9014a61e78054831690557f4e523af77f034e9810f1c94057f5e931fb3d16a51511a4c3add793617d18610580548316821790557ffb33122aa9f93cc639ebe80a7bc4784c11e6053dde89c6f4f7e268c6a623da1e805484166110001790557fc7694af312c4f286114180fd0ba6a52461fcee8a381636770b19a343af92538a80548316821790557f01112dd68e482ba8d68a7e828cff8b3abcea08eab88941953c180a7e650e9cd480548316821790557fc0a4a8be475dfebc377ebef2d7c4ff47656f572a08dd92b81017efcdba0febe1805484166110071790557f87e8a52529e8ece4ef759037313542a6429ff494a9fab9027fb79db90124eba680548316821790557f4c7666bbcb22d46469f7cc282f70764a7012dca2cce630ff8d83db9a9cdd48f080548316821790557f40f28f99a40bc9f6beea1013afdbc3cdcc689eb76b82c4de06c0acf1e1932ed58054909316611001179092557f0d9cf2cd531699eed8dd34e40ff2884a14a698c4898184fba85194e6f6772d248054821683179055600b60009081527f23f68c9bd22b8a93d06adabe17481c87c016bcbd20adc8bfd707a4d813a572176020527fdf0d5d05428057f5455c2dc8e810dd86d1e9350faa72f16bda8a45443c5b39328054831684179055603283556004805467ffffffffffffffff19166001600160401b031790556002819055600381905580549091169091179055565b6007602052600090815260409020546001600160401b031681565b60005460ff16613ba7576040805162461bcd60e51b815260206004820152601960248201526000805160206149b2833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b158015613bea57600080fd5b505afa158015613bfe573d6000803e3d6000fd5b505050506040513d6020811015613c1457600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b158015613c5557600080fd5b505afa158015613c69573d6000803e3d6000fd5b505050506040513d6020811015613c7f57600080fd5b5051905080613c8c575060155b600082118015613c9c5750808211155b613cdb576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b600b5460ff1615613d1f576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b604080516f14d554d411539117d41493d413d4d05360821b81529051908190036010019020600090613d71907fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4706140e3565b905080156137405761374061401a565b60005460ff16613dc6576040805162461bcd60e51b815260206004820152601960248201526000805160206149b2833981519152604482015290519081900360640190fd5b33600090815260066020908152604080832060ff8089168552925290912054859116613e235760405162461bcd60e51b81526004018080602001828103825260318152602001806147f06031913960400191505060405180910390fd5b60ff85166000908152600760209081526040808320548151601f88018490048402810184019092528682526001600160401b031692613e889284928a9261208d92909189918c908c908190840183828082843760009201919091525061131c92505050565b60ff959095166000908152600760205260409020805467ffffffffffffffff191660019096016001600160401b03169590951790945550505050565b61100081565b600381565b61100481565b60408051600e808252818301909252606091630100380060ff851617918391602082018180368337505050600e81810187905260068201939093529182525090505b92915050565b600085613f2c57506000614011565b606082518451865160800101016040519080825280601f01601f191660200182016040528015613f63576020820181803683370190505b5090506000613f7182614704565b602080890151825201905086600080613f8989614098565b8086526020909501949092509050613fa28285836140a2565b92830192613faf88614098565b8086526020909501949092509050613fc88285836140a2565b9283018a815260200192613fdb87614098565b9092509050613feb8285836140a2565b508351602001613ff961470a565b60208183886065600019fa5051600114955050505050505b95945050505050565b600b5460ff161561405e576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b600b805460ff1916600117905560405133907f6f123d3d54c84a7960a573b31c221dcd86e13fd849c5adb0c6ca851468cc1ae490600090a2565b8051602090910191565b5b602081106140c2578251825260209283019290910190601f19016140a3565b915181516020939093036101000a6000190180199091169216919091179052565b6000828152600d602052604081205461ffff166141ac57604080516f14d554d411539117d41493d413d4d05360821b815281519081900360100181206000908152600d6020818152848320805461ffff199081166001179091556e149153d4115397d41493d413d4d053608a1b8552855194859003600f01852084528282528584208054821660029081179091557710d05390d15317d514905394d1915497d41493d413d4d05360421b8652865195869003601801909520845291905292902080549092161790555b6000838152600c6020526040902080546201000090046001600160801b0316421015806141dd575082816001015414155b156142b0576000848152600d602090815260409182902054835461ffff90911661ffff199091161771ffffffffffffffffffffffffffffffff0000191662010000610e1042016001600160801b0316021783556001808401869055825191820190925233815261425291600284019190614728565b5080546040805161ffff83168152620100009092046001600160801b0316602083015281810185905251339186917f9e109f0e55ef32e99e4880be2ec357f1ddb3469c79d0747ef4762da6e89fabe5916060908290030190a3614364565b60005b600282015481101561433b57336001600160a01b03168260020182815481106142d857fe5b6000918252602090912001546001600160a01b03161415614333576040805162461bcd60e51b815260206004820152601060248201526f185b1c9958591e48185c1c1c9bdd995960821b604482015290519081900360640190fd5b6001016142b3565b50600281018054600181018255600091825260209091200180546001600160a01b031916331790555b8054600282015461ffff909116116143be576000848152600c60205260408120805471ffffffffffffffffffffffffffffffffffff1916815560018101829055906143b2600283018261478d565b50506001915050613f17565b5060009392505050565b600080600060606021855110156143f8575050604080516000808252602082019092529092508291508190614471565b600185015160218601518651604080516020198301808252601f1960011990940193909316810160200190915260418901939291606091908015614443576020820181803683370190505b509050600061445182614098565b509050614463858260218d51036140a2565b506001975091955093509150505b9193509193565b600b5460ff16156144bc576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b6002544311156144fb576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b16179091556003554360025561453c565b6003805460019081019182905554101561453c576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b16179091556003555b8160ff16836001600160401b0316600460009054906101000a900460070b6001600160401b03167f3a6e0fc61675aa2a100bcba0568368bb92bcec91c97673391074f11138f0cffe603885604051808361ffff1661ffff16815260200180602001828103825283818151815260200191508051906020019080838360005b838110156145d25781810151838201526020016145ba565b50505050905090810190601f1680156145ff5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a4505050565b6000816040516020018082805190602001908083835b602083106146475780518252601f199092019160209182019101614628565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106146b55780518252601f199092019160209182019101614696565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b3b151590565b60200190565b60405180602001604052806001906020820280368337509192915050565b82805482825590600052602060002090810192821561477d579160200282015b8281111561477d57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190614748565b506147899291506147ae565b5090565b50805460008255906000526020600020908101906147ab91906147d5565b50565b6147d291905b808211156147895780546001600160a01b03191681556001016147b4565b90565b6147d291905b8082111561478957600081556001016147db56fe74686520636f6e747261637420616e64206368616e6e656c2068617665206e6f74206265656e20726567697374657265646c656e677468206f662076616c756520666f72206164644f725570646174654368616e6e656c2073686f756c642062652032322c206368616e6e656c49643a697346726f6d53797374656d3a68616e646c6572416464726573736c656e677468206f662076616c756520666f722063616e63656c5472616e7366657251756f72756d2073686f756c6420626520326c656e677468206f662076616c756520666f722073757370656e6451756f72756d2073686f756c6420626520326c656e677468206f662076616c756520666f722072656f70656e51756f72756d2073686f756c642062652032746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662076616c756520666f7220656e61626c654f7244697361626c654368616e6e656c2073686f756c6420626520322c206368616e6e656c49643a6973456e61626c65746865206e6577426174636853697a65466f724f7261636c652073686f756c6420626520696e205b31302c2031303030305d74686520636f6e7472616374206e6f7420696e697420796574000000000000006c6967687420636c69656e74206e6f742073796e632074686520626c6f636b20796574a2646970667358221220622dd2ff8c5505e7bf8251c7cfe63da6bfa7891c3682ca46b6d6bf796895609f64736f6c63430006040033" + } + }, + "30720096": { + "0x0000000000000000000000000000000000001000": { + "balance": "0x0", + "code": "0x60806040526004361061048d5760003560e01c806388b32f1111610255578063c81b166211610144578063e40716a1116100c1578063f92eb86b11610085578063f92eb86b14610bd7578063f9a2bbc714610bec578063fc3e590814610c01578063fccc281314610c16578063fd4ad81f14610c2b578063fd6a687914610c5a57610494565b8063e40716a114610b5a578063ea321e4914610b6f578063eb57e20214610b8f578063eda5868c14610baf578063f340fa0114610bc457610494565b8063d86222d511610108578063d86222d514610af1578063daacdb6614610b06578063dc927faf14610b1b578063e086c7b114610b30578063e1c7392a14610b4557610494565b8063c81b166214610a92578063c8509d81146108a0578063ce910b0c14610aa7578063d04aa99614610ac7578063d68fb56a14610adc57610494565b8063a78abc16116101d2578063aef198a911610196578063aef198a914610a31578063b7ab4db514610a46578063b8cf4ef114610a68578063bf9f499514610650578063c6d3394514610a7d57610494565b8063a78abc16146109b2578063aaf5eb68146109c7578063ab51bb96146109dc578063ac431751146109f1578063ad3c9da614610a1157610494565b80639dc09262116102195780639dc09262146109495780639fe0f8161461095e578063a0dc275814610973578063a1a11bf514610988578063a5422d5c1461099d57610494565b806388b32f11146108d55780638b5ad0c9146108ea5780638d19a410146108ff5780639369d7de1461091f57806396713da91461093457610494565b80635192c82c1161037c5780636e47b482116102f95780637942fd05116102bd5780637942fd05146108615780637a84ca2a1461087657806381650b621461088b578063831d65d1146108a0578063853230aa1461084c57806386249882146108c057610494565b80636e47b482146107f857806370fd5bad1461080d578063718a8aa81461082257806375d47a0a1461083757806378dfed4a1461084c57610494565b80635667515a116103405780635667515a146107675780635d77156c1461077c57806360eba4fe1461079157806362b72cf5146107b15780636969a25c146107c657610494565b80635192c82c146106e857806351e80672146106fd578063549b03f21461071257806355614fcc14610727578063565c56b31461074757610494565b80633365af3a1161040a57806343756e5c116103ce57806343756e5c1461067257806345cf9daf14610687578063493279b11461069c5780634bf6c882146106be5780634df6e0c3146106d357610494565b80633365af3a146105d857806335409f7f146105f85780633b071dcc146106185780633de0f0d81461063b5780633dffc3871461065057610494565b8063152ad3b811610451578063152ad3b81461054c5780631ff180691461056e578063219f22d514610583578063300c356714610598578063321d398a146105b857610494565b806304c4fec61461049957806307a56847146104b05780630bee7a67146104db5780630e2374a5146104fd5780631182b8751461051f57610494565b3661049457005b600080fd5b3480156104a557600080fd5b506104ae610c6f565b005b3480156104bc57600080fd5b506104c5610ce1565b6040516104d29190617594565b60405180910390f35b3480156104e757600080fd5b506104f0610ce7565b6040516104d291906175be565b34801561050957600080fd5b50610512610cec565b6040516104d2919061699b565b34801561052b57600080fd5b5061053f61053a366004616881565b610cf2565b6040516104d29190616b12565b34801561055857600080fd5b50610561610f2a565b6040516104d29190616b07565b34801561057a57600080fd5b506104c5610f33565b34801561058f57600080fd5b506104f0610f39565b3480156105a457600080fd5b506104ae6105b336600461670b565b610f3e565b3480156105c457600080fd5b506105616105d336600461682e565b6112c2565b3480156105e457600080fd5b506105616105f336600461682e565b611391565b34801561060457600080fd5b506104ae6106133660046166e4565b611442565b34801561062457600080fd5b5061062d61159b565b6040516104d2929190616a1d565b34801561064757600080fd5b506104c5611877565b34801561065c57600080fd5b5061066561187d565b6040516104d291906175cf565b34801561067e57600080fd5b50610512611882565b34801561069357600080fd5b506104c5611888565b3480156106a857600080fd5b506106b161188e565b6040516104d29190617585565b3480156106ca57600080fd5b50610665611893565b3480156106df57600080fd5b5061062d611898565b3480156106f457600080fd5b506104c5611a16565b34801561070957600080fd5b50610512611a1c565b34801561071e57600080fd5b506104c5611a22565b34801561073357600080fd5b506105616107423660046166e4565b611a28565b34801561075357600080fd5b506104c56107623660046166e4565b611a5d565b34801561077357600080fd5b50610665611aae565b34801561078857600080fd5b506104f0611ab3565b34801561079d57600080fd5b5061053f6107ac36600461682e565b611ab8565b3480156107bd57600080fd5b506104c5611b5e565b3480156107d257600080fd5b506107e66107e136600461682e565b611b64565b6040516104d2969594939291906169c8565b34801561080457600080fd5b50610512611bc8565b34801561081957600080fd5b50610665611bce565b34801561082e57600080fd5b50610665611bd3565b34801561084357600080fd5b50610512611bd8565b34801561085857600080fd5b506104c5611bde565b34801561086d57600080fd5b50610665611be4565b34801561088257600080fd5b506104c5611be9565b34801561089757600080fd5b506104f0611bef565b3480156108ac57600080fd5b506104ae6108bb366004616881565b611bf4565b3480156108cc57600080fd5b506104c5611c55565b3480156108e157600080fd5b506104c5611c5b565b3480156108f657600080fd5b506104c5611c61565b34801561090b57600080fd5b506104c561091a3660046166e4565b611c67565b34801561092b57600080fd5b506104ae611ca7565b34801561094057600080fd5b50610665611dbb565b34801561095557600080fd5b50610512611dc0565b34801561096a57600080fd5b506104c5611dc6565b34801561097f57600080fd5b506104c5611dcb565b34801561099457600080fd5b50610512611dd0565b3480156109a957600080fd5b5061053f611dd6565b3480156109be57600080fd5b50610561611df5565b3480156109d357600080fd5b506104c5611dfe565b3480156109e857600080fd5b506104f0611aae565b3480156109fd57600080fd5b506104ae610a0c3660046167d2565b611e07565b348015610a1d57600080fd5b506104c5610a2c3660046166e4565b6126b3565b348015610a3d57600080fd5b506104c56126c5565b348015610a5257600080fd5b50610a5b6126d2565b6040516104d29190616a0a565b348015610a7457600080fd5b506104c56127be565b348015610a8957600080fd5b506104c5611bce565b348015610a9e57600080fd5b506105126127c3565b348015610ab357600080fd5b5061053f610ac236600461682e565b6127c9565b348015610ad357600080fd5b506104c56127d6565b348015610ae857600080fd5b506104c56127db565b348015610afd57600080fd5b506104c561281a565b348015610b1257600080fd5b506104c5612826565b348015610b2757600080fd5b5061051261282c565b348015610b3c57600080fd5b506104c5612832565b348015610b5157600080fd5b506104ae612837565b348015610b6657600080fd5b506104c56129e6565b348015610b7b57600080fd5b50610561610b8a366004616793565b6129ec565b348015610b9b57600080fd5b506104ae610baa3660046166e4565b612b72565b348015610bbb57600080fd5b506104f0612c7a565b6104ae610bd23660046166e4565b612c7f565b348015610be357600080fd5b506104c5612f07565b348015610bf857600080fd5b50610512612f0d565b348015610c0d57600080fd5b50610665611dc6565b348015610c2257600080fd5b50610512612f13565b348015610c3757600080fd5b50610c4b610c4636600461682e565b612f19565b6040516104d29392919061759d565b348015610c6657600080fd5b50610512612fdb565b6000610c7a33611c67565b9050600b8181548110610c8957fe5b600091825260209091206001601690920201015460ff16610cc55760405162461bcd60e51b8152600401610cbc9061723d565b60405180910390fd5b6000610ccf6127db565b9050610cdc338383612fe1565b505050565b60095481565b606481565b61200181565b60005460609060ff16610d175760405162461bcd60e51b8152600401610cbc90616cd1565b3361200014610d385760405162461bcd60e51b8152600401610cbc9061741c565b600b54610df657610d476163d0565b60015460005b81811015610df257600b805460018101825560009190915283516000805160206176478339815191526016909202918201908155602080860151600080516020617c768339815191528401805460ff1916911515919091179055604086015180518794610dce936000805160206176678339815191529091019201906163ff565b506060820151610de49060038301906013616479565b505050806001019050610d4d565b5050505b610dfe6164a6565b6000610e3f85858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506131cd92505050565b9150915080610e5b57610e526064613389565b92505050610f23565b815160009060ff16610e8057610e79836020015184604001516133ea565b9050610eef565b825160ff1660011415610eeb57826020015151600114610ec557600080516020617627833981519152604051610eb590617124565b60405180910390a1506067610ee6565b610e798360200151600081518110610ed957fe5b602002602001015161403e565b610eef565b5060655b63ffffffff8116610f145750506040805160008152602081019091529150610f239050565b610f1d81613389565b93505050505b9392505050565b60075460ff1681565b60035481565b606881565b334114610f5d5760405162461bcd60e51b8152600401610cbc9061746b565b6010544311610f7e5760405162461bcd60e51b8152600401610cbc90616e2d565b60005460ff16610fa05760405162461bcd60e51b8152600401610cbc90616cd1565b600f54610fb8576032600f55611002316011556112b8565b60006110023168056bc75e2d63100000811115610fe757610fe081606463ffffffff6141b516565b9150611030565b60115481111561102957610fe0606461101d600f54611011601154866141f790919063ffffffff16565b9063ffffffff61423916565b9063ffffffff6141b516565b50506112b8565b6040516309a99b4f60e41b815261100290639a99b4f09061105790309086906004016169af565b602060405180830381600087803b15801561107157600080fd5b505af1158015611085573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110a99190616846565b611002316011559150816110be5750506112b8565b6000805b848110156110ec578585828181106110d657fe5b90506020020135820191508060010190506110c2565b50806110fa575050506112b8565b6000806000805b898110156112b0578489898381811061111657fe5b9050602002013588028161112657fe5b0493508a8a8281811061113557fe5b905060200201602081019061114a91906166e4565b6001600160a01b0381166000908152600460205260409020549093509150811561126657600060018084038154811061117f57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff16156111ec57836001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d85866040516111df9190617594565b60405180910390a2611260565b6003546111ff908663ffffffff61427316565b6003908155810154611217908663ffffffff61427316565b60038201556040516001600160a01b038516907fcb0aad6cf9cd03bdf6137e359f541c42f38b39f007cae8e89e88aa7d8c6617b290611257908890617594565b60405180910390a25b506112a8565b826001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d858560405161129f9190617594565b60405180910390a25b600101611101565b505050505050505b5050436010555050565b60015460009082106112d65750600061138c565b60006001600160a01b0316600183815481106112ee57fe5b60009182526020909120600490910201546001600160a01b0316148061131e5750600854158061131e5750600a54155b8061132d575060085460095410155b8061133e575061133c82611391565b155b8061136757506000600b838154811061135357fe5b906000526020600020906016020160000154115b8061137b575060016113776126d2565b5111155b156113885750600061138c565b5060015b919050565b60015460009082106113a55750600061138c565b600b5482106113e257600182815481106113bb57fe5b9060005260206000209060040201600201601c9054906101000a900460ff1615905061138c565b600182815481106113ef57fe5b9060005260206000209060040201600201601c9054906101000a900460ff1615801561143c5750600b828154811061142357fe5b600091825260209091206001601690920201015460ff16155b92915050565b33611001146114635760405162461bcd60e51b8152600401610cbc9061753c565b600b54611521576114726163d0565b60015460005b8181101561151d57600b805460018101825560009190915283516000805160206176478339815191526016909202918201908155602080860151600080516020617c768339815191528401805460ff19169115159190911790556040860151805187946114f9936000805160206176678339815191529091019201906163ff565b50606082015161150f9060038301906013616479565b505050806001019050611478565b5050505b6001600160a01b038116600090815260046020526040902054806115455750611598565b6001810390506000600b828154811061155a57fe5b600091825260209091206001601690920201015460ff16905061157d8383614298565b80156115865750805b15610cdc576009805460001901905550505b50565b60015460609081906000805b828110156115ee57600181815481106115bc57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166115e6576001909101905b6001016115a7565b5060608160405190808252806020026020018201604052801561161b578160200160208202803683370190505b50905060608260405190808252806020026020018201604052801561165457816020015b606081526020019060019003908161163f5790505b50600b54600094509091508414156117cf5760005b848110156117c9576001818154811061167e57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166117c157600181815481106116ae57fe5b600091825260209091206004909102015483516001600160a01b03909116908490869081106116d957fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600b818154811061170657fe5b600091825260209182902060026016909202018101805460408051601f60001961010060018616150201909316949094049182018590048502840185019052808352919290919083018282801561179e5780601f106117735761010080835404028352916020019161179e565b820191906000526020600020905b81548152906001019060200180831161178157829003601f168201915b50505050508285815181106117af57fe5b60209081029190910101526001909301925b600101611669565b5061186b565b60005b8481101561186957600181815481106117e757fe5b9060005260206000209060040201600201601c9054906101000a900460ff16611861576001818154811061181757fe5b600091825260209091206004909102015483516001600160a01b039091169084908690811061184257fe5b6001600160a01b03909216602092830291909101909101526001909301925b6001016117d2565b505b909450925050505b9091565b61271081565b600181565b61100181565b60085481565b603881565b600881565b600e54600c546060918291806118ac575060155b60606118b66126d2565b905060606118c38261464b565b9050828251116118da579094509250611873915050565b838383510310156118ec578282510393505b83156119225760c8430461190883838388880360008a8a6147b9565b6119208383838888038989038a8b8b8b5103016147b9565b505b60608360405190808252806020026020018201604052801561194e578160200160208202803683370190505b50905060608460405190808252806020026020018201604052801561198757816020015b60608152602001906001900390816119725790505b50905060005b85811015611a08578481815181106119a157fe5b60200260200101518382815181106119b557fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508381815181106119e157fe5b60200260200101518282815181106119f557fe5b602090810291909101015260010161198d565b509096509450505050509091565b60065481565b61200081565b600f5481565b6001600160a01b03811660009081526004602052604081205480611a5057600091505061138c565b60001901610f2381611391565b6001600160a01b03811660009081526004602052604081205480611a8557600091505061138c565b600180820381548110611a9457fe5b906000526020600020906004020160030154915050919050565b600081565b606781565b60128181548110611ac557fe5b600091825260209182902001805460408051601f6002600019610100600187161502019094169390930492830185900485028101850190915281815293509091830182828015611b565780601f10611b2b57610100808354040283529160200191611b56565b820191906000526020600020905b815481529060010190602001808311611b3957829003601f168201915b505050505081565b60105481565b60018181548110611b7157fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b601081565b61100881565b6103e881565b600b81565b600c5481565b606681565b3361200014611c155760405162461bcd60e51b8152600401610cbc9061741c565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051611c48939291906175dd565b60405180910390a1505050565b60025481565b60115481565b600a5481565b6001600160a01b03811660009081526004602052604081205480611c9d5760405162461bcd60e51b8152600401610cbc906173a4565b6000190192915050565b600b54611d6557611cb66163d0565b60015460005b81811015611d6157600b805460018101825560009190915283516000805160206176478339815191526016909202918201908155602080860151600080516020617c768339815191528401805460ff1916911515919091179055604086015180518794611d3d936000805160206176678339815191529091019201906163ff565b506060820151611d539060038301906013616479565b505050806001019050611cbc565b5050505b600854611d725760036008555b600a54611d7f576002600a555b6000611d8a33611c67565b9050611d95816112c2565b611db15760405162461bcd60e51b8152600401610cbc906170e1565b6115983382614910565b600981565b61100781565b600381565b60c881565b61100681565b6040518061062001604052806105ef81526020016176876105ef913981565b60005460ff1681565b6402540be40081565b60005460ff16611e295760405162461bcd60e51b8152600401610cbc90616cd1565b3361100714611e4a5760405162461bcd60e51b8152600401610cbc906171aa565b611eb484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b602082015291506149a89050565b15611f515760208114611ed95760405162461bcd60e51b8152600401610cbc9061735e565b604080516020601f8401819004810282018101909252828152600091611f1791858580838501838280828437600092019190915250614a0192505050565b905060648110158015611f2d5750620186a08111155b611f495760405162461bcd60e51b8152600401610cbc90616f8a565b600255612670565b611fb184848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260098152686275726e526174696f60b81b602082015291506149a89050565b1561204d5760208114611fd65760405162461bcd60e51b8152600401610cbc90616b57565b604080516020601f840181900481028201810190925282815260009161201491858580838501838280828437600092019190915250614a0192505050565b90506127108111156120385760405162461bcd60e51b8152600401610cbc90616e6f565b6006556007805460ff19166001179055612670565b6120b784848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260138152726d61784e756d4f664d61696e7461696e696e6760681b602082015291506149a89050565b1561215157602081146120dc5760405162461bcd60e51b8152600401610cbc90616b8e565b604080516020601f840181900481028201810190925282815260009161211a91858580838501838280828437600092019190915250614a0192505050565b600c5490915080612129575060155b8082106121485760405162461bcd60e51b8152600401610cbc90616ee2565b50600855612670565b6121ba84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61696e7461696e536c6173685363616c6560701b602082015291506149a89050565b1561225357602081146121df5760405162461bcd60e51b8152600401610cbc90616c57565b604080516020601f840181900481028201810190925282815260009161221d91858580838501838280828437600092019190915250614a0192505050565b905060008111801561222f5750600a81105b61224b5760405162461bcd60e51b8152600401610cbc906174b8565b600a55612670565b6122c784848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601981527f6d61784e756d4f66576f726b696e6743616e6469646174657300000000000000602082015291506149a89050565b1561235657602081146122ec5760405162461bcd60e51b8152600401610cbc90616c0b565b604080516020601f840181900481028201810190925282815260009161232a91858580838501838280828437600092019190915250614a0192505050565b9050600d5481111561234e5760405162461bcd60e51b8152600401610cbc90617000565b600e55612670565b6123bf84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61784e756d4f6643616e6469646174657360701b602082015291506149a89050565b1561244157602081146123e45760405162461bcd60e51b8152600401610cbc906171f8565b604080516020601f840181900481028201810190925282815260009161242291858580838501838280828437600092019190915250614a0192505050565b600d819055600e5490915081101561243b57600d54600e555b50612670565b6124a584848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c6e756d4f66436162696e65747360981b602082015291506149a89050565b1561255357602081146124ca5760405162461bcd60e51b8152600401610cbc90616c9c565b604080516020601f840181900481028201810190925282815260009161250891858580838501838280828437600092019190915250614a0192505050565b90506000811161252a5760405162461bcd60e51b8152600401610cbc90616d3f565b602981111561254b5760405162461bcd60e51b8152600401610cbc90616d87565b600c55612670565b6125bd84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601381527266696e616c697479526577617264526174696f60681b602082015291506149a89050565b1561265857602081146125e25760405162461bcd60e51b8152600401610cbc906172e1565b604080516020601f840181900481028201810190925282815260009161262091858580838501838280828437600092019190915250614a0192505050565b905060018110158015612634575060648111155b6126505760405162461bcd60e51b8152600401610cbc9061706f565b600f55612670565b60405162461bcd60e51b8152600401610cbc90617515565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040516126a59493929190616b25565b60405180910390a150505050565b60046020526000908152604090205481565b68056bc75e2d6310000081565b6001546060906000805b82811015612701576126ed81611391565b156126f9578160010191505b6001016126dc565b5060608160405190808252806020026020018201604052801561272e578160200160208202803683370190505b5090506000915060005b838110156127b55761274981611391565b156127ad576001818154811061275b57fe5b600091825260209091206004909102015482516001600160a01b039091169083908590811061278657fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508260010192505b600101612738565b50925050505b90565b601581565b61100281565b60138181548110611ac557fe5b603281565b60006127e56126d2565b519050600080600c54116127fa5760156127fe565b600c545b90508082111561280c578091505b8161281657600191505b5090565b67016345785d8a000081565b60055481565b61100381565b602981565b60005460ff161561285a5760405162461bcd60e51b8152600401610cbc906172aa565b6128626164a6565b60006128886040518061062001604052806105ef81526020016176876105ef91396131cd565b91509150806128a95760405162461bcd60e51b8152600401610cbc906173db565b60005b8260200151518110156129ce576001836020015182815181106128cb57fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a0909301516003909301929092559186015180519185019391859081106129a157fe5b602090810291909101810151516001600160a01b03168252810191909152604001600020556001016128ac565b50506103e8600255506000805460ff19166001179055565b600d5481565b601354600090815b81811015612af557612add85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050601380549092508591508110612a4557fe5b600091825260209182902001805460408051601f6002600019610100600187161502019094169390930492830185900485028101850190915281815292830182828015612ad35780601f10612aa857610100808354040283529160200191612ad3565b820191906000526020600020905b815481529060010190602001808311612ab657829003601f168201915b5050505050614a06565b15612aed5760019250505061143c565b6001016129f4565b5060125460005b81811015612b6657612b4d86868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050601280549092508591508110612a4557fe5b15612b5e576001935050505061143c565b600101612afc565b50600095945050505050565b3361100114612b935760405162461bcd60e51b8152600401610cbc9061753c565b600b54612c5157612ba26163d0565b60015460005b81811015612c4d57600b805460018101825560009190915283516000805160206176478339815191526016909202918201908155602080860151600080516020617c768339815191528401805460ff1916911515919091179055604086015180518794612c29936000805160206176678339815191529091019201906163ff565b506060820151612c3f9060038301906013616479565b505050806001019050612ba8565b5050505b6000612c5c82614a6a565b9050612c67816112c2565b15612c7657612c768282614910565b5050565b606581565b334114612c9e5760405162461bcd60e51b8152600401610cbc9061746b565b60005460ff16612cc05760405162461bcd60e51b8152600401610cbc90616cd1565b60003411612ce05760405162461bcd60e51b8152600401610cbc90616fd1565b6001600160a01b0381166000908152600460205260409020546007543491906103e89060ff1615612d1057506006545b600083118015612d205750600081115b15612dc1576000612d3d61271061101d868563ffffffff61423916565b90508015612dbf5760405161dead9082156108fc029083906000818181858888f19350505050158015612d74573d6000803e3d6000fd5b507f627059660ea01c4733a328effb2294d2f86905bf806da763a89cee254de8bee581604051612da49190617594565b60405180910390a1612dbc848263ffffffff6141f716565b93505b505b8115612ebf576000600180840381548110612dd857fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff1615612e4557846001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b485604051612e389190617594565b60405180910390a2612eb9565b600354612e58908563ffffffff61427316565b6003908155810154612e70908563ffffffff61427316565b60038201556040516001600160a01b038616907f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc05590612eb0908790617594565b60405180910390a25b50612f01565b836001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b484604051612ef89190617594565b60405180910390a25b50505050565b600e5481565b61100081565b61dead81565b600b8181548110612f2657fe5b6000918252602091829020601691909102018054600180830154600280850180546040805161010096831615969096026000190190911692909204601f810188900488028501880190925281845293965060ff90911694919291830182828015612fd15780601f10612fa657610100808354040283529160200191612fd1565b820191906000526020600020905b815481529060010190602001808311612fb457829003601f168201915b5050505050905083565b61100481565b6000600a5460001480612ff2575081155b80612ffd5750600954155b1561300a57506000610f23565b60096000815460019003919050819055506000613055600a5461101d8561101d600b898154811061303757fe5b6000918252602090912060169091020154439063ffffffff6141f716565b90506000600b858154811061306657fe5b906000526020600020906016020160010160006101000a81548160ff0219169083151502179055506000806110016001600160a01b0316638256ace66040518163ffffffff1660e01b8152600401604080518083038186803b1580156130cb57600080fd5b505afa1580156130df573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613103919061685e565b915091506000935080831061317d5761311c8787614298565b506040516305bfb49960e41b815261100190635bfb499090613142908a9060040161699b565b600060405180830381600087803b15801561315c57600080fd5b505af1158015613170573d6000803e3d6000fd5b505050506001935061318f565b81831061318f5761318d87614a6a565b505b6040516001600160a01b038816907fb9d38178dc641ff1817967a63c9078cbcd955a9f1fcd75e0e3636de615d44d3b90600090a25050509392505050565b6131d56164a6565b60006131df6164a6565b6131e76164ca565b6131f86131f386614c0d565b614c32565b90506000805b61320783614c7c565b1561337b578061322c5761322261321d84614c9d565b614ceb565b60ff168452613373565b806001141561336e57606061324861324385614c9d565b614d6b565b9050805160405190808252806020026020018201604052801561328557816020015b6132726164ea565b81526020019060019003908161326a5790505b50856020018190525080516040519080825280602002602001820160405280156132c357816020015b60608152602001906001900390816132ae5790505b50604086015260005b8151811015613363576132dd6164ea565b606060006132fd8585815181106132f057fe5b6020026020010151614e3c565b9250925092508061331d578860009a509a50505050505050505050613384565b828960200151858151811061332e57fe5b6020026020010181905250818960400151858151811061334a57fe5b60200260200101819052505050508060010190506132cc565b506001925050613373565b61337b565b6001016131fe565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b60608152602001906001900390816133a35790505090506133c98363ffffffff16614f56565b816000815181106133d657fe5b6020026020010181905250610f2381614f69565b60006029835111156134215760008051602061762783398151915260405161341190616de4565b60405180910390a150606661143c565b60005b83518110156134bf5760005b818110156134b65784818151811061344457fe5b6020026020010151600001516001600160a01b031685838151811061346557fe5b6020026020010151600001516001600160a01b031614156134ae5760008051602061762783398151915260405161349b90616f3f565b60405180910390a160669250505061143c565b600101613430565b50600101613424565b506060806134cd8585614ff3565b60015491935091506000908190815b818110156135525767016345785d8a0000600182815481106134fa57fe5b9060005260206000209060040201600301541061351c5783600101935061354a565b60006001828154811061352b57fe5b906000526020600020906004020160030154111561354a578260010192505b6001016134dc565b5060608360405190808252806020026020018201604052801561357f578160200160208202803683370190505b5090506060846040519080825280602002602001820160405280156135ae578160200160208202803683370190505b5090506060856040519080825280602002602001820160405280156135dd578160200160208202803683370190505b50905060608660405190808252806020026020018201604052801561360c578160200160208202803683370190505b509050600060608760405190808252806020026020018201604052801561363d578160200160208202803683370190505b50905060608860405190808252806020026020018201604052801561366c578160200160208202803683370190505b509050600099506000985060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b1580156136b457600080fd5b505afa1580156136c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136ec9190616846565b905067016345785d8a00008111156137375760008051602061762783398151915260405161371990617269565b60405180910390a160689d505050505050505050505050505061143c565b60005b898110156139a85767016345785d8a00006001828154811061375857fe5b906000526020600020906004020160030154106138dd576001818154811061377c57fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316898d815181106137ad57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be400600183815481106137e257fe5b906000526020600020906004020160030154816137fb57fe5b066001838154811061380957fe5b90600052602060002090600402016003015403905061383183826141f790919063ffffffff16565b898e8151811061383d57fe5b6020026020010181815250506001828154811061385657fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316878e8151811061388757fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081888e815181106138b457fe5b60209081029190910101526138cf868263ffffffff61427316565b95508c6001019c50506139a0565b6000600182815481106138ec57fe5b90600052602060002090600402016003015411156139a0576001818154811061391157fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316848c8151811061394257fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506001818154811061396f57fe5b906000526020600020906004020160030154838c8151811061398d57fe5b6020026020010181815250508a6001019a505b60010161373a565b5060008415613c1e576002546040516303702b2960e51b815261100491636e0565209188916139e2918e918e918d91420190600401616a8d565b6020604051808303818588803b1580156139fb57600080fd5b505af193505050508015613a2c575060408051601f3d908101601f19168201909252613a2991810190616773565b60015b613ba3576040516000815260443d1015613a4857506000613ae3565b60046000803e60005160e01c6308c379a08114613a69576000915050613ae3565b60043d036004833e81513d60248201116001600160401b0382111715613a9457600092505050613ae3565b80830180516001600160401b03811115613ab5576000945050505050613ae3565b8060208301013d8601811115613ad357600095505050505050613ae3565b601f01601f191660405250925050505b80613aee5750613b30565b60019150857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf28082604051613b229190616b12565b60405180910390a250613b9e565b3d808015613b5a576040519150601f19603f3d011682016040523d82523d6000602084013e613b5f565b606091505b5060019150857fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a4582604051613b949190616b12565b60405180910390a2505b613c1e565b8015613be5577fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b7086604051613bd89190617594565b60405180910390a1613c1c565b857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280604051613c1390616bd4565b60405180910390a25b505b8015613dd45760005b8751811015613dd2576000888281518110613c3e57fe5b60200260200101519050600060018281548110613c5757fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc9185908110613c8857fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f1935050505090508015613d445760018281548110613cc957fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d9185908110613d1857fe5b906000526020600020906004020160030154604051613d379190617594565b60405180910390a2613dc8565b60018281548110613d5157fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d9185908110613da057fe5b906000526020600020906004020160030154604051613dbf9190617594565b60405180910390a25b5050600101613c27565b505b835115613f1e5760005b8451811015613f1c576000858281518110613df557fe5b60200260200101516001600160a01b03166108fc868481518110613e1557fe5b60200260200101519081150290604051600060405180830381858888f1935050505090508015613eab57858281518110613e4b57fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d868481518110613e8957fe5b6020026020010151604051613e9e9190617594565b60405180910390a2613f13565b858281518110613eb757fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d868481518110613ef557fe5b6020026020010151604051613f0a9190617594565b60405180910390a25b50600101613dde565b505b5050505050505050505050506000471115613f9a577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d47604051613f629190617594565b60405180910390a1604051611002904780156108fc02916000818181858888f19350505050158015613f98573d6000803e3d6000fd5b505b60006003819055600555815115613fb557613fb5828261522c565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015613ff257600080fd5b505af1158015614006573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a1506000949350505050565b80516001600160a01b031660009081526004602052604081205480158061408f575060018082038154811061406f57fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b156140d55782516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a2600091505061138c565b60015460055460001982011180159061412b5784516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a26000935050505061138c565b60058054600190810190915580548190600019860190811061414957fe5b6000918252602082206002600490920201018054921515600160e01b0260ff60e01b199093169290921790915585516040516001600160a01b03909116917ff226e7d8f547ff903d9d419cf5f54e0d7d07efa9584135a53a057c5f1f27f49a91a2506000949350505050565b6000610f2383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506159e6565b6000610f2383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250615a1d565b6000826142485750600061143c565b8282028284828161425557fe5b0414610f235760405162461bcd60e51b8152600401610cbc90617169565b600082820183811015610f235760405162461bcd60e51b8152600401610cbc90616d08565b600080600183815481106142a857fe5b906000526020600020906004020160030154905060006001808054905003905060016142d26126d2565b5111614307576000600185815481106142e757fe5b90600052602060002090600402016003018190555060009250505061143c565b846001600160a01b03167f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a70836040516143409190617594565b60405180910390a26001600160a01b038516600090815260046020526040812055835b6001546000190181101561452d576001816001018154811061438157fe5b90600052602060002090600402016001828154811061439c57fe5b60009182526020909120825460049092020180546001600160a01b03199081166001600160a01b0393841617825560018085015481840180548416918616919091179055600280860180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b19909416939093179055600392830154920191909155600b80549091830190811061445d57fe5b9060005260206000209060160201600b828154811061447857fe5b600091825260209091208254601690920201908155600180830154818301805460ff909216151560ff19909216919091179055600280840180546144cf93838601939082161561010002600019019091160461651f565b506144e260038281019084016013616594565b509050508060010160046000600184815481106144fb57fe5b600091825260208083206004909202909101546001600160a01b03168352820192909252604001902055600101614363565b50600180548061453957fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b80548061458c57fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906145be60028301826165be565b6145cc600383016000616602565b5050905560008183816145db57fe5b049050801561463f5760015460005b8181101561463c57826001828154811061460057fe5b906000526020600020906004020160030154016001828154811061462057fe5b60009182526020909120600360049092020101556001016145ea565b50505b50600195945050505050565b60015481516040805182815260208084028201019091526060929190839082801561468a57816020015b60608152602001906001900390816146755790505b50600b5490915083146146a157925061138c915050565b60005b828110156147b057600b6001600460008985815181106146c057fe5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205403815481106146f457fe5b600091825260209182902060026016909202018101805460408051601f60001961010060018616150201909316949094049182018590048502840185019052808352919290919083018282801561478c5780601f106147615761010080835404028352916020019161478c565b820191906000526020600020905b81548152906001019060200180831161476f57829003601f168201915b505050505082828151811061479d57fe5b60209081029190910101526001016146a4565b50949350505050565b60005b8281101561490657600082878388016040516020016147dc92919061698d565b6040516020818303038152906040528051906020012060001c816147fc57fe5b069050808501828701146148fd576000898388018151811061481a57fe5b602002602001015190506060898489018151811061483457fe5b602002602001015190508a8388018151811061484c57fe5b60200260200101518b858a018151811061486257fe5b60200260200101906001600160a01b031690816001600160a01b031681525050818b8489018151811061489157fe5b60200260200101906001600160a01b031690816001600160a01b03168152505089838801815181106148bf57fe5b60200260200101518a858a01815181106148d557fe5b6020026020010181905250808a848901815181106148ef57fe5b602002602001018190525050505b506001016147bc565b5050505050505050565b600980546001908101909155600b80548390811061492a57fe5b906000526020600020906016020160010160006101000a81548160ff02191690831515021790555043600b828154811061496057fe5b600091825260208220601690910201919091556040516001600160a01b038416917ff62981a567ec3cec866c6fa93c55bcdf841d6292d18b8d522ececa769375d82d91a25050565b6000816040516020016149bb9190616971565b60405160208183030381529060405280519060200120836040516020016149e29190616971565b6040516020818303038152906040528051906020012014905092915050565b015190565b815181516000916001918114808314614a225760009250614a60565b600160208701838101602088015b600284838510011415614a5b578051835114614a4f5760009650600093505b60209283019201614a30565b505050505b5090949350505050565b6001600160a01b03811660009081526004602052604081205480614a935750600019905061138c565b600181039050600060018281548110614aa857fe5b9060005260206000209060040201600301549050600060018381548110614acb57fe5b6000918252602090912060036004909202010155600154604051600019909101906001600160a01b038616907f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d90614b24908590617594565b60405180910390a280614b3c5782935050505061138c565b6000818381614b4757fe5b0490508015614c035760005b84811015614ba5578160018281548110614b6957fe5b9060005260206000209060040201600301540160018281548110614b8957fe5b6000918252602090912060036004909202010155600101614b53565b50600180549085015b81811015614c00578260018281548110614bc457fe5b9060005260206000209060040201600301540160018281548110614be457fe5b6000918252602090912060036004909202010155600101614bae565b50505b5091949350505050565b614c15616611565b506040805180820190915281518152602082810190820152919050565b614c3a6164ca565b614c4382615a49565b614c4c57600080fd5b6000614c5b8360200151615a83565b60208085015160408051808201909152868152920190820152915050919050565b6000614c86616611565b505080518051602091820151919092015191011190565b614ca5616611565b614cae82614c7c565b614cb757600080fd5b60208201516000614cc782615ae6565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590614d0057508151602110155b614d0957600080fd5b6000614d188360200151615a83565b90508083600001511015614d3e5760405162461bcd60e51b8152600401610cbc90617327565b8251602080850151830180519284900392918310156147b057506020919091036101000a90049392505050565b6060614d7682615a49565b614d7f57600080fd5b6000614d8a83615bc7565b9050606081604051908082528060200260200182016040528015614dc857816020015b614db5616611565b815260200190600190039081614dad5790505b5090506000614dda8560200151615a83565b60208601510190506000805b84811015614e3157614df783615ae6565b9150604051806040016040528083815260200184815250848281518110614e1a57fe5b602090810291909101015291810191600101614de6565b509195945050505050565b614e446164ea565b60606000614e506164ea565b6060614e5a6164ca565b614e6387614c32565b90506000805b614e7283614c7c565b15614f475780614e9d57614e8d614e8884614c9d565b615c23565b6001600160a01b03168552614f3f565b8060011415614ec557614eb2614e8884614c9d565b6001600160a01b03166020860152614f3f565b8060021415614eed57614eda614e8884614c9d565b6001600160a01b03166040860152614f3f565b8060031415614f1957614f0261321d84614c9d565b6001600160401b0316606086015260019150614f3f565b8060041415614f3a57614f33614f2e84614c9d565b615c3d565b9350614f3f565b614f47565b600101614e69565b50929791965091945092505050565b606061143c614f6483615cad565b615d93565b6060815160001415614f8a575060408051600081526020810190915261138c565b606082600081518110614f9957fe5b602002602001015190506000600190505b8351811015614fda57614fd082858381518110614fc357fe5b6020026020010151615de5565b9150600101614faa565b50610f23614fed825160c060ff16615e62565b82615de5565b6060806000808080806150046127db565b6001549091505b801561511257600181039250600b838154811061502457fe5b600091825260209091206001601690920201015460ff1661504457615109565b6001838154811061505157fe5b60009182526020909120600490910201546001600160a01b03169450615078858484612fe1565b935083158061508b575060018a51038610155b1561509557615109565b60005b8a5181101561510757856001600160a01b03168b82815181106150b757fe5b6020026020010151600001516001600160a01b031614156150ff5760018b82815181106150e057fe5b6020908102919091010151901515608090910152600190960195615107565b600101615098565b505b6000190161500b565b508489510360405190808252806020026020018201604052801561515057816020015b61513d6164ea565b8152602001906001900390816151355790505b5096508489510360405190808252806020026020018201604052801561518a57816020015b60608152602001906001900390816151755790505b5095506000915060005b895181101561521e578981815181106151a957fe5b602002602001015160800151615216578981815181106151c557fe5b60200260200101518884815181106151d957fe5b60200260200101819052508881815181106151f057fe5b602002602001015187848151811061520457fe5b60200260200101819052508260010192505b600101615194565b5050505050505b9250929050565b600154825160005b828110156153495760016152466164ea565b6001838154811061525357fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b8481101561531d578781815181106152e357fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b03161415615315576000925061531d565b6001016152cf565b50811561533f5780516001600160a01b03166000908152600460205260408120555b5050600101615234565b508082111561540857805b8281101561540657600180548061536757fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b8054806153ba57fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906153ec60028301826165be565b6153fa600383016000616602565b50509055600101615354565b505b60008183106154175781615419565b825b905060005b81811015615788576154cb86828151811061543557fe5b60200260200101516001838154811061544a57fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a0820152615f34565b61567f5780600101600460008884815181106154e357fe5b6020026020010151600001516001600160a01b03166001600160a01b031681526020019081526020016000208190555085818151811061551f57fe5b60200260200101516001828154811061553457fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a09091015160039091015584518590829081106155ef57fe5b6020026020010151600b828154811061560457fe5b906000526020600020906016020160020190805190602001906156289291906163ff565b506000600b828154811061563857fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b80548390811061566957fe5b6000918252602090912060169091020155615780565b61571085828151811061568e57fe5b6020026020010151600b83815481106156a357fe5b600091825260209182902060026016909202018101805460408051601f600019610100600186161502019093169490940491820185900485028401850190528083529192909190830182828015612ad35780601f10612aa857610100808354040283529160200191612ad3565b61575b5784818151811061572057fe5b6020026020010151600b828154811061573557fe5b906000526020600020906016020160020190805190602001906157599291906163ff565b505b60006001828154811061576a57fe5b9060005260206000209060040201600301819055505b60010161541e565b5082821115615960576157996163d0565b835b8381101561595d578581815181106157af57fe5b6020026020010151826040018190525060018782815181106157cd57fe5b6020908102919091018101518254600181810185556000948552838520835160049093020180546001600160a01b039384166001600160a01b0319918216178255848601518284018054918616918316919091179055604080860151600284018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909a1692909616919091179290921696909617169190911790935560a090930151600390930192909255600b8054928301815590935284516016909102600080516020617647833981519152810191825585830151600080516020617c768339815191528201805491151560ff199092169190911790559285015180518694929361590393600080516020617667833981519152019201906163ff565b5060608201516159199060038301906013616479565b505050806001016004600089848151811061593057fe5b602090810291909101810151516001600160a01b031682528101919091526040016000205560010161579b565b50505b615968615fb5565b615970616197565b6000600981905560015493505b838110156159de576000600b828154811061599457fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b8054839081106159c557fe5b600091825260209091206016909102015560010161597d565b505050505050565b60008183615a075760405162461bcd60e51b8152600401610cbc9190616b12565b506000838581615a1357fe5b0495945050505050565b60008184841115615a415760405162461bcd60e51b8152600401610cbc9190616b12565b505050900390565b8051600090615a5a5750600061138c565b6020820151805160001a9060c0821015615a795760009250505061138c565b5060019392505050565b8051600090811a6080811015615a9d57600091505061138c565b60b8811080615ab8575060c08110801590615ab8575060f881105b15615ac757600191505061138c565b60c0811015615adb5760b51901905061138c565b60f51901905061138c565b80516000908190811a6080811015615b015760019150615bc0565b60b8811015615b1657607e1981019150615bc0565b60c0811015615b6757600060b78203600186019550806020036101000a865104915060018101820193505080831015615b615760405162461bcd60e51b8152600401610cbc906170b6565b50615bc0565b60f8811015615b7c5760be1981019150615bc0565b600060f78203600186019550806020036101000a865104915060018101820193505080831015615bbe5760405162461bcd60e51b8152600401610cbc906170b6565b505b5092915050565b8051600090615bd85750600061138c565b60008090506000615bec8460200151615a83565b602085015185519181019250015b80821015615c1a57615c0b82615ae6565b82019150826001019250615bfa565b50909392505050565b8051600090601514615c3457600080fd5b61143c82614ceb565b8051606090615c4b57600080fd5b6000615c5a8360200151615a83565b83516040805191839003808352601f19601f8201168301602001909152919250606090828015615c91576020820181803683370190505b50905060008160200190506147b0848760200151018285616385565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416615cf157506018615d15565b6fffffffffffffffffffffffffffffffff198416615d1157506010615d15565b5060005b6020811015615d4b57818181518110615d2a57fe5b01602001516001600160f81b03191615615d4357615d4b565b600101615d15565b60008160200390506060816040519080825280601f01601f191660200182016040528015615d80576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015615dc55750607f60f81b82600081518110615db357fe5b01602001516001600160f81b03191611155b15615dd157508061138c565b61143c615de38351608060ff16615e62565b835b6060806040519050835180825260208201818101602087015b81831015615e16578051835260209283019201615dfe565b50855184518101855292509050808201602086015b81831015615e43578051835260209283019201615e2b565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310615e8c5760405162461bcd60e51b8152600401610cbc90616eba565b60408051600180825281830190925260609160208201818036833701905050905060378411615ee65782840160f81b81600081518110615ec857fe5b60200101906001600160f81b031916908160001a905350905061143c565b6060615ef185615cad565b90508381510160370160f81b82600081518110615f0a57fe5b60200101906001600160f81b031916908160001a905350615f2b8282615de5565b95945050505050565b805182516000916001600160a01b039182169116148015615f6e575081602001516001600160a01b031683602001516001600160a01b0316145b8015615f93575081604001516001600160a01b031683604001516001600160a01b0316145b8015610f235750506060908101519101516001600160401b0390811691161490565b6012546013548082111561600057805b82811015615ffe576012805480615fd857fe5b600190038181906000526020600020016000615ff491906165be565b9055600101615fc5565b505b600081831061600f5781616011565b825b905060005b81811015616129576160ce6012828154811061602e57fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156160bc5780601f10616091576101008083540402835291602001916160bc565b820191906000526020600020905b81548152906001019060200180831161609f57829003601f168201915b505050505060138381548110612a4557fe5b61612157601381815481106160df57fe5b90600052602060002001601282815481106160f657fe5b90600052602060002001908054600181600116156101000203166002900461611f92919061651f565b505b600101616016565b5082821115610cdc57825b82811015612f015760126013828154811061614b57fe5b600091825260208083208454600181810187559585529190932092909101805461618e94939092019290916002610100928216159290920260001901160461651f565b50600101616134565b601354600b54808211156161e257805b828110156161e05760138054806161ba57fe5b6001900381819060005260206000200160006161d691906165be565b90556001016161a7565b505b60008183106161f157816161f3565b825b905060005b81811015616312576162b06013828154811061621057fe5b600091825260209182902001805460408051601f600260001961010060018716150201909416939093049283018590048502810185019091528181529283018282801561629e5780601f106162735761010080835404028352916020019161629e565b820191906000526020600020905b81548152906001019060200180831161628157829003601f168201915b5050505050600b83815481106156a357fe5b61630a57600b81815481106162c157fe5b9060005260206000209060160201600201601382815481106162df57fe5b90600052602060002001908054600181600116156101000203166002900461630892919061651f565b505b6001016161f8565b5082821115610cdc57825b82811015612f01576013600b828154811061633457fe5b60009182526020808320845460018082018755958552919093206016929092029092016002908101805461637c9593909401939092600019908216156101000201160461651f565b5060010161631d565b8061638f57610cdc565b5b602081106163af578251825260209283019290910190601f1901616390565b915181516020939093036101000a6000190180199091169216919091179052565b604051806080016040528060008152602001600015158152602001606081526020016163fa61662b565b905290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061644057805160ff191683800117855561646d565b8280016001018555821561646d579182015b8281111561646d578251825591602001919060010190616452565b5061281692915061664a565b826013810192821561646d579160200282018281111561646d578251825591602001919060010190616452565b6040518060600160405280600060ff16815260200160608152602001606081525090565b60405180604001604052806164dd616611565b8152602001600081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10616558578054855561646d565b8280016001018555821561646d57600052602060002091601f016020900482015b8281111561646d578254825591600101919060010190616579565b826013810192821561646d579182018281111561646d578254825591600101919060010190616579565b50805460018160011615610100020316600290046000825580601f106165e45750611598565b601f016020900490600052602060002090810190611598919061664a565b5061159890601381019061664a565b604051806040016040528060008152602001600081525090565b6040518061026001604052806013906020820280368337509192915050565b6127bb91905b808211156128165760008155600101616650565b60008083601f840112616675578182fd5b5081356001600160401b0381111561668b578182fd5b602083019150836020808302850101111561522557600080fd5b60008083601f8401126166b6578182fd5b5081356001600160401b038111156166cc578182fd5b60208301915083602082850101111561522557600080fd5b6000602082840312156166f5578081fd5b81356001600160a01b0381168114610f23578182fd5b60008060008060408587031215616720578283fd5b84356001600160401b0380821115616736578485fd5b61674288838901616664565b9096509450602087013591508082111561675a578384fd5b5061676787828801616664565b95989497509550505050565b600060208284031215616784578081fd5b81518015158114610f23578182fd5b600080602083850312156167a5578182fd5b82356001600160401b038111156167ba578283fd5b6167c6858286016166a5565b90969095509350505050565b600080600080604085870312156167e7578384fd5b84356001600160401b03808211156167fd578586fd5b616809888389016166a5565b90965094506020870135915080821115616821578384fd5b50616767878288016166a5565b60006020828403121561683f578081fd5b5035919050565b600060208284031215616857578081fd5b5051919050565b60008060408385031215616870578182fd5b505080516020909101519092909150565b600080600060408486031215616895578283fd5b833560ff811681146168a5578384fd5b925060208401356001600160401b038111156168bf578283fd5b6168cb868287016166a5565b9497909650939450505050565b6000815180845260208085019450808401835b838110156169105781516001600160a01b0316875295820195908201906001016168eb565b509495945050505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b6000815180845261695d8160208601602086016175fa565b601f01601f19169290920160200192915050565b600082516169838184602087016175fa565b9190910192915050565b918252602082015260400190565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b03968716815294861660208601529290941660408401526001600160401b03166060830152911515608082015260a081019190915260c00190565b600060208252610f2360208301846168d8565b600060408252616a3060408301856168d8565b602083820381850152818551808452828401915082838202850101838801865b83811015616a7e57601f19878403018552616a6c838351616945565b94860194925090850190600101616a50565b50909998505050505050505050565b600060808252616aa060808301876168d8565b828103602084810191909152865180835287820192820190845b81811015616ad657845183529383019391830191600101616aba565b50508481036040860152616aea81886168d8565b93505050506001600160401b038316606083015295945050505050565b901515815260200190565b600060208252610f236020830184616945565b600060408252616b3960408301868861691b565b8281036020840152616b4c81858761691b565b979650505050505050565b6020808252601c908201527f6c656e677468206f66206275726e526174696f206d69736d6174636800000000604082015260600190565b60208082526026908201527f6c656e677468206f66206d61784e756d4f664d61696e7461696e696e67206d696040820152650e6dac2e8c6d60d31b606082015260800190565b6020808252601b908201527f6261746368207472616e736665722072657475726e2066616c73650000000000604082015260600190565b6020808252602c908201527f6c656e677468206f66206d61784e756d4f66576f726b696e6743616e6469646160408201526b0e8cae640dad2e6dac2e8c6d60a31b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61696e7461696e536c6173685363616c65206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252818101527f6c656e677468206f66206e756d4f66436162696e657473206d69736d61746368604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526028908201527f746865206e756d4f66436162696e657473206d75737420626520677265617465604082015267072207468616e20360c41b606082015260800190565b60208082526039908201527f746865206e756d4f66436162696e657473206d757374206265206c657373207460408201527f68616e204d41585f4e554d5f4f465f56414c494441544f525300000000000000606082015260800190565b60208082526029908201527f746865206e756d626572206f662076616c696461746f727320657863656564206040820152681d1a19481b1a5b5a5d60ba1b606082015260800190565b60208082526022908201527f63616e206e6f7420646f207468697320747769636520696e206f6e6520626c6f604082015261636b60f01b606082015260800190565b6020808252602b908201527f746865206275726e526174696f206d757374206265206e6f206772656174657260408201526a0207468616e2031303030360ac1b606082015260800190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526037908201527f746865206d61784e756d4f664d61696e7461696e696e67206d7573742062652060408201527f6c657373207468616e206e756d4f66436162696e657473000000000000000000606082015260800190565b6020808252602b908201527f6475706c696361746520636f6e73656e7375732061646472657373206f66207660408201526a185b1a59185d1bdc94d95d60aa1b606082015260800190565b60208082526027908201527f7468652065787069726554696d655365636f6e64476170206973206f7574206f604082015266662072616e676560c81b606082015260800190565b6020808252601590820152746465706f7369742076616c7565206973207a65726f60581b604082015260600190565b60208082526049908201527f746865206d61784e756d4f66576f726b696e6743616e64696461746573206d7560408201527f7374206265206e6f742067726561746572207468616e206d61784e756d4f6643606082015268616e6469646174657360b81b608082015260a00190565b60208082526027908201527f7468652066696e616c697479526577617264526174696f206973206f7574206f604082015266662072616e676560c81b606082015260800190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b60208082526023908201527f63616e206e6f7420656e7465722054656d706f72617279204d61696e74656e616040820152626e636560e81b606082015260800190565b60208082526025908201527f6c656e677468206f66206a61696c2076616c696461746f7273206d757374206260408201526465206f6e6560d81b606082015260800190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61784e756d4f6643616e64696461746573206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252601290820152716e6f7420696e206d61696e74656e616e636560701b604082015260600190565b60208082526021908201527f666565206973206c6172676572207468616e2044555354595f494e434f4d494e6040820152604760f81b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b60208082526026908201527f6c656e677468206f662066696e616c697479526577617264526174696f206d696040820152650e6dac2e8c6d60d31b606082015260800190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526026908201527f6c656e677468206f662065787069726554696d655365636f6e64476170206d696040820152650e6dac2e8c6d60d31b606082015260800190565b60208082526017908201527f6f6e6c792063757272656e742076616c696461746f7273000000000000000000604082015260600190565b60208082526021908201527f6661696c656420746f20706172736520696e69742076616c696461746f7253656040820152601d60fa1b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b6020808252603e908201527f746865206d61696e7461696e536c6173685363616c65206d757374206265206760408201527f726561746572207468616e203020616e64206c657373207468616e2031300000606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b60208082526029908201527f746865206d6573736167652073656e646572206d75737420626520736c6173686040820152680818dbdb9d1c9858dd60ba1b606082015260800190565b61ffff91909116815260200190565b90815260200190565b6000848252831515602083015260606040830152615f2b6060830184616945565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff8516825260406020830152615f2b60408301848661691b565b60005b838110156176155781810151838201526020016175fd565b83811115612f01575050600091015256fe70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb20175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbbf905ec80f905e8f846942a7cdd959bfe8d9487b2a43b33565295a698f7e294b6a7edd747c0554875d3fc531d19ba1497992c5e941ff80f3f7f110ffd8920a3ac38fdef318fe94a3f86048c27395000f846946488aa4d1955ee33403f8ccb1d4de5fb97c7ade294220f003d8bdfaadf52aa1e55ae4cc485e6794875941a87e90e440a39c99aa9cb5cea0ad6a3f0b2407b86048c27395000f846949ef9f4360c606c7ab4db26b016007d3ad0ab86a0946103af86a874b705854033438383c82575f25bc29418e2db06cbff3e3c5f856410a1838649e760175786048c27395000f84694ee01c3b1283aa067c58eab4709f85e99d46de5fe94ee4b9bfb1871c64e2bcabb1dc382dc8b7c4218a29415904ab26ab0e99d70b51c220ccdcccabee6e29786048c27395000f84694685b1ded8013785d6623cc18d214320b6bb6475994a20ef4e5e4e7e36258dbf51f4d905114cb1b34bc9413e39085dc88704f4394d35209a02b1a9520320c86048c27395000f8469478f3adfc719c99674c072166708589033e2d9afe9448a30d5eaa7b64492a160f139e2da2800ec3834e94055838358c29edf4dcc1ba1985ad58aedbb6be2b86048c27395000f84694c2be4ec20253b8642161bc3f444f53679c1f3d479466f50c616d737e60d7ca6311ff0d9c434197898a94d1d678a2506eeaa365056fe565df8bc8659f28b086048c27395000f846942f7be8361c80a4c1e7e9aaf001d0877f1cfde218945f93992ac37f3e61db2ef8a587a436a161fd210b94ecbc4fb1a97861344dad0867ca3cba2b860411f086048c27395000f84694ce2fd7544e0b2cc94692d4a704debef7bcb613289444abc67b4b2fba283c582387f54c9cba7c34bafa948acc2ab395ded08bb75ce85bf0f95ad2abc51ad586048c27395000f84694b8f7166496996a7da21cf1f1b04d9b3e26a3d077946770572763289aac606e4f327c2f6cc1aa3b3e3b94882d745ed97d4422ca8da1c22ec49d880c4c097286048c27395000f846942d4c407bbe49438ed859fe965b140dcf1aab71a9943ad0939e120f33518fbba04631afe7a3ed6327b194b2bbb170ca4e499a2b0f3cc85ebfa6e8c4dfcbea86048c27395000f846946bbad7cf34b5fa511d8e963dbba288b1960e75d694853b0f6c324d1f4e76c8266942337ac1b0af1a229442498946a51ca5924552ead6fc2af08b94fcba648601d1a94a2000f846944430b3230294d12c6ab2aac5c2cd68e80b16b581947b107f4976a252a6939b771202c28e64e03f52d694795811a7f214084116949fc4f53cedbf189eeab28601d1a94a2000f84694ea0a6e3c511bbd10f4519ece37dc24887e11b55d946811ca77acfb221a49393c193f3a22db829fcc8e9464feb7c04830dd9ace164fc5c52b3f5a29e5018a8601d1a94a2000f846947ae2f5b9e386cd1b50a4550696d957cb4900f03a94e83bcc5077e6b873995c24bac871b5ad856047e19464e48d4057a90b233e026c1041e6012ada897fe88601d1a94a2000f8469482012708dafc9e1b880fd083b32182b869be8e09948e5adc73a2d233a1b496ed3115464dd6c7b887509428b383d324bc9a37f4e276190796ba5a8947f5ed8601d1a94a2000f8469422b81f8e175ffde54d797fe11eb03f9e3bf75f1d94a1c3ef7ca38d8ba80cce3bfc53ebd2903ed21658942767f7447f7b9b70313d4147b795414aecea54718601d1a94a2000f8469468bf0b8b6fb4e317a0f9d6f03eaf8ce6675bc60d94675cfe570b7902623f47e7f59c9664b5f5065dcf94d84f0d2e50bcf00f2fc476e1c57f5ca2d57f625b8601d1a94a2000f846948c4d90829ce8f72d0163c1d5cf348a862d5506309485c42a7b34309bee2ed6a235f86d16f059deec5894cc2cedc53f0fa6d376336efb67e43d167169f3b78601d1a94a2000f8469435e7a025f4da968de7e4d7e4004197917f4070f194b1182abaeeb3b4d8eba7e6a4162eac7ace23d57394c4fd0d870da52e73de2dd8ded19fe3d26f43a1138601d1a94a2000f84694d6caa02bbebaebb5d7e581e4b66559e635f805ff94c07335cf083c1c46a487f0325769d88e163b653694efaff03b42e41f953a925fc43720e45fb61a19938601d1a94a20000175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbaa2646970667358221220f34958dbcda05e6d94770a38da790183bc12f970a53f415eb7a8e4ba99cbf89e64736f6c63430006040033" + }, + "0x0000000000000000000000000000000000001001": { + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b506004361061027f5760003560e01c80637942fd051161015c578063c80d4b8f116100ce578063dc927faf11610087578063dc927faf146104ad578063e1c7392a146104b5578063f9a2bbc7146104bd578063fc3e5908146104c5578063fc4333cd146104cd578063fd6a6879146104d55761027f565b8063c80d4b8f1461045c578063c81b166214610464578063c8509d811461046c578063c96be4cb1461047f578063cc844b7314610492578063d2a42e4b146104a55761027f565b80639dc09262116101205780639dc0926214610421578063a1a11bf514610429578063a78abc1614610431578063ab51bb9614610439578063ac0af62914610441578063ac431751146104495761027f565b80637942fd05146103ee5780638256ace6146103f6578063831d65d1146103fe57806396713da9146104115780639bc8e4f2146104195761027f565b8063493279b1116101f557806362b72cf5116101b957806362b72cf5146103be5780636e47b482146103c657806370fd5bad146103ce578063718a8aa8146103d657806375d47a0a146103de5780637912a65d146103e65761027f565b8063493279b11461037c5780634bf6c8821461039157806351e8067214610399578063567a372d146103a15780635bfb4990146103a95761027f565b806335aa2e441161024757806335aa2e441461030e57806337c8dab914610321578063389f4f71146103425780633a63f4b1146103575780633dffc3871461035f57806343756e5c146103745761027f565b80630bee7a67146102845780630e2374a5146102a25780631182b875146102b757806322d1e80b146102d757806323bac5a2146102ec575b600080fd5b61028c6104dd565b604051610299919061336a565b60405180910390f35b6102aa6104e2565b6040516102999190612c1b565b6102ca6102c5366004612b51565b6104e8565b6040516102999190612c53565b6102df61054e565b6040516102999190612c48565b6102ff6102fa3660046128ff565b610557565b60405161029993929190613352565b6102aa61031c366004612b21565b61057a565b61033461032f3660046128ff565b6105a1565b604051610299929190613344565b61034a6105f8565b604051610299919061331a565b61034a6105fe565b610367610604565b604051610299919061337b565b6102aa610609565b61038461060f565b604051610299919061330b565b610367610614565b6102aa610619565b61034a61061f565b6103bc6103b73660046128ff565b610625565b005b61034a6106d0565b6102aa6106d6565b6103676106dc565b6103676106e1565b6102aa6106e6565b61034a6106ec565b6103676106f1565b6103346106f6565b6103bc61040c366004612b51565b610700565b610367610812565b61034a610817565b6102aa610822565b6102aa610828565b6102df61082e565b61028c610837565b61034a61083c565b6103bc610457366004612a05565b610841565b61034a610ce0565b6102aa610ce5565b6103bc61047a366004612b51565b610ceb565b6103bc61048d3660046128ff565b610d5c565b6103bc6104a0366004612a6e565b61114d565b61034a611733565b6102aa611738565b6103bc61173e565b6102aa61177a565b610367611780565b6103bc611785565b6102aa611bce565b606481565b61200181565b606033612000146105145760405162461bcd60e51b815260040161050b90613163565b60405180910390fd5b60005460ff166105365760405162461bcd60e51b815260040161050b90612d04565b60405162461bcd60e51b815260040161050b90613254565b60075460ff1681565b600260208190526000918252604090912080546001820154919092015460ff1683565b6001818154811061058757fe5b6000918252602090912001546001600160a01b0316905081565b6000806105ac6126e6565b5050506001600160a01b0316600090815260026020818152604092839020835160608101855281548082526001830154938201849052919093015460ff16151592909301919091529091565b60055481565b60065481565b600181565b61100181565b603881565b600881565b61200081565b60045481565b33611000146106465760405162461bcd60e51b815260040161050b90612f48565b60005460ff166106685760405162461bcd60e51b815260040161050b90612d04565b61200063f7a251d7600b61067b84611bd4565b60006040518463ffffffff1660e01b815260040161069b93929190613389565b600060405180830381600087803b1580156106b557600080fd5b505af11580156106c9573d6000803e3d6000fd5b5050505050565b60035481565b61100581565b600281565b601081565b61100881565b603281565b600b81565b6004546005549091565b33612000146107215760405162461bcd60e51b815260040161050b90613163565b60005460ff166107435760405162461bcd60e51b815260040161050b90612d04565b61074b612709565b600061078c84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611ca692505050565b9150915080156107d35781516040517f7f0956d47419b9525356e7111652b653b530ec6f5096dccc04589bc38e629967916107c69161336a565b60405180910390a16106c9565b81516040517f7d45f62d17443dd4547bca8a8112c60e2385669318dc300ec61a5d2492f262e7916108039161336a565b60405180910390a15050505050565b600981565b662386f26fc1000081565b61100781565b61100681565b60005460ff1681565b600081565b600481565b60005460ff166108635760405162461bcd60e51b815260040161050b90612d04565b33611007146108845760405162461bcd60e51b815260040161050b90613020565b6108ef84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260148152731b5a5cd9195b59585b9bdc951a1c995cda1bdb1960621b60208201529150611d269050565b1561098a57602081146109145760405162461bcd60e51b815260040161050b90612ed4565b604080516020601f840181900481028201810190925282815260009161095291858580838501838280828437600092019190915250611d8092505050565b905060018110158015610966575060055481105b6109825760405162461bcd60e51b815260040161050b9061311e565b600455610c9d565b6109f084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e19995b1bdb9e551a1c995cda1bdb19608a1b60208201529150611d269050565b15610a8c5760208114610a155760405162461bcd60e51b815260040161050b9061306e565b604080516020601f8401819004810282018101909252828152600091610a5391858580838501838280828437600092019190915250611d8092505050565b90506103e88111158015610a68575060045481115b610a845760405162461bcd60e51b815260040161050b90612d72565b600555610c9d565b610b0084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f66696e616c697479536c617368526577617264526174696f000000000000000060208201529150611d269050565b15610b9a5760208114610b255760405162461bcd60e51b815260040161050b9061328b565b604080516020601f8401819004810282018101909252828152600091610b6391858580838501838280828437600092019190915250611d8092505050565b9050600a8110158015610b765750606481105b610b925760405162461bcd60e51b815260040161050b90612e88565b600655610c9d565b610c0e84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f656e61626c654d616c6963696f7573566f7465536c617368000000000000000060208201529150611d269050565b15610c855760208114610c335760405162461bcd60e51b815260040161050b90612da7565b604080516020601f8401819004810282018101909252828152610c6f9190848480838501838280828437600092019190915250611d8592505050565b6007805460ff1916911515919091179055610c9d565b60405162461bcd60e51b815260040161050b906131ff565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a84848484604051610cd29493929190612c66565b60405180910390a150505050565b609681565b61100281565b3361200014610d0c5760405162461bcd60e51b815260040161050b90613163565b60005460ff16610d2e5760405162461bcd60e51b815260040161050b90612d04565b6040517f07db600eebe2ac176be8dcebad61858c245a4961bb32ca2aa3d159b09aa0810e90600090a1505050565b334114610d7b5760405162461bcd60e51b815260040161050b906131b2565b60005460ff16610d9d5760405162461bcd60e51b815260040161050b90612d04565b6003544311610dbe5760405162461bcd60e51b815260040161050b906132d6565b3a15610ddc5760405162461bcd60e51b815260040161050b90612fc3565b60405163155853f360e21b8152611000906355614fcc90610e01908490600401612c1b565b60206040518083038186803b158015610e1957600080fd5b505afa158015610e2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5191906129e5565b610e5a57611146565b610e626126e6565b506001600160a01b0381166000908152600260208181526040928390208351606081018552815481526001820154928101929092529091015460ff161580159282019290925290610ebd576020810180516001019052610f16565b60016040820181905260208201819052805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0384161790555b438152600554602082015181610f2857fe5b0661107457600060208201526040516335409f7f60e01b8152611000906335409f7f90610f59908590600401612c1b565b600060405180830381600087803b158015610f7357600080fd5b505af1158015610f87573d6000803e3d6000fd5b505050506120006001600160a01b031663f7a251d7600b610fa785611bd4565b60006040518463ffffffff1660e01b8152600401610fc793929190613389565b600060405180830381600087803b158015610fe157600080fd5b505af1925050508015610ff2575060015b61106f573d808015611020576040519150601f19603f3d011682016040523d82523d6000602084013e611025565b606091505b50826001600160a01b03167fd7bc86ff5d08c8ab043edec743302aba2520e6635172a428bc956721db9e2d1c836020015183604051611065929190613323565b60405180910390a2505b6110e0565b60045481602001518161108357fe5b066110e0576040516375abf10160e11b81526110009063eb57e202906110ad908590600401612c1b565b600060405180830381600087803b1580156110c757600080fd5b505af11580156110db573d6000803e3d6000fd5b505050505b6001600160a01b0382166000818152600260208181526040808420865181559186015160018301558581015191909201805460ff1916911515919091179055517fddb6012116e51abf5436d956a4f0ebd927e92c576ff96d7918290c8782291e3e9190a2505b5043600355565b60005460ff1661116f5760405162461bcd60e51b815260040161050b90612d04565b604051630a83aaa960e31b81526110069063541d554890611194903390600401612c1b565b60206040518083038186803b1580156111ac57600080fd5b505afa1580156111c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111e491906129e5565b6112005760405162461bcd60e51b815260040161050b90612c98565b60075460ff166112225760405162461bcd60e51b815260040161050b90612ccf565b60065461122f5760146006555b438160000151604001516101000111801561125557504381602001516040015161010001115b6112715760405162461bcd60e51b815260040161050b90613226565b80602001516020015181600001516020015114801561129f5750806020015160600151816000015160600151145b156112bc5760405162461bcd60e51b815260040161050b90612f1b565b8051604081015190511080156112db5750602081015160408101519051105b6112f75760405162461bcd60e51b815260040161050b90612e51565b60208101515181515110801561131c5750806000015160400151816020015160400151105b8061134757508051516020820151511080156113475750806020015160400151816000015160400151105b806113615750806020015160400151816000015160400151145b61137d5760405162461bcd60e51b815260040161050b90612d3b565b604080820151905163ea321e4960e01b81526110009163ea321e49916113a69190600401612c53565b60206040518083038186803b1580156113be57600080fd5b505afa1580156113d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113f691906129e5565b6114125760405162461bcd60e51b815260040161050b90612ff1565b61142481600001518260400151611dad565b801561143d575061143d81602001518260400151611dad565b6114595760405162461bcd60e51b815260040161050b90612df2565b6060806110006001600160a01b0316633b071dcc6040518163ffffffff1660e01b815260040160006040518083038186803b15801561149757600080fd5b505afa1580156114ab573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526114d39190810190612922565b9150915060005b8151811015611610576115048282815181106114f257fe5b60200260200101518560400151611f85565b15611608576006546040516309a99b4f60e41b815260646110028031909302049190639a99b4f09061153c9033908590600401612c2f565b602060405180830381600087803b15801561155657600080fd5b505af115801561156a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061158e9190612b39565b506110006001600160a01b03166335409f7f8584815181106115ac57fe5b60200260200101516040518263ffffffff1660e01b81526004016115d09190612c1b565b600060405180830381600087803b1580156115ea57600080fd5b505af11580156115fe573d6000803e3d6000fd5b5050505050611610565b6001016114da565b50600061162284604001516000611fe9565b90506120006001600160a01b031663f7a251d7600b6116448760400151612005565b60006040518463ffffffff1660e01b815260040161166493929190613389565b600060405180830381600087803b15801561167e57600080fd5b505af192505050801561168f575060015b611701573d8080156116bd576040519150601f19603f3d011682016040523d82523d6000602084013e6116c2565b606091505b50817fd58d1183100bd0932c0588f31c4205d6bc6168909765a96c41adbed3115f3628826040516116f39190612c53565b60405180910390a25061172d565b60405181907f7b78aadacff901d8b63d0dba4f86283d4db8aef27f9ed70413dd860f1c9532b690600090a25b50505050565b601481565b61100381565b60005460ff16156117615760405162461bcd60e51b815260040161050b906130b0565b603260045560966005556000805460ff19166001179055565b61100081565b600381565b33611000146117a65760405162461bcd60e51b815260040161050b90612f48565b60005460ff166117c85760405162461bcd60e51b815260040161050b90612d04565b6001546117d457611bcc565b600154600090600019015b808211611ba0576000805b82841015611903576117fa6126e6565b600260006001878154811061180b57fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff1615159082015260055490915060049004816020015111156118ed5760046005548161187857fe5b0481602001510381602001818152505080600260006001888154811061189a57fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208351815591830151600183015591909101516002909101805460ff19169115159190911790556118f7565b6001925050611903565b508360010193506117ea565b828411611a9a576119126126e6565b600260006001868154811061192357fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff161515908201526005549091506004900481602001511115611a0b5760046005548161199057fe5b048160200151038160200181815250508060026000600187815481106119b257fe5b6000918252602080832091909101546001600160a01b03168352828101939093526040918201902083518155918301516001808401919091559201516002909101805460ff19169115159190911790559150611a9a9050565b6002600060018681548110611a1c57fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff19169055805480611a6057fe5b600082815260209020810160001990810180546001600160a01b031916905501905583611a8d5750611a9a565b5060001990920191611903565b818015611aa45750805b15611b83576002600060018681548110611aba57fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff19169055805484908110611b0157fe5b600091825260209091200154600180546001600160a01b039092169186908110611b2757fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506001805480611b6057fe5b600082815260209020810160001990810180546001600160a01b03191690550190555b82611b8f575050611ba0565b5050600190910190600019016117df565b6040517fcfdb3b6ccaeccbdc68be3c59c840e3b3c90f0a7c491f5fff1cf56cfda200dd9c90600090a150505b565b61100481565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081611bef579050509050611c18836001600160a01b0316612040565b81600081518110611c2557fe5b6020026020010181905250611c3943612063565b81600181518110611c4657fe5b6020908102919091010152611c5b6038612063565b81600281518110611c6857fe5b6020026020010181905250611c7c42612063565b81600381518110611c8957fe5b6020026020010181905250611c9d81612076565b9150505b919050565b611cae612709565b6000611cb8612709565b611cc061271b565b611cd1611ccc86612100565b612125565b90506000805b611ce08361216f565b15611d195780611d0c57611cfb611cf684612190565b6121de565b63ffffffff16845260019150611d11565b611d19565b600101611cd7565b5091935090915050915091565b600081604051602001611d399190612bff565b6040516020818303038152906040528051906020012083604051602001611d609190612bff565b604051602081830303815290604052805190602001201490505b92915050565b015190565b8082015160009060ff811615611d9f576001915081611da5565b60009150815b505092915050565b60408051600480825260a0820190925260009160609190816020015b6060815260200190600190039081611dc9575050604080516020808252818301909252919250606091908082018180368337019050509050611e0e8560000151612063565b82600081518110611e1b57fe5b6020026020010181905250611e366020866020015183612260565b611e3f81612270565b82600181518110611e4c57fe5b6020026020010181905250611e648560400151612063565b82600281518110611e7157fe5b6020026020010181905250611e8c6020866060015183612260565b611e9581612270565b82600381518110611ea257fe5b6020026020010181905250611ec86020611ebb84612076565b8051906020012083612260565b6040805160b080825260e08201909252606091602082018180368337019050509050611ef88183600060206122c6565b611f0a818760800151602060606122c6565b611f188186608060306122c6565b604080516001808252818301909252606091602082018180368337019050509050815160016020830182602086016066600019fa611f5557600080fd5b506001611f63826000612319565b60ff1614611f78576000945050505050611d7a565b5060019695505050505050565b815181516000916001918114808314611fa15760009250611fdf565b600160208701838101602088015b600284838510011415611fda578051835114611fce5760009650600093505b60209283019201611faf565b505050505b5090949350505050565b60008160200183511015611ffc57600080fd5b50016020015190565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081612020579050509050611c1883612270565b60408051600560a21b8318601482015260348101909152606090611c9d81612270565b6060611d7a61207183612335565b612270565b60608151600014156120975750604080516000815260208101909152611ca1565b6060826000815181106120a657fe5b602002602001015190506000600190505b83518110156120e7576120dd828583815181106120d057fe5b602002602001015161241b565b91506001016120b7565b50611c9d6120fa825160c060ff16612498565b8261241b565b61210861273b565b506040805180820190915281518152602082810190820152919050565b61212d61271b565b6121368261256a565b61213f57600080fd5b600061214e83602001516125a4565b60208085015160408051808201909152868152920190820152915050919050565b600061217961273b565b505080518051602091820151919092015191011190565b61219861273b565b6121a18261216f565b6121aa57600080fd5b602082015160006121ba82612607565b80830160209586015260408051808201909152908152938401919091525090919050565b8051600090158015906121f357508151602110155b6121fc57600080fd5b600061220b83602001516125a4565b905080836000015110156122315760405162461bcd60e51b815260040161050b906130e7565b82516020808501518301805192849003929183101561225757826020036101000a820491505b50949350505050565b9091018181526020918201910152565b6060815160011480156122a25750607f60f81b8260008151811061229057fe5b01602001516001600160f81b03191611155b156122ae575080611ca1565b611d7a6122c08351608060ff16612498565b8361241b565b60005b818110156106c9578381815181106122dd57fe5b602001015160f81c60f81b8584806001019550815181106122fa57fe5b60200101906001600160f81b031916908160001a9053506001016122c9565b6000816001018351101561232c57600080fd5b50016001015190565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166123795750601861239d565b6fffffffffffffffffffffffffffffffff1984166123995750601061239d565b5060005b60208110156123d3578181815181106123b257fe5b01602001516001600160f81b031916156123cb576123d3565b60010161239d565b60008160200390506060816040519080825280601f01601f191660200182016040528015612408576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b8183101561244c578051835260209283019201612434565b50855184518101855292509050808201602086015b81831015612479578051835260209283019201612461565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106124c25760405162461bcd60e51b815260040161050b90612e29565b6040805160018082528183019092526060916020820181803683370190505090506037841161251c5782840160f81b816000815181106124fe57fe5b60200101906001600160f81b031916908160001a9053509050611d7a565b606061252785612335565b90508381510160370160f81b8260008151811061254057fe5b60200101906001600160f81b031916908160001a905350612561828261241b565b95945050505050565b805160009061257b57506000611ca1565b6020820151805160001a9060c082101561259a57600092505050611ca1565b5060019392505050565b8051600090811a60808110156125be576000915050611ca1565b60b88110806125d9575060c081108015906125d9575060f881105b156125e8576001915050611ca1565b60c08110156125fc5760b519019050611ca1565b60f519019050611ca1565b80516000908190811a608081101561262257600191506126df565b60b881101561263757607e19810191506126df565b60c081101561268857600060b78203600186019550806020036101000a8651049150600181018201935050808310156126825760405162461bcd60e51b815260040161050b90612f98565b506126df565b60f881101561269d5760be19810191506126df565b600060f78203600186019550806020036101000a865104915060018101820193505080831015611da55760405162461bcd60e51b815260040161050b90612f98565b5092915050565b604051806060016040528060008152602001600081526020016000151581525090565b60408051602081019091526000815290565b604051806040016040528061272e61273b565b8152602001600081525090565b604051806040016040528060008152602001600081525090565b600082601f830112612765578081fd5b8151612778612773826133dc565b6133b5565b818152915060208083019084810160005b848110156127ee578151870188603f8201126127a457600080fd5b838101516127b4612773826133fc565b81815260408b818486010111156127ca57600080fd5b6127d983888401838701613420565b50865250509282019290820190600101612789565b505050505092915050565b60008083601f84011261280a578182fd5b50813567ffffffffffffffff811115612821578182fd5b60208301915083602082850101111561283957600080fd5b9250929050565b600082601f830112612850578081fd5b813561285e612773826133fc565b915080825283602082850101111561287557600080fd5b8060208401602084013760009082016020015292915050565b600060a0828403121561289f578081fd5b6128a960a06133b5565b905081358152602082013560208201526040820135604082015260608201356060820152608082013567ffffffffffffffff8111156128e757600080fd5b6128f384828501612840565b60808301525092915050565b600060208284031215612910578081fd5b813561291b8161344c565b9392505050565b60008060408385031215612934578081fd5b825167ffffffffffffffff8082111561294b578283fd5b81850186601f82011261295c578384fd5b8051925061296c612773846133dc565b80848252602080830192508084018a82838902870101111561298c578788fd5b8794505b868510156129b75780516129a38161344c565b845260019490940193928101928101612990565b5088015190965093505050808211156129ce578283fd5b506129db85828601612755565b9150509250929050565b6000602082840312156129f6578081fd5b8151801515811461291b578182fd5b60008060008060408587031215612a1a578182fd5b843567ffffffffffffffff80821115612a31578384fd5b612a3d888389016127f9565b90965094506020870135915080821115612a55578384fd5b50612a62878288016127f9565b95989497509550505050565b600060208284031215612a7f578081fd5b813567ffffffffffffffff80821115612a96578283fd5b81840160608187031215612aa8578384fd5b612ab260606133b5565b9250803582811115612ac2578485fd5b612ace8782840161288e565b845250602081013582811115612ae2578485fd5b612aee8782840161288e565b602085015250604081013582811115612b05578485fd5b612b1187828401612840565b6040850152509195945050505050565b600060208284031215612b32578081fd5b5035919050565b600060208284031215612b4a578081fd5b5051919050565b600080600060408486031215612b65578283fd5b833560ff81168114612b75578384fd5b9250602084013567ffffffffffffffff811115612b90578283fd5b612b9c868287016127f9565b9497909650939450505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008151808452612beb816020860160208601613420565b601f01601f19169290920160200192915050565b60008251612c11818460208701613420565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b60006020825261291b6020830184612bd3565b600060408252612c7a604083018688612ba9565b8281036020840152612c8d818587612ba9565b979650505050505050565b6020808252601f908201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604082015260600190565b6020808252818101527f6d616c6963696f757320766f746520736c617368206e6f7420656e61626c6564604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252601a908201527f6e6f2076696f6c6174696f6e206f6620766f74652072756c6573000000000000604082015260600190565b6020808252818101527f7468652066656c6f6e795468726573686f6c64206f7574206f662072616e6765604082015260600190565b6020808252602b908201527f6c656e677468206f6620656e61626c654d616c6963696f7573566f7465536c6160408201526a0e6d040dad2e6dac2e8c6d60ab1b606082015260800190565b60208082526017908201527f766572696679207369676e6174757265206661696c6564000000000000000000604082015260600190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526019908201527f7372634e756d20626967676572207468616e207461724e756d00000000000000604082015260600190565b6020808252602c908201527f7468652066696e616c69747920736c6173682072657761726420726174696f2060408201526b6f7574206f662072616e676560a01b606082015260800190565b60208082526027908201527f6c656e677468206f66206d697364656d65616e6f725468726573686f6c64206d6040820152660d2e6dac2e8c6d60cb1b606082015260800190565b60208082526013908201527274776f206964656e746963616c20766f74657360681b604082015260600190565b60208082526030908201527f746865206d6573736167652073656e646572206d7573742062652076616c696460408201526f185d1bdc94d95d0818dbdb9d1c9858dd60821b606082015260800190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b6020808252601590820152741d9bdd195059191c881a5cc81b9bdd08199bdd5b99605a1b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526022908201527f6c656e677468206f662066656c6f6e795468726573686f6c64206d69736d61746040820152610c6d60f31b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526025908201527f746865206d697364656d65616e6f725468726573686f6c64206f7574206f662060408201526472616e676560d81b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b6020808252601490820152731d185c99d95d08189b1bd8dac81d1bdbc81bdb1960621b604082015260600190565b6020808252601e908201527f7265636569766520756e65787065637465642073796e207061636b6167650000604082015260600190565b6020808252602b908201527f6c656e677468206f662066696e616c697479536c61736852657761726452617460408201526a0d2de40dad2e6dac2e8c6d60ab1b606082015260800190565b6020808252818101527f63616e206e6f7420736c61736820747769636520696e206f6e6520626c6f636b604082015260600190565b61ffff91909116815260200190565b90815260200190565b60008382526040602083015261333c6040830184612bd3565b949350505050565b918252602082015260400190565b92835260208301919091521515604082015260600190565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff85168252606060208301526133a56060830185612bd3565b9050826040830152949350505050565b60405181810167ffffffffffffffff811182821017156133d457600080fd5b604052919050565b600067ffffffffffffffff8211156133f2578081fd5b5060209081020190565b600067ffffffffffffffff821115613412578081fd5b50601f01601f191660200190565b60005b8381101561343b578181015183820152602001613423565b8381111561172d5750506000910152565b6001600160a01b038116811461346157600080fd5b5056fea2646970667358221220532ad4dea38f301adf4b42a3bbc7b2ca9d59afe0f9ac4088e05b58394b1c666564736f6c63430006040033" + } + }, + "1705996800": { + "0x0000000000000000000000000000000000001000": { + "balance": "0x0", + "code": "0x6080604052600436106104a35760003560e01c806388b32f1111610260578063c6d3394511610144578063e40716a1116100c1578063f92eb86b11610085578063f92eb86b14610c02578063f9a2bbc714610c17578063fc3e590814610c2c578063fccc281314610c41578063fd4ad81f14610c56578063fd6a687914610c85576104aa565b8063e40716a114610b85578063ea321e4914610b9a578063eb57e20214610bba578063eda5868c14610bda578063f340fa0114610bef576104aa565b8063d86222d511610108578063d86222d514610b1c578063daacdb6614610b31578063dc927faf14610b46578063e086c7b114610b5b578063e1c7392a14610b70576104aa565b8063c6d3394514610abd578063c81b166214610ad2578063c8509d81146108b6578063ce910b0c14610ae7578063d68fb56a14610b07576104aa565b8063a5422d5c116101dd578063ad3c9da6116101a1578063ad3c9da614610a3c578063aef198a914610a5c578063b7ab4db514610a71578063b8cf4ef114610a93578063bf9f499514610666578063c466689d14610aa8576104aa565b8063a5422d5c146109c8578063a78abc16146109dd578063aaf5eb68146109f2578063ab51bb9614610a07578063ac43175114610a1c576104aa565b806396713da91161022457806396713da91461095f5780639dc09262146109745780639fe0f81614610989578063a0dc27581461099e578063a1a11bf5146109b3576104aa565b806388b32f11146108eb5780638a7beb01146109005780638b5ad0c9146109155780638d19a4101461092a5780639369d7de1461094a576104aa565b806351e80672116103875780636e47b482116103045780637942fd05116102c85780637942fd05146108775780637a84ca2a1461088c57806381650b62146108a1578063831d65d1146108b6578063853230aa1461086257806386249882146108d6576104aa565b80636e47b4821461080e57806370fd5bad14610823578063718a8aa81461083857806375d47a0a1461084d57806378dfed4a14610862576104aa565b80635de1e22c1161034b5780635de1e22c14610792578063603d86d31461065157806360eba4fe146107a757806362b72cf5146107c75780636969a25c146107dc576104aa565b806351e806721461071357806355614fcc14610728578063565c56b3146107485780635667515a146107685780635d77156c1461077d576104aa565b80633365af3a1161042057806343756e5c116103e457806343756e5c1461068857806345cf9daf1461069d578063493279b1146106b25780634bf6c882146106d45780634df6e0c3146106e95780635192c82c146106fe576104aa565b80633365af3a146105ee57806335409f7f1461060e5780633b071dcc1461062e5780633de0f0d8146106515780633dffc38714610666576104aa565b8063152ad3b811610467578063152ad3b8146105625780631ff1806914610584578063219f22d514610599578063300c3567146105ae578063321d398a146105ce576104aa565b806304c4fec6146104af57806307a56847146104c65780630bee7a67146104f15780630e2374a5146105135780631182b87514610535576104aa565b366104aa57005b600080fd5b3480156104bb57600080fd5b506104c4610c9a565b005b3480156104d257600080fd5b506104db610d0c565b6040516104e89190617691565b60405180910390f35b3480156104fd57600080fd5b50610506610d12565b6040516104e891906176bb565b34801561051f57600080fd5b50610528610d17565b6040516104e89190616a60565b34801561054157600080fd5b50610555610550366004616946565b610d1d565b6040516104e89190616bd7565b34801561056e57600080fd5b50610577610f55565b6040516104e89190616bcc565b34801561059057600080fd5b506104db610f5e565b3480156105a557600080fd5b50610506610f64565b3480156105ba57600080fd5b506104c46105c93660046167d0565b610f69565b3480156105da57600080fd5b506105776105e93660046168f3565b6112b0565b3480156105fa57600080fd5b506105776106093660046168f3565b61137f565b34801561061a57600080fd5b506104c46106293660046167a9565b611430565b34801561063a57600080fd5b50610643611589565b6040516104e8929190616ae2565b34801561065d57600080fd5b506104db611865565b34801561067257600080fd5b5061067b61186b565b6040516104e891906176cc565b34801561069457600080fd5b50610528611870565b3480156106a957600080fd5b506104db611876565b3480156106be57600080fd5b506106c761187c565b6040516104e89190617682565b3480156106e057600080fd5b5061067b611881565b3480156106f557600080fd5b50610643611886565b34801561070a57600080fd5b506104db611a04565b34801561071f57600080fd5b50610528611a0a565b34801561073457600080fd5b506105776107433660046167a9565b611a10565b34801561075457600080fd5b506104db6107633660046167a9565b611a45565b34801561077457600080fd5b5061067b611a96565b34801561078957600080fd5b50610506611a9b565b34801561079e57600080fd5b506104db611aa0565b3480156107b357600080fd5b506105556107c23660046168f3565b611aa6565b3480156107d357600080fd5b506104db611b4c565b3480156107e857600080fd5b506107fc6107f73660046168f3565b611b52565b6040516104e896959493929190616a8d565b34801561081a57600080fd5b50610528611bb6565b34801561082f57600080fd5b5061067b611bbc565b34801561084457600080fd5b5061067b611bc1565b34801561085957600080fd5b50610528611bc6565b34801561086e57600080fd5b506104db611bcc565b34801561088357600080fd5b5061067b611bd2565b34801561089857600080fd5b506104db611bd7565b3480156108ad57600080fd5b50610506611bdd565b3480156108c257600080fd5b506104c46108d1366004616946565b611be2565b3480156108e257600080fd5b506104db611c43565b3480156108f757600080fd5b506104db611c49565b34801561090c57600080fd5b50610577611c4f565b34801561092157600080fd5b506104db611c58565b34801561093657600080fd5b506104db6109453660046167a9565b611c5e565b34801561095657600080fd5b506104c4611c9e565b34801561096b57600080fd5b5061067b611db2565b34801561098057600080fd5b50610528611db7565b34801561099557600080fd5b506104db611dbd565b3480156109aa57600080fd5b506104db611dc2565b3480156109bf57600080fd5b50610528611dc7565b3480156109d457600080fd5b50610555611dcd565b3480156109e957600080fd5b50610577611dec565b3480156109fe57600080fd5b506104db611df5565b348015610a1357600080fd5b50610506611a96565b348015610a2857600080fd5b506104c4610a37366004616897565b611dfe565b348015610a4857600080fd5b506104db610a573660046167a9565b61269c565b348015610a6857600080fd5b506104db6126ae565b348015610a7d57600080fd5b50610a866126bb565b6040516104e89190616acf565b348015610a9f57600080fd5b506104db6127a7565b348015610ab457600080fd5b506104db6127ac565b348015610ac957600080fd5b506104db611bbc565b348015610ade57600080fd5b506105286127b2565b348015610af357600080fd5b50610555610b023660046168f3565b6127b8565b348015610b1357600080fd5b506104db6127c5565b348015610b2857600080fd5b506104db612804565b348015610b3d57600080fd5b506104db612810565b348015610b5257600080fd5b50610528612816565b348015610b6757600080fd5b506104db610d12565b348015610b7c57600080fd5b506104c461281c565b348015610b9157600080fd5b506104db6129cb565b348015610ba657600080fd5b50610577610bb5366004616858565b6129d1565b348015610bc657600080fd5b506104c4610bd53660046167a9565b612b57565b348015610be657600080fd5b50610506612c5f565b6104c4610bfd3660046167a9565b612c64565b348015610c0e57600080fd5b506104db612fcc565b348015610c2357600080fd5b50610528612fd2565b348015610c3857600080fd5b5061067b611dbd565b348015610c4d57600080fd5b50610528612fd8565b348015610c6257600080fd5b50610c76610c713660046168f3565b612fde565b6040516104e89392919061769a565b348015610c9157600080fd5b506105286130a0565b6000610ca533611c5e565b9050600b8181548110610cb457fe5b600091825260209091206001601690920201015460ff16610cf05760405162461bcd60e51b8152600401610ce79061733c565b60405180910390fd5b6000610cfa6127c5565b9050610d073383836130a6565b505050565b60095481565b606481565b61200181565b60005460609060ff16610d425760405162461bcd60e51b8152600401610ce790616d96565b3361200014610d635760405162461bcd60e51b8152600401610ce7906174d5565b600b54610e2157610d72616495565b60015460005b81811015610e1d57600b805460018101825560009190915283516000805160206177448339815191526016909202918201908155602080860151600080516020617d738339815191528401805460ff1916911515919091179055604086015180518794610df9936000805160206177648339815191529091019201906164c4565b506060820151610e0f906003830190601361653e565b505050806001019050610d78565b5050505b610e2961656b565b6000610e6a85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061329292505050565b9150915080610e8657610e7d606461344e565b92505050610f4e565b815160009060ff16610eab57610ea4836020015184604001516134af565b9050610f1a565b825160ff1660011415610f1657826020015151600114610ef057600080516020617724833981519152604051610ee0906171f5565b60405180910390a1506067610f11565b610ea48360200151600081518110610f0457fe5b6020026020010151614103565b610f1a565b5060655b63ffffffff8116610f3f5750506040805160008152602081019091529150610f4e9050565b610f488161344e565b93505050505b9392505050565b60075460ff1681565b60035481565b606881565b334114610f885760405162461bcd60e51b8152600401610ce790617524565b6010544311610fa95760405162461bcd60e51b8152600401610ce790616ef2565b3a15610fc75760405162461bcd60e51b8152600401610ce79061727b565b60005460ff16610fe95760405162461bcd60e51b8152600401610ce790616d96565b60006110023168056bc75e2d63100000811115611020576110198168056bc75e2d6310000063ffffffff61427a16565b9150611027565b50506112a6565b6040516213929d60e11b8152611002906227253a9061104c9030908690600401616a74565b602060405180830381600087803b15801561106657600080fd5b505af115801561107a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061109e919061690b565b9150816110ac5750506112a6565b6000805b848110156110da578585828181106110c457fe5b90506020020135820191508060010190506110b0565b50806110e8575050506112a6565b6000806000805b8981101561129e578489898381811061110457fe5b9050602002013588028161111457fe5b0493508a8a8281811061112357fe5b905060200201602081019061113891906167a9565b6001600160a01b0381166000908152600460205260409020549093509150811561125457600060018084038154811061116d57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff16156111da57836001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d85866040516111cd9190617691565b60405180910390a261124e565b6003546111ed908663ffffffff6142bc16565b6003908155810154611205908663ffffffff6142bc16565b60038201556040516001600160a01b038516907fcb0aad6cf9cd03bdf6137e359f541c42f38b39f007cae8e89e88aa7d8c6617b290611245908890617691565b60405180910390a25b50611296565b826001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d858560405161128d9190617691565b60405180910390a25b6001016110ef565b505050505050505b5050436010555050565b60015460009082106112c45750600061137a565b60006001600160a01b0316600183815481106112dc57fe5b60009182526020909120600490910201546001600160a01b0316148061130c5750600854158061130c5750600a54155b8061131b575060085460095410155b8061132c575061132a8261137f565b155b8061135557506000600b838154811061134157fe5b906000526020600020906016020160000154115b80611369575060016113656126bb565b5111155b156113765750600061137a565b5060015b919050565b60015460009082106113935750600061137a565b600b5482106113d057600182815481106113a957fe5b9060005260206000209060040201600201601c9054906101000a900460ff1615905061137a565b600182815481106113dd57fe5b9060005260206000209060040201600201601c9054906101000a900460ff1615801561142a5750600b828154811061141157fe5b600091825260209091206001601690920201015460ff16155b92915050565b33611001146114515760405162461bcd60e51b8152600401610ce790617639565b600b5461150f57611460616495565b60015460005b8181101561150b57600b805460018101825560009190915283516000805160206177448339815191526016909202918201908155602080860151600080516020617d738339815191528401805460ff19169115159190911790556040860151805187946114e7936000805160206177648339815191529091019201906164c4565b5060608201516114fd906003830190601361653e565b505050806001019050611466565b5050505b6001600160a01b038116600090815260046020526040902054806115335750611586565b6001810390506000600b828154811061154857fe5b600091825260209091206001601690920201015460ff16905061156b83836142e1565b80156115745750805b15610d07576009805460001901905550505b50565b60015460609081906000805b828110156115dc57600181815481106115aa57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166115d4576001909101905b600101611595565b50606081604051908082528060200260200182016040528015611609578160200160208202803683370190505b50905060608260405190808252806020026020018201604052801561164257816020015b606081526020019060019003908161162d5790505b50600b54600094509091508414156117bd5760005b848110156117b7576001818154811061166c57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166117af576001818154811061169c57fe5b600091825260209091206004909102015483516001600160a01b03909116908490869081106116c757fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600b81815481106116f457fe5b600091825260209182902060026016909202018101805460408051601f60001961010060018616150201909316949094049182018590048502840185019052808352919290919083018282801561178c5780601f106117615761010080835404028352916020019161178c565b820191906000526020600020905b81548152906001019060200180831161176f57829003601f168201915b505050505082858151811061179d57fe5b60209081029190910101526001909301925b600101611657565b50611859565b60005b8481101561185757600181815481106117d557fe5b9060005260206000209060040201600201601c9054906101000a900460ff1661184f576001818154811061180557fe5b600091825260209091206004909102015483516001600160a01b039091169084908690811061183057fe5b6001600160a01b03909216602092830291909101909101526001909301925b6001016117c0565b505b909450925050505b9091565b61271081565b600181565b61100181565b60085481565b603881565b600881565b600e54600c5460609182918061189a575060155b60606118a46126bb565b905060606118b182614694565b9050828251116118c8579094509250611861915050565b838383510310156118da578282510393505b83156119105760c843046118f683838388880360008a8a614802565b61190e8383838888038989038a8b8b8b510301614802565b505b60608360405190808252806020026020018201604052801561193c578160200160208202803683370190505b50905060608460405190808252806020026020018201604052801561197557816020015b60608152602001906001900390816119605790505b50905060005b858110156119f65784818151811061198f57fe5b60200260200101518382815181106119a357fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508381815181106119cf57fe5b60200260200101518282815181106119e357fe5b602090810291909101015260010161197b565b509096509450505050509091565b60065481565b61200081565b6001600160a01b03811660009081526004602052604081205480611a3857600091505061137a565b60001901610f4e8161137f565b6001600160a01b03811660009081526004602052604081205480611a6d57600091505061137a565b600180820381548110611a7c57fe5b906000526020600020906004020160030154915050919050565b600081565b606781565b600f5481565b60128181548110611ab357fe5b600091825260209182902001805460408051601f6002600019610100600187161502019094169390930492830185900485028101850190915281815293509091830182828015611b445780601f10611b1957610100808354040283529160200191611b44565b820191906000526020600020905b815481529060010190602001808311611b2757829003601f168201915b505050505081565b60105481565b60018181548110611b5f57fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b601081565b61100881565b6103e881565b600b81565b600c5481565b606681565b3361200014611c035760405162461bcd60e51b8152600401610ce7906174d5565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051611c36939291906176da565b60405180910390a1505050565b60025481565b60115481565b60145460ff1681565b600a5481565b6001600160a01b03811660009081526004602052604081205480611c945760405162461bcd60e51b8152600401610ce79061745d565b6000190192915050565b600b54611d5c57611cad616495565b60015460005b81811015611d5857600b805460018101825560009190915283516000805160206177448339815191526016909202918201908155602080860151600080516020617d738339815191528401805460ff1916911515919091179055604086015180518794611d34936000805160206177648339815191529091019201906164c4565b506060820151611d4a906003830190601361653e565b505050806001019050611cb3565b5050505b600854611d695760036008555b600a54611d76576002600a555b6000611d8133611c5e565b9050611d8c816112b0565b611da85760405162461bcd60e51b8152600401610ce7906171b2565b6115863382614959565b600981565b61100781565b600381565b60c881565b61100681565b6040518061062001604052806105ef81526020016177846105ef913981565b60005460ff1681565b6402540be40081565b60005460ff16611e205760405162461bcd60e51b8152600401610ce790616d96565b3361100714611e415760405162461bcd60e51b8152600401610ce7906172a9565b611eab84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b602082015291506149f19050565b15611f485760208114611ed05760405162461bcd60e51b8152600401610ce790617417565b604080516020601f8401819004810282018101909252828152600091611f0e91858580838501838280828437600092019190915250614a4a92505050565b905060648110158015611f245750620186a08111155b611f405760405162461bcd60e51b8152600401610ce7906170a2565b600255612659565b611fa884848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260098152686275726e526174696f60b81b602082015291506149f19050565b156120375760208114611fcd5760405162461bcd60e51b8152600401610ce790616c1c565b604080516020601f840181900481028201810190925282815260009161200b91858580838501838280828437600092019190915250614a4a92505050565b905061271081111561202f5760405162461bcd60e51b8152600401610ce790616f34565b600655612659565b6120a184848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260138152726d61784e756d4f664d61696e7461696e696e6760681b602082015291506149f19050565b1561213b57602081146120c65760405162461bcd60e51b8152600401610ce790616c53565b604080516020601f840181900481028201810190925282815260009161210491858580838501838280828437600092019190915250614a4a92505050565b600c5490915080612113575060155b8082106121325760405162461bcd60e51b8152600401610ce790616fa7565b50600855612659565b6121a484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61696e7461696e536c6173685363616c6560701b602082015291506149f19050565b1561223d57602081146121c95760405162461bcd60e51b8152600401610ce790616d1c565b604080516020601f840181900481028201810190925282815260009161220791858580838501838280828437600092019190915250614a4a92505050565b90506000811180156122195750600a81105b6122355760405162461bcd60e51b8152600401610ce7906175b5565b600a55612659565b6122b184848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601981527f6d61784e756d4f66576f726b696e6743616e6469646174657300000000000000602082015291506149f19050565b1561234057602081146122d65760405162461bcd60e51b8152600401610ce790616cd0565b604080516020601f840181900481028201810190925282815260009161231491858580838501838280828437600092019190915250614a4a92505050565b9050600d548111156123385760405162461bcd60e51b8152600401610ce790617118565b600e55612659565b6123a984848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61784e756d4f6643616e6469646174657360701b602082015291506149f19050565b1561242b57602081146123ce5760405162461bcd60e51b8152600401610ce7906172f7565b604080516020601f840181900481028201810190925282815260009161240c91858580838501838280828437600092019190915250614a4a92505050565b600d819055600e5490915081101561242557600d54600e555b50612659565b61248f84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c6e756d4f66436162696e65747360981b602082015291506149f19050565b1561253d57602081146124b45760405162461bcd60e51b8152600401610ce790616d61565b604080516020601f84018190048102820181019092528281526000916124f291858580838501838280828437600092019190915250614a4a92505050565b9050600081116125145760405162461bcd60e51b8152600401610ce790616e04565b60648111156125355760405162461bcd60e51b8152600401610ce790616e4c565b600c55612659565b6125a584848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601181527073797374656d526577617264526174696f60781b602082015291506149f19050565b1561264157602081146125ca5760405162461bcd60e51b8152600401610ce790617571565b604080516020601f840181900481028201810190925282815260009161260891858580838501838280828437600092019190915250614a4a92505050565b90506001811015801561261d57506127108111155b6126395760405162461bcd60e51b8152600401610ce79061704f565b600f55612659565b60405162461bcd60e51b8152600401610ce790617612565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a8484848460405161268e9493929190616bea565b60405180910390a150505050565b60046020526000908152604090205481565b68056bc75e2d6310000081565b6001546060906000805b828110156126ea576126d68161137f565b156126e2578160010191505b6001016126c5565b50606081604051908082528060200260200182016040528015612717578160200160208202803683370190505b5090506000915060005b8381101561279e576127328161137f565b15612796576001818154811061274457fe5b600091825260209091206004909102015482516001600160a01b039091169083908590811061276f57fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508260010192505b600101612721565b50925050505b90565b601581565b61027181565b61100281565b60138181548110611ab357fe5b60006127cf6126bb565b519050600080600c54116127e45760156127e8565b600c545b9050808211156127f6578091505b8161280057600191505b5090565b67016345785d8a000081565b60055481565b61100381565b60005460ff161561283f5760405162461bcd60e51b8152600401610ce7906173a9565b61284761656b565b600061286d6040518061062001604052806105ef81526020016177846105ef9139613292565b915091508061288e5760405162461bcd60e51b8152600401610ce790617494565b60005b8260200151518110156129b3576001836020015182815181106128b057fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a09093015160039093019290925591860151805191850193918590811061298657fe5b602090810291909101810151516001600160a01b0316825281019190915260400160002055600101612891565b50506103e8600255506000805460ff19166001179055565b600d5481565b601354600090815b81811015612ada57612ac285858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050601380549092508591508110612a2a57fe5b600091825260209182902001805460408051601f6002600019610100600187161502019094169390930492830185900485028101850190915281815292830182828015612ab85780601f10612a8d57610100808354040283529160200191612ab8565b820191906000526020600020905b815481529060010190602001808311612a9b57829003601f168201915b5050505050614a4f565b15612ad25760019250505061142a565b6001016129d9565b5060125460005b81811015612b4b57612b3286868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050601280549092508591508110612a2a57fe5b15612b43576001935050505061142a565b600101612ae1565b50600095945050505050565b3361100114612b785760405162461bcd60e51b8152600401610ce790617639565b600b54612c3657612b87616495565b60015460005b81811015612c3257600b805460018101825560009190915283516000805160206177448339815191526016909202918201908155602080860151600080516020617d738339815191528401805460ff1916911515919091179055604086015180518794612c0e936000805160206177648339815191529091019201906164c4565b506060820151612c24906003830190601361653e565b505050806001019050612b8d565b5050505b6000612c4182614ab3565b9050612c4c816112b0565b15612c5b57612c5b8282614959565b5050565b606581565b334114612c835760405162461bcd60e51b8152600401610ce790617524565b60005460ff16612ca55760405162461bcd60e51b8152600401610ce790616d96565b60003411612cc55760405162461bcd60e51b8152600401610ce7906170e9565b3a15612ce35760405162461bcd60e51b8152600401610ce79061727b565b6001600160a01b03811660009081526004602052604090205460145434919060ff16612d2357610271600f556103e86006556014805460ff191660011790555b6000612d4c612710612d40600f5486614c5690919063ffffffff16565b9063ffffffff614c9016565b90508015612dbc576040516110029082156108fc029083906000818181858888f19350505050158015612d83573d6000803e3d6000fd5b507f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d81604051612db39190617691565b60405180910390a15b600083118015612dce57506000600654115b15612e74576000612df0612710612d4060065487614c5690919063ffffffff16565b90508015612e725760405161dead9082156108fc029083906000818181858888f19350505050158015612e27573d6000803e3d6000fd5b507f627059660ea01c4733a328effb2294d2f86905bf806da763a89cee254de8bee581604051612e579190617691565b60405180910390a1612e6f848263ffffffff61427a16565b93505b505b612e84838263ffffffff61427a16565b92508115612f84576000600180840381548110612e9d57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff1615612f0a57846001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b485604051612efd9190617691565b60405180910390a2612f7e565b600354612f1d908563ffffffff6142bc16565b6003908155810154612f35908563ffffffff6142bc16565b60038201556040516001600160a01b038616907f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc05590612f75908790617691565b60405180910390a25b50612fc6565b836001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b484604051612fbd9190617691565b60405180910390a25b50505050565b600e5481565b61100081565b61dead81565b600b8181548110612feb57fe5b6000918252602091829020601691909102018054600180830154600280850180546040805161010096831615969096026000190190911692909204601f810188900488028501880190925281845293965060ff909116949192918301828280156130965780601f1061306b57610100808354040283529160200191613096565b820191906000526020600020905b81548152906001019060200180831161307957829003601f168201915b5050505050905083565b61100481565b6000600a54600014806130b7575081155b806130c25750600954155b156130cf57506000610f4e565b6009600081546001900391905081905550600061311a600a54612d4085612d40600b89815481106130fc57fe5b6000918252602090912060169091020154439063ffffffff61427a16565b90506000600b858154811061312b57fe5b906000526020600020906016020160010160006101000a81548160ff0219169083151502179055506000806110016001600160a01b0316638256ace66040518163ffffffff1660e01b8152600401604080518083038186803b15801561319057600080fd5b505afa1580156131a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131c89190616923565b9150915060009350808310613242576131e187876142e1565b506040516305bfb49960e41b815261100190635bfb499090613207908a90600401616a60565b600060405180830381600087803b15801561322157600080fd5b505af1158015613235573d6000803e3d6000fd5b5050505060019350613254565b8183106132545761325287614ab3565b505b6040516001600160a01b038816907fb9d38178dc641ff1817967a63c9078cbcd955a9f1fcd75e0e3636de615d44d3b90600090a25050509392505050565b61329a61656b565b60006132a461656b565b6132ac61658f565b6132bd6132b886614cd2565b614cf7565b90506000805b6132cc83614d41565b1561344057806132f1576132e76132e284614d62565b614db0565b60ff168452613438565b806001141561343357606061330d61330885614d62565b614e30565b9050805160405190808252806020026020018201604052801561334a57816020015b6133376165af565b81526020019060019003908161332f5790505b508560200181905250805160405190808252806020026020018201604052801561338857816020015b60608152602001906001900390816133735790505b50604086015260005b8151811015613428576133a26165af565b606060006133c28585815181106133b557fe5b6020026020010151614f01565b925092509250806133e2578860009a509a50505050505050505050613449565b82896020015185815181106133f357fe5b6020026020010181905250818960400151858151811061340f57fe5b6020026020010181905250505050806001019050613391565b506001925050613438565b613440565b6001016132c3565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b606081526020019060019003908161346857905050905061348e8363ffffffff1661501b565b8160008151811061349b57fe5b6020026020010181905250610f4e8161502e565b60006064835111156134e6576000805160206177248339815191526040516134d690616ea9565b60405180910390a150606661142a565b60005b83518110156135845760005b8181101561357b5784818151811061350957fe5b6020026020010151600001516001600160a01b031685838151811061352a57fe5b6020026020010151600001516001600160a01b031614156135735760008051602061772483398151915260405161356090617004565b60405180910390a160669250505061142a565b6001016134f5565b506001016134e9565b5060608061359285856150b8565b60015491935091506000908190815b818110156136175767016345785d8a0000600182815481106135bf57fe5b906000526020600020906004020160030154106135e15783600101935061360f565b6000600182815481106135f057fe5b906000526020600020906004020160030154111561360f578260010192505b6001016135a1565b50606083604051908082528060200260200182016040528015613644578160200160208202803683370190505b509050606084604051908082528060200260200182016040528015613673578160200160208202803683370190505b5090506060856040519080825280602002602001820160405280156136a2578160200160208202803683370190505b5090506060866040519080825280602002602001820160405280156136d1578160200160208202803683370190505b5090506000606087604051908082528060200260200182016040528015613702578160200160208202803683370190505b509050606088604051908082528060200260200182016040528015613731578160200160208202803683370190505b509050600099506000985060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b15801561377957600080fd5b505afa15801561378d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137b1919061690b565b905067016345785d8a00008111156137fc576000805160206177248339815191526040516137de90617368565b60405180910390a160689d505050505050505050505050505061142a565b60005b89811015613a6d5767016345785d8a00006001828154811061381d57fe5b906000526020600020906004020160030154106139a2576001818154811061384157fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316898d8151811061387257fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be400600183815481106138a757fe5b906000526020600020906004020160030154816138c057fe5b06600183815481106138ce57fe5b9060005260206000209060040201600301540390506138f6838261427a90919063ffffffff16565b898e8151811061390257fe5b6020026020010181815250506001828154811061391b57fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316878e8151811061394c57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081888e8151811061397957fe5b6020908102919091010152613994868263ffffffff6142bc16565b95508c6001019c5050613a65565b6000600182815481106139b157fe5b9060005260206000209060040201600301541115613a6557600181815481106139d657fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316848c81518110613a0757fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060018181548110613a3457fe5b906000526020600020906004020160030154838c81518110613a5257fe5b6020026020010181815250508a6001019a505b6001016137ff565b5060008415613ce3576002546040516303702b2960e51b815261100491636e056520918891613aa7918e918e918d91420190600401616b52565b6020604051808303818588803b158015613ac057600080fd5b505af193505050508015613af1575060408051601f3d908101601f19168201909252613aee91810190616838565b60015b613c68576040516000815260443d1015613b0d57506000613ba8565b60046000803e60005160e01c6308c379a08114613b2e576000915050613ba8565b60043d036004833e81513d60248201116001600160401b0382111715613b5957600092505050613ba8565b80830180516001600160401b03811115613b7a576000945050505050613ba8565b8060208301013d8601811115613b9857600095505050505050613ba8565b601f01601f191660405250925050505b80613bb35750613bf5565b60019150857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf28082604051613be79190616bd7565b60405180910390a250613c63565b3d808015613c1f576040519150601f19603f3d011682016040523d82523d6000602084013e613c24565b606091505b5060019150857fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a4582604051613c599190616bd7565b60405180910390a2505b613ce3565b8015613caa577fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b7086604051613c9d9190617691565b60405180910390a1613ce1565b857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280604051613cd890616c99565b60405180910390a25b505b8015613e995760005b8751811015613e97576000888281518110613d0357fe5b60200260200101519050600060018281548110613d1c57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc9185908110613d4d57fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f1935050505090508015613e095760018281548110613d8e57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d9185908110613ddd57fe5b906000526020600020906004020160030154604051613dfc9190617691565b60405180910390a2613e8d565b60018281548110613e1657fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d9185908110613e6557fe5b906000526020600020906004020160030154604051613e849190617691565b60405180910390a25b5050600101613cec565b505b835115613fe35760005b8451811015613fe1576000858281518110613eba57fe5b60200260200101516001600160a01b03166108fc868481518110613eda57fe5b60200260200101519081150290604051600060405180830381858888f1935050505090508015613f7057858281518110613f1057fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d868481518110613f4e57fe5b6020026020010151604051613f639190617691565b60405180910390a2613fd8565b858281518110613f7c57fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d868481518110613fba57fe5b6020026020010151604051613fcf9190617691565b60405180910390a25b50600101613ea3565b505b505050505050505050505050600047111561405f577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d476040516140279190617691565b60405180910390a1604051611002904780156108fc02916000818181858888f1935050505015801561405d573d6000803e3d6000fd5b505b6000600381905560055581511561407a5761407a82826152f1565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156140b757600080fd5b505af11580156140cb573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a1506000949350505050565b80516001600160a01b0316600090815260046020526040812054801580614154575060018082038154811061413457fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b1561419a5782516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a2600091505061137a565b6001546005546000198201118015906141f05784516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a26000935050505061137a565b60058054600190810190915580548190600019860190811061420e57fe5b6000918252602082206002600490920201018054921515600160e01b0260ff60e01b199093169290921790915585516040516001600160a01b03909116917ff226e7d8f547ff903d9d419cf5f54e0d7d07efa9584135a53a057c5f1f27f49a91a2506000949350505050565b6000610f4e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250615aab565b600082820183811015610f4e5760405162461bcd60e51b8152600401610ce790616dcd565b600080600183815481106142f157fe5b9060005260206000209060040201600301549050600060018080549050039050600161431b6126bb565b51116143505760006001858154811061433057fe5b90600052602060002090600402016003018190555060009250505061142a565b846001600160a01b03167f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a70836040516143899190617691565b60405180910390a26001600160a01b038516600090815260046020526040812055835b6001546000190181101561457657600181600101815481106143ca57fe5b9060005260206000209060040201600182815481106143e557fe5b60009182526020909120825460049092020180546001600160a01b03199081166001600160a01b0393841617825560018085015481840180548416918616919091179055600280860180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b19909416939093179055600392830154920191909155600b8054909183019081106144a657fe5b9060005260206000209060160201600b82815481106144c157fe5b600091825260209091208254601690920201908155600180830154818301805460ff909216151560ff19909216919091179055600280840180546145189383860193908216156101000260001901909116046165e4565b5061452b60038281019084016013616659565b5090505080600101600460006001848154811061454457fe5b600091825260208083206004909202909101546001600160a01b031683528201929092526040019020556001016143ac565b50600180548061458257fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b8054806145d557fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906146076002830182616683565b6146156003830160006166c7565b50509055600081838161462457fe5b04905080156146885760015460005b8181101561468557826001828154811061464957fe5b906000526020600020906004020160030154016001828154811061466957fe5b6000918252602090912060036004909202010155600101614633565b50505b50600195945050505050565b6001548151604080518281526020808402820101909152606092919083908280156146d357816020015b60608152602001906001900390816146be5790505b50600b5490915083146146ea57925061137a915050565b60005b828110156147f957600b60016004600089858151811061470957fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054038154811061473d57fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156147d55780601f106147aa576101008083540402835291602001916147d5565b820191906000526020600020905b8154815290600101906020018083116147b857829003601f168201915b50505050508282815181106147e657fe5b60209081029190910101526001016146ed565b50949350505050565b60005b8281101561494f5760008287838801604051602001614825929190616a52565b6040516020818303038152906040528051906020012060001c8161484557fe5b06905080850182870114614946576000898388018151811061486357fe5b602002602001015190506060898489018151811061487d57fe5b602002602001015190508a8388018151811061489557fe5b60200260200101518b858a01815181106148ab57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050818b848901815181106148da57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050898388018151811061490857fe5b60200260200101518a858a018151811061491e57fe5b6020026020010181905250808a8489018151811061493857fe5b602002602001018190525050505b50600101614805565b5050505050505050565b600980546001908101909155600b80548390811061497357fe5b906000526020600020906016020160010160006101000a81548160ff02191690831515021790555043600b82815481106149a957fe5b600091825260208220601690910201919091556040516001600160a01b038416917ff62981a567ec3cec866c6fa93c55bcdf841d6292d18b8d522ececa769375d82d91a25050565b600081604051602001614a049190616a36565b6040516020818303038152906040528051906020012083604051602001614a2b9190616a36565b6040516020818303038152906040528051906020012014905092915050565b015190565b815181516000916001918114808314614a6b5760009250614aa9565b600160208701838101602088015b600284838510011415614aa4578051835114614a985760009650600093505b60209283019201614a79565b505050505b5090949350505050565b6001600160a01b03811660009081526004602052604081205480614adc5750600019905061137a565b600181039050600060018281548110614af157fe5b9060005260206000209060040201600301549050600060018381548110614b1457fe5b6000918252602090912060036004909202010155600154604051600019909101906001600160a01b038616907f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d90614b6d908590617691565b60405180910390a280614b855782935050505061137a565b6000818381614b9057fe5b0490508015614c4c5760005b84811015614bee578160018281548110614bb257fe5b9060005260206000209060040201600301540160018281548110614bd257fe5b6000918252602090912060036004909202010155600101614b9c565b50600180549085015b81811015614c49578260018281548110614c0d57fe5b9060005260206000209060040201600301540160018281548110614c2d57fe5b6000918252602090912060036004909202010155600101614bf7565b50505b5091949350505050565b600082614c655750600061142a565b82820282848281614c7257fe5b0414610f4e5760405162461bcd60e51b8152600401610ce79061723a565b6000610f4e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250615ad7565b614cda6166d6565b506040805180820190915281518152602082810190820152919050565b614cff61658f565b614d0882615b0e565b614d1157600080fd5b6000614d208360200151615b48565b60208085015160408051808201909152868152920190820152915050919050565b6000614d4b6166d6565b505080518051602091820151919092015191011190565b614d6a6166d6565b614d7382614d41565b614d7c57600080fd5b60208201516000614d8c82615bab565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590614dc557508151602110155b614dce57600080fd5b6000614ddd8360200151615b48565b90508083600001511015614e035760405162461bcd60e51b8152600401610ce7906173e0565b8251602080850151830180519284900392918310156147f957506020919091036101000a90049392505050565b6060614e3b82615b0e565b614e4457600080fd5b6000614e4f83615c8c565b9050606081604051908082528060200260200182016040528015614e8d57816020015b614e7a6166d6565b815260200190600190039081614e725790505b5090506000614e9f8560200151615b48565b60208601510190506000805b84811015614ef657614ebc83615bab565b9150604051806040016040528083815260200184815250848281518110614edf57fe5b602090810291909101015291810191600101614eab565b509195945050505050565b614f096165af565b60606000614f156165af565b6060614f1f61658f565b614f2887614cf7565b90506000805b614f3783614d41565b1561500c5780614f6257614f52614f4d84614d62565b615ce8565b6001600160a01b03168552615004565b8060011415614f8a57614f77614f4d84614d62565b6001600160a01b03166020860152615004565b8060021415614fb257614f9f614f4d84614d62565b6001600160a01b03166040860152615004565b8060031415614fde57614fc76132e284614d62565b6001600160401b0316606086015260019150615004565b8060041415614fff57614ff8614ff384614d62565b615d02565b9350615004565b61500c565b600101614f2e565b50929791965091945092505050565b606061142a61502983615d72565b615e58565b606081516000141561504f575060408051600081526020810190915261137a565b60608260008151811061505e57fe5b602002602001015190506000600190505b835181101561509f576150958285838151811061508857fe5b6020026020010151615eaa565b915060010161506f565b50610f4e6150b2825160c060ff16615f27565b82615eaa565b6060806000808080806150c96127c5565b6001549091505b80156151d757600181039250600b83815481106150e957fe5b600091825260209091206001601690920201015460ff16615109576151ce565b6001838154811061511657fe5b60009182526020909120600490910201546001600160a01b0316945061513d8584846130a6565b9350831580615150575060018a51038610155b1561515a576151ce565b60005b8a518110156151cc57856001600160a01b03168b828151811061517c57fe5b6020026020010151600001516001600160a01b031614156151c45760018b82815181106151a557fe5b60209081029190910101519015156080909101526001909601956151cc565b60010161515d565b505b600019016150d0565b508489510360405190808252806020026020018201604052801561521557816020015b6152026165af565b8152602001906001900390816151fa5790505b5096508489510360405190808252806020026020018201604052801561524f57816020015b606081526020019060019003908161523a5790505b5095506000915060005b89518110156152e35789818151811061526e57fe5b6020026020010151608001516152db5789818151811061528a57fe5b602002602001015188848151811061529e57fe5b60200260200101819052508881815181106152b557fe5b60200260200101518784815181106152c957fe5b60200260200101819052508260010192505b600101615259565b5050505050505b9250929050565b600154825160005b8281101561540e57600161530b6165af565b6001838154811061531857fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b848110156153e2578781815181106153a857fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b031614156153da57600092506153e2565b600101615394565b5081156154045780516001600160a01b03166000908152600460205260408120555b50506001016152f9565b50808211156154cd57805b828110156154cb57600180548061542c57fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b80548061547f57fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906154b16002830182616683565b6154bf6003830160006166c7565b50509055600101615419565b505b60008183106154dc57816154de565b825b905060005b8181101561584d576155908682815181106154fa57fe5b60200260200101516001838154811061550f57fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a0820152615ff9565b6157445780600101600460008884815181106155a857fe5b6020026020010151600001516001600160a01b03166001600160a01b03168152602001908152602001600020819055508581815181106155e457fe5b6020026020010151600182815481106155f957fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a09091015160039091015584518590829081106156b457fe5b6020026020010151600b82815481106156c957fe5b906000526020600020906016020160020190805190602001906156ed9291906164c4565b506000600b82815481106156fd57fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b80548390811061572e57fe5b6000918252602090912060169091020155615845565b6157d585828151811061575357fe5b6020026020010151600b838154811061576857fe5b600091825260209182902060026016909202018101805460408051601f600019610100600186161502019093169490940491820185900485028401850190528083529192909190830182828015612ab85780601f10612a8d57610100808354040283529160200191612ab8565b615820578481815181106157e557fe5b6020026020010151600b82815481106157fa57fe5b9060005260206000209060160201600201908051906020019061581e9291906164c4565b505b60006001828154811061582f57fe5b9060005260206000209060040201600301819055505b6001016154e3565b5082821115615a255761585e616495565b835b83811015615a225785818151811061587457fe5b60200260200101518260400181905250600187828151811061589257fe5b6020908102919091018101518254600181810185556000948552838520835160049093020180546001600160a01b039384166001600160a01b0319918216178255848601518284018054918616918316919091179055604080860151600284018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909a1692909616919091179290921696909617169190911790935560a090930151600390930192909255600b8054928301815590935284516016909102600080516020617744833981519152810191825585830151600080516020617d738339815191528201805491151560ff19909216919091179055928501518051869492936159c893600080516020617764833981519152019201906164c4565b5060608201516159de906003830190601361653e565b50505080600101600460008984815181106159f557fe5b602090810291909101810151516001600160a01b0316825281019190915260400160002055600101615860565b50505b615a2d61607a565b615a3561625c565b6000600981905560015493505b83811015615aa3576000600b8281548110615a5957fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b805483908110615a8a57fe5b6000918252602090912060169091020155600101615a42565b505050505050565b60008184841115615acf5760405162461bcd60e51b8152600401610ce79190616bd7565b505050900390565b60008183615af85760405162461bcd60e51b8152600401610ce79190616bd7565b506000838581615b0457fe5b0495945050505050565b8051600090615b1f5750600061137a565b6020820151805160001a9060c0821015615b3e5760009250505061137a565b5060019392505050565b8051600090811a6080811015615b6257600091505061137a565b60b8811080615b7d575060c08110801590615b7d575060f881105b15615b8c57600191505061137a565b60c0811015615ba05760b51901905061137a565b60f51901905061137a565b80516000908190811a6080811015615bc65760019150615c85565b60b8811015615bdb57607e1981019150615c85565b60c0811015615c2c57600060b78203600186019550806020036101000a865104915060018101820193505080831015615c265760405162461bcd60e51b8152600401610ce790617187565b50615c85565b60f8811015615c415760be1981019150615c85565b600060f78203600186019550806020036101000a865104915060018101820193505080831015615c835760405162461bcd60e51b8152600401610ce790617187565b505b5092915050565b8051600090615c9d5750600061137a565b60008090506000615cb18460200151615b48565b602085015185519181019250015b80821015615cdf57615cd082615bab565b82019150826001019250615cbf565b50909392505050565b8051600090601514615cf957600080fd5b61142a82614db0565b8051606090615d1057600080fd5b6000615d1f8360200151615b48565b83516040805191839003808352601f19601f8201168301602001909152919250606090828015615d56576020820181803683370190505b50905060008160200190506147f984876020015101828561644a565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416615db657506018615dda565b6fffffffffffffffffffffffffffffffff198416615dd657506010615dda565b5060005b6020811015615e1057818181518110615def57fe5b01602001516001600160f81b03191615615e0857615e10565b600101615dda565b60008160200390506060816040519080825280601f01601f191660200182016040528015615e45576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015615e8a5750607f60f81b82600081518110615e7857fe5b01602001516001600160f81b03191611155b15615e9657508061137a565b61142a615ea88351608060ff16615f27565b835b6060806040519050835180825260208201818101602087015b81831015615edb578051835260209283019201615ec3565b50855184518101855292509050808201602086015b81831015615f08578051835260209283019201615ef0565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310615f515760405162461bcd60e51b8152600401610ce790616f7f565b60408051600180825281830190925260609160208201818036833701905050905060378411615fab5782840160f81b81600081518110615f8d57fe5b60200101906001600160f81b031916908160001a905350905061142a565b6060615fb685615d72565b90508381510160370160f81b82600081518110615fcf57fe5b60200101906001600160f81b031916908160001a905350615ff08282615eaa565b95945050505050565b805182516000916001600160a01b039182169116148015616033575081602001516001600160a01b031683602001516001600160a01b0316145b8015616058575081604001516001600160a01b031683604001516001600160a01b0316145b8015610f4e5750506060908101519101516001600160401b0390811691161490565b601254601354808211156160c557805b828110156160c357601280548061609d57fe5b6001900381819060005260206000200160006160b99190616683565b905560010161608a565b505b60008183106160d457816160d6565b825b905060005b818110156161ee57616193601282815481106160f357fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156161815780601f1061615657610100808354040283529160200191616181565b820191906000526020600020905b81548152906001019060200180831161616457829003601f168201915b505050505060138381548110612a2a57fe5b6161e657601381815481106161a457fe5b90600052602060002001601282815481106161bb57fe5b9060005260206000200190805460018160011615610100020316600290046161e49291906165e4565b505b6001016160db565b5082821115610d0757825b82811015612fc65760126013828154811061621057fe5b60009182526020808320845460018181018755958552919093209290910180546162539493909201929091600261010092821615929092026000190116046165e4565b506001016161f9565b601354600b54808211156162a757805b828110156162a557601380548061627f57fe5b60019003818190600052602060002001600061629b9190616683565b905560010161626c565b505b60008183106162b657816162b8565b825b905060005b818110156163d757616375601382815481106162d557fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156163635780601f1061633857610100808354040283529160200191616363565b820191906000526020600020905b81548152906001019060200180831161634657829003601f168201915b5050505050600b838154811061576857fe5b6163cf57600b818154811061638657fe5b9060005260206000209060160201600201601382815481106163a457fe5b9060005260206000200190805460018160011615610100020316600290046163cd9291906165e4565b505b6001016162bd565b5082821115610d0757825b82811015612fc6576013600b82815481106163f957fe5b600091825260208083208454600180820187559585529190932060169290920290920160029081018054616441959390940193909260001990821615610100020116046165e4565b506001016163e2565b8061645457610d07565b5b60208110616474578251825260209283019290910190601f1901616455565b915181516020939093036101000a6000190180199091169216919091179052565b604051806080016040528060008152602001600015158152602001606081526020016164bf6166f0565b905290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061650557805160ff1916838001178555616532565b82800160010185558215616532579182015b82811115616532578251825591602001919060010190616517565b5061280092915061670f565b82601381019282156165325791602002820182811115616532578251825591602001919060010190616517565b6040518060600160405280600060ff16815260200160608152602001606081525090565b60405180604001604052806165a26166d6565b8152602001600081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061661d5780548555616532565b8280016001018555821561653257600052602060002091601f016020900482015b8281111561653257825482559160010191906001019061663e565b8260138101928215616532579182018281111561653257825482559160010191906001019061663e565b50805460018160011615610100020316600290046000825580601f106166a95750611586565b601f016020900490600052602060002090810190611586919061670f565b5061158690601381019061670f565b604051806040016040528060008152602001600081525090565b6040518061026001604052806013906020820280368337509192915050565b6127a491905b808211156128005760008155600101616715565b60008083601f84011261673a578182fd5b5081356001600160401b03811115616750578182fd5b60208301915083602080830285010111156152ea57600080fd5b60008083601f84011261677b578182fd5b5081356001600160401b03811115616791578182fd5b6020830191508360208285010111156152ea57600080fd5b6000602082840312156167ba578081fd5b81356001600160a01b0381168114610f4e578182fd5b600080600080604085870312156167e5578283fd5b84356001600160401b03808211156167fb578485fd5b61680788838901616729565b9096509450602087013591508082111561681f578384fd5b5061682c87828801616729565b95989497509550505050565b600060208284031215616849578081fd5b81518015158114610f4e578182fd5b6000806020838503121561686a578182fd5b82356001600160401b0381111561687f578283fd5b61688b8582860161676a565b90969095509350505050565b600080600080604085870312156168ac578384fd5b84356001600160401b03808211156168c2578586fd5b6168ce8883890161676a565b909650945060208701359150808211156168e6578384fd5b5061682c8782880161676a565b600060208284031215616904578081fd5b5035919050565b60006020828403121561691c578081fd5b5051919050565b60008060408385031215616935578182fd5b505080516020909101519092909150565b60008060006040848603121561695a578283fd5b833560ff8116811461696a578384fd5b925060208401356001600160401b03811115616984578283fd5b6169908682870161676a565b9497909650939450505050565b6000815180845260208085019450808401835b838110156169d55781516001600160a01b0316875295820195908201906001016169b0565b509495945050505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008151808452616a228160208601602086016176f7565b601f01601f19169290920160200192915050565b60008251616a488184602087016176f7565b9190910192915050565b918252602082015260400190565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b03968716815294861660208601529290941660408401526001600160401b03166060830152911515608082015260a081019190915260c00190565b600060208252610f4e602083018461699d565b600060408252616af5604083018561699d565b602083820381850152818551808452828401915082838202850101838801865b83811015616b4357601f19878403018552616b31838351616a0a565b94860194925090850190600101616b15565b50909998505050505050505050565b600060808252616b65608083018761699d565b828103602084810191909152865180835287820192820190845b81811015616b9b57845183529383019391830191600101616b7f565b50508481036040860152616baf818861699d565b93505050506001600160401b038316606083015295945050505050565b901515815260200190565b600060208252610f4e6020830184616a0a565b600060408252616bfe6040830186886169e0565b8281036020840152616c118185876169e0565b979650505050505050565b6020808252601c908201527f6c656e677468206f66206275726e526174696f206d69736d6174636800000000604082015260600190565b60208082526026908201527f6c656e677468206f66206d61784e756d4f664d61696e7461696e696e67206d696040820152650e6dac2e8c6d60d31b606082015260800190565b6020808252601b908201527f6261746368207472616e736665722072657475726e2066616c73650000000000604082015260600190565b6020808252602c908201527f6c656e677468206f66206d61784e756d4f66576f726b696e6743616e6469646160408201526b0e8cae640dad2e6dac2e8c6d60a31b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61696e7461696e536c6173685363616c65206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252818101527f6c656e677468206f66206e756d4f66436162696e657473206d69736d61746368604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526028908201527f746865206e756d4f66436162696e657473206d75737420626520677265617465604082015267072207468616e20360c41b606082015260800190565b60208082526039908201527f746865206e756d4f66436162696e657473206d757374206265206c657373207460408201527f68616e204d41585f4e554d5f4f465f56414c494441544f525300000000000000606082015260800190565b60208082526029908201527f746865206e756d626572206f662076616c696461746f727320657863656564206040820152681d1a19481b1a5b5a5d60ba1b606082015260800190565b60208082526022908201527f63616e206e6f7420646f207468697320747769636520696e206f6e6520626c6f604082015261636b60f01b606082015260800190565b6020808252602b908201527f746865206275726e526174696f206d757374206265206e6f206772656174657260408201526a0207468616e2031303030360ac1b606082015260800190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526037908201527f746865206d61784e756d4f664d61696e7461696e696e67206d7573742062652060408201527f6c657373207468616e206e756d4f66436162696e657473000000000000000000606082015260800190565b6020808252602b908201527f6475706c696361746520636f6e73656e7375732061646472657373206f66207660408201526a185b1a59185d1bdc94d95d60aa1b606082015260800190565b60208082526033908201527f7468652073797374656d526577617264526174696f206d757374206265206e6f60408201527202067726561746572207468616e20313030303606c1b606082015260800190565b60208082526027908201527f7468652065787069726554696d655365636f6e64476170206973206f7574206f604082015266662072616e676560c81b606082015260800190565b6020808252601590820152746465706f7369742076616c7565206973207a65726f60581b604082015260600190565b60208082526049908201527f746865206d61784e756d4f66576f726b696e6743616e64696461746573206d7560408201527f7374206265206e6f742067726561746572207468616e206d61784e756d4f6643606082015268616e6469646174657360b81b608082015260a00190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b60208082526023908201527f63616e206e6f7420656e7465722054656d706f72617279204d61696e74656e616040820152626e636560e81b606082015260800190565b60208082526025908201527f6c656e677468206f66206a61696c2076616c696461746f7273206d757374206260408201526465206f6e6560d81b606082015260800190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61784e756d4f6643616e64696461746573206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252601290820152716e6f7420696e206d61696e74656e616e636560701b604082015260600190565b60208082526021908201527f666565206973206c6172676572207468616e2044555354595f494e434f4d494e6040820152604760f81b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526026908201527f6c656e677468206f662065787069726554696d655365636f6e64476170206d696040820152650e6dac2e8c6d60d31b606082015260800190565b60208082526017908201527f6f6e6c792063757272656e742076616c696461746f7273000000000000000000604082015260600190565b60208082526021908201527f6661696c656420746f20706172736520696e69742076616c696461746f7253656040820152601d60fa1b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b60208082526024908201527f6c656e677468206f662073797374656d526577617264526174696f206d69736d6040820152630c2e8c6d60e31b606082015260800190565b6020808252603e908201527f746865206d61696e7461696e536c6173685363616c65206d757374206265206760408201527f726561746572207468616e203020616e64206c657373207468616e2031300000606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b60208082526029908201527f746865206d6573736167652073656e646572206d75737420626520736c6173686040820152680818dbdb9d1c9858dd60ba1b606082015260800190565b61ffff91909116815260200190565b90815260200190565b6000848252831515602083015260606040830152615ff06060830184616a0a565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff8516825260406020830152615ff06040830184866169e0565b60005b838110156177125781810151838201526020016176fa565b83811115612fc6575050600091015256fe70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb20175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbbf905ec80f905e8f846942a7cdd959bfe8d9487b2a43b33565295a698f7e294b6a7edd747c0554875d3fc531d19ba1497992c5e941ff80f3f7f110ffd8920a3ac38fdef318fe94a3f86048c27395000f846946488aa4d1955ee33403f8ccb1d4de5fb97c7ade294220f003d8bdfaadf52aa1e55ae4cc485e6794875941a87e90e440a39c99aa9cb5cea0ad6a3f0b2407b86048c27395000f846949ef9f4360c606c7ab4db26b016007d3ad0ab86a0946103af86a874b705854033438383c82575f25bc29418e2db06cbff3e3c5f856410a1838649e760175786048c27395000f84694ee01c3b1283aa067c58eab4709f85e99d46de5fe94ee4b9bfb1871c64e2bcabb1dc382dc8b7c4218a29415904ab26ab0e99d70b51c220ccdcccabee6e29786048c27395000f84694685b1ded8013785d6623cc18d214320b6bb6475994a20ef4e5e4e7e36258dbf51f4d905114cb1b34bc9413e39085dc88704f4394d35209a02b1a9520320c86048c27395000f8469478f3adfc719c99674c072166708589033e2d9afe9448a30d5eaa7b64492a160f139e2da2800ec3834e94055838358c29edf4dcc1ba1985ad58aedbb6be2b86048c27395000f84694c2be4ec20253b8642161bc3f444f53679c1f3d479466f50c616d737e60d7ca6311ff0d9c434197898a94d1d678a2506eeaa365056fe565df8bc8659f28b086048c27395000f846942f7be8361c80a4c1e7e9aaf001d0877f1cfde218945f93992ac37f3e61db2ef8a587a436a161fd210b94ecbc4fb1a97861344dad0867ca3cba2b860411f086048c27395000f84694ce2fd7544e0b2cc94692d4a704debef7bcb613289444abc67b4b2fba283c582387f54c9cba7c34bafa948acc2ab395ded08bb75ce85bf0f95ad2abc51ad586048c27395000f84694b8f7166496996a7da21cf1f1b04d9b3e26a3d077946770572763289aac606e4f327c2f6cc1aa3b3e3b94882d745ed97d4422ca8da1c22ec49d880c4c097286048c27395000f846942d4c407bbe49438ed859fe965b140dcf1aab71a9943ad0939e120f33518fbba04631afe7a3ed6327b194b2bbb170ca4e499a2b0f3cc85ebfa6e8c4dfcbea86048c27395000f846946bbad7cf34b5fa511d8e963dbba288b1960e75d694853b0f6c324d1f4e76c8266942337ac1b0af1a229442498946a51ca5924552ead6fc2af08b94fcba648601d1a94a2000f846944430b3230294d12c6ab2aac5c2cd68e80b16b581947b107f4976a252a6939b771202c28e64e03f52d694795811a7f214084116949fc4f53cedbf189eeab28601d1a94a2000f84694ea0a6e3c511bbd10f4519ece37dc24887e11b55d946811ca77acfb221a49393c193f3a22db829fcc8e9464feb7c04830dd9ace164fc5c52b3f5a29e5018a8601d1a94a2000f846947ae2f5b9e386cd1b50a4550696d957cb4900f03a94e83bcc5077e6b873995c24bac871b5ad856047e19464e48d4057a90b233e026c1041e6012ada897fe88601d1a94a2000f8469482012708dafc9e1b880fd083b32182b869be8e09948e5adc73a2d233a1b496ed3115464dd6c7b887509428b383d324bc9a37f4e276190796ba5a8947f5ed8601d1a94a2000f8469422b81f8e175ffde54d797fe11eb03f9e3bf75f1d94a1c3ef7ca38d8ba80cce3bfc53ebd2903ed21658942767f7447f7b9b70313d4147b795414aecea54718601d1a94a2000f8469468bf0b8b6fb4e317a0f9d6f03eaf8ce6675bc60d94675cfe570b7902623f47e7f59c9664b5f5065dcf94d84f0d2e50bcf00f2fc476e1c57f5ca2d57f625b8601d1a94a2000f846948c4d90829ce8f72d0163c1d5cf348a862d5506309485c42a7b34309bee2ed6a235f86d16f059deec5894cc2cedc53f0fa6d376336efb67e43d167169f3b78601d1a94a2000f8469435e7a025f4da968de7e4d7e4004197917f4070f194b1182abaeeb3b4d8eba7e6a4162eac7ace23d57394c4fd0d870da52e73de2dd8ded19fe3d26f43a1138601d1a94a2000f84694d6caa02bbebaebb5d7e581e4b66559e635f805ff94c07335cf083c1c46a487f0325769d88e163b653694efaff03b42e41f953a925fc43720e45fb61a19938601d1a94a20000175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbaa164736f6c6343000604000a" + }, + "0x0000000000000000000000000000000000001001": { + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b50600436106102955760003560e01c80638256ace611610167578063c81b1662116100ce578063e1c7392a11610087578063e1c7392a146104d3578063eb57bff7146104db578063f9a2bbc7146104e3578063fc3e5908146104eb578063fc4333cd146104f3578063fd6a6879146104fb57610295565b8063c81b166214610482578063c8509d811461048a578063c96be4cb1461049d578063cc844b73146104b0578063d2a42e4b146104c3578063dc927faf146104cb57610295565b8063a78abc1611610120578063a78abc1614610447578063ab51bb961461044f578063ac0af62914610457578063ac4317511461045f578063ae61dc3b14610472578063c80d4b8f1461047a57610295565b80638256ace61461040c578063831d65d11461041457806396713da9146104275780639bc8e4f21461042f5780639dc0926214610437578063a1a11bf51461043f57610295565b8063493279b11161020b5780636e47b482116101c45780636e47b482146103dc57806370fd5bad146103e4578063718a8aa8146103ec57806375d47a0a146103f45780637912a65d146103fc5780637942fd051461040457610295565b8063493279b1146103925780634bf6c882146103a757806351e80672146103af578063567a372d146103b75780635bfb4990146103bf57806362b72cf5146103d457610295565b806335aa2e441161025d57806335aa2e441461032457806337c8dab914610337578063389f4f71146103585780633a63f4b11461036d5780633dffc3871461037557806343756e5c1461038a57610295565b80630bee7a671461029a5780630e2374a5146102b85780631182b875146102cd57806322d1e80b146102ed57806323bac5a214610302575b600080fd5b6102a2610503565b6040516102af919061354e565b60405180910390f35b6102c0610508565b6040516102af9190612d6a565b6102e06102db366004612ca0565b61050e565b6040516102af9190612da2565b6102f5610574565b6040516102af9190612d97565b610315610310366004612a4e565b61057d565b6040516102af93929190613536565b6102c0610332366004612c70565b6105a0565b61034a610345366004612a4e565b6105c7565b6040516102af929190613528565b61036061061e565b6040516102af91906134fe565b610360610624565b61037d61062a565b6040516102af919061355f565b6102c061062f565b61039a610635565b6040516102af91906134ef565b61037d61063a565b6102c061063f565b610360610645565b6103d26103cd366004612a4e565b61064b565b005b6103606106f6565b6102c06106fc565b61037d610702565b61037d610707565b6102c061070c565b610360610712565b61037d610717565b61034a61071c565b6103d2610422366004612ca0565b610726565b61037d610838565b61036061083d565b6102c0610848565b6102c061084e565b6102f5610854565b6102a261085d565b610360610862565b6103d261046d366004612b54565b610867565b610360610e17565b610360610e1e565b6102c0610e23565b6103d2610498366004612ca0565b610e29565b6103d26104ab366004612a4e565b610e9a565b6103d26104be366004612bbd565b61128b565b61036061187c565b6102c0611881565b6103d2611887565b6103606118c3565b6102c06118c9565b61037d6118cf565b6103d26118d4565b6102c0611d1d565b606481565b61200181565b6060336120001461053a5760405162461bcd60e51b815260040161053190613347565b60405180910390fd5b60005460ff1661055c5760405162461bcd60e51b815260040161053190612e9d565b60405162461bcd60e51b815260040161053190613438565b60075460ff1681565b600260208190526000918252604090912080546001820154919092015460ff1683565b600181815481106105ad57fe5b6000918252602090912001546001600160a01b0316905081565b6000806105d2612835565b5050506001600160a01b0316600090815260026020818152604092839020835160608101855281548082526001830154938201849052919093015460ff16151592909301919091529091565b60055481565b60065481565b600181565b61100181565b603881565b600881565b61200081565b60045481565b336110001461066c5760405162461bcd60e51b81526004016105319061312c565b60005460ff1661068e5760405162461bcd60e51b815260040161053190612e9d565b61200063f7a251d7600b6106a184611d23565b60006040518463ffffffff1660e01b81526004016106c19392919061356d565b600060405180830381600087803b1580156106db57600080fd5b505af11580156106ef573d6000803e3d6000fd5b5050505050565b60035481565b61100581565b600281565b601081565b61100881565b603281565b600b81565b6004546005549091565b33612000146107475760405162461bcd60e51b815260040161053190613347565b60005460ff166107695760405162461bcd60e51b815260040161053190612e9d565b610771612858565b60006107b284848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611df592505050565b9150915080156107f95781516040517f7f0956d47419b9525356e7111652b653b530ec6f5096dccc04589bc38e629967916107ec9161354e565b60405180910390a16106ef565b81516040517f7d45f62d17443dd4547bca8a8112c60e2385669318dc300ec61a5d2492f262e7916108299161354e565b60405180910390a15050505050565b600981565b662386f26fc1000081565b61100781565b61100681565b60005460ff1681565b600081565b600481565b60005460ff166108895760405162461bcd60e51b815260040161053190612e9d565b33611007146108aa5760405162461bcd60e51b815260040161053190613204565b61091584848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260148152731b5a5cd9195b59585b9bdc951a1c995cda1bdb1960621b60208201529150611e759050565b156109b0576020811461093a5760405162461bcd60e51b8152600401610531906130b8565b604080516020601f840181900481028201810190925282815260009161097891858580838501838280828437600092019190915250611ecf92505050565b90506001811015801561098c575060055481105b6109a85760405162461bcd60e51b815260040161053190613302565b600455610dd4565b610a1684848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e19995b1bdb9e551a1c995cda1bdb19608a1b60208201529150611e759050565b15610ab25760208114610a3b5760405162461bcd60e51b815260040161053190613252565b604080516020601f8401819004810282018101909252828152600091610a7991858580838501838280828437600092019190915250611ecf92505050565b90506103e88111158015610a8e575060045481115b610aaa5760405162461bcd60e51b815260040161053190612f56565b600555610dd4565b610b2684848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f66696e616c697479536c617368526577617264526174696f000000000000000060208201529150611e759050565b15610bc05760208114610b4b5760405162461bcd60e51b81526004016105319061346f565b604080516020601f8401819004810282018101909252828152600091610b8991858580838501838280828437600092019190915250611ecf92505050565b9050600a8110158015610b9c5750606481105b610bb85760405162461bcd60e51b81526004016105319061306c565b600655610dd4565b610c3484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f656e61626c654d616c6963696f7573566f7465536c617368000000000000000060208201529150611e759050565b15610cab5760208114610c595760405162461bcd60e51b815260040161053190612f8b565b604080516020601f8401819004810282018101909252828152610c959190848480838501838280828437600092019190915250611ed492505050565b6007805460ff1916911515919091179055610dd4565b610d1f84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601781527f6d616c6963696f7573566f7465536c61736853636f706500000000000000000060208201529150611e759050565b15610dbc5760208114610d445760405162461bcd60e51b815260040161053190612de7565b604080516020601f8401819004810282018101909252828152600091610d8291858580838501838280828437600092019190915250611ecf92505050565b90506170808110158015610d985750620d2f0081105b610db45760405162461bcd60e51b815260040161053190612ed4565b600855610dd4565b60405162461bcd60e51b8152600401610531906133e3565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a84848484604051610e099493929190612db5565b60405180910390a150505050565b6201518081565b609681565b61100281565b3361200014610e4a5760405162461bcd60e51b815260040161053190613347565b60005460ff16610e6c5760405162461bcd60e51b815260040161053190612e9d565b6040517f07db600eebe2ac176be8dcebad61858c245a4961bb32ca2aa3d159b09aa0810e90600090a1505050565b334114610eb95760405162461bcd60e51b815260040161053190613396565b60005460ff16610edb5760405162461bcd60e51b815260040161053190612e9d565b6003544311610efc5760405162461bcd60e51b8152600401610531906134ba565b3a15610f1a5760405162461bcd60e51b8152600401610531906131a7565b60405163155853f360e21b8152611000906355614fcc90610f3f908490600401612d6a565b60206040518083038186803b158015610f5757600080fd5b505afa158015610f6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f8f9190612b34565b610f9857611284565b610fa0612835565b506001600160a01b0381166000908152600260208181526040928390208351606081018552815481526001820154928101929092529091015460ff161580159282019290925290610ffb576020810180516001019052611054565b60016040820181905260208201819052805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0384161790555b43815260055460208201518161106657fe5b066111b257600060208201526040516335409f7f60e01b8152611000906335409f7f90611097908590600401612d6a565b600060405180830381600087803b1580156110b157600080fd5b505af11580156110c5573d6000803e3d6000fd5b505050506120006001600160a01b031663f7a251d7600b6110e585611d23565b60006040518463ffffffff1660e01b81526004016111059392919061356d565b600060405180830381600087803b15801561111f57600080fd5b505af1925050508015611130575060015b6111ad573d80801561115e576040519150601f19603f3d011682016040523d82523d6000602084013e611163565b606091505b50826001600160a01b03167fd7bc86ff5d08c8ab043edec743302aba2520e6635172a428bc956721db9e2d1c8360200151836040516111a3929190613507565b60405180910390a2505b61121e565b6004548160200151816111c157fe5b0661121e576040516375abf10160e11b81526110009063eb57e202906111eb908590600401612d6a565b600060405180830381600087803b15801561120557600080fd5b505af1158015611219573d6000803e3d6000fd5b505050505b6001600160a01b0382166000818152600260208181526040808420865181559186015160018301558581015191909201805460ff1916911515919091179055517fddb6012116e51abf5436d956a4f0ebd927e92c576ff96d7918290c8782291e3e9190a2505b5043600355565b60005460ff166112ad5760405162461bcd60e51b815260040161053190612e9d565b604051630a83aaa960e31b81526110069063541d5548906112d2903390600401612d6a565b60206040518083038186803b1580156112ea57600080fd5b505afa1580156112fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113229190612b34565b61133e5760405162461bcd60e51b815260040161053190612e31565b60075460ff166113605760405162461bcd60e51b815260040161053190612e68565b60065461136d5760146006555b60085461137c57620151806008555b6008548151604001514391011180156113a057504360085482602001516040015101115b6113bc5760405162461bcd60e51b81526004016105319061340a565b8060200151602001518160000151602001511480156113ea5750806020015160600151816000015160600151145b156114075760405162461bcd60e51b8152600401610531906130ff565b8051604081015190511080156114265750602081015160408101519051105b6114425760405162461bcd60e51b815260040161053190613035565b6020810151518151511080156114675750806000015160400151816020015160400151105b8061149257508051516020820151511080156114925750806020015160400151816000015160400151105b806114ac5750806020015160400151816000015160400151145b6114c85760405162461bcd60e51b815260040161053190612f1f565b604080820151905163ea321e4960e01b81526110009163ea321e49916114f19190600401612da2565b60206040518083038186803b15801561150957600080fd5b505afa15801561151d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115419190612b34565b61155d5760405162461bcd60e51b8152600401610531906131d5565b61156f81600001518260400151611efc565b8015611588575061158881602001518260400151611efc565b6115a45760405162461bcd60e51b815260040161053190612fd6565b6060806110006001600160a01b0316633b071dcc6040518163ffffffff1660e01b815260040160006040518083038186803b1580156115e257600080fd5b505afa1580156115f6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261161e9190810190612a71565b9150915060005b81518110156117595761164f82828151811061163d57fe5b602002602001015185604001516120d4565b15611751576006546040516213929d60e11b8152606461100280319093020491906227253a906116859033908590600401612d7e565b602060405180830381600087803b15801561169f57600080fd5b505af11580156116b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116d79190612c88565b506110006001600160a01b03166335409f7f8584815181106116f557fe5b60200260200101516040518263ffffffff1660e01b81526004016117199190612d6a565b600060405180830381600087803b15801561173357600080fd5b505af1158015611747573d6000803e3d6000fd5b5050505050611759565b600101611625565b50600061176b84604001516000612138565b90506120006001600160a01b031663f7a251d7600b61178d8760400151612154565b60006040518463ffffffff1660e01b81526004016117ad9392919061356d565b600060405180830381600087803b1580156117c757600080fd5b505af19250505080156117d8575060015b61184a573d808015611806576040519150601f19603f3d011682016040523d82523d6000602084013e61180b565b606091505b50817fd58d1183100bd0932c0588f31c4205d6bc6168909765a96c41adbed3115f36288260405161183c9190612da2565b60405180910390a250611876565b60405181907f7b78aadacff901d8b63d0dba4f86283d4db8aef27f9ed70413dd860f1c9532b690600090a25b50505050565b601481565b61100381565b60005460ff16156118aa5760405162461bcd60e51b815260040161053190613294565b603260045560966005556000805460ff19166001179055565b60085481565b61100081565b600381565b33611000146118f55760405162461bcd60e51b81526004016105319061312c565b60005460ff166119175760405162461bcd60e51b815260040161053190612e9d565b60015461192357611d1b565b600154600090600019015b808211611cef576000805b82841015611a5257611949612835565b600260006001878154811061195a57fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff161515908201526005549091506004900481602001511115611a3c576004600554816119c757fe5b048160200151038160200181815250508060026000600188815481106119e957fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208351815591830151600183015591909101516002909101805460ff1916911515919091179055611a46565b6001925050611a52565b50836001019350611939565b828411611be957611a61612835565b6002600060018681548110611a7257fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff161515908201526005549091506004900481602001511115611b5a57600460055481611adf57fe5b04816020015103816020018181525050806002600060018781548110611b0157fe5b6000918252602080832091909101546001600160a01b03168352828101939093526040918201902083518155918301516001808401919091559201516002909101805460ff19169115159190911790559150611be99050565b6002600060018681548110611b6b57fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff19169055805480611baf57fe5b600082815260209020810160001990810180546001600160a01b031916905501905583611bdc5750611be9565b5060001990920191611a52565b818015611bf35750805b15611cd2576002600060018681548110611c0957fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff19169055805484908110611c5057fe5b600091825260209091200154600180546001600160a01b039092169186908110611c7657fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506001805480611caf57fe5b600082815260209020810160001990810180546001600160a01b03191690550190555b82611cde575050611cef565b50506001909101906000190161192e565b6040517fcfdb3b6ccaeccbdc68be3c59c840e3b3c90f0a7c491f5fff1cf56cfda200dd9c90600090a150505b565b61100481565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081611d3e579050509050611d67836001600160a01b031661218f565b81600081518110611d7457fe5b6020026020010181905250611d88436121b2565b81600181518110611d9557fe5b6020908102919091010152611daa60386121b2565b81600281518110611db757fe5b6020026020010181905250611dcb426121b2565b81600381518110611dd857fe5b6020026020010181905250611dec816121c5565b9150505b919050565b611dfd612858565b6000611e07612858565b611e0f61286a565b611e20611e1b8661224f565b612274565b90506000805b611e2f836122be565b15611e685780611e5b57611e4a611e45846122df565b61232d565b63ffffffff16845260019150611e60565b611e68565b600101611e26565b5091935090915050915091565b600081604051602001611e889190612d4e565b6040516020818303038152906040528051906020012083604051602001611eaf9190612d4e565b604051602081830303815290604052805190602001201490505b92915050565b015190565b8082015160009060ff811615611eee576001915081611ef4565b60009150815b505092915050565b60408051600480825260a0820190925260009160609190816020015b6060815260200190600190039081611f18575050604080516020808252818301909252919250606091908082018180368337019050509050611f5d85600001516121b2565b82600081518110611f6a57fe5b6020026020010181905250611f8560208660200151836123af565b611f8e816123bf565b82600181518110611f9b57fe5b6020026020010181905250611fb385604001516121b2565b82600281518110611fc057fe5b6020026020010181905250611fdb60208660600151836123af565b611fe4816123bf565b82600381518110611ff157fe5b6020026020010181905250612017602061200a846121c5565b80519060200120836123af565b6040805160b080825260e08201909252606091602082018180368337019050509050612047818360006020612415565b61205981876080015160206060612415565b612067818660806030612415565b604080516001808252818301909252606091602082018180368337019050509050815160016020830182602086016066600019fa6120a457600080fd5b5060016120b2826000612468565b60ff16146120c7576000945050505050611ec9565b5060019695505050505050565b8151815160009160019181148083146120f0576000925061212e565b600160208701838101602088015b60028483851001141561212957805183511461211d5760009650600093505b602092830192016120fe565b505050505b5090949350505050565b6000816020018351101561214b57600080fd5b50016020015190565b60408051600480825260a08201909252606091829190816020015b606081526020019060019003908161216f579050509050611d67836123bf565b60408051600560a21b8318601482015260348101909152606090611dec816123bf565b6060611ec96121c083612484565b6123bf565b60608151600014156121e65750604080516000815260208101909152611df0565b6060826000815181106121f557fe5b602002602001015190506000600190505b83518110156122365761222c8285838151811061221f57fe5b602002602001015161256a565b9150600101612206565b50611dec612249825160c060ff166125e7565b8261256a565b61225761288a565b506040805180820190915281518152602082810190820152919050565b61227c61286a565b612285826126b9565b61228e57600080fd5b600061229d83602001516126f3565b60208085015160408051808201909152868152920190820152915050919050565b60006122c861288a565b505080518051602091820151919092015191011190565b6122e761288a565b6122f0826122be565b6122f957600080fd5b6020820151600061230982612756565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061234257508151602110155b61234b57600080fd5b600061235a83602001516126f3565b905080836000015110156123805760405162461bcd60e51b8152600401610531906132cb565b8251602080850151830180519284900392918310156123a657826020036101000a820491505b50949350505050565b9091018181526020918201910152565b6060815160011480156123f15750607f60f81b826000815181106123df57fe5b01602001516001600160f81b03191611155b156123fd575080611df0565b611ec961240f8351608060ff166125e7565b8361256a565b60005b818110156106ef5783818151811061242c57fe5b602001015160f81c60f81b85848060010195508151811061244957fe5b60200101906001600160f81b031916908160001a905350600101612418565b6000816001018351101561247b57600080fd5b50016001015190565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166124c8575060186124ec565b6fffffffffffffffffffffffffffffffff1984166124e8575060106124ec565b5060005b60208110156125225781818151811061250157fe5b01602001516001600160f81b0319161561251a57612522565b6001016124ec565b60008160200390506060816040519080825280601f01601f191660200182016040528015612557576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b8183101561259b578051835260209283019201612583565b50855184518101855292509050808201602086015b818310156125c85780518352602092830192016125b0565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106126115760405162461bcd60e51b81526004016105319061300d565b6040805160018082528183019092526060916020820181803683370190505090506037841161266b5782840160f81b8160008151811061264d57fe5b60200101906001600160f81b031916908160001a9053509050611ec9565b606061267685612484565b90508381510160370160f81b8260008151811061268f57fe5b60200101906001600160f81b031916908160001a9053506126b0828261256a565b95945050505050565b80516000906126ca57506000611df0565b6020820151805160001a9060c08210156126e957600092505050611df0565b5060019392505050565b8051600090811a608081101561270d576000915050611df0565b60b8811080612728575060c08110801590612728575060f881105b15612737576001915050611df0565b60c081101561274b5760b519019050611df0565b60f519019050611df0565b80516000908190811a6080811015612771576001915061282e565b60b881101561278657607e198101915061282e565b60c08110156127d757600060b78203600186019550806020036101000a8651049150600181018201935050808310156127d15760405162461bcd60e51b81526004016105319061317c565b5061282e565b60f88110156127ec5760be198101915061282e565b600060f78203600186019550806020036101000a865104915060018101820193505080831015611ef45760405162461bcd60e51b81526004016105319061317c565b5092915050565b604051806060016040528060008152602001600081526020016000151581525090565b60408051602081019091526000815290565b604051806040016040528061287d61288a565b8152602001600081525090565b604051806040016040528060008152602001600081525090565b600082601f8301126128b4578081fd5b81516128c76128c2826135c0565b613599565b818152915060208083019084810160005b8481101561293d578151870188603f8201126128f357600080fd5b838101516129036128c2826135e0565b81815260408b8184860101111561291957600080fd5b61292883888401838701613604565b508652505092820192908201906001016128d8565b505050505092915050565b60008083601f840112612959578182fd5b50813567ffffffffffffffff811115612970578182fd5b60208301915083602082850101111561298857600080fd5b9250929050565b600082601f83011261299f578081fd5b81356129ad6128c2826135e0565b91508082528360208285010111156129c457600080fd5b8060208401602084013760009082016020015292915050565b600060a082840312156129ee578081fd5b6129f860a0613599565b905081358152602082013560208201526040820135604082015260608201356060820152608082013567ffffffffffffffff811115612a3657600080fd5b612a428482850161298f565b60808301525092915050565b600060208284031215612a5f578081fd5b8135612a6a81613630565b9392505050565b60008060408385031215612a83578081fd5b825167ffffffffffffffff80821115612a9a578283fd5b81850186601f820112612aab578384fd5b80519250612abb6128c2846135c0565b80848252602080830192508084018a828389028701011115612adb578788fd5b8794505b86851015612b06578051612af281613630565b845260019490940193928101928101612adf565b508801519096509350505080821115612b1d578283fd5b50612b2a858286016128a4565b9150509250929050565b600060208284031215612b45578081fd5b81518015158114612a6a578182fd5b60008060008060408587031215612b69578182fd5b843567ffffffffffffffff80821115612b80578384fd5b612b8c88838901612948565b90965094506020870135915080821115612ba4578384fd5b50612bb187828801612948565b95989497509550505050565b600060208284031215612bce578081fd5b813567ffffffffffffffff80821115612be5578283fd5b81840160608187031215612bf7578384fd5b612c016060613599565b9250803582811115612c11578485fd5b612c1d878284016129dd565b845250602081013582811115612c31578485fd5b612c3d878284016129dd565b602085015250604081013582811115612c54578485fd5b612c608782840161298f565b6040850152509195945050505050565b600060208284031215612c81578081fd5b5035919050565b600060208284031215612c99578081fd5b5051919050565b600080600060408486031215612cb4578283fd5b833560ff81168114612cc4578384fd5b9250602084013567ffffffffffffffff811115612cdf578283fd5b612ceb86828701612948565b9497909650939450505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008151808452612d3a816020860160208601613604565b601f01601f19169290920160200192915050565b60008251612d60818460208701613604565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b600060208252612a6a6020830184612d22565b600060408252612dc9604083018688612cf8565b8281036020840152612ddc818587612cf8565b979650505050505050565b6020808252602a908201527f6c656e677468206f66206d616c6963696f7573566f7465536c61736853636f706040820152690ca40dad2e6dac2e8c6d60b31b606082015260800190565b6020808252601f908201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604082015260600190565b6020808252818101527f6d616c6963696f757320766f746520736c617368206e6f7420656e61626c6564604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252602b908201527f746865206d616c6963696f757320766f746520736c6173682073636f7065206f60408201526a7574206f662072616e676560a81b606082015260800190565b6020808252601a908201527f6e6f2076696f6c6174696f6e206f6620766f74652072756c6573000000000000604082015260600190565b6020808252818101527f7468652066656c6f6e795468726573686f6c64206f7574206f662072616e6765604082015260600190565b6020808252602b908201527f6c656e677468206f6620656e61626c654d616c6963696f7573566f7465536c6160408201526a0e6d040dad2e6dac2e8c6d60ab1b606082015260800190565b60208082526017908201527f766572696679207369676e6174757265206661696c6564000000000000000000604082015260600190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526019908201527f7372634e756d20626967676572207468616e207461724e756d00000000000000604082015260600190565b6020808252602c908201527f7468652066696e616c69747920736c6173682072657761726420726174696f2060408201526b6f7574206f662072616e676560a01b606082015260800190565b60208082526027908201527f6c656e677468206f66206d697364656d65616e6f725468726573686f6c64206d6040820152660d2e6dac2e8c6d60cb1b606082015260800190565b60208082526013908201527274776f206964656e746963616c20766f74657360681b604082015260600190565b60208082526030908201527f746865206d6573736167652073656e646572206d7573742062652076616c696460408201526f185d1bdc94d95d0818dbdb9d1c9858dd60821b606082015260800190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b6020808252601590820152741d9bdd195059191c881a5cc81b9bdd08199bdd5b99605a1b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526022908201527f6c656e677468206f662066656c6f6e795468726573686f6c64206d69736d61746040820152610c6d60f31b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526025908201527f746865206d697364656d65616e6f725468726573686f6c64206f7574206f662060408201526472616e676560d81b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b6020808252601490820152731d185c99d95d08189b1bd8dac81d1bdbc81bdb1960621b604082015260600190565b6020808252601e908201527f7265636569766520756e65787065637465642073796e207061636b6167650000604082015260600190565b6020808252602b908201527f6c656e677468206f662066696e616c697479536c61736852657761726452617460408201526a0d2de40dad2e6dac2e8c6d60ab1b606082015260800190565b6020808252818101527f63616e206e6f7420736c61736820747769636520696e206f6e6520626c6f636b604082015260600190565b61ffff91909116815260200190565b90815260200190565b6000838252604060208301526135206040830184612d22565b949350505050565b918252602082015260400190565b92835260208301919091521515604082015260600190565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff85168252606060208301526135896060830185612d22565b9050826040830152949350505050565b60405181810167ffffffffffffffff811182821017156135b857600080fd5b604052919050565b600067ffffffffffffffff8211156135d6578081fd5b5060209081020190565b600067ffffffffffffffff8211156135f6578081fd5b50601f01601f191660200190565b60005b8381101561361f578181015183820152602001613607565b838111156118765750506000910152565b6001600160a01b038116811461364557600080fd5b5056fea164736f6c6343000604000a" + }, + "0x0000000000000000000000000000000000001002": { + "balance": "0x0", + "code": "0x6080604052600436106101c55760003560e01c806375d47a0a116100f7578063ab51bb9611610095578063f9a2bbc711610064578063f9a2bbc7146105c3578063fb5478b3146105d8578063fc3e5908146105ed578063fd6a68791461060257610209565b8063ab51bb96146104b5578063ac431751146104ca578063c81b166214610599578063dc927faf146105ae57610209565b80639a99b4f0116100d15780639a99b4f01461043d5780639dc0926214610476578063a1a11bf51461048b578063a78abc16146104a057610209565b806375d47a0a146103fe5780637942fd051461041357806396713da91461042857610209565b8063493279b1116101645780636d70f7ae1161013e5780636d70f7ae146103785780636e47b482146103bf57806370fd5bad146103d4578063718a8aa8146103e957610209565b8063493279b1146103225780634bf6c8821461034e57806351e806721461036357610209565b806331b6d4a5116101a057806331b6d4a5146102b85780633a0b0eff146102cd5780633dffc387146102e257806343756e5c1461030d57610209565b806227253a1461020e5780630bee7a67146102595780630e2374a51461028757610209565b366102095734156102075760408051348152905133917f6c98249d85d88c3753a04a22230f595e4dc8d3dc86c34af35deeeedc861b89db919081900360200190a25b005b600080fd5b34801561021a57600080fd5b506102476004803603604081101561023157600080fd5b506001600160a01b038135169060200135610617565b60408051918252519081900360200190f35b34801561026557600080fd5b5061026e6107c2565b6040805163ffffffff9092168252519081900360200190f35b34801561029357600080fd5b5061029c6107c7565b604080516001600160a01b039092168252519081900360200190f35b3480156102c457600080fd5b506102476107cd565b3480156102d957600080fd5b506102476107d9565b3480156102ee57600080fd5b506102f76107df565b6040805160ff9092168252519081900360200190f35b34801561031957600080fd5b5061029c6107e4565b34801561032e57600080fd5b506103376107ea565b6040805161ffff9092168252519081900360200190f35b34801561035a57600080fd5b506102f76107ef565b34801561036f57600080fd5b5061029c6107f4565b34801561038457600080fd5b506103ab6004803603602081101561039b57600080fd5b50356001600160a01b03166107fa565b604080519115158252519081900360200190f35b3480156103cb57600080fd5b5061029c610818565b3480156103e057600080fd5b506102f761081e565b3480156103f557600080fd5b506102f7610823565b34801561040a57600080fd5b5061029c610828565b34801561041f57600080fd5b506102f761082e565b34801561043457600080fd5b506102f7610833565b34801561044957600080fd5b506102476004803603604081101561046057600080fd5b506001600160a01b038135169060200135610838565b34801561048257600080fd5b5061029c610962565b34801561049757600080fd5b5061029c610968565b3480156104ac57600080fd5b506103ab61096e565b3480156104c157600080fd5b5061026e610977565b3480156104d657600080fd5b50610207600480360360408110156104ed57600080fd5b81019060208101813564010000000081111561050857600080fd5b82018360208201111561051a57600080fd5b8035906020019184600183028401116401000000008311171561053c57600080fd5b91939092909160208101903564010000000081111561055a57600080fd5b82018360208201111561056c57600080fd5b8035906020019184600183028401116401000000008311171561058e57600080fd5b50909250905061097c565b3480156105a557600080fd5b5061029c610cff565b3480156105ba57600080fd5b5061029c610d05565b3480156105cf57600080fd5b5061029c610d0b565b3480156105e457600080fd5b50610247610d11565b3480156105f957600080fd5b506102f7610d1d565b34801561060e57600080fd5b5061029c610d22565b6000805460ff1661069457600260208190527fe57bda0a954a7c7381b17b2c763e646ba2c60f67292d287ba583603e2c1c41668054600160ff19918216811790925561100560009081527fe25235fc0de9d7165652bef0846fefda506174abb9a190f03d0f7bcc6146dbce80548316841790559282558254161790555b3360009081526002602052604090205460ff166106e25760405162461bcd60e51b815260040180806020018281038252602b815260200180610e10602b913960400191505060405180910390fd5b60004783106106f157476106f3565b825b9050674563918244f400008111156107105750674563918244f400005b8015610791576040516001600160a01b0385169082156108fc029083906000818181858888f1935050505015801561074c573d6000803e3d6000fd5b506040805182815290516001600160a01b038616917ff8b71c64315fc33b2ead2adfa487955065152a8ac33d9d5193aafd7f45dc15a0919081900360200190a26107bb565b6040517fe589651933c2457488cc0d8e0941518abf748e799435e4e396d9c4d0b2db2d4d90600090a15b9392505050565b606481565b61200181565b674563918244f4000081565b60015481565b600181565b61100181565b603881565b600881565b61200081565b6001600160a01b031660009081526002602052604090205460ff1690565b61100581565b600281565b601081565b61100881565b600b81565b600981565b6000805460ff166108b557600260208190527fe57bda0a954a7c7381b17b2c763e646ba2c60f67292d287ba583603e2c1c41668054600160ff19918216811790925561100560009081527fe25235fc0de9d7165652bef0846fefda506174abb9a190f03d0f7bcc6146dbce80548316841790559282558254161790555b3360009081526002602052604090205460ff166109035760405162461bcd60e51b815260040180806020018281038252602b815260200180610e10602b913960400191505060405180910390fd5b60004783106109125747610914565b825b9050670de0b6b3a76400008111156107105750604051670de0b6b3a7640000906001600160a01b03851690600090839082818181858883f1935050505015801561074c573d6000803e3d6000fd5b61100781565b61100681565b60005460ff1681565b600081565b33611007146109bc5760405162461bcd60e51b815260040180806020018281038252602e815260200180610e6a602e913960400191505060405180910390fd5b610a1e84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600b81526a30b23227b832b930ba37b960a91b60208201529150610d289050565b15610af657606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060149091149050610aa15760405162461bcd60e51b815260040180806020018281038252602c815260200180610e98602c913960400191505060405180910390fd5b60148101516001600160a01b038116600081815260026020526040808220805460ff19166001179055517f9870d7fe5d112134c55844951dedf365363006d9c588db07c4c85af6322a06199190a25050610c6d565b610b5b84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600e81526d3232b632ba32a7b832b930ba37b960911b60208201529150610d289050565b15610c3057606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060149091149050610bde5760405162461bcd60e51b815260040180806020018281038252602f815260200180610e3b602f913960400191505060405180910390fd5b60148101516001600160a01b038116600081815260026020526040808220805460ff19169055517fb40992a19dba61ea600e87fce607102bf5908dc89076217b6ca6ae195224f7029190a25050610c6d565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b61100281565b61100381565b61100081565b670de0b6b3a764000081565b600381565b61100481565b6000816040516020018082805190602001908083835b60208310610d5d5780518252601f199092019160209182019101610d3e565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310610dcb5780518252601f199092019160209182019101610dac565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052805190602001201490509291505056fe6f6e6c79206f70657261746f7220697320616c6c6f77656420746f2063616c6c20746865206d6574686f646c656e677468206f662076616c756520666f722064656c6574654f70657261746f722073686f756c64206265203230746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662076616c756520666f72206164644f70657261746f722073686f756c64206265203230a164736f6c6343000604000a" + } + }, + "1713419340": { + "0x0000000000000000000000000000000000001000": { + "balance": "0x0", + "code": "0x6080604052600436106104fb5760003560e01c806388b32f111161028c578063c6d339451161015a578063e40716a1116100cc578063f92eb86b11610085578063f92eb86b14610d2d578063f9a2bbc714610d42578063fc3e590814610d57578063fccc281314610d6c578063fd4ad81f14610d81578063fd6a687914610db057610502565b8063e40716a114610c9b578063ea321e4914610cb0578063eb57e20214610cd0578063eda5868c14610cf0578063f1fad10414610d05578063f340fa0114610d1a57610502565b8063d86222d51161011e578063d86222d514610c1d578063daacdb6614610c32578063dc927faf14610c47578063df8079e914610c5c578063e086c7b114610c71578063e1c7392a14610c8657610502565b8063c6d3394514610bbe578063c81b166214610bd3578063c8509d811461098d578063ce910b0c14610be8578063d68fb56a14610c0857610502565b8063a78abc16116101fe578063ad3c9da6116101b7578063ad3c9da614610b3d578063aef198a914610b5d578063b7ab4db514610b72578063b8cf4ef114610b94578063bf9f4995146106fe578063c466689d14610ba957610502565b8063a78abc1614610ab4578063aa82dce114610ac9578063aad5606314610ade578063aaf5eb6814610af3578063ab51bb9614610b08578063ac43175114610b1d57610502565b806396713da91161025057806396713da914610a365780639dc0926214610a4b5780639fe0f81614610a60578063a0dc275814610a75578063a1a11bf514610a8a578063a5422d5c14610a9f57610502565b806388b32f11146109c25780638a7beb01146109d75780638b5ad0c9146109ec5780638d19a41014610a015780639369d7de14610a2157610502565b806351b4dce3116103c957806370fd5bad1161033b5780637e434d54116102f45780637e434d541461094e57806381650b6214610963578063820dcaa814610978578063831d65d11461098d578063853230aa1461090f57806386249882146109ad57610502565b806370fd5bad146108d0578063718a8aa8146108e557806375d47a0a146108fa57806378dfed4a1461090f5780637942fd05146109245780637a84ca2a1461093957610502565b80635d77156c1161038d5780635d77156c1461082a5780635de1e22c1461083f57806360eba4fe1461085457806362b72cf5146108745780636969a25c146108895780636e47b482146108bb57610502565b806351b4dce3146107ab57806351e80672146107c057806355614fcc146107d5578063565c56b3146107f55780635667515a1461081557610502565b8063300c35671161046d57806343756e5c1161042657806343756e5c1461072057806345cf9daf14610735578063493279b11461074a5780634bf6c8821461076c5780634df6e0c3146107815780635192c82c1461079657610502565b8063300c35671461065b578063321d398a1461067b5780633365af3a1461069b57806335409f7f146106bb5780633b071dcc146106db5780633dffc387146106fe57610502565b8063152ad3b8116104bf578063152ad3b8146105ba5780631e4c1524146105dc5780631ff18069146105fc578063219f22d51461061157806328087028146106265780632a0ffb6e1461063b57610502565b806304c4fec61461050757806307a568471461051e5780630bee7a67146105495780630e2374a51461056b5780631182b8751461058d57610502565b3661050257005b600080fd5b34801561051357600080fd5b5061051c610dc5565b005b34801561052a57600080fd5b50610533610e37565b6040516105409190618ed8565b60405180910390f35b34801561055557600080fd5b5061055e610e3d565b6040516105409190618f02565b34801561057757600080fd5b50610580610e42565b60405161054091906181eb565b34801561059957600080fd5b506105ad6105a83660046180d1565b610e48565b604051610540919061837e565b3480156105c657600080fd5b506105cf611165565b6040516105409190618373565b3480156105e857600080fd5b5061051c6105f7366004617edf565b61116e565b34801561060857600080fd5b50610533611844565b34801561061d57600080fd5b5061055e61184a565b34801561063257600080fd5b5061058061184f565b34801561064757600080fd5b5061051c610656366004617e3f565b611855565b34801561066757600080fd5b5061051c610676366004617e77565b611902565b34801561068757600080fd5b506105cf61069636600461807e565b611c4b565b3480156106a757600080fd5b506105cf6106b636600461807e565b611d1a565b3480156106c757600080fd5b5061051c6106d6366004617e3f565b611dcb565b3480156106e757600080fd5b506106f0611f30565b604051610540929190618289565b34801561070a57600080fd5b5061071361220c565b6040516105409190618f13565b34801561072c57600080fd5b50610580612211565b34801561074157600080fd5b50610533612217565b34801561075657600080fd5b5061075f61221d565b6040516105409190618ec9565b34801561077857600080fd5b50610713612222565b34801561078d57600080fd5b506106f0612227565b3480156107a257600080fd5b506105336123b3565b3480156107b757600080fd5b506105806123b9565b3480156107cc57600080fd5b506105806123bf565b3480156107e157600080fd5b506105cf6107f0366004617e3f565b6123c5565b34801561080157600080fd5b50610533610810366004617e3f565b6123fa565b34801561082157600080fd5b5061071361244b565b34801561083657600080fd5b5061055e612450565b34801561084b57600080fd5b50610533612455565b34801561086057600080fd5b506105ad61086f36600461807e565b61245b565b34801561088057600080fd5b50610533612501565b34801561089557600080fd5b506108a96108a436600461807e565b612507565b60405161054096959493929190618218565b3480156108c757600080fd5b5061058061256b565b3480156108dc57600080fd5b50610713612571565b3480156108f157600080fd5b50610713612576565b34801561090657600080fd5b5061058061257b565b34801561091b57600080fd5b50610533612581565b34801561093057600080fd5b50610713612587565b34801561094557600080fd5b5061053361258c565b34801561095a57600080fd5b50610580612592565b34801561096f57600080fd5b5061055e612598565b34801561098457600080fd5b5061053361259d565b34801561099957600080fd5b5061051c6109a83660046180d1565b6125a3565b3480156109b957600080fd5b50610533612604565b3480156109ce57600080fd5b5061053361260a565b3480156109e357600080fd5b506105cf612610565b3480156109f857600080fd5b50610533612619565b348015610a0d57600080fd5b50610533610a1c366004617e3f565b61261f565b348015610a2d57600080fd5b5061051c61265f565b348015610a4257600080fd5b50610713612773565b348015610a5757600080fd5b50610580612778565b348015610a6c57600080fd5b5061053361277e565b348015610a8157600080fd5b50610533612783565b348015610a9657600080fd5b50610580612788565b348015610aab57600080fd5b506105ad61278e565b348015610ac057600080fd5b506105cf6127ad565b348015610ad557600080fd5b506105806127b6565b348015610aea57600080fd5b506105806127bc565b348015610aff57600080fd5b506105336127c2565b348015610b1457600080fd5b5061055e61244b565b348015610b2957600080fd5b5061051c610b38366004618022565b6127cb565b348015610b4957600080fd5b50610533610b58366004617e3f565b613084565b348015610b6957600080fd5b50610533613096565b348015610b7e57600080fd5b50610b876130a3565b6040516105409190618276565b348015610ba057600080fd5b5061053361318f565b348015610bb557600080fd5b50610533613194565b348015610bca57600080fd5b50610533612571565b348015610bdf57600080fd5b5061058061319a565b348015610bf457600080fd5b506105ad610c0336600461807e565b6131a0565b348015610c1457600080fd5b506105336131ad565b348015610c2957600080fd5b506105336131ec565b348015610c3e57600080fd5b506105336131f8565b348015610c5357600080fd5b506105806131fe565b348015610c6857600080fd5b50610580613204565b348015610c7d57600080fd5b50610533610e3d565b348015610c9257600080fd5b5061051c61320a565b348015610ca757600080fd5b506105336133b9565b348015610cbc57600080fd5b506105cf610ccb366004617fe3565b6133bf565b348015610cdc57600080fd5b5061051c610ceb366004617e3f565b613545565b348015610cfc57600080fd5b5061055e613649565b348015610d1157600080fd5b5061071361364e565b61051c610d28366004617e3f565b613653565b348015610d3957600080fd5b506105336139d2565b348015610d4e57600080fd5b506105806139d8565b348015610d6357600080fd5b5061071361277e565b348015610d7857600080fd5b506105806139de565b348015610d8d57600080fd5b50610da1610d9c36600461807e565b6139e4565b60405161054093929190618ee1565b348015610dbc57600080fd5b50610580613aa6565b6000610dd03361261f565b9050600b8181548110610ddf57fe5b600091825260209091206001601690920201015460ff16610e1b5760405162461bcd60e51b8152600401610e1290618ae4565b60405180910390fd5b6000610e256131ad565b9050610e32338383613aac565b505050565b60095481565b606481565b61200181565b60005460609060ff16610e6d5760405162461bcd60e51b8152600401610e12906185a5565b3361200014610e8e5760405162461bcd60e51b8152600401610e1290618ce5565b600b54610f4c57610e9d6179eb565b60015460005b81811015610f4857600b80546001810182556000919091528351600080516020618fe583398151915260169092029182019081556020808601516000805160206196148339815191528401805460ff1916911515919091179055604086015180518794610f2493600080516020619005833981519152909101920190617a1a565b506060820151610f3a9060038301906013617a94565b505050806001019050610ea3565b5050505b610f54617ac1565b6000610f9585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613d7192505050565b9150915080610fb157610fa86064613f2d565b9250505061115e565b815160009060ff16610fd657610fcf83602001518460400151613f8e565b905061112a565b825160ff16600114156111265782602001515160011461101b57600080516020618fc583398151915260405161100b9061899d565b60405180910390a1506067611121565b6000836020015160008151811061102e57fe5b602090810291909101810151516001600160a01b0381166000908152600490925260409091205490915080158061108f575060018082038154811061106f57fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b156110cd576040516001600160a01b038316907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a261111a565b60006110dc8360018403615150565b905080611118576040516001600160a01b038416907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a25b505b6000925050505b61112a565b5060655b63ffffffff811661114f575050604080516000815260208101909152915061115e9050565b61115881613f2d565b93505050505b9392505050565b60075460ff1681565b33411461118d5760405162461bcd60e51b8152600401610e1290618d34565b3a156111ab5760405162461bcd60e51b8152600401610e1290618a23565b82516040805182815260208084028201019091526060908280156111e957816020015b6111d6617ae5565b8152602001906001900390816111ce5790505b50905060005b82811015611293576040518060c0016040528087838151811061120e57fe5b60200260200101516001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b0316815260200186838151811061125057fe5b60200260200101516001600160401b03168152602001600015158152602001600081525082828151811061128057fe5b60209081029190910101526001016111ef565b5060405163d31f968d60e01b81526120009063d31f968d906112be906110009060089060040161825a565b60206040518083038186803b1580156112d657600080fd5b505afa1580156112ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061130e9190617fc3565b15611631578051601554818111156113b057815b818110156113ae57601580548061133557fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055601680548061138857fe5b6001900381819060005260206000200160006113a49190617b1a565b9055600101611322565b505b60005b828110156115f0578181106114d85760158482815181106113d057fe5b602090810291909101810151825460018181018555600094855293839020825160049092020180546001600160a01b039283166001600160a01b0319918216178255938301519481018054958316958516959095179094556040820151600285018054606085015160808601511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590961692909716919091179290921692909217169290921790915560a0015160039091015585516016908790839081106114a057fe5b602090810291909101810151825460018101845560009384529282902081516114d29491909101929190910190617a1a565b506115e8565b8381815181106114e457fe5b6020026020010151601582815481106114f957fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a09091015160039091015585518690829081106115b457fe5b6020026020010151601682815481106115c957fe5b9060005260206000200190805190602001906115e6929190617a1a565b505b6001016113b3565b507fb8e726330a0dad1cf3d04e925663b17e391f1ed547d79b7f4e5f344119b44246826040516116209190618ed8565b60405180910390a150505050610e32565b60608061163e8386615513565b9150915060005b6001548110156117345760006001828154811061165e57fe5b90600052602060002090600402016003015490508060001461172b5760006001838154811061168957fe5b9060005260206000209060040201600301819055506120026001600160a01b031663092193ab82600185815481106116bd57fe5b60009182526020909120600491820201546040516001600160e01b031960e086901b1681526116f8926001600160a01b0390921691016181eb565b6000604051808303818588803b15801561171157600080fd5b505af1158015611725573d6000803e3d6000fd5b50505050505b50600101611645565b5047156117a2577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d4760405161176a9190618ed8565b60405180910390a1604051611002904780156108fc02916000818181858888f193505050501580156117a0573d6000803e3d6000fd5b505b600060038190556005558151156117bd576117bd82826159fa565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156117fa57600080fd5b505af115801561180e573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a150505050505050565b60035481565b606881565b61200581565b33612002146118765760405162461bcd60e51b8152600401610e1290618e92565b60005b6015548110156118fe57816001600160a01b03166015828154811061189a57fe5b60009182526020909120600490910201546001600160a01b031614156118f6576001601582815481106118c957fe5b9060005260206000209060040201600201601c6101000a81548160ff0219169083151502179055506118fe565b600101611879565b5050565b3341146119215760405162461bcd60e51b8152600401610e1290618d34565b60105443116119425760405162461bcd60e51b8152600401610e1290618738565b3a156119605760405162461bcd60e51b8152600401610e1290618a23565b60005460ff166119825760405162461bcd60e51b8152600401610e12906185a5565b60006110023168056bc75e2d631000008111156119b9576119b28168056bc75e2d6310000063ffffffff6161e916565b91506119c0565b5050611c41565b6040516309a99b4f60e41b815261100290639a99b4f0906119e790309086906004016181ff565b602060405180830381600087803b158015611a0157600080fd5b505af1158015611a15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a399190618096565b915081611a47575050611c41565b6000805b84811015611a7557858582818110611a5f57fe5b9050602002013582019150806001019050611a4b565b5080611a8357505050611c41565b6000806000805b89811015611c395784898983818110611a9f57fe5b90506020020135880281611aaf57fe5b0493508a8a82818110611abe57fe5b9050602002016020810190611ad39190617e3f565b6001600160a01b03811660009081526004602052604090205490935091508115611bef576000600180840381548110611b0857fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff1615611b7557836001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d8586604051611b689190618ed8565b60405180910390a2611be9565b600354611b88908663ffffffff61622b16565b6003908155810154611ba0908663ffffffff61622b16565b60038201556040516001600160a01b038516907fcb0aad6cf9cd03bdf6137e359f541c42f38b39f007cae8e89e88aa7d8c6617b290611be0908890618ed8565b60405180910390a25b50611c31565b826001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d8585604051611c289190618ed8565b60405180910390a25b600101611a8a565b505050505050505b5050436010555050565b6001546000908210611c5f57506000611d15565b60006001600160a01b031660018381548110611c7757fe5b60009182526020909120600490910201546001600160a01b03161480611ca757506008541580611ca75750600a54155b80611cb6575060085460095410155b80611cc75750611cc582611d1a565b155b80611cf057506000600b8381548110611cdc57fe5b906000526020600020906016020160000154115b80611d0457506001611d006130a3565b5111155b15611d1157506000611d15565b5060015b919050565b6001546000908210611d2e57506000611d15565b600b548210611d6b5760018281548110611d4457fe5b9060005260206000209060040201600201601c9054906101000a900460ff16159050611d15565b60018281548110611d7857fe5b9060005260206000209060040201600201601c9054906101000a900460ff16158015611dc55750600b8281548110611dac57fe5b600091825260209091206001601690920201015460ff16155b92915050565b600b54611e8957611dda6179eb565b60015460005b81811015611e8557600b80546001810182556000919091528351600080516020618fe583398151915260169092029182019081556020808601516000805160206196148339815191528401805460ff1916911515919091179055604086015180518794611e6193600080516020619005833981519152909101920190617a1a565b506060820151611e779060038301906013617a94565b505050806001019050611de0565b5050505b336110011480611e9a575033612002145b611eb65760405162461bcd60e51b8152600401610e12906185dc565b6001600160a01b03811660009081526004602052604090205480611eda5750611f2d565b6001810390506000600b8281548110611eef57fe5b600091825260209091206001601690920201015460ff169050611f128383615150565b8015611f1b5750805b15610e32576009805460001901905550505b50565b60015460609081906000805b82811015611f835760018181548110611f5157fe5b9060005260206000209060040201600201601c9054906101000a900460ff16611f7b576001909101905b600101611f3c565b50606081604051908082528060200260200182016040528015611fb0578160200160208202803683370190505b509050606082604051908082528060200260200182016040528015611fe957816020015b6060815260200190600190039081611fd45790505b50600b54600094509091508414156121645760005b8481101561215e576001818154811061201357fe5b9060005260206000209060040201600201601c9054906101000a900460ff16612156576001818154811061204357fe5b600091825260209091206004909102015483516001600160a01b039091169084908690811061206e57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600b818154811061209b57fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156121335780601f1061210857610100808354040283529160200191612133565b820191906000526020600020905b81548152906001019060200180831161211657829003601f168201915b505050505082858151811061214457fe5b60209081029190910101526001909301925b600101611ffe565b50612200565b60005b848110156121fe576001818154811061217c57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166121f657600181815481106121ac57fe5b600091825260209091206004909102015483516001600160a01b03909116908490869081106121d757fe5b6001600160a01b03909216602092830291909101909101526001909301925b600101612167565b505b909450925050505b9091565b600181565b61100181565b60085481565b603881565b600881565b6060806000600e549050600080600c5411612243576015612247565b600c545b905060606122536130a3565b9050606061226082616250565b905082825111612277579094509250612208915050565b83838351031015612289578282510393505b83156122bf5760c843046122a583838388880360008a8a6163be565b6122bd8383838888038989038a8b8b8b5103016163be565b505b6060836040519080825280602002602001820160405280156122eb578160200160208202803683370190505b50905060608460405190808252806020026020018201604052801561232457816020015b606081526020019060019003908161230f5790505b50905060005b858110156123a55784818151811061233e57fe5b602002602001015183828151811061235257fe5b60200260200101906001600160a01b031690816001600160a01b03168152505083818151811061237e57fe5b602002602001015182828151811061239257fe5b602090810291909101015260010161232a565b509096509450505050509091565b60065481565b61200681565b61200081565b6001600160a01b038116600090815260046020526040812054806123ed576000915050611d15565b6000190161115e81611d1a565b6001600160a01b03811660009081526004602052604081205480612422576000915050611d15565b60018082038154811061243157fe5b906000526020600020906004020160030154915050919050565b600081565b606781565b600f5481565b6012818154811061246857fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152935090918301828280156124f95780601f106124ce576101008083540402835291602001916124f9565b820191906000526020600020905b8154815290600101906020018083116124dc57829003601f168201915b505050505081565b60105481565b6001818154811061251457fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b601081565b61100881565b6103e881565b600b81565b600c5481565b61200381565b606681565b61271081565b33612000146125c45760405162461bcd60e51b8152600401610e1290618ce5565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f389021016058383836040516125f793929190618f21565b60405180910390a1505050565b60025481565b60115481565b60145460ff1681565b600a5481565b6001600160a01b038116600090815260046020526040812054806126555760405162461bcd60e51b8152600401610e1290618c6d565b6000190192915050565b600b5461271d5761266e6179eb565b60015460005b8181101561271957600b80546001810182556000919091528351600080516020618fe583398151915260169092029182019081556020808601516000805160206196148339815191528401805460ff19169115159190911790556040860151805187946126f593600080516020619005833981519152909101920190617a1a565b50606082015161270b9060038301906013617a94565b505050806001019050612674565b5050505b60085461272a5760036008555b600a54612737576002600a555b60006127423361261f565b905061274d81611c4b565b6127695760405162461bcd60e51b8152600401610e129061895a565b611f2d3382616515565b600981565b61100781565b600381565b60c881565b61100681565b6040518061062001604052806105ef81526020016190256105ef913981565b60005460ff1681565b61200281565b61300081565b6402540be40081565b60005460ff166127ed5760405162461bcd60e51b8152600401610e12906185a5565b336110071461280e5760405162461bcd60e51b8152600401610e1290618a51565b61287884848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b602082015291506165ad9050565b15612915576020811461289d5760405162461bcd60e51b8152600401610e1290618c27565b604080516020601f84018190048102820181019092528281526000916128db9185858083850183828082843760009201919091525061660692505050565b9050606481101580156128f15750620186a08111155b61290d5760405162461bcd60e51b8152600401610e129061884a565b600255613041565b61297584848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260098152686275726e526174696f60b81b602082015291506165ad9050565b15612a18576020811461299a5760405162461bcd60e51b8152600401610e12906183c3565b604080516020601f84018190048102820181019092528281526000916129d89185858083850183828082843760009201919091525061660692505050565b90506127106129f2600f548361622b90919063ffffffff16565b1115612a105760405162461bcd60e51b8152600401610e12906183fa565b600655613041565b612a8284848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260138152726d61784e756d4f664d61696e7461696e696e6760681b602082015291506165ad9050565b15612b1c5760208114612aa75760405162461bcd60e51b8152600401610e1290618462565b604080516020601f8401819004810282018101909252828152600091612ae59185858083850183828082843760009201919091525061660692505050565b600c5490915080612af4575060155b808210612b135760405162461bcd60e51b8152600401610e12906187a2565b50600855613041565b612b8584848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61696e7461696e536c6173685363616c6560701b602082015291506165ad9050565b15612c1e5760208114612baa5760405162461bcd60e51b8152600401610e129061852b565b604080516020601f8401819004810282018101909252828152600091612be89185858083850183828082843760009201919091525061660692505050565b9050600081118015612bfa5750600a81105b612c165760405162461bcd60e51b8152600401610e1290618dc5565b600a55613041565b612c9284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601981527f6d61784e756d4f66576f726b696e6743616e6469646174657300000000000000602082015291506165ad9050565b15612d215760208114612cb75760405162461bcd60e51b8152600401610e12906184df565b604080516020601f8401819004810282018101909252828152600091612cf59185858083850183828082843760009201919091525061660692505050565b9050600d54811115612d195760405162461bcd60e51b8152600401610e12906188c0565b600e55613041565b612d8a84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61784e756d4f6643616e6469646174657360701b602082015291506165ad9050565b15612e0c5760208114612daf5760405162461bcd60e51b8152600401610e1290618a9f565b604080516020601f8401819004810282018101909252828152600091612ded9185858083850183828082843760009201919091525061660692505050565b600d819055600e54909150811015612e0657600d54600e555b50613041565b612e7084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c6e756d4f66436162696e65747360981b602082015291506165ad9050565b15612f1e5760208114612e955760405162461bcd60e51b8152600401610e1290618570565b604080516020601f8401819004810282018101909252828152600091612ed39185858083850183828082843760009201919091525061660692505050565b905060008111612ef55760405162461bcd60e51b8152600401610e129061864a565b6064811115612f165760405162461bcd60e51b8152600401610e1290618692565b600c55613041565b612f8684848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601181527073797374656d526577617264526174696f60781b602082015291506165ad9050565b156130295760208114612fab5760405162461bcd60e51b8152600401610e1290618d81565b604080516020601f8401819004810282018101909252828152600091612fe99185858083850183828082843760009201919091525061660692505050565b90506127106130036006548361622b90919063ffffffff16565b11156130215760405162461bcd60e51b8152600401610e1290618b88565b600f55613041565b60405162461bcd60e51b8152600401610e1290618e22565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040516130769493929190618391565b60405180910390a150505050565b60046020526000908152604090205481565b68056bc75e2d6310000081565b6001546060906000805b828110156130d2576130be81611d1a565b156130ca578160010191505b6001016130ad565b506060816040519080825280602002602001820160405280156130ff578160200160208202803683370190505b5090506000915060005b838110156131865761311a81611d1a565b1561317e576001818154811061312c57fe5b600091825260209091206004909102015482516001600160a01b039091169083908590811061315757fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508260010192505b600101613109565b50925050505b90565b601581565b61027181565b61100281565b6013818154811061246857fe5b60006131b76130a3565b519050600080600c54116131cc5760156131d0565b600c545b9050808211156131de578091505b816131e857600191505b5090565b67016345785d8a000081565b60055481565b61100381565b61200481565b60005460ff161561322d5760405162461bcd60e51b8152600401610e1290618b51565b613235617ac1565b600061325b6040518061062001604052806105ef81526020016190256105ef9139613d71565b915091508061327c5760405162461bcd60e51b8152600401610e1290618ca4565b60005b8260200151518110156133a15760018360200151828151811061329e57fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a09093015160039093019290925591860151805191850193918590811061337457fe5b602090810291909101810151516001600160a01b031682528101919091526040016000205560010161327f565b50506103e8600255506000805460ff19166001179055565b600d5481565b601354600090815b818110156134c8576134b085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060138054909250859150811061341857fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156134a65780601f1061347b576101008083540402835291602001916134a6565b820191906000526020600020905b81548152906001019060200180831161348957829003601f168201915b505050505061660b565b156134c057600192505050611dc5565b6001016133c7565b5060125460005b818110156135395761352086868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060128054909250859150811061341857fe5b156135315760019350505050611dc5565b6001016134cf565b50600095945050505050565b33611001146135665760405162461bcd60e51b8152600401610e1290618e49565b600b54613624576135756179eb565b60015460005b8181101561362057600b80546001810182556000919091528351600080516020618fe583398151915260169092029182019081556020808601516000805160206196148339815191528401805460ff19169115159190911790556040860151805187946135fc93600080516020619005833981519152909101920190617a1a565b5060608201516136129060038301906013617a94565b50505080600101905061357b565b5050505b600061362f8261666f565b905061363a81611c4b565b156118fe576118fe8282616515565b606581565b601181565b3341146136725760405162461bcd60e51b8152600401610e1290618d34565b60005460ff166136945760405162461bcd60e51b8152600401610e12906185a5565b600034116136b45760405162461bcd60e51b8152600401610e1290618891565b3a156136d25760405162461bcd60e51b8152600401610e1290618a23565b6001600160a01b03811660009081526004602052604090205460145434919060ff1661371257610271600f556103e86006556014805460ff191660011790555b60008211801561372457506000600f54115b156137d6576000613752612710613746600f54346167f290919063ffffffff16565b9063ffffffff61682c16565b905080156137d4576040516110029082156108fc029083906000818181858888f19350505050158015613789573d6000803e3d6000fd5b507f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d816040516137b99190618ed8565b60405180910390a16137d1838263ffffffff6161e916565b92505b505b6000821180156137e857506000600654115b1561388e57600061380a612710613746600654346167f290919063ffffffff16565b9050801561388c5760405161dead9082156108fc029083906000818181858888f19350505050158015613841573d6000803e3d6000fd5b507f627059660ea01c4733a328effb2294d2f86905bf806da763a89cee254de8bee5816040516138719190618ed8565b60405180910390a1613889838263ffffffff6161e916565b92505b505b801561398c5760006001808303815481106138a557fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff161561391257836001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4846040516139059190618ed8565b60405180910390a2613986565b600354613925908463ffffffff61622b16565b600390815581015461393d908463ffffffff61622b16565b60038201556040516001600160a01b038516907f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc0559061397d908690618ed8565b60405180910390a25b50610e32565b826001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4836040516139c59190618ed8565b60405180910390a2505050565b600e5481565b61100081565b61dead81565b600b81815481106139f157fe5b6000918252602091829020601691909102018054600180830154600280850180546040805161010096831615969096026000190190911692909204601f810188900488028501880190925281845293965060ff90911694919291830182828015613a9c5780601f10613a7157610100808354040283529160200191613a9c565b820191906000526020600020905b815481529060010190602001808311613a7f57829003601f168201915b5050505050905083565b61100481565b6000600a5460001480613abd575081155b80613ac85750600954155b15613ad55750600061115e565b6000613b0f600a5461374685613746600b8981548110613af157fe5b6000918252602090912060169091020154439063ffffffff6161e916565b90506000806110016001600160a01b0316638256ace66040518163ffffffff1660e01b8152600401604080518083038186803b158015613b4e57600080fd5b505afa158015613b62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b8691906180ae565b9150915060009350808310613ce557613b9f8787615150565b5060405163436aa28360e11b8152600090612002906386d5450690613bc8908b906004016181eb565b60206040518083038186803b158015613be057600080fd5b505afa158015613bf4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c189190617e5b565b6001600160a01b031614613c84576040516313d13bdb60e31b815261100190639e89ded890613c4d908a9087906004016181ff565b600060405180830381600087803b158015613c6757600080fd5b505af1158015613c7b573d6000803e3d6000fd5b50505050613cdc565b6040516305bfb49960e41b815261100190635bfb499090613ca9908a906004016181eb565b600060405180830381600087803b158015613cc357600080fd5b505af1158015613cd7573d6000803e3d6000fd5b505050505b60019350613cf7565b818310613cf757613cf58761666f565b505b60098054600019019055600b80546000919088908110613d1357fe5b60009182526020822060169190910201600101805460ff1916921515929092179091556040516001600160a01b038916917fb9d38178dc641ff1817967a63c9078cbcd955a9f1fcd75e0e3636de615d44d3b91a25050509392505050565b613d79617ac1565b6000613d83617ac1565b613d8b617b5e565b613d9c613d978661686e565b616893565b90506000805b613dab836168dd565b15613f1f5780613dd057613dc6613dc1846168fe565b61694c565b60ff168452613f17565b8060011415613f12576060613dec613de7856168fe565b6169cc565b90508051604051908082528060200260200182016040528015613e2957816020015b613e16617ae5565b815260200190600190039081613e0e5790505b5085602001819052508051604051908082528060200260200182016040528015613e6757816020015b6060815260200190600190039081613e525790505b50604086015260005b8151811015613f0757613e81617ae5565b60606000613ea1858581518110613e9457fe5b6020026020010151616a9d565b92509250925080613ec1578860009a509a50505050505050505050613f28565b8289602001518581518110613ed257fe5b60200260200101819052508189604001518581518110613eee57fe5b6020026020010181905250505050806001019050613e70565b506001925050613f17565b613f1f565b600101613da2565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b6060815260200190600190039081613f47579050509050613f6d8363ffffffff16616bb7565b81600081518110613f7a57fe5b602002602001018190525061115e81616bca565b6000606483511115613fc557600080516020618fc5833981519152604051613fb5906186ef565b60405180910390a1506066611dc5565b60005b83518110156140635760005b8181101561405a57848181518110613fe857fe5b6020026020010151600001516001600160a01b031685838151811061400957fe5b6020026020010151600001516001600160a01b0316141561405257600080516020618fc583398151915260405161403f906187ff565b60405180910390a1606692505050611dc5565b600101613fd4565b50600101613fc8565b5060608060606015805480602002602001604051908101604052809291908181526020016000905b828210156141155760008481526020908190206040805160c0810182526004860290920180546001600160a01b039081168452600180830154821685870152600283015491821693850193909352600160a01b81046001600160401b03166060850152600160e01b900460ff16151560808401526003015460a0830152908352909201910161408b565b50505050905060606016805480602002602001604051908101604052809291908181526020016000905b828210156141ea5760008481526020908190208301805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156141d65780601f106141ab576101008083540402835291602001916141d6565b820191906000526020600020905b8154815290600101906020018083116141b957829003601f168201915b50505050508152602001906001019061413f565b50505050905060005b82518110156142475782818151811061420857fe5b60200260200101516060015160030283828151811061422357fe5b60209081029190910101516001600160401b039091166060909101526001016141f3565b5060608061425789898686616c54565b915091506142658282615513565b600154604080518281526020808402820101909152929850909650600095508594509250606091508280156142a4578160200160208202803683370190505b50905060005b828110156144355760006001600160a01b03166120026001600160a01b03166386d54506600184815481106142db57fe5b60009182526020909120600491820201546040516001600160e01b031960e085901b168152614316926001600160a01b0390921691016181eb565b60206040518083038186803b15801561432e57600080fd5b505afa158015614342573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143669190617e5b565b6001600160a01b0316146143c857600182828151811061438257fe5b602002602001019060ff16908160ff1681525050600181815481106143a357fe5b9060005260206000209060040201600301546000146143c3578360010193505b61442d565b67016345785d8a0000600182815481106143de57fe5b906000526020600020906004020160030154106144005784600101945061442d565b6001818154811061440d57fe5b90600052602060002090600402016003015460001461442d578360010193505b6001016142aa565b50606084604051908082528060200260200182016040528015614462578160200160208202803683370190505b509050606085604051908082528060200260200182016040528015614491578160200160208202803683370190505b5090506060866040519080825280602002602001820160405280156144c0578160200160208202803683370190505b5090506060876040519080825280602002602001820160405280156144ef578160200160208202803683370190505b5090506000606088604051908082528060200260200182016040528015614520578160200160208202803683370190505b50905060608960405190808252806020026020018201604052801561454f578160200160208202803683370190505b50905060009a506000995060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b15801561459757600080fd5b505afa1580156145ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145cf9190618096565b905067016345785d8a000081111561461b57600080516020618fc58339815191526040516145fc90618b10565b60405180910390a160689e505050505050505050505050505050611dc5565b60005b8a8110156149af5789818151811061463257fe5b602002602001015160ff1660011415614728576001818154811061465257fe5b906000526020600020906004020160030154600014614723576001818154811061467857fe5b600091825260209091206004909102015484516001600160a01b039091169085908e9081106146a357fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600181815481106146d057fe5b906000526020600020906004020160030154838d815181106146ee57fe5b60200260200101818152505060018a8d8151811061470857fe5b602002602001019060ff16908160ff16815250508b6001019b505b6149a7565b67016345785d8a00006001828154811061473e57fe5b906000526020600020906004020160030154106148c3576001818154811061476257fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316898e8151811061479357fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be400600183815481106147c857fe5b906000526020600020906004020160030154816147e157fe5b06600183815481106147ef57fe5b90600052602060002090600402016003015403905061481783826161e990919063ffffffff16565b898f8151811061482357fe5b6020026020010181815250506001828154811061483c57fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316878f8151811061486d57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081888f8151811061489a57fe5b60209081029190910101526148b5868263ffffffff61622b16565b95508d6001019d50506149a7565b600181815481106148d057fe5b9060005260206000209060040201600301546000146149a757600181815481106148f657fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316848d8151811061492757fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506001818154811061495457fe5b906000526020600020906004020160030154838d8151811061497257fe5b60200260200101818152505060008a8d8151811061498c57fe5b602002602001019060ff16908160ff16815250508b6001019b505b60010161461e565b5060008415614c25576002546040516303702b2960e51b815261100491636e0565209188916149e9918e918e918d914201906004016182f9565b6020604051808303818588803b158015614a0257600080fd5b505af193505050508015614a33575060408051601f3d908101601f19168201909252614a3091810190617fc3565b60015b614baa576040516000815260443d1015614a4f57506000614aea565b60046000803e60005160e01c6308c379a08114614a70576000915050614aea565b60043d036004833e81513d60248201116001600160401b0382111715614a9b57600092505050614aea565b80830180516001600160401b03811115614abc576000945050505050614aea565b8060208301013d8601811115614ada57600095505050505050614aea565b601f01601f191660405250925050505b80614af55750614b37565b60019150857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf28082604051614b29919061837e565b60405180910390a250614ba5565b3d808015614b61576040519150601f19603f3d011682016040523d82523d6000602084013e614b66565b606091505b5060019150857fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a4582604051614b9b919061837e565b60405180910390a2505b614c25565b8015614bec577fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b7086604051614bdf9190618ed8565b60405180910390a1614c23565b857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280604051614c1a906184a8565b60405180910390a25b505b8015614ddb5760005b8751811015614dd9576000888281518110614c4557fe5b60200260200101519050600060018281548110614c5e57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc9185908110614c8f57fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f1935050505090508015614d4b5760018281548110614cd057fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d9185908110614d1f57fe5b906000526020600020906004020160030154604051614d3e9190618ed8565b60405180910390a2614dcf565b60018281548110614d5857fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d9185908110614da757fe5b906000526020600020906004020160030154604051614dc69190618ed8565b60405180910390a25b5050600101614c2e565b505b835115614fd15760005b8451811015614fcf578a8181518110614dfa57fe5b602002602001015160ff1660011415614e99576120026001600160a01b031663092193ab858381518110614e2a57fe5b6020026020010151878481518110614e3e57fe5b60200260200101516040518363ffffffff1660e01b8152600401614e6291906181eb565b6000604051808303818588803b158015614e7b57600080fd5b505af1158015614e8f573d6000803e3d6000fd5b5050505050614fc7565b6000858281518110614ea757fe5b60200260200101516001600160a01b03166108fc868481518110614ec757fe5b60200260200101519081150290604051600060405180830381858888f1935050505090508015614f5d57858281518110614efd57fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d868481518110614f3b57fe5b6020026020010151604051614f509190618ed8565b60405180910390a2614fc5565b858281518110614f6957fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d868481518110614fa757fe5b6020026020010151604051614fbc9190618ed8565b60405180910390a25b505b600101614de5565b505b5050505050505050505050505060005b60015481101561503e5760018181548110614ff857fe5b9060005260206000209060040201600301546000146150365760006001828154811061502057fe5b9060005260206000209060040201600301819055505b600101614fe1565b5047156150ac577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d476040516150749190618ed8565b60405180910390a1604051611002904780156108fc02916000818181858888f193505050501580156150aa573d6000803e3d6000fd5b505b600060038190556005558151156150c7576150c782826159fa565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561510457600080fd5b505af1158015615118573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a1506000949350505050565b6000806001838154811061516057fe5b9060005260206000209060040201600301549050600060018080549050039050600161518a6130a3565b51116151bf5760006001858154811061519f57fe5b906000526020600020906004020160030181905550600092505050611dc5565b846001600160a01b03167f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a70836040516151f89190618ed8565b60405180910390a26001600160a01b038516600090815260046020526040812055835b600154600019018110156153e5576001816001018154811061523957fe5b90600052602060002090600402016001828154811061525457fe5b60009182526020909120825460049092020180546001600160a01b03199081166001600160a01b0393841617825560018085015481840180548416918616919091179055600280860180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b19909416939093179055600392830154920191909155600b80549091830190811061531557fe5b9060005260206000209060160201600b828154811061533057fe5b600091825260209091208254601690920201908155600180830154818301805460ff909216151560ff1990921691909117905560028084018054615387938386019390821615610100026000190190911604617b7e565b5061539a60038281019084016013617bf3565b509050508060010160046000600184815481106153b357fe5b600091825260208083206004909202909101546001600160a01b0316835282019290925260400190205560010161521b565b5060018054806153f157fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b80548061544457fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906154766002830182617b1a565b615484600383016000617c1d565b50509055600081838161549357fe5b04905080156155075760015460005b81811015615504576154db83600183815481106154bb57fe5b90600052602060002090600402016003015461622b90919063ffffffff16565b600182815481106154e857fe5b60009182526020909120600360049092020101556001016154a2565b50505b50600195945050505050565b6060806000808080806155246131ad565b6001549091505b801561575357600181039250600b838154811061554457fe5b600091825260209091206001601690920201015460ff166155645761574a565b6001838154811061557157fe5b60009182526020909120600490910201546001600160a01b03169450615598858484613aac565b9350836155a45761574a565b60405163436aa28360e11b81526000908190612002906386d54506906155ce908a906004016181eb565b60206040518083038186803b1580156155e657600080fd5b505afa1580156155fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061561e9190617e5b565b90506001600160a01b038116156156a7576040516302ceee9160e11b81526120029063059ddd22906156549084906004016181eb565b60206040518083038186803b15801561566c57600080fd5b505afa158015615680573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906156a49190617e5b565b91505b60005b8c5181101561574657876001600160a01b03168d82815181106156c957fe5b6020026020010151600001516001600160a01b031614806157125750826001600160a01b03168d82815181106156fb57fe5b6020026020010151600001516001600160a01b0316145b1561573e5760018d828151811061572557fe5b6020908102919091010151901515608090910152615746565b6001016156aa565b5050505b6000190161552b565b5060005b89518110156157c05789818151811061576c57fe5b602002602001015160800151806157ac575060006001600160a01b03168a828151811061579557fe5b6020026020010151600001516001600160a01b0316145b156157b8578560010195505b600101615757565b50885185106158a85760408051600180825281830190925290816020015b6157e6617ae5565b8152602001906001900390816157de575050604080516001808252818301909252919850602082015b606081526020019060019003908161580f5790505095508860008151811061583357fe5b60200260200101518760008151811061584857fe5b60200260200101819052508760008151811061586057fe5b60200260200101518660008151811061587557fe5b602002602001018190525060008760008151811061588f57fe5b60209081029190910101519015156080909101526159ed565b848951036040519080825280602002602001820160405280156158e557816020015b6158d2617ae5565b8152602001906001900390816158ca5790505b5096508489510360405190808252806020026020018201604052801561591f57816020015b606081526020019060019003908161590a5790505b5095506000915060005b89518110156159eb5789818151811061593e57fe5b602002602001015160800151158015615981575060006001600160a01b03168a828151811061596957fe5b6020026020010151600001516001600160a01b031614155b156159e35789818151811061599257fe5b60200260200101518884815181106159a657fe5b60200260200101819052508881815181106159bd57fe5b60200260200101518784815181106159d157fe5b60200260200101819052508260010192505b600101615929565b505b50505050505b9250929050565b600154825160005b82811015615b17576001615a14617ae5565b60018381548110615a2157fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b84811015615aeb57878181518110615ab157fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b03161415615ae35760009250615aeb565b600101615a9d565b508115615b0d5780516001600160a01b03166000908152600460205260408120555b5050600101615a02565b5080821115615bd657805b82811015615bd4576001805480615b3557fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b805480615b8857fe5b60008281526020812060166000199093019283020181815560018101805460ff1916905590615bba6002830182617b1a565b615bc8600383016000617c1d565b50509055600101615b22565b505b6000818310615be55781615be7565b825b905060005b81811015615f8b57615c99868281518110615c0357fe5b602002602001015160018381548110615c1857fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a0820152617020565b615e4d578060010160046000888481518110615cb157fe5b6020026020010151600001516001600160a01b03166001600160a01b0316815260200190815260200160002081905550858181518110615ced57fe5b602002602001015160018281548110615d0257fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a0909101516003909101558451859082908110615dbd57fe5b6020026020010151600b8281548110615dd257fe5b90600052602060002090601602016002019080519060200190615df6929190617a1a565b506000600b8281548110615e0657fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b805483908110615e3757fe5b6000918252602090912060169091020155615f83565b858181518110615e5957fe5b60200260200101516060015160018281548110615e7257fe5b906000526020600020906004020160020160146101000a8154816001600160401b0302191690836001600160401b03160217905550615f38858281518110615eb657fe5b6020026020010151600b8381548110615ecb57fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156134a65780601f1061347b576101008083540402835291602001916134a6565b615f8357848181518110615f4857fe5b6020026020010151600b8281548110615f5d57fe5b90600052602060002090601602016002019080519060200190615f81929190617a1a565b505b600101615bec565b508282111561616357615f9c6179eb565b835b8381101561616057858181518110615fb257fe5b602002602001015182604001819052506001878281518110615fd057fe5b6020908102919091018101518254600181810185556000948552838520835160049093020180546001600160a01b039384166001600160a01b0319918216178255848601518284018054918616918316919091179055604080860151600284018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909a1692909616919091179290921696909617169190911790935560a090930151600390930192909255600b8054928301815590935284516016909102600080516020618fe58339815191528101918255858301516000805160206196148339815191528201805491151560ff19909216919091179055928501518051869492936161069360008051602061900583398151915201920190617a1a565b50606082015161611c9060038301906013617a94565b505050806001016004600089848151811061613357fe5b602090810291909101810151516001600160a01b0316825281019190915260400160002055600101615f9e565b50505b61616b61707c565b616173617264565b6000600981905560015493505b838110156161e1576000600b828154811061619757fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b8054839081106161c857fe5b6000918252602090912060169091020155600101616180565b505050505050565b600061115e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250617452565b60008282018381101561115e5760405162461bcd60e51b8152600401610e1290618613565b60015481516040805182815260208084028201019091526060929190839082801561628f57816020015b606081526020019060019003908161627a5790505b50600b5490915083146162a6579250611d15915050565b60005b828110156163b557600b6001600460008985815181106162c557fe5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205403815481106162f957fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156163915780601f1061636657610100808354040283529160200191616391565b820191906000526020600020905b81548152906001019060200180831161637457829003601f168201915b50505050508282815181106163a257fe5b60209081029190910101526001016162a9565b50949350505050565b60005b8281101561650b57600082878388016040516020016163e19291906181dd565b6040516020818303038152906040528051906020012060001c8161640157fe5b06905080850182870114616502576000898388018151811061641f57fe5b602002602001015190506060898489018151811061643957fe5b602002602001015190508a8388018151811061645157fe5b60200260200101518b858a018151811061646757fe5b60200260200101906001600160a01b031690816001600160a01b031681525050818b8489018151811061649657fe5b60200260200101906001600160a01b031690816001600160a01b03168152505089838801815181106164c457fe5b60200260200101518a858a01815181106164da57fe5b6020026020010181905250808a848901815181106164f457fe5b602002602001018190525050505b506001016163c1565b5050505050505050565b600980546001908101909155600b80548390811061652f57fe5b906000526020600020906016020160010160006101000a81548160ff02191690831515021790555043600b828154811061656557fe5b600091825260208220601690910201919091556040516001600160a01b038416917ff62981a567ec3cec866c6fa93c55bcdf841d6292d18b8d522ececa769375d82d91a25050565b6000816040516020016165c091906181c1565b60405160208183030381529060405280519060200120836040516020016165e791906181c1565b6040516020818303038152906040528051906020012014905092915050565b015190565b8151815160009160019181148083146166275760009250616665565b600160208701838101602088015b6002848385100114156166605780518351146166545760009650600093505b60209283019201616635565b505050505b5090949350505050565b6001600160a01b0381166000908152600460205260408120548061669857506000199050611d15565b6001810390506000600182815481106166ad57fe5b90600052602060002090600402016003015490506000600183815481106166d057fe5b6000918252602090912060036004909202010155600154604051600019909101906001600160a01b038616907f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d90616729908590618ed8565b60405180910390a28061674157829350505050611d15565b600081838161674c57fe5b04905080156167e85760005b8481101561679a5761677182600183815481106154bb57fe5b6001828154811061677e57fe5b6000918252602090912060036004909202010155600101616758565b50600180549085015b818110156167e5576167bc83600183815481106154bb57fe5b600182815481106167c957fe5b60009182526020909120600360049092020101556001016167a3565b50505b5091949350505050565b60008261680157506000611dc5565b8282028284828161680e57fe5b041461115e5760405162461bcd60e51b8152600401610e12906189e2565b600061115e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061747e565b616876617c2c565b506040805180820190915281518152602082810190820152919050565b61689b617b5e565b6168a4826174b5565b6168ad57600080fd5b60006168bc83602001516174ef565b60208085015160408051808201909152868152920190820152915050919050565b60006168e7617c2c565b505080518051602091820151919092015191011190565b616906617c2c565b61690f826168dd565b61691857600080fd5b6020820151600061692882617552565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061696157508151602110155b61696a57600080fd5b600061697983602001516174ef565b9050808360000151101561699f5760405162461bcd60e51b8152600401610e1290618bf0565b8251602080850151830180519284900392918310156163b557506020919091036101000a90049392505050565b60606169d7826174b5565b6169e057600080fd5b60006169eb83617633565b9050606081604051908082528060200260200182016040528015616a2957816020015b616a16617c2c565b815260200190600190039081616a0e5790505b5090506000616a3b85602001516174ef565b60208601510190506000805b84811015616a9257616a5883617552565b9150604051806040016040528083815260200184815250848281518110616a7b57fe5b602090810291909101015291810191600101616a47565b509195945050505050565b616aa5617ae5565b60606000616ab1617ae5565b6060616abb617b5e565b616ac487616893565b90506000805b616ad3836168dd565b15616ba85780616afe57616aee616ae9846168fe565b61768f565b6001600160a01b03168552616ba0565b8060011415616b2657616b13616ae9846168fe565b6001600160a01b03166020860152616ba0565b8060021415616b4e57616b3b616ae9846168fe565b6001600160a01b03166040860152616ba0565b8060031415616b7a57616b63613dc1846168fe565b6001600160401b0316606086015260019150616ba0565b8060041415616b9b57616b94616b8f846168fe565b6176a9565b9350616ba0565b616ba8565b600101616aca565b50929791965091945092505050565b6060611dc5616bc583617719565b6177ff565b6060815160001415616beb5750604080516000815260208101909152611d15565b606082600081518110616bfa57fe5b602002602001015190506000600190505b8351811015616c3b57616c3182858381518110616c2457fe5b6020026020010151617851565b9150600101616c0b565b5061115e616c4e825160c060ff166178ce565b82617851565b60608060006120026001600160a01b031663c473318f6040518163ffffffff1660e01b815260040160206040518083038186803b158015616c9457600080fd5b505afa158015616ca8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190616ccc9190618096565b90508085518851011015616ce1575083518651015b606081604051908082528060200260200182016040528015616d1d57816020015b616d0a617ae5565b815260200190600190039081616d025790505b509050606082604051908082528060200260200182016040528015616d5657816020015b6060815260200190600190039081616d415790505b50905060008060005b8b51831080616d6e5750895182105b8015616d7957508581105b1561700e578b51831415616de957898281518110616d9357fe5b6020026020010151858281518110616da757fe5b6020026020010181905250888281518110616dbe57fe5b6020026020010151848281518110616dd257fe5b602090810291909101015260019182019101616d5f565b8951821415616e54578b8381518110616dfe57fe5b6020026020010151858281518110616e1257fe5b60200260200101819052508a8381518110616e2957fe5b6020026020010151848281518110616e3d57fe5b602090810291909101015260019283019201616d5f565b898281518110616e6057fe5b6020026020010151606001516001600160401b03168c8481518110616e8157fe5b6020026020010151606001516001600160401b03161115616efd578b8381518110616ea857fe5b6020026020010151858281518110616ebc57fe5b60200260200101819052508a8381518110616ed357fe5b6020026020010151848281518110616ee757fe5b6020026020010181905250826001019250617006565b898281518110616f0957fe5b6020026020010151606001516001600160401b03168c8481518110616f2a57fe5b6020026020010151606001516001600160401b03161015616fa657898281518110616f5157fe5b6020026020010151858281518110616f6557fe5b6020026020010181905250888281518110616f7c57fe5b6020026020010151848281518110616f9057fe5b6020026020010181905250816001019150617006565b898281518110616fb257fe5b6020026020010151600001516001600160a01b03168c8481518110616fd357fe5b6020026020010151600001516001600160a01b03161015616ffa578b8381518110616ea857fe5b898281518110616d9357fe5b600101616d5f565b50929a91995090975050505050505050565b805182516000916001600160a01b03918216911614801561705a575081602001516001600160a01b031683602001516001600160a01b0316145b801561115e5750506040908101519101516001600160a01b0390811691161490565b601254601354808211156170c757805b828110156170c557601280548061709f57fe5b6001900381819060005260206000200160006170bb9190617b1a565b905560010161708c565b505b60008183106170d657816170d8565b825b905060005b818110156171f057617195601282815481106170f557fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156171835780601f1061715857610100808354040283529160200191617183565b820191906000526020600020905b81548152906001019060200180831161716657829003601f168201915b50505050506013838154811061341857fe5b6171e857601381815481106171a657fe5b90600052602060002001601282815481106171bd57fe5b9060005260206000200190805460018160011615610100020316600290046171e6929190617b7e565b505b6001016170dd565b5082821115610e3257825b8281101561725e5760126013828154811061721257fe5b6000918252602080832084546001818101875595855291909320929091018054617255949390920192909160026101009282161592909202600019011604617b7e565b506001016171fb565b50505050565b601354600b54808211156172af57805b828110156172ad57601380548061728757fe5b6001900381819060005260206000200160006172a39190617b1a565b9055600101617274565b505b60008183106172be57816172c0565b825b905060005b818110156173df5761737d601382815481106172dd57fe5b600091825260209182902001805460408051601f600260001961010060018716150201909416939093049283018590048502810185019091528181529283018282801561736b5780601f106173405761010080835404028352916020019161736b565b820191906000526020600020905b81548152906001019060200180831161734e57829003601f168201915b5050505050600b8381548110615ecb57fe5b6173d757600b818154811061738e57fe5b9060005260206000209060160201600201601382815481106173ac57fe5b9060005260206000200190805460018160011615610100020316600290046173d5929190617b7e565b505b6001016172c5565b5082821115610e3257825b8281101561725e576013600b828154811061740157fe5b60009182526020808320845460018082018755958552919093206016929092029092016002908101805461744995939094019390926000199082161561010002011604617b7e565b506001016173ea565b600081848411156174765760405162461bcd60e51b8152600401610e12919061837e565b505050900390565b6000818361749f5760405162461bcd60e51b8152600401610e12919061837e565b5060008385816174ab57fe5b0495945050505050565b80516000906174c657506000611d15565b6020820151805160001a9060c08210156174e557600092505050611d15565b5060019392505050565b8051600090811a6080811015617509576000915050611d15565b60b8811080617524575060c08110801590617524575060f881105b15617533576001915050611d15565b60c08110156175475760b519019050611d15565b60f519019050611d15565b80516000908190811a608081101561756d576001915061762c565b60b881101561758257607e198101915061762c565b60c08110156175d357600060b78203600186019550806020036101000a8651049150600181018201935050808310156175cd5760405162461bcd60e51b8152600401610e129061892f565b5061762c565b60f88110156175e85760be198101915061762c565b600060f78203600186019550806020036101000a86510491506001810182019350508083101561762a5760405162461bcd60e51b8152600401610e129061892f565b505b5092915050565b805160009061764457506000611d15565b6000809050600061765884602001516174ef565b602085015185519181019250015b808210156176865761767782617552565b82019150826001019250617666565b50909392505050565b80516000906015146176a057600080fd5b611dc58261694c565b80516060906176b757600080fd5b60006176c683602001516174ef565b83516040805191839003808352601f19601f82011683016020019091529192506060908280156176fd576020820181803683370190505b50905060008160200190506163b58487602001510182856179a0565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff19841661775d57506018617781565b6fffffffffffffffffffffffffffffffff19841661777d57506010617781565b5060005b60208110156177b75781818151811061779657fe5b01602001516001600160f81b031916156177af576177b7565b600101617781565b60008160200390506060816040519080825280601f01601f1916602001820160405280156177ec576020820181803683370190505b5080830196909652508452509192915050565b6060815160011480156178315750607f60f81b8260008151811061781f57fe5b01602001516001600160f81b03191611155b1561783d575080611d15565b611dc561784f8351608060ff166178ce565b835b6060806040519050835180825260208201818101602087015b8183101561788257805183526020928301920161786a565b50855184518101855292509050808201602086015b818310156178af578051835260209283019201617897565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106178f85760405162461bcd60e51b8152600401610e129061877a565b604080516001808252818301909252606091602082018180368337019050509050603784116179525782840160f81b8160008151811061793457fe5b60200101906001600160f81b031916908160001a9053509050611dc5565b606061795d85617719565b90508381510160370160f81b8260008151811061797657fe5b60200101906001600160f81b031916908160001a9053506179978282617851565b95945050505050565b806179aa57610e32565b5b602081106179ca578251825260209283019290910190601f19016179ab565b915181516020939093036101000a6000190180199091169216919091179052565b60405180608001604052806000815260200160001515815260200160608152602001617a15617c46565b905290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10617a5b57805160ff1916838001178555617a88565b82800160010185558215617a88579182015b82811115617a88578251825591602001919060010190617a6d565b506131e8929150617c65565b8260138101928215617a885791602002820182811115617a88578251825591602001919060010190617a6d565b6040518060600160405280600060ff16815260200160608152602001606081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b50805460018160011615610100020316600290046000825580601f10617b405750611f2d565b601f016020900490600052602060002090810190611f2d9190617c65565b6040518060400160405280617b71617c2c565b8152602001600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10617bb75780548555617a88565b82800160010185558215617a8857600052602060002091601f016020900482015b82811115617a88578254825591600101919060010190617bd8565b8260138101928215617a885791820182811115617a88578254825591600101919060010190617bd8565b50611f2d906013810190617c65565b604051806040016040528060008152602001600081525090565b6040518061026001604052806013906020820280368337509192915050565b61318c91905b808211156131e85760008155600101617c6b565b8035611dc581618faf565b60008083601f840112617c9b578182fd5b5081356001600160401b03811115617cb1578182fd5b60208301915083602080830285010111156159f357600080fd5b6000601f8381840112617cdc578182fd5b8235617cef617cea82618f64565b618f3e565b818152925060208084019085810160005b84811015617d81578135880189603f820112617d1b57600080fd5b838101356001600160401b03811115617d3357600080fd5b617d44818901601f19168601618f3e565b81815260408c81848601011115617d5a57600080fd5b82818501888401375060009181018601919091528552509282019290820190600101617d00565b50505050505092915050565b600082601f830112617d9d578081fd5b8135617dab617cea82618f64565b818152915060208083019084810181840286018201871015617dcc57600080fd5b6000805b85811015617d815782356001600160401b0381168114617dee578283fd5b85529383019391830191600101617dd0565b60008083601f840112617e11578182fd5b5081356001600160401b03811115617e27578182fd5b6020830191508360208285010111156159f357600080fd5b600060208284031215617e50578081fd5b813561115e81618faf565b600060208284031215617e6c578081fd5b815161115e81618faf565b60008060008060408587031215617e8c578283fd5b84356001600160401b0380821115617ea2578485fd5b617eae88838901617c8a565b90965094506020870135915080821115617ec6578384fd5b50617ed387828801617c8a565b95989497509550505050565b600080600060608486031215617ef3578283fd5b83356001600160401b0380821115617f09578485fd5b81860187601f820112617f1a578586fd5b80359250617f2a617cea84618f64565b80848252602080830192508084018b828389028701011115617f4a57898afd5b8994505b86851015617f7457617f608c82617c7f565b845260019490940193928101928101617f4e565b509097508801359350505080821115617f8b578384fd5b617f9787838801617d8d565b93506040860135915080821115617fac578283fd5b50617fb986828701617ccb565b9150509250925092565b600060208284031215617fd4578081fd5b8151801515811461115e578182fd5b60008060208385031215617ff5578182fd5b82356001600160401b0381111561800a578283fd5b61801685828601617e00565b90969095509350505050565b60008060008060408587031215618037578384fd5b84356001600160401b038082111561804d578586fd5b61805988838901617e00565b90965094506020870135915080821115618071578384fd5b50617ed387828801617e00565b60006020828403121561808f578081fd5b5035919050565b6000602082840312156180a7578081fd5b5051919050565b600080604083850312156180c0578182fd5b505080516020909101519092909150565b6000806000604084860312156180e5578081fd5b833560ff811681146180f5578182fd5b925060208401356001600160401b0381111561810f578182fd5b61811b86828701617e00565b9497909650939450505050565b6000815180845260208085019450808401835b838110156181605781516001600160a01b03168752958201959082019060010161813b565b509495945050505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b600081518084526181ad816020860160208601618f83565b601f01601f19169290920160200192915050565b600082516181d3818460208701618f83565b9190910192915050565b918252602082015260400190565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b03968716815294861660208601529290941660408401526001600160401b03166060830152911515608082015260a081019190915260c00190565b6001600160a01b0392909216825260ff16602082015260400190565b60006020825261115e6020830184618128565b60006040825261829c6040830185618128565b602083820381850152818551808452828401915082838202850101838801865b838110156182ea57601f198784030185526182d8838351618195565b948601949250908501906001016182bc565b50909998505050505050505050565b60006080825261830c6080830187618128565b828103602084810191909152865180835287820192820190845b8181101561834257845183529383019391830191600101618326565b505084810360408601526183568188618128565b93505050506001600160401b038316606083015295945050505050565b901515815260200190565b60006020825261115e6020830184618195565b6000604082526183a560408301868861816b565b82810360208401526183b881858761816b565b979650505050505050565b6020808252601c908201527f6c656e677468206f66206275726e526174696f206d69736d6174636800000000604082015260600190565b60208082526042908201527f746865206275726e526174696f20706c75732073797374656d5265776172645260408201527f6174696f206d757374206265206e6f2067726561746572207468616e20313030606082015261030360f41b608082015260a00190565b60208082526026908201527f6c656e677468206f66206d61784e756d4f664d61696e7461696e696e67206d696040820152650e6dac2e8c6d60d31b606082015260800190565b6020808252601b908201527f6261746368207472616e736665722072657475726e2066616c73650000000000604082015260600190565b6020808252602c908201527f6c656e677468206f66206d61784e756d4f66576f726b696e6743616e6469646160408201526b0e8cae640dad2e6dac2e8c6d60a31b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61696e7461696e536c6173685363616c65206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252818101527f6c656e677468206f66206e756d4f66436162696e657473206d69736d61746368604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252601f908201527f6f6e6c7920736c617368206f72207374616b6548756220636f6e747261637400604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526028908201527f746865206e756d4f66436162696e657473206d75737420626520677265617465604082015267072207468616e20360c41b606082015260800190565b60208082526039908201527f746865206e756d4f66436162696e657473206d757374206265206c657373207460408201527f68616e204d41585f4e554d5f4f465f56414c494441544f525300000000000000606082015260800190565b60208082526029908201527f746865206e756d626572206f662076616c696461746f727320657863656564206040820152681d1a19481b1a5b5a5d60ba1b606082015260800190565b60208082526022908201527f63616e206e6f7420646f207468697320747769636520696e206f6e6520626c6f604082015261636b60f01b606082015260800190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526037908201527f746865206d61784e756d4f664d61696e7461696e696e67206d7573742062652060408201527f6c657373207468616e206e756d4f66436162696e657473000000000000000000606082015260800190565b6020808252602b908201527f6475706c696361746520636f6e73656e7375732061646472657373206f66207660408201526a185b1a59185d1bdc94d95d60aa1b606082015260800190565b60208082526027908201527f7468652065787069726554696d655365636f6e64476170206973206f7574206f604082015266662072616e676560c81b606082015260800190565b6020808252601590820152746465706f7369742076616c7565206973207a65726f60581b604082015260600190565b60208082526049908201527f746865206d61784e756d4f66576f726b696e6743616e64696461746573206d7560408201527f7374206265206e6f742067726561746572207468616e206d61784e756d4f6643606082015268616e6469646174657360b81b608082015260a00190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b60208082526023908201527f63616e206e6f7420656e7465722054656d706f72617279204d61696e74656e616040820152626e636560e81b606082015260800190565b60208082526025908201527f6c656e677468206f66206a61696c2076616c696461746f7273206d757374206260408201526465206f6e6560d81b606082015260800190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61784e756d4f6643616e64696461746573206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252601290820152716e6f7420696e206d61696e74656e616e636560701b604082015260600190565b60208082526021908201527f666565206973206c6172676572207468616e2044555354595f494e434f4d494e6040820152604760f81b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b60208082526042908201527f7468652073797374656d526577617264526174696f20706c7573206275726e5260408201527f6174696f206d757374206265206e6f2067726561746572207468616e20313030606082015261030360f41b608082015260a00190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526026908201527f6c656e677468206f662065787069726554696d655365636f6e64476170206d696040820152650e6dac2e8c6d60d31b606082015260800190565b60208082526017908201527f6f6e6c792063757272656e742076616c696461746f7273000000000000000000604082015260600190565b60208082526021908201527f6661696c656420746f20706172736520696e69742076616c696461746f7253656040820152601d60fa1b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b60208082526024908201527f6c656e677468206f662073797374656d526577617264526174696f206d69736d6040820152630c2e8c6d60e31b606082015260800190565b6020808252603e908201527f746865206d61696e7461696e536c6173685363616c65206d757374206265206760408201527f726561746572207468616e203020616e64206c657373207468616e2031300000606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b60208082526029908201527f746865206d6573736167652073656e646572206d75737420626520736c6173686040820152680818dbdb9d1c9858dd60ba1b606082015260800190565b6020808252601f908201527f746865206d73672073656e646572206d757374206265207374616b6548756200604082015260600190565b61ffff91909116815260200190565b90815260200190565b60008482528315156020830152606060408301526179976060830184618195565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff851682526040602083015261799760408301848661816b565b6040518181016001600160401b0381118282101715618f5c57600080fd5b604052919050565b60006001600160401b03821115618f79578081fd5b5060209081020190565b60005b83811015618f9e578181015183820152602001618f86565b8381111561725e5750506000910152565b6001600160a01b0381168114611f2d57600080fdfe70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb20175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbbf905ec80f905e8f846942a7cdd959bfe8d9487b2a43b33565295a698f7e294b6a7edd747c0554875d3fc531d19ba1497992c5e941ff80f3f7f110ffd8920a3ac38fdef318fe94a3f86048c27395000f846946488aa4d1955ee33403f8ccb1d4de5fb97c7ade294220f003d8bdfaadf52aa1e55ae4cc485e6794875941a87e90e440a39c99aa9cb5cea0ad6a3f0b2407b86048c27395000f846949ef9f4360c606c7ab4db26b016007d3ad0ab86a0946103af86a874b705854033438383c82575f25bc29418e2db06cbff3e3c5f856410a1838649e760175786048c27395000f84694ee01c3b1283aa067c58eab4709f85e99d46de5fe94ee4b9bfb1871c64e2bcabb1dc382dc8b7c4218a29415904ab26ab0e99d70b51c220ccdcccabee6e29786048c27395000f84694685b1ded8013785d6623cc18d214320b6bb6475994a20ef4e5e4e7e36258dbf51f4d905114cb1b34bc9413e39085dc88704f4394d35209a02b1a9520320c86048c27395000f8469478f3adfc719c99674c072166708589033e2d9afe9448a30d5eaa7b64492a160f139e2da2800ec3834e94055838358c29edf4dcc1ba1985ad58aedbb6be2b86048c27395000f84694c2be4ec20253b8642161bc3f444f53679c1f3d479466f50c616d737e60d7ca6311ff0d9c434197898a94d1d678a2506eeaa365056fe565df8bc8659f28b086048c27395000f846942f7be8361c80a4c1e7e9aaf001d0877f1cfde218945f93992ac37f3e61db2ef8a587a436a161fd210b94ecbc4fb1a97861344dad0867ca3cba2b860411f086048c27395000f84694ce2fd7544e0b2cc94692d4a704debef7bcb613289444abc67b4b2fba283c582387f54c9cba7c34bafa948acc2ab395ded08bb75ce85bf0f95ad2abc51ad586048c27395000f84694b8f7166496996a7da21cf1f1b04d9b3e26a3d077946770572763289aac606e4f327c2f6cc1aa3b3e3b94882d745ed97d4422ca8da1c22ec49d880c4c097286048c27395000f846942d4c407bbe49438ed859fe965b140dcf1aab71a9943ad0939e120f33518fbba04631afe7a3ed6327b194b2bbb170ca4e499a2b0f3cc85ebfa6e8c4dfcbea86048c27395000f846946bbad7cf34b5fa511d8e963dbba288b1960e75d694853b0f6c324d1f4e76c8266942337ac1b0af1a229442498946a51ca5924552ead6fc2af08b94fcba648601d1a94a2000f846944430b3230294d12c6ab2aac5c2cd68e80b16b581947b107f4976a252a6939b771202c28e64e03f52d694795811a7f214084116949fc4f53cedbf189eeab28601d1a94a2000f84694ea0a6e3c511bbd10f4519ece37dc24887e11b55d946811ca77acfb221a49393c193f3a22db829fcc8e9464feb7c04830dd9ace164fc5c52b3f5a29e5018a8601d1a94a2000f846947ae2f5b9e386cd1b50a4550696d957cb4900f03a94e83bcc5077e6b873995c24bac871b5ad856047e19464e48d4057a90b233e026c1041e6012ada897fe88601d1a94a2000f8469482012708dafc9e1b880fd083b32182b869be8e09948e5adc73a2d233a1b496ed3115464dd6c7b887509428b383d324bc9a37f4e276190796ba5a8947f5ed8601d1a94a2000f8469422b81f8e175ffde54d797fe11eb03f9e3bf75f1d94a1c3ef7ca38d8ba80cce3bfc53ebd2903ed21658942767f7447f7b9b70313d4147b795414aecea54718601d1a94a2000f8469468bf0b8b6fb4e317a0f9d6f03eaf8ce6675bc60d94675cfe570b7902623f47e7f59c9664b5f5065dcf94d84f0d2e50bcf00f2fc476e1c57f5ca2d57f625b8601d1a94a2000f846948c4d90829ce8f72d0163c1d5cf348a862d5506309485c42a7b34309bee2ed6a235f86d16f059deec5894cc2cedc53f0fa6d376336efb67e43d167169f3b78601d1a94a2000f8469435e7a025f4da968de7e4d7e4004197917f4070f194b1182abaeeb3b4d8eba7e6a4162eac7ace23d57394c4fd0d870da52e73de2dd8ded19fe3d26f43a1138601d1a94a2000f84694d6caa02bbebaebb5d7e581e4b66559e635f805ff94c07335cf083c1c46a487f0325769d88e163b653694efaff03b42e41f953a925fc43720e45fb61a19938601d1a94a20000175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbaa164736f6c6343000604000a" + }, + "0x0000000000000000000000000000000000001001": { + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b506004361061035d5760003560e01c80637e434d54116101d3578063c80d4b8f11610104578063df8079e9116100a2578063f9a2bbc71161007c578063f9a2bbc714610601578063fc3e590814610609578063fc4333cd14610611578063fd6a6879146106195761035d565b8063df8079e9146105e9578063e1c7392a146105f1578063f1fad104146105f95761035d565b8063c96be4cb116100de578063c96be4cb146105b3578063cc844b73146105c6578063dc927faf146105d9578063dcc6f156146105e15761035d565b8063c80d4b8f14610590578063c81b166214610598578063c8509d81146105a05761035d565b8063a1a11bf511610171578063aad560631161014b578063aad5606314610565578063ab51bb961461056d578063ac0af62914610575578063ac4317511461057d5761035d565b8063a1a11bf51461054d578063a78abc1614610555578063aa82dce11461055d5761035d565b806396713da9116101ad57806396713da9146105225780639dc092621461052a5780639e89ded8146105325780639f804f5f146105455761035d565b80637e434d54146104ff5780638256ace614610507578063831d65d11461050f5761035d565b8063493279b1116102ad57806362b72cf51161024b578063718a8aa811610225578063718a8aa8146104df57806375d47a0a146104e75780637912a65d146104ef5780637942fd05146104f75761035d565b806362b72cf5146104c75780636e47b482146104cf57806370fd5bad146104d75761035d565b806351b4dce31161028757806351b4dce31461049c57806351e80672146104a4578063567a372d146104ac5780635bfb4990146104b45761035d565b8063493279b1146104775780634bf6c8821461048c57806350055f90146104945761035d565b8063280870281161031a57806337c8dab9116102f457806337c8dab914610431578063389f4f71146104525780633dffc3871461045a57806343756e5c1461046f5761035d565b806328087028146104015780633306ccca1461040957806335aa2e441461041e5761035d565b80630bee7a67146103625780630e2374a5146103805780631182b8751461039557806322d1e80b146103b557806323bac5a2146103ca57806327962118146103ec575b600080fd5b61036a610621565b6040516103779190613d56565b60405180910390f35b610388610626565b6040516103779190613534565b6103a86103a336600461346a565b61062c565b604051610377919061356c565b6103bd610692565b6040516103779190613561565b6103dd6103d8366004613181565b61069b565b60405161037793929190613d3e565b6103ff6103fa3660046132c7565b6106be565b005b610388610a13565b610411610a19565b6040516103779190613d27565b61038861042c36600461343a565b610a1f565b61044461043f366004613181565b610a46565b604051610377929190613d30565b610411610a9d565b610462610aa3565b6040516103779190613d67565b610388610aa8565b61047f610aae565b6040516103779190613d18565b610462610ab3565b610411610ab8565b610388610abe565b610388610ac4565b610411610aca565b6103ff6104c2366004613181565b610ad0565b610411610bdc565b610388610be2565b610462610be8565b610462610bed565b610388610bf2565b610411610bf8565b610462610bfd565b610388610c02565b610444610c08565b6103ff61051d36600461346a565b610c12565b610462610d26565b610388610d2b565b6103ff6105403660046131b9565b610d31565b610411610d60565b610388610d66565b6103bd610d6c565b610388610d75565b610388610d7b565b61036a610d81565b610411610d86565b6103ff61058b36600461331e565b610d8b565b610411611327565b61038861132c565b6103ff6105ae36600461346a565b611332565b6103ff6105c1366004613181565b6113a3565b6103ff6105d4366004613387565b611812565b610388611df1565b610411611df7565b610388611dfc565b6103ff611e02565b610462611e3e565b610388611e43565b610462611e49565b6103ff611e4e565b610388612297565b606481565b61200181565b606033612000146106585760405162461bcd60e51b815260040161064f90613bbb565b60405180910390fd5b60005460ff1661067a5760405162461bcd60e51b815260040161064f90613661565b60405162461bcd60e51b815260040161064f90613cac565b60075460ff1681565b600260208190526000918252604090912080546001820154919092015460ff1683565b60005460ff166106e05760405162461bcd60e51b815260040161064f90613661565b6006546106ed5760146006555b6008546106fb576170806008555b81511580159061070b5750805115155b6107275760405162461bcd60e51b815260040161064f90613b19565b60408051600380825260808201909252606091816020015b606081526020019060019003908161073f579050509050610760603861229d565b8160008151811061076d57fe5b6020026020010181905250610781836122b8565b8160018151811061078e57fe5b60200260200101819052506107a2826122b8565b816002815181106107af57fe5b602002602001018190525060606107c58261230e565b60408051603480825260608281019093529293509091602082018180368337019050509050815160346020830182602086016068600019fa61080657600080fd5b506014810151603482015160405163436aa28360e11b8152600090612002906386d5450690610839908690600401613534565b60206040518083038186803b15801561085157600080fd5b505afa158015610865573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610889919061319d565b6001600160a01b031614156108b05760405162461bcd60e51b815260040161064f90613631565b43600854820110156108d45760405162461bcd60e51b815260040161064f906135d2565b604051631871f7d960e31b81526120029063c38fbec8906108f9908590600401613534565b600060405180830381600087803b15801561091357600080fd5b505af1158015610927573d6000803e3d6000fd5b50506040516335409f7f60e01b815261100092506335409f7f9150610950908590600401613534565b600060405180830381600087803b15801561096a57600080fd5b505af115801561097e573d6000803e3d6000fd5b50506006546040516309a99b4f60e41b815260646110028031909302049350909150639a99b4f0906109b69033908590600401613548565b602060405180830381600087803b1580156109d057600080fd5b505af11580156109e4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a089190613452565b505050505050505050565b61200581565b61708081565b60018181548110610a2c57fe5b6000918252602090912001546001600160a01b0316905081565b600080610a51612f68565b5050506001600160a01b0316600090815260026020818152604092839020835160608101855281548082526001830154938201849052919093015460ff16151592909301919091529091565b60055481565b600181565b61100181565b603881565b600881565b60065481565b61200681565b61200081565b60045481565b3361100014610af15760405162461bcd60e51b815260040161064f906138a4565b60005460ff16610b135760405162461bcd60e51b815260040161064f90613661565b61200063f7a251d7600b610b268461239f565b60006040518463ffffffff1660e01b8152600401610b4693929190613d75565b600060405180830381600087803b158015610b6057600080fd5b505af1925050508015610b71575060015b610bd9573d808015610b9f576040519150601f19603f3d011682016040523d82523d6000602084013e610ba4565b606091505b50816001600160a01b0316600080516020613e52833981519152600083604051610bcf92919061357f565b60405180910390a2505b50565b60035481565b61100581565b600281565b601081565b61100881565b603281565b600b81565b61200381565b6004546005549091565b3361200014610c335760405162461bcd60e51b815260040161064f90613bbb565b60005460ff16610c555760405162461bcd60e51b815260040161064f90613661565b610c5d612f8b565b6000610c9e84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061246892505050565b915091508015610ce55781516040517f7f0956d47419b9525356e7111652b653b530ec6f5096dccc04589bc38e62996791610cd891613d56565b60405180910390a1610d1e565b81516040517f7d45f62d17443dd4547bca8a8112c60e2385669318dc300ec61a5d2492f262e791610d1591613d56565b60405180910390a15b50505b505050565b600981565b61100781565b3361100014610d525760405162461bcd60e51b815260040161064f906138a4565b610d5c82826124e8565b5050565b60085481565b61100681565b60005460ff1681565b61200281565b61300081565b600081565b600481565b60005460ff16610dad5760405162461bcd60e51b815260040161064f90613661565b3361100714610dce5760405162461bcd60e51b815260040161064f90613a08565b610e3984848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260148152731b5a5cd9195b59585b9bdc951a1c995cda1bdb1960621b6020820152915061269b9050565b15610ed45760208114610e5e5760405162461bcd60e51b815260040161064f90613830565b604080516020601f8401819004810282018101909252828152600091610e9c918585808385018382808284376000920191909152506126f592505050565b905060018110158015610eb0575060055481105b610ecc5760405162461bcd60e51b815260040161064f90613b76565b6004556112e4565b610f3a84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e19995b1bdb9e551a1c995cda1bdb19608a1b6020820152915061269b9050565b15610fd65760208114610f5f5760405162461bcd60e51b815260040161064f90613a56565b604080516020601f8401819004810282018101909252828152600091610f9d918585808385018382808284376000920191909152506126f592505050565b90506103e88111158015610fb2575060045481115b610fce5760405162461bcd60e51b815260040161064f9061371a565b6005556112e4565b61104384848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601681527566656c6f6e79536c617368526577617264526174696f60501b6020820152915061269b9050565b156110dd57602081146110685760405162461bcd60e51b815260040161064f90613990565b604080516020601f84018190048102820181019092528281526000916110a6918585808385018382808284376000920191909152506126f592505050565b9050600a81101580156110b95750606481105b6110d55760405162461bcd60e51b815260040161064f90613a98565b6006556112e4565b61115184848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f656e61626c654d616c6963696f7573566f7465536c61736800000000000000006020820152915061269b9050565b156111c857602081146111765760405162461bcd60e51b815260040161064f9061374f565b604080516020601f84018190048102820181019092528281526111b291908484808385018382808284376000920191909152506126fa92505050565b6007805460ff19169115159190911790556112e4565b61122f84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601081526f66656c6f6e79536c61736853636f706560801b6020820152915061269b9050565b156112cc57602081146112545760405162461bcd60e51b815260040161064f9061391f565b604080516020601f8401819004810282018101909252828152600091611292918585808385018382808284376000920191909152506126f592505050565b905061708081101580156112a85750620d2f0081105b6112c45760405162461bcd60e51b815260040161064f90613698565b6008556112e4565b60405162461bcd60e51b815260040161064f90613c57565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a8484848460405161131994939291906135a0565b60405180910390a150505050565b609681565b61100281565b33612000146113535760405162461bcd60e51b815260040161064f90613bbb565b60005460ff166113755760405162461bcd60e51b815260040161064f90613661565b6040517f07db600eebe2ac176be8dcebad61858c245a4961bb32ca2aa3d159b09aa0810e90600090a1505050565b3341146113c25760405162461bcd60e51b815260040161064f90613c0a565b60005460ff166113e45760405162461bcd60e51b815260040161064f90613661565b60035443116114055760405162461bcd60e51b815260040161064f90613ce3565b3a156114235760405162461bcd60e51b815260040161064f90613962565b60405163155853f360e21b8152611000906355614fcc90611448908490600401613534565b60206040518083038186803b15801561146057600080fd5b505afa158015611474573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149891906132a7565b6114a15761180b565b6114a9612f68565b506001600160a01b0381166000908152600260208181526040928390208351606081018552815481526001820154928101929092529091015460ff16158015928201929092529061150457602081018051600101905261155d565b60016040820181905260208201819052805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0384161790555b43815260055460208201518161156f57fe5b0661173957600060208201526040516335409f7f60e01b8152611000906335409f7f906115a0908590600401613534565b600060405180830381600087803b1580156115ba57600080fd5b505af11580156115ce573d6000803e3d6000fd5b505060405163436aa28360e11b81526000925061200291506386d54506906115fa908690600401613534565b60206040518083038186803b15801561161257600080fd5b505afa158015611626573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061164a919061319d565b6001600160a01b03161461166b576116668282602001516124e8565b611734565b61200063f7a251d7600b61167e8561239f565b60006040518463ffffffff1660e01b815260040161169e93929190613d75565b600060405180830381600087803b1580156116b857600080fd5b505af19250505080156116c9575060015b611734573d8080156116f7576040519150601f19603f3d011682016040523d82523d6000602084013e6116fc565b606091505b50826001600160a01b0316600080516020613e5283398151915283602001518360405161172a92919061357f565b60405180910390a2505b6117a5565b60045481602001518161174857fe5b066117a5576040516375abf10160e11b81526110009063eb57e20290611772908590600401613534565b600060405180830381600087803b15801561178c57600080fd5b505af11580156117a0573d6000803e3d6000fd5b505050505b6001600160a01b0382166000818152600260208181526040808420865181559186015160018301558581015191909201805460ff1916911515919091179055517fddb6012116e51abf5436d956a4f0ebd927e92c576ff96d7918290c8782291e3e9190a2505b5043600355565b60005460ff166118345760405162461bcd60e51b815260040161064f90613661565b60075460ff166118565760405162461bcd60e51b815260040161064f906135fc565b6006546118635760146006555b600854611871576170806008555b60085481516040015143910111801561189557504360085482602001516040015101115b6118b15760405162461bcd60e51b815260040161064f90613c7e565b8060200151602001518160000151602001511480156118df5750806020015160600151816000015160600151145b156118fc5760405162461bcd60e51b815260040161064f90613877565b80516040810151905110801561191b5750602081015160408101519051105b6119375760405162461bcd60e51b815260040161064f906137f9565b60208101515181515110801561195c5750806000015160400151816020015160400151105b8061198757508051516020820151511080156119875750806020015160400151816000015160400151105b806119a15750806020015160400151816000015160400151145b6119bd5760405162461bcd60e51b815260040161064f906136e3565b604080820151905163ea321e4960e01b81526110009163ea321e49916119e6919060040161356c565b60206040518083038186803b1580156119fe57600080fd5b505afa158015611a12573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3691906132a7565b611a525760405162461bcd60e51b815260040161064f906139d9565b611a6481600001518260400151612722565b8015611a7d5750611a7d81602001518260400151612722565b611a995760405162461bcd60e51b815260040161064f9061379a565b6060806110006001600160a01b0316633b071dcc6040518163ffffffff1660e01b815260040160006040518083038186803b158015611ad757600080fd5b505afa158015611aeb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611b1391908101906131e4565b9150915060005b8151811015611c5057611b44828281518110611b3257fe5b602002602001015185604001516128fa565b15611c48576006546040516309a99b4f60e41b815260646110028031909302049190639a99b4f090611b7c9033908590600401613548565b602060405180830381600087803b158015611b9657600080fd5b505af1158015611baa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bce9190613452565b506110006001600160a01b03166335409f7f858481518110611bec57fe5b60200260200101516040518263ffffffff1660e01b8152600401611c109190613534565b600060405180830381600087803b158015611c2a57600080fd5b505af1158015611c3e573d6000803e3d6000fd5b5050505050611c50565b600101611b1a565b5060408084015190516317b4f35360e01b8152600091612002916317b4f35391611c7c9160040161356c565b60206040518083038186803b158015611c9457600080fd5b505afa158015611ca8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ccc919061319d565b6001600160a01b031614611d3a576040808401519051630e9fbf5160e01b815261200291630e9fbf5191611d03919060040161356c565b600060405180830381600087803b158015611d1d57600080fd5b505af1158015611d31573d6000803e3d6000fd5b50505050610d21565b6120006001600160a01b031663f7a251d7600b611d5a866040015161295e565b60006040518463ffffffff1660e01b8152600401611d7a93929190613d75565b600060405180830381600087803b158015611d9457600080fd5b505af1158015611da8573d6000803e3d6000fd5b505050506000611dbd84604001516000612999565b60405190915081907f7b78aadacff901d8b63d0dba4f86283d4db8aef27f9ed70413dd860f1c9532b690600090a250505050565b61100381565b601481565b61200481565b60005460ff1615611e255760405162461bcd60e51b815260040161064f90613ae2565b603260045560966005556000805460ff19166001179055565b601181565b61100081565b600381565b3361100014611e6f5760405162461bcd60e51b815260040161064f906138a4565b60005460ff16611e915760405162461bcd60e51b815260040161064f90613661565b600154611e9d57612295565b600154600090600019015b808211612269576000805b82841015611fcc57611ec3612f68565b6002600060018781548110611ed457fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff161515908201526005549091506004900481602001511115611fb657600460055481611f4157fe5b04816020015103816020018181525050806002600060018881548110611f6357fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208351815591830151600183015591909101516002909101805460ff1916911515919091179055611fc0565b6001925050611fcc565b50836001019350611eb3565b82841161216357611fdb612f68565b6002600060018681548110611fec57fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff1615159082015260055490915060049004816020015111156120d45760046005548161205957fe5b0481602001510381602001818152505080600260006001878154811061207b57fe5b6000918252602080832091909101546001600160a01b03168352828101939093526040918201902083518155918301516001808401919091559201516002909101805460ff191691151591909117905591506121639050565b60026000600186815481106120e557fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff1916905580548061212957fe5b600082815260209020810160001990810180546001600160a01b0319169055019055836121565750612163565b5060001990920191611fcc565b81801561216d5750805b1561224c57600260006001868154811061218357fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff191690558054849081106121ca57fe5b600091825260209091200154600180546001600160a01b0390921691869081106121f057fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600180548061222957fe5b600082815260209020810160001990810180546001600160a01b03191690550190555b82612258575050612269565b505060019091019060001901611ea8565b6040517fcfdb3b6ccaeccbdc68be3c59c840e3b3c90f0a7c491f5fff1cf56cfda200dd9c90600090a150505b565b61100481565b60606122b06122ab836129b5565b6122b8565b90505b919050565b6060815160011480156122ea5750607f60f81b826000815181106122d857fe5b01602001516001600160f81b03191611155b156122f65750806122b3565b6122b06123088351608060ff16612a9b565b83612b6d565b606081516000141561232f57506040805160008152602081019091526122b3565b60608260008151811061233e57fe5b602002602001015190506000600190505b835181101561237f576123758285838151811061236857fe5b6020026020010151612b6d565b915060010161234f565b50612398612392825160c060ff16612a9b565b82612b6d565b9392505050565b60408051600480825260a08201909252606091829190816020015b60608152602001906001900390816123ba5790505090506123e3836001600160a01b0316612bea565b816000815181106123f057fe5b60200260200101819052506124044361229d565b8160018151811061241157fe5b6020908102919091010152612426603861229d565b8160028151811061243357fe5b60200260200101819052506124474261229d565b8160038151811061245457fe5b60200260200101819052506123988161230e565b612470612f8b565b600061247a612f8b565b612482612f9d565b61249361248e86612c0d565b612c32565b90506000805b6124a283612c7c565b156124db57806124ce576124bd6124b884612c9d565b612ceb565b63ffffffff168452600191506124d3565b6124db565b600101612499565b5091935090915050915091565b6040516375cc7d8960e01b8152612002906375cc7d899061250d908590600401613534565b600060405180830381600087803b15801561252757600080fd5b505af1925050508015612538575060015b610d5c576040516000815260443d1015612554575060006125f1565b60046000803e60005160e01c6308c379a081146125755760009150506125f1565b60043d036004833e81513d602482011167ffffffffffffffff821117156125a1576000925050506125f1565b808301805167ffffffffffffffff8111156125c35760009450505050506125f1565b8060208301013d86018111156125e1576000955050505050506125f1565b601f01601f191660405250925050505b806125fc5750612633565b826001600160a01b0316600080516020613e52833981519152838360405161262592919061357f565b60405180910390a250612696565b3d80801561265d576040519150601f19603f3d011682016040523d82523d6000602084013e612662565b606091505b50826001600160a01b0316600080516020613e52833981519152838360405161268c92919061357f565b60405180910390a2505b610d5c565b6000816040516020016126ae9190613518565b60405160208183030381529060405280519060200120836040516020016126d59190613518565b604051602081830303815290604052805190602001201490505b92915050565b015190565b8082015160009060ff81161561271457600191508161271a565b60009150815b505092915050565b60408051600480825260a0820190925260009160609190816020015b606081526020019060019003908161273e575050604080516020808252818301909252919250606091908082018180368337019050509050612783856000015161229d565b8260008151811061279057fe5b60200260200101819052506127ab6020866020015183612d6d565b6127b4816122b8565b826001815181106127c157fe5b60200260200101819052506127d9856040015161229d565b826002815181106127e657fe5b60200260200101819052506128016020866060015183612d6d565b61280a816122b8565b8260038151811061281757fe5b602002602001018190525061283d60206128308461230e565b8051906020012083612d6d565b6040805160b080825260e0820190925260609160208201818036833701905050905061286d818360006020612d7d565b61287f81876080015160206060612d7d565b61288d818660806030612d7d565b604080516001808252818301909252606091602082018180368337019050509050815160016020830182602086016066600019fa6128ca57600080fd5b5060016128d8826000612dd0565b60ff16146128ed5760009450505050506126ef565b5060019695505050505050565b8151815160009160019181148083146129165760009250612954565b600160208701838101602088015b60028483851001141561294f5780518351146129435760009650600093505b60209283019201612924565b505050505b5090949350505050565b60408051600480825260a08201909252606091829190816020015b60608152602001906001900390816129795790505090506123e3836122b8565b600081602001835110156129ac57600080fd5b50016020015190565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166129f957506018612a1d565b6fffffffffffffffffffffffffffffffff198416612a1957506010612a1d565b5060005b6020811015612a5357818181518110612a3257fe5b01602001516001600160f81b03191615612a4b57612a53565b600101612a1d565b60008160200390506060816040519080825280601f01601f191660200182016040528015612a88576020820181803683370190505b5080830196909652508452509192915050565b6060680100000000000000008310612ac55760405162461bcd60e51b815260040161064f906137d1565b60408051600180825281830190925260609160208201818036833701905050905060378411612b1f5782840160f81b81600081518110612b0157fe5b60200101906001600160f81b031916908160001a90535090506126ef565b6060612b2a856129b5565b90508381510160370160f81b82600081518110612b4357fe5b60200101906001600160f81b031916908160001a905350612b648282612b6d565b95945050505050565b6060806040519050835180825260208201818101602087015b81831015612b9e578051835260209283019201612b86565b50855184518101855292509050808201602086015b81831015612bcb578051835260209283019201612bb3565b508651929092011591909101601f01601f191660405250905092915050565b60408051600560a21b8318601482015260348101909152606090612398816122b8565b612c15612fbd565b506040805180820190915281518152602082810190820152919050565b612c3a612f9d565b612c4382612dec565b612c4c57600080fd5b6000612c5b8360200151612e26565b60208085015160408051808201909152868152920190820152915050919050565b6000612c86612fbd565b505080518051602091820151919092015191011190565b612ca5612fbd565b612cae82612c7c565b612cb757600080fd5b60208201516000612cc782612e89565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590612d0057508151602110155b612d0957600080fd5b6000612d188360200151612e26565b90508083600001511015612d3e5760405162461bcd60e51b815260040161064f90613b3f565b825160208085015183018051928490039291831015612d6457826020036101000a820491505b50949350505050565b9091018181526020918201910152565b60005b81811015610d1e57838181518110612d9457fe5b602001015160f81c60f81b858480600101955081518110612db157fe5b60200101906001600160f81b031916908160001a905350600101612d80565b60008160010183511015612de357600080fd5b50016001015190565b8051600090612dfd575060006122b3565b6020820151805160001a9060c0821015612e1c576000925050506122b3565b5060019392505050565b8051600090811a6080811015612e405760009150506122b3565b60b8811080612e5b575060c08110801590612e5b575060f881105b15612e6a5760019150506122b3565b60c0811015612e7e5760b5190190506122b3565b60f5190190506122b3565b80516000908190811a6080811015612ea45760019150612f61565b60b8811015612eb957607e1981019150612f61565b60c0811015612f0a57600060b78203600186019550806020036101000a865104915060018101820193505080831015612f045760405162461bcd60e51b815260040161064f906138f4565b50612f61565b60f8811015612f1f5760be1981019150612f61565b600060f78203600186019550806020036101000a86510491506001810182019350508083101561271a5760405162461bcd60e51b815260040161064f906138f4565b5092915050565b604051806060016040528060008152602001600081526020016000151581525090565b60408051602081019091526000815290565b6040518060400160405280612fb0612fbd565b8152602001600081525090565b604051806040016040528060008152602001600081525090565b600082601f830112612fe7578081fd5b8151612ffa612ff582613dc8565b613da1565b818152915060208083019084810160005b84811015613070578151870188603f82011261302657600080fd5b83810151613036612ff582613de8565b81815260408b8184860101111561304c57600080fd5b61305b83888401838701613e0c565b5086525050928201929082019060010161300b565b505050505092915050565b60008083601f84011261308c578182fd5b50813567ffffffffffffffff8111156130a3578182fd5b6020830191508360208285010111156130bb57600080fd5b9250929050565b600082601f8301126130d2578081fd5b81356130e0612ff582613de8565b91508082528360208285010111156130f757600080fd5b8060208401602084013760009082016020015292915050565b600060a08284031215613121578081fd5b61312b60a0613da1565b905081358152602082013560208201526040820135604082015260608201356060820152608082013567ffffffffffffffff81111561316957600080fd5b613175848285016130c2565b60808301525092915050565b600060208284031215613192578081fd5b813561239881613e3c565b6000602082840312156131ae578081fd5b815161239881613e3c565b600080604083850312156131cb578081fd5b82356131d681613e3c565b946020939093013593505050565b600080604083850312156131f6578182fd5b825167ffffffffffffffff8082111561320d578384fd5b81850186601f82011261321e578485fd5b8051925061322e612ff584613dc8565b80848252602080830192508084018a82838902870101111561324e578889fd5b8894505b8685101561327957805161326581613e3c565b845260019490940193928101928101613252565b508801519096509350505080821115613290578283fd5b5061329d85828601612fd7565b9150509250929050565b6000602082840312156132b8578081fd5b81518015158114612398578182fd5b600080604083850312156132d9578182fd5b823567ffffffffffffffff808211156132f0578384fd5b6132fc868387016130c2565b93506020850135915080821115613311578283fd5b5061329d858286016130c2565b60008060008060408587031215613333578182fd5b843567ffffffffffffffff8082111561334a578384fd5b6133568883890161307b565b9096509450602087013591508082111561336e578384fd5b5061337b8782880161307b565b95989497509550505050565b600060208284031215613398578081fd5b813567ffffffffffffffff808211156133af578283fd5b818401606081870312156133c1578384fd5b6133cb6060613da1565b92508035828111156133db578485fd5b6133e787828401613110565b8452506020810135828111156133fb578485fd5b61340787828401613110565b60208501525060408101358281111561341e578485fd5b61342a878284016130c2565b6040850152509195945050505050565b60006020828403121561344b578081fd5b5035919050565b600060208284031215613463578081fd5b5051919050565b60008060006040848603121561347e578081fd5b833560ff8116811461348e578182fd5b9250602084013567ffffffffffffffff8111156134a9578182fd5b6134b58682870161307b565b9497909650939450505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008151808452613504816020860160208601613e0c565b601f01601f19169290920160200192915050565b6000825161352a818460208701613e0c565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b60006020825261239860208301846134ec565b60008382526040602083015261359860408301846134ec565b949350505050565b6000604082526135b46040830186886134c2565b82810360208401526135c78185876134c2565b979650505050505050565b60208082526010908201526f195d9a59195b98d9481d1bdbc81bdb1960821b604082015260600190565b6020808252818101527f6d616c6963696f757320766f746520736c617368206e6f7420656e61626c6564604082015260600190565b6020808252601690820152751d985b1a59185d1bdc881b9bdd081b5a59dc985d195960521b604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252602b908201527f746865206d616c6963696f757320766f746520736c6173682073636f7065206f60408201526a7574206f662072616e676560a81b606082015260800190565b6020808252601a908201527f6e6f2076696f6c6174696f6e206f6620766f74652072756c6573000000000000604082015260600190565b6020808252818101527f7468652066656c6f6e795468726573686f6c64206f7574206f662072616e6765604082015260600190565b6020808252602b908201527f6c656e677468206f6620656e61626c654d616c6963696f7573566f7465536c6160408201526a0e6d040dad2e6dac2e8c6d60ab1b606082015260800190565b60208082526017908201527f766572696679207369676e6174757265206661696c6564000000000000000000604082015260600190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526019908201527f7372634e756d20626967676572207468616e207461724e756d00000000000000604082015260600190565b60208082526027908201527f6c656e677468206f66206d697364656d65616e6f725468726573686f6c64206d6040820152660d2e6dac2e8c6d60cb1b606082015260800190565b60208082526013908201527274776f206964656e746963616c20766f74657360681b604082015260600190565b60208082526030908201527f746865206d6573736167652073656e646572206d7573742062652076616c696460408201526f185d1bdc94d95d0818dbdb9d1c9858dd60821b606082015260800190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b60208082526023908201527f6c656e677468206f662066656c6f6e79536c61736853636f7065206d69736d616040820152620e8c6d60eb1b606082015260800190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b60208082526029908201527f6c656e677468206f662066656c6f6e79536c617368526577617264526174696f604082015268040dad2e6dac2e8c6d60bb1b606082015260800190565b6020808252601590820152741d9bdd195059191c881a5cc81b9bdd08199bdd5b99605a1b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526022908201527f6c656e677468206f662066656c6f6e795468726573686f6c64206d69736d61746040820152610c6d60f31b606082015260800190565b6020808252602a908201527f7468652066656c6f6e7920736c6173682072657761726420726174696f206f7560408201526974206f662072616e676560b01b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b6020808252600c908201526b32b6b83a3c903432b0b232b960a11b604082015260600190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526025908201527f746865206d697364656d65616e6f725468726573686f6c64206f7574206f662060408201526472616e676560d81b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b6020808252601490820152731d185c99d95d08189b1bd8dac81d1bdbc81bdb1960621b604082015260600190565b6020808252601e908201527f7265636569766520756e65787065637465642073796e207061636b6167650000604082015260600190565b6020808252818101527f63616e206e6f7420736c61736820747769636520696e206f6e6520626c6f636b604082015260600190565b61ffff91909116815260200190565b90815260200190565b918252602082015260400190565b92835260208301919091521515604082015260600190565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff8516825260606020830152613d9160608301856134ec565b9050826040830152949350505050565b60405181810167ffffffffffffffff81118282101715613dc057600080fd5b604052919050565b600067ffffffffffffffff821115613dde578081fd5b5060209081020190565b600067ffffffffffffffff821115613dfe578081fd5b50601f01601f191660200190565b60005b83811015613e27578181015183820152602001613e0f565b83811115613e36576000848401525b50505050565b6001600160a01b0381168114610bd957600080fdfed7bc86ff5d08c8ab043edec743302aba2520e6635172a428bc956721db9e2d1ca164736f6c6343000604000a" + }, + "0x0000000000000000000000000000000000001004": { + "balance": "0x0", + "code": "0x6080604052600436106104405760003560e01c80639509b98011610234578063c81b16621161012e578063ebf71d53116100b6578063fb063e8f1161007a578063fb063e8f146110d3578063fc1a598f146110e8578063fc3e590814610cca578063fd6a68791461111b578063ff9c0027146108a057610488565b8063ebf71d531461106a578063f01484721461107f578063f1fad10414611094578063f9a2bbc7146110a9578063fa9e9159146110be57610488565b8063dc927faf116100fd578063dc927faf14610fce578063df8079e914610fe3578063e04c83a714610ff8578063e1c7392a14611022578063e8f35cea1461103757610488565b8063c81b166214610ef9578063c8509d8114610f0e578063cf41984414610f93578063d9e6dae91461080d57610488565b8063aa7415f5116101bc578063b99328c511610180578063b99328c514610e30578063b9fd21e314610e69578063ba35ead614610e7e578063bbface1f14610e93578063bd46646114610ec657610488565b8063aa7415f514610cdf578063aa82dce114610d26578063aad5606314610d3b578063ab51bb9614610d50578063ac43175114610d6557610488565b80639dc09262116102035780639dc0926214610c76578063a1a11bf514610c8b578063a496fba214610ca0578063a78abc1614610cb5578063a7c9f02d14610cca57610488565b80639509b98014610bda57806396713da914610c135780639a854bbd14610c285780639a99b4f014610c3d57610488565b806359b9278911610345578063727be1f8116102cd578063831d65d111610291578063831d65d114610ac85780638525db0314610b4d5780638b87b21f146107625780638eff336c14610b8657806393ab703f14610bc557610488565b8063727be1f814610a2057806375d47a0a14610a4a5780637942fd0514610a5f578063799758b914610a745780637e434d5414610ab357610488565b80636e056520116103145780636e056520146108b55780636e47b482146109e157806370fd5bad146108a0578063718a8aa8146109f657806371d3086314610a0b57610488565b806359b92789146108615780635d499b1b1461088b578063613684751461080d57806366dea52a146108a057610488565b80633fd8b02f116103c85780634a3acdf4116103975780634a3acdf4146107f85780634bf6c8821461080d57806350432d321461082257806351b4dce31461083757806351e806721461084c57610488565b80633fd8b02f1461078d57806343756e5c146107a257806343a368b9146107b7578063493279b1146107cc57610488565b8063149d14d91161040f578063149d14d91461062157806328087028146106485780632ae454831461065d5780633d713223146106b15780633dffc3871461076257610488565b80630bee7a671461048d5780630e2374a5146104bb5780631182b875146104ec57806312234582146105e657610488565b36610488573415610486576040805133815234602082015281517f6c98249d85d88c3753a04a22230f595e4dc8d3dc86c34af35deeeedc861b89db929181900390910190a15b005b600080fd5b34801561049957600080fd5b506104a2611130565b6040805163ffffffff9092168252519081900360200190f35b3480156104c757600080fd5b506104d0611135565b604080516001600160a01b039092168252519081900360200190f35b3480156104f857600080fd5b506105716004803603604081101561050f57600080fd5b60ff8235169190810190604081016020820135600160201b81111561053357600080fd5b82018360208201111561054557600080fd5b803590602001918460018302840111600160201b8311171561056657600080fd5b50909250905061113b565b6040805160208082528351818301528351919283929083019185019080838360005b838110156105ab578181015183820152602001610593565b50505050905090810190601f1680156105d85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156105f257600080fd5b506104866004803603604081101561060957600080fd5b506001600160a01b0381358116916020013516611269565b34801561062d57600080fd5b50610636611363565b60408051918252519081900360200190f35b34801561065457600080fd5b506104d0611369565b34801561066957600080fd5b506106986004803603604081101561068057600080fd5b506001600160a01b038135811691602001351661136f565b6040805192835260208301919091528051918290030190f35b3480156106bd57600080fd5b506104d0600480360360208110156106d457600080fd5b810190602081018135600160201b8111156106ee57600080fd5b82018360208201111561070057600080fd5b803590602001918460018302840111600160201b8311171561072157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611393945050505050565b34801561076e57600080fd5b506107776113b7565b6040805160ff9092168252519081900360200190f35b34801561079957600080fd5b506106366113bc565b3480156107ae57600080fd5b506104d06113c2565b3480156107c357600080fd5b506106366113c8565b3480156107d857600080fd5b506107e16113d4565b6040805161ffff9092168252519081900360200190f35b34801561080457600080fd5b506106366113d9565b34801561081957600080fd5b506107776113df565b34801561082e57600080fd5b506106366113e4565b34801561084357600080fd5b506104d06113ef565b34801561085857600080fd5b506104d06113f5565b34801561086d57600080fd5b506104d06004803603602081101561088457600080fd5b50356113fb565b34801561089757600080fd5b50610636611416565b3480156108ac57600080fd5b5061077761141f565b6109cd600480360360808110156108cb57600080fd5b810190602081018135600160201b8111156108e557600080fd5b8201836020820111156108f757600080fd5b803590602001918460208302840111600160201b8311171561091857600080fd5b919390929091602081019035600160201b81111561093557600080fd5b82018360208201111561094757600080fd5b803590602001918460208302840111600160201b8311171561096857600080fd5b919390929091602081019035600160201b81111561098557600080fd5b82018360208201111561099757600080fd5b803590602001918460208302840111600160201b831117156109b857600080fd5b91935091503567ffffffffffffffff16611424565b604080519115158252519081900360200190f35b3480156109ed57600080fd5b506104d06118f9565b348015610a0257600080fd5b506107776118ff565b348015610a1757600080fd5b50610636611904565b348015610a2c57600080fd5b506109cd60048036036020811015610a4357600080fd5b503561190a565b348015610a5657600080fd5b506104d061198b565b348015610a6b57600080fd5b50610777611991565b348015610a8057600080fd5b5061048660048036036060811015610a9757600080fd5b508035906001600160a01b036020820135169060400135611996565b348015610abf57600080fd5b506104d0611c46565b348015610ad457600080fd5b5061048660048036036040811015610aeb57600080fd5b60ff8235169190810190604081016020820135600160201b811115610b0f57600080fd5b820183602082011115610b2157600080fd5b803590602001918460018302840111600160201b83111715610b4257600080fd5b509092509050611c4c565b348015610b5957600080fd5b5061048660048036036040811015610b7057600080fd5b50803590602001356001600160a01b0316611d94565b348015610b9257600080fd5b5061048660048036036060811015610ba957600080fd5b508035906001600160a01b036020820135169060400135611efd565b348015610bd157600080fd5b50610636611f83565b348015610be657600080fd5b5061048660048036036040811015610bfd57600080fd5b506001600160a01b038135169060200135611f8a565b348015610c1f57600080fd5b50610777612147565b348015610c3457600080fd5b5061063661214c565b348015610c4957600080fd5b5061063660048036036040811015610c6057600080fd5b506001600160a01b038135169060200135612158565b348015610c8257600080fd5b506104d0612296565b348015610c9757600080fd5b506104d061229c565b348015610cac57600080fd5b506107776122a2565b348015610cc157600080fd5b506109cd6122a7565b348015610cd657600080fd5b506107776122b0565b6109cd60048036036080811015610cf557600080fd5b5080356001600160a01b03908116916020810135909116906040810135906060013567ffffffffffffffff166122b5565b348015610d3257600080fd5b506104d0612335565b348015610d4757600080fd5b506104d061233b565b348015610d5c57600080fd5b506104a26122a2565b348015610d7157600080fd5b5061048660048036036040811015610d8857600080fd5b810190602081018135600160201b811115610da257600080fd5b820183602082011115610db457600080fd5b803590602001918460018302840111600160201b83111715610dd557600080fd5b919390929091602081019035600160201b811115610df257600080fd5b820183602082011115610e0457600080fd5b803590602001918460018302840111600160201b83111715610e2557600080fd5b509092509050612341565b348015610e3c57600080fd5b5061048660048036036040811015610e5357600080fd5b50803590602001356001600160a01b03166127e9565b348015610e7557600080fd5b50610636612869565b348015610e8a57600080fd5b50610636612873565b348015610e9f57600080fd5b5061063660048036036020811015610eb657600080fd5b50356001600160a01b0316612879565b348015610ed257600080fd5b5061063660048036036020811015610ee957600080fd5b50356001600160a01b031661288b565b348015610f0557600080fd5b506104d06128a6565b348015610f1a57600080fd5b5061048660048036036040811015610f3157600080fd5b60ff8235169190810190604081016020820135600160201b811115610f5557600080fd5b820183602082011115610f6757600080fd5b803590602001918460018302840111600160201b83111715610f8857600080fd5b5090925090506128ac565b348015610f9f57600080fd5b5061048660048036036040811015610fb657600080fd5b506001600160a01b038135811691602001351661297c565b348015610fda57600080fd5b506104d0612c50565b348015610fef57600080fd5b506104d0612c56565b34801561100457600080fd5b506109cd6004803603602081101561101b57600080fd5b5035612c5c565b34801561102e57600080fd5b50610486612cfc565b34801561104357600080fd5b506106366004803603602081101561105a57600080fd5b50356001600160a01b0316612d9c565b34801561107657600080fd5b50610777612dae565b34801561108b57600080fd5b50610777612db3565b3480156110a057600080fd5b50610777612db8565b3480156110b557600080fd5b506104d0612dbd565b3480156110ca57600080fd5b50610636612dc3565b3480156110df57600080fd5b50610636612dc9565b3480156110f457600080fd5b506105716004803603602081101561110b57600080fd5b50356001600160a01b0316612dd7565b34801561112757600080fd5b506104d0612efe565b606481565b61200181565b60005460609060ff16611183576040805162461bcd60e51b815260206004820152601960248201526000805160206153e4833981519152604482015290519081900360640190fd5b33612000146111c35760405162461bcd60e51b815260040180806020018281038252602f815260200180615392602f913960400191505060405180910390fd5b60ff8416600214156112155761120e83838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612f0492505050565b9050611262565b6040805162461bcd60e51b815260206004820152601860248201527f756e7265636f676e697a65642073796e207061636b6167650000000000000000604482015290519081900360640190fd5b9392505050565b33612000146112a95760405162461bcd60e51b815260040180806020018281038252602f815260200180615392602f913960400191505060405180910390fd5b6001600160a01b0380831660009081526007602090815260408083209385168352929052208054611314576040805162461bcd60e51b815260206004820152601060248201526f1b9bc81b1bd8dad95908185b5bdd5b9d60821b604482015290519081900360640190fd5b8054600082556040805182815290516001600160a01b0380861692908716917f152fb15aa5d80f843e1e4bd5f2fc9161714f169945024decec7e84fb910fdd519181900360200190a350505050565b60015490565b61200581565b60076020908152600092835260408084209091529082529020805460019091015482565b6020818101516000908152600490915260409020546001600160a01b03165b919050565b600181565b60055481565b61100181565b670de0b6b3a764000081565b603881565b61a8c081565b600881565b66071afd498d000081565b61200681565b61200081565b6000908152600460205260409020546001600160a01b031690565b6402540be40081565b600281565b6000805460ff1661146a576040805162461bcd60e51b815260206004820152601960248201526000805160206153e4833981519152604482015290519081900360640190fd5b8685146114a85760405162461bcd60e51b815260040180806020018281038252603b815260200180615357603b913960400191505060405180910390fd5b8683146114e65760405162461bcd60e51b815260040180806020018281038252603f815260200180615269603f913960400191505060405180910390fd5b426078018267ffffffffffffffff1610156115325760405162461bcd60e51b81526004018080602001828103825260248152602001806151e56024913960400191505060405180910390fd5b6402540be4003406156115765760405162461bcd60e51b815260040180806020018281038252604081526020018061545a6040913960400191505060405180910390fd5b604080518681526020808802820101909152859060009081906060908480156115a9578160200160208202803683370190505b50905060005b84811015611684576402540be4008b8b838181106115c957fe5b90506020020135816115d757fe5b06156116145760405162461bcd60e51b815260040180806020018281038252603c8152602001806152a8603c913960400191505060405180910390fd5b6116398b8b8381811061162357fe5b905060200201358561302890919063ffffffff16565b93506116656402540be4008c8c8481811061165057fe5b9050602002013561308290919063ffffffff16565b82828151811061167157fe5b60209081029190910101526001016115af565b506001546116a99061169c908663ffffffff6130c416565b849063ffffffff61302816565b3410156116e75760405162461bcd60e51b81526004018080602001828103825260568152602001806154046056913960600191505060405180910390fd5b6116f7348463ffffffff61311d16565b9150611701615023565b6040518060c001604052806221272160e91b60001b815260200160006001600160a01b031681526020018381526020018e8e808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505050908252506040805160208c810282810182019093528c82529283019290918d918d91829185019084908082843760009201919091525050509082525067ffffffffffffffff8916602090910152905061200063f7a251d760036117c58461315f565b6117da876402540be40063ffffffff61308216565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611838578181015183820152602001611820565b50505050905090810190601f1680156118655780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561188657600080fd5b505af115801561189a573d6000803e3d6000fd5b505060408051600081523360208201528082018890526060810187905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a15060019c9b505050505050505050505050565b61100581565b601081565b60015481565b6000336120011461194c5760405162461bcd60e51b815260040180806020018281038252603381526020018061513d6033913960400191505060405180910390fd5b8115611983576040516120019083156108fc029084906000818181858888f19350505050158015611981573d6000803e3d6000fd5b505b506001919050565b61100881565b600b81565b60005460ff166119db576040805162461bcd60e51b815260206004820152601960248201526000805160206153e4833981519152604482015290519081900360640190fd5b3361300014611a1b5760405162461bcd60e51b815260040180806020018281038252602b81526020018061523e602b913960400191505060405180910390fd5b677ce66c50e2840000811115611a625760405162461bcd60e51b81526004018080602001828103825260358152602001806152096035913960400191505060405180910390fd5b60006221272160e91b8414611bcc576000848152600460205260409020546001600160a01b031680611ad5576040805184815290516001600160a01b0386169187917fc16ee9013bf67c846d37735983debb0acc5b2d1419cb5931c9843ad4689505499181900360200190a35050611c41565b6001600160a01b038116600090815260026020526040902054611af8848261341a565b604080516370a0823160e01b8152306004820152905191945084916001600160a01b038516916370a08231916024808301926020929190829003018186803b158015611b4357600080fd5b505afa158015611b57573d6000803e3d6000fd5b505050506040513d6020811015611b6d57600080fd5b50511015611bb9576040805162461bcd60e51b8152602060048201526014602482015273696e73756666696369656e742062616c616e636560601b604482015290519081900360640190fd5b611bc58683858861345a565b5050611c3f565b611be1826402540be40063ffffffff6130c416565b905080471015611c2f576040805162461bcd60e51b8152602060048201526014602482015273696e73756666696369656e742062616c616e636560601b604482015290519081900360640190fd5b6000611c3d8582848761345a565b505b505b505050565b61200381565b60005460ff16611c91576040805162461bcd60e51b815260206004820152601960248201526000805160206153e4833981519152604482015290519081900360640190fd5b3361200014611cd15760405162461bcd60e51b815260040180806020018281038252602f815260200180615392602f913960400191505060405180910390fd5b60ff831660031415611d2157611d1c82828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506134f492505050565b611c41565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a1505050565b3361300014611dd45760405162461bcd60e51b815260040180806020018281038252602b81526020018061523e602b913960400191505060405180910390fd5b60006221272160e91b8314611e3f57506000828152600460205260409020546001600160a01b031680611e3f576040805162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a59081cde5b589bdb60921b604482015290519081900360640190fd5b6001600160a01b0380821660009081526007602090815260408083209386168352929052208054611eaa576040805162461bcd60e51b815260206004820152601060248201526f1b9bc81b1bd8dad95908185b5bdd5b9d60821b604482015290519081900360640190fd5b8054600082556040805182815290516001600160a01b03808716929086169188917f8041a9a8704332594e2884f5e0f942281cdd7611854c365b4d0aa70b2295d6b6919081900360200190a45050505050565b3361100814611f3d5760405162461bcd60e51b81526004018080602001828103825260238152602001806153c16023913960400191505060405180910390fd5b600083815260046020908152604080832080546001600160a01b039096166001600160a01b03199096168617905593825260038152838220949094556002909352912055565b62093a8081565b81806001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b158015611fc457600080fd5b505afa158015611fd8573d6000803e3d6000fd5b505050506040513d6020811015611fee57600080fd5b50516001600160a01b0316331461204c576040805162461bcd60e51b815260206004820152601860248201527f6e6f74206f776e6572206f6620424550323020746f6b656e0000000000000000604482015290519081900360640190fd5b6000821161209a576040805162461bcd60e51b81526020600482015260166024820152751e995c9bc81b1a5b5a5d081b9bdd08185b1b1bddd95960521b604482015290519081900360640190fd5b6001600160a01b0383166000908152600360205260409020546120f0576040805162461bcd60e51b81526020600482015260096024820152681b9bdd08189bdd5b9960ba1b604482015290519081900360640190fd5b6001600160a01b038316600081815260066020908152604091829020859055815185815291513393927f9df3a90730dbf23b5cc18dbbd5f4af3fa94a0dffb6ff6841f98a9a9a6ac626a892908290030190a3505050565b600981565b677ce66c50e284000081565b6000805460ff1661219e576040805162461bcd60e51b815260206004820152601960248201526000805160206153e4833981519152604482015290519081900360640190fd5b33611005146121de5760405162461bcd60e51b815260040180806020018281038252602f815260200180615170602f913960400191505060405180910390fd5b60004783106121ed57476121ef565b825b9050670de0b6b3a764000081111561220b576000915050612290565b801561228d576040516001600160a01b0385169082156108fc029083906000818181858888f19350505050158015612247573d6000803e3d6000fd5b50604080516001600160a01b03861681526020810183905281517ff8b71c64315fc33b2ead2adfa487955065152a8ac33d9d5193aafd7f45dc15a0929181900390910190a15b90505b92915050565b61100781565b61100681565b600081565b60005460ff1681565b600381565b6000805460ff166122fb576040805162461bcd60e51b815260206004820152601960248201526000805160206153e4833981519152604482015290519081900360640190fd5b6040805162461bcd60e51b815260206004820152600a60248201526919195c1c9958d85d195960b21b604482015290519081900360640190fd5b61200281565b61300081565b33611007146123815760405162461bcd60e51b815260040180806020018281038252602e815260200180615305602e913960400191505060405180910390fd5b602081146123d6576040805162461bcd60e51b815260206004820152601b60248201527f65787065637465642076616c7565206c656e6774682069732033320000000000604482015290519081900360640190fd5b606084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8801819004810282018101909252868152939450606093925086915085908190840183828082843760009201919091525050505060208301519091506772656c617946656560c01b8114156124de576020820151670de0b6b3a7640000811180159061248557506402540be4008106155b6124d6576040805162461bcd60e51b815260206004820152601960248201527f7468652072656c6179466565206f7574206f662072616e676500000000000000604482015290519081900360640190fd5b600155612754565b61255287878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601781527f6c617267655472616e736665724c6f636b506572696f64000000000000000000602082015291506135509050565b156125ee57604080516020601f87018190048102820181019092528581526000916125959188888083850183828082843760009201919091525061363792505050565b905062093a808111156125e6576040805162461bcd60e51b81526020600482015260146024820152736c6f636b20706572696f6420746f6f206c6f6e6760601b604482015290519081900360640190fd5b600555612754565b61265a87878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526015815274189b9893185c99d9551c985b9cd9995c931a5b5a5d605a1b602082015291506135509050565b1561271757604080516020601f870181900481028201810190925285815260009161269d9188888083850183828082843760009201919091525061363792505050565b905068056bc75e2d631000008110156126e75760405162461bcd60e51b815260040180806020018281038252602281526020018061519f6022913960400191505060405180910390fd5b6000805260066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f855612754565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a878787876040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050505050565b33611008146128295760405162461bcd60e51b81526004018080602001828103825260238152602001806153c16023913960400191505060405180910390fd5b600091825260046020908152604080842080546001600160a01b03191690556001600160a01b039290921683526003815281832083905560029052812055565b6221272160e91b81565b61c35081565b60026020526000908152604090205481565b6001600160a01b031660009081526003602052604090205490565b61100281565b60005460ff166128f1576040805162461bcd60e51b815260206004820152601960248201526000805160206153e4833981519152604482015290519081900360640190fd5b33612000146129315760405162461bcd60e51b815260040180806020018281038252602f815260200180615392602f913960400191505060405180910390fd5b60ff831660031415611d2157611d1c82828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061363c92505050565b60085460ff16600214156129c8576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b6008805460ff191660021790556001600160a01b0380831660009081526007602090815260408083209385168352929052208054612a40576040805162461bcd60e51b815260206004820152601060248201526f1b9bc81b1bd8dad95908185b5bdd5b9d60821b604482015290519081900360640190fd5b8060010154421015612a99576040805162461bcd60e51b815260206004820152601760248201527f7374696c6c206f6e206c6f636b696e6720706572696f64000000000000000000604482015290519081900360640190fd5b805460008083556001600160a01b038516612b0c576040516001600160a01b038516906127109084906000818181858888f193505050503d8060008114612afc576040519150601f19603f3d011682016040523d82523d6000602084013e612b01565b606091505b505080915050612b9f565b846001600160a01b031663a9059cbb61c35086856040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b158015612b6f57600080fd5b5087f1158015612b83573d6000803e3d6000fd5b50505050506040513d6020811015612b9a57600080fd5b505190505b80612bf1576040805162461bcd60e51b815260206004820152601e60248201527f776974686472617720756e6c6f636b656420746f6b656e206661696c65640000604482015290519081900360640190fd5b836001600160a01b0316856001600160a01b03167f832fc3e25f2b3e6fb0eb59419a73cba405f2a249fce75f7e31ea5a457a0323f1846040518082815260200191505060405180910390a350506008805460ff19166001179055505050565b61100381565b61200481565b60003361200214612cb4576040805162461bcd60e51b815260206004820152601f60248201527f746865206d73672073656e646572206d757374206265207374616b6548756200604482015290519081900360640190fd5b814710612cf4576040516120029083156108fc029084906000818181858888f19350505050158015612cea573d6000803e3d6000fd5b50600190506113b2565b506000919050565b60005460ff1615612d54576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b66071afd498d000060019081556000808052600260205260127fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b55805460ff19169091179055565b60066020526000908152604090205481565b600481565b600581565b601181565b61100081565b61271081565b69021e19e0c9bab240000081565b6001600160a01b03811660009081526003602090815260409182902054825182815280840190935260609290918391906020820181803683375050506020810183905290506000805b60208160ff161015612e6757828160ff1681518110612e3b57fe5b01602001516001600160f81b03191615612e5a57816001019150612e5f565b612e67565b600101612e20565b5060608160ff166040519080825280601f01601f191660200182016040528015612e98576020820181803683370190505b50905060005b8260ff168160ff161015612ef457838160ff1681518110612ebb57fe5b602001015160f81c60f81b828260ff1681518110612ed557fe5b60200101906001600160f81b031916908160001a905350600101612e9e565b5095945050505050565b61100481565b6060612f0e61506f565b6000612f1984613733565b9150915080612f6f576040805162461bcd60e51b815260206004820152601f60248201527f756e7265636f676e697a6564207472616e73666572496e207061636b61676500604482015290519081900360640190fd5b6000612f7a83613872565b905063ffffffff81161561300e576040808401516020808601516001600160a01b03166000908152600290915291822054612fb59190613bd8565b9050612fbf6150a4565b60405180608001604052808660000151815260200183815260200186608001516001600160a01b031681526020018463ffffffff16815250905061300281613c11565b955050505050506113b2565b505060408051600081526020810190915291506113b29050565b60008282018381101561228d576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600061228d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613ced565b6000826130d357506000612290565b828202828482816130e057fe5b041461228d5760405162461bcd60e51b81526004018080602001828103825260218152602001806152e46021913960400191505060405180910390fd5b600061228d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613d8f565b60408051600680825260e08201909252606091829190816020015b606081526020019060019003908161317a575050835190915061319c90613de9565b816000815181106131a957fe5b60200260200101819052506131ca83602001516001600160a01b0316613dfc565b816001815181106131d757fe5b60200260200101819052506000836040015151905060608160405190808252806020026020018201604052801561322257816020015b606081526020019060019003908161320d5790505b50905060005b8281101561326f576132508660400151828151811061324357fe5b6020026020010151613de9565b82828151811061325c57fe5b6020908102919091010152600101613228565b5061327981613e1f565b8360028151811061328657fe5b60200260200101819052506060826040519080825280602002602001820160405280156132c757816020015b60608152602001906001900390816132b25790505b50905060005b8381101561331d576132fe876060015182815181106132e857fe5b60200260200101516001600160a01b0316613dfc565b82828151811061330a57fe5b60209081029190910101526001016132cd565b5061332781613e1f565b8460038151811061333457fe5b602002602001018190525060608360405190808252806020026020018201604052801561337557816020015b60608152602001906001900390816133605790505b50905060005b848110156133b557613396886080015182815181106132e857fe5b8282815181106133a257fe5b602090810291909101015260010161337b565b506133bf81613e1f565b856004815181106133cc57fe5b60200260200101819052506133ee8760a0015167ffffffffffffffff16613de9565b856005815181106133fb57fe5b602002602001018190525061340f85613e1f565b979650505050505050565b600060088211156134435761343c836007198401600a0a63ffffffff6130c416565b9050612290565b61228d836008849003600a0a63ffffffff61308216565b6001600160a01b0380841660009081526007602090815260408083209385168352929052208054613491908463ffffffff61302816565b81554262093a80016001820181905560408051858152602081019290925280516001600160a01b03808616939088169289927f446d1aa056e7b903901f49880e9f252762c1b81dc4301cf28db6dae526497eaa9281900390910190a45050505050565b6134fc6150cb565b600061350783613ea9565b91509150806135475760405162461bcd60e51b81526004018080602001828103825260248152602001806153336024913960400191505060405180910390fd5b611c4182614074565b6000816040516020018082805190602001908083835b602083106135855780518252601f199092019160209182019101613566565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106135f35780518252601f1990920191602091820191016135d4565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b613644615023565b600061364f836144f8565b915091508061368f5760405162461bcd60e51b81526004018080602001828103825260248152602001806151c16024913960400191505060405180910390fd5b6136976150cb565b602080840180516001600160a01b0390811684526040808701518585015291511660009081526002909252812054905b846040015151811015613718576136f5856040015182815181106136e757fe5b60200260200101518361341a565b8560400151828151811061370557fe5b60209081029190910101526001016136c7565b506080840151604083015260056060830152611c3d82614074565b61373b61506f565b600061374561506f565b61374d615102565b61375e6137598661475c565b614781565b90506000805b61376d836147cb565b15613865578061378f57613788613783846147ec565b61483a565b845261385d565b80600114156137bc576137a96137a4846147ec565b6148f1565b6001600160a01b0316602085015261385d565b80600214156137db576137d1613783846147ec565b604085015261385d565b8060031415613803576137f06137a4846147ec565b6001600160a01b0316606085015261385d565b806004141561382b576138186137a4846147ec565b6001600160a01b0316608085015261385d565b806005141561385857613840613783846147ec565b67ffffffffffffffff1660a08501526001915061385d565b613865565b600101613764565b5091935090915050915091565b60208101516000906001600160a01b03166139b6578160a0015167ffffffffffffffff164211156138a5575060016113b2565b81604001514710156138b9575060036113b2565b6138c28261490b565b61393757606082015160408084015190516000926001600160a01b0316916127109184818181858888f193505050503d806000811461391d576040519150601f19603f3d011682016040523d82523d6000602084013e613922565b606091505b50509050806139355750600490506113b2565b505b7f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5982602001518360600151846040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a15060006113b2565b8160a0015167ffffffffffffffff164211156139d4575060016113b2565b81516020808401516001600160a01b031660009081526003909152604090205414613a01575060026113b2565b602080830151604080516370a0823160e01b815230600482015290516000936001600160a01b03909316926370a082319261c3509260248083019392829003018187803b158015613a5157600080fd5b5086fa158015613a65573d6000803e3d6000fd5b50505050506040513d6020811015613a7c57600080fd5b50516040840151909150811015613a975750600390506113b2565b613aa08361490b565b613b5757600083602001516001600160a01b031663a9059cbb61c350866060015187604001516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b158015613b1557600080fd5b5087f1158015613b29573d6000803e3d6000fd5b50505050506040513d6020811015613b4057600080fd5b5051905080613b555750600591506113b29050565b505b7f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5983602001518460600151856040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a150600090506113b2565b60006008821115613bfa5761343c836007198401600a0a63ffffffff61308216565b61228d836008849003600a0a63ffffffff6130c416565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081613c2c5750508351909150613c4e90613de9565b81600081518110613c5b57fe5b6020026020010181905250613c738360200151613de9565b81600181518110613c8057fe5b6020026020010181905250613ca183604001516001600160a01b0316613dfc565b81600281518110613cae57fe5b6020026020010181905250613ccc836060015163ffffffff16613de9565b81600381518110613cd957fe5b602002602001018190525061126281613e1f565b60008183613d795760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613d3e578181015183820152602001613d26565b50505050905090810190601f168015613d6b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581613d8557fe5b0495945050505050565b60008184841115613de15760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315613d3e578181015183820152602001613d26565b505050900390565b6060612290613df783614a79565b614b5f565b60408051600560a21b831860148201526034810190915260609061126281614b5f565b6060815160001415613e4057506040805160008152602081019091526113b2565b606082600081518110613e4f57fe5b602002602001015190506000600190505b8351811015613e9057613e8682858381518110613e7957fe5b6020026020010151614bb1565b9150600101613e60565b50611262613ea3825160c060ff16614c2e565b82614bb1565b613eb16150cb565b6000613ebb6150cb565b613ec3615102565b613ecf6137598661475c565b90506000805b613ede836147cb565b156138655780613f0457613ef46137a4846147ec565b6001600160a01b0316845261406c565b8060011415613fa5576060613f20613f1b856147ec565b614d26565b90508051604051908082528060200260200182016040528015613f4d578160200160208202803683370190505b50602086015260005b8151811015613f9e57613f7b828281518110613f6e57fe5b602002602001015161483a565b86602001518281518110613f8b57fe5b6020908102919091010152600101613f56565b505061406c565b8060021415614047576060613fbc613f1b856147ec565b90508051604051908082528060200260200182016040528015613fe9578160200160208202803683370190505b50604086015260005b8151811015613f9e5761401782828151811061400a57fe5b60200260200101516148f1565b8660400151828151811061402757fe5b6001600160a01b0390921660209283029190910190910152600101613ff2565b80600314156138585761405c613783846147ec565b63ffffffff166060850152600191505b600101613ed5565b80516001600160a01b031661429e5760005b816020015151811015614298576000826040015182815181106140a557fe5b60200260200101516001600160a01b0316612710846020015184815181106140c957fe5b60209081029190910101516040516000818181858888f193505050503d8060008114614111576040519150601f19603f3d011682016040523d82523d6000602084013e614116565b606091505b50509050806141d9577f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061415557fe5b60200260200101518560200151858151811061416d57fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a161428f565b7fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a83600001518460400151848151811061420f57fe5b60200260200101518560200151858151811061422757fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b50600101614086565b506144f5565b60005b8160200151518110156144f357600082600001516001600160a01b031663a9059cbb61c350856040015185815181106142d657fe5b6020026020010151866020015186815181106142ee57fe5b60200260200101516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b15801561434557600080fd5b5087f1158015614359573d6000803e3d6000fd5b50505050506040513d602081101561437057600080fd5b505190508015614434577fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a8360000151846040015184815181106143b057fe5b6020026020010151856020015185815181106143c857fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a16144ea565b7f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061446a57fe5b60200260200101518560200151858151811061448257fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b506001016142a1565b505b50565b614500615023565b600061450a615023565b614512615102565b61451e6137598661475c565b90506000805b61452d836147cb565b15613865578061454a57614543613783846147ec565b8452614754565b80600114156145725761455f6137a4846147ec565b6001600160a01b03166020850152614754565b8060021415614601576060614589613f1b856147ec565b905080516040519080825280602002602001820160405280156145b6578160200160208202803683370190505b50604086015260005b81518110156145fa576145d7828281518110613f6e57fe5b866040015182815181106145e757fe5b60209081029190910101526001016145bf565b5050614754565b8060031415614696576060614618613f1b856147ec565b90508051604051908082528060200260200182016040528015614645578160200160208202803683370190505b50606086015260005b81518110156145fa5761466682828151811061400a57fe5b8660600151828151811061467657fe5b6001600160a01b039092166020928302919091019091015260010161464e565b806004141561472b5760606146ad613f1b856147ec565b905080516040519080825280602002602001820160405280156146da578160200160208202803683370190505b50608086015260005b81518110156145fa576146fb82828151811061400a57fe5b8660800151828151811061470b57fe5b6001600160a01b03909216602092830291909101909101526001016146e3565b806005141561385857614740613783846147ec565b67ffffffffffffffff1660a0850152600191505b600101614524565b614764615122565b506040805180820190915281518152602082810190820152919050565b614789615102565b61479282614df7565b61479b57600080fd5b60006147aa8360200151614e31565b60208085015160408051808201909152868152920190820152915050919050565b60006147d5615122565b505080518051602091820151919092015191011190565b6147f4615122565b6147fd826147cb565b61480657600080fd5b6020820151600061481682614e94565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061484f57508151602110155b61485857600080fd5b60006148678360200151614e31565b905080836000015110156148c2576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b8251602080850151830180519284900392918310156148e857826020036101000a820491505b50949350505050565b805160009060151461490257600080fd5b6122908261483a565b600080805260066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f8541580156149445750600554155b156149865760008052600660205269021e19e0c9bab24000007f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f85561a8c06005555b6020808301516001600160a01b03166000908152600690915260409020548015806149b45750808360400151105b156149c35760009150506113b2565b6020808401516001600160a01b039081166000908152600783526040808220606088015190931682529190925290819020908401518154614a099163ffffffff61302816565b8155600554420160018201819055606085015160208087015160408089015181519081529283019490945283516001600160a01b039384169493909116927f3fb83143cd331170da18fb1e8564d97e8ec39264b6ecb1ba248ea7596ab07258928290030190a35060019392505050565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416614abd57506018614ae1565b6fffffffffffffffffffffffffffffffff198416614add57506010614ae1565b5060005b6020811015614b1757818181518110614af657fe5b01602001516001600160f81b03191615614b0f57614b17565b600101614ae1565b60008160200390506060816040519080825280601f01601f191660200182016040528015614b4c576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015614b915750607f60f81b82600081518110614b7f57fe5b01602001516001600160f81b03191611155b15614b9d5750806113b2565b612290614baf8351608060ff16614c2e565b835b6060806040519050835180825260208201818101602087015b81831015614be2578051835260209283019201614bca565b50855184518101855292509050808201602086015b81831015614c0f578051835260209283019201614bf7565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310614c7e576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b60408051600180825281830190925260609160208201818036833701905050905060378411614cd85782840160f81b81600081518110614cba57fe5b60200101906001600160f81b031916908160001a9053509050612290565b6060614ce385614a79565b90508381510160370160f81b82600081518110614cfc57fe5b60200101906001600160f81b031916908160001a905350614d1d8282614bb1565b95945050505050565b6060614d3182614df7565b614d3a57600080fd5b6000614d4583614fc7565b9050606081604051908082528060200260200182016040528015614d8357816020015b614d70615122565b815260200190600190039081614d685790505b5090506000614d958560200151614e31565b60208601510190506000805b84811015614dec57614db283614e94565b9150604051806040016040528083815260200184815250848281518110614dd557fe5b602090810291909101015291810191600101614da1565b509195945050505050565b8051600090614e08575060006113b2565b6020820151805160001a9060c0821015614e27576000925050506113b2565b5060019392505050565b8051600090811a6080811015614e4b5760009150506113b2565b60b8811080614e66575060c08110801590614e66575060f881105b15614e755760019150506113b2565b60c0811015614e895760b5190190506113b2565b60f5190190506113b2565b80516000908190811a6080811015614eaf5760019150614fc0565b60b8811015614ec457607e1981019150614fc0565b60c0811015614f3e57600060b78203600186019550806020036101000a865104915060018101820193505080831015614f38576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50614fc0565b60f8811015614f535760be1981019150614fc0565b600060f78203600186019550806020036101000a865104915060018101820193505080831015614fbe576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b8051600090614fd8575060006113b2565b60008090506000614fec8460200151614e31565b602085015185519181019250015b8082101561501a5761500b82614e94565b82019150826001019250614ffa565b50909392505050565b6040518060c001604052806000801916815260200160006001600160a01b03168152602001606081526020016060815260200160608152602001600067ffffffffffffffff1681525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b60408051608081018252600080825260208201819052918101829052606081019190915290565b604051806080016040528060006001600160a01b031681526020016060815260200160608152602001600063ffffffff1681525090565b6040518060400160405280615115615122565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe6f6e6c79207374616b696e672073797374656d20636f6e74726163742063616e2063616c6c20746869732066756e6374696f6e746865206d6573736167652073656e646572206d75737420626520696e63656e746976697a6520636f6e7472616374626e62206c61726765207472616e73666572206c696d697420746f6f20736d616c6c756e7265636f676e697a6564207472616e736665724f75742073796e207061636b61676565787069726554696d65206d7573742062652074776f206d696e75746573206c61746572616d6f756e7420697320746f6f206c617267652c20657863656564206d6178696d756d206265703220746f6b656e20616d6f756e74746865206d73672073656e646572206d75737420626520746f6b656e207265636f76657220706f7274616c4c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620726566756e644164647273696e76616c6964207472616e7366657220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374756e7265636f676e697a6564207472616e736665724f75742061636b207061636b6167654c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620616d6f756e7473746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d73672073656e646572206d75737420626520746f6b656e4d616e6167657274686520636f6e7472616374206e6f7420696e69742079657400000000000000726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e7366657220424e4220616d6f756e7420616e642072656c6179466565696e76616c696420726563656976656420424e4220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6ea164736f6c6343000604000a" + }, + "0x0000000000000000000000000000000000001007": { + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b506004361061021c5760003560e01c8063831d65d111610125578063ab51bb96116100ad578063df8079e91161007c578063df8079e914610615578063f1fad1041461061d578063f9a2bbc714610625578063fc3e59081461062d578063fd6a6879146106355761021c565b8063ab51bb9614610585578063c81b16621461058d578063c8509d8114610595578063dc927faf1461060d5761021c565b80639dc09262116100f45780639dc0926214610549578063a1a11bf514610551578063a78abc1614610559578063aa82dce114610575578063aad560631461057d5761021c565b8063831d65d1146103f857806388e4194e1461047257806396713da9146105395780639ab1a373146105415761021c565b80634bf6c882116101a857806370fd5bad1161017757806370fd5bad146103d0578063718a8aa8146103d857806375d47a0a146103e05780637942fd05146103e85780637e434d54146103f05761021c565b80634bf6c882146103b057806351b4dce3146103b857806351e80672146103c05780636e47b482146103c85761021c565b80633a21baae116101ef5780633a21baae1461035b5780633dffc3871461036357806343756e5c146103815780634900c4ea14610389578063493279b1146103915761021c565b80630bee7a67146102215780630e2374a5146102425780631182b875146102665780632808702814610353575b600080fd5b61022961063d565b6040805163ffffffff9092168252519081900360200190f35b61024a610642565b604080516001600160a01b039092168252519081900360200190f35b6102de6004803603604081101561027c57600080fd5b60ff8235169190810190604081016020820135600160201b8111156102a057600080fd5b8201836020820111156102b257600080fd5b803590602001918460018302840111600160201b831117156102d357600080fd5b509092509050610648565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610318578181015183820152602001610300565b50505050905090810190601f1680156103455780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61024a610737565b61022961073d565b61036b610742565b6040805160ff9092168252519081900360200190f35b61024a610747565b61036b61074d565b610399610752565b6040805161ffff9092168252519081900360200190f35b61036b610757565b61024a61075c565b61024a610762565b61024a610768565b61036b61076e565b61036b610773565b61024a610778565b61036b61077e565b61024a610783565b6104706004803603604081101561040e57600080fd5b60ff8235169190810190604081016020820135600160201b81111561043257600080fd5b82018360208201111561044457600080fd5b803590602001918460018302840111600160201b8311171561046557600080fd5b509092509050610789565b005b6104706004803603606081101561048857600080fd5b810190602081018135600160201b8111156104a257600080fd5b8201836020820111156104b457600080fd5b803590602001918460018302840111600160201b831117156104d557600080fd5b919390929091602081019035600160201b8111156104f257600080fd5b82018360208201111561050457600080fd5b803590602001918460018302840111600160201b8311171561052557600080fd5b9193509150356001600160a01b031661081b565b61036b610906565b61022961090b565b61024a610910565b61024a610916565b61056161091c565b604080519115158252519081900360200190f35b61024a610925565b61024a61092b565b61022961074d565b61024a610931565b610470600480360360408110156105ab57600080fd5b60ff8235169190810190604081016020820135600160201b8111156105cf57600080fd5b8201836020820111156105e157600080fd5b803590602001918460018302840111600160201b8311171561060257600080fd5b509092509050610937565b61024a6109ae565b61024a6109b4565b61036b6109ba565b61024a6109bf565b61036b6109c5565b61024a6109ca565b606481565b61200181565b6060336120001461068a5760405162461bcd60e51b815260040180806020018281038252602f81526020018061169d602f913960400191505060405180910390fd5b610692611638565b60006106d385858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506109d092505050565b91509150806106ef576106e66064610a96565b92505050610730565b60006106fa83610b00565b905063ffffffff811661072157505060408051600081526020810190915291506107309050565b61072a81610a96565b93505050505b9392505050565b61200581565b606681565b600181565b61100181565b600081565b603881565b600881565b61200681565b61200081565b61100581565b600281565b601081565b61100881565b600b81565b61200381565b33612000146107c95760405162461bcd60e51b815260040180806020018281038252602f81526020018061169d602f913960400191505060405180910390fd5b6040805162461bcd60e51b815260206004820152601e60248201527f7265636569766520756e65787065637465642061636b207061636b6167650000604482015290519081900360640190fd5b505050565b336120061461085b5760405162461bcd60e51b81526004018080602001828103825260318152602001806116cc6031913960400191505060405180910390fd5b610863611638565b604051806060016040528087878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505090825250604080516020601f8801819004810282018101909252868152918101919087908790819084018382808284376000920191909152505050908252506001600160a01b03841660209091015290506108fd81610b00565b50505050505050565b600981565b606581565b61100781565b61100681565b60005460ff1681565b61200281565b61300081565b61100281565b33612000146109775760405162461bcd60e51b815260040180806020018281038252602f81526020018061169d602f913960400191505060405180910390fd5b60405162461bcd60e51b81526004018080602001828103825260238152602001806116fd6023913960400191505060405180910390fd5b61100381565b61200481565b601181565b61100081565b600381565b61100481565b6109d8611638565b60006109e2611638565b6109ea611662565b6109fb6109f686610ea1565b610ec6565b90506000805b610a0a83610f10565b15610a895780610a2c57610a25610a2084610f31565b610f7f565b8452610a81565b8060011415610a4b57610a41610a2084610f31565b6020850152610a81565b8060021415610a7c57610a65610a6084610f31565b610ff8565b6001600160a01b0316604085015260019150610a81565b610a89565b600101610a01565b5091935090915050915091565b604080516001808252818301909252606091829190816020015b6060815260200190600190039081610ab0579050509050610ad68363ffffffff16611018565b81600081518110610ae357fe5b6020026020010181905250610af78161102b565b9150505b919050565b6000610b0f82604001516110b5565b610b7b57604080516020808252601c908201527f74686520746172676574206973206e6f74206120636f6e7472616374000000008183015290517f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb29181900360600190a1506065610afb565b81604001516001600160a01b031663ac431751836000015184602001516040518363ffffffff1660e01b8152600401808060200180602001838103835285818151815260200191508051906020019080838360005b83811015610be8578181015183820152602001610bd0565b50505050905090810190601f168015610c155780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b83811015610c48578181015183820152602001610c30565b50505050905090810190601f168015610c755780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015610c9657600080fd5b505af1925050508015610ca7575060015b610e99576040516000815260443d1015610cc357506000610d60565b60046000803e60005160e01c6308c379a08114610ce4576000915050610d60565b60043d036004833e81513d602482011167ffffffffffffffff82111715610d1057600092505050610d60565b808301805167ffffffffffffffff811115610d32576000945050505050610d60565b8060208301013d8601811115610d5057600095505050505050610d60565b601f01601f191660405250925050505b80610d6b5750610e0e565b7f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2816040518080602001828103825283818151815260200191508051906020019080838360005b83811015610dca578181015183820152602001610db2565b50505050905090810190601f168015610df75780820380516001836020036101000a031916815260200191505b509250505060405180910390a16066915050610afb565b3d808015610e38576040519150601f19603f3d011682016040523d82523d6000602084013e610e3d565b606091505b5060408051602080825283518183015283517f1279f84165b4fd69c35e1f338ff107231b036c655cd1688851e011ce617c4e8d938593928392918301919085019080838360008315610dca578181015183820152602001610db2565b506000919050565b610ea9611682565b506040805180820190915281518152602082810190820152919050565b610ece611662565b610ed7826110bb565b610ee057600080fd5b6000610eef83602001516110f5565b60208085015160408051808201909152868152920190820152915050919050565b6000610f1a611682565b505080518051602091820151919092015191011190565b610f39611682565b610f4282610f10565b610f4b57600080fd5b60208201516000610f5b82611158565b80830160209586015260408051808201909152908152938401919091525090919050565b8051606090610f8d57600080fd5b6000610f9c83602001516110f5565b83516040805191839003808352601f19601f8201168301602001909152919250606090828015610fd3576020820181803683370190505b5090506000816020019050610fef84876020015101828561128b565b50949350505050565b805160009060151461100957600080fd5b611012826112d6565b92915050565b60606110126110268361138b565b611471565b606081516000141561104c5750604080516000815260208101909152610afb565b60608260008151811061105b57fe5b602002602001015190506000600190505b835181101561109c576110928285838151811061108557fe5b60200260200101516114c3565b915060010161106c565b50610af76110af825160c060ff16611540565b826114c3565b3b151590565b80516000906110cc57506000610afb565b6020820151805160001a9060c08210156110eb57600092505050610afb565b5060019392505050565b8051600090811a608081101561110f576000915050610afb565b60b881108061112a575060c0811080159061112a575060f881105b15611139576001915050610afb565b60c081101561114d5760b519019050610afb565b60f519019050610afb565b80516000908190811a60808110156111735760019150611284565b60b881101561118857607e1981019150611284565b60c081101561120257600060b78203600186019550806020036101000a8651049150600181018201935050808310156111fc576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50611284565b60f88110156112175760be1981019150611284565b600060f78203600186019550806020036101000a865104915060018101820193505080831015611282576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b8061129557610816565b5b602081106112b5578251825260209283019290910190601f1901611296565b915181516020939093036101000a6000190180199091169216919091179052565b8051600090158015906112eb57508151602110155b6112f457600080fd5b600061130383602001516110f5565b9050808360000151101561135e576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015610fef57506020919091036101000a90049392505050565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166113cf575060186113f3565b6fffffffffffffffffffffffffffffffff1984166113ef575060106113f3565b5060005b60208110156114295781818151811061140857fe5b01602001516001600160f81b0319161561142157611429565b6001016113f3565b60008160200390506060816040519080825280601f01601f19166020018201604052801561145e576020820181803683370190505b5080830196909652508452509192915050565b6060815160011480156114a35750607f60f81b8260008151811061149157fe5b01602001516001600160f81b03191611155b156114af575080610afb565b6110126114c18351608060ff16611540565b835b6060806040519050835180825260208201818101602087015b818310156114f45780518352602092830192016114dc565b50855184518101855292509050808201602086015b81831015611521578051835260209283019201611509565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310611590576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b604080516001808252818301909252606091602082018180368337019050509050603784116115ea5782840160f81b816000815181106115cc57fe5b60200101906001600160f81b031916908160001a9053509050611012565b60606115f58561138b565b90508381510160370160f81b8260008151811061160e57fe5b60200101906001600160f81b031916908160001a90535061162f82826114c3565b95945050505050565b6040518060600160405280606081526020016060815260200160006001600160a01b031681525090565b6040518060400160405280611675611682565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d73672073656e646572206d75737420626520676f7665726e6f722074696d656c6f636b20636f6e74726163747265636569766520756e6578706563746564206661696c2061636b207061636b616765a164736f6c6343000604000a" + }, + "0x0000000000000000000000000000000000002000": { + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b50600436106103e65760003560e01c806374f079b81161020a578063c27cdcfb11610125578063df8079e9116100b8578063f1fad10411610087578063f1fad10414610bac578063f7a251d714610bb4578063f9a2bbc714610c2c578063fc3e590814610c34578063fd6a687914610c3c576103e6565b8063df8079e914610b74578063e1c7392a14610b7c578063e3b0480514610b84578063e6400bbe14610ba4576103e6565b8063d31f968d116100f4578063d31f968d14610b2d578063d76a867514610b5c578063dc40433114610b64578063dc927faf14610b6c576103e6565b8063c27cdcfb14610af5578063c780e9de14610b15578063c81b166214610b1d578063ccc108d714610b25576103e6565b80639dc092621161019d578063aad560631161016c578063aad5606314610a27578063ab51bb9614610a2f578063ac43175114610a37578063b0355f5b146107d6576103e6565b80639dc0926214610a07578063a1a11bf514610a0f578063a78abc1614610a17578063aa82dce114610a1f576103e6565b806384013b6a116101d957806384013b6a1461091c578063863fe4ab146109f75780638cc8f561146108e457806396713da9146109ff576103e6565b806374f079b8146108fc57806375d47a0a146109045780637942fd051461090c5780637e434d5414610914576103e6565b806343756e5c116103055780636a3cb34d116102985780636e47a51a116102675780636e47a51a146108bc5780636e47b482146108dc57806370fd5bad146108e4578063718a8aa8146108ec578063719482d5146108f4576103e6565b80636a3cb34d146108645780636bacff2c1461086c5780636c46aa68146108645780636de380bd146108b4576103e6565b806351e80672116102d457806351e806721461081e5780635692ddd3146108265780635f8321771461082e57806363e1394e1461085c576103e6565b806343756e5c146107fe578063493279b1146108065780634bf6c8821461080e57806351b4dce314610816576103e6565b8063299b533d1161037d5780633a648b151161034c5780633a648b15146106725780633bdc47a6146106ae5780633dffc387146107d6578063422f9050146107de576103e6565b8063299b533d146105f85780632af6f3991461062c5780632ff32aea14610649578063308325f41461066a576103e6565b80631d130935116103b95780631d130935146104685780631e275ae11461048457806322556cdc146105e857806328087028146105f0576103e6565b806305e68258146103eb5780630bee7a67146104095780630e2374a51461042a57806314b3023b1461044e575b600080fd5b6103f3610c44565b6040805160ff9092168252519081900360200190f35b610411610c49565b6040805163ffffffff9092168252519081900360200190f35b610432610c4e565b604080516001600160a01b039092168252519081900360200190f35b610456610c54565b60408051918252519081900360200190f35b610470610c5a565b604080519115158252519081900360200190f35b6105e6600480360361010081101561049b57600080fd5b81018160a081016080820135600160201b8111156104b857600080fd5b8201836020820111156104ca57600080fd5b803590602001918460018302840111600160201b831117156104eb57600080fd5b919390929091602081019035600160201b81111561050857600080fd5b82018360208201111561051a57600080fd5b803590602001918460018302840111600160201b8311171561053b57600080fd5b919390929091602081019035600160201b81111561055857600080fd5b82018360208201111561056a57600080fd5b803590602001918460018302840111600160201b8311171561058b57600080fd5b919390929091602081019035600160201b8111156105a857600080fd5b8201836020820111156105ba57600080fd5b803590602001918460018302840111600160201b831117156105db57600080fd5b509092509050610c63565b005b610456611347565b61043261134c565b6106156004803603602081101561060e57600080fd5b5035611352565b6040805161ffff9092168252519081900360200190f35b6104706004803603602081101561064257600080fd5b5035611368565b61065161137d565b60408051600792830b90920b8252519081900360200190f35b610456611386565b6106926004803603602081101561068857600080fd5b503560ff1661138c565b604080516001600160401b039092168252519081900360200190f35b610761600480360360608110156106c457600080fd5b60ff82351691602081013591810190606081016040820135600160201b8111156106ed57600080fd5b8201836020820111156106ff57600080fd5b803590602001918460018302840111600160201b8311171561072057600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506113a7945050505050565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561079b578181015183820152602001610783565b50505050905090810190601f1680156107c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103f361141d565b610470600480360360208110156107f457600080fd5b503560ff16611422565b610432611437565b61061561143d565b6103f3611442565b610432611447565b61043261144d565b610456611453565b6105e66004803603604081101561084457600080fd5b506001600160a01b0381358116916020013516611483565b6104566116e3565b61061561170b565b6108896004803603602081101561088257600080fd5b5035611710565b6040805161ffff90941684526001600160801b03909216602084015282820152519081900360600190f35b61045661173f565b610432600480360360208110156108d257600080fd5b503560ff16611766565b610432611781565b6103f361170b565b6103f3611787565b61061561141d565b61045661178c565b610432611792565b6103f3611798565b61043261179d565b6105e6600480360360a081101561093257600080fd5b810190602081018135600160201b81111561094c57600080fd5b82018360208201111561095e57600080fd5b803590602001918460018302840111600160201b8311171561097f57600080fd5b919390929091602081019035600160201b81111561099c57600080fd5b8201836020820111156109ae57600080fd5b803590602001918460018302840111600160201b831117156109cf57600080fd5b919350915080356001600160401b03908116916020810135909116906040013560ff166117a3565b610456612a5d565b6103f3612a65565b610432612a6a565b610432612a70565b610470612a76565b610432612a7f565b610432612a85565b610411610c44565b6105e660048036036040811015610a4d57600080fd5b810190602081018135600160201b811115610a6757600080fd5b820183602082011115610a7957600080fd5b803590602001918460018302840111600160201b83111715610a9a57600080fd5b919390929091602081019035600160201b811115610ab757600080fd5b820183602082011115610ac957600080fd5b803590602001918460018302840111600160201b83111715610aea57600080fd5b509092509050612a8b565b61069260048036036020811015610b0b57600080fd5b503560ff1661354f565b61045661356a565b61043261358e565b6105e6613594565b61047060048036036040811015610b4357600080fd5b5080356001600160a01b0316906020013560ff166137e8565b610761613808565b610456613827565b61043261382d565b610432613833565b6105e6613839565b61069260048036036020811015610b9a57600080fd5b503560ff16613bf0565b6105e6613c0b565b6103f3613e2a565b6105e660048036036060811015610bca57600080fd5b60ff8235169190810190604081016020820135600160201b811115610bee57600080fd5b820183602082011115610c0057600080fd5b803590602001918460018302840111600160201b83111715610c2157600080fd5b919350915035613e2f565b610432613f72565b6103f3613f78565b610432613f7d565b600081565b606481565b61200181565b60015481565b600b5460ff1681565b60005460ff16610ca8576040805162461bcd60e51b81526020600482015260196024820152600080516020614a60833981519152604482015290519081900360640190fd5b604080516337d7f9c160e21b81526001600160401b038b35166004820181905291516110039163df5fe704916024808301926020929190829003018186803b158015610cf357600080fd5b505afa158015610d07573d6000803e3d6000fd5b505050506040513d6020811015610d1d57600080fd5b5051610d5a5760405162461bcd60e51b8152600401808060200182810382526023815260200180614a806023913960400191505060405180910390fd5b604080516337d7f9c160e21b815260208c8101356001600160401b03166004830181905292516110039263df5fe704926024808301939192829003018186803b158015610da657600080fd5b505afa158015610dba573d6000803e3d6000fd5b505050506040513d6020811015610dd057600080fd5b5051610e0d5760405162461bcd60e51b8152600401808060200182810382526023815260200180614a806023913960400191505060405180910390fd5b60608b013560ff81166000908152600560205260409020546001600160401b03909116906001600160a01b0316610e86576040805162461bcd60e51b815260206004820152601860248201527718da185b9b995b081a5cc81b9bdd081cdd5c1c1bdc9d195960421b604482015290519081900360640190fd5b600b5460ff1615610eca576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b8888604051808383808284376040519201829003822094508f93508e9250819050838380828437808301925050509250505060405180910390201415610f46576040805162461bcd60e51b815260206004820152600c60248201526b1cd85b59481c185e5b1bd85960a21b604482015290519081900360640190fd5b60606001600160401b0360408e01358116908e83013516610f678282613f83565b80516020808301919091206000818152600e9092526040909120549194509060ff1615610fd0576040805162461bcd60e51b8152602060048201526012602482015271185b1c9958591e4818da185b1b195b99d95960721b604482015290519081900360640190fd5b6000908152600e60205260408120805460ff191660011790558f8160200201356001600160401b0316905060608f8f8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060608c8c8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506040805163cba510a960e01b81526001600160401b038a16600482015290519596509094611003945063cba510a9935060248083019350602092829003018186803b1580156110c657600080fd5b505afa1580156110da573d6000803e3d6000fd5b505050506040513d60208110156110f057600080fd5b505160408051808201909152600381526269626360e81b602082015290915061111d908290898686613fcb565b611166576040805162461bcd60e51b81526020600482015260156024820152740696e76616c6964206d65726b6c652070726f6f663605c1b604482015290519081900360640190fd5b5050505060008f60016004811061117957fe5b60200201356001600160401b0316905060608d8d8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8f018190048102820181019092528d815293945060609392508d91508c908190840183828082843760009201829052506040805163cba510a960e01b81526001600160401b038a16600482015290519596509094611003945063cba510a9935060248083019350602092829003018186803b15801561124557600080fd5b505afa158015611259573d6000803e3d6000fd5b505050506040513d602081101561126f57600080fd5b505160408051808201909152600381526269626360e81b602082015290915061129c908290898686613fcb565b6112e5576040805162461bcd60e51b8152602060048201526015602482015274696e76616c6964206d65726b6c652070726f6f663160581b604482015290519081900360640190fd5b505050506112f16140c8565b604080516001600160401b038416815260ff83166020820152815133927f039eb91179ffd7d3b6e97f8ea106e748e827f910b872375dbc9c14a362319c3c928290030190a2505050505050505050505050505050565b603281565b61200581565b600d6020526000908152604090205461ffff1681565b600e6020526000908152604090205460ff1681565b60045460070b81565b60025481565b600a602052600090815260409020546001600160401b031681565b60606000825160210190506060816040519080825280601f01601f1916602001820160405280156113df576020820181803683370190505b506021810186905260018101879052828152905060418101600061140286614146565b50905061141181838851614150565b50909695505050505050565b600181565b60096020526000908152604090205460ff1681565b61100181565b603881565b600881565b61200681565b61200081565b604080517710d05390d15317d514905394d1915497d41493d413d4d05360421b8152905190819003601801902081565b60005460ff166114c8576040805162461bcd60e51b81526020600482015260196024820152600080516020614a60833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b15801561150b57600080fd5b505afa15801561151f573d6000803e3d6000fd5b505050506040513d602081101561153557600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b15801561157657600080fd5b505afa15801561158a573d6000803e3d6000fd5b505050506040513d60208110156115a057600080fd5b50519050806115ad575060155b6000821180156115bd5750808211155b6115fc576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b604080516001600160a01b038087166020808401919091529086168284015282518083038401815260608301808552815191909201207710d05390d15317d514905394d1915497d41493d413d4d05360421b90915291519081900360780190206000906116699083614191565b905080156116db5760408051630911a2c160e11b81526001600160a01b03888116600483015287166024820152905161100491631223458291604480830192600092919082900301818387803b1580156116c257600080fd5b505af11580156116d6573d6000803e3d6000fd5b505050505b505050505050565b604080516f14d554d411539117d41493d413d4d05360821b8152905190819003601001902081565b600281565b600c602052600090815260409020805460019091015461ffff8216916201000090046001600160801b03169083565b604080516e149153d4115397d41493d413d4d053608a1b8152905190819003600f01902081565b6005602052600090815260409020546001600160a01b031681565b61100581565b601081565b60035481565b61100881565b600b81565b61200381565b60005460ff166117e8576040805162461bcd60e51b81526020600482015260196024820152600080516020614a60833981519152604482015290519081900360640190fd5b60408051630a83aaa960e31b815233600482015290516110069163541d5548916024808301926020929190829003018186803b15801561182757600080fd5b505afa15801561183b573d6000803e3d6000fd5b505050506040513d602081101561185157600080fd5b50516118a4576040805162461bcd60e51b815260206004820152601f60248201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604482015290519081900360640190fd5b60ff8116600090815260086020526040902054829082906001600160401b039081169083168114611914576040805162461bcd60e51b815260206004820152601560248201527439b2b8bab2b731b2903737ba1034b71037b93232b960591b604482015290519081900360640190fd5b60ff8216600090815260086020908152604091829020805467ffffffffffffffff1916600185016001600160401b039081169190911790915582516337d7f9c160e21b81529089166004820152915188926110039263df5fe70492602480840193829003018186803b15801561198957600080fd5b505afa15801561199d573d6000803e3d6000fd5b505050506040513d60208110156119b357600080fd5b50516119f05760405162461bcd60e51b8152600401808060200182810382526023815260200180614a806023913960400191505060405180910390fd5b60ff851660009081526005602052604090205485906001600160a01b0316611a5a576040805162461bcd60e51b815260206004820152601860248201527718da185b9b995b081a5cc81b9bdd081cdd5c1c1bdc9d195960421b604482015290519081900360640190fd5b60ff86166000908152600a6020526040902054889087906001600160401b039081169083161015611ac3576040805162461bcd60e51b815260206004820152600e60248201526d3a37b79037b632103432b0b232b960911b604482015290519081900360640190fd5b60ff81166000908152600a60205260409020546001600160401b03838116911614611b155760ff81166000908152600a60205260409020805467ffffffffffffffff19166001600160401b0384161790555b600b5460ff1615611b59576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b60608e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060608d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509050611c9d6110036001600160a01b031663cba510a98e6040518263ffffffff1660e01b815260040180826001600160401b03166001600160401b0316815260200191505060206040518083038186803b158015611c4657600080fd5b505afa158015611c5a573d6000803e3d6000fd5b505050506040513d6020811015611c7057600080fd5b505160408051808201909152600381526269626360e81b6020820152611c968e8e613f83565b8585613fcb565b611ce5576040805162461bcd60e51b815260206004820152601460248201527334b73b30b634b21036b2b935b63290383937b7b360611b604482015290519081900360640190fd5b60408051631bb5062960e31b81526001600160401b038e16600482015290516000916110039163dda8314891602480820192602092909190829003018186803b158015611d3157600080fd5b505afa158015611d45573d6000803e3d6000fd5b505050506040513d6020811015611d5b57600080fd5b505190508b8b600080806060611d7089614476565b935093509350935083611e32578460ff16866001600160401b03167ff7b2e42d694eb1100184aae86d4245d9e46966100b1dc7e723275b98326854ac8b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015611dea578181015183820152602001611dd2565b50505050905090810190601f168015611e175780820380516001836020036101000a031916815260200191505b509250505060405180910390a3505050505050505050612a4d565b6040805160ff85811682529151918716916001600160401b038916917f36afdaf439a8f43fe72135135d804ae620b37a474f0943b5b85f6788312cad40919081900360200190a360ff83166123b75760ff85166000818152600560209081526040808320548151631182b87560e01b815260048101958652602481019283528651604482015286516001600160a01b03909216958695631182b875958d958a9593949093606490910192918601918190849084905b83811015611eff578181015183820152602001611ee7565b50505050905090810190601f168015611f2c5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b158015611f4c57600080fd5b505af192505050801561203057506040513d6000823e601f3d908101601f191682016040526020811015611f7f57600080fd5b8101908080516040519392919084600160201b821115611f9e57600080fd5b908301906020820185811115611fb357600080fd5b8251600160201b811182820188101715611fcc57600080fd5b82525081516020918201929091019080838360005b83811015611ff9578181015183820152602001611fe1565b50505050905090810190601f1680156120265780820380516001836020036101000a031916815260200191505b5060405250505060015b612342576040516000815260443d101561204c575060006120e7565b60046000803e60005160e01c6308c379a0811461206d5760009150506120e7565b60043d036004833e81513d60248201116001600160401b0382111715612098576000925050506120e7565b80830180516001600160401b038111156120b95760009450505050506120e7565b8060208301013d86018111156120d7576000955050505050506120e7565b601f01601f191660405250925050505b806120f25750612204565b60ff8716600090815260076020526040812054612129916001600160401b0390911690899061212490600290886113a7565b614526565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf948794849390840192918601918190849084905b838110156121c45781810151838201526020016121ac565b50505050905090810190601f1680156121f15780820380516001836020036101000a031916815260200191505b509250505060405180910390a25061233d565b3d80801561222e576040519150601f19603f3d011682016040523d82523d6000602084013e612233565b606091505b5060ff8716600090815260076020526040812054612266916001600160401b0390911690899061212490600290886113a7565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351948794849390840192918601918190849084905b838110156123015781810151838201526020016122e9565b50505050905090810190601f16801561232e5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b6123b1565b8051156123af5760ff871660009081526007602052604081205461237b916001600160401b0390911690899061212490600190866113a7565b60ff8716600090815260076020526040902080546001600160401b038082166001011667ffffffffffffffff199091161790555b505b50612985565b60ff83166001141561265b5760ff8516600081815260056020908152604080832054815163831d65d160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563831d65d1958d958a9593949093606490910192918601918190849084905b83811015612441578181015183820152602001612429565b50505050905090810190601f16801561246e5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561248e57600080fd5b505af192505050801561249f575060015b6123b1576040516000815260443d10156124bb57506000612556565b60046000803e60005160e01c6308c379a081146124dc576000915050612556565b60043d036004833e81513d60248201116001600160401b038211171561250757600092505050612556565b80830180516001600160401b03811115612528576000945050505050612556565b8060208301013d860181111561254657600095505050505050612556565b601f01601f191660405250925050505b8061256157506125c6565b60408051602080825283518183015283516001600160a01b038616937ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf93869390928392830191850190808383600083156121c45781810151838201526020016121ac565b3d8080156125f0576040519150601f19603f3d011682016040523d82523d6000602084013e6125f5565b606091505b5060408051602080825283518183015283516001600160a01b038616937f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd297735193869390928392830191850190808383600083156123015781810151838201526020016122e9565b60ff8316600214156129855760ff8516600081815260056020908152604080832054815163c8509d8160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563c8509d81958d958a9593949093606490910192918601918190849084905b838110156126e55781810151838201526020016126cd565b50505050905090810190601f1680156127125780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561273257600080fd5b505af1925050508015612743575060015b612983576040516000815260443d101561275f575060006127fa565b60046000803e60005160e01c6308c379a081146127805760009150506127fa565b60043d036004833e81513d60248201116001600160401b03821117156127ab576000925050506127fa565b80830180516001600160401b038111156127cc5760009450505050506127fa565b8060208301013d86018111156127ea576000955050505050506127fa565b601f01601f191660405250925050505b8061280557506128ae565b816001600160a01b03167ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf826040518080602001828103825283818151815260200191508051906020019080838360005b8381101561286e578181015183820152602001612856565b50505050905090810190601f16801561289b5780820380516001836020036101000a031916815260200191505b509250505060405180910390a250612983565b3d8080156128d8576040519150601f19603f3d011682016040523d82523d6000602084013e6128dd565b606091505b50816001600160a01b03167f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351826040518080602001828103825283818151815260200191508051906020019080838360005b8381101561294757818101518382015260200161292f565b50505050905090810190601f1680156129745780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b505b60ff80861660009081526009602052604090205461100591636f93d2e6918a913391879116806129b7575060ff881615155b604080516001600160e01b031960e088901b1681526001600160a01b039586166004820152939094166024840152604483019190915215156064820152905160848083019260209291908290030181600087803b158015612a1757600080fd5b505af1158015612a2b573d6000803e3d6000fd5b505050506040513d6020811015612a4157600080fd5b50505050505050505050505b5050505050505050505050505050565b630100380081565b600981565b61100781565b61100681565b60005460ff1681565b61200281565b61300081565b3361100714612acb5760405162461bcd60e51b815260040180806020018281038252602e8152602001806149b6602e913960400191505060405180910390fd5b600b5460ff1615612b0f576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b612b7884848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526012815271626174636853697a65466f724f7261636c6560701b602082015291506146c09050565b15612c1357604080516020601f8401819004810282018101909252828152600091612bbb918585808385018382808284376000920191909152506147a792505050565b90506127108111158015612bd05750600a8110155b612c0b5760405162461bcd60e51b8152600401808060200182810382526032815260200180614a2e6032913960400191505060405180910390fd5b6001556134bd565b612c7c84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601281527118591913dc955c19185d1950da185b9b995b60721b602082015291506146c09050565b15612e0457606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060169091149050612cff5760405162461bcd60e51b815260040180806020018281038252605a8152602001806148cf605a913960600191505060405180910390fd5b60018101516002820151601683015160ff82161590612d1d816147ac565b612d6e576040805162461bcd60e51b815260206004820152601960248201527f61646472657373206973206e6f74206120636f6e747261637400000000000000604482015290519081900360640190fd5b60ff8416600081815260056020908152604080832080546001600160a01b0319166001600160a01b038716908117909155808452600683528184208585528352818420805460ff199081166001179091556009909352818420805490931687151517909255519092917f7e3b6af43092577ee20e60eaa1d9b114a7031305c895ee7dd3ffe17196d2e1e091a350505050506134bd565b612e7184848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526016815275195b98589b1953dc911a5cd8589b1950da185b9b995b60521b602082015291506146c09050565b15612fa257606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060029091149050612ef45760405162461bcd60e51b815260040180806020018281038252604a8152602001806149e4604a913960600191505060405180910390fd5b600181810151600283015160ff80831660009081526005602052604090205492939192908316909114906001600160a01b03168015612f98576001600160a01b038116600090815260066020908152604080832060ff881680855290835292819020805460ff1916861515908117909155815190815290517fa3132e3f9819fbddc7f0ed6d38d7feef59aa95112090b7c592f5cb5bc4aa4adc929181900390910190a25b50505050506134bd565b61300684848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c73757370656e6451756f72756d60981b602082015291506146c09050565b1561313b576002811461304a5760405162461bcd60e51b815260040180806020018281038252602d81526020018061495d602d913960400191505060405180910390fd5b600061308d600284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506147a792505050565b905060008161ffff161180156130a7575060648161ffff16105b6130f1576040805162461bcd60e51b8152602060048201526016602482015275696e76616c69642073757370656e642071756f72756d60501b604482015290519081900360640190fd5b604080516f14d554d411539117d41493d413d4d05360821b815281519081900360100190206000908152600d60205220805461ffff90921661ffff199092169190911790556134bd565b61319e84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600c81526b72656f70656e51756f72756d60a01b602082015291506146c09050565b156132d157600281146131e25760405162461bcd60e51b815260040180806020018281038252602c81526020018061498a602c913960400191505060405180910390fd5b6000613225600284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506147a792505050565b905060008161ffff1611801561323f575060648161ffff16105b613288576040805162461bcd60e51b8152602060048201526015602482015274696e76616c69642072656f70656e2071756f72756d60581b604482015290519081900360640190fd5b604080516e149153d4115397d41493d413d4d053608a1b8152815190819003600f0190206000908152600d60205220805461ffff90921661ffff199092169190911790556134bd565b61333c84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601481527363616e63656c5472616e7366657251756f72756d60601b602082015291506146c09050565b1561348057600281146133805760405162461bcd60e51b81526004018080602001828103825260348152602001806149296034913960400191505060405180910390fd5b60006133c3600284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506147a792505050565b905060008161ffff161180156133dd575060648161ffff16105b61342e576040805162461bcd60e51b815260206004820152601e60248201527f696e76616c69642063616e63656c207472616e736665722071756f72756d0000604482015290519081900360640190fd5b604080517710d05390d15317d514905394d1915497d41493d413d4d05360421b815281519081900360180190206000908152600d60205220805461ffff90921661ffff199092169190911790556134bd565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b6008602052600090815260409020546001600160401b031681565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081565b61100281565b60005460ff166135d9576040805162461bcd60e51b81526020600482015260196024820152600080516020614a60833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b15801561361c57600080fd5b505afa158015613630573d6000803e3d6000fd5b505050506040513d602081101561364657600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b15801561368757600080fd5b505afa15801561369b573d6000803e3d6000fd5b505050506040513d60208110156136b157600080fd5b50519050806136be575060155b6000821180156136ce5750808211155b61370d576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b600b5460ff16613754576040805162461bcd60e51b815260206004820152600d60248201526c1b9bdd081cdd5cdc195b991959609a1b604482015290519081900360640190fd5b604080516e149153d4115397d41493d413d4d053608a1b8152905190819003600f0190206000906137a5907fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470614191565b905080156137e357600b805460ff1916905560405133907f899fe8c37dc61708a3aaa99c4bf143346c1d1da69af79be9e8920c0a6785b75290600090a25b505050565b600660209081526000928352604080842090915290825290205460ff1681565b6040518060400160405280600381526020016269626360e81b81525081565b610e1081565b61100381565b61200481565b60005460ff1615613891576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b7f1471eb6eb2c5e789fc3de43f8ce62938c7d1836ec861730447e2ada8fd81017b80546001600160a01b0319908116611008179091557f92e85d02570a8092d09a6e3a57665bc3815a2699a4074001bf1ccabf660f5a36805460ff199081169091557fd8af288fc1c8680b4f4706064cf021e264efb6828fcaf7eb5ca36818eb365bcc8054821660019081179091557f89832631fb3c3307a103ba2c84ab569c64d6182a18893dcd163f0f1c2090733a805484166110049081179091557f6cde3cea4b3a3fb2488b2808bae7556f4a405e50f65e1794383bc026131b13c38054841690557f72e4efa1513b071517c6c74dba31b5934a81aa83cddd400e7081df5529c9943680548416831790557fa9bc9a3a348c357ba16b37005d7e6b3236198c0e939f4af8c5f19b8deeb8ebc08054851690911790557fc575c31fea594a6eb97c8e9d3f9caee4c16218c6ef37e923234c0fe9014a61e78054831690557f4e523af77f034e9810f1c94057f5e931fb3d16a51511a4c3add793617d18610580548316821790557ffb33122aa9f93cc639ebe80a7bc4784c11e6053dde89c6f4f7e268c6a623da1e805484166110001790557fc7694af312c4f286114180fd0ba6a52461fcee8a381636770b19a343af92538a80548316821790557f01112dd68e482ba8d68a7e828cff8b3abcea08eab88941953c180a7e650e9cd480548316821790557fc0a4a8be475dfebc377ebef2d7c4ff47656f572a08dd92b81017efcdba0febe1805484166110071790557f87e8a52529e8ece4ef759037313542a6429ff494a9fab9027fb79db90124eba680548316821790557f4c7666bbcb22d46469f7cc282f70764a7012dca2cce630ff8d83db9a9cdd48f080548316821790557f40f28f99a40bc9f6beea1013afdbc3cdcc689eb76b82c4de06c0acf1e1932ed58054909316611001179092557f0d9cf2cd531699eed8dd34e40ff2884a14a698c4898184fba85194e6f6772d248054821683179055600b60009081527f23f68c9bd22b8a93d06adabe17481c87c016bcbd20adc8bfd707a4d813a572176020527fdf0d5d05428057f5455c2dc8e810dd86d1e9350faa72f16bda8a45443c5b39328054831684179055603283556004805467ffffffffffffffff19166001600160401b031790556002819055600381905580549091169091179055565b6007602052600090815260409020546001600160401b031681565b60005460ff16613c50576040805162461bcd60e51b81526020600482015260196024820152600080516020614a60833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b158015613c9357600080fd5b505afa158015613ca7573d6000803e3d6000fd5b505050506040513d6020811015613cbd57600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b158015613cfe57600080fd5b505afa158015613d12573d6000803e3d6000fd5b505050506040513d6020811015613d2857600080fd5b5051905080613d35575060155b600082118015613d455750808211155b613d84576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b600b5460ff1615613dc8576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b604080516f14d554d411539117d41493d413d4d05360821b81529051908190036010019020600090613e1a907fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470614191565b905080156137e3576137e36140c8565b601181565b60005460ff16613e74576040805162461bcd60e51b81526020600482015260196024820152600080516020614a60833981519152604482015290519081900360640190fd5b33600090815260066020908152604080832060ff8089168552925290912054859116613ed15760405162461bcd60e51b815260040180806020018281038252603181526020018061489e6031913960400191505060405180910390fd5b60ff85166000908152600760209081526040808320548151601f88018490048402810184019092528682526001600160401b031692613f369284928a9261212492909189918c908c90819084018382808284376000920191909152506113a792505050565b60ff959095166000908152600760205260409020805467ffffffffffffffff191660019096016001600160401b03169590951790945550505050565b61100081565b600381565b61100481565b60408051600e808252818301909252606091630100380060ff851617918391602082018180368337505050600e81810187905260068201939093529182525090505b92915050565b600085613fda575060006140bf565b606082518451865160800101016040519080825280601f01601f191660200182016040528015614011576020820181803683370190505b509050600061401f826147b2565b60208089015182520190508660008061403789614146565b8086526020909501949092509050614050828583614150565b9283019261405d88614146565b8086526020909501949092509050614076828583614150565b9283018a81526020019261408987614146565b9092509050614099828583614150565b5083516020016140a76147b8565b60208183886065600019fa5051600114955050505050505b95945050505050565b600b5460ff161561410c576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b600b805460ff1916600117905560405133907f6f123d3d54c84a7960a573b31c221dcd86e13fd849c5adb0c6ca851468cc1ae490600090a2565b8051602090910191565b5b60208110614170578251825260209283019290910190601f1901614151565b915181516020939093036101000a6000190180199091169216919091179052565b6000828152600d602052604081205461ffff1661425a57604080516f14d554d411539117d41493d413d4d05360821b815281519081900360100181206000908152600d6020818152848320805461ffff199081166001179091556e149153d4115397d41493d413d4d053608a1b8552855194859003600f01852084528282528584208054821660029081179091557710d05390d15317d514905394d1915497d41493d413d4d05360421b8652865195869003601801909520845291905292902080549092161790555b6000838152600c6020526040902080546201000090046001600160801b03164210158061428b575082816001015414155b1561435e576000848152600d602090815260409182902054835461ffff90911661ffff199091161771ffffffffffffffffffffffffffffffff0000191662010000610e1042016001600160801b03160217835560018084018690558251918201909252338152614300916002840191906147d6565b5080546040805161ffff83168152620100009092046001600160801b0316602083015281810185905251339186917f9e109f0e55ef32e99e4880be2ec357f1ddb3469c79d0747ef4762da6e89fabe5916060908290030190a3614412565b60005b60028201548110156143e957336001600160a01b031682600201828154811061438657fe5b6000918252602090912001546001600160a01b031614156143e1576040805162461bcd60e51b815260206004820152601060248201526f185b1c9958591e48185c1c1c9bdd995960821b604482015290519081900360640190fd5b600101614361565b50600281018054600181018255600091825260209091200180546001600160a01b031916331790555b8054600282015461ffff9091161161446c576000848152600c60205260408120805471ffffffffffffffffffffffffffffffffffff191681556001810182905590614460600283018261483b565b50506001915050613fc5565b5060009392505050565b600080600060606021855110156144a657505060408051600080825260208201909252909250829150819061451f565b600185015160218601518651604080516020198301808252601f19600119909401939093168101602001909152604189019392916060919080156144f1576020820181803683370190505b50905060006144ff82614146565b509050614511858260218d5103614150565b506001975091955093509150505b9193509193565b600b5460ff161561456a576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b6002544311156145a9576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b1617909155600355436002556145ea565b600380546001908101918290555410156145ea576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b16179091556003555b8160ff16836001600160401b0316600460009054906101000a900460070b6001600160401b03167f3a6e0fc61675aa2a100bcba0568368bb92bcec91c97673391074f11138f0cffe603885604051808361ffff1661ffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015614680578181015183820152602001614668565b50505050905090810190601f1680156146ad5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a4505050565b6000816040516020018082805190602001908083835b602083106146f55780518252601f1990920191602091820191016146d6565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106147635780518252601f199092019160209182019101614744565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b3b151590565b60200190565b60405180602001604052806001906020820280368337509192915050565b82805482825590600052602060002090810192821561482b579160200282015b8281111561482b57825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906147f6565b5061483792915061485c565b5090565b50805460008255906000526020600020908101906148599190614883565b50565b61488091905b808211156148375780546001600160a01b0319168155600101614862565b90565b61488091905b80821115614837576000815560010161488956fe74686520636f6e747261637420616e64206368616e6e656c2068617665206e6f74206265656e20726567697374657265646c656e677468206f662076616c756520666f72206164644f725570646174654368616e6e656c2073686f756c642062652032322c206368616e6e656c49643a697346726f6d53797374656d3a68616e646c6572416464726573736c656e677468206f662076616c756520666f722063616e63656c5472616e7366657251756f72756d2073686f756c6420626520326c656e677468206f662076616c756520666f722073757370656e6451756f72756d2073686f756c6420626520326c656e677468206f662076616c756520666f722072656f70656e51756f72756d2073686f756c642062652032746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662076616c756520666f7220656e61626c654f7244697361626c654368616e6e656c2073686f756c6420626520322c206368616e6e656c49643a6973456e61626c65746865206e6577426174636853697a65466f724f7261636c652073686f756c6420626520696e205b31302c2031303030305d74686520636f6e7472616374206e6f7420696e697420796574000000000000006c6967687420636c69656e74206e6f742073796e632074686520626c6f636b20796574a164736f6c6343000604000a" + }, + "0x0000000000000000000000000000000000002001": { + "balance": "0x0", + "code": "0x6080604052600436106103d25760003560e01c8063718a8aa8116101fd578063b88a802f11610118578063dc927faf116100ab578063f45fd80b1161007a578063f45fd80b14610cdb578063f9a2bbc714610d20578063fa03f79714610d35578063fc3e5908146106d3578063fd6a687914610d4a576103d9565b8063dc927faf14610c87578063df8079e914610c9c578063edc1a5b014610cb1578063f1fad10414610cc6576103d9565b8063c81b1662116100e7578063c81b166214610bb2578063c8509d8114610bc7578063d61b9b9314610c4c578063d7ecfcb614610890576103d9565b8063b88a802f14610b38578063baaafd3b14610b4d578063bf8546ca14610b62578063c2117d8214610b9d576103d9565b80639dc0926211610190578063aad560631161015f578063aad5606314610a2e578063ab51bb9614610a43578063ac43175114610a58578063b14315df14610b23576103d9565b80639dc09262146109c6578063a1a11bf5146109db578063a78abc16146109f0578063aa82dce114610a19576103d9565b80637e434d54116101cc5780637e434d5414610917578063831d65d11461092c57806392b888a41461066a57806396713da9146109b1576103d9565b8063718a8aa8146108a557806375aca593146108ba57806375d47a0a146108ed5780637942fd0514610902576103d9565b8063413d9c3a116102ed5780635d17c8bd116102805780636bd8f8041161024f5780636bd8f804146108125780636e47b482146108485780636fb7f7eb1461085d57806370fd5bad14610890576103d9565b80635d17c8bd146107be5780635d499b1b146107d357806362b171d2146107e857806369b635b6146107fd576103d9565b80634d99dd16116102bc5780634d99dd161461075357806351b4dce31461077f57806351e8067214610794578063552aaf93146107a9576103d9565b8063413d9c3a146106e857806343756e5c146106fd578063493279b1146107125780634bf6c8821461073e576103d9565b8063151817e311610365578063333ad3e711610334578063333ad3e7146106a957806334c43354146106be5780633dffc3871461066a5780633fdfa7e4146106d3576103d9565b8063151817e31461063f57806317c9efb01461066a578063280870281461067f5780632fdeb11114610694576103d9565b80630c795715116103a15780630c795715146104cc5780630e2374a5146104e15780631182b8751461051257806311fe9ec61461060c576103d9565b8063026e402b146103de578063029859921461040c578063047636d1146104335780630bee7a671461049e576103d9565b366103d957005b600080fd5b61040a600480360360408110156103f457600080fd5b506001600160a01b038135169060200135610d5f565b005b34801561041857600080fd5b50610421610d9c565b60408051918252519081900360200190f35b34801561043f57600080fd5b506104666004803603602081101561045657600080fd5b50356001600160a01b0316610da2565b6040518082606080838360005b8381101561048b578181015183820152602001610473565b5050505090500191505060405180910390f35b3480156104aa57600080fd5b506104b3610df6565b6040805163ffffffff9092168252519081900360200190f35b3480156104d857600080fd5b50610421610dfb565b3480156104ed57600080fd5b506104f6610e01565b604080516001600160a01b039092168252519081900360200190f35b34801561051e57600080fd5b506105976004803603604081101561053557600080fd5b60ff8235169190810190604081016020820135600160201b81111561055957600080fd5b82018360208201111561056b57600080fd5b803590602001918460018302840111600160201b8311171561058c57600080fd5b509092509050610e07565b6040805160208082528351818301528351919283929083019185019080838360005b838110156105d15781810151838201526020016105b9565b50505050905090810190601f1680156105fe5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561061857600080fd5b506104216004803603602081101561062f57600080fd5b50356001600160a01b0316610fc3565b34801561064b57600080fd5b50610654610fde565b6040805160ff9092168252519081900360200190f35b34801561067657600080fd5b50610654610fe3565b34801561068b57600080fd5b506104f6610fe8565b3480156106a057600080fd5b50610421610fee565b3480156106b557600080fd5b506104b3610ff4565b3480156106ca57600080fd5b50610421610ff9565b3480156106df57600080fd5b50610654611004565b3480156106f457600080fd5b50610421611009565b34801561070957600080fd5b506104f6611010565b34801561071e57600080fd5b50610727611016565b6040805161ffff9092168252519081900360200190f35b34801561074a57600080fd5b5061065461101b565b61040a6004803603604081101561076957600080fd5b506001600160a01b038135169060200135611020565b34801561078b57600080fd5b506104f661164d565b3480156107a057600080fd5b506104f6611653565b3480156107b557600080fd5b50610654611659565b3480156107ca57600080fd5b5061042161165e565b3480156107df57600080fd5b50610421611664565b3480156107f457600080fd5b5061042161166d565b34801561080957600080fd5b5061042161180d565b61040a6004803603606081101561082857600080fd5b506001600160a01b03813581169160208101359091169060400135610d5f565b34801561085457600080fd5b506104f6611813565b34801561086957600080fd5b506104216004803603602081101561088057600080fd5b50356001600160a01b0316611819565b34801561089c57600080fd5b50610654611834565b3480156108b157600080fd5b50610654611839565b3480156108c657600080fd5b50610421600480360360208110156108dd57600080fd5b50356001600160a01b031661183e565b3480156108f957600080fd5b506104f6611859565b34801561090e57600080fd5b5061065461185f565b34801561092357600080fd5b506104f6611864565b34801561093857600080fd5b5061040a6004803603604081101561094f57600080fd5b60ff8235169190810190604081016020820135600160201b81111561097357600080fd5b82018360208201111561098557600080fd5b803590602001918460018302840111600160201b831117156109a657600080fd5b50909250905061186a565b3480156109bd57600080fd5b50610654611b32565b3480156109d257600080fd5b506104f6611b37565b3480156109e757600080fd5b506104f6611b3d565b3480156109fc57600080fd5b50610a05611b43565b604080519115158252519081900360200190f35b348015610a2557600080fd5b506104f6611b4c565b348015610a3a57600080fd5b506104f6611b52565b348015610a4f57600080fd5b506104b3611659565b348015610a6457600080fd5b5061040a60048036036040811015610a7b57600080fd5b810190602081018135600160201b811115610a9557600080fd5b820183602082011115610aa757600080fd5b803590602001918460018302840111600160201b83111715610ac857600080fd5b919390929091602081019035600160201b811115610ae557600080fd5b820183602082011115610af757600080fd5b803590602001918460018302840111600160201b83111715610b1857600080fd5b509092509050611b58565b348015610b2f57600080fd5b506106546122ea565b348015610b4457600080fd5b506104216122ef565b348015610b5957600080fd5b5061042161248c565b348015610b6e57600080fd5b5061042160048036036040811015610b8557600080fd5b506001600160a01b0381358116916020013516612497565b348015610ba957600080fd5b506104216124c4565b348015610bbe57600080fd5b506104f66124ca565b348015610bd357600080fd5b5061040a60048036036040811015610bea57600080fd5b60ff8235169190810190604081016020820135600160201b811115610c0e57600080fd5b820183602082011115610c2057600080fd5b803590602001918460018302840111600160201b83111715610c4157600080fd5b5090925090506124d0565b348015610c5857600080fd5b5061042160048036036040811015610c6f57600080fd5b506001600160a01b03813581169160200135166126f3565b348015610c9357600080fd5b506104f661271e565b348015610ca857600080fd5b506104f6612724565b348015610cbd57600080fd5b5061042161272a565b348015610cd257600080fd5b50610654612737565b348015610ce757600080fd5b5061042160048036036060811015610cfe57600080fd5b506001600160a01b03813581169160208101358216916040909101351661273c565b348015610d2c57600080fd5b506104f6612771565b348015610d4157600080fd5b50610421612777565b348015610d5657600080fd5b506104f661277d565b6040805162461bcd60e51b815260206004820152600d60248201526c1b9bdd081cdd5c1c1bdc9d1959609a1b604482015290519081900360640190fd5b60035481565b610daa614800565b610db2614800565b6001600160a01b0383166000818152600b60209081526040808320548552838352600c82528083205485830152928252600d9052819020549082015290505b919050565b606481565b6108fc81565b61200181565b60603361200014610e495760405162461bcd60e51b815260040180806020018281038252602f8152602001806149e3602f913960400191505060405180910390fd5b60005460ff16610e8c576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b610e9461481e565b610edb610ed685858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278392505050565b6127a8565b90506000610ef0610eeb836127f2565b612840565b90506000606060ff831660041415610f1557610f0b846128f7565b9092509050610f6c565b60ff831660051415610f2a57610f0b84612ad7565b6040805162461bcd60e51b8152602060048201526012602482015271756e6b6e6f776e206576656e74207479706560701b604482015290519081900360640190fd5b63ffffffff821615610fb8576040805163ffffffff84168152905160ff8516917f391d6e5ea6ab6c49b9a0abb1782cae5def8d711f973b00c729658c0b2a80b31b919081900360200190a25b979650505050505050565b6001600160a01b031660009081526006602052604090205490565b600581565b600181565b61200581565b60015481565b606581565b662386f26fc1000081565b600381565b620a8c0081565b61100181565b603881565b600881565b60105460ff166002141561106c576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b6010805460ff19166002179055806402540be400340615801561109457506402540be4008106155b6110e5576040805162461bcd60e51b815260206004820152601c60248201527f707265636973696f6e206c6f737320696e20636f6e76657273696f6e00000000604482015290519081900360640190fd5b60005460ff16611128576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b600154341015611176576040805162461bcd60e51b81526020600482015260146024820152736e6f7420656e6f7567682072656c61792066656560601b604482015290519081900360640190fd5b600354821015611231573360009081526005602090815260408083206001600160a01b038716845290915290205482146111e8576040805162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a5908185b5bdd5b9d60921b604482015290519081900360640190fd5b6002548211611231576040805162461bcd60e51b815260206004820152601060248201526f6e6f7420656e6f7567682066756e647360801b604482015290519081900360640190fd5b3360009081526007602090815260408083206001600160a01b03871684529091529020544210156112a9576040805162461bcd60e51b815260206004820152601a60248201527f70656e64696e6720756e64656c65676174696f6e206578697374000000000000604482015290519081900360640190fd5b604080518082018252601081526f6e6f7420656e6f7567682066756e647360801b602080830191909152336000908152600582528381206001600160a01b03881682529091529182205461130491859063ffffffff612df716565b9050801561134c57600254811161134c5760405162461bcd60e51b81526004018080602001828103825260258152602001806149be6025913960400191505060405180910390fd5b6000611363846402540be40063ffffffff612e8e16565b600254909150349060009061137f90839063ffffffff612ed716565b6040805160038082526080820190925291925060609190816020015b606081526020019060019003908161139b5790505090506113bb33612f19565b816000815181106113c857fe5b60200260200101819052506113e5886001600160a01b0316612f19565b816001815181106113f257fe5b602002602001018190525061140684612f3c565b8160028151811061141357fe5b60200260200101819052506060611433600261142e84612f4f565b612fd9565b8051602080830191909120600f80546000908152600a845260408082209390935581546001908101909255338152600c909352912080549091019055905061148442620a8c0063ffffffff61305f16565b3360009081526007602090815260408083206001600160a01b038e16845290915290205561200063f7a251d76010836114c8876402540be40063ffffffff612e8e16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561152657818101518382015260200161150e565b50505050905090810190601f1680156115535780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561157457600080fd5b505af1158015611588573d6000803e3d6000fd5b5050604051611004925085156108fc02915085906000818181858888f193505050501580156115bb573d6000803e3d6000fd5b506002546040516110029180156108fc02916000818181858888f193505050501580156115ec573d6000803e3d6000fd5b50604080518981526020810185905281516001600160a01b038c169233927fdf0b6ac27f3f3bb31cee3dab0f4fe40cc19c6a3f8daaec52e06b261e58a12519929081900390910190a350506010805460ff1916600117905550505050505050565b61200681565b61200081565b600081565b60025481565b6402540be40081565b60105460009060ff16600214156116bc576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b506010805460ff191660021790553360009081526008602052604090205480611723576040805162461bcd60e51b81526020600482015260146024820152736e6f20756e64656c6567617465642066756e647360601b604482015290519081900360640190fd5b336000818152600860205260408082208290556011549051919291849084818181858888f193505050503d8060008114611779576040519150601f19603f3d011682016040523d82523d6000602084013e61177e565b606091505b50509050806117c6576040805162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b604482015290519081900360640190fd5b60408051838152905133917fc712d133b8d448221aaed2198ed1f0db6dfc860fb01bc3a630916fe6cbef946f919081900360200190a2506010805460ff1916600117905590565b60035490565b61100581565b6001600160a01b031660009081526004602052604090205490565b600281565b601081565b6001600160a01b031660009081526008602052604090205490565b61100881565b600b81565b61200381565b33612000146118aa5760405162461bcd60e51b815260040180806020018281038252602f8152602001806149e3602f913960400191505060405180910390fd5b60005460ff166118ed576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b6118f561481e565b611937610ed684848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278392505050565b905060008060606000805b61194b866130b9565b156119b6578061196857611961610eeb876127f2565b94506119ae565b80600114156119845761197d610eeb876127f2565b93506119ae565b80600214156119a95761199e611999876127f2565b6130da565b9250600191506119ae565b6119b6565b600101611942565b816119fc576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b611a058361314a565b611a48576040805162461bcd60e51b815260206004820152600f60248201526e0eee4dedcce40e0c2c6d640d0c2e6d608b1b604482015290519081900360640190fd5b611a54610ed684612783565b95506000611a64610eeb886127f2565b9050611a6e61481e565b611a77886130b9565b15611a9a57611a93610ed6611a8e6119998b6127f2565b612783565b9050611adb565b6040805162461bcd60e51b8152602060048201526011602482015270656d7074792061636b207061636b61676560781b604482015290519081900360640190fd5b60ff821660011415611af757611af281888861319e565b611b25565b60ff821660021415611b0e57611af2818888613555565b60ff821660031415610f2a57611af2818888613822565b5050505050505050505050565b600981565b61100781565b61100681565b60005460ff1681565b61200281565b61300081565b60005460ff16611baf576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604482015290519081900360640190fd5b3361100714611bef5760405162461bcd60e51b815260040180806020018281038252602e815260200180614934602e913960400191505060405180910390fd5b611c5084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600a81526972656c6179657246656560b01b60208201529150613b879050565b15611db65760208114611caa576040805162461bcd60e51b815260206004820152601d60248201527f6c656e677468206f662072656c61796572466565206d69736d61746368000000604482015290519081900360640190fd5b604080516020601f8401819004810282018101909252828152600091611ce891858580838501838280828437600092019190915250613c6e92505050565b90506003548110611d2a5760405162461bcd60e51b815260040180806020018281038252602e815260200180614962602e913960400191505060405180910390fd5b6002548111611d6a5760405162461bcd60e51b815260040180806020018281038252602e815260200180614990602e913960400191505060405180910390fd5b6402540be400810615611dae5760405162461bcd60e51b815260040180806020018281038252602c815260200180614908602c913960400191505060405180910390fd5b600155612258565b611e1a84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c62534352656c6179657246656560981b60208201529150613b879050565b15611f7c5760208114611e74576040805162461bcd60e51b815260206004820181905260248201527f6c656e677468206f662062534352656c61796572466565206d69736d61746368604482015290519081900360640190fd5b604080516020601f8401819004810282018101909252828152600091611eb291858580838501838280828437600092019190915250613c6e92505050565b905080611ef05760405162461bcd60e51b8152600401808060200182810382526022815260200180614a126022913960400191505060405180910390fd5b6001548110611f305760405162461bcd60e51b815260040180806020018281038252602e815260200180614888602e913960400191505060405180910390fd5b6402540be400810615611f745760405162461bcd60e51b815260040180806020018281038252602f815260200180614859602f913960400191505060405180910390fd5b600255612258565b611fe084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c36b4b72232b632b3b0ba34b7b760991b60208201529150613b879050565b156120c2576020811461203a576040805162461bcd60e51b815260206004820181905260248201527f6c656e677468206f66206d696e44656c65676174696f6e206d69736d61746368604482015290519081900360640190fd5b604080516020601f840181900481028201810190925282815260009161207891858580838501838280828437600092019190915250613c6e92505050565b905060015481116120ba5760405162461bcd60e51b81526004018080602001828103825260318152602001806148b66031913960400191505060405180910390fd5b600355612258565b61212484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600b81526a7472616e7366657247617360a81b60208201529150613b879050565b1561221b576020811461217e576040805162461bcd60e51b815260206004820152601e60248201527f6c656e677468206f66207472616e73666572476173206d69736d617463680000604482015290519081900360640190fd5b604080516020601f84018190048102820181019092528281526000916121bc91858580838501838280828437600092019190915250613c6e92505050565b905060008111612213576040805162461bcd60e51b815260206004820152601e60248201527f746865207472616e736665724761732063616e6e6f74206265207a65726f0000604482015290519081900360640190fd5b601155612258565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b600481565b60105460009060ff166002141561233e576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b506010805460ff1916600217905533600090815260066020526040902054806123a2576040805162461bcd60e51b81526020600482015260116024820152701b9bc81c195b991a5b99c81c995dd85c99607a1b604482015290519081900360640190fd5b336000818152600660205260408082208290556011549051919291849084818181858888f193505050503d80600081146123f8576040519150601f19603f3d011682016040523d82523d6000602084013e6123fd565b606091505b5050905080612445576040805162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b604482015290519081900360640190fd5b60408051838152905133917f83b78188b13346b2ffb484da70d42ee27de7fbf9f2bd8045269e10ed643ccd76919081900360200190a2506010805460ff1916600117905590565b6638d7ea4c68000081565b6001600160a01b038083166000908152600760209081526040808320938516835292905220545b92915050565b60015490565b61100281565b33612000146125105760405162461bcd60e51b815260040180806020018281038252602f8152602001806149e3602f913960400191505060405180910390fd5b60005460ff16612553576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b61259282828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061314a92505050565b6125d5576040805162461bcd60e51b815260206004820152600f60248201526e0eee4dedcce40e0c2c6d640d0c2e6d608b1b604482015290519081900360640190fd5b6125dd61481e565b61261f610ed684848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278392505050565b9050600061262f610eeb836127f2565b905061263961481e565b612642836130b9565b1561266057612659610ed6611a8e611999866127f2565b90506126a6565b6040805162461bcd60e51b8152602060048201526016602482015275656d707479206661696c2061636b207061636b61676560501b604482015290519081900360640190fd5b60ff8216600114156126c0576126bb81613c73565b6126ea565b60ff8216600214156126d5576126bb81613e8d565b60ff821660031415610f2a576126bb81613fb7565b5050505b505050565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b61100381565b61200481565b68056bc75e2d6310000081565b601181565b6001600160a01b0392831660009081526009602090815260408083209486168352938152838220929094168152925290205490565b61100081565b60115481565b61100481565b61278b61483e565b506040805180820190915281518152602082810190820152919050565b6127b061481e565b6127b98261411c565b6127c257600080fd5b60006127d18360200151614156565b60208085015160408051808201909152868152920190820152915050919050565b6127fa61483e565b612803826130b9565b61280c57600080fd5b6020820151600061281c826141b9565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061285557508151602110155b61285e57600080fd5b600061286d8360200151614156565b905080836000015110156128c8576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b8251602080850151830180519284900392918310156128ee57826020036101000a820491505b50949350505050565b600060606000806000805b61290b876130b9565b1561295d578261292d57612926612921886127f2565b6142ec565b9150612952565b826001141561294d57612942610eeb886127f2565b905060019350612952565b61295d565b826001019250612902565b836129a3576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b60006110046001600160a01b031663727be1f8836040518263ffffffff1660e01b815260040180828152602001915050602060405180830381600087803b1580156129ed57600080fd5b505af1158015612a01573d6000803e3d6000fd5b505050506040513d6020811015612a1757600080fd5b5051905080612a3c57612a2e600484846065614306565b965096505050505050612ad2565b6001600160a01b038316600090815260066020526040902054612a65908363ffffffff61305f16565b6001600160a01b038416600081815260066020908152604091829020939093558051858152905191927f7cc266c7b444f808013fa187f7b904d470a051a6564e78f482aa496581ba4bf892918290030190a260408051600080825260208201909252909750955050505050505b915091565b600060606000806000806000805b612aee896130b9565b15612b785784612b0b57612b046129218a6127f2565b9350612b6d565b8460011415612b2757612b206129218a6127f2565b9250612b6d565b8460021415612b4757612b3c610eeb8a6127f2565b915060019550612b6d565b8460031415612b6857612b61612b5c8a6127f2565b614402565b9050612b6d565b612b78565b846001019450612ae5565b85612bbe576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b60006110046001600160a01b031663727be1f8846040518263ffffffff1660e01b815260040180828152602001915050602060405180830381600087803b158015612c0857600080fd5b505af1158015612c1c573d6000803e3d6000fd5b505050506040513d6020811015612c3257600080fd5b5051905080612c5957612c49600586856065614306565b9850985050505050505050612ad2565b6001600160a01b038086166000818152600760209081526040808320948916835293815283822082905591815260089091522054612c9d908463ffffffff61305f16565b6001600160a01b0386166000908152600860205260409020558115612d8b576001600160a01b038516600090815260046020526040902054612ce5908463ffffffff612ed716565b6001600160a01b03808716600090815260046020908152604080832094909455600581528382209288168252919091522054612d27908463ffffffff612ed716565b6001600160a01b038087166000818152600560209081526040808320948a16808452948252918290209490945580518781529051929391927fd6f878a5bcbbe79a64e6418bb0d56aaa20b9a60587d45749819df88dfc7c3c44929181900390910190a35b836001600160a01b0316856001600160a01b03167f35a799836f74fac7eccf5c73902823b970543d2274d3b93d8da3d37a255772a2856040518082815260200191505060405180910390a360408051600080825260208201909252909950975050505050505050915091565b60008184841115612e865760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612e4b578181015183820152602001612e33565b50505050905090810190601f168015612e785780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000612ed083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250614446565b9392505050565b6000612ed083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612df7565b60408051600560a21b8318601482015260348101909152606090612ed0816144ab565b60606124be612f4a83614501565b6144ab565b6060815160001415612f705750604080516000815260208101909152610df1565b606082600081518110612f7f57fe5b602002602001015190506000600190505b8351811015612fc057612fb682858381518110612fa957fe5b60200260200101516145e7565b9150600101612f90565b50612ed0612fd3825160c060ff16614664565b826145e7565b6040805160028082526060828101909352829190816020015b6060815260200190600190039081612ff25790505090506130158460ff16612f3c565b8160008151811061302257fe5b6020026020010181905250613036836144ab565b8160018151811061304357fe5b602002602001018190525061305781612f4f565b949350505050565b600082820183811015612ed0576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60006130c361483e565b505080518051602091820151919092015191011190565b80516060906130e857600080fd5b60006130f78360200151614156565b83516040805191839003808352601f19601f820116830160200190915291925060609082801561312e576020820181803683370190505b50905060008160200190506128ee84876020015101828561475c565b8051602080830191909120600e546000908152600a909252604082205480821461317957600092505050610df1565b5050600e80546000908152600a60205260408120558054600190810190915592915050565b60008060008060005b6131b0886130b9565b1561321957836131cd576131c6612921896127f2565b925061320e565b83600114156131e9576131e2612921896127f2565b915061320e565b8360021415613209576131fe610eeb896127f2565b90506001945061320e565b613219565b8360010193506131a7565b8461325f576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6000613276826402540be40063ffffffff6147a716565b6001600160a01b0385166000908152600b602052604090208054600019019055905060ff8816600114156133bc5760ff8716156132e9576040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b6001600160a01b038416600090815260046020526040902054613312908263ffffffff61305f16565b6001600160a01b03808616600090815260046020908152604080832094909455600581528382209287168252919091522054613354908263ffffffff61305f16565b6001600160a01b038086166000818152600560209081526040808320948916808452948252918290209490945580518581529051929391927f9a57c81564ab02642f34fd87e41baa9b074c18342cec3b7268b62bf752018fd1929181900390910190a361354a565b60ff881661350e576001600160a01b0384166000908152600860205260409020546133ed908263ffffffff61305f16565b6001600160a01b0385166000908152600860209081526040808320939093558251630e4f7c3f60e31b81526004810185905292516110049363727be1f89360248083019493928390030190829087803b15801561344957600080fd5b505af115801561345d573d6000803e3d6000fd5b505050506040513d602081101561347357600080fd5b50516134bc576040805162461bcd60e51b81526020600482015260136024820152721dda5d1a191c985dc8189b988819985a5b1959606a1b604482015290519081900360640190fd5b6040805182815260ff8916602082015281516001600160a01b0380871693908816927fcbd481ae600289fad8c0484d07ce0ffe4f010d7c844ecfdeaf2a13fead52886e929081900390910190a361354a565b6040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b505050505050505050565b60008060008060005b613567886130b9565b156135d057836135845761357d612921896127f2565b92506135c5565b83600114156135a057613599612921896127f2565b91506135c5565b83600214156135c0576135b5610eeb896127f2565b9050600194506135c5565b6135d0565b83600101935061355e565b84613616576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b600061362d826402540be40063ffffffff6147a716565b6001600160a01b0385166000908152600c602052604090208054600019019055905060ff8816600114156137ac5760ff8716156136a0576040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b6001600160a01b0384166000908152600460205260409020546136c9908263ffffffff612ed716565b6001600160a01b0380861660009081526004602090815260408083209490945560058152838220928716825291909152205461370b908263ffffffff612ed716565b6001600160a01b0380861660009081526005602090815260408083209388168352929052205561374442620a8c0063ffffffff61305f16565b6001600160a01b038086166000818152600760209081526040808320948916808452948252918290209490945580518581529051929391927fd6f878a5bcbbe79a64e6418bb0d56aaa20b9a60587d45749819df88dfc7c3c44929181900390910190a361354a565b60ff881661350e576001600160a01b03808516600081815260076020908152604080832094881680845294825280832092909255815185815260ff8c169181019190915281517f4417d10c1e33efa83a770b8d4f47176e78c08c1298d534901ad3b16bb585fa2e929181900390910190a361354a565b6000806000806000805b613835896130b9565b156138ba57846138525761384b6129218a6127f2565b93506138af565b846001141561386e576138676129218a6127f2565b92506138af565b846002141561388a576138836129218a6127f2565b91506138af565b84600314156138aa5761389f610eeb8a6127f2565b9050600195506138af565b6138ba565b84600101945061382c565b85613900576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6000613917826402540be40063ffffffff6147a716565b6001600160a01b0386166000908152600d602052604090208054600019019055905060ff891660011415613aea5760ff88161561398a576040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b6001600160a01b038086166000908152600560209081526040808320938816835292905220546139c0908263ffffffff612ed716565b6001600160a01b038681166000908152600560209081526040808320898516845290915280822093909355908516815220546139fc908261305f565b6001600160a01b03808716600090815260056020908152604080832093881683529290522055613a3542620a8c0063ffffffff61305f16565b6001600160a01b0380871660009081526009602090815260408083208985168452825280832093881683529290522055613a7842620a8c0063ffffffff61305f16565b6001600160a01b038087166000818152600960209081526040808320898616808552908352818420958b1680855295835292819020959095558451868152945191947f78bffae3f8c6691ac7fc1a3bff800cb2d612f5ad9ae5b0444cfe2eb15c189e18929081900390910190a4613b7b565b60ff891661350e576001600160a01b038581166000818152600960209081526040808320898616808552818452828520968a16808652968452828520859055908352818420818552835281842093909355805186815260ff8e169281019290925280519293927fb93bee5c59f85ede6b074a99f4ffcd3e3fc0d5c3d8156de331de89a49e0ce77c9281900390910190a45b50505050505050505050565b6000816040516020018082805190602001908083835b60208310613bbc5780518252601f199092019160209182019101613b9d565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310613c2a5780518252601f199092019160209182019101613c0b565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b60008060008060005b613c85866130b9565b15613cee5783613ca257613c9b612921876127f2565b9250613ce3565b8360011415613cbe57613cb7612921876127f2565b9150613ce3565b8360021415613cde57613cd3610eeb876127f2565b905060019450613ce3565b613cee565b836001019350613c7c565b84613d34576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6000613d4b826402540be40063ffffffff6147a716565b6001600160a01b0385166000908152600b6020908152604080832080546000190190556008909152902054909150613d89908263ffffffff61305f16565b6001600160a01b0385166000908152600860209081526040808320939093558251630e4f7c3f60e31b81526004810185905292516110049363727be1f89360248083019493928390030190829087803b158015613de557600080fd5b505af1158015613df9573d6000803e3d6000fd5b505050506040513d6020811015613e0f57600080fd5b5051613e58576040805162461bcd60e51b81526020600482015260136024820152721dda5d1a191c985dc8189b988819985a5b1959606a1b604482015290519081900360640190fd5b6040516001907ff83de021914a4585482db5ca47d520a5657165b443fa2c7ef8ed4635f054da9b90600090a250505050505050565b60008060008060005b613e9f866130b9565b15613f085783613ebc57613eb5612921876127f2565b9250613efd565b8360011415613ed857613ed1612921876127f2565b9150613efd565b8360021415613ef857613eed610eeb876127f2565b905060019450613efd565b613f08565b836001019350613e96565b84613f4e576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6001600160a01b038084166000908152600c60209081526040808320805460001901905560078252808320938616835292905281812081905590516002917ff83de021914a4585482db5ca47d520a5657165b443fa2c7ef8ed4635f054da9b91a2505050505050565b6000806000806000805b613fca876130b9565b1561404f5784613fe757613fe0612921886127f2565b9350614044565b846001141561400357613ffc612921886127f2565b9250614044565b846002141561401f57614018612921886127f2565b9150614044565b846003141561403f57614034610eeb886127f2565b905060019550614044565b61404f565b846001019450613fc1565b85614095576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6001600160a01b038481166000908152600d602090815260408083208054600019019055600982528083208785168085528184528285209588168552948352818420849055825280832093835292905281812081905590516003917ff83de021914a4585482db5ca47d520a5657165b443fa2c7ef8ed4635f054da9b91a250505050505050565b805160009061412d57506000610df1565b6020820151805160001a9060c082101561414c57600092505050610df1565b5060019392505050565b8051600090811a6080811015614170576000915050610df1565b60b881108061418b575060c0811080159061418b575060f881105b1561419a576001915050610df1565b60c08110156141ae5760b519019050610df1565b60f519019050610df1565b80516000908190811a60808110156141d457600191506142e5565b60b88110156141e957607e19810191506142e5565b60c081101561426357600060b78203600186019550806020036101000a86510491506001810182019350508083101561425d576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b506142e5565b60f88110156142785760be19810191506142e5565b600060f78203600186019550806020036101000a8651049150600181018201935050808310156142e3576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b80516000906015146142fd57600080fd5b6124be82612840565b6000606061431f846402540be40063ffffffff612e8e16565b60408051600480825260a0820190925291955060609190816020015b606081526020019060019003908161433b57905050905061435e8760ff16612f3c565b8160008151811061436b57fe5b6020026020010181905250614388866001600160a01b0316612f19565b8160018151811061439557fe5b60200260200101819052506143a985612f3c565b816002815181106143b657fe5b60200260200101819052506143d08463ffffffff16612f3c565b816003815181106143dd57fe5b602002602001018190525060606143f382612f4f565b94989497509395505050505050565b805160009060011461441357600080fd5b6020820151805160001a9081158061442b5750608082145b1561443b57600092505050610df1565b600192505050610df1565b600081836144955760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315612e4b578181015183820152602001612e33565b5060008385816144a157fe5b0495945050505050565b6060815160011480156144dd5750607f60f81b826000815181106144cb57fe5b01602001516001600160f81b03191611155b156144e9575080610df1565b6124be6144fb8351608060ff16614664565b836145e7565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff19841661454557506018614569565b6fffffffffffffffffffffffffffffffff19841661456557506010614569565b5060005b602081101561459f5781818151811061457e57fe5b01602001516001600160f81b031916156145975761459f565b600101614569565b60008160200390506060816040519080825280601f01601f1916602001820160405280156145d4576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b81831015614618578051835260209283019201614600565b50855184518101855292509050808201602086015b8183101561464557805183526020928301920161462d565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106146b4576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b6040805160018082528183019092526060916020820181803683370190505090506037841161470e5782840160f81b816000815181106146f057fe5b60200101906001600160f81b031916908160001a90535090506124be565b606061471985614501565b90508381510160370160f81b8260008151811061473257fe5b60200101906001600160f81b031916908160001a90535061475382826145e7565b95945050505050565b80614766576126ee565b5b60208110614786578251825260209283019290910190601f1901614767565b915181516020939093036101000a6000190180199091169216919091179052565b6000826147b6575060006124be565b828202828482816147c357fe5b0414612ed05760405162461bcd60e51b81526004018080602001828103825260218152602001806148e76021913960400191505060405180910390fd5b60405180606001604052806003906020820280368337509192915050565b604051806040016040528061483161483e565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe7468652042534352656c61796572466565206d6f642074656e20646563696d616c73206d757374206265207a65726f7468652042534352656c61796572466565206d757374206265206c657373207468616e2072656c61796572466565746865206d696e44656c65676174696f6e206d7573742062652067726561746572207468616e2072656c61796572466565536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f777468652072656c61796572466565206d6f642074656e20646563696d616c73206d757374206265207a65726f746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163747468652072656c61796572466565206d757374206265206c657373207468616e206d696e44656c65676174696f6e7468652072656c61796572466565206d757374206265206d6f7265207468616e2042534352656c61796572466565696e73756666696369656e742062616c616e636520616674657220756e64656c6567617465746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e74726163747468652042534352656c61796572466565206d757374206e6f74206265207a65726fa164736f6c6343000604000a" + }, + "0x0000000000000000000000000000000000002002": { + "balance": "0x0", + "code": "0x608060405260043610620003db5760003560e01c806386d545061162000203578063d115a2061162000117578063e992aaf511620000ad578063f80a34021162000078578063f80a34021462000bf0578063fb50b31f1462000c15578063fc0c5ff11462000c3a578063ff69ab611462000c5257600080fd5b8063e992aaf51462000b6d578063efdbf0e11462000b85578063f1f74d841462000bc1578063f1fad1041462000bd957600080fd5b8063d8ca511f11620000ee578063d8ca511f1462000b00578063daacdb661462000b18578063dbda7fb31462000b30578063e8f67c3b1462000b5557600080fd5b8063d115a2061462000a9d578063d6ca429d1462000ab6578063d7c2dfc81462000adb57600080fd5b8063b187bd261162000199578063c38fbec81162000164578063c38fbec81462000a1f578063c473318f1462000a44578063c8509d81146200083d578063cbb04d9d1462000a5c57600080fd5b8063b187bd26146200098c578063baa7199e14620009ac578063bdceadf314620009d1578063bff02e2014620009e957600080fd5b8063982ef0a711620001da578063982ef0a714620008f7578063a43569b3146200090e578063aad3ec961462000942578063ac431751146200096757600080fd5b806386d54506146200087a5780638a4d3fa814620008b45780638cd22b2214620008d257600080fd5b80634bf6c88211620002fb578063663706d3116200029157806376e7d6d6116200025c57806376e7d6d6146200080d5780638129fc1c1462000825578063831d65d1146200083d5780638456cb59146200086257600080fd5b8063663706d3146200073a5780636ec01b27146200076b5780636f8e2fa414620007c357806375cc7d8914620007e857600080fd5b80635949187111620002d25780635949187114620006a25780635e7cc1c914620006c757806363a036b514620006ec57806364028fbd146200072357600080fd5b80634bf6c882146200063b5780634d99dd1614620006655780634e6fd6c4146200068a57600080fd5b80631fa8882b1162000371578063449ecfe61162000348578063449ecfe6146200058757806345211bfd14620005ac5780634838d16514620005d15780634a49ac4c146200061657600080fd5b80631fa8882b146200053157806338409988146200054a578063417c73a7146200056257600080fd5b8063092193ab11620003b2578063092193ab146200047c5780630e9fbf5114620004935780631182b87514620004b857806317b4f35314620004ec57600080fd5b8063046f7da214620003fb578063059ddd2214620004135780630661806e146200045557600080fd5b36620003f65760345460ff16600114620003f457600080fd5b005b600080fd5b3480156200040857600080fd5b50620003f462000c6a565b3480156200042057600080fd5b50620004386200043236600462009442565b62000cfc565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156200046257600080fd5b506200046d60365481565b6040519081526020016200044c565b620003f46200048d36600462009442565b62001111565b348015620004a057600080fd5b50620003f4620004b2366004620094a6565b6200174f565b348015620004c557600080fd5b50620004dd620004d7366004620094eb565b62001a7b565b6040516200044c91906200959e565b348015620004f957600080fd5b50620004386200050b36600462009694565b80516020818301810180516045825292820191909301209152546001600160a01b031681565b3480156200053e57600080fd5b506200046d6201518081565b3480156200055757600080fd5b506200046d60375481565b3480156200056f57600080fd5b50620003f46200058136600462009442565b62001dee565b3480156200059457600080fd5b50620003f4620005a636600462009442565b62001e70565b348015620005b957600080fd5b50620003f4620005cb36600462009442565b62002055565b348015620005de57600080fd5b5062000605620005f036600462009442565b60016020526000908152604090205460ff1681565b60405190151581526020016200044c565b3480156200062357600080fd5b50620003f46200063536600462009442565b62002232565b3480156200064857600080fd5b5062000652600881565b60405160ff90911681526020016200044c565b3480156200067257600080fd5b50620003f462000684366004620096e9565b620022ae565b3480156200069757600080fd5b506200043861dead81565b348015620006af57600080fd5b50620003f4620006c136600462009727565b620028cb565b348015620006d457600080fd5b50620003f4620006e636600462009797565b6200369e565b348015620006f957600080fd5b50620007116200070b366004620097b7565b620038a6565b6040516200044c949392919062009820565b620003f462000734366004620098dc565b62003f38565b3480156200074757600080fd5b506200046d6200075936600462009442565b60446020526000908152604090205481565b3480156200077857600080fd5b50620007906200078a36600462009442565b62004582565b6040805182516001600160401b03908116825260208085015182169083015292820151909216908201526060016200044c565b348015620007d057600080fd5b50620004dd620007e236600462009442565b6200462c565b348015620007f557600080fd5b50620003f46200080736600462009442565b62004a45565b3480156200081a57600080fd5b506200046d603d5481565b3480156200083257600080fd5b50620003f462004c17565b3480156200084a57600080fd5b50620003f46200085c366004620094eb565b62004f2e565b3480156200086f57600080fd5b50620003f462004f98565b3480156200088757600080fd5b50620004386200089936600462009442565b6043602052600090815260409020546001600160a01b031681565b348015620008c157600080fd5b506200046d670de0b6b3a764000081565b348015620008df57600080fd5b506200046d620008f1366004620096e9565b62005030565b620003f462000908366004620099b4565b620050e9565b3480156200091b57600080fd5b50620009336200092d36600462009442565b62005773565b6040516200044c9190620099f2565b3480156200094f57600080fd5b50620003f462000961366004620096e9565b62005a60565b3480156200097457600080fd5b50620003f46200098636600462009a6f565b62005acd565b3480156200099957600080fd5b5060005462010000900460ff1662000605565b348015620009b957600080fd5b50620003f4620009cb36600462009b28565b6200696c565b348015620009de57600080fd5b506200046d603c5481565b348015620009f657600080fd5b5062000a0e62000a08366004620097b7565b62006b39565b6040516200044c9392919062009b84565b34801562000a2c57600080fd5b50620003f462000a3e36600462009442565b62006d15565b34801562000a5157600080fd5b506200046d60385481565b34801562000a6957600080fd5b5062000a8162000a7b36600462009442565b62006fd7565b604080519384529115156020840152908201526060016200044c565b34801562000aaa57600080fd5b506200046d620186a081565b34801562000ac357600080fd5b50620003f462000ad536600462009be1565b62007407565b34801562000ae857600080fd5b50620003f462000afa36600462009cca565b6200760b565b34801562000b0d57600080fd5b506200046d603b5481565b34801562000b2557600080fd5b506200046d60495481565b34801562000b3d57600080fd5b506200043862000b4f36600462009442565b62007701565b34801562000b6257600080fd5b506200046d60355481565b34801562000b7a57600080fd5b506200046d603a5481565b34801562000b9257600080fd5b506200046d62000ba436600462009694565b805160208183018101805160468252928201919093012091525481565b34801562000bce57600080fd5b506200046d603e5481565b34801562000be657600080fd5b5062000652601181565b34801562000bfd57600080fd5b506200046d62000c0f366004620096e9565b62007b18565b34801562000c2257600080fd5b50620003f462000c3436600462009a6f565b62007b89565b34801562000c4757600080fd5b506200046d60395481565b34801562000c5f57600080fd5b506200046d604a5481565b600054630100000090046001600160a01b0316331462000c9d576040516306fbb1e360e01b815260040160405180910390fd5b60005462010000900460ff1662000cc757604051636cd6020160e01b815260040160405180910390fd5b6000805462ff0000191681556040517f62451d457bc659158be6e6247f56ec1df424a5c7597f71c20c2bc44e0965c8f99190a1565b6001600160a01b038082166000908152604160209081526040808320815161016081018352815486168152600182015486169381019390935260028101549094169082015260038301546060820152600483018054929384939091608084019162000d679062009d30565b80601f016020809104026020016040519081016040528092919081815260200182805462000d959062009d30565b801562000de65780601f1062000dba5761010080835404028352916020019162000de6565b820191906000526020600020905b81548152906001019060200180831162000dc857829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462000e119062009d30565b80601f016020809104026020016040519081016040528092919081815260200182805462000e3f9062009d30565b801562000e905780601f1062000e645761010080835404028352916020019162000e90565b820191906000526020600020905b81548152906001019060200180831162000e7257829003601f168201915b5050505050815260200160018201805462000eab9062009d30565b80601f016020809104026020016040519081016040528092919081815260200182805462000ed99062009d30565b801562000f2a5780601f1062000efe5761010080835404028352916020019162000f2a565b820191906000526020600020905b81548152906001019060200180831162000f0c57829003601f168201915b5050505050815260200160028201805462000f459062009d30565b80601f016020809104026020016040519081016040528092919081815260200182805462000f739062009d30565b801562000fc45780601f1062000f985761010080835404028352916020019162000fc4565b820191906000526020600020905b81548152906001019060200180831162000fa657829003601f168201915b5050505050815260200160038201805462000fdf9062009d30565b80601f01602080910402602001604051908101604052809291908181526020018280546200100d9062009d30565b80156200105e5780601f1062001032576101008083540402835291602001916200105e565b820191906000526020600020905b8154815290600101906020018083116200104057829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b815481526020019060010190808311620010ea575050509190925250509051949350505050565b33611000146200113d57604051630f22c43960e41b815261100060048201526024015b60405180910390fd5b6001600160a01b03808216600090815260436020908152604080832054841680845260418352818420825161016081018452815487168152600182015487169481019490945260028101549095169183019190915260038401546060830152600484018054919491608084019190620011b69062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620011e49062009d30565b8015620012355780601f10620012095761010080835404028352916020019162001235565b820191906000526020600020905b8154815290600101906020018083116200121757829003601f168201915b5050505050815260200160058201604051806080016040529081600082018054620012609062009d30565b80601f01602080910402602001604051908101604052809291908181526020018280546200128e9062009d30565b8015620012df5780601f10620012b357610100808354040283529160200191620012df565b820191906000526020600020905b815481529060010190602001808311620012c157829003601f168201915b50505050508152602001600182018054620012fa9062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620013289062009d30565b8015620013795780601f106200134d5761010080835404028352916020019162001379565b820191906000526020600020905b8154815290600101906020018083116200135b57829003601f168201915b50505050508152602001600282018054620013949062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620013c29062009d30565b8015620014135780601f10620013e75761010080835404028352916020019162001413565b820191906000526020600020905b815481529060010190602001808311620013f557829003601f168201915b505050505081526020016003820180546200142e9062009d30565b80601f01602080910402602001604051908101604052809291908181526020018280546200145c9062009d30565b8015620014ad5780601f106200148157610100808354040283529160200191620014ad565b820191906000526020600020905b8154815290600101906020018083116200148f57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b81548152602001906001019080831162001539575050509190925250505060408101519091506001600160a01b031615806200157657508060e001515b156200163357604051611002903490600081818185875af1925050503d8060008114620015c0576040519150601f19603f3d011682016040523d82523d6000602084013e620015c5565b606091505b505050816001600160a01b03167ffc8bff675087dd2da069cc3fb517b9ed001e19750c0865241a5542dba1ba170d604051620016269060208082526011908201527024a72b20a624a22fab20a624a220aa27a960791b604082015260600190565b60405180910390a2505050565b60408181015160c0830151519151632f303ebb60e11b81526001600160401b0390921660048301526001600160a01b031690635e607d769034906024016000604051808303818588803b1580156200168a57600080fd5b505af11580156200169f573d6000803e3d6000fd5b5050505050816001600160a01b03167fe34918ff1c7084970068b53fd71ad6d8b04e9f15d3886cbf006443e6cdc52ea634604051620016e091815260200190565b60405180910390a26040808201519051633041949b60e01b815261200591633041949b91620017159190869060040162009d66565b600060405180830381600087803b1580156200173057600080fd5b505af115801562001745573d6000803e3d6000fd5b5050505050505b50565b33611001146200177757604051630f22c43960e41b8152611001600482015260240162001134565b60005462010000900460ff1615620017a257604051631785c68160e01b815260040160405180910390fd5b600060458383604051620017b892919062009d80565b908152604051908190036020019020546001600160a01b03169050620017e0603f8262007ddd565b620017fe5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b03811660009081526041602052604081209062001826620151804262009da6565b604a546000828152604b6020526040902054919250116200185a5760405163bd52fcdb60e01b815260040160405180910390fd5b6000818152604b602052604081208054600192906200187b90849062009dc9565b909155505060405160469062001895908790879062009d80565b908152602001604051809103902054600014158015620018e65750426201518060468787604051620018c992919062009d80565b908152602001604051809103902054620018e4919062009dc9565b105b156200190557604051631898eb6b60e01b815260040160405180910390fd5b6000806200191585600262007e00565b91509150816200193857604051631b919bb160e11b815260040160405180910390fd5b6002840154603c5460405163045bc4d160e41b815260048101919091526000916001600160a01b0316906345bc4d10906024016020604051808303816000875af11580156200198b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620019b1919062009ddf565b9050620019bf858362007e8a565b856001600160a01b03167f6e9a2ee7aee95665e3a774a212eb11441b217e3e4656ab9563793094689aabb283836002604051620019ff9392919062009e0f565b60405180910390a26002850154604051633041949b60e01b815261200591633041949b9162001a3d916001600160a01b0316908a9060040162009d66565b600060405180830381600087803b15801562001a5857600080fd5b505af115801562001a6d573d6000803e3d6000fd5b505050505050505050505050565b6060336120001462001aa557604051630f22c43960e41b8152612000600482015260240162001134565b60005462010000900460ff161562001ad057604051631785c68160e01b815260040160405180910390fd5b6034805460ff19166001179055604080516020601f8501819004810282018101909252838152600091829162001b219187908790819084018382808284376000920191909152506200805192505050565b915091508062001b445760405163035ede3560e21b815260040160405180910390fd5b816060015160000362001b6a575050604080516000815260208101909152905062001ddd565b606082015160405163e04c83a760e01b81526000916110049163e04c83a79162001b9a9160040190815260200190565b6020604051808303816000875af115801562001bba573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001be0919062009e3e565b90508062001c875782602001516001600160a01b031683600001516001600160a01b03167fa9084c89a291b43bc984e045671d394974730a159b9a826b577bb148ab504c3a8560600151600160405162001c3c92919062009e5e565b60405180910390a385858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092965062001ddd95505050505050565b600062001c9484620081b4565b9050600081600481111562001cad5762001cad62009df9565b0362001ccf575050604080516000815260208101909152925062001ddd915050565b6040516000906110049047908381818185875af1925050503d806000811462001d15576040519150601f19603f3d011682016040523d82523d6000602084013e62001d1a565b606091505b505090508062001d3d576040516312171d8360e31b815260040160405180910390fd5b84602001516001600160a01b031685600001516001600160a01b03167fa9084c89a291b43bc984e045671d394974730a159b9a826b577bb148ab504c3a87606001518560405162001d9092919062009e5e565b60405180910390a387878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092985062001ddd975050505050505050565b6034805460ff191690559392505050565b600054630100000090046001600160a01b0316331462001e21576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b0381166000818152600160208190526040808320805460ff1916909217909155517f7fd26be6fc92aff63f1f4409b2b2ddeb272a888031d7f55ec830485ec61941869190a250565b60005462010000900460ff161562001e9b57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161562001ecd5760405163b1d02c3d60e01b815260040160405180910390fd5b8062001edb603f8262007ddd565b62001ef95760405163056e881160e01b815260040160405180910390fd5b6001600160a01b0382166000908152604160205260409020600a81015460ff1662001f3757604051634b6b857d60e01b815260040160405180910390fd5b6036546002820154604051630913db4760e01b81526001600160a01b03868116600483015290911690630913db4790602401602060405180830381865afa15801562001f87573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001fad919062009ddf565b101562001fcd576040516317b204bf60e11b815260040160405180910390fd5b4281600b0154111562001ff35760405163170cb76760e21b815260040160405180910390fd5b600a8101805460ff1916905560498054600191906000906200201790849062009e85565b90915550506040516001600160a01b038416907f9390b453426557da5ebdc31f19a37753ca04addf656d32f35232211bb2af3f1990600090a2505050565b60005462010000900460ff16156200208057604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620020b25760405163b1d02c3d60e01b815260040160405180910390fd5b33620020c0603f8262007ddd565b620020de5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b0382166200210657604051636520611b60e11b815260040160405180910390fd5b6001600160a01b03828116600090815260436020526040902054161515806200214757506001600160a01b03821660009081526047602052604090205460ff165b156200216657604051631e6f587560e11b815260040160405180910390fd5b336000818152604160205260409020600c81015442906200218c90620151809062009dc9565b1115620021ac57604051631f92cdbd60e11b815260040160405180910390fd5b80546001600160a01b039081166000908152604460209081526040808320429081905585548986166001600160a01b031991821681178855600c88019290925581855260439093528184208054958816959093168517909255519092917f6e4e747ca35203f16401c69805c7dd52fff67ef60b0ebc5c7fe16890530f223591a350505050565b600054630100000090046001600160a01b0316331462002265576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b038116600081815260016020526040808220805460ff19169055517fe0db3499b7fdc3da4cddff5f45d694549c19835e7f719fb5606d3ad1a5de40119190a250565b60005462010000900460ff1615620022d957604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff16156200230b5760405163b1d02c3d60e01b815260040160405180910390fd5b8162002319603f8262007ddd565b620023375760405163056e881160e01b815260040160405180910390fd5b816000036200235957604051639811e0c760e01b815260040160405180910390fd5b6001600160a01b0380841660009081526041602090815260408083208151610160810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180543394916080840191620023c19062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620023ef9062009d30565b8015620024405780601f10620024145761010080835404028352916020019162002440565b820191906000526020600020905b8154815290600101906020018083116200242257829003601f168201915b50505050508152602001600582016040518060800160405290816000820180546200246b9062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620024999062009d30565b8015620024ea5780601f10620024be57610100808354040283529160200191620024ea565b820191906000526020600020905b815481529060010190602001808311620024cc57829003601f168201915b50505050508152602001600182018054620025059062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620025339062009d30565b8015620025845780601f10620025585761010080835404028352916020019162002584565b820191906000526020600020905b8154815290600101906020018083116200256657829003601f168201915b505050505081526020016002820180546200259f9062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620025cd9062009d30565b80156200261e5780601f10620025f2576101008083540402835291602001916200261e565b820191906000526020600020905b8154815290600101906020018083116200260057829003601f168201915b50505050508152602001600382018054620026399062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620026679062009d30565b8015620026b85780601f106200268c57610100808354040283529160200191620026b8565b820191906000526020600020905b8154815290600101906020018083116200269a57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b81548152602001906001019080831162002744575050509190925250505060408082015190516326ccee8b60e11b81526001600160a01b0385811660048301526024820188905292935060009290911690634d99dd16906044016020604051808303816000875af1158015620027be573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620027e4919062009ddf565b9050826001600160a01b0316866001600160a01b03167f3aace7340547de7b9156593a7652dc07ee900cea3fd8f82cb6c9d38b40829802878460405162002835929190918252602082015260400190565b60405180910390a3856001600160a01b0316836001600160a01b031603620028625762002862866200880a565b6040808301519051633041949b60e01b815261200591633041949b916200288f9190879060040162009d66565b600060405180830381600087803b158015620028aa57600080fd5b505af1158015620028bf573d6000803e3d6000fd5b50505050505050505050565b60005462010000900460ff1615620028f657604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620029285760405163b1d02c3d60e01b815260040160405180910390fd5b8362002936603f8262007ddd565b620029545760405163056e881160e01b815260040160405180910390fd5b8362002962603f8262007ddd565b620029805760405163056e881160e01b815260040160405180910390fd5b6034805460ff191660011790556000849003620029b057604051639811e0c760e01b815260040160405180910390fd5b846001600160a01b0316866001600160a01b031603620029e35760405163f0e3e62960e01b815260040160405180910390fd5b6001600160a01b038087166000908152604160209081526040808320815161016081018352815486168152600182015486169381019390935260028101549094169082015260038301546060820152600483018054339491608084019162002a4b9062009d30565b80601f016020809104026020016040519081016040528092919081815260200182805462002a799062009d30565b801562002aca5780601f1062002a9e5761010080835404028352916020019162002aca565b820191906000526020600020905b81548152906001019060200180831162002aac57829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462002af59062009d30565b80601f016020809104026020016040519081016040528092919081815260200182805462002b239062009d30565b801562002b745780601f1062002b485761010080835404028352916020019162002b74565b820191906000526020600020905b81548152906001019060200180831162002b5657829003601f168201915b5050505050815260200160018201805462002b8f9062009d30565b80601f016020809104026020016040519081016040528092919081815260200182805462002bbd9062009d30565b801562002c0e5780601f1062002be25761010080835404028352916020019162002c0e565b820191906000526020600020905b81548152906001019060200180831162002bf057829003601f168201915b5050505050815260200160028201805462002c299062009d30565b80601f016020809104026020016040519081016040528092919081815260200182805462002c579062009d30565b801562002ca85780601f1062002c7c5761010080835404028352916020019162002ca8565b820191906000526020600020905b81548152906001019060200180831162002c8a57829003601f168201915b5050505050815260200160038201805462002cc39062009d30565b80601f016020809104026020016040519081016040528092919081815260200182805462002cf19062009d30565b801562002d425780601f1062002d165761010080835404028352916020019162002d42565b820191906000526020600020905b81548152906001019060200180831162002d2457829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b81548152602001906001019080831162002dce57505050919092525050506001600160a01b0380891660009081526041602090815260408083208151610160810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180549495509193909291608084019162002e599062009d30565b80601f016020809104026020016040519081016040528092919081815260200182805462002e879062009d30565b801562002ed85780601f1062002eac5761010080835404028352916020019162002ed8565b820191906000526020600020905b81548152906001019060200180831162002eba57829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462002f039062009d30565b80601f016020809104026020016040519081016040528092919081815260200182805462002f319062009d30565b801562002f825780601f1062002f565761010080835404028352916020019162002f82565b820191906000526020600020905b81548152906001019060200180831162002f6457829003601f168201915b5050505050815260200160018201805462002f9d9062009d30565b80601f016020809104026020016040519081016040528092919081815260200182805462002fcb9062009d30565b80156200301c5780601f1062002ff0576101008083540402835291602001916200301c565b820191906000526020600020905b81548152906001019060200180831162002ffe57829003601f168201915b50505050508152602001600282018054620030379062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620030659062009d30565b8015620030b65780601f106200308a57610100808354040283529160200191620030b6565b820191906000526020600020905b8154815290600101906020018083116200309857829003601f168201915b50505050508152602001600382018054620030d19062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620030ff9062009d30565b8015620031505780601f10620031245761010080835404028352916020019162003150565b820191906000526020600020905b8154815290600101906020018083116200313257829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b815481526020019060010190808311620031dc5750505050508152505090508060e0015180156200321f5750876001600160a01b0316836001600160a01b031614155b156200323e57604051636468920360e01b815260040160405180910390fd5b60408083015190516352e82ce560e11b81526001600160a01b038581166004830152602482018a9052600092169063a5d059ca906044016020604051808303816000875af115801562003295573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620032bb919062009ddf565b9050603754811015620032e15760405163dc6f0bdd60e01b815260040160405180910390fd5b896001600160a01b0316846001600160a01b03161480156200337657506036546040808501519051630913db4760e01b81526001600160a01b038d8116600483015290911690630913db4790602401602060405180830381865afa1580156200334e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003374919062009ddf565b105b1562003395576040516317b204bf60e11b815260040160405180910390fd5b6000620186a0603a5483620033ab919062009e9b565b620033b7919062009da6565b9050600083604001516001600160a01b03168260405160006040518083038185875af1925050503d80600081146200340c576040519150601f19603f3d011682016040523d82523d6000602084013e62003411565b606091505b505090508062003434576040516312171d8360e31b815260040160405180910390fd5b62003440828462009e85565b60408086015190516317066a5760e21b81526001600160a01b03898116600483015292955060009290911690635c19a95c90869060240160206040518083038185885af115801562003496573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190620034bd919062009ddf565b9050866001600160a01b03168c6001600160a01b03168e6001600160a01b03167ffdac6e81913996d95abcc289e90f2d8bd235487ce6fe6f821e7d21002a1915b48e858960405162003522939291909283526020830191909152604082015260600190565b60405180910390a460408051600280825260608201835260009260208301908036833701905050905086604001518160008151811062003566576200356662009eb5565b60200260200101906001600160a01b031690816001600160a01b031681525050856040015181600181518110620035a157620035a162009eb5565b6001600160a01b0390921660209283029190910190910152604051634484077560e01b815261200590634484077590620035e29084908c9060040162009ecb565b600060405180830381600087803b158015620035fd57600080fd5b505af115801562003612573d6000803e3d6000fd5b505050508a1562003684576120056001600160a01b031663e5ed5b1e898f6040518363ffffffff1660e01b81526004016200364f92919062009d66565b600060405180830381600087803b1580156200366a57600080fd5b505af11580156200367f573d6000803e3d6000fd5b505050505b50506034805460ff19169055505050505050505050505050565b60005462010000900460ff1615620036c957604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620036fb5760405163b1d02c3d60e01b815260040160405180910390fd5b3362003709603f8262007ddd565b620037275760405163056e881160e01b815260040160405180910390fd5b336000818152604160205260409020600c81015442906200374d90620151809062009dc9565b11156200376d57604051631f92cdbd60e11b815260040160405180910390fd5b60098101546001600160401b03600160401b90910481169085161115620037a75760405163dc81db8560e01b815260040160405180910390fd5b60098101546000906001600160401b039081169086161015620037e5576009820154620037df9086906001600160401b031662009ef7565b620037ff565b6009820154620037ff906001600160401b03168662009ef7565b60098301546001600160401b039182169250600160801b9004168111156200383a5760405163dc81db8560e01b815260040160405180910390fd5b60098201805467ffffffffffffffff19166001600160401b03871690811790915542600c8401556040519081526001600160a01b038416907f78cdd96edf59e09cfd4d26ef6ef6c92d166effe6a40970c54821206d541932cb9060200160405180910390a25050505050565b60608060606000620038b9603f62008930565b90508086101562003f2f578415620038d25784620038d4565b805b9450600085620038e5888462009e85565b11620038fd57620038f7878362009e85565b620038ff565b855b9050806001600160401b038111156200391c576200391c620095b3565b60405190808252806020026020018201604052801562003946578160200160208202803683370190505b509450806001600160401b03811115620039645762003964620095b3565b6040519080825280602002602001820160405280156200398e578160200160208202803683370190505b509350806001600160401b03811115620039ac57620039ac620095b3565b604051908082528060200260200182016040528015620039e157816020015b6060815260200190600190039081620039cb5790505b50925060005b8181101562003f2c57600062003a0b62003a02838b62009dc9565b603f906200893b565b6001600160a01b0380821660009081526041602090815260408083208151610160810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180549495509193909291608084019162003a789062009d30565b80601f016020809104026020016040519081016040528092919081815260200182805462003aa69062009d30565b801562003af75780601f1062003acb5761010080835404028352916020019162003af7565b820191906000526020600020905b81548152906001019060200180831162003ad957829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462003b229062009d30565b80601f016020809104026020016040519081016040528092919081815260200182805462003b509062009d30565b801562003ba15780601f1062003b755761010080835404028352916020019162003ba1565b820191906000526020600020905b81548152906001019060200180831162003b8357829003601f168201915b5050505050815260200160018201805462003bbc9062009d30565b80601f016020809104026020016040519081016040528092919081815260200182805462003bea9062009d30565b801562003c3b5780601f1062003c0f5761010080835404028352916020019162003c3b565b820191906000526020600020905b81548152906001019060200180831162003c1d57829003601f168201915b5050505050815260200160028201805462003c569062009d30565b80601f016020809104026020016040519081016040528092919081815260200182805462003c849062009d30565b801562003cd55780601f1062003ca95761010080835404028352916020019162003cd5565b820191906000526020600020905b81548152906001019060200180831162003cb757829003601f168201915b5050505050815260200160038201805462003cf09062009d30565b80601f016020809104026020016040519081016040528092919081815260200182805462003d1e9062009d30565b801562003d6f5780601f1062003d435761010080835404028352916020019162003d6f565b820191906000526020600020905b81548152906001019060200180831162003d5157829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b81548152602001906001019080831162003dfb575050505050815250509050806000015188848151811062003e345762003e3462009eb5565b60200260200101906001600160a01b031690816001600160a01b0316815250508060e0015162003ecd5780604001516001600160a01b03166315d1f8986040518163ffffffff1660e01b8152600401602060405180830381865afa15801562003ea1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003ec7919062009ddf565b62003ed0565b60005b87848151811062003ee55762003ee562009eb5565b602002602001018181525050806080015186848151811062003f0b5762003f0b62009eb5565b602002602001018190525050508062003f249062009f1a565b9050620039e7565b50505b92959194509250565b60005462010000900460ff161562003f6357604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161562003f955760405163b1d02c3d60e01b815260040160405180910390fd5b3362003fa3603f8262007ddd565b1562003fc257604051635f28f62b60e01b815260040160405180910390fd5b6001600160a01b03888116600090815260436020526040902054161515806200400357506001600160a01b03881660009081526047602052604090205460ff165b156200402257604051631e6f587560e11b815260040160405180910390fd5b60006001600160a01b0316604588886040516200404192919062009d80565b908152604051908190036020019020546001600160a01b03161415806200408b5750604887876040516200407792919062009d80565b9081526040519081900360200190205460ff165b15620040aa576040516311fdb94760e01b815260040160405180910390fd5b6000620040b8838062009f36565b604051602001620040cb92919062009d80565b60408051601f1981840301815291815281516020928301206000818152604290935291205490915060ff1615620041155760405163c0bf414360e01b815260040160405180910390fd5b60006200412b670de0b6b3a76400003462009e85565b905060365481101562004151576040516317b204bf60e11b815260040160405180910390fd5b6001600160a01b038a166200417957604051636520611b60e11b815260040160405180910390fd5b6113886200418e604087016020880162009797565b6001600160401b03161180620041d45750620041b1604086016020870162009797565b6001600160401b0316620041c9602087018762009797565b6001600160401b0316115b80620042135750620041ed604086016020870162009797565b6001600160401b031662004208606087016040880162009797565b6001600160401b0316115b15620042325760405163dc81db8560e01b815260040160405180910390fd5b6200427d62004242858062009f36565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506200894992505050565b6200429b57604051635dba5ad760e01b815260040160405180910390fd5b620042aa838a8a8a8a62008aeb565b620042c857604051631647e3cb60e11b815260040160405180910390fd5b60006200431684620042db878062009f36565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525062008c1b92505050565b905062004325603f8562008d1c565b506000838152604260209081526040808320805460ff191660019081179091556001600160a01b0380891680865260419094529190932080548f83166001600160a01b031991821617825593810180548516909317909255600282018054918516919093161790915542600382015560048101620043a58b8d8362009fde565b508560058201620043b782826200a0a6565b5087905060098201620043cb82826200a1df565b505042600c8201556001600160a01b038c81166000908152604360205260409081902080546001600160a01b0319169288169290921790915551859060459062004419908e908e9062009d80565b908152602001604051809103902060006101000a8154816001600160a01b0302191690836001600160a01b03160217905550816001600160a01b0316856001600160a01b03168d6001600160a01b03167faecd9fb95e79c75a3a1de93362c6be5fe6ab65770d8614be583884161cd8228d8e8e6040516200449c9291906200a2af565b60405180910390a460408051848152602081018590526001600160a01b0387169182916000805160206200b5b6833981519152910160405180910390a360408051670de0b6b3a7640000808252602082015261dead916001600160a01b038816916000805160206200b5b6833981519152910160405180910390a3604051633041949b60e01b815261200590633041949b9062004540908590899060040162009d66565b600060405180830381600087803b1580156200455b57600080fd5b505af115801562004570573d6000803e3d6000fd5b50505050505050505050505050505050565b604080516060810182526000808252602082018190529181019190915281620045ad603f8262007ddd565b620045cb5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b03831660009081526041602090815260409182902082516060810184526009909101546001600160401b038082168352600160401b8204811693830193909352600160801b90049091169181019190915291505b50919050565b6001600160a01b03808216600090815260416020908152604080832081516101608101835281548616815260018201548616938101939093526002810154909416908201526003830154606082810191909152600484018054919491608084019190620046999062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620046c79062009d30565b8015620047185780601f10620046ec5761010080835404028352916020019162004718565b820191906000526020600020905b815481529060010190602001808311620046fa57829003601f168201915b5050505050815260200160058201604051806080016040529081600082018054620047439062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620047719062009d30565b8015620047c25780601f106200479657610100808354040283529160200191620047c2565b820191906000526020600020905b815481529060010190602001808311620047a457829003601f168201915b50505050508152602001600182018054620047dd9062009d30565b80601f01602080910402602001604051908101604052809291908181526020018280546200480b9062009d30565b80156200485c5780601f1062004830576101008083540402835291602001916200485c565b820191906000526020600020905b8154815290600101906020018083116200483e57829003601f168201915b50505050508152602001600282018054620048779062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620048a59062009d30565b8015620048f65780601f10620048ca57610100808354040283529160200191620048f6565b820191906000526020600020905b815481529060010190602001808311620048d857829003601f168201915b50505050508152602001600382018054620049119062009d30565b80601f01602080910402602001604051908101604052809291908181526020018280546200493f9062009d30565b8015620049905780601f10620049645761010080835404028352916020019162004990565b820191906000526020600020905b8154815290600101906020018083116200497257829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b81548152602001906001019080831162004a1c5750505091909252505050608001519392505050565b336110011462004a6d57604051630f22c43960e41b8152611001600482015260240162001134565b6001600160a01b038082166000908152604360205260409020541662004a95603f8262007ddd565b62004ab35760405163056e881160e01b815260040160405180910390fd5b6001600160a01b038181166000908152604160205260408082206002810154603b54925163045bc4d160e41b81526004810193909352909316906345bc4d10906024016020604051808303816000875af115801562004b16573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004b3c919062009ddf565b90506000603d544262004b50919062009dc9565b905062004b5e838262007e8a565b836001600160a01b03167f6e9a2ee7aee95665e3a774a212eb11441b217e3e4656ab9563793094689aabb28284600160405162004b9e9392919062009e0f565b60405180910390a26002830154604051633041949b60e01b815261200591633041949b9162004bdc916001600160a01b031690889060040162009d66565b600060405180830381600087803b15801562004bf757600080fd5b505af115801562004c0c573d6000803e3d6000fd5b505050505050505050565b600054610100900460ff161580801562004c385750600054600160ff909116105b8062004c545750303b15801562004c54575060005460ff166001145b62004cb95760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840162001134565b6000805460ff19166001179055801562004cdd576000805461ff0019166101001790555b33411462004cfe5760405163022d8c9560e31b815260040160405180910390fd5b3a1562004d1e576040516383f1b1d360e01b815260040160405180910390fd5b611388603555686c6b935b8bbd400000603655670de0b6b3a7640000603755602d60385562093a806039556002603a819055678ac7230489e80000603b55680ad78ebc5ac6200000603c556202a300603d5562278d00603e55604a5560408051610760810190915261074080825260609182916200b5d6602083013980602001905181019062004daf91906200a2eb565b915060405180611160016040528061114081526020016200bd16611140913980602001905181019062004de391906200a38f565b905060005b825181101562004e525760016047600085848151811062004e0d5762004e0d62009eb5565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905562004e4a8162009f1a565b905062004de8565b5060005b815181101562004ec3576001604883838151811062004e795762004e7962009eb5565b602002602001015160405162004e9091906200a48c565b908152604051908190036020019020805491151560ff1990921691909117905562004ebb8162009f1a565b905062004e56565b5062004ee37308e68ec70fa3b629784fdb28887e206ce8561e0862008d33565b505080156200174c576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b336120001462004f5657604051630f22c43960e41b8152612000600482015260240162001134565b7faa5ba621c8b3d7d05bb9e51a7506108251d4d5dbe542ca66fc7bb52aacb02b6583838360405162004f8b939291906200a4aa565b60405180910390a1505050565b600054630100000090046001600160a01b0316331462004fcb576040516306fbb1e360e01b815260040160405180910390fd5b60005462010000900460ff161562004ff657604051631785c68160e01b815260040160405180910390fd5b6000805462ff00001916620100001781556040517f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e7529190a1565b60006200503f603f8462007ddd565b6200505d5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b0383811660009081526041602052604090819020600201549051636bbf224960e01b815260048101859052911690636bbf2249906024015b602060405180830381865afa158015620050ba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620050e0919062009ddf565b90505b92915050565b60005462010000900460ff16156200511457604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620051465760405163b1d02c3d60e01b815260040160405180910390fd5b8162005154603f8262007ddd565b620051725760405163056e881160e01b815260040160405180910390fd5b6037543490811015620051985760405163dc6f0bdd60e01b815260040160405180910390fd5b6001600160a01b0380851660009081526041602090815260408083208151610160810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180543394916080840191620052009062009d30565b80601f01602080910402602001604051908101604052809291908181526020018280546200522e9062009d30565b80156200527f5780601f1062005253576101008083540402835291602001916200527f565b820191906000526020600020905b8154815290600101906020018083116200526157829003601f168201915b5050505050815260200160058201604051806080016040529081600082018054620052aa9062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620052d89062009d30565b8015620053295780601f10620052fd5761010080835404028352916020019162005329565b820191906000526020600020905b8154815290600101906020018083116200530b57829003601f168201915b50505050508152602001600182018054620053449062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620053729062009d30565b8015620053c35780601f106200539757610100808354040283529160200191620053c3565b820191906000526020600020905b815481529060010190602001808311620053a557829003601f168201915b50505050508152602001600282018054620053de9062009d30565b80601f01602080910402602001604051908101604052809291908181526020018280546200540c9062009d30565b80156200545d5780601f1062005431576101008083540402835291602001916200545d565b820191906000526020600020905b8154815290600101906020018083116200543f57829003601f168201915b50505050508152602001600382018054620054789062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620054a69062009d30565b8015620054f75780601f10620054cb57610100808354040283529160200191620054f7565b820191906000526020600020905b815481529060010190602001808311620054d957829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b815481526020019060010190808311620055835750505050508152505090508060e001518015620055c65750856001600160a01b0316826001600160a01b031614155b15620055e557604051636468920360e01b815260040160405180910390fd5b60408082015190516317066a5760e21b81526001600160a01b0384811660048301526000921690635c19a95c90869060240160206040518083038185885af115801562005636573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906200565d919062009ddf565b9050826001600160a01b0316876001600160a01b03166000805160206200b5b683398151915283876040516200569d929190918252602082015260400190565b60405180910390a36040808301519051633041949b60e01b815261200591633041949b91620056d29190879060040162009d66565b600060405180830381600087803b158015620056ed57600080fd5b505af115801562005702573d6000803e3d6000fd5b50505050851562001745576040516372f6ad8f60e11b81526120059063e5ed5b1e90620057369086908b9060040162009d66565b600060405180830381600087803b1580156200575157600080fd5b505af115801562005766573d6000803e3d6000fd5b5050505050505050505050565b6200579f6040518060800160405280606081526020016060815260200160608152602001606081525090565b81620057ad603f8262007ddd565b620057cb5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b03831660009081526041602052604090819020815160808101909252600501805482908290620058029062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620058309062009d30565b8015620058815780601f10620058555761010080835404028352916020019162005881565b820191906000526020600020905b8154815290600101906020018083116200586357829003601f168201915b505050505081526020016001820180546200589c9062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620058ca9062009d30565b80156200591b5780601f10620058ef576101008083540402835291602001916200591b565b820191906000526020600020905b815481529060010190602001808311620058fd57829003601f168201915b50505050508152602001600282018054620059369062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620059649062009d30565b8015620059b55780601f106200598957610100808354040283529160200191620059b5565b820191906000526020600020905b8154815290600101906020018083116200599757829003601f168201915b50505050508152602001600382018054620059d09062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620059fe9062009d30565b801562005a4f5780601f1062005a235761010080835404028352916020019162005a4f565b820191906000526020600020905b81548152906001019060200180831162005a3157829003601f168201915b505050505081525050915050919050565b60005462010000900460ff161562005a8b57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161562005abd5760405163b1d02c3d60e01b815260040160405180910390fd5b62005ac9828262008dcc565b5050565b336110071462005af557604051630f22c43960e41b8152611007600482015260240162001134565b62005b626040518060400160405280601081526020016f1d1c985b9cd9995c91d85cd31a5b5a5d60821b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed89050565b1562005c1d576020811462005b945783838383604051630a5a604160e01b81526004016200113494939291906200a4c9565b604080516020601f840181900481028201810190925282815260009162005bd791858580838501838280828437600092019190915250929392505062008f359050565b90506108fc81108062005beb575061271081115b1562005c145784848484604051630a5a604160e01b81526004016200113494939291906200a4c9565b60355562006927565b62005c8e6040518060400160405280601481526020017336b4b729b2b6332232b632b3b0ba34b7b721272160611b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed89050565b1562005d58576020811462005cc05783838383604051630a5a604160e01b81526004016200113494939291906200a4c9565b604080516020601f840181900481028201810190925282815260009162005d0391858580838501838280828437600092019190915250929392505062008f359050565b9050683635c9adc5dea0000081108062005d26575069152d02c7e14af680000081115b1562005d4f5784848484604051630a5a604160e01b81526004016200113494939291906200a4c9565b60365562006927565b62005dcb604051806040016040528060168152602001756d696e44656c65676174696f6e424e424368616e676560501b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed89050565b1562005e92576020811462005dfd5783838383604051630a5a604160e01b81526004016200113494939291906200a4c9565b604080516020601f840181900481028201810190925282815260009162005e4091858580838501838280828437600092019190915250929392505062008f359050565b905067016345785d8a000081108062005e605750678ac7230489e8000081115b1562005e895784848484604051630a5a604160e01b81526004016200113494939291906200a4c9565b60375562006927565b62005f03604051806040016040528060148152602001736d6178456c656374656456616c696461746f727360601b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed89050565b1562005fbb576020811462005f355783838383604051630a5a604160e01b81526004016200113494939291906200a4c9565b604080516020601f840181900481028201810190925282815260009162005f7891858580838501838280828437600092019190915250929392505062008f359050565b905080158062005f8957506101f481115b1562005fb25784848484604051630a5a604160e01b81526004016200113494939291906200a4c9565b60385562006927565b620060246040518060400160405280600c81526020016b1d5b989bdb9914195c9a5bd960a21b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed89050565b15620060e15760208114620060565783838383604051630a5a604160e01b81526004016200113494939291906200a4c9565b604080516020601f84018190048102820181019092528281526000916200609991858580838501838280828437600092019190915250929392505062008f359050565b90506203f480811080620060af575062278d0081115b15620060d85784848484604051630a5a604160e01b81526004016200113494939291906200a4c9565b60395562006927565b6200614f60405180604001604052806011815260200170726564656c65676174654665655261746560781b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed89050565b15620061fc5760208114620061815783838383604051630a5a604160e01b81526004016200113494939291906200a4c9565b604080516020601f8401819004810282018101909252828152600091620061c491858580838501838280828437600092019190915250929392505062008f359050565b90506064811115620061f35784848484604051630a5a604160e01b81526004016200113494939291906200a4c9565b603a5562006927565b6200626c60405180604001604052806013815260200172191bdddb9d1a5b5954db185cda105b5bdd5b9d606a1b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed89050565b156200632d57602081146200629e5783838383604051630a5a604160e01b81526004016200113494939291906200a4c9565b604080516020601f8401819004810282018101909252828152600091620062e191858580838501838280828437600092019190915250929392505062008f359050565b9050674563918244f40000811080620062fb5750603c5481115b15620063245784848484604051630a5a604160e01b81526004016200113494939291906200a4c9565b603b5562006927565b6200639b6040518060400160405280601181526020017019995b1bdb9e54db185cda105b5bdd5b9d607a1b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed89050565b156200645e5760208114620063cd5783838383604051630a5a604160e01b81526004016200113494939291906200a4c9565b604080516020601f84018190048102820181019092528281526000916200641091858580838501838280828437600092019190915250929392505062008f359050565b905068056bc75e2d631000008110806200642c5750603b548111155b15620064555784848484604051630a5a604160e01b81526004016200113494939291906200a4c9565b603c5562006927565b620064cb6040518060400160405280601081526020016f646f776e74696d654a61696c54696d6560801b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed89050565b15620065885760208114620064fd5783838383604051630a5a604160e01b81526004016200113494939291906200a4c9565b604080516020601f84018190048102820181019092528281526000916200654091858580838501838280828437600092019190915250929392505062008f359050565b90506202a300811080620065565750603e548110155b156200657f5784848484604051630a5a604160e01b81526004016200113494939291906200a4c9565b603d5562006927565b620065f36040518060400160405280600e81526020016d66656c6f6e794a61696c54696d6560901b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed89050565b15620066b05760208114620066255783838383604051630a5a604160e01b81526004016200113494939291906200a4c9565b604080516020601f84018190048102820181019092528281526000916200666891858580838501838280828437600092019190915250929392505062008f359050565b9050620d2f008110806200667e5750603d548111155b15620066a75784848484604051630a5a604160e01b81526004016200113494939291906200a4c9565b603e5562006927565b6200672a6040518060400160405280601c81526020017f6d617846656c6f6e794265747765656e42726561746865426c6f636b0000000081525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed89050565b15620067d657602081146200675c5783838383604051630a5a604160e01b81526004016200113494939291906200a4c9565b604080516020601f84018190048102820181019092528281526000916200679f91858580838501838280828437600092019190915250929392505062008f359050565b905080600003620067cd5784848484604051630a5a604160e01b81526004016200113494939291906200a4c9565b604a5562006927565b620068446040518060400160405280601181526020017039ba30b5b2a43ab1283937ba32b1ba37b960791b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed89050565b15620069045760148114620068765783838383604051630a5a604160e01b81526004016200113494939291906200a4c9565b6000620068be601484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008f359050565b90506001600160a01b038116620068f25784848484604051630a5a604160e01b81526004016200113494939291906200a4c9565b620068fd8162008f3a565b5062006927565b838383836040516325ee20d560e21b81526004016200113494939291906200a4c9565b7ff1ce9b2cbf50eeb05769a29e2543fd350cab46894a7dd9978a12d534bb20e633848484846040516200695e94939291906200a4c9565b60405180910390a150505050565b60005462010000900460ff16156200699757604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620069c95760405163b1d02c3d60e01b815260040160405180910390fd5b816000816001600160401b03811115620069e757620069e7620095b3565b60405190808252806020026020018201604052801562006a11578160200160208202803683370190505b5090506000805b8381101562006b0f5762006a5a87878381811062006a3a5762006a3a62009eb5565b905060200201602081019062006a51919062009442565b603f9062007ddd565b62006a785760405163056e881160e01b815260040160405180910390fd5b6041600088888481811062006a915762006a9162009eb5565b905060200201602081019062006aa8919062009442565b6001600160a01b039081168252602082019290925260400160002060020154845191169250829084908390811062006ae45762006ae462009eb5565b6001600160a01b039092166020928302919091019091015262006b078162009f1a565b905062006a18565b50604051634484077560e01b8152612005906344840775906200288f908590889060040162009ecb565b606080600062006b4a603f62008930565b90508085101562006d0e57831562006b63578362006b65565b805b935060008462006b76878462009e85565b1162006b8e5762006b88868362009e85565b62006b90565b845b9050806001600160401b0381111562006bad5762006bad620095b3565b60405190808252806020026020018201604052801562006bd7578160200160208202803683370190505b509350806001600160401b0381111562006bf55762006bf5620095b3565b60405190808252806020026020018201604052801562006c1f578160200160208202803683370190505b50925060005b8181101562006d0b5762006c3e62003a02828962009dc9565b85828151811062006c535762006c5362009eb5565b60200260200101906001600160a01b031690816001600160a01b0316815250506041600086838151811062006c8c5762006c8c62009eb5565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060020160009054906101000a90046001600160a01b031684828151811062006ce05762006ce062009eb5565b6001600160a01b039092166020928302919091019091015262006d038162009f1a565b905062006c25565b50505b9250925092565b336110011462006d3d57604051630f22c43960e41b8152611001600482015260240162001134565b60005462010000900460ff161562006d6857604051631785c68160e01b815260040160405180910390fd5b6001600160a01b038082166000908152604360205260409020541662006d90603f8262007ddd565b62006dae5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b03811660009081526041602052604081209062006dd6620151804262009da6565b604a546000828152604b60205260409020549192501162006e0a5760405163bd52fcdb60e01b815260040160405180910390fd5b6000818152604b6020526040812080546001929062006e2b90849062009dc9565b90915550506001600160a01b0384166000908152604460205260409020541580159062006e8057506001600160a01b038416600090815260446020526040902054429062006e7e90620151809062009dc9565b105b1562006e9f576040516330abb81d60e21b815260040160405180910390fd5b60008062006eaf85600062007e00565b915091508162006ed257604051631b919bb160e11b815260040160405180910390fd5b6002840154603c5460405163045bc4d160e41b815260048101919091526000916001600160a01b0316906345bc4d10906024016020604051808303816000875af115801562006f25573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062006f4b919062009ddf565b905062006f59858362007e8a565b856001600160a01b03167f6e9a2ee7aee95665e3a774a212eb11441b217e3e4656ab9563793094689aabb28383600060405162006f999392919062009e0f565b60405180910390a26002850154604051633041949b60e01b815261200591633041949b9162005736916001600160a01b0316908a9060040162009d66565b6001600160a01b0380821660009081526041602090815260408083208151610160810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180549293849384938493909291608084019190620070489062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620070769062009d30565b8015620070c75780601f106200709b57610100808354040283529160200191620070c7565b820191906000526020600020905b815481529060010190602001808311620070a957829003601f168201915b5050505050815260200160058201604051806080016040529081600082018054620070f29062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620071209062009d30565b8015620071715780601f10620071455761010080835404028352916020019162007171565b820191906000526020600020905b8154815290600101906020018083116200715357829003601f168201915b505050505081526020016001820180546200718c9062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620071ba9062009d30565b80156200720b5780601f10620071df576101008083540402835291602001916200720b565b820191906000526020600020905b815481529060010190602001808311620071ed57829003601f168201915b50505050508152602001600282018054620072269062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620072549062009d30565b8015620072a55780601f106200727957610100808354040283529160200191620072a5565b820191906000526020600020905b8154815290600101906020018083116200728757829003601f168201915b50505050508152602001600382018054620072c09062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620072ee9062009d30565b80156200733f5780601f1062007313576101008083540402835291602001916200733f565b820191906000526020600020905b8154815290600101906020018083116200732157829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b815481526020019060010190808311620073cb5750505091909252505050606081015160e0820151610100909201519097919650945092505050565b60005462010000900460ff16156200743257604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620074645760405163b1d02c3d60e01b815260040160405180910390fd5b3362007472603f8262007ddd565b620074905760405163056e881160e01b815260040160405180910390fd5b336000818152604160205260409020600c8101544290620074b690620151809062009dc9565b1115620074d657604051631f92cdbd60e11b815260040160405180910390fd5b600581018054620074e79062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620075159062009d30565b8015620075665780601f106200753a5761010080835404028352916020019162007566565b820191906000526020600020905b8154815290600101906020018083116200754857829003601f168201915b50505082875250859160058401915081906200758390826200a4f4565b50602082015160018201906200759a90826200a4f4565b5060408201516002820190620075b190826200a4f4565b5060608201516003820190620075c890826200a4f4565b505042600c830155506040516001600160a01b038316907f85d6366b336ade7f106987ec7a8eac1e8799e508aeab045a39d2f63e0dc969d990600090a250505050565b60005462010000900460ff16156200763657604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620076685760405163b1d02c3d60e01b815260040160405180910390fd5b82811462007689576040516341abc80160e01b815260040160405180910390fd5b60005b83811015620076fa57620076e7858583818110620076ae57620076ae62009eb5565b9050602002016020810190620076c5919062009442565b848484818110620076da57620076da62009eb5565b9050602002013562008dcc565b620076f28162009f1a565b90506200768c565b5050505050565b6001600160a01b03808216600090815260416020908152604080832081516101608101835281548616815260018201548616938101939093526002810154909416908201526003830154606082015260048301805492938493909160808401916200776c9062009d30565b80601f01602080910402602001604051908101604052809291908181526020018280546200779a9062009d30565b8015620077eb5780601f10620077bf57610100808354040283529160200191620077eb565b820191906000526020600020905b815481529060010190602001808311620077cd57829003601f168201915b5050505050815260200160058201604051806080016040529081600082018054620078169062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620078449062009d30565b8015620078955780601f10620078695761010080835404028352916020019162007895565b820191906000526020600020905b8154815290600101906020018083116200787757829003601f168201915b50505050508152602001600182018054620078b09062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620078de9062009d30565b80156200792f5780601f1062007903576101008083540402835291602001916200792f565b820191906000526020600020905b8154815290600101906020018083116200791157829003601f168201915b505050505081526020016002820180546200794a9062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620079789062009d30565b8015620079c95780601f106200799d57610100808354040283529160200191620079c9565b820191906000526020600020905b815481529060010190602001808311620079ab57829003601f168201915b50505050508152602001600382018054620079e49062009d30565b80601f016020809104026020016040519081016040528092919081815260200182805462007a129062009d30565b801562007a635780601f1062007a375761010080835404028352916020019162007a63565b820191906000526020600020905b81548152906001019060200180831162007a4557829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b81548152602001906001019080831162007aef5750505091909252505050604001519392505050565b600062007b27603f8462007ddd565b62007b455760405163056e881160e01b815260040160405180910390fd5b6001600160a01b038381166000908152604160205260409081902060020154905163aa1966cd60e01b81526004810185905291169063aa1966cd906024016200509c565b60005462010000900460ff161562007bb457604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161562007be65760405163b1d02c3d60e01b815260040160405180910390fd5b3362007bf4603f8262007ddd565b62007c125760405163056e881160e01b815260040160405180910390fd5b3362007c22818787878762008aeb565b62007c4057604051631647e3cb60e11b815260040160405180910390fd5b60006001600160a01b03166045878760405162007c5f92919062009d80565b908152604051908190036020019020546001600160a01b031614158062007ca957506048868660405162007c9592919062009d80565b9081526040519081900360200190205460ff165b1562007cc8576040516311fdb94760e01b815260040160405180910390fd5b6001600160a01b0381166000908152604160205260409020600c810154429062007cf790620151809062009dc9565b111562007d1757604051631f92cdbd60e11b815260040160405180910390fd5b4260468260040160405162007d2d91906200a5bc565b908152604051908190036020019020556004810162007d4e87898362009fde565b5042600c820155604051829060459062007d6c908a908a9062009d80565b90815260405190819003602001812080546001600160a01b039384166001600160a01b0319909116179055908316907f783156582145bd0ff7924fae6953ba054cf1233eb60739a200ddb10de068ff0d9062007dcc908a908a906200a2af565b60405180910390a250505050505050565b6001600160a01b03811660009081526001830160205260408120541515620050e0565b6000806000848460405160200162007e1a9291906200a63a565b60408051601f1981840301815291815281516020928301206000818152604c9093529120549091504281111562007e5a5760008093509350505062007e83565b603e5462007e69904262009dc9565b6000928352604c6020526040909220829055506001925090505b9250929050565b8154604051631507fdb760e11b81526001600160a01b03909116600482015261100090632a0ffb6e90602401600060405180830381600087803b15801562007ed157600080fd5b505af115801562007ee6573d6000803e3d6000fd5b505050506000600162007efa603f62008930565b62007f06919062009e85565b604954108015915062007fc45760405163d31f968d60e01b81526110006004820152600860248201526120009063d31f968d90604401602060405180830381865afa15801562007f5a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062007f80919062009e3e565b62007fc45760018301546040516001600160a01b03909116907f2afdc18061ac21cff7d9f11527ab9c8dec6fabd4edf6f894ed634bebd6a20d4590600090a2505050565b82600b015482111562007fd957600b83018290555b600a83015460ff166200804c57600a8301805460ff19166001908117909155604980546000906200800c90849062009dc9565b909155505060018301546040516001600160a01b03909116907f4905ac32602da3fb8b4b7b00c285e5fc4c6c2308cc908b4a1e4e9625a29c90a390600090a25b505050565b60408051608080820183526000808352602080840182905283850182905260608085018390528551938401865282845283820183905283860183905283018290528451808601865282815281018290528451808601909552855185528581019085015291928290620080c39062008fa6565b90506000805b620080d48362009019565b15620081a757806000036200810957620080f8620080f2846200903f565b620090a3565b6001600160a01b0316845262008194565b80600103620081355762008121620080f2846200903f565b6001600160a01b0316602085015262008194565b8060020362008161576200814d620080f2846200903f565b6001600160a01b0316604085015262008194565b806003036200818e576200817f62008179846200903f565b620090bb565b60608501526001915062008194565b620081a7565b6200819f8162009f1a565b9050620080c9565b5091959194509092505050565b6020808201516001600160a01b031660009081526001909152604081205460ff1680620081ec575060208201516001600160a01b0316155b15620081fa57506004919050565b81516200820a90603f9062007ddd565b6200821757506002919050565b81516001600160a01b03908116600090815260416020908152604080832081516101608101835281548616815260018201548616938101939093526002810154909416908201526003830154606082015260048301805492939192608084019190620082839062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620082b19062009d30565b8015620083025780601f10620082d65761010080835404028352916020019162008302565b820191906000526020600020905b815481529060010190602001808311620082e457829003601f168201915b50505050508152602001600582016040518060800160405290816000820180546200832d9062009d30565b80601f01602080910402602001604051908101604052809291908181526020018280546200835b9062009d30565b8015620083ac5780601f106200838057610100808354040283529160200191620083ac565b820191906000526020600020905b8154815290600101906020018083116200838e57829003601f168201915b50505050508152602001600182018054620083c79062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620083f59062009d30565b8015620084465780601f106200841a5761010080835404028352916020019162008446565b820191906000526020600020905b8154815290600101906020018083116200842857829003601f168201915b50505050508152602001600282018054620084619062009d30565b80601f01602080910402602001604051908101604052809291908181526020018280546200848f9062009d30565b8015620084e05780601f10620084b457610100808354040283529160200191620084e0565b820191906000526020600020905b815481529060010190602001808311620084c257829003601f168201915b50505050508152602001600382018054620084fb9062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620085299062009d30565b80156200857a5780601f106200854e576101008083540402835291602001916200857a565b820191906000526020600020905b8154815290600101906020018083116200855c57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b815481526020019060010190808311620086065750505050508152505090508060e00151801562008651575082600001516001600160a01b031683602001516001600160a01b031614155b15620086605750600392915050565b6040808201516060850151602086015192516317066a5760e21b81526001600160a01b03938416600482015260009390921691635c19a95c919060240160206040518083038185885af1158015620086bc573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190620086e3919062009ddf565b905083602001516001600160a01b031684600001516001600160a01b03166000805160206200b5b68339815191528387606001516040516200872f929190918252602082015260400190565b60405180910390a383602001516001600160a01b031684600001516001600160a01b03167f607b17598da6bdca05650a2fc08bd2bc8e38c3236806a0fa8e0daabc1d6cb1d883876060015160405162008792929190918252602082015260400190565b60405180910390a360408083015160208601519151633041949b60e01b815261200592633041949b92620087cc9290919060040162009d66565b600060405180830381600087803b158015620087e757600080fd5b505af1158015620087fc573d6000803e3d6000fd5b506000979650505050505050565b6001600160a01b0381166000908152604160205260409020600a81015460ff161562008834575050565b6036546002820154604051630913db4760e01b81526001600160a01b03858116600483015290911690630913db4790602401602060405180830381865afa15801562008884573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620088aa919062009ddf565b101562005ac957620088cc81603d5442620088c6919062009dc9565b62007e8a565b80546040516335409f7f60e01b81526001600160a01b039091166004820152611000906335409f7f90602401600060405180830381600087803b1580156200891357600080fd5b505af115801562008928573d6000803e3d6000fd5b505050505050565b6000620050e3825490565b6000620050e0838362009193565b60008082905060038151108062008961575060098151115b15620089705750600092915050565b60418160008151811062008988576200898862009eb5565b016020015160f81c1080620089ba5750605a81600081518110620089b057620089b062009eb5565b016020015160f81c115b15620089c95750600092915050565b60015b815181101562008ae1576030828281518110620089ed57620089ed62009eb5565b016020015160f81c108062008a1e5750603982828151811062008a145762008a1462009eb5565b016020015160f81c115b801562008a6e5750604182828151811062008a3d5762008a3d62009eb5565b016020015160f81c108062008a6e5750605a82828151811062008a645762008a6462009eb5565b016020015160f81c115b801562008abe5750606182828151811062008a8d5762008a8d62009eb5565b016020015160f81c108062008abe5750607a82828151811062008ab45762008ab462009eb5565b016020015160f81c115b1562008ace575060009392505050565b62008ad98162009f1a565b9050620089cc565b5060019392505050565b600060308414158062008aff575060608214155b1562008b0e5750600062008c12565b60008686864660405160200162008b2994939291906200a678565b60408051808303601f1901815282825280516020918201208184528383019092529092506000919060208201818036833701905050905081602082015260008186868a8a60405160200162008b839594939291906200a6a5565b60408051808303601f190181526001808452838301909252925060009190602082018180368337019050509050815160016020830182602086016066600019fa62008bcd57600080fd5b5060008160008151811062008be65762008be662009eb5565b016020015160f81c90506001811462008c085760009550505050505062008c12565b6001955050505050505b95945050505050565b60008061200361dead60405162008c32906200941e565b6001600160a01b03928316815291166020820152606060408201819052600090820152608001604051809103906000f08015801562008c75573d6000803e3d6000fd5b509050806001600160a01b031663f399e22e3486866040518463ffffffff1660e01b815260040162008ca99291906200a6dd565b6000604051808303818588803b15801562008cc357600080fd5b505af115801562008cd8573d6000803e3d6000fd5b50506040516001600160a01b038086169450881692507fd481492e4e93bb36b4c12a5af93f03be3bf04b454dfbc35dd2663fa26f44d5b09150600090a39392505050565b6000620050e0836001600160a01b038416620091c0565b600054610100900460ff1662008da05760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840162001134565b600080546001600160a01b039092166301000000026301000000600160b81b0319909216919091179055565b8162008dda603f8262007ddd565b62008df85760405163056e881160e01b815260040160405180910390fd5b6001600160a01b03838116600090815260416020526040808220600201549051635569f64b60e11b8152336004820152602481018690529192169063aad3ec96906044016020604051808303816000875af115801562008e5c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062008e82919062009ddf565b9050336001600160a01b0316846001600160a01b03167ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd39926838360405162008eca91815260200190565b60405180910390a350505050565b60008160405160200162008eed91906200a48c565b604051602081830303815290604052805190602001208360405160200162008f1691906200a48c565b6040516020818303038152906040528051906020012014905092915050565b015190565b600080546040516001600160a01b0380851693630100000090930416917f44fc1b38a4abaa91ebd1b628a5b259a698f86238c8217d68f516e87769c60c0b91a3600080546001600160a01b039092166301000000026301000000600160b81b0319909216919091179055565b604080516080810182526000918101828152606082018390528152602081019190915262008fd48262009212565b62008fde57600080fd5b600062008fef836020015162009245565b836020015162009000919062009dc9565b6040805180820190915293845260208401525090919050565b80518051602082015160009291620090319162009dc9565b836020015110915050919050565b60408051808201909152600080825260208201526200905e8262009019565b6200906857600080fd5b602082015160006200907a82620092d4565b905062009088818362009dc9565b60209485015260408051808201909152908152928301525090565b8051600090601514620090b557600080fd5b620050e3825b805160009015801590620090d157508151602110155b620090db57600080fd5b6000620090ec836020015162009245565b90508083600001511015620091445760405162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015260640162001134565b82516000906200915690839062009e85565b90506000808386602001516200916d919062009dc9565b90508051915060208310156200918a57826020036101000a820491505b50949350505050565b6000826000018281548110620091ad57620091ad62009eb5565b9060005260206000200154905092915050565b60008181526001830160205260408120546200920957508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155620050e3565b506000620050e3565b805160009081036200922657506000919050565b6020820151805160001a9060c082101562008ae1575060009392505050565b8051600090811a60808110156200925f5750600092915050565b60b88110806200927c575060c081108015906200927c575060f881105b156200928b5750600192915050565b60c0811015620092c657620092a3600160b86200a703565b620092b29060ff168262009e85565b620092bf90600162009dc9565b9392505050565b620092a3600160f86200a703565b80516000908190811a6080811015620092f1576001915062009417565b60b88110156200931d576200930860808262009e85565b6200931590600162009dc9565b915062009417565b60c08110156200939657600060b78203600186019550806020036101000a8651049150600181018201935050808310156200938f5760405162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015260640162001134565b5062009417565b60f8811015620093ad576200930860c08262009e85565b600060f78203600186019550806020036101000a865104915060018101820193505080831015620094155760405162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015260640162001134565b505b5092915050565b610e96806200a72083390190565b6001600160a01b03811681146200174c57600080fd5b6000602082840312156200945557600080fd5b8135620092bf816200942c565b60008083601f8401126200947557600080fd5b5081356001600160401b038111156200948d57600080fd5b60208301915083602082850101111562007e8357600080fd5b60008060208385031215620094ba57600080fd5b82356001600160401b03811115620094d157600080fd5b620094df8582860162009462565b90969095509350505050565b6000806000604084860312156200950157600080fd5b833560ff811681146200951357600080fd5b925060208401356001600160401b038111156200952f57600080fd5b6200953d8682870162009462565b9497909650939450505050565b60005b83811015620095675781810151838201526020016200954d565b50506000910152565b600081518084526200958a8160208601602086016200954a565b601f01601f19169290920160200192915050565b602081526000620050e0602083018462009570565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b0381118282101715620095ee57620095ee620095b3565b60405290565b604051601f8201601f191681016001600160401b03811182821017156200961f576200961f620095b3565b604052919050565b60006001600160401b03821115620096435762009643620095b3565b50601f01601f191660200190565b600062009668620096628462009627565b620095f4565b90508281528383830111156200967d57600080fd5b828260208301376000602084830101529392505050565b600060208284031215620096a757600080fd5b81356001600160401b03811115620096be57600080fd5b8201601f81018413620096d057600080fd5b620096e18482356020840162009651565b949350505050565b60008060408385031215620096fd57600080fd5b82356200970a816200942c565b946020939093013593505050565b80151581146200174c57600080fd5b600080600080608085870312156200973e57600080fd5b84356200974b816200942c565b935060208501356200975d816200942c565b9250604085013591506060850135620097768162009718565b939692955090935050565b6001600160401b03811681146200174c57600080fd5b600060208284031215620097aa57600080fd5b8135620092bf8162009781565b60008060408385031215620097cb57600080fd5b50508035926020909101359150565b600081518084526020808501945080840160005b83811015620098155781516001600160a01b031687529582019590820190600101620097ee565b509495945050505050565b608081526000620098356080830187620097da565b82810360208481019190915286518083528782019282019060005b818110156200986e5784518352938301939183019160010162009850565b5050848103604086015286518082528282019350600581901b8201830183890160005b83811015620098c357601f19858403018752620098b083835162009570565b9686019692509085019060010162009891565b5050809550505050505082606083015295945050505050565b600080600080600080600087890360e0811215620098f957600080fd5b883562009906816200942c565b975060208901356001600160401b03808211156200992357600080fd5b620099318c838d0162009462565b909950975060408b01359150808211156200994b57600080fd5b620099598c838d0162009462565b90975095508591506060605f19840112156200997457600080fd5b60608b01945060c08b01359250808311156200998f57600080fd5b505088016080818b031215620099a457600080fd5b8091505092959891949750929550565b60008060408385031215620099c857600080fd5b8235620099d5816200942c565b91506020830135620099e78162009718565b809150509250929050565b60208152600082516080602084015262009a1060a084018262009570565b90506020840151601f198085840301604086015262009a30838362009570565b9250604086015191508085840301606086015262009a4f838362009570565b925060608601519150808584030160808601525062008c12828262009570565b6000806000806040858703121562009a8657600080fd5b84356001600160401b038082111562009a9e57600080fd5b62009aac8883890162009462565b9096509450602087013591508082111562009ac657600080fd5b5062009ad58782880162009462565b95989497509550505050565b60008083601f84011262009af457600080fd5b5081356001600160401b0381111562009b0c57600080fd5b6020830191508360208260051b850101111562007e8357600080fd5b60008060006040848603121562009b3e57600080fd5b83356001600160401b0381111562009b5557600080fd5b62009b638682870162009ae1565b909450925050602084013562009b79816200942c565b809150509250925092565b60608152600062009b996060830186620097da565b828103602084015262009bad8186620097da565b915050826040830152949350505050565b600082601f83011262009bd057600080fd5b620050e08383356020850162009651565b60006020828403121562009bf457600080fd5b81356001600160401b038082111562009c0c57600080fd5b908301906080828603121562009c2157600080fd5b62009c2b620095c9565b82358281111562009c3b57600080fd5b62009c498782860162009bbe565b82525060208301358281111562009c5f57600080fd5b62009c6d8782860162009bbe565b60208301525060408301358281111562009c8657600080fd5b62009c948782860162009bbe565b60408301525060608301358281111562009cad57600080fd5b62009cbb8782860162009bbe565b60608301525095945050505050565b6000806000806040858703121562009ce157600080fd5b84356001600160401b038082111562009cf957600080fd5b62009d078883890162009ae1565b9096509450602087013591508082111562009d2157600080fd5b5062009ad58782880162009ae1565b600181811c9082168062009d4557607f821691505b6020821081036200462657634e487b7160e01b600052602260045260246000fd5b6001600160a01b0392831681529116602082015260400190565b8183823760009101908152919050565b634e487b7160e01b600052601160045260246000fd5b60008262009dc457634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115620050e357620050e362009d90565b60006020828403121562009df257600080fd5b5051919050565b634e487b7160e01b600052602160045260246000fd5b83815260208101839052606081016003831062009e305762009e3062009df9565b826040830152949350505050565b60006020828403121562009e5157600080fd5b8151620092bf8162009718565b828152604081016005831062009e785762009e7862009df9565b8260208301529392505050565b81810381811115620050e357620050e362009d90565b8082028115828204841417620050e357620050e362009d90565b634e487b7160e01b600052603260045260246000fd5b60408152600062009ee06040830185620097da565b905060018060a01b03831660208301529392505050565b6001600160401b0382811682821603908082111562009417576200941762009d90565b60006001820162009f2f5762009f2f62009d90565b5060010190565b6000808335601e1984360301811262009f4e57600080fd5b8301803591506001600160401b0382111562009f6957600080fd5b60200191503681900382131562007e8357600080fd5b601f8211156200804c57600081815260208120601f850160051c8101602086101562009fa85750805b601f850160051c820191505b81811015620089285782815560010162009fb4565b600019600383901b1c191660019190911b1790565b6001600160401b0383111562009ff85762009ff8620095b3565b6200a010836200a009835462009d30565b8362009f7f565b6000601f8411600181146200a04357600085156200a02e5750838201355b6200a03a868262009fc9565b845550620076fa565b600083815260209020601f19861690835b828110156200a07657868501358255602094850194600190920191016200a054565b50868210156200a0945760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b6200a0b2828362009f36565b6001600160401b038111156200a0cc576200a0cc620095b3565b6200a0e4816200a0dd855462009d30565b8562009f7f565b6000601f8211600181146200a11757600083156200a1025750838201355b6200a10e848262009fc9565b8655506200a174565b600085815260209020601f19841690835b828110156200a14a57868501358255602094850194600190920191016200a128565b50848210156200a1685760001960f88660031b161c19848701351681555b505060018360011b0185555b505050506200a187602083018362009f36565b6200a19781836001860162009fde565b50506200a1a8604083018362009f36565b6200a1b881836002860162009fde565b50506200a1c9606083018362009f36565b6200a1d981836003860162009fde565b50505050565b81356200a1ec8162009781565b6001600160401b03811690508154816001600160401b0319821617835560208401356200a2198162009781565b6fffffffffffffffff0000000000000000604091821b166fffffffffffffffffffffffffffffffff198316841781178555908501356200a2598162009781565b6001600160c01b0319929092169092179190911760809190911b67ffffffffffffffff60801b1617905550565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b602081526000620096e16020830184866200a286565b60006001600160401b038211156200a2e1576200a2e1620095b3565b5060051b60200190565b600060208083850312156200a2ff57600080fd5b82516001600160401b038111156200a31657600080fd5b8301601f810185136200a32857600080fd5b80516200a33962009662826200a2c5565b81815260059190911b820183019083810190878311156200a35957600080fd5b928401925b828410156200a3845783516200a374816200942c565b825292840192908401906200a35e565b979650505050505050565b600060208083850312156200a3a357600080fd5b82516001600160401b03808211156200a3bb57600080fd5b818501915085601f8301126200a3d057600080fd5b81516200a3e162009662826200a2c5565b81815260059190911b830184019084810190888311156200a40157600080fd5b8585015b838110156200a47f578051858111156200a41f5760008081fd5b8601603f81018b136200a4325760008081fd5b8781015160406200a447620096628362009627565b8281528d828486010111156200a45d5760008081fd5b6200a46e838c83018487016200954a565b86525050509186019186016200a405565b5098975050505050505050565b600082516200a4a08184602087016200954a565b9190910192915050565b60ff8416815260406020820152600062008c126040830184866200a286565b6040815260006200a4df6040830186886200a286565b82810360208401526200a3848185876200a286565b81516001600160401b038111156200a510576200a510620095b3565b6200a528816200a521845462009d30565b8462009f7f565b602080601f8311600181146200a55c57600084156200a5475750858301515b6200a553858262009fc9565b86555062008928565b600085815260208120601f198616915b828110156200a58d578886015182559484019460019091019084016200a56c565b50858210156200a5ac5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60008083546200a5cc8162009d30565b600182811680156200a5e757600181146200a5fd576200a62e565b60ff19841687528215158302870194506200a62e565b8760005260208060002060005b858110156200a6255781548a8201529084019082016200a60a565b50505082870194505b50929695505050505050565b6bffffffffffffffffffffffff198360601b1681526000600383106200a664576200a66462009df9565b5060f89190911b6014820152601501919050565b6bffffffffffffffffffffffff198560601b16815282846014830137601492019182015260340192915050565b600086516200a6b9818460208b016200954a565b82018587823760009086019081528385823760009301928352509095945050505050565b6001600160a01b0383168152604060208201819052600090620096e19083018462009570565b60ff8281168282160390811115620050e357620050e362009d9056fe608060405260405162000e9638038062000e96833981016040819052620000269162000497565b828162000036828260006200004d565b50620000449050826200008a565b505050620005ca565b6200005883620000e5565b600082511180620000665750805b1562000085576200008383836200012760201b620001691760201c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000b562000156565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000e2816200018f565b50565b620000f08162000244565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200014f838360405180606001604052806027815260200162000e6f60279139620002f8565b9392505050565b60006200018060008051602062000e4f83398151915260001b6200037760201b620001951760201c565b546001600160a01b0316919050565b6001600160a01b038116620001fa5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b806200022360008051602062000e4f83398151915260001b6200037760201b620001951760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b6200025a816200037a60201b620001981760201c565b620002be5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001f1565b80620002237f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6200037760201b620001951760201c565b6060600080856001600160a01b03168560405162000317919062000577565b600060405180830381855af49150503d806000811462000354576040519150601f19603f3d011682016040523d82523d6000602084013e62000359565b606091505b5090925090506200036d8683838762000389565b9695505050505050565b90565b6001600160a01b03163b151590565b60608315620003fd578251600003620003f5576001600160a01b0385163b620003f55760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401620001f1565b508162000409565b62000409838362000411565b949350505050565b815115620004225781518083602001fd5b8060405162461bcd60e51b8152600401620001f1919062000595565b80516001600160a01b03811681146200045657600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200048e57818101518382015260200162000474565b50506000910152565b600080600060608486031215620004ad57600080fd5b620004b8846200043e565b9250620004c8602085016200043e565b60408501519092506001600160401b0380821115620004e657600080fd5b818601915086601f830112620004fb57600080fd5b8151818111156200051057620005106200045b565b604051601f8201601f19908116603f011681019083821181831017156200053b576200053b6200045b565b816040528281528960208487010111156200055557600080fd5b6200056883602083016020880162000471565b80955050505050509250925092565b600082516200058b81846020870162000471565b9190910192915050565b6020815260008251806020840152620005b681604085016020870162000471565b601f01601f19169190910160400192915050565b61087580620005da6000396000f3fe60806040523661001357610011610017565b005b6100115b61001f6101a7565b6001600160a01b0316330361015f5760606001600160e01b0319600035166364d3180d60e11b810161005a576100536101da565b9150610157565b63587086bd60e11b6001600160e01b031982160161007a57610053610231565b63070d7c6960e41b6001600160e01b031982160161009a57610053610277565b621eb96f60e61b6001600160e01b03198216016100b9576100536102a8565b63a39f25e560e01b6001600160e01b03198216016100d9576100536102e8565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b6101676102fc565b565b606061018e83836040518060600160405280602781526020016108426027913961030c565b9392505050565b90565b6001600160a01b03163b151590565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101e4610384565b60006101f33660048184610695565b81019061020091906106db565b905061021d8160405180602001604052806000815250600061038f565b505060408051602081019091526000815290565b60606000806102433660048184610695565b810190610250919061070c565b915091506102608282600161038f565b604051806020016040528060008152509250505090565b6060610281610384565b60006102903660048184610695565b81019061029d91906106db565b905061021d816103bb565b60606102b2610384565b60006102bc6101a7565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b60606102f2610384565b60006102bc610412565b610167610307610412565b610421565b6060600080856001600160a01b03168560405161032991906107f2565b600060405180830381855af49150503d8060008114610364576040519150601f19603f3d011682016040523d82523d6000602084013e610369565b606091505b509150915061037a86838387610445565b9695505050505050565b341561016757600080fd5b610398836104c6565b6000825111806103a55750805b156103b6576103b48383610169565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103e46101a7565b604080516001600160a01b03928316815291841660208301520160405180910390a161040f81610506565b50565b600061041c6105af565b905090565b3660008037600080366000845af43d6000803e808015610440573d6000f35b3d6000fd5b606083156104b45782516000036104ad576001600160a01b0385163b6104ad5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161014e565b50816104be565b6104be83836105d7565b949350505050565b6104cf81610601565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6001600160a01b03811661056b5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161014e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101cb565b8151156105e75781518083602001fd5b8060405162461bcd60e51b815260040161014e919061080e565b6001600160a01b0381163b61066e5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161014e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61058e565b600080858511156106a557600080fd5b838611156106b257600080fd5b5050820193919092039150565b80356001600160a01b03811681146106d657600080fd5b919050565b6000602082840312156106ed57600080fd5b61018e826106bf565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561071f57600080fd5b610728836106bf565b9150602083013567ffffffffffffffff8082111561074557600080fd5b818501915085601f83011261075957600080fd5b81358181111561076b5761076b6106f6565b604051601f8201601f19908116603f01168101908382118183101715610793576107936106f6565b816040528281528860208487010111156107ac57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b838110156107e95781810151838201526020016107d1565b50506000910152565b600082516108048184602087016107ce565b9190910192915050565b602081526000825180602084015261082d8160408501602087016107ce565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a164736f6c6343000811000ab53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c656424d7bda8602b916d64417f0dbfe2e2e88ec9b1157bd9f596dfdb91ba26624e0400000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000038000000000000000000000000295e26495cef6f69dfa69911d9d8e4f3bbadb89b00000000000000000000000072b61c6014342d914470ec7ac2975be345796c2b0000000000000000000000002465176c461afb316ebc773c61faee85a6515daa0000000000000000000000007ae2f5b9e386cd1b50a4550696d957cb4900f03a000000000000000000000000b4dd66d7c2c7e57f628210187192fb89d4b99dd4000000000000000000000000e9ae3261a475a27bb1028f140bc2a7c843318afd000000000000000000000000ee226379db83cffc681495730c11fdde79ba4c0c0000000000000000000000003f349bbafec1551819b8be1efea2fc46ca749aa10000000000000000000000008b6c8fd93d6f4cea42bbb345dbc6f0dfdb5bec73000000000000000000000000ef0274e31810c9df02f98fafde0f841f4e66a1cd000000000000000000000000a6f79b60359f141df90a0c745125b131caaffd12000000000000000000000000e2d3a739effcd3a99387d015e260eefac72ebea100000000000000000000000061dd481a114a2e761c554b641742c973867899d3000000000000000000000000cc8e6d00c17eb431350c6c50d8b8f05176b90b11000000000000000000000000ea0a6e3c511bbd10f4519ece37dc24887e11b55d0000000000000000000000002d4c407bbe49438ed859fe965b140dcf1aab71a9000000000000000000000000685b1ded8013785d6623cc18d214320b6bb64759000000000000000000000000d1d6bf74282782b0b3eb1413c901d6ecf02e8e2800000000000000000000000070f657164e5b75689b64b7fd1fa275f334f28e18000000000000000000000000be807dddb074639cd9fa61b47676c064fc50d62c000000000000000000000000b218c5d6af1f979ac42bc68d98a5a0d796c6ab010000000000000000000000009f8ccdafcc39f3c7d6ebf637c9151673cbc36b88000000000000000000000000d93dbfb27e027f5e9e6da52b9e1c413ce35adc11000000000000000000000000ce2fd7544e0b2cc94692d4a704debef7bcb613280000000000000000000000000bac492386862ad3df4b666bc096b0505bb694da000000000000000000000000733fda7714a05960b7536330be4dbb135bef0ed600000000000000000000000035ebb5849518aff370ca25e19e1072cc1a9fabca000000000000000000000000ebe0b55ad7bb78309180cada12427d120fdbcc3a0000000000000000000000006488aa4d1955ee33403f8ccb1d4de5fb97c7ade20000000000000000000000004396e28197653d0c244d95f8c1e57da902a72b4e000000000000000000000000702be18040aa2a9b1af9219941469f1a435854fc00000000000000000000000012d810c13e42811e9907c02e02d1fad46cfa18ba0000000000000000000000002a7cdd959bfe8d9487b2a43b33565295a698f7e2000000000000000000000000b8f7166496996a7da21cf1f1b04d9b3e26a3d0770000000000000000000000009bb832254baf4e8b4cc26bd2b52b31389b56e98b0000000000000000000000004430b3230294d12c6ab2aac5c2cd68e80b16b581000000000000000000000000c2be4ec20253b8642161bc3f444f53679c1f3d47000000000000000000000000ee01c3b1283aa067c58eab4709f85e99d46de5fe0000000000000000000000009ef9f4360c606c7ab4db26b016007d3ad0ab86a00000000000000000000000002f7be8361c80a4c1e7e9aaf001d0877f1cfde21800000000000000000000000035e7a025f4da968de7e4d7e4004197917f4070f1000000000000000000000000d6caa02bbebaebb5d7e581e4b66559e635f805ff0000000000000000000000008c4d90829ce8f72d0163c1d5cf348a862d55063000000000000000000000000068bf0b8b6fb4e317a0f9d6f03eaf8ce6675bc60d00000000000000000000000082012708dafc9e1b880fd083b32182b869be8e090000000000000000000000006bbad7cf34b5fa511d8e963dbba288b1960e75d600000000000000000000000022b81f8e175ffde54d797fe11eb03f9e3bf75f1d00000000000000000000000078f3adfc719c99674c072166708589033e2d9afe00000000000000000000000029a97c6effb8a411dabc6adeefaa84f5067c8bbe000000000000000000000000aacf6a8119f7e11623b5a43da638e91f669a130f0000000000000000000000002b3a6c089311b478bf629c29d790a7a6db3fc1b9000000000000000000000000fe6e72b223f6d6cf4edc6bff92f30e84b8258249000000000000000000000000a6503279e8b5c7bb5cf4defd3ec8abf3e009a80b0000000000000000000000004ee63a09170c3f2207aeca56134fc2bee1b28e3c000000000000000000000000ac0e15a038eedfc68ba3c35c73fed5be4a07afb500000000000000000000000069c77a677c40c7fbea129d4b171a39b7a8ddabfa00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000044000000000000000000000000000000000000000000000000000000000000004a00000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000056000000000000000000000000000000000000000000000000000000000000005c00000000000000000000000000000000000000000000000000000000000000620000000000000000000000000000000000000000000000000000000000000068000000000000000000000000000000000000000000000000000000000000006e0000000000000000000000000000000000000000000000000000000000000074000000000000000000000000000000000000000000000000000000000000007a00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000086000000000000000000000000000000000000000000000000000000000000008c00000000000000000000000000000000000000000000000000000000000000920000000000000000000000000000000000000000000000000000000000000098000000000000000000000000000000000000000000000000000000000000009e00000000000000000000000000000000000000000000000000000000000000a400000000000000000000000000000000000000000000000000000000000000aa00000000000000000000000000000000000000000000000000000000000000b000000000000000000000000000000000000000000000000000000000000000b600000000000000000000000000000000000000000000000000000000000000bc00000000000000000000000000000000000000000000000000000000000000c200000000000000000000000000000000000000000000000000000000000000c800000000000000000000000000000000000000000000000000000000000000ce00000000000000000000000000000000000000000000000000000000000000d400000000000000000000000000000000000000000000000000000000000000da00000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000e600000000000000000000000000000000000000000000000000000000000000ec00000000000000000000000000000000000000000000000000000000000000f200000000000000000000000000000000000000000000000000000000000000f800000000000000000000000000000000000000000000000000000000000000fe0000000000000000000000000000000000000000000000000000000000000104000000000000000000000000000000000000000000000000000000000000010a00000000000000000000000000000000000000000000000000000000000000030977cf58294f7239d515e15b24cfeb82494056cf691eaf729b165f32c9757c429dba5051155903067e56ebe3698678e9100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003081db0422a5fd08e40db1fc2368d2245e4b18b1d0b85c921aaaafd2e341760e29fc613edd39f71254614e2055c3287a510000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000308a923564c6ffd37fb2fe9f118ef88092e8762c7addb526ab7eb1e772baef85181f892c731be0c1891a50e6b06262c816000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b84f83ff2df44193496793b847f64e9d6db1b3953682bb95edd096eb1e69bbd357c200992ca78050d0cbe180cfaa018e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b0de8472be0308918c8bdb369bf5a67525210daffa053c52224c1d2ef4f5b38e4ecfcd06a1cc51c39c3a7dccfcb6b507000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030ae7bc6faa3f0cc3e6093b633fd7ee4f86970926958d0b7ec80437f936acf212b78f0cd095f4565fff144fd458d233a5b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003084248a459464eec1a21e7fc7b71a053d9644e9bb8da4853b8f872cd7c1d6b324bf1922829830646ceadfb658d3de009a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030a8a257074e82b881cfa06ef3eb4efeca060c2531359abd0eab8af1e3edfa2025fca464ac9c3fd123f6c24a0d7886948500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003098cbf822e4bc29f1701ac0350a3d042cd0756e9f74822c6481773ceb000641c51b870a996fe0f6a844510b1061f38cd0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b772e180fbf38a051c97dabc8aaa0126a233a9e828cdafcc7422c4bb1f4030a56ba364c54103f26bad91508b5220b741000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030956c470ddff48cb49300200b5f83497f3a3ccb3aeb83c5edd9818569038e61d197184f4aa6939ea5e9911e3e98ac6d210000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000308a80967d39e406a0a9642d41e9007a27fc1150a267d143a9f786cd2b5eecbdcc4036273705225b956d5e2f8f5eb95d25000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b3a3d4feb825ae9702711566df5dbf38e82add4dd1b573b95d2466fa6501ccb81e9d26a352b96150ccbf7b697fd0a419000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b2d4c6283c44a1c7bd503aaba7666e9f0c830e0ff016c1c750a5e48757a713d0836b1cabfd5c281b1de3b77d1c19218300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003093c1f7f6929d1fe2a17b4e14614ef9fc5bdc713d6631d675403fbeefac55611bf612700b1b65f4744861b80b0f7d6ab00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000308a60f82a7bcf74b4cb053b9bfe83d0ed02a84ebb10865dfdd8e26e7535c43a1cccd268e860f502216b379dfc9971d358000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030939e8fb41b682372335be8070199ad3e8621d1743bcac4cc9d8f0f6e10f41e56461385c8eb5daac804fe3f2bca6ce73900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003096a26afa1295da81418593bd12814463d9f6e45c36a0e47eb4cd3e5b6af29c41e2a3a5636430155a466e216585af3ba7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b1f2c71577def3144fabeb75a8a1c8cb5b51d1d1b4a05eec67988b8685008baa17459ec425dbaebc852f496dc92196cd000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b659ad0fbd9f515893fdd740b29ba0772dbde9b4635921dd91bd2963a0fc855e31f6338f45b211c4e9dedb7f2eb09de70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000308819ec5ec3e97e1f03bbb4bb6055c7a5feac8f4f259df58349a32bb5cb377e2cb1f362b77f1dd398cfd3e9dba46138c3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b313f9cba57c63a84edb4079140e6dbd7829e5023c9532fce57e9fe602400a2953f4bf7dab66cca16e97be95d4de7044000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b64abe25614c9cfd32e456b4d521f29c8357f4af4606978296c9be93494072ac05fa86e3d27cc8d66e65000f8ba33fbb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b0bec348681af766751cb839576e9c515a09c8bffa30a46296ccc56612490eb480d03bf948e10005bbcc0421f90b3d4e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b0245c33bc556cfeb013cd3643b30dbdef6df61a0be3ba00cae104b3c587083852e28f8911689c7033f7021a8a1774c9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030a7f3e2c0b4b16ad183c473bafe30a36e39fa4a143657e229cd23c77f8fbc8e4e4e241695dd3d248d1e51521eee6619140000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000308fdf49777b22f927d460fa3fcdd7f2ba0cf200634a3dfb5197d7359f2f88aaf496ef8c93a065de0f376d164ff2b6db9a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000308ab17a9148339ef40aed8c177379c4db0bb5efc6f5c57a5d1a6b58b84d4b562e227196c79bda9a136830ed0c09f378130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000308dd20979bd63c14df617a6939c3a334798149151577dd3f1fadb2bd1c1b496bf84c25c879da5f0f9dfdb88c6dd17b1e6000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b679cbab0276ac30ff5f198e5e1dedf6b84959129f70fe7a07fcdf13444ba45b5dbaa7b1f650adf8b0acbecd04e2675b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000308974616fe8ab950a3cded19b1d16ff49c97bf5af65154b3b097d5523eb213f3d35fc5c57e7276c7f2d83be87ebfdcdf9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030ab764a39ff81dad720d5691b852898041a3842e09ecbac8025812d51b32223d8420e6ae51a01582220a10f7722de67c10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000309025b6715c8eaabac0bfccdb2f25d651c9b69b0a184011a4a486b0b2080319d2396e7ca337f2abdf01548b2de1b3ba06000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b2317f59d86abfaf690850223d90e9e7593d91a29331dfc2f84d5adecc75fc39ecab4632c1b4400a3dd1e1298835bcca00000000000000000000000000000000a164736f6c6343000811000a" + }, + "0x0000000000000000000000000000000000002003": { + "balance": "0x0", + "code": "0x6080604052600436106101e75760003560e01c8063647df75911610102578063a9664feb11610095578063d241c1ea11610064578063d241c1ea1461068d578063dd62ed3e146106cf578063f1fad104146106ef578063f399e22e1461070457600080fd5b8063a9664feb14610600578063aa1966cd14610620578063aad3ec961461064d578063c2cde2b21461066d57600080fd5b806395d89b41116100d157806395d89b411461058b578063a457c2d7146105a0578063a5d059ca146105c0578063a9059cbb146105e057600080fd5b8063647df759146104e85780636bbf22491461050857806370a082311461053557806391faf0b41461056b57600080fd5b8063313ce5671161017a5780634bf6c882116101495780634bf6c8821461048b5780634d99dd16146104a05780635c19a95c146104c05780635e607d76146104d357600080fd5b8063313ce567146103f157806339509351146104135780633a5381b51461043357806345bc4d101461046b57600080fd5b806315d1f898116101b657806315d1f8981461038657806318160ddd1461039c57806323b872dd146103b15780632f2d448a146103d157600080fd5b8063038c0023146102e157806306fdde03146103145780630913db4714610336578063095ea7b31461035657600080fd5b366102dc57336120021461021757604051630f22c43960e41b815261200260048201526024015b60405180910390fd5b60006120026001600160a01b0316631fa8882b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610259573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061027d9190611de4565b6102879042611e13565b6098546000828152609d6020908152604080832093909355609c9052908120805492935034929091906102bb908490611e35565b9250508190555034609860008282546102d49190611e35565b925050819055005b600080fd5b3480156102ed57600080fd5b506103016102fc366004611e60565b610717565b6040519081526020015b60405180910390f35b34801561032057600080fd5b50610329610747565b60405161030b9190611e84565b34801561034257600080fd5b50610301610351366004611e60565b6107d9565b34801561036257600080fd5b50610376610371366004611ed2565b6107fb565b604051901515815260200161030b565b34801561039257600080fd5b5061030160985481565b3480156103a857600080fd5b50606754610301565b3480156103bd57600080fd5b506103766103cc366004611efe565b610813565b3480156103dd57600080fd5b506103016103ec366004611e60565b610837565b3480156103fd57600080fd5b5060125b60405160ff909116815260200161030b565b34801561041f57600080fd5b5061037661042e366004611ed2565b6108fc565b34801561043f57600080fd5b50609754610453906001600160a01b031681565b6040516001600160a01b03909116815260200161030b565b34801561047757600080fd5b50610301610486366004611f3f565b61091e565b34801561049757600080fd5b50610401600881565b3480156104ac57600080fd5b506103016104bb366004611ed2565b610a11565b6103016104ce366004611e60565b610c28565b6104e66104e1366004611f58565b610c9e565b005b3480156104f457600080fd5b50610301610503366004611f3f565b610e11565b34801561051457600080fd5b50610301610523366004611f3f565b609d6020526000908152604090205481565b34801561054157600080fd5b50610301610550366004611e60565b6001600160a01b031660009081526065602052604090205490565b34801561057757600080fd5b50610301610586366004611f3f565b610e50565b34801561059757600080fd5b50610329610e8b565b3480156105ac57600080fd5b506103766105bb366004611ed2565b610e9a565b3480156105cc57600080fd5b506103016105db366004611ed2565b610f15565b3480156105ec57600080fd5b506103766105fb366004611ed2565b611016565b34801561060c57600080fd5b5061030161061b366004611ed2565b611024565b34801561062c57600080fd5b5061030161063b366004611f3f565b609c6020526000908152604090205481565b34801561065957600080fd5b50610301610668366004611ed2565b61114d565b34801561067957600080fd5b50610301610688366004611e60565b6113f0565b34801561069957600080fd5b506106ad6106a8366004611ed2565b61140e565b604080518251815260208084015190820152918101519082015260600161030b565b3480156106db57600080fd5b506103016106ea366004611f82565b611491565b3480156106fb57600080fd5b50610401601181565b6104e6610712366004611fbb565b6114bc565b6001600160a01b0381166000908152609a6020526040812054600f81810b600160801b909204900b035b92915050565b60606068805461075690612040565b80601f016020809104026020016040519081016040528092919081815260200182805461078290612040565b80156107cf5780601f106107a4576101008083540402835291602001916107cf565b820191906000526020600020905b8154815290600101906020018083116107b257829003601f168201915b5050505050905090565b6001600160a01b03811660009081526065602052604081205461074190610e50565b600033610809818585611672565b5060019392505050565b60003361082185828561168b565b61082c8585856116ff565b506001949350505050565b6001600160a01b0381166000908152609a6020526040812054600f81810b600160801b909204900b0381805b828110156108f4576001600160a01b0385166000908152609a6020526040812061088d9083611718565b6000818152609960209081526040918290208251606081018452815481526001820154928101929092526002015491810182905291925042106108da576108d384612074565b93506108e1565b50506108f4565b5050806108ed90612074565b9050610863565b509392505050565b60003361080981858561090f8383611491565b6109199190611e35565b611672565b6000336120021461094657604051630f22c43960e41b8152612002600482015260240161020e565b6097546001600160a01b03166000908152606560205260408120549061096b84610e11565b905081811161097a578061097c565b815b609754909150600090610998906001600160a01b031683611789565b6040519091506000906110029083908381818185875af1925050503d80600081146109df576040519150601f19603f3d011682016040523d82523d6000602084013e6109e4565b606091505b5050905080610a06576040516312171d8360e31b815260040160405180910390fd5b50925050505b919050565b60003361200214610a3957604051630f22c43960e41b8152612002600482015260240161020e565b81600003610a5a57604051639811e0c760e01b815260040160405180910390fd5b6001600160a01b038316600090815260656020526040902054821115610a9357604051631e9acf1760e31b815260040160405180910390fd5b610a9d8383611789565b905060006120026001600160a01b031663fc0c5ff16040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ae1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b059190611de4565b610b0f9042611e35565b6040805160608101825285815260208101859052908101829052909150600085610b38816117be565b60405160609290921b6bffffffffffffffffffffffff19166020830152603482015260540160408051601f1981840301815291815281516020928301206000818152609990935291205490915015610ba35760405163b19e911560e01b815260040160405180910390fd5b600081815260996020908152604080832085518155828601516001820155818601516002909101556001600160a01b0389168352609a9091529020610c1f90828154600160801b90819004600f0b6000818152600180860160205260409091209390935583546001600160801b03908116939091011602179055565b50505092915050565b60003361200214610c5057604051630f22c43960e41b8152612002600482015260240161020e565b34600003610c7157604051631f2a200560e01b815260040160405180910390fd5b610c7b82346117e6565b905080600003610a0c57604051639811e0c760e01b815260040160405180910390fd5b3361200214610cc457604051630f22c43960e41b8152612002600482015260240161020e565b346000612710610cde67ffffffffffffffff85168461208d565b610ce89190611e13565b90506000610cf682846120a4565b905060006120026001600160a01b0316631fa8882b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d5e9190611de4565b610d689042611e13565b6098546000828152609d6020908152604080832093909355609c905290812080549293508492909190610d9c908490611e35565b925050819055508160986000828254610db59190611e35565b9091555050609754610dd0906001600160a01b0316846117e6565b5060408051838152602081018590527ffb0e1482d62102ab9594f69d4c6d693749e3e2bf1c21af272f5456b2d5a4f6b5910160405180910390a15050505050565b6000609854600003610e36576040516307b76ce760e51b815260040160405180910390fd5b609854606754610e46908461208d565b6107419190611e13565b6000610e5b60675490565b600003610e7b57604051632fe8dae960e01b815260040160405180910390fd5b606754609854610e46908461208d565b60606069805461075690612040565b60003381610ea88286611491565b905083811015610f085760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161020e565b61082c8286868403611672565b60003361200214610f3d57604051630f22c43960e41b8152612002600482015260240161020e565b81600003610f5e57604051639811e0c760e01b815260040160405180910390fd5b6001600160a01b038316600090815260656020526040902054821115610f9757604051631e9acf1760e31b815260040160405180910390fd5b610fa18383611789565b6040519091506000906120029083908381818185875af1925050503d8060008114610fe8576040519150601f19603f3d011682016040523d82523d6000602084013e610fed565b606091505b505090508061100f576040516312171d8360e31b815260040160405180910390fd5b5092915050565b6000336108098185856116ff565b6001600160a01b0382166000908152609a6020526040812054600f81810b600160801b909204900b0360000361105c57506000610741565b81158061109057506001600160a01b0383166000908152609a6020526040902054600f81810b600160801b909204900b0382115b61109a57816110c4565b6001600160a01b0383166000908152609a6020526040902054600f81810b600160801b909204900b035b91506000805b838110156108f4576001600160a01b0385166000908152609a602052604081206110f49083611718565b600081815260996020908152604091829020825160608101845281548152600182015492810183905260029091015492810192909252919250906111389085611e35565b935050508061114690612074565b90506110ca565b6000336120021461117557604051630f22c43960e41b8152612002600482015260240161020e565b61117d61180f565b6001600160a01b0383166000908152609a6020526040902054600f81810b600160801b909204900b036000036111c65760405163ad41893760e01b815260040160405180910390fd5b8115806111fa57506001600160a01b0383166000908152609a6020526040902054600f81810b600160801b909204900b0382115b611204578161122e565b6001600160a01b0383166000908152609a6020526040902054600f81810b600160801b909204900b035b915060005b82156112e4576001600160a01b0384166000908152609a6020526040812061125a90611868565b6000818152609960209081526040918290208251606081018452815481526001820154928101929092526002015491810182905291925042101561129f5750506112e4565b6001600160a01b0386166000908152609a602052604090206112c0906118bc565b5060208101516112d09084611e35565b92506112db856120b7565b94505050611233565b80600003611305576040516303cd8e0960e21b815260040160405180910390fd5b60006120026001600160a01b031663e8f67c3b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611347573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061136b9190611de4565b90506000856001600160a01b03168284604051600060405180830381858888f193505050503d80600081146113bc576040519150601f19603f3d011682016040523d82523d6000602084013e6113c1565b606091505b50509050806113e3576040516312171d8360e31b815260040160405180910390fd5b5050600180559050610741565b6001600160a01b0381166000908152609b6020526040812054610741565b61143260405180606001604052806000815260200160008152602001600081525090565b6001600160a01b0383166000908152609a602052604081206114549084611718565b6000908152609960209081526040918290208251606081018452815481526001820154928101929092526002015491810191909152949350505050565b6001600160a01b03918216600090815260666020908152604080832093909416825291909152205490565b600054610100900460ff16158080156114dc5750600054600160ff909116105b806114f65750303b1580156114f6575060005460ff166001145b6115595760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161020e565b6000805460ff19166001179055801561157c576000805461ff0019166101001790555b33612002146115a257604051630f22c43960e41b8152612002600482015260240161020e565b600083836040516020016115b79291906120ce565b6040516020818303038152906040529050600084846040516020016115dd9291906120fe565b60405160208183030381529060405290506115f88282611941565b611600611986565b609780546001600160a01b0319166001600160a01b038816179055611624346119ad565b5050801561166c576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b604051632028747160e01b815260040160405180910390fd5b60006116978484611491565b9050600019811461166c57818110156116f25760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161020e565b61166c8484848403611672565b604051638cd22d1960e01b815260040160405180910390fd5b60008061173b61172784611b1d565b85546117369190600f0b61211c565b611b8b565b8454909150600160801b9004600f90810b9082900b1261176e57604051632d0483c560e21b815260040160405180910390fd5b600f0b60009081526001939093016020525050604090205490565b600061179482610e50565b90506117a08383611bef565b80609860008282546117b291906120a4565b90915550909392505050565b6001600160a01b0381166000908152609b602052604090208054600181018255905b50919050565b60006117f182610e11565b90506117fd8382611d23565b81609860008282546117b29190611e35565b6002600154036118615760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161020e565b6002600155565b60006118838254600f81810b600160801b909204900b131590565b156118a157604051631ed9509560e11b815260040160405180910390fd5b508054600f0b60009081526001909101602052604090205490565b60006118d78254600f81810b600160801b909204900b131590565b156118f557604051631ed9509560e11b815260040160405180910390fd5b508054600f0b6000818152600180840160205260408220805492905583546fffffffffffffffffffffffffffffffff191692016001600160801b03169190911790915590565b60018055565b600054610100900460ff166119685760405162461bcd60e51b815260040161020e90612144565b606861197483826121f3565b50606961198182826121f3565b505050565b600054610100900460ff1661193b5760405162461bcd60e51b815260040161020e90612144565b600054610100900460ff166119d45760405162461bcd60e51b815260040161020e90612144565b60006120026001600160a01b0316638a4d3fa86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3a9190611de4565b90508082111580611a5457506097546001600160a01b0316155b80611a60575060675415155b15611a7e57604051632163e6b960e21b815260040160405180910390fd5b60006120026001600160a01b0316634e6fd6c46040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ac0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ae491906122b3565b9050611af08183611d23565b6000611afc83856120a4565b609754909150611b15906001600160a01b031682611d23565b505050609855565b60006001600160ff1b03821115611b875760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b606482015260840161020e565b5090565b80600f81900b8114610a0c5760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20316044820152663238206269747360c81b606482015260840161020e565b6001600160a01b038216611c4f5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b606482015260840161020e565b6001600160a01b03821660009081526065602052604090205481811015611cc35760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b606482015260840161020e565b6001600160a01b03831660008181526065602090815260408083208686039055606780548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6001600160a01b038216611d795760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161020e565b8060676000828254611d8b9190611e35565b90915550506001600160a01b0382166000818152606560209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b600060208284031215611df657600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b600082611e3057634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561074157610741611dfd565b6001600160a01b0381168114611e5d57600080fd5b50565b600060208284031215611e7257600080fd5b8135611e7d81611e48565b9392505050565b600060208083528351808285015260005b81811015611eb157858101830151858201604001528201611e95565b506000604082860101526040601f19601f8301168501019250505092915050565b60008060408385031215611ee557600080fd5b8235611ef081611e48565b946020939093013593505050565b600080600060608486031215611f1357600080fd5b8335611f1e81611e48565b92506020840135611f2e81611e48565b929592945050506040919091013590565b600060208284031215611f5157600080fd5b5035919050565b600060208284031215611f6a57600080fd5b813567ffffffffffffffff81168114611e7d57600080fd5b60008060408385031215611f9557600080fd5b8235611fa081611e48565b91506020830135611fb081611e48565b809150509250929050565b600080600060408486031215611fd057600080fd5b8335611fdb81611e48565b9250602084013567ffffffffffffffff80821115611ff857600080fd5b818601915086601f83011261200c57600080fd5b81358181111561201b57600080fd5b87602082850101111561202d57600080fd5b6020830194508093505050509250925092565b600181811c9082168061205457607f821691505b6020821081036117e057634e487b7160e01b600052602260045260246000fd5b60006001820161208657612086611dfd565b5060010190565b808202811582820484141761074157610741611dfd565b8181038181111561074157610741611dfd565b6000816120c6576120c6611dfd565b506000190190565b65029ba30b5b2960d51b815281836006830137660810dc99591a5d60ca1b91016006810191909152600d01919050565b611cdd60f21b81528183600283013760009101600201908152919050565b808201828112600083128015821682158216171561213c5761213c611dfd565b505092915050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b634e487b7160e01b600052604160045260246000fd5b601f82111561198157600081815260208120601f850160051c810160208610156121cc5750805b601f850160051c820191505b818110156121eb578281556001016121d8565b505050505050565b815167ffffffffffffffff81111561220d5761220d61218f565b6122218161221b8454612040565b846121a5565b602080601f831160018114612256576000841561223e5750858301515b600019600386901b1c1916600185901b1785556121eb565b600085815260208120601f198616915b8281101561228557888601518255948401946001909101908401612266565b50858210156122a35787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156122c557600080fd5b8151611e7d81611e4856fea164736f6c6343000811000a" + }, + "0x0000000000000000000000000000000000002004": { + "balance": "0x0", + "code": "0x6080604052600436106103f35760003560e01c80637b3c71d311610208578063c28bc2fa11610118578063e23a9a52116100ab578063f1fad1041161007a578063f1fad10414610e46578063f23a6e6114610e5b578063f8ce560a14610e87578063fc0c546a14610ea7578063fe0d94c114610ec857600080fd5b8063e23a9a5214610d1b578063ea0217cf14610de6578063eb9019d414610e06578063ece40cc114610e2657600080fd5b8063da95691a116100e7578063da95691a14610c61578063dd4e2ba514610c81578063ddf0b00914610cc7578063deaaa7cc14610ce757600080fd5b8063c28bc2fa14610bef578063c59057e414610c02578063d07f91e914610c22578063d33219b414610c4257600080fd5b8063a7713a701161019b578063b187bd261161016a578063b187bd2614610b55578063b58131b014610b73578063bc197c8114610b88578063c01f9e3714610bb4578063c170ec0b14610bd457600080fd5b8063a7713a7014610ae0578063a890c91014610af5578063ab58fb8e14610b15578063ac43175114610b3557600080fd5b806384b0196e116101d757806384b0196e14610a5857806391ddadf414610a8057806397c3d33414610aac5780639a802a6d14610ac057600080fd5b80637b3c71d3146109ee5780637d5e81e214610a0e5780638129fc1c14610a2e5780638456cb5914610a4357600080fd5b80633932abb1116103035780634a49ac4c1161029657806354fd4d501161026557806354fd4d5014610944578063567813881461096e5780635f398a141461098e57806360c4247f146109ae57806370b0f660146109ce57600080fd5b80634a49ac4c146108b75780634bf5d7e9146108d75780634bf6c882146108ec578063533ddd141461091357600080fd5b8063417c73a7116102d2578063417c73a7146107fc578063438596321461081c578063452115d6146108675780634838d1651461088757600080fd5b80633932abb1146107795780633bccf4fd1461078f5780633e4f49e6146107af57806340e58ee5146107dc57600080fd5b8063150b7a02116103865780632656227d116103555780632656227d146106a25780632d63f693146106b55780632fe3e261146106ec578063328dd9821461072057806332b8113e1461075057600080fd5b8063150b7a02146105fb578063160cbed71461063f57806317977c611461065f57806324bc1a641461068d57600080fd5b8063046f7da2116103c2578063046f7da21461054e57806306f3f9e61461056357806306fdde0314610583578063143489d0146105a557600080fd5b8063013cf08b1461046357806301ffc9a7146104de57806302a251a31461050e578063034201811461052e57600080fd5b3661045e5730610401610edb565b6001600160a01b03161461045c5760405162461bcd60e51b815260206004820152601f60248201527f476f7665726e6f723a206d7573742073656e6420746f206578656375746f720060448201526064015b60405180910390fd5b005b600080fd5b34801561046f57600080fd5b5061048361047e366004615c8b565b610ef5565b604080519a8b526001600160a01b0390991660208b0152978901969096526060880194909452608087019290925260a086015260c085015260e084015215156101008301521515610120820152610140015b60405180910390f35b3480156104ea57600080fd5b506104fe6104f9366004615ca4565b610fb0565b60405190151581526020016104d5565b34801561051a57600080fd5b50610195545b6040519081526020016104d5565b34801561053a57600080fd5b50610520610549366004615dea565b610fc1565b34801561055a57600080fd5b5061045c6110b9565b34801561056f57600080fd5b5061045c61057e366004615c8b565b611149565b34801561058f57600080fd5b506105986111d4565b6040516104d59190615ee0565b3480156105b157600080fd5b506105e36105c0366004615c8b565b60009081526101636020526040902054600160401b90046001600160a01b031690565b6040516001600160a01b0390911681526020016104d5565b34801561060757600080fd5b50610626610616366004615f08565b630a85bd0160e11b949350505050565b6040516001600160e01b031990911681526020016104d5565b34801561064b57600080fd5b5061052061065a3660046160df565b611267565b34801561066b57600080fd5b5061052061067a36600461616e565b6102c36020526000908152604090205481565b34801561069957600080fd5b50610520611352565b6105206106b03660046160df565b611378565b3480156106c157600080fd5b506105206106d0366004615c8b565b600090815261016360205260409020546001600160401b031690565b3480156106f857600080fd5b506105207fb3b3f3b703cd84ce352197dcff232b1b5d3cfb2025ce47cf04742d0651f1af8881565b34801561072c57600080fd5b5061074061073b366004615c8b565b61146b565b6040516104d59493929190616254565b34801561075c57600080fd5b5061028f546040516001600160401b0390911681526020016104d5565b34801561078557600080fd5b5061019454610520565b34801561079b57600080fd5b506105206107aa3660046162a1565b6116fd565b3480156107bb57600080fd5b506107cf6107ca366004615c8b565b611773565b6040516104d59190616305565b3480156107e857600080fd5b5061045c6107f7366004615c8b565b61177e565b34801561080857600080fd5b5061045c61081736600461616e565b6117a9565b34801561082857600080fd5b506104fe61083736600461632d565b60008281526101c6602090815260408083206001600160a01b038516845260080190915290205460ff1692915050565b34801561087357600080fd5b506105206108823660046160df565b61182a565b34801561089357600080fd5b506104fe6108a236600461616e565b60016020526000908152604090205460ff1681565b3480156108c357600080fd5b5061045c6108d236600461616e565b611838565b3480156108e357600080fd5b506105986118b3565b3480156108f857600080fd5b50610901600881565b60405160ff90911681526020016104d5565b34801561091f57600080fd5b506104fe61092e36600461616e565b6102c16020526000908152604090205460ff1681565b34801561095057600080fd5b506040805180820190915260018152603160f81b6020820152610598565b34801561097a57600080fd5b5061052061098936600461635d565b611960565b34801561099a57600080fd5b506105206109a9366004616389565b611989565b3480156109ba57600080fd5b506105206109c9366004615c8b565b6119d3565b3480156109da57600080fd5b5061045c6109e9366004615c8b565b611a88565b3480156109fa57600080fd5b50610520610a0936600461640c565b611b10565b348015610a1a57600080fd5b50610520610a29366004616465565b611b62565b348015610a3a57600080fd5b5061045c611c7d565b348015610a4f57600080fd5b5061045c611eaf565b348015610a6457600080fd5b50610a6d611f45565b6040516104d59796959493929190616505565b348015610a8c57600080fd5b50610a95611fe3565b60405165ffffffffffff90911681526020016104d5565b348015610ab857600080fd5b506064610520565b348015610acc57600080fd5b50610520610adb366004616567565b612057565b348015610aec57600080fd5b5061052061206e565b348015610b0157600080fd5b5061045c610b1036600461616e565b61209b565b348015610b2157600080fd5b50610520610b30366004615c8b565b612123565b348015610b4157600080fd5b5061045c610b503660046165bf565b6121bf565b348015610b6157600080fd5b5060005462010000900460ff166104fe565b348015610b7f57600080fd5b50610520612904565b348015610b9457600080fd5b50610626610ba336600461661e565b63bc197c8160e01b95945050505050565b348015610bc057600080fd5b50610520610bcf366004615c8b565b612910565b348015610be057600080fd5b506102c2546104fe9060ff1681565b61045c610bfd3660046166b1565b61291b565b348015610c0e57600080fd5b50610520610c1d3660046160df565b612a2b565b348015610c2e57600080fd5b5061045c610c3d3660046166f4565b612a65565b348015610c4e57600080fd5b5061022b546001600160a01b03166105e3565b348015610c6d57600080fd5b50610520610c7c36600461671d565b612aed565b348015610c8d57600080fd5b5060408051808201909152601a81527f737570706f72743d627261766f2671756f72756d3d627261766f0000000000006020820152610598565b348015610cd357600080fd5b5061045c610ce2366004615c8b565b612b74565b348015610cf357600080fd5b506105207f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f81565b348015610d2757600080fd5b50610db6610d3636600461632d565b60408051606081018252600080825260208201819052918101919091525060009182526101c6602090815260408084206001600160a01b0393909316845260089092018152918190208151606081018352905460ff8082161515835261010082041693820193909352620100009092046001600160601b03169082015290565b6040805182511515815260208084015160ff1690820152918101516001600160601b0316908201526060016104d5565b348015610df257600080fd5b5061045c610e01366004615c8b565b612b97565b348015610e1257600080fd5b50610520610e213660046167be565b612c1f565b348015610e3257600080fd5b5061045c610e41366004615c8b565b612c40565b348015610e5257600080fd5b50610901601181565b348015610e6757600080fd5b50610626610e763660046167ea565b63f23a6e6160e01b95945050505050565b348015610e9357600080fd5b50610520610ea2366004615c8b565b612cc8565b348015610eb357600080fd5b506101f8546105e3906001600160a01b031681565b61045c610ed6366004615c8b565b612d57565b6000610ef061022b546001600160a01b031690565b905090565b8060008080808080808080610f098a612123565b60008c815261016360205260409020549098506001600160401b03169650610f308b612910565b60008c81526101c66020526040812080546005820154600683015460078401546001600160a01b039093169e50949a509850929650919450610f718d611773565b90506002816007811115610f8757610f876162ef565b1493506007816007811115610f9e57610f9e6162ef565b14925050509193959799509193959799565b6000610fbb82612d7a565b92915050565b60008061106561105d7fb3b3f3b703cd84ce352197dcff232b1b5d3cfb2025ce47cf04742d0651f1af888c8c8c8c604051610ffd929190616852565b60405180910390208b80519060200120604051602001611042959493929190948552602085019390935260ff9190911660408401526060830152608082015260a00190565b60405160208183030381529060405280519060200120612d9f565b868686612dcc565b90506110ab8a828b8b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508d9250612dea915050565b9a9950505050505050505050565b600054630100000090046001600160a01b031633146110eb576040516306fbb1e360e01b815260040160405180910390fd5b60005462010000900460ff1661111457604051636cd6020160e01b815260040160405180910390fd5b6000805462ff0000191681556040517f62451d457bc659158be6e6247f56ec1df424a5c7597f71c20c2bc44e0965c8f99190a1565b611151610edb565b6001600160a01b0316336001600160a01b0316146111815760405162461bcd60e51b815260040161045390616862565b3061118a610edb565b6001600160a01b0316146111c857600080366040516111aa929190616852565b604051809103902090505b806111c1610164612e53565b036111b557505b6111d181612ed2565b50565b606061016280546111e490616899565b80601f016020809104026020016040519081016040528092919081815260200182805461121090616899565b801561125d5780601f106112325761010080835404028352916020019161125d565b820191906000526020600020905b81548152906001019060200180831161124057829003601f168201915b5050505050905090565b6000805462010000900460ff161561129257604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff16156112c35760405163b1d02c3d60e01b815260040160405180910390fd5b60005b855181101561133c576102c160008783815181106112e6576112e66168d3565b6020908102919091018101516001600160a01b031682528101919091526040016000205460ff1661132a57604051630b094f2760e31b815260040160405180910390fd5b80611334816168ff565b9150506112c6565b5061134985858585613043565b95945050505050565b6000610ef06001611361611fe3565b61136b9190616918565b65ffffffffffff16612cc8565b60008061138786868686612a2b565b9050600061139482611773565b905060048160078111156113aa576113aa6162ef565b14806113c7575060058160078111156113c5576113c56162ef565b145b6113e35760405162461bcd60e51b81526004016104539061693e565b6000828152610163602052604090819020600201805460ff19166001179055517f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f906114329084815260200190565b60405180910390a16114478288888888613248565b61145482888888886132e9565b61146182888888886133cb565b5095945050505050565b60608060608060006101c66000878152602001908152602001600020905080600101816002018260030183600401838054806020026020016040519081016040528092919081815260200182805480156114ee57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116114d0575b505050505093508280548060200260200160405190810160405280929190818152602001828054801561154057602002820191906000526020600020905b81548152602001906001019080831161152c575b5050505050925081805480602002602001604051908101604052809291908181526020016000905b8282101561161457838290600052602060002001805461158790616899565b80601f01602080910402602001604051908101604052809291908181526020018280546115b390616899565b80156116005780601f106115d557610100808354040283529160200191611600565b820191906000526020600020905b8154815290600101906020018083116115e357829003601f168201915b505050505081526020019060010190611568565b50505050915080805480602002602001604051908101604052809291908181526020016000905b828210156116e757838290600052602060002001805461165a90616899565b80601f016020809104026020016040519081016040528092919081815260200182805461168690616899565b80156116d35780601f106116a8576101008083540402835291602001916116d3565b820191906000526020600020905b8154815290600101906020018083116116b657829003601f168201915b50505050508152602001906001019061163b565b5050505090509450945094509450509193509193565b604080517f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f602082015290810186905260ff85166060820152600090819061174b9061105d90608001611042565b905061176887828860405180602001604052806000815250613406565b979650505050505050565b6000610fbb82613429565b60008060008061178d85613576565b93509350935093506117a18484848461182a565b505050505050565b600054630100000090046001600160a01b031633146117db576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b0381166000818152600160208190526040808320805460ff1916909217909155517f7fd26be6fc92aff63f1f4409b2b2ddeb272a888031d7f55ec830485ec61941869190a250565b600061134985858585613807565b600054630100000090046001600160a01b0316331461186a576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b038116600081815260016020526040808220805460ff19169055517fe0db3499b7fdc3da4cddff5f45d694549c19835e7f719fb5606d3ad1a5de40119190a250565b6101f85460408051634bf5d7e960e01b815290516060926001600160a01b031691634bf5d7e99160048083019260009291908290030181865afa92505050801561191f57506040513d6000823e601f3d908101601f1916820160405261191c919081019061697f565b60015b61195b575060408051808201909152601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000602082015290565b919050565b60008033905061198184828560405180602001604052806000815250613406565b949350505050565b60008033905061176887828888888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a9250612dea915050565b61025e546000908082036119ec57505061025d54919050565b600061025e6119fc6001846169ec565b81548110611a0c57611a0c6168d3565b60009182526020918290206040805180820190915291015463ffffffff8116808352600160201b9091046001600160e01b03169282019290925291508410611a6257602001516001600160e01b03169392505050565b611a77611a6e856138d2565b61025e9061393b565b6001600160e01b0316949350505050565b611a90610edb565b6001600160a01b0316336001600160a01b031614611ac05760405162461bcd60e51b815260040161045390616862565b30611ac9610edb565b6001600160a01b031614611b075760008036604051611ae9929190616852565b604051809103902090505b80611b00610164612e53565b03611af457505b6111d1816139ee565b600080339050611b5886828787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061340692505050565b9695505050505050565b6000805462010000900460ff1615611b8d57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615611bbe5760405163b1d02c3d60e01b815260040160405180910390fd5b611bc6613a31565b3360009081526102c360205260409020548015611c3b576000611be882611773565b90506001816007811115611bfe57611bfe6162ef565b1480611c1b57506000816007811115611c1957611c196162ef565b145b15611c395760405163867f3ee560e01b815260040160405180910390fd5b505b825160208401206000611c5088888885612a2b565b3360009081526102c3602052604090208190559050611c7188888888613adc565b98975050505050505050565b600054610100900460ff1615808015611c9d5750600054600160ff909116105b80611cb75750303b158015611cb7575060005460ff166001145b611d1a5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610453565b6000805460ff191660011790558015611d3d576000805461ff0019166101001790555b334114611d5d5760405163022d8c9560e31b815260040160405180910390fd5b3a15611d7c576040516383f1b1d360e01b815260040160405180910390fd5b611da86040518060400160405280600b81526020016a2129a1a3b7bb32b93737b960a91b815250613b44565b611dd4611db760036000616a15565b611dc5600362093a80616a15565b680ad78ebc5ac6200000613b9b565b611ddc613bd2565b611de7612005613bf9565b611df2612006613c29565b611dfc600a613c59565b611e12611e0d600362015180616a15565b613c89565b6110076000526102c16020527f2f832952f0ef896b8c8edd6d16a2e4f2591a90375e33021e3b9ff197f3793fc0805460ff19166001179055611e677308e68ec70fa3b629784fdb28887e206ce8561e08613cb9565b80156111d1576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b600054630100000090046001600160a01b03163314611ee1576040516306fbb1e360e01b815260040160405180910390fd5b60005462010000900460ff1615611f0b57604051631785c68160e01b815260040160405180910390fd5b6000805462ff00001916620100001781556040517f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e7529190a1565b6000606080600080600060606098546000801b148015611f655750609954155b611fa95760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606401610453565b611fb1613d0c565b611fb9613d1b565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b6101f854604080516324776b7d60e21b815290516000926001600160a01b0316916391ddadf49160048083019260209291908290030181865afa92505050801561204a575060408051601f3d908101601f1916820190925261204791810190616a37565b60015b61195b57610ef043613d2a565b6000612064848484613d91565b90505b9392505050565b61025e54600090156120935761208561025e613e08565b6001600160e01b0316905090565b5061025d5490565b6120a3610edb565b6001600160a01b0316336001600160a01b0316146120d35760405162461bcd60e51b815260040161045390616862565b306120dc610edb565b6001600160a01b03161461211a57600080366040516120fc929190616852565b604051809103902090505b80612113610164612e53565b0361210757505b6111d181613e38565b61022b54600082815261022c602052604080822054905163d45c443560e01b81526004810191909152909182916001600160a01b039091169063d45c443590602401602060405180830381865afa158015612182573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121a69190616a5f565b9050806001146121b65780612067565b60009392505050565b33611007146121e557604051630f22c43960e41b81526110076004820152602401610453565b61224b6040518060400160405280600b81526020016a766f74696e6744656c617960a81b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613ea39050565b1561230057602081146122795783838383604051630a5a604160e01b81526004016104539493929190616aa1565b604080516020601f84018190048102820181019092528281526000916122ba918585808385018382808284376000920191909152509293925050613efc9050565b90508015806122cb57506201518081115b156122f15784848484604051630a5a604160e01b81526004016104539493929190616aa1565b6122fa816139ee565b506128c1565b6123676040518060400160405280600c81526020016b1d9bdd1a5b99d4195c9a5bd960a21b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613ea39050565b1561241657602081146123955783838383604051630a5a604160e01b81526004016104539493929190616aa1565b604080516020601f84018190048102820181019092528281526000916123d6918585808385018382808284376000920191909152509293925050613efc9050565b90508015806123e7575062278d0081115b1561240d5784848484604051630a5a604160e01b81526004016104539493929190616aa1565b6122fa81613f01565b612482604051806040016040528060118152602001701c1c9bdc1bdcd85b151a1c995cda1bdb19607a1b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613ea39050565b1561253857602081146124b05783838383604051630a5a604160e01b81526004016104539493929190616aa1565b604080516020601f84018190048102820181019092528281526000916124f1918585808385018382808284376000920191909152509293925050613efc9050565b9050801580612509575069021e19e0c9bab240000081115b1561252f5784848484604051630a5a604160e01b81526004016104539493929190616aa1565b6122fa81613fa4565b6125a26040518060400160405280600f81526020016e38bab7b93ab6a73ab6b2b930ba37b960891b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613ea39050565b1561265157602081146125d05783838383604051630a5a604160e01b81526004016104539493929190616aa1565b604080516020601f8401819004810282018101909252828152600091612611918585808385018382808284376000920191909152509293925050613efc9050565b905060058110806126225750601481115b156126485784848484604051630a5a604160e01b81526004016104539493929190616aa1565b6122fa81612ed2565b6126c0604051806040016040528060148152602001736d696e506572696f64416674657251756f72756d60601b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613ea39050565b1561278657600881146126ee5783838383604051630a5a604160e01b81526004016104539493929190616aa1565b6000612734600884848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613efc9050565b90506001600160401b038116158061275757506202a300816001600160401b0316115b1561277d5784848484604051630a5a604160e01b81526004016104539493929190616aa1565b6122fa81613fe7565b6127f26040518060400160405280601181526020017033b7bb32b93737b9283937ba32b1ba37b960791b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613ea39050565b156128a057601481146128205783838383604051630a5a604160e01b81526004016104539493929190616aa1565b6000612866601484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613efc9050565b90506001600160a01b0381166128975784848484604051630a5a604160e01b81526004016104539493929190616aa1565b6122fa81614053565b838383836040516325ee20d560e21b81526004016104539493929190616aa1565b7ff1ce9b2cbf50eeb05769a29e2543fd350cab46894a7dd9978a12d534bb20e633848484846040516128f69493929190616aa1565b60405180910390a150505050565b6000610ef06101965490565b6000610fbb826140bf565b612923610edb565b6001600160a01b0316336001600160a01b0316146129535760405162461bcd60e51b815260040161045390616862565b3061295c610edb565b6001600160a01b03161461299a576000803660405161297c929190616852565b604051809103902090505b80612993610164612e53565b0361298757505b600080856001600160a01b03168585856040516129b8929190616852565b60006040518083038185875af1925050503d80600081146129f5576040519150601f19603f3d011682016040523d82523d6000602084013e6129fa565b606091505b5091509150612a228282604051806060016040528060288152602001616efe602891396140fd565b50505050505050565b600084848484604051602001612a449493929190616ac8565b60408051601f19818403018152919052805160209091012095945050505050565b612a6d610edb565b6001600160a01b0316336001600160a01b031614612a9d5760405162461bcd60e51b815260040161045390616862565b30612aa6610edb565b6001600160a01b031614612ae45760008036604051612ac6929190616852565b604051809103902090505b80612add610164612e53565b03612ad157505b6111d181613fe7565b60008251845114612b515760405162461bcd60e51b815260206004820152602860248201527f476f7665726e6f72427261766f3a20696e76616c6964207369676e61747572656044820152670e640d8cadccee8d60c31b6064820152608401610453565b612b5f338787878787614116565b611b588686612b6e87876141d4565b85611b62565b600080600080612b8385613576565b93509350935093506117a184848484611267565b612b9f610edb565b6001600160a01b0316336001600160a01b031614612bcf5760405162461bcd60e51b815260040161045390616862565b30612bd8610edb565b6001600160a01b031614612c165760008036604051612bf8929190616852565b604051809103902090505b80612c0f610164612e53565b03612c0357505b6111d181613f01565b60006120678383612c3b60408051602081019091526000815290565b613d91565b612c48610edb565b6001600160a01b0316336001600160a01b031614612c785760405162461bcd60e51b815260040161045390616862565b30612c81610edb565b6001600160a01b031614612cbf5760008036604051612ca1929190616852565b604051809103902090505b80612cb8610164612e53565b03612cac57505b6111d181613fa4565b60006064612cd5836119d3565b6101f854604051632394e7a360e21b8152600481018690526001600160a01b0390911690638e539e8c90602401602060405180830381865afa158015612d1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d439190616a5f565b612d4d9190616b13565b610fbb9190616a15565b600080600080612d6685613576565b93509350935093506117a184848484611378565b60006001600160e01b03198216636e665ced60e01b1480610fbb5750610fbb82614306565b6000610fbb612dac6143a2565b8360405161190160f01b8152600281019290925260228201526042902090565b6000806000612ddd878787876143ac565b9150915061146181614470565b6000805462010000900460ff1615612e1557604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615612e465760405163b1d02c3d60e01b815260040160405180910390fd5b611b5886868686866145ba565b6000612e6e8254600f81810b600160801b909204900b131590565b15612e8c57604051631ed9509560e11b815260040160405180910390fd5b508054600f0b6000818152600180840160205260408220805492905583546fffffffffffffffffffffffffffffffff191692016001600160801b03169190911790915590565b6064811115612f555760405162461bcd60e51b815260206004820152604360248201527f476f7665726e6f72566f74657351756f72756d4672616374696f6e3a2071756f60448201527f72756d4e756d657261746f72206f7665722071756f72756d44656e6f6d696e616064820152623a37b960e91b608482015260a401610453565b6000612f5f61206e565b90508015801590612f71575061025e54155b15612fd657604080518082019091526000815261025e9060208101612f95846146bd565b6001600160e01b039081169091528254600181018455600093845260209384902083519490930151909116600160201b0263ffffffff909316929092179101555b613004612ff1612fe4611fe3565b65ffffffffffff166138d2565b612ffa846146bd565b61025e9190614726565b505060408051828152602081018490527f0553476bf02ef2726e8ce5ced78d63e26e602e4a2257b1f559418e24b4633997910160405180910390a15050565b60008061305286868686612a2b565b9050600461305f82611773565b6007811115613070576130706162ef565b1461308d5760405162461bcd60e51b81526004016104539061693e565b61022b546040805163793d064960e11b815290516000926001600160a01b03169163f27a0c929160048083019260209291908290030181865afa1580156130d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130fc9190616a5f565b61022b5460405163b1c5f42760e01b81529192506001600160a01b03169063b1c5f42790613137908a908a908a906000908b90600401616b2a565b602060405180830381865afa158015613154573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131789190616a5f565b600083815261022c60205260408082209290925561022b5491516308f2a0bb60e41b81526001600160a01b0390921691638f2a0bb0916131c5918b918b918b91908b908990600401616b78565b600060405180830381600087803b1580156131df57600080fd5b505af11580156131f3573d6000803e3d6000fd5b505050507f9a2e42fd6722813d69113e7d0079d3d940171428df7373df9c7f7617cfda28928282426132259190616bd0565b604080519283526020830191909152015b60405180910390a15095945050505050565b30613251610edb565b6001600160a01b0316146132e25760005b84518110156117a157306001600160a01b0316858281518110613287576132876168d3565b60200260200101516001600160a01b0316036132d2576132d28382815181106132b2576132b26168d3565b60200260200101518051906020012061016461474190919063ffffffff16565b6132db816168ff565b9050613262565b5050505050565b60005462010000900460ff161561331357604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff16156133445760405163b1d02c3d60e01b815260040160405180910390fd5b60005b84518110156133bd576102c16000868381518110613367576133676168d3565b6020908102919091018101516001600160a01b031682528101919091526040016000205460ff166133ab57604051630b094f2760e31b815260040160405180910390fd5b806133b5816168ff565b915050613347565b506132e2858585858561477d565b306133d4610edb565b6001600160a01b0316146132e25761016454600f81810b600160801b909204900b13156132e2576000610164556132e2565b60006113498585858561342460408051602081019091526000815290565b612dea565b600080613435836147f2565b9050600481600781111561344b5761344b6162ef565b146134565792915050565b600083815261022c602052604090205480613472575092915050565b61022b54604051632ab0f52960e01b8152600481018390526001600160a01b0390911690632ab0f52990602401602060405180830381865afa1580156134bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134e09190616be3565b156134ef575060079392505050565b61022b54604051632c258a9f60e11b8152600481018390526001600160a01b039091169063584b153e90602401602060405180830381865afa158015613539573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061355d9190616be3565b1561356c575060059392505050565b5060029392505050565b60608060606000806101c660008781526020019081526020016000209050806001018160020161374883600301805480602002602001604051908101604052809291908181526020016000905b8282101561366f5783829060005260206000200180546135e290616899565b80601f016020809104026020016040519081016040528092919081815260200182805461360e90616899565b801561365b5780601f106136305761010080835404028352916020019161365b565b820191906000526020600020905b81548152906001019060200180831161363e57829003601f168201915b5050505050815260200190600101906135c3565b50505060048601805460408051602080840282018101909252828152935060009084015b8282101561373f5783829060005260206000200180546136b290616899565b80601f01602080910402602001604051908101604052809291908181526020018280546136de90616899565b801561372b5780601f106137005761010080835404028352916020019161372b565b820191906000526020600020905b81548152906001019060200180831161370e57829003601f168201915b505050505081526020019060010190613693565b505050506141d4565b600984015483546040805160208084028201810190925282815291869183018282801561379e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613780575b50505050509350828054806020026020016040519081016040528092919081815260200182805480156137f057602002820191906000526020600020905b8154815260200190600101908083116137dc575b505050505092509450945094509450509193509193565b60008061381686868686612a2b565b60008181526101c660205260409020549091506001600160a01b03163381148061386a5750613843612904565b613868826001613851611fe3565b61385b9190616918565b65ffffffffffff16612c1f565b105b6138c65760405162461bcd60e51b815260206004820152602760248201527f476f7665726e6f72427261766f3a2070726f706f7365722061626f76652074686044820152661c995cda1bdb1960ca1b6064820152608401610453565b6117688787878761492a565b600063ffffffff8211156139375760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b6064820152608401610453565b5090565b81546000908181600581111561399857600061395684614938565b61396090856169ec565b60008881526020902090915081015463ffffffff908116908716101561398857809150613996565b613993816001616bd0565b92505b505b60006139a687878585614a20565b905080156139e1576139cb876139bd6001846169ec565b600091825260209091200190565b54600160201b90046001600160e01b0316611768565b6000979650505050505050565b6101945460408051918252602082018390527fc565b045403dc03c2eea82b81a0465edad9e2e7fc4d97e11421c209da93d7a93910160405180910390a161019455565b6102c25460ff16613ada576a084595161401484a0000006120056001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613a88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613aac9190616a5f565b1015613acb576040516311b6707f60e01b815260040160405180910390fd5b6102c2805460ff191660011790555b565b6000613b3833868686516001600160401b03811115613afd57613afd615d27565b604051908082528060200260200182016040528015613b3057816020015b6060815260200190600190039081613b1b5790505b508787614116565b61134985858585614a76565b600054610100900460ff16613b6b5760405162461bcd60e51b815260040161045390616c05565b613b9281613b8d6040805180820190915260018152603160f81b602082015290565b614e55565b6111d181614ea4565b600054610100900460ff16613bc25760405162461bcd60e51b815260040161045390616c05565b613bcd838383614edc565b505050565b600054610100900460ff16613ada5760405162461bcd60e51b815260040161045390616c05565b600054610100900460ff16613c205760405162461bcd60e51b815260040161045390616c05565b6111d181614f1e565b600054610100900460ff16613c505760405162461bcd60e51b815260040161045390616c05565b6111d181614f68565b600054610100900460ff16613c805760405162461bcd60e51b815260040161045390616c05565b6111d181614f8f565b600054610100900460ff16613cb05760405162461bcd60e51b815260040161045390616c05565b6111d181614fb6565b600054610100900460ff16613ce05760405162461bcd60e51b815260040161045390616c05565b600080546001600160a01b039092166301000000026301000000600160b81b0319909216919091179055565b6060609a80546111e490616899565b6060609b80546111e490616899565b600065ffffffffffff8211156139375760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203460448201526538206269747360d01b6064820152608401610453565b6101f854604051630748d63560e31b81526001600160a01b038581166004830152602482018590526000921690633a46b1a890604401602060405180830381865afa158015613de4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120649190616a5f565b805460009080156121b657613e22836139bd6001846169ec565b54600160201b90046001600160e01b0316612067565b61022b54604080516001600160a01b03928316815291831660208301527f08f74ea46ef7894f65eabfb5e6e695de773a000b47c529ab559178069b226401910160405180910390a161022b80546001600160a01b0319166001600160a01b0392909216919091179055565b600081604051602001613eb69190616c50565b6040516020818303038152906040528051906020012083604051602001613edd9190616c50565b6040516020818303038152906040528051906020012014905092915050565b015190565b60008111613f615760405162461bcd60e51b815260206004820152602760248201527f476f7665726e6f7253657474696e67733a20766f74696e6720706572696f6420604482015266746f6f206c6f7760c81b6064820152608401610453565b6101955460408051918252602082018390527f7e3f7f0708a84de9203036abaa450dccc85ad5ff52f78c170f3edb55cf5e8828910160405180910390a161019555565b6101965460408051918252602082018390527fccb45da8d5717e6c4544694297c4ba5cf151d455c9bb0ed4fc7a38411bc05461910160405180910390a161019655565b61028f54604080516001600160401b03928316815291831660208301527f7ca4ac117ed3cdce75c1161d8207c440389b1a15d69d096831664657c07dafc2910160405180910390a161028f805467ffffffffffffffff19166001600160401b0392909216919091179055565b600080546040516001600160a01b0380851693630100000090930416917f44fc1b38a4abaa91ebd1b628a5b259a698f86238c8217d68f516e87769c60c0b91a3600080546001600160a01b039092166301000000026301000000600160b81b0319909216919091179055565b60008181526101636020526040812060010154610fbb906001600160401b0316600084815261029060205260409020546001600160401b0316614fdd565b6060831561410c575081612067565b6120678383614ff3565b805160208201206000614134878761412e88886141d4565b85612a2b565b60008181526101c6602052604090206009810154919250906141c95780546001600160a01b0319166001600160a01b038a16178155875161417e90600183019060208b0190615ac2565b50865161419490600283019060208a0190615b23565b5085516141aa9060038301906020890190615b5e565b5084516141c09060048301906020880190615bb0565b50600981018390555b505050505050505050565b6060600082516001600160401b038111156141f1576141f1615d27565b60405190808252806020026020018201604052801561422457816020015b606081526020019060019003908161420f5790505b50905060005b81518110156142fe57848181518110614245576142456168d3565b6020026020010151516000146142b557848181518110614267576142676168d3565b602002602001015180519060200120848281518110614288576142886168d3565b60200260200101516040516020016142a1929190616c6c565b6040516020818303038152906040526142d0565b8381815181106142c7576142c76168d3565b60200260200101515b8282815181106142e2576142e26168d3565b6020026020010181905250806142f7906168ff565b905061422a565b509392505050565b600063288ace0360e11b6318df743f60e31b63bf26d89760e01b6379dd796f60e01b6001600160e01b0319861682148061434c57506001600160e01b0319868116908216145b8061436357506001600160e01b0319868116908516145b8061437e57506001600160e01b03198616630271189760e51b145b80611b5857506301ffc9a760e01b6001600160e01b03198716149695505050505050565b6000610ef061501d565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156143e35750600090506003614467565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614437573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661446057600060019250925050614467565b9150600090505b94509492505050565b6000816004811115614484576144846162ef565b0361448c5750565b60018160048111156144a0576144a06162ef565b036144ed5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610453565b6002816004811115614501576145016162ef565b0361454e5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610453565b6003816004811115614562576145626162ef565b036111d15760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610453565b6000806145ca8787878787615091565b600088815261029060205260409020549091506001600160401b03161580156145f757506145f7876151e7565b15611b5857600061461161028f546001600160401b031690565b614619611fe3565b65ffffffffffff1661462b9190616c9d565b905061463688612910565b816001600160401b03161115614685576040516001600160401b038216815288907f541f725fb9f7c98a30cc9c0ff32fbb14358cd7159c847a3aa20a2bdc442ba5119060200160405180910390a25b600088815261029060205260409020805467ffffffffffffffff19166001600160401b03929092169190911790559695505050505050565b60006001600160e01b038211156139375760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b6064820152608401610453565b600080614734858585615227565b915091505b935093915050565b8154600160801b90819004600f0b6000818152600180860160205260409091209390935583546001600160801b03908116939091011602179055565b61022b5460405163e38335e560e01b81526001600160a01b039091169063e38335e59034906147b9908890889088906000908990600401616b2a565b6000604051808303818588803b1580156147d257600080fd5b505af11580156147e6573d6000803e3d6000fd5b50505050505050505050565b600081815261016360205260408120600281015460ff16156148175750600792915050565b6002810154610100900460ff16156148325750600292915050565b600083815261016360205260408120546001600160401b03169081900361489b5760405162461bcd60e51b815260206004820152601d60248201527f476f7665726e6f723a20756e6b6e6f776e2070726f706f73616c2069640000006044820152606401610453565b60006148a5611fe3565b65ffffffffffff1690508082106148c157506000949350505050565b60006148cc86612910565b90508181106148e15750600195945050505050565b6148ea866151e7565b801561490d575060008681526101c6602052604090206006810154600590910154115b1561491e5750600495945050505050565b50600395945050505050565b6000611349858585856153c6565b60008160000361494a57506000919050565b600060016149578461547c565b901c6001901b90506001818481614970576149706169ff565b048201901c90506001818481614988576149886169ff565b048201901c905060018184816149a0576149a06169ff565b048201901c905060018184816149b8576149b86169ff565b048201901c905060018184816149d0576149d06169ff565b048201901c905060018184816149e8576149e86169ff565b048201901c90506001818481614a0057614a006169ff565b048201901c905061206781828581614a1a57614a1a6169ff565b04615510565b60005b818310156142fe576000614a37848461551f565b60008781526020902090915063ffffffff86169082015463ffffffff161115614a6257809250614a70565b614a6d816001616bd0565b93505b50614a23565b600033614a83818461553a565b614acf5760405162461bcd60e51b815260206004820152601d60248201527f476f7665726e6f723a2070726f706f73657220726573747269637465640000006044820152606401610453565b6000614ad9611fe3565b65ffffffffffff169050614aeb612904565b614afa83610e216001856169ec565b1015614b625760405162461bcd60e51b815260206004820152603160248201527f476f7665726e6f723a2070726f706f73657220766f7465732062656c6f7720706044820152701c9bdc1bdcd85b081d1a1c995cda1bdb19607a1b6064820152608401610453565b6000614b778888888880519060200120612a2b565b90508651885114614b9a5760405162461bcd60e51b815260040161045390616cbd565b8551885114614bbb5760405162461bcd60e51b815260040161045390616cbd565b6000885111614c0c5760405162461bcd60e51b815260206004820152601860248201527f476f7665726e6f723a20656d7074792070726f706f73616c00000000000000006044820152606401610453565b600081815261016360205260409020546001600160401b031615614c7c5760405162461bcd60e51b815260206004820152602160248201527f476f7665726e6f723a2070726f706f73616c20616c72656164792065786973746044820152607360f81b6064820152608401610453565b6000614c886101945490565b614c929084616bd0565b90506000614ca06101955490565b614caa9083616bd0565b90506040518060e00160405280614cc08461562b565b6001600160401b031681526001600160a01b038716602082015260006040820152606001614ced8361562b565b6001600160401b03908116825260006020808401829052604080850183905260609485018390528883526101638252918290208551815492870151878501519186166001600160e01b031990941693909317600160401b6001600160a01b039094168402176001600160e01b0316600160e01b60e09290921c91909102178155938501516080860151908416921c0217600183015560a08301516002909201805460c09094015161ffff1990941692151561ff00191692909217610100931515939093029290921790558a517f7d84a6263ae0d98d3329bd7b46bb4e8d6f98cd35a7adb45c274c8b7fd5ebd5e091859188918e918e91811115614df257614df2615d27565b604051908082528060200260200182016040528015614e2557816020015b6060815260200190600190039081614e105790505b508d88888f604051614e3f99989796959493929190616cfe565b60405180910390a1509098975050505050505050565b600054610100900460ff16614e7c5760405162461bcd60e51b815260040161045390616c05565b609a614e888382616ddc565b50609b614e958282616ddc565b50506000609881905560995550565b600054610100900460ff16614ecb5760405162461bcd60e51b815260040161045390616c05565b610162614ed88282616ddc565b5050565b600054610100900460ff16614f035760405162461bcd60e51b815260040161045390616c05565b614f0c836139ee565b614f1582613f01565b613bcd81613fa4565b600054610100900460ff16614f455760405162461bcd60e51b815260040161045390616c05565b6101f880546001600160a01b0319166001600160a01b0392909216919091179055565b600054610100900460ff1661211a5760405162461bcd60e51b815260040161045390616c05565b600054610100900460ff166111c85760405162461bcd60e51b815260040161045390616c05565b600054610100900460ff16612ae45760405162461bcd60e51b815260040161045390616c05565b6000818311614fec5781612067565b5090919050565b8151156150035781518083602001fd5b8060405162461bcd60e51b81526004016104539190615ee0565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f615048615693565b6150506156ec565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b60008581526101636020526040812060016150ab88611773565b60078111156150bc576150bc6162ef565b146151155760405162461bcd60e51b815260206004820152602360248201527f476f7665726e6f723a20766f7465206e6f742063757272656e746c792061637460448201526269766560e81b6064820152608401610453565b805460009061512f9088906001600160401b031686613d91565b905061513e888888848861571d565b835160000361519357866001600160a01b03167fb8e138887d0aa13bab447e82de9d5c1777041ecd21ca36ba824ff1e6c07ddda4898884896040516151869493929190616e9b565b60405180910390a2611768565b866001600160a01b03167fe2babfbac5889a709b63bb7f598b324e08bc5a4fb9ec647fb3cbc9ec07eb871289888489896040516151d4959493929190616ec3565b60405180910390a2979650505050505050565b60008181526101c660205260408120600581015461521e610ea285600090815261016360205260409020546001600160401b031690565b11159392505050565b82546000908190801561536d576000615245876139bd6001856169ec565b60408051808201909152905463ffffffff808216808452600160201b9092046001600160e01b0316602084015291925090871610156152c65760405162461bcd60e51b815260206004820152601b60248201527f436865636b706f696e743a2064656372656173696e67206b65797300000000006044820152606401610453565b805163ffffffff80881691160361530e57846152e7886139bd6001866169ec565b80546001600160e01b0392909216600160201b0263ffffffff90921691909117905561535d565b6040805180820190915263ffffffff80881682526001600160e01b0380881660208085019182528b54600181018d5560008d81529190912094519151909216600160201b029216919091179101555b6020015192508391506147399050565b50506040805180820190915263ffffffff80851682526001600160e01b0380851660208085019182528854600181018a5560008a815291822095519251909316600160201b029190931617920191909155905081614739565b6000806153d5868686866158bb565b600081815261022c6020526040902054909150156113495761022b54600082815261022c60205260409081902054905163c4d252f560e01b81526001600160a01b039092169163c4d252f5916154319160040190815260200190565b600060405180830381600087803b15801561544b57600080fd5b505af115801561545f573d6000803e3d6000fd5b505050600082815261022c60205260408120555095945050505050565b600080608083901c1561549157608092831c92015b604083901c156154a357604092831c92015b602083901c156154b557602092831c92015b601083901c156154c757601092831c92015b600883901c156154d957600892831c92015b600483901c156154eb57600492831c92015b600283901c156154fd57600292831c92015b600183901c15610fbb5760010192915050565b6000818310614fec5781612067565b600061552e6002848418616a15565b61206790848416616bd0565b80516000906034811015615552576001915050610fbb565b82810160131901516001600160a01b031981166b046e0e4dee0dee6cae47a60f60a31b1461558557600192505050610fbb565b6000806155936028856169ec565b90505b8381101561560a576000806155ca8884815181106155b6576155b66168d3565b01602001516001600160f81b0319166159c8565b91509150816155e25760019650505050505050610fbb565b8060ff166004856001600160a01b0316901b179350505080615603906168ff565b9050615596565b50856001600160a01b0316816001600160a01b031614935050505092915050565b60006001600160401b038211156139375760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201526534206269747360d01b6064820152608401610453565b60008061569e613d0c565b8051909150156156b5578051602090910120919050565b60985480156156c45792915050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4709250505090565b6000806156f7613d1b565b80519091501561570e578051602090910120919050565b60995480156156c45792915050565b60008581526101c6602090815260408083206001600160a01b038816845260088101909252909120805460ff16156157ad5760405162461bcd60e51b815260206004820152602d60248201527f476f7665726e6f72436f6d7061746962696c697479427261766f3a20766f746560448201526c08185b1c9958591e4818d85cdd609a1b6064820152608401610453565b805460ff86166101000261ffff199091161760011781556157cd84615a5a565b81546001600160601b039190911662010000026dffffffffffffffffffffffff00001990911617815560ff851661581d57838260060160008282546158129190616bd0565b90915550612a229050565b60001960ff86160161583d57838260050160008282546158129190616bd0565b60011960ff86160161585d57838260070160008282546158129190616bd0565b60405162461bcd60e51b815260206004820152602d60248201527f476f7665726e6f72436f6d7061746962696c697479427261766f3a20696e766160448201526c6c696420766f7465207479706560981b6064820152608401610453565b6000806158ca86868686612a2b565b905060006158d782611773565b905060028160078111156158ed576158ed6162ef565b1415801561590d5750600681600781111561590a5761590a6162ef565b14155b801561592b57506007816007811115615928576159286162ef565b14155b6159775760405162461bcd60e51b815260206004820152601d60248201527f476f7665726e6f723a2070726f706f73616c206e6f74206163746976650000006044820152606401610453565b6000828152610163602052604090819020600201805461ff001916610100179055517f789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c906132369084815260200190565b60008060f883901c602f811180156159e35750603a8160ff16105b156159f857600194602f199091019350915050565b8060ff166040108015615a0e575060478160ff16105b15615a23576001946036199091019350915050565b8060ff166060108015615a39575060678160ff16105b15615a4e576001946056199091019350915050565b50600093849350915050565b60006001600160601b038211156139375760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203960448201526536206269747360d01b6064820152608401610453565b828054828255906000526020600020908101928215615b17579160200282015b82811115615b1757825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190615ae2565b50613937929150615c02565b828054828255906000526020600020908101928215615b17579160200282015b82811115615b17578251825591602001919060010190615b43565b828054828255906000526020600020908101928215615ba4579160200282015b82811115615ba45782518290615b949082616ddc565b5091602001919060010190615b7e565b50613937929150615c17565b828054828255906000526020600020908101928215615bf6579160200282015b82811115615bf65782518290615be69082616ddc565b5091602001919060010190615bd0565b50613937929150615c34565b5b808211156139375760008155600101615c03565b80821115613937576000615c2b8282615c51565b50600101615c17565b80821115613937576000615c488282615c51565b50600101615c34565b508054615c5d90616899565b6000825580601f10615c6d575050565b601f0160209004906000526020600020908101906111d19190615c02565b600060208284031215615c9d57600080fd5b5035919050565b600060208284031215615cb657600080fd5b81356001600160e01b03198116811461206757600080fd5b803560ff8116811461195b57600080fd5b60008083601f840112615cf157600080fd5b5081356001600160401b03811115615d0857600080fd5b602083019150836020828501011115615d2057600080fd5b9250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715615d6557615d65615d27565b604052919050565b60006001600160401b03821115615d8657615d86615d27565b50601f01601f191660200190565b600082601f830112615da557600080fd5b8135615db8615db382615d6d565b615d3d565b818152846020838601011115615dcd57600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060008060008060e0898b031215615e0657600080fd5b88359750615e1660208a01615cce565b965060408901356001600160401b0380821115615e3257600080fd5b615e3e8c838d01615cdf565b909850965060608b0135915080821115615e5757600080fd5b50615e648b828c01615d94565b945050615e7360808a01615cce565b925060a0890135915060c089013590509295985092959890939650565b60005b83811015615eab578181015183820152602001615e93565b50506000910152565b60008151808452615ecc816020860160208601615e90565b601f01601f19169290920160200192915050565b6020815260006120676020830184615eb4565b6001600160a01b03811681146111d157600080fd5b60008060008060808587031215615f1e57600080fd5b8435615f2981615ef3565b93506020850135615f3981615ef3565b92506040850135915060608501356001600160401b03811115615f5b57600080fd5b615f6787828801615d94565b91505092959194509250565b60006001600160401b03821115615f8c57615f8c615d27565b5060051b60200190565b600082601f830112615fa757600080fd5b81356020615fb7615db383615f73565b82815260059290921b84018101918181019086841115615fd657600080fd5b8286015b84811015615ffa578035615fed81615ef3565b8352918301918301615fda565b509695505050505050565b600082601f83011261601657600080fd5b81356020616026615db383615f73565b82815260059290921b8401810191818101908684111561604557600080fd5b8286015b84811015615ffa5780358352918301918301616049565b600082601f83011261607157600080fd5b81356020616081615db383615f73565b82815260059290921b840181019181810190868411156160a057600080fd5b8286015b84811015615ffa5780356001600160401b038111156160c35760008081fd5b6160d18986838b0101615d94565b8452509183019183016160a4565b600080600080608085870312156160f557600080fd5b84356001600160401b038082111561610c57600080fd5b61611888838901615f96565b9550602087013591508082111561612e57600080fd5b61613a88838901616005565b9450604087013591508082111561615057600080fd5b5061615d87828801616060565b949793965093946060013593505050565b60006020828403121561618057600080fd5b813561206781615ef3565b600081518084526020808501945080840160005b838110156161c45781516001600160a01b03168752958201959082019060010161619f565b509495945050505050565b600081518084526020808501945080840160005b838110156161c4578151875295820195908201906001016161e3565b600081518084526020808501808196508360051b8101915082860160005b85811015616247578284038952616235848351615eb4565b9885019893509084019060010161621d565b5091979650505050505050565b608081526000616267608083018761618b565b828103602084015261627981876161cf565b9050828103604084015261628d81866161ff565b9050828103606084015261176881856161ff565b600080600080600060a086880312156162b957600080fd5b853594506162c960208701615cce565b93506162d760408701615cce565b94979396509394606081013594506080013592915050565b634e487b7160e01b600052602160045260246000fd5b602081016008831061632757634e487b7160e01b600052602160045260246000fd5b91905290565b6000806040838503121561634057600080fd5b82359150602083013561635281615ef3565b809150509250929050565b6000806040838503121561637057600080fd5b8235915061638060208401615cce565b90509250929050565b6000806000806000608086880312156163a157600080fd5b853594506163b160208701615cce565b935060408601356001600160401b03808211156163cd57600080fd5b6163d989838a01615cdf565b909550935060608801359150808211156163f257600080fd5b506163ff88828901615d94565b9150509295509295909350565b6000806000806060858703121561642257600080fd5b8435935061643260208601615cce565b925060408501356001600160401b0381111561644d57600080fd5b61645987828801615cdf565b95989497509550505050565b6000806000806080858703121561647b57600080fd5b84356001600160401b038082111561649257600080fd5b61649e88838901615f96565b955060208701359150808211156164b457600080fd5b6164c088838901616005565b945060408701359150808211156164d657600080fd5b6164e288838901616060565b935060608701359150808211156164f857600080fd5b50615f6787828801615d94565b60ff60f81b8816815260e06020820152600061652460e0830189615eb4565b82810360408401526165368189615eb4565b606084018890526001600160a01b038716608085015260a0840186905283810360c085015290506110ab81856161cf565b60008060006060848603121561657c57600080fd5b833561658781615ef3565b92506020840135915060408401356001600160401b038111156165a957600080fd5b6165b586828701615d94565b9150509250925092565b600080600080604085870312156165d557600080fd5b84356001600160401b03808211156165ec57600080fd5b6165f888838901615cdf565b9096509450602087013591508082111561661157600080fd5b5061645987828801615cdf565b600080600080600060a0868803121561663657600080fd5b853561664181615ef3565b9450602086013561665181615ef3565b935060408601356001600160401b038082111561666d57600080fd5b61667989838a01616005565b9450606088013591508082111561668f57600080fd5b61669b89838a01616005565b935060808801359150808211156163f257600080fd5b600080600080606085870312156166c757600080fd5b84356166d281615ef3565b93506020850135925060408501356001600160401b0381111561644d57600080fd5b60006020828403121561670657600080fd5b81356001600160401b038116811461206757600080fd5b600080600080600060a0868803121561673557600080fd5b85356001600160401b038082111561674c57600080fd5b61675889838a01615f96565b9650602088013591508082111561676e57600080fd5b61677a89838a01616005565b9550604088013591508082111561679057600080fd5b61679c89838a01616060565b945060608801359150808211156167b257600080fd5b61669b89838a01616060565b600080604083850312156167d157600080fd5b82356167dc81615ef3565b946020939093013593505050565b600080600080600060a0868803121561680257600080fd5b853561680d81615ef3565b9450602086013561681d81615ef3565b9350604086013592506060860135915060808601356001600160401b0381111561684657600080fd5b6163ff88828901615d94565b8183823760009101908152919050565b60208082526018908201527f476f7665726e6f723a206f6e6c79476f7665726e616e63650000000000000000604082015260600190565b600181811c908216806168ad57607f821691505b6020821081036168cd57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201616911576169116168e9565b5060010190565b65ffffffffffff828116828216039080821115616937576169376168e9565b5092915050565b60208082526021908201527f476f7665726e6f723a2070726f706f73616c206e6f74207375636365737366756040820152601b60fa1b606082015260800190565b60006020828403121561699157600080fd5b81516001600160401b038111156169a757600080fd5b8201601f810184136169b857600080fd5b80516169c6615db382615d6d565b8181528560208385010111156169db57600080fd5b611349826020830160208601615e90565b81810381811115610fbb57610fbb6168e9565b634e487b7160e01b600052601260045260246000fd5b600082616a3257634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215616a4957600080fd5b815165ffffffffffff8116811461206757600080fd5b600060208284031215616a7157600080fd5b5051919050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b604081526000616ab5604083018688616a78565b8281036020840152611768818587616a78565b608081526000616adb608083018761618b565b8281036020840152616aed81876161cf565b90508281036040840152616b0181866161ff565b91505082606083015295945050505050565b8082028115828204841417610fbb57610fbb6168e9565b60a081526000616b3d60a083018861618b565b8281036020840152616b4f81886161cf565b90508281036040840152616b6381876161ff565b60608401959095525050608001529392505050565b60c081526000616b8b60c083018961618b565b8281036020840152616b9d81896161cf565b90508281036040840152616bb181886161ff565b60608401969096525050608081019290925260a0909101529392505050565b80820180821115610fbb57610fbb6168e9565b600060208284031215616bf557600080fd5b8151801515811461206757600080fd5b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60008251616c62818460208701615e90565b9190910192915050565b6001600160e01b0319831681528151600090616c8f816004850160208701615e90565b919091016004019392505050565b6001600160401b03818116838216019080821115616937576169376168e9565b60208082526021908201527f476f7665726e6f723a20696e76616c69642070726f706f73616c206c656e67746040820152600d60fb1b606082015260800190565b8981526001600160a01b038916602082015261012060408201819052600090616d298382018b61618b565b90508281036060840152616d3d818a6161cf565b90508281036080840152616d5181896161ff565b905082810360a0840152616d6581886161ff565b90508560c08401528460e0840152828103610100840152616d868185615eb4565b9c9b505050505050505050505050565b601f821115613bcd57600081815260208120601f850160051c81016020861015616dbd5750805b601f850160051c820191505b818110156117a157828155600101616dc9565b81516001600160401b03811115616df557616df5615d27565b616e0981616e038454616899565b84616d96565b602080601f831160018114616e3e5760008415616e265750858301515b600019600386901b1c1916600185901b1785556117a1565b600085815260208120601f198616915b82811015616e6d57888601518255948401946001909101908401616e4e565b5085821015616e8b5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b84815260ff84166020820152826040820152608060608201526000611b586080830184615eb4565b85815260ff8516602082015283604082015260a060608201526000616eeb60a0830185615eb4565b8281036080840152611c718185615eb456fe476f7665726e6f723a2072656c617920726576657274656420776974686f7574206d657373616765a164736f6c6343000811000a" + }, + "0x0000000000000000000000000000000000002005":{ + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b50600436106102065760003560e01c806370a082311161011a5780639ab24eb0116100ad578063d505accf1161007c578063d505accf1461049d578063dd62ed3e146104b0578063e5ed5b1e146104c3578063f1127ed8146104d6578063f1fad1041461051357600080fd5b80639ab24eb014610451578063a457c2d714610464578063a9059cbb14610477578063c3cda5201461048a57600080fd5b806384b0196e116100e957806384b0196e146103fc5780638e539e8c1461041757806391ddadf41461042a57806395d89b411461044957600080fd5b806370a08231146103aa57806379cc6790146103d35780637ecebe00146103e15780638129fc1c146103f457600080fd5b8063395093511161019d5780634bf5d7e91161016c5780634bf5d7e91461031b5780634bf6c88214610323578063587cde1e1461032b5780635c19a95c1461036f5780636fcfff451461038257600080fd5b806339509351146102cf5780633a46b1a8146102e257806342966c68146102f5578063448407751461030857600080fd5b806323b872dd116101d957806323b872dd1461028a5780633041949b1461029d578063313ce567146102b25780633644e515146102c757600080fd5b8063039c91fc1461020b57806306fdde031461024a578063095ea7b31461025f57806318160ddd14610282575b600080fd5b6102376102193660046120c7565b61013060209081526000928352604080842090915290825290205481565b6040519081526020015b60405180910390f35b61025261051b565b6040516102419190612140565b61027261026d366004612153565b6105ad565b6040519015158152602001610241565b603554610237565b61027261029836600461217d565b6105c7565b6102b06102ab3660046120c7565b6105eb565b005b60125b60405160ff9091168152602001610241565b610237610624565b6102726102dd366004612153565b610633565b6102376102f0366004612153565b610655565b6102b06103033660046121b9565b6106da565b6102b06103163660046121d2565b6106f3565b61025261076c565b6102b5600881565b610357610339366004612256565b6001600160a01b03908116600090815260fe60205260409020541690565b6040516001600160a01b039091168152602001610241565b6102b061037d366004612256565b610804565b610395610390366004612256565b610811565b60405163ffffffff9091168152602001610241565b6102376103b8366004612256565b6001600160a01b031660009081526033602052604090205490565b6102b0610303366004612153565b6102376103ef366004612256565b610833565b6102b0610851565b610404610a31565b6040516102419796959493929190612271565b6102376104253660046121b9565b610acf565b610432610b37565b60405165ffffffffffff9091168152602001610241565b610252610b42565b61023761045f366004612256565b610b51565b610272610472366004612153565b610bd3565b610272610485366004612153565b610c4e565b6102b0610498366004612318565b610c5c565b6102b06104ab366004612370565b610d92565b6102376104be3660046120c7565b610ef6565b6102b06104d13660046120c7565b610f21565b6104e96104e43660046123da565b610f51565b60408051825163ffffffff1681526020928301516001600160e01b03169281019290925201610241565b6102b5601181565b60606036805461052a9061241a565b80601f01602080910402602001604051908101604052809291908181526020018280546105569061241a565b80156105a35780601f10610578576101008083540402835291602001916105a3565b820191906000526020600020905b81548152906001019060200180831161058657829003601f168201915b5050505050905090565b6000336105bb818585610fd5565b60019150505b92915050565b6000336105d5858285610fee565b6105e0858585611068565b506001949350505050565b336120021461061657604051630f22c43960e41b815261200260048201526024015b60405180910390fd5b6106208282611081565b5050565b600061062e6111b1565b905090565b6000336105bb8185856106468383610ef6565b6106509190612464565b610fd5565b600061065f610b37565b65ffffffffffff1682106106b15760405162461bcd60e51b815260206004820152601960248201527804552433230566f7465733a20667574757265206c6f6f6b757603c1b604482015260640161060d565b6001600160a01b038316600090815260ff602052604090206106d390836111bb565b9392505050565b60405163e5d8776760e01b815260040160405180910390fd5b336120021461071957604051630f22c43960e41b8152612002600482015260240161060d565b8160005b818110156107655761075585858381811061073a5761073a612477565b905060200201602081019061074f9190612256565b84611081565b61075e8161248d565b905061071d565b5050505050565b606043610777610b37565b65ffffffffffff16146107cc5760405162461bcd60e51b815260206004820152601d60248201527f4552433230566f7465733a2062726f6b656e20636c6f636b206d6f6465000000604482015260640161060d565b5060408051808201909152601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000602082015290565b61080e33826112a4565b50565b6001600160a01b038116600090815260ff60205260408120546105c19061131e565b6001600160a01b038116600090815260cb60205260408120546105c1565b600054610100900460ff16158080156108715750600054600160ff909116105b8061088b5750303b15801561088b575060005460ff166001145b6108ee5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161060d565b6000805460ff191660011790558015610911576000805461ff0019166101001790555b3341146109315760405163022d8c9560e31b815260040160405180910390fd5b3a15610950576040516383f1b1d360e01b815260040160405180910390fd5b6109a4604051806040016040528060148152602001732129a19023b7bb32b93730b731b2902a37b5b2b760611b8152506040518060400160405280600681526020016533b7bb21272160d11b815250611387565b6109ac6113b8565b6109e1604051806040016040528060148152602001732129a19023b7bb32b93730b731b2902a37b5b2b760611b8152506113e1565b6109e96113b8565b801561080e576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b6000606080600080600060606097546000801b148015610a515750609854155b610a955760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b604482015260640161060d565b610a9d61142b565b610aa561143a565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b6000610ad9610b37565b65ffffffffffff168210610b2b5760405162461bcd60e51b815260206004820152601960248201527804552433230566f7465733a20667574757265206c6f6f6b757603c1b604482015260640161060d565b6105c1610100836111bb565b600061062e43611449565b60606037805461052a9061241a565b6001600160a01b038116600090815260ff60205260408120548015610bc0576001600160a01b038316600090815260ff6020526040902080546000198301908110610b9e57610b9e612477565b60009182526020909120015464010000000090046001600160e01b0316610bc3565b60005b6001600160e01b03169392505050565b60003381610be18286610ef6565b905083811015610c415760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161060d565b6105e08286868403610fd5565b6000336105bb818585611068565b83421115610cac5760405162461bcd60e51b815260206004820152601d60248201527f4552433230566f7465733a207369676e61747572652065787069726564000000604482015260640161060d565b604080517fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60208201526001600160a01b038816918101919091526060810186905260808101859052600090610d2690610d1e9060a001604051602081830303815290604052805190602001206114b0565b8585856114dd565b9050610d3181611505565b8614610d7f5760405162461bcd60e51b815260206004820152601960248201527f4552433230566f7465733a20696e76616c6964206e6f6e636500000000000000604482015260640161060d565b610d8981886112a4565b50505050505050565b83421115610de25760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e65000000604482015260640161060d565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9888888610e118c611505565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090506000610e6c826114b0565b90506000610e7c828787876114dd565b9050896001600160a01b0316816001600160a01b031614610edf5760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e61747572650000604482015260640161060d565b610eea8a8a8a610fd5565b50505050505050505050565b6001600160a01b03918216600090815260346020908152604080832093909416825291909152205490565b3361200214610f4757604051630f22c43960e41b8152612002600482015260240161060d565b61062082826112a4565b60408051808201909152600080825260208201526001600160a01b038316600090815260ff60205260409020805463ffffffff8416908110610f9557610f95612477565b60009182526020918290206040805180820190915291015463ffffffff8116825264010000000090046001600160e01b0316918101919091529392505050565b604051632028747160e01b815260040160405180910390fd5b6000610ffa8484610ef6565b9050600019811461106257818110156110555760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161060d565b6110628484848403610fd5565b50505050565b604051638cd22d1960e01b815260040160405180910390fd5b604051630913db4760e01b81526001600160a01b03828116600483015260009190841690630913db4790602401602060405180830381865afa1580156110cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ef91906124bc565b6001600160a01b03808516600090815261013060209081526040808320938716835292905220549091508181101561116857600061112d82846124d5565b6001600160a01b038087166000908152610130602090815260408083209389168352929052208490559050611162848261152d565b50611062565b8181111561106257600061117c83836124d5565b6001600160a01b0380871660009081526101306020908152604080832093891683529290522084905590506107658482611537565b600061062e611541565b8154600090818160058111156112155760006111d6846115b5565b6111e090856124d5565b600088815260209020909150869082015463ffffffff16111561120557809150611213565b611210816001612464565b92505b505b80821015611262576000611229838361169d565b600088815260209020909150869082015463ffffffff16111561124e5780915061125c565b611259816001612464565b92505b50611215565b801561128e576000868152602090208101600019015464010000000090046001600160e01b0316611291565b60005b6001600160e01b03169695505050505050565b6001600160a01b03828116600081815260fe6020818152604080842080546033845282862054949093528787166001600160a01b03198416811790915590519190951694919391928592917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a46110628284836116b8565b600063ffffffff8211156113835760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b606482015260840161060d565b5090565b600054610100900460ff166113ae5760405162461bcd60e51b815260040161060d906124e8565b61062082826117f6565b600054610100900460ff166113df5760405162461bcd60e51b815260040161060d906124e8565b565b600054610100900460ff166114085760405162461bcd60e51b815260040161060d906124e8565b61080e81604051806040016040528060018152602001603160f81b815250611836565b60606099805461052a9061241a565b6060609a805461052a9061241a565b600065ffffffffffff8211156113835760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203460448201526538206269747360d01b606482015260840161060d565b60006105c16114bd6111b1565b8360405161190160f01b8152600281019290925260228201526042902090565b60008060006114ee87878787611885565b915091506114fb81611949565b5095945050505050565b6001600160a01b038116600090815260cb602052604090208054600181018255905b50919050565b6106208282611a93565b6106208282611b1e565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f61156c611b37565b611574611b90565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b6000816000036115c757506000919050565b600060016115d484611bc1565b901c6001901b905060018184816115ed576115ed612533565b048201901c9050600181848161160557611605612533565b048201901c9050600181848161161d5761161d612533565b048201901c9050600181848161163557611635612533565b048201901c9050600181848161164d5761164d612533565b048201901c9050600181848161166557611665612533565b048201901c9050600181848161167d5761167d612533565b048201901c90506106d38182858161169757611697612533565b04611c55565b60006116ac6002848418612549565b6106d390848416612464565b816001600160a01b0316836001600160a01b0316141580156116da5750600081115b156117f1576001600160a01b03831615611768576001600160a01b038316600090815260ff60205260408120819061171590611c6b85611c77565b91509150846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724838360405161175d929190918252602082015260400190565b60405180910390a250505b6001600160a01b038216156117f1576001600160a01b038216600090815260ff60205260408120819061179e90611dec85611c77565b91509150836001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a72483836040516117e6929190918252602082015260400190565b60405180910390a250505b505050565b600054610100900460ff1661181d5760405162461bcd60e51b815260040161060d906124e8565b603661182983826125b9565b5060376117f182826125b9565b600054610100900460ff1661185d5760405162461bcd60e51b815260040161060d906124e8565b609961186983826125b9565b50609a61187682826125b9565b50506000609781905560985550565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156118bc5750600090506003611940565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611910573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661193957600060019250925050611940565b9150600090505b94509492505050565b600081600481111561195d5761195d612679565b036119655750565b600181600481111561197957611979612679565b036119c65760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161060d565b60028160048111156119da576119da612679565b03611a275760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161060d565b6003816004811115611a3b57611a3b612679565b0361080e5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161060d565b611a9d8282611df8565b6035546001600160e01b031015611b0f5760405162461bcd60e51b815260206004820152603060248201527f4552433230566f7465733a20746f74616c20737570706c79207269736b73206f60448201526f766572666c6f77696e6720766f74657360801b606482015260840161060d565b611062610100611dec83611c77565b611b288282611ec1565b611062610100611c6b83611c77565b600080611b4261142b565b805190915015611b59578051602090910120919050565b6097548015611b685792915050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4709250505090565b600080611b9b61143a565b805190915015611bb2578051602090910120919050565b6098548015611b685792915050565b600080608083901c15611bd657608092831c92015b604083901c15611be857604092831c92015b602083901c15611bfa57602092831c92015b601083901c15611c0c57601092831c92015b600883901c15611c1e57600892831c92015b600483901c15611c3057600492831c92015b600283901c15611c4257600292831c92015b600183901c156105c15760010192915050565b6000818310611c6457816106d3565b5090919050565b60006106d382846124d5565b82546000908190818115611cc45760008781526020902082016000190160408051808201909152905463ffffffff8116825264010000000090046001600160e01b03166020820152611cd9565b60408051808201909152600080825260208201525b905080602001516001600160e01b03169350611cf984868863ffffffff16565b9250600082118015611d235750611d0e610b37565b65ffffffffffff16816000015163ffffffff16145b15611d6857611d3183611ffc565b60008881526020902083016000190180546001600160e01b03929092166401000000000263ffffffff909216919091179055611de2565b866040518060400160405280611d8c611d7f610b37565b65ffffffffffff1661131e565b63ffffffff168152602001611da086611ffc565b6001600160e01b0390811690915282546001810184556000938452602093849020835194909301519091166401000000000263ffffffff909316929092179101555b5050935093915050565b60006106d38284612464565b6001600160a01b038216611e4e5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161060d565b8060356000828254611e609190612464565b90915550506001600160a01b0382166000818152603360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361062060008383612065565b6001600160a01b038216611f215760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b606482015260840161060d565b6001600160a01b03821660009081526033602052604090205481811015611f955760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b606482015260840161060d565b6001600160a01b03831660008181526033602090815260408083208686039055603580548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36117f183600084612065565b60006001600160e01b038211156113835760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b606482015260840161060d565b6117f18383836001600160a01b03808416600090815260fe60205260409020546117f191166001600160a01b03808516600090815260fe602052604090205416836116b8565b80356001600160a01b03811681146120c257600080fd5b919050565b600080604083850312156120da57600080fd5b6120e3836120ab565b91506120f1602084016120ab565b90509250929050565b6000815180845260005b8181101561212057602081850181015186830182015201612104565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006106d360208301846120fa565b6000806040838503121561216657600080fd5b61216f836120ab565b946020939093013593505050565b60008060006060848603121561219257600080fd5b61219b846120ab565b92506121a9602085016120ab565b9150604084013590509250925092565b6000602082840312156121cb57600080fd5b5035919050565b6000806000604084860312156121e757600080fd5b833567ffffffffffffffff808211156121ff57600080fd5b818601915086601f83011261221357600080fd5b81358181111561222257600080fd5b8760208260051b850101111561223757600080fd5b60209283019550935061224d91860190506120ab565b90509250925092565b60006020828403121561226857600080fd5b6106d3826120ab565b60ff60f81b881681526000602060e08184015261229160e084018a6120fa565b83810360408501526122a3818a6120fa565b606085018990526001600160a01b038816608086015260a0850187905284810360c0860152855180825283870192509083019060005b818110156122f5578351835292840192918401916001016122d9565b50909c9b505050505050505050505050565b803560ff811681146120c257600080fd5b60008060008060008060c0878903121561233157600080fd5b61233a876120ab565b9550602087013594506040870135935061235660608801612307565b92506080870135915060a087013590509295509295509295565b600080600080600080600060e0888a03121561238b57600080fd5b612394886120ab565b96506123a2602089016120ab565b955060408801359450606088013593506123be60808901612307565b925060a0880135915060c0880135905092959891949750929550565b600080604083850312156123ed57600080fd5b6123f6836120ab565b9150602083013563ffffffff8116811461240f57600080fd5b809150509250929050565b600181811c9082168061242e57607f821691505b60208210810361152757634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b808201808211156105c1576105c161244e565b634e487b7160e01b600052603260045260246000fd5b60006001820161249f5761249f61244e565b5060010190565b634e487b7160e01b600052604160045260246000fd5b6000602082840312156124ce57600080fd5b5051919050565b818103818111156105c1576105c161244e565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b634e487b7160e01b600052601260045260246000fd5b60008261256657634e487b7160e01b600052601260045260246000fd5b500490565b601f8211156117f157600081815260208120601f850160051c810160208610156125925750805b601f850160051c820191505b818110156125b15782815560010161259e565b505050505050565b815167ffffffffffffffff8111156125d3576125d36124a6565b6125e7816125e1845461241a565b8461256b565b602080601f83116001811461261c57600084156126045750858301515b600019600386901b1c1916600185901b1785556125b1565b600085815260208120601f198616915b8281101561264b5788860151825594840194600190910190840161262c565b50858210156126695787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052602160045260246000fdfea164736f6c6343000811000a" + }, + "0x0000000000000000000000000000000000002006": { + "balance": "0x0", + "code": "0x6080604052600436106101e75760003560e01c80638129fc1c11610102578063bc197c8111610095578063e38335e511610064578063e38335e5146105e1578063f1fad104146105f4578063f23a6e6114610609578063f27a0c921461063557600080fd5b8063bc197c8114610548578063c4d252f514610574578063d45c443514610594578063d547741f146105c157600080fd5b8063a217fddf116100d1578063a217fddf146104d1578063ac431751146104e6578063b08e51c014610506578063b1c5f4271461052857600080fd5b80638129fc1c1461045a5780638f2a0bb01461046f5780638f61f4f51461048f57806391d14854146104b157600080fd5b80632ab0f5291161017a5780634bf6c882116101495780634bf6c882146103d3578063584b153e146103fa57806364d623531461041a5780638065657f1461043a57600080fd5b80632ab0f529146103435780632f2ff15d1461037357806331d507501461039357806336568abe146103b357600080fd5b8063134008d3116101b6578063134008d31461029c57806313bc9f20146102af578063150b7a02146102cf578063248a9ca31461031357600080fd5b806301d5062a146101f357806301ffc9a71461021557806307bd02651461024a5780630d3cf6fc1461027a57600080fd5b366101ee57005b600080fd5b3480156101ff57600080fd5b5061021361020e366004611aa6565b61064a565b005b34801561022157600080fd5b50610235610230366004611b1a565b61070e565b60405190151581526020015b60405180910390f35b34801561025657600080fd5b5061026c60008051602061258a83398151915281565b604051908152602001610241565b34801561028657600080fd5b5061026c60008051602061254a83398151915281565b6102136102aa366004611b44565b610739565b3480156102bb57600080fd5b506102356102ca366004611baf565b6107dc565b3480156102db57600080fd5b506102fa6102ea366004611c7d565b630a85bd0160e11b949350505050565b6040516001600160e01b03199091168152602001610241565b34801561031f57600080fd5b5061026c61032e366004611baf565b60009081526065602052604090206001015490565b34801561034f57600080fd5b5061023561035e366004611baf565b60009081526097602052604090205460011490565b34801561037f57600080fd5b5061021361038e366004611ce4565b610802565b34801561039f57600080fd5b506102356103ae366004611baf565b61082c565b3480156103bf57600080fd5b506102136103ce366004611ce4565b610845565b3480156103df57600080fd5b506103e8600881565b60405160ff9091168152602001610241565b34801561040657600080fd5b50610235610415366004611baf565b6108c8565b34801561042657600080fd5b50610213610435366004611baf565b6108df565b34801561044657600080fd5b5061026c610455366004611b44565b610983565b34801561046657600080fd5b506102136109c2565b34801561047b57600080fd5b5061021361048a366004611d54565b610b74565b34801561049b57600080fd5b5061026c60008051602061256a83398151915281565b3480156104bd57600080fd5b506102356104cc366004611ce4565b610cf5565b3480156104dd57600080fd5b5061026c600081565b3480156104f257600080fd5b50610213610501366004611e05565b610d20565b34801561051257600080fd5b5061026c6000805160206125aa83398151915281565b34801561053457600080fd5b5061026c610543366004611e70565b610f0a565b34801561055457600080fd5b506102fa610563366004611f97565b63bc197c8160e01b95945050505050565b34801561058057600080fd5b5061021361058f366004611baf565b610f4f565b3480156105a057600080fd5b5061026c6105af366004611baf565b60009081526097602052604090205490565b3480156105cd57600080fd5b506102136105dc366004611ce4565b611012565b6102136105ef366004611e70565b611037565b34801561060057600080fd5b506103e8601181565b34801561061557600080fd5b506102fa610624366004612040565b63f23a6e6160e01b95945050505050565b34801561064157600080fd5b5060985461026c565b60008051602061256a833981519152610662816111af565b6000610672898989898989610983565b905061067e81846111b9565b6000817f4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca8b8b8b8b8b8a6040516106ba969594939291906120cd565b60405180910390a3831561070357807f20fda5fd27a1ea7bf5b9567f143ac5470bb059374a27e8f67cb44f946f6d0387856040516106fa91815260200190565b60405180910390a25b505050505050505050565b60006001600160e01b03198216630271189760e51b14806107335750610733826112a8565b92915050565b60008051602061258a833981519152610753816000610cf5565b6107615761076181336112dd565b6000610771888888888888610983565b905061077d8185611336565b610789888888886113d1565b6000817fc2617efa69bab66782fa219543714338489c4e9e178271560a91b82c3f612b588a8a8a8a6040516107c1949392919061210a565b60405180910390a36107d2816114a4565b5050505050505050565b6000818152609760205260408120546001811180156107fb5750428111155b9392505050565b60008281526065602052604090206001015461081d816111af565b61082783836114dd565b505050565b60008181526097602052604081205481905b1192915050565b6001600160a01b03811633146108ba5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6108c48282611563565b5050565b60008181526097602052604081205460019061083e565b3330146109425760405162461bcd60e51b815260206004820152602b60248201527f54696d656c6f636b436f6e74726f6c6c65723a2063616c6c6572206d7573742060448201526a62652074696d656c6f636b60a81b60648201526084016108b1565b60985460408051918252602082018390527f11c24f4ead16507c69ac467fbd5e4eed5fb5c699626d2cc6d66421df253886d5910160405180910390a1609855565b60008686868686866040516020016109a0969594939291906120cd565b6040516020818303038152906040528051906020012090509695505050505050565b600054610100900460ff16158080156109e25750600054600160ff909116105b806109fc5750303b1580156109fc575060005460ff166001145b610a5f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016108b1565b6000805460ff191660011790558015610a82576000805461ff0019166101001790555b334114610aa25760405163022d8c9560e31b815260040160405180910390fd5b3a15610ac1576040516383f1b1d360e01b815260040160405180910390fd5b6040805160018082528183019092526000916020808301908036833701905050905061200481600081518110610af957610af961213c565b60200260200101906001600160a01b031690816001600160a01b031681525050610b2a6201518082836120046115ca565b508015610b71576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50565b60008051602061256a833981519152610b8c816111af565b888714610bab5760405162461bcd60e51b81526004016108b190612152565b888514610bca5760405162461bcd60e51b81526004016108b190612152565b6000610bdc8b8b8b8b8b8b8b8b610f0a565b9050610be881846111b9565b60005b8a811015610ca65780827f4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca8e8e85818110610c2857610c2861213c565b9050602002016020810190610c3d9190612195565b8d8d86818110610c4f57610c4f61213c565b905060200201358c8c87818110610c6857610c6861213c565b9050602002810190610c7a91906121b0565b8c8b604051610c8e969594939291906120cd565b60405180910390a3610c9f8161220c565b9050610beb565b508315610ce857807f20fda5fd27a1ea7bf5b9567f143ac5470bb059374a27e8f67cb44f946f6d038785604051610cdf91815260200190565b60405180910390a25b5050505050505050505050565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b3361100714610d4657604051630f22c43960e41b815261100760048201526024016108b1565b610da9604051806040016040528060088152602001676d696e44656c617960c01b81525085858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092939250506116039050565b15610ea65760208114610dd75783838383604051630a5a604160e01b81526004016108b19493929190612225565b604080516020601f8401819004810282018101909252828152600091610e1891858580838501838280828437600092019190915250929392505061165c9050565b9050801580610e2957506212750081115b15610e4f5784848484604051630a5a604160e01b81526004016108b19493929190612225565b6040516364d6235360e01b81526004810182905230906364d6235390602401600060405180830381600087803b158015610e8857600080fd5b505af1158015610e9c573d6000803e3d6000fd5b5050505050610ec7565b838383836040516325ee20d560e21b81526004016108b19493929190612225565b7ff1ce9b2cbf50eeb05769a29e2543fd350cab46894a7dd9978a12d534bb20e63384848484604051610efc9493929190612225565b60405180910390a150505050565b60008888888888888888604051602001610f2b9897969594939291906122da565b60405160208183030381529060405280519060200120905098975050505050505050565b6000805160206125aa833981519152610f67816111af565b610f70826108c8565b610fd65760405162461bcd60e51b815260206004820152603160248201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e2063616044820152701b9b9bdd0818994818d85b98d95b1b1959607a1b60648201526084016108b1565b6000828152609760205260408082208290555183917fbaa1eb22f2a492ba1a5fea61b8df4d27c6c8b5f3971e63bb58fa14ff72eedb7091a25050565b60008281526065602052604090206001015461102d816111af565b6108278383611563565b60008051602061258a833981519152611051816000610cf5565b61105f5761105f81336112dd565b87861461107e5760405162461bcd60e51b81526004016108b190612152565b87841461109d5760405162461bcd60e51b81526004016108b190612152565b60006110af8a8a8a8a8a8a8a8a610f0a565b90506110bb8185611336565b60005b898110156111995760008b8b838181106110da576110da61213c565b90506020020160208101906110ef9190612195565b905060008a8a848181106111055761110561213c565b9050602002013590503660008a8a868181106111235761112361213c565b905060200281019061113591906121b0565b91509150611145848484846113d1565b84867fc2617efa69bab66782fa219543714338489c4e9e178271560a91b82c3f612b588686868660405161117c949392919061210a565b60405180910390a350505050806111929061220c565b90506110be565b506111a3816114a4565b50505050505050505050565b610b7181336112dd565b6111c28261082c565b156112275760405162461bcd60e51b815260206004820152602f60248201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e20616c60448201526e1c9958591e481cd8da19591d5b1959608a1b60648201526084016108b1565b6098548110156112885760405162461bcd60e51b815260206004820152602660248201527f54696d656c6f636b436f6e74726f6c6c65723a20696e73756666696369656e746044820152652064656c617960d01b60648201526084016108b1565b611292814261237b565b6000928352609760205260409092209190915550565b60006001600160e01b03198216637965db0b60e01b148061073357506301ffc9a760e01b6001600160e01b0319831614610733565b6112e78282610cf5565b6108c4576112f481611661565b6112ff836020611673565b6040516020016113109291906123b2565b60408051601f198184030181529082905262461bcd60e51b82526108b191600401612427565b61133f826107dc565b61135b5760405162461bcd60e51b81526004016108b19061245a565b80158061137657506000818152609760205260409020546001145b6108c45760405162461bcd60e51b815260206004820152602660248201527f54696d656c6f636b436f6e74726f6c6c65723a206d697373696e6720646570656044820152656e64656e637960d01b60648201526084016108b1565b6000846001600160a01b03168484846040516113ee9291906124a4565b60006040518083038185875af1925050503d806000811461142b576040519150601f19603f3d011682016040523d82523d6000602084013e611430565b606091505b505090508061149d5760405162461bcd60e51b815260206004820152603360248201527f54696d656c6f636b436f6e74726f6c6c65723a20756e6465726c79696e6720746044820152721c985b9cd858dd1a5bdb881c995d995c9d1959606a1b60648201526084016108b1565b5050505050565b6114ad816107dc565b6114c95760405162461bcd60e51b81526004016108b19061245a565b600090815260976020526040902060019055565b6114e78282610cf5565b6108c45760008281526065602090815260408083206001600160a01b03851684529091529020805460ff1916600117905561151f3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b61156d8282610cf5565b156108c45760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600054610100900460ff166115f15760405162461bcd60e51b81526004016108b1906124b4565b6115fd8484848461180e565b50505050565b60008160405160200161161691906124ff565b604051602081830303815290604052805190602001208360405160200161163d91906124ff565b6040516020818303038152906040528051906020012014905092915050565b015190565b60606107336001600160a01b03831660145b6060600061168283600261251b565b61168d90600261237b565b6001600160401b038111156116a4576116a4611bc8565b6040519080825280601f01601f1916602001820160405280156116ce576020820181803683370190505b509050600360fc1b816000815181106116e9576116e961213c565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106117185761171861213c565b60200101906001600160f81b031916908160001a905350600061173c84600261251b565b61174790600161237b565b90505b60018111156117bf576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061177b5761177b61213c565b1a60f81b8282815181106117915761179161213c565b60200101906001600160f81b031916908160001a90535060049490941c936117b881612532565b905061174a565b5083156107fb5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016108b1565b600054610100900460ff166118355760405162461bcd60e51b81526004016108b1906124b4565b61184d60008051602061254a833981519152806119ed565b61187360008051602061256a83398151915260008051602061254a8339815191526119ed565b61189960008051602061258a83398151915260008051602061254a8339815191526119ed565b6118bf6000805160206125aa83398151915260008051602061254a8339815191526119ed565b6118d760008051602061254a83398151915230611a38565b6001600160a01b038116156118fe576118fe60008051602061254a83398151915282611a38565b60005b835181101561196f5761193b60008051602061256a83398151915285838151811061192e5761192e61213c565b6020026020010151611a38565b61195f6000805160206125aa83398151915285838151811061192e5761192e61213c565b6119688161220c565b9050611901565b5060005b82518110156119b0576119a060008051602061258a83398151915284838151811061192e5761192e61213c565b6119a98161220c565b9050611973565b5060988490556040805160008152602081018690527f11c24f4ead16507c69ac467fbd5e4eed5fb5c699626d2cc6d66421df253886d59101610efc565b600082815260656020526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b6108c482826114dd565b80356001600160a01b0381168114611a5957600080fd5b919050565b60008083601f840112611a7057600080fd5b5081356001600160401b03811115611a8757600080fd5b602083019150836020828501011115611a9f57600080fd5b9250929050565b600080600080600080600060c0888a031215611ac157600080fd5b611aca88611a42565b96506020880135955060408801356001600160401b03811115611aec57600080fd5b611af88a828b01611a5e565b989b979a50986060810135976080820135975060a09091013595509350505050565b600060208284031215611b2c57600080fd5b81356001600160e01b0319811681146107fb57600080fd5b60008060008060008060a08789031215611b5d57600080fd5b611b6687611a42565b95506020870135945060408701356001600160401b03811115611b8857600080fd5b611b9489828a01611a5e565b979a9699509760608101359660809091013595509350505050565b600060208284031215611bc157600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611c0657611c06611bc8565b604052919050565b600082601f830112611c1f57600080fd5b81356001600160401b03811115611c3857611c38611bc8565b611c4b601f8201601f1916602001611bde565b818152846020838601011115611c6057600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215611c9357600080fd5b611c9c85611a42565b9350611caa60208601611a42565b92506040850135915060608501356001600160401b03811115611ccc57600080fd5b611cd887828801611c0e565b91505092959194509250565b60008060408385031215611cf757600080fd5b82359150611d0760208401611a42565b90509250929050565b60008083601f840112611d2257600080fd5b5081356001600160401b03811115611d3957600080fd5b6020830191508360208260051b8501011115611a9f57600080fd5b600080600080600080600080600060c08a8c031215611d7257600080fd5b89356001600160401b0380821115611d8957600080fd5b611d958d838e01611d10565b909b50995060208c0135915080821115611dae57600080fd5b611dba8d838e01611d10565b909950975060408c0135915080821115611dd357600080fd5b50611de08c828d01611d10565b9a9d999c50979a969997986060880135976080810135975060a0013595509350505050565b60008060008060408587031215611e1b57600080fd5b84356001600160401b0380821115611e3257600080fd5b611e3e88838901611a5e565b90965094506020870135915080821115611e5757600080fd5b50611e6487828801611a5e565b95989497509550505050565b60008060008060008060008060a0898b031215611e8c57600080fd5b88356001600160401b0380821115611ea357600080fd5b611eaf8c838d01611d10565b909a50985060208b0135915080821115611ec857600080fd5b611ed48c838d01611d10565b909850965060408b0135915080821115611eed57600080fd5b50611efa8b828c01611d10565b999c989b509699959896976060870135966080013595509350505050565b600082601f830112611f2957600080fd5b813560206001600160401b03821115611f4457611f44611bc8565b8160051b611f53828201611bde565b9283528481018201928281019087851115611f6d57600080fd5b83870192505b84831015611f8c57823582529183019190830190611f73565b979650505050505050565b600080600080600060a08688031215611faf57600080fd5b611fb886611a42565b9450611fc660208701611a42565b935060408601356001600160401b0380821115611fe257600080fd5b611fee89838a01611f18565b9450606088013591508082111561200457600080fd5b61201089838a01611f18565b9350608088013591508082111561202657600080fd5b5061203388828901611c0e565b9150509295509295909350565b600080600080600060a0868803121561205857600080fd5b61206186611a42565b945061206f60208701611a42565b9350604086013592506060860135915060808601356001600160401b0381111561209857600080fd5b61203388828901611c0e565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60018060a01b038716815285602082015260a0604082015260006120f560a0830186886120a4565b60608301949094525060800152949350505050565b60018060a01b03851681528360208201526060604082015260006121326060830184866120a4565b9695505050505050565b634e487b7160e01b600052603260045260246000fd5b60208082526023908201527f54696d656c6f636b436f6e74726f6c6c65723a206c656e677468206d69736d616040820152620e8c6d60eb1b606082015260800190565b6000602082840312156121a757600080fd5b6107fb82611a42565b6000808335601e198436030181126121c757600080fd5b8301803591506001600160401b038211156121e157600080fd5b602001915036819003821315611a9f57600080fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161221e5761221e6121f6565b5060010190565b6040815260006122396040830186886120a4565b8281036020840152611f8c8185876120a4565b818352600060208085019450848460051b86018460005b878110156122cd5783830389528135601e1988360301811261228457600080fd5b870185810190356001600160401b0381111561229f57600080fd5b8036038213156122ae57600080fd5b6122b98582846120a4565b9a87019a9450505090840190600101612263565b5090979650505050505050565b60a0808252810188905260008960c08301825b8b81101561231b576001600160a01b0361230684611a42565b168252602092830192909101906001016122ed565b5083810360208501528881526001600160fb1b0389111561233b57600080fd5b8860051b9150818a60208301370182810360209081016040850152612363908201878961224c565b60608401959095525050608001529695505050505050565b80820180821115610733576107336121f6565b60005b838110156123a9578181015183820152602001612391565b50506000910152565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516123ea81601785016020880161238e565b7001034b99036b4b9b9b4b733903937b6329607d1b601791840191820152835161241b81602884016020880161238e565b01602801949350505050565b602081526000825180602084015261244681604085016020870161238e565b601f01601f19169190910160400192915050565b6020808252602a908201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e206973604082015269206e6f7420726561647960b01b606082015260800190565b8183823760009101908152919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6000825161251181846020870161238e565b9190910192915050565b8082028115828204841417610733576107336121f6565b600081612541576125416121f6565b50600019019056fe5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca5b09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc1d8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63fd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f783a164736f6c6343000811000a" + }, + "0x0000000000000000000000000000000000003000": { + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b506004361061010b5760003560e01c80638129fc1c116100a2578063b187bd2611610071578063b187bd261461022c578063bfb5a6a114610237578063e33f8d321461024a578063e842426a1461026d578063f1fad1041461029857600080fd5b80638129fc1c146101fc5780638456cb59146102045780639fcb50121461020c578063ac4317511461021957600080fd5b80634a49ac4c116100de5780634a49ac4c1461017c5780634bf6c8821461018f578063572c9980146101a957806374be2150146101bc57600080fd5b8063046f7da2146101105780632eb4a7ab1461011a578063417c73a7146101365780634838d16514610149575b600080fd5b6101186102a0565b005b61012360685481565b6040519081526020015b60405180910390f35b6101186101443660046116a8565b610328565b61016c6101573660046116a8565b60346020526000908152604090205460ff1681565b604051901515815260200161012d565b61011861018a3660046116a8565b6103a4565b610197600881565b60405160ff909116815260200161012d565b6101186101b73660046116c3565b61041d565b6101ef6040518060400160405280601481526020017342696e616e63652d436861696e2d54696772697360601b81525081565b60405161012d919061173f565b6101186104b3565b610118610625565b60695461016c9060ff1681565b61011861022736600461179b565b6106b1565b60335460ff1661016c565b61011861024536600461184c565b610ad0565b61016c610258366004611926565b6000908152606a602052604090205460ff1690565b606754610280906001600160a01b031681565b6040516001600160a01b03909116815260200161012d565b610197601181565b60335461010090046001600160a01b031633146102d0576040516306fbb1e360e01b815260040160405180910390fd5b60335460ff166102f357604051636cd6020160e01b815260040160405180910390fd5b6033805460ff191690556040517f62451d457bc659158be6e6247f56ec1df424a5c7597f71c20c2bc44e0965c8f990600090a1565b60335461010090046001600160a01b03163314610358576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b038116600081815260346020526040808220805460ff19166001179055517f7fd26be6fc92aff63f1f4409b2b2ddeb272a888031d7f55ec830485ec61941869190a250565b60335461010090046001600160a01b031633146103d4576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b038116600081815260346020526040808220805460ff19169055517fe0db3499b7fdc3da4cddff5f45d694549c19835e7f719fb5606d3ad1a5de40119190a250565b60335461010090046001600160a01b0316331461044d576040516306fbb1e360e01b815260040160405180910390fd5b604051638525db0360e01b8152600481018390526001600160a01b038216602482015261100490638525db0390604401600060405180830381600087803b15801561049757600080fd5b505af11580156104ab573d6000803e3d6000fd5b505050505050565b600054610100900460ff16158080156104d35750600054600160ff909116105b806104ed5750303b1580156104ed575060005460ff166001145b6105555760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff191660011790558015610578576000805461ff0019166101001790555b3341146105985760405163022d8c9560e31b815260040160405180910390fd5b3a156105b7576040516383f1b1d360e01b815260040160405180910390fd5b6105bf610e30565b6105dc7308e68ec70fa3b629784fdb28887e206ce8561e08610e5d565b8015610622576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50565b60335461010090046001600160a01b03163314610655576040516306fbb1e360e01b815260040160405180910390fd5b60335460ff161561067957604051631785c68160e01b815260040160405180910390fd5b6033805460ff191660011790556040517f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e75290600090a1565b33611007146106d757604051630f22c43960e41b8152611007600482015260240161054c565b6107416040518060400160405280600f81526020016e617070726f76616c4164647265737360881b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050610eac9050565b1561080b576014811461076f5783838383604051630a5a604160e01b815260040161054c9493929190611968565b60006107b5601484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050610f069050565b90506001600160a01b0381166107e65784848484604051630a5a604160e01b815260040161054c9493929190611968565b606780546001600160a01b0319166001600160a01b0392909216919091179055610a8d565b6108706040518060400160405280600a8152602001691b595c9adb19549bdbdd60b21b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050610eac9050565b156109405760695460ff1615610899576040516379b3306f60e11b815260040160405180910390fd5b602081146108c25783838383604051630a5a604160e01b815260040161054c9493929190611968565b604080516020601f8401819004810282018101909252828152600091610903918585808385018382808284376000920191909152509293925050610f069050565b90508061092b5784848484604051630a5a604160e01b815260040161054c9493929190611968565b6068556069805460ff19166001179055610a8d565b6109b86040518060400160405280601b81526020017f746f6b656e5265636f766572506f7274616c50726f746563746f72000000000081525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050610eac9050565b15610a6c57601481146109e65783838383604051630a5a604160e01b815260040161054c9493929190611968565b6000610a2c601484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050610f069050565b90506001600160a01b038116610a5d5784848484604051630a5a604160e01b815260040161054c9493929190611968565b610a6681610f0b565b50610a8d565b838383836040516325ee20d560e21b815260040161054c9493929190611968565b7ff1ce9b2cbf50eeb05769a29e2543fd350cab46894a7dd9978a12d534bb20e63384848484604051610ac29493929190611968565b60405180910390a150505050565b60695460ff16610af35760405163678f619760e11b815260040160405180910390fd5b606854610b135760405163678f619760e11b815260040160405180910390fd5b6067546001600160a01b0316610b3c57604051631a1b977b60e31b815260040160405180910390fd5b60335460ff1615610b6057604051631785c68160e01b815260040160405180910390fd5b610b68610f72565b6000610bf689898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a9081908401838280828437600081840152601f19601f82011690508083019250505050505050610bf18e8e33610fcb565b6110ec565b90506000818c8c604051602001610c0f9392919061199a565b604051602081830303815290604052805190602001209050610c40816000908152606a602052604090205460ff1690565b15610c5d57604051623e493160e81b815260040160405180910390fd5b610d053389898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a908190840183828082843760009201919091525050604080516020808c0282810182019093528b82528994509092508b918b918291908501908490808284376000920191909152506111c492505050565b610d468484808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505060685491508490506112cf565b610d63576040516309bde33960e01b815260040160405180910390fd5b6000818152606a602052604090819020805460ff191660011790555163799758b960e01b8152600481018d9052336024820152604481018c90526110049063799758b990606401600060405180830381600087803b158015610dc457600080fd5b505af1158015610dd8573d6000803e3d6000fd5b505050507f39cc0b7297a0ef9102d75ebc4919ffec0347d50008c2b865eda4125d5812cb64828d338e604051610e1194939291906119c1565b60405180910390a15050610e2460018055565b50505050505050505050565b600054610100900460ff16610e575760405162461bcd60e51b815260040161054c906119f9565b60018055565b600054610100900460ff16610e845760405162461bcd60e51b815260040161054c906119f9565b603380546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b600081604051602001610ebf9190611a44565b6040516020818303038152906040528051906020012083604051602001610ee69190611a44565b604051602081830303815290604052805190602001201490505b92915050565b015190565b6033546040516001600160a01b0380841692610100900416907f44fc1b38a4abaa91ebd1b628a5b259a698f86238c8217d68f516e87769c60c0b90600090a3603380546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b600260015403610fc45760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161054c565b6002600155565b600060026040518060400160405280601481526020017342696e616e63652d436861696e2d54696772697360601b8152506110288560405160200161101291815260200190565b60405160208183030381529060405260006112e5565b6040516bffffffffffffffffffffffff19606087901b1660208201526110619060340160405160208183030381529060405260016112e5565b6110778860405160200161101291815260200190565b60405160200161108a9493929190611a60565b60408051601f19818403018152908290526110a491611a44565b602060405180830381855afa1580156110c1573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906110e49190611b8f565b949350505050565b6060835160211461111057604051638152ea1b60e01b815260040160405180910390fd5b825160401461113257604051635e4bd79760e11b815260040160405180910390fd5b604080516020808252818301909252600091602082018180368337019050509050826020820152600085858360405160200161117093929190611bbe565b60408051808303601f190181526014808452838301909252925060009190602082018180368337019050509050815160146020830182602086016069600019fa6111b957600080fd5b509695505050505050565b606060005b825181101561122257818382815181106111e5576111e5611c01565b60200260200101516040516020016111fe929190611c17565b6040516020818303038152906040529150808061121a90611c4f565b9150506111c9565b5060006040518060400160405280601481526020017342696e616e63652d436861696e2d54696772697360601b8152508787866068548660405160200161126e96959493929190611c68565b60408051601f1981840301815291905280516020909101206067549091506001600160a01b031661129f86836114b7565b6001600160a01b0316146112c6576040516356b00a4f60e11b815260040160405180910390fd5b50505050505050565b6000826112dc8584611551565b14949350505050565b60606000835160026112f79190611cd9565b67ffffffffffffffff81111561130f5761130f611ba8565b6040519080825280601f01601f191660200182016040528015611339576020820181803683370190505b5060408051808201909152601081526f181899199a1a9b1b9c1cb0b131b232b360811b602082015290915060005b855181101561147f5781825187838151811061138557611385611c01565b0160200151611397919060f81c611d06565b815181106113a7576113a7611c01565b01602001516001600160f81b031916836113c2836002611cd9565b815181106113d2576113d2611c01565b60200101906001600160f81b031916908160001a9053508182518783815181106113fe576113fe611c01565b0160200151611410919060f81c611d1a565b8151811061142057611420611c01565b01602001516001600160f81b0319168361143b836002611cd9565b611446906001611d2e565b8151811061145657611456611c01565b60200101906001600160f81b031916908160001a9053508061147781611c4f565b915050611367565b5083156114af57816040516020016114979190611d41565b60405160208183030381529060405292505050610f00565b509392505050565b600082516041146114db576040516356b00a4f60e11b815260040160405180910390fd5b60208301516040840151606085015160001a601b81101561150457611501601b82611d6b565b90505b601b8160ff1610806115195750601c8160ff16115b15611537576040516356b00a4f60e11b815260040160405180910390fd5b600061154586838686611596565b50979650505050505050565b600081815b84518110156114af576115828286838151811061157557611575611c01565b602002602001015161165a565b91508061158e81611c4f565b915050611556565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156115cd5750600090506003611651565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611621573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661164a57600060019250925050611651565b9150600090505b94509492505050565b6000818310611676576000828152602084905260409020611685565b60008381526020839052604090205b9392505050565b80356001600160a01b03811681146116a357600080fd5b919050565b6000602082840312156116ba57600080fd5b6116858261168c565b600080604083850312156116d657600080fd5b823591506116e66020840161168c565b90509250929050565b60005b8381101561170a5781810151838201526020016116f2565b50506000910152565b6000815180845261172b8160208601602086016116ef565b601f01601f19169290920160200192915050565b6020815260006116856020830184611713565b60008083601f84011261176457600080fd5b50813567ffffffffffffffff81111561177c57600080fd5b60208301915083602082850101111561179457600080fd5b9250929050565b600080600080604085870312156117b157600080fd5b843567ffffffffffffffff808211156117c957600080fd5b6117d588838901611752565b909650945060208701359150808211156117ee57600080fd5b506117fb87828801611752565b95989497509550505050565b60008083601f84011261181957600080fd5b50813567ffffffffffffffff81111561183157600080fd5b6020830191508360208260051b850101111561179457600080fd5b60008060008060008060008060008060c08b8d03121561186b57600080fd5b8a35995060208b0135985060408b013567ffffffffffffffff8082111561189157600080fd5b61189d8e838f01611752565b909a50985060608d01359150808211156118b657600080fd5b6118c28e838f01611752565b909850965060808d01359150808211156118db57600080fd5b6118e78e838f01611752565b909650945060a08d013591508082111561190057600080fd5b5061190d8d828e01611807565b915080935050809150509295989b9194979a5092959850565b60006020828403121561193857600080fd5b5035919050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60408152600061197c60408301868861193f565b828103602084015261198f81858761193f565b979650505050505050565b600084516119ac8184602089016116ef565b91909101928352506020820152604001919050565b6080815260006119d46080830187611713565b6020830195909552506001600160a01b03929092166040830152606090910152919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60008251611a568184602087016116ef565b9190910192915050565b7f7b226163636f756e745f6e756d626572223a2230222c22636861696e5f6964228152611d1160f11b602082015260008551611aa3816022850160208a016116ef565b7f222c2264617461223a6e756c6c2c226d656d6f223a22222c226d736773223a5b6022918401918201526a3d9130b6b7bab73a111d1160a91b60428201528551611af481604d840160208a016116ef565b6e1116113932b1b4b834b2b73a111d1160891b604d92909101918201528451611b2481605c8401602089016116ef565b711116113a37b5b2b72fb9bcb6b137b6111d1160711b605c92909101918201528351611b5781606e8401602088016116ef565b7f227d5d2c2273657175656e6365223a2230222c22736f75726365223a2230227d606e9290910191820152608e019695505050505050565b600060208284031215611ba157600080fd5b5051919050565b634e487b7160e01b600052604160045260246000fd5b60008451611bd08184602089016116ef565b845190830190611be48183602089016116ef565b8451910190611bf78183602088016116ef565b0195945050505050565b634e487b7160e01b600052603260045260246000fd5b60008351611c298184602088016116ef565b9190910191825250602001919050565b634e487b7160e01b600052601160045260246000fd5b600060018201611c6157611c61611c39565b5060010190565b60008751611c7a818460208c016116ef565b606088901b6bffffffffffffffffffffffff19169083019081528651611ca7816014840160208b016116ef565b0160148101869052603481018590528351611cc98160548401602088016116ef565b0160540198975050505050505050565b8082028115828204841417610f0057610f00611c39565b634e487b7160e01b600052601260045260246000fd5b600082611d1557611d15611cf0565b500490565b600082611d2957611d29611cf0565b500690565b80820180821115610f0057610f00611c39565b61060f60f31b815260008251611d5e8160028501602087016116ef565b9190910160020192915050565b60ff8181168382160190811115610f0057610f00611c3956fea164736f6c6343000811000a" + } + }, + "1720591588": { + "0x0000000000000000000000000000000000001000": { + "balance": "0x0", + "code": "0x6080604052600436106104fb5760003560e01c806388b32f111161028c578063c6d339451161015a578063e40716a1116100cc578063f92eb86b11610085578063f92eb86b14610d2d578063f9a2bbc714610d42578063fc3e590814610d57578063fccc281314610d6c578063fd4ad81f14610d81578063fd6a687914610db057610502565b8063e40716a114610c9b578063ea321e4914610cb0578063eb57e20214610cd0578063eda5868c14610cf0578063f1fad10414610d05578063f340fa0114610d1a57610502565b8063d86222d51161011e578063d86222d514610c1d578063daacdb6614610c32578063dc927faf14610c47578063df8079e914610c5c578063e086c7b114610c71578063e1c7392a14610c8657610502565b8063c6d3394514610bbe578063c81b166214610bd3578063c8509d811461098d578063ce910b0c14610be8578063d68fb56a14610c0857610502565b8063a78abc16116101fe578063ad3c9da6116101b7578063ad3c9da614610b3d578063aef198a914610b5d578063b7ab4db514610b72578063b8cf4ef114610b94578063bf9f4995146106fe578063c466689d14610ba957610502565b8063a78abc1614610ab4578063aa82dce114610ac9578063aad5606314610ade578063aaf5eb6814610af3578063ab51bb9614610b08578063ac43175114610b1d57610502565b806396713da91161025057806396713da914610a365780639dc0926214610a4b5780639fe0f81614610a60578063a0dc275814610a75578063a1a11bf514610a8a578063a5422d5c14610a9f57610502565b806388b32f11146109c25780638a7beb01146109d75780638b5ad0c9146109ec5780638d19a41014610a015780639369d7de14610a2157610502565b806351b4dce3116103c957806370fd5bad1161033b5780637e434d54116102f45780637e434d541461094e57806381650b6214610963578063820dcaa814610978578063831d65d11461098d578063853230aa1461090f57806386249882146109ad57610502565b806370fd5bad146108d0578063718a8aa8146108e557806375d47a0a146108fa57806378dfed4a1461090f5780637942fd05146109245780637a84ca2a1461093957610502565b80635d77156c1161038d5780635d77156c1461082a5780635de1e22c1461083f57806360eba4fe1461085457806362b72cf5146108745780636969a25c146108895780636e47b482146108bb57610502565b806351b4dce3146107ab57806351e80672146107c057806355614fcc146107d5578063565c56b3146107f55780635667515a1461081557610502565b8063300c35671161046d57806343756e5c1161042657806343756e5c1461072057806345cf9daf14610735578063493279b11461074a5780634bf6c8821461076c5780634df6e0c3146107815780635192c82c1461079657610502565b8063300c35671461065b578063321d398a1461067b5780633365af3a1461069b57806335409f7f146106bb5780633b071dcc146106db5780633dffc387146106fe57610502565b8063152ad3b8116104bf578063152ad3b8146105ba5780631e4c1524146105dc5780631ff18069146105fc578063219f22d51461061157806328087028146106265780632a0ffb6e1461063b57610502565b806304c4fec61461050757806307a568471461051e5780630bee7a67146105495780630e2374a51461056b5780631182b8751461058d57610502565b3661050257005b600080fd5b34801561051357600080fd5b5061051c610dc5565b005b34801561052a57600080fd5b50610533610e39565b6040516105409190618f10565b60405180910390f35b34801561055557600080fd5b5061055e610e3f565b6040516105409190618f3a565b34801561057757600080fd5b50610580610e44565b6040516105409190618200565b34801561059957600080fd5b506105ad6105a83660046180e6565b610e4a565b60405161054091906183b6565b3480156105c657600080fd5b506105cf611167565b60405161054091906183ab565b3480156105e857600080fd5b5061051c6105f7366004617ef4565b611170565b34801561060857600080fd5b50610533611846565b34801561061d57600080fd5b5061055e61184c565b34801561063257600080fd5b50610580611851565b34801561064757600080fd5b5061051c610656366004617e54565b611857565b34801561066757600080fd5b5061051c610676366004617e8c565b611904565b34801561068757600080fd5b506105cf610696366004618093565b611c4d565b3480156106a757600080fd5b506105cf6106b6366004618093565b611d1c565b3480156106c757600080fd5b5061051c6106d6366004617e54565b611dcd565b3480156106e757600080fd5b506106f0611f32565b6040516105409291906182c1565b34801561070a57600080fd5b5061071361220e565b6040516105409190618f4b565b34801561072c57600080fd5b50610580612213565b34801561074157600080fd5b50610533612219565b34801561075657600080fd5b5061075f61221f565b6040516105409190618f01565b34801561077857600080fd5b50610713612224565b34801561078d57600080fd5b506106f0612229565b3480156107a257600080fd5b506105336123b5565b3480156107b757600080fd5b506105806123bb565b3480156107cc57600080fd5b506105806123c1565b3480156107e157600080fd5b506105cf6107f0366004617e54565b6123c7565b34801561080157600080fd5b50610533610810366004617e54565b6123fc565b34801561082157600080fd5b5061071361244d565b34801561083657600080fd5b5061055e612452565b34801561084b57600080fd5b50610533612457565b34801561086057600080fd5b506105ad61086f366004618093565b61245d565b34801561088057600080fd5b50610533612503565b34801561089557600080fd5b506108a96108a4366004618093565b612509565b6040516105409695949392919061822d565b3480156108c757600080fd5b5061058061256d565b3480156108dc57600080fd5b50610713612573565b3480156108f157600080fd5b50610713612578565b34801561090657600080fd5b5061058061257d565b34801561091b57600080fd5b50610533612583565b34801561093057600080fd5b50610713612589565b34801561094557600080fd5b5061053361258e565b34801561095a57600080fd5b50610580612594565b34801561096f57600080fd5b5061055e61259a565b34801561098457600080fd5b5061053361259f565b34801561099957600080fd5b5061051c6109a83660046180e6565b6125a5565b3480156109b957600080fd5b50610533612606565b3480156109ce57600080fd5b5061053361260c565b3480156109e357600080fd5b506105cf612612565b3480156109f857600080fd5b5061053361261b565b348015610a0d57600080fd5b50610533610a1c366004617e54565b612621565b348015610a2d57600080fd5b5061051c612661565b348015610a4257600080fd5b50610713612775565b348015610a5757600080fd5b5061058061277a565b348015610a6c57600080fd5b50610533612780565b348015610a8157600080fd5b50610533612785565b348015610a9657600080fd5b5061058061278a565b348015610aab57600080fd5b506105ad612790565b348015610ac057600080fd5b506105cf6127af565b348015610ad557600080fd5b506105806127b8565b348015610aea57600080fd5b506105806127be565b348015610aff57600080fd5b506105336127c4565b348015610b1457600080fd5b5061055e61244d565b348015610b2957600080fd5b5061051c610b38366004618037565b6127cd565b348015610b4957600080fd5b50610533610b58366004617e54565b613086565b348015610b6957600080fd5b50610533613098565b348015610b7e57600080fd5b50610b876130a5565b60405161054091906182ae565b348015610ba057600080fd5b50610533613191565b348015610bb557600080fd5b50610533613196565b348015610bca57600080fd5b50610533612573565b348015610bdf57600080fd5b5061058061319c565b348015610bf457600080fd5b506105ad610c03366004618093565b6131a2565b348015610c1457600080fd5b506105336131af565b348015610c2957600080fd5b506105336131ee565b348015610c3e57600080fd5b506105336131fa565b348015610c5357600080fd5b50610580613200565b348015610c6857600080fd5b50610580613206565b348015610c7d57600080fd5b50610533610e3f565b348015610c9257600080fd5b5061051c61320c565b348015610ca757600080fd5b506105336133bb565b348015610cbc57600080fd5b506105cf610ccb366004617ff8565b6133c1565b348015610cdc57600080fd5b5061051c610ceb366004617e54565b613547565b348015610cfc57600080fd5b5061055e61364b565b348015610d1157600080fd5b50610713613650565b61051c610d28366004617e54565b613655565b348015610d3957600080fd5b506105336139d4565b348015610d4e57600080fd5b506105806139da565b348015610d6357600080fd5b50610713612780565b348015610d7857600080fd5b506105806139e0565b348015610d8d57600080fd5b50610da1610d9c366004618093565b6139e6565b60405161054093929190618f19565b348015610dbc57600080fd5b50610580613aa8565b6000610dd033612621565b9050600b8181548110610ddf57fe5b600091825260209091206001601690920201015460ff16610e1b5760405162461bcd60e51b8152600401610e1290618b1c565b60405180910390fd5b6000610e256131af565b9050610e343383836001613aae565b505050565b60095481565b606481565b61200181565b60005460609060ff16610e6f5760405162461bcd60e51b8152600401610e12906185dd565b3361200014610e905760405162461bcd60e51b8152600401610e1290618d1d565b600b54610f4e57610e9f617a00565b60015460005b81811015610f4a57600b8054600181018255600091909152835160008051602061901d833981519152601690920291820190815560208086015160008051602061964c8339815191528401805460ff1916911515919091179055604086015180518794610f269360008051602061903d833981519152909101920190617a2f565b506060820151610f3c9060038301906013617aa9565b505050806001019050610ea5565b5050505b610f56617ad6565b6000610f9785858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613d8392505050565b9150915080610fb357610faa6064613f3f565b92505050611160565b815160009060ff16610fd857610fd183602001518460400151613fa0565b905061112c565b825160ff16600114156111285782602001515160011461101d57600080516020618ffd83398151915260405161100d906189d5565b60405180910390a1506067611123565b6000836020015160008151811061103057fe5b602090810291909101810151516001600160a01b03811660009081526004909252604090912054909150801580611091575060018082038154811061107157fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b156110cf576040516001600160a01b038316907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a261111c565b60006110de8360018403615162565b90508061111a576040516001600160a01b038416907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a25b505b6000925050505b61112c565b5060655b63ffffffff811661115157505060408051600081526020810190915291506111609050565b61115a81613f3f565b93505050505b9392505050565b60075460ff1681565b33411461118f5760405162461bcd60e51b8152600401610e1290618d6c565b3a156111ad5760405162461bcd60e51b8152600401610e1290618a5b565b82516040805182815260208084028201019091526060908280156111eb57816020015b6111d8617afa565b8152602001906001900390816111d05790505b50905060005b82811015611295576040518060c0016040528087838151811061121057fe5b60200260200101516001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b0316815260200186838151811061125257fe5b60200260200101516001600160401b03168152602001600015158152602001600081525082828151811061128257fe5b60209081029190910101526001016111f1565b5060405163d31f968d60e01b81526120009063d31f968d906112c09061100090600890600401618292565b60206040518083038186803b1580156112d857600080fd5b505afa1580156112ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113109190617fd8565b15611633578051601554818111156113b257815b818110156113b057601580548061133757fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055601680548061138a57fe5b6001900381819060005260206000200160006113a69190617b2f565b9055600101611324565b505b60005b828110156115f2578181106114da5760158482815181106113d257fe5b602090810291909101810151825460018181018555600094855293839020825160049092020180546001600160a01b039283166001600160a01b0319918216178255938301519481018054958316958516959095179094556040820151600285018054606085015160808601511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590961692909716919091179290921692909217169290921790915560a0015160039091015585516016908790839081106114a257fe5b602090810291909101810151825460018101845560009384529282902081516114d49491909101929190910190617a2f565b506115ea565b8381815181106114e657fe5b6020026020010151601582815481106114fb57fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a09091015160039091015585518690829081106115b657fe5b6020026020010151601682815481106115cb57fe5b9060005260206000200190805190602001906115e8929190617a2f565b505b6001016113b5565b507fb8e726330a0dad1cf3d04e925663b17e391f1ed547d79b7f4e5f344119b44246826040516116229190618f10565b60405180910390a150505050610e34565b6060806116408386615525565b9150915060005b6001548110156117365760006001828154811061166057fe5b90600052602060002090600402016003015490508060001461172d5760006001838154811061168b57fe5b9060005260206000209060040201600301819055506120026001600160a01b031663092193ab82600185815481106116bf57fe5b60009182526020909120600491820201546040516001600160e01b031960e086901b1681526116fa926001600160a01b039092169101618200565b6000604051808303818588803b15801561171357600080fd5b505af1158015611727573d6000803e3d6000fd5b50505050505b50600101611647565b5047156117a4577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d4760405161176c9190618f10565b60405180910390a1604051611002904780156108fc02916000818181858888f193505050501580156117a2573d6000803e3d6000fd5b505b600060038190556005558151156117bf576117bf8282615a0f565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156117fc57600080fd5b505af1158015611810573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a150505050505050565b60035481565b606881565b61200581565b33612002146118785760405162461bcd60e51b8152600401610e1290618eca565b60005b60155481101561190057816001600160a01b03166015828154811061189c57fe5b60009182526020909120600490910201546001600160a01b031614156118f8576001601582815481106118cb57fe5b9060005260206000209060040201600201601c6101000a81548160ff021916908315150217905550611900565b60010161187b565b5050565b3341146119235760405162461bcd60e51b8152600401610e1290618d6c565b60105443116119445760405162461bcd60e51b8152600401610e1290618770565b3a156119625760405162461bcd60e51b8152600401610e1290618a5b565b60005460ff166119845760405162461bcd60e51b8152600401610e12906185dd565b60006110023168056bc75e2d631000008111156119bb576119b48168056bc75e2d6310000063ffffffff6161fe16565b91506119c2565b5050611c43565b6040516309a99b4f60e41b815261100290639a99b4f0906119e99030908690600401618214565b602060405180830381600087803b158015611a0357600080fd5b505af1158015611a17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3b91906180ab565b915081611a49575050611c43565b6000805b84811015611a7757858582818110611a6157fe5b9050602002013582019150806001019050611a4d565b5080611a8557505050611c43565b6000806000805b89811015611c3b5784898983818110611aa157fe5b90506020020135880281611ab157fe5b0493508a8a82818110611ac057fe5b9050602002016020810190611ad59190617e54565b6001600160a01b03811660009081526004602052604090205490935091508115611bf1576000600180840381548110611b0a57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff1615611b7757836001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d8586604051611b6a9190618f10565b60405180910390a2611beb565b600354611b8a908663ffffffff61624016565b6003908155810154611ba2908663ffffffff61624016565b60038201556040516001600160a01b038516907fcb0aad6cf9cd03bdf6137e359f541c42f38b39f007cae8e89e88aa7d8c6617b290611be2908890618f10565b60405180910390a25b50611c33565b826001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d8585604051611c2a9190618f10565b60405180910390a25b600101611a8c565b505050505050505b5050436010555050565b6001546000908210611c6157506000611d17565b60006001600160a01b031660018381548110611c7957fe5b60009182526020909120600490910201546001600160a01b03161480611ca957506008541580611ca95750600a54155b80611cb8575060085460095410155b80611cc95750611cc782611d1c565b155b80611cf257506000600b8381548110611cde57fe5b906000526020600020906016020160000154115b80611d0657506001611d026130a5565b5111155b15611d1357506000611d17565b5060015b919050565b6001546000908210611d3057506000611d17565b600b548210611d6d5760018281548110611d4657fe5b9060005260206000209060040201600201601c9054906101000a900460ff16159050611d17565b60018281548110611d7a57fe5b9060005260206000209060040201600201601c9054906101000a900460ff16158015611dc75750600b8281548110611dae57fe5b600091825260209091206001601690920201015460ff16155b92915050565b600b54611e8b57611ddc617a00565b60015460005b81811015611e8757600b8054600181018255600091909152835160008051602061901d833981519152601690920291820190815560208086015160008051602061964c8339815191528401805460ff1916911515919091179055604086015180518794611e639360008051602061903d833981519152909101920190617a2f565b506060820151611e799060038301906013617aa9565b505050806001019050611de2565b5050505b336110011480611e9c575033612002145b611eb85760405162461bcd60e51b8152600401610e1290618614565b6001600160a01b03811660009081526004602052604090205480611edc5750611f2f565b6001810390506000600b8281548110611ef157fe5b600091825260209091206001601690920201015460ff169050611f148383615162565b8015611f1d5750805b15610e34576009805460001901905550505b50565b60015460609081906000805b82811015611f855760018181548110611f5357fe5b9060005260206000209060040201600201601c9054906101000a900460ff16611f7d576001909101905b600101611f3e565b50606081604051908082528060200260200182016040528015611fb2578160200160208202803683370190505b509050606082604051908082528060200260200182016040528015611feb57816020015b6060815260200190600190039081611fd65790505b50600b54600094509091508414156121665760005b84811015612160576001818154811061201557fe5b9060005260206000209060040201600201601c9054906101000a900460ff16612158576001818154811061204557fe5b600091825260209091206004909102015483516001600160a01b039091169084908690811061207057fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600b818154811061209d57fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156121355780601f1061210a57610100808354040283529160200191612135565b820191906000526020600020905b81548152906001019060200180831161211857829003601f168201915b505050505082858151811061214657fe5b60209081029190910101526001909301925b600101612000565b50612202565b60005b84811015612200576001818154811061217e57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166121f857600181815481106121ae57fe5b600091825260209091206004909102015483516001600160a01b03909116908490869081106121d957fe5b6001600160a01b03909216602092830291909101909101526001909301925b600101612169565b505b909450925050505b9091565b600181565b61100181565b60085481565b603881565b600881565b6060806000600e549050600080600c5411612245576015612249565b600c545b905060606122556130a5565b9050606061226282616265565b90508282511161227957909450925061220a915050565b8383835103101561228b578282510393505b83156122c15760c843046122a783838388880360008a8a6163d3565b6122bf8383838888038989038a8b8b8b5103016163d3565b505b6060836040519080825280602002602001820160405280156122ed578160200160208202803683370190505b50905060608460405190808252806020026020018201604052801561232657816020015b60608152602001906001900390816123115790505b50905060005b858110156123a75784818151811061234057fe5b602002602001015183828151811061235457fe5b60200260200101906001600160a01b031690816001600160a01b03168152505083818151811061238057fe5b602002602001015182828151811061239457fe5b602090810291909101015260010161232c565b509096509450505050509091565b60065481565b61200681565b61200081565b6001600160a01b038116600090815260046020526040812054806123ef576000915050611d17565b6000190161116081611d1c565b6001600160a01b03811660009081526004602052604081205480612424576000915050611d17565b60018082038154811061243357fe5b906000526020600020906004020160030154915050919050565b600081565b606781565b600f5481565b6012818154811061246a57fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152935090918301828280156124fb5780601f106124d0576101008083540402835291602001916124fb565b820191906000526020600020905b8154815290600101906020018083116124de57829003601f168201915b505050505081565b60105481565b6001818154811061251657fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b601081565b61100881565b6103e881565b600b81565b600c5481565b61200381565b606681565b61271081565b33612000146125c65760405162461bcd60e51b8152600401610e1290618d1d565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f389021016058383836040516125f993929190618f59565b60405180910390a1505050565b60025481565b60115481565b60145460ff1681565b600a5481565b6001600160a01b038116600090815260046020526040812054806126575760405162461bcd60e51b8152600401610e1290618ca5565b6000190192915050565b600b5461271f57612670617a00565b60015460005b8181101561271b57600b8054600181018255600091909152835160008051602061901d833981519152601690920291820190815560208086015160008051602061964c8339815191528401805460ff19169115159190911790556040860151805187946126f79360008051602061903d833981519152909101920190617a2f565b50606082015161270d9060038301906013617aa9565b505050806001019050612676565b5050505b60085461272c5760036008555b600a54612739576002600a555b600061274433612621565b905061274f81611c4d565b61276b5760405162461bcd60e51b8152600401610e1290618992565b611f2f338261652a565b600981565b61100781565b600381565b60c881565b61100681565b6040518061062001604052806105ef815260200161905d6105ef913981565b60005460ff1681565b61200281565b61300081565b6402540be40081565b60005460ff166127ef5760405162461bcd60e51b8152600401610e12906185dd565b33611007146128105760405162461bcd60e51b8152600401610e1290618a89565b61287a84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b602082015291506165c29050565b15612917576020811461289f5760405162461bcd60e51b8152600401610e1290618c5f565b604080516020601f84018190048102820181019092528281526000916128dd9185858083850183828082843760009201919091525061661b92505050565b9050606481101580156128f35750620186a08111155b61290f5760405162461bcd60e51b8152600401610e1290618882565b600255613043565b61297784848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260098152686275726e526174696f60b81b602082015291506165c29050565b15612a1a576020811461299c5760405162461bcd60e51b8152600401610e12906183fb565b604080516020601f84018190048102820181019092528281526000916129da9185858083850183828082843760009201919091525061661b92505050565b90506127106129f4600f548361624090919063ffffffff16565b1115612a125760405162461bcd60e51b8152600401610e1290618432565b600655613043565b612a8484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260138152726d61784e756d4f664d61696e7461696e696e6760681b602082015291506165c29050565b15612b1e5760208114612aa95760405162461bcd60e51b8152600401610e129061849a565b604080516020601f8401819004810282018101909252828152600091612ae79185858083850183828082843760009201919091525061661b92505050565b600c5490915080612af6575060155b808210612b155760405162461bcd60e51b8152600401610e12906187da565b50600855613043565b612b8784848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61696e7461696e536c6173685363616c6560701b602082015291506165c29050565b15612c205760208114612bac5760405162461bcd60e51b8152600401610e1290618563565b604080516020601f8401819004810282018101909252828152600091612bea9185858083850183828082843760009201919091525061661b92505050565b9050600081118015612bfc5750600a81105b612c185760405162461bcd60e51b8152600401610e1290618dfd565b600a55613043565b612c9484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601981527f6d61784e756d4f66576f726b696e6743616e6469646174657300000000000000602082015291506165c29050565b15612d235760208114612cb95760405162461bcd60e51b8152600401610e1290618517565b604080516020601f8401819004810282018101909252828152600091612cf79185858083850183828082843760009201919091525061661b92505050565b9050600d54811115612d1b5760405162461bcd60e51b8152600401610e12906188f8565b600e55613043565b612d8c84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61784e756d4f6643616e6469646174657360701b602082015291506165c29050565b15612e0e5760208114612db15760405162461bcd60e51b8152600401610e1290618ad7565b604080516020601f8401819004810282018101909252828152600091612def9185858083850183828082843760009201919091525061661b92505050565b600d819055600e54909150811015612e0857600d54600e555b50613043565b612e7284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c6e756d4f66436162696e65747360981b602082015291506165c29050565b15612f205760208114612e975760405162461bcd60e51b8152600401610e12906185a8565b604080516020601f8401819004810282018101909252828152600091612ed59185858083850183828082843760009201919091525061661b92505050565b905060008111612ef75760405162461bcd60e51b8152600401610e1290618682565b6064811115612f185760405162461bcd60e51b8152600401610e12906186ca565b600c55613043565b612f8884848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601181527073797374656d526577617264526174696f60781b602082015291506165c29050565b1561302b5760208114612fad5760405162461bcd60e51b8152600401610e1290618db9565b604080516020601f8401819004810282018101909252828152600091612feb9185858083850183828082843760009201919091525061661b92505050565b90506127106130056006548361624090919063ffffffff16565b11156130235760405162461bcd60e51b8152600401610e1290618bc0565b600f55613043565b60405162461bcd60e51b8152600401610e1290618e5a565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a8484848460405161307894939291906183c9565b60405180910390a150505050565b60046020526000908152604090205481565b68056bc75e2d6310000081565b6001546060906000805b828110156130d4576130c081611d1c565b156130cc578160010191505b6001016130af565b50606081604051908082528060200260200182016040528015613101578160200160208202803683370190505b5090506000915060005b838110156131885761311c81611d1c565b15613180576001818154811061312e57fe5b600091825260209091206004909102015482516001600160a01b039091169083908590811061315957fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508260010192505b60010161310b565b50925050505b90565b601581565b61027181565b61100281565b6013818154811061246a57fe5b60006131b96130a5565b519050600080600c54116131ce5760156131d2565b600c545b9050808211156131e0578091505b816131ea57600191505b5090565b67016345785d8a000081565b60055481565b61100381565b61200481565b60005460ff161561322f5760405162461bcd60e51b8152600401610e1290618b89565b613237617ad6565b600061325d6040518061062001604052806105ef815260200161905d6105ef9139613d83565b915091508061327e5760405162461bcd60e51b8152600401610e1290618cdc565b60005b8260200151518110156133a3576001836020015182815181106132a057fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a09093015160039093019290925591860151805191850193918590811061337657fe5b602090810291909101810151516001600160a01b0316825281019190915260400160002055600101613281565b50506103e8600255506000805460ff19166001179055565b600d5481565b601354600090815b818110156134ca576134b285858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060138054909250859150811061341a57fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156134a85780601f1061347d576101008083540402835291602001916134a8565b820191906000526020600020905b81548152906001019060200180831161348b57829003601f168201915b5050505050616620565b156134c257600192505050611dc7565b6001016133c9565b5060125460005b8181101561353b5761352286868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060128054909250859150811061341a57fe5b156135335760019350505050611dc7565b6001016134d1565b50600095945050505050565b33611001146135685760405162461bcd60e51b8152600401610e1290618e81565b600b5461362657613577617a00565b60015460005b8181101561362257600b8054600181018255600091909152835160008051602061901d833981519152601690920291820190815560208086015160008051602061964c8339815191528401805460ff19169115159190911790556040860151805187946135fe9360008051602061903d833981519152909101920190617a2f565b5060608201516136149060038301906013617aa9565b50505080600101905061357d565b5050505b600061363182616684565b905061363c81611c4d565b1561190057611900828261652a565b606581565b601181565b3341146136745760405162461bcd60e51b8152600401610e1290618d6c565b60005460ff166136965760405162461bcd60e51b8152600401610e12906185dd565b600034116136b65760405162461bcd60e51b8152600401610e12906188c9565b3a156136d45760405162461bcd60e51b8152600401610e1290618a5b565b6001600160a01b03811660009081526004602052604090205460145434919060ff1661371457610271600f556103e86006556014805460ff191660011790555b60008211801561372657506000600f54115b156137d8576000613754612710613748600f543461680790919063ffffffff16565b9063ffffffff61684116565b905080156137d6576040516110029082156108fc029083906000818181858888f1935050505015801561378b573d6000803e3d6000fd5b507f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d816040516137bb9190618f10565b60405180910390a16137d3838263ffffffff6161fe16565b92505b505b6000821180156137ea57506000600654115b1561389057600061380c6127106137486006543461680790919063ffffffff16565b9050801561388e5760405161dead9082156108fc029083906000818181858888f19350505050158015613843573d6000803e3d6000fd5b507f627059660ea01c4733a328effb2294d2f86905bf806da763a89cee254de8bee5816040516138739190618f10565b60405180910390a161388b838263ffffffff6161fe16565b92505b505b801561398e5760006001808303815481106138a757fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff161561391457836001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4846040516139079190618f10565b60405180910390a2613988565b600354613927908463ffffffff61624016565b600390815581015461393f908463ffffffff61624016565b60038201556040516001600160a01b038516907f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc0559061397f908690618f10565b60405180910390a25b50610e34565b826001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4836040516139c79190618f10565b60405180910390a2505050565b600e5481565b61100081565b61dead81565b600b81815481106139f357fe5b6000918252602091829020601691909102018054600180830154600280850180546040805161010096831615969096026000190190911692909204601f810188900488028501880190925281845293965060ff90911694919291830182828015613a9e5780601f10613a7357610100808354040283529160200191613a9e565b820191906000526020600020905b815481529060010190602001808311613a8157829003601f168201915b5050505050905083565b61100481565b6000600a5460001480613abf575082155b80613aca5750600954155b15613ad757506000613d7b565b60096000815460019003919050819055506000613b22600a5461374886613748600b8a81548110613b0457fe5b6000918252602090912060169091020154439063ffffffff6161fe16565b90506000600b8681548110613b3357fe5b906000526020600020906016020160010160006101000a81548160ff0219169083151502179055506000806110016001600160a01b0316638256ace66040518163ffffffff1660e01b8152600401604080518083038186803b158015613b9857600080fd5b505afa158015613bac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613bd091906180c3565b9150915060009350808310613d3157613be98888615162565b5060405163436aa28360e11b8152600090612002906386d5450690613c12908c90600401618200565b60206040518083038186803b158015613c2a57600080fd5b505afa158015613c3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c629190617e70565b6001600160a01b031614613cd0576040516328aa02b160e01b8152611001906328aa02b190613c99908b9087908a9060040161826f565b600060405180830381600087803b158015613cb357600080fd5b505af1158015613cc7573d6000803e3d6000fd5b50505050613d28565b6040516305bfb49960e41b815261100190635bfb499090613cf5908b90600401618200565b600060405180830381600087803b158015613d0f57600080fd5b505af1158015613d23573d6000803e3d6000fd5b505050505b60019350613d43565b818310613d4357613d4188616684565b505b6040516001600160a01b038916907fb9d38178dc641ff1817967a63c9078cbcd955a9f1fcd75e0e3636de615d44d3b90600090a25050505b949350505050565b613d8b617ad6565b6000613d95617ad6565b613d9d617b73565b613dae613da986616883565b6168a8565b90506000805b613dbd836168f2565b15613f315780613de257613dd8613dd384616913565b616961565b60ff168452613f29565b8060011415613f24576060613dfe613df985616913565b6169e1565b90508051604051908082528060200260200182016040528015613e3b57816020015b613e28617afa565b815260200190600190039081613e205790505b5085602001819052508051604051908082528060200260200182016040528015613e7957816020015b6060815260200190600190039081613e645790505b50604086015260005b8151811015613f1957613e93617afa565b60606000613eb3858581518110613ea657fe5b6020026020010151616ab2565b92509250925080613ed3578860009a509a50505050505050505050613f3a565b8289602001518581518110613ee457fe5b60200260200101819052508189604001518581518110613f0057fe5b6020026020010181905250505050806001019050613e82565b506001925050613f29565b613f31565b600101613db4565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b6060815260200190600190039081613f59579050509050613f7f8363ffffffff16616bcc565b81600081518110613f8c57fe5b602002602001018190525061116081616bdf565b6000606483511115613fd757600080516020618ffd833981519152604051613fc790618727565b60405180910390a1506066611dc7565b60005b83518110156140755760005b8181101561406c57848181518110613ffa57fe5b6020026020010151600001516001600160a01b031685838151811061401b57fe5b6020026020010151600001516001600160a01b0316141561406457600080516020618ffd83398151915260405161405190618837565b60405180910390a1606692505050611dc7565b600101613fe6565b50600101613fda565b5060608060606015805480602002602001604051908101604052809291908181526020016000905b828210156141275760008481526020908190206040805160c0810182526004860290920180546001600160a01b039081168452600180830154821685870152600283015491821693850193909352600160a01b81046001600160401b03166060850152600160e01b900460ff16151560808401526003015460a0830152908352909201910161409d565b50505050905060606016805480602002602001604051908101604052809291908181526020016000905b828210156141fc5760008481526020908190208301805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156141e85780601f106141bd576101008083540402835291602001916141e8565b820191906000526020600020905b8154815290600101906020018083116141cb57829003601f168201915b505050505081526020019060010190614151565b50505050905060005b82518110156142595782818151811061421a57fe5b60200260200101516060015160030283828151811061423557fe5b60209081029190910101516001600160401b03909116606090910152600101614205565b5060608061426989898686616c69565b915091506142778282615525565b600154604080518281526020808402820101909152929850909650600095508594509250606091508280156142b6578160200160208202803683370190505b50905060005b828110156144475760006001600160a01b03166120026001600160a01b03166386d54506600184815481106142ed57fe5b60009182526020909120600491820201546040516001600160e01b031960e085901b168152614328926001600160a01b039092169101618200565b60206040518083038186803b15801561434057600080fd5b505afa158015614354573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143789190617e70565b6001600160a01b0316146143da57600182828151811061439457fe5b602002602001019060ff16908160ff1681525050600181815481106143b557fe5b9060005260206000209060040201600301546000146143d5578360010193505b61443f565b67016345785d8a0000600182815481106143f057fe5b906000526020600020906004020160030154106144125784600101945061443f565b6001818154811061441f57fe5b90600052602060002090600402016003015460001461443f578360010193505b6001016142bc565b50606084604051908082528060200260200182016040528015614474578160200160208202803683370190505b5090506060856040519080825280602002602001820160405280156144a3578160200160208202803683370190505b5090506060866040519080825280602002602001820160405280156144d2578160200160208202803683370190505b509050606087604051908082528060200260200182016040528015614501578160200160208202803683370190505b5090506000606088604051908082528060200260200182016040528015614532578160200160208202803683370190505b509050606089604051908082528060200260200182016040528015614561578160200160208202803683370190505b50905060009a506000995060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b1580156145a957600080fd5b505afa1580156145bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145e191906180ab565b905067016345785d8a000081111561462d57600080516020618ffd83398151915260405161460e90618b48565b60405180910390a160689e505050505050505050505050505050611dc7565b60005b8a8110156149c15789818151811061464457fe5b602002602001015160ff166001141561473a576001818154811061466457fe5b906000526020600020906004020160030154600014614735576001818154811061468a57fe5b600091825260209091206004909102015484516001600160a01b039091169085908e9081106146b557fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600181815481106146e257fe5b906000526020600020906004020160030154838d8151811061470057fe5b60200260200101818152505060018a8d8151811061471a57fe5b602002602001019060ff16908160ff16815250508b6001019b505b6149b9565b67016345785d8a00006001828154811061475057fe5b906000526020600020906004020160030154106148d5576001818154811061477457fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316898e815181106147a557fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be400600183815481106147da57fe5b906000526020600020906004020160030154816147f357fe5b066001838154811061480157fe5b90600052602060002090600402016003015403905061482983826161fe90919063ffffffff16565b898f8151811061483557fe5b6020026020010181815250506001828154811061484e57fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316878f8151811061487f57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081888f815181106148ac57fe5b60209081029190910101526148c7868263ffffffff61624016565b95508d6001019d50506149b9565b600181815481106148e257fe5b9060005260206000209060040201600301546000146149b9576001818154811061490857fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316848d8151811061493957fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506001818154811061496657fe5b906000526020600020906004020160030154838d8151811061498457fe5b60200260200101818152505060008a8d8151811061499e57fe5b602002602001019060ff16908160ff16815250508b6001019b505b600101614630565b5060008415614c37576002546040516303702b2960e51b815261100491636e0565209188916149fb918e918e918d91420190600401618331565b6020604051808303818588803b158015614a1457600080fd5b505af193505050508015614a45575060408051601f3d908101601f19168201909252614a4291810190617fd8565b60015b614bbc576040516000815260443d1015614a6157506000614afc565b60046000803e60005160e01c6308c379a08114614a82576000915050614afc565b60043d036004833e81513d60248201116001600160401b0382111715614aad57600092505050614afc565b80830180516001600160401b03811115614ace576000945050505050614afc565b8060208301013d8601811115614aec57600095505050505050614afc565b601f01601f191660405250925050505b80614b075750614b49565b60019150857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf28082604051614b3b91906183b6565b60405180910390a250614bb7565b3d808015614b73576040519150601f19603f3d011682016040523d82523d6000602084013e614b78565b606091505b5060019150857fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a4582604051614bad91906183b6565b60405180910390a2505b614c37565b8015614bfe577fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b7086604051614bf19190618f10565b60405180910390a1614c35565b857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280604051614c2c906184e0565b60405180910390a25b505b8015614ded5760005b8751811015614deb576000888281518110614c5757fe5b60200260200101519050600060018281548110614c7057fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc9185908110614ca157fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f1935050505090508015614d5d5760018281548110614ce257fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d9185908110614d3157fe5b906000526020600020906004020160030154604051614d509190618f10565b60405180910390a2614de1565b60018281548110614d6a57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d9185908110614db957fe5b906000526020600020906004020160030154604051614dd89190618f10565b60405180910390a25b5050600101614c40565b505b835115614fe35760005b8451811015614fe1578a8181518110614e0c57fe5b602002602001015160ff1660011415614eab576120026001600160a01b031663092193ab858381518110614e3c57fe5b6020026020010151878481518110614e5057fe5b60200260200101516040518363ffffffff1660e01b8152600401614e749190618200565b6000604051808303818588803b158015614e8d57600080fd5b505af1158015614ea1573d6000803e3d6000fd5b5050505050614fd9565b6000858281518110614eb957fe5b60200260200101516001600160a01b03166108fc868481518110614ed957fe5b60200260200101519081150290604051600060405180830381858888f1935050505090508015614f6f57858281518110614f0f57fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d868481518110614f4d57fe5b6020026020010151604051614f629190618f10565b60405180910390a2614fd7565b858281518110614f7b57fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d868481518110614fb957fe5b6020026020010151604051614fce9190618f10565b60405180910390a25b505b600101614df7565b505b5050505050505050505050505060005b600154811015615050576001818154811061500a57fe5b9060005260206000209060040201600301546000146150485760006001828154811061503257fe5b9060005260206000209060040201600301819055505b600101614ff3565b5047156150be577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d476040516150869190618f10565b60405180910390a1604051611002904780156108fc02916000818181858888f193505050501580156150bc573d6000803e3d6000fd5b505b600060038190556005558151156150d9576150d98282615a0f565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561511657600080fd5b505af115801561512a573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a1506000949350505050565b6000806001838154811061517257fe5b9060005260206000209060040201600301549050600060018080549050039050600161519c6130a5565b51116151d1576000600185815481106151b157fe5b906000526020600020906004020160030181905550600092505050611dc7565b846001600160a01b03167f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a708360405161520a9190618f10565b60405180910390a26001600160a01b038516600090815260046020526040812055835b600154600019018110156153f7576001816001018154811061524b57fe5b90600052602060002090600402016001828154811061526657fe5b60009182526020909120825460049092020180546001600160a01b03199081166001600160a01b0393841617825560018085015481840180548416918616919091179055600280860180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b19909416939093179055600392830154920191909155600b80549091830190811061532757fe5b9060005260206000209060160201600b828154811061534257fe5b600091825260209091208254601690920201908155600180830154818301805460ff909216151560ff1990921691909117905560028084018054615399938386019390821615610100026000190190911604617b93565b506153ac60038281019084016013617c08565b509050508060010160046000600184815481106153c557fe5b600091825260208083206004909202909101546001600160a01b0316835282019290925260400190205560010161522d565b50600180548061540357fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b80548061545657fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906154886002830182617b2f565b615496600383016000617c32565b5050905560008183816154a557fe5b04905080156155195760015460005b81811015615516576154ed83600183815481106154cd57fe5b90600052602060002090600402016003015461624090919063ffffffff16565b600182815481106154fa57fe5b60009182526020909120600360049092020101556001016154b4565b50505b50600195945050505050565b6060806000808080806155366131af565b6001549091505b801561576857600181039250600b838154811061555657fe5b600091825260209091206001601690920201015460ff166155765761575f565b6001838154811061558357fe5b600091825260208220600490910201546001600160a01b031695506155ad90869085908590613aae565b9350836155b95761575f565b60405163436aa28360e11b81526000908190612002906386d54506906155e3908a90600401618200565b60206040518083038186803b1580156155fb57600080fd5b505afa15801561560f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906156339190617e70565b90506001600160a01b038116156156bc576040516302ceee9160e11b81526120029063059ddd2290615669908490600401618200565b60206040518083038186803b15801561568157600080fd5b505afa158015615695573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906156b99190617e70565b91505b60005b8c5181101561575b57876001600160a01b03168d82815181106156de57fe5b6020026020010151600001516001600160a01b031614806157275750826001600160a01b03168d828151811061571057fe5b6020026020010151600001516001600160a01b0316145b156157535760018d828151811061573a57fe5b602090810291909101015190151560809091015261575b565b6001016156bf565b5050505b6000190161553d565b5060005b89518110156157d55789818151811061578157fe5b602002602001015160800151806157c1575060006001600160a01b03168a82815181106157aa57fe5b6020026020010151600001516001600160a01b0316145b156157cd578560010195505b60010161576c565b50885185106158bd5760408051600180825281830190925290816020015b6157fb617afa565b8152602001906001900390816157f3575050604080516001808252818301909252919850602082015b60608152602001906001900390816158245790505095508860008151811061584857fe5b60200260200101518760008151811061585d57fe5b60200260200101819052508760008151811061587557fe5b60200260200101518660008151811061588a57fe5b60200260200101819052506000876000815181106158a457fe5b6020908102919091010151901515608090910152615a02565b848951036040519080825280602002602001820160405280156158fa57816020015b6158e7617afa565b8152602001906001900390816158df5790505b5096508489510360405190808252806020026020018201604052801561593457816020015b606081526020019060019003908161591f5790505b5095506000915060005b8951811015615a005789818151811061595357fe5b602002602001015160800151158015615996575060006001600160a01b03168a828151811061597e57fe5b6020026020010151600001516001600160a01b031614155b156159f8578981815181106159a757fe5b60200260200101518884815181106159bb57fe5b60200260200101819052508881815181106159d257fe5b60200260200101518784815181106159e657fe5b60200260200101819052508260010192505b60010161593e565b505b50505050505b9250929050565b600154825160005b82811015615b2c576001615a29617afa565b60018381548110615a3657fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b84811015615b0057878181518110615ac657fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b03161415615af85760009250615b00565b600101615ab2565b508115615b225780516001600160a01b03166000908152600460205260408120555b5050600101615a17565b5080821115615beb57805b82811015615be9576001805480615b4a57fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b805480615b9d57fe5b60008281526020812060166000199093019283020181815560018101805460ff1916905590615bcf6002830182617b2f565b615bdd600383016000617c32565b50509055600101615b37565b505b6000818310615bfa5781615bfc565b825b905060005b81811015615fa057615cae868281518110615c1857fe5b602002602001015160018381548110615c2d57fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a0820152617035565b615e62578060010160046000888481518110615cc657fe5b6020026020010151600001516001600160a01b03166001600160a01b0316815260200190815260200160002081905550858181518110615d0257fe5b602002602001015160018281548110615d1757fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a0909101516003909101558451859082908110615dd257fe5b6020026020010151600b8281548110615de757fe5b90600052602060002090601602016002019080519060200190615e0b929190617a2f565b506000600b8281548110615e1b57fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b805483908110615e4c57fe5b6000918252602090912060169091020155615f98565b858181518110615e6e57fe5b60200260200101516060015160018281548110615e8757fe5b906000526020600020906004020160020160146101000a8154816001600160401b0302191690836001600160401b03160217905550615f4d858281518110615ecb57fe5b6020026020010151600b8381548110615ee057fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156134a85780601f1061347d576101008083540402835291602001916134a8565b615f9857848181518110615f5d57fe5b6020026020010151600b8281548110615f7257fe5b90600052602060002090601602016002019080519060200190615f96929190617a2f565b505b600101615c01565b508282111561617857615fb1617a00565b835b8381101561617557858181518110615fc757fe5b602002602001015182604001819052506001878281518110615fe557fe5b6020908102919091018101518254600181810185556000948552838520835160049093020180546001600160a01b039384166001600160a01b0319918216178255848601518284018054918616918316919091179055604080860151600284018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909a1692909616919091179290921696909617169190911790935560a090930151600390930192909255600b805492830181559093528451601690910260008051602061901d83398151915281019182558583015160008051602061964c8339815191528201805491151560ff199092169190911790559285015180518694929361611b9360008051602061903d83398151915201920190617a2f565b5060608201516161319060038301906013617aa9565b505050806001016004600089848151811061614857fe5b602090810291909101810151516001600160a01b0316825281019190915260400160002055600101615fb3565b50505b616180617091565b616188617279565b6000600981905560015493505b838110156161f6576000600b82815481106161ac57fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b8054839081106161dd57fe5b6000918252602090912060169091020155600101616195565b505050505050565b600061116083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250617467565b6000828201838110156111605760405162461bcd60e51b8152600401610e129061864b565b6001548151604080518281526020808402820101909152606092919083908280156162a457816020015b606081526020019060019003908161628f5790505b50600b5490915083146162bb579250611d17915050565b60005b828110156163ca57600b6001600460008985815181106162da57fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054038154811061630e57fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156163a65780601f1061637b576101008083540402835291602001916163a6565b820191906000526020600020905b81548152906001019060200180831161638957829003601f168201915b50505050508282815181106163b757fe5b60209081029190910101526001016162be565b50949350505050565b60005b8281101561652057600082878388016040516020016163f69291906181f2565b6040516020818303038152906040528051906020012060001c8161641657fe5b06905080850182870114616517576000898388018151811061643457fe5b602002602001015190506060898489018151811061644e57fe5b602002602001015190508a8388018151811061646657fe5b60200260200101518b858a018151811061647c57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050818b848901815181106164ab57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505089838801815181106164d957fe5b60200260200101518a858a01815181106164ef57fe5b6020026020010181905250808a8489018151811061650957fe5b602002602001018190525050505b506001016163d6565b5050505050505050565b600980546001908101909155600b80548390811061654457fe5b906000526020600020906016020160010160006101000a81548160ff02191690831515021790555043600b828154811061657a57fe5b600091825260208220601690910201919091556040516001600160a01b038416917ff62981a567ec3cec866c6fa93c55bcdf841d6292d18b8d522ececa769375d82d91a25050565b6000816040516020016165d591906181d6565b60405160208183030381529060405280519060200120836040516020016165fc91906181d6565b6040516020818303038152906040528051906020012014905092915050565b015190565b81518151600091600191811480831461663c576000925061667a565b600160208701838101602088015b6002848385100114156166755780518351146166695760009650600093505b6020928301920161664a565b505050505b5090949350505050565b6001600160a01b038116600090815260046020526040812054806166ad57506000199050611d17565b6001810390506000600182815481106166c257fe5b90600052602060002090600402016003015490506000600183815481106166e557fe5b6000918252602090912060036004909202010155600154604051600019909101906001600160a01b038616907f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d9061673e908590618f10565b60405180910390a28061675657829350505050611d17565b600081838161676157fe5b04905080156167fd5760005b848110156167af5761678682600183815481106154cd57fe5b6001828154811061679357fe5b600091825260209091206003600490920201015560010161676d565b50600180549085015b818110156167fa576167d183600183815481106154cd57fe5b600182815481106167de57fe5b60009182526020909120600360049092020101556001016167b8565b50505b5091949350505050565b60008261681657506000611dc7565b8282028284828161682357fe5b04146111605760405162461bcd60e51b8152600401610e1290618a1a565b600061116083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250617493565b61688b617c41565b506040805180820190915281518152602082810190820152919050565b6168b0617b73565b6168b9826174ca565b6168c257600080fd5b60006168d18360200151617504565b60208085015160408051808201909152868152920190820152915050919050565b60006168fc617c41565b505080518051602091820151919092015191011190565b61691b617c41565b616924826168f2565b61692d57600080fd5b6020820151600061693d82617567565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061697657508151602110155b61697f57600080fd5b600061698e8360200151617504565b905080836000015110156169b45760405162461bcd60e51b8152600401610e1290618c28565b8251602080850151830180519284900392918310156163ca57506020919091036101000a90049392505050565b60606169ec826174ca565b6169f557600080fd5b6000616a0083617648565b9050606081604051908082528060200260200182016040528015616a3e57816020015b616a2b617c41565b815260200190600190039081616a235790505b5090506000616a508560200151617504565b60208601510190506000805b84811015616aa757616a6d83617567565b9150604051806040016040528083815260200184815250848281518110616a9057fe5b602090810291909101015291810191600101616a5c565b509195945050505050565b616aba617afa565b60606000616ac6617afa565b6060616ad0617b73565b616ad9876168a8565b90506000805b616ae8836168f2565b15616bbd5780616b1357616b03616afe84616913565b6176a4565b6001600160a01b03168552616bb5565b8060011415616b3b57616b28616afe84616913565b6001600160a01b03166020860152616bb5565b8060021415616b6357616b50616afe84616913565b6001600160a01b03166040860152616bb5565b8060031415616b8f57616b78613dd384616913565b6001600160401b0316606086015260019150616bb5565b8060041415616bb057616ba9616ba484616913565b6176be565b9350616bb5565b616bbd565b600101616adf565b50929791965091945092505050565b6060611dc7616bda8361772e565b617814565b6060815160001415616c005750604080516000815260208101909152611d17565b606082600081518110616c0f57fe5b602002602001015190506000600190505b8351811015616c5057616c4682858381518110616c3957fe5b6020026020010151617866565b9150600101616c20565b50611160616c63825160c060ff166178e3565b82617866565b60608060006120026001600160a01b031663c473318f6040518163ffffffff1660e01b815260040160206040518083038186803b158015616ca957600080fd5b505afa158015616cbd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190616ce191906180ab565b90508085518851011015616cf6575083518651015b606081604051908082528060200260200182016040528015616d3257816020015b616d1f617afa565b815260200190600190039081616d175790505b509050606082604051908082528060200260200182016040528015616d6b57816020015b6060815260200190600190039081616d565790505b50905060008060005b8b51831080616d835750895182105b8015616d8e57508581105b15617023578b51831415616dfe57898281518110616da857fe5b6020026020010151858281518110616dbc57fe5b6020026020010181905250888281518110616dd357fe5b6020026020010151848281518110616de757fe5b602090810291909101015260019182019101616d74565b8951821415616e69578b8381518110616e1357fe5b6020026020010151858281518110616e2757fe5b60200260200101819052508a8381518110616e3e57fe5b6020026020010151848281518110616e5257fe5b602090810291909101015260019283019201616d74565b898281518110616e7557fe5b6020026020010151606001516001600160401b03168c8481518110616e9657fe5b6020026020010151606001516001600160401b03161115616f12578b8381518110616ebd57fe5b6020026020010151858281518110616ed157fe5b60200260200101819052508a8381518110616ee857fe5b6020026020010151848281518110616efc57fe5b602002602001018190525082600101925061701b565b898281518110616f1e57fe5b6020026020010151606001516001600160401b03168c8481518110616f3f57fe5b6020026020010151606001516001600160401b03161015616fbb57898281518110616f6657fe5b6020026020010151858281518110616f7a57fe5b6020026020010181905250888281518110616f9157fe5b6020026020010151848281518110616fa557fe5b602002602001018190525081600101915061701b565b898281518110616fc757fe5b6020026020010151600001516001600160a01b03168c8481518110616fe857fe5b6020026020010151600001516001600160a01b0316101561700f578b8381518110616ebd57fe5b898281518110616da857fe5b600101616d74565b50929a91995090975050505050505050565b805182516000916001600160a01b03918216911614801561706f575081602001516001600160a01b031683602001516001600160a01b0316145b80156111605750506040908101519101516001600160a01b0390811691161490565b601254601354808211156170dc57805b828110156170da5760128054806170b457fe5b6001900381819060005260206000200160006170d09190617b2f565b90556001016170a1565b505b60008183106170eb57816170ed565b825b905060005b81811015617205576171aa6012828154811061710a57fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156171985780601f1061716d57610100808354040283529160200191617198565b820191906000526020600020905b81548152906001019060200180831161717b57829003601f168201915b50505050506013838154811061341a57fe5b6171fd57601381815481106171bb57fe5b90600052602060002001601282815481106171d257fe5b9060005260206000200190805460018160011615610100020316600290046171fb929190617b93565b505b6001016170f2565b5082821115610e3457825b828110156172735760126013828154811061722757fe5b600091825260208083208454600181810187559585529190932092909101805461726a949390920192909160026101009282161592909202600019011604617b93565b50600101617210565b50505050565b601354600b54808211156172c457805b828110156172c257601380548061729c57fe5b6001900381819060005260206000200160006172b89190617b2f565b9055600101617289565b505b60008183106172d357816172d5565b825b905060005b818110156173f457617392601382815481106172f257fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156173805780601f1061735557610100808354040283529160200191617380565b820191906000526020600020905b81548152906001019060200180831161736357829003601f168201915b5050505050600b8381548110615ee057fe5b6173ec57600b81815481106173a357fe5b9060005260206000209060160201600201601382815481106173c157fe5b9060005260206000200190805460018160011615610100020316600290046173ea929190617b93565b505b6001016172da565b5082821115610e3457825b82811015617273576013600b828154811061741657fe5b60009182526020808320845460018082018755958552919093206016929092029092016002908101805461745e95939094019390926000199082161561010002011604617b93565b506001016173ff565b6000818484111561748b5760405162461bcd60e51b8152600401610e1291906183b6565b505050900390565b600081836174b45760405162461bcd60e51b8152600401610e1291906183b6565b5060008385816174c057fe5b0495945050505050565b80516000906174db57506000611d17565b6020820151805160001a9060c08210156174fa57600092505050611d17565b5060019392505050565b8051600090811a608081101561751e576000915050611d17565b60b8811080617539575060c08110801590617539575060f881105b15617548576001915050611d17565b60c081101561755c5760b519019050611d17565b60f519019050611d17565b80516000908190811a60808110156175825760019150617641565b60b881101561759757607e1981019150617641565b60c08110156175e857600060b78203600186019550806020036101000a8651049150600181018201935050808310156175e25760405162461bcd60e51b8152600401610e1290618967565b50617641565b60f88110156175fd5760be1981019150617641565b600060f78203600186019550806020036101000a86510491506001810182019350508083101561763f5760405162461bcd60e51b8152600401610e1290618967565b505b5092915050565b805160009061765957506000611d17565b6000809050600061766d8460200151617504565b602085015185519181019250015b8082101561769b5761768c82617567565b8201915082600101925061767b565b50909392505050565b80516000906015146176b557600080fd5b611dc782616961565b80516060906176cc57600080fd5b60006176db8360200151617504565b83516040805191839003808352601f19601f8201168301602001909152919250606090828015617712576020820181803683370190505b50905060008160200190506163ca8487602001510182856179b5565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff19841661777257506018617796565b6fffffffffffffffffffffffffffffffff19841661779257506010617796565b5060005b60208110156177cc578181815181106177ab57fe5b01602001516001600160f81b031916156177c4576177cc565b600101617796565b60008160200390506060816040519080825280601f01601f191660200182016040528015617801576020820181803683370190505b5080830196909652508452509192915050565b6060815160011480156178465750607f60f81b8260008151811061783457fe5b01602001516001600160f81b03191611155b15617852575080611d17565b611dc76178648351608060ff166178e3565b835b6060806040519050835180825260208201818101602087015b8183101561789757805183526020928301920161787f565b50855184518101855292509050808201602086015b818310156178c45780518352602092830192016178ac565b508651929092011591909101601f01601f191660405250905092915050565b606068010000000000000000831061790d5760405162461bcd60e51b8152600401610e12906187b2565b604080516001808252818301909252606091602082018180368337019050509050603784116179675782840160f81b8160008151811061794957fe5b60200101906001600160f81b031916908160001a9053509050611dc7565b60606179728561772e565b90508381510160370160f81b8260008151811061798b57fe5b60200101906001600160f81b031916908160001a9053506179ac8282617866565b95945050505050565b806179bf57610e34565b5b602081106179df578251825260209283019290910190601f19016179c0565b915181516020939093036101000a6000190180199091169216919091179052565b60405180608001604052806000815260200160001515815260200160608152602001617a2a617c5b565b905290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10617a7057805160ff1916838001178555617a9d565b82800160010185558215617a9d579182015b82811115617a9d578251825591602001919060010190617a82565b506131ea929150617c7a565b8260138101928215617a9d5791602002820182811115617a9d578251825591602001919060010190617a82565b6040518060600160405280600060ff16815260200160608152602001606081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b50805460018160011615610100020316600290046000825580601f10617b555750611f2f565b601f016020900490600052602060002090810190611f2f9190617c7a565b6040518060400160405280617b86617c41565b8152602001600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10617bcc5780548555617a9d565b82800160010185558215617a9d57600052602060002091601f016020900482015b82811115617a9d578254825591600101919060010190617bed565b8260138101928215617a9d5791820182811115617a9d578254825591600101919060010190617bed565b50611f2f906013810190617c7a565b604051806040016040528060008152602001600081525090565b6040518061026001604052806013906020820280368337509192915050565b61318e91905b808211156131ea5760008155600101617c80565b8035611dc781618fe7565b60008083601f840112617cb0578182fd5b5081356001600160401b03811115617cc6578182fd5b6020830191508360208083028501011115615a0857600080fd5b6000601f8381840112617cf1578182fd5b8235617d04617cff82618f9c565b618f76565b818152925060208084019085810160005b84811015617d96578135880189603f820112617d3057600080fd5b838101356001600160401b03811115617d4857600080fd5b617d59818901601f19168601618f76565b81815260408c81848601011115617d6f57600080fd5b82818501888401375060009181018601919091528552509282019290820190600101617d15565b50505050505092915050565b600082601f830112617db2578081fd5b8135617dc0617cff82618f9c565b818152915060208083019084810181840286018201871015617de157600080fd5b6000805b85811015617d965782356001600160401b0381168114617e03578283fd5b85529383019391830191600101617de5565b60008083601f840112617e26578182fd5b5081356001600160401b03811115617e3c578182fd5b602083019150836020828501011115615a0857600080fd5b600060208284031215617e65578081fd5b813561116081618fe7565b600060208284031215617e81578081fd5b815161116081618fe7565b60008060008060408587031215617ea1578283fd5b84356001600160401b0380821115617eb7578485fd5b617ec388838901617c9f565b90965094506020870135915080821115617edb578384fd5b50617ee887828801617c9f565b95989497509550505050565b600080600060608486031215617f08578283fd5b83356001600160401b0380821115617f1e578485fd5b81860187601f820112617f2f578586fd5b80359250617f3f617cff84618f9c565b80848252602080830192508084018b828389028701011115617f5f57898afd5b8994505b86851015617f8957617f758c82617c94565b845260019490940193928101928101617f63565b509097508801359350505080821115617fa0578384fd5b617fac87838801617da2565b93506040860135915080821115617fc1578283fd5b50617fce86828701617ce0565b9150509250925092565b600060208284031215617fe9578081fd5b81518015158114611160578182fd5b6000806020838503121561800a578182fd5b82356001600160401b0381111561801f578283fd5b61802b85828601617e15565b90969095509350505050565b6000806000806040858703121561804c578384fd5b84356001600160401b0380821115618062578586fd5b61806e88838901617e15565b90965094506020870135915080821115618086578384fd5b50617ee887828801617e15565b6000602082840312156180a4578081fd5b5035919050565b6000602082840312156180bc578081fd5b5051919050565b600080604083850312156180d5578182fd5b505080516020909101519092909150565b6000806000604084860312156180fa578081fd5b833560ff8116811461810a578182fd5b925060208401356001600160401b03811115618124578182fd5b61813086828701617e15565b9497909650939450505050565b6000815180845260208085019450808401835b838110156181755781516001600160a01b031687529582019590820190600101618150565b509495945050505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b600081518084526181c2816020860160208601618fbb565b601f01601f19169290920160200192915050565b600082516181e8818460208701618fbb565b9190910192915050565b918252602082015260400190565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b03968716815294861660208601529290941660408401526001600160401b03166060830152911515608082015260a081019190915260c00190565b6001600160a01b0393909316835260208301919091521515604082015260600190565b6001600160a01b0392909216825260ff16602082015260400190565b600060208252611160602083018461813d565b6000604082526182d4604083018561813d565b602083820381850152818551808452828401915082838202850101838801865b8381101561832257601f198784030185526183108383516181aa565b948601949250908501906001016182f4565b50909998505050505050505050565b600060808252618344608083018761813d565b828103602084810191909152865180835287820192820190845b8181101561837a5784518352938301939183019160010161835e565b5050848103604086015261838e818861813d565b93505050506001600160401b038316606083015295945050505050565b901515815260200190565b60006020825261116060208301846181aa565b6000604082526183dd604083018688618180565b82810360208401526183f0818587618180565b979650505050505050565b6020808252601c908201527f6c656e677468206f66206275726e526174696f206d69736d6174636800000000604082015260600190565b60208082526042908201527f746865206275726e526174696f20706c75732073797374656d5265776172645260408201527f6174696f206d757374206265206e6f2067726561746572207468616e20313030606082015261030360f41b608082015260a00190565b60208082526026908201527f6c656e677468206f66206d61784e756d4f664d61696e7461696e696e67206d696040820152650e6dac2e8c6d60d31b606082015260800190565b6020808252601b908201527f6261746368207472616e736665722072657475726e2066616c73650000000000604082015260600190565b6020808252602c908201527f6c656e677468206f66206d61784e756d4f66576f726b696e6743616e6469646160408201526b0e8cae640dad2e6dac2e8c6d60a31b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61696e7461696e536c6173685363616c65206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252818101527f6c656e677468206f66206e756d4f66436162696e657473206d69736d61746368604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252601f908201527f6f6e6c7920736c617368206f72207374616b6548756220636f6e747261637400604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526028908201527f746865206e756d4f66436162696e657473206d75737420626520677265617465604082015267072207468616e20360c41b606082015260800190565b60208082526039908201527f746865206e756d4f66436162696e657473206d757374206265206c657373207460408201527f68616e204d41585f4e554d5f4f465f56414c494441544f525300000000000000606082015260800190565b60208082526029908201527f746865206e756d626572206f662076616c696461746f727320657863656564206040820152681d1a19481b1a5b5a5d60ba1b606082015260800190565b60208082526022908201527f63616e206e6f7420646f207468697320747769636520696e206f6e6520626c6f604082015261636b60f01b606082015260800190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526037908201527f746865206d61784e756d4f664d61696e7461696e696e67206d7573742062652060408201527f6c657373207468616e206e756d4f66436162696e657473000000000000000000606082015260800190565b6020808252602b908201527f6475706c696361746520636f6e73656e7375732061646472657373206f66207660408201526a185b1a59185d1bdc94d95d60aa1b606082015260800190565b60208082526027908201527f7468652065787069726554696d655365636f6e64476170206973206f7574206f604082015266662072616e676560c81b606082015260800190565b6020808252601590820152746465706f7369742076616c7565206973207a65726f60581b604082015260600190565b60208082526049908201527f746865206d61784e756d4f66576f726b696e6743616e64696461746573206d7560408201527f7374206265206e6f742067726561746572207468616e206d61784e756d4f6643606082015268616e6469646174657360b81b608082015260a00190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b60208082526023908201527f63616e206e6f7420656e7465722054656d706f72617279204d61696e74656e616040820152626e636560e81b606082015260800190565b60208082526025908201527f6c656e677468206f66206a61696c2076616c696461746f7273206d757374206260408201526465206f6e6560d81b606082015260800190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61784e756d4f6643616e64696461746573206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252601290820152716e6f7420696e206d61696e74656e616e636560701b604082015260600190565b60208082526021908201527f666565206973206c6172676572207468616e2044555354595f494e434f4d494e6040820152604760f81b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b60208082526042908201527f7468652073797374656d526577617264526174696f20706c7573206275726e5260408201527f6174696f206d757374206265206e6f2067726561746572207468616e20313030606082015261030360f41b608082015260a00190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526026908201527f6c656e677468206f662065787069726554696d655365636f6e64476170206d696040820152650e6dac2e8c6d60d31b606082015260800190565b60208082526017908201527f6f6e6c792063757272656e742076616c696461746f7273000000000000000000604082015260600190565b60208082526021908201527f6661696c656420746f20706172736520696e69742076616c696461746f7253656040820152601d60fa1b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b60208082526024908201527f6c656e677468206f662073797374656d526577617264526174696f206d69736d6040820152630c2e8c6d60e31b606082015260800190565b6020808252603e908201527f746865206d61696e7461696e536c6173685363616c65206d757374206265206760408201527f726561746572207468616e203020616e64206c657373207468616e2031300000606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b60208082526029908201527f746865206d6573736167652073656e646572206d75737420626520736c6173686040820152680818dbdb9d1c9858dd60ba1b606082015260800190565b6020808252601f908201527f746865206d73672073656e646572206d757374206265207374616b6548756200604082015260600190565b61ffff91909116815260200190565b90815260200190565b60008482528315156020830152606060408301526179ac60608301846181aa565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff85168252604060208301526179ac604083018486618180565b6040518181016001600160401b0381118282101715618f9457600080fd5b604052919050565b60006001600160401b03821115618fb1578081fd5b5060209081020190565b60005b83811015618fd6578181015183820152602001618fbe565b838111156172735750506000910152565b6001600160a01b0381168114611f2f57600080fdfe70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb20175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbbf905ec80f905e8f846942a7cdd959bfe8d9487b2a43b33565295a698f7e294b6a7edd747c0554875d3fc531d19ba1497992c5e941ff80f3f7f110ffd8920a3ac38fdef318fe94a3f86048c27395000f846946488aa4d1955ee33403f8ccb1d4de5fb97c7ade294220f003d8bdfaadf52aa1e55ae4cc485e6794875941a87e90e440a39c99aa9cb5cea0ad6a3f0b2407b86048c27395000f846949ef9f4360c606c7ab4db26b016007d3ad0ab86a0946103af86a874b705854033438383c82575f25bc29418e2db06cbff3e3c5f856410a1838649e760175786048c27395000f84694ee01c3b1283aa067c58eab4709f85e99d46de5fe94ee4b9bfb1871c64e2bcabb1dc382dc8b7c4218a29415904ab26ab0e99d70b51c220ccdcccabee6e29786048c27395000f84694685b1ded8013785d6623cc18d214320b6bb6475994a20ef4e5e4e7e36258dbf51f4d905114cb1b34bc9413e39085dc88704f4394d35209a02b1a9520320c86048c27395000f8469478f3adfc719c99674c072166708589033e2d9afe9448a30d5eaa7b64492a160f139e2da2800ec3834e94055838358c29edf4dcc1ba1985ad58aedbb6be2b86048c27395000f84694c2be4ec20253b8642161bc3f444f53679c1f3d479466f50c616d737e60d7ca6311ff0d9c434197898a94d1d678a2506eeaa365056fe565df8bc8659f28b086048c27395000f846942f7be8361c80a4c1e7e9aaf001d0877f1cfde218945f93992ac37f3e61db2ef8a587a436a161fd210b94ecbc4fb1a97861344dad0867ca3cba2b860411f086048c27395000f84694ce2fd7544e0b2cc94692d4a704debef7bcb613289444abc67b4b2fba283c582387f54c9cba7c34bafa948acc2ab395ded08bb75ce85bf0f95ad2abc51ad586048c27395000f84694b8f7166496996a7da21cf1f1b04d9b3e26a3d077946770572763289aac606e4f327c2f6cc1aa3b3e3b94882d745ed97d4422ca8da1c22ec49d880c4c097286048c27395000f846942d4c407bbe49438ed859fe965b140dcf1aab71a9943ad0939e120f33518fbba04631afe7a3ed6327b194b2bbb170ca4e499a2b0f3cc85ebfa6e8c4dfcbea86048c27395000f846946bbad7cf34b5fa511d8e963dbba288b1960e75d694853b0f6c324d1f4e76c8266942337ac1b0af1a229442498946a51ca5924552ead6fc2af08b94fcba648601d1a94a2000f846944430b3230294d12c6ab2aac5c2cd68e80b16b581947b107f4976a252a6939b771202c28e64e03f52d694795811a7f214084116949fc4f53cedbf189eeab28601d1a94a2000f84694ea0a6e3c511bbd10f4519ece37dc24887e11b55d946811ca77acfb221a49393c193f3a22db829fcc8e9464feb7c04830dd9ace164fc5c52b3f5a29e5018a8601d1a94a2000f846947ae2f5b9e386cd1b50a4550696d957cb4900f03a94e83bcc5077e6b873995c24bac871b5ad856047e19464e48d4057a90b233e026c1041e6012ada897fe88601d1a94a2000f8469482012708dafc9e1b880fd083b32182b869be8e09948e5adc73a2d233a1b496ed3115464dd6c7b887509428b383d324bc9a37f4e276190796ba5a8947f5ed8601d1a94a2000f8469422b81f8e175ffde54d797fe11eb03f9e3bf75f1d94a1c3ef7ca38d8ba80cce3bfc53ebd2903ed21658942767f7447f7b9b70313d4147b795414aecea54718601d1a94a2000f8469468bf0b8b6fb4e317a0f9d6f03eaf8ce6675bc60d94675cfe570b7902623f47e7f59c9664b5f5065dcf94d84f0d2e50bcf00f2fc476e1c57f5ca2d57f625b8601d1a94a2000f846948c4d90829ce8f72d0163c1d5cf348a862d5506309485c42a7b34309bee2ed6a235f86d16f059deec5894cc2cedc53f0fa6d376336efb67e43d167169f3b78601d1a94a2000f8469435e7a025f4da968de7e4d7e4004197917f4070f194b1182abaeeb3b4d8eba7e6a4162eac7ace23d57394c4fd0d870da52e73de2dd8ded19fe3d26f43a1138601d1a94a2000f84694d6caa02bbebaebb5d7e581e4b66559e635f805ff94c07335cf083c1c46a487f0325769d88e163b653694efaff03b42e41f953a925fc43720e45fb61a19938601d1a94a20000175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbaa164736f6c6343000604000a" + }, + "0x0000000000000000000000000000000000001002": { + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b506004361061035d5760003560e01c80637942fd05116101d3578063c80d4b8f11610104578063df8079e9116100a2578063f9a2bbc71161007c578063f9a2bbc714610601578063fc3e590814610609578063fc4333cd14610611578063fd6a6879146106195761035d565b8063df8079e9146105e9578063e1c7392a146105f1578063f1fad104146105f95761035d565b8063c96be4cb116100de578063c96be4cb146105b3578063cc844b73146105c6578063dc927faf146105d9578063dcc6f156146105e15761035d565b8063c80d4b8f14610590578063c81b166214610598578063c8509d81146105a05761035d565b8063a1a11bf511610171578063aad560631161014b578063aad5606314610565578063ab51bb961461056d578063ac0af62914610575578063ac4317511461057d5761035d565b8063a1a11bf51461054d578063a78abc1614610555578063aa82dce11461055d5761035d565b8063831d65d1116101ad578063831d65d11461052257806396713da9146105355780639dc092621461053d5780639f804f5f146105455761035d565b80637942fd051461050a5780637e434d54146105125780638256ace61461051a5761035d565b806343756e5c116102ad5780635bfb49901161024b57806370fd5bad1161022557806370fd5bad146104ea578063718a8aa8146104f257806375d47a0a146104fa5780637912a65d146105025761035d565b80635bfb4990146104c757806362b72cf5146104da5780636e47b482146104e25761035d565b806350055f901161028757806350055f90146104a757806351b4dce3146104af57806351e80672146104b7578063567a372d146104bf5761035d565b806343756e5c14610482578063493279b11461048a5780634bf6c8821461049f5761035d565b8063280870281161031a57806335aa2e44116102f457806335aa2e441461043157806337c8dab914610444578063389f4f71146104655780633dffc3871461046d5761035d565b8063280870281461040157806328aa02b1146104095780633306ccca1461041c5761035d565b80630bee7a67146103625780630e2374a5146103805780631182b8751461039557806322d1e80b146103b557806323bac5a2146103ca57806327962118146103ec575b600080fd5b61036a610621565b6040516103779190613d96565b60405180910390f35b610388610626565b6040516103779190613574565b6103a86103a33660046134aa565b61062c565b60405161037791906135ac565b6103bd610692565b60405161037791906135a1565b6103dd6103d83660046131af565b61069b565b60405161037793929190613d7e565b6103ff6103fa366004613307565b6106be565b005b610388610a13565b6103ff6104173660046131e7565b610a19565b610424610a4a565b6040516103779190613d67565b61038861043f36600461347a565b610a50565b6104576104523660046131af565b610a77565b604051610377929190613d70565b610424610ace565b610475610ad4565b6040516103779190613da7565b610388610ad9565b610492610adf565b6040516103779190613d58565b610475610ae4565b610424610ae9565b610388610aef565b610388610af5565b610424610afb565b6103ff6104d53660046131af565b610b01565b610424610c0d565b610388610c13565b610475610c19565b610475610c1e565b610388610c23565b610424610c29565b610475610c2e565b610388610c33565b610457610c39565b6103ff6105303660046134aa565b610c43565b610475610d56565b610388610d5b565b610424610d61565b610388610d67565b6103bd610d6d565b610388610d76565b610388610d7c565b61036a610d82565b610424610d87565b6103ff61058b36600461335e565b610d8c565b610424611328565b61038861132d565b6103ff6105ae3660046134aa565b611333565b6103ff6105c13660046131af565b6113a4565b6103ff6105d43660046133c7565b611815565b610388611df4565b610424611dfa565b610388611dff565b6103ff611e05565b610475611e41565b610388611e46565b610475611e4c565b6103ff611e51565b61038861229a565b606481565b61200181565b606033612000146106585760405162461bcd60e51b815260040161064f90613bfb565b60405180910390fd5b60005460ff1661067a5760405162461bcd60e51b815260040161064f906136a1565b60405162461bcd60e51b815260040161064f90613cec565b60075460ff1681565b600260208190526000918252604090912080546001820154919092015460ff1683565b60005460ff166106e05760405162461bcd60e51b815260040161064f906136a1565b6006546106ed5760146006555b6008546106fb576170806008555b81511580159061070b5750805115155b6107275760405162461bcd60e51b815260040161064f90613b59565b60408051600380825260808201909252606091816020015b606081526020019060019003908161073f57905050905061076060386122a0565b8160008151811061076d57fe5b6020026020010181905250610781836122bb565b8160018151811061078e57fe5b60200260200101819052506107a2826122bb565b816002815181106107af57fe5b602002602001018190525060606107c582612311565b60408051603480825260608281019093529293509091602082018180368337019050509050815160346020830182602086016068600019fa61080657600080fd5b506014810151603482015160405163436aa28360e11b8152600090612002906386d5450690610839908690600401613574565b60206040518083038186803b15801561085157600080fd5b505afa158015610865573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088991906131cb565b6001600160a01b031614156108b05760405162461bcd60e51b815260040161064f90613671565b43600854820110156108d45760405162461bcd60e51b815260040161064f90613612565b604051631871f7d960e31b81526120029063c38fbec8906108f9908590600401613574565b600060405180830381600087803b15801561091357600080fd5b505af1158015610927573d6000803e3d6000fd5b50506040516335409f7f60e01b815261100092506335409f7f9150610950908590600401613574565b600060405180830381600087803b15801561096a57600080fd5b505af115801561097e573d6000803e3d6000fd5b50506006546040516309a99b4f60e41b815260646110028031909302049350909150639a99b4f0906109b69033908590600401613588565b602060405180830381600087803b1580156109d057600080fd5b505af11580156109e4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a089190613492565b505050505050505050565b61200581565b3361100014610a3a5760405162461bcd60e51b815260040161064f906138e4565b610a458383836123a2565b505050565b61708081565b60018181548110610a5d57fe5b6000918252602090912001546001600160a01b0316905081565b600080610a82612f96565b5050506001600160a01b0316600090815260026020818152604092839020835160608101855281548082526001830154938201849052919093015460ff16151592909301919091529091565b60055481565b600181565b61100181565b603881565b600881565b60065481565b61200681565b61200081565b60045481565b3361100014610b225760405162461bcd60e51b815260040161064f906138e4565b60005460ff16610b445760405162461bcd60e51b815260040161064f906136a1565b61200063f7a251d7600b610b5784612580565b60006040518463ffffffff1660e01b8152600401610b7793929190613db5565b600060405180830381600087803b158015610b9157600080fd5b505af1925050508015610ba2575060015b610c0a573d808015610bd0576040519150601f19603f3d011682016040523d82523d6000602084013e610bd5565b606091505b50816001600160a01b0316600080516020613ea0833981519152600083604051610c009291906135bf565b60405180910390a2505b50565b60035481565b61100581565b600281565b601081565b61100881565b603281565b600b81565b61200381565b6004546005549091565b3361200014610c645760405162461bcd60e51b815260040161064f90613bfb565b60005460ff16610c865760405162461bcd60e51b815260040161064f906136a1565b610c8e612fb9565b6000610ccf84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061264992505050565b915091508015610d165781516040517f7f0956d47419b9525356e7111652b653b530ec6f5096dccc04589bc38e62996791610d0991613d96565b60405180910390a1610d4f565b81516040517f7d45f62d17443dd4547bca8a8112c60e2385669318dc300ec61a5d2492f262e791610d4691613d96565b60405180910390a15b5050505050565b600981565b61100781565b60085481565b61100681565b60005460ff1681565b61200281565b61300081565b600081565b600481565b60005460ff16610dae5760405162461bcd60e51b815260040161064f906136a1565b3361100714610dcf5760405162461bcd60e51b815260040161064f90613a48565b610e3a84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260148152731b5a5cd9195b59585b9bdc951a1c995cda1bdb1960621b602082015291506126c99050565b15610ed55760208114610e5f5760405162461bcd60e51b815260040161064f90613870565b604080516020601f8401819004810282018101909252828152600091610e9d9185858083850183828082843760009201919091525061272392505050565b905060018110158015610eb1575060055481105b610ecd5760405162461bcd60e51b815260040161064f90613bb6565b6004556112e5565b610f3b84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e19995b1bdb9e551a1c995cda1bdb19608a1b602082015291506126c99050565b15610fd75760208114610f605760405162461bcd60e51b815260040161064f90613a96565b604080516020601f8401819004810282018101909252828152600091610f9e9185858083850183828082843760009201919091525061272392505050565b90506103e88111158015610fb3575060045481115b610fcf5760405162461bcd60e51b815260040161064f9061375a565b6005556112e5565b61104484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601681527566656c6f6e79536c617368526577617264526174696f60501b602082015291506126c99050565b156110de57602081146110695760405162461bcd60e51b815260040161064f906139d0565b604080516020601f84018190048102820181019092528281526000916110a79185858083850183828082843760009201919091525061272392505050565b9050600a81101580156110ba5750606481105b6110d65760405162461bcd60e51b815260040161064f90613ad8565b6006556112e5565b61115284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f656e61626c654d616c6963696f7573566f7465536c6173680000000000000000602082015291506126c99050565b156111c957602081146111775760405162461bcd60e51b815260040161064f9061378f565b604080516020601f84018190048102820181019092528281526111b3919084848083850183828082843760009201919091525061272892505050565b6007805460ff19169115159190911790556112e5565b61123084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601081526f66656c6f6e79536c61736853636f706560801b602082015291506126c99050565b156112cd57602081146112555760405162461bcd60e51b815260040161064f9061395f565b604080516020601f84018190048102820181019092528281526000916112939185858083850183828082843760009201919091525061272392505050565b905061708081101580156112a95750620d2f0081105b6112c55760405162461bcd60e51b815260040161064f906136d8565b6008556112e5565b60405162461bcd60e51b815260040161064f90613c97565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a8484848460405161131a94939291906135e0565b60405180910390a150505050565b609681565b61100281565b33612000146113545760405162461bcd60e51b815260040161064f90613bfb565b60005460ff166113765760405162461bcd60e51b815260040161064f906136a1565b6040517f07db600eebe2ac176be8dcebad61858c245a4961bb32ca2aa3d159b09aa0810e90600090a1505050565b3341146113c35760405162461bcd60e51b815260040161064f90613c4a565b60005460ff166113e55760405162461bcd60e51b815260040161064f906136a1565b60035443116114065760405162461bcd60e51b815260040161064f90613d23565b3a156114245760405162461bcd60e51b815260040161064f906139a2565b60405163155853f360e21b8152611000906355614fcc90611449908490600401613574565b60206040518083038186803b15801561146157600080fd5b505afa158015611475573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149991906132eb565b6114a25761180e565b6114aa612f96565b506001600160a01b0381166000908152600260208181526040928390208351606081018552815481526001820154928101929092529091015460ff16158015928201929092529061150557602081018051600101905261155e565b60016040820181905260208201819052805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0384161790555b43815260055460208201518161157057fe5b0661173c57600060208201526040516335409f7f60e01b8152611000906335409f7f906115a1908590600401613574565b600060405180830381600087803b1580156115bb57600080fd5b505af11580156115cf573d6000803e3d6000fd5b505060405163436aa28360e11b81526000925061200291506386d54506906115fb908690600401613574565b60206040518083038186803b15801561161357600080fd5b505afa158015611627573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061164b91906131cb565b6001600160a01b03161461166e5761166982826020015160006123a2565b611737565b61200063f7a251d7600b61168185612580565b60006040518463ffffffff1660e01b81526004016116a193929190613db5565b600060405180830381600087803b1580156116bb57600080fd5b505af19250505080156116cc575060015b611737573d8080156116fa576040519150601f19603f3d011682016040523d82523d6000602084013e6116ff565b606091505b50826001600160a01b0316600080516020613ea083398151915283602001518360405161172d9291906135bf565b60405180910390a2505b6117a8565b60045481602001518161174b57fe5b066117a8576040516375abf10160e11b81526110009063eb57e20290611775908590600401613574565b600060405180830381600087803b15801561178f57600080fd5b505af11580156117a3573d6000803e3d6000fd5b505050505b6001600160a01b0382166000818152600260208181526040808420865181559186015160018301558581015191909201805460ff1916911515919091179055517fddb6012116e51abf5436d956a4f0ebd927e92c576ff96d7918290c8782291e3e9190a2505b5043600355565b60005460ff166118375760405162461bcd60e51b815260040161064f906136a1565b60075460ff166118595760405162461bcd60e51b815260040161064f9061363c565b6006546118665760146006555b600854611874576170806008555b60085481516040015143910111801561189857504360085482602001516040015101115b6118b45760405162461bcd60e51b815260040161064f90613cbe565b8060200151602001518160000151602001511480156118e25750806020015160600151816000015160600151145b156118ff5760405162461bcd60e51b815260040161064f906138b7565b80516040810151905110801561191e5750602081015160408101519051105b61193a5760405162461bcd60e51b815260040161064f90613839565b60208101515181515110801561195f5750806000015160400151816020015160400151105b8061198a575080515160208201515110801561198a5750806020015160400151816000015160400151105b806119a45750806020015160400151816000015160400151145b6119c05760405162461bcd60e51b815260040161064f90613723565b604080820151905163ea321e4960e01b81526110009163ea321e49916119e991906004016135ac565b60206040518083038186803b158015611a0157600080fd5b505afa158015611a15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3991906132eb565b611a555760405162461bcd60e51b815260040161064f90613a19565b611a6781600001518260400151612750565b8015611a805750611a8081602001518260400151612750565b611a9c5760405162461bcd60e51b815260040161064f906137da565b6060806110006001600160a01b0316633b071dcc6040518163ffffffff1660e01b815260040160006040518083038186803b158015611ada57600080fd5b505afa158015611aee573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611b169190810190613228565b9150915060005b8151811015611c5357611b47828281518110611b3557fe5b60200260200101518560400151612928565b15611c4b576006546040516309a99b4f60e41b815260646110028031909302049190639a99b4f090611b7f9033908590600401613588565b602060405180830381600087803b158015611b9957600080fd5b505af1158015611bad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bd19190613492565b506110006001600160a01b03166335409f7f858481518110611bef57fe5b60200260200101516040518263ffffffff1660e01b8152600401611c139190613574565b600060405180830381600087803b158015611c2d57600080fd5b505af1158015611c41573d6000803e3d6000fd5b5050505050611c53565b600101611b1d565b5060408084015190516317b4f35360e01b8152600091612002916317b4f35391611c7f916004016135ac565b60206040518083038186803b158015611c9757600080fd5b505afa158015611cab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ccf91906131cb565b6001600160a01b031614611d3d576040808401519051630e9fbf5160e01b815261200291630e9fbf5191611d0691906004016135ac565b600060405180830381600087803b158015611d2057600080fd5b505af1158015611d34573d6000803e3d6000fd5b50505050610a45565b6120006001600160a01b031663f7a251d7600b611d5d866040015161298c565b60006040518463ffffffff1660e01b8152600401611d7d93929190613db5565b600060405180830381600087803b158015611d9757600080fd5b505af1158015611dab573d6000803e3d6000fd5b505050506000611dc0846040015160006129c7565b60405190915081907f7b78aadacff901d8b63d0dba4f86283d4db8aef27f9ed70413dd860f1c9532b690600090a250505050565b61100381565b601481565b61200481565b60005460ff1615611e285760405162461bcd60e51b815260040161064f90613b22565b603260045560966005556000805460ff19166001179055565b601181565b61100081565b600381565b3361100014611e725760405162461bcd60e51b815260040161064f906138e4565b60005460ff16611e945760405162461bcd60e51b815260040161064f906136a1565b600154611ea057612298565b600154600090600019015b80821161226c576000805b82841015611fcf57611ec6612f96565b6002600060018781548110611ed757fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff161515908201526005549091506004900481602001511115611fb957600460055481611f4457fe5b04816020015103816020018181525050806002600060018881548110611f6657fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208351815591830151600183015591909101516002909101805460ff1916911515919091179055611fc3565b6001925050611fcf565b50836001019350611eb6565b82841161216657611fde612f96565b6002600060018681548110611fef57fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff1615159082015260055490915060049004816020015111156120d75760046005548161205c57fe5b0481602001510381602001818152505080600260006001878154811061207e57fe5b6000918252602080832091909101546001600160a01b03168352828101939093526040918201902083518155918301516001808401919091559201516002909101805460ff191691151591909117905591506121669050565b60026000600186815481106120e857fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff1916905580548061212c57fe5b600082815260209020810160001990810180546001600160a01b0319169055019055836121595750612166565b5060001990920191611fcf565b8180156121705750805b1561224f57600260006001868154811061218657fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff191690558054849081106121cd57fe5b600091825260209091200154600180546001600160a01b0390921691869081106121f357fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600180548061222c57fe5b600082815260209020810160001990810180546001600160a01b03191690550190555b8261225b57505061226c565b505060019091019060001901611eab565b6040517fcfdb3b6ccaeccbdc68be3c59c840e3b3c90f0a7c491f5fff1cf56cfda200dd9c90600090a150505b565b61100481565b60606122b36122ae836129e3565b6122bb565b90505b919050565b6060815160011480156122ed5750607f60f81b826000815181106122db57fe5b01602001516001600160f81b03191611155b156122f95750806122b6565b6122b361230b8351608060ff16612ac9565b83612b9b565b606081516000141561233257506040805160008152602081019091526122b6565b60608260008151811061234157fe5b602002602001015190506000600190505b8351811015612382576123788285838151811061236b57fe5b6020026020010151612b9b565b9150600101612352565b5061239b612395825160c060ff16612ac9565b82612b9b565b9392505050565b80156123cd576040516375cc7d8960e01b8152612002906375cc7d8990611d06908690600401613574565b6040516375cc7d8960e01b8152612002906375cc7d89906123f2908690600401613574565b600060405180830381600087803b15801561240c57600080fd5b505af192505050801561241d575060015b610a45576040516000815260443d1015612439575060006124d6565b60046000803e60005160e01c6308c379a0811461245a5760009150506124d6565b60043d036004833e81513d602482011167ffffffffffffffff82111715612486576000925050506124d6565b808301805167ffffffffffffffff8111156124a85760009450505050506124d6565b8060208301013d86018111156124c6576000955050505050506124d6565b601f01601f191660405250925050505b806124e15750612518565b836001600160a01b0316600080516020613ea0833981519152848360405161250a9291906135bf565b60405180910390a25061257b565b3d808015612542576040519150601f19603f3d011682016040523d82523d6000602084013e612547565b606091505b50836001600160a01b0316600080516020613ea083398151915284836040516125719291906135bf565b60405180910390a2505b610a45565b60408051600480825260a08201909252606091829190816020015b606081526020019060019003908161259b5790505090506125c4836001600160a01b0316612c18565b816000815181106125d157fe5b60200260200101819052506125e5436122a0565b816001815181106125f257fe5b602090810291909101015261260760386122a0565b8160028151811061261457fe5b6020026020010181905250612628426122a0565b8160038151811061263557fe5b602002602001018190525061239b81612311565b612651612fb9565b600061265b612fb9565b612663612fcb565b61267461266f86612c3b565b612c60565b90506000805b61268383612caa565b156126bc57806126af5761269e61269984612ccb565b612d19565b63ffffffff168452600191506126b4565b6126bc565b60010161267a565b5091935090915050915091565b6000816040516020016126dc9190613558565b60405160208183030381529060405280519060200120836040516020016127039190613558565b604051602081830303815290604052805190602001201490505b92915050565b015190565b8082015160009060ff811615612742576001915081612748565b60009150815b505092915050565b60408051600480825260a0820190925260009160609190816020015b606081526020019060019003908161276c5750506040805160208082528183019092529192506060919080820181803683370190505090506127b185600001516122a0565b826000815181106127be57fe5b60200260200101819052506127d96020866020015183612d9b565b6127e2816122bb565b826001815181106127ef57fe5b602002602001018190525061280785604001516122a0565b8260028151811061281457fe5b602002602001018190525061282f6020866060015183612d9b565b612838816122bb565b8260038151811061284557fe5b602002602001018190525061286b602061285e84612311565b8051906020012083612d9b565b6040805160b080825260e0820190925260609160208201818036833701905050905061289b818360006020612dab565b6128ad81876080015160206060612dab565b6128bb818660806030612dab565b604080516001808252818301909252606091602082018180368337019050509050815160016020830182602086016066600019fa6128f857600080fd5b506001612906826000612dfe565b60ff161461291b57600094505050505061271d565b5060019695505050505050565b8151815160009160019181148083146129445760009250612982565b600160208701838101602088015b60028483851001141561297d5780518351146129715760009650600093505b60209283019201612952565b505050505b5090949350505050565b60408051600480825260a08201909252606091829190816020015b60608152602001906001900390816129a75790505090506125c4836122bb565b600081602001835110156129da57600080fd5b50016020015190565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416612a2757506018612a4b565b6fffffffffffffffffffffffffffffffff198416612a4757506010612a4b565b5060005b6020811015612a8157818181518110612a6057fe5b01602001516001600160f81b03191615612a7957612a81565b600101612a4b565b60008160200390506060816040519080825280601f01601f191660200182016040528015612ab6576020820181803683370190505b5080830196909652508452509192915050565b6060680100000000000000008310612af35760405162461bcd60e51b815260040161064f90613811565b60408051600180825281830190925260609160208201818036833701905050905060378411612b4d5782840160f81b81600081518110612b2f57fe5b60200101906001600160f81b031916908160001a905350905061271d565b6060612b58856129e3565b90508381510160370160f81b82600081518110612b7157fe5b60200101906001600160f81b031916908160001a905350612b928282612b9b565b95945050505050565b6060806040519050835180825260208201818101602087015b81831015612bcc578051835260209283019201612bb4565b50855184518101855292509050808201602086015b81831015612bf9578051835260209283019201612be1565b508651929092011591909101601f01601f191660405250905092915050565b60408051600560a21b831860148201526034810190915260609061239b816122bb565b612c43612feb565b506040805180820190915281518152602082810190820152919050565b612c68612fcb565b612c7182612e1a565b612c7a57600080fd5b6000612c898360200151612e54565b60208085015160408051808201909152868152920190820152915050919050565b6000612cb4612feb565b505080518051602091820151919092015191011190565b612cd3612feb565b612cdc82612caa565b612ce557600080fd5b60208201516000612cf582612eb7565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590612d2e57508151602110155b612d3757600080fd5b6000612d468360200151612e54565b90508083600001511015612d6c5760405162461bcd60e51b815260040161064f90613b7f565b825160208085015183018051928490039291831015612d9257826020036101000a820491505b50949350505050565b9091018181526020918201910152565b60005b81811015610d4f57838181518110612dc257fe5b602001015160f81c60f81b858480600101955081518110612ddf57fe5b60200101906001600160f81b031916908160001a905350600101612dae565b60008160010183511015612e1157600080fd5b50016001015190565b8051600090612e2b575060006122b6565b6020820151805160001a9060c0821015612e4a576000925050506122b6565b5060019392505050565b8051600090811a6080811015612e6e5760009150506122b6565b60b8811080612e89575060c08110801590612e89575060f881105b15612e985760019150506122b6565b60c0811015612eac5760b5190190506122b6565b60f5190190506122b6565b80516000908190811a6080811015612ed25760019150612f8f565b60b8811015612ee757607e1981019150612f8f565b60c0811015612f3857600060b78203600186019550806020036101000a865104915060018101820193505080831015612f325760405162461bcd60e51b815260040161064f90613934565b50612f8f565b60f8811015612f4d5760be1981019150612f8f565b600060f78203600186019550806020036101000a8651049150600181018201935050808310156127485760405162461bcd60e51b815260040161064f90613934565b5092915050565b604051806060016040528060008152602001600081526020016000151581525090565b60408051602081019091526000815290565b6040518060400160405280612fde612feb565b8152602001600081525090565b604051806040016040528060008152602001600081525090565b600082601f830112613015578081fd5b815161302861302382613e08565b613de1565b818152915060208083019084810160005b8481101561309e578151870188603f82011261305457600080fd5b8381015161306461302382613e28565b81815260408b8184860101111561307a57600080fd5b61308983888401838701613e4c565b50865250509282019290820190600101613039565b505050505092915050565b60008083601f8401126130ba578182fd5b50813567ffffffffffffffff8111156130d1578182fd5b6020830191508360208285010111156130e957600080fd5b9250929050565b600082601f830112613100578081fd5b813561310e61302382613e28565b915080825283602082850101111561312557600080fd5b8060208401602084013760009082016020015292915050565b600060a0828403121561314f578081fd5b61315960a0613de1565b905081358152602082013560208201526040820135604082015260608201356060820152608082013567ffffffffffffffff81111561319757600080fd5b6131a3848285016130f0565b60808301525092915050565b6000602082840312156131c0578081fd5b813561239b81613e7c565b6000602082840312156131dc578081fd5b815161239b81613e7c565b6000806000606084860312156131fb578182fd5b833561320681613e7c565b925060208401359150604084013561321d81613e91565b809150509250925092565b6000806040838503121561323a578182fd5b825167ffffffffffffffff80821115613251578384fd5b81850186601f820112613262578485fd5b8051925061327261302384613e08565b80848252602080830192508084018a828389028701011115613292578889fd5b8894505b868510156132bd5780516132a981613e7c565b845260019490940193928101928101613296565b5088015190965093505050808211156132d4578283fd5b506132e185828601613005565b9150509250929050565b6000602082840312156132fc578081fd5b815161239b81613e91565b60008060408385031215613319578182fd5b823567ffffffffffffffff80821115613330578384fd5b61333c868387016130f0565b93506020850135915080821115613351578283fd5b506132e1858286016130f0565b60008060008060408587031215613373578182fd5b843567ffffffffffffffff8082111561338a578384fd5b613396888389016130a9565b909650945060208701359150808211156133ae578384fd5b506133bb878288016130a9565b95989497509550505050565b6000602082840312156133d8578081fd5b813567ffffffffffffffff808211156133ef578283fd5b81840160608187031215613401578384fd5b61340b6060613de1565b925080358281111561341b578485fd5b6134278782840161313e565b84525060208101358281111561343b578485fd5b6134478782840161313e565b60208501525060408101358281111561345e578485fd5b61346a878284016130f0565b6040850152509195945050505050565b60006020828403121561348b578081fd5b5035919050565b6000602082840312156134a3578081fd5b5051919050565b6000806000604084860312156134be578081fd5b833560ff811681146134ce578182fd5b9250602084013567ffffffffffffffff8111156134e9578182fd5b6134f5868287016130a9565b9497909650939450505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008151808452613544816020860160208601613e4c565b601f01601f19169290920160200192915050565b6000825161356a818460208701613e4c565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b60006020825261239b602083018461352c565b6000838252604060208301526135d8604083018461352c565b949350505050565b6000604082526135f4604083018688613502565b8281036020840152613607818587613502565b979650505050505050565b60208082526010908201526f195d9a59195b98d9481d1bdbc81bdb1960821b604082015260600190565b6020808252818101527f6d616c6963696f757320766f746520736c617368206e6f7420656e61626c6564604082015260600190565b6020808252601690820152751d985b1a59185d1bdc881b9bdd081b5a59dc985d195960521b604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252602b908201527f746865206d616c6963696f757320766f746520736c6173682073636f7065206f60408201526a7574206f662072616e676560a81b606082015260800190565b6020808252601a908201527f6e6f2076696f6c6174696f6e206f6620766f74652072756c6573000000000000604082015260600190565b6020808252818101527f7468652066656c6f6e795468726573686f6c64206f7574206f662072616e6765604082015260600190565b6020808252602b908201527f6c656e677468206f6620656e61626c654d616c6963696f7573566f7465536c6160408201526a0e6d040dad2e6dac2e8c6d60ab1b606082015260800190565b60208082526017908201527f766572696679207369676e6174757265206661696c6564000000000000000000604082015260600190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526019908201527f7372634e756d20626967676572207468616e207461724e756d00000000000000604082015260600190565b60208082526027908201527f6c656e677468206f66206d697364656d65616e6f725468726573686f6c64206d6040820152660d2e6dac2e8c6d60cb1b606082015260800190565b60208082526013908201527274776f206964656e746963616c20766f74657360681b604082015260600190565b60208082526030908201527f746865206d6573736167652073656e646572206d7573742062652076616c696460408201526f185d1bdc94d95d0818dbdb9d1c9858dd60821b606082015260800190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b60208082526023908201527f6c656e677468206f662066656c6f6e79536c61736853636f7065206d69736d616040820152620e8c6d60eb1b606082015260800190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b60208082526029908201527f6c656e677468206f662066656c6f6e79536c617368526577617264526174696f604082015268040dad2e6dac2e8c6d60bb1b606082015260800190565b6020808252601590820152741d9bdd195059191c881a5cc81b9bdd08199bdd5b99605a1b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526022908201527f6c656e677468206f662066656c6f6e795468726573686f6c64206d69736d61746040820152610c6d60f31b606082015260800190565b6020808252602a908201527f7468652066656c6f6e7920736c6173682072657761726420726174696f206f7560408201526974206f662072616e676560b01b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b6020808252600c908201526b32b6b83a3c903432b0b232b960a11b604082015260600190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526025908201527f746865206d697364656d65616e6f725468726573686f6c64206f7574206f662060408201526472616e676560d81b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b6020808252601490820152731d185c99d95d08189b1bd8dac81d1bdbc81bdb1960621b604082015260600190565b6020808252601e908201527f7265636569766520756e65787065637465642073796e207061636b6167650000604082015260600190565b6020808252818101527f63616e206e6f7420736c61736820747769636520696e206f6e6520626c6f636b604082015260600190565b61ffff91909116815260200190565b90815260200190565b918252602082015260400190565b92835260208301919091521515604082015260600190565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff8516825260606020830152613dd1606083018561352c565b9050826040830152949350505050565b60405181810167ffffffffffffffff81118282101715613e0057600080fd5b604052919050565b600067ffffffffffffffff821115613e1e578081fd5b5060209081020190565b600067ffffffffffffffff821115613e3e578081fd5b50601f01601f191660200190565b60005b83811015613e67578181015183820152602001613e4f565b83811115613e76576000848401525b50505050565b6001600160a01b0381168114610c0a57600080fd5b8015158114610c0a57600080fdfed7bc86ff5d08c8ab043edec743302aba2520e6635172a428bc956721db9e2d1ca164736f6c6343000604000a" + } + } + } } } \ No newline at end of file diff --git a/params/chainspecs/chapel.json b/params/chainspecs/chapel.json index 82071b8ffa3..b91e21964b6 100644 --- a/params/chainspecs/chapel.json +++ b/params/chainspecs/chapel.json @@ -36,6 +36,280 @@ "DBPath": "", "InMemory": false, "period": 3, - "epoch": 200 + "epoch": 200, + "blockAlloc": { + "1010000": { + "0x0000000000000000000000000000000000001000": { + "balance": "0x0", + "code": "0x60806040526004361061027d5760003560e01c80639dc092621161014f578063c8509d81116100c1578063eb57e2021161007a578063eb57e20214610940578063eda5868c14610973578063f340fa0114610988578063f9a2bbc7146109ae578063fc3e5908146109c3578063fd6a6879146109d85761027d565b8063c8509d8114610609578063d86222d5146108d7578063daacdb66146108ec578063dc927faf14610901578063e086c7b114610916578063e1c7392a1461092b5761027d565b8063ab51bb9611610113578063ab51bb961461074a578063ac4317511461075f578063ad3c9da61461082a578063b7ab4db51461085d578063bf9f49951461041b578063c81b1662146108c25761027d565b80639dc09262146106cd578063a1a11bf5146106e2578063a5422d5c146106f7578063a78abc161461070c578063aaf5eb68146107355761027d565b80635667515a116101f35780637942fd05116101ac5780637942fd05146105df57806381650b62146105f4578063831d65d114610609578063853230aa1461068e57806386249882146106a357806396713da9146106b85761027d565b80635667515a146105005780635d77156c146105155780636969a25c1461052a5780636e47b482146105a057806370fd5bad146105b557806375d47a0a146105ca5761027d565b80633dffc387116102455780633dffc3871461041b57806343756e5c14610446578063493279b1146104775780634bf6c882146104a357806351e80672146104b8578063565c56b3146104cd5761027d565b80630bee7a67146102825780631182b875146102b05780631ff18069146103aa578063219f22d5146103d157806335409f7f146103e6575b600080fd5b34801561028e57600080fd5b506102976109ed565b6040805163ffffffff9092168252519081900360200190f35b3480156102bc57600080fd5b50610335600480360360408110156102d357600080fd5b60ff8235169190810190604081016020820135600160201b8111156102f757600080fd5b82018360208201111561030957600080fd5b803590602001918460018302840111600160201b8311171561032a57600080fd5b5090925090506109f2565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561036f578181015183820152602001610357565b50505050905090810190601f16801561039c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103b657600080fd5b506103bf610bdf565b60408051918252519081900360200190f35b3480156103dd57600080fd5b50610297610be5565b3480156103f257600080fd5b506104196004803603602081101561040957600080fd5b50356001600160a01b0316610bea565b005b34801561042757600080fd5b50610430610efe565b6040805160ff9092168252519081900360200190f35b34801561045257600080fd5b5061045b610f03565b604080516001600160a01b039092168252519081900360200190f35b34801561048357600080fd5b5061048c610f09565b6040805161ffff9092168252519081900360200190f35b3480156104af57600080fd5b50610430610f0e565b3480156104c457600080fd5b5061045b610f13565b3480156104d957600080fd5b506103bf600480360360208110156104f057600080fd5b50356001600160a01b0316610f19565b34801561050c57600080fd5b50610430610f6b565b34801561052157600080fd5b50610297610f70565b34801561053657600080fd5b506105546004803603602081101561054d57600080fd5b5035610f75565b604080516001600160a01b039788168152958716602087015293909516848401526001600160401b0390911660608401521515608083015260a082019290925290519081900360c00190f35b3480156105ac57600080fd5b5061045b610fd9565b3480156105c157600080fd5b50610430610fdf565b3480156105d657600080fd5b5061045b610fe4565b3480156105eb57600080fd5b50610430610fea565b34801561060057600080fd5b50610297610fef565b34801561061557600080fd5b506104196004803603604081101561062c57600080fd5b60ff8235169190810190604081016020820135600160201b81111561065057600080fd5b82018360208201111561066257600080fd5b803590602001918460018302840111600160201b8311171561068357600080fd5b509092509050610ff4565b34801561069a57600080fd5b506103bf6110a7565b3480156106af57600080fd5b506103bf6110ad565b3480156106c457600080fd5b506104306110b3565b3480156106d957600080fd5b5061045b6110b8565b3480156106ee57600080fd5b5061045b6110be565b34801561070357600080fd5b506103356110c4565b34801561071857600080fd5b506107216110e3565b604080519115158252519081900360200190f35b34801561074157600080fd5b506103bf6110ec565b34801561075657600080fd5b50610297610f6b565b34801561076b57600080fd5b506104196004803603604081101561078257600080fd5b810190602081018135600160201b81111561079c57600080fd5b8201836020820111156107ae57600080fd5b803590602001918460018302840111600160201b831117156107cf57600080fd5b919390929091602081019035600160201b8111156107ec57600080fd5b8201836020820111156107fe57600080fd5b803590602001918460018302840111600160201b8311171561081f57600080fd5b5090925090506110f5565b34801561083657600080fd5b506103bf6004803603602081101561084d57600080fd5b50356001600160a01b031661139c565b34801561086957600080fd5b506108726113ae565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156108ae578181015183820152602001610896565b505050509050019250505060405180910390f35b3480156108ce57600080fd5b5061045b6114d4565b3480156108e357600080fd5b506103bf6114da565b3480156108f857600080fd5b506103bf6114e6565b34801561090d57600080fd5b5061045b6114ec565b34801561092257600080fd5b506103bf6114f2565b34801561093757600080fd5b506104196114f7565b34801561094c57600080fd5b506104196004803603602081101561096357600080fd5b50356001600160a01b03166116fa565b34801561097f57600080fd5b506102976118c9565b6104196004803603602081101561099e57600080fd5b50356001600160a01b03166118ce565b3480156109ba57600080fd5b5061045b611b04565b3480156109cf57600080fd5b50610430611b0a565b3480156109e457600080fd5b5061045b611b0f565b606481565b60005460609060ff16610a48576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b3361200014610a885760405162461bcd60e51b815260040180806020018281038252602f8152602001806140de602f913960400191505060405180910390fd5b610a90613d69565b6000610ad185858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611b1592505050565b9150915080610aed57610ae46064611c6e565b92505050610bd8565b815160009060ff16610b0d57610b068360200151611ccf565b9050610ba4565b825160ff1660011415610ba057826020015151600114610b7a577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2604051808060200182810382526025815260200180613e6c6025913960400191505060405180910390a1506067610b9b565b610b068360200151600081518110610b8e57fe5b6020026020010151612ad5565b610ba4565b5060655b63ffffffff8116610bc95750506040805160008152602081019091529150610bd89050565b610bd281611c6e565b93505050505b9392505050565b60035481565b606881565b3361100114610c2a5760405162461bcd60e51b815260040180806020018281038252602981526020018061413a6029913960400191505060405180910390fd5b6001600160a01b03811660009081526004602052604090205480610c4e5750610efb565b600181039050600060018281548110610c6357fe5b60009182526020909120600360049092020101546001549091506000190180610cb257600060018481548110610c9557fe5b906000526020600020906004020160030181905550505050610efb565b6040805183815290516001600160a01b038616917f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a70919081900360200190a26001600160a01b038416600090815260046020526040812055600154600019018314610e3457600180546000198101908110610d2957fe5b906000526020600020906004020160018481548110610d4457fe5b6000918252602082208354600492830290910180546001600160a01b03199081166001600160a01b0393841617825560018087015481840180548416918616919091179055600280880180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b199094169390931790556003948501549401939093558254868401939192919087908110610e0957fe5b600091825260208083206004909202909101546001600160a01b031683528201929092526040019020555b6001805480610e3f57fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b03191690556003018190559155818381610e9257fe5b0490508015610ef65760015460005b81811015610ef3578260018281548110610eb757fe5b9060005260206000209060040201600301540160018281548110610ed757fe5b6000918252602090912060036004909202010155600101610ea1565b50505b505050505b50565b600181565b61100181565b606081565b600881565b61200081565b6001600160a01b03811660009081526004602052604081205480610f41576000915050610f66565b600180820381548110610f5057fe5b9060005260206000209060040201600301549150505b919050565b600081565b606781565b60018181548110610f8257fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b61100881565b600b81565b606681565b33612000146110345760405162461bcd60e51b815260040180806020018281038252602f8152602001806140de602f913960400191505060405180910390fd5b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a1505050565b6103e881565b60025481565b600981565b61100781565b61100681565b604051806101e001604052806101b78152602001613f066101b7913981565b60005460ff1681565b6402540be40081565b60005460ff16611148576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b33611007146111885760405162461bcd60e51b815260040180806020018281038252602e815260200180613e91602e913960400191505060405180910390fd5b6111f284848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b60208201529150612c4c9050565b156112cd57602081146112365760405162461bcd60e51b8152600401808060200182810382526026815260200180613ee06026913960400191505060405180910390fd5b604080516020601f840181900481028201810190925282815260009161127491858580838501838280828437600092019190915250612d3492505050565b90506064811015801561128a5750620186a08111155b6112c55760405162461bcd60e51b8152600401808060200182810382526027815260200180613e456027913960400191505060405180910390fd5b60025561130a565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b60046020526000908152604090205481565b6001546060906000805b828110156113ff57600181815481106113cd57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166113f7576001909101905b6001016113b8565b5060608160405190808252806020026020018201604052801561142c578160200160208202803683370190505b50600092509050815b838110156114cc576001818154811061144a57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166114c4576001818154811061147a57fe5b600091825260209091206004909102015482516001600160a01b03909116908390859081106114a557fe5b6001600160a01b03909216602092830291909101909101526001909201915b600101611435565b509250505090565b61100281565b67016345785d8a000081565b60055481565b61100381565b602981565b60005460ff161561154f576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b611557613d69565b600061157d604051806101e001604052806101b78152602001613f066101b79139611b15565b91509150806115bd5760405162461bcd60e51b81526004018080602001828103825260218152602001806140bd6021913960400191505060405180910390fd5b60005b8260200151518110156116e2576001836020015182815181106115df57fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a0909301516003909301929092559186015180519185019391859081106116b557fe5b602090810291909101810151516001600160a01b03168252810191909152604001600020556001016115c0565b50506103e8600255506000805460ff19166001179055565b336110011461173a5760405162461bcd60e51b815260040180806020018281038252602981526020018061413a6029913960400191505060405180910390fd5b6001600160a01b0381166000908152600460205260409020548061175e5750610efb565b60018103905060006001828154811061177357fe5b906000526020600020906004020160030154905060006001838154811061179657fe5b906000526020600020906004020160030181905550600060018080549050039050836001600160a01b03167f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d836040518082815260200191505060405180910390a28061180557505050610efb565b600081838161181057fe5b0490508015610ef65760005b8481101561186e57816001828154811061183257fe5b906000526020600020906004020160030154016001828154811061185257fe5b600091825260209091206003600490920201015560010161181c565b50600180549085015b81811015610ef357826001828154811061188d57fe5b90600052602060002090600402016003015401600182815481106118ad57fe5b6000918252602090912060036004909202010155600101611877565b606581565b33411461190c5760405162461bcd60e51b815260040180806020018281038252602d81526020018061410d602d913960400191505060405180910390fd5b60005460ff1661195f576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b600034116119ac576040805162461bcd60e51b81526020600482015260156024820152746465706f7369742076616c7565206973207a65726f60581b604482015290519081900360640190fd5b6001600160a01b03811660009081526004602052604090205434908015611abf5760006001808303815481106119de57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff1615611a49576040805184815290516001600160a01b038616917ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4919081900360200190a2611ab9565b600354611a5c908463ffffffff612d3916565b6003908155810154611a74908463ffffffff612d3916565b60038201556040805184815290516001600160a01b038616917f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc055919081900360200190a25b50611aff565b6040805183815290516001600160a01b038516917ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4919081900360200190a25b505050565b61100081565b600381565b61100481565b611b1d613d69565b6000611b27613d69565b611b2f613d81565b611b40611b3b86612d93565b612db8565b90506000805b611b4f83612e02565b15611c605780611b7457611b6a611b6584612e23565b612e71565b60ff168452611c58565b8060011415611c53576060611b90611b8b85612e23565b612f28565b90508051604051908082528060200260200182016040528015611bcd57816020015b611bba613da1565b815260200190600190039081611bb25790505b50602086015260005b8151811015611c4857611be7613da1565b6000611c05848481518110611bf857fe5b6020026020010151612ff9565b9150915080611c2257876000995099505050505050505050611c69565b8188602001518481518110611c3357fe5b60209081029190910101525050600101611bd6565b506001925050611c58565b611c60565b600101611b46565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b6060815260200190600190039081611c88579050509050611cae8363ffffffff166130d6565b81600081518110611cbb57fe5b6020026020010181905250610bd8816130e9565b6000806060611cdd84613173565b9150915081611d8a577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2816040518080602001828103825283818151815260200191508051906020019080838360005b83811015611d45578181015183820152602001611d2d565b50505050905090810190601f168015611d725780820380516001836020036101000a031916815260200191505b509250505060405180910390a1606692505050610f66565b600080805b600154811015611e075767016345785d8a000060018281548110611daf57fe5b90600052602060002090600402016003015410611dd157600190920191611dff565b600060018281548110611de057fe5b9060005260206000209060040201600301541115611dff576001909101905b600101611d8f565b50606082604051908082528060200260200182016040528015611e34578160200160208202803683370190505b509050606083604051908082528060200260200182016040528015611e63578160200160208202803683370190505b509050606084604051908082528060200260200182016040528015611e92578160200160208202803683370190505b509050606085604051908082528060200260200182016040528015611ec1578160200160208202803683370190505b5090506000606086604051908082528060200260200182016040528015611ef2578160200160208202803683370190505b509050606087604051908082528060200260200182016040528015611f21578160200160208202803683370190505b509050600098506000975060608d905060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b158015611f6e57600080fd5b505afa158015611f82573d6000803e3d6000fd5b505050506040513d6020811015611f9857600080fd5b5051905067016345785d8a000081111561200d577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2604051808060200182810382526021815260200180613ebf6021913960400191505060405180910390a160689d5050505050505050505050505050610f66565b60005b6001548110156122805767016345785d8a00006001828154811061203057fe5b906000526020600020906004020160030154106121b6576001818154811061205457fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b03168a8d8151811061208557fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be400600183815481106120ba57fe5b906000526020600020906004020160030154816120d357fe5b06600183815481106120e157fe5b906000526020600020906004020160030154039050612109838261325590919063ffffffff16565b8a8e8151811061211557fe5b6020026020010181815250506001828154811061212e57fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316888e8151811061215f57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081898e8151811061218c57fe5b60209081029190910101526121a7878263ffffffff612d3916565b6001909d019c96506122789050565b6000600182815481106121c557fe5b906000526020600020906004020160030154111561227857600181815481106121ea57fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316858c8151811061221b57fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506001818154811061224857fe5b906000526020600020906004020160030154848c8151811061226657fe5b60209081029190910101526001909a01995b600101612010565b50600085156126be576110046001600160a01b0316636e056520878c8c8b60025442016040518663ffffffff1660e01b815260040180806020018060200180602001856001600160401b03166001600160401b03168152602001848103845288818151815260200191508051906020019060200280838360005b838110156123125781810151838201526020016122fa565b50505050905001848103835287818151815260200191508051906020019060200280838360005b83811015612351578181015183820152602001612339565b50505050905001848103825286818151815260200191508051906020019060200280838360005b83811015612390578181015183820152602001612378565b505050509050019750505050505050506020604051808303818588803b1580156123b957600080fd5b505af1935050505080156123df57506040513d60208110156123da57600080fd5b505160015b61261a576040516000815260443d10156123fb57506000612496565b60046000803e60005160e01c6308c379a0811461241c576000915050612496565b60043d036004833e81513d60248201116001600160401b038211171561244757600092505050612496565b80830180516001600160401b03811115612468576000945050505050612496565b8060208301013d860181111561248657600095505050505050612496565b601f01601f191660405250925050505b806124a15750612545565b60019150867fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280826040518080602001828103825283818151815260200191508051906020019080838360005b838110156125055781810151838201526020016124ed565b50505050905090810190601f1680156125325780820380516001836020036101000a031916815260200191505b509250505060405180910390a250612615565b3d80801561256f576040519150601f19603f3d011682016040523d82523d6000602084013e612574565b606091505b5060019150867fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a45826040518080602001828103825283818151815260200191508051906020019080838360005b838110156125d95781810151838201526020016125c1565b50505050905090810190601f1680156126065780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b6126be565b8015612658576040805188815290517fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b709181900360200190a16126bc565b604080516020808252601b908201527f6261746368207472616e736665722072657475726e2066616c7365000000000081830152905188917fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280919081900360600190a25b505b80156128745760005b88518110156128725760008982815181106126de57fe5b602002602001015190506000600182815481106126f757fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc918590811061272857fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f19350505050905080156127e4576001828154811061276957fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d91859081106127b857fe5b9060005260206000209060040201600301546040518082815260200191505060405180910390a2612868565b600182815481106127f157fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d918590811061284057fe5b9060005260206000209060040201600301546040518082815260200191505060405180910390a25b50506001016126c7565b505b8451156129be5760005b85518110156129bc57600086828151811061289557fe5b60200260200101516001600160a01b03166108fc8784815181106128b557fe5b60200260200101519081150290604051600060405180830381858888f193505050509050801561294b578682815181106128eb57fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d87848151811061292957fe5b60200260200101516040518082815260200191505060405180910390a26129b3565b86828151811061295757fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d87848151811061299557fe5b60200260200101516040518082815260200191505060405180910390a25b5060010161287e565b505b4715612a27576040805147815290517f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d9181900360200190a1604051611002904780156108fc02916000818181858888f19350505050158015612a25573d6000803e3d6000fd5b505b60006003819055600555825115612a4157612a4183613297565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015612a7e57600080fd5b505af1158015612a92573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a15060009f9e505050505050505050505050505050565b80516001600160a01b0316600090815260046020526040812054801580612b265750600180820381548110612b0657fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b15612b6c5782516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a26000915050610f66565b600154600554600019820111801590612bc25784516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a260009350505050610f66565b600580546001908101909155805481906000198601908110612be057fe5b6000918252602082206002600490920201018054921515600160e01b0260ff60e01b199093169290921790915585516040516001600160a01b03909116917ff226e7d8f547ff903d9d419cf5f54e0d7d07efa9584135a53a057c5f1f27f49a91a2506000949350505050565b6000816040516020018082805190602001908083835b60208310612c815780518252601f199092019160209182019101612c62565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310612cef5780518252601f199092019160209182019101612cd0565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052805190602001201490505b92915050565b015190565b600082820183811015610bd8576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b612d9b613dd6565b506040805180820190915281518152602082810190820152919050565b612dc0613d81565b612dc98261375e565b612dd257600080fd5b6000612de18360200151613798565b60208085015160408051808201909152868152920190820152915050919050565b6000612e0c613dd6565b505080518051602091820151919092015191011190565b612e2b613dd6565b612e3482612e02565b612e3d57600080fd5b60208201516000612e4d826137fb565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590612e8657508151602110155b612e8f57600080fd5b6000612e9e8360200151613798565b90508083600001511015612ef9576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015612f1f57826020036101000a820491505b50949350505050565b6060612f338261375e565b612f3c57600080fd5b6000612f478361392e565b9050606081604051908082528060200260200182016040528015612f8557816020015b612f72613dd6565b815260200190600190039081612f6a5790505b5090506000612f978560200151613798565b60208601510190506000805b84811015612fee57612fb4836137fb565b9150604051806040016040528083815260200184815250848281518110612fd757fe5b602090810291909101015291810191600101612fa3565b509195945050505050565b613001613da1565b600061300b613da1565b613013613d81565b61301c85612db8565b90506000805b61302b83612e02565b15611c6057806130565761304661304184612e23565b61398a565b6001600160a01b031684526130ce565b806001141561307e5761306b61304184612e23565b6001600160a01b031660208501526130ce565b80600214156130a65761309361304184612e23565b6001600160a01b031660408501526130ce565b8060031415611c53576130bb611b6584612e23565b6001600160401b03166060850152600191505b600101613022565b6060612d2e6130e4836139a4565b613a8a565b606081516000141561310a5750604080516000815260208101909152610f66565b60608260008151811061311957fe5b602002602001015190506000600190505b835181101561315a576131508285838151811061314357fe5b6020026020010151613adc565b915060010161312a565b50610bd861316d825160c060ff16613b59565b82613adc565b600060606029835111156131a5576000604051806060016040528060298152602001613df16029913991509150611c69565b60005b835181101561323b5760005b81811015613232578481815181106131c857fe5b6020026020010151600001516001600160a01b03168583815181106131e957fe5b6020026020010151600001516001600160a01b0316141561322a5760006040518060600160405280602b8152602001613e1a602b9139935093505050611c69565b6001016131b4565b506001016131a8565b505060408051602081019091526000815260019150915091565b6000610bd883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613c51565b600154815160005b828110156133b45760016132b1613da1565b600183815481106132be57fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b848110156133885786818151811061334e57fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b031614156133805760009250613388565b60010161333a565b5081156133aa5780516001600160a01b03166000908152600460205260408120555b505060010161329f565b508082111561342957805b828110156134275760018054806133d257fe5b60008281526020812060046000199093019283020180546001600160a01b03199081168255600182810180549092169091556002820180546001600160e81b03191690556003909101919091559155016133bf565b505b6000818310613438578161343a565b825b905060005b81811015613634576134ec85828151811061345657fe5b60200260200101516001838154811061346b57fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a0820152613ce8565b61360757806001016004600087848151811061350457fe5b6020026020010151600001516001600160a01b03166001600160a01b031681526020019081526020016000208190555084818151811061354057fe5b60200260200101516001828154811061355557fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a09091015160039091015561362c565b60006001828154811061361657fe5b9060005260206000209060040201600301819055505b60010161343f565b508282111561375857825b82811015610ef657600185828151811061365557fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782559585015181840180549184169188169190911790556040850151600282018054606088015160808901511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590971692909a169190911792909216939093171695909517905560a0909201516003909301929092558751908401929088908590811061372b57fe5b602090810291909101810151516001600160a01b031682528101919091526040016000205560010161363f565b50505050565b805160009061376f57506000610f66565b6020820151805160001a9060c082101561378e57600092505050610f66565b5060019392505050565b8051600090811a60808110156137b2576000915050610f66565b60b88110806137cd575060c081108015906137cd575060f881105b156137dc576001915050610f66565b60c08110156137f05760b519019050610f66565b60f519019050610f66565b80516000908190811a60808110156138165760019150613927565b60b881101561382b57607e1981019150613927565b60c08110156138a557600060b78203600186019550806020036101000a86510491506001810182019350508083101561389f576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50613927565b60f88110156138ba5760be1981019150613927565b600060f78203600186019550806020036101000a865104915060018101820193505080831015613925576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b805160009061393f57506000610f66565b600080905060006139538460200151613798565b602085015185519181019250015b8082101561398157613972826137fb565b60019093019290910190613961565b50909392505050565b805160009060151461399b57600080fd5b612d2e82612e71565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166139e857506018613a0c565b6fffffffffffffffffffffffffffffffff198416613a0857506010613a0c565b5060005b6020811015613a4257818181518110613a2157fe5b01602001516001600160f81b03191615613a3a57613a42565b600101613a0c565b60008160200390506060816040519080825280601f01601f191660200182016040528015613a77576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015613abc5750607f60f81b82600081518110613aaa57fe5b01602001516001600160f81b03191611155b15613ac8575080610f66565b612d2e613ada8351608060ff16613b59565b835b6060806040519050835180825260208201818101602087015b81831015613b0d578051835260209283019201613af5565b50855184518101855292509050808201602086015b81831015613b3a578051835260209283019201613b22565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310613ba9576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b60408051600180825281830190925260609160208201818036833701905050905060378411613c035782840160f81b81600081518110613be557fe5b60200101906001600160f81b031916908160001a9053509050612d2e565b6060613c0e856139a4565b90508381510160370160f81b82600081518110613c2757fe5b60200101906001600160f81b031916908160001a905350613c488282613adc565b95945050505050565b60008184841115613ce05760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613ca5578181015183820152602001613c8d565b50505050905090810190601f168015613cd25780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b805182516000916001600160a01b039182169116148015613d22575081602001516001600160a01b031683602001516001600160a01b0316145b8015613d47575081604001516001600160a01b031683604001516001600160a01b0316145b8015610bd85750506060908101519101516001600160401b0390811691161490565b60408051808201909152600081526060602082015290565b6040518060400160405280613d94613dd6565b8152602001600081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b60405180604001604052806000815260200160008152509056fe746865206e756d626572206f662076616c696461746f72732065786365656420746865206c696d69746475706c696361746520636f6e73656e7375732061646472657373206f662076616c696461746f725365747468652065787069726554696d655365636f6e64476170206973206f7574206f662072616e67656c656e677468206f66206a61696c2076616c696461746f7273206d757374206265206f6e65746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374666565206973206c6172676572207468616e2044555354595f494e434f4d494e476c656e677468206f662065787069726554696d655365636f6e64476170206d69736d61746368f901b480f901b0f846941284214b9b9c85549ab3d2b972df0deef66ac2c9946ddf42a51534fc98d0c0a3b42c963cace8441ddf9477f066f3fb515bb97015e4b4afddbcb25c94286b86048c27395000f84694b71b214cb885500844365e95cd9942c7276e7fd894d22ca3ba2141d23adab65ce4940eb7665ea2b6a794748c284f46ab87fd492326f1e2fe731d22ad2db386048c27395000f84694a2959d3f95eae5dc7d70144ce1b73b403b7eb6e0948081ef03f1d9e0bb4a5bf38f16285c879299f07f940ce09b38374887cb564b7efa60be130d99ed5f9586048c27395000f84694980a75ecd1309ea12fa2ed87a8744fbfc9b863d594cc6ac05c95a99c1f7b5f88de0e3486c82293b2709407eecf36cf0901fefe4bc505d6ba03c7480c7b5786048c27395000f8469435552c16704d214347f29fa77f77da6d75d7c75294dc4973e838e3949c77aced16ac2315dc2d7ab11194f57d36e129881a3a13a024fe8072507e5b2e70f886048c27395000f84694f474cf03cceff28abc65c9cbae594f725c80e12d94e61a183325a18a173319dd8e19c8d069459e217594ddfcaedf9bb451098c9917a45f02bd61342cca6686048c273950006661696c656420746f20706172736520696e69742076616c696461746f72536574746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d6573736167652073656e646572206d7573742062652074686520626c6f636b2070726f6475636572746865206d6573736167652073656e646572206d75737420626520736c61736820636f6e7472616374a26469706673582212203ab4e2f538c9084d689a3e9fdfcee54d2149c820c48e01a03c7f65be805a8edf64736f6c63430006040033" + }, + "0x0000000000000000000000000000000000001001": { + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b50600436106102275760003560e01c8063831d65d111610130578063c80d4b8f116100b8578063e1c7392a1161007c578063e1c7392a146106d9578063f9a2bbc7146106e1578063fc3e5908146106e9578063fc4333cd146106f1578063fd6a6879146106f957610227565b8063c80d4b8f14610623578063c81b16621461062b578063c8509d8114610633578063c96be4cb146106ab578063dc927faf146106d157610227565b8063a1a11bf5116100ff578063a1a11bf514610531578063a78abc1614610539578063ab51bb9614610555578063ac0af6291461055d578063ac4317511461056557610227565b8063831d65d11461049f57806396713da9146105195780639bc8e4f2146105215780639dc092621461052957610227565b80634bf6c882116101b35780636e47b482116101825780636e47b4821461047757806370fd5bad1461047f57806375d47a0a146104875780637912a65d1461048f5780637942fd051461049757610227565b80634bf6c8821461045757806351e806721461045f578063567a372d1461046757806362b72cf51461046f57610227565b806337c8dab9116101fa57806337c8dab9146103b9578063389f4f71146103f85780633dffc3871461041257806343756e5c14610430578063493279b11461043857610227565b80630bee7a671461022c5780631182b8751461024d57806323bac5a21461033a57806335aa2e4414610380575b600080fd5b610234610701565b6040805163ffffffff9092168252519081900360200190f35b6102c56004803603604081101561026357600080fd5b60ff8235169190810190604081016020820135600160201b81111561028757600080fd5b82018360208201111561029957600080fd5b803590602001918460018302840111600160201b831117156102ba57600080fd5b509092509050610706565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102ff5781810151838201526020016102e7565b50505050905090810190601f16801561032c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103606004803603602081101561035057600080fd5b50356001600160a01b03166107da565b604080519384526020840192909252151582820152519081900360600190f35b61039d6004803603602081101561039657600080fd5b50356107fd565b604080516001600160a01b039092168252519081900360200190f35b6103df600480360360208110156103cf57600080fd5b50356001600160a01b0316610824565b6040805192835260208301919091528051918290030190f35b61040061087b565b60408051918252519081900360200190f35b61041a610881565b6040805160ff9092168252519081900360200190f35b61039d610886565b61044061088c565b6040805161ffff9092168252519081900360200190f35b61041a610891565b61039d610896565b61040061089c565b6104006108a2565b61039d6108a8565b61041a6108ae565b61039d6108b3565b6104006108b9565b61041a6108be565b610517600480360360408110156104b557600080fd5b60ff8235169190810190604081016020820135600160201b8111156104d957600080fd5b8201836020820111156104eb57600080fd5b803590602001918460018302840111600160201b8311171561050c57600080fd5b5090925090506108c3565b005b61041a610a1e565b610400610a23565b61039d610a2e565b61039d610a34565b610541610a3a565b604080519115158252519081900360200190f35b610234610a43565b610400610a48565b6105176004803603604081101561057b57600080fd5b810190602081018135600160201b81111561059557600080fd5b8201836020820111156105a757600080fd5b803590602001918460018302840111600160201b831117156105c857600080fd5b919390929091602081019035600160201b8111156105e557600080fd5b8201836020820111156105f757600080fd5b803590602001918460018302840111600160201b8311171561061857600080fd5b509092509050610a4d565b610400610e3b565b61039d610e40565b6105176004803603604081101561064957600080fd5b60ff8235169190810190604081016020820135600160201b81111561066d57600080fd5b82018360208201111561067f57600080fd5b803590602001918460018302840111600160201b831117156106a057600080fd5b509092509050610e46565b610517600480360360208110156106c157600080fd5b50356001600160a01b0316610ef9565b61039d61131e565b610517611324565b61039d611395565b61041a61139b565b6105176113a0565b61039d61182b565b606481565b606033612000146107485760405162461bcd60e51b815260040180806020018281038252602f815260200180612282602f913960400191505060405180910390fd5b60005460ff1661078d576040805162461bcd60e51b815260206004820152601960248201526000805160206122de833981519152604482015290519081900360640190fd5b6040805162461bcd60e51b815260206004820152601e60248201527f7265636569766520756e65787065637465642073796e207061636b6167650000604482015290519081900360640190fd5b600260208190526000918252604090912080546001820154919092015460ff1683565b6001818154811061080a57fe5b6000918252602090912001546001600160a01b0316905081565b60008061082f612146565b5050506001600160a01b0316600090815260026020818152604092839020835160608101855281548082526001830154938201849052919093015460ff16151592909301919091529091565b60055481565b600181565b61100181565b606081565b600881565b61200081565b60045481565b60035481565b61100581565b600281565b61100881565b603281565b600b81565b33612000146109035760405162461bcd60e51b815260040180806020018281038252602f815260200180612282602f913960400191505060405180910390fd5b60005460ff16610948576040805162461bcd60e51b815260206004820152601960248201526000805160206122de833981519152604482015290519081900360640190fd5b610950612169565b600061099184848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061183192505050565b9150915080156109db5781516040805163ffffffff9092168252517f7f0956d47419b9525356e7111652b653b530ec6f5096dccc04589bc38e6299679181900360200190a1610a17565b81516040805163ffffffff9092168252517f7d45f62d17443dd4547bca8a8112c60e2385669318dc300ec61a5d2492f262e79181900360200190a15b5050505050565b600981565b662386f26fc1000081565b61100781565b61100681565b60005460ff1681565b600081565b600481565b60005460ff16610a92576040805162461bcd60e51b815260206004820152601960248201526000805160206122de833981519152604482015290519081900360640190fd5b3361100714610ad25760405162461bcd60e51b815260040180806020018281038252602e81526020018061220d602e913960400191505060405180910390fd5b610b3d84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260148152731b5a5cd9195b59585b9bdc951a1c995cda1bdb1960621b602082015291506118b19050565b15610c165760208114610b815760405162461bcd60e51b81526004018080602001828103825260278152602001806121b66027913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610bbf9185858083850183828082843760009201919091525061199992505050565b905060018110158015610bd3575060055481105b610c0e5760405162461bcd60e51b815260040180806020018281038252602581526020018061225d6025913960400191505060405180910390fd5b600455610da9565b610c7c84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e19995b1bdb9e551a1c995cda1bdb19608a1b602082015291506118b19050565b15610d6c5760208114610cc05760405162461bcd60e51b815260040180806020018281038252602281526020018061223b6022913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610cfe9185858083850183828082843760009201919091525061199992505050565b90506103e88111158015610d13575060045481115b610d64576040805162461bcd60e51b815260206004820181905260248201527f7468652066656c6f6e795468726573686f6c64206f7574206f662072616e6765604482015290519081900360640190fd5b600555610da9565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b609681565b61100281565b3361200014610e865760405162461bcd60e51b815260040180806020018281038252602f815260200180612282602f913960400191505060405180910390fd5b60005460ff16610ecb576040805162461bcd60e51b815260206004820152601960248201526000805160206122de833981519152604482015290519081900360640190fd5b6040517f07db600eebe2ac176be8dcebad61858c245a4961bb32ca2aa3d159b09aa0810e90600090a1505050565b334114610f375760405162461bcd60e51b815260040180806020018281038252602d8152602001806122b1602d913960400191505060405180910390fd5b60005460ff16610f7c576040805162461bcd60e51b815260206004820152601960248201526000805160206122de833981519152604482015290519081900360640190fd5b6003544311610fd2576040805162461bcd60e51b815260206004820181905260248201527f63616e206e6f7420736c61736820747769636520696e206f6e6520626c6f636b604482015290519081900360640190fd5b3a1561101c576040805162461bcd60e51b81526020600482015260146024820152736761737072696365206973206e6f74207a65726f60601b604482015290519081900360640190fd5b611024612146565b506001600160a01b0381166000908152600260208181526040928390208351606081018552815481526001820154928101929092529091015460ff16158015928201929092529061107f5760208101805160010190526110d8565b60016040820181905260208201819052805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0384161790555b4381526005546020820151816110ea57fe5b0661123c57600060208201819052604080516335409f7f60e01b81526001600160a01b03851660048201529051611000926335409f7f926024808201939182900301818387803b15801561113d57600080fd5b505af1158015611151573d6000803e3d6000fd5b505050506120006001600160a01b031663f7a251d7600b6111718561199e565b60006040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156111d15781810151838201526020016111b9565b50505050905090810190601f1680156111fe5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561121f57600080fd5b505af1158015611233573d6000803e3d6000fd5b505050506112b2565b60045481602001518161124b57fe5b066112b257604080516375abf10160e11b81526001600160a01b038416600482015290516110009163eb57e20291602480830192600092919082900301818387803b15801561129957600080fd5b505af11580156112ad573d6000803e3d6000fd5b505050505b6001600160a01b0382166000818152600260208181526040808420865181559186015160018301558581015191909201805460ff1916911515919091179055517fddb6012116e51abf5436d956a4f0ebd927e92c576ff96d7918290c8782291e3e9190a2505043600355565b61100381565b60005460ff161561137c576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b603260045560966005556000805460ff19166001179055565b61100081565b600381565b33611000146113e05760405162461bcd60e51b81526004018080602001828103825260308152602001806121dd6030913960400191505060405180910390fd5b60005460ff16611425576040805162461bcd60e51b815260206004820152601960248201526000805160206122de833981519152604482015290519081900360640190fd5b60015461143157611829565b600154600090600019015b8082116117fd576000805b8284101561156057611457612146565b600260006001878154811061146857fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff16151590820152600554909150600490048160200151111561154a576004600554816114d557fe5b048160200151038160200181815250508060026000600188815481106114f757fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208351815591830151600183015591909101516002909101805460ff1916911515919091179055611554565b6001925050611560565b50600190930192611447565b8284116116f75761156f612146565b600260006001868154811061158057fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff161515908201526005549091506004900481602001511115611668576004600554816115ed57fe5b0481602001510381602001818152505080600260006001878154811061160f57fe5b6000918252602080832091909101546001600160a01b03168352828101939093526040918201902083518155918301516001808401919091559201516002909101805460ff191691151591909117905591506116f79050565b600260006001868154811061167957fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff191690558054806116bd57fe5b600082815260209020810160001990810180546001600160a01b0319169055019055836116ea57506116f7565b5060001990920191611560565b8180156117015750805b156117e057600260006001868154811061171757fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff1916905580548490811061175e57fe5b600091825260209091200154600180546001600160a01b03909216918690811061178457fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060018054806117bd57fe5b600082815260209020810160001990810180546001600160a01b03191690550190555b826117ec5750506117fd565b50506001909101906000190161143c565b6040517fcfdb3b6ccaeccbdc68be3c59c840e3b3c90f0a7c491f5fff1cf56cfda200dd9c90600090a150505b565b61100481565b611839612169565b6000611843612169565b61184b61217b565b61185c61185786611a70565b611a95565b90506000805b61186b83611adf565b156118a457806118975761188661188184611b00565b611b4e565b63ffffffff1684526001915061189c565b6118a4565b600101611862565b5091935090915050915091565b6000816040516020018082805190602001908083835b602083106118e65780518252601f1990920191602091820191016118c7565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106119545780518252601f199092019160209182019101611935565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052805190602001201490505b92915050565b015190565b60408051600480825260a08201909252606091829190816020015b60608152602001906001900390816119b95790505090506119e2836001600160a01b0316611c05565b816000815181106119ef57fe5b6020026020010181905250611a0343611c28565b81600181518110611a1057fe5b6020908102919091010152611a256060611c28565b81600281518110611a3257fe5b6020026020010181905250611a4642611c28565b81600381518110611a5357fe5b6020026020010181905250611a6781611c3b565b9150505b919050565b611a7861219b565b506040805180820190915281518152602082810190820152919050565b611a9d61217b565b611aa682611cc5565b611aaf57600080fd5b6000611abe8360200151611cff565b60208085015160408051808201909152868152920190820152915050919050565b6000611ae961219b565b505080518051602091820151919092015191011190565b611b0861219b565b611b1182611adf565b611b1a57600080fd5b60208201516000611b2a82611d62565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590611b6357508151602110155b611b6c57600080fd5b6000611b7b8360200151611cff565b90508083600001511015611bd6576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015611bfc57826020036101000a820491505b50949350505050565b60408051600560a21b8318601482015260348101909152606090611a6781611e95565b6060611993611c3683611eeb565b611e95565b6060815160001415611c5c5750604080516000815260208101909152611a6b565b606082600081518110611c6b57fe5b602002602001015190506000600190505b8351811015611cac57611ca282858381518110611c9557fe5b6020026020010151611fd1565b9150600101611c7c565b50611a67611cbf825160c060ff1661204e565b82611fd1565b8051600090611cd657506000611a6b565b6020820151805160001a9060c0821015611cf557600092505050611a6b565b5060019392505050565b8051600090811a6080811015611d19576000915050611a6b565b60b8811080611d34575060c08110801590611d34575060f881105b15611d43576001915050611a6b565b60c0811015611d575760b519019050611a6b565b60f519019050611a6b565b80516000908190811a6080811015611d7d5760019150611e8e565b60b8811015611d9257607e1981019150611e8e565b60c0811015611e0c57600060b78203600186019550806020036101000a865104915060018101820193505080831015611e06576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50611e8e565b60f8811015611e215760be1981019150611e8e565b600060f78203600186019550806020036101000a865104915060018101820193505080831015611e8c576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b606081516001148015611ec75750607f60f81b82600081518110611eb557fe5b01602001516001600160f81b03191611155b15611ed3575080611a6b565b611993611ee58351608060ff1661204e565b83611fd1565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416611f2f57506018611f53565b6fffffffffffffffffffffffffffffffff198416611f4f57506010611f53565b5060005b6020811015611f8957818181518110611f6857fe5b01602001516001600160f81b03191615611f8157611f89565b600101611f53565b60008160200390506060816040519080825280601f01601f191660200182016040528015611fbe576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b81831015612002578051835260209283019201611fea565b50855184518101855292509050808201602086015b8183101561202f578051835260209283019201612017565b508651929092011591909101601f01601f191660405250905092915050565b606068010000000000000000831061209e576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b604080516001808252818301909252606091602082018180368337019050509050603784116120f85782840160f81b816000815181106120da57fe5b60200101906001600160f81b031916908160001a9053509050611993565b606061210385611eeb565b90508381510160370160f81b8260008151811061211c57fe5b60200101906001600160f81b031916908160001a90535061213d8282611fd1565b95945050505050565b604051806060016040528060008152602001600081526020016000151581525090565b60408051602081019091526000815290565b604051806040016040528061218e61219b565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe6c656e677468206f66206d697364656d65616e6f725468726573686f6c64206d69736d61746368746865206d6573736167652073656e646572206d7573742062652076616c696461746f7253657420636f6e7472616374746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662066656c6f6e795468726573686f6c64206d69736d61746368746865206d697364656d65616e6f725468726573686f6c64206f7574206f662072616e6765746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d6573736167652073656e646572206d7573742062652074686520626c6f636b2070726f647563657274686520636f6e7472616374206e6f7420696e69742079657400000000000000a26469706673582212204ff575d7be356d691e7b7eae41716a4ccc366ec84f8235486e935261df61a18a64736f6c63430006040033" + }, + "0x0000000000000000000000000000000000001002": { + "balance": "0x0", + "code": "0x60806040526004361061014f5760003560e01c806396713da9116100b6578063c81b16621161006f578063c81b1662146103dc578063dc927faf146103f1578063f9a2bbc714610406578063fb5478b31461041b578063fc3e590814610430578063fd6a68791461044557610193565b806396713da91461033a5780639a99b4f01461034f5780639dc0926214610388578063a1a11bf51461039d578063a78abc16146103b2578063ab51bb96146103c757610193565b806351e806721161010857806351e806721461028a5780636d70f7ae1461029f5780636e47b482146102e657806370fd5bad146102fb57806375d47a0a146103105780637942fd051461032557610193565b80630bee7a67146101985780633a0b0eff146101c65780633dffc387146101ed57806343756e5c14610218578063493279b1146102495780634bf6c8821461027557610193565b366101935734156101915760408051348152905133917f6c98249d85d88c3753a04a22230f595e4dc8d3dc86c34af35deeeedc861b89db919081900360200190a25b005b600080fd5b3480156101a457600080fd5b506101ad61045a565b6040805163ffffffff9092168252519081900360200190f35b3480156101d257600080fd5b506101db61045f565b60408051918252519081900360200190f35b3480156101f957600080fd5b50610202610465565b6040805160ff9092168252519081900360200190f35b34801561022457600080fd5b5061022d61046a565b604080516001600160a01b039092168252519081900360200190f35b34801561025557600080fd5b5061025e610470565b6040805161ffff9092168252519081900360200190f35b34801561028157600080fd5b50610202610475565b34801561029657600080fd5b5061022d61047a565b3480156102ab57600080fd5b506102d2600480360360208110156102c257600080fd5b50356001600160a01b0316610480565b604080519115158252519081900360200190f35b3480156102f257600080fd5b5061022d61049e565b34801561030757600080fd5b506102026104a4565b34801561031c57600080fd5b5061022d6104a9565b34801561033157600080fd5b506102026104af565b34801561034657600080fd5b506102026104b4565b34801561035b57600080fd5b506101db6004803603604081101561037257600080fd5b506001600160a01b0381351690602001356104b9565b34801561039457600080fd5b5061022d610664565b3480156103a957600080fd5b5061022d61066a565b3480156103be57600080fd5b506102d2610670565b3480156103d357600080fd5b506101ad610679565b3480156103e857600080fd5b5061022d61067e565b3480156103fd57600080fd5b5061022d610684565b34801561041257600080fd5b5061022d61068a565b34801561042757600080fd5b506101db610690565b34801561043c57600080fd5b5061020261069c565b34801561045157600080fd5b5061022d6106a1565b606481565b60015481565b600181565b61100181565b606081565b600881565b61200081565b6001600160a01b031660009081526002602052604090205460ff1690565b61100581565b600281565b61100881565b600b81565b600981565b6000805460ff1661053657600260208190527fe57bda0a954a7c7381b17b2c763e646ba2c60f67292d287ba583603e2c1c41668054600160ff19918216811790925561100560009081527fe25235fc0de9d7165652bef0846fefda506174abb9a190f03d0f7bcc6146dbce80548316841790559282558254161790555b3360009081526002602052604090205460ff166105845760405162461bcd60e51b815260040180806020018281038252602b8152602001806106a8602b913960400191505060405180910390fd5b60004783106105935747610595565b825b9050670de0b6b3a76400008111156105b25750670de0b6b3a76400005b8015610633576040516001600160a01b0385169082156108fc029083906000818181858888f193505050501580156105ee573d6000803e3d6000fd5b506040805182815290516001600160a01b038616917ff8b71c64315fc33b2ead2adfa487955065152a8ac33d9d5193aafd7f45dc15a0919081900360200190a261065d565b6040517fe589651933c2457488cc0d8e0941518abf748e799435e4e396d9c4d0b2db2d4d90600090a15b9392505050565b61100781565b61100681565b60005460ff1681565b600081565b61100281565b61100381565b61100081565b670de0b6b3a764000081565b600381565b6110048156fe6f6e6c79206f70657261746f7220697320616c6c6f77656420746f2063616c6c20746865206d6574686f64a2646970667358221220d0a7618a32d393c0757994fad066c9aaf7342a982498e0748019ec232f5dc86764736f6c63430006040033" + }, + "0x0000000000000000000000000000000000001003": { + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b50600436106102115760003560e01c8063a78abc1611610125578063dda83148116100ad578063e405bbc31161007c578063e405bbc314610681578063ea54b2aa14610689578063f9a2bbc714610691578063fc3e590814610699578063fd6a6879146106a157610211565b8063dda8314814610609578063df5fe7041461062f578063e1c7392a14610655578063e2761af01461065d57610211565b8063c81b1662116100f4578063c81b166214610534578063cba510a91461053c578063d816987914610562578063da8d08f0146105db578063dc927faf1461060157610211565b8063a78abc1614610444578063ab51bb9614610460578063ac43175114610468578063adc879e91461052c57610211565b8063564b81ef116101a857806375d47a0a1161017757806375d47a0a1461041c5780637942fd051461042457806396713da91461042c5780639dc0926214610434578063a1a11bf51461043c57610211565b8063564b81ef146102ca5780635c5ae8db146103475780636e47b4821461040c57806370fd5bad1461041457610211565b806343756e5c116101e457806343756e5c14610277578063493279b11461029b5780634bf6c882146102ba57806351e80672146102c257610211565b80630bee7a67146102165780632657e9b61461023757806333f7798d146102515780633dffc38714610259575b600080fd5b61021e6106a9565b6040805163ffffffff9092168252519081900360200190f35b61023f6106ae565b60408051918252519081900360200190f35b61023f6106b9565b6102616106bf565b6040805160ff9092168252519081900360200190f35b61027f6106c4565b604080516001600160a01b039092168252519081900360200190f35b6102a36106ca565b6040805161ffff9092168252519081900360200190f35b6102616106cf565b61027f6106d4565b6102d26106da565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561030c5781810151838201526020016102f4565b50505050905090810190601f1680156103395780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61036d6004803603602081101561035d57600080fd5b50356001600160401b03166107e6565b60405180856001600160401b03166001600160401b0316815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156103ce5781810151838201526020016103b6565b50505050905090810190601f1680156103fb5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b61027f6108a1565b6102616108a7565b61027f6108ac565b6102616108b2565b6102616108b7565b61027f6108bc565b61027f6108c2565b61044c6108c8565b604080519115158252519081900360200190f35b61021e6108d1565b61052a6004803603604081101561047e57600080fd5b81019060208101813564010000000081111561049957600080fd5b8201836020820111156104ab57600080fd5b803590602001918460018302840111640100000000831117156104cd57600080fd5b9193909290916020810190356401000000008111156104eb57600080fd5b8201836020820111156104fd57600080fd5b8035906020019184600183028401116401000000008311171561051f57600080fd5b5090925090506108d6565b005b61023f610b8f565b61027f610b95565b61023f6004803603602081101561055257600080fd5b50356001600160401b0316610b9b565b61044c6004803603604081101561057857600080fd5b81019060208101813564010000000081111561059357600080fd5b8201836020820111156105a557600080fd5b803590602001918460018302840111640100000000831117156105c757600080fd5b9193509150356001600160401b0316610bba565b61027f600480360360208110156105f157600080fd5b50356001600160401b031661139b565b61027f6113b6565b61027f6004803603602081101561061f57600080fd5b50356001600160401b03166113bc565b61044c6004803603602081101561064557600080fd5b50356001600160401b03166113e0565b61052a611422565b6106656115c7565b604080516001600160401b039092168252519081900360200190f35b6106656115d6565b6102d26115ec565b61027f611609565b61026161160f565b61027f611614565b606481565b662386f26fc1000081565b60055481565b600181565b61100181565b606081565b600881565b61200081565b604080516020808252818301909252606091829190602082018180368337505060045460208301525090506000805b60208160ff16101561075057828160ff168151811061072457fe5b01602001516001600160f81b0319161561074357600190910190610748565b610750565b600101610709565b5060608160ff166040519080825280601f01601f191660200182016040528015610781576020820181803683370190505b50905060005b8260ff168160ff1610156107dd57838160ff16815181106107a457fe5b602001015160f81c60f81b828260ff16815181106107be57fe5b60200101906001600160f81b031916908160001a905350600101610787565b50925050505b90565b60016020818152600092835260409283902080548184015460028084015460038501805489516101009982161599909902600019011692909204601f81018790048702880187019098528787526001600160401b0390931696919592949091908301828280156108975780601f1061086c57610100808354040283529160200191610897565b820191906000526020600020905b81548152906001019060200180831161087a57829003601f168201915b5050505050905084565b61100581565b600281565b61100881565b600b81565b600981565b61100781565b61100681565b60005460ff1681565b600081565b60005460ff1661092d576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604482015290519081900360640190fd5b336110071461096d5760405162461bcd60e51b815260040180806020018281038252602e815260200180611ac6602e913960400191505060405180910390fd5b6109e184848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601b81527f726577617264466f7256616c696461746f725365744368616e676500000000006020820152915061161a9050565b15610ac05760208114610a255760405162461bcd60e51b815260040180806020018281038252602e815260200180611a65602e913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610a639185858083850183828082843760009201919091525061170192505050565b9050600081118015610a7d5750670de0b6b3a76400008111155b610ab85760405162461bcd60e51b815260040180806020018281038252602f815260200180611af4602f913960400191505060405180910390fd5b600555610afd565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b60045481565b61100281565b6001600160401b03166000908152600160208190526040909120015490565b60408051630a83aaa960e31b815233600482015290516000916110069163541d554891602480820192602092909190829003018186803b158015610bfd57600080fd5b505afa158015610c11573d6000803e3d6000fd5b505050506040513d6020811015610c2757600080fd5b5051610c7a576040805162461bcd60e51b815260206004820152601f60248201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604482015290519081900360640190fd5b6001600160401b0382166000908152600260205260409020546001600160a01b031615610cee576040805162461bcd60e51b815260206004820152601c60248201527f63616e27742073796e63206475706c6963617465642068656164657200000000604482015290519081900360640190fd5b6003546001600160401b0390811690831611610d3b5760405162461bcd60e51b8152600401808060200182810382526026815260200180611b236026913960400191505060405180910390fd5b600354600160401b90046001600160401b0316610d56611863565b6001600160401b0382811660009081526001602081815260409283902083516080810185528154909516855280830154858301526002808201548686015260038201805486516101009682161596909602600019011691909104601f81018490048402850184019095528484529093606086019392830182828015610e1c5780601f10610df157610100808354040283529160200191610e1c565b820191906000526020600020905b815481529060010190602001808311610dff57829003601f168201915b50505050508152505090505b836001600160401b0316826001600160401b031610158015610e5957506003546001600160401b0390811690831610155b15610f3a5780516001600160401b0380821660009081526001602081815260409283902083516080810185528154909516855280830154858301526002808201548686015260038201805486516101009682161596909602600019011691909104601f8101849004840285018401909552848452959750939460608601939091830182828015610f2a5780601f10610eff57610100808354040283529160200191610f2a565b820191906000526020600020905b815481529060010190602001808311610f0d57829003601f168201915b5050505050815250509050610e28565b6060810151516110315780516001600160401b03811660009081526001602081815260409283902060030180548451600294821615610100026000190190911693909304601f810183900483028401830190945283835293955090929190830182828015610fe95780601f10610fbe57610100808354040283529160200191610fe9565b820191906000526020600020905b815481529060010190602001808311610fcc57829003601f168201915b505050506060830182905250516110315760405162461bcd60e51b8152600401808060200182810382526021815260200180611a446021913960400191505060405180910390fd5b6000816060015151608801905060608787905082016040519080825280601f01601f191660200182016040528015611070576020820181803683370190505b509050600061107e82611706565b905061108c8486838661170c565b6110c75760405162461bcd60e51b81526004018080602001828103825260238152602001806119416023913960400191505060405180910390fd5b6000838201915061110d8a8a8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061177892505050565b9450905061111c818386611782565b8251602001935061112b611889565b6110008186866064600019fa61114057600080fd5b805194506000600160f81b8616156111cf5750600554604080516309a99b4f60e41b815233600482015260248101929092525160019161100291639a99b4f0916044808201926020929091908290030181600087803b1580156111a257600080fd5b505af11580156111b6573d6000803e3d6000fd5b505050506040513d60208110156111cc57600080fd5b50505b856001600160401b0316955060208201935060006111ef858884156117c3565b90985090506001600160401b03808216908c161461123e5760405162461bcd60e51b8152600401808060200182810382526033815260200180611a936033913960400191505060405180910390fd5b6001600160401b03808c16600081815260026020818152604080842080546001600160a01b031916331790558e86168e529383526001808252928490208d518154961667ffffffffffffffff199096169590951785558c81015192850192909255918b01519183019190915560608a015180518b93926112c59260038501929101906118a8565b50506003546001600160401b03600160401b9091048116908d161115905061130d576003805467ffffffffffffffff60401b1916600160401b6001600160401b038e16021790555b7f4042c1020a8f410fb1c8859d276ab436aeb2c3074960e48467299cf1c966d3b48b8a8a602001518560405180856001600160401b03166001600160401b03168152602001846001600160401b03166001600160401b031681526020018381526020018215151515815260200194505050505060405180910390a15060019c9b505050505050505050505050565b6002602052600090815260409020546001600160a01b031681565b61100381565b6001600160401b03166000908152600260205260409020546001600160a01b031690565b6001600160401b0381166000908152600260205260408120546001600160a01b031615158061141c57506003546001600160401b038381169116145b92915050565b60005460ff161561147a576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b60008061149f60405180610100016040528060e0815260200161196460e09139611778565b815160045590925090506114b1611863565b60006114bf848460006117c3565b60008083526001600160401b038281168252600160208181526040938490208651815467ffffffffffffffff191694169390931783558086015191830191909155918401516002820155606084015180519496509294508593909261152b9260038501929101906118a8565b50506003805467ffffffffffffffff19166001600160401b0384811691821767ffffffffffffffff60401b1916600160401b9290920291909117918290556000805460ff19166001179055662386f26fc10000600555602085810151604080519490931684529083015280517f5ac9b37d571677b80957ca05693f371526c602fd08042b416a29fdab7efefa499350918290030190a150505050565b6003546001600160401b031681565b600354600160401b90046001600160401b031681565b60405180610100016040528060e0815260200161196460e0913981565b61100081565b600381565b61100481565b6000816040516020018082805190602001908083835b6020831061164f5780518252601f199092019160209182019101611630565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106116bd5780518252601f19909201916020918201910161169e565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b60200190565b600084606001515182840103925060008061172a8760600151611778565b909250905061173a828683611782565b5050506040840151601f1983810191909152602090940151603f19830152605f19820192909252600454606719820152910160871990910152600190565b8051602090910191565b5b602081106117a2578251825260209283019290910190601f1901611783565b915181516020939093036101000a6000190180199091169216919091179052565b6117cb611863565b60088401516028850151604890950180519095600092916117ea611863565b6020810183905260408101829052866118555760008060688a036040519080825280601f01601f19166020018201604052801561182e576020820181803683370190505b506060840181905261183f90611778565b909250905061185260208c018383611782565b50505b989297509195505050505050565b604080516080810182526000808252602082018190529181019190915260608082015290565b6040518061100001604052806080906020820280368337509192915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106118e957805160ff1916838001178555611916565b82800160010185558215611916579182015b828111156119165782518255916020019190600101906118fb565b50611922929150611926565b5090565b6107e391905b80821115611922576000815560010161192c56fe6661696c656420746f2073657269616c697a6520636f6e73656e73757320737461746542696e616e63652d436861696e2d47616e67657300000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000aea1ac326886b992a991d21a6eb155f41b77867cbf659e78f31d89d8205122a84d1be64f0e9a466c2e66a53433928192783e29f8fa21beb2133499b5ef770f60000000e8d4a5100099308aa365c40554bc89982af505d85da95251445d5dd4a9bb37dd2584fd92d3000000e8d4a5100001776920ff0b0f38d78cf95c033c21adf7045785114e392a7544179652e0a612000000e8d4a510006661696c656420746f206c6f61642076616c696461746f722073657420646174616c656e677468206f6620726577617264466f7256616c696461746f725365744368616e6765206d69736d617463686865616465722068656967687420646f65736e277420657175616c20746f207468652073706563696669656420686569676874746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374746865206e6577526577617264466f7256616c696461746f725365744368616e6765206f7574206f662072616e676563616e27742073796e6320686561646572206265666f726520696e697469616c486569676874a26469706673582212205276b0300b4926074c5521abe49ba680eda1820c6f75c2779994658ed250924164736f6c63430006040033" + }, + "0x0000000000000000000000000000000000001004": { + "balance": "0x0", + "code": "0x60806040526004361061031e5760003560e01c80639a99b4f0116101ab578063bd466461116100f7578063f014847211610095578063fc1a598f1161006f578063fc1a598f14610cb3578063fc3e5908146109c9578063fd6a687914610ce6578063ff9c0027146107c757610366565b8063f014847214610c74578063f9a2bbc714610c89578063fa9e915914610c9e57610366565b8063dc6f5e90116100d1578063dc6f5e90146109c9578063dc927faf14610c35578063e1c7392a14610c4a578063ebf71d5314610c5f57610366565b8063bd46646114610b68578063c81b166214610b9b578063c8509d8114610bb057610366565b8063a7c9f02d11610164578063ac4317511161013e578063ac43175114610a3a578063b770186114610b05578063b99328c514610b1a578063b9fd21e314610b5357610366565b8063a7c9f02d146109c9578063aa7415f5146109de578063ab51bb9614610a2557610366565b80639a99b4f0146109095780639dc0926214610942578063a1a11bf514610957578063a496fba21461096c578063a5cd588b14610981578063a78abc16146109b457610366565b80635d499b1b1161026a57806375d47a0a116102235780638b87b21f116101fd5780638b87b21f146105b25780638eff336c146108a057806396713da9146108df5780639a854bbd146108f457610366565b806375d47a0a146107f15780637942fd0514610806578063831d65d11461081b57610366565b80635d499b1b14610671578063613684751461036b5780636e056520146106865780636e47b482146107b257806370fd5bad146107c757806371d30863146107dc57610366565b806343756e5c116102d75780634bf6c882116102b15780634bf6c8821461036b57806350432d321461061d57806351e806721461063257806359b927891461064757610366565b806343756e5c146105c757806343a368b9146105dc578063493279b1146105f157610366565b8063077b8f351461036b5780630bee7a67146103965780631182b875146103c4578063149d14d9146104be5780633d713223146104e55780633dffc387146105b257610366565b36610366573415610364576040805133815234602082015281517f6c98249d85d88c3753a04a22230f595e4dc8d3dc86c34af35deeeedc861b89db929181900390910190a15b005b600080fd5b34801561037757600080fd5b50610380610cfb565b6040805160ff9092168252519081900360200190f35b3480156103a257600080fd5b506103ab610d00565b6040805163ffffffff9092168252519081900360200190f35b3480156103d057600080fd5b50610449600480360360408110156103e757600080fd5b60ff8235169190810190604081016020820135600160201b81111561040b57600080fd5b82018360208201111561041d57600080fd5b803590602001918460018302840111600160201b8311171561043e57600080fd5b509092509050610d05565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561048357818101518382015260200161046b565b50505050905090810190601f1680156104b05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156104ca57600080fd5b506104d3610e33565b60408051918252519081900360200190f35b3480156104f157600080fd5b506105966004803603602081101561050857600080fd5b810190602081018135600160201b81111561052257600080fd5b82018360208201111561053457600080fd5b803590602001918460018302840111600160201b8311171561055557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610e39945050505050565b604080516001600160a01b039092168252519081900360200190f35b3480156105be57600080fd5b50610380610e5d565b3480156105d357600080fd5b50610596610e62565b3480156105e857600080fd5b506104d3610e68565b3480156105fd57600080fd5b50610606610e74565b6040805161ffff9092168252519081900360200190f35b34801561062957600080fd5b506104d3610e79565b34801561063e57600080fd5b50610596610e84565b34801561065357600080fd5b506105966004803603602081101561066a57600080fd5b5035610e8a565b34801561067d57600080fd5b506104d3610ea5565b61079e6004803603608081101561069c57600080fd5b810190602081018135600160201b8111156106b657600080fd5b8201836020820111156106c857600080fd5b803590602001918460208302840111600160201b831117156106e957600080fd5b919390929091602081019035600160201b81111561070657600080fd5b82018360208201111561071857600080fd5b803590602001918460208302840111600160201b8311171561073957600080fd5b919390929091602081019035600160201b81111561075657600080fd5b82018360208201111561076857600080fd5b803590602001918460208302840111600160201b8311171561078957600080fd5b91935091503567ffffffffffffffff16610eae565b604080519115158252519081900360200190f35b3480156107be57600080fd5b50610596611383565b3480156107d357600080fd5b50610380611389565b3480156107e857600080fd5b506104d361138e565b3480156107fd57600080fd5b50610596611394565b34801561081257600080fd5b5061038061139a565b34801561082757600080fd5b506103646004803603604081101561083e57600080fd5b60ff8235169190810190604081016020820135600160201b81111561086257600080fd5b82018360208201111561087457600080fd5b803590602001918460018302840111600160201b8311171561089557600080fd5b50909250905061139f565b3480156108ac57600080fd5b50610364600480360360608110156108c357600080fd5b508035906001600160a01b0360208201351690604001356114e8565b3480156108eb57600080fd5b5061038061156e565b34801561090057600080fd5b506104d3611573565b34801561091557600080fd5b506104d36004803603604081101561092c57600080fd5b506001600160a01b03813516906020013561157f565b34801561094e57600080fd5b506105966116bd565b34801561096357600080fd5b506105966116c3565b34801561097857600080fd5b506103806116c9565b34801561098d57600080fd5b506104d3600480360360208110156109a457600080fd5b50356001600160a01b03166116ce565b3480156109c057600080fd5b5061079e6116e0565b3480156109d557600080fd5b506103806116e9565b61079e600480360360808110156109f457600080fd5b5080356001600160a01b03908116916020810135909116906040810135906060013567ffffffffffffffff166116ee565b348015610a3157600080fd5b506103ab6116c9565b348015610a4657600080fd5b5061036460048036036040811015610a5d57600080fd5b810190602081018135600160201b811115610a7757600080fd5b820183602082011115610a8957600080fd5b803590602001918460018302840111600160201b83111715610aaa57600080fd5b919390929091602081019035600160201b811115610ac757600080fd5b820183602082011115610ad957600080fd5b803590602001918460018302840111600160201b83111715610afa57600080fd5b509092509050611daf565b348015610b1157600080fd5b506104d361201e565b348015610b2657600080fd5b5061036460048036036040811015610b3d57600080fd5b50803590602001356001600160a01b0316612024565b348015610b5f57600080fd5b506104d361209a565b348015610b7457600080fd5b506104d360048036036020811015610b8b57600080fd5b50356001600160a01b03166120a4565b348015610ba757600080fd5b506105966120bf565b348015610bbc57600080fd5b5061036460048036036040811015610bd357600080fd5b60ff8235169190810190604081016020820135600160201b811115610bf757600080fd5b820183602082011115610c0957600080fd5b803590602001918460018302840111600160201b83111715610c2a57600080fd5b5090925090506120c5565b348015610c4157600080fd5b50610596612195565b348015610c5657600080fd5b5061036461219b565b348015610c6b57600080fd5b5061038061223b565b348015610c8057600080fd5b50610380612240565b348015610c9557600080fd5b50610596612245565b348015610caa57600080fd5b506104d361224b565b348015610cbf57600080fd5b5061044960048036036020811015610cd657600080fd5b50356001600160a01b0316612251565b348015610cf257600080fd5b50610596612378565b600881565b606481565b60005460609060ff16610d4d576040805162461bcd60e51b815260206004820152601960248201526000805160206147bf833981519152604482015290519081900360640190fd5b3361200014610d8d5760405162461bcd60e51b815260040180806020018281038252602f81526020018061476d602f913960400191505060405180910390fd5b60ff841660021415610ddf57610dd883838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061237e92505050565b9050610e2c565b6040805162461bcd60e51b815260206004820152601860248201527f756e7265636f676e697a65642073796e207061636b6167650000000000000000604482015290519081900360640190fd5b9392505050565b60015490565b6020818101516000908152600490915260409020546001600160a01b03165b919050565b600181565b61100181565b670de0b6b3a764000081565b606081565b662386f26fc1000081565b61200081565b6000908152600460205260409020546001600160a01b031690565b6402540be40081565b6000805460ff16610ef4576040805162461bcd60e51b815260206004820152601960248201526000805160206147bf833981519152604482015290519081900360640190fd5b868514610f325760405162461bcd60e51b815260040180806020018281038252603b815260200180614732603b913960400191505060405180910390fd5b868314610f705760405162461bcd60e51b815260040180806020018281038252603f815260200180614605603f913960400191505060405180910390fd5b426078018267ffffffffffffffff161015610fbc5760405162461bcd60e51b81526004018080602001828103825260248152602001806144f56024913960400191505060405180910390fd5b6402540be4003406156110005760405162461bcd60e51b81526004018080602001828103825260408152602001806148356040913960400191505060405180910390fd5b60408051868152602080880282010190915285906000908190606090848015611033578160200160208202803683370190505b50905060005b8481101561110e576402540be4008b8b8381811061105357fe5b905060200201358161106157fe5b061561109e5760405162461bcd60e51b815260040180806020018281038252603c815260200180614644603c913960400191505060405180910390fd5b6110c38b8b838181106110ad57fe5b90506020020135856124a290919063ffffffff16565b93506110ef6402540be4008c8c848181106110da57fe5b905060200201356124fc90919063ffffffff16565b8282815181106110fb57fe5b6020908102919091010152600101611039565b5060015461113390611126908663ffffffff61253e16565b849063ffffffff6124a216565b3410156111715760405162461bcd60e51b81526004018080602001828103825260568152602001806147df6056913960600191505060405180910390fd5b611181348463ffffffff61259716565b915061118b61434e565b6040518060c001604052806221272160e91b60001b815260200160006001600160a01b031681526020018381526020018e8e808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505050908252506040805160208c810282810182019093528c82529283019290918d918d91829185019084908082843760009201919091525050509082525067ffffffffffffffff8916602090910152905061200063f7a251d7600361124f846125d9565b611264876402540be40063ffffffff6124fc16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156112c25781810151838201526020016112aa565b50505050905090810190601f1680156112ef5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561131057600080fd5b505af1158015611324573d6000803e3d6000fd5b505060408051600081523360208201528082018890526060810187905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a15060019c9b505050505050505050505050565b61100581565b600281565b60015481565b61100881565b600b81565b60005460ff166113e4576040805162461bcd60e51b815260206004820152601960248201526000805160206147bf833981519152604482015290519081900360640190fd5b33612000146114245760405162461bcd60e51b815260040180806020018281038252602f81526020018061476d602f913960400191505060405180910390fd5b60ff8316600314156114745761146f82828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061289492505050565b6114e3565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a15b505050565b33611008146115285760405162461bcd60e51b815260040180806020018281038252602381526020018061479c6023913960400191505060405180910390fd5b600083815260046020908152604080832080546001600160a01b039096166001600160a01b03199096168617905593825260038152838220949094556002909352912055565b600981565b677ce66c50e284000081565b6000805460ff166115c5576040805162461bcd60e51b815260206004820152601960248201526000805160206147bf833981519152604482015290519081900360640190fd5b33611005146116055760405162461bcd60e51b815260040180806020018281038252602f815260200180614468602f913960400191505060405180910390fd5b60004783106116145747611616565b825b9050670de0b6b3a76400008111156116325760009150506116b7565b80156116b4576040516001600160a01b0385169082156108fc029083906000818181858888f1935050505015801561166e573d6000803e3d6000fd5b50604080516001600160a01b03861681526020810183905281517ff8b71c64315fc33b2ead2adfa487955065152a8ac33d9d5193aafd7f45dc15a0929181900390910190a15b90505b92915050565b61100781565b61100681565b600081565b60026020526000908152604090205481565b60005460ff1681565b600381565b6000805460ff16611734576040805162461bcd60e51b815260206004820152601960248201526000805160206147bf833981519152604482015290519081900360640190fd5b426078018267ffffffffffffffff1610156117805760405162461bcd60e51b81526004018080602001828103825260248152602001806144f56024913960400191505060405180910390fd5b6402540be4003406156117c45760405162461bcd60e51b81526004018080602001828103825260408152602001806148356040913960400191505060405180910390fd5b600080806001600160a01b0388166118a3576001546117ea90879063ffffffff6124a216565b3410156118285760405162461bcd60e51b815260040180806020018281038252606181526020018061457f6061913960800191505060405180910390fd5b6402540be40086061561186c5760405162461bcd60e51b815260040180806020018281038252603c815260200180614644603c913960400191505060405180910390fd5b61187c348763ffffffff61259716565b9050611893866402540be40063ffffffff6124fc16565b6221272160e91b93509150611b46565b6001600160a01b0388166000908152600360205260409020549250826118fa5760405162461bcd60e51b815260040180806020018281038252603181526020018061454e6031913960400191505060405180910390fd5b60015434101561193b5760405162461bcd60e51b815260040180806020018281038252603f8152602001806146a1603f913960400191505060405180910390fd5b506001600160a01b038716600090815260026020526040902054349060088111158061198657506008811180156119865750611984876007198301600a0a63ffffffff6128f016565b155b6119c15760405162461bcd60e51b815260040180806020018281038252603c815260200180614644603c913960400191505060405180910390fd5b6119cb8782612932565b92506119d684612972565b15611a1e576305f5e100831015611a1e5760405162461bcd60e51b815260040180806020018281038252603a815260200180614497603a913960400191505060405180910390fd5b600881101580611a385750600881108015611a3857508683115b611a735760405162461bcd60e51b81526004018080602001828103825260258152602001806145e06025913960400191505060405180910390fd5b677ce66c50e2840000831115611aba5760405162461bcd60e51b81526004018080602001828103825260358152602001806145196035913960400191505060405180910390fd5b604080516323b872dd60e01b81523360048201523060248201526044810189905290516001600160a01b038b16916323b872dd9160648083019260209291908290030181600087803b158015611b0f57600080fd5b505af1158015611b23573d6000803e3d6000fd5b505050506040513d6020811015611b3957600080fd5b5051611b4457600080fd5b505b611b4e61434e565b6040805160c0810182528581526001600160a01b038b166020820152815160018082528184018452919283019181602001602082028036833750505081526040805160018082528183019092526020928301929091908083019080368337505050815260408051600180825281830190925260209283019290919080830190803683370190505081526020018767ffffffffffffffff168152509050828160400151600081518110611bfc57fe5b602002602001018181525050878160600151600081518110611c1a57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050338160800151600081518110611c4c57fe5b6001600160a01b039092166020928302919091019091015261200063f7a251d76003611c77846125d9565b611c8c866402540be40063ffffffff6124fc16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611cea578181015183820152602001611cd2565b50505050905090810190601f168015611d175780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015611d3857600080fd5b505af1158015611d4c573d6000803e3d6000fd5b5050604080516001600160a01b038d1681523360208201528082018b90526060810186905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a150600198975050505050505050565b3361100714611def5760405162461bcd60e51b815260040180806020018281038252602e8152602001806146e0602e913960400191505060405180910390fd5b60208114611e44576040805162461bcd60e51b815260206004820152601b60248201527f65787065637465642076616c7565206c656e6774682069732033320000000000604482015290519081900360640190fd5b606084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8801819004810282018101909252868152939450606093925086915085908190840183828082843760009201919091525050505060208301519091506772656c617946656560c01b811415611f4c576020820151670de0b6b3a76400008111801590611ef357506402540be4008106155b611f44576040805162461bcd60e51b815260206004820152601960248201527f7468652072656c6179466565206f7574206f662072616e676500000000000000604482015290519081900360640190fd5b600155611f89565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a878787876040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050505050565b61c35081565b33611008146120645760405162461bcd60e51b815260040180806020018281038252602381526020018061479c6023913960400191505060405180910390fd5b600091825260046020908152604080842080546001600160a01b03191690556001600160a01b0392909216835260039052812055565b6221272160e91b81565b6001600160a01b031660009081526003602052604090205490565b61100281565b60005460ff1661210a576040805162461bcd60e51b815260206004820152601960248201526000805160206147bf833981519152604482015290519081900360640190fd5b336120001461214a5760405162461bcd60e51b815260040180806020018281038252602f81526020018061476d602f913960400191505060405180910390fd5b60ff8316600314156114745761146f82828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612a7892505050565b61100381565b60005460ff16156121f3576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b662386f26fc1000060019081556000808052600260205260127fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b55805460ff19169091179055565b600481565b600581565b61100081565b61271081565b6001600160a01b03811660009081526003602090815260409182902054825182815280840190935260609290918391906020820181803683375050506020810183905290506000805b60208160ff1610156122e157828160ff16815181106122b557fe5b01602001516001600160f81b031916156122d4576001909101906122d9565b6122e1565b60010161229a565b5060608160ff166040519080825280601f01601f191660200182016040528015612312576020820181803683370190505b50905060005b8260ff168160ff16101561236e57838160ff168151811061233557fe5b602001015160f81c60f81b828260ff168151811061234f57fe5b60200101906001600160f81b031916908160001a905350600101612318565b5095945050505050565b61100481565b606061238861439a565b600061239384612b76565b91509150806123e9576040805162461bcd60e51b815260206004820152601f60248201527f756e7265636f676e697a6564207472616e73666572496e207061636b61676500604482015290519081900360640190fd5b60006123f483612cb5565b905063ffffffff811615612488576040808401516020808601516001600160a01b0316600090815260029091529182205461242f9190612932565b90506124396143cf565b60405180608001604052808660000151815260200183815260200186608001516001600160a01b031681526020018463ffffffff16815250905061247c81613002565b95505050505050610e58565b50506040805160008152602081019091529150610e589050565b6000828201838110156116b4576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60006116b483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506130de565b60008261254d575060006116b7565b8282028284828161255a57fe5b04146116b45760405162461bcd60e51b81526004018080602001828103825260218152602001806146806021913960400191505060405180910390fd5b60006116b483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613180565b60408051600680825260e08201909252606091829190816020015b60608152602001906001900390816125f45750508351909150612616906131da565b8160008151811061262357fe5b602002602001018190525061264483602001516001600160a01b03166131ed565b8160018151811061265157fe5b60200260200101819052506000836040015151905060608160405190808252806020026020018201604052801561269c57816020015b60608152602001906001900390816126875790505b50905060005b828110156126e9576126ca866040015182815181106126bd57fe5b60200260200101516131da565b8282815181106126d657fe5b60209081029190910101526001016126a2565b506126f381613210565b8360028151811061270057fe5b602002602001018190525060608260405190808252806020026020018201604052801561274157816020015b606081526020019060019003908161272c5790505b50905060005b83811015612797576127788760600151828151811061276257fe5b60200260200101516001600160a01b03166131ed565b82828151811061278457fe5b6020908102919091010152600101612747565b506127a181613210565b846003815181106127ae57fe5b60200260200101819052506060836040519080825280602002602001820160405280156127ef57816020015b60608152602001906001900390816127da5790505b50905060005b8481101561282f576128108860800151828151811061276257fe5b82828151811061281c57fe5b60209081029190910101526001016127f5565b5061283981613210565b8560048151811061284657fe5b60200260200101819052506128688760a0015167ffffffffffffffff166131da565b8560058151811061287557fe5b602002602001018190525061288985613210565b979650505050505050565b61289c6143f6565b60006128a78361329a565b91509150806128e75760405162461bcd60e51b815260040180806020018281038252602481526020018061470e6024913960400191505060405180910390fd5b6114e382613465565b60006116b483836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f00000000000000008152506138e9565b6000600882111561295b57612954836007198401600a0a63ffffffff6124fc16565b90506116b7565b6116b4836008849003600a0a63ffffffff61253e16565b604080516020808252818301909252600091606091906020820181803683375050506020810184905290506000805b60208160ff1610156129e857828160ff16815181106129bc57fe5b01602001516001600160f81b031916156129db576001909101906129e0565b6129e8565b6001016129a1565b50600860ff82161015612a0057600092505050610e58565b816005820360ff1681518110612a1257fe5b6020910101516001600160f81b031916602d60f81b14612a3757600092505050610e58565b816001820360ff1681518110612a4957fe5b6020910101516001600160f81b031916604d60f81b14612a6e57600092505050610e58565b5060019392505050565b612a8061434e565b6000612a8b8361394b565b9150915080612acb5760405162461bcd60e51b81526004018080602001828103825260248152602001806144d16024913960400191505060405180910390fd5b612ad36143f6565b602080840180516001600160a01b0390811684526040808701518585015291511660009081526002909252812054905b846040015151811015612b5457612b3185604001518281518110612b2357fe5b602002602001015183613bc6565b85604001518281518110612b4157fe5b6020908102919091010152600101612b03565b506080840151604083015260056060830152612b6f82613465565b5050505050565b612b7e61439a565b6000612b8861439a565b612b9061442d565b612ba1612b9c86613bff565b613c24565b90506000805b612bb083613c6e565b15612ca85780612bd257612bcb612bc684613c8f565b613cdd565b8452612ca0565b8060011415612bff57612bec612be784613c8f565b613d94565b6001600160a01b03166020850152612ca0565b8060021415612c1e57612c14612bc684613c8f565b6040850152612ca0565b8060031415612c4657612c33612be784613c8f565b6001600160a01b03166060850152612ca0565b8060041415612c6e57612c5b612be784613c8f565b6001600160a01b03166080850152612ca0565b8060051415612c9b57612c83612bc684613c8f565b67ffffffffffffffff1660a085015260019150612ca0565b612ca8565b600101612ba7565b5091935090915050915091565b60208101516000906001600160a01b0316612dec578160a0015167ffffffffffffffff16421115612ce857506001610e58565b8160400151471015612cfc57506003610e58565b606082015160408084015190516000926001600160a01b0316916127109184818181858888f193505050503d8060008114612d53576040519150601f19603f3d011682016040523d82523d6000602084013e612d58565b606091505b5050905080612d6b575060049050610e58565b7f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5983602001518460600151856040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a15060009050610e58565b8160a0015167ffffffffffffffff16421115612e0a57506001610e58565b81516020808401516001600160a01b031660009081526003909152604090205414612e3757506002610e58565b602080830151604080516370a0823160e01b815230600482015290516000936001600160a01b03909316926370a082319261c3509260248083019392829003018187803b158015612e8757600080fd5b5086fa158015612e9b573d6000803e3d6000fd5b50505050506040513d6020811015612eb257600080fd5b50516040840151909150811015612ecd575060039050610e58565b600083602001516001600160a01b031663a9059cbb61c350866060015187604001516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b158015612f3e57600080fd5b5087f1158015612f52573d6000803e3d6000fd5b50505050506040513d6020811015612f6957600080fd5b505190508015612ff6577f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5984602001518560600151866040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a15060009150610e589050565b5060059150610e589050565b60408051600480825260a08201909252606091829190816020015b606081526020019060019003908161301d575050835190915061303f906131da565b8160008151811061304c57fe5b602002602001018190525061306483602001516131da565b8160018151811061307157fe5b602002602001018190525061309283604001516001600160a01b03166131ed565b8160028151811061309f57fe5b60200260200101819052506130bd836060015163ffffffff166131da565b816003815181106130ca57fe5b6020026020010181905250610e2c81613210565b6000818361316a5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561312f578181015183820152602001613117565b50505050905090810190601f16801561315c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161317657fe5b0495945050505050565b600081848411156131d25760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561312f578181015183820152602001613117565b505050900390565b60606116b76131e883613dae565b613e94565b60408051600560a21b8318601482015260348101909152606090610e2c81613e94565b60608151600014156132315750604080516000815260208101909152610e58565b60608260008151811061324057fe5b602002602001015190506000600190505b8351811015613281576132778285838151811061326a57fe5b6020026020010151613ee6565b9150600101613251565b50610e2c613294825160c060ff16613f63565b82613ee6565b6132a26143f6565b60006132ac6143f6565b6132b461442d565b6132c0612b9c86613bff565b90506000805b6132cf83613c6e565b15612ca857806132f5576132e5612be784613c8f565b6001600160a01b0316845261345d565b806001141561339657606061331161330c85613c8f565b61405b565b9050805160405190808252806020026020018201604052801561333e578160200160208202803683370190505b50602086015260005b815181101561338f5761336c82828151811061335f57fe5b6020026020010151613cdd565b8660200151828151811061337c57fe5b6020908102919091010152600101613347565b505061345d565b80600214156134385760606133ad61330c85613c8f565b905080516040519080825280602002602001820160405280156133da578160200160208202803683370190505b50604086015260005b815181101561338f576134088282815181106133fb57fe5b6020026020010151613d94565b8660400151828151811061341857fe5b6001600160a01b03909216602092830291909101909101526001016133e3565b8060031415612c9b5761344d612bc684613c8f565b63ffffffff166060850152600191505b6001016132c6565b80516001600160a01b031661368f5760005b8160200151518110156136895760008260400151828151811061349657fe5b60200260200101516001600160a01b0316612710846020015184815181106134ba57fe5b60209081029190910101516040516000818181858888f193505050503d8060008114613502576040519150601f19603f3d011682016040523d82523d6000602084013e613507565b606091505b50509050806135ca577f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061354657fe5b60200260200101518560200151858151811061355e57fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a1613680565b7fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a83600001518460400151848151811061360057fe5b60200260200101518560200151858151811061361857fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b50600101613477565b506138e6565b60005b8160200151518110156138e457600082600001516001600160a01b031663a9059cbb61c350856040015185815181106136c757fe5b6020026020010151866020015186815181106136df57fe5b60200260200101516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b15801561373657600080fd5b5087f115801561374a573d6000803e3d6000fd5b50505050506040513d602081101561376157600080fd5b505190508015613825577fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a8360000151846040015184815181106137a157fe5b6020026020010151856020015185815181106137b957fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a16138db565b7f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061385b57fe5b60200260200101518560200151858151811061387357fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b50600101613692565b505b50565b600081836139385760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561312f578181015183820152602001613117565b5082848161394257fe5b06949350505050565b61395361434e565b600061395d61434e565b61396561442d565b613971612b9c86613bff565b90506000805b61398083613c6e565b15613bb8578061399d57613996612bc684613c8f565b8452613bb0565b80600114156139c5576139b2612be784613c8f565b6001600160a01b03166020850152613bb0565b8060021415613a545760606139dc61330c85613c8f565b90508051604051908082528060200260200182016040528015613a09578160200160208202803683370190505b50604086015260005b8151811015613a4d57613a2a82828151811061335f57fe5b86604001518281518110613a3a57fe5b6020908102919091010152600101613a12565b5050613bb0565b8060031415613ae9576060613a6b61330c85613c8f565b90508051604051908082528060200260200182016040528015613a98578160200160208202803683370190505b50606086015260005b8151811015613a4d57613ab98282815181106133fb57fe5b86606001518281518110613ac957fe5b6001600160a01b0390921660209283029190910190910152600101613aa1565b8060041415613b7e576060613b0061330c85613c8f565b90508051604051908082528060200260200182016040528015613b2d578160200160208202803683370190505b50608086015260005b8151811015613a4d57613b4e8282815181106133fb57fe5b86608001518281518110613b5e57fe5b6001600160a01b0390921660209283029190910190910152600101613b36565b8060051415613bab57613b93612bc684613c8f565b67ffffffffffffffff1660a085015260019150613bb0565b613bb8565b600101613977565b509195600195509350505050565b60006008821115613be857612954836007198401600a0a63ffffffff61253e16565b6116b4836008849003600a0a63ffffffff6124fc16565b613c0761444d565b506040805180820190915281518152602082810190820152919050565b613c2c61442d565b613c358261412c565b613c3e57600080fd5b6000613c4d836020015161415c565b60208085015160408051808201909152868152920190820152915050919050565b6000613c7861444d565b505080518051602091820151919092015191011190565b613c9761444d565b613ca082613c6e565b613ca957600080fd5b60208201516000613cb9826141bf565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590613cf257508151602110155b613cfb57600080fd5b6000613d0a836020015161415c565b90508083600001511015613d65576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015613d8b57826020036101000a820491505b50949350505050565b8051600090601514613da557600080fd5b6116b782613cdd565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416613df257506018613e16565b6fffffffffffffffffffffffffffffffff198416613e1257506010613e16565b5060005b6020811015613e4c57818181518110613e2b57fe5b01602001516001600160f81b03191615613e4457613e4c565b600101613e16565b60008160200390506060816040519080825280601f01601f191660200182016040528015613e81576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015613ec65750607f60f81b82600081518110613eb457fe5b01602001516001600160f81b03191611155b15613ed2575080610e58565b6116b7613ee48351608060ff16613f63565b835b6060806040519050835180825260208201818101602087015b81831015613f17578051835260209283019201613eff565b50855184518101855292509050808201602086015b81831015613f44578051835260209283019201613f2c565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310613fb3576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b6040805160018082528183019092526060916020820181803683370190505090506037841161400d5782840160f81b81600081518110613fef57fe5b60200101906001600160f81b031916908160001a90535090506116b7565b606061401885613dae565b90508381510160370160f81b8260008151811061403157fe5b60200101906001600160f81b031916908160001a9053506140528282613ee6565b95945050505050565b60606140668261412c565b61406f57600080fd5b600061407a836142f2565b90506060816040519080825280602002602001820160405280156140b857816020015b6140a561444d565b81526020019060019003908161409d5790505b50905060006140ca856020015161415c565b60208601510190506000805b84811015614121576140e7836141bf565b915060405180604001604052808381526020018481525084828151811061410a57fe5b6020908102919091010152918101916001016140d6565b509195945050505050565b805160009061413d57506000610e58565b6020820151805160001a9060c0821015612a6e57600092505050610e58565b8051600090811a6080811015614176576000915050610e58565b60b8811080614191575060c08110801590614191575060f881105b156141a0576001915050610e58565b60c08110156141b45760b519019050610e58565b60f519019050610e58565b80516000908190811a60808110156141da57600191506142eb565b60b88110156141ef57607e19810191506142eb565b60c081101561426957600060b78203600186019550806020036101000a865104915060018101820193505080831015614263576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b506142eb565b60f881101561427e5760be19810191506142eb565b600060f78203600186019550806020036101000a8651049150600181018201935050808310156142e9576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b805160009061430357506000610e58565b60008090506000614317846020015161415c565b602085015185519181019250015b8082101561434557614336826141bf565b60019093019290910190614325565b50909392505050565b6040518060c001604052806000801916815260200160006001600160a01b03168152602001606081526020016060815260200160608152602001600067ffffffffffffffff1681525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b60408051608081018252600080825260208201819052918101829052606081019190915290565b604051806080016040528060006001600160a01b031681526020016060815260200160608152602001600063ffffffff1681525090565b604051806040016040528061444061444d565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe746865206d6573736167652073656e646572206d75737420626520696e63656e746976697a6520636f6e7472616374466f72206d696e69546f6b656e2c20746865207472616e7366657220616d6f756e74206d757374206e6f74206265206c657373207468616e2031756e7265636f676e697a6564207472616e736665724f75742073796e207061636b61676565787069726554696d65206d7573742062652074776f206d696e75746573206c61746572616d6f756e7420697320746f6f206c617267652c20657863656564206d6178696d756d206265703220746f6b656e20616d6f756e7474686520636f6e747261637420686173206e6f74206265656e20626f756e6420746f20616e79206265703220746f6b656e726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e736665724f757420424e4220616d6f756e7420616e64206d696e696d756d2072656c6179466565616d6f756e7420697320746f6f206c617267652c2075696e74323536206f766572666c6f774c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620726566756e644164647273696e76616c6964207472616e7366657220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e20746865206d696e696d756d2072656c6179466565746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374756e7265636f676e697a6564207472616e736665724f75742061636b207061636b6167654c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620616d6f756e7473746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d73672073656e646572206d75737420626520746f6b656e4d616e6167657274686520636f6e7472616374206e6f7420696e69742079657400000000000000726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e7366657220424e4220616d6f756e7420616e642072656c6179466565696e76616c696420726563656976656420424e4220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6ea2646970667358221220560ad3b1f9184c6b58a836a4c111faf5fdf5dc0e93dc1c013cd41cea18c69cbb64736f6c63430006040033" + }, + "0x0000000000000000000000000000000000001005": { + "balance": "0x0", + "code": "0x6080604052600436106102765760003560e01c80637e146cc51161014f578063af400681116100c1578063e75d72c71161007a578063e75d72c714610795578063e89a3020146107c8578063f9a2bbc7146107f2578063fc3e590814610807578063fd6a68791461081c578063fdd31fcd146108315761027d565b8063af400681146106ed578063bd4cc83014610717578063c81b166214610741578063dc927faf14610756578063dcae76ab1461076b578063e1c7392a146107805761027d565b8063a3c3c0ad11610113578063a3c3c0ad146105b3578063a78abc16146105c8578063a7c6a59d146105dd578063ab51bb96146105f2578063ac43175114610607578063ace9fcc2146106d85761027d565b80637e146cc51461052c578063930e1b091461054157806396713da9146105745780639dc0926214610589578063a1a11bf51461059e5761027d565b806343756e5c116101e85780636e47b482116101ac5780636e47b482146104645780636f93d2e61461047957806370fd5bad146104d857806374f2272d146104ed57806375d47a0a146105025780637942fd05146105175761027d565b806343756e5c146103e4578063493279b1146103f95780634bf6c8821461042557806351e806721461043a578063541333071461044f5761027d565b806312950c461161023a57806312950c46146103165780631b20087c1461032b5780631c643312146103405780633a975612146102825780633dffc3871461038657806340bb43c0146103b15761027d565b8063081e9d131461028257806308f2ec06146102a9578063093f2fc4146102be5780630bee7a67146102d357806310e06a76146103015761027d565b3661027d57005b600080fd5b34801561028e57600080fd5b50610297610864565b60408051918252519081900360200190f35b3480156102b557600080fd5b50610297610869565b3480156102ca57600080fd5b5061029761086e565b3480156102df57600080fd5b506102e8610873565b6040805163ffffffff9092168252519081900360200190f35b34801561030d57600080fd5b50610297610878565b34801561032257600080fd5b5061029761087e565b34801561033757600080fd5b50610297610884565b34801561034c57600080fd5b5061036a6004803603602081101561036357600080fd5b503561088a565b604080516001600160a01b039092168252519081900360200190f35b34801561039257600080fd5b5061039b610864565b6040805160ff9092168252519081900360200190f35b3480156103bd57600080fd5b50610297600480360360208110156103d457600080fd5b50356001600160a01b03166108b1565b3480156103f057600080fd5b5061036a6108c3565b34801561040557600080fd5b5061040e6108c9565b6040805161ffff9092168252519081900360200190f35b34801561043157600080fd5b5061039b6108ce565b34801561044657600080fd5b5061036a6108d3565b34801561045b57600080fd5b50610297610873565b34801561047057600080fd5b5061036a6108d9565b34801561048557600080fd5b506104c46004803603608081101561049c57600080fd5b506001600160a01b0381358116916020810135909116906040810135906060013515156108df565b604080519115158252519081900360200190f35b3480156104e457600080fd5b5061039b610cad565b3480156104f957600080fd5b50610297610cb2565b34801561050e57600080fd5b5061036a610cb8565b34801561052357600080fd5b5061039b610cbe565b34801561053857600080fd5b50610297610cc3565b34801561054d57600080fd5b506102976004803603602081101561056457600080fd5b50356001600160a01b0316610cc8565b34801561058057600080fd5b5061039b610cda565b34801561059557600080fd5b5061036a610cdf565b3480156105aa57600080fd5b5061036a610ce5565b3480156105bf57600080fd5b50610297610ceb565b3480156105d457600080fd5b506104c4610cf1565b3480156105e957600080fd5b50610297610cfa565b3480156105fe57600080fd5b506102e8610d00565b34801561061357600080fd5b506106d66004803603604081101561062a57600080fd5b81019060208101813564010000000081111561064557600080fd5b82018360208201111561065757600080fd5b8035906020019184600183028401116401000000008311171561067957600080fd5b91939092909160208101903564010000000081111561069757600080fd5b8201836020820111156106a957600080fd5b803590602001918460018302840111640100000000831117156106cb57600080fd5b509092509050610d05565b005b3480156106e457600080fd5b50610297611354565b3480156106f957600080fd5b506102976004803603602081101561071057600080fd5b503561135a565b34801561072357600080fd5b506102976004803603602081101561073a57600080fd5b50356113b5565b34801561074d57600080fd5b5061036a6113ce565b34801561076257600080fd5b5061036a6113d4565b34801561077757600080fd5b506102976113da565b34801561078c57600080fd5b506106d66113e0565b3480156107a157600080fd5b506106d6600480360360208110156107b857600080fd5b50356001600160a01b03166114a9565b3480156107d457600080fd5b5061036a600480360360208110156107eb57600080fd5b5035611602565b3480156107fe57600080fd5b5061036a61160f565b34801561081357600080fd5b5061039b611615565b34801561082857600080fd5b5061036a61161a565b34801561083d57600080fd5b506102976004803603602081101561085457600080fd5b50356001600160a01b0316611620565b600181565b602881565b605081565b606481565b600b5481565b60015481565b600c5481565b6006818154811061089757fe5b6000918252602090912001546001600160a01b0316905081565b60076020526000908152604090205481565b61100181565b606081565b600881565b61200081565b61100581565b6000805460ff16610937576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604482015290519081900360640190fd5b33612000146109775760405162461bcd60e51b815260040180806020018281038252602f815260200180612164602f913960400191505060405180910390fd5b600082156109fc57604080516309a99b4f60e41b8152611005600482015260248101869052905161100291639a99b4f09160448083019260209291908290030181600087803b1580156109c957600080fd5b505af11580156109dd573d6000803e3d6000fd5b505050506040513d60208110156109f357600080fd5b50519050610a75565b604080516309a99b4f60e41b8152611005600482015260248101869052905161100491639a99b4f09160448083019260209291908290030181600087803b158015610a4657600080fd5b505af1158015610a5a573d6000803e3d6000fd5b505050506040513d6020811015610a7057600080fd5b505190505b600c805460010190556000610a8982611632565b600954909150610a9f908263ffffffff61166116565b600955600a54610ac7908290610abb908563ffffffff61166116565b9063ffffffff6116c216565b600a556001600160a01b038716600090815260056020526040902054610b3357600680546001810182556000919091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319166001600160a01b0389161790555b6001600160a01b038088166000908152600560209081526040808320805460010190559289168252600790522054610bb157600880546001810182556000919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319166001600160a01b0388161790555b6001600160a01b038616600090815260076020526040902080546001019055600c54606411610ca057600b54600954600a5460408051938452602084019290925282820152517f2649b1b772a1a74bd332a67695e285317dd722941166595741c60a00fa65bb759181900360600190a16000610c2b611704565b90506000610c376119e8565b6001600160a01b0389166000908152600d6020526040902054909150610c75908290610c69908563ffffffff61166116565b9063ffffffff61166116565b6001600160a01b0389166000908152600d6020526040812091909155600b80546001019055600c5550505b5060019695505050505050565b600281565b60035481565b61100881565b600b81565b600581565b60056020526000908152604090205481565b600981565b61100781565b61100681565b600a5481565b60005460ff1681565b60045481565b600081565b3361100714610d455760405162461bcd60e51b815260040180806020018281038252602e8152602001806120a9602e913960400191505060405180910390fd5b60005460ff16610d865760405162461bcd60e51b81526004018080602001828103825260218152602001806120d76021913960400191505060405180910390fd5b610dfa84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601f81527f68656164657252656c61796572526577617264526174654d6f6c6563756c650060208201529150611c669050565b15610ec75760208114610e3e5760405162461bcd60e51b81526004018080602001828103825260328152602001806121936032913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610e7c91858580838501838280828437600092019190915250611d4d92505050565b9050600254811115610ebf5760405162461bcd60e51b8152600401808060200182810382526060815260200180611f826060913960600191505060405180910390fd5b6001556112c2565b610f2084848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805160608101909152602280825290925090506120876020830139611c66565b15610ff85760208114610f645760405162461bcd60e51b815260040180806020018281038252602e815260200180612038602e913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610fa291858580838501838280828437600092019190915250611d4d92505050565b90508015801590610fb557506001548110155b610ff05760405162461bcd60e51b815260040180806020018281038252606c8152602001806120f8606c913960800191505060405180910390fd5b6002556112c2565b61106c84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601a81527f63616c6c6572436f6d70656e736174696f6e4d6f6c6563756c6500000000000060208201529150611c669050565b1561113957602081146110b05760405162461bcd60e51b815260040180806020018281038252602e815260200180612038602e913960400191505060405180910390fd5b604080516020601f84018190048102820181019092528281526000916110ee91858580838501838280828437600092019190915250611d4d92505050565b90506004548111156111315760405162461bcd60e51b8152600401808060200182810382526056815260200180611fe26056913960600191505060405180910390fd5b6003556112c2565b6111ad84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601d81527f63616c6c6572436f6d70656e736174696f6e44656e6f6d696e61746f7200000060208201529150611c669050565b1561128557602081146111f15760405162461bcd60e51b815260040180806020018281038252602e815260200180612038602e913960400191505060405180910390fd5b604080516020601f840181900481028201810190925282815260009161122f91858580838501838280828437600092019190915250611d4d92505050565b9050801580159061124257506003548110155b61127d5760405162461bcd60e51b8152600401808060200182810382526061815260200180611f216061913960800191505060405180910390fd5b6004556112c2565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b60025481565b60006028821161136b5750806113b0565b81602810801561137c575060508211155b15611389575060286113b0565b60508211801561139a5750606e8211155b156113aa575060788190036113b0565b50600481045b919050565b6000602882116113c65750806113b0565b5060286113b0565b61100281565b61100381565b60095481565b60005460ff1615611438576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b60005460ff1615611486576040805162461bcd60e51b8152602060048201526013602482015272185b1c9958591e481a5b9a5d1a585b1a5e9959606a1b604482015290519081900360640190fd5b60018080556005600255600381905560506004556000805460ff19169091179055565b6001600160a01b0381166000908152600d602052604090205480611508576040805162461bcd60e51b81526020600482015260116024820152701b9bc81c995b185e595c881c995dd85c99607a1b604482015290519081900360640190fd5b6001600160a01b0382166000818152600d60205260408082208290555184929184156108fc02918591818181858888f193505050506115b85760405161100290819084156108fc029085906000818181858888f19350505050158015611572573d6000803e3d6000fd5b506040805161100281526020810185905281517f24502838a334c8f2bb2ee1f8262a4fa7183e4489a717e96cc824e325f8b39e11929181900390910190a15050506115ff565b604080516001600160a01b03851681526020810184905281517f24502838a334c8f2bb2ee1f8262a4fa7183e4489a717e96cc824e325f8b39e11929181900390910190a150505b50565b6008818154811061089757fe5b61100081565b600381565b61100481565b600d6020526000908152604090205481565b600061165b60025461164f60015485611d5290919063ffffffff16565b9063ffffffff611dab16565b92915050565b6000828201838110156116bb576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b60006116bb83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ded565b600954600680546040805160208084028201810190925282815260009493859360609383018282801561176057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611742575b5050505050905060608151604051908082528060200260200182016040528015611794578160200160208202803683370190505b50905060005b82518110156118215760008382815181106117b157fe5b6020026020010151905060006117eb60056000846001600160a01b03166001600160a01b03168152602001908152602001600020546113b5565b9050808484815181106117fa57fe5b6020908102919091010152611815868263ffffffff61166116565b9550505060010161179a565b50600061183f60045461164f60035488611d5290919063ffffffff16565b9050611851858263ffffffff6116c216565b94508460015b845181101561192857600061188c8761164f8a88868151811061187657fe5b6020026020010151611d5290919063ffffffff16565b90506118d981600d60008986815181106118a257fe5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205461166190919063ffffffff16565b600d60008885815181106118e957fe5b6020908102919091018101516001600160a01b031682528101919091526040016000205561191d838263ffffffff6116c216565b925050600101611857565b5061193e81600d6000876000815181106118a257fe5b600d60008660008151811061194f57fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002081905550600060098190555060008090505b84518110156119d057600560008683815181106119a257fe5b6020908102919091018101516001600160a01b03168252810191909152604001600090812055600101611989565b506119dd60066000611ee9565b509450505050505b90565b600a546008805460408051602080840282018101909252828152600094938593606093830182828015611a4457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611a26575b5050505050905060608151604051908082528060200260200182016040528015611a78578160200160208202803683370190505b50905060005b8251811015611af7576000838281518110611a9557fe5b602002602001015190506000611acf60076000846001600160a01b03166001600160a01b031681526020019081526020016000205461135a565b905080848481518110611ade57fe5b6020908102919091010152949094019350600101611a7e565b506000611b1560045461164f60035488611d5290919063ffffffff16565b9050611b27858263ffffffff6116c216565b94508460015b8451811015611bb1576000611b4c8761164f8a88868151811061187657fe5b9050611b6281600d60008986815181106118a257fe5b600d6000888581518110611b7257fe5b6020908102919091018101516001600160a01b0316825281019190915260400160002055611ba6838263ffffffff6116c216565b925050600101611b2d565b50611bc781600d6000876000815181106118a257fe5b600d600086600081518110611bd857fe5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020819055506000600a8190555060008090505b8451811015611c595760076000868381518110611c2b57fe5b6020908102919091018101516001600160a01b03168252810191909152604001600090812055600101611c12565b506119dd60086000611ee9565b6000816040516020018082805190602001908083835b60208310611c9b5780518252601f199092019160209182019101611c7c565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310611d095780518252601f199092019160209182019101611cea565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b600082611d615750600061165b565b82820282848281611d6e57fe5b04146116bb5760405162461bcd60e51b81526004018080602001828103825260218152602001806120666021913960400191505060405180910390fd5b60006116bb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611e84565b60008184841115611e7c5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e41578181015183820152602001611e29565b50505050905090810190601f168015611e6e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008183611ed35760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315611e41578181015183820152602001611e29565b506000838581611edf57fe5b0495945050505050565b50805460008255906000526020600020908101906115ff91906119e591905b80821115611f1c5760008155600101611f08565b509056fe746865206e657743616c6c6572436f6d70656e736174696f6e44656e6f6d696e61746f72206d757374206e6f74206265207a65726f20616e64206e6f206c657373207468616e2063616c6c6572436f6d70656e736174696f6e4d6f6c6563756c656e65772068656164657252656c61796572526577617264526174654d6f6c6563756c652073686f756c646e27742062652067726561746572207468616e2068656164657252656c617965725265776172645261746544656e6f6d696e61746f726e65772063616c6c6572436f6d70656e736174696f6e4d6f6c6563756c652073686f756c646e27742062652067726561746572207468616e2063616c6c6572436f6d70656e736174696f6e44656e6f6d696e61746f726c656e677468206f6620726577617264466f7256616c696461746f725365744368616e6765206d69736d61746368536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7768656164657252656c617965725265776172645261746544656e6f6d696e61746f72746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374636f6e747261637420686173206e6f74206265656e20696e697469616c697a6564746865206e65772068656164657252656c617965725265776172645261746544656e6f6d696e61746f72206d757374206e6f74206265207a65726f20616e64206e6f206c657373207468616e2068656164657252656c61796572526577617264526174654d6f6c6563756c65746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e74726163746c656e677468206f662068656164657252656c61796572526577617264526174654d6f6c6563756c65206d69736d61746368a264697066735822122046aa8f3564133ae19cf0f29fe8a7ebdf2a5f74f0268c42431d82384fe137b2ed64736f6c63430006040033" + }, + "0x0000000000000000000000000000000000001006": { + "balance": "0x0", + "code": "0x6080604052600436106101c25760003560e01c806395468d26116100f7578063c81b166211610095578063f9a2bbc711610064578063f9a2bbc714610529578063fb7cfdd71461053e578063fc3e590814610553578063fd6a687914610568576101c2565b8063c81b1662146104d5578063dc927faf146104ea578063e1c7392a146104ff578063e79a198f14610514576101c2565b8063a1a11bf5116100d1578063a1a11bf5146103c7578063a78abc16146103dc578063ab51bb96146103f1578063ac43175114610406576101c2565b806395468d261461038857806396713da91461039d5780639dc09262146103b2576101c2565b8063541d55481161016457806370fd5bad1161013e57806370fd5bad1461033457806375d47a0a146103495780637942fd051461035e5780637ae2308814610373576101c2565b8063541d5548146102b15780636a87d780146102f85780636e47b4821461031f576101c2565b806343756e5c116101a057806343756e5c1461022a578063493279b11461025b5780634bf6c8821461028757806351e806721461029c576101c2565b80630bee7a67146101c75780631aa3a008146101f55780633dffc387146101ff575b600080fd5b3480156101d357600080fd5b506101dc61057d565b6040805163ffffffff9092168252519081900360200190f35b6101fd610582565b005b34801561020b57600080fd5b5061021461077d565b6040805160ff9092168252519081900360200190f35b34801561023657600080fd5b5061023f610782565b604080516001600160a01b039092168252519081900360200190f35b34801561026757600080fd5b50610270610788565b6040805161ffff9092168252519081900360200190f35b34801561029357600080fd5b5061021461078d565b3480156102a857600080fd5b5061023f610792565b3480156102bd57600080fd5b506102e4600480360360208110156102d457600080fd5b50356001600160a01b0316610798565b604080519115158252519081900360200190f35b34801561030457600080fd5b5061030d6107b6565b60408051918252519081900360200190f35b34801561032b57600080fd5b5061023f6107bc565b34801561034057600080fd5b506102146107c2565b34801561035557600080fd5b5061023f6107c7565b34801561036a57600080fd5b506102146107cd565b34801561037f57600080fd5b5061030d6107d2565b34801561039457600080fd5b5061030d6107df565b3480156103a957600080fd5b506102146107eb565b3480156103be57600080fd5b5061023f6107f0565b3480156103d357600080fd5b5061023f6107f6565b3480156103e857600080fd5b506102e46107fc565b3480156103fd57600080fd5b506101dc610805565b34801561041257600080fd5b506101fd6004803603604081101561042957600080fd5b81019060208101813564010000000081111561044457600080fd5b82018360208201111561045657600080fd5b8035906020019184600183028401116401000000008311171561047857600080fd5b91939092909160208101903564010000000081111561049657600080fd5b8201836020820111156104a857600080fd5b803590602001918460018302840111640100000000831117156104ca57600080fd5b50909250905061080a565b3480156104e157600080fd5b5061023f610c2c565b3480156104f657600080fd5b5061023f610c32565b34801561050b57600080fd5b506101fd610c38565b34801561052057600080fd5b506101fd610cba565b34801561053557600080fd5b5061023f610e73565b34801561054a57600080fd5b5061030d610e79565b34801561055f57600080fd5b50610214610e7f565b34801561057457600080fd5b5061023f610e84565b606481565b3360009081526004602052604090205460ff16156105df576040805162461bcd60e51b81526020600482015260156024820152741c995b185e595c88185b1c9958591e48195e1a5cdd605a1b604482015290519081900360640190fd5b60005460ff16610632576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b61063b33610e8a565b156106775760405162461bcd60e51b815260040180806020018281038252602781526020018061109c6027913960400191505060405180910390fd5b3332146106c1576040805162461bcd60e51b81526020600482015260136024820152721b9bc81c1c9bde1e481a5cc8185b1b1bddd959606a1b604482015290519081900360640190fd5b60015434146107015760405162461bcd60e51b81526004018080602001828103825260258152602001806110776025913960400191505060405180910390fd5b604080518082018252600180548252600254602080840191825233600081815260038352868120955186559251948401949094556004815290849020805460ff1916909217909155825191825291517fdb33a09d38b59a8fa8b7d92a1d82c8015e99f05f67ae9c9ae623157767959496929181900390910190a1565b600181565b61100181565b606081565b600881565b61200081565b6001600160a01b031660009081526004602052604090205460ff1690565b60025481565b61100581565b600281565b61100881565b600b81565b68056bc75e2d6310000081565b67016345785d8a000081565b600981565b61100781565b61100681565b60005460ff1681565b600081565b60005460ff1661085d576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b336110071461089d5760405162461bcd60e51b815260040180806020018281038252602e8152602001806110c3602e913960400191505060405180910390fd5b61090384848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e1c995c5d5a5c995911195c1bdcda5d608a1b60208201529150610e909050565b15610a0657602081146109475760405162461bcd60e51b81526004018080602001828103825260228152602001806110f16022913960400191505060405180910390fd5b604080516020601f840181900481028201810190925282815260009161098591858580838501838280828437600092019190915250610f7792505050565b90506001811180156109a05750683635c9adc5dea000008111155b80156109ad575060025481115b6109fe576040805162461bcd60e51b815260206004820181905260248201527f7468652072657175697265644465706f736974206f7574206f662072616e6765604482015290519081900360640190fd5b600155610b9a565b610a6184848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260048152636475657360e01b60208201529150610e909050565b15610b5d5760208114610abb576040805162461bcd60e51b815260206004820152601760248201527f6c656e677468206f662064756573206d69736d61746368000000000000000000604482015290519081900360640190fd5b604080516020601f8401819004810282018101909252828152600091610af991858580838501838280828437600092019190915250610f7792505050565b9050600081118015610b0c575060015481105b610b55576040805162461bcd60e51b81526020600482015260156024820152747468652064756573206f7574206f662072616e676560581b604482015290519081900360640190fd5b600255610b9a565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b61100281565b61100381565b60005460ff1615610c90576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b68056bc75e2d63100000600190815567016345785d8a00006002556000805460ff19169091179055565b3360009081526004602052604090205460ff16610d15576040805162461bcd60e51b81526020600482015260146024820152731c995b185e595c88191bc81b9bdd08195e1a5cdd60621b604482015290519081900360640190fd5b60005460ff16610d68576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b610d7061105c565b5033600081815260036020908152604091829020825180840190935280548084526001909101549183018290529192916108fc91610db4919063ffffffff610f7c16565b6040518115909202916000818181858888f19350505050158015610ddc573d6000803e3d6000fd5b50602081015160405161100291829181156108fc0291906000818181858888f19350505050158015610e12573d6000803e3d6000fd5b50336000818152600460209081526040808320805460ff191690556003825280832083815560010192909255815192835290517fd17202129b83db7880d6b9f25df81c58ad46f7e0e2c92236b1aa10663a4876679281900390910190a15050565b61100081565b60015481565b600381565b61100481565b3b151590565b6000816040516020018082805190602001908083835b60208310610ec55780518252601f199092019160209182019101610ea6565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310610f335780518252601f199092019160209182019101610f14565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b6000610fbe83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610fc5565b9392505050565b600081848411156110545760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611019578181015183820152602001611001565b50505050905090810190601f1680156110465780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60405180604001604052806000815260200160008152509056fe6465706f7369742076616c7565206973206e6f742065786163746c79207468652073616d65636f6e7472616374206973206e6f7420616c6c6f77656420746f20626520612072656c61796572746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662072657175697265644465706f736974206d69736d61746368a264697066735822122011778451ed6d3e3757ce2e74acfc7fa17bf5d16f07168a6ce073d7c91e583c8c64736f6c63430006040033" + }, + "0x0000000000000000000000000000000000001007": { + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b506004361061018e5760003560e01c8063831d65d1116100de578063ab51bb9611610097578063dc927faf11610071578063dc927faf14610486578063f9a2bbc71461048e578063fc3e590814610496578063fd6a68791461049e5761018e565b8063ab51bb96146103fc578063c81b166214610404578063c8509d811461040c5761018e565b8063831d65d11461034457806396713da9146103c05780639ab1a373146103c85780639dc09262146103d0578063a1a11bf5146103d8578063a78abc16146103e05761018e565b8063493279b11161014b5780636e47b482116101255780636e47b4821461032457806370fd5bad1461032c57806375d47a0a146103345780637942fd051461033c5761018e565b8063493279b1146102f55780634bf6c8821461031457806351e806721461031c5761018e565b80630bee7a67146101935780631182b875146101b45780633a21baae146102a35780633dffc387146102ab57806343756e5c146102c95780634900c4ea146102ed575b600080fd5b61019b6104a6565b6040805163ffffffff9092168252519081900360200190f35b61022e600480360360408110156101ca57600080fd5b60ff82351691908101906040810160208201356401000000008111156101ef57600080fd5b82018360208201111561020157600080fd5b8035906020019184600183028401116401000000008311171561022357600080fd5b5090925090506104ab565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610268578181015183820152602001610250565b50505050905090810190601f1680156102955780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61019b61059a565b6102b361059f565b6040805160ff9092168252519081900360200190f35b6102d16105a4565b604080516001600160a01b039092168252519081900360200190f35b6102b36105aa565b6102fd6105af565b6040805161ffff9092168252519081900360200190f35b6102b36105b4565b6102d16105b9565b6102d16105bf565b6102b36105c5565b6102d16105ca565b6102b36105d0565b6103be6004803603604081101561035a57600080fd5b60ff823516919081019060408101602082013564010000000081111561037f57600080fd5b82018360208201111561039157600080fd5b803590602001918460018302840111640100000000831117156103b357600080fd5b5090925090506105d5565b005b6102b3610667565b61019b61066c565b6102d1610671565b6102d1610677565b6103e861067d565b604080519115158252519081900360200190f35b61019b6105aa565b6102d1610686565b6103be6004803603604081101561042257600080fd5b60ff823516919081019060408101602082013564010000000081111561044757600080fd5b82018360208201111561045957600080fd5b8035906020019184600183028401116401000000008311171561047b57600080fd5b50909250905061068c565b6102d1610703565b6102d1610709565b6102b361070f565b6102d1610714565b606481565b606033612000146104ed5760405162461bcd60e51b815260040180806020018281038252602f8152602001806113e7602f913960400191505060405180910390fd5b6104f5611382565b600061053685858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061071a92505050565b91509150806105525761054960646107e0565b92505050610593565b600061055d8361084a565b905063ffffffff811661058457505060408051600081526020810190915291506105939050565b61058d816107e0565b93505050505b9392505050565b606681565b600181565b61100181565b600081565b606081565b600881565b61200081565b61100581565b600281565b61100881565b600b81565b33612000146106155760405162461bcd60e51b815260040180806020018281038252602f8152602001806113e7602f913960400191505060405180910390fd5b6040805162461bcd60e51b815260206004820152601e60248201527f7265636569766520756e65787065637465642061636b207061636b6167650000604482015290519081900360640190fd5b505050565b600981565b606581565b61100781565b61100681565b60005460ff1681565b61100281565b33612000146106cc5760405162461bcd60e51b815260040180806020018281038252602f8152602001806113e7602f913960400191505060405180910390fd5b60405162461bcd60e51b81526004018080602001828103825260238152602001806114166023913960400191505060405180910390fd5b61100381565b61100081565b600381565b61100481565b610722611382565b600061072c611382565b6107346113ac565b61074561074086610beb565b610c10565b90506000805b61075483610c5a565b156107d357806107765761076f61076a84610c7b565b610cc9565b84526107cb565b80600114156107955761078b61076a84610c7b565b60208501526107cb565b80600214156107c6576107af6107aa84610c7b565b610d42565b6001600160a01b03166040850152600191506107cb565b6107d3565b60010161074b565b5091935090915050915091565b604080516001808252818301909252606091829190816020015b60608152602001906001900390816107fa5790505090506108208363ffffffff16610d62565b8160008151811061082d57fe5b602002602001018190525061084181610d75565b9150505b919050565b60006108598260400151610dff565b6108c557604080516020808252601c908201527f74686520746172676574206973206e6f74206120636f6e7472616374000000008183015290517f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb29181900360600190a1506065610845565b81604001516001600160a01b031663ac431751836000015184602001516040518363ffffffff1660e01b8152600401808060200180602001838103835285818151815260200191508051906020019080838360005b8381101561093257818101518382015260200161091a565b50505050905090810190601f16801561095f5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b8381101561099257818101518382015260200161097a565b50505050905090810190601f1680156109bf5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156109e057600080fd5b505af19250505080156109f1575060015b610be3576040516000815260443d1015610a0d57506000610aaa565b60046000803e60005160e01c6308c379a08114610a2e576000915050610aaa565b60043d036004833e81513d602482011167ffffffffffffffff82111715610a5a57600092505050610aaa565b808301805167ffffffffffffffff811115610a7c576000945050505050610aaa565b8060208301013d8601811115610a9a57600095505050505050610aaa565b601f01601f191660405250925050505b80610ab55750610b58565b7f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2816040518080602001828103825283818151815260200191508051906020019080838360005b83811015610b14578181015183820152602001610afc565b50505050905090810190601f168015610b415780820380516001836020036101000a031916815260200191505b509250505060405180910390a16066915050610845565b3d808015610b82576040519150601f19603f3d011682016040523d82523d6000602084013e610b87565b606091505b5060408051602080825283518183015283517f1279f84165b4fd69c35e1f338ff107231b036c655cd1688851e011ce617c4e8d938593928392918301919085019080838360008315610b14578181015183820152602001610afc565b506000919050565b610bf36113cc565b506040805180820190915281518152602082810190820152919050565b610c186113ac565b610c2182610e05565b610c2a57600080fd5b6000610c398360200151610e3f565b60208085015160408051808201909152868152920190820152915050919050565b6000610c646113cc565b505080518051602091820151919092015191011190565b610c836113cc565b610c8c82610c5a565b610c9557600080fd5b60208201516000610ca582610ea2565b80830160209586015260408051808201909152908152938401919091525090919050565b8051606090610cd757600080fd5b6000610ce68360200151610e3f565b83516040805191839003808352601f19601f8201168301602001909152919250606090828015610d1d576020820181803683370190505b5090506000816020019050610d39848760200151018285610fd5565b50949350505050565b8051600090601514610d5357600080fd5b610d5c82611020565b92915050565b6060610d5c610d70836110d5565b6111bb565b6060815160001415610d965750604080516000815260208101909152610845565b606082600081518110610da557fe5b602002602001015190506000600190505b8351811015610de657610ddc82858381518110610dcf57fe5b602002602001015161120d565b9150600101610db6565b50610841610df9825160c060ff1661128a565b8261120d565b3b151590565b8051600090610e1657506000610845565b6020820151805160001a9060c0821015610e3557600092505050610845565b5060019392505050565b8051600090811a6080811015610e59576000915050610845565b60b8811080610e74575060c08110801590610e74575060f881105b15610e83576001915050610845565b60c0811015610e975760b519019050610845565b60f519019050610845565b80516000908190811a6080811015610ebd5760019150610fce565b60b8811015610ed257607e1981019150610fce565b60c0811015610f4c57600060b78203600186019550806020036101000a865104915060018101820193505080831015610f46576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50610fce565b60f8811015610f615760be1981019150610fce565b600060f78203600186019550806020036101000a865104915060018101820193505080831015610fcc576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b80610fdf57610662565b5b60208110610fff578251825260209283019290910190601f1901610fe0565b915181516020939093036101000a6000190180199091169216919091179052565b80516000901580159061103557508151602110155b61103e57600080fd5b600061104d8360200151610e3f565b905080836000015110156110a8576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015610d3957506020919091036101000a90049392505050565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166111195750601861113d565b6fffffffffffffffffffffffffffffffff1984166111395750601061113d565b5060005b60208110156111735781818151811061115257fe5b01602001516001600160f81b0319161561116b57611173565b60010161113d565b60008160200390506060816040519080825280601f01601f1916602001820160405280156111a8576020820181803683370190505b5080830196909652508452509192915050565b6060815160011480156111ed5750607f60f81b826000815181106111db57fe5b01602001516001600160f81b03191611155b156111f9575080610845565b610d5c61120b8351608060ff1661128a565b835b6060806040519050835180825260208201818101602087015b8183101561123e578051835260209283019201611226565b50855184518101855292509050808201602086015b8183101561126b578051835260209283019201611253565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106112da576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b604080516001808252818301909252606091602082018180368337019050509050603784116113345782840160f81b8160008151811061131657fe5b60200101906001600160f81b031916908160001a9053509050610d5c565b606061133f856110d5565b90508381510160370160f81b8260008151811061135857fe5b60200101906001600160f81b031916908160001a905350611379828261120d565b95945050505050565b6040518060600160405280606081526020016060815260200160006001600160a01b031681525090565b60405180604001604052806113bf6113cc565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e74726163747265636569766520756e6578706563746564206661696c2061636b207061636b616765a2646970667358221220ea2b2b402a564a222b3f3e7c0f671622652543c9c5f6cb6c7b8db265ae9ebe4564736f6c63430006040033" + }, + "0x0000000000000000000000000000000000001008": { + "balance": "0x0", + "code": "0x6080604052600436106102465760003560e01c806375d47a0a11610139578063ab51bb96116100b6578063dc6f5e901161007a578063dc6f5e90146108df578063dc927faf14610975578063f9a2bbc71461098a578063fc3e5908146108df578063fd6a68791461099f578063fe3a2af5146104fd57610246565b8063ab51bb96146108b5578063c81b1662146108ca578063c8509d81146107c5578063c8e704a4146108df578063d117a110146108f457610246565b806395b9ad26116100fd57806395b9ad261461084c57806396713da9146108615780639dc0926214610876578063a1a11bf51461088b578063a78abc16146108a057610246565b806375d47a0a146106e757806377d9dae8146106fc5780637942fd05146107b05780637d078e13146103c8578063831d65d1146107c557610246565b80634a688818116101c75780635f558f861161018b5780635f558f86146105515780636b3f1307146105665780636e47b4821461062e57806370fd5bad1461055157806372c4e0861461064357610246565b80634a688818146104fd5780634bc81c00146105125780634bf6c8821461024b57806351e80672146105275780635d499b1b1461053c57610246565b806323996b531161020e57806323996b53146103c85780633dffc387146103c857806343756e5c146103dd578063445fcefe1461040e578063493279b1146104d157610246565b8063077b8f351461024b5780630bee7a67146102765780630f212b1b146102a45780631182b875146102b95780631f91600b146103b3575b600080fd5b34801561025757600080fd5b506102606109b4565b6040805160ff9092168252519081900360200190f35b34801561028257600080fd5b5061028b6109b9565b6040805163ffffffff9092168252519081900360200190f35b3480156102b057600080fd5b506102606109be565b3480156102c557600080fd5b5061033e600480360360408110156102dc57600080fd5b60ff8235169190810190604081016020820135600160201b81111561030057600080fd5b82018360208201111561031257600080fd5b803590602001918460018302840111600160201b8311171561033357600080fd5b5090925090506109c3565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610378578181015183820152602001610360565b50505050905090810190601f1680156103a55780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103bf57600080fd5b50610260610a4c565b3480156103d457600080fd5b50610260610a51565b3480156103e957600080fd5b506103f2610a56565b604080516001600160a01b039092168252519081900360200190f35b34801561041a57600080fd5b506104bf6004803603602081101561043157600080fd5b810190602081018135600160201b81111561044b57600080fd5b82018360208201111561045d57600080fd5b803590602001918460018302840111600160201b8311171561047e57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610a5c945050505050565b60408051918252519081900360200190f35b3480156104dd57600080fd5b506104e6610bbb565b6040805161ffff9092168252519081900360200190f35b34801561050957600080fd5b50610260610bc0565b34801561051e57600080fd5b50610260610bc5565b34801561053357600080fd5b506103f2610bca565b34801561054857600080fd5b506104bf610bd0565b34801561055d57600080fd5b50610260610bd9565b61061a6004803603604081101561057c57600080fd5b6001600160a01b038235169190810190604081016020820135600160201b8111156105a657600080fd5b8201836020820111156105b857600080fd5b803590602001918460018302840111600160201b831117156105d957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610bde945050505050565b604080519115158252519081900360200190f35b34801561063a57600080fd5b506103f2611460565b61061a6004803603602081101561065957600080fd5b810190602081018135600160201b81111561067357600080fd5b82018360208201111561068557600080fd5b803590602001918460018302840111600160201b831117156106a657600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611466945050505050565b3480156106f357600080fd5b506103f26118b4565b61061a6004803603604081101561071257600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561073c57600080fd5b82018360208201111561074e57600080fd5b803590602001918460018302840111600160201b8311171561076f57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506118ba945050505050565b3480156107bc57600080fd5b50610260611dc1565b3480156107d157600080fd5b5061084a600480360360408110156107e857600080fd5b60ff8235169190810190604081016020820135600160201b81111561080c57600080fd5b82018360208201111561081e57600080fd5b803590602001918460018302840111600160201b8311171561083f57600080fd5b509092509050611dc6565b005b34801561085857600080fd5b50610260611e79565b34801561086d57600080fd5b50610260611e7e565b34801561088257600080fd5b506103f2611e83565b34801561089757600080fd5b506103f2611e89565b3480156108ac57600080fd5b5061061a611e8f565b3480156108c157600080fd5b5061028b610bc0565b3480156108d657600080fd5b506103f2611e98565b3480156108eb57600080fd5b50610260611e9e565b34801561090057600080fd5b5061091e6004803603602081101561091757600080fd5b5035611ea3565b6040805160ff988916815260208101979097526001600160a01b03909516868601526060860193909352608085019190915290931660a083015267ffffffffffffffff90921660c082015290519081900360e00190f35b34801561098157600080fd5b506103f2611efb565b34801561099657600080fd5b506103f2611f01565b3480156109ab57600080fd5b506103f2611f07565b600881565b606481565b600681565b60603361200014610a055760405162461bcd60e51b815260040180806020018281038252602f8152602001806132a0602f913960400191505060405180910390fd5b610a4483838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611f0d92505050565b949350505050565b600481565b600181565b61100181565b6020810151600090610a6c613168565b50600081815260016020818152604092839020835160e081018552815460ff9081168252938201549281019290925260028101546001600160a01b031693820184905260038101546060830152600481015460808301526005015491821660a082015261010090910467ffffffffffffffff1660c082015290610af457600092505050610bb6565b600081604001516001600160a01b03166370a082316110046040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015610b5257600080fd5b505afa158015610b66573d6000803e3d6000fd5b505050506040513d6020811015610b7c57600080fd5b505160808301516060840151919250600091610b9d9163ffffffff61219e16565b9050610baf818363ffffffff61219e16565b9450505050505b919050565b606081565b600081565b600581565b61200081565b6402540be40081565b600281565b600080610bea836121e7565b9050610bf4613168565b50600081815260016020818152604092839020835160e081018552815460ff90811682529382015492810183905260028201546001600160a01b03169481019490945260038101546060850152600481015460808501526005015491821660a084015261010090910467ffffffffffffffff1660c0830152610cba576040805162461bcd60e51b815260206004820152601a602482015279189a5b99081c995c5d595cdd08191bd95cdb89dd08195e1a5cdd60321b604482015290519081900360640190fd5b6000610cd78260800151836060015161219e90919063ffffffff16565b905081604001516001600160a01b0316866001600160a01b031614610d2d5760405162461bcd60e51b815260040180806020018281038252604581526020018061322d6045913960600191505060405180910390fd5b336001600160a01b0316866001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b158015610d7057600080fd5b505afa158015610d84573d6000803e3d6000fd5b505050506040513d6020811015610d9a57600080fd5b50516001600160a01b031614610de15760405162461bcd60e51b815260040180806020018281038252602e815260200180613272602e913960400191505060405180910390fd5b604080516370a0823160e01b8152611004600482015290516000916001600160a01b038916916370a0823191602480820192602092909190829003018186803b158015610e2d57600080fd5b505afa158015610e41573d6000803e3d6000fd5b505050506040513d6020811015610e5757600080fd5b505160408051636eb1769f60e11b815233600482015230602482015290519192508391610ee89184916001600160a01b038c169163dd62ed3e916044808301926020929190829003018186803b158015610eb057600080fd5b505afa158015610ec4573d6000803e3d6000fd5b505050506040513d6020811015610eda57600080fd5b50519063ffffffff6121ee16565b1015610f3b576040805162461bcd60e51b815260206004820152601760248201527f616c6c6f77616e6365206973206e6f7420656e6f756768000000000000000000604482015290519081900360640190fd5b600034905060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b158015610f7d57600080fd5b505afa158015610f91573d6000803e3d6000fd5b505050506040513d6020811015610fa757600080fd5b50519050808210801590610fc057506402540be4008206155b610ffb5760405162461bcd60e51b81526004018080602001828103825260378152602001806131f66037913960400191505060405180910390fd5b6000611007868b612248565b905063ffffffff8116611206576001600160a01b038a166323b872dd33611004611037898963ffffffff61219e16565b6040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b031681526020018281526020019350505050602060405180830381600087803b15801561109f57600080fd5b505af11580156110b3573d6000803e3d6000fd5b505050506040513d60208110156110c957600080fd5b5050602086015160408088015160a089015182516323bfccdb60e21b815260048101949094526001600160a01b03909116602484015260ff1660448301525161100491638eff336c91606480830192600092919082900301818387803b15801561113257600080fd5b505af1158015611146573d6000803e3d6000fd5b50505050896001600160a01b03167f78e7dd9aefcdbf795c4936a66f7dc6d41bb56637b54f561a6bf7829dca3348a88a8860600151886040518080602001848152602001838152602001828103825285818151815260200191508051906020019080838360005b838110156111c55781810151838201526020016111ad565b50505050905090810190601f1680156111f25780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a26112be565b896001600160a01b03167f831c0ef4d93bda3bce08b69ae3f29ef1a6e052b833200988554158494405a1078a8360405180806020018363ffffffff1663ffffffff168152602001828103825284818151815260200191508051906020019080838360005b8381101561128257818101518382015260200161126a565b50505050905090810190601f1680156112af5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a25b60008781526001602081905260408220805460ff191681559081018290556002810180546001600160a01b0319169055600381018290556004810191909155600501805468ffffffffffffffffff191690556113186131a4565b5060408051808201825263ffffffff831681526020810189905290516110049085156108fc029086906000818181858888f19350505050158015611360573d6000803e3d6000fd5b5061200063f7a251d760016113748461269f565b611389886402540be40063ffffffff61272916565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156113e75781810151838201526020016113cf565b50505050905090810190601f1680156114145780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561143557600080fd5b505af1158015611449573d6000803e3d6000fd5b505050506001985050505050505050505b92915050565b61100581565b600080611472836121e7565b905061147c613168565b50600081815260016020818152604092839020835160e081018552815460ff90811682529382015492810183905260028201546001600160a01b03169481019490945260038101546060850152600481015460808501526005015491821660a084015261010090910467ffffffffffffffff1660c0830152611542576040805162461bcd60e51b815260206004820152601a602482015279189a5b99081c995c5d595cdd08191bd95cdb89dd08195e1a5cdd60321b604482015290519081900360640190fd5b428160c0015167ffffffffffffffff16106115a4576040805162461bcd60e51b815260206004820152601b60248201527f62696e642072657175657374206973206e6f7420657870697265640000000000604482015290519081900360640190fd5b600034905060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b1580156115e657600080fd5b505afa1580156115fa573d6000803e3d6000fd5b505050506040513d602081101561161057600080fd5b5051905080821080159061162957506402540be4008206155b6116645760405162461bcd60e51b81526004018080602001828103825260378152602001806131f66037913960400191505060405180910390fd5b60008481526001602081905260408220805460ff191681559081018290556002810180546001600160a01b0319169055600381018290556004810191909155600501805468ffffffffffffffffff191690556116be6131a4565b50604080518082018252600181526020810186905290516110049084156108fc029085906000818181858888f19350505050158015611701573d6000803e3d6000fd5b5061200063f7a251d760016117158461269f565b61172a876402540be40063ffffffff61272916565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611788578181015183820152602001611770565b50505050905090810190601f1680156117b55780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156117d657600080fd5b505af11580156117ea573d6000803e3d6000fd5b5050505083604001516001600160a01b03167f831c0ef4d93bda3bce08b69ae3f29ef1a6e052b833200988554158494405a10788600160405180806020018360ff1663ffffffff168152602001828103825284818151815260200191508051906020019080838360005b8381101561186c578181015183820152602001611854565b50505050905090810190601f1680156118995780820380516001836020036101000a031916815260200191505b50935050505060405180910390a25060019695505050505050565b61100881565b6000806118c6836121e7565b90506118d0613168565b50600081815260016020818152604092839020835160e081018552815460ff90811682529382015492810183905260028201546001600160a01b03169481019490945260038101546060850152600481015460808501526005015491821660a084015261010090910467ffffffffffffffff1660c0830152611996576040805162461bcd60e51b815260206004820152601a602482015279189a5b99081c995c5d595cdd08191bd95cdb89dd08195e1a5cdd60321b604482015290519081900360640190fd5b80604001516001600160a01b0316856001600160a01b0316146119ea5760405162461bcd60e51b815260040180806020018281038252604581526020018061322d6045913960600191505060405180910390fd5b336001600160a01b0316856001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b158015611a2d57600080fd5b505afa158015611a41573d6000803e3d6000fd5b505050506040513d6020811015611a5757600080fd5b50516001600160a01b031614611ab4576040805162461bcd60e51b815260206004820152601b60248201527f6f6e6c79206265703265206f776e65722063616e2072656a6563740000000000604482015290519081900360640190fd5b600034905060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b158015611af657600080fd5b505afa158015611b0a573d6000803e3d6000fd5b505050506040513d6020811015611b2057600080fd5b50519050808210801590611b3957506402540be4008206155b611b745760405162461bcd60e51b81526004018080602001828103825260378152602001806131f66037913960400191505060405180910390fd5b60008481526001602081905260408220805460ff191681559081018290556002810180546001600160a01b0319169055600381018290556004810191909155600501805468ffffffffffffffffff19169055611bce6131a4565b50604080518082018252600781526020810186905290516110049084156108fc029085906000818181858888f19350505050158015611c11573d6000803e3d6000fd5b5061200063f7a251d76001611c258461269f565b611c3a876402540be40063ffffffff61272916565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611c98578181015183820152602001611c80565b50505050905090810190601f168015611cc55780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015611ce657600080fd5b505af1158015611cfa573d6000803e3d6000fd5b50505050876001600160a01b03167f831c0ef4d93bda3bce08b69ae3f29ef1a6e052b833200988554158494405a10788600760405180806020018360ff1663ffffffff168152602001828103825284818151815260200191508051906020019080838360005b83811015611d78578181015183820152602001611d60565b50505050905090810190601f168015611da55780820380516001836020036101000a031916815260200191505b50935050505060405180910390a2506001979650505050505050565b600b81565b3361200014611e065760405162461bcd60e51b815260040180806020018281038252602f8152602001806132a0602f913960400191505060405180910390fd5b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a1505050565b600781565b600981565b61100781565b61100681565b60005460ff1681565b61100281565b600381565b600160208190526000918252604090912080549181015460028201546003830154600484015460059094015460ff9586169593946001600160a01b0390931693919291811690610100900467ffffffffffffffff1687565b61100381565b61100081565b61100481565b6060611f17613168565b6000611f228461276b565b9150915080611f78576040805162461bcd60e51b815260206004820152601f60248201527f756e7265636f676e697a6564207472616e73666572496e207061636b61676500604482015290519081900360640190fd5b815160ff1661202c576020828101805160009081526001928390526040908190208551815460ff1990811660ff928316178355935194820194909455908501516002820180546001600160a01b0319166001600160a01b03909216919091179055606085015160038201556080850151600482015560a08501516005909101805460c08701519316919093161768ffffffffffffffff00191661010067ffffffffffffffff90921691909102179055612183565b815160ff16600114156121365760006110046001600160a01b03166359b9278984602001516040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561208557600080fd5b505afa158015612099573d6000803e3d6000fd5b505050506040513d60208110156120af57600080fd5b505190506001600160a01b038116156121305760208301516040805163b99328c560e01b815260048101929092526001600160a01b0383166024830152516110049163b99328c591604480830192600092919082900301818387803b15801561211757600080fd5b505af115801561212b573d6000803e3d6000fd5b505050505b50612183565b6040805162461bcd60e51b815260206004820152601960248201527f756e7265636f676e697a65642062696e64207061636b61676500000000000000604482015290519081900360640190fd5b60408051600080825260208201909252905b50949350505050565b60006121e083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506128bd565b9392505050565b6020015190565b6000828201838110156121e0576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600080826001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561228457600080fd5b505afa158015612298573d6000803e3d6000fd5b505050506040513d60208110156122ae57600080fd5b5051604080516395d89b4160e01b815290519192506060916001600160a01b038616916395d89b41916004808301926000929190829003018186803b1580156122f657600080fd5b505afa15801561230a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561233357600080fd5b8101908080516040519392919084600160201b82111561235257600080fd5b90830190602082018581111561236757600080fd5b8251600160201b81118282018810171561238057600080fd5b82525081516020918201929091019080838360005b838110156123ad578181015183820152602001612395565b50505050905090810190601f1680156123da5780820380516001836020036101000a031916815260200191505b5060408181526370a0823160e01b82526110046004830152519495506000946001600160a01b038a1694506370a08231935060248083019350602092829003018186803b15801561242a57600080fd5b505afa15801561243e573d6000803e3d6000fd5b505050506040513d602081101561245457600080fd5b5051608087015160608801519192506000916124759163ffffffff61219e16565b9050428760c0015167ffffffffffffffff16101561249b57506001935061145a92505050565b6124a9838860200151612954565b6124bb57506002935061145a92505050565b808211156124d157506003935061145a92505050565b866060015187604001516001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561251357600080fd5b505afa158015612527573d6000803e3d6000fd5b505050506040513d602081101561253d57600080fd5b50511461255257506004935061145a92505050565b8660a0015160ff16841461256e57506005935061145a92505050565b602080880151604080516359b9278960e01b8152600481019290925251600092611004926359b927899260248083019392829003018186803b1580156125b357600080fd5b505afa1580156125c7573d6000803e3d6000fd5b505050506040513d60208110156125dd57600080fd5b50516001600160a01b031614158061267f57506000801b6110046001600160a01b031663bd46646189604001516040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561265057600080fd5b505afa158015612664573d6000803e3d6000fd5b505050506040513d602081101561267a57600080fd5b505114155b1561269257506006935061145a92505050565b5060009695505050505050565b6040805160028082526060828101909352829190816020015b60608152602001906001900390816126b857505083519091506126e09063ffffffff16612a3c565b816000815181106126ed57fe5b6020026020010181905250612708836020015160001c612a3c565b8160018151811061271557fe5b60200260200101819052506121e081612a4f565b60006121e083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612ad9565b612773613168565b600061277d613168565b6127856131bb565b61279661279186612b3e565b612b63565b90506000805b6127a583612bad565b156128b057806127ca576127c06127bb84612bce565b612c1c565b60ff1684526128a8565b80600114156127e9576127df6127bb84612bce565b60208501526128a8565b8060021415612816576128036127fe84612bce565b612cd1565b6001600160a01b031660408501526128a8565b80600314156128355761282b6127bb84612bce565b60608501526128a8565b80600414156128545761284a6127bb84612bce565b60808501526128a8565b8060051415612876576128696127bb84612bce565b60ff1660a08501526128a8565b80600614156128a35761288b6127bb84612bce565b67ffffffffffffffff1660c0850152600191506128a8565b6128b0565b60010161279c565b5091935090915050915091565b6000818484111561294c5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156129115781810151838201526020016128f9565b50505050905090810190601f16801561293e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b815160009083906008108061296a575080516003115b1561297957600091505061145a565b604080516020808252818301909252606091602082018180368337019050509050836020820152808251815181106129ad57fe5b6020910101516001600160f81b031916602d60f81b146129d25760009250505061145a565b600160005b8351811015612a32578281815181106129ec57fe5b602001015160f81c60f81b6001600160f81b031916848281518110612a0d57fe5b01602001516001600160f81b03191614612a2a5760009150612a32565b6001016129d7565b5095945050505050565b606061145a612a4a83612ceb565b612dd1565b6060815160001415612a705750604080516000815260208101909152610bb6565b606082600081518110612a7f57fe5b602002602001015190506000600190505b8351811015612ac057612ab682858381518110612aa957fe5b6020026020010151612e23565b9150600101612a90565b506121e0612ad3825160c060ff16612ea0565b82612e23565b60008183612b285760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156129115781810151838201526020016128f9565b506000838581612b3457fe5b0495945050505050565b612b466131db565b506040805180820190915281518152602082810190820152919050565b612b6b6131bb565b612b7482612f98565b612b7d57600080fd5b6000612b8c8360200151612fd2565b60208085015160408051808201909152868152920190820152915050919050565b6000612bb76131db565b505080518051602091820151919092015191011190565b612bd66131db565b612bdf82612bad565b612be857600080fd5b60208201516000612bf882613035565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590612c3157508151602110155b612c3a57600080fd5b6000612c498360200151612fd2565b90508083600001511015612ca4576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b82516020808501518301805192849003929183101561219557506020919091036101000a90049392505050565b8051600090601514612ce257600080fd5b61145a82612c1c565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416612d2f57506018612d53565b6fffffffffffffffffffffffffffffffff198416612d4f57506010612d53565b5060005b6020811015612d8957818181518110612d6857fe5b01602001516001600160f81b03191615612d8157612d89565b600101612d53565b60008160200390506060816040519080825280601f01601f191660200182016040528015612dbe576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015612e035750607f60f81b82600081518110612df157fe5b01602001516001600160f81b03191611155b15612e0f575080610bb6565b61145a612e218351608060ff16612ea0565b835b6060806040519050835180825260208201818101602087015b81831015612e54578051835260209283019201612e3c565b50855184518101855292509050808201602086015b81831015612e81578051835260209283019201612e69565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310612ef0576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b60408051600180825281830190925260609160208201818036833701905050905060378411612f4a5782840160f81b81600081518110612f2c57fe5b60200101906001600160f81b031916908160001a905350905061145a565b6060612f5585612ceb565b90508381510160370160f81b82600081518110612f6e57fe5b60200101906001600160f81b031916908160001a905350612f8f8282612e23565b95945050505050565b8051600090612fa957506000610bb6565b6020820151805160001a9060c0821015612fc857600092505050610bb6565b5060019392505050565b8051600090811a6080811015612fec576000915050610bb6565b60b8811080613007575060c08110801590613007575060f881105b15613016576001915050610bb6565b60c081101561302a5760b519019050610bb6565b60f519019050610bb6565b80516000908190811a60808110156130505760019150613161565b60b881101561306557607e1981019150613161565b60c08110156130df57600060b78203600186019550806020036101000a8651049150600181018201935050808310156130d9576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50613161565b60f88110156130f45760be1981019150613161565b600060f78203600186019550806020036101000a86510491506001810182019350508083101561315f576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c081019190915290565b604080518082019091526000808252602082015290565b60405180604001604052806131ce6131db565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe72656c6179466565206d757374206265204e202a203165313020616e642067726561746572207468616e206d696e6952656c6179466565636f6e74616374206164647265737320646f65736e277420657175616c20746f2074686520636f6e7472616374206164647265737320696e2062696e6420726571756573746f6e6c79206265703265206f776e65722063616e20617070726f766520746869732062696e642072657175657374746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374a2646970667358221220f5905eb90e4a072fe66973705300bc7792e1c43c73c571a09629b9153e6b871864736f6c63430006040033" + }, + "0x0000000000000000000000000000000000002000": { + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b50600436106102485760003560e01c8063863fe4ab1161013b578063c81b1662116100b8578063e3b048051161007c578063e3b048051461072c578063f7a251d71461074c578063f9a2bbc7146107c4578063fc3e5908146107cc578063fd6a6879146107d457610248565b8063c81b1662146106dd578063d31f968d146106e5578063d76a867514610714578063dc927faf1461071c578063e1c7392a1461072457610248565b8063a78abc16116100ff578063a78abc16146105d3578063ab51bb96146105db578063ac431751146105e3578063b0355f5b146103ff578063c27cdcfb146106a157610248565b8063863fe4ab146105b35780638cc8f561146104b657806396713da9146105bb5780639dc09262146105c3578063a1a11bf5146105cb57610248565b8063493279b1116101c957806370fd5bad1161018d57806370fd5bad146104b657806374f079b8146104be57806375d47a0a146104c65780637942fd05146104ce57806384013b6a146104d657610248565b8063493279b11461045f5780634bf6c8821461047e57806351e80672146104865780636e47a51a1461048e5780636e47b482146104ae57610248565b8063308325f411610210578063308325f4146102cf5780633bdc47a6146102d75780633dffc387146103ff578063422f90501461040757806343756e5c1461043b57610248565b806305e682581461024d5780630bee7a671461026b57806314b3023b1461028c57806322556cdc146102a65780632ff32aea146102ae575b600080fd5b6102556107dc565b6040805160ff9092168252519081900360200190f35b6102736107e1565b6040805163ffffffff9092168252519081900360200190f35b6102946107e6565b60408051918252519081900360200190f35b6102946107ec565b6102b66107f1565b60408051600792830b90920b8252519081900360200190f35b6102946107fa565b61038a600480360360608110156102ed57600080fd5b60ff82351691602081013591810190606081016040820135600160201b81111561031657600080fd5b82018360208201111561032857600080fd5b803590602001918460018302840111600160201b8311171561034957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610800945050505050565b6040805160208082528351818301528351919283929083019185019080838360005b838110156103c45781810151838201526020016103ac565b50505050905090810190601f1680156103f15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610255610876565b6104276004803603602081101561041d57600080fd5b503560ff1661087b565b604080519115158252519081900360200190f35b610443610890565b604080516001600160a01b039092168252519081900360200190f35b610467610896565b6040805161ffff9092168252519081900360200190f35b61025561089b565b6104436108a0565b610443600480360360208110156104a457600080fd5b503560ff166108a6565b6104436108c1565b6102556108c7565b6102946108cc565b6104436108d2565b6102556108d8565b6105b1600480360360a08110156104ec57600080fd5b810190602081018135600160201b81111561050657600080fd5b82018360208201111561051857600080fd5b803590602001918460018302840111600160201b8311171561053957600080fd5b919390929091602081019035600160201b81111561055657600080fd5b82018360208201111561056857600080fd5b803590602001918460018302840111600160201b8311171561058957600080fd5b919350915080356001600160401b03908116916020810135909116906040013560ff166108dd565b005b610294611a8d565b610255611a95565b610443611a9a565b610443611aa0565b610427611aa6565b6102736107dc565b6105b1600480360360408110156105f957600080fd5b810190602081018135600160201b81111561061357600080fd5b82018360208201111561062557600080fd5b803590602001918460018302840111600160201b8311171561064657600080fd5b919390929091602081019035600160201b81111561066357600080fd5b82018360208201111561067557600080fd5b803590602001918460018302840111600160201b8311171561069657600080fd5b509092509050611aaf565b6106c1600480360360208110156106b757600080fd5b503560ff16612051565b604080516001600160401b039092168252519081900360200190f35b61044361206c565b610427600480360360408110156106fb57600080fd5b5080356001600160a01b0316906020013560ff16612072565b61038a612092565b6104436120b1565b6105b16120b7565b6106c16004803603602081101561074257600080fd5b503560ff1661246e565b6105b16004803603606081101561076257600080fd5b60ff8235169190810190604081016020820135600160201b81111561078657600080fd5b82018360208201111561079857600080fd5b803590602001918460018302840111600160201b831117156107b957600080fd5b919350915035612489565b6104436125da565b6102556125e0565b6104436125e5565b600081565b606481565b60015481565b603281565b60045460070b81565b60025481565b60606000825160210190506060816040519080825280601f01601f191660200182016040528015610838576020820181803683370190505b506021810186905260018101879052828152905060418101600061085b866125eb565b50905061086a818388516125f5565b50909695505050505050565b600181565b60096020526000908152604090205460ff1681565b61100181565b606081565b600881565b61200081565b6005602052600090815260409020546001600160a01b031681565b61100581565b600281565b60035481565b61100881565b600b81565b60005460ff16610930576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b60408051630a83aaa960e31b815233600482015290516110069163541d5548916024808301926020929190829003018186803b15801561096f57600080fd5b505afa158015610983573d6000803e3d6000fd5b505050506040513d602081101561099957600080fd5b50516109ec576040805162461bcd60e51b815260206004820152601f60248201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604482015290519081900360640190fd5b60ff8116600090815260086020526040902054829082906001600160401b039081169083168114610a5c576040805162461bcd60e51b815260206004820152601560248201527439b2b8bab2b731b2903737ba1034b71037b93232b960591b604482015290519081900360640190fd5b60ff8216600090815260086020908152604091829020805467ffffffffffffffff1916600185016001600160401b039081169190911790915582516337d7f9c160e21b81529089166004820152915188926110039263df5fe70492602480840193829003018186803b158015610ad157600080fd5b505afa158015610ae5573d6000803e3d6000fd5b505050506040513d6020811015610afb57600080fd5b5051610b385760405162461bcd60e51b8152600401808060200182810382526023815260200180612bcc6023913960400191505060405180910390fd5b60ff851660009081526005602052604090205485906001600160a01b0316610ba7576040805162461bcd60e51b815260206004820152601860248201527f6368616e6e656c206973206e6f7420737570706f727465640000000000000000604482015290519081900360640190fd5b60608c8c8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060608b8b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805163cba510a960e01b81526001600160401b038f1660048201529051939450610cce93611003935063cba510a992506024808301926020929190829003018186803b158015610c7757600080fd5b505afa158015610c8b573d6000803e3d6000fd5b505050506040513d6020811015610ca157600080fd5b505160408051808201909152600381526269626360e81b6020820152610cc78c8c612636565b858561267d565b610d16576040805162461bcd60e51b815260206004820152601460248201527334b73b30b634b21036b2b935b63290383937b7b360611b604482015290519081900360640190fd5b60408051631bb5062960e31b81526001600160401b038c16600482015290516000916110039163dda8314891602480820192602092909190829003018186803b158015610d6257600080fd5b505afa158015610d76573d6000803e3d6000fd5b505050506040513d6020811015610d8c57600080fd5b5051905088600080806060610da08861277a565b935093509350935083610e61578460ff168f6001600160401b03167ff7b2e42d694eb1100184aae86d4245d9e46966100b1dc7e723275b98326854ac8a6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610e1a578181015183820152602001610e02565b50505050905090810190601f168015610e475780820380516001836020036101000a031916815260200191505b509250505060405180910390a35050505050505050611a7f565b8460ff168f6001600160401b03167f36afdaf439a8f43fe72135135d804ae620b37a474f0943b5b85f6788312cad4085604051808260ff1660ff16815260200191505060405180910390a360ff83166113ea5760ff85166000818152600560209081526040808320548151631182b87560e01b815260048101958652602481019283528651604482015286516001600160a01b03909216958695631182b875958d958a9593949093606490910192918601918190849084905b83811015610f32578181015183820152602001610f1a565b50505050905090810190601f168015610f5f5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b158015610f7f57600080fd5b505af192505050801561106357506040513d6000823e601f3d908101601f191682016040526020811015610fb257600080fd5b8101908080516040519392919084600160201b821115610fd157600080fd5b908301906020820185811115610fe657600080fd5b8251600160201b811182820188101715610fff57600080fd5b82525081516020918201929091019080838360005b8381101561102c578181015183820152602001611014565b50505050905090810190601f1680156110595780820380516001836020036101000a031916815260200191505b5060405250505060015b611375576040516000815260443d101561107f5750600061111a565b60046000803e60005160e01c6308c379a081146110a057600091505061111a565b60043d036004833e81513d60248201116001600160401b03821117156110cb5760009250505061111a565b80830180516001600160401b038111156110ec57600094505050505061111a565b8060208301013d860181111561110a5760009550505050505061111a565b601f01601f191660405250925050505b806111255750611237565b60ff871660009081526007602052604081205461115c916001600160401b039091169089906111579060029088610800565b61282a565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf948794849390840192918601918190849084905b838110156111f75781810151838201526020016111df565b50505050905090810190601f1680156112245780820380516001836020036101000a031916815260200191505b509250505060405180910390a250611370565b3d808015611261576040519150601f19603f3d011682016040523d82523d6000602084013e611266565b606091505b5060ff8716600090815260076020526040812054611299916001600160401b039091169089906111579060029088610800565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351948794849390840192918601918190849084905b8381101561133457818101518382015260200161131c565b50505050905090810190601f1680156113615780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b6113e4565b8051156113e25760ff87166000908152600760205260408120546113ae916001600160401b039091169089906111579060019086610800565b60ff8716600090815260076020526040902080546001600160401b038082166001011667ffffffffffffffff199091161790555b505b506119b8565b60ff83166001141561168e5760ff8516600081815260056020908152604080832054815163831d65d160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563831d65d1958d958a9593949093606490910192918601918190849084905b8381101561147457818101518382015260200161145c565b50505050905090810190601f1680156114a15780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b1580156114c157600080fd5b505af19250505080156114d2575060015b6113e4576040516000815260443d10156114ee57506000611589565b60046000803e60005160e01c6308c379a0811461150f576000915050611589565b60043d036004833e81513d60248201116001600160401b038211171561153a57600092505050611589565b80830180516001600160401b0381111561155b576000945050505050611589565b8060208301013d860181111561157957600095505050505050611589565b601f01601f191660405250925050505b8061159457506115f9565b60408051602080825283518183015283516001600160a01b038616937ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf93869390928392830191850190808383600083156111f75781810151838201526020016111df565b3d808015611623576040519150601f19603f3d011682016040523d82523d6000602084013e611628565b606091505b5060408051602080825283518183015283516001600160a01b038616937f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351938693909283928301918501908083836000831561133457818101518382015260200161131c565b60ff8316600214156119b85760ff8516600081815260056020908152604080832054815163c8509d8160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563c8509d81958d958a9593949093606490910192918601918190849084905b83811015611718578181015183820152602001611700565b50505050905090810190601f1680156117455780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561176557600080fd5b505af1925050508015611776575060015b6119b6576040516000815260443d10156117925750600061182d565b60046000803e60005160e01c6308c379a081146117b357600091505061182d565b60043d036004833e81513d60248201116001600160401b03821117156117de5760009250505061182d565b80830180516001600160401b038111156117ff57600094505050505061182d565b8060208301013d860181111561181d5760009550505050505061182d565b601f01601f191660405250925050505b8061183857506118e1565b816001600160a01b03167ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf826040518080602001828103825283818151815260200191508051906020019080838360005b838110156118a1578181015183820152602001611889565b50505050905090810190601f1680156118ce5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2506119b6565b3d80801561190b576040519150601f19603f3d011682016040523d82523d6000602084013e611910565b606091505b50816001600160a01b03167f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351826040518080602001828103825283818151815260200191508051906020019080838360005b8381101561197a578181015183820152602001611962565b50505050905090810190601f1680156119a75780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b505b60ff80861660009081526009602052604090205461100591636f93d2e69189913391879116806119ea575060ff881615155b604080516001600160e01b031960e088901b1681526001600160a01b039586166004820152939094166024840152604483019190915215156064820152905160848083019260209291908290030181600087803b158015611a4a57600080fd5b505af1158015611a5e573d6000803e3d6000fd5b505050506040513d6020811015611a7457600080fd5b505050505050505050505b505050505050505050505050565b630100600081565b600981565b61100781565b61100681565b60005460ff1681565b3361100714611aef5760405162461bcd60e51b815260040180806020018281038252602e815260200180612b22602e913960400191505060405180910390fd5b611b5884848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526012815271626174636853697a65466f724f7261636c6560701b602082015291506129809050565b15611bf357604080516020601f8401819004810282018101909252828152600091611b9b91858580838501838280828437600092019190915250612a6792505050565b90506127108111158015611bb05750600a8110155b611beb5760405162461bcd60e51b8152600401808060200182810382526032815260200180612b9a6032913960400191505060405180910390fd5b600155611fbf565b611c5c84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601281527118591913dc955c19185d1950da185b9b995b60721b602082015291506129809050565b15611de457606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060169091149050611cdf5760405162461bcd60e51b815260040180806020018281038252605a815260200180612ac8605a913960600191505060405180910390fd5b60018101516002820151601683015160ff82161590611cfd81612a6c565b611d4e576040805162461bcd60e51b815260206004820152601960248201527f61646472657373206973206e6f74206120636f6e747261637400000000000000604482015290519081900360640190fd5b60ff8416600081815260056020908152604080832080546001600160a01b0319166001600160a01b038716908117909155808452600683528184208585528352818420805460ff199081166001179091556009909352818420805490931687151517909255519092917f7e3b6af43092577ee20e60eaa1d9b114a7031305c895ee7dd3ffe17196d2e1e091a35050505050611fbf565b611e5184848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526016815275195b98589b1953dc911a5cd8589b1950da185b9b995b60521b602082015291506129809050565b15611f8257606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060029091149050611ed45760405162461bcd60e51b815260040180806020018281038252604a815260200180612b50604a913960600191505060405180910390fd5b600181810151600283015160ff80831660009081526005602052604090205492939192908316909114906001600160a01b03168015611f78576001600160a01b038116600090815260066020908152604080832060ff881680855290835292819020805460ff1916861515908117909155815190815290517fa3132e3f9819fbddc7f0ed6d38d7feef59aa95112090b7c592f5cb5bc4aa4adc929181900390910190a25b5050505050611fbf565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b6008602052600090815260409020546001600160401b031681565b61100281565b600660209081526000928352604080842090915290825290205460ff1681565b6040518060400160405280600381526020016269626360e81b81525081565b61100381565b60005460ff161561210f576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b7f1471eb6eb2c5e789fc3de43f8ce62938c7d1836ec861730447e2ada8fd81017b80546001600160a01b0319908116611008179091557f92e85d02570a8092d09a6e3a57665bc3815a2699a4074001bf1ccabf660f5a36805460ff199081169091557fd8af288fc1c8680b4f4706064cf021e264efb6828fcaf7eb5ca36818eb365bcc8054821660019081179091557f89832631fb3c3307a103ba2c84ab569c64d6182a18893dcd163f0f1c2090733a805484166110049081179091557f6cde3cea4b3a3fb2488b2808bae7556f4a405e50f65e1794383bc026131b13c38054841690557f72e4efa1513b071517c6c74dba31b5934a81aa83cddd400e7081df5529c9943680548416831790557fa9bc9a3a348c357ba16b37005d7e6b3236198c0e939f4af8c5f19b8deeb8ebc08054851690911790557fc575c31fea594a6eb97c8e9d3f9caee4c16218c6ef37e923234c0fe9014a61e78054831690557f4e523af77f034e9810f1c94057f5e931fb3d16a51511a4c3add793617d18610580548316821790557ffb33122aa9f93cc639ebe80a7bc4784c11e6053dde89c6f4f7e268c6a623da1e805484166110001790557fc7694af312c4f286114180fd0ba6a52461fcee8a381636770b19a343af92538a80548316821790557f01112dd68e482ba8d68a7e828cff8b3abcea08eab88941953c180a7e650e9cd480548316821790557fc0a4a8be475dfebc377ebef2d7c4ff47656f572a08dd92b81017efcdba0febe1805484166110071790557f87e8a52529e8ece4ef759037313542a6429ff494a9fab9027fb79db90124eba680548316821790557f4c7666bbcb22d46469f7cc282f70764a7012dca2cce630ff8d83db9a9cdd48f080548316821790557f40f28f99a40bc9f6beea1013afdbc3cdcc689eb76b82c4de06c0acf1e1932ed58054909316611001179092557f0d9cf2cd531699eed8dd34e40ff2884a14a698c4898184fba85194e6f6772d248054821683179055600b60009081527f23f68c9bd22b8a93d06adabe17481c87c016bcbd20adc8bfd707a4d813a572176020527fdf0d5d05428057f5455c2dc8e810dd86d1e9350faa72f16bda8a45443c5b39328054831684179055603283556004805467ffffffffffffffff19166001600160401b031790556002819055600381905580549091169091179055565b6007602052600090815260409020546001600160401b031681565b60005460ff166124dc576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b33600090815260066020908152604080832060ff80891685529252909120548591166125395760405162461bcd60e51b8152600401808060200182810382526031815260200180612a976031913960400191505060405180910390fd5b60ff85166000908152600760209081526040808320548151601f88018490048402810184019092528682526001600160401b03169261259e9284928a9261115792909189918c908c908190840183828082843760009201919091525061080092505050565b60ff959095166000908152600760205260409020805467ffffffffffffffff191660019096016001600160401b03169590951790945550505050565b61100081565b600381565b61100481565b8051602090910191565b5b60208110612615578251825260209283019290910190601f19016125f6565b915181516020939093036101000a6000190180199091169216919091179052565b60408051600e808252818301909252606091630100600060ff851617918391602082018180368337505050600e818101969096526006810192909252509283525090919050565b60008561268c57506000612771565b606082518451865160800101016040519080825280601f01601f1916602001820160405280156126c3576020820181803683370190505b50905060006126d182612a72565b6020808901518252019050866000806126e9896125eb565b80865260209095019490925090506127028285836125f5565b9283019261270f886125eb565b80865260209095019490925090506127288285836125f5565b9283018a81526020019261273b876125eb565b909250905061274b8285836125f5565b508351602001612759612a78565b60208183886065600019fa5051600114955050505050505b95945050505050565b600080600060606021855110156127aa575050604080516000808252602082019092529092508291508190612823565b600185015160218601518651604080516020198301808252601f19600119909401939093168101602001909152604189019392916060919080156127f5576020820181803683370190505b5090506000612803826125eb565b509050612815858260218d51036125f5565b506001975091955093509150505b9193509193565b600254431115612869576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b1617909155600355436002556128aa565b600380546001908101918290555410156128aa576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b16179091556003555b8160ff16836001600160401b0316600460009054906101000a900460070b6001600160401b03167f3a6e0fc61675aa2a100bcba0568368bb92bcec91c97673391074f11138f0cffe606085604051808361ffff1661ffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015612940578181015183820152602001612928565b50505050905090810190601f16801561296d5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a4505050565b6000816040516020018082805190602001908083835b602083106129b55780518252601f199092019160209182019101612996565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310612a235780518252601f199092019160209182019101612a04565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b3b151590565b60200190565b6040518060200160405280600190602082028036833750919291505056fe74686520636f6e747261637420616e64206368616e6e656c2068617665206e6f74206265656e20726567697374657265646c656e677468206f662076616c756520666f72206164644f725570646174654368616e6e656c2073686f756c642062652032322c206368616e6e656c49643a697346726f6d53797374656d3a68616e646c657241646472657373746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662076616c756520666f7220656e61626c654f7244697361626c654368616e6e656c2073686f756c6420626520322c206368616e6e656c49643a6973456e61626c65746865206e6577426174636853697a65466f724f7261636c652073686f756c6420626520696e205b31302c2031303030305d6c6967687420636c69656e74206e6f742073796e632074686520626c6f636b20796574a264697066735822122033c2492ac02e70488d9ed3adb95888d7f5998dff786cf03d72be0cde759a14d064736f6c63430006040033" + } + }, + "1014369": { + "0x0000000000000000000000000000000000001000": { + "balance": "0x0", + "code": "0x60806040526004361061027d5760003560e01c80639dc092621161014f578063c8509d81116100c1578063eb57e2021161007a578063eb57e20214610940578063eda5868c14610973578063f340fa0114610988578063f9a2bbc7146109ae578063fc3e5908146109c3578063fd6a6879146109d85761027d565b8063c8509d8114610609578063d86222d5146108d7578063daacdb66146108ec578063dc927faf14610901578063e086c7b114610916578063e1c7392a1461092b5761027d565b8063ab51bb9611610113578063ab51bb961461074a578063ac4317511461075f578063ad3c9da61461082a578063b7ab4db51461085d578063bf9f49951461041b578063c81b1662146108c25761027d565b80639dc09262146106cd578063a1a11bf5146106e2578063a5422d5c146106f7578063a78abc161461070c578063aaf5eb68146107355761027d565b80635667515a116101f35780637942fd05116101ac5780637942fd05146105df57806381650b62146105f4578063831d65d114610609578063853230aa1461068e57806386249882146106a357806396713da9146106b85761027d565b80635667515a146105005780635d77156c146105155780636969a25c1461052a5780636e47b482146105a057806370fd5bad146105b557806375d47a0a146105ca5761027d565b80633dffc387116102455780633dffc3871461041b57806343756e5c14610446578063493279b1146104775780634bf6c882146104a357806351e80672146104b8578063565c56b3146104cd5761027d565b80630bee7a67146102825780631182b875146102b05780631ff18069146103aa578063219f22d5146103d157806335409f7f146103e6575b600080fd5b34801561028e57600080fd5b506102976109ed565b6040805163ffffffff9092168252519081900360200190f35b3480156102bc57600080fd5b50610335600480360360408110156102d357600080fd5b60ff8235169190810190604081016020820135600160201b8111156102f757600080fd5b82018360208201111561030957600080fd5b803590602001918460018302840111600160201b8311171561032a57600080fd5b5090925090506109f2565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561036f578181015183820152602001610357565b50505050905090810190601f16801561039c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103b657600080fd5b506103bf610bdf565b60408051918252519081900360200190f35b3480156103dd57600080fd5b50610297610be5565b3480156103f257600080fd5b506104196004803603602081101561040957600080fd5b50356001600160a01b0316610bea565b005b34801561042757600080fd5b50610430610efe565b6040805160ff9092168252519081900360200190f35b34801561045257600080fd5b5061045b610f03565b604080516001600160a01b039092168252519081900360200190f35b34801561048357600080fd5b5061048c610f09565b6040805161ffff9092168252519081900360200190f35b3480156104af57600080fd5b50610430610f0e565b3480156104c457600080fd5b5061045b610f13565b3480156104d957600080fd5b506103bf600480360360208110156104f057600080fd5b50356001600160a01b0316610f19565b34801561050c57600080fd5b50610430610f6b565b34801561052157600080fd5b50610297610f70565b34801561053657600080fd5b506105546004803603602081101561054d57600080fd5b5035610f75565b604080516001600160a01b039788168152958716602087015293909516848401526001600160401b0390911660608401521515608083015260a082019290925290519081900360c00190f35b3480156105ac57600080fd5b5061045b610fd9565b3480156105c157600080fd5b50610430610fdf565b3480156105d657600080fd5b5061045b610fe4565b3480156105eb57600080fd5b50610430610fea565b34801561060057600080fd5b50610297610fef565b34801561061557600080fd5b506104196004803603604081101561062c57600080fd5b60ff8235169190810190604081016020820135600160201b81111561065057600080fd5b82018360208201111561066257600080fd5b803590602001918460018302840111600160201b8311171561068357600080fd5b509092509050610ff4565b34801561069a57600080fd5b506103bf6110a7565b3480156106af57600080fd5b506103bf6110ad565b3480156106c457600080fd5b506104306110b3565b3480156106d957600080fd5b5061045b6110b8565b3480156106ee57600080fd5b5061045b6110be565b34801561070357600080fd5b506103356110c4565b34801561071857600080fd5b506107216110e3565b604080519115158252519081900360200190f35b34801561074157600080fd5b506103bf6110ec565b34801561075657600080fd5b50610297610f6b565b34801561076b57600080fd5b506104196004803603604081101561078257600080fd5b810190602081018135600160201b81111561079c57600080fd5b8201836020820111156107ae57600080fd5b803590602001918460018302840111600160201b831117156107cf57600080fd5b919390929091602081019035600160201b8111156107ec57600080fd5b8201836020820111156107fe57600080fd5b803590602001918460018302840111600160201b8311171561081f57600080fd5b5090925090506110f5565b34801561083657600080fd5b506103bf6004803603602081101561084d57600080fd5b50356001600160a01b031661139c565b34801561086957600080fd5b506108726113ae565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156108ae578181015183820152602001610896565b505050509050019250505060405180910390f35b3480156108ce57600080fd5b5061045b6114d4565b3480156108e357600080fd5b506103bf6114da565b3480156108f857600080fd5b506103bf6114e6565b34801561090d57600080fd5b5061045b6114ec565b34801561092257600080fd5b506103bf6114f2565b34801561093757600080fd5b506104196114f7565b34801561094c57600080fd5b506104196004803603602081101561096357600080fd5b50356001600160a01b03166116fa565b34801561097f57600080fd5b506102976118c9565b6104196004803603602081101561099e57600080fd5b50356001600160a01b03166118ce565b3480156109ba57600080fd5b5061045b611b04565b3480156109cf57600080fd5b50610430611b0a565b3480156109e457600080fd5b5061045b611b0f565b606481565b60005460609060ff16610a48576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b3361200014610a885760405162461bcd60e51b815260040180806020018281038252602f8152602001806140de602f913960400191505060405180910390fd5b610a90613d69565b6000610ad185858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611b1592505050565b9150915080610aed57610ae46064611c6e565b92505050610bd8565b815160009060ff16610b0d57610b068360200151611ccf565b9050610ba4565b825160ff1660011415610ba057826020015151600114610b7a577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2604051808060200182810382526025815260200180613e6c6025913960400191505060405180910390a1506067610b9b565b610b068360200151600081518110610b8e57fe5b6020026020010151612ad5565b610ba4565b5060655b63ffffffff8116610bc95750506040805160008152602081019091529150610bd89050565b610bd281611c6e565b93505050505b9392505050565b60035481565b606881565b3361100114610c2a5760405162461bcd60e51b815260040180806020018281038252602981526020018061413a6029913960400191505060405180910390fd5b6001600160a01b03811660009081526004602052604090205480610c4e5750610efb565b600181039050600060018281548110610c6357fe5b60009182526020909120600360049092020101546001549091506000190180610cb257600060018481548110610c9557fe5b906000526020600020906004020160030181905550505050610efb565b6040805183815290516001600160a01b038616917f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a70919081900360200190a26001600160a01b038416600090815260046020526040812055600154600019018314610e3457600180546000198101908110610d2957fe5b906000526020600020906004020160018481548110610d4457fe5b6000918252602082208354600492830290910180546001600160a01b03199081166001600160a01b0393841617825560018087015481840180548416918616919091179055600280880180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b199094169390931790556003948501549401939093558254868401939192919087908110610e0957fe5b600091825260208083206004909202909101546001600160a01b031683528201929092526040019020555b6001805480610e3f57fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b03191690556003018190559155818381610e9257fe5b0490508015610ef65760015460005b81811015610ef3578260018281548110610eb757fe5b9060005260206000209060040201600301540160018281548110610ed757fe5b6000918252602090912060036004909202010155600101610ea1565b50505b505050505b50565b600181565b61100181565b606181565b600881565b61200081565b6001600160a01b03811660009081526004602052604081205480610f41576000915050610f66565b600180820381548110610f5057fe5b9060005260206000209060040201600301549150505b919050565b600081565b606781565b60018181548110610f8257fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b61100881565b600b81565b606681565b33612000146110345760405162461bcd60e51b815260040180806020018281038252602f8152602001806140de602f913960400191505060405180910390fd5b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a1505050565b6103e881565b60025481565b600981565b61100781565b61100681565b604051806101e001604052806101b78152602001613f066101b7913981565b60005460ff1681565b6402540be40081565b60005460ff16611148576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b33611007146111885760405162461bcd60e51b815260040180806020018281038252602e815260200180613e91602e913960400191505060405180910390fd5b6111f284848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b60208201529150612c4c9050565b156112cd57602081146112365760405162461bcd60e51b8152600401808060200182810382526026815260200180613ee06026913960400191505060405180910390fd5b604080516020601f840181900481028201810190925282815260009161127491858580838501838280828437600092019190915250612d3492505050565b90506064811015801561128a5750620186a08111155b6112c55760405162461bcd60e51b8152600401808060200182810382526027815260200180613e456027913960400191505060405180910390fd5b60025561130a565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b60046020526000908152604090205481565b6001546060906000805b828110156113ff57600181815481106113cd57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166113f7576001909101905b6001016113b8565b5060608160405190808252806020026020018201604052801561142c578160200160208202803683370190505b50600092509050815b838110156114cc576001818154811061144a57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166114c4576001818154811061147a57fe5b600091825260209091206004909102015482516001600160a01b03909116908390859081106114a557fe5b6001600160a01b03909216602092830291909101909101526001909201915b600101611435565b509250505090565b61100281565b67016345785d8a000081565b60055481565b61100381565b602981565b60005460ff161561154f576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b611557613d69565b600061157d604051806101e001604052806101b78152602001613f066101b79139611b15565b91509150806115bd5760405162461bcd60e51b81526004018080602001828103825260218152602001806140bd6021913960400191505060405180910390fd5b60005b8260200151518110156116e2576001836020015182815181106115df57fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a0909301516003909301929092559186015180519185019391859081106116b557fe5b602090810291909101810151516001600160a01b03168252810191909152604001600020556001016115c0565b50506103e8600255506000805460ff19166001179055565b336110011461173a5760405162461bcd60e51b815260040180806020018281038252602981526020018061413a6029913960400191505060405180910390fd5b6001600160a01b0381166000908152600460205260409020548061175e5750610efb565b60018103905060006001828154811061177357fe5b906000526020600020906004020160030154905060006001838154811061179657fe5b906000526020600020906004020160030181905550600060018080549050039050836001600160a01b03167f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d836040518082815260200191505060405180910390a28061180557505050610efb565b600081838161181057fe5b0490508015610ef65760005b8481101561186e57816001828154811061183257fe5b906000526020600020906004020160030154016001828154811061185257fe5b600091825260209091206003600490920201015560010161181c565b50600180549085015b81811015610ef357826001828154811061188d57fe5b90600052602060002090600402016003015401600182815481106118ad57fe5b6000918252602090912060036004909202010155600101611877565b606581565b33411461190c5760405162461bcd60e51b815260040180806020018281038252602d81526020018061410d602d913960400191505060405180910390fd5b60005460ff1661195f576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b600034116119ac576040805162461bcd60e51b81526020600482015260156024820152746465706f7369742076616c7565206973207a65726f60581b604482015290519081900360640190fd5b6001600160a01b03811660009081526004602052604090205434908015611abf5760006001808303815481106119de57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff1615611a49576040805184815290516001600160a01b038616917ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4919081900360200190a2611ab9565b600354611a5c908463ffffffff612d3916565b6003908155810154611a74908463ffffffff612d3916565b60038201556040805184815290516001600160a01b038616917f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc055919081900360200190a25b50611aff565b6040805183815290516001600160a01b038516917ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4919081900360200190a25b505050565b61100081565b600381565b61100481565b611b1d613d69565b6000611b27613d69565b611b2f613d81565b611b40611b3b86612d93565b612db8565b90506000805b611b4f83612e02565b15611c605780611b7457611b6a611b6584612e23565b612e71565b60ff168452611c58565b8060011415611c53576060611b90611b8b85612e23565b612f28565b90508051604051908082528060200260200182016040528015611bcd57816020015b611bba613da1565b815260200190600190039081611bb25790505b50602086015260005b8151811015611c4857611be7613da1565b6000611c05848481518110611bf857fe5b6020026020010151612ff9565b9150915080611c2257876000995099505050505050505050611c69565b8188602001518481518110611c3357fe5b60209081029190910101525050600101611bd6565b506001925050611c58565b611c60565b600101611b46565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b6060815260200190600190039081611c88579050509050611cae8363ffffffff166130d6565b81600081518110611cbb57fe5b6020026020010181905250610bd8816130e9565b6000806060611cdd84613173565b9150915081611d8a577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2816040518080602001828103825283818151815260200191508051906020019080838360005b83811015611d45578181015183820152602001611d2d565b50505050905090810190601f168015611d725780820380516001836020036101000a031916815260200191505b509250505060405180910390a1606692505050610f66565b600080805b600154811015611e075767016345785d8a000060018281548110611daf57fe5b90600052602060002090600402016003015410611dd157600190920191611dff565b600060018281548110611de057fe5b9060005260206000209060040201600301541115611dff576001909101905b600101611d8f565b50606082604051908082528060200260200182016040528015611e34578160200160208202803683370190505b509050606083604051908082528060200260200182016040528015611e63578160200160208202803683370190505b509050606084604051908082528060200260200182016040528015611e92578160200160208202803683370190505b509050606085604051908082528060200260200182016040528015611ec1578160200160208202803683370190505b5090506000606086604051908082528060200260200182016040528015611ef2578160200160208202803683370190505b509050606087604051908082528060200260200182016040528015611f21578160200160208202803683370190505b509050600098506000975060608d905060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b158015611f6e57600080fd5b505afa158015611f82573d6000803e3d6000fd5b505050506040513d6020811015611f9857600080fd5b5051905067016345785d8a000081111561200d577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2604051808060200182810382526021815260200180613ebf6021913960400191505060405180910390a160689d5050505050505050505050505050610f66565b60005b6001548110156122805767016345785d8a00006001828154811061203057fe5b906000526020600020906004020160030154106121b6576001818154811061205457fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b03168a8d8151811061208557fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be400600183815481106120ba57fe5b906000526020600020906004020160030154816120d357fe5b06600183815481106120e157fe5b906000526020600020906004020160030154039050612109838261325590919063ffffffff16565b8a8e8151811061211557fe5b6020026020010181815250506001828154811061212e57fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316888e8151811061215f57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081898e8151811061218c57fe5b60209081029190910101526121a7878263ffffffff612d3916565b6001909d019c96506122789050565b6000600182815481106121c557fe5b906000526020600020906004020160030154111561227857600181815481106121ea57fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316858c8151811061221b57fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506001818154811061224857fe5b906000526020600020906004020160030154848c8151811061226657fe5b60209081029190910101526001909a01995b600101612010565b50600085156126be576110046001600160a01b0316636e056520878c8c8b60025442016040518663ffffffff1660e01b815260040180806020018060200180602001856001600160401b03166001600160401b03168152602001848103845288818151815260200191508051906020019060200280838360005b838110156123125781810151838201526020016122fa565b50505050905001848103835287818151815260200191508051906020019060200280838360005b83811015612351578181015183820152602001612339565b50505050905001848103825286818151815260200191508051906020019060200280838360005b83811015612390578181015183820152602001612378565b505050509050019750505050505050506020604051808303818588803b1580156123b957600080fd5b505af1935050505080156123df57506040513d60208110156123da57600080fd5b505160015b61261a576040516000815260443d10156123fb57506000612496565b60046000803e60005160e01c6308c379a0811461241c576000915050612496565b60043d036004833e81513d60248201116001600160401b038211171561244757600092505050612496565b80830180516001600160401b03811115612468576000945050505050612496565b8060208301013d860181111561248657600095505050505050612496565b601f01601f191660405250925050505b806124a15750612545565b60019150867fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280826040518080602001828103825283818151815260200191508051906020019080838360005b838110156125055781810151838201526020016124ed565b50505050905090810190601f1680156125325780820380516001836020036101000a031916815260200191505b509250505060405180910390a250612615565b3d80801561256f576040519150601f19603f3d011682016040523d82523d6000602084013e612574565b606091505b5060019150867fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a45826040518080602001828103825283818151815260200191508051906020019080838360005b838110156125d95781810151838201526020016125c1565b50505050905090810190601f1680156126065780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b6126be565b8015612658576040805188815290517fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b709181900360200190a16126bc565b604080516020808252601b908201527f6261746368207472616e736665722072657475726e2066616c7365000000000081830152905188917fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280919081900360600190a25b505b80156128745760005b88518110156128725760008982815181106126de57fe5b602002602001015190506000600182815481106126f757fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc918590811061272857fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f19350505050905080156127e4576001828154811061276957fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d91859081106127b857fe5b9060005260206000209060040201600301546040518082815260200191505060405180910390a2612868565b600182815481106127f157fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d918590811061284057fe5b9060005260206000209060040201600301546040518082815260200191505060405180910390a25b50506001016126c7565b505b8451156129be5760005b85518110156129bc57600086828151811061289557fe5b60200260200101516001600160a01b03166108fc8784815181106128b557fe5b60200260200101519081150290604051600060405180830381858888f193505050509050801561294b578682815181106128eb57fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d87848151811061292957fe5b60200260200101516040518082815260200191505060405180910390a26129b3565b86828151811061295757fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d87848151811061299557fe5b60200260200101516040518082815260200191505060405180910390a25b5060010161287e565b505b4715612a27576040805147815290517f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d9181900360200190a1604051611002904780156108fc02916000818181858888f19350505050158015612a25573d6000803e3d6000fd5b505b60006003819055600555825115612a4157612a4183613297565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015612a7e57600080fd5b505af1158015612a92573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a15060009f9e505050505050505050505050505050565b80516001600160a01b0316600090815260046020526040812054801580612b265750600180820381548110612b0657fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b15612b6c5782516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a26000915050610f66565b600154600554600019820111801590612bc25784516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a260009350505050610f66565b600580546001908101909155805481906000198601908110612be057fe5b6000918252602082206002600490920201018054921515600160e01b0260ff60e01b199093169290921790915585516040516001600160a01b03909116917ff226e7d8f547ff903d9d419cf5f54e0d7d07efa9584135a53a057c5f1f27f49a91a2506000949350505050565b6000816040516020018082805190602001908083835b60208310612c815780518252601f199092019160209182019101612c62565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310612cef5780518252601f199092019160209182019101612cd0565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052805190602001201490505b92915050565b015190565b600082820183811015610bd8576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b612d9b613dd6565b506040805180820190915281518152602082810190820152919050565b612dc0613d81565b612dc98261375e565b612dd257600080fd5b6000612de18360200151613798565b60208085015160408051808201909152868152920190820152915050919050565b6000612e0c613dd6565b505080518051602091820151919092015191011190565b612e2b613dd6565b612e3482612e02565b612e3d57600080fd5b60208201516000612e4d826137fb565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590612e8657508151602110155b612e8f57600080fd5b6000612e9e8360200151613798565b90508083600001511015612ef9576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015612f1f57826020036101000a820491505b50949350505050565b6060612f338261375e565b612f3c57600080fd5b6000612f478361392e565b9050606081604051908082528060200260200182016040528015612f8557816020015b612f72613dd6565b815260200190600190039081612f6a5790505b5090506000612f978560200151613798565b60208601510190506000805b84811015612fee57612fb4836137fb565b9150604051806040016040528083815260200184815250848281518110612fd757fe5b602090810291909101015291810191600101612fa3565b509195945050505050565b613001613da1565b600061300b613da1565b613013613d81565b61301c85612db8565b90506000805b61302b83612e02565b15611c6057806130565761304661304184612e23565b61398a565b6001600160a01b031684526130ce565b806001141561307e5761306b61304184612e23565b6001600160a01b031660208501526130ce565b80600214156130a65761309361304184612e23565b6001600160a01b031660408501526130ce565b8060031415611c53576130bb611b6584612e23565b6001600160401b03166060850152600191505b600101613022565b6060612d2e6130e4836139a4565b613a8a565b606081516000141561310a5750604080516000815260208101909152610f66565b60608260008151811061311957fe5b602002602001015190506000600190505b835181101561315a576131508285838151811061314357fe5b6020026020010151613adc565b915060010161312a565b50610bd861316d825160c060ff16613b59565b82613adc565b600060606029835111156131a5576000604051806060016040528060298152602001613df16029913991509150611c69565b60005b835181101561323b5760005b81811015613232578481815181106131c857fe5b6020026020010151600001516001600160a01b03168583815181106131e957fe5b6020026020010151600001516001600160a01b0316141561322a5760006040518060600160405280602b8152602001613e1a602b9139935093505050611c69565b6001016131b4565b506001016131a8565b505060408051602081019091526000815260019150915091565b6000610bd883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613c51565b600154815160005b828110156133b45760016132b1613da1565b600183815481106132be57fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b848110156133885786818151811061334e57fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b031614156133805760009250613388565b60010161333a565b5081156133aa5780516001600160a01b03166000908152600460205260408120555b505060010161329f565b508082111561342957805b828110156134275760018054806133d257fe5b60008281526020812060046000199093019283020180546001600160a01b03199081168255600182810180549092169091556002820180546001600160e81b03191690556003909101919091559155016133bf565b505b6000818310613438578161343a565b825b905060005b81811015613634576134ec85828151811061345657fe5b60200260200101516001838154811061346b57fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a0820152613ce8565b61360757806001016004600087848151811061350457fe5b6020026020010151600001516001600160a01b03166001600160a01b031681526020019081526020016000208190555084818151811061354057fe5b60200260200101516001828154811061355557fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a09091015160039091015561362c565b60006001828154811061361657fe5b9060005260206000209060040201600301819055505b60010161343f565b508282111561375857825b82811015610ef657600185828151811061365557fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782559585015181840180549184169188169190911790556040850151600282018054606088015160808901511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590971692909a169190911792909216939093171695909517905560a0909201516003909301929092558751908401929088908590811061372b57fe5b602090810291909101810151516001600160a01b031682528101919091526040016000205560010161363f565b50505050565b805160009061376f57506000610f66565b6020820151805160001a9060c082101561378e57600092505050610f66565b5060019392505050565b8051600090811a60808110156137b2576000915050610f66565b60b88110806137cd575060c081108015906137cd575060f881105b156137dc576001915050610f66565b60c08110156137f05760b519019050610f66565b60f519019050610f66565b80516000908190811a60808110156138165760019150613927565b60b881101561382b57607e1981019150613927565b60c08110156138a557600060b78203600186019550806020036101000a86510491506001810182019350508083101561389f576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50613927565b60f88110156138ba5760be1981019150613927565b600060f78203600186019550806020036101000a865104915060018101820193505080831015613925576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b805160009061393f57506000610f66565b600080905060006139538460200151613798565b602085015185519181019250015b8082101561398157613972826137fb565b60019093019290910190613961565b50909392505050565b805160009060151461399b57600080fd5b612d2e82612e71565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166139e857506018613a0c565b6fffffffffffffffffffffffffffffffff198416613a0857506010613a0c565b5060005b6020811015613a4257818181518110613a2157fe5b01602001516001600160f81b03191615613a3a57613a42565b600101613a0c565b60008160200390506060816040519080825280601f01601f191660200182016040528015613a77576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015613abc5750607f60f81b82600081518110613aaa57fe5b01602001516001600160f81b03191611155b15613ac8575080610f66565b612d2e613ada8351608060ff16613b59565b835b6060806040519050835180825260208201818101602087015b81831015613b0d578051835260209283019201613af5565b50855184518101855292509050808201602086015b81831015613b3a578051835260209283019201613b22565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310613ba9576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b60408051600180825281830190925260609160208201818036833701905050905060378411613c035782840160f81b81600081518110613be557fe5b60200101906001600160f81b031916908160001a9053509050612d2e565b6060613c0e856139a4565b90508381510160370160f81b82600081518110613c2757fe5b60200101906001600160f81b031916908160001a905350613c488282613adc565b95945050505050565b60008184841115613ce05760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613ca5578181015183820152602001613c8d565b50505050905090810190601f168015613cd25780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b805182516000916001600160a01b039182169116148015613d22575081602001516001600160a01b031683602001516001600160a01b0316145b8015613d47575081604001516001600160a01b031683604001516001600160a01b0316145b8015610bd85750506060908101519101516001600160401b0390811691161490565b60408051808201909152600081526060602082015290565b6040518060400160405280613d94613dd6565b8152602001600081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b60405180604001604052806000815260200160008152509056fe746865206e756d626572206f662076616c696461746f72732065786365656420746865206c696d69746475706c696361746520636f6e73656e7375732061646472657373206f662076616c696461746f725365747468652065787069726554696d655365636f6e64476170206973206f7574206f662072616e67656c656e677468206f66206a61696c2076616c696461746f7273206d757374206265206f6e65746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374666565206973206c6172676572207468616e2044555354595f494e434f4d494e476c656e677468206f662065787069726554696d655365636f6e64476170206d69736d61746368f901b480f901b0f846941284214b9b9c85549ab3d2b972df0deef66ac2c9946ddf42a51534fc98d0c0a3b42c963cace8441ddf9477f066f3fb515bb97015e4b4afddbcb25c94286b86048c27395000f84694b71b214cb885500844365e95cd9942c7276e7fd894d22ca3ba2141d23adab65ce4940eb7665ea2b6a794748c284f46ab87fd492326f1e2fe731d22ad2db386048c27395000f84694a2959d3f95eae5dc7d70144ce1b73b403b7eb6e0948081ef03f1d9e0bb4a5bf38f16285c879299f07f940ce09b38374887cb564b7efa60be130d99ed5f9586048c27395000f84694980a75ecd1309ea12fa2ed87a8744fbfc9b863d594cc6ac05c95a99c1f7b5f88de0e3486c82293b2709407eecf36cf0901fefe4bc505d6ba03c7480c7b5786048c27395000f8469435552c16704d214347f29fa77f77da6d75d7c75294dc4973e838e3949c77aced16ac2315dc2d7ab11194f57d36e129881a3a13a024fe8072507e5b2e70f886048c27395000f84694f474cf03cceff28abc65c9cbae594f725c80e12d94e61a183325a18a173319dd8e19c8d069459e217594ddfcaedf9bb451098c9917a45f02bd61342cca6686048c273950006661696c656420746f20706172736520696e69742076616c696461746f72536574746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d6573736167652073656e646572206d7573742062652074686520626c6f636b2070726f6475636572746865206d6573736167652073656e646572206d75737420626520736c61736820636f6e7472616374a2646970667358221220ccbabefa423adb1cc63a2da2811a349dd54007c9dc3bd490ac200572c4e8eb1064736f6c63430006040033" + }, + "0x0000000000000000000000000000000000001001": { + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b50600436106102275760003560e01c8063831d65d111610130578063c80d4b8f116100b8578063e1c7392a1161007c578063e1c7392a146106d9578063f9a2bbc7146106e1578063fc3e5908146106e9578063fc4333cd146106f1578063fd6a6879146106f957610227565b8063c80d4b8f14610623578063c81b16621461062b578063c8509d8114610633578063c96be4cb146106ab578063dc927faf146106d157610227565b8063a1a11bf5116100ff578063a1a11bf514610531578063a78abc1614610539578063ab51bb9614610555578063ac0af6291461055d578063ac4317511461056557610227565b8063831d65d11461049f57806396713da9146105195780639bc8e4f2146105215780639dc092621461052957610227565b80634bf6c882116101b35780636e47b482116101825780636e47b4821461047757806370fd5bad1461047f57806375d47a0a146104875780637912a65d1461048f5780637942fd051461049757610227565b80634bf6c8821461045757806351e806721461045f578063567a372d1461046757806362b72cf51461046f57610227565b806337c8dab9116101fa57806337c8dab9146103b9578063389f4f71146103f85780633dffc3871461041257806343756e5c14610430578063493279b11461043857610227565b80630bee7a671461022c5780631182b8751461024d57806323bac5a21461033a57806335aa2e4414610380575b600080fd5b610234610701565b6040805163ffffffff9092168252519081900360200190f35b6102c56004803603604081101561026357600080fd5b60ff8235169190810190604081016020820135600160201b81111561028757600080fd5b82018360208201111561029957600080fd5b803590602001918460018302840111600160201b831117156102ba57600080fd5b509092509050610706565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102ff5781810151838201526020016102e7565b50505050905090810190601f16801561032c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103606004803603602081101561035057600080fd5b50356001600160a01b03166107da565b604080519384526020840192909252151582820152519081900360600190f35b61039d6004803603602081101561039657600080fd5b50356107fd565b604080516001600160a01b039092168252519081900360200190f35b6103df600480360360208110156103cf57600080fd5b50356001600160a01b0316610824565b6040805192835260208301919091528051918290030190f35b61040061087b565b60408051918252519081900360200190f35b61041a610881565b6040805160ff9092168252519081900360200190f35b61039d610886565b61044061088c565b6040805161ffff9092168252519081900360200190f35b61041a610891565b61039d610896565b61040061089c565b6104006108a2565b61039d6108a8565b61041a6108ae565b61039d6108b3565b6104006108b9565b61041a6108be565b610517600480360360408110156104b557600080fd5b60ff8235169190810190604081016020820135600160201b8111156104d957600080fd5b8201836020820111156104eb57600080fd5b803590602001918460018302840111600160201b8311171561050c57600080fd5b5090925090506108c3565b005b61041a610a1e565b610400610a23565b61039d610a2e565b61039d610a34565b610541610a3a565b604080519115158252519081900360200190f35b610234610a43565b610400610a48565b6105176004803603604081101561057b57600080fd5b810190602081018135600160201b81111561059557600080fd5b8201836020820111156105a757600080fd5b803590602001918460018302840111600160201b831117156105c857600080fd5b919390929091602081019035600160201b8111156105e557600080fd5b8201836020820111156105f757600080fd5b803590602001918460018302840111600160201b8311171561061857600080fd5b509092509050610a4d565b610400610e3b565b61039d610e40565b6105176004803603604081101561064957600080fd5b60ff8235169190810190604081016020820135600160201b81111561066d57600080fd5b82018360208201111561067f57600080fd5b803590602001918460018302840111600160201b831117156106a057600080fd5b509092509050610e46565b610517600480360360208110156106c157600080fd5b50356001600160a01b0316610ef9565b61039d61131e565b610517611324565b61039d611395565b61041a61139b565b6105176113a0565b61039d61182b565b606481565b606033612000146107485760405162461bcd60e51b815260040180806020018281038252602f815260200180612282602f913960400191505060405180910390fd5b60005460ff1661078d576040805162461bcd60e51b815260206004820152601960248201526000805160206122de833981519152604482015290519081900360640190fd5b6040805162461bcd60e51b815260206004820152601e60248201527f7265636569766520756e65787065637465642073796e207061636b6167650000604482015290519081900360640190fd5b600260208190526000918252604090912080546001820154919092015460ff1683565b6001818154811061080a57fe5b6000918252602090912001546001600160a01b0316905081565b60008061082f612146565b5050506001600160a01b0316600090815260026020818152604092839020835160608101855281548082526001830154938201849052919093015460ff16151592909301919091529091565b60055481565b600181565b61100181565b606181565b600881565b61200081565b60045481565b60035481565b61100581565b600281565b61100881565b603281565b600b81565b33612000146109035760405162461bcd60e51b815260040180806020018281038252602f815260200180612282602f913960400191505060405180910390fd5b60005460ff16610948576040805162461bcd60e51b815260206004820152601960248201526000805160206122de833981519152604482015290519081900360640190fd5b610950612169565b600061099184848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061183192505050565b9150915080156109db5781516040805163ffffffff9092168252517f7f0956d47419b9525356e7111652b653b530ec6f5096dccc04589bc38e6299679181900360200190a1610a17565b81516040805163ffffffff9092168252517f7d45f62d17443dd4547bca8a8112c60e2385669318dc300ec61a5d2492f262e79181900360200190a15b5050505050565b600981565b662386f26fc1000081565b61100781565b61100681565b60005460ff1681565b600081565b600481565b60005460ff16610a92576040805162461bcd60e51b815260206004820152601960248201526000805160206122de833981519152604482015290519081900360640190fd5b3361100714610ad25760405162461bcd60e51b815260040180806020018281038252602e81526020018061220d602e913960400191505060405180910390fd5b610b3d84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260148152731b5a5cd9195b59585b9bdc951a1c995cda1bdb1960621b602082015291506118b19050565b15610c165760208114610b815760405162461bcd60e51b81526004018080602001828103825260278152602001806121b66027913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610bbf9185858083850183828082843760009201919091525061199992505050565b905060018110158015610bd3575060055481105b610c0e5760405162461bcd60e51b815260040180806020018281038252602581526020018061225d6025913960400191505060405180910390fd5b600455610da9565b610c7c84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e19995b1bdb9e551a1c995cda1bdb19608a1b602082015291506118b19050565b15610d6c5760208114610cc05760405162461bcd60e51b815260040180806020018281038252602281526020018061223b6022913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610cfe9185858083850183828082843760009201919091525061199992505050565b90506103e88111158015610d13575060045481115b610d64576040805162461bcd60e51b815260206004820181905260248201527f7468652066656c6f6e795468726573686f6c64206f7574206f662072616e6765604482015290519081900360640190fd5b600555610da9565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b609681565b61100281565b3361200014610e865760405162461bcd60e51b815260040180806020018281038252602f815260200180612282602f913960400191505060405180910390fd5b60005460ff16610ecb576040805162461bcd60e51b815260206004820152601960248201526000805160206122de833981519152604482015290519081900360640190fd5b6040517f07db600eebe2ac176be8dcebad61858c245a4961bb32ca2aa3d159b09aa0810e90600090a1505050565b334114610f375760405162461bcd60e51b815260040180806020018281038252602d8152602001806122b1602d913960400191505060405180910390fd5b60005460ff16610f7c576040805162461bcd60e51b815260206004820152601960248201526000805160206122de833981519152604482015290519081900360640190fd5b6003544311610fd2576040805162461bcd60e51b815260206004820181905260248201527f63616e206e6f7420736c61736820747769636520696e206f6e6520626c6f636b604482015290519081900360640190fd5b3a1561101c576040805162461bcd60e51b81526020600482015260146024820152736761737072696365206973206e6f74207a65726f60601b604482015290519081900360640190fd5b611024612146565b506001600160a01b0381166000908152600260208181526040928390208351606081018552815481526001820154928101929092529091015460ff16158015928201929092529061107f5760208101805160010190526110d8565b60016040820181905260208201819052805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0384161790555b4381526005546020820151816110ea57fe5b0661123c57600060208201819052604080516335409f7f60e01b81526001600160a01b03851660048201529051611000926335409f7f926024808201939182900301818387803b15801561113d57600080fd5b505af1158015611151573d6000803e3d6000fd5b505050506120006001600160a01b031663f7a251d7600b6111718561199e565b60006040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156111d15781810151838201526020016111b9565b50505050905090810190601f1680156111fe5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561121f57600080fd5b505af1158015611233573d6000803e3d6000fd5b505050506112b2565b60045481602001518161124b57fe5b066112b257604080516375abf10160e11b81526001600160a01b038416600482015290516110009163eb57e20291602480830192600092919082900301818387803b15801561129957600080fd5b505af11580156112ad573d6000803e3d6000fd5b505050505b6001600160a01b0382166000818152600260208181526040808420865181559186015160018301558581015191909201805460ff1916911515919091179055517fddb6012116e51abf5436d956a4f0ebd927e92c576ff96d7918290c8782291e3e9190a2505043600355565b61100381565b60005460ff161561137c576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b603260045560966005556000805460ff19166001179055565b61100081565b600381565b33611000146113e05760405162461bcd60e51b81526004018080602001828103825260308152602001806121dd6030913960400191505060405180910390fd5b60005460ff16611425576040805162461bcd60e51b815260206004820152601960248201526000805160206122de833981519152604482015290519081900360640190fd5b60015461143157611829565b600154600090600019015b8082116117fd576000805b8284101561156057611457612146565b600260006001878154811061146857fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff16151590820152600554909150600490048160200151111561154a576004600554816114d557fe5b048160200151038160200181815250508060026000600188815481106114f757fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208351815591830151600183015591909101516002909101805460ff1916911515919091179055611554565b6001925050611560565b50600190930192611447565b8284116116f75761156f612146565b600260006001868154811061158057fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff161515908201526005549091506004900481602001511115611668576004600554816115ed57fe5b0481602001510381602001818152505080600260006001878154811061160f57fe5b6000918252602080832091909101546001600160a01b03168352828101939093526040918201902083518155918301516001808401919091559201516002909101805460ff191691151591909117905591506116f79050565b600260006001868154811061167957fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff191690558054806116bd57fe5b600082815260209020810160001990810180546001600160a01b0319169055019055836116ea57506116f7565b5060001990920191611560565b8180156117015750805b156117e057600260006001868154811061171757fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff1916905580548490811061175e57fe5b600091825260209091200154600180546001600160a01b03909216918690811061178457fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060018054806117bd57fe5b600082815260209020810160001990810180546001600160a01b03191690550190555b826117ec5750506117fd565b50506001909101906000190161143c565b6040517fcfdb3b6ccaeccbdc68be3c59c840e3b3c90f0a7c491f5fff1cf56cfda200dd9c90600090a150505b565b61100481565b611839612169565b6000611843612169565b61184b61217b565b61185c61185786611a70565b611a95565b90506000805b61186b83611adf565b156118a457806118975761188661188184611b00565b611b4e565b63ffffffff1684526001915061189c565b6118a4565b600101611862565b5091935090915050915091565b6000816040516020018082805190602001908083835b602083106118e65780518252601f1990920191602091820191016118c7565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106119545780518252601f199092019160209182019101611935565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052805190602001201490505b92915050565b015190565b60408051600480825260a08201909252606091829190816020015b60608152602001906001900390816119b95790505090506119e2836001600160a01b0316611c05565b816000815181106119ef57fe5b6020026020010181905250611a0343611c28565b81600181518110611a1057fe5b6020908102919091010152611a256061611c28565b81600281518110611a3257fe5b6020026020010181905250611a4642611c28565b81600381518110611a5357fe5b6020026020010181905250611a6781611c3b565b9150505b919050565b611a7861219b565b506040805180820190915281518152602082810190820152919050565b611a9d61217b565b611aa682611cc5565b611aaf57600080fd5b6000611abe8360200151611cff565b60208085015160408051808201909152868152920190820152915050919050565b6000611ae961219b565b505080518051602091820151919092015191011190565b611b0861219b565b611b1182611adf565b611b1a57600080fd5b60208201516000611b2a82611d62565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590611b6357508151602110155b611b6c57600080fd5b6000611b7b8360200151611cff565b90508083600001511015611bd6576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015611bfc57826020036101000a820491505b50949350505050565b60408051600560a21b8318601482015260348101909152606090611a6781611e95565b6060611993611c3683611eeb565b611e95565b6060815160001415611c5c5750604080516000815260208101909152611a6b565b606082600081518110611c6b57fe5b602002602001015190506000600190505b8351811015611cac57611ca282858381518110611c9557fe5b6020026020010151611fd1565b9150600101611c7c565b50611a67611cbf825160c060ff1661204e565b82611fd1565b8051600090611cd657506000611a6b565b6020820151805160001a9060c0821015611cf557600092505050611a6b565b5060019392505050565b8051600090811a6080811015611d19576000915050611a6b565b60b8811080611d34575060c08110801590611d34575060f881105b15611d43576001915050611a6b565b60c0811015611d575760b519019050611a6b565b60f519019050611a6b565b80516000908190811a6080811015611d7d5760019150611e8e565b60b8811015611d9257607e1981019150611e8e565b60c0811015611e0c57600060b78203600186019550806020036101000a865104915060018101820193505080831015611e06576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50611e8e565b60f8811015611e215760be1981019150611e8e565b600060f78203600186019550806020036101000a865104915060018101820193505080831015611e8c576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b606081516001148015611ec75750607f60f81b82600081518110611eb557fe5b01602001516001600160f81b03191611155b15611ed3575080611a6b565b611993611ee58351608060ff1661204e565b83611fd1565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416611f2f57506018611f53565b6fffffffffffffffffffffffffffffffff198416611f4f57506010611f53565b5060005b6020811015611f8957818181518110611f6857fe5b01602001516001600160f81b03191615611f8157611f89565b600101611f53565b60008160200390506060816040519080825280601f01601f191660200182016040528015611fbe576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b81831015612002578051835260209283019201611fea565b50855184518101855292509050808201602086015b8183101561202f578051835260209283019201612017565b508651929092011591909101601f01601f191660405250905092915050565b606068010000000000000000831061209e576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b604080516001808252818301909252606091602082018180368337019050509050603784116120f85782840160f81b816000815181106120da57fe5b60200101906001600160f81b031916908160001a9053509050611993565b606061210385611eeb565b90508381510160370160f81b8260008151811061211c57fe5b60200101906001600160f81b031916908160001a90535061213d8282611fd1565b95945050505050565b604051806060016040528060008152602001600081526020016000151581525090565b60408051602081019091526000815290565b604051806040016040528061218e61219b565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe6c656e677468206f66206d697364656d65616e6f725468726573686f6c64206d69736d61746368746865206d6573736167652073656e646572206d7573742062652076616c696461746f7253657420636f6e7472616374746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662066656c6f6e795468726573686f6c64206d69736d61746368746865206d697364656d65616e6f725468726573686f6c64206f7574206f662072616e6765746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d6573736167652073656e646572206d7573742062652074686520626c6f636b2070726f647563657274686520636f6e7472616374206e6f7420696e69742079657400000000000000a2646970667358221220928e8ab9d0213bb25ef35f991d92a3bba9ae0b32c8a4041abe55fcb03c7709dd64736f6c63430006040033" + }, + "0x0000000000000000000000000000000000001002": { + "balance": "0x0", + "code": "0x60806040526004361061014f5760003560e01c806396713da9116100b6578063c81b16621161006f578063c81b1662146103dc578063dc927faf146103f1578063f9a2bbc714610406578063fb5478b31461041b578063fc3e590814610430578063fd6a68791461044557610193565b806396713da91461033a5780639a99b4f01461034f5780639dc0926214610388578063a1a11bf51461039d578063a78abc16146103b2578063ab51bb96146103c757610193565b806351e806721161010857806351e806721461028a5780636d70f7ae1461029f5780636e47b482146102e657806370fd5bad146102fb57806375d47a0a146103105780637942fd051461032557610193565b80630bee7a67146101985780633a0b0eff146101c65780633dffc387146101ed57806343756e5c14610218578063493279b1146102495780634bf6c8821461027557610193565b366101935734156101915760408051348152905133917f6c98249d85d88c3753a04a22230f595e4dc8d3dc86c34af35deeeedc861b89db919081900360200190a25b005b600080fd5b3480156101a457600080fd5b506101ad61045a565b6040805163ffffffff9092168252519081900360200190f35b3480156101d257600080fd5b506101db61045f565b60408051918252519081900360200190f35b3480156101f957600080fd5b50610202610465565b6040805160ff9092168252519081900360200190f35b34801561022457600080fd5b5061022d61046a565b604080516001600160a01b039092168252519081900360200190f35b34801561025557600080fd5b5061025e610470565b6040805161ffff9092168252519081900360200190f35b34801561028157600080fd5b50610202610475565b34801561029657600080fd5b5061022d61047a565b3480156102ab57600080fd5b506102d2600480360360208110156102c257600080fd5b50356001600160a01b0316610480565b604080519115158252519081900360200190f35b3480156102f257600080fd5b5061022d61049e565b34801561030757600080fd5b506102026104a4565b34801561031c57600080fd5b5061022d6104a9565b34801561033157600080fd5b506102026104af565b34801561034657600080fd5b506102026104b4565b34801561035b57600080fd5b506101db6004803603604081101561037257600080fd5b506001600160a01b0381351690602001356104b9565b34801561039457600080fd5b5061022d610664565b3480156103a957600080fd5b5061022d61066a565b3480156103be57600080fd5b506102d2610670565b3480156103d357600080fd5b506101ad610679565b3480156103e857600080fd5b5061022d61067e565b3480156103fd57600080fd5b5061022d610684565b34801561041257600080fd5b5061022d61068a565b34801561042757600080fd5b506101db610690565b34801561043c57600080fd5b5061020261069c565b34801561045157600080fd5b5061022d6106a1565b606481565b60015481565b600181565b61100181565b606181565b600881565b61200081565b6001600160a01b031660009081526002602052604090205460ff1690565b61100581565b600281565b61100881565b600b81565b600981565b6000805460ff1661053657600260208190527fe57bda0a954a7c7381b17b2c763e646ba2c60f67292d287ba583603e2c1c41668054600160ff19918216811790925561100560009081527fe25235fc0de9d7165652bef0846fefda506174abb9a190f03d0f7bcc6146dbce80548316841790559282558254161790555b3360009081526002602052604090205460ff166105845760405162461bcd60e51b815260040180806020018281038252602b8152602001806106a8602b913960400191505060405180910390fd5b60004783106105935747610595565b825b9050670de0b6b3a76400008111156105b25750670de0b6b3a76400005b8015610633576040516001600160a01b0385169082156108fc029083906000818181858888f193505050501580156105ee573d6000803e3d6000fd5b506040805182815290516001600160a01b038616917ff8b71c64315fc33b2ead2adfa487955065152a8ac33d9d5193aafd7f45dc15a0919081900360200190a261065d565b6040517fe589651933c2457488cc0d8e0941518abf748e799435e4e396d9c4d0b2db2d4d90600090a15b9392505050565b61100781565b61100681565b60005460ff1681565b600081565b61100281565b61100381565b61100081565b670de0b6b3a764000081565b600381565b6110048156fe6f6e6c79206f70657261746f7220697320616c6c6f77656420746f2063616c6c20746865206d6574686f64a2646970667358221220276887b515b756cf3ef5b38df18fd3a11174ee7fd973bdd337fc09d6b0e42f3b64736f6c63430006040033" + }, + "0x0000000000000000000000000000000000001003": { + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b50600436106102115760003560e01c8063a78abc1611610125578063dda83148116100ad578063e405bbc31161007c578063e405bbc314610681578063ea54b2aa14610689578063f9a2bbc714610691578063fc3e590814610699578063fd6a6879146106a157610211565b8063dda8314814610609578063df5fe7041461062f578063e1c7392a14610655578063e2761af01461065d57610211565b8063c81b1662116100f4578063c81b166214610534578063cba510a91461053c578063d816987914610562578063da8d08f0146105db578063dc927faf1461060157610211565b8063a78abc1614610444578063ab51bb9614610460578063ac43175114610468578063adc879e91461052c57610211565b8063564b81ef116101a857806375d47a0a1161017757806375d47a0a1461041c5780637942fd051461042457806396713da91461042c5780639dc0926214610434578063a1a11bf51461043c57610211565b8063564b81ef146102ca5780635c5ae8db146103475780636e47b4821461040c57806370fd5bad1461041457610211565b806343756e5c116101e457806343756e5c14610277578063493279b11461029b5780634bf6c882146102ba57806351e80672146102c257610211565b80630bee7a67146102165780632657e9b61461023757806333f7798d146102515780633dffc38714610259575b600080fd5b61021e6106a9565b6040805163ffffffff9092168252519081900360200190f35b61023f6106ae565b60408051918252519081900360200190f35b61023f6106b9565b6102616106bf565b6040805160ff9092168252519081900360200190f35b61027f6106c4565b604080516001600160a01b039092168252519081900360200190f35b6102a36106ca565b6040805161ffff9092168252519081900360200190f35b6102616106cf565b61027f6106d4565b6102d26106da565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561030c5781810151838201526020016102f4565b50505050905090810190601f1680156103395780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61036d6004803603602081101561035d57600080fd5b50356001600160401b03166107e6565b60405180856001600160401b03166001600160401b0316815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156103ce5781810151838201526020016103b6565b50505050905090810190601f1680156103fb5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b61027f6108a1565b6102616108a7565b61027f6108ac565b6102616108b2565b6102616108b7565b61027f6108bc565b61027f6108c2565b61044c6108c8565b604080519115158252519081900360200190f35b61021e6108d1565b61052a6004803603604081101561047e57600080fd5b81019060208101813564010000000081111561049957600080fd5b8201836020820111156104ab57600080fd5b803590602001918460018302840111640100000000831117156104cd57600080fd5b9193909290916020810190356401000000008111156104eb57600080fd5b8201836020820111156104fd57600080fd5b8035906020019184600183028401116401000000008311171561051f57600080fd5b5090925090506108d6565b005b61023f610b8f565b61027f610b95565b61023f6004803603602081101561055257600080fd5b50356001600160401b0316610b9b565b61044c6004803603604081101561057857600080fd5b81019060208101813564010000000081111561059357600080fd5b8201836020820111156105a557600080fd5b803590602001918460018302840111640100000000831117156105c757600080fd5b9193509150356001600160401b0316610bba565b61027f600480360360208110156105f157600080fd5b50356001600160401b031661139b565b61027f6113b6565b61027f6004803603602081101561061f57600080fd5b50356001600160401b03166113bc565b61044c6004803603602081101561064557600080fd5b50356001600160401b03166113e0565b61052a611422565b6106656115c7565b604080516001600160401b039092168252519081900360200190f35b6106656115d6565b6102d26115ec565b61027f611609565b61026161160f565b61027f611614565b606481565b662386f26fc1000081565b60055481565b600181565b61100181565b606181565b600881565b61200081565b604080516020808252818301909252606091829190602082018180368337505060045460208301525090506000805b60208160ff16101561075057828160ff168151811061072457fe5b01602001516001600160f81b0319161561074357600190910190610748565b610750565b600101610709565b5060608160ff166040519080825280601f01601f191660200182016040528015610781576020820181803683370190505b50905060005b8260ff168160ff1610156107dd57838160ff16815181106107a457fe5b602001015160f81c60f81b828260ff16815181106107be57fe5b60200101906001600160f81b031916908160001a905350600101610787565b50925050505b90565b60016020818152600092835260409283902080548184015460028084015460038501805489516101009982161599909902600019011692909204601f81018790048702880187019098528787526001600160401b0390931696919592949091908301828280156108975780601f1061086c57610100808354040283529160200191610897565b820191906000526020600020905b81548152906001019060200180831161087a57829003601f168201915b5050505050905084565b61100581565b600281565b61100881565b600b81565b600981565b61100781565b61100681565b60005460ff1681565b600081565b60005460ff1661092d576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604482015290519081900360640190fd5b336110071461096d5760405162461bcd60e51b815260040180806020018281038252602e815260200180611ac6602e913960400191505060405180910390fd5b6109e184848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601b81527f726577617264466f7256616c696461746f725365744368616e676500000000006020820152915061161a9050565b15610ac05760208114610a255760405162461bcd60e51b815260040180806020018281038252602e815260200180611a65602e913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610a639185858083850183828082843760009201919091525061170192505050565b9050600081118015610a7d5750670de0b6b3a76400008111155b610ab85760405162461bcd60e51b815260040180806020018281038252602f815260200180611af4602f913960400191505060405180910390fd5b600555610afd565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b60045481565b61100281565b6001600160401b03166000908152600160208190526040909120015490565b60408051630a83aaa960e31b815233600482015290516000916110069163541d554891602480820192602092909190829003018186803b158015610bfd57600080fd5b505afa158015610c11573d6000803e3d6000fd5b505050506040513d6020811015610c2757600080fd5b5051610c7a576040805162461bcd60e51b815260206004820152601f60248201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604482015290519081900360640190fd5b6001600160401b0382166000908152600260205260409020546001600160a01b031615610cee576040805162461bcd60e51b815260206004820152601c60248201527f63616e27742073796e63206475706c6963617465642068656164657200000000604482015290519081900360640190fd5b6003546001600160401b0390811690831611610d3b5760405162461bcd60e51b8152600401808060200182810382526026815260200180611b236026913960400191505060405180910390fd5b600354600160401b90046001600160401b0316610d56611863565b6001600160401b0382811660009081526001602081815260409283902083516080810185528154909516855280830154858301526002808201548686015260038201805486516101009682161596909602600019011691909104601f81018490048402850184019095528484529093606086019392830182828015610e1c5780601f10610df157610100808354040283529160200191610e1c565b820191906000526020600020905b815481529060010190602001808311610dff57829003601f168201915b50505050508152505090505b836001600160401b0316826001600160401b031610158015610e5957506003546001600160401b0390811690831610155b15610f3a5780516001600160401b0380821660009081526001602081815260409283902083516080810185528154909516855280830154858301526002808201548686015260038201805486516101009682161596909602600019011691909104601f8101849004840285018401909552848452959750939460608601939091830182828015610f2a5780601f10610eff57610100808354040283529160200191610f2a565b820191906000526020600020905b815481529060010190602001808311610f0d57829003601f168201915b5050505050815250509050610e28565b6060810151516110315780516001600160401b03811660009081526001602081815260409283902060030180548451600294821615610100026000190190911693909304601f810183900483028401830190945283835293955090929190830182828015610fe95780601f10610fbe57610100808354040283529160200191610fe9565b820191906000526020600020905b815481529060010190602001808311610fcc57829003601f168201915b505050506060830182905250516110315760405162461bcd60e51b8152600401808060200182810382526021815260200180611a446021913960400191505060405180910390fd5b6000816060015151608801905060608787905082016040519080825280601f01601f191660200182016040528015611070576020820181803683370190505b509050600061107e82611706565b905061108c8486838661170c565b6110c75760405162461bcd60e51b81526004018080602001828103825260238152602001806119416023913960400191505060405180910390fd5b6000838201915061110d8a8a8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061177892505050565b9450905061111c818386611782565b8251602001935061112b611889565b6110008186866064600019fa61114057600080fd5b805194506000600160f81b8616156111cf5750600554604080516309a99b4f60e41b815233600482015260248101929092525160019161100291639a99b4f0916044808201926020929091908290030181600087803b1580156111a257600080fd5b505af11580156111b6573d6000803e3d6000fd5b505050506040513d60208110156111cc57600080fd5b50505b856001600160401b0316955060208201935060006111ef858884156117c3565b90985090506001600160401b03808216908c161461123e5760405162461bcd60e51b8152600401808060200182810382526033815260200180611a936033913960400191505060405180910390fd5b6001600160401b03808c16600081815260026020818152604080842080546001600160a01b031916331790558e86168e529383526001808252928490208d518154961667ffffffffffffffff199096169590951785558c81015192850192909255918b01519183019190915560608a015180518b93926112c59260038501929101906118a8565b50506003546001600160401b03600160401b9091048116908d161115905061130d576003805467ffffffffffffffff60401b1916600160401b6001600160401b038e16021790555b7f4042c1020a8f410fb1c8859d276ab436aeb2c3074960e48467299cf1c966d3b48b8a8a602001518560405180856001600160401b03166001600160401b03168152602001846001600160401b03166001600160401b031681526020018381526020018215151515815260200194505050505060405180910390a15060019c9b505050505050505050505050565b6002602052600090815260409020546001600160a01b031681565b61100381565b6001600160401b03166000908152600260205260409020546001600160a01b031690565b6001600160401b0381166000908152600260205260408120546001600160a01b031615158061141c57506003546001600160401b038381169116145b92915050565b60005460ff161561147a576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b60008061149f60405180610100016040528060e0815260200161196460e09139611778565b815160045590925090506114b1611863565b60006114bf848460006117c3565b60008083526001600160401b038281168252600160208181526040938490208651815467ffffffffffffffff191694169390931783558086015191830191909155918401516002820155606084015180519496509294508593909261152b9260038501929101906118a8565b50506003805467ffffffffffffffff19166001600160401b0384811691821767ffffffffffffffff60401b1916600160401b9290920291909117918290556000805460ff19166001179055662386f26fc10000600555602085810151604080519490931684529083015280517f5ac9b37d571677b80957ca05693f371526c602fd08042b416a29fdab7efefa499350918290030190a150505050565b6003546001600160401b031681565b600354600160401b90046001600160401b031681565b60405180610100016040528060e0815260200161196460e0913981565b61100081565b600381565b61100481565b6000816040516020018082805190602001908083835b6020831061164f5780518252601f199092019160209182019101611630565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106116bd5780518252601f19909201916020918201910161169e565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b60200190565b600084606001515182840103925060008061172a8760600151611778565b909250905061173a828683611782565b5050506040840151601f1983810191909152602090940151603f19830152605f19820192909252600454606719820152910160871990910152600190565b8051602090910191565b5b602081106117a2578251825260209283019290910190601f1901611783565b915181516020939093036101000a6000190180199091169216919091179052565b6117cb611863565b60088401516028850151604890950180519095600092916117ea611863565b6020810183905260408101829052866118555760008060688a036040519080825280601f01601f19166020018201604052801561182e576020820181803683370190505b506060840181905261183f90611778565b909250905061185260208c018383611782565b50505b989297509195505050505050565b604080516080810182526000808252602082018190529181019190915260608082015290565b6040518061100001604052806080906020820280368337509192915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106118e957805160ff1916838001178555611916565b82800160010185558215611916579182015b828111156119165782518255916020019190600101906118fb565b50611922929150611926565b5090565b6107e391905b80821115611922576000815560010161192c56fe6661696c656420746f2073657269616c697a6520636f6e73656e73757320737461746542696e616e63652d436861696e2d47616e67657300000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000aea1ac326886b992a991d21a6eb155f41b77867cbf659e78f31d89d8205122a84d1be64f0e9a466c2e66a53433928192783e29f8fa21beb2133499b5ef770f60000000e8d4a5100099308aa365c40554bc89982af505d85da95251445d5dd4a9bb37dd2584fd92d3000000e8d4a5100001776920ff0b0f38d78cf95c033c21adf7045785114e392a7544179652e0a612000000e8d4a510006661696c656420746f206c6f61642076616c696461746f722073657420646174616c656e677468206f6620726577617264466f7256616c696461746f725365744368616e6765206d69736d617463686865616465722068656967687420646f65736e277420657175616c20746f207468652073706563696669656420686569676874746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374746865206e6577526577617264466f7256616c696461746f725365744368616e6765206f7574206f662072616e676563616e27742073796e6320686561646572206265666f726520696e697469616c486569676874a2646970667358221220137a8776113e727049f523a5f1486edaec611d89ff3d19f099dfe799b6b5e66f64736f6c63430006040033" + }, + "0x0000000000000000000000000000000000001004": { + "balance": "0x0", + "code": "0x60806040526004361061031e5760003560e01c80639a99b4f0116101ab578063bd466461116100f7578063f014847211610095578063fc1a598f1161006f578063fc1a598f14610cb3578063fc3e5908146109c9578063fd6a687914610ce6578063ff9c0027146107c757610366565b8063f014847214610c74578063f9a2bbc714610c89578063fa9e915914610c9e57610366565b8063dc6f5e90116100d1578063dc6f5e90146109c9578063dc927faf14610c35578063e1c7392a14610c4a578063ebf71d5314610c5f57610366565b8063bd46646114610b68578063c81b166214610b9b578063c8509d8114610bb057610366565b8063a7c9f02d11610164578063ac4317511161013e578063ac43175114610a3a578063b770186114610b05578063b99328c514610b1a578063b9fd21e314610b5357610366565b8063a7c9f02d146109c9578063aa7415f5146109de578063ab51bb9614610a2557610366565b80639a99b4f0146109095780639dc0926214610942578063a1a11bf514610957578063a496fba21461096c578063a5cd588b14610981578063a78abc16146109b457610366565b80635d499b1b1161026a57806375d47a0a116102235780638b87b21f116101fd5780638b87b21f146105b25780638eff336c146108a057806396713da9146108df5780639a854bbd146108f457610366565b806375d47a0a146107f15780637942fd0514610806578063831d65d11461081b57610366565b80635d499b1b14610671578063613684751461036b5780636e056520146106865780636e47b482146107b257806370fd5bad146107c757806371d30863146107dc57610366565b806343756e5c116102d75780634bf6c882116102b15780634bf6c8821461036b57806350432d321461061d57806351e806721461063257806359b927891461064757610366565b806343756e5c146105c757806343a368b9146105dc578063493279b1146105f157610366565b8063077b8f351461036b5780630bee7a67146103965780631182b875146103c4578063149d14d9146104be5780633d713223146104e55780633dffc387146105b257610366565b36610366573415610364576040805133815234602082015281517f6c98249d85d88c3753a04a22230f595e4dc8d3dc86c34af35deeeedc861b89db929181900390910190a15b005b600080fd5b34801561037757600080fd5b50610380610cfb565b6040805160ff9092168252519081900360200190f35b3480156103a257600080fd5b506103ab610d00565b6040805163ffffffff9092168252519081900360200190f35b3480156103d057600080fd5b50610449600480360360408110156103e757600080fd5b60ff8235169190810190604081016020820135600160201b81111561040b57600080fd5b82018360208201111561041d57600080fd5b803590602001918460018302840111600160201b8311171561043e57600080fd5b509092509050610d05565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561048357818101518382015260200161046b565b50505050905090810190601f1680156104b05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156104ca57600080fd5b506104d3610e33565b60408051918252519081900360200190f35b3480156104f157600080fd5b506105966004803603602081101561050857600080fd5b810190602081018135600160201b81111561052257600080fd5b82018360208201111561053457600080fd5b803590602001918460018302840111600160201b8311171561055557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610e39945050505050565b604080516001600160a01b039092168252519081900360200190f35b3480156105be57600080fd5b50610380610e5d565b3480156105d357600080fd5b50610596610e62565b3480156105e857600080fd5b506104d3610e68565b3480156105fd57600080fd5b50610606610e74565b6040805161ffff9092168252519081900360200190f35b34801561062957600080fd5b506104d3610e79565b34801561063e57600080fd5b50610596610e84565b34801561065357600080fd5b506105966004803603602081101561066a57600080fd5b5035610e8a565b34801561067d57600080fd5b506104d3610ea5565b61079e6004803603608081101561069c57600080fd5b810190602081018135600160201b8111156106b657600080fd5b8201836020820111156106c857600080fd5b803590602001918460208302840111600160201b831117156106e957600080fd5b919390929091602081019035600160201b81111561070657600080fd5b82018360208201111561071857600080fd5b803590602001918460208302840111600160201b8311171561073957600080fd5b919390929091602081019035600160201b81111561075657600080fd5b82018360208201111561076857600080fd5b803590602001918460208302840111600160201b8311171561078957600080fd5b91935091503567ffffffffffffffff16610eae565b604080519115158252519081900360200190f35b3480156107be57600080fd5b50610596611383565b3480156107d357600080fd5b50610380611389565b3480156107e857600080fd5b506104d361138e565b3480156107fd57600080fd5b50610596611394565b34801561081257600080fd5b5061038061139a565b34801561082757600080fd5b506103646004803603604081101561083e57600080fd5b60ff8235169190810190604081016020820135600160201b81111561086257600080fd5b82018360208201111561087457600080fd5b803590602001918460018302840111600160201b8311171561089557600080fd5b50909250905061139f565b3480156108ac57600080fd5b50610364600480360360608110156108c357600080fd5b508035906001600160a01b0360208201351690604001356114e8565b3480156108eb57600080fd5b5061038061156e565b34801561090057600080fd5b506104d3611573565b34801561091557600080fd5b506104d36004803603604081101561092c57600080fd5b506001600160a01b03813516906020013561157f565b34801561094e57600080fd5b506105966116bd565b34801561096357600080fd5b506105966116c3565b34801561097857600080fd5b506103806116c9565b34801561098d57600080fd5b506104d3600480360360208110156109a457600080fd5b50356001600160a01b03166116ce565b3480156109c057600080fd5b5061079e6116e0565b3480156109d557600080fd5b506103806116e9565b61079e600480360360808110156109f457600080fd5b5080356001600160a01b03908116916020810135909116906040810135906060013567ffffffffffffffff166116ee565b348015610a3157600080fd5b506103ab6116c9565b348015610a4657600080fd5b5061036460048036036040811015610a5d57600080fd5b810190602081018135600160201b811115610a7757600080fd5b820183602082011115610a8957600080fd5b803590602001918460018302840111600160201b83111715610aaa57600080fd5b919390929091602081019035600160201b811115610ac757600080fd5b820183602082011115610ad957600080fd5b803590602001918460018302840111600160201b83111715610afa57600080fd5b509092509050611daf565b348015610b1157600080fd5b506104d361201e565b348015610b2657600080fd5b5061036460048036036040811015610b3d57600080fd5b50803590602001356001600160a01b0316612024565b348015610b5f57600080fd5b506104d361209a565b348015610b7457600080fd5b506104d360048036036020811015610b8b57600080fd5b50356001600160a01b03166120a4565b348015610ba757600080fd5b506105966120bf565b348015610bbc57600080fd5b5061036460048036036040811015610bd357600080fd5b60ff8235169190810190604081016020820135600160201b811115610bf757600080fd5b820183602082011115610c0957600080fd5b803590602001918460018302840111600160201b83111715610c2a57600080fd5b5090925090506120c5565b348015610c4157600080fd5b50610596612195565b348015610c5657600080fd5b5061036461219b565b348015610c6b57600080fd5b5061038061223b565b348015610c8057600080fd5b50610380612240565b348015610c9557600080fd5b50610596612245565b348015610caa57600080fd5b506104d361224b565b348015610cbf57600080fd5b5061044960048036036020811015610cd657600080fd5b50356001600160a01b0316612251565b348015610cf257600080fd5b50610596612378565b600881565b606481565b60005460609060ff16610d4d576040805162461bcd60e51b815260206004820152601960248201526000805160206147bf833981519152604482015290519081900360640190fd5b3361200014610d8d5760405162461bcd60e51b815260040180806020018281038252602f81526020018061476d602f913960400191505060405180910390fd5b60ff841660021415610ddf57610dd883838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061237e92505050565b9050610e2c565b6040805162461bcd60e51b815260206004820152601860248201527f756e7265636f676e697a65642073796e207061636b6167650000000000000000604482015290519081900360640190fd5b9392505050565b60015490565b6020818101516000908152600490915260409020546001600160a01b03165b919050565b600181565b61100181565b670de0b6b3a764000081565b606181565b662386f26fc1000081565b61200081565b6000908152600460205260409020546001600160a01b031690565b6402540be40081565b6000805460ff16610ef4576040805162461bcd60e51b815260206004820152601960248201526000805160206147bf833981519152604482015290519081900360640190fd5b868514610f325760405162461bcd60e51b815260040180806020018281038252603b815260200180614732603b913960400191505060405180910390fd5b868314610f705760405162461bcd60e51b815260040180806020018281038252603f815260200180614605603f913960400191505060405180910390fd5b426078018267ffffffffffffffff161015610fbc5760405162461bcd60e51b81526004018080602001828103825260248152602001806144f56024913960400191505060405180910390fd5b6402540be4003406156110005760405162461bcd60e51b81526004018080602001828103825260408152602001806148356040913960400191505060405180910390fd5b60408051868152602080880282010190915285906000908190606090848015611033578160200160208202803683370190505b50905060005b8481101561110e576402540be4008b8b8381811061105357fe5b905060200201358161106157fe5b061561109e5760405162461bcd60e51b815260040180806020018281038252603c815260200180614644603c913960400191505060405180910390fd5b6110c38b8b838181106110ad57fe5b90506020020135856124a290919063ffffffff16565b93506110ef6402540be4008c8c848181106110da57fe5b905060200201356124fc90919063ffffffff16565b8282815181106110fb57fe5b6020908102919091010152600101611039565b5060015461113390611126908663ffffffff61253e16565b849063ffffffff6124a216565b3410156111715760405162461bcd60e51b81526004018080602001828103825260568152602001806147df6056913960600191505060405180910390fd5b611181348463ffffffff61259716565b915061118b61434e565b6040518060c001604052806221272160e91b60001b815260200160006001600160a01b031681526020018381526020018e8e808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505050908252506040805160208c810282810182019093528c82529283019290918d918d91829185019084908082843760009201919091525050509082525067ffffffffffffffff8916602090910152905061200063f7a251d7600361124f846125d9565b611264876402540be40063ffffffff6124fc16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156112c25781810151838201526020016112aa565b50505050905090810190601f1680156112ef5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561131057600080fd5b505af1158015611324573d6000803e3d6000fd5b505060408051600081523360208201528082018890526060810187905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a15060019c9b505050505050505050505050565b61100581565b600281565b60015481565b61100881565b600b81565b60005460ff166113e4576040805162461bcd60e51b815260206004820152601960248201526000805160206147bf833981519152604482015290519081900360640190fd5b33612000146114245760405162461bcd60e51b815260040180806020018281038252602f81526020018061476d602f913960400191505060405180910390fd5b60ff8316600314156114745761146f82828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061289492505050565b6114e3565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a15b505050565b33611008146115285760405162461bcd60e51b815260040180806020018281038252602381526020018061479c6023913960400191505060405180910390fd5b600083815260046020908152604080832080546001600160a01b039096166001600160a01b03199096168617905593825260038152838220949094556002909352912055565b600981565b677ce66c50e284000081565b6000805460ff166115c5576040805162461bcd60e51b815260206004820152601960248201526000805160206147bf833981519152604482015290519081900360640190fd5b33611005146116055760405162461bcd60e51b815260040180806020018281038252602f815260200180614468602f913960400191505060405180910390fd5b60004783106116145747611616565b825b9050670de0b6b3a76400008111156116325760009150506116b7565b80156116b4576040516001600160a01b0385169082156108fc029083906000818181858888f1935050505015801561166e573d6000803e3d6000fd5b50604080516001600160a01b03861681526020810183905281517ff8b71c64315fc33b2ead2adfa487955065152a8ac33d9d5193aafd7f45dc15a0929181900390910190a15b90505b92915050565b61100781565b61100681565b600081565b60026020526000908152604090205481565b60005460ff1681565b600381565b6000805460ff16611734576040805162461bcd60e51b815260206004820152601960248201526000805160206147bf833981519152604482015290519081900360640190fd5b426078018267ffffffffffffffff1610156117805760405162461bcd60e51b81526004018080602001828103825260248152602001806144f56024913960400191505060405180910390fd5b6402540be4003406156117c45760405162461bcd60e51b81526004018080602001828103825260408152602001806148356040913960400191505060405180910390fd5b600080806001600160a01b0388166118a3576001546117ea90879063ffffffff6124a216565b3410156118285760405162461bcd60e51b815260040180806020018281038252606181526020018061457f6061913960800191505060405180910390fd5b6402540be40086061561186c5760405162461bcd60e51b815260040180806020018281038252603c815260200180614644603c913960400191505060405180910390fd5b61187c348763ffffffff61259716565b9050611893866402540be40063ffffffff6124fc16565b6221272160e91b93509150611b46565b6001600160a01b0388166000908152600360205260409020549250826118fa5760405162461bcd60e51b815260040180806020018281038252603181526020018061454e6031913960400191505060405180910390fd5b60015434101561193b5760405162461bcd60e51b815260040180806020018281038252603f8152602001806146a1603f913960400191505060405180910390fd5b506001600160a01b038716600090815260026020526040902054349060088111158061198657506008811180156119865750611984876007198301600a0a63ffffffff6128f016565b155b6119c15760405162461bcd60e51b815260040180806020018281038252603c815260200180614644603c913960400191505060405180910390fd5b6119cb8782612932565b92506119d684612972565b15611a1e576305f5e100831015611a1e5760405162461bcd60e51b815260040180806020018281038252603a815260200180614497603a913960400191505060405180910390fd5b600881101580611a385750600881108015611a3857508683115b611a735760405162461bcd60e51b81526004018080602001828103825260258152602001806145e06025913960400191505060405180910390fd5b677ce66c50e2840000831115611aba5760405162461bcd60e51b81526004018080602001828103825260358152602001806145196035913960400191505060405180910390fd5b604080516323b872dd60e01b81523360048201523060248201526044810189905290516001600160a01b038b16916323b872dd9160648083019260209291908290030181600087803b158015611b0f57600080fd5b505af1158015611b23573d6000803e3d6000fd5b505050506040513d6020811015611b3957600080fd5b5051611b4457600080fd5b505b611b4e61434e565b6040805160c0810182528581526001600160a01b038b166020820152815160018082528184018452919283019181602001602082028036833750505081526040805160018082528183019092526020928301929091908083019080368337505050815260408051600180825281830190925260209283019290919080830190803683370190505081526020018767ffffffffffffffff168152509050828160400151600081518110611bfc57fe5b602002602001018181525050878160600151600081518110611c1a57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050338160800151600081518110611c4c57fe5b6001600160a01b039092166020928302919091019091015261200063f7a251d76003611c77846125d9565b611c8c866402540be40063ffffffff6124fc16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611cea578181015183820152602001611cd2565b50505050905090810190601f168015611d175780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015611d3857600080fd5b505af1158015611d4c573d6000803e3d6000fd5b5050604080516001600160a01b038d1681523360208201528082018b90526060810186905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a150600198975050505050505050565b3361100714611def5760405162461bcd60e51b815260040180806020018281038252602e8152602001806146e0602e913960400191505060405180910390fd5b60208114611e44576040805162461bcd60e51b815260206004820152601b60248201527f65787065637465642076616c7565206c656e6774682069732033320000000000604482015290519081900360640190fd5b606084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8801819004810282018101909252868152939450606093925086915085908190840183828082843760009201919091525050505060208301519091506772656c617946656560c01b811415611f4c576020820151670de0b6b3a76400008111801590611ef357506402540be4008106155b611f44576040805162461bcd60e51b815260206004820152601960248201527f7468652072656c6179466565206f7574206f662072616e676500000000000000604482015290519081900360640190fd5b600155611f89565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a878787876040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050505050565b61c35081565b33611008146120645760405162461bcd60e51b815260040180806020018281038252602381526020018061479c6023913960400191505060405180910390fd5b600091825260046020908152604080842080546001600160a01b03191690556001600160a01b0392909216835260039052812055565b6221272160e91b81565b6001600160a01b031660009081526003602052604090205490565b61100281565b60005460ff1661210a576040805162461bcd60e51b815260206004820152601960248201526000805160206147bf833981519152604482015290519081900360640190fd5b336120001461214a5760405162461bcd60e51b815260040180806020018281038252602f81526020018061476d602f913960400191505060405180910390fd5b60ff8316600314156114745761146f82828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612a7892505050565b61100381565b60005460ff16156121f3576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b662386f26fc1000060019081556000808052600260205260127fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b55805460ff19169091179055565b600481565b600581565b61100081565b61271081565b6001600160a01b03811660009081526003602090815260409182902054825182815280840190935260609290918391906020820181803683375050506020810183905290506000805b60208160ff1610156122e157828160ff16815181106122b557fe5b01602001516001600160f81b031916156122d4576001909101906122d9565b6122e1565b60010161229a565b5060608160ff166040519080825280601f01601f191660200182016040528015612312576020820181803683370190505b50905060005b8260ff168160ff16101561236e57838160ff168151811061233557fe5b602001015160f81c60f81b828260ff168151811061234f57fe5b60200101906001600160f81b031916908160001a905350600101612318565b5095945050505050565b61100481565b606061238861439a565b600061239384612b76565b91509150806123e9576040805162461bcd60e51b815260206004820152601f60248201527f756e7265636f676e697a6564207472616e73666572496e207061636b61676500604482015290519081900360640190fd5b60006123f483612cb5565b905063ffffffff811615612488576040808401516020808601516001600160a01b0316600090815260029091529182205461242f9190612932565b90506124396143cf565b60405180608001604052808660000151815260200183815260200186608001516001600160a01b031681526020018463ffffffff16815250905061247c81613002565b95505050505050610e58565b50506040805160008152602081019091529150610e589050565b6000828201838110156116b4576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60006116b483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506130de565b60008261254d575060006116b7565b8282028284828161255a57fe5b04146116b45760405162461bcd60e51b81526004018080602001828103825260218152602001806146806021913960400191505060405180910390fd5b60006116b483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613180565b60408051600680825260e08201909252606091829190816020015b60608152602001906001900390816125f45750508351909150612616906131da565b8160008151811061262357fe5b602002602001018190525061264483602001516001600160a01b03166131ed565b8160018151811061265157fe5b60200260200101819052506000836040015151905060608160405190808252806020026020018201604052801561269c57816020015b60608152602001906001900390816126875790505b50905060005b828110156126e9576126ca866040015182815181106126bd57fe5b60200260200101516131da565b8282815181106126d657fe5b60209081029190910101526001016126a2565b506126f381613210565b8360028151811061270057fe5b602002602001018190525060608260405190808252806020026020018201604052801561274157816020015b606081526020019060019003908161272c5790505b50905060005b83811015612797576127788760600151828151811061276257fe5b60200260200101516001600160a01b03166131ed565b82828151811061278457fe5b6020908102919091010152600101612747565b506127a181613210565b846003815181106127ae57fe5b60200260200101819052506060836040519080825280602002602001820160405280156127ef57816020015b60608152602001906001900390816127da5790505b50905060005b8481101561282f576128108860800151828151811061276257fe5b82828151811061281c57fe5b60209081029190910101526001016127f5565b5061283981613210565b8560048151811061284657fe5b60200260200101819052506128688760a0015167ffffffffffffffff166131da565b8560058151811061287557fe5b602002602001018190525061288985613210565b979650505050505050565b61289c6143f6565b60006128a78361329a565b91509150806128e75760405162461bcd60e51b815260040180806020018281038252602481526020018061470e6024913960400191505060405180910390fd5b6114e382613465565b60006116b483836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f00000000000000008152506138e9565b6000600882111561295b57612954836007198401600a0a63ffffffff6124fc16565b90506116b7565b6116b4836008849003600a0a63ffffffff61253e16565b604080516020808252818301909252600091606091906020820181803683375050506020810184905290506000805b60208160ff1610156129e857828160ff16815181106129bc57fe5b01602001516001600160f81b031916156129db576001909101906129e0565b6129e8565b6001016129a1565b50600860ff82161015612a0057600092505050610e58565b816005820360ff1681518110612a1257fe5b6020910101516001600160f81b031916602d60f81b14612a3757600092505050610e58565b816001820360ff1681518110612a4957fe5b6020910101516001600160f81b031916604d60f81b14612a6e57600092505050610e58565b5060019392505050565b612a8061434e565b6000612a8b8361394b565b9150915080612acb5760405162461bcd60e51b81526004018080602001828103825260248152602001806144d16024913960400191505060405180910390fd5b612ad36143f6565b602080840180516001600160a01b0390811684526040808701518585015291511660009081526002909252812054905b846040015151811015612b5457612b3185604001518281518110612b2357fe5b602002602001015183613bc6565b85604001518281518110612b4157fe5b6020908102919091010152600101612b03565b506080840151604083015260056060830152612b6f82613465565b5050505050565b612b7e61439a565b6000612b8861439a565b612b9061442d565b612ba1612b9c86613bff565b613c24565b90506000805b612bb083613c6e565b15612ca85780612bd257612bcb612bc684613c8f565b613cdd565b8452612ca0565b8060011415612bff57612bec612be784613c8f565b613d94565b6001600160a01b03166020850152612ca0565b8060021415612c1e57612c14612bc684613c8f565b6040850152612ca0565b8060031415612c4657612c33612be784613c8f565b6001600160a01b03166060850152612ca0565b8060041415612c6e57612c5b612be784613c8f565b6001600160a01b03166080850152612ca0565b8060051415612c9b57612c83612bc684613c8f565b67ffffffffffffffff1660a085015260019150612ca0565b612ca8565b600101612ba7565b5091935090915050915091565b60208101516000906001600160a01b0316612dec578160a0015167ffffffffffffffff16421115612ce857506001610e58565b8160400151471015612cfc57506003610e58565b606082015160408084015190516000926001600160a01b0316916127109184818181858888f193505050503d8060008114612d53576040519150601f19603f3d011682016040523d82523d6000602084013e612d58565b606091505b5050905080612d6b575060049050610e58565b7f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5983602001518460600151856040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a15060009050610e58565b8160a0015167ffffffffffffffff16421115612e0a57506001610e58565b81516020808401516001600160a01b031660009081526003909152604090205414612e3757506002610e58565b602080830151604080516370a0823160e01b815230600482015290516000936001600160a01b03909316926370a082319261c3509260248083019392829003018187803b158015612e8757600080fd5b5086fa158015612e9b573d6000803e3d6000fd5b50505050506040513d6020811015612eb257600080fd5b50516040840151909150811015612ecd575060039050610e58565b600083602001516001600160a01b031663a9059cbb61c350866060015187604001516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b158015612f3e57600080fd5b5087f1158015612f52573d6000803e3d6000fd5b50505050506040513d6020811015612f6957600080fd5b505190508015612ff6577f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5984602001518560600151866040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a15060009150610e589050565b5060059150610e589050565b60408051600480825260a08201909252606091829190816020015b606081526020019060019003908161301d575050835190915061303f906131da565b8160008151811061304c57fe5b602002602001018190525061306483602001516131da565b8160018151811061307157fe5b602002602001018190525061309283604001516001600160a01b03166131ed565b8160028151811061309f57fe5b60200260200101819052506130bd836060015163ffffffff166131da565b816003815181106130ca57fe5b6020026020010181905250610e2c81613210565b6000818361316a5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561312f578181015183820152602001613117565b50505050905090810190601f16801561315c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161317657fe5b0495945050505050565b600081848411156131d25760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561312f578181015183820152602001613117565b505050900390565b60606116b76131e883613dae565b613e94565b60408051600560a21b8318601482015260348101909152606090610e2c81613e94565b60608151600014156132315750604080516000815260208101909152610e58565b60608260008151811061324057fe5b602002602001015190506000600190505b8351811015613281576132778285838151811061326a57fe5b6020026020010151613ee6565b9150600101613251565b50610e2c613294825160c060ff16613f63565b82613ee6565b6132a26143f6565b60006132ac6143f6565b6132b461442d565b6132c0612b9c86613bff565b90506000805b6132cf83613c6e565b15612ca857806132f5576132e5612be784613c8f565b6001600160a01b0316845261345d565b806001141561339657606061331161330c85613c8f565b61405b565b9050805160405190808252806020026020018201604052801561333e578160200160208202803683370190505b50602086015260005b815181101561338f5761336c82828151811061335f57fe5b6020026020010151613cdd565b8660200151828151811061337c57fe5b6020908102919091010152600101613347565b505061345d565b80600214156134385760606133ad61330c85613c8f565b905080516040519080825280602002602001820160405280156133da578160200160208202803683370190505b50604086015260005b815181101561338f576134088282815181106133fb57fe5b6020026020010151613d94565b8660400151828151811061341857fe5b6001600160a01b03909216602092830291909101909101526001016133e3565b8060031415612c9b5761344d612bc684613c8f565b63ffffffff166060850152600191505b6001016132c6565b80516001600160a01b031661368f5760005b8160200151518110156136895760008260400151828151811061349657fe5b60200260200101516001600160a01b0316612710846020015184815181106134ba57fe5b60209081029190910101516040516000818181858888f193505050503d8060008114613502576040519150601f19603f3d011682016040523d82523d6000602084013e613507565b606091505b50509050806135ca577f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061354657fe5b60200260200101518560200151858151811061355e57fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a1613680565b7fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a83600001518460400151848151811061360057fe5b60200260200101518560200151858151811061361857fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b50600101613477565b506138e6565b60005b8160200151518110156138e457600082600001516001600160a01b031663a9059cbb61c350856040015185815181106136c757fe5b6020026020010151866020015186815181106136df57fe5b60200260200101516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b15801561373657600080fd5b5087f115801561374a573d6000803e3d6000fd5b50505050506040513d602081101561376157600080fd5b505190508015613825577fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a8360000151846040015184815181106137a157fe5b6020026020010151856020015185815181106137b957fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a16138db565b7f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061385b57fe5b60200260200101518560200151858151811061387357fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b50600101613692565b505b50565b600081836139385760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561312f578181015183820152602001613117565b5082848161394257fe5b06949350505050565b61395361434e565b600061395d61434e565b61396561442d565b613971612b9c86613bff565b90506000805b61398083613c6e565b15613bb8578061399d57613996612bc684613c8f565b8452613bb0565b80600114156139c5576139b2612be784613c8f565b6001600160a01b03166020850152613bb0565b8060021415613a545760606139dc61330c85613c8f565b90508051604051908082528060200260200182016040528015613a09578160200160208202803683370190505b50604086015260005b8151811015613a4d57613a2a82828151811061335f57fe5b86604001518281518110613a3a57fe5b6020908102919091010152600101613a12565b5050613bb0565b8060031415613ae9576060613a6b61330c85613c8f565b90508051604051908082528060200260200182016040528015613a98578160200160208202803683370190505b50606086015260005b8151811015613a4d57613ab98282815181106133fb57fe5b86606001518281518110613ac957fe5b6001600160a01b0390921660209283029190910190910152600101613aa1565b8060041415613b7e576060613b0061330c85613c8f565b90508051604051908082528060200260200182016040528015613b2d578160200160208202803683370190505b50608086015260005b8151811015613a4d57613b4e8282815181106133fb57fe5b86608001518281518110613b5e57fe5b6001600160a01b0390921660209283029190910190910152600101613b36565b8060051415613bab57613b93612bc684613c8f565b67ffffffffffffffff1660a085015260019150613bb0565b613bb8565b600101613977565b509195600195509350505050565b60006008821115613be857612954836007198401600a0a63ffffffff61253e16565b6116b4836008849003600a0a63ffffffff6124fc16565b613c0761444d565b506040805180820190915281518152602082810190820152919050565b613c2c61442d565b613c358261412c565b613c3e57600080fd5b6000613c4d836020015161415c565b60208085015160408051808201909152868152920190820152915050919050565b6000613c7861444d565b505080518051602091820151919092015191011190565b613c9761444d565b613ca082613c6e565b613ca957600080fd5b60208201516000613cb9826141bf565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590613cf257508151602110155b613cfb57600080fd5b6000613d0a836020015161415c565b90508083600001511015613d65576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015613d8b57826020036101000a820491505b50949350505050565b8051600090601514613da557600080fd5b6116b782613cdd565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416613df257506018613e16565b6fffffffffffffffffffffffffffffffff198416613e1257506010613e16565b5060005b6020811015613e4c57818181518110613e2b57fe5b01602001516001600160f81b03191615613e4457613e4c565b600101613e16565b60008160200390506060816040519080825280601f01601f191660200182016040528015613e81576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015613ec65750607f60f81b82600081518110613eb457fe5b01602001516001600160f81b03191611155b15613ed2575080610e58565b6116b7613ee48351608060ff16613f63565b835b6060806040519050835180825260208201818101602087015b81831015613f17578051835260209283019201613eff565b50855184518101855292509050808201602086015b81831015613f44578051835260209283019201613f2c565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310613fb3576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b6040805160018082528183019092526060916020820181803683370190505090506037841161400d5782840160f81b81600081518110613fef57fe5b60200101906001600160f81b031916908160001a90535090506116b7565b606061401885613dae565b90508381510160370160f81b8260008151811061403157fe5b60200101906001600160f81b031916908160001a9053506140528282613ee6565b95945050505050565b60606140668261412c565b61406f57600080fd5b600061407a836142f2565b90506060816040519080825280602002602001820160405280156140b857816020015b6140a561444d565b81526020019060019003908161409d5790505b50905060006140ca856020015161415c565b60208601510190506000805b84811015614121576140e7836141bf565b915060405180604001604052808381526020018481525084828151811061410a57fe5b6020908102919091010152918101916001016140d6565b509195945050505050565b805160009061413d57506000610e58565b6020820151805160001a9060c0821015612a6e57600092505050610e58565b8051600090811a6080811015614176576000915050610e58565b60b8811080614191575060c08110801590614191575060f881105b156141a0576001915050610e58565b60c08110156141b45760b519019050610e58565b60f519019050610e58565b80516000908190811a60808110156141da57600191506142eb565b60b88110156141ef57607e19810191506142eb565b60c081101561426957600060b78203600186019550806020036101000a865104915060018101820193505080831015614263576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b506142eb565b60f881101561427e5760be19810191506142eb565b600060f78203600186019550806020036101000a8651049150600181018201935050808310156142e9576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b805160009061430357506000610e58565b60008090506000614317846020015161415c565b602085015185519181019250015b8082101561434557614336826141bf565b60019093019290910190614325565b50909392505050565b6040518060c001604052806000801916815260200160006001600160a01b03168152602001606081526020016060815260200160608152602001600067ffffffffffffffff1681525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b60408051608081018252600080825260208201819052918101829052606081019190915290565b604051806080016040528060006001600160a01b031681526020016060815260200160608152602001600063ffffffff1681525090565b604051806040016040528061444061444d565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe746865206d6573736167652073656e646572206d75737420626520696e63656e746976697a6520636f6e7472616374466f72206d696e69546f6b656e2c20746865207472616e7366657220616d6f756e74206d757374206e6f74206265206c657373207468616e2031756e7265636f676e697a6564207472616e736665724f75742073796e207061636b61676565787069726554696d65206d7573742062652074776f206d696e75746573206c61746572616d6f756e7420697320746f6f206c617267652c20657863656564206d6178696d756d206265703220746f6b656e20616d6f756e7474686520636f6e747261637420686173206e6f74206265656e20626f756e6420746f20616e79206265703220746f6b656e726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e736665724f757420424e4220616d6f756e7420616e64206d696e696d756d2072656c6179466565616d6f756e7420697320746f6f206c617267652c2075696e74323536206f766572666c6f774c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620726566756e644164647273696e76616c6964207472616e7366657220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e20746865206d696e696d756d2072656c6179466565746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374756e7265636f676e697a6564207472616e736665724f75742061636b207061636b6167654c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620616d6f756e7473746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d73672073656e646572206d75737420626520746f6b656e4d616e6167657274686520636f6e7472616374206e6f7420696e69742079657400000000000000726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e7366657220424e4220616d6f756e7420616e642072656c6179466565696e76616c696420726563656976656420424e4220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6ea2646970667358221220e59d62bf5fb2933f655143755e397406da6b105ef90a69a8209ff1a057bc41c964736f6c63430006040033" + }, + "0x0000000000000000000000000000000000001005": { + "balance": "0x0", + "code": "0x6080604052600436106102765760003560e01c80637e146cc51161014f578063af400681116100c1578063e75d72c71161007a578063e75d72c714610795578063e89a3020146107c8578063f9a2bbc7146107f2578063fc3e590814610807578063fd6a68791461081c578063fdd31fcd146108315761027d565b8063af400681146106ed578063bd4cc83014610717578063c81b166214610741578063dc927faf14610756578063dcae76ab1461076b578063e1c7392a146107805761027d565b8063a3c3c0ad11610113578063a3c3c0ad146105b3578063a78abc16146105c8578063a7c6a59d146105dd578063ab51bb96146105f2578063ac43175114610607578063ace9fcc2146106d85761027d565b80637e146cc51461052c578063930e1b091461054157806396713da9146105745780639dc0926214610589578063a1a11bf51461059e5761027d565b806343756e5c116101e85780636e47b482116101ac5780636e47b482146104645780636f93d2e61461047957806370fd5bad146104d857806374f2272d146104ed57806375d47a0a146105025780637942fd05146105175761027d565b806343756e5c146103e4578063493279b1146103f95780634bf6c8821461042557806351e806721461043a578063541333071461044f5761027d565b806312950c461161023a57806312950c46146103165780631b20087c1461032b5780631c643312146103405780633a975612146102825780633dffc3871461038657806340bb43c0146103b15761027d565b8063081e9d131461028257806308f2ec06146102a9578063093f2fc4146102be5780630bee7a67146102d357806310e06a76146103015761027d565b3661027d57005b600080fd5b34801561028e57600080fd5b50610297610864565b60408051918252519081900360200190f35b3480156102b557600080fd5b50610297610869565b3480156102ca57600080fd5b5061029761086e565b3480156102df57600080fd5b506102e8610873565b6040805163ffffffff9092168252519081900360200190f35b34801561030d57600080fd5b50610297610878565b34801561032257600080fd5b5061029761087e565b34801561033757600080fd5b50610297610884565b34801561034c57600080fd5b5061036a6004803603602081101561036357600080fd5b503561088a565b604080516001600160a01b039092168252519081900360200190f35b34801561039257600080fd5b5061039b610864565b6040805160ff9092168252519081900360200190f35b3480156103bd57600080fd5b50610297600480360360208110156103d457600080fd5b50356001600160a01b03166108b1565b3480156103f057600080fd5b5061036a6108c3565b34801561040557600080fd5b5061040e6108c9565b6040805161ffff9092168252519081900360200190f35b34801561043157600080fd5b5061039b6108ce565b34801561044657600080fd5b5061036a6108d3565b34801561045b57600080fd5b50610297610873565b34801561047057600080fd5b5061036a6108d9565b34801561048557600080fd5b506104c46004803603608081101561049c57600080fd5b506001600160a01b0381358116916020810135909116906040810135906060013515156108df565b604080519115158252519081900360200190f35b3480156104e457600080fd5b5061039b610cad565b3480156104f957600080fd5b50610297610cb2565b34801561050e57600080fd5b5061036a610cb8565b34801561052357600080fd5b5061039b610cbe565b34801561053857600080fd5b50610297610cc3565b34801561054d57600080fd5b506102976004803603602081101561056457600080fd5b50356001600160a01b0316610cc8565b34801561058057600080fd5b5061039b610cda565b34801561059557600080fd5b5061036a610cdf565b3480156105aa57600080fd5b5061036a610ce5565b3480156105bf57600080fd5b50610297610ceb565b3480156105d457600080fd5b506104c4610cf1565b3480156105e957600080fd5b50610297610cfa565b3480156105fe57600080fd5b506102e8610d00565b34801561061357600080fd5b506106d66004803603604081101561062a57600080fd5b81019060208101813564010000000081111561064557600080fd5b82018360208201111561065757600080fd5b8035906020019184600183028401116401000000008311171561067957600080fd5b91939092909160208101903564010000000081111561069757600080fd5b8201836020820111156106a957600080fd5b803590602001918460018302840111640100000000831117156106cb57600080fd5b509092509050610d05565b005b3480156106e457600080fd5b50610297611354565b3480156106f957600080fd5b506102976004803603602081101561071057600080fd5b503561135a565b34801561072357600080fd5b506102976004803603602081101561073a57600080fd5b50356113b5565b34801561074d57600080fd5b5061036a6113ce565b34801561076257600080fd5b5061036a6113d4565b34801561077757600080fd5b506102976113da565b34801561078c57600080fd5b506106d66113e0565b3480156107a157600080fd5b506106d6600480360360208110156107b857600080fd5b50356001600160a01b03166114a9565b3480156107d457600080fd5b5061036a600480360360208110156107eb57600080fd5b5035611602565b3480156107fe57600080fd5b5061036a61160f565b34801561081357600080fd5b5061039b611615565b34801561082857600080fd5b5061036a61161a565b34801561083d57600080fd5b506102976004803603602081101561085457600080fd5b50356001600160a01b0316611620565b600181565b602881565b605081565b606481565b600b5481565b60015481565b600c5481565b6006818154811061089757fe5b6000918252602090912001546001600160a01b0316905081565b60076020526000908152604090205481565b61100181565b606181565b600881565b61200081565b61100581565b6000805460ff16610937576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604482015290519081900360640190fd5b33612000146109775760405162461bcd60e51b815260040180806020018281038252602f815260200180612164602f913960400191505060405180910390fd5b600082156109fc57604080516309a99b4f60e41b8152611005600482015260248101869052905161100291639a99b4f09160448083019260209291908290030181600087803b1580156109c957600080fd5b505af11580156109dd573d6000803e3d6000fd5b505050506040513d60208110156109f357600080fd5b50519050610a75565b604080516309a99b4f60e41b8152611005600482015260248101869052905161100491639a99b4f09160448083019260209291908290030181600087803b158015610a4657600080fd5b505af1158015610a5a573d6000803e3d6000fd5b505050506040513d6020811015610a7057600080fd5b505190505b600c805460010190556000610a8982611632565b600954909150610a9f908263ffffffff61166116565b600955600a54610ac7908290610abb908563ffffffff61166116565b9063ffffffff6116c216565b600a556001600160a01b038716600090815260056020526040902054610b3357600680546001810182556000919091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319166001600160a01b0389161790555b6001600160a01b038088166000908152600560209081526040808320805460010190559289168252600790522054610bb157600880546001810182556000919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319166001600160a01b0388161790555b6001600160a01b038616600090815260076020526040902080546001019055600c54606411610ca057600b54600954600a5460408051938452602084019290925282820152517f2649b1b772a1a74bd332a67695e285317dd722941166595741c60a00fa65bb759181900360600190a16000610c2b611704565b90506000610c376119e8565b6001600160a01b0389166000908152600d6020526040902054909150610c75908290610c69908563ffffffff61166116565b9063ffffffff61166116565b6001600160a01b0389166000908152600d6020526040812091909155600b80546001019055600c5550505b5060019695505050505050565b600281565b60035481565b61100881565b600b81565b600581565b60056020526000908152604090205481565b600981565b61100781565b61100681565b600a5481565b60005460ff1681565b60045481565b600081565b3361100714610d455760405162461bcd60e51b815260040180806020018281038252602e8152602001806120a9602e913960400191505060405180910390fd5b60005460ff16610d865760405162461bcd60e51b81526004018080602001828103825260218152602001806120d76021913960400191505060405180910390fd5b610dfa84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601f81527f68656164657252656c61796572526577617264526174654d6f6c6563756c650060208201529150611c669050565b15610ec75760208114610e3e5760405162461bcd60e51b81526004018080602001828103825260328152602001806121936032913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610e7c91858580838501838280828437600092019190915250611d4d92505050565b9050600254811115610ebf5760405162461bcd60e51b8152600401808060200182810382526060815260200180611f826060913960600191505060405180910390fd5b6001556112c2565b610f2084848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805160608101909152602280825290925090506120876020830139611c66565b15610ff85760208114610f645760405162461bcd60e51b815260040180806020018281038252602e815260200180612038602e913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610fa291858580838501838280828437600092019190915250611d4d92505050565b90508015801590610fb557506001548110155b610ff05760405162461bcd60e51b815260040180806020018281038252606c8152602001806120f8606c913960800191505060405180910390fd5b6002556112c2565b61106c84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601a81527f63616c6c6572436f6d70656e736174696f6e4d6f6c6563756c6500000000000060208201529150611c669050565b1561113957602081146110b05760405162461bcd60e51b815260040180806020018281038252602e815260200180612038602e913960400191505060405180910390fd5b604080516020601f84018190048102820181019092528281526000916110ee91858580838501838280828437600092019190915250611d4d92505050565b90506004548111156111315760405162461bcd60e51b8152600401808060200182810382526056815260200180611fe26056913960600191505060405180910390fd5b6003556112c2565b6111ad84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601d81527f63616c6c6572436f6d70656e736174696f6e44656e6f6d696e61746f7200000060208201529150611c669050565b1561128557602081146111f15760405162461bcd60e51b815260040180806020018281038252602e815260200180612038602e913960400191505060405180910390fd5b604080516020601f840181900481028201810190925282815260009161122f91858580838501838280828437600092019190915250611d4d92505050565b9050801580159061124257506003548110155b61127d5760405162461bcd60e51b8152600401808060200182810382526061815260200180611f216061913960800191505060405180910390fd5b6004556112c2565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b60025481565b60006028821161136b5750806113b0565b81602810801561137c575060508211155b15611389575060286113b0565b60508211801561139a5750606e8211155b156113aa575060788190036113b0565b50600481045b919050565b6000602882116113c65750806113b0565b5060286113b0565b61100281565b61100381565b60095481565b60005460ff1615611438576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b60005460ff1615611486576040805162461bcd60e51b8152602060048201526013602482015272185b1c9958591e481a5b9a5d1a585b1a5e9959606a1b604482015290519081900360640190fd5b60018080556005600255600381905560506004556000805460ff19169091179055565b6001600160a01b0381166000908152600d602052604090205480611508576040805162461bcd60e51b81526020600482015260116024820152701b9bc81c995b185e595c881c995dd85c99607a1b604482015290519081900360640190fd5b6001600160a01b0382166000818152600d60205260408082208290555184929184156108fc02918591818181858888f193505050506115b85760405161100290819084156108fc029085906000818181858888f19350505050158015611572573d6000803e3d6000fd5b506040805161100281526020810185905281517f24502838a334c8f2bb2ee1f8262a4fa7183e4489a717e96cc824e325f8b39e11929181900390910190a15050506115ff565b604080516001600160a01b03851681526020810184905281517f24502838a334c8f2bb2ee1f8262a4fa7183e4489a717e96cc824e325f8b39e11929181900390910190a150505b50565b6008818154811061089757fe5b61100081565b600381565b61100481565b600d6020526000908152604090205481565b600061165b60025461164f60015485611d5290919063ffffffff16565b9063ffffffff611dab16565b92915050565b6000828201838110156116bb576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b60006116bb83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ded565b600954600680546040805160208084028201810190925282815260009493859360609383018282801561176057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611742575b5050505050905060608151604051908082528060200260200182016040528015611794578160200160208202803683370190505b50905060005b82518110156118215760008382815181106117b157fe5b6020026020010151905060006117eb60056000846001600160a01b03166001600160a01b03168152602001908152602001600020546113b5565b9050808484815181106117fa57fe5b6020908102919091010152611815868263ffffffff61166116565b9550505060010161179a565b50600061183f60045461164f60035488611d5290919063ffffffff16565b9050611851858263ffffffff6116c216565b94508460015b845181101561192857600061188c8761164f8a88868151811061187657fe5b6020026020010151611d5290919063ffffffff16565b90506118d981600d60008986815181106118a257fe5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205461166190919063ffffffff16565b600d60008885815181106118e957fe5b6020908102919091018101516001600160a01b031682528101919091526040016000205561191d838263ffffffff6116c216565b925050600101611857565b5061193e81600d6000876000815181106118a257fe5b600d60008660008151811061194f57fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002081905550600060098190555060008090505b84518110156119d057600560008683815181106119a257fe5b6020908102919091018101516001600160a01b03168252810191909152604001600090812055600101611989565b506119dd60066000611ee9565b509450505050505b90565b600a546008805460408051602080840282018101909252828152600094938593606093830182828015611a4457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611a26575b5050505050905060608151604051908082528060200260200182016040528015611a78578160200160208202803683370190505b50905060005b8251811015611af7576000838281518110611a9557fe5b602002602001015190506000611acf60076000846001600160a01b03166001600160a01b031681526020019081526020016000205461135a565b905080848481518110611ade57fe5b6020908102919091010152949094019350600101611a7e565b506000611b1560045461164f60035488611d5290919063ffffffff16565b9050611b27858263ffffffff6116c216565b94508460015b8451811015611bb1576000611b4c8761164f8a88868151811061187657fe5b9050611b6281600d60008986815181106118a257fe5b600d6000888581518110611b7257fe5b6020908102919091018101516001600160a01b0316825281019190915260400160002055611ba6838263ffffffff6116c216565b925050600101611b2d565b50611bc781600d6000876000815181106118a257fe5b600d600086600081518110611bd857fe5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020819055506000600a8190555060008090505b8451811015611c595760076000868381518110611c2b57fe5b6020908102919091018101516001600160a01b03168252810191909152604001600090812055600101611c12565b506119dd60086000611ee9565b6000816040516020018082805190602001908083835b60208310611c9b5780518252601f199092019160209182019101611c7c565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310611d095780518252601f199092019160209182019101611cea565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b600082611d615750600061165b565b82820282848281611d6e57fe5b04146116bb5760405162461bcd60e51b81526004018080602001828103825260218152602001806120666021913960400191505060405180910390fd5b60006116bb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611e84565b60008184841115611e7c5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e41578181015183820152602001611e29565b50505050905090810190601f168015611e6e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008183611ed35760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315611e41578181015183820152602001611e29565b506000838581611edf57fe5b0495945050505050565b50805460008255906000526020600020908101906115ff91906119e591905b80821115611f1c5760008155600101611f08565b509056fe746865206e657743616c6c6572436f6d70656e736174696f6e44656e6f6d696e61746f72206d757374206e6f74206265207a65726f20616e64206e6f206c657373207468616e2063616c6c6572436f6d70656e736174696f6e4d6f6c6563756c656e65772068656164657252656c61796572526577617264526174654d6f6c6563756c652073686f756c646e27742062652067726561746572207468616e2068656164657252656c617965725265776172645261746544656e6f6d696e61746f726e65772063616c6c6572436f6d70656e736174696f6e4d6f6c6563756c652073686f756c646e27742062652067726561746572207468616e2063616c6c6572436f6d70656e736174696f6e44656e6f6d696e61746f726c656e677468206f6620726577617264466f7256616c696461746f725365744368616e6765206d69736d61746368536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7768656164657252656c617965725265776172645261746544656e6f6d696e61746f72746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374636f6e747261637420686173206e6f74206265656e20696e697469616c697a6564746865206e65772068656164657252656c617965725265776172645261746544656e6f6d696e61746f72206d757374206e6f74206265207a65726f20616e64206e6f206c657373207468616e2068656164657252656c61796572526577617264526174654d6f6c6563756c65746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e74726163746c656e677468206f662068656164657252656c61796572526577617264526174654d6f6c6563756c65206d69736d61746368a2646970667358221220b0f586134d92421afeb7764dfa9711bf04e0920aa1729c40e9183ccccafbb49d64736f6c63430006040033" + }, + "0x0000000000000000000000000000000000001006": { + "balance": "0x0", + "code": "0x6080604052600436106101c25760003560e01c806395468d26116100f7578063c81b166211610095578063f9a2bbc711610064578063f9a2bbc714610529578063fb7cfdd71461053e578063fc3e590814610553578063fd6a687914610568576101c2565b8063c81b1662146104d5578063dc927faf146104ea578063e1c7392a146104ff578063e79a198f14610514576101c2565b8063a1a11bf5116100d1578063a1a11bf5146103c7578063a78abc16146103dc578063ab51bb96146103f1578063ac43175114610406576101c2565b806395468d261461038857806396713da91461039d5780639dc09262146103b2576101c2565b8063541d55481161016457806370fd5bad1161013e57806370fd5bad1461033457806375d47a0a146103495780637942fd051461035e5780637ae2308814610373576101c2565b8063541d5548146102b15780636a87d780146102f85780636e47b4821461031f576101c2565b806343756e5c116101a057806343756e5c1461022a578063493279b11461025b5780634bf6c8821461028757806351e806721461029c576101c2565b80630bee7a67146101c75780631aa3a008146101f55780633dffc387146101ff575b600080fd5b3480156101d357600080fd5b506101dc61057d565b6040805163ffffffff9092168252519081900360200190f35b6101fd610582565b005b34801561020b57600080fd5b5061021461077d565b6040805160ff9092168252519081900360200190f35b34801561023657600080fd5b5061023f610782565b604080516001600160a01b039092168252519081900360200190f35b34801561026757600080fd5b50610270610788565b6040805161ffff9092168252519081900360200190f35b34801561029357600080fd5b5061021461078d565b3480156102a857600080fd5b5061023f610792565b3480156102bd57600080fd5b506102e4600480360360208110156102d457600080fd5b50356001600160a01b0316610798565b604080519115158252519081900360200190f35b34801561030457600080fd5b5061030d6107b6565b60408051918252519081900360200190f35b34801561032b57600080fd5b5061023f6107bc565b34801561034057600080fd5b506102146107c2565b34801561035557600080fd5b5061023f6107c7565b34801561036a57600080fd5b506102146107cd565b34801561037f57600080fd5b5061030d6107d2565b34801561039457600080fd5b5061030d6107df565b3480156103a957600080fd5b506102146107eb565b3480156103be57600080fd5b5061023f6107f0565b3480156103d357600080fd5b5061023f6107f6565b3480156103e857600080fd5b506102e46107fc565b3480156103fd57600080fd5b506101dc610805565b34801561041257600080fd5b506101fd6004803603604081101561042957600080fd5b81019060208101813564010000000081111561044457600080fd5b82018360208201111561045657600080fd5b8035906020019184600183028401116401000000008311171561047857600080fd5b91939092909160208101903564010000000081111561049657600080fd5b8201836020820111156104a857600080fd5b803590602001918460018302840111640100000000831117156104ca57600080fd5b50909250905061080a565b3480156104e157600080fd5b5061023f610c2c565b3480156104f657600080fd5b5061023f610c32565b34801561050b57600080fd5b506101fd610c38565b34801561052057600080fd5b506101fd610cba565b34801561053557600080fd5b5061023f610e73565b34801561054a57600080fd5b5061030d610e79565b34801561055f57600080fd5b50610214610e7f565b34801561057457600080fd5b5061023f610e84565b606481565b3360009081526004602052604090205460ff16156105df576040805162461bcd60e51b81526020600482015260156024820152741c995b185e595c88185b1c9958591e48195e1a5cdd605a1b604482015290519081900360640190fd5b60005460ff16610632576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b61063b33610e8a565b156106775760405162461bcd60e51b815260040180806020018281038252602781526020018061109c6027913960400191505060405180910390fd5b3332146106c1576040805162461bcd60e51b81526020600482015260136024820152721b9bc81c1c9bde1e481a5cc8185b1b1bddd959606a1b604482015290519081900360640190fd5b60015434146107015760405162461bcd60e51b81526004018080602001828103825260258152602001806110776025913960400191505060405180910390fd5b604080518082018252600180548252600254602080840191825233600081815260038352868120955186559251948401949094556004815290849020805460ff1916909217909155825191825291517fdb33a09d38b59a8fa8b7d92a1d82c8015e99f05f67ae9c9ae623157767959496929181900390910190a1565b600181565b61100181565b606181565b600881565b61200081565b6001600160a01b031660009081526004602052604090205460ff1690565b60025481565b61100581565b600281565b61100881565b600b81565b68056bc75e2d6310000081565b67016345785d8a000081565b600981565b61100781565b61100681565b60005460ff1681565b600081565b60005460ff1661085d576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b336110071461089d5760405162461bcd60e51b815260040180806020018281038252602e8152602001806110c3602e913960400191505060405180910390fd5b61090384848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e1c995c5d5a5c995911195c1bdcda5d608a1b60208201529150610e909050565b15610a0657602081146109475760405162461bcd60e51b81526004018080602001828103825260228152602001806110f16022913960400191505060405180910390fd5b604080516020601f840181900481028201810190925282815260009161098591858580838501838280828437600092019190915250610f7792505050565b90506001811180156109a05750683635c9adc5dea000008111155b80156109ad575060025481115b6109fe576040805162461bcd60e51b815260206004820181905260248201527f7468652072657175697265644465706f736974206f7574206f662072616e6765604482015290519081900360640190fd5b600155610b9a565b610a6184848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260048152636475657360e01b60208201529150610e909050565b15610b5d5760208114610abb576040805162461bcd60e51b815260206004820152601760248201527f6c656e677468206f662064756573206d69736d61746368000000000000000000604482015290519081900360640190fd5b604080516020601f8401819004810282018101909252828152600091610af991858580838501838280828437600092019190915250610f7792505050565b9050600081118015610b0c575060015481105b610b55576040805162461bcd60e51b81526020600482015260156024820152747468652064756573206f7574206f662072616e676560581b604482015290519081900360640190fd5b600255610b9a565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b61100281565b61100381565b60005460ff1615610c90576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b68056bc75e2d63100000600190815567016345785d8a00006002556000805460ff19169091179055565b3360009081526004602052604090205460ff16610d15576040805162461bcd60e51b81526020600482015260146024820152731c995b185e595c88191bc81b9bdd08195e1a5cdd60621b604482015290519081900360640190fd5b60005460ff16610d68576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b610d7061105c565b5033600081815260036020908152604091829020825180840190935280548084526001909101549183018290529192916108fc91610db4919063ffffffff610f7c16565b6040518115909202916000818181858888f19350505050158015610ddc573d6000803e3d6000fd5b50602081015160405161100291829181156108fc0291906000818181858888f19350505050158015610e12573d6000803e3d6000fd5b50336000818152600460209081526040808320805460ff191690556003825280832083815560010192909255815192835290517fd17202129b83db7880d6b9f25df81c58ad46f7e0e2c92236b1aa10663a4876679281900390910190a15050565b61100081565b60015481565b600381565b61100481565b3b151590565b6000816040516020018082805190602001908083835b60208310610ec55780518252601f199092019160209182019101610ea6565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310610f335780518252601f199092019160209182019101610f14565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b6000610fbe83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610fc5565b9392505050565b600081848411156110545760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611019578181015183820152602001611001565b50505050905090810190601f1680156110465780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60405180604001604052806000815260200160008152509056fe6465706f7369742076616c7565206973206e6f742065786163746c79207468652073616d65636f6e7472616374206973206e6f7420616c6c6f77656420746f20626520612072656c61796572746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662072657175697265644465706f736974206d69736d61746368a26469706673582212205b3719dbe352a0da1c7c0fda084d877d745e453695a354811ae82144145a56ae64736f6c63430006040033" + }, + "0x0000000000000000000000000000000000001007": { + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b506004361061018e5760003560e01c8063831d65d1116100de578063ab51bb9611610097578063dc927faf11610071578063dc927faf14610486578063f9a2bbc71461048e578063fc3e590814610496578063fd6a68791461049e5761018e565b8063ab51bb96146103fc578063c81b166214610404578063c8509d811461040c5761018e565b8063831d65d11461034457806396713da9146103c05780639ab1a373146103c85780639dc09262146103d0578063a1a11bf5146103d8578063a78abc16146103e05761018e565b8063493279b11161014b5780636e47b482116101255780636e47b4821461032457806370fd5bad1461032c57806375d47a0a146103345780637942fd051461033c5761018e565b8063493279b1146102f55780634bf6c8821461031457806351e806721461031c5761018e565b80630bee7a67146101935780631182b875146101b45780633a21baae146102a35780633dffc387146102ab57806343756e5c146102c95780634900c4ea146102ed575b600080fd5b61019b6104a6565b6040805163ffffffff9092168252519081900360200190f35b61022e600480360360408110156101ca57600080fd5b60ff82351691908101906040810160208201356401000000008111156101ef57600080fd5b82018360208201111561020157600080fd5b8035906020019184600183028401116401000000008311171561022357600080fd5b5090925090506104ab565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610268578181015183820152602001610250565b50505050905090810190601f1680156102955780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61019b61059a565b6102b361059f565b6040805160ff9092168252519081900360200190f35b6102d16105a4565b604080516001600160a01b039092168252519081900360200190f35b6102b36105aa565b6102fd6105af565b6040805161ffff9092168252519081900360200190f35b6102b36105b4565b6102d16105b9565b6102d16105bf565b6102b36105c5565b6102d16105ca565b6102b36105d0565b6103be6004803603604081101561035a57600080fd5b60ff823516919081019060408101602082013564010000000081111561037f57600080fd5b82018360208201111561039157600080fd5b803590602001918460018302840111640100000000831117156103b357600080fd5b5090925090506105d5565b005b6102b3610667565b61019b61066c565b6102d1610671565b6102d1610677565b6103e861067d565b604080519115158252519081900360200190f35b61019b6105aa565b6102d1610686565b6103be6004803603604081101561042257600080fd5b60ff823516919081019060408101602082013564010000000081111561044757600080fd5b82018360208201111561045957600080fd5b8035906020019184600183028401116401000000008311171561047b57600080fd5b50909250905061068c565b6102d1610703565b6102d1610709565b6102b361070f565b6102d1610714565b606481565b606033612000146104ed5760405162461bcd60e51b815260040180806020018281038252602f8152602001806113e7602f913960400191505060405180910390fd5b6104f5611382565b600061053685858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061071a92505050565b91509150806105525761054960646107e0565b92505050610593565b600061055d8361084a565b905063ffffffff811661058457505060408051600081526020810190915291506105939050565b61058d816107e0565b93505050505b9392505050565b606681565b600181565b61100181565b600081565b606181565b600881565b61200081565b61100581565b600281565b61100881565b600b81565b33612000146106155760405162461bcd60e51b815260040180806020018281038252602f8152602001806113e7602f913960400191505060405180910390fd5b6040805162461bcd60e51b815260206004820152601e60248201527f7265636569766520756e65787065637465642061636b207061636b6167650000604482015290519081900360640190fd5b505050565b600981565b606581565b61100781565b61100681565b60005460ff1681565b61100281565b33612000146106cc5760405162461bcd60e51b815260040180806020018281038252602f8152602001806113e7602f913960400191505060405180910390fd5b60405162461bcd60e51b81526004018080602001828103825260238152602001806114166023913960400191505060405180910390fd5b61100381565b61100081565b600381565b61100481565b610722611382565b600061072c611382565b6107346113ac565b61074561074086610beb565b610c10565b90506000805b61075483610c5a565b156107d357806107765761076f61076a84610c7b565b610cc9565b84526107cb565b80600114156107955761078b61076a84610c7b565b60208501526107cb565b80600214156107c6576107af6107aa84610c7b565b610d42565b6001600160a01b03166040850152600191506107cb565b6107d3565b60010161074b565b5091935090915050915091565b604080516001808252818301909252606091829190816020015b60608152602001906001900390816107fa5790505090506108208363ffffffff16610d62565b8160008151811061082d57fe5b602002602001018190525061084181610d75565b9150505b919050565b60006108598260400151610dff565b6108c557604080516020808252601c908201527f74686520746172676574206973206e6f74206120636f6e7472616374000000008183015290517f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb29181900360600190a1506065610845565b81604001516001600160a01b031663ac431751836000015184602001516040518363ffffffff1660e01b8152600401808060200180602001838103835285818151815260200191508051906020019080838360005b8381101561093257818101518382015260200161091a565b50505050905090810190601f16801561095f5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b8381101561099257818101518382015260200161097a565b50505050905090810190601f1680156109bf5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156109e057600080fd5b505af19250505080156109f1575060015b610be3576040516000815260443d1015610a0d57506000610aaa565b60046000803e60005160e01c6308c379a08114610a2e576000915050610aaa565b60043d036004833e81513d602482011167ffffffffffffffff82111715610a5a57600092505050610aaa565b808301805167ffffffffffffffff811115610a7c576000945050505050610aaa565b8060208301013d8601811115610a9a57600095505050505050610aaa565b601f01601f191660405250925050505b80610ab55750610b58565b7f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2816040518080602001828103825283818151815260200191508051906020019080838360005b83811015610b14578181015183820152602001610afc565b50505050905090810190601f168015610b415780820380516001836020036101000a031916815260200191505b509250505060405180910390a16066915050610845565b3d808015610b82576040519150601f19603f3d011682016040523d82523d6000602084013e610b87565b606091505b5060408051602080825283518183015283517f1279f84165b4fd69c35e1f338ff107231b036c655cd1688851e011ce617c4e8d938593928392918301919085019080838360008315610b14578181015183820152602001610afc565b506000919050565b610bf36113cc565b506040805180820190915281518152602082810190820152919050565b610c186113ac565b610c2182610e05565b610c2a57600080fd5b6000610c398360200151610e3f565b60208085015160408051808201909152868152920190820152915050919050565b6000610c646113cc565b505080518051602091820151919092015191011190565b610c836113cc565b610c8c82610c5a565b610c9557600080fd5b60208201516000610ca582610ea2565b80830160209586015260408051808201909152908152938401919091525090919050565b8051606090610cd757600080fd5b6000610ce68360200151610e3f565b83516040805191839003808352601f19601f8201168301602001909152919250606090828015610d1d576020820181803683370190505b5090506000816020019050610d39848760200151018285610fd5565b50949350505050565b8051600090601514610d5357600080fd5b610d5c82611020565b92915050565b6060610d5c610d70836110d5565b6111bb565b6060815160001415610d965750604080516000815260208101909152610845565b606082600081518110610da557fe5b602002602001015190506000600190505b8351811015610de657610ddc82858381518110610dcf57fe5b602002602001015161120d565b9150600101610db6565b50610841610df9825160c060ff1661128a565b8261120d565b3b151590565b8051600090610e1657506000610845565b6020820151805160001a9060c0821015610e3557600092505050610845565b5060019392505050565b8051600090811a6080811015610e59576000915050610845565b60b8811080610e74575060c08110801590610e74575060f881105b15610e83576001915050610845565b60c0811015610e975760b519019050610845565b60f519019050610845565b80516000908190811a6080811015610ebd5760019150610fce565b60b8811015610ed257607e1981019150610fce565b60c0811015610f4c57600060b78203600186019550806020036101000a865104915060018101820193505080831015610f46576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50610fce565b60f8811015610f615760be1981019150610fce565b600060f78203600186019550806020036101000a865104915060018101820193505080831015610fcc576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b80610fdf57610662565b5b60208110610fff578251825260209283019290910190601f1901610fe0565b915181516020939093036101000a6000190180199091169216919091179052565b80516000901580159061103557508151602110155b61103e57600080fd5b600061104d8360200151610e3f565b905080836000015110156110a8576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015610d3957506020919091036101000a90049392505050565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166111195750601861113d565b6fffffffffffffffffffffffffffffffff1984166111395750601061113d565b5060005b60208110156111735781818151811061115257fe5b01602001516001600160f81b0319161561116b57611173565b60010161113d565b60008160200390506060816040519080825280601f01601f1916602001820160405280156111a8576020820181803683370190505b5080830196909652508452509192915050565b6060815160011480156111ed5750607f60f81b826000815181106111db57fe5b01602001516001600160f81b03191611155b156111f9575080610845565b610d5c61120b8351608060ff1661128a565b835b6060806040519050835180825260208201818101602087015b8183101561123e578051835260209283019201611226565b50855184518101855292509050808201602086015b8183101561126b578051835260209283019201611253565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106112da576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b604080516001808252818301909252606091602082018180368337019050509050603784116113345782840160f81b8160008151811061131657fe5b60200101906001600160f81b031916908160001a9053509050610d5c565b606061133f856110d5565b90508381510160370160f81b8260008151811061135857fe5b60200101906001600160f81b031916908160001a905350611379828261120d565b95945050505050565b6040518060600160405280606081526020016060815260200160006001600160a01b031681525090565b60405180604001604052806113bf6113cc565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e74726163747265636569766520756e6578706563746564206661696c2061636b207061636b616765a2646970667358221220401be81505a1aa0dde70753881234490b5e4c39ce009cb7950f994eead5c3f9064736f6c63430006040033" + }, + "0x0000000000000000000000000000000000001008": { + "balance": "0x0", + "code": "0x6080604052600436106102465760003560e01c806375d47a0a11610139578063ab51bb96116100b6578063dc6f5e901161007a578063dc6f5e90146108df578063dc927faf14610975578063f9a2bbc71461098a578063fc3e5908146108df578063fd6a68791461099f578063fe3a2af5146104fd57610246565b8063ab51bb96146108b5578063c81b1662146108ca578063c8509d81146107c5578063c8e704a4146108df578063d117a110146108f457610246565b806395b9ad26116100fd57806395b9ad261461084c57806396713da9146108615780639dc0926214610876578063a1a11bf51461088b578063a78abc16146108a057610246565b806375d47a0a146106e757806377d9dae8146106fc5780637942fd05146107b05780637d078e13146103c8578063831d65d1146107c557610246565b80634a688818116101c75780635f558f861161018b5780635f558f86146105515780636b3f1307146105665780636e47b4821461062e57806370fd5bad1461055157806372c4e0861461064357610246565b80634a688818146104fd5780634bc81c00146105125780634bf6c8821461024b57806351e80672146105275780635d499b1b1461053c57610246565b806323996b531161020e57806323996b53146103c85780633dffc387146103c857806343756e5c146103dd578063445fcefe1461040e578063493279b1146104d157610246565b8063077b8f351461024b5780630bee7a67146102765780630f212b1b146102a45780631182b875146102b95780631f91600b146103b3575b600080fd5b34801561025757600080fd5b506102606109b4565b6040805160ff9092168252519081900360200190f35b34801561028257600080fd5b5061028b6109b9565b6040805163ffffffff9092168252519081900360200190f35b3480156102b057600080fd5b506102606109be565b3480156102c557600080fd5b5061033e600480360360408110156102dc57600080fd5b60ff8235169190810190604081016020820135600160201b81111561030057600080fd5b82018360208201111561031257600080fd5b803590602001918460018302840111600160201b8311171561033357600080fd5b5090925090506109c3565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610378578181015183820152602001610360565b50505050905090810190601f1680156103a55780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103bf57600080fd5b50610260610a4c565b3480156103d457600080fd5b50610260610a51565b3480156103e957600080fd5b506103f2610a56565b604080516001600160a01b039092168252519081900360200190f35b34801561041a57600080fd5b506104bf6004803603602081101561043157600080fd5b810190602081018135600160201b81111561044b57600080fd5b82018360208201111561045d57600080fd5b803590602001918460018302840111600160201b8311171561047e57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610a5c945050505050565b60408051918252519081900360200190f35b3480156104dd57600080fd5b506104e6610bbb565b6040805161ffff9092168252519081900360200190f35b34801561050957600080fd5b50610260610bc0565b34801561051e57600080fd5b50610260610bc5565b34801561053357600080fd5b506103f2610bca565b34801561054857600080fd5b506104bf610bd0565b34801561055d57600080fd5b50610260610bd9565b61061a6004803603604081101561057c57600080fd5b6001600160a01b038235169190810190604081016020820135600160201b8111156105a657600080fd5b8201836020820111156105b857600080fd5b803590602001918460018302840111600160201b831117156105d957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610bde945050505050565b604080519115158252519081900360200190f35b34801561063a57600080fd5b506103f2611460565b61061a6004803603602081101561065957600080fd5b810190602081018135600160201b81111561067357600080fd5b82018360208201111561068557600080fd5b803590602001918460018302840111600160201b831117156106a657600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611466945050505050565b3480156106f357600080fd5b506103f26118b4565b61061a6004803603604081101561071257600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561073c57600080fd5b82018360208201111561074e57600080fd5b803590602001918460018302840111600160201b8311171561076f57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506118ba945050505050565b3480156107bc57600080fd5b50610260611dc1565b3480156107d157600080fd5b5061084a600480360360408110156107e857600080fd5b60ff8235169190810190604081016020820135600160201b81111561080c57600080fd5b82018360208201111561081e57600080fd5b803590602001918460018302840111600160201b8311171561083f57600080fd5b509092509050611dc6565b005b34801561085857600080fd5b50610260611e79565b34801561086d57600080fd5b50610260611e7e565b34801561088257600080fd5b506103f2611e83565b34801561089757600080fd5b506103f2611e89565b3480156108ac57600080fd5b5061061a611e8f565b3480156108c157600080fd5b5061028b610bc0565b3480156108d657600080fd5b506103f2611e98565b3480156108eb57600080fd5b50610260611e9e565b34801561090057600080fd5b5061091e6004803603602081101561091757600080fd5b5035611ea3565b6040805160ff988916815260208101979097526001600160a01b03909516868601526060860193909352608085019190915290931660a083015267ffffffffffffffff90921660c082015290519081900360e00190f35b34801561098157600080fd5b506103f2611efb565b34801561099657600080fd5b506103f2611f01565b3480156109ab57600080fd5b506103f2611f07565b600881565b606481565b600681565b60603361200014610a055760405162461bcd60e51b815260040180806020018281038252602f8152602001806132a0602f913960400191505060405180910390fd5b610a4483838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611f0d92505050565b949350505050565b600481565b600181565b61100181565b6020810151600090610a6c613168565b50600081815260016020818152604092839020835160e081018552815460ff9081168252938201549281019290925260028101546001600160a01b031693820184905260038101546060830152600481015460808301526005015491821660a082015261010090910467ffffffffffffffff1660c082015290610af457600092505050610bb6565b600081604001516001600160a01b03166370a082316110046040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015610b5257600080fd5b505afa158015610b66573d6000803e3d6000fd5b505050506040513d6020811015610b7c57600080fd5b505160808301516060840151919250600091610b9d9163ffffffff61219e16565b9050610baf818363ffffffff61219e16565b9450505050505b919050565b606181565b600081565b600581565b61200081565b6402540be40081565b600281565b600080610bea836121e7565b9050610bf4613168565b50600081815260016020818152604092839020835160e081018552815460ff90811682529382015492810183905260028201546001600160a01b03169481019490945260038101546060850152600481015460808501526005015491821660a084015261010090910467ffffffffffffffff1660c0830152610cba576040805162461bcd60e51b815260206004820152601a602482015279189a5b99081c995c5d595cdd08191bd95cdb89dd08195e1a5cdd60321b604482015290519081900360640190fd5b6000610cd78260800151836060015161219e90919063ffffffff16565b905081604001516001600160a01b0316866001600160a01b031614610d2d5760405162461bcd60e51b815260040180806020018281038252604581526020018061322d6045913960600191505060405180910390fd5b336001600160a01b0316866001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b158015610d7057600080fd5b505afa158015610d84573d6000803e3d6000fd5b505050506040513d6020811015610d9a57600080fd5b50516001600160a01b031614610de15760405162461bcd60e51b815260040180806020018281038252602e815260200180613272602e913960400191505060405180910390fd5b604080516370a0823160e01b8152611004600482015290516000916001600160a01b038916916370a0823191602480820192602092909190829003018186803b158015610e2d57600080fd5b505afa158015610e41573d6000803e3d6000fd5b505050506040513d6020811015610e5757600080fd5b505160408051636eb1769f60e11b815233600482015230602482015290519192508391610ee89184916001600160a01b038c169163dd62ed3e916044808301926020929190829003018186803b158015610eb057600080fd5b505afa158015610ec4573d6000803e3d6000fd5b505050506040513d6020811015610eda57600080fd5b50519063ffffffff6121ee16565b1015610f3b576040805162461bcd60e51b815260206004820152601760248201527f616c6c6f77616e6365206973206e6f7420656e6f756768000000000000000000604482015290519081900360640190fd5b600034905060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b158015610f7d57600080fd5b505afa158015610f91573d6000803e3d6000fd5b505050506040513d6020811015610fa757600080fd5b50519050808210801590610fc057506402540be4008206155b610ffb5760405162461bcd60e51b81526004018080602001828103825260378152602001806131f66037913960400191505060405180910390fd5b6000611007868b612248565b905063ffffffff8116611206576001600160a01b038a166323b872dd33611004611037898963ffffffff61219e16565b6040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b031681526020018281526020019350505050602060405180830381600087803b15801561109f57600080fd5b505af11580156110b3573d6000803e3d6000fd5b505050506040513d60208110156110c957600080fd5b5050602086015160408088015160a089015182516323bfccdb60e21b815260048101949094526001600160a01b03909116602484015260ff1660448301525161100491638eff336c91606480830192600092919082900301818387803b15801561113257600080fd5b505af1158015611146573d6000803e3d6000fd5b50505050896001600160a01b03167f78e7dd9aefcdbf795c4936a66f7dc6d41bb56637b54f561a6bf7829dca3348a88a8860600151886040518080602001848152602001838152602001828103825285818151815260200191508051906020019080838360005b838110156111c55781810151838201526020016111ad565b50505050905090810190601f1680156111f25780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a26112be565b896001600160a01b03167f831c0ef4d93bda3bce08b69ae3f29ef1a6e052b833200988554158494405a1078a8360405180806020018363ffffffff1663ffffffff168152602001828103825284818151815260200191508051906020019080838360005b8381101561128257818101518382015260200161126a565b50505050905090810190601f1680156112af5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a25b60008781526001602081905260408220805460ff191681559081018290556002810180546001600160a01b0319169055600381018290556004810191909155600501805468ffffffffffffffffff191690556113186131a4565b5060408051808201825263ffffffff831681526020810189905290516110049085156108fc029086906000818181858888f19350505050158015611360573d6000803e3d6000fd5b5061200063f7a251d760016113748461269f565b611389886402540be40063ffffffff61272916565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156113e75781810151838201526020016113cf565b50505050905090810190601f1680156114145780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561143557600080fd5b505af1158015611449573d6000803e3d6000fd5b505050506001985050505050505050505b92915050565b61100581565b600080611472836121e7565b905061147c613168565b50600081815260016020818152604092839020835160e081018552815460ff90811682529382015492810183905260028201546001600160a01b03169481019490945260038101546060850152600481015460808501526005015491821660a084015261010090910467ffffffffffffffff1660c0830152611542576040805162461bcd60e51b815260206004820152601a602482015279189a5b99081c995c5d595cdd08191bd95cdb89dd08195e1a5cdd60321b604482015290519081900360640190fd5b428160c0015167ffffffffffffffff16106115a4576040805162461bcd60e51b815260206004820152601b60248201527f62696e642072657175657374206973206e6f7420657870697265640000000000604482015290519081900360640190fd5b600034905060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b1580156115e657600080fd5b505afa1580156115fa573d6000803e3d6000fd5b505050506040513d602081101561161057600080fd5b5051905080821080159061162957506402540be4008206155b6116645760405162461bcd60e51b81526004018080602001828103825260378152602001806131f66037913960400191505060405180910390fd5b60008481526001602081905260408220805460ff191681559081018290556002810180546001600160a01b0319169055600381018290556004810191909155600501805468ffffffffffffffffff191690556116be6131a4565b50604080518082018252600181526020810186905290516110049084156108fc029085906000818181858888f19350505050158015611701573d6000803e3d6000fd5b5061200063f7a251d760016117158461269f565b61172a876402540be40063ffffffff61272916565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611788578181015183820152602001611770565b50505050905090810190601f1680156117b55780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156117d657600080fd5b505af11580156117ea573d6000803e3d6000fd5b5050505083604001516001600160a01b03167f831c0ef4d93bda3bce08b69ae3f29ef1a6e052b833200988554158494405a10788600160405180806020018360ff1663ffffffff168152602001828103825284818151815260200191508051906020019080838360005b8381101561186c578181015183820152602001611854565b50505050905090810190601f1680156118995780820380516001836020036101000a031916815260200191505b50935050505060405180910390a25060019695505050505050565b61100881565b6000806118c6836121e7565b90506118d0613168565b50600081815260016020818152604092839020835160e081018552815460ff90811682529382015492810183905260028201546001600160a01b03169481019490945260038101546060850152600481015460808501526005015491821660a084015261010090910467ffffffffffffffff1660c0830152611996576040805162461bcd60e51b815260206004820152601a602482015279189a5b99081c995c5d595cdd08191bd95cdb89dd08195e1a5cdd60321b604482015290519081900360640190fd5b80604001516001600160a01b0316856001600160a01b0316146119ea5760405162461bcd60e51b815260040180806020018281038252604581526020018061322d6045913960600191505060405180910390fd5b336001600160a01b0316856001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b158015611a2d57600080fd5b505afa158015611a41573d6000803e3d6000fd5b505050506040513d6020811015611a5757600080fd5b50516001600160a01b031614611ab4576040805162461bcd60e51b815260206004820152601b60248201527f6f6e6c79206265703265206f776e65722063616e2072656a6563740000000000604482015290519081900360640190fd5b600034905060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b158015611af657600080fd5b505afa158015611b0a573d6000803e3d6000fd5b505050506040513d6020811015611b2057600080fd5b50519050808210801590611b3957506402540be4008206155b611b745760405162461bcd60e51b81526004018080602001828103825260378152602001806131f66037913960400191505060405180910390fd5b60008481526001602081905260408220805460ff191681559081018290556002810180546001600160a01b0319169055600381018290556004810191909155600501805468ffffffffffffffffff19169055611bce6131a4565b50604080518082018252600781526020810186905290516110049084156108fc029085906000818181858888f19350505050158015611c11573d6000803e3d6000fd5b5061200063f7a251d76001611c258461269f565b611c3a876402540be40063ffffffff61272916565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611c98578181015183820152602001611c80565b50505050905090810190601f168015611cc55780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015611ce657600080fd5b505af1158015611cfa573d6000803e3d6000fd5b50505050876001600160a01b03167f831c0ef4d93bda3bce08b69ae3f29ef1a6e052b833200988554158494405a10788600760405180806020018360ff1663ffffffff168152602001828103825284818151815260200191508051906020019080838360005b83811015611d78578181015183820152602001611d60565b50505050905090810190601f168015611da55780820380516001836020036101000a031916815260200191505b50935050505060405180910390a2506001979650505050505050565b600b81565b3361200014611e065760405162461bcd60e51b815260040180806020018281038252602f8152602001806132a0602f913960400191505060405180910390fd5b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a1505050565b600781565b600981565b61100781565b61100681565b60005460ff1681565b61100281565b600381565b600160208190526000918252604090912080549181015460028201546003830154600484015460059094015460ff9586169593946001600160a01b0390931693919291811690610100900467ffffffffffffffff1687565b61100381565b61100081565b61100481565b6060611f17613168565b6000611f228461276b565b9150915080611f78576040805162461bcd60e51b815260206004820152601f60248201527f756e7265636f676e697a6564207472616e73666572496e207061636b61676500604482015290519081900360640190fd5b815160ff1661202c576020828101805160009081526001928390526040908190208551815460ff1990811660ff928316178355935194820194909455908501516002820180546001600160a01b0319166001600160a01b03909216919091179055606085015160038201556080850151600482015560a08501516005909101805460c08701519316919093161768ffffffffffffffff00191661010067ffffffffffffffff90921691909102179055612183565b815160ff16600114156121365760006110046001600160a01b03166359b9278984602001516040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561208557600080fd5b505afa158015612099573d6000803e3d6000fd5b505050506040513d60208110156120af57600080fd5b505190506001600160a01b038116156121305760208301516040805163b99328c560e01b815260048101929092526001600160a01b0383166024830152516110049163b99328c591604480830192600092919082900301818387803b15801561211757600080fd5b505af115801561212b573d6000803e3d6000fd5b505050505b50612183565b6040805162461bcd60e51b815260206004820152601960248201527f756e7265636f676e697a65642062696e64207061636b61676500000000000000604482015290519081900360640190fd5b60408051600080825260208201909252905b50949350505050565b60006121e083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506128bd565b9392505050565b6020015190565b6000828201838110156121e0576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600080826001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561228457600080fd5b505afa158015612298573d6000803e3d6000fd5b505050506040513d60208110156122ae57600080fd5b5051604080516395d89b4160e01b815290519192506060916001600160a01b038616916395d89b41916004808301926000929190829003018186803b1580156122f657600080fd5b505afa15801561230a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561233357600080fd5b8101908080516040519392919084600160201b82111561235257600080fd5b90830190602082018581111561236757600080fd5b8251600160201b81118282018810171561238057600080fd5b82525081516020918201929091019080838360005b838110156123ad578181015183820152602001612395565b50505050905090810190601f1680156123da5780820380516001836020036101000a031916815260200191505b5060408181526370a0823160e01b82526110046004830152519495506000946001600160a01b038a1694506370a08231935060248083019350602092829003018186803b15801561242a57600080fd5b505afa15801561243e573d6000803e3d6000fd5b505050506040513d602081101561245457600080fd5b5051608087015160608801519192506000916124759163ffffffff61219e16565b9050428760c0015167ffffffffffffffff16101561249b57506001935061145a92505050565b6124a9838860200151612954565b6124bb57506002935061145a92505050565b808211156124d157506003935061145a92505050565b866060015187604001516001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561251357600080fd5b505afa158015612527573d6000803e3d6000fd5b505050506040513d602081101561253d57600080fd5b50511461255257506004935061145a92505050565b8660a0015160ff16841461256e57506005935061145a92505050565b602080880151604080516359b9278960e01b8152600481019290925251600092611004926359b927899260248083019392829003018186803b1580156125b357600080fd5b505afa1580156125c7573d6000803e3d6000fd5b505050506040513d60208110156125dd57600080fd5b50516001600160a01b031614158061267f57506000801b6110046001600160a01b031663bd46646189604001516040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561265057600080fd5b505afa158015612664573d6000803e3d6000fd5b505050506040513d602081101561267a57600080fd5b505114155b1561269257506006935061145a92505050565b5060009695505050505050565b6040805160028082526060828101909352829190816020015b60608152602001906001900390816126b857505083519091506126e09063ffffffff16612a3c565b816000815181106126ed57fe5b6020026020010181905250612708836020015160001c612a3c565b8160018151811061271557fe5b60200260200101819052506121e081612a4f565b60006121e083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612ad9565b612773613168565b600061277d613168565b6127856131bb565b61279661279186612b3e565b612b63565b90506000805b6127a583612bad565b156128b057806127ca576127c06127bb84612bce565b612c1c565b60ff1684526128a8565b80600114156127e9576127df6127bb84612bce565b60208501526128a8565b8060021415612816576128036127fe84612bce565b612cd1565b6001600160a01b031660408501526128a8565b80600314156128355761282b6127bb84612bce565b60608501526128a8565b80600414156128545761284a6127bb84612bce565b60808501526128a8565b8060051415612876576128696127bb84612bce565b60ff1660a08501526128a8565b80600614156128a35761288b6127bb84612bce565b67ffffffffffffffff1660c0850152600191506128a8565b6128b0565b60010161279c565b5091935090915050915091565b6000818484111561294c5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156129115781810151838201526020016128f9565b50505050905090810190601f16801561293e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b815160009083906008108061296a575080516003115b1561297957600091505061145a565b604080516020808252818301909252606091602082018180368337019050509050836020820152808251815181106129ad57fe5b6020910101516001600160f81b031916602d60f81b146129d25760009250505061145a565b600160005b8351811015612a32578281815181106129ec57fe5b602001015160f81c60f81b6001600160f81b031916848281518110612a0d57fe5b01602001516001600160f81b03191614612a2a5760009150612a32565b6001016129d7565b5095945050505050565b606061145a612a4a83612ceb565b612dd1565b6060815160001415612a705750604080516000815260208101909152610bb6565b606082600081518110612a7f57fe5b602002602001015190506000600190505b8351811015612ac057612ab682858381518110612aa957fe5b6020026020010151612e23565b9150600101612a90565b506121e0612ad3825160c060ff16612ea0565b82612e23565b60008183612b285760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156129115781810151838201526020016128f9565b506000838581612b3457fe5b0495945050505050565b612b466131db565b506040805180820190915281518152602082810190820152919050565b612b6b6131bb565b612b7482612f98565b612b7d57600080fd5b6000612b8c8360200151612fd2565b60208085015160408051808201909152868152920190820152915050919050565b6000612bb76131db565b505080518051602091820151919092015191011190565b612bd66131db565b612bdf82612bad565b612be857600080fd5b60208201516000612bf882613035565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590612c3157508151602110155b612c3a57600080fd5b6000612c498360200151612fd2565b90508083600001511015612ca4576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b82516020808501518301805192849003929183101561219557506020919091036101000a90049392505050565b8051600090601514612ce257600080fd5b61145a82612c1c565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416612d2f57506018612d53565b6fffffffffffffffffffffffffffffffff198416612d4f57506010612d53565b5060005b6020811015612d8957818181518110612d6857fe5b01602001516001600160f81b03191615612d8157612d89565b600101612d53565b60008160200390506060816040519080825280601f01601f191660200182016040528015612dbe576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015612e035750607f60f81b82600081518110612df157fe5b01602001516001600160f81b03191611155b15612e0f575080610bb6565b61145a612e218351608060ff16612ea0565b835b6060806040519050835180825260208201818101602087015b81831015612e54578051835260209283019201612e3c565b50855184518101855292509050808201602086015b81831015612e81578051835260209283019201612e69565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310612ef0576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b60408051600180825281830190925260609160208201818036833701905050905060378411612f4a5782840160f81b81600081518110612f2c57fe5b60200101906001600160f81b031916908160001a905350905061145a565b6060612f5585612ceb565b90508381510160370160f81b82600081518110612f6e57fe5b60200101906001600160f81b031916908160001a905350612f8f8282612e23565b95945050505050565b8051600090612fa957506000610bb6565b6020820151805160001a9060c0821015612fc857600092505050610bb6565b5060019392505050565b8051600090811a6080811015612fec576000915050610bb6565b60b8811080613007575060c08110801590613007575060f881105b15613016576001915050610bb6565b60c081101561302a5760b519019050610bb6565b60f519019050610bb6565b80516000908190811a60808110156130505760019150613161565b60b881101561306557607e1981019150613161565b60c08110156130df57600060b78203600186019550806020036101000a8651049150600181018201935050808310156130d9576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50613161565b60f88110156130f45760be1981019150613161565b600060f78203600186019550806020036101000a86510491506001810182019350508083101561315f576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c081019190915290565b604080518082019091526000808252602082015290565b60405180604001604052806131ce6131db565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe72656c6179466565206d757374206265204e202a203165313020616e642067726561746572207468616e206d696e6952656c6179466565636f6e74616374206164647265737320646f65736e277420657175616c20746f2074686520636f6e7472616374206164647265737320696e2062696e6420726571756573746f6e6c79206265703265206f776e65722063616e20617070726f766520746869732062696e642072657175657374746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374a2646970667358221220914ada54d09b696ad62036cb65a565d2a3c3d1be8ef0e6805b9a955ec5783d0864736f6c63430006040033" + }, + "0x0000000000000000000000000000000000002000": { + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b50600436106102485760003560e01c8063863fe4ab1161013b578063c81b1662116100b8578063e3b048051161007c578063e3b048051461072c578063f7a251d71461074c578063f9a2bbc7146107c4578063fc3e5908146107cc578063fd6a6879146107d457610248565b8063c81b1662146106dd578063d31f968d146106e5578063d76a867514610714578063dc927faf1461071c578063e1c7392a1461072457610248565b8063a78abc16116100ff578063a78abc16146105d3578063ab51bb96146105db578063ac431751146105e3578063b0355f5b146103ff578063c27cdcfb146106a157610248565b8063863fe4ab146105b35780638cc8f561146104b657806396713da9146105bb5780639dc09262146105c3578063a1a11bf5146105cb57610248565b8063493279b1116101c957806370fd5bad1161018d57806370fd5bad146104b657806374f079b8146104be57806375d47a0a146104c65780637942fd05146104ce57806384013b6a146104d657610248565b8063493279b11461045f5780634bf6c8821461047e57806351e80672146104865780636e47a51a1461048e5780636e47b482146104ae57610248565b8063308325f411610210578063308325f4146102cf5780633bdc47a6146102d75780633dffc387146103ff578063422f90501461040757806343756e5c1461043b57610248565b806305e682581461024d5780630bee7a671461026b57806314b3023b1461028c57806322556cdc146102a65780632ff32aea146102ae575b600080fd5b6102556107dc565b6040805160ff9092168252519081900360200190f35b6102736107e1565b6040805163ffffffff9092168252519081900360200190f35b6102946107e6565b60408051918252519081900360200190f35b6102946107ec565b6102b66107f1565b60408051600792830b90920b8252519081900360200190f35b6102946107fa565b61038a600480360360608110156102ed57600080fd5b60ff82351691602081013591810190606081016040820135600160201b81111561031657600080fd5b82018360208201111561032857600080fd5b803590602001918460018302840111600160201b8311171561034957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610800945050505050565b6040805160208082528351818301528351919283929083019185019080838360005b838110156103c45781810151838201526020016103ac565b50505050905090810190601f1680156103f15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610255610876565b6104276004803603602081101561041d57600080fd5b503560ff1661087b565b604080519115158252519081900360200190f35b610443610890565b604080516001600160a01b039092168252519081900360200190f35b610467610896565b6040805161ffff9092168252519081900360200190f35b61025561089b565b6104436108a0565b610443600480360360208110156104a457600080fd5b503560ff166108a6565b6104436108c1565b6102556108c7565b6102946108cc565b6104436108d2565b6102556108d8565b6105b1600480360360a08110156104ec57600080fd5b810190602081018135600160201b81111561050657600080fd5b82018360208201111561051857600080fd5b803590602001918460018302840111600160201b8311171561053957600080fd5b919390929091602081019035600160201b81111561055657600080fd5b82018360208201111561056857600080fd5b803590602001918460018302840111600160201b8311171561058957600080fd5b919350915080356001600160401b03908116916020810135909116906040013560ff166108dd565b005b610294611a8d565b610255611a95565b610443611a9a565b610443611aa0565b610427611aa6565b6102736107dc565b6105b1600480360360408110156105f957600080fd5b810190602081018135600160201b81111561061357600080fd5b82018360208201111561062557600080fd5b803590602001918460018302840111600160201b8311171561064657600080fd5b919390929091602081019035600160201b81111561066357600080fd5b82018360208201111561067557600080fd5b803590602001918460018302840111600160201b8311171561069657600080fd5b509092509050611aaf565b6106c1600480360360208110156106b757600080fd5b503560ff16612051565b604080516001600160401b039092168252519081900360200190f35b61044361206c565b610427600480360360408110156106fb57600080fd5b5080356001600160a01b0316906020013560ff16612072565b61038a612092565b6104436120b1565b6105b16120b7565b6106c16004803603602081101561074257600080fd5b503560ff1661246e565b6105b16004803603606081101561076257600080fd5b60ff8235169190810190604081016020820135600160201b81111561078657600080fd5b82018360208201111561079857600080fd5b803590602001918460018302840111600160201b831117156107b957600080fd5b919350915035612489565b6104436125da565b6102556125e0565b6104436125e5565b600081565b606481565b60015481565b603281565b60045460070b81565b60025481565b60606000825160210190506060816040519080825280601f01601f191660200182016040528015610838576020820181803683370190505b506021810186905260018101879052828152905060418101600061085b866125eb565b50905061086a818388516125f5565b50909695505050505050565b600181565b60096020526000908152604090205460ff1681565b61100181565b606181565b600881565b61200081565b6005602052600090815260409020546001600160a01b031681565b61100581565b600281565b60035481565b61100881565b600b81565b60005460ff16610930576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b60408051630a83aaa960e31b815233600482015290516110069163541d5548916024808301926020929190829003018186803b15801561096f57600080fd5b505afa158015610983573d6000803e3d6000fd5b505050506040513d602081101561099957600080fd5b50516109ec576040805162461bcd60e51b815260206004820152601f60248201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604482015290519081900360640190fd5b60ff8116600090815260086020526040902054829082906001600160401b039081169083168114610a5c576040805162461bcd60e51b815260206004820152601560248201527439b2b8bab2b731b2903737ba1034b71037b93232b960591b604482015290519081900360640190fd5b60ff8216600090815260086020908152604091829020805467ffffffffffffffff1916600185016001600160401b039081169190911790915582516337d7f9c160e21b81529089166004820152915188926110039263df5fe70492602480840193829003018186803b158015610ad157600080fd5b505afa158015610ae5573d6000803e3d6000fd5b505050506040513d6020811015610afb57600080fd5b5051610b385760405162461bcd60e51b8152600401808060200182810382526023815260200180612bcc6023913960400191505060405180910390fd5b60ff851660009081526005602052604090205485906001600160a01b0316610ba7576040805162461bcd60e51b815260206004820152601860248201527f6368616e6e656c206973206e6f7420737570706f727465640000000000000000604482015290519081900360640190fd5b60608c8c8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060608b8b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805163cba510a960e01b81526001600160401b038f1660048201529051939450610cce93611003935063cba510a992506024808301926020929190829003018186803b158015610c7757600080fd5b505afa158015610c8b573d6000803e3d6000fd5b505050506040513d6020811015610ca157600080fd5b505160408051808201909152600381526269626360e81b6020820152610cc78c8c612636565b858561267d565b610d16576040805162461bcd60e51b815260206004820152601460248201527334b73b30b634b21036b2b935b63290383937b7b360611b604482015290519081900360640190fd5b60408051631bb5062960e31b81526001600160401b038c16600482015290516000916110039163dda8314891602480820192602092909190829003018186803b158015610d6257600080fd5b505afa158015610d76573d6000803e3d6000fd5b505050506040513d6020811015610d8c57600080fd5b5051905088600080806060610da08861277a565b935093509350935083610e61578460ff168f6001600160401b03167ff7b2e42d694eb1100184aae86d4245d9e46966100b1dc7e723275b98326854ac8a6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610e1a578181015183820152602001610e02565b50505050905090810190601f168015610e475780820380516001836020036101000a031916815260200191505b509250505060405180910390a35050505050505050611a7f565b8460ff168f6001600160401b03167f36afdaf439a8f43fe72135135d804ae620b37a474f0943b5b85f6788312cad4085604051808260ff1660ff16815260200191505060405180910390a360ff83166113ea5760ff85166000818152600560209081526040808320548151631182b87560e01b815260048101958652602481019283528651604482015286516001600160a01b03909216958695631182b875958d958a9593949093606490910192918601918190849084905b83811015610f32578181015183820152602001610f1a565b50505050905090810190601f168015610f5f5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b158015610f7f57600080fd5b505af192505050801561106357506040513d6000823e601f3d908101601f191682016040526020811015610fb257600080fd5b8101908080516040519392919084600160201b821115610fd157600080fd5b908301906020820185811115610fe657600080fd5b8251600160201b811182820188101715610fff57600080fd5b82525081516020918201929091019080838360005b8381101561102c578181015183820152602001611014565b50505050905090810190601f1680156110595780820380516001836020036101000a031916815260200191505b5060405250505060015b611375576040516000815260443d101561107f5750600061111a565b60046000803e60005160e01c6308c379a081146110a057600091505061111a565b60043d036004833e81513d60248201116001600160401b03821117156110cb5760009250505061111a565b80830180516001600160401b038111156110ec57600094505050505061111a565b8060208301013d860181111561110a5760009550505050505061111a565b601f01601f191660405250925050505b806111255750611237565b60ff871660009081526007602052604081205461115c916001600160401b039091169089906111579060029088610800565b61282a565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf948794849390840192918601918190849084905b838110156111f75781810151838201526020016111df565b50505050905090810190601f1680156112245780820380516001836020036101000a031916815260200191505b509250505060405180910390a250611370565b3d808015611261576040519150601f19603f3d011682016040523d82523d6000602084013e611266565b606091505b5060ff8716600090815260076020526040812054611299916001600160401b039091169089906111579060029088610800565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351948794849390840192918601918190849084905b8381101561133457818101518382015260200161131c565b50505050905090810190601f1680156113615780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b6113e4565b8051156113e25760ff87166000908152600760205260408120546113ae916001600160401b039091169089906111579060019086610800565b60ff8716600090815260076020526040902080546001600160401b038082166001011667ffffffffffffffff199091161790555b505b506119b8565b60ff83166001141561168e5760ff8516600081815260056020908152604080832054815163831d65d160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563831d65d1958d958a9593949093606490910192918601918190849084905b8381101561147457818101518382015260200161145c565b50505050905090810190601f1680156114a15780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b1580156114c157600080fd5b505af19250505080156114d2575060015b6113e4576040516000815260443d10156114ee57506000611589565b60046000803e60005160e01c6308c379a0811461150f576000915050611589565b60043d036004833e81513d60248201116001600160401b038211171561153a57600092505050611589565b80830180516001600160401b0381111561155b576000945050505050611589565b8060208301013d860181111561157957600095505050505050611589565b601f01601f191660405250925050505b8061159457506115f9565b60408051602080825283518183015283516001600160a01b038616937ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf93869390928392830191850190808383600083156111f75781810151838201526020016111df565b3d808015611623576040519150601f19603f3d011682016040523d82523d6000602084013e611628565b606091505b5060408051602080825283518183015283516001600160a01b038616937f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351938693909283928301918501908083836000831561133457818101518382015260200161131c565b60ff8316600214156119b85760ff8516600081815260056020908152604080832054815163c8509d8160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563c8509d81958d958a9593949093606490910192918601918190849084905b83811015611718578181015183820152602001611700565b50505050905090810190601f1680156117455780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561176557600080fd5b505af1925050508015611776575060015b6119b6576040516000815260443d10156117925750600061182d565b60046000803e60005160e01c6308c379a081146117b357600091505061182d565b60043d036004833e81513d60248201116001600160401b03821117156117de5760009250505061182d565b80830180516001600160401b038111156117ff57600094505050505061182d565b8060208301013d860181111561181d5760009550505050505061182d565b601f01601f191660405250925050505b8061183857506118e1565b816001600160a01b03167ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf826040518080602001828103825283818151815260200191508051906020019080838360005b838110156118a1578181015183820152602001611889565b50505050905090810190601f1680156118ce5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2506119b6565b3d80801561190b576040519150601f19603f3d011682016040523d82523d6000602084013e611910565b606091505b50816001600160a01b03167f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351826040518080602001828103825283818151815260200191508051906020019080838360005b8381101561197a578181015183820152602001611962565b50505050905090810190601f1680156119a75780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b505b60ff80861660009081526009602052604090205461100591636f93d2e69189913391879116806119ea575060ff881615155b604080516001600160e01b031960e088901b1681526001600160a01b039586166004820152939094166024840152604483019190915215156064820152905160848083019260209291908290030181600087803b158015611a4a57600080fd5b505af1158015611a5e573d6000803e3d6000fd5b505050506040513d6020811015611a7457600080fd5b505050505050505050505b505050505050505050505050565b630100610081565b600981565b61100781565b61100681565b60005460ff1681565b3361100714611aef5760405162461bcd60e51b815260040180806020018281038252602e815260200180612b22602e913960400191505060405180910390fd5b611b5884848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526012815271626174636853697a65466f724f7261636c6560701b602082015291506129809050565b15611bf357604080516020601f8401819004810282018101909252828152600091611b9b91858580838501838280828437600092019190915250612a6792505050565b90506127108111158015611bb05750600a8110155b611beb5760405162461bcd60e51b8152600401808060200182810382526032815260200180612b9a6032913960400191505060405180910390fd5b600155611fbf565b611c5c84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601281527118591913dc955c19185d1950da185b9b995b60721b602082015291506129809050565b15611de457606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060169091149050611cdf5760405162461bcd60e51b815260040180806020018281038252605a815260200180612ac8605a913960600191505060405180910390fd5b60018101516002820151601683015160ff82161590611cfd81612a6c565b611d4e576040805162461bcd60e51b815260206004820152601960248201527f61646472657373206973206e6f74206120636f6e747261637400000000000000604482015290519081900360640190fd5b60ff8416600081815260056020908152604080832080546001600160a01b0319166001600160a01b038716908117909155808452600683528184208585528352818420805460ff199081166001179091556009909352818420805490931687151517909255519092917f7e3b6af43092577ee20e60eaa1d9b114a7031305c895ee7dd3ffe17196d2e1e091a35050505050611fbf565b611e5184848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526016815275195b98589b1953dc911a5cd8589b1950da185b9b995b60521b602082015291506129809050565b15611f8257606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060029091149050611ed45760405162461bcd60e51b815260040180806020018281038252604a815260200180612b50604a913960600191505060405180910390fd5b600181810151600283015160ff80831660009081526005602052604090205492939192908316909114906001600160a01b03168015611f78576001600160a01b038116600090815260066020908152604080832060ff881680855290835292819020805460ff1916861515908117909155815190815290517fa3132e3f9819fbddc7f0ed6d38d7feef59aa95112090b7c592f5cb5bc4aa4adc929181900390910190a25b5050505050611fbf565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b6008602052600090815260409020546001600160401b031681565b61100281565b600660209081526000928352604080842090915290825290205460ff1681565b6040518060400160405280600381526020016269626360e81b81525081565b61100381565b60005460ff161561210f576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b7f1471eb6eb2c5e789fc3de43f8ce62938c7d1836ec861730447e2ada8fd81017b80546001600160a01b0319908116611008179091557f92e85d02570a8092d09a6e3a57665bc3815a2699a4074001bf1ccabf660f5a36805460ff199081169091557fd8af288fc1c8680b4f4706064cf021e264efb6828fcaf7eb5ca36818eb365bcc8054821660019081179091557f89832631fb3c3307a103ba2c84ab569c64d6182a18893dcd163f0f1c2090733a805484166110049081179091557f6cde3cea4b3a3fb2488b2808bae7556f4a405e50f65e1794383bc026131b13c38054841690557f72e4efa1513b071517c6c74dba31b5934a81aa83cddd400e7081df5529c9943680548416831790557fa9bc9a3a348c357ba16b37005d7e6b3236198c0e939f4af8c5f19b8deeb8ebc08054851690911790557fc575c31fea594a6eb97c8e9d3f9caee4c16218c6ef37e923234c0fe9014a61e78054831690557f4e523af77f034e9810f1c94057f5e931fb3d16a51511a4c3add793617d18610580548316821790557ffb33122aa9f93cc639ebe80a7bc4784c11e6053dde89c6f4f7e268c6a623da1e805484166110001790557fc7694af312c4f286114180fd0ba6a52461fcee8a381636770b19a343af92538a80548316821790557f01112dd68e482ba8d68a7e828cff8b3abcea08eab88941953c180a7e650e9cd480548316821790557fc0a4a8be475dfebc377ebef2d7c4ff47656f572a08dd92b81017efcdba0febe1805484166110071790557f87e8a52529e8ece4ef759037313542a6429ff494a9fab9027fb79db90124eba680548316821790557f4c7666bbcb22d46469f7cc282f70764a7012dca2cce630ff8d83db9a9cdd48f080548316821790557f40f28f99a40bc9f6beea1013afdbc3cdcc689eb76b82c4de06c0acf1e1932ed58054909316611001179092557f0d9cf2cd531699eed8dd34e40ff2884a14a698c4898184fba85194e6f6772d248054821683179055600b60009081527f23f68c9bd22b8a93d06adabe17481c87c016bcbd20adc8bfd707a4d813a572176020527fdf0d5d05428057f5455c2dc8e810dd86d1e9350faa72f16bda8a45443c5b39328054831684179055603283556004805467ffffffffffffffff19166001600160401b031790556002819055600381905580549091169091179055565b6007602052600090815260409020546001600160401b031681565b60005460ff166124dc576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b33600090815260066020908152604080832060ff80891685529252909120548591166125395760405162461bcd60e51b8152600401808060200182810382526031815260200180612a976031913960400191505060405180910390fd5b60ff85166000908152600760209081526040808320548151601f88018490048402810184019092528682526001600160401b03169261259e9284928a9261115792909189918c908c908190840183828082843760009201919091525061080092505050565b60ff959095166000908152600760205260409020805467ffffffffffffffff191660019096016001600160401b03169590951790945550505050565b61100081565b600381565b61100481565b8051602090910191565b5b60208110612615578251825260209283019290910190601f19016125f6565b915181516020939093036101000a6000190180199091169216919091179052565b60408051600e808252818301909252606091630100610060ff851617918391602082018180368337505050600e818101969096526006810192909252509283525090919050565b60008561268c57506000612771565b606082518451865160800101016040519080825280601f01601f1916602001820160405280156126c3576020820181803683370190505b50905060006126d182612a72565b6020808901518252019050866000806126e9896125eb565b80865260209095019490925090506127028285836125f5565b9283019261270f886125eb565b80865260209095019490925090506127288285836125f5565b9283018a81526020019261273b876125eb565b909250905061274b8285836125f5565b508351602001612759612a78565b60208183886065600019fa5051600114955050505050505b95945050505050565b600080600060606021855110156127aa575050604080516000808252602082019092529092508291508190612823565b600185015160218601518651604080516020198301808252601f19600119909401939093168101602001909152604189019392916060919080156127f5576020820181803683370190505b5090506000612803826125eb565b509050612815858260218d51036125f5565b506001975091955093509150505b9193509193565b600254431115612869576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b1617909155600355436002556128aa565b600380546001908101918290555410156128aa576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b16179091556003555b8160ff16836001600160401b0316600460009054906101000a900460070b6001600160401b03167f3a6e0fc61675aa2a100bcba0568368bb92bcec91c97673391074f11138f0cffe606185604051808361ffff1661ffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015612940578181015183820152602001612928565b50505050905090810190601f16801561296d5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a4505050565b6000816040516020018082805190602001908083835b602083106129b55780518252601f199092019160209182019101612996565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310612a235780518252601f199092019160209182019101612a04565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b3b151590565b60200190565b6040518060200160405280600190602082028036833750919291505056fe74686520636f6e747261637420616e64206368616e6e656c2068617665206e6f74206265656e20726567697374657265646c656e677468206f662076616c756520666f72206164644f725570646174654368616e6e656c2073686f756c642062652032322c206368616e6e656c49643a697346726f6d53797374656d3a68616e646c657241646472657373746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662076616c756520666f7220656e61626c654f7244697361626c654368616e6e656c2073686f756c6420626520322c206368616e6e656c49643a6973456e61626c65746865206e6577426174636853697a65466f724f7261636c652073686f756c6420626520696e205b31302c2031303030305d6c6967687420636c69656e74206e6f742073796e632074686520626c6f636b20796574a26469706673582212207ab71aabd28c992023fb9ff6fe581825d14cb96a7bc39321484311e85804154864736f6c63430006040033" + } + }, + "5582500": { + "0x0000000000000000000000000000000000001008": { + "balance": "0x0", + "code": "0x6080604052600436106103815760003560e01c80637d078e13116101d1578063b795031711610102578063d9e6dae9116100a0578063fa9e91591161006f578063fa9e915914610d38578063fc3e5908146105b2578063fd6a687914610d4d578063fe3a2af514610d6257610381565b8063d9e6dae9146106fc578063dc927faf14610cf9578063e605bca014610d0e578063f9a2bbc714610d2357610381565b8063c8509d81116100dc578063c8509d8114610bdf578063c8e704a4146105b2578063d117a11014610c64578063d7109ce614610ce457610381565b8063b79503171461073b578063bd32d3f9146104d9578063c81b166214610bca57610381565b80639a854bbd1161016f578063a78abc1611610149578063a78abc1614610ad5578063ab51bb9614610aea578063ab67a4851461073b578063ac43175114610aff57610381565b80639a854bbd14610a965780639dc0926214610aab578063a1a11bf514610ac057610381565b8063859180fb116101ab578063859180fb146106e757806394553a4e14610a3757806395b9ad2614610a6c57806396713da914610a8157610381565b80637d078e13146104ee5780637ec816dd1461099b578063831d65d1146109b057610381565b8063493279b1116102b657806366dea52a1161025457806372c4e0861161022357806372c4e0861461081957806375d47a0a146108bd57806377d9dae8146108d25780637942fd051461098657610381565b806366dea52a1461073b5780636b3f1307146107505780636e47b4821461080457806370fd5bad1461073b57610381565b806351e806721161029057806351e80672146107115780635d499b1b146107265780635f558f861461073b57806361368475146106fc57610381565b8063493279b1146106bb5780634bc81c00146106e75780634bf6c882146106fc57610381565b80632e02d77611610323578063401809f9116102fd578063401809f9146105b257806343756e5c146105c7578063445fcefe146105f8578063487c88ac146104ee57610381565b80632e02d7761461054c57806337e6ecda1461057f5780633dffc387146104ee57610381565b80631f91600b1161035f5780631f91600b146104d957806323996b53146104ee57806325c751b7146105035780632d89ac32146104ee57610381565b80630bee7a67146103865780630f212b1b146103b45780631182b875146103df575b600080fd5b34801561039257600080fd5b5061039b610d77565b6040805163ffffffff9092168252519081900360200190f35b3480156103c057600080fd5b506103c9610d7c565b6040805160ff9092168252519081900360200190f35b3480156103eb57600080fd5b506104646004803603604081101561040257600080fd5b60ff8235169190810190604081016020820135600160201b81111561042657600080fd5b82018360208201111561043857600080fd5b803590602001918460018302840111600160201b8311171561045957600080fd5b509092509050610d81565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561049e578181015183820152602001610486565b50505050905090810190601f1680156104cb5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156104e557600080fd5b506103c9610e9b565b3480156104fa57600080fd5b506103c9610ea0565b6105386004803603604081101561051957600080fd5b5080356001600160a01b031690602001356001600160401b0316610ea5565b604080519115158252519081900360200190f35b34801561055857600080fd5b506105386004803603602081101561056f57600080fd5b50356001600160a01b03166113f1565b34801561058b57600080fd5b50610538600480360360208110156105a257600080fd5b50356001600160a01b0316611406565b3480156105be57600080fd5b506103c961141b565b3480156105d357600080fd5b506105dc611420565b604080516001600160a01b039092168252519081900360200190f35b34801561060457600080fd5b506106a96004803603602081101561061b57600080fd5b810190602081018135600160201b81111561063557600080fd5b82018360208201111561064757600080fd5b803590602001918460018302840111600160201b8311171561066857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611426945050505050565b60408051918252519081900360200190f35b3480156106c757600080fd5b506106d0611584565b6040805161ffff9092168252519081900360200190f35b3480156106f357600080fd5b506103c9611589565b34801561070857600080fd5b506103c961158e565b34801561071d57600080fd5b506105dc611593565b34801561073257600080fd5b506106a9611599565b34801561074757600080fd5b506103c96115a2565b6105386004803603604081101561076657600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561079057600080fd5b8201836020820111156107a257600080fd5b803590602001918460018302840111600160201b831117156107c357600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506115a7945050505050565b34801561081057600080fd5b506105dc611e7d565b6105386004803603602081101561082f57600080fd5b810190602081018135600160201b81111561084957600080fd5b82018360208201111561085b57600080fd5b803590602001918460018302840111600160201b8311171561087c57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611e83945050505050565b3480156108c957600080fd5b506105dc6122cf565b610538600480360360408110156108e857600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561091257600080fd5b82018360208201111561092457600080fd5b803590602001918460018302840111600160201b8311171561094557600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506122d5945050505050565b34801561099257600080fd5b506103c96127db565b3480156109a757600080fd5b506106a96127e0565b3480156109bc57600080fd5b50610a35600480360360408110156109d357600080fd5b60ff8235169190810190604081016020820135600160201b8111156109f757600080fd5b820183602082011115610a0957600080fd5b803590602001918460018302840111600160201b83111715610a2a57600080fd5b5090925090506127e6565b005b61053860048036036040811015610a4d57600080fd5b5080356001600160a01b031690602001356001600160401b0316612935565b348015610a7857600080fd5b506103c961332c565b348015610a8d57600080fd5b506103c9613331565b348015610aa257600080fd5b506106a9613336565b348015610ab757600080fd5b506105dc613342565b348015610acc57600080fd5b506105dc613348565b348015610ae157600080fd5b5061053861334e565b348015610af657600080fd5b5061039b613357565b348015610b0b57600080fd5b50610a3560048036036040811015610b2257600080fd5b810190602081018135600160201b811115610b3c57600080fd5b820183602082011115610b4e57600080fd5b803590602001918460018302840111600160201b83111715610b6f57600080fd5b919390929091602081019035600160201b811115610b8c57600080fd5b820183602082011115610b9e57600080fd5b803590602001918460018302840111600160201b83111715610bbf57600080fd5b50909250905061335c565b348015610bd657600080fd5b506105dc613631565b348015610beb57600080fd5b50610a3560048036036040811015610c0257600080fd5b60ff8235169190810190604081016020820135600160201b811115610c2657600080fd5b820183602082011115610c3857600080fd5b803590602001918460018302840111600160201b83111715610c5957600080fd5b509092509050613637565b348015610c7057600080fd5b50610c8e60048036036020811015610c8757600080fd5b503561370d565b6040805160ff988916815260208101979097526001600160a01b03909516868601526060860193909352608085019190915290931660a08301526001600160401b0390921660c082015290519081900360e00190f35b348015610cf057600080fd5b506106a9613764565b348015610d0557600080fd5b506105dc613769565b348015610d1a57600080fd5b506106a961376f565b348015610d2f57600080fd5b506105dc613775565b348015610d4457600080fd5b506106a961377b565b348015610d5957600080fd5b506105dc613781565b348015610d6e57600080fd5b506103c9613357565b606481565b600681565b60603361200014610dc35760405162461bcd60e51b815260040180806020018281038252602f815260200180615b89602f913960400191505060405180910390fd5b60ff841660011415610e1557610e0e83838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061378792505050565b9050610e94565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605848484604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a1506040805160008152602081019091525b9392505050565b600481565b600181565b6040805163bd46646160e01b81526001600160a01b0384166004820152905160009182916110049163bd466461916024808301926020929190829003018186803b158015610ef257600080fd5b505afa158015610f06573d6000803e3d6000fd5b505050506040513d6020811015610f1c57600080fd5b5051905080610f5e576040805162461bcd60e51b81526020600482015260096024820152681b9bdd08189bdd5b9960ba1b604482015290519081900360640190fd5b6001600160a01b03841660009081526003602052604090205460ff16610fc1576040805162461bcd60e51b81526020600482015260136024820152723737ba103137bab73210313c9036b4b93937b960691b604482015290519081900360640190fd5b60006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b158015610ffe57600080fd5b505afa158015611012573d6000803e3d6000fd5b505050506040513d602081101561102857600080fd5b505190506402540be4003406158015611053575060055461104f908263ffffffff613a1716565b3410155b61108e5760405162461bcd60e51b8152600401808060200182810382526046815260200180615b156046913960600191505060405180910390fd5b42607801846001600160401b0316101580156110b85750426201518001846001600160401b031611155b6110f35760405162461bcd60e51b8152600401808060200182810382526038815260200180615a126038913960400191505060405180910390fd5b6000856001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561112e57600080fd5b505afa158015611142573d6000803e3d6000fd5b505050506040513d602081101561115857600080fd5b50516040805163313ce56760e01b815290519192506000916001600160a01b0389169163313ce567916004808301926020929190829003018186803b1580156111a057600080fd5b505afa1580156111b4573d6000803e3d6000fd5b505050506040513d60208110156111ca57600080fd5b50519050677ce66c50e28400006111e48360ff8416613a71565b1115611230576040805162461bcd60e51b8152602060048201526016602482015275746f6f206c6172676520746f74616c20737570706c7960501b604482015290519081900360640190fd5b600554611004906108fc9061124c90349063ffffffff613b0016565b6040518115909202916000818181858888f19350505050158015611274573d6000803e3d6000fd5b5061127d615869565b6040518060c00160405280336001600160a01b03168152602001896001600160a01b031681526020018681526020018481526020016112cc6402540be400600554613b4290919063ffffffff16565b81526001600160401b038916602090910152905061200063f7a251d760056112f384613b84565b61131d6402540be40061131160055434613b0090919063ffffffff16565b9063ffffffff613b4216565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561137b578181015183820152602001611363565b50505050905090810190601f1680156113a85780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156113c957600080fd5b505af11580156113dd573d6000803e3d6000fd5b505050506001955050505050505b92915050565b60036020526000908152604090205460ff1681565b60026020526000908152604090205460ff1681565b600381565b61100181565b602081015160009061143661589e565b50600081815260016020818152604092839020835160e081018552815460ff9081168252938201549281019290925260028101546001600160a01b031693820184905260038101546060830152600481015460808301526005015491821660a08201526101009091046001600160401b031660c0820152906114bd5760009250505061157f565b600081604001516001600160a01b03166370a082316110046040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561151b57600080fd5b505afa15801561152f573d6000803e3d6000fd5b505050506040513d602081101561154557600080fd5b5051608083015160608401519192506000916115669163ffffffff613b0016565b9050611578818363ffffffff613b0016565b9450505050505b919050565b606181565b600581565b600881565b61200081565b6402540be40081565b600281565b6001600160a01b03821660009081526002602052604081205460ff16156115ff5760405162461bcd60e51b815260040180806020018281038252602b815260200180615bb8602b913960400191505060405180910390fd5b600061160a83613cb9565b905061161461589e565b50600081815260016020818152604092839020835160e081018552815460ff90811682529382015492810183905260028201546001600160a01b03169481019490945260038101546060850152600481015460808501526005015491821660a08401526101009091046001600160401b031660c08301526116d9576040805162461bcd60e51b815260206004820152601a602482015279189a5b99081c995c5d595cdd08191bd95cdb89dd08195e1a5cdd60321b604482015290519081900360640190fd5b60006116f682608001518360600151613b0090919063ffffffff16565b905081604001516001600160a01b0316866001600160a01b03161461174c5760405162461bcd60e51b8152600401808060200182810382526045815260200180615a816045913960600191505060405180910390fd5b336001600160a01b0316866001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b15801561178f57600080fd5b505afa1580156117a3573d6000803e3d6000fd5b505050506040513d60208110156117b957600080fd5b50516001600160a01b0316146118005760405162461bcd60e51b815260040180806020018281038252602e8152602001806159e4602e913960400191505060405180910390fd5b604080516370a0823160e01b8152611004600482015290516000916001600160a01b038916916370a0823191602480820192602092909190829003018186803b15801561184c57600080fd5b505afa158015611860573d6000803e3d6000fd5b505050506040513d602081101561187657600080fd5b505160408051636eb1769f60e11b8152336004820152306024820152905191925083916119079184916001600160a01b038c169163dd62ed3e916044808301926020929190829003018186803b1580156118cf57600080fd5b505afa1580156118e3573d6000803e3d6000fd5b505050506040513d60208110156118f957600080fd5b50519063ffffffff613a1716565b101561195a576040805162461bcd60e51b815260206004820152601760248201527f616c6c6f77616e6365206973206e6f7420656e6f756768000000000000000000604482015290519081900360640190fd5b600034905060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b15801561199c57600080fd5b505afa1580156119b0573d6000803e3d6000fd5b505050506040513d60208110156119c657600080fd5b505190508082108015906119df57506402540be4008206155b611a1a5760405162461bcd60e51b8152600401808060200182810382526037815260200180615a4a6037913960400191505060405180910390fd5b6000611a26868b613cc0565b905063ffffffff8116611c25576001600160a01b038a166323b872dd33611004611a56898963ffffffff613b0016565b6040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b031681526020018281526020019350505050602060405180830381600087803b158015611abe57600080fd5b505af1158015611ad2573d6000803e3d6000fd5b505050506040513d6020811015611ae857600080fd5b5050602086015160408088015160a089015182516323bfccdb60e21b815260048101949094526001600160a01b03909116602484015260ff1660448301525161100491638eff336c91606480830192600092919082900301818387803b158015611b5157600080fd5b505af1158015611b65573d6000803e3d6000fd5b50505050896001600160a01b03167f78e7dd9aefcdbf795c4936a66f7dc6d41bb56637b54f561a6bf7829dca3348a88a8860600151886040518080602001848152602001838152602001828103825285818151815260200191508051906020019080838360005b83811015611be4578181015183820152602001611bcc565b50505050905090810190601f168015611c115780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a2611cdd565b896001600160a01b03167f831c0ef4d93bda3bce08b69ae3f29ef1a6e052b833200988554158494405a1078a8360405180806020018363ffffffff1663ffffffff168152602001828103825284818151815260200191508051906020019080838360005b83811015611ca1578181015183820152602001611c89565b50505050905090810190601f168015611cce5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a25b60008781526001602081905260408220805460ff191681559081018290556002810180546001600160a01b0319169055600381018290556004810191909155600501805468ffffffffffffffffff19169055611d376158da565b5060408051808201825263ffffffff831681526020810189905290516110049085156108fc029086906000818181858888f19350505050158015611d7f573d6000803e3d6000fd5b5061200063f7a251d76001611d938461411a565b611da8886402540be40063ffffffff613b4216565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611e06578181015183820152602001611dee565b50505050905090810190601f168015611e335780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015611e5457600080fd5b505af1158015611e68573d6000803e3d6000fd5b5060019e9d5050505050505050505050505050565b61100581565b600080611e8f83613cb9565b9050611e9961589e565b50600081815260016020818152604092839020835160e081018552815460ff90811682529382015492810183905260028201546001600160a01b03169481019490945260038101546060850152600481015460808501526005015491821660a08401526101009091046001600160401b031660c0830152611f5e576040805162461bcd60e51b815260206004820152601a602482015279189a5b99081c995c5d595cdd08191bd95cdb89dd08195e1a5cdd60321b604482015290519081900360640190fd5b428160c001516001600160401b031610611fbf576040805162461bcd60e51b815260206004820152601b60248201527f62696e642072657175657374206973206e6f7420657870697265640000000000604482015290519081900360640190fd5b600034905060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b15801561200157600080fd5b505afa158015612015573d6000803e3d6000fd5b505050506040513d602081101561202b57600080fd5b5051905080821080159061204457506402540be4008206155b61207f5760405162461bcd60e51b8152600401808060200182810382526037815260200180615a4a6037913960400191505060405180910390fd5b60008481526001602081905260408220805460ff191681559081018290556002810180546001600160a01b0319169055600381018290556004810191909155600501805468ffffffffffffffffff191690556120d96158da565b50604080518082018252600181526020810186905290516110049084156108fc029085906000818181858888f1935050505015801561211c573d6000803e3d6000fd5b5061200063f7a251d760016121308461411a565b612145876402540be40063ffffffff613b4216565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156121a357818101518382015260200161218b565b50505050905090810190601f1680156121d05780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156121f157600080fd5b505af1158015612205573d6000803e3d6000fd5b5050505083604001516001600160a01b03167f831c0ef4d93bda3bce08b69ae3f29ef1a6e052b833200988554158494405a10788600160405180806020018360ff1663ffffffff168152602001828103825284818151815260200191508051906020019080838360005b8381101561228757818101518382015260200161226f565b50505050905090810190601f1680156122b45780820380516001836020036101000a031916815260200191505b50935050505060405180910390a25060019695505050505050565b61100881565b6000806122e183613cb9565b90506122eb61589e565b50600081815260016020818152604092839020835160e081018552815460ff90811682529382015492810183905260028201546001600160a01b03169481019490945260038101546060850152600481015460808501526005015491821660a08401526101009091046001600160401b031660c08301526123b0576040805162461bcd60e51b815260206004820152601a602482015279189a5b99081c995c5d595cdd08191bd95cdb89dd08195e1a5cdd60321b604482015290519081900360640190fd5b80604001516001600160a01b0316856001600160a01b0316146124045760405162461bcd60e51b8152600401808060200182810382526045815260200180615a816045913960600191505060405180910390fd5b336001600160a01b0316856001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b15801561244757600080fd5b505afa15801561245b573d6000803e3d6000fd5b505050506040513d602081101561247157600080fd5b50516001600160a01b0316146124ce576040805162461bcd60e51b815260206004820152601b60248201527f6f6e6c79206265703230206f776e65722063616e2072656a6563740000000000604482015290519081900360640190fd5b600034905060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b15801561251057600080fd5b505afa158015612524573d6000803e3d6000fd5b505050506040513d602081101561253a57600080fd5b5051905080821080159061255357506402540be4008206155b61258e5760405162461bcd60e51b8152600401808060200182810382526037815260200180615a4a6037913960400191505060405180910390fd5b60008481526001602081905260408220805460ff191681559081018290556002810180546001600160a01b0319169055600381018290556004810191909155600501805468ffffffffffffffffff191690556125e86158da565b50604080518082018252600781526020810186905290516110049084156108fc029085906000818181858888f1935050505015801561262b573d6000803e3d6000fd5b5061200063f7a251d7600161263f8461411a565b612654876402540be40063ffffffff613b4216565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156126b257818101518382015260200161269a565b50505050905090810190601f1680156126df5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561270057600080fd5b505af1158015612714573d6000803e3d6000fd5b50505050876001600160a01b03167f831c0ef4d93bda3bce08b69ae3f29ef1a6e052b833200988554158494405a10788600760405180806020018360ff1663ffffffff168152602001828103825284818151815260200191508051906020019080838360005b8381101561279257818101518382015260200161277a565b50505050905090810190601f1680156127bf5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a2506001979650505050505050565b600b81565b60045481565b33612000146128265760405162461bcd60e51b815260040180806020018281038252602f815260200180615b89602f913960400191505060405180910390fd5b60ff8316600414156128765761287182828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061419092505050565b612930565b60ff8316600514156128c15761287182828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061443d92505050565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a15b505050565b6040805163bd46646160e01b81526001600160a01b0384166004820152905160009182916110049163bd466461916024808301926020929190829003018186803b15801561298257600080fd5b505afa158015612996573d6000803e3d6000fd5b505050506040513d60208110156129ac57600080fd5b5051146129f0576040805162461bcd60e51b815260206004820152600d60248201526c185b1c9958591e48189bdd5b99609a1b604482015290519081900360640190fd5b6001600160a01b03831660009081526002602052604090205460ff1615612a4f576040805162461bcd60e51b815260206004820152600e60248201526d6d6972726f722070656e64696e6760901b604482015290519081900360640190fd5b60006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b158015612a8c57600080fd5b505afa158015612aa0573d6000803e3d6000fd5b505050506040513d6020811015612ab657600080fd5b505190506402540be4003406158015612ae15750600454612add908263ffffffff613a1716565b3410155b612b1c5760405162461bcd60e51b815260040180806020018281038252604d815260200180615997604d913960600191505060405180910390fd5b42607801836001600160401b031610158015612b465750426201518001836001600160401b031611155b612b815760405162461bcd60e51b8152600401808060200182810382526038815260200180615a126038913960400191505060405180910390fd5b6000846001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015612bbc57600080fd5b505afa158015612bd0573d6000803e3d6000fd5b505050506040513d6020811015612be657600080fd5b5051604080516318160ddd60e01b815290519192506000916001600160a01b038816916318160ddd916004808301926020929190829003018186803b158015612c2e57600080fd5b505afa158015612c42573d6000803e3d6000fd5b505050506040513d6020811015612c5857600080fd5b50519050677ce66c50e2840000612c728260ff8516613a71565b1115612cbe576040805162461bcd60e51b8152602060048201526016602482015275746f6f206c6172676520746f74616c20737570706c7960501b604482015290519081900360640190fd5b6060866001600160a01b03166306fdde036040518163ffffffff1660e01b815260040160006040518083038186803b158015612cf957600080fd5b505afa158015612d0d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015612d3657600080fd5b8101908080516040519392919084600160201b821115612d5557600080fd5b908301906020820185811115612d6a57600080fd5b8251600160201b811182820188101715612d8357600080fd5b82525081516020918201929091019080838360005b83811015612db0578181015183820152602001612d98565b50505050905090810190601f168015612ddd5780820380516001836020036101000a031916815260200191505b50604052505050905060608190506001815110158015612dff57506020815111155b612e50576040805162461bcd60e51b815260206004820152601d60248201527f6e616d65206c656e677468206d75737420626520696e205b312c33325d000000604482015290519081900360640190fd5b6060886001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b158015612e8b57600080fd5b505afa158015612e9f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015612ec857600080fd5b8101908080516040519392919084600160201b821115612ee757600080fd5b908301906020820185811115612efc57600080fd5b8251600160201b811182820188101715612f1557600080fd5b82525081516020918201929091019080838360005b83811015612f42578181015183820152602001612f2a565b50505050905090810190601f168015612f6f5780820380516001836020036101000a031916815260200191505b5060405250508151919250829160021180159150612f8f57508051600810155b612fe0576040805162461bcd60e51b815260206004820152601e60248201527f73796d626f6c206c656e677468206d75737420626520696e205b322c385d0000604482015290519081900360640190fd5b60005b81518160ff16101561313457604160f81b828260ff168151811061300357fe5b01602001516001600160f81b031916108015906130415750602d60f91b828260ff168151811061302f57fe5b01602001516001600160f81b03191611155b806130995750606160f81b828260ff168151811061305b57fe5b01602001516001600160f81b031916108015906130995750603d60f91b828260ff168151811061308757fe5b01602001516001600160f81b03191611155b806130f15750600360fc1b828260ff16815181106130b357fe5b01602001516001600160f81b031916108015906130f15750603960f81b828260ff16815181106130df57fe5b01602001516001600160f81b03191611155b61312c5760405162461bcd60e51b815260040180806020018281038252602e815260200180615ac6602e913960400191505060405180910390fd5b600101612fe3565b50600454611004906108fc9061315190349063ffffffff613b0016565b6040518115909202916000818181858888f19350505050158015613179573d6000803e3d6000fd5b506001600160a01b038a166000908152600260209081526040909120805460ff1916600117905584810151908301516131b06158f1565b604051806101000160405280336001600160a01b031681526020018e6001600160a01b031681526020018481526020018381526020018981526020018a60ff16815260200161320f6402540be400600454613b4290919063ffffffff16565b81526001600160401b038e16602090910152905061200063f7a251d7600461323684614608565b6132546402540be40061131160045434613b0090919063ffffffff16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156132b257818101518382015260200161329a565b50505050905090810190601f1680156132df5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561330057600080fd5b505af1158015613314573d6000803e3d6000fd5b5050505060019a505050505050505050505092915050565b600781565b600981565b677ce66c50e284000081565b61100781565b61100681565b60005460ff1681565b600081565b336110071461339c5760405162461bcd60e51b815260040180806020018281038252602e815260200180615b5b602e913960400191505060405180910390fd5b602081146133f1576040805162461bcd60e51b815260206004820152601860248201527f65787065637465642076616c7565206c656e6774682033320000000000000000604482015290519081900360640190fd5b606084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f880181900481028201810190925286815293945060609392508691508590819084018382808284376000920191909152505050506020830151909150686d6972726f7246656560b81b8114156134e65760208201516402540be4008106156134de576040805162461bcd60e51b815260206004820152601a60248201527f6d6972726f72466565206d757374206265204e202a2031653130000000000000604482015290519081900360640190fd5b60045561359c565b6673796e6346656560c81b81141561355f5760208201516402540be400810615613557576040805162461bcd60e51b815260206004820152601860248201527f73796e63466565206d757374206265204e202a20316531300000000000000000604482015290519081900360640190fd5b60055561359c565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a878787876040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050505050565b61100281565b33612000146136775760405162461bcd60e51b815260040180806020018281038252602f815260200180615b89602f913960400191505060405180910390fd5b60ff8316600414156136c25761287182828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061477a92505050565b60ff8316600514156128c15761287182828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506148b992505050565b600160208190526000918252604090912080549181015460028201546003830154600484015460059094015460ff9586169593946001600160a01b039093169391929181169061010090046001600160401b031687565b604d81565b61100381565b60055481565b61100081565b61271081565b61100481565b606061379161589e565b600061379c846149b3565b91509150806137f2576040805162461bcd60e51b815260206004820152601f60248201527f756e7265636f676e697a6564207472616e73666572496e207061636b61676500604482015290519081900360640190fd5b815160ff166138a5576020828101805160009081526001928390526040908190208551815460ff1990811660ff928316178355935194820194909455908501516002820180546001600160a01b0319166001600160a01b03909216919091179055606085015160038201556080850151600482015560a08501516005909101805460c08701519316919093161768ffffffffffffffff0019166101006001600160401b03909216919091021790556139fc565b815160ff16600114156139af5760006110046001600160a01b03166359b9278984602001516040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156138fe57600080fd5b505afa158015613912573d6000803e3d6000fd5b505050506040513d602081101561392857600080fd5b505190506001600160a01b038116156139a95760208301516040805163b99328c560e01b815260048101929092526001600160a01b0383166024830152516110049163b99328c591604480830192600092919082900301818387803b15801561399057600080fd5b505af11580156139a4573d6000803e3d6000fd5b505050505b506139fc565b6040805162461bcd60e51b815260206004820152601960248201527f756e7265636f676e697a65642062696e64207061636b61676500000000000000604482015290519081900360640190fd5b60408051600080825260208201909252905b50949350505050565b600082820183811015610e94576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60006008821115613ae957604d60071983011115613acb576040805162461bcd60e51b8152602060048201526012602482015271746f6f206c6172676520646563696d616c7360701b604482015290519081900360640190fd5b613ae2836007198401600a0a63ffffffff613b4216565b90506113eb565b610e94836008849003600a0a63ffffffff614b0416565b6000610e9483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250614b5d565b6000610e9483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250614bf4565b60408051600680825260e08201909252606091829190816020015b6060815260200190600190039081613b9f5750508351909150613bca906001600160a01b0316614c59565b81600081518110613bd757fe5b6020026020010181905250613bf883602001516001600160a01b0316614c59565b81600181518110613c0557fe5b6020026020010181905250613c20836040015160001c614c7c565b81600281518110613c2d57fe5b6020026020010181905250613c458360600151614c7c565b81600381518110613c5257fe5b6020026020010181905250613c6a8360800151614c7c565b81600481518110613c7757fe5b6020026020010181905250613c988360a001516001600160401b0316614c7c565b81600581518110613ca557fe5b6020026020010181905250610e9481614c8f565b6020015190565b600080826001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015613cfc57600080fd5b505afa158015613d10573d6000803e3d6000fd5b505050506040513d6020811015613d2657600080fd5b5051604080516395d89b4160e01b8152905160ff90921692506060916001600160a01b038616916395d89b41916004808301926000929190829003018186803b158015613d7257600080fd5b505afa158015613d86573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015613daf57600080fd5b8101908080516040519392919084600160201b821115613dce57600080fd5b908301906020820185811115613de357600080fd5b8251600160201b811182820188101715613dfc57600080fd5b82525081516020918201929091019080838360005b83811015613e29578181015183820152602001613e11565b50505050905090810190601f168015613e565780820380516001836020036101000a031916815260200191505b5060408181526370a0823160e01b82526110046004830152519495506000946001600160a01b038a1694506370a08231935060248083019350602092829003018186803b158015613ea657600080fd5b505afa158015613eba573d6000803e3d6000fd5b505050506040513d6020811015613ed057600080fd5b505160808701516060880151919250600091613ef19163ffffffff613b0016565b9050428760c001516001600160401b03161015613f165750600193506113eb92505050565b613f24838860200151614d19565b613f365750600293506113eb92505050565b80821115613f4c5750600393506113eb92505050565b866060015187604001516001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015613f8e57600080fd5b505afa158015613fa2573d6000803e3d6000fd5b505050506040513d6020811015613fb857600080fd5b505114613fcd5750600493506113eb92505050565b8660a0015160ff168414613fe95750600593506113eb92505050565b602080880151604080516359b9278960e01b8152600481019290925251600092611004926359b927899260248083019392829003018186803b15801561402e57600080fd5b505afa158015614042573d6000803e3d6000fd5b505050506040513d602081101561405857600080fd5b50516001600160a01b03161415806140fa57506000801b6110046001600160a01b031663bd46646189604001516040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156140cb57600080fd5b505afa1580156140df573d6000803e3d6000fd5b505050506040513d60208110156140f557600080fd5b505114155b1561410d5750600693506113eb92505050565b5060009695505050505050565b6040805160028082526060828101909352829190816020015b6060815260200190600190039081614133575050835190915061415b9063ffffffff16614c7c565b8160008151811061416857fe5b6020026020010181905250614183836020015160001c614c7c565b81600181518110613ca557fe5b614198615869565b60006141a383614e01565b91509150806141f0576040805162461bcd60e51b8152602060048201526014602482015273756e7265636f676e697a6564207061636b61676560601b604482015290519081900360640190fd5b6020808301516001600160a01b03166000908152600290915260409020805460ff1916905560a082015160ff166143515760808201516040516110049180156108fc02916000818181858888f19350505050158015614253573d6000803e3d6000fd5b506110046001600160a01b0316638eff336c8360600151846020015185604001516040518463ffffffff1660e01b815260040180848152602001836001600160a01b03166001600160a01b031681526020018260ff1681526020019350505050600060405180830381600087803b1580156142cd57600080fd5b505af11580156142e1573d6000803e3d6000fd5b50505050602082810180516001600160a01b03908116600090815260038452604090819020805460ff1916600117905591516060860151835190815292519116927f41787d7db08fc5907641ee8343379f28215727eb123d4b462099afab4300b036928290030190a2505061443a565b815160808301516040516000926001600160a01b0316916127109184818181858888f193505050503d80600081146143a5576040519150601f19603f3d011682016040523d82523d6000602084013e6143aa565b606091505b50509050806143e75760808301516040516110029180156108fc02916000818181858888f193505050501580156143e5573d6000803e3d6000fd5b505b82602001516001600160a01b03167fefe400ad0042ebf81a245de9ae669616105e0ca9fc946352c085da0c2bc524e58460a00151604051808260ff1660ff16815260200191505060405180910390a25050505b50565b614445615935565b600061445083614f0e565b915091508061449d576040805162461bcd60e51b8152602060048201526014602482015273756e7265636f676e697a6564207061636b61676560601b604482015290519081900360640190fd5b606082015160ff1661451d5760408083015190516110049180156108fc02916000818181858888f193505050501580156144db573d6000803e3d6000fd5b5081602001516001600160a01b03167fbb7d3a9a559080d8281b0e4fb39dacbe2fdcafd5ef765e9a6ed871c9167dc60f60405160405180910390a2505061443a565b81602001516001600160a01b03167ff1e25fa536da84053644fd788b1d6a27ea6edd1f3af80c7d36ca253c4c82c9c38360600151604051808260ff1660ff16815260200191505060405180910390a2815160408084015190516000926001600160a01b0316916127109184818181858888f193505050503d80600081146145c0576040519150601f19603f3d011682016040523d82523d6000602084013e6145c5565b606091505b50509050806146025760408084015190516110029180156108fc02916000818181858888f19350505050158015614600573d6000803e3d6000fd5b505b50505050565b6040805160088082526101208201909252606091829190816020015b6060815260200190600190039081614624575050835190915061464f906001600160a01b0316614c59565b8160008151811061465c57fe5b602002602001018190525061467d83602001516001600160a01b0316614c59565b8160018151811061468a57fe5b60200260200101819052506146a5836040015160001c614c7c565b816002815181106146b257fe5b60200260200101819052506146cd836060015160001c614c7c565b816003815181106146da57fe5b60200260200101819052506146f28360800151614c7c565b816004815181106146ff57fe5b602002602001018190525061471a8360a0015160ff16614c7c565b8160058151811061472757fe5b602002602001018190525061473f8360c00151614c7c565b8160068151811061474c57fe5b602002602001018190525061476d8360e001516001600160401b0316614c7c565b81600781518110613ca557fe5b6147826158f1565b600061478d83614fda565b91509150806147da576040805162461bcd60e51b8152602060048201526014602482015273756e7265636f676e697a6564207061636b61676560601b604482015290519081900360640190fd5b6020808301516001600160a01b039081166000908152600290925260408220805460ff19169055835160c085015191169061271090614824906402540be40063ffffffff614b0416565b6040516000818181858888f193505050503d8060008114614861576040519150601f19603f3d011682016040523d82523d6000602084013e614866565b606091505b50509050806146025760c0830151611002906108fc90614891906402540be40063ffffffff614b0416565b6040518115909202916000818181858888f19350505050158015614600573d6000803e3d6000fd5b6148c1615869565b60006148cc8361512b565b9150915080614919576040805162461bcd60e51b8152602060048201526014602482015273756e7265636f676e697a6564207061636b61676560601b604482015290519081900360640190fd5b815160808301516000916001600160a01b03169061271090614946906402540be40063ffffffff614b0416565b6040516000818181858888f193505050503d8060008114614983576040519150601f19603f3d011682016040523d82523d6000602084013e614988565b606091505b5050905080614602576080830151611002906108fc90614891906402540be40063ffffffff614b0416565b6149bb61589e565b60006149c561589e565b6149cd61595c565b6149de6149d98661523b565b615260565b90506000805b6149ed836152aa565b15614af75780614a1257614a08614a03846152cb565b615319565b60ff168452614aef565b8060011415614a3157614a27614a03846152cb565b6020850152614aef565b8060021415614a5e57614a4b614a46846152cb565b6153ce565b6001600160a01b03166040850152614aef565b8060031415614a7d57614a73614a03846152cb565b6060850152614aef565b8060041415614a9c57614a92614a03846152cb565b6080850152614aef565b8060051415614abe57614ab1614a03846152cb565b60ff1660a0850152614aef565b8060061415614aea57614ad3614a03846152cb565b6001600160401b031660c085015260019150614aef565b614af7565b6001016149e4565b5091935090915050915091565b600082614b13575060006113eb565b82820282848281614b2057fe5b0414610e945760405162461bcd60e51b8152600401808060200182810382526021815260200180615af46021913960400191505060405180910390fd5b60008184841115614bec5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015614bb1578181015183820152602001614b99565b50505050905090810190601f168015614bde5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008183614c435760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315614bb1578181015183820152602001614b99565b506000838581614c4f57fe5b0495945050505050565b60408051600560a21b8318601482015260348101909152606090610e94816153e8565b60606113eb614c8a8361543e565b6153e8565b6060815160001415614cb0575060408051600081526020810190915261157f565b606082600081518110614cbf57fe5b602002602001015190506000600190505b8351811015614d0057614cf682858381518110614ce957fe5b6020026020010151615524565b9150600101614cd0565b50610e94614d13825160c060ff166155a1565b82615524565b8151600090839060081080614d2f575080516002115b15614d3e5760009150506113eb565b60408051602080825281830190925260609160208201818036833701905050905083602082015280825181518110614d7257fe5b6020910101516001600160f81b031916602d60f81b14614d97576000925050506113eb565b600160005b8351811015614df757828181518110614db157fe5b602001015160f81c60f81b6001600160f81b031916848281518110614dd257fe5b01602001516001600160f81b03191614614def5760009150614df7565b600101614d9c565b5095945050505050565b614e09615869565b6000614e13615869565b614e1b61595c565b614e276149d98661523b565b90506000805b614e36836152aa565b15614af75780614e5c57614e4c614a46846152cb565b6001600160a01b03168452614f06565b8060011415614e8457614e71614a46846152cb565b6001600160a01b03166020850152614f06565b8060021415614ea657614e99614a03846152cb565b60ff166040850152614f06565b8060031415614ec557614ebb614a03846152cb565b6060850152614f06565b8060041415614ee457614eda614a03846152cb565b6080850152614f06565b8060051415614aea57614ef9614a03846152cb565b60ff1660a0850152600191505b600101614e2d565b614f16615935565b6000614f20615935565b614f2861595c565b614f346149d98661523b565b90506000805b614f43836152aa565b15614af75780614f6957614f59614a46846152cb565b6001600160a01b03168452614fd2565b8060011415614f9157614f7e614a46846152cb565b6001600160a01b03166020850152614fd2565b8060021415614fb057614fa6614a03846152cb565b6040850152614fd2565b8060031415614aea57614fc5614a03846152cb565b60ff166060850152600191505b600101614f3a565b614fe26158f1565b6000614fec6158f1565b614ff461595c565b6150006149d98661523b565b90506000805b61500f836152aa565b15614af7578061503557615025614a46846152cb565b6001600160a01b03168452615123565b806001141561505d5761504a614a46846152cb565b6001600160a01b03166020850152615123565b806002141561507c57615072614a03846152cb565b6040850152615123565b806003141561509b57615091614a03846152cb565b6060850152615123565b80600414156150ba576150b0614a03846152cb565b6080850152615123565b80600514156150dc576150cf614a03846152cb565b60ff1660a0850152615123565b80600614156150fb576150f1614a03846152cb565b60c0850152615123565b8060071415614aea57615110614a03846152cb565b6001600160401b031660e0850152600191505b600101615006565b615133615869565b600061513d615869565b61514561595c565b6151516149d98661523b565b90506000805b615160836152aa565b15614af7578061518657615176614a46846152cb565b6001600160a01b03168452615233565b80600114156151ae5761519b614a46846152cb565b6001600160a01b03166020850152615233565b80600214156151cd576151c3614a03846152cb565b6040850152615233565b80600314156151ec576151e2614a03846152cb565b6060850152615233565b806004141561520b57615201614a03846152cb565b6080850152615233565b8060051415614aea57615220614a03846152cb565b6001600160401b031660a0850152600191505b600101615157565b61524361597c565b506040805180820190915281518152602082810190820152919050565b61526861595c565b61527182615699565b61527a57600080fd5b600061528983602001516156d3565b60208085015160408051808201909152868152920190820152915050919050565b60006152b461597c565b505080518051602091820151919092015191011190565b6152d361597c565b6152dc826152aa565b6152e557600080fd5b602082015160006152f582615736565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061532e57508151602110155b61533757600080fd5b600061534683602001516156d3565b905080836000015110156153a1576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015613a0e57506020919091036101000a90049392505050565b80516000906015146153df57600080fd5b6113eb82615319565b60608151600114801561541a5750607f60f81b8260008151811061540857fe5b01602001516001600160f81b03191611155b1561542657508061157f565b6113eb6154388351608060ff166155a1565b83615524565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416615482575060186154a6565b6fffffffffffffffffffffffffffffffff1984166154a2575060106154a6565b5060005b60208110156154dc578181815181106154bb57fe5b01602001516001600160f81b031916156154d4576154dc565b6001016154a6565b60008160200390506060816040519080825280601f01601f191660200182016040528015615511576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b8183101561555557805183526020928301920161553d565b50855184518101855292509050808201602086015b8183101561558257805183526020928301920161556a565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106155f1576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b6040805160018082528183019092526060916020820181803683370190505090506037841161564b5782840160f81b8160008151811061562d57fe5b60200101906001600160f81b031916908160001a90535090506113eb565b60606156568561543e565b90508381510160370160f81b8260008151811061566f57fe5b60200101906001600160f81b031916908160001a9053506156908282615524565b95945050505050565b80516000906156aa5750600061157f565b6020820151805160001a9060c08210156156c95760009250505061157f565b5060019392505050565b8051600090811a60808110156156ed57600091505061157f565b60b8811080615708575060c08110801590615708575060f881105b1561571757600191505061157f565b60c081101561572b5760b51901905061157f565b60f51901905061157f565b80516000908190811a60808110156157515760019150615862565b60b881101561576657607e1981019150615862565b60c08110156157e057600060b78203600186019550806020036101000a8651049150600181018201935050808310156157da576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50615862565b60f88110156157f55760be1981019150615862565b600060f78203600186019550806020036101000a865104915060018101820193505080831015615860576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c081019190915290565b604080518082019091526000808252602082015290565b6040805161010081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081019190915290565b60408051608081018252600080825260208201819052918101829052606081019190915290565b604051806040016040528061596f61597c565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe6d73672e76616c7565206d757374206265204e202a203165313020616e642067726561746572207468616e2073756d206f66206d696e6952656c617946656520616e64206d6972726f724665656f6e6c79206265703230206f776e65722063616e20617070726f766520746869732062696e64207265717565737465787069726554696d65206d7573742062652074776f206d696e75746573206c6174657220616e64206f6e6520646179206561726c69657272656c6179466565206d757374206265204e202a203165313020616e642067726561746572207468616e206d696e6952656c6179466565636f6e74616374206164647265737320646f65736e277420657175616c20746f2074686520636f6e7472616374206164647265737320696e2062696e64207265717565737473796d626f6c2073686f756c64206f6e6c7920636f6e7461696e20616c70686162657420616e64206e756d626572536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f776d73672e76616c7565206d757374206265204e202a203165313020616e64206e6f206c6573732073756d206f66206d696e6952656c617946656520616e642073796e63466565746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e747261637474686520626570323020746f6b656e20697320696e206d6972726f722070656e64696e6720737461747573a2646970667358221220d5a978e7f66cfd1df68dce9198b278a4a761278f29fe7aab4682c9ea36b909d264736f6c63430006040033" + }, + "0x0000000000000000000000000000000000001004": { + "balance": "0x0", + "code": "0x60806040526004361061031e5760003560e01c80639a99b4f0116101ab578063bd466461116100f7578063f014847211610095578063fc1a598f1161006f578063fc1a598f14610cb3578063fc3e590814610996578063fd6a687914610ce6578063ff9c00271461068657610366565b8063f014847214610c74578063f9a2bbc714610c89578063fa9e915914610c9e57610366565b8063d9e6dae9116100d1578063d9e6dae914610608578063dc927faf14610c35578063e1c7392a14610c4a578063ebf71d5314610c5f57610366565b8063bd46646114610b68578063c81b166214610b9b578063c8509d8114610bb057610366565b8063aa7415f511610164578063b99328c51161013e578063b99328c514610ad2578063b9fd21e314610b0b578063ba35ead614610b20578063bbface1f14610b3557610366565b8063aa7415f5146109ab578063ab51bb96146109f2578063ac43175114610a0757610366565b80639a99b4f0146109095780639dc0926214610942578063a1a11bf514610957578063a496fba21461096c578063a78abc1614610981578063a7c9f02d1461099657610366565b8063613684751161026a57806375d47a0a116102235780638b87b21f116101fd5780638b87b21f146105875780638eff336c146108a057806396713da9146108df5780639a854bbd146108f457610366565b806375d47a0a146107f15780637942fd0514610806578063831d65d11461081b57610366565b8063613684751461060857806366dea52a146106865780636e0565201461069b5780636e47b482146107c757806370fd5bad1461068657806371d30863146107dc57610366565b806343a368b9116102d757806350432d32116102b157806350432d321461061d57806351e806721461063257806359b92789146106475780635d499b1b1461067157610366565b806343a368b9146105c7578063493279b1146105dc5780634bf6c8821461060857610366565b80630bee7a671461036b5780631182b87514610399578063149d14d9146104935780633d713223146104ba5780633dffc3871461058757806343756e5c146105b257610366565b36610366573415610364576040805133815234602082015281517f6c98249d85d88c3753a04a22230f595e4dc8d3dc86c34af35deeeedc861b89db929181900390910190a15b005b600080fd5b34801561037757600080fd5b50610380610cfb565b6040805163ffffffff9092168252519081900360200190f35b3480156103a557600080fd5b5061041e600480360360408110156103bc57600080fd5b60ff8235169190810190604081016020820135600160201b8111156103e057600080fd5b8201836020820111156103f257600080fd5b803590602001918460018302840111600160201b8311171561041357600080fd5b509092509050610d00565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610458578181015183820152602001610440565b50505050905090810190601f1680156104855780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561049f57600080fd5b506104a8610e2e565b60408051918252519081900360200190f35b3480156104c657600080fd5b5061056b600480360360208110156104dd57600080fd5b810190602081018135600160201b8111156104f757600080fd5b82018360208201111561050957600080fd5b803590602001918460018302840111600160201b8311171561052a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610e34945050505050565b604080516001600160a01b039092168252519081900360200190f35b34801561059357600080fd5b5061059c610e58565b6040805160ff9092168252519081900360200190f35b3480156105be57600080fd5b5061056b610e5d565b3480156105d357600080fd5b506104a8610e63565b3480156105e857600080fd5b506105f1610e6f565b6040805161ffff9092168252519081900360200190f35b34801561061457600080fd5b5061059c610e74565b34801561062957600080fd5b506104a8610e79565b34801561063e57600080fd5b5061056b610e84565b34801561065357600080fd5b5061056b6004803603602081101561066a57600080fd5b5035610e8a565b34801561067d57600080fd5b506104a8610ea5565b34801561069257600080fd5b5061059c610eae565b6107b3600480360360808110156106b157600080fd5b810190602081018135600160201b8111156106cb57600080fd5b8201836020820111156106dd57600080fd5b803590602001918460208302840111600160201b831117156106fe57600080fd5b919390929091602081019035600160201b81111561071b57600080fd5b82018360208201111561072d57600080fd5b803590602001918460208302840111600160201b8311171561074e57600080fd5b919390929091602081019035600160201b81111561076b57600080fd5b82018360208201111561077d57600080fd5b803590602001918460208302840111600160201b8311171561079e57600080fd5b91935091503567ffffffffffffffff16610eb3565b604080519115158252519081900360200190f35b3480156107d357600080fd5b5061056b611388565b3480156107e857600080fd5b506104a861138e565b3480156107fd57600080fd5b5061056b611394565b34801561081257600080fd5b5061059c61139a565b34801561082757600080fd5b506103646004803603604081101561083e57600080fd5b60ff8235169190810190604081016020820135600160201b81111561086257600080fd5b82018360208201111561087457600080fd5b803590602001918460018302840111600160201b8311171561089557600080fd5b50909250905061139f565b3480156108ac57600080fd5b50610364600480360360608110156108c357600080fd5b508035906001600160a01b0360208201351690604001356114e8565b3480156108eb57600080fd5b5061059c61156e565b34801561090057600080fd5b506104a8611573565b34801561091557600080fd5b506104a86004803603604081101561092c57600080fd5b506001600160a01b03813516906020013561157f565b34801561094e57600080fd5b5061056b6116bd565b34801561096357600080fd5b5061056b6116c3565b34801561097857600080fd5b5061059c6116c9565b34801561098d57600080fd5b506107b36116ce565b3480156109a257600080fd5b5061059c6116d7565b6107b3600480360360808110156109c157600080fd5b5080356001600160a01b03908116916020810135909116906040810135906060013567ffffffffffffffff166116dc565b3480156109fe57600080fd5b506103806116c9565b348015610a1357600080fd5b5061036460048036036040811015610a2a57600080fd5b810190602081018135600160201b811115610a4457600080fd5b820183602082011115610a5657600080fd5b803590602001918460018302840111600160201b83111715610a7757600080fd5b919390929091602081019035600160201b811115610a9457600080fd5b820183602082011115610aa657600080fd5b803590602001918460018302840111600160201b83111715610ac757600080fd5b509092509050611d9d565b348015610ade57600080fd5b5061036460048036036040811015610af557600080fd5b50803590602001356001600160a01b031661200c565b348015610b1757600080fd5b506104a8612082565b348015610b2c57600080fd5b506104a861208c565b348015610b4157600080fd5b506104a860048036036020811015610b5857600080fd5b50356001600160a01b0316612092565b348015610b7457600080fd5b506104a860048036036020811015610b8b57600080fd5b50356001600160a01b03166120a4565b348015610ba757600080fd5b5061056b6120bf565b348015610bbc57600080fd5b5061036460048036036040811015610bd357600080fd5b60ff8235169190810190604081016020820135600160201b811115610bf757600080fd5b820183602082011115610c0957600080fd5b803590602001918460018302840111600160201b83111715610c2a57600080fd5b5090925090506120c5565b348015610c4157600080fd5b5061056b612195565b348015610c5657600080fd5b5061036461219b565b348015610c6b57600080fd5b5061059c61223b565b348015610c8057600080fd5b5061059c612240565b348015610c9557600080fd5b5061056b612245565b348015610caa57600080fd5b506104a861224b565b348015610cbf57600080fd5b5061041e60048036036020811015610cd657600080fd5b50356001600160a01b0316612251565b348015610cf257600080fd5b5061056b612378565b606481565b60005460609060ff16610d48576040805162461bcd60e51b815260206004820152601960248201526000805160206147a8833981519152604482015290519081900360640190fd5b3361200014610d885760405162461bcd60e51b815260040180806020018281038252602f815260200180614756602f913960400191505060405180910390fd5b60ff841660021415610dda57610dd383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061237e92505050565b9050610e27565b6040805162461bcd60e51b815260206004820152601860248201527f756e7265636f676e697a65642073796e207061636b6167650000000000000000604482015290519081900360640190fd5b9392505050565b60015490565b6020818101516000908152600490915260409020546001600160a01b03165b919050565b600181565b61100181565b670de0b6b3a764000081565b606181565b600881565b66071afd498d000081565b61200081565b6000908152600460205260409020546001600160a01b031690565b6402540be40081565b600281565b6000805460ff16610ef9576040805162461bcd60e51b815260206004820152601960248201526000805160206147a8833981519152604482015290519081900360640190fd5b868514610f375760405162461bcd60e51b815260040180806020018281038252603b81526020018061471b603b913960400191505060405180910390fd5b868314610f755760405162461bcd60e51b815260040180806020018281038252603f8152602001806145ee603f913960400191505060405180910390fd5b426078018267ffffffffffffffff161015610fc15760405162461bcd60e51b81526004018080602001828103825260248152602001806144de6024913960400191505060405180910390fd5b6402540be4003406156110055760405162461bcd60e51b815260040180806020018281038252604081526020018061481e6040913960400191505060405180910390fd5b60408051868152602080880282010190915285906000908190606090848015611038578160200160208202803683370190505b50905060005b84811015611113576402540be4008b8b8381811061105857fe5b905060200201358161106657fe5b06156110a35760405162461bcd60e51b815260040180806020018281038252603c81526020018061462d603c913960400191505060405180910390fd5b6110c88b8b838181106110b257fe5b90506020020135856124a290919063ffffffff16565b93506110f46402540be4008c8c848181106110df57fe5b905060200201356124fc90919063ffffffff16565b82828151811061110057fe5b602090810291909101015260010161103e565b506001546111389061112b908663ffffffff61253e16565b849063ffffffff6124a216565b3410156111765760405162461bcd60e51b81526004018080602001828103825260568152602001806147c86056913960600191505060405180910390fd5b611186348463ffffffff61259716565b9150611190614337565b6040518060c001604052806221272160e91b60001b815260200160006001600160a01b031681526020018381526020018e8e808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505050908252506040805160208c810282810182019093528c82529283019290918d918d91829185019084908082843760009201919091525050509082525067ffffffffffffffff8916602090910152905061200063f7a251d76003611254846125d9565b611269876402540be40063ffffffff6124fc16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156112c75781810151838201526020016112af565b50505050905090810190601f1680156112f45780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561131557600080fd5b505af1158015611329573d6000803e3d6000fd5b505060408051600081523360208201528082018890526060810187905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a15060019c9b505050505050505050505050565b61100581565b60015481565b61100881565b600b81565b60005460ff166113e4576040805162461bcd60e51b815260206004820152601960248201526000805160206147a8833981519152604482015290519081900360640190fd5b33612000146114245760405162461bcd60e51b815260040180806020018281038252602f815260200180614756602f913960400191505060405180910390fd5b60ff8316600314156114745761146f82828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061289492505050565b6114e3565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a15b505050565b33611008146115285760405162461bcd60e51b81526004018080602001828103825260238152602001806147856023913960400191505060405180910390fd5b600083815260046020908152604080832080546001600160a01b039096166001600160a01b03199096168617905593825260038152838220949094556002909352912055565b600981565b677ce66c50e284000081565b6000805460ff166115c5576040805162461bcd60e51b815260206004820152601960248201526000805160206147a8833981519152604482015290519081900360640190fd5b33611005146116055760405162461bcd60e51b815260040180806020018281038252602f815260200180614451602f913960400191505060405180910390fd5b60004783106116145747611616565b825b9050670de0b6b3a76400008111156116325760009150506116b7565b80156116b4576040516001600160a01b0385169082156108fc029083906000818181858888f1935050505015801561166e573d6000803e3d6000fd5b50604080516001600160a01b03861681526020810183905281517ff8b71c64315fc33b2ead2adfa487955065152a8ac33d9d5193aafd7f45dc15a0929181900390910190a15b90505b92915050565b61100781565b61100681565b600081565b60005460ff1681565b600381565b6000805460ff16611722576040805162461bcd60e51b815260206004820152601960248201526000805160206147a8833981519152604482015290519081900360640190fd5b426078018267ffffffffffffffff16101561176e5760405162461bcd60e51b81526004018080602001828103825260248152602001806144de6024913960400191505060405180910390fd5b6402540be4003406156117b25760405162461bcd60e51b815260040180806020018281038252604081526020018061481e6040913960400191505060405180910390fd5b600080806001600160a01b038816611891576001546117d890879063ffffffff6124a216565b3410156118165760405162461bcd60e51b81526004018080602001828103825260618152602001806145686061913960800191505060405180910390fd5b6402540be40086061561185a5760405162461bcd60e51b815260040180806020018281038252603c81526020018061462d603c913960400191505060405180910390fd5b61186a348763ffffffff61259716565b9050611881866402540be40063ffffffff6124fc16565b6221272160e91b93509150611b34565b6001600160a01b0388166000908152600360205260409020549250826118e85760405162461bcd60e51b81526004018080602001828103825260318152602001806145376031913960400191505060405180910390fd5b6001543410156119295760405162461bcd60e51b815260040180806020018281038252603f81526020018061468a603f913960400191505060405180910390fd5b506001600160a01b038716600090815260026020526040902054349060088111158061197457506008811180156119745750611972876007198301600a0a63ffffffff6128f016565b155b6119af5760405162461bcd60e51b815260040180806020018281038252603c81526020018061462d603c913960400191505060405180910390fd5b6119b98782612932565b92506119c484612972565b15611a0c576305f5e100831015611a0c5760405162461bcd60e51b815260040180806020018281038252603a815260200180614480603a913960400191505060405180910390fd5b600881101580611a265750600881108015611a2657508683115b611a615760405162461bcd60e51b81526004018080602001828103825260258152602001806145c96025913960400191505060405180910390fd5b677ce66c50e2840000831115611aa85760405162461bcd60e51b81526004018080602001828103825260358152602001806145026035913960400191505060405180910390fd5b604080516323b872dd60e01b81523360048201523060248201526044810189905290516001600160a01b038b16916323b872dd9160648083019260209291908290030181600087803b158015611afd57600080fd5b505af1158015611b11573d6000803e3d6000fd5b505050506040513d6020811015611b2757600080fd5b5051611b3257600080fd5b505b611b3c614337565b6040805160c0810182528581526001600160a01b038b166020820152815160018082528184018452919283019181602001602082028036833750505081526040805160018082528183019092526020928301929091908083019080368337505050815260408051600180825281830190925260209283019290919080830190803683370190505081526020018767ffffffffffffffff168152509050828160400151600081518110611bea57fe5b602002602001018181525050878160600151600081518110611c0857fe5b60200260200101906001600160a01b031690816001600160a01b031681525050338160800151600081518110611c3a57fe5b6001600160a01b039092166020928302919091019091015261200063f7a251d76003611c65846125d9565b611c7a866402540be40063ffffffff6124fc16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611cd8578181015183820152602001611cc0565b50505050905090810190601f168015611d055780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015611d2657600080fd5b505af1158015611d3a573d6000803e3d6000fd5b5050604080516001600160a01b038d1681523360208201528082018b90526060810186905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a150600198975050505050505050565b3361100714611ddd5760405162461bcd60e51b815260040180806020018281038252602e8152602001806146c9602e913960400191505060405180910390fd5b60208114611e32576040805162461bcd60e51b815260206004820152601b60248201527f65787065637465642076616c7565206c656e6774682069732033320000000000604482015290519081900360640190fd5b606084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8801819004810282018101909252868152939450606093925086915085908190840183828082843760009201919091525050505060208301519091506772656c617946656560c01b811415611f3a576020820151670de0b6b3a76400008111801590611ee157506402540be4008106155b611f32576040805162461bcd60e51b815260206004820152601960248201527f7468652072656c6179466565206f7574206f662072616e676500000000000000604482015290519081900360640190fd5b600155611f77565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a878787876040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050505050565b336110081461204c5760405162461bcd60e51b81526004018080602001828103825260238152602001806147856023913960400191505060405180910390fd5b600091825260046020908152604080842080546001600160a01b03191690556001600160a01b0392909216835260039052812055565b6221272160e91b81565b61c35081565b60026020526000908152604090205481565b6001600160a01b031660009081526003602052604090205490565b61100281565b60005460ff1661210a576040805162461bcd60e51b815260206004820152601960248201526000805160206147a8833981519152604482015290519081900360640190fd5b336120001461214a5760405162461bcd60e51b815260040180806020018281038252602f815260200180614756602f913960400191505060405180910390fd5b60ff8316600314156114745761146f82828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612a7892505050565b61100381565b60005460ff16156121f3576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b66071afd498d000060019081556000808052600260205260127fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b55805460ff19169091179055565b600481565b600581565b61100081565b61271081565b6001600160a01b03811660009081526003602090815260409182902054825182815280840190935260609290918391906020820181803683375050506020810183905290506000805b60208160ff1610156122e157828160ff16815181106122b557fe5b01602001516001600160f81b031916156122d4576001909101906122d9565b6122e1565b60010161229a565b5060608160ff166040519080825280601f01601f191660200182016040528015612312576020820181803683370190505b50905060005b8260ff168160ff16101561236e57838160ff168151811061233557fe5b602001015160f81c60f81b828260ff168151811061234f57fe5b60200101906001600160f81b031916908160001a905350600101612318565b5095945050505050565b61100481565b6060612388614383565b600061239384612b76565b91509150806123e9576040805162461bcd60e51b815260206004820152601f60248201527f756e7265636f676e697a6564207472616e73666572496e207061636b61676500604482015290519081900360640190fd5b60006123f483612cb5565b905063ffffffff811615612488576040808401516020808601516001600160a01b0316600090815260029091529182205461242f9190612932565b90506124396143b8565b60405180608001604052808660000151815260200183815260200186608001516001600160a01b031681526020018463ffffffff16815250905061247c81613002565b95505050505050610e53565b50506040805160008152602081019091529150610e539050565b6000828201838110156116b4576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60006116b483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506130de565b60008261254d575060006116b7565b8282028284828161255a57fe5b04146116b45760405162461bcd60e51b81526004018080602001828103825260218152602001806146696021913960400191505060405180910390fd5b60006116b483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613180565b60408051600680825260e08201909252606091829190816020015b60608152602001906001900390816125f45750508351909150612616906131da565b8160008151811061262357fe5b602002602001018190525061264483602001516001600160a01b03166131ed565b8160018151811061265157fe5b60200260200101819052506000836040015151905060608160405190808252806020026020018201604052801561269c57816020015b60608152602001906001900390816126875790505b50905060005b828110156126e9576126ca866040015182815181106126bd57fe5b60200260200101516131da565b8282815181106126d657fe5b60209081029190910101526001016126a2565b506126f381613210565b8360028151811061270057fe5b602002602001018190525060608260405190808252806020026020018201604052801561274157816020015b606081526020019060019003908161272c5790505b50905060005b83811015612797576127788760600151828151811061276257fe5b60200260200101516001600160a01b03166131ed565b82828151811061278457fe5b6020908102919091010152600101612747565b506127a181613210565b846003815181106127ae57fe5b60200260200101819052506060836040519080825280602002602001820160405280156127ef57816020015b60608152602001906001900390816127da5790505b50905060005b8481101561282f576128108860800151828151811061276257fe5b82828151811061281c57fe5b60209081029190910101526001016127f5565b5061283981613210565b8560048151811061284657fe5b60200260200101819052506128688760a0015167ffffffffffffffff166131da565b8560058151811061287557fe5b602002602001018190525061288985613210565b979650505050505050565b61289c6143df565b60006128a78361329a565b91509150806128e75760405162461bcd60e51b81526004018080602001828103825260248152602001806146f76024913960400191505060405180910390fd5b6114e382613465565b60006116b483836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f00000000000000008152506138e9565b6000600882111561295b57612954836007198401600a0a63ffffffff6124fc16565b90506116b7565b6116b4836008849003600a0a63ffffffff61253e16565b604080516020808252818301909252600091606091906020820181803683375050506020810184905290506000805b60208160ff1610156129e857828160ff16815181106129bc57fe5b01602001516001600160f81b031916156129db576001909101906129e0565b6129e8565b6001016129a1565b50600760ff82161015612a0057600092505050610e53565b816005820360ff1681518110612a1257fe5b6020910101516001600160f81b031916602d60f81b14612a3757600092505050610e53565b816001820360ff1681518110612a4957fe5b6020910101516001600160f81b031916604d60f81b14612a6e57600092505050610e53565b5060019392505050565b612a80614337565b6000612a8b8361394b565b9150915080612acb5760405162461bcd60e51b81526004018080602001828103825260248152602001806144ba6024913960400191505060405180910390fd5b612ad36143df565b602080840180516001600160a01b0390811684526040808701518585015291511660009081526002909252812054905b846040015151811015612b5457612b3185604001518281518110612b2357fe5b602002602001015183613baf565b85604001518281518110612b4157fe5b6020908102919091010152600101612b03565b506080840151604083015260056060830152612b6f82613465565b5050505050565b612b7e614383565b6000612b88614383565b612b90614416565b612ba1612b9c86613be8565b613c0d565b90506000805b612bb083613c57565b15612ca85780612bd257612bcb612bc684613c78565b613cc6565b8452612ca0565b8060011415612bff57612bec612be784613c78565b613d7d565b6001600160a01b03166020850152612ca0565b8060021415612c1e57612c14612bc684613c78565b6040850152612ca0565b8060031415612c4657612c33612be784613c78565b6001600160a01b03166060850152612ca0565b8060041415612c6e57612c5b612be784613c78565b6001600160a01b03166080850152612ca0565b8060051415612c9b57612c83612bc684613c78565b67ffffffffffffffff1660a085015260019150612ca0565b612ca8565b600101612ba7565b5091935090915050915091565b60208101516000906001600160a01b0316612dec578160a0015167ffffffffffffffff16421115612ce857506001610e53565b8160400151471015612cfc57506003610e53565b606082015160408084015190516000926001600160a01b0316916127109184818181858888f193505050503d8060008114612d53576040519150601f19603f3d011682016040523d82523d6000602084013e612d58565b606091505b5050905080612d6b575060049050610e53565b7f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5983602001518460600151856040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a15060009050610e53565b8160a0015167ffffffffffffffff16421115612e0a57506001610e53565b81516020808401516001600160a01b031660009081526003909152604090205414612e3757506002610e53565b602080830151604080516370a0823160e01b815230600482015290516000936001600160a01b03909316926370a082319261c3509260248083019392829003018187803b158015612e8757600080fd5b5086fa158015612e9b573d6000803e3d6000fd5b50505050506040513d6020811015612eb257600080fd5b50516040840151909150811015612ecd575060039050610e53565b600083602001516001600160a01b031663a9059cbb61c350866060015187604001516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b158015612f3e57600080fd5b5087f1158015612f52573d6000803e3d6000fd5b50505050506040513d6020811015612f6957600080fd5b505190508015612ff6577f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5984602001518560600151866040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a15060009150610e539050565b5060059150610e539050565b60408051600480825260a08201909252606091829190816020015b606081526020019060019003908161301d575050835190915061303f906131da565b8160008151811061304c57fe5b602002602001018190525061306483602001516131da565b8160018151811061307157fe5b602002602001018190525061309283604001516001600160a01b03166131ed565b8160028151811061309f57fe5b60200260200101819052506130bd836060015163ffffffff166131da565b816003815181106130ca57fe5b6020026020010181905250610e2781613210565b6000818361316a5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561312f578181015183820152602001613117565b50505050905090810190601f16801561315c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161317657fe5b0495945050505050565b600081848411156131d25760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561312f578181015183820152602001613117565b505050900390565b60606116b76131e883613d97565b613e7d565b60408051600560a21b8318601482015260348101909152606090610e2781613e7d565b60608151600014156132315750604080516000815260208101909152610e53565b60608260008151811061324057fe5b602002602001015190506000600190505b8351811015613281576132778285838151811061326a57fe5b6020026020010151613ecf565b9150600101613251565b50610e27613294825160c060ff16613f4c565b82613ecf565b6132a26143df565b60006132ac6143df565b6132b4614416565b6132c0612b9c86613be8565b90506000805b6132cf83613c57565b15612ca857806132f5576132e5612be784613c78565b6001600160a01b0316845261345d565b806001141561339657606061331161330c85613c78565b614044565b9050805160405190808252806020026020018201604052801561333e578160200160208202803683370190505b50602086015260005b815181101561338f5761336c82828151811061335f57fe5b6020026020010151613cc6565b8660200151828151811061337c57fe5b6020908102919091010152600101613347565b505061345d565b80600214156134385760606133ad61330c85613c78565b905080516040519080825280602002602001820160405280156133da578160200160208202803683370190505b50604086015260005b815181101561338f576134088282815181106133fb57fe5b6020026020010151613d7d565b8660400151828151811061341857fe5b6001600160a01b03909216602092830291909101909101526001016133e3565b8060031415612c9b5761344d612bc684613c78565b63ffffffff166060850152600191505b6001016132c6565b80516001600160a01b031661368f5760005b8160200151518110156136895760008260400151828151811061349657fe5b60200260200101516001600160a01b0316612710846020015184815181106134ba57fe5b60209081029190910101516040516000818181858888f193505050503d8060008114613502576040519150601f19603f3d011682016040523d82523d6000602084013e613507565b606091505b50509050806135ca577f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061354657fe5b60200260200101518560200151858151811061355e57fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a1613680565b7fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a83600001518460400151848151811061360057fe5b60200260200101518560200151858151811061361857fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b50600101613477565b506138e6565b60005b8160200151518110156138e457600082600001516001600160a01b031663a9059cbb61c350856040015185815181106136c757fe5b6020026020010151866020015186815181106136df57fe5b60200260200101516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b15801561373657600080fd5b5087f115801561374a573d6000803e3d6000fd5b50505050506040513d602081101561376157600080fd5b505190508015613825577fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a8360000151846040015184815181106137a157fe5b6020026020010151856020015185815181106137b957fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a16138db565b7f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061385b57fe5b60200260200101518560200151858151811061387357fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b50600101613692565b505b50565b600081836139385760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561312f578181015183820152602001613117565b5082848161394257fe5b06949350505050565b613953614337565b600061395d614337565b613965614416565b613971612b9c86613be8565b90506000805b61398083613c57565b15612ca8578061399d57613996612bc684613c78565b8452613ba7565b80600114156139c5576139b2612be784613c78565b6001600160a01b03166020850152613ba7565b8060021415613a545760606139dc61330c85613c78565b90508051604051908082528060200260200182016040528015613a09578160200160208202803683370190505b50604086015260005b8151811015613a4d57613a2a82828151811061335f57fe5b86604001518281518110613a3a57fe5b6020908102919091010152600101613a12565b5050613ba7565b8060031415613ae9576060613a6b61330c85613c78565b90508051604051908082528060200260200182016040528015613a98578160200160208202803683370190505b50606086015260005b8151811015613a4d57613ab98282815181106133fb57fe5b86606001518281518110613ac957fe5b6001600160a01b0390921660209283029190910190910152600101613aa1565b8060041415613b7e576060613b0061330c85613c78565b90508051604051908082528060200260200182016040528015613b2d578160200160208202803683370190505b50608086015260005b8151811015613a4d57613b4e8282815181106133fb57fe5b86608001518281518110613b5e57fe5b6001600160a01b0390921660209283029190910190910152600101613b36565b8060051415612c9b57613b93612bc684613c78565b67ffffffffffffffff1660a0850152600191505b600101613977565b60006008821115613bd157612954836007198401600a0a63ffffffff61253e16565b6116b4836008849003600a0a63ffffffff6124fc16565b613bf0614436565b506040805180820190915281518152602082810190820152919050565b613c15614416565b613c1e82614115565b613c2757600080fd5b6000613c368360200151614145565b60208085015160408051808201909152868152920190820152915050919050565b6000613c61614436565b505080518051602091820151919092015191011190565b613c80614436565b613c8982613c57565b613c9257600080fd5b60208201516000613ca2826141a8565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590613cdb57508151602110155b613ce457600080fd5b6000613cf38360200151614145565b90508083600001511015613d4e576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015613d7457826020036101000a820491505b50949350505050565b8051600090601514613d8e57600080fd5b6116b782613cc6565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416613ddb57506018613dff565b6fffffffffffffffffffffffffffffffff198416613dfb57506010613dff565b5060005b6020811015613e3557818181518110613e1457fe5b01602001516001600160f81b03191615613e2d57613e35565b600101613dff565b60008160200390506060816040519080825280601f01601f191660200182016040528015613e6a576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015613eaf5750607f60f81b82600081518110613e9d57fe5b01602001516001600160f81b03191611155b15613ebb575080610e53565b6116b7613ecd8351608060ff16613f4c565b835b6060806040519050835180825260208201818101602087015b81831015613f00578051835260209283019201613ee8565b50855184518101855292509050808201602086015b81831015613f2d578051835260209283019201613f15565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310613f9c576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b60408051600180825281830190925260609160208201818036833701905050905060378411613ff65782840160f81b81600081518110613fd857fe5b60200101906001600160f81b031916908160001a90535090506116b7565b606061400185613d97565b90508381510160370160f81b8260008151811061401a57fe5b60200101906001600160f81b031916908160001a90535061403b8282613ecf565b95945050505050565b606061404f82614115565b61405857600080fd5b6000614063836142db565b90506060816040519080825280602002602001820160405280156140a157816020015b61408e614436565b8152602001906001900390816140865790505b50905060006140b38560200151614145565b60208601510190506000805b8481101561410a576140d0836141a8565b91506040518060400160405280838152602001848152508482815181106140f357fe5b6020908102919091010152918101916001016140bf565b509195945050505050565b805160009061412657506000610e53565b6020820151805160001a9060c0821015612a6e57600092505050610e53565b8051600090811a608081101561415f576000915050610e53565b60b881108061417a575060c0811080159061417a575060f881105b15614189576001915050610e53565b60c081101561419d5760b519019050610e53565b60f519019050610e53565b80516000908190811a60808110156141c357600191506142d4565b60b88110156141d857607e19810191506142d4565b60c081101561425257600060b78203600186019550806020036101000a86510491506001810182019350508083101561424c576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b506142d4565b60f88110156142675760be19810191506142d4565b600060f78203600186019550806020036101000a8651049150600181018201935050808310156142d2576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b80516000906142ec57506000610e53565b600080905060006143008460200151614145565b602085015185519181019250015b8082101561432e5761431f826141a8565b6001909301929091019061430e565b50909392505050565b6040518060c001604052806000801916815260200160006001600160a01b03168152602001606081526020016060815260200160608152602001600067ffffffffffffffff1681525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b60408051608081018252600080825260208201819052918101829052606081019190915290565b604051806080016040528060006001600160a01b031681526020016060815260200160608152602001600063ffffffff1681525090565b6040518060400160405280614429614436565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe746865206d6573736167652073656e646572206d75737420626520696e63656e746976697a6520636f6e7472616374466f72206d696e69546f6b656e2c20746865207472616e7366657220616d6f756e74206d757374206e6f74206265206c657373207468616e2031756e7265636f676e697a6564207472616e736665724f75742073796e207061636b61676565787069726554696d65206d7573742062652074776f206d696e75746573206c61746572616d6f756e7420697320746f6f206c617267652c20657863656564206d6178696d756d206265703220746f6b656e20616d6f756e7474686520636f6e747261637420686173206e6f74206265656e20626f756e6420746f20616e79206265703220746f6b656e726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e736665724f757420424e4220616d6f756e7420616e64206d696e696d756d2072656c6179466565616d6f756e7420697320746f6f206c617267652c2075696e74323536206f766572666c6f774c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620726566756e644164647273696e76616c6964207472616e7366657220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e20746865206d696e696d756d2072656c6179466565746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374756e7265636f676e697a6564207472616e736665724f75742061636b207061636b6167654c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620616d6f756e7473746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d73672073656e646572206d75737420626520746f6b656e4d616e6167657274686520636f6e7472616374206e6f7420696e69742079657400000000000000726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e7366657220424e4220616d6f756e7420616e642072656c6179466565696e76616c696420726563656976656420424e4220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6ea2646970667358221220835eacc2107a8d1718a0f05e56e1f7d7731256afbbcfccbe6551048c3c72819b64736f6c63430006040033" + }, + "0x0000000000000000000000000000000000001005": { + "balance": "0x0", + "code": "0x6080604052600436106102815760003560e01c8063930e1b091161014f578063bd4cc830116100c1578063e75d72c71161007a578063e75d72c7146107b5578063e89a3020146107e8578063f9a2bbc714610812578063fc3e590814610827578063fd6a68791461083c578063fdd31fcd1461085157610288565b8063bd4cc83014610722578063c81b16621461074c578063d0ab528a14610761578063dc927faf14610776578063dcae76ab1461078b578063e1c7392a146107a057610288565b8063a78abc1611610113578063a78abc16146105d3578063a7c6a59d146105e8578063ab51bb96146105fd578063ac43175114610612578063ace9fcc2146106e3578063af400681146106f857610288565b8063930e1b091461054c57806396713da91461057f5780639dc0926214610594578063a1a11bf5146105a9578063a3c3c0ad146105be57610288565b806343756e5c116101f35780636f93d2e6116101ac5780636f93d2e61461048457806370fd5bad146104e357806374f2272d146104f857806375d47a0a1461050d5780637942fd05146105225780637e146cc51461053757610288565b806343756e5c146103ef578063493279b1146104045780634bf6c8821461043057806351e8067214610445578063541333071461045a5780636e47b4821461046f57610288565b806312950c461161024557806312950c46146103215780631b20087c146103365780631c6433121461034b5780633a9756121461028d5780633dffc3871461039157806340bb43c0146103bc57610288565b8063081e9d131461028d57806308f2ec06146102b4578063093f2fc4146102c95780630bee7a67146102de57806310e06a761461030c57610288565b3661028857005b600080fd5b34801561029957600080fd5b506102a2610884565b60408051918252519081900360200190f35b3480156102c057600080fd5b506102a2610889565b3480156102d557600080fd5b506102a261088e565b3480156102ea57600080fd5b506102f3610893565b6040805163ffffffff9092168252519081900360200190f35b34801561031857600080fd5b506102a2610898565b34801561032d57600080fd5b506102a261089e565b34801561034257600080fd5b506102a26108a4565b34801561035757600080fd5b506103756004803603602081101561036e57600080fd5b50356108aa565b604080516001600160a01b039092168252519081900360200190f35b34801561039d57600080fd5b506103a6610884565b6040805160ff9092168252519081900360200190f35b3480156103c857600080fd5b506102a2600480360360208110156103df57600080fd5b50356001600160a01b03166108d1565b3480156103fb57600080fd5b506103756108e3565b34801561041057600080fd5b506104196108e9565b6040805161ffff9092168252519081900360200190f35b34801561043c57600080fd5b506103a66108ee565b34801561045157600080fd5b506103756108f3565b34801561046657600080fd5b506102a2610893565b34801561047b57600080fd5b506103756108f9565b34801561049057600080fd5b506104cf600480360360808110156104a757600080fd5b506001600160a01b0381358116916020810135909116906040810135906060013515156108ff565b604080519115158252519081900360200190f35b3480156104ef57600080fd5b506103a6610d91565b34801561050457600080fd5b506102a2610d96565b34801561051957600080fd5b50610375610d9c565b34801561052e57600080fd5b506103a6610da2565b34801561054357600080fd5b506102a2610da7565b34801561055857600080fd5b506102a26004803603602081101561056f57600080fd5b50356001600160a01b0316610dac565b34801561058b57600080fd5b506103a6610dbe565b3480156105a057600080fd5b50610375610dc3565b3480156105b557600080fd5b50610375610dc9565b3480156105ca57600080fd5b506102a2610dcf565b3480156105df57600080fd5b506104cf610dd5565b3480156105f457600080fd5b506102a2610dde565b34801561060957600080fd5b506102f3610de4565b34801561061e57600080fd5b506106e16004803603604081101561063557600080fd5b81019060208101813564010000000081111561065057600080fd5b82018360208201111561066257600080fd5b8035906020019184600183028401116401000000008311171561068457600080fd5b9193909290916020810190356401000000008111156106a257600080fd5b8201836020820111156106b457600080fd5b803590602001918460018302840111640100000000831117156106d657600080fd5b509092509050610de9565b005b3480156106ef57600080fd5b506102a2611537565b34801561070457600080fd5b506102a26004803603602081101561071b57600080fd5b503561153d565b34801561072e57600080fd5b506102a26004803603602081101561074557600080fd5b5035611598565b34801561075857600080fd5b506103756115b1565b34801561076d57600080fd5b506102a26115b7565b34801561078257600080fd5b506103756115bd565b34801561079757600080fd5b506102a26115c3565b3480156107ac57600080fd5b506106e16115c9565b3480156107c157600080fd5b506106e1600480360360208110156107d857600080fd5b50356001600160a01b0316611692565b3480156107f457600080fd5b506103756004803603602081101561080b57600080fd5b50356117eb565b34801561081e57600080fd5b506103756117f8565b34801561083357600080fd5b506103a66117fe565b34801561084857600080fd5b50610375611803565b34801561085d57600080fd5b506102a26004803603602081101561087457600080fd5b50356001600160a01b0316611809565b600181565b602881565b605081565b606481565b600b5481565b60015481565b600c5481565b600681815481106108b757fe5b6000918252602090912001546001600160a01b0316905081565b60076020526000908152604090205481565b61100181565b606181565b600881565b61200081565b61100581565b6000805460ff16610957576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604482015290519081900360640190fd5b33612000146109975760405162461bcd60e51b815260040180806020018281038252602f815260200180612377602f913960400191505060405180910390fd5b60008215610a4a576110026001600160a01b0316639a99b4f06110056109c8600e548861181b90919063ffffffff16565b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015610a1757600080fd5b505af1158015610a2b573d6000803e3d6000fd5b505050506040513d6020811015610a4157600080fd5b50519050610b59565b604080516309a99b4f60e41b8152611005600482015260248101869052905161100491639a99b4f09160448083019260209291908290030181600087803b158015610a9457600080fd5b505af1158015610aa8573d6000803e3d6000fd5b505050506040513d6020811015610abe57600080fd5b5051600e5490915015610b5957600e54604080516309a99b4f60e41b81526110056004820152602481019290925251610b569161100291639a99b4f0916044808201926020929091908290030181600087803b158015610b1d57600080fd5b505af1158015610b31573d6000803e3d6000fd5b505050506040513d6020811015610b4757600080fd5b5051829063ffffffff61181b16565b90505b600c805460010190556000610b6d8261187e565b600954909150610b83908263ffffffff61181b16565b600955600a54610bab908290610b9f908563ffffffff61181b16565b9063ffffffff6118a716565b600a556001600160a01b038716600090815260056020526040902054610c1757600680546001810182556000919091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319166001600160a01b0389161790555b6001600160a01b038088166000908152600560209081526040808320805460010190559289168252600790522054610c9557600880546001810182556000919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319166001600160a01b0388161790555b6001600160a01b038616600090815260076020526040902080546001019055600c54606411610d8457600b54600954600a5460408051938452602084019290925282820152517f2649b1b772a1a74bd332a67695e285317dd722941166595741c60a00fa65bb759181900360600190a16000610d0f6118e9565b90506000610d1b611bcd565b6001600160a01b0389166000908152600d6020526040902054909150610d59908290610d4d908563ffffffff61181b16565b9063ffffffff61181b16565b6001600160a01b0389166000908152600d6020526040812091909155600b80546001019055600c5550505b5060019695505050505050565b600281565b60035481565b61100881565b600b81565b600581565b60056020526000908152604090205481565b600981565b61100781565b61100681565b600a5481565b60005460ff1681565b60045481565b600081565b3361100714610e295760405162461bcd60e51b815260040180806020018281038252602e8152602001806122bc602e913960400191505060405180910390fd5b60005460ff16610e6a5760405162461bcd60e51b81526004018080602001828103825260218152602001806122ea6021913960400191505060405180910390fd5b610ede84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601f81527f68656164657252656c61796572526577617264526174654d6f6c6563756c650060208201529150611e4b9050565b15610fab5760208114610f225760405162461bcd60e51b81526004018080602001828103825260328152602001806123a66032913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610f6091858580838501838280828437600092019190915250611f3292505050565b9050600254811115610fa35760405162461bcd60e51b81526004018080602001828103825260608152602001806121956060913960600191505060405180910390fd5b6001556114a5565b61100484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051606081019091526022808252909250905061229a6020830139611e4b565b156110dc57602081146110485760405162461bcd60e51b815260040180806020018281038252602e81526020018061224b602e913960400191505060405180910390fd5b604080516020601f840181900481028201810190925282815260009161108691858580838501838280828437600092019190915250611f3292505050565b9050801580159061109957506001548110155b6110d45760405162461bcd60e51b815260040180806020018281038252606c81526020018061230b606c913960800191505060405180910390fd5b6002556114a5565b61115084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601a81527f63616c6c6572436f6d70656e736174696f6e4d6f6c6563756c6500000000000060208201529150611e4b9050565b1561121d57602081146111945760405162461bcd60e51b815260040180806020018281038252602e81526020018061224b602e913960400191505060405180910390fd5b604080516020601f84018190048102820181019092528281526000916111d291858580838501838280828437600092019190915250611f3292505050565b90506004548111156112155760405162461bcd60e51b81526004018080602001828103825260568152602001806121f56056913960600191505060405180910390fd5b6003556114a5565b61129184848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601d81527f63616c6c6572436f6d70656e736174696f6e44656e6f6d696e61746f7200000060208201529150611e4b9050565b1561136957602081146112d55760405162461bcd60e51b815260040180806020018281038252602e81526020018061224b602e913960400191505060405180910390fd5b604080516020601f840181900481028201810190925282815260009161131391858580838501838280828437600092019190915250611f3292505050565b9050801580159061132657506003548110155b6113615760405162461bcd60e51b81526004018080602001828103825260618152602001806121066061913960800191505060405180910390fd5b6004556114a5565b6113dd84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601b81527f64796e616d69634578747261496e63656e74697665416d6f756e74000000000060208201529150611e4b9050565b1561146857602081146114215760405162461bcd60e51b815260040180806020018281038252602e815260200180612167602e913960400191505060405180910390fd5b604080516020601f840181900481028201810190925282815260009161145f91858580838501838280828437600092019190915250611f3292505050565b600e55506114a5565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b60025481565b60006028821161154e575080611593565b81602810801561155f575060508211155b1561156c57506028611593565b60508211801561157d5750606e8211155b1561158d57506078819003611593565b50600481045b919050565b6000602882116115a9575080611593565b506028611593565b61100281565b600e5481565b61100381565b60095481565b60005460ff1615611621576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b60005460ff161561166f576040805162461bcd60e51b8152602060048201526013602482015272185b1c9958591e481a5b9a5d1a585b1a5e9959606a1b604482015290519081900360640190fd5b60018080556005600255600381905560506004556000805460ff19169091179055565b6001600160a01b0381166000908152600d6020526040902054806116f1576040805162461bcd60e51b81526020600482015260116024820152701b9bc81c995b185e595c881c995dd85c99607a1b604482015290519081900360640190fd5b6001600160a01b0382166000818152600d60205260408082208290555184929184156108fc02918591818181858888f193505050506117a15760405161100290819084156108fc029085906000818181858888f1935050505015801561175b573d6000803e3d6000fd5b506040805161100281526020810185905281517f24502838a334c8f2bb2ee1f8262a4fa7183e4489a717e96cc824e325f8b39e11929181900390910190a15050506117e8565b604080516001600160a01b03851681526020810184905281517f24502838a334c8f2bb2ee1f8262a4fa7183e4489a717e96cc824e325f8b39e11929181900390910190a150505b50565b600881815481106108b757fe5b61100081565b600381565b61100481565b600d6020526000908152604090205481565b600082820183811015611875576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b90505b92915050565b600061187860025461189b60015485611f3790919063ffffffff16565b9063ffffffff611f9016565b600061187583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611fd2565b600954600680546040805160208084028201810190925282815260009493859360609383018282801561194557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611927575b5050505050905060608151604051908082528060200260200182016040528015611979578160200160208202803683370190505b50905060005b8251811015611a0657600083828151811061199657fe5b6020026020010151905060006119d060056000846001600160a01b03166001600160a01b0316815260200190815260200160002054611598565b9050808484815181106119df57fe5b60209081029190910101526119fa868263ffffffff61181b16565b9550505060010161197f565b506000611a2460045461189b60035488611f3790919063ffffffff16565b9050611a36858263ffffffff6118a716565b94508460015b8451811015611b0d576000611a718761189b8a888681518110611a5b57fe5b6020026020010151611f3790919063ffffffff16565b9050611abe81600d6000898681518110611a8757fe5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205461181b90919063ffffffff16565b600d6000888581518110611ace57fe5b6020908102919091018101516001600160a01b0316825281019190915260400160002055611b02838263ffffffff6118a716565b925050600101611a3c565b50611b2381600d600087600081518110611a8757fe5b600d600086600081518110611b3457fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002081905550600060098190555060008090505b8451811015611bb55760056000868381518110611b8757fe5b6020908102919091018101516001600160a01b03168252810191909152604001600090812055600101611b6e565b50611bc2600660006120ce565b509450505050505b90565b600a546008805460408051602080840282018101909252828152600094938593606093830182828015611c2957602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611c0b575b5050505050905060608151604051908082528060200260200182016040528015611c5d578160200160208202803683370190505b50905060005b8251811015611cdc576000838281518110611c7a57fe5b602002602001015190506000611cb460076000846001600160a01b03166001600160a01b031681526020019081526020016000205461153d565b905080848481518110611cc357fe5b6020908102919091010152949094019350600101611c63565b506000611cfa60045461189b60035488611f3790919063ffffffff16565b9050611d0c858263ffffffff6118a716565b94508460015b8451811015611d96576000611d318761189b8a888681518110611a5b57fe5b9050611d4781600d6000898681518110611a8757fe5b600d6000888581518110611d5757fe5b6020908102919091018101516001600160a01b0316825281019190915260400160002055611d8b838263ffffffff6118a716565b925050600101611d12565b50611dac81600d600087600081518110611a8757fe5b600d600086600081518110611dbd57fe5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020819055506000600a8190555060008090505b8451811015611e3e5760076000868381518110611e1057fe5b6020908102919091018101516001600160a01b03168252810191909152604001600090812055600101611df7565b50611bc2600860006120ce565b6000816040516020018082805190602001908083835b60208310611e805780518252601f199092019160209182019101611e61565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310611eee5780518252601f199092019160209182019101611ecf565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b600082611f4657506000611878565b82820282848281611f5357fe5b04146118755760405162461bcd60e51b81526004018080602001828103825260218152602001806122796021913960400191505060405180910390fd5b600061187583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612069565b600081848411156120615760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561202657818101518382015260200161200e565b50505050905090810190601f1680156120535780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600081836120b85760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561202657818101518382015260200161200e565b5060008385816120c457fe5b0495945050505050565b50805460008255906000526020600020908101906117e89190611bca91905b8082111561210157600081556001016120ed565b509056fe746865206e657743616c6c6572436f6d70656e736174696f6e44656e6f6d696e61746f72206d757374206e6f74206265207a65726f20616e64206e6f206c657373207468616e2063616c6c6572436f6d70656e736174696f6e4d6f6c6563756c656c656e677468206f662064796e616d69634578747261496e63656e74697665416d6f756e74206d69736d617463686e65772068656164657252656c61796572526577617264526174654d6f6c6563756c652073686f756c646e27742062652067726561746572207468616e2068656164657252656c617965725265776172645261746544656e6f6d696e61746f726e65772063616c6c6572436f6d70656e736174696f6e4d6f6c6563756c652073686f756c646e27742062652067726561746572207468616e2063616c6c6572436f6d70656e736174696f6e44656e6f6d696e61746f726c656e677468206f6620726577617264466f7256616c696461746f725365744368616e6765206d69736d61746368536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7768656164657252656c617965725265776172645261746544656e6f6d696e61746f72746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374636f6e747261637420686173206e6f74206265656e20696e697469616c697a6564746865206e65772068656164657252656c617965725265776172645261746544656e6f6d696e61746f72206d757374206e6f74206265207a65726f20616e64206e6f206c657373207468616e2068656164657252656c61796572526577617264526174654d6f6c6563756c65746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e74726163746c656e677468206f662068656164657252656c61796572526577617264526174654d6f6c6563756c65206d69736d61746368a2646970667358221220627dba6e536686005f0eaa9f77c130ba330278d37049b690a78442862109871c64736f6c63430006040033" + } + }, + "13837000": { + "0x0000000000000000000000000000000000001000": { + "balance": "0x0", + "code": "0x6080604052600436106102e45760003560e01c80638624988211610190578063c8509d81116100dc578063eb57e20211610095578063f9a2bbc71161006f578063f9a2bbc714610a54578063fc3e590814610a69578063fccc281314610a7e578063fd6a687914610a93576102e4565b8063eb57e202146109e6578063eda5868c14610a19578063f340fa0114610a2e576102e4565b8063c8509d81146106d8578063d86222d51461097d578063daacdb6614610992578063dc927faf146109a7578063e086c7b1146109bc578063e1c7392a146109d1576102e4565b8063aaf5eb6811610149578063ad3c9da611610123578063ad3c9da6146108d0578063b7ab4db514610903578063bf9f4995146104c0578063c81b166214610968576102e4565b8063aaf5eb68146107db578063ab51bb96146107f0578063ac43175114610805576102e4565b8063862498821461075d57806396713da9146107725780639dc0926214610787578063a1a11bf51461079c578063a5422d5c146107b1578063a78abc16146107c6576102e4565b806351e806721161024f57806370fd5bad116102085780637942fd05116101e25780637942fd05146106ae57806381650b62146106c3578063831d65d1146106d8578063853230aa14610699576102e4565b806370fd5bad1461066f57806375d47a0a1461068457806378dfed4a14610699576102e4565b806351e8067214610572578063565c56b3146105875780635667515a146105ba5780635d77156c146105cf5780636969a25c146105e45780636e47b4821461065a576102e4565b80633de0f0d8116102a15780633de0f0d8146104ab5780633dffc387146104c057806343756e5c146104eb578063493279b11461051c5780634bf6c882146105485780635192c82c1461055d576102e4565b80630bee7a67146102e95780631182b87514610317578063152ad3b8146104115780631ff180691461043a578063219f22d51461046157806335409f7f14610476575b600080fd5b3480156102f557600080fd5b506102fe610aa8565b6040805163ffffffff9092168252519081900360200190f35b34801561032357600080fd5b5061039c6004803603604081101561033a57600080fd5b60ff8235169190810190604081016020820135600160201b81111561035e57600080fd5b82018360208201111561037057600080fd5b803590602001918460018302840111600160201b8311171561039157600080fd5b509092509050610aad565b6040805160208082528351818301528351919283929083019185019080838360005b838110156103d65781810151838201526020016103be565b50505050905090810190601f1680156104035780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561041d57600080fd5b50610426610c9a565b604080519115158252519081900360200190f35b34801561044657600080fd5b5061044f610ca3565b60408051918252519081900360200190f35b34801561046d57600080fd5b506102fe610ca9565b34801561048257600080fd5b506104a96004803603602081101561049957600080fd5b50356001600160a01b0316610cae565b005b3480156104b757600080fd5b5061044f610fc2565b3480156104cc57600080fd5b506104d5610fc8565b6040805160ff9092168252519081900360200190f35b3480156104f757600080fd5b50610500610fcd565b604080516001600160a01b039092168252519081900360200190f35b34801561052857600080fd5b50610531610fd3565b6040805161ffff9092168252519081900360200190f35b34801561055457600080fd5b506104d5610fd8565b34801561056957600080fd5b5061044f610fdd565b34801561057e57600080fd5b50610500610fe3565b34801561059357600080fd5b5061044f600480360360208110156105aa57600080fd5b50356001600160a01b0316610fe9565b3480156105c657600080fd5b506104d561103b565b3480156105db57600080fd5b506102fe611040565b3480156105f057600080fd5b5061060e6004803603602081101561060757600080fd5b5035611045565b604080516001600160a01b039788168152958716602087015293909516848401526001600160401b0390911660608401521515608083015260a082019290925290519081900360c00190f35b34801561066657600080fd5b506105006110a9565b34801561067b57600080fd5b506104d56110af565b34801561069057600080fd5b506105006110b4565b3480156106a557600080fd5b5061044f6110ba565b3480156106ba57600080fd5b506104d56110c0565b3480156106cf57600080fd5b506102fe6110c5565b3480156106e457600080fd5b506104a9600480360360408110156106fb57600080fd5b60ff8235169190810190604081016020820135600160201b81111561071f57600080fd5b82018360208201111561073157600080fd5b803590602001918460018302840111600160201b8311171561075257600080fd5b5090925090506110ca565b34801561076957600080fd5b5061044f61117d565b34801561077e57600080fd5b506104d5611183565b34801561079357600080fd5b50610500611188565b3480156107a857600080fd5b5061050061118e565b3480156107bd57600080fd5b5061039c611194565b3480156107d257600080fd5b506104266111b3565b3480156107e757600080fd5b5061044f6111bc565b3480156107fc57600080fd5b506102fe61103b565b34801561081157600080fd5b506104a96004803603604081101561082857600080fd5b810190602081018135600160201b81111561084257600080fd5b82018360208201111561085457600080fd5b803590602001918460018302840111600160201b8311171561087557600080fd5b919390929091602081019035600160201b81111561089257600080fd5b8201836020820111156108a457600080fd5b803590602001918460018302840111600160201b831117156108c557600080fd5b5090925090506111c5565b3480156108dc57600080fd5b5061044f600480360360208110156108f357600080fd5b50356001600160a01b03166115bc565b34801561090f57600080fd5b506109186115ce565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561095457818101518382015260200161093c565b505050509050019250505060405180910390f35b34801561097457600080fd5b506105006116f4565b34801561098957600080fd5b5061044f6116fa565b34801561099e57600080fd5b5061044f611706565b3480156109b357600080fd5b5061050061170c565b3480156109c857600080fd5b5061044f611712565b3480156109dd57600080fd5b506104a9611717565b3480156109f257600080fd5b506104a960048036036020811015610a0957600080fd5b50356001600160a01b031661191a565b348015610a2557600080fd5b506102fe611ae9565b6104a960048036036020811015610a4457600080fd5b50356001600160a01b0316611aee565b348015610a6057600080fd5b50610500611df3565b348015610a7557600080fd5b506104d5611df9565b348015610a8a57600080fd5b50610500611dfe565b348015610a9f57600080fd5b50610500611e04565b606481565b60005460609060ff16610b03576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b3361200014610b435760405162461bcd60e51b815260040180806020018281038252602f81526020018061450d602f913960400191505060405180910390fd5b610b4b614158565b6000610b8c85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611e0a92505050565b9150915080610ba857610b9f6064611f63565b92505050610c93565b815160009060ff16610bc857610bc18360200151611fc4565b9050610c5f565b825160ff1660011415610c5b57826020015151600114610c35577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb26040518080602001828103825260258152602001806144316025913960400191505060405180910390a1506067610c56565b610bc18360200151600081518110610c4957fe5b6020026020010151612dca565b610c5f565b5060655b63ffffffff8116610c845750506040805160008152602081019091529150610c939050565b610c8d81611f63565b93505050505b9392505050565b60075460ff1681565b60035481565b606881565b3361100114610cee5760405162461bcd60e51b81526004018080602001828103825260298152602001806145696029913960400191505060405180910390fd5b6001600160a01b03811660009081526004602052604090205480610d125750610fbf565b600181039050600060018281548110610d2757fe5b60009182526020909120600360049092020101546001549091506000190180610d7657600060018481548110610d5957fe5b906000526020600020906004020160030181905550505050610fbf565b6040805183815290516001600160a01b038616917f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a70919081900360200190a26001600160a01b038416600090815260046020526040812055600154600019018314610ef857600180546000198101908110610ded57fe5b906000526020600020906004020160018481548110610e0857fe5b6000918252602082208354600492830290910180546001600160a01b03199081166001600160a01b0393841617825560018087015481840180548416918616919091179055600280880180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b199094169390931790556003948501549401939093558254868401939192919087908110610ecd57fe5b600091825260208083206004909202909101546001600160a01b031683528201929092526040019020555b6001805480610f0357fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b03191690556003018190559155818381610f5657fe5b0490508015610fba5760015460005b81811015610fb7578260018281548110610f7b57fe5b9060005260206000209060040201600301540160018281548110610f9b57fe5b6000918252602090912060036004909202010155600101610f65565b50505b505050505b50565b61271081565b600181565b61100181565b606181565b600881565b60065481565b61200081565b6001600160a01b03811660009081526004602052604081205480611011576000915050611036565b60018082038154811061102057fe5b9060005260206000209060040201600301549150505b919050565b600081565b606781565b6001818154811061105257fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b61100881565b6103e881565b600b81565b606681565b336120001461110a5760405162461bcd60e51b815260040180806020018281038252602f81526020018061450d602f913960400191505060405180910390fd5b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a1505050565b60025481565b600981565b61100781565b61100681565b604051806101e001604052806101ab81526020016141e06101ab913981565b60005460ff1681565b6402540be40081565b60005460ff16611218576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b33611007146112585760405162461bcd60e51b815260040180806020018281038252602e815260200180614477602e913960400191505060405180910390fd5b6112c284848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b60208201529150612f419050565b1561139d57602081146113065760405162461bcd60e51b81526004018080602001828103825260268152602001806144c66026913960400191505060405180910390fd5b604080516020601f84018190048102820181019092528281526000916113449185858083850183828082843760009201919091525061302992505050565b90506064811015801561135a5750620186a08111155b6113955760405162461bcd60e51b815260040180806020018281038252602781526020018061440a6027913960400191505060405180910390fd5b60025561152a565b6113fd84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260098152686275726e526174696f60b81b60208201529150612f419050565b156114ed5760208114611457576040805162461bcd60e51b815260206004820152601c60248201527f6c656e677468206f66206275726e526174696f206d69736d6174636800000000604482015290519081900360640190fd5b604080516020601f84018190048102820181019092528281526000916114959185858083850183828082843760009201919091525061302992505050565b90506127108111156114d85760405162461bcd60e51b815260040180806020018281038252602b8152602001806143b4602b913960400191505060405180910390fd5b6006556007805460ff1916600117905561152a565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b60046020526000908152604090205481565b6001546060906000805b8281101561161f57600181815481106115ed57fe5b9060005260206000209060040201600201601c9054906101000a900460ff16611617576001909101905b6001016115d8565b5060608160405190808252806020026020018201604052801561164c578160200160208202803683370190505b50600092509050815b838110156116ec576001818154811061166a57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166116e4576001818154811061169a57fe5b600091825260209091206004909102015482516001600160a01b03909116908390859081106116c557fe5b6001600160a01b03909216602092830291909101909101526001909201915b600101611655565b509250505090565b61100281565b67016345785d8a000081565b60055481565b61100381565b602981565b60005460ff161561176f576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b611777614158565b600061179d604051806101e001604052806101ab81526020016141e06101ab9139611e0a565b91509150806117dd5760405162461bcd60e51b81526004018080602001828103825260218152602001806144ec6021913960400191505060405180910390fd5b60005b826020015151811015611902576001836020015182815181106117ff57fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a0909301516003909301929092559186015180519185019391859081106118d557fe5b602090810291909101810151516001600160a01b03168252810191909152604001600020556001016117e0565b50506103e8600255506000805460ff19166001179055565b336110011461195a5760405162461bcd60e51b81526004018080602001828103825260298152602001806145696029913960400191505060405180910390fd5b6001600160a01b0381166000908152600460205260409020548061197e5750610fbf565b60018103905060006001828154811061199357fe5b90600052602060002090600402016003015490506000600183815481106119b657fe5b906000526020600020906004020160030181905550600060018080549050039050836001600160a01b03167f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d836040518082815260200191505060405180910390a280611a2557505050610fbf565b6000818381611a3057fe5b0490508015610fba5760005b84811015611a8e578160018281548110611a5257fe5b9060005260206000209060040201600301540160018281548110611a7257fe5b6000918252602090912060036004909202010155600101611a3c565b50600180549085015b81811015610fb7578260018281548110611aad57fe5b9060005260206000209060040201600301540160018281548110611acd57fe5b6000918252602090912060036004909202010155600101611a97565b606581565b334114611b2c5760405162461bcd60e51b815260040180806020018281038252602d81526020018061453c602d913960400191505060405180910390fd5b60005460ff16611b7f576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b60003411611bcc576040805162461bcd60e51b81526020600482015260156024820152746465706f7369742076616c7565206973207a65726f60581b604482015290519081900360640190fd5b6001600160a01b0381166000908152600460205260409020546007543491906103e89060ff1615611bfc57506006545b600083118015611c0c5750600081115b15611cb5576000611c35612710611c29868563ffffffff61302e16565b9063ffffffff61308716565b90508015611cb35760405161dead9082156108fc029083906000818181858888f19350505050158015611c6c573d6000803e3d6000fd5b506040805182815290517f627059660ea01c4733a328effb2294d2f86905bf806da763a89cee254de8bee59181900360200190a1611cb0848263ffffffff6130c916565b93505b505b8115611dad576000600180840381548110611ccc57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff1615611d37576040805185815290516001600160a01b038716917ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4919081900360200190a2611da7565b600354611d4a908563ffffffff61310b16565b6003908155810154611d62908563ffffffff61310b16565b60038201556040805185815290516001600160a01b038716917f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc055919081900360200190a25b50611ded565b6040805184815290516001600160a01b038616917ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4919081900360200190a25b50505050565b61100081565b600381565b61dead81565b61100481565b611e12614158565b6000611e1c614158565b611e24614170565b611e35611e3086613165565b61318a565b90506000805b611e44836131d4565b15611f555780611e6957611e5f611e5a846131f5565b613243565b60ff168452611f4d565b8060011415611f48576060611e85611e80856131f5565b6132fa565b90508051604051908082528060200260200182016040528015611ec257816020015b611eaf614190565b815260200190600190039081611ea75790505b50602086015260005b8151811015611f3d57611edc614190565b6000611efa848481518110611eed57fe5b60200260200101516133cb565b9150915080611f1757876000995099505050505050505050611f5e565b8188602001518481518110611f2857fe5b60209081029190910101525050600101611ecb565b506001925050611f4d565b611f55565b600101611e3b565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b6060815260200190600190039081611f7d579050509050611fa38363ffffffff166134a8565b81600081518110611fb057fe5b6020026020010181905250610c93816134bb565b6000806060611fd284613545565b915091508161207f577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2816040518080602001828103825283818151815260200191508051906020019080838360005b8381101561203a578181015183820152602001612022565b50505050905090810190601f1680156120675780820380516001836020036101000a031916815260200191505b509250505060405180910390a1606692505050611036565b600080805b6001548110156120fc5767016345785d8a0000600182815481106120a457fe5b906000526020600020906004020160030154106120c6576001909201916120f4565b6000600182815481106120d557fe5b90600052602060002090600402016003015411156120f4576001909101905b600101612084565b50606082604051908082528060200260200182016040528015612129578160200160208202803683370190505b509050606083604051908082528060200260200182016040528015612158578160200160208202803683370190505b509050606084604051908082528060200260200182016040528015612187578160200160208202803683370190505b5090506060856040519080825280602002602001820160405280156121b6578160200160208202803683370190505b50905060006060866040519080825280602002602001820160405280156121e7578160200160208202803683370190505b509050606087604051908082528060200260200182016040528015612216578160200160208202803683370190505b509050600098506000975060608d905060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b15801561226357600080fd5b505afa158015612277573d6000803e3d6000fd5b505050506040513d602081101561228d57600080fd5b5051905067016345785d8a0000811115612302577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb26040518080602001828103825260218152602001806144a56021913960400191505060405180910390a160689d5050505050505050505050505050611036565b60005b6001548110156125755767016345785d8a00006001828154811061232557fe5b906000526020600020906004020160030154106124ab576001818154811061234957fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b03168a8d8151811061237a57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be400600183815481106123af57fe5b906000526020600020906004020160030154816123c857fe5b06600183815481106123d657fe5b9060005260206000209060040201600301540390506123fe83826130c990919063ffffffff16565b8a8e8151811061240a57fe5b6020026020010181815250506001828154811061242357fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316888e8151811061245457fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081898e8151811061248157fe5b602090810291909101015261249c878263ffffffff61310b16565b6001909d019c965061256d9050565b6000600182815481106124ba57fe5b906000526020600020906004020160030154111561256d57600181815481106124df57fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316858c8151811061251057fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506001818154811061253d57fe5b906000526020600020906004020160030154848c8151811061255b57fe5b60209081029190910101526001909a01995b600101612305565b50600085156129b3576110046001600160a01b0316636e056520878c8c8b60025442016040518663ffffffff1660e01b815260040180806020018060200180602001856001600160401b03166001600160401b03168152602001848103845288818151815260200191508051906020019060200280838360005b838110156126075781810151838201526020016125ef565b50505050905001848103835287818151815260200191508051906020019060200280838360005b8381101561264657818101518382015260200161262e565b50505050905001848103825286818151815260200191508051906020019060200280838360005b8381101561268557818101518382015260200161266d565b505050509050019750505050505050506020604051808303818588803b1580156126ae57600080fd5b505af1935050505080156126d457506040513d60208110156126cf57600080fd5b505160015b61290f576040516000815260443d10156126f05750600061278b565b60046000803e60005160e01c6308c379a0811461271157600091505061278b565b60043d036004833e81513d60248201116001600160401b038211171561273c5760009250505061278b565b80830180516001600160401b0381111561275d57600094505050505061278b565b8060208301013d860181111561277b5760009550505050505061278b565b601f01601f191660405250925050505b80612796575061283a565b60019150867fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280826040518080602001828103825283818151815260200191508051906020019080838360005b838110156127fa5781810151838201526020016127e2565b50505050905090810190601f1680156128275780820380516001836020036101000a031916815260200191505b509250505060405180910390a25061290a565b3d808015612864576040519150601f19603f3d011682016040523d82523d6000602084013e612869565b606091505b5060019150867fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a45826040518080602001828103825283818151815260200191508051906020019080838360005b838110156128ce5781810151838201526020016128b6565b50505050905090810190601f1680156128fb5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b6129b3565b801561294d576040805188815290517fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b709181900360200190a16129b1565b604080516020808252601b908201527f6261746368207472616e736665722072657475726e2066616c7365000000000081830152905188917fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280919081900360600190a25b505b8015612b695760005b8851811015612b675760008982815181106129d357fe5b602002602001015190506000600182815481106129ec57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc9185908110612a1d57fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f1935050505090508015612ad95760018281548110612a5e57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d9185908110612aad57fe5b9060005260206000209060040201600301546040518082815260200191505060405180910390a2612b5d565b60018281548110612ae657fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d9185908110612b3557fe5b9060005260206000209060040201600301546040518082815260200191505060405180910390a25b50506001016129bc565b505b845115612cb35760005b8551811015612cb1576000868281518110612b8a57fe5b60200260200101516001600160a01b03166108fc878481518110612baa57fe5b60200260200101519081150290604051600060405180830381858888f1935050505090508015612c4057868281518110612be057fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d878481518110612c1e57fe5b60200260200101516040518082815260200191505060405180910390a2612ca8565b868281518110612c4c57fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d878481518110612c8a57fe5b60200260200101516040518082815260200191505060405180910390a25b50600101612b73565b505b4715612d1c576040805147815290517f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d9181900360200190a1604051611002904780156108fc02916000818181858888f19350505050158015612d1a573d6000803e3d6000fd5b505b60006003819055600555825115612d3657612d3683613627565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015612d7357600080fd5b505af1158015612d87573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a15060009f9e505050505050505050505050505050565b80516001600160a01b0316600090815260046020526040812054801580612e1b5750600180820381548110612dfb57fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b15612e615782516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a26000915050611036565b600154600554600019820111801590612eb75784516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a260009350505050611036565b600580546001908101909155805481906000198601908110612ed557fe5b6000918252602082206002600490920201018054921515600160e01b0260ff60e01b199093169290921790915585516040516001600160a01b03909116917ff226e7d8f547ff903d9d419cf5f54e0d7d07efa9584135a53a057c5f1f27f49a91a2506000949350505050565b6000816040516020018082805190602001908083835b60208310612f765780518252601f199092019160209182019101612f57565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310612fe45780518252601f199092019160209182019101612fc5565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052805190602001201490505b92915050565b015190565b60008261303d57506000613023565b8282028284828161304a57fe5b0414610c935760405162461bcd60e51b81526004018080602001828103825260218152602001806144566021913960400191505060405180910390fd5b6000610c9383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613ae8565b6000610c9383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613b8a565b600082820183811015610c93576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b61316d6141c5565b506040805180820190915281518152602082810190820152919050565b613192614170565b61319b82613be4565b6131a457600080fd5b60006131b38360200151613c1e565b60208085015160408051808201909152868152920190820152915050919050565b60006131de6141c5565b505080518051602091820151919092015191011190565b6131fd6141c5565b613206826131d4565b61320f57600080fd5b6020820151600061321f82613c81565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061325857508151602110155b61326157600080fd5b60006132708360200151613c1e565b905080836000015110156132cb576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b8251602080850151830180519284900392918310156132f157826020036101000a820491505b50949350505050565b606061330582613be4565b61330e57600080fd5b600061331983613db4565b905060608160405190808252806020026020018201604052801561335757816020015b6133446141c5565b81526020019060019003908161333c5790505b50905060006133698560200151613c1e565b60208601510190506000805b848110156133c05761338683613c81565b91506040518060400160405280838152602001848152508482815181106133a957fe5b602090810291909101015291810191600101613375565b509195945050505050565b6133d3614190565b60006133dd614190565b6133e5614170565b6133ee8561318a565b90506000805b6133fd836131d4565b15611f55578061342857613418613413846131f5565b613e10565b6001600160a01b031684526134a0565b80600114156134505761343d613413846131f5565b6001600160a01b031660208501526134a0565b806002141561347857613465613413846131f5565b6001600160a01b031660408501526134a0565b8060031415611f485761348d611e5a846131f5565b6001600160401b03166060850152600191505b6001016133f4565b60606130236134b683613e2a565b613f10565b60608151600014156134dc5750604080516000815260208101909152611036565b6060826000815181106134eb57fe5b602002602001015190506000600190505b835181101561352c576135228285838151811061351557fe5b6020026020010151613f62565b91506001016134fc565b50610c9361353f825160c060ff16613fdf565b82613f62565b6000606060298351111561357757600060405180606001604052806029815260200161438b6029913991509150611f5e565b60005b835181101561360d5760005b818110156136045784818151811061359a57fe5b6020026020010151600001516001600160a01b03168583815181106135bb57fe5b6020026020010151600001516001600160a01b031614156135fc5760006040518060600160405280602b81526020016143df602b9139935093505050611f5e565b600101613586565b5060010161357a565b505060408051602081019091526000815260019150915091565b600154815160005b82811015613744576001613641614190565b6001838154811061364e57fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b84811015613718578681815181106136de57fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b031614156137105760009250613718565b6001016136ca565b50811561373a5780516001600160a01b03166000908152600460205260408120555b505060010161362f565b50808211156137b957805b828110156137b757600180548061376257fe5b60008281526020812060046000199093019283020180546001600160a01b03199081168255600182810180549092169091556002820180546001600160e81b031916905560039091019190915591550161374f565b505b60008183106137c857816137ca565b825b905060005b818110156139c45761387c8582815181106137e657fe5b6020026020010151600183815481106137fb57fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a08201526140d7565b61399757806001016004600087848151811061389457fe5b6020026020010151600001516001600160a01b03166001600160a01b03168152602001908152602001600020819055508481815181106138d057fe5b6020026020010151600182815481106138e557fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a0909101516003909101556139bc565b6000600182815481106139a657fe5b9060005260206000209060040201600301819055505b6001016137cf565b5082821115611ded57825b82811015610fba5760018582815181106139e557fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782559585015181840180549184169188169190911790556040850151600282018054606088015160808901511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590971692909a169190911792909216939093171695909517905560a09092015160039093019290925587519084019290889085908110613abb57fe5b602090810291909101810151516001600160a01b03168252810191909152604001600020556001016139cf565b60008183613b745760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613b39578181015183820152602001613b21565b50505050905090810190601f168015613b665780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581613b8057fe5b0495945050505050565b60008184841115613bdc5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315613b39578181015183820152602001613b21565b505050900390565b8051600090613bf557506000611036565b6020820151805160001a9060c0821015613c1457600092505050611036565b5060019392505050565b8051600090811a6080811015613c38576000915050611036565b60b8811080613c53575060c08110801590613c53575060f881105b15613c62576001915050611036565b60c0811015613c765760b519019050611036565b60f519019050611036565b80516000908190811a6080811015613c9c5760019150613dad565b60b8811015613cb157607e1981019150613dad565b60c0811015613d2b57600060b78203600186019550806020036101000a865104915060018101820193505080831015613d25576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50613dad565b60f8811015613d405760be1981019150613dad565b600060f78203600186019550806020036101000a865104915060018101820193505080831015613dab576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b8051600090613dc557506000611036565b60008090506000613dd98460200151613c1e565b602085015185519181019250015b80821015613e0757613df882613c81565b60019093019290910190613de7565b50909392505050565b8051600090601514613e2157600080fd5b61302382613243565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416613e6e57506018613e92565b6fffffffffffffffffffffffffffffffff198416613e8e57506010613e92565b5060005b6020811015613ec857818181518110613ea757fe5b01602001516001600160f81b03191615613ec057613ec8565b600101613e92565b60008160200390506060816040519080825280601f01601f191660200182016040528015613efd576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015613f425750607f60f81b82600081518110613f3057fe5b01602001516001600160f81b03191611155b15613f4e575080611036565b613023613f608351608060ff16613fdf565b835b6060806040519050835180825260208201818101602087015b81831015613f93578051835260209283019201613f7b565b50855184518101855292509050808201602086015b81831015613fc0578051835260209283019201613fa8565b508651929092011591909101601f01601f191660405250905092915050565b606068010000000000000000831061402f576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b604080516001808252818301909252606091602082018180368337019050509050603784116140895782840160f81b8160008151811061406b57fe5b60200101906001600160f81b031916908160001a9053509050613023565b606061409485613e2a565b90508381510160370160f81b826000815181106140ad57fe5b60200101906001600160f81b031916908160001a9053506140ce8282613f62565b95945050505050565b805182516000916001600160a01b039182169116148015614111575081602001516001600160a01b031683602001516001600160a01b0316145b8015614136575081604001516001600160a01b031683604001516001600160a01b0316145b8015610c935750506060908101519101516001600160401b0390811691161490565b60408051808201909152600081526060602082015290565b60405180604001604052806141836141c5565b8152602001600081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b60405180604001604052806000815260200160008152509056fef901a880f901a4f844941284214b9b9c85549ab3d2b972df0deef66ac2c9946ddf42a51534fc98d0c0a3b42c963cace8441ddf946ddf42a51534fc98d0c0a3b42c963cace8441ddf8410000000f84494a2959d3f95eae5dc7d70144ce1b73b403b7eb6e0948081ef03f1d9e0bb4a5bf38f16285c879299f07f948081ef03f1d9e0bb4a5bf38f16285c879299f07f8410000000f8449435552c16704d214347f29fa77f77da6d75d7c75294dc4973e838e3949c77aced16ac2315dc2d7ab11194dc4973e838e3949c77aced16ac2315dc2d7ab1118410000000f84494980a75ecd1309ea12fa2ed87a8744fbfc9b863d594cc6ac05c95a99c1f7b5f88de0e3486c82293b27094cc6ac05c95a99c1f7b5f88de0e3486c82293b2708410000000f84494f474cf03cceff28abc65c9cbae594f725c80e12d94e61a183325a18a173319dd8e19c8d069459e217594e61a183325a18a173319dd8e19c8d069459e21758410000000f84494b71b214cb885500844365e95cd9942c7276e7fd894d22ca3ba2141d23adab65ce4940eb7665ea2b6a794d22ca3ba2141d23adab65ce4940eb7665ea2b6a78410000000746865206e756d626572206f662076616c696461746f72732065786365656420746865206c696d6974746865206275726e526174696f206d757374206265206e6f2067726561746572207468616e2031303030306475706c696361746520636f6e73656e7375732061646472657373206f662076616c696461746f725365747468652065787069726554696d655365636f6e64476170206973206f7574206f662072616e67656c656e677468206f66206a61696c2076616c696461746f7273206d757374206265206f6e65536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374666565206973206c6172676572207468616e2044555354595f494e434f4d494e476c656e677468206f662065787069726554696d655365636f6e64476170206d69736d617463686661696c656420746f20706172736520696e69742076616c696461746f72536574746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d6573736167652073656e646572206d7573742062652074686520626c6f636b2070726f6475636572746865206d6573736167652073656e646572206d75737420626520736c61736820636f6e7472616374a26469706673582212206138cbef6a4ba7db6b97f06990dc0d96f124bc0b841fa4a56690968e7b85982b64736f6c63430006040033" + } + }, + "19203503": { + "0x0000000000000000000000000000000000001000": { + "balance": "0x0", + "code": "0x6080604052600436106104055760003560e01c80638d19a41011610213578063c81b166211610123578063eb57e202116100ab578063f9a2bbc71161007a578063f9a2bbc714610d55578063fc3e590814610d6a578063fccc281314610d7f578063fd4ad81f14610d94578063fd6a687914610dd757610405565b8063eb57e20214610cd2578063eda5868c14610d05578063f340fa0114610d1a578063f92eb86b14610d4057610405565b8063daacdb66116100f2578063daacdb6614610c69578063dc927faf14610c7e578063e086c7b114610c93578063e1c7392a14610ca8578063e40716a114610cbd57610405565b8063c81b166214610c2a578063c8509d8114610939578063d68fb56a14610c3f578063d86222d514610c5457610405565b8063a78abc16116101a6578063ad3c9da611610175578063ad3c9da614610bb8578063b7ab4db514610beb578063b8cf4ef114610c00578063bf9f49951461065f578063c6d3394514610c1557610405565b8063a78abc1614610aae578063aaf5eb6814610ac3578063ab51bb9614610ad8578063ac43175114610aed57610405565b80639fe0f816116101e25780639fe0f81614610a5a578063a0dc275814610a6f578063a1a11bf514610a84578063a5422d5c14610a9957610405565b80638d19a410146109e85780639369d7de14610a1b57806396713da914610a305780639dc0926214610a4557610405565b80635192c82c1161031957806375d47a0a116102a157806381650b621161027057806381650b6214610924578063831d65d114610939578063853230aa146108e557806386249882146109be5780638b5ad0c9146109d357610405565b806375d47a0a146108d057806378dfed4a146108e55780637942fd05146108fa5780637a84ca2a1461090f57610405565b80635667515a116102e85780635667515a146108065780635d77156c1461081b5780636969a25c146108305780636e47b482146108a657806370fd5bad146108bb57610405565b80635192c82c1461077657806351e806721461078b57806355614fcc146107a0578063565c56b3146107d357610405565b80633365af3a1161039c57806343756e5c1161036b57806343756e5c1461068a57806345cf9daf146106bb578063493279b1146106d05780634bf6c882146106fc5780634df6e0c31461071157610405565b80633365af3a146105ed57806335409f7f146106175780633de0f0d81461064a5780633dffc3871461065f57610405565b8063152ad3b8116103d8578063152ad3b8146105705780631ff1806914610599578063219f22d5146105ae578063321d398a146105c357610405565b806304c4fec61461040a57806307a56847146104215780630bee7a67146104485780631182b87514610476575b600080fd5b34801561041657600080fd5b5061041f610dec565b005b34801561042d57600080fd5b50610436610e7f565b60408051918252519081900360200190f35b34801561045457600080fd5b5061045d610e85565b6040805163ffffffff9092168252519081900360200190f35b34801561048257600080fd5b506104fb6004803603604081101561049957600080fd5b60ff8235169190810190604081016020820135600160201b8111156104bd57600080fd5b8201836020820111156104cf57600080fd5b803590602001918460018302840111600160201b831117156104f057600080fd5b509092509050610e8a565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561053557818101518382015260200161051d565b50505050905090810190601f1680156105625780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561057c57600080fd5b5061058561111c565b604080519115158252519081900360200190f35b3480156105a557600080fd5b50610436611125565b3480156105ba57600080fd5b5061045d61112b565b3480156105cf57600080fd5b50610585600480360360208110156105e657600080fd5b5035611130565b3480156105f957600080fd5b506105856004803603602081101561061057600080fd5b50356111ff565b34801561062357600080fd5b5061041f6004803603602081101561063a57600080fd5b50356001600160a01b03166112b0565b34801561065657600080fd5b5061043661140f565b34801561066b57600080fd5b50610674611415565b6040805160ff9092168252519081900360200190f35b34801561069657600080fd5b5061069f61141a565b604080516001600160a01b039092168252519081900360200190f35b3480156106c757600080fd5b50610436611420565b3480156106dc57600080fd5b506106e5611426565b6040805161ffff9092168252519081900360200190f35b34801561070857600080fd5b5061067461142b565b34801561071d57600080fd5b50610726611430565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561076257818101518382015260200161074a565b505050509050019250505060405180910390f35b34801561078257600080fd5b5061043661152b565b34801561079757600080fd5b5061069f611531565b3480156107ac57600080fd5b50610585600480360360208110156107c357600080fd5b50356001600160a01b0316611537565b3480156107df57600080fd5b50610436600480360360208110156107f657600080fd5b50356001600160a01b031661156c565b34801561081257600080fd5b506106746115bd565b34801561082757600080fd5b5061045d6115c2565b34801561083c57600080fd5b5061085a6004803603602081101561085357600080fd5b50356115c7565b604080516001600160a01b039788168152958716602087015293909516848401526001600160401b0390911660608401521515608083015260a082019290925290519081900360c00190f35b3480156108b257600080fd5b5061069f61162b565b3480156108c757600080fd5b50610674611631565b3480156108dc57600080fd5b5061069f611636565b3480156108f157600080fd5b5061043661163c565b34801561090657600080fd5b50610674611642565b34801561091b57600080fd5b50610436611647565b34801561093057600080fd5b5061045d61164d565b34801561094557600080fd5b5061041f6004803603604081101561095c57600080fd5b60ff8235169190810190604081016020820135600160201b81111561098057600080fd5b82018360208201111561099257600080fd5b803590602001918460018302840111600160201b831117156109b357600080fd5b509092509050611652565b3480156109ca57600080fd5b50610436611705565b3480156109df57600080fd5b5061043661170b565b3480156109f457600080fd5b5061043660048036036020811015610a0b57600080fd5b50356001600160a01b0316611711565b348015610a2757600080fd5b5061041f611786565b348015610a3c57600080fd5b506106746118a0565b348015610a5157600080fd5b5061069f6118a5565b348015610a6657600080fd5b506104366118ab565b348015610a7b57600080fd5b506104366118b0565b348015610a9057600080fd5b5061069f6118b5565b348015610aa557600080fd5b506104fb6118bb565b348015610aba57600080fd5b506105856118da565b348015610acf57600080fd5b506104366118e3565b348015610ae457600080fd5b5061045d6115bd565b348015610af957600080fd5b5061041f60048036036040811015610b1057600080fd5b810190602081018135600160201b811115610b2a57600080fd5b820183602082011115610b3c57600080fd5b803590602001918460018302840111600160201b83111715610b5d57600080fd5b919390929091602081019035600160201b811115610b7a57600080fd5b820183602082011115610b8c57600080fd5b803590602001918460018302840111600160201b83111715610bad57600080fd5b5090925090506118ec565b348015610bc457600080fd5b5061043660048036036020811015610bdb57600080fd5b50356001600160a01b0316612329565b348015610bf757600080fd5b5061072661233b565b348015610c0c57600080fd5b5061043661241e565b348015610c2157600080fd5b50610436611631565b348015610c3657600080fd5b5061069f612423565b348015610c4b57600080fd5b50610436612429565b348015610c6057600080fd5b50610436612468565b348015610c7557600080fd5b50610436612474565b348015610c8a57600080fd5b5061069f61247a565b348015610c9f57600080fd5b50610436612480565b348015610cb457600080fd5b5061041f612485565b348015610cc957600080fd5b50610436612688565b348015610cde57600080fd5b5061041f60048036036020811015610cf557600080fd5b50356001600160a01b031661268e565b348015610d1157600080fd5b5061045d61279c565b61041f60048036036020811015610d3057600080fd5b50356001600160a01b03166127a1565b348015610d4c57600080fd5b50610436612aa6565b348015610d6157600080fd5b5061069f612aac565b348015610d7657600080fd5b506106746118ab565b348015610d8b57600080fd5b5061069f612ab2565b348015610da057600080fd5b50610dbe60048036036020811015610db757600080fd5b5035612ab8565b6040805192835290151560208301528051918290030190f35b348015610de357600080fd5b5061069f612ae6565b6000610df733611711565b9050600b8181548110610e0657fe5b600091825260209091206001601690920201015460ff16610e63576040805162461bcd60e51b81526020600482015260126024820152716e6f7420696e206d61696e74656e616e636560701b604482015290519081900360640190fd5b6000610e6d612429565b9050610e7a338383612aec565b505050565b60095481565b606481565b60005460609060ff16610ee0576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b3361200014610f205760405162461bcd60e51b815260040180806020018281038252602f815260200180616047602f913960400191505060405180910390fd5b600b54610fc557610f2f6159e0565b60015460005b81811015610fc157600b80546001810182556000919091528351600080516020615fc0833981519152601690920291820190815560208501516000805160206160d08339815191528301805460ff191691151591909117905560408501518592610fb391600080516020616006833981519152909101906014615a04565b505050806001019050610f35565b5050505b610fcd615a3e565b600061100e85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612ce092505050565b915091508061102a576110216064612e39565b92505050611115565b815160009060ff1661104a576110438360200151612e9a565b90506110e1565b825160ff16600114156110dd578260200151516001146110b7577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2604051808060200182810382526025815260200180615f066025913960400191505060405180910390a15060676110d8565b61104383602001516000815181106110cb57fe5b6020026020010151613caa565b6110e1565b5060655b63ffffffff811661110657505060408051600081526020810190915291506111159050565b61110f81612e39565b93505050505b9392505050565b60075460ff1681565b60035481565b606881565b6001546000908210611144575060006111fa565b60006001600160a01b03166001838154811061115c57fe5b60009182526020909120600490910201546001600160a01b0316148061118c5750600854158061118c5750600a54155b8061119b575060085460095410155b806111ac57506111aa826111ff565b155b806111d557506000600b83815481106111c157fe5b906000526020600020906016020160000154115b806111e9575060016111e561233b565b5111155b156111f6575060006111fa565b5060015b919050565b6001546000908210611213575060006111fa565b600b548210611250576001828154811061122957fe5b9060005260206000209060040201600201601c9054906101000a900460ff161590506111fa565b6001828154811061125d57fe5b9060005260206000209060040201600201601c9054906101000a900460ff161580156112aa5750600b828154811061129157fe5b600091825260209091206001601690920201015460ff16155b92915050565b33611001146112f05760405162461bcd60e51b81526004018080602001828103825260298152602001806160f06029913960400191505060405180910390fd5b600b54611395576112ff6159e0565b60015460005b8181101561139157600b80546001810182556000919091528351600080516020615fc0833981519152601690920291820190815560208501516000805160206160d08339815191528301805460ff19169115159190911790556040850151859261138391600080516020616006833981519152909101906014615a04565b505050806001019050611305565b5050505b6001600160a01b038116600090815260046020526040902054806113b9575061140c565b6001810390506000600b82815481106113ce57fe5b600091825260209091206001601690920201015460ff1690506113f18383613e21565b80156113fa5750805b15610e7a576009805460001901905550505b50565b61271081565b600181565b61100181565b60085481565b606181565b600881565b600e54600c546060919080611443575060155b606061144d61233b565b905081815111611461579250611528915050565b82828251031015611473578181510392505b82156114a75760c8430461148e82828686036000888861419d565b6114a582828686038787038889898951030161419d565b505b6060826040519080825280602002602001820160405280156114d3578160200160208202803683370190505b50905060005b83811015611521578281815181106114ed57fe5b602002602001015182828151811061150157fe5b6001600160a01b03909216602092830291909101909101526001016114d9565b5093505050505b90565b60065481565b61200081565b6001600160a01b0381166000908152600460205260408120548061155f5760009150506111fa565b60001901611115816111ff565b6001600160a01b038116600090815260046020526040812054806115945760009150506111fa565b6001808203815481106115a357fe5b906000526020600020906004020160030154915050919050565b600081565b606781565b600181815481106115d457fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b61100881565b6103e881565b600b81565b600c5481565b606681565b33612000146116925760405162461bcd60e51b815260040180806020018281038252602f815260200180616047602f913960400191505060405180910390fd5b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a1505050565b60025481565b600a5481565b6001600160a01b0381166000908152600460205260408120548061177c576040805162461bcd60e51b815260206004820152601760248201527f6f6e6c792063757272656e742076616c696461746f7273000000000000000000604482015290519081900360640190fd5b6000190192915050565b600b5461182b576117956159e0565b60015460005b8181101561182757600b80546001810182556000919091528351600080516020615fc0833981519152601690920291820190815560208501516000805160206160d08339815191528301805460ff19169115159190911790556040850151859261181991600080516020616006833981519152909101906014615a04565b50505080600101905061179b565b5050505b6008546118385760036008555b600a54611845576002600a555b600061185033611711565b905061185b81611130565b6118965760405162461bcd60e51b8152600401808060200182810382526023815260200180615ee36023913960400191505060405180910390fd5b61140c338261428c565b600981565b61100781565b600381565b60c881565b61100681565b604051806101e001604052806101ab8152602001615b396101ab913981565b60005460ff1681565b6402540be40081565b60005460ff1661193f576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b336110071461197f5760405162461bcd60e51b815260040180806020018281038252602e815260200180615f4c602e913960400191505060405180910390fd5b6119e984848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b602082015291506143249050565b15611ac45760208114611a2d5760405162461bcd60e51b8152600401808060200182810382526026815260200180615fe06026913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091611a6b9185858083850183828082843760009201919091525061440b92505050565b905060648110158015611a815750620186a08111155b611abc5760405162461bcd60e51b8152600401808060200182810382526027815260200180615e736027913960400191505060405180910390fd5b600255612297565b611b2484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260098152686275726e526174696f60b81b602082015291506143249050565b15611c145760208114611b7e576040805162461bcd60e51b815260206004820152601c60248201527f6c656e677468206f66206275726e526174696f206d69736d6174636800000000604482015290519081900360640190fd5b604080516020601f8401819004810282018101909252828152600091611bbc9185858083850183828082843760009201919091525061440b92505050565b9050612710811115611bff5760405162461bcd60e51b815260040180806020018281038252602b815260200180615e1d602b913960400191505060405180910390fd5b6006556007805460ff19166001179055612297565b611c7e84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260138152726d61784e756d4f664d61696e7461696e696e6760681b602082015291506143249050565b15611d565760208114611cc25760405162461bcd60e51b8152600401808060200182810382526026815260200180615ce46026913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091611d009185858083850183828082843760009201919091525061440b92505050565b600c5490915080611d0f575060155b808210611d4d5760405162461bcd60e51b8152600401808060200182810382526038815260200180615d5b6038913960400191505060405180910390fd5b50600855612297565b611dbf84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61696e7461696e536c6173685363616c6560701b602082015291506143249050565b15611e8a5760208114611e035760405162461bcd60e51b8152600401808060200182810382526025815260200180615d366025913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091611e419185858083850183828082843760009201919091525061440b92505050565b905060008111611e825760405162461bcd60e51b815260040180806020018281038252602d8152602001806160a3602d913960400191505060405180910390fd5b600a55612297565b611efe84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601981527f6d61784e756d4f66576f726b696e6743616e6469646174657300000000000000602082015291506143249050565b15611fcb5760208114611f425760405162461bcd60e51b815260040180806020018281038252602c815260200180615d0a602c913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091611f809185858083850183828082843760009201919091525061440b92505050565b9050600d54811115611fc35760405162461bcd60e51b8152600401808060200182810382526049815260200180615e9a6049913960600191505060405180910390fd5b600e55612297565b61203484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61784e756d4f6643616e6469646174657360701b602082015291506143249050565b156120d557602081146120785760405162461bcd60e51b8152600401808060200182810382526025815260200180615f7a6025913960400191505060405180910390fd5b604080516020601f84018190048102820181019092528281526000916120b69185858083850183828082843760009201919091525061440b92505050565b600d819055600e549091508110156120cf57600d54600e555b50612297565b61213984848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c6e756d4f66436162696e65747360981b602082015291506143249050565b1561225a5760208114612193576040805162461bcd60e51b815260206004820181905260248201527f6c656e677468206f66206e756d4f66436162696e657473206d69736d61746368604482015290519081900360640190fd5b604080516020601f84018190048102820181019092528281526000916121d19185858083850183828082843760009201919091525061440b92505050565b9050600081116122125760405162461bcd60e51b8152600401808060200182810382526028815260200180615d936028913960400191505060405180910390fd5b60298111156122525760405162461bcd60e51b8152600401808060200182810382526039815260200180615dbb6039913960400191505060405180910390fd5b600c55612297565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b60046020526000908152604090205481565b6001546060906000805b8281101561236a57612356816111ff565b15612362576001909101905b600101612345565b50606081604051908082528060200260200182016040528015612397578160200160208202803683370190505b5090506000915060005b83811015612416576123b2816111ff565b1561240e57600181815481106123c457fe5b600091825260209091206004909102015482516001600160a01b03909116908390859081106123ef57fe5b6001600160a01b03909216602092830291909101909101526001909201915b6001016123a1565b509250505090565b601581565b61100281565b600061243361233b565b519050600080600c541161244857601561244c565b600c545b90508082111561245a578091505b8161246457600191505b5090565b67016345785d8a000081565b60055481565b61100381565b602981565b60005460ff16156124dd576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b6124e5615a3e565b600061250b604051806101e001604052806101ab8152602001615b396101ab9139612ce0565b915091508061254b5760405162461bcd60e51b81526004018080602001828103825260218152602001806160266021913960400191505060405180910390fd5b60005b8260200151518110156126705760018360200151828151811061256d57fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a09093015160039093019290925591860151805191850193918590811061264357fe5b602090810291909101810151516001600160a01b031682528101919091526040016000205560010161254e565b50506103e8600255506000805460ff19166001179055565b600d5481565b33611001146126ce5760405162461bcd60e51b81526004018080602001828103825260298152602001806160f06029913960400191505060405180910390fd5b600b54612773576126dd6159e0565b60015460005b8181101561276f57600b80546001810182556000919091528351600080516020615fc0833981519152601690920291820190815560208501516000805160206160d08339815191528301805460ff19169115159190911790556040850151859261276191600080516020616006833981519152909101906014615a04565b5050508060010190506126e3565b5050505b600061277e82614410565b905061278981611130565b1561279857612798828261428c565b5050565b606581565b3341146127df5760405162461bcd60e51b815260040180806020018281038252602d815260200180616076602d913960400191505060405180910390fd5b60005460ff16612832576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b6000341161287f576040805162461bcd60e51b81526020600482015260156024820152746465706f7369742076616c7565206973207a65726f60581b604482015290519081900360640190fd5b6001600160a01b0381166000908152600460205260409020546007543491906103e89060ff16156128af57506006545b6000831180156128bf5750600081115b156129685760006128e86127106128dc868563ffffffff6145b416565b9063ffffffff61460d16565b905080156129665760405161dead9082156108fc029083906000818181858888f1935050505015801561291f573d6000803e3d6000fd5b506040805182815290517f627059660ea01c4733a328effb2294d2f86905bf806da763a89cee254de8bee59181900360200190a1612963848263ffffffff61464f16565b93505b505b8115612a6057600060018084038154811061297f57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff16156129ea576040805185815290516001600160a01b038716917ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4919081900360200190a2612a5a565b6003546129fd908563ffffffff61469116565b6003908155810154612a15908563ffffffff61469116565b60038201556040805185815290516001600160a01b038716917f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc055919081900360200190a25b50612aa0565b6040805184815290516001600160a01b038616917ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4919081900360200190a25b50505050565b600e5481565b61100081565b61dead81565b600b8181548110612ac557fe5b60009182526020909120601690910201805460019091015490915060ff1682565b61100481565b6000600a5460001480612afd575081155b80612b085750600954155b15612b1557506000611115565b600960008154809291906001900391905055506000612b62600a546128dc856128dc600b8981548110612b4457fe5b6000918252602090912060169091020154439063ffffffff61464f16565b90506000600b8581548110612b7357fe5b906000526020600020906016020160010160006101000a81548160ff0219169083151502179055506000806110016001600160a01b0316638256ace66040518163ffffffff1660e01b8152600401604080518083038186803b158015612bd857600080fd5b505afa158015612bec573d6000803e3d6000fd5b505050506040513d6040811015612c0257600080fd5b508051602090910151600095509092509050808310612c9057612c258787613e21565b50604080516305bfb49960e41b81526001600160a01b0389166004820152905161100191635bfb499091602480830192600092919082900301818387803b158015612c6f57600080fd5b505af1158015612c83573d6000803e3d6000fd5b5050505060019350612ca2565b818310612ca257612ca087614410565b505b6040516001600160a01b038816907fb9d38178dc641ff1817967a63c9078cbcd955a9f1fcd75e0e3636de615d44d3b90600090a25050509392505050565b612ce8615a3e565b6000612cf2615a3e565b612cfa615a56565b612d0b612d06866146eb565b614710565b90506000805b612d1a8361475a565b15612e2b5780612d3f57612d35612d308461477b565b6147c9565b60ff168452612e23565b8060011415612e1e576060612d5b612d568561477b565b614880565b90508051604051908082528060200260200182016040528015612d9857816020015b612d85615a76565b815260200190600190039081612d7d5790505b50602086015260005b8151811015612e1357612db2615a76565b6000612dd0848481518110612dc357fe5b6020026020010151614951565b9150915080612ded57876000995099505050505050505050612e34565b8188602001518481518110612dfe57fe5b60209081029190910101525050600101612da1565b506001925050612e23565b612e2b565b600101612d11565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b6060815260200190600190039081612e53579050509050612e798363ffffffff16614a2e565b81600081518110612e8657fe5b602002602001018190525061111581614a41565b6000806060612ea884614acb565b9150915081612f55577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2816040518080602001828103825283818151815260200191508051906020019080838360005b83811015612f10578181015183820152602001612ef8565b50505050905090810190601f168015612f3d5780820380516001836020036101000a031916815260200191505b509250505060405180910390a16066925050506111fa565b50506060612f6283614bad565b6001549091506000908190815b81811015612fe55767016345785d8a000060018281548110612f8d57fe5b90600052602060002090600402016003015410612faf57600190930192612fdd565b600060018281548110612fbe57fe5b9060005260206000209060040201600301541115612fdd576001909201915b600101612f6f565b50606083604051908082528060200260200182016040528015613012578160200160208202803683370190505b509050606084604051908082528060200260200182016040528015613041578160200160208202803683370190505b509050606085604051908082528060200260200182016040528015613070578160200160208202803683370190505b50905060608660405190808252806020026020018201604052801561309f578160200160208202803683370190505b50905060006060876040519080825280602002602001820160405280156130d0578160200160208202803683370190505b5090506060886040519080825280602002602001820160405280156130ff578160200160208202803683370190505b509050600099506000985060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b15801561314757600080fd5b505afa15801561315b573d6000803e3d6000fd5b505050506040513d602081101561317157600080fd5b5051905067016345785d8a00008111156131e5577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2604051808060200182810382526021815260200180615f9f6021913960400191505060405180910390a160689c505050505050505050505050506111fa565b60005b898110156134565767016345785d8a00006001828154811061320657fe5b9060005260206000209060040201600301541061338c576001818154811061322a57fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316898d8151811061325b57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be4006001838154811061329057fe5b906000526020600020906004020160030154816132a957fe5b06600183815481106132b757fe5b9060005260206000209060040201600301540390506132df838261464f90919063ffffffff16565b898e815181106132eb57fe5b6020026020010181815250506001828154811061330457fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316878e8151811061333557fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081888e8151811061336257fe5b602090810291909101015261337d868263ffffffff61469116565b6001909d019c955061344e9050565b60006001828154811061339b57fe5b906000526020600020906004020160030154111561344e57600181815481106133c057fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316848c815181106133f157fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506001818154811061341e57fe5b906000526020600020906004020160030154838c8151811061343c57fe5b60209081029190910101526001909a01995b6001016131e8565b5060008415613894576110046001600160a01b0316636e056520868b8b8a60025442016040518663ffffffff1660e01b815260040180806020018060200180602001856001600160401b03166001600160401b03168152602001848103845288818151815260200191508051906020019060200280838360005b838110156134e85781810151838201526020016134d0565b50505050905001848103835287818151815260200191508051906020019060200280838360005b8381101561352757818101518382015260200161350f565b50505050905001848103825286818151815260200191508051906020019060200280838360005b8381101561356657818101518382015260200161354e565b505050509050019750505050505050506020604051808303818588803b15801561358f57600080fd5b505af1935050505080156135b557506040513d60208110156135b057600080fd5b505160015b6137f0576040516000815260443d10156135d15750600061366c565b60046000803e60005160e01c6308c379a081146135f257600091505061366c565b60043d036004833e81513d60248201116001600160401b038211171561361d5760009250505061366c565b80830180516001600160401b0381111561363e57600094505050505061366c565b8060208301013d860181111561365c5760009550505050505061366c565b601f01601f191660405250925050505b80613677575061371b565b60019150857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280826040518080602001828103825283818151815260200191508051906020019080838360005b838110156136db5781810151838201526020016136c3565b50505050905090810190601f1680156137085780820380516001836020036101000a031916815260200191505b509250505060405180910390a2506137eb565b3d808015613745576040519150601f19603f3d011682016040523d82523d6000602084013e61374a565b606091505b5060019150857fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a45826040518080602001828103825283818151815260200191508051906020019080838360005b838110156137af578181015183820152602001613797565b50505050905090810190601f1680156137dc5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b613894565b801561382e576040805187815290517fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b709181900360200190a1613892565b604080516020808252601b908201527f6261746368207472616e736665722072657475726e2066616c7365000000000081830152905187917fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280919081900360600190a25b505b8015613a4a5760005b8751811015613a485760008882815181106138b457fe5b602002602001015190506000600182815481106138cd57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc91859081106138fe57fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f19350505050905080156139ba576001828154811061393f57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d918590811061398e57fe5b9060005260206000209060040201600301546040518082815260200191505060405180910390a2613a3e565b600182815481106139c757fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d9185908110613a1657fe5b9060005260206000209060040201600301546040518082815260200191505060405180910390a25b505060010161389d565b505b835115613b945760005b8451811015613b92576000858281518110613a6b57fe5b60200260200101516001600160a01b03166108fc868481518110613a8b57fe5b60200260200101519081150290604051600060405180830381858888f1935050505090508015613b2157858281518110613ac157fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d868481518110613aff57fe5b60200260200101516040518082815260200191505060405180910390a2613b89565b858281518110613b2d57fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d868481518110613b6b57fe5b60200260200101516040518082815260200191505060405180910390a25b50600101613a54565b505b4715613bfd576040805147815290517f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d9181900360200190a1604051611002904780156108fc02916000818181858888f19350505050158015613bfb573d6000803e3d6000fd5b505b600060038190556005558c5115613c1757613c178d614d7d565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015613c5457600080fd5b505af1158015613c68573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a15060009e9d5050505050505050505050505050565b80516001600160a01b0316600090815260046020526040812054801580613cfb5750600180820381548110613cdb57fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b15613d415782516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a260009150506111fa565b600154600554600019820111801590613d975784516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a2600093505050506111fa565b600580546001908101909155805481906000198601908110613db557fe5b6000918252602082206002600490920201018054921515600160e01b0260ff60e01b199093169290921790915585516040516001600160a01b03909116917ff226e7d8f547ff903d9d419cf5f54e0d7d07efa9584135a53a057c5f1f27f49a91a2506000949350505050565b60008060018381548110613e3157fe5b90600052602060002090600402016003015490506000600180805490500390506001613e5b61233b565b5111613e9057600060018581548110613e7057fe5b9060005260206000209060040201600301819055506000925050506112aa565b6040805183815290516001600160a01b038716917f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a70919081900360200190a26001600160a01b038516600090815260046020526040812055835b6001546000190181101561408d5760018160010181548110613f0857fe5b906000526020600020906004020160018281548110613f2357fe5b60009182526020909120825460049092020180546001600160a01b03199081166001600160a01b0393841617825560018085015481840180548416918616919091179055600280860180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b19909416939093179055600392830154920191909155600b805490918301908110613fe457fe5b9060005260206000209060160201600b8281548110613fff57fe5b600091825260209091208254601690920201908155600180830154908201805460ff191660ff909216151591909117905561404260028083019084016014615aab565b5090505080600101600460006001848154811061405b57fe5b600091825260208083206004909202909101546001600160a01b03168352820192909252604001902055600101613eea565b50600180548061409957fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b8054806140ec57fe5b60008281526020812060166000199093019283020181815560018101805460ff191690559061411e6002830182615ad6565b50509055600081838161412d57fe5b04905080156141915760015460005b8181101561418e57826001828154811061415257fe5b906000526020600020906004020160030154016001828154811061417257fe5b600091825260209091206003600490920201015560010161413c565b50505b50600195945050505050565b60005b828110156142835760408051602080820189905287840182840152825180830384018152606090920190925280519101206000908390816141dd57fe5b0690508085018287011461427a57600088838801815181106141fb57fe5b60200260200101519050888287018151811061421357fe5b6020026020010151898489018151811061422957fe5b60200260200101906001600160a01b031690816001600160a01b03168152505080898388018151811061425857fe5b60200260200101906001600160a01b031690816001600160a01b031681525050505b506001016141a0565b50505050505050565b600980546001908101909155600b8054839081106142a657fe5b906000526020600020906016020160010160006101000a81548160ff02191690831515021790555043600b82815481106142dc57fe5b600091825260208220601690910201919091556040516001600160a01b038416917ff62981a567ec3cec866c6fa93c55bcdf841d6292d18b8d522ececa769375d82d91a25050565b6000816040516020018082805190602001908083835b602083106143595780518252601f19909201916020918201910161433a565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106143c75780518252601f1990920191602091820191016143a8565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b6001600160a01b03811660009081526004602052604081205480614439575060001990506111fa565b60018103905060006001828154811061444e57fe5b906000526020600020906004020160030154905060006001838154811061447157fe5b906000526020600020906004020160030181905550600060018080549050039050846001600160a01b03167f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d836040518082815260200191505060405180910390a2806144e3578293505050506111fa565b60008183816144ee57fe5b04905080156145aa5760005b8481101561454c57816001828154811061451057fe5b906000526020600020906004020160030154016001828154811061453057fe5b60009182526020909120600360049092020101556001016144fa565b50600180549085015b818110156145a757826001828154811061456b57fe5b906000526020600020906004020160030154016001828154811061458b57fe5b6000918252602090912060036004909202010155600101614555565b50505b5091949350505050565b6000826145c3575060006112aa565b828202828482816145d057fe5b04146111155760405162461bcd60e51b8152600401808060200182810382526021815260200180615f2b6021913960400191505060405180910390fd5b600061111583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250615370565b600061111583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250615412565b600082820183811015611115576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6146f3615ae5565b506040805180820190915281518152602082810190820152919050565b614718615a56565b6147218261546c565b61472a57600080fd5b600061473983602001516154a6565b60208085015160408051808201909152868152920190820152915050919050565b6000614764615ae5565b505080518051602091820151919092015191011190565b614783615ae5565b61478c8261475a565b61479557600080fd5b602082015160006147a582615509565b80830160209586015260408051808201909152908152938401919091525090919050565b8051600090158015906147de57508151602110155b6147e757600080fd5b60006147f683602001516154a6565b90508083600001511015614851576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b82516020808501518301805192849003929183101561487757826020036101000a820491505b50949350505050565b606061488b8261546c565b61489457600080fd5b600061489f8361563c565b90506060816040519080825280602002602001820160405280156148dd57816020015b6148ca615ae5565b8152602001906001900390816148c25790505b50905060006148ef85602001516154a6565b60208601510190506000805b848110156149465761490c83615509565b915060405180604001604052808381526020018481525084828151811061492f57fe5b6020908102919091010152918101916001016148fb565b509195945050505050565b614959615a76565b6000614963615a76565b61496b615a56565b61497485614710565b90506000805b6149838361475a565b15612e2b57806149ae5761499e6149998461477b565b615698565b6001600160a01b03168452614a26565b80600114156149d6576149c36149998461477b565b6001600160a01b03166020850152614a26565b80600214156149fe576149eb6149998461477b565b6001600160a01b03166040850152614a26565b8060031415612e1e57614a13612d308461477b565b6001600160401b03166060850152600191505b60010161497a565b60606112aa614a3c836156b2565b615798565b6060815160001415614a6257506040805160008152602081019091526111fa565b606082600081518110614a7157fe5b602002602001015190506000600190505b8351811015614ab257614aa882858381518110614a9b57fe5b60200260200101516157ea565b9150600101614a82565b50611115614ac5825160c060ff16615867565b826157ea565b60006060602983511115614afd576000604051806060016040528060298152602001615df46029913991509150612e34565b60005b8351811015614b935760005b81811015614b8a57848181518110614b2057fe5b6020026020010151600001516001600160a01b0316858381518110614b4157fe5b6020026020010151600001516001600160a01b03161415614b825760006040518060600160405280602b8152602001615e48602b9139935093505050612e34565b600101614b0c565b50600101614b00565b505060408051602081019091526000815260019150915091565b6060600080808080614bbd612429565b6001549091505b8015614ccb57600181039250600b8381548110614bdd57fe5b600091825260209091206001601690920201015460ff16614bfd57614cc2565b60018381548110614c0a57fe5b60009182526020909120600490910201546001600160a01b03169450614c31858484612aec565b9350831580614c44575060018851038610155b15614c4e57614cc2565b60005b8851811015614cc057856001600160a01b0316898281518110614c7057fe5b6020026020010151600001516001600160a01b03161415614cb8576001898281518110614c9957fe5b6020908102919091010151901515608090910152600190960195614cc0565b600101614c51565b505b60001901614bc4565b5084875103604051908082528060200260200182016040528015614d0957816020015b614cf6615a76565b815260200190600190039081614cee5790505b5095506000915060005b8751811015614d7257878181518110614d2857fe5b602002602001015160800151614d6a57878181518110614d4457fe5b6020026020010151878481518110614d5857fe5b60209081029190910101526001909201915b600101614d13565b505050505050919050565b600154815160005b82811015614e9a576001614d97615a76565b60018381548110614da457fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b84811015614e6e57868181518110614e3457fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b03161415614e665760009250614e6e565b600101614e20565b508115614e905780516001600160a01b03166000908152600460205260408120555b5050600101614d85565b5080821115614f4b57805b82811015614f49576001805480614eb857fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b805480614f0b57fe5b60008281526020812060166000199093019283020181815560018101805460ff1916905590614f3d6002830182615ad6565b50509055600101614ea5565b505b6000818310614f5a5781614f5c565b825b905060005b818110156151565761500e858281518110614f7857fe5b602002602001015160018381548110614f8d57fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a082015261595f565b61512957806001016004600087848151811061502657fe5b6020026020010151600001516001600160a01b03166001600160a01b031681526020019081526020016000208190555084818151811061506257fe5b60200260200101516001828154811061507757fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a09091015160039091015561514e565b60006001828154811061513857fe5b9060005260206000209060040201600301819055505b600101614f61565b50828211156152fb576151676159e0565b835b838110156152f857600186828151811061517f57fe5b6020908102919091018101518254600181810185556000948552838520835160049093020180546001600160a01b039384166001600160a01b0319918216178255848601518284018054918616918316919091179055604080860151600284018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909a1692909616919091179290921696909617169190911790935560a090930151600390930192909255600b8054928301815590935284516016909102600080516020615fc08339815191528101918255918501516000805160206160d08339815191528301805491151560ff19909216919091179055918401518492916152b491600080516020616006833981519152909101906014615a04565b50505080600101600460008884815181106152cb57fe5b602090810291909101810151516001600160a01b0316825281019190915260400160002055600101615169565b50505b6000600981905560015493505b83811015615369576000600b828154811061531f57fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b80548390811061535057fe5b6000918252602090912060169091020155600101615308565b5050505050565b600081836153fc5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156153c15781810151838201526020016153a9565b50505050905090810190601f1680156153ee5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161540857fe5b0495945050505050565b600081848411156154645760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156153c15781810151838201526020016153a9565b505050900390565b805160009061547d575060006111fa565b6020820151805160001a9060c082101561549c576000925050506111fa565b5060019392505050565b8051600090811a60808110156154c05760009150506111fa565b60b88110806154db575060c081108015906154db575060f881105b156154ea5760019150506111fa565b60c08110156154fe5760b5190190506111fa565b60f5190190506111fa565b80516000908190811a60808110156155245760019150615635565b60b881101561553957607e1981019150615635565b60c08110156155b357600060b78203600186019550806020036101000a8651049150600181018201935050808310156155ad576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50615635565b60f88110156155c85760be1981019150615635565b600060f78203600186019550806020036101000a865104915060018101820193505080831015615633576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b805160009061564d575060006111fa565b6000809050600061566184602001516154a6565b602085015185519181019250015b8082101561568f5761568082615509565b6001909301929091019061566f565b50909392505050565b80516000906015146156a957600080fd5b6112aa826147c9565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166156f65750601861571a565b6fffffffffffffffffffffffffffffffff1984166157165750601061571a565b5060005b60208110156157505781818151811061572f57fe5b01602001516001600160f81b0319161561574857615750565b60010161571a565b60008160200390506060816040519080825280601f01601f191660200182016040528015615785576020820181803683370190505b5080830196909652508452509192915050565b6060815160011480156157ca5750607f60f81b826000815181106157b857fe5b01602001516001600160f81b03191611155b156157d65750806111fa565b6112aa6157e88351608060ff16615867565b835b6060806040519050835180825260208201818101602087015b8183101561581b578051835260209283019201615803565b50855184518101855292509050808201602086015b81831015615848578051835260209283019201615830565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106158b7576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b604080516001808252818301909252606091602082018180368337019050509050603784116159115782840160f81b816000815181106158f357fe5b60200101906001600160f81b031916908160001a90535090506112aa565b606061591c856156b2565b90508381510160370160f81b8260008151811061593557fe5b60200101906001600160f81b031916908160001a90535061595682826157ea565b95945050505050565b805182516000916001600160a01b039182169116148015615999575081602001516001600160a01b031683602001516001600160a01b0316145b80156159be575081604001516001600160a01b031683604001516001600160a01b0316145b80156111155750506060908101519101516001600160401b0390811691161490565b60408051606081018252600080825260208201529081016159ff615aff565b905290565b8260148101928215615a32579160200282015b82811115615a32578251825591602001919060010190615a17565b50612464929150615b1e565b60408051808201909152600081526060602082015290565b6040518060400160405280615a69615ae5565b8152602001600081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b8260148101928215615a32579182015b82811115615a32578254825591600101919060010190615abb565b5061140c906014810190615b1e565b604051806040016040528060008152602001600081525090565b6040518061028001604052806014906020820280368337509192915050565b61152891905b808211156124645760008155600101615b2456fef901a880f901a4f844941284214b9b9c85549ab3d2b972df0deef66ac2c9946ddf42a51534fc98d0c0a3b42c963cace8441ddf946ddf42a51534fc98d0c0a3b42c963cace8441ddf8410000000f84494a2959d3f95eae5dc7d70144ce1b73b403b7eb6e0948081ef03f1d9e0bb4a5bf38f16285c879299f07f948081ef03f1d9e0bb4a5bf38f16285c879299f07f8410000000f8449435552c16704d214347f29fa77f77da6d75d7c75294dc4973e838e3949c77aced16ac2315dc2d7ab11194dc4973e838e3949c77aced16ac2315dc2d7ab1118410000000f84494980a75ecd1309ea12fa2ed87a8744fbfc9b863d594cc6ac05c95a99c1f7b5f88de0e3486c82293b27094cc6ac05c95a99c1f7b5f88de0e3486c82293b2708410000000f84494f474cf03cceff28abc65c9cbae594f725c80e12d94e61a183325a18a173319dd8e19c8d069459e217594e61a183325a18a173319dd8e19c8d069459e21758410000000f84494b71b214cb885500844365e95cd9942c7276e7fd894d22ca3ba2141d23adab65ce4940eb7665ea2b6a794d22ca3ba2141d23adab65ce4940eb7665ea2b6a784100000006c656e677468206f66206d61784e756d4f664d61696e7461696e696e67206d69736d617463686c656e677468206f66206d61784e756d4f66576f726b696e6743616e64696461746573206d69736d617463686c656e677468206f66206d61696e7461696e536c6173685363616c65206d69736d61746368746865206d61784e756d4f664d61696e7461696e696e67206d757374206265206c657373207468616e206e756d4f6643616e696e61746573746865206e756d4f66436162696e657473206d7573742062652067726561746572207468616e2030746865206e756d4f66436162696e657473206d757374206265206c657373207468616e204d41585f4e554d5f4f465f56414c494441544f5253746865206e756d626572206f662076616c696461746f72732065786365656420746865206c696d6974746865206275726e526174696f206d757374206265206e6f2067726561746572207468616e2031303030306475706c696361746520636f6e73656e7375732061646472657373206f662076616c696461746f725365747468652065787069726554696d655365636f6e64476170206973206f7574206f662072616e6765746865206d61784e756d4f66576f726b696e6743616e64696461746573206d757374206265206e6f742067726561746572207468616e206d61784e756d4f6643616e6469646174657363616e206e6f7420656e7465722054656d706f72617279204d61696e74656e616e63656c656e677468206f66206a61696c2076616c696461746f7273206d757374206265206f6e65536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f66206d61784e756d4f6643616e64696461746573206d69736d61746368666565206973206c6172676572207468616e2044555354595f494e434f4d494e470175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db96c656e677468206f662065787069726554696d655365636f6e64476170206d69736d617463680175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbb6661696c656420746f20706172736520696e69742076616c696461746f72536574746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d6573736167652073656e646572206d7573742062652074686520626c6f636b2070726f6475636572746865206d61696e7461696e536c6173685363616c65206d7573742062652067726561746572207468616e20300175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dba746865206d6573736167652073656e646572206d75737420626520736c61736820636f6e7472616374a2646970667358221220c0dc878fd08b0a4bf6659ead68604aefff201930a1931eca7eb88ebdf3b0a03e64736f6c63430006040033" + }, + "0x0000000000000000000000000000000000001001": { + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b506004361061023d5760003560e01c80638256ace61161013b578063c80d4b8f116100b8578063e1c7392a1161007c578063e1c7392a1461071d578063f9a2bbc714610725578063fc3e59081461072d578063fc4333cd14610735578063fd6a68791461073d5761023d565b8063c80d4b8f14610667578063c81b16621461066f578063c8509d8114610677578063c96be4cb146106ef578063dc927faf146107155761023d565b8063a1a11bf5116100ff578063a1a11bf514610575578063a78abc161461057d578063ab51bb9614610599578063ac0af629146105a1578063ac431751146105a95761023d565b80638256ace6146104dd578063831d65d1146104e557806396713da91461055d5780639bc8e4f2146105655780639dc092621461056d5761023d565b80634bf6c882116101c95780636e47b4821161018d5780636e47b482146104b557806370fd5bad146104bd57806375d47a0a146104c55780637912a65d146104cd5780637942fd05146104d55761023d565b80634bf6c8821461046d57806351e8067214610475578063567a372d1461047d5780635bfb49901461048557806362b72cf5146104ad5761023d565b806337c8dab91161021057806337c8dab9146103cf578063389f4f711461040e5780633dffc3871461042857806343756e5c14610446578063493279b11461044e5761023d565b80630bee7a67146102425780631182b8751461026357806323bac5a21461035057806335aa2e4414610396575b600080fd5b61024a610745565b6040805163ffffffff9092168252519081900360200190f35b6102db6004803603604081101561027957600080fd5b60ff8235169190810190604081016020820135600160201b81111561029d57600080fd5b8201836020820111156102af57600080fd5b803590602001918460018302840111600160201b831117156102d057600080fd5b50909250905061074a565b6040805160208082528351818301528351919283929083019185019080838360005b838110156103155781810151838201526020016102fd565b50505050905090810190601f1680156103425780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103766004803603602081101561036657600080fd5b50356001600160a01b031661081e565b604080519384526020840192909252151582820152519081900360600190f35b6103b3600480360360208110156103ac57600080fd5b5035610841565b604080516001600160a01b039092168252519081900360200190f35b6103f5600480360360208110156103e557600080fd5b50356001600160a01b0316610868565b6040805192835260208301919091528051918290030190f35b6104166108bf565b60408051918252519081900360200190f35b6104306108c5565b6040805160ff9092168252519081900360200190f35b6103b36108ca565b6104566108d0565b6040805161ffff9092168252519081900360200190f35b6104306108d5565b6103b36108da565b6104166108e0565b6104ab6004803603602081101561049b57600080fd5b50356001600160a01b03166108e6565b005b610416610a47565b6103b3610a4d565b610430610a53565b6103b3610a58565b610416610a5e565b610430610a63565b6103f5610a68565b6104ab600480360360408110156104fb57600080fd5b60ff8235169190810190604081016020820135600160201b81111561051f57600080fd5b82018360208201111561053157600080fd5b803590602001918460018302840111600160201b8311171561055257600080fd5b509092509050610a72565b610430610bcc565b610416610bd1565b6103b3610bdc565b6103b3610be2565b610585610be8565b604080519115158252519081900360200190f35b61024a610bf1565b610416610bf6565b6104ab600480360360408110156105bf57600080fd5b810190602081018135600160201b8111156105d957600080fd5b8201836020820111156105eb57600080fd5b803590602001918460018302840111600160201b8311171561060c57600080fd5b919390929091602081019035600160201b81111561062957600080fd5b82018360208201111561063b57600080fd5b803590602001918460018302840111600160201b8311171561065c57600080fd5b509092509050610bfb565b610416610fe9565b6103b3610fee565b6104ab6004803603604081101561068d57600080fd5b60ff8235169190810190604081016020820135600160201b8111156106b157600080fd5b8201836020820111156106c357600080fd5b803590602001918460018302840111600160201b831117156106e457600080fd5b509092509050610ff4565b6104ab6004803603602081101561070557600080fd5b50356001600160a01b03166110a7565b6103b361154a565b6104ab611550565b6103b36115c1565b6104306115c7565b6104ab6115cc565b6103b3611a57565b606481565b6060336120001461078c5760405162461bcd60e51b815260040180806020018281038252602f8152602001806124ae602f913960400191505060405180910390fd5b60005460ff166107d1576040805162461bcd60e51b8152602060048201526019602482015260008051602061250a833981519152604482015290519081900360640190fd5b6040805162461bcd60e51b815260206004820152601e60248201527f7265636569766520756e65787065637465642073796e207061636b6167650000604482015290519081900360640190fd5b600260208190526000918252604090912080546001820154919092015460ff1683565b6001818154811061084e57fe5b6000918252602090912001546001600160a01b0316905081565b600080610873612372565b5050506001600160a01b0316600090815260026020818152604092839020835160608101855281548082526001830154938201849052919093015460ff16151592909301919091529091565b60055481565b600181565b61100181565b606181565b600881565b61200081565b60045481565b33611000146109265760405162461bcd60e51b81526004018080602001828103825260308152602001806124096030913960400191505060405180910390fd5b60005460ff1661096b576040805162461bcd60e51b8152602060048201526019602482015260008051602061250a833981519152604482015290519081900360640190fd5b61200063f7a251d7600b61097e84611a5d565b60006040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156109de5781810151838201526020016109c6565b50505050905090810190601f168015610a0b5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015610a2c57600080fd5b505af1158015610a40573d6000803e3d6000fd5b5050505050565b60035481565b61100581565b600281565b61100881565b603281565b600b81565b6004546005549091565b3361200014610ab25760405162461bcd60e51b815260040180806020018281038252602f8152602001806124ae602f913960400191505060405180910390fd5b60005460ff16610af7576040805162461bcd60e51b8152602060048201526019602482015260008051602061250a833981519152604482015290519081900360640190fd5b610aff612395565b6000610b4084848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611b2f92505050565b915091508015610b8a5781516040805163ffffffff9092168252517f7f0956d47419b9525356e7111652b653b530ec6f5096dccc04589bc38e6299679181900360200190a1610a40565b81516040805163ffffffff9092168252517f7d45f62d17443dd4547bca8a8112c60e2385669318dc300ec61a5d2492f262e79181900360200190a15050505050565b600981565b662386f26fc1000081565b61100781565b61100681565b60005460ff1681565b600081565b600481565b60005460ff16610c40576040805162461bcd60e51b8152602060048201526019602482015260008051602061250a833981519152604482015290519081900360640190fd5b3361100714610c805760405162461bcd60e51b815260040180806020018281038252602e815260200180612439602e913960400191505060405180910390fd5b610ceb84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260148152731b5a5cd9195b59585b9bdc951a1c995cda1bdb1960621b60208201529150611baf9050565b15610dc45760208114610d2f5760405162461bcd60e51b81526004018080602001828103825260278152602001806123e26027913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610d6d91858580838501838280828437600092019190915250611c9792505050565b905060018110158015610d81575060055481105b610dbc5760405162461bcd60e51b81526004018080602001828103825260258152602001806124896025913960400191505060405180910390fd5b600455610f57565b610e2a84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e19995b1bdb9e551a1c995cda1bdb19608a1b60208201529150611baf9050565b15610f1a5760208114610e6e5760405162461bcd60e51b81526004018080602001828103825260228152602001806124676022913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610eac91858580838501838280828437600092019190915250611c9792505050565b90506103e88111158015610ec1575060045481115b610f12576040805162461bcd60e51b815260206004820181905260248201527f7468652066656c6f6e795468726573686f6c64206f7574206f662072616e6765604482015290519081900360640190fd5b600555610f57565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b609681565b61100281565b33612000146110345760405162461bcd60e51b815260040180806020018281038252602f8152602001806124ae602f913960400191505060405180910390fd5b60005460ff16611079576040805162461bcd60e51b8152602060048201526019602482015260008051602061250a833981519152604482015290519081900360640190fd5b6040517f07db600eebe2ac176be8dcebad61858c245a4961bb32ca2aa3d159b09aa0810e90600090a1505050565b3341146110e55760405162461bcd60e51b815260040180806020018281038252602d8152602001806124dd602d913960400191505060405180910390fd5b60005460ff1661112a576040805162461bcd60e51b8152602060048201526019602482015260008051602061250a833981519152604482015290519081900360640190fd5b6003544311611180576040805162461bcd60e51b815260206004820181905260248201527f63616e206e6f7420736c61736820747769636520696e206f6e6520626c6f636b604482015290519081900360640190fd5b3a156111ca576040805162461bcd60e51b81526020600482015260146024820152736761737072696365206973206e6f74207a65726f60601b604482015290519081900360640190fd5b6040805163155853f360e21b81526001600160a01b03831660048201529051611000916355614fcc916024808301926020929190829003018186803b15801561121257600080fd5b505afa158015611226573d6000803e3d6000fd5b505050506040513d602081101561123c57600080fd5b505161124757611543565b61124f612372565b506001600160a01b0381166000908152600260208181526040928390208351606081018552815481526001820154928101929092529091015460ff1615801592820192909252906112aa576020810180516001019052611303565b60016040820181905260208201819052805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0384161790555b43815260055460208201518161131557fe5b0661146757600060208201819052604080516335409f7f60e01b81526001600160a01b03851660048201529051611000926335409f7f926024808201939182900301818387803b15801561136857600080fd5b505af115801561137c573d6000803e3d6000fd5b505050506120006001600160a01b031663f7a251d7600b61139c85611a5d565b60006040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156113fc5781810151838201526020016113e4565b50505050905090810190601f1680156114295780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561144a57600080fd5b505af115801561145e573d6000803e3d6000fd5b505050506114dd565b60045481602001518161147657fe5b066114dd57604080516375abf10160e11b81526001600160a01b038416600482015290516110009163eb57e20291602480830192600092919082900301818387803b1580156114c457600080fd5b505af11580156114d8573d6000803e3d6000fd5b505050505b6001600160a01b0382166000818152600260208181526040808420865181559186015160018301558581015191909201805460ff1916911515919091179055517fddb6012116e51abf5436d956a4f0ebd927e92c576ff96d7918290c8782291e3e9190a2505b5043600355565b61100381565b60005460ff16156115a8576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b603260045560966005556000805460ff19166001179055565b61100081565b600381565b336110001461160c5760405162461bcd60e51b81526004018080602001828103825260308152602001806124096030913960400191505060405180910390fd5b60005460ff16611651576040805162461bcd60e51b8152602060048201526019602482015260008051602061250a833981519152604482015290519081900360640190fd5b60015461165d57611a55565b600154600090600019015b808211611a29576000805b8284101561178c57611683612372565b600260006001878154811061169457fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff1615159082015260055490915060049004816020015111156117765760046005548161170157fe5b0481602001510381602001818152505080600260006001888154811061172357fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208351815591830151600183015591909101516002909101805460ff1916911515919091179055611780565b600192505061178c565b50600190930192611673565b8284116119235761179b612372565b60026000600186815481106117ac57fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff1615159082015260055490915060049004816020015111156118945760046005548161181957fe5b0481602001510381602001818152505080600260006001878154811061183b57fe5b6000918252602080832091909101546001600160a01b03168352828101939093526040918201902083518155918301516001808401919091559201516002909101805460ff191691151591909117905591506119239050565b60026000600186815481106118a557fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff191690558054806118e957fe5b600082815260209020810160001990810180546001600160a01b0319169055019055836119165750611923565b506000199092019161178c565b81801561192d5750805b15611a0c57600260006001868154811061194357fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff1916905580548490811061198a57fe5b600091825260209091200154600180546001600160a01b0390921691869081106119b057fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060018054806119e957fe5b600082815260209020810160001990810180546001600160a01b03191690550190555b82611a18575050611a29565b505060019091019060001901611668565b6040517fcfdb3b6ccaeccbdc68be3c59c840e3b3c90f0a7c491f5fff1cf56cfda200dd9c90600090a150505b565b61100481565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081611a78579050509050611aa1836001600160a01b0316611c9c565b81600081518110611aae57fe5b6020026020010181905250611ac243611cbf565b81600181518110611acf57fe5b6020908102919091010152611ae46061611cbf565b81600281518110611af157fe5b6020026020010181905250611b0542611cbf565b81600381518110611b1257fe5b6020026020010181905250611b2681611cd2565b9150505b919050565b611b37612395565b6000611b41612395565b611b496123a7565b611b5a611b5586611d5c565b611d81565b90506000805b611b6983611dcb565b15611ba25780611b9557611b84611b7f84611dec565b611e3a565b63ffffffff16845260019150611b9a565b611ba2565b600101611b60565b5091935090915050915091565b6000816040516020018082805190602001908083835b60208310611be45780518252601f199092019160209182019101611bc5565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310611c525780518252601f199092019160209182019101611c33565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052805190602001201490505b92915050565b015190565b60408051600560a21b8318601482015260348101909152606090611b2681611ef1565b6060611c91611ccd83611f47565b611ef1565b6060815160001415611cf35750604080516000815260208101909152611b2a565b606082600081518110611d0257fe5b602002602001015190506000600190505b8351811015611d4357611d3982858381518110611d2c57fe5b602002602001015161202d565b9150600101611d13565b50611b26611d56825160c060ff166120aa565b8261202d565b611d646123c7565b506040805180820190915281518152602082810190820152919050565b611d896123a7565b611d92826121a2565b611d9b57600080fd5b6000611daa83602001516121dc565b60208085015160408051808201909152868152920190820152915050919050565b6000611dd56123c7565b505080518051602091820151919092015191011190565b611df46123c7565b611dfd82611dcb565b611e0657600080fd5b60208201516000611e168261223f565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590611e4f57508151602110155b611e5857600080fd5b6000611e6783602001516121dc565b90508083600001511015611ec2576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015611ee857826020036101000a820491505b50949350505050565b606081516001148015611f235750607f60f81b82600081518110611f1157fe5b01602001516001600160f81b03191611155b15611f2f575080611b2a565b611c91611f418351608060ff166120aa565b8361202d565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416611f8b57506018611faf565b6fffffffffffffffffffffffffffffffff198416611fab57506010611faf565b5060005b6020811015611fe557818181518110611fc457fe5b01602001516001600160f81b03191615611fdd57611fe5565b600101611faf565b60008160200390506060816040519080825280601f01601f19166020018201604052801561201a576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b8183101561205e578051835260209283019201612046565b50855184518101855292509050808201602086015b8183101561208b578051835260209283019201612073565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106120fa576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b604080516001808252818301909252606091602082018180368337019050509050603784116121545782840160f81b8160008151811061213657fe5b60200101906001600160f81b031916908160001a9053509050611c91565b606061215f85611f47565b90508381510160370160f81b8260008151811061217857fe5b60200101906001600160f81b031916908160001a905350612199828261202d565b95945050505050565b80516000906121b357506000611b2a565b6020820151805160001a9060c08210156121d257600092505050611b2a565b5060019392505050565b8051600090811a60808110156121f6576000915050611b2a565b60b8811080612211575060c08110801590612211575060f881105b15612220576001915050611b2a565b60c08110156122345760b519019050611b2a565b60f519019050611b2a565b80516000908190811a608081101561225a576001915061236b565b60b881101561226f57607e198101915061236b565b60c08110156122e957600060b78203600186019550806020036101000a8651049150600181018201935050808310156122e3576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b5061236b565b60f88110156122fe5760be198101915061236b565b600060f78203600186019550806020036101000a865104915060018101820193505080831015612369576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b604051806060016040528060008152602001600081526020016000151581525090565b60408051602081019091526000815290565b60405180604001604052806123ba6123c7565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe6c656e677468206f66206d697364656d65616e6f725468726573686f6c64206d69736d61746368746865206d6573736167652073656e646572206d7573742062652076616c696461746f7253657420636f6e7472616374746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662066656c6f6e795468726573686f6c64206d69736d61746368746865206d697364656d65616e6f725468726573686f6c64206f7574206f662072616e6765746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d6573736167652073656e646572206d7573742062652074686520626c6f636b2070726f647563657274686520636f6e7472616374206e6f7420696e69742079657400000000000000a2646970667358221220a288eb0fb37b1f80ed70929944f149856fbe848d775f3fe9d6a2f46faa67754564736f6c63430006040033" + } + }, + "22800220": { + "0x0000000000000000000000000000000000001004": { + "balance": "0x0", + "code": "0x60806040526004361061036f5760003560e01c80639a854bbd116101c6578063bd466461116100f7578063f014847211610095578063fc1a598f1161006f578063fc1a598f14610d58578063fc3e590814610a3b578063fd6a687914610d8b578063ff9c0027146106ec576103b7565b8063f014847214610d19578063f9a2bbc714610d2e578063fa9e915914610d43576103b7565b8063d9e6dae9116100d1578063d9e6dae91461066e578063dc927faf14610cda578063e1c7392a14610cef578063ebf71d5314610d04576103b7565b8063bd46646114610c0d578063c81b166214610c40578063c8509d8114610c55576103b7565b8063aa7415f511610164578063b99328c51161013e578063b99328c514610b77578063b9fd21e314610bb0578063ba35ead614610bc5578063bbface1f14610bda576103b7565b8063aa7415f514610a50578063ab51bb9614610a97578063ac43175114610aac576103b7565b8063a1a11bf5116101a0578063a1a11bf5146109fc578063a496fba214610a11578063a78abc1614610a26578063a7c9f02d14610a3b576103b7565b80639a854bbd146109995780639a99b4f0146109ae5780639dc09262146109e7576103b7565b806361368475116102a0578063727be1f81161023e578063831d65d111610218578063831d65d1146108c05780638b87b21f146105ed5780638eff336c1461094557806396713da914610984576103b7565b8063727be1f81461086c57806375d47a0a146108965780637942fd05146108ab576103b7565b80636e47b4821161027a5780636e47b4821461082d57806370fd5bad146106ec578063718a8aa81461084257806371d3086314610857576103b7565b8063613684751461066e57806366dea52a146106ec5780636e05652014610701576103b7565b806343a368b91161030d57806350432d32116102e757806350432d321461068357806351e806721461069857806359b92789146106ad5780635d499b1b146106d7576103b7565b806343a368b91461062d578063493279b1146106425780634bf6c8821461066e576103b7565b8063149d14d911610349578063149d14d9146105155780633d7132231461053c5780633dffc387146105ed57806343756e5c14610618576103b7565b80630bee7a67146103bc5780630e2374a5146103ea5780631182b8751461041b576103b7565b366103b75734156103b5576040805133815234602082015281517f6c98249d85d88c3753a04a22230f595e4dc8d3dc86c34af35deeeedc861b89db929181900390910190a15b005b600080fd5b3480156103c857600080fd5b506103d1610da0565b6040805163ffffffff9092168252519081900360200190f35b3480156103f657600080fd5b506103ff610da5565b604080516001600160a01b039092168252519081900360200190f35b34801561042757600080fd5b506104a06004803603604081101561043e57600080fd5b60ff8235169190810190604081016020820135600160201b81111561046257600080fd5b82018360208201111561047457600080fd5b803590602001918460018302840111600160201b8311171561049557600080fd5b509092509050610dab565b6040805160208082528351818301528351919283929083019185019080838360005b838110156104da5781810151838201526020016104c2565b50505050905090810190601f1680156105075780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561052157600080fd5b5061052a610ed9565b60408051918252519081900360200190f35b34801561054857600080fd5b506103ff6004803603602081101561055f57600080fd5b810190602081018135600160201b81111561057957600080fd5b82018360208201111561058b57600080fd5b803590602001918460018302840111600160201b831117156105ac57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610edf945050505050565b3480156105f957600080fd5b50610602610f03565b6040805160ff9092168252519081900360200190f35b34801561062457600080fd5b506103ff610f08565b34801561063957600080fd5b5061052a610f0e565b34801561064e57600080fd5b50610657610f1a565b6040805161ffff9092168252519081900360200190f35b34801561067a57600080fd5b50610602610f1f565b34801561068f57600080fd5b5061052a610f24565b3480156106a457600080fd5b506103ff610f2f565b3480156106b957600080fd5b506103ff600480360360208110156106d057600080fd5b5035610f35565b3480156106e357600080fd5b5061052a610f50565b3480156106f857600080fd5b50610602610f59565b6108196004803603608081101561071757600080fd5b810190602081018135600160201b81111561073157600080fd5b82018360208201111561074357600080fd5b803590602001918460208302840111600160201b8311171561076457600080fd5b919390929091602081019035600160201b81111561078157600080fd5b82018360208201111561079357600080fd5b803590602001918460208302840111600160201b831117156107b457600080fd5b919390929091602081019035600160201b8111156107d157600080fd5b8201836020820111156107e357600080fd5b803590602001918460208302840111600160201b8311171561080457600080fd5b91935091503567ffffffffffffffff16610f5e565b604080519115158252519081900360200190f35b34801561083957600080fd5b506103ff611433565b34801561084e57600080fd5b50610602611439565b34801561086357600080fd5b5061052a61143e565b34801561087857600080fd5b506108196004803603602081101561088f57600080fd5b5035611444565b3480156108a257600080fd5b506103ff6114be565b3480156108b757600080fd5b506106026114c4565b3480156108cc57600080fd5b506103b5600480360360408110156108e357600080fd5b60ff8235169190810190604081016020820135600160201b81111561090757600080fd5b82018360208201111561091957600080fd5b803590602001918460018302840111600160201b8311171561093a57600080fd5b5090925090506114c9565b34801561095157600080fd5b506103b56004803603606081101561096857600080fd5b508035906001600160a01b036020820135169060400135611612565b34801561099057600080fd5b50610602611698565b3480156109a557600080fd5b5061052a61169d565b3480156109ba57600080fd5b5061052a600480360360408110156109d157600080fd5b506001600160a01b0381351690602001356116a9565b3480156109f357600080fd5b506103ff6117e7565b348015610a0857600080fd5b506103ff6117ed565b348015610a1d57600080fd5b506106026117f3565b348015610a3257600080fd5b506108196117f8565b348015610a4757600080fd5b50610602611801565b61081960048036036080811015610a6657600080fd5b5080356001600160a01b03908116916020810135909116906040810135906060013567ffffffffffffffff16611806565b348015610aa357600080fd5b506103d16117f3565b348015610ab857600080fd5b506103b560048036036040811015610acf57600080fd5b810190602081018135600160201b811115610ae957600080fd5b820183602082011115610afb57600080fd5b803590602001918460018302840111600160201b83111715610b1c57600080fd5b919390929091602081019035600160201b811115610b3957600080fd5b820183602082011115610b4b57600080fd5b803590602001918460018302840111600160201b83111715610b6c57600080fd5b509092509050611ec7565b348015610b8357600080fd5b506103b560048036036040811015610b9a57600080fd5b50803590602001356001600160a01b0316612136565b348015610bbc57600080fd5b5061052a6121ac565b348015610bd157600080fd5b5061052a6121b6565b348015610be657600080fd5b5061052a60048036036020811015610bfd57600080fd5b50356001600160a01b03166121bc565b348015610c1957600080fd5b5061052a60048036036020811015610c3057600080fd5b50356001600160a01b03166121ce565b348015610c4c57600080fd5b506103ff6121e9565b348015610c6157600080fd5b506103b560048036036040811015610c7857600080fd5b60ff8235169190810190604081016020820135600160201b811115610c9c57600080fd5b820183602082011115610cae57600080fd5b803590602001918460018302840111600160201b83111715610ccf57600080fd5b5090925090506121ef565b348015610ce657600080fd5b506103ff6122bf565b348015610cfb57600080fd5b506103b56122c5565b348015610d1057600080fd5b50610602612365565b348015610d2557600080fd5b5061060261236a565b348015610d3a57600080fd5b506103ff61236f565b348015610d4f57600080fd5b5061052a612375565b348015610d6457600080fd5b506104a060048036036020811015610d7b57600080fd5b50356001600160a01b031661237b565b348015610d9757600080fd5b506103ff6124a2565b606481565b61200181565b60005460609060ff16610df3576040805162461bcd60e51b81526020600482015260196024820152600080516020614905833981519152604482015290519081900360640190fd5b3361200014610e335760405162461bcd60e51b815260040180806020018281038252602f8152602001806148b3602f913960400191505060405180910390fd5b60ff841660021415610e8557610e7e83838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506124a892505050565b9050610ed2565b6040805162461bcd60e51b815260206004820152601860248201527f756e7265636f676e697a65642073796e207061636b6167650000000000000000604482015290519081900360640190fd5b9392505050565b60015490565b6020818101516000908152600490915260409020546001600160a01b03165b919050565b600181565b61100181565b670de0b6b3a764000081565b606181565b600881565b66071afd498d000081565b61200081565b6000908152600460205260409020546001600160a01b031690565b6402540be40081565b600281565b6000805460ff16610fa4576040805162461bcd60e51b81526020600482015260196024820152600080516020614905833981519152604482015290519081900360640190fd5b868514610fe25760405162461bcd60e51b815260040180806020018281038252603b815260200180614878603b913960400191505060405180910390fd5b8683146110205760405162461bcd60e51b815260040180806020018281038252603f81526020018061474b603f913960400191505060405180910390fd5b426078018267ffffffffffffffff16101561106c5760405162461bcd60e51b815260040180806020018281038252602481526020018061463b6024913960400191505060405180910390fd5b6402540be4003406156110b05760405162461bcd60e51b815260040180806020018281038252604081526020018061497b6040913960400191505060405180910390fd5b604080518681526020808802820101909152859060009081906060908480156110e3578160200160208202803683370190505b50905060005b848110156111be576402540be4008b8b8381811061110357fe5b905060200201358161111157fe5b061561114e5760405162461bcd60e51b815260040180806020018281038252603c81526020018061478a603c913960400191505060405180910390fd5b6111738b8b8381811061115d57fe5b90506020020135856125cc90919063ffffffff16565b935061119f6402540be4008c8c8481811061118a57fe5b9050602002013561262690919063ffffffff16565b8282815181106111ab57fe5b60209081029190910101526001016110e9565b506001546111e3906111d6908663ffffffff61266816565b849063ffffffff6125cc16565b3410156112215760405162461bcd60e51b81526004018080602001828103825260568152602001806149256056913960600191505060405180910390fd5b611231348463ffffffff6126c116565b915061123b614461565b6040518060c001604052806221272160e91b60001b815260200160006001600160a01b031681526020018381526020018e8e808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505050908252506040805160208c810282810182019093528c82529283019290918d918d91829185019084908082843760009201919091525050509082525067ffffffffffffffff8916602090910152905061200063f7a251d760036112ff84612703565b611314876402540be40063ffffffff61262616565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561137257818101518382015260200161135a565b50505050905090810190601f16801561139f5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156113c057600080fd5b505af11580156113d4573d6000803e3d6000fd5b505060408051600081523360208201528082018890526060810187905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a15060019c9b505050505050505050505050565b61100581565b601081565b60015481565b600033612001146114865760405162461bcd60e51b815260040180806020018281038252603381526020018061457b6033913960400191505060405180910390fd5b6040516120019083156108fc029084906000818181858888f193505050501580156114b5573d6000803e3d6000fd5b50600192915050565b61100881565b600b81565b60005460ff1661150e576040805162461bcd60e51b81526020600482015260196024820152600080516020614905833981519152604482015290519081900360640190fd5b336120001461154e5760405162461bcd60e51b815260040180806020018281038252602f8152602001806148b3602f913960400191505060405180910390fd5b60ff83166003141561159e5761159982828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506129be92505050565b61160d565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a15b505050565b33611008146116525760405162461bcd60e51b81526004018080602001828103825260238152602001806148e26023913960400191505060405180910390fd5b600083815260046020908152604080832080546001600160a01b039096166001600160a01b03199096168617905593825260038152838220949094556002909352912055565b600981565b677ce66c50e284000081565b6000805460ff166116ef576040805162461bcd60e51b81526020600482015260196024820152600080516020614905833981519152604482015290519081900360640190fd5b336110051461172f5760405162461bcd60e51b815260040180806020018281038252602f8152602001806145ae602f913960400191505060405180910390fd5b600047831061173e5747611740565b825b9050670de0b6b3a764000081111561175c5760009150506117e1565b80156117de576040516001600160a01b0385169082156108fc029083906000818181858888f19350505050158015611798573d6000803e3d6000fd5b50604080516001600160a01b03861681526020810183905281517ff8b71c64315fc33b2ead2adfa487955065152a8ac33d9d5193aafd7f45dc15a0929181900390910190a15b90505b92915050565b61100781565b61100681565b600081565b60005460ff1681565b600381565b6000805460ff1661184c576040805162461bcd60e51b81526020600482015260196024820152600080516020614905833981519152604482015290519081900360640190fd5b426078018267ffffffffffffffff1610156118985760405162461bcd60e51b815260040180806020018281038252602481526020018061463b6024913960400191505060405180910390fd5b6402540be4003406156118dc5760405162461bcd60e51b815260040180806020018281038252604081526020018061497b6040913960400191505060405180910390fd5b600080806001600160a01b0388166119bb5760015461190290879063ffffffff6125cc16565b3410156119405760405162461bcd60e51b81526004018080602001828103825260618152602001806146c56061913960800191505060405180910390fd5b6402540be4008606156119845760405162461bcd60e51b815260040180806020018281038252603c81526020018061478a603c913960400191505060405180910390fd5b611994348763ffffffff6126c116565b90506119ab866402540be40063ffffffff61262616565b6221272160e91b93509150611c5e565b6001600160a01b038816600090815260036020526040902054925082611a125760405162461bcd60e51b81526004018080602001828103825260318152602001806146946031913960400191505060405180910390fd5b600154341015611a535760405162461bcd60e51b815260040180806020018281038252603f8152602001806147e7603f913960400191505060405180910390fd5b506001600160a01b0387166000908152600260205260409020543490600881111580611a9e5750600881118015611a9e5750611a9c876007198301600a0a63ffffffff612a1a16565b155b611ad95760405162461bcd60e51b815260040180806020018281038252603c81526020018061478a603c913960400191505060405180910390fd5b611ae38782612a5c565b9250611aee84612a9c565b15611b36576305f5e100831015611b365760405162461bcd60e51b815260040180806020018281038252603a8152602001806145dd603a913960400191505060405180910390fd5b600881101580611b505750600881108015611b5057508683115b611b8b5760405162461bcd60e51b81526004018080602001828103825260258152602001806147266025913960400191505060405180910390fd5b677ce66c50e2840000831115611bd25760405162461bcd60e51b815260040180806020018281038252603581526020018061465f6035913960400191505060405180910390fd5b604080516323b872dd60e01b81523360048201523060248201526044810189905290516001600160a01b038b16916323b872dd9160648083019260209291908290030181600087803b158015611c2757600080fd5b505af1158015611c3b573d6000803e3d6000fd5b505050506040513d6020811015611c5157600080fd5b5051611c5c57600080fd5b505b611c66614461565b6040805160c0810182528581526001600160a01b038b166020820152815160018082528184018452919283019181602001602082028036833750505081526040805160018082528183019092526020928301929091908083019080368337505050815260408051600180825281830190925260209283019290919080830190803683370190505081526020018767ffffffffffffffff168152509050828160400151600081518110611d1457fe5b602002602001018181525050878160600151600081518110611d3257fe5b60200260200101906001600160a01b031690816001600160a01b031681525050338160800151600081518110611d6457fe5b6001600160a01b039092166020928302919091019091015261200063f7a251d76003611d8f84612703565b611da4866402540be40063ffffffff61262616565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611e02578181015183820152602001611dea565b50505050905090810190601f168015611e2f5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015611e5057600080fd5b505af1158015611e64573d6000803e3d6000fd5b5050604080516001600160a01b038d1681523360208201528082018b90526060810186905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a150600198975050505050505050565b3361100714611f075760405162461bcd60e51b815260040180806020018281038252602e815260200180614826602e913960400191505060405180910390fd5b60208114611f5c576040805162461bcd60e51b815260206004820152601b60248201527f65787065637465642076616c7565206c656e6774682069732033320000000000604482015290519081900360640190fd5b606084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8801819004810282018101909252868152939450606093925086915085908190840183828082843760009201919091525050505060208301519091506772656c617946656560c01b811415612064576020820151670de0b6b3a7640000811180159061200b57506402540be4008106155b61205c576040805162461bcd60e51b815260206004820152601960248201527f7468652072656c6179466565206f7574206f662072616e676500000000000000604482015290519081900360640190fd5b6001556120a1565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a878787876040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050505050565b33611008146121765760405162461bcd60e51b81526004018080602001828103825260238152602001806148e26023913960400191505060405180910390fd5b600091825260046020908152604080842080546001600160a01b03191690556001600160a01b0392909216835260039052812055565b6221272160e91b81565b61c35081565b60026020526000908152604090205481565b6001600160a01b031660009081526003602052604090205490565b61100281565b60005460ff16612234576040805162461bcd60e51b81526020600482015260196024820152600080516020614905833981519152604482015290519081900360640190fd5b33612000146122745760405162461bcd60e51b815260040180806020018281038252602f8152602001806148b3602f913960400191505060405180910390fd5b60ff83166003141561159e5761159982828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612ba292505050565b61100381565b60005460ff161561231d576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b66071afd498d000060019081556000808052600260205260127fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b55805460ff19169091179055565b600481565b600581565b61100081565b61271081565b6001600160a01b03811660009081526003602090815260409182902054825182815280840190935260609290918391906020820181803683375050506020810183905290506000805b60208160ff16101561240b57828160ff16815181106123df57fe5b01602001516001600160f81b031916156123fe57600190910190612403565b61240b565b6001016123c4565b5060608160ff166040519080825280601f01601f19166020018201604052801561243c576020820181803683370190505b50905060005b8260ff168160ff16101561249857838160ff168151811061245f57fe5b602001015160f81c60f81b828260ff168151811061247957fe5b60200101906001600160f81b031916908160001a905350600101612442565b5095945050505050565b61100481565b60606124b26144ad565b60006124bd84612ca0565b9150915080612513576040805162461bcd60e51b815260206004820152601f60248201527f756e7265636f676e697a6564207472616e73666572496e207061636b61676500604482015290519081900360640190fd5b600061251e83612ddf565b905063ffffffff8116156125b2576040808401516020808601516001600160a01b031660009081526002909152918220546125599190612a5c565b90506125636144e2565b60405180608001604052808660000151815260200183815260200186608001516001600160a01b031681526020018463ffffffff1681525090506125a68161312c565b95505050505050610efe565b50506040805160008152602081019091529150610efe9050565b6000828201838110156117de576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60006117de83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613208565b600082612677575060006117e1565b8282028284828161268457fe5b04146117de5760405162461bcd60e51b81526004018080602001828103825260218152602001806147c66021913960400191505060405180910390fd5b60006117de83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506132aa565b60408051600680825260e08201909252606091829190816020015b606081526020019060019003908161271e575050835190915061274090613304565b8160008151811061274d57fe5b602002602001018190525061276e83602001516001600160a01b0316613317565b8160018151811061277b57fe5b6020026020010181905250600083604001515190506060816040519080825280602002602001820160405280156127c657816020015b60608152602001906001900390816127b15790505b50905060005b82811015612813576127f4866040015182815181106127e757fe5b6020026020010151613304565b82828151811061280057fe5b60209081029190910101526001016127cc565b5061281d8161333a565b8360028151811061282a57fe5b602002602001018190525060608260405190808252806020026020018201604052801561286b57816020015b60608152602001906001900390816128565790505b50905060005b838110156128c1576128a28760600151828151811061288c57fe5b60200260200101516001600160a01b0316613317565b8282815181106128ae57fe5b6020908102919091010152600101612871565b506128cb8161333a565b846003815181106128d857fe5b602002602001018190525060608360405190808252806020026020018201604052801561291957816020015b60608152602001906001900390816129045790505b50905060005b848110156129595761293a8860800151828151811061288c57fe5b82828151811061294657fe5b602090810291909101015260010161291f565b506129638161333a565b8560048151811061297057fe5b60200260200101819052506129928760a0015167ffffffffffffffff16613304565b8560058151811061299f57fe5b60200260200101819052506129b38561333a565b979650505050505050565b6129c6614509565b60006129d1836133c4565b9150915080612a115760405162461bcd60e51b81526004018080602001828103825260248152602001806148546024913960400191505060405180910390fd5b61160d8261358f565b60006117de83836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f0000000000000000815250613a13565b60006008821115612a8557612a7e836007198401600a0a63ffffffff61262616565b90506117e1565b6117de836008849003600a0a63ffffffff61266816565b604080516020808252818301909252600091606091906020820181803683375050506020810184905290506000805b60208160ff161015612b1257828160ff1681518110612ae657fe5b01602001516001600160f81b03191615612b0557600190910190612b0a565b612b12565b600101612acb565b50600760ff82161015612b2a57600092505050610efe565b816005820360ff1681518110612b3c57fe5b6020910101516001600160f81b031916602d60f81b14612b6157600092505050610efe565b816001820360ff1681518110612b7357fe5b6020910101516001600160f81b031916604d60f81b14612b9857600092505050610efe565b5060019392505050565b612baa614461565b6000612bb583613a75565b9150915080612bf55760405162461bcd60e51b81526004018080602001828103825260248152602001806146176024913960400191505060405180910390fd5b612bfd614509565b602080840180516001600160a01b0390811684526040808701518585015291511660009081526002909252812054905b846040015151811015612c7e57612c5b85604001518281518110612c4d57fe5b602002602001015183613cd9565b85604001518281518110612c6b57fe5b6020908102919091010152600101612c2d565b506080840151604083015260056060830152612c998261358f565b5050505050565b612ca86144ad565b6000612cb26144ad565b612cba614540565b612ccb612cc686613d12565b613d37565b90506000805b612cda83613d81565b15612dd25780612cfc57612cf5612cf084613da2565b613df0565b8452612dca565b8060011415612d2957612d16612d1184613da2565b613ea7565b6001600160a01b03166020850152612dca565b8060021415612d4857612d3e612cf084613da2565b6040850152612dca565b8060031415612d7057612d5d612d1184613da2565b6001600160a01b03166060850152612dca565b8060041415612d9857612d85612d1184613da2565b6001600160a01b03166080850152612dca565b8060051415612dc557612dad612cf084613da2565b67ffffffffffffffff1660a085015260019150612dca565b612dd2565b600101612cd1565b5091935090915050915091565b60208101516000906001600160a01b0316612f16578160a0015167ffffffffffffffff16421115612e1257506001610efe565b8160400151471015612e2657506003610efe565b606082015160408084015190516000926001600160a01b0316916127109184818181858888f193505050503d8060008114612e7d576040519150601f19603f3d011682016040523d82523d6000602084013e612e82565b606091505b5050905080612e95575060049050610efe565b7f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5983602001518460600151856040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a15060009050610efe565b8160a0015167ffffffffffffffff16421115612f3457506001610efe565b81516020808401516001600160a01b031660009081526003909152604090205414612f6157506002610efe565b602080830151604080516370a0823160e01b815230600482015290516000936001600160a01b03909316926370a082319261c3509260248083019392829003018187803b158015612fb157600080fd5b5086fa158015612fc5573d6000803e3d6000fd5b50505050506040513d6020811015612fdc57600080fd5b50516040840151909150811015612ff7575060039050610efe565b600083602001516001600160a01b031663a9059cbb61c350866060015187604001516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b15801561306857600080fd5b5087f115801561307c573d6000803e3d6000fd5b50505050506040513d602081101561309357600080fd5b505190508015613120577f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5984602001518560600151866040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a15060009150610efe9050565b5060059150610efe9050565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081613147575050835190915061316990613304565b8160008151811061317657fe5b602002602001018190525061318e8360200151613304565b8160018151811061319b57fe5b60200260200101819052506131bc83604001516001600160a01b0316613317565b816002815181106131c957fe5b60200260200101819052506131e7836060015163ffffffff16613304565b816003815181106131f457fe5b6020026020010181905250610ed28161333a565b600081836132945760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613259578181015183820152602001613241565b50505050905090810190601f1680156132865780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816132a057fe5b0495945050505050565b600081848411156132fc5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315613259578181015183820152602001613241565b505050900390565b60606117e161331283613ec1565b613fa7565b60408051600560a21b8318601482015260348101909152606090610ed281613fa7565b606081516000141561335b5750604080516000815260208101909152610efe565b60608260008151811061336a57fe5b602002602001015190506000600190505b83518110156133ab576133a18285838151811061339457fe5b6020026020010151613ff9565b915060010161337b565b50610ed26133be825160c060ff16614076565b82613ff9565b6133cc614509565b60006133d6614509565b6133de614540565b6133ea612cc686613d12565b90506000805b6133f983613d81565b15612dd2578061341f5761340f612d1184613da2565b6001600160a01b03168452613587565b80600114156134c057606061343b61343685613da2565b61416e565b90508051604051908082528060200260200182016040528015613468578160200160208202803683370190505b50602086015260005b81518110156134b95761349682828151811061348957fe5b6020026020010151613df0565b866020015182815181106134a657fe5b6020908102919091010152600101613471565b5050613587565b80600214156135625760606134d761343685613da2565b90508051604051908082528060200260200182016040528015613504578160200160208202803683370190505b50604086015260005b81518110156134b95761353282828151811061352557fe5b6020026020010151613ea7565b8660400151828151811061354257fe5b6001600160a01b039092166020928302919091019091015260010161350d565b8060031415612dc557613577612cf084613da2565b63ffffffff166060850152600191505b6001016133f0565b80516001600160a01b03166137b95760005b8160200151518110156137b3576000826040015182815181106135c057fe5b60200260200101516001600160a01b0316612710846020015184815181106135e457fe5b60209081029190910101516040516000818181858888f193505050503d806000811461362c576040519150601f19603f3d011682016040523d82523d6000602084013e613631565b606091505b50509050806136f4577f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061367057fe5b60200260200101518560200151858151811061368857fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a16137aa565b7fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a83600001518460400151848151811061372a57fe5b60200260200101518560200151858151811061374257fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b506001016135a1565b50613a10565b60005b816020015151811015613a0e57600082600001516001600160a01b031663a9059cbb61c350856040015185815181106137f157fe5b60200260200101518660200151868151811061380957fe5b60200260200101516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b15801561386057600080fd5b5087f1158015613874573d6000803e3d6000fd5b50505050506040513d602081101561388b57600080fd5b50519050801561394f577fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a8360000151846040015184815181106138cb57fe5b6020026020010151856020015185815181106138e357fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a1613a05565b7f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061398557fe5b60200260200101518560200151858151811061399d57fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b506001016137bc565b505b50565b60008183613a625760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315613259578181015183820152602001613241565b50828481613a6c57fe5b06949350505050565b613a7d614461565b6000613a87614461565b613a8f614540565b613a9b612cc686613d12565b90506000805b613aaa83613d81565b15612dd25780613ac757613ac0612cf084613da2565b8452613cd1565b8060011415613aef57613adc612d1184613da2565b6001600160a01b03166020850152613cd1565b8060021415613b7e576060613b0661343685613da2565b90508051604051908082528060200260200182016040528015613b33578160200160208202803683370190505b50604086015260005b8151811015613b7757613b5482828151811061348957fe5b86604001518281518110613b6457fe5b6020908102919091010152600101613b3c565b5050613cd1565b8060031415613c13576060613b9561343685613da2565b90508051604051908082528060200260200182016040528015613bc2578160200160208202803683370190505b50606086015260005b8151811015613b7757613be382828151811061352557fe5b86606001518281518110613bf357fe5b6001600160a01b0390921660209283029190910190910152600101613bcb565b8060041415613ca8576060613c2a61343685613da2565b90508051604051908082528060200260200182016040528015613c57578160200160208202803683370190505b50608086015260005b8151811015613b7757613c7882828151811061352557fe5b86608001518281518110613c8857fe5b6001600160a01b0390921660209283029190910190910152600101613c60565b8060051415612dc557613cbd612cf084613da2565b67ffffffffffffffff1660a0850152600191505b600101613aa1565b60006008821115613cfb57612a7e836007198401600a0a63ffffffff61266816565b6117de836008849003600a0a63ffffffff61262616565b613d1a614560565b506040805180820190915281518152602082810190820152919050565b613d3f614540565b613d488261423f565b613d5157600080fd5b6000613d60836020015161426f565b60208085015160408051808201909152868152920190820152915050919050565b6000613d8b614560565b505080518051602091820151919092015191011190565b613daa614560565b613db382613d81565b613dbc57600080fd5b60208201516000613dcc826142d2565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590613e0557508151602110155b613e0e57600080fd5b6000613e1d836020015161426f565b90508083600001511015613e78576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015613e9e57826020036101000a820491505b50949350505050565b8051600090601514613eb857600080fd5b6117e182613df0565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416613f0557506018613f29565b6fffffffffffffffffffffffffffffffff198416613f2557506010613f29565b5060005b6020811015613f5f57818181518110613f3e57fe5b01602001516001600160f81b03191615613f5757613f5f565b600101613f29565b60008160200390506060816040519080825280601f01601f191660200182016040528015613f94576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015613fd95750607f60f81b82600081518110613fc757fe5b01602001516001600160f81b03191611155b15613fe5575080610efe565b6117e1613ff78351608060ff16614076565b835b6060806040519050835180825260208201818101602087015b8183101561402a578051835260209283019201614012565b50855184518101855292509050808201602086015b8183101561405757805183526020928301920161403f565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106140c6576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b604080516001808252818301909252606091602082018180368337019050509050603784116141205782840160f81b8160008151811061410257fe5b60200101906001600160f81b031916908160001a90535090506117e1565b606061412b85613ec1565b90508381510160370160f81b8260008151811061414457fe5b60200101906001600160f81b031916908160001a9053506141658282613ff9565b95945050505050565b60606141798261423f565b61418257600080fd5b600061418d83614405565b90506060816040519080825280602002602001820160405280156141cb57816020015b6141b8614560565b8152602001906001900390816141b05790505b50905060006141dd856020015161426f565b60208601510190506000805b84811015614234576141fa836142d2565b915060405180604001604052808381526020018481525084828151811061421d57fe5b6020908102919091010152918101916001016141e9565b509195945050505050565b805160009061425057506000610efe565b6020820151805160001a9060c0821015612b9857600092505050610efe565b8051600090811a6080811015614289576000915050610efe565b60b88110806142a4575060c081108015906142a4575060f881105b156142b3576001915050610efe565b60c08110156142c75760b519019050610efe565b60f519019050610efe565b80516000908190811a60808110156142ed57600191506143fe565b60b881101561430257607e19810191506143fe565b60c081101561437c57600060b78203600186019550806020036101000a865104915060018101820193505080831015614376576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b506143fe565b60f88110156143915760be19810191506143fe565b600060f78203600186019550806020036101000a8651049150600181018201935050808310156143fc576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b805160009061441657506000610efe565b6000809050600061442a846020015161426f565b602085015185519181019250015b8082101561445857614449826142d2565b60019093019290910190614438565b50909392505050565b6040518060c001604052806000801916815260200160006001600160a01b03168152602001606081526020016060815260200160608152602001600067ffffffffffffffff1681525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b60408051608081018252600080825260208201819052918101829052606081019190915290565b604051806080016040528060006001600160a01b031681526020016060815260200160608152602001600063ffffffff1681525090565b6040518060400160405280614553614560565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe6f6e6c79207374616b696e672073797374656d20636f6e74726163742063616e2063616c6c20746869732066756e6374696f6e746865206d6573736167652073656e646572206d75737420626520696e63656e746976697a6520636f6e7472616374466f72206d696e69546f6b656e2c20746865207472616e7366657220616d6f756e74206d757374206e6f74206265206c657373207468616e2031756e7265636f676e697a6564207472616e736665724f75742073796e207061636b61676565787069726554696d65206d7573742062652074776f206d696e75746573206c61746572616d6f756e7420697320746f6f206c617267652c20657863656564206d6178696d756d206265703220746f6b656e20616d6f756e7474686520636f6e747261637420686173206e6f74206265656e20626f756e6420746f20616e79206265703220746f6b656e726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e736665724f757420424e4220616d6f756e7420616e64206d696e696d756d2072656c6179466565616d6f756e7420697320746f6f206c617267652c2075696e74323536206f766572666c6f774c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620726566756e644164647273696e76616c6964207472616e7366657220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e20746865206d696e696d756d2072656c6179466565746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374756e7265636f676e697a6564207472616e736665724f75742061636b207061636b6167654c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620616d6f756e7473746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d73672073656e646572206d75737420626520746f6b656e4d616e6167657274686520636f6e7472616374206e6f7420696e69742079657400000000000000726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e7366657220424e4220616d6f756e7420616e642072656c6179466565696e76616c696420726563656976656420424e4220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6ea2646970667358221220caf56ff249aa6ca806ce69d2892ae51c7530b6d135624d7e27646a2095f0b01964736f6c63430006040033" + }, + "0x0000000000000000000000000000000000002001": { + "balance": "0x0", + "code": "0x60806040526004361061036f5760003560e01c806370fd5bad116101c6578063b88a802f116100f7578063d7ecfcb611610095578063f45fd80b1161006f578063f45fd80b14610bd0578063f9a2bbc714610c15578063fc3e590814610646578063fd6a687914610c2a57610376565b8063d7ecfcb6146107ee578063dc927faf14610ba6578063edc1a5b014610bbb57610376565b8063c2117d82116100d1578063c2117d8214610abc578063c81b166214610ad1578063c8509d8114610ae6578063d61b9b9314610b6b57610376565b8063b88a802f14610a57578063baaafd3b14610a6c578063bf8546ca14610a8157610376565b806396713da911610164578063a78abc161161013e578063a78abc1614610939578063ab51bb9614610962578063ac43175114610977578063b14315df14610a4257610376565b806396713da9146108fa5780639dc092621461090f578063a1a11bf51461092457610376565b806375d47a0a116101a057806375d47a0a1461084b5780637942fd0514610860578063831d65d11461087557806392b888a4146105f257610376565b806370fd5bad146107ee578063718a8aa81461080357806375aca5931461081857610376565b8063413d9c3a116102a05780635d17c8bd1161023e57806369b635b61161021857806369b635b61461075b5780636bd8f804146107705780636e47b482146107a65780636fb7f7eb146107bb57610376565b80635d17c8bd1461071c5780635d499b1b1461073157806362b171d21461074657610376565b80634bf6c8821161027a5780634bf6c882146106b15780634d99dd16146106c657806351e80672146106f2578063552aaf931461070757610376565b8063413d9c3a1461065b57806343756e5c14610670578063493279b11461068557610376565b8063151817e31161030d578063333ad3e7116102e7578063333ad3e71461061c57806334c43354146106315780633dffc387146105f25780633fdfa7e41461064657610376565b8063151817e3146105c757806317c9efb0146105f25780632fdeb1111461060757610376565b80630bee7a67116103495780630bee7a671461043b5780630e2374a5146104695780631182b8751461049a57806311fe9ec61461059457610376565b8063026e402b1461037b57806302985992146103a9578063047636d1146103d057610376565b3661037657005b600080fd5b6103a76004803603604081101561039157600080fd5b506001600160a01b038135169060200135610c3f565b005b3480156103b557600080fd5b506103be611141565b60408051918252519081900360200190f35b3480156103dc57600080fd5b50610403600480360360208110156103f357600080fd5b50356001600160a01b0316611147565b6040518082606080838360005b83811015610428578181015183820152602001610410565b5050505090500191505060405180910390f35b34801561044757600080fd5b5061045061119b565b6040805163ffffffff9092168252519081900360200190f35b34801561047557600080fd5b5061047e6111a0565b604080516001600160a01b039092168252519081900360200190f35b3480156104a657600080fd5b5061051f600480360360408110156104bd57600080fd5b60ff8235169190810190604081016020820135600160201b8111156104e157600080fd5b8201836020820111156104f357600080fd5b803590602001918460018302840111600160201b8311171561051457600080fd5b5090925090506111a6565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610559578181015183820152602001610541565b50505050905090810190601f1680156105865780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156105a057600080fd5b506103be600480360360208110156105b757600080fd5b50356001600160a01b031661135c565b3480156105d357600080fd5b506105dc611377565b6040805160ff9092168252519081900360200190f35b3480156105fe57600080fd5b506105dc61137c565b34801561061357600080fd5b506103be611381565b34801561062857600080fd5b50610450611387565b34801561063d57600080fd5b506103be61138c565b34801561065257600080fd5b506105dc611397565b34801561066757600080fd5b506103be61139c565b34801561067c57600080fd5b5061047e6113a3565b34801561069157600080fd5b5061069a6113a9565b6040805161ffff9092168252519081900360200190f35b3480156106bd57600080fd5b506105dc6113ae565b6103a7600480360360408110156106dc57600080fd5b506001600160a01b0381351690602001356113b3565b3480156106fe57600080fd5b5061047e61199a565b34801561071357600080fd5b506105dc6119a0565b34801561072857600080fd5b506103be6119a5565b34801561073d57600080fd5b506103be6119ab565b34801561075257600080fd5b506103be6119b4565b34801561076757600080fd5b506103be611aec565b6103a76004803603606081101561078657600080fd5b506001600160a01b03813581169160208101359091169060400135611af2565b3480156107b257600080fd5b5061047e612160565b3480156107c757600080fd5b506103be600480360360208110156107de57600080fd5b50356001600160a01b0316612166565b3480156107fa57600080fd5b506105dc612181565b34801561080f57600080fd5b506105dc612186565b34801561082457600080fd5b506103be6004803603602081101561083b57600080fd5b50356001600160a01b031661218b565b34801561085757600080fd5b5061047e6121a6565b34801561086c57600080fd5b506105dc6121ac565b34801561088157600080fd5b506103a76004803603604081101561089857600080fd5b60ff8235169190810190604081016020820135600160201b8111156108bc57600080fd5b8201836020820111156108ce57600080fd5b803590602001918460018302840111600160201b831117156108ef57600080fd5b5090925090506121b1565b34801561090657600080fd5b506105dc612473565b34801561091b57600080fd5b5061047e612478565b34801561093057600080fd5b5061047e61247e565b34801561094557600080fd5b5061094e612484565b604080519115158252519081900360200190f35b34801561096e57600080fd5b506104506119a0565b34801561098357600080fd5b506103a76004803603604081101561099a57600080fd5b810190602081018135600160201b8111156109b457600080fd5b8201836020820111156109c657600080fd5b803590602001918460018302840111600160201b831117156109e757600080fd5b919390929091602081019035600160201b811115610a0457600080fd5b820183602082011115610a1657600080fd5b803590602001918460018302840111600160201b83111715610a3757600080fd5b50909250905061248d565b348015610a4e57600080fd5b506105dc612a8a565b348015610a6357600080fd5b506103be612a8f565b348015610a7857600080fd5b506103be612bc4565b348015610a8d57600080fd5b506103be60048036036040811015610aa457600080fd5b506001600160a01b0381358116916020013516612bcf565b348015610ac857600080fd5b506103be612bfc565b348015610add57600080fd5b5061047e612c02565b348015610af257600080fd5b506103a760048036036040811015610b0957600080fd5b60ff8235169190810190604081016020820135600160201b811115610b2d57600080fd5b820183602082011115610b3f57600080fd5b803590602001918460018302840111600160201b83111715610b6057600080fd5b509092509050612c08565b348015610b7757600080fd5b506103be60048036036040811015610b8e57600080fd5b506001600160a01b0381358116916020013516612e25565b348015610bb257600080fd5b5061047e612e50565b348015610bc757600080fd5b506103be612e56565b348015610bdc57600080fd5b506103be60048036036060811015610bf357600080fd5b506001600160a01b038135811691602081013582169160409091013516612e63565b348015610c2157600080fd5b5061047e612e98565b348015610c3657600080fd5b5061047e612e9e565b60105460ff1660021415610c8b576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b6010805460ff19166002179055806402540be4003406158015610cb357506402540be4008106155b610d04576040805162461bcd60e51b815260206004820152601c60248201527f707265636973696f6e206c6f737320696e20636f6e76657273696f6e00000000604482015290519081900360640190fd5b60005460ff16610d41576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556000805460ff191690911790555b600354821015610d98576040805162461bcd60e51b815260206004820152601760248201527f696e76616c69642064656c656761746520616d6f756e74000000000000000000604482015290519081900360640190fd5b600154610dac90839063ffffffff612ea416565b341015610df7576040805162461bcd60e51b81526020600482015260146024820152736e6f7420656e6f756768206d73672076616c756560601b604482015290519081900360640190fd5b60405133906108fc9060009081818181818888f19350505050610e55576040805162461bcd60e51b815260206004820152601160248201527034b73b30b634b2103232b632b3b0ba37b960791b604482015290519081900360640190fd5b6000610e6c836402540be40063ffffffff612f0516565b90506000610e80348563ffffffff612f4716565b90506000610e9960025483612f4790919063ffffffff16565b6040805160038082526080820190925291925060609190816020015b6060815260200190600190039081610eb5579050509050610ed533612f89565b81600081518110610ee257fe5b6020026020010181905250610eff876001600160a01b0316612f89565b81600181518110610f0c57fe5b6020026020010181905250610f2084612fac565b81600281518110610f2d57fe5b60200260200101819052506060610f4d6001610f4884612fbf565b613049565b8051602080830191909120600f80546000908152600a845260408082209390935581546001908101909255338152600b909352912080549091019055905061200063f7a251d7601083610fab876402540be40063ffffffff612f0516565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611009578181015183820152602001610ff1565b50505050905090810190601f1680156110365780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561105757600080fd5b505af115801561106b573d6000803e3d6000fd5b5061100492506108fc91506110889050898663ffffffff612ea416565b6040518115909202916000818181858888f193505050501580156110b0573d6000803e3d6000fd5b506002546040516110029180156108fc02916000818181858888f193505050501580156110e1573d6000803e3d6000fd5b50604080518881526020810185905281516001600160a01b038b169233927f5f32ed2794e2e72d19e3cb2320e8820a499c4204887372beba51f5e61c040867929081900390910190a350506010805460ff19166001179055505050505050565b60035481565b61114f614dd9565b611157614dd9565b6001600160a01b0383166000818152600b60209081526040808320548552838352600c82528083205485830152928252600d9052819020549082015290505b919050565b606481565b61200181565b606033612000146111e85760405162461bcd60e51b815260040180806020018281038252602f815260200180614f97602f913960400191505060405180910390fd5b60005460ff16611225576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556000805460ff191690911790555b61122d614df7565b61127461126f85858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506130cf92505050565b6130f4565b905060006112896112848361313e565b61318c565b90506000606060ff8316600414156112ae576112a484613243565b9092509050611305565b60ff8316600514156112c3576112a484613423565b6040805162461bcd60e51b8152602060048201526012602482015271756e6b6e6f776e206576656e74207479706560701b604482015290519081900360640190fd5b63ffffffff821615611351576040805163ffffffff84168152905160ff8516917f391d6e5ea6ab6c49b9a0abb1782cae5def8d711f973b00c729658c0b2a80b31b919081900360200190a25b979650505050505050565b6001600160a01b031660009081526006602052604090205490565b600581565b600181565b60015481565b606581565b662386f26fc1000081565b600381565b620a8c0081565b61100181565b606181565b600881565b60105460ff16600214156113ff576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b6010805460ff19166002179055806402540be400340615801561142757506402540be4008106155b611478576040805162461bcd60e51b815260206004820152601c60248201527f707265636973696f6e206c6f737320696e20636f6e76657273696f6e00000000604482015290519081900360640190fd5b60005460ff166114b5576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556000805460ff191690911790555b600154341015611503576040805162461bcd60e51b81526020600482015260146024820152736e6f7420656e6f7567682072656c61792066656560601b604482015290519081900360640190fd5b6003548210156115be576002548211611556576040805162461bcd60e51b815260206004820152601060248201526f6e6f7420656e6f7567682066756e647360801b604482015290519081900360640190fd5b3360009081526005602090815260408083206001600160a01b038716845290915290205482146115be576040805162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a5908185b5bdd5b9d60921b604482015290519081900360640190fd5b3360009081526005602090815260408083206001600160a01b0387168452909152902054821115611627576040805162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a5908185b5bdd5b9d60921b604482015290519081900360640190fd5b3360009081526007602090815260408083206001600160a01b038716845290915290205442101561169f576040805162461bcd60e51b815260206004820152601a60248201527f70656e64696e6720756e64656c65676174696f6e206578697374000000000000604482015290519081900360640190fd5b60006116b6836402540be40063ffffffff612f0516565b60025490915034906000906116d290839063ffffffff612f4716565b6040805160038082526080820190925291925060609190816020015b60608152602001906001900390816116ee57905050905061170e33612f89565b8160008151811061171b57fe5b6020026020010181905250611738876001600160a01b0316612f89565b8160018151811061174557fe5b602002602001018190525061175984612fac565b8160028151811061176657fe5b602002602001018190525060606117816002610f4884612fbf565b8051602080830191909120600f80546000908152600a845260408082209390935581546001908101909255338152600c90935291208054909101905590506117d242620a8c0063ffffffff612ea416565b3360009081526007602090815260408083206001600160a01b038d16845290915290205561200063f7a251d7601083611816876402540be40063ffffffff612f0516565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561187457818101518382015260200161185c565b50505050905090810190601f1680156118a15780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156118c257600080fd5b505af11580156118d6573d6000803e3d6000fd5b5050604051611004925085156108fc02915085906000818181858888f19350505050158015611909573d6000803e3d6000fd5b506002546040516110029180156108fc02916000818181858888f1935050505015801561193a573d6000803e3d6000fd5b50604080518881526020810185905281516001600160a01b038b169233927fdf0b6ac27f3f3bb31cee3dab0f4fe40cc19c6a3f8daaec52e06b261e58a12519929081900390910190a350506010805460ff19166001179055505050505050565b61200081565b600081565b60025481565b6402540be40081565b60105460009060ff1660021415611a03576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b506010805460ff191660021790553360009081526008602052604090205480611a6a576040805162461bcd60e51b81526020600482015260146024820152736e6f20756e64656c6567617465642066756e647360601b604482015290519081900360640190fd5b336000818152600860205260408082208290555183156108fc0291849190818181858888f19350505050158015611aa5573d6000803e3d6000fd5b5060408051828152905133917fc712d133b8d448221aaed2198ed1f0db6dfc860fb01bc3a630916fe6cbef946f919081900360200190a26010805460ff1916600117905590565b60035490565b60105460ff1660021415611b3e576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b6010805460ff19166002179055806402540be4003406158015611b6657506402540be4008106155b611bb7576040805162461bcd60e51b815260206004820152601c60248201527f707265636973696f6e206c6f737320696e20636f6e76657273696f6e00000000604482015290519081900360640190fd5b60005460ff16611bf4576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556000805460ff191690911790555b826001600160a01b0316846001600160a01b03161415611c52576040805162461bcd60e51b815260206004820152601460248201527334b73b30b634b2103932b232b632b3b0ba34b7b760611b604482015290519081900360640190fd5b600154341015611ca0576040805162461bcd60e51b81526020600482015260146024820152736e6f7420656e6f7567682072656c61792066656560601b604482015290519081900360640190fd5b6003548210158015611cd557503360009081526005602090815260408083206001600160a01b03881684529091529020548211155b611d17576040805162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a5908185b5bdd5b9d60921b604482015290519081900360640190fd5b3360009081526009602090815260408083206001600160a01b03888116855290835281842090871684529091529020544210801590611d8557503360009081526009602090815260408083206001600160a01b03878116855290835281842090881684529091529020544210155b611dd6576040805162461bcd60e51b815260206004820152601a60248201527f70656e64696e6720726564656c65676174696f6e206578697374000000000000604482015290519081900360640190fd5b6000611ded836402540be40063ffffffff612f0516565b6002549091503490600090611e0990839063ffffffff612f4716565b60408051600480825260a0820190925291925060609190816020015b6060815260200190600190039081611e25579050509050611e4533612f89565b81600081518110611e5257fe5b6020026020010181905250611e6f886001600160a01b0316612f89565b81600181518110611e7c57fe5b6020026020010181905250611e99876001600160a01b0316612f89565b81600281518110611ea657fe5b6020026020010181905250611eba84612fac565b81600381518110611ec757fe5b60200260200101819052506060611ee26003610f4884612fbf565b8051602080830191909120600f80546000908152600a845260408082209390935581546001908101909255338152600d9093529120805490910190559050611f3342620a8c0063ffffffff612ea416565b3360009081526009602090815260408083206001600160a01b038d81168552908352818420908e168452909152902055611f7642620a8c0063ffffffff612ea416565b3360009081526009602090815260408083206001600160a01b038e81168552908352818420908d16845290915290205561200063f7a251d7601083611fc6876402540be40063ffffffff612f0516565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561202457818101518382015260200161200c565b50505050905090810190601f1680156120515780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561207257600080fd5b505af1158015612086573d6000803e3d6000fd5b5050604051611004925085156108fc02915085906000818181858888f193505050501580156120b9573d6000803e3d6000fd5b506002546040516110029180156108fc02916000818181858888f193505050501580156120ea573d6000803e3d6000fd5b50876001600160a01b0316896001600160a01b0316336001600160a01b03167fdb0d03fdfcb145c486c442659e6a341a8828985505097cb5190afcf541e840158a87604051808381526020018281526020019250505060405180910390a450506010805460ff1916600117905550505050505050565b61100581565b6001600160a01b031660009081526004602052604090205490565b600281565b601081565b6001600160a01b031660009081526008602052604090205490565b61100881565b600b81565b33612000146121f15760405162461bcd60e51b815260040180806020018281038252602f815260200180614f97602f913960400191505060405180910390fd5b60005460ff1661222e576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556000805460ff191690911790555b612236614df7565b61227861126f84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506130cf92505050565b905060008060606000805b61228c8661363f565b156122f757806122a9576122a26112848761313e565b94506122ef565b80600114156122c5576122be6112848761313e565b93506122ef565b80600214156122ea576122df6122da8761313e565b613660565b9250600191506122ef565b6122f7565b600101612283565b8161233d576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b612346836136d0565b612389576040805162461bcd60e51b815260206004820152600f60248201526e0eee4dedcce40e0c2c6d640d0c2e6d608b1b604482015290519081900360640190fd5b61239561126f846130cf565b955060006123a56112848861313e565b90506123af614df7565b6123b88861363f565b156123db576123d461126f6123cf6122da8b61313e565b6130cf565b905061241c565b6040805162461bcd60e51b8152602060048201526011602482015270656d7074792061636b207061636b61676560781b604482015290519081900360640190fd5b60ff82166001141561243857612433818888613724565b612466565b60ff82166002141561244f57612433818888613adb565b60ff8216600314156112c357612433818888613da8565b5050505050505050505050565b600981565b61100781565b61100681565b60005460ff1681565b60005460ff166124e4576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604482015290519081900360640190fd5b33611007146125245760405162461bcd60e51b815260040180806020018281038252602e815260200180614f0d602e913960400191505060405180910390fd5b61258584848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600a81526972656c6179657246656560b01b6020820152915061410d9050565b156126eb57602081146125df576040805162461bcd60e51b815260206004820152601d60248201527f6c656e677468206f662072656c61796572466565206d69736d61746368000000604482015290519081900360640190fd5b604080516020601f840181900481028201810190925282815260009161261d918585808385018382808284376000920191909152506141f492505050565b9050600354811061265f5760405162461bcd60e51b815260040180806020018281038252602e815260200180614f3b602e913960400191505060405180910390fd5b600254811161269f5760405162461bcd60e51b815260040180806020018281038252602e815260200180614f69602e913960400191505060405180910390fd5b6402540be4008106156126e35760405162461bcd60e51b815260040180806020018281038252602c815260200180614ee1602c913960400191505060405180910390fd5b6001556129f8565b61274f84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c62534352656c6179657246656560981b6020820152915061410d9050565b1561287557602081146127a9576040805162461bcd60e51b815260206004820181905260248201527f6c656e677468206f662062534352656c61796572466565206d69736d61746368604482015290519081900360640190fd5b604080516020601f84018190048102820181019092528281526000916127e7918585808385018382808284376000920191909152506141f492505050565b905060015481106128295760405162461bcd60e51b815260040180806020018281038252602e815260200180614e61602e913960400191505060405180910390fd5b6402540be40081061561286d5760405162461bcd60e51b815260040180806020018281038252602f815260200180614e32602f913960400191505060405180910390fd5b6002556129f8565b6128d984848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c36b4b72232b632b3b0ba34b7b760991b6020820152915061410d9050565b156129bb5760208114612933576040805162461bcd60e51b815260206004820181905260248201527f6c656e677468206f66206d696e44656c65676174696f6e206d69736d61746368604482015290519081900360640190fd5b604080516020601f8401819004810282018101909252828152600091612971918585808385018382808284376000920191909152506141f492505050565b905060015481116129b35760405162461bcd60e51b8152600401808060200182810382526031815260200180614e8f6031913960400191505060405180910390fd5b6003556129f8565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b600481565b60105460009060ff1660021415612ade576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b506010805460ff191660021790553360009081526006602052604090205480612b42576040805162461bcd60e51b81526020600482015260116024820152701b9bc81c195b991a5b99c81c995dd85c99607a1b604482015290519081900360640190fd5b336000818152600660205260408082208290555183156108fc0291849190818181858888f19350505050158015612b7d573d6000803e3d6000fd5b5060408051828152905133917f83b78188b13346b2ffb484da70d42ee27de7fbf9f2bd8045269e10ed643ccd76919081900360200190a26010805460ff1916600117905590565b6638d7ea4c68000081565b6001600160a01b038083166000908152600760209081526040808320938516835292905220545b92915050565b60015490565b61100281565b3361200014612c485760405162461bcd60e51b815260040180806020018281038252602f815260200180614f97602f913960400191505060405180910390fd5b60005460ff16612c85576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556000805460ff191690911790555b612cc482828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506136d092505050565b612d07576040805162461bcd60e51b815260206004820152600f60248201526e0eee4dedcce40e0c2c6d640d0c2e6d608b1b604482015290519081900360640190fd5b612d0f614df7565b612d5161126f84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506130cf92505050565b90506000612d616112848361313e565b9050612d6b614df7565b612d748361363f565b15612d9257612d8b61126f6123cf6122da8661313e565b9050612dd8565b6040805162461bcd60e51b8152602060048201526016602482015275656d707479206661696c2061636b207061636b61676560501b604482015290519081900360640190fd5b60ff821660011415612df257612ded816141f9565b612e1c565b60ff821660021415612e0757612ded81614413565b60ff8216600314156112c357612ded8161453d565b5050505b505050565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b61100381565b68056bc75e2d6310000081565b6001600160a01b0392831660009081526009602090815260408083209486168352938152838220929094168152925290205490565b61100081565b61100481565b600082820183811015612efe576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6000612efe83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506146a2565b6000612efe83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250614744565b60408051600560a21b8318601482015260348101909152606090612efe8161479e565b6060612bf6612fba836147f4565b61479e565b6060815160001415612fe05750604080516000815260208101909152611196565b606082600081518110612fef57fe5b602002602001015190506000600190505b8351811015613030576130268285838151811061301957fe5b60200260200101516148da565b9150600101613000565b50612efe613043825160c060ff16614957565b826148da565b6040805160028082526060828101909352829190816020015b60608152602001906001900390816130625790505090506130858460ff16612fac565b8160008151811061309257fe5b60200260200101819052506130a68361479e565b816001815181106130b357fe5b60200260200101819052506130c781612fbf565b949350505050565b6130d7614e17565b506040805180820190915281518152602082810190820152919050565b6130fc614df7565b61310582614a4f565b61310e57600080fd5b600061311d8360200151614a89565b60208085015160408051808201909152868152920190820152915050919050565b613146614e17565b61314f8261363f565b61315857600080fd5b6020820151600061316882614aec565b80830160209586015260408051808201909152908152938401919091525090919050565b8051600090158015906131a157508151602110155b6131aa57600080fd5b60006131b98360200151614a89565b90508083600001511015613214576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b82516020808501518301805192849003929183101561323a57826020036101000a820491505b50949350505050565b600060606000806000805b6132578761363f565b156132a957826132795761327261326d8861313e565b614c1f565b915061329e565b82600114156132995761328e6112848861313e565b90506001935061329e565b6132a9565b82600101925061324e565b836132ef576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b60006110046001600160a01b031663727be1f8836040518263ffffffff1660e01b815260040180828152602001915050602060405180830381600087803b15801561333957600080fd5b505af115801561334d573d6000803e3d6000fd5b505050506040513d602081101561336357600080fd5b50519050806133885761337a600484846065614c39565b96509650505050505061341e565b6001600160a01b0383166000908152600660205260409020546133b1908363ffffffff612ea416565b6001600160a01b038416600081815260066020908152604091829020939093558051858152905191927f7cc266c7b444f808013fa187f7b904d470a051a6564e78f482aa496581ba4bf892918290030190a260408051600080825260208201909252909750955050505050505b915091565b6000606060008060008060005b6134398861363f565b156134a257836134565761344f61326d8961313e565b9250613497565b83600114156134725761346b61326d8961313e565b9150613497565b8360021415613492576134876112848961313e565b905060019450613497565b6134a2565b836001019350613430565b846134e8576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b60006110046001600160a01b031663727be1f8836040518263ffffffff1660e01b815260040180828152602001915050602060405180830381600087803b15801561353257600080fd5b505af1158015613546573d6000803e3d6000fd5b505050506040513d602081101561355c57600080fd5b505190508061358257613573600585846065614c39565b9750975050505050505061341e565b6001600160a01b0380851660008181526007602090815260408083209488168352938152838220829055918152600890915220546135c6908363ffffffff612ea416565b6001600160a01b0380861660008181526008602090815260409182902094909455805186815290519287169391927f35a799836f74fac7eccf5c73902823b970543d2274d3b93d8da3d37a255772a2929181900390910190a3604080516000808252602082019092529098509650505050505050915091565b6000613649614e17565b505080518051602091820151919092015191011190565b805160609061366e57600080fd5b600061367d8360200151614a89565b83516040805191839003808352601f19601f82011683016020019091529192506060908280156136b4576020820181803683370190505b509050600081602001905061323a848760200151018285614d35565b8051602080830191909120600e546000908152600a90925260408220548082146136ff57600092505050611196565b5050600e80546000908152600a60205260408120558054600190810190915592915050565b60008060008060005b6137368861363f565b1561379f57836137535761374c61326d8961313e565b9250613794565b836001141561376f5761376861326d8961313e565b9150613794565b836002141561378f576137846112848961313e565b905060019450613794565b61379f565b83600101935061372d565b846137e5576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b60006137fc826402540be40063ffffffff614d8016565b6001600160a01b0385166000908152600b602052604090208054600019019055905060ff8816600114156139425760ff87161561386f576040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b6001600160a01b038416600090815260046020526040902054613898908263ffffffff612ea416565b6001600160a01b038086166000908152600460209081526040808320949094556005815283822092871682529190915220546138da908263ffffffff612ea416565b6001600160a01b038086166000818152600560209081526040808320948916808452948252918290209490945580518581529051929391927f9a57c81564ab02642f34fd87e41baa9b074c18342cec3b7268b62bf752018fd1929181900390910190a3613ad0565b60ff8816613a94576001600160a01b038416600090815260086020526040902054613973908263ffffffff612ea416565b6001600160a01b0385166000908152600860209081526040808320939093558251630e4f7c3f60e31b81526004810185905292516110049363727be1f89360248083019493928390030190829087803b1580156139cf57600080fd5b505af11580156139e3573d6000803e3d6000fd5b505050506040513d60208110156139f957600080fd5b5051613a42576040805162461bcd60e51b81526020600482015260136024820152721dda5d1a191c985dc8189b988819985a5b1959606a1b604482015290519081900360640190fd5b6040805182815260ff8916602082015281516001600160a01b0380871693908816927fcbd481ae600289fad8c0484d07ce0ffe4f010d7c844ecfdeaf2a13fead52886e929081900390910190a3613ad0565b6040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b505050505050505050565b60008060008060005b613aed8861363f565b15613b565783613b0a57613b0361326d8961313e565b9250613b4b565b8360011415613b2657613b1f61326d8961313e565b9150613b4b565b8360021415613b4657613b3b6112848961313e565b905060019450613b4b565b613b56565b836001019350613ae4565b84613b9c576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6000613bb3826402540be40063ffffffff614d8016565b6001600160a01b0385166000908152600c602052604090208054600019019055905060ff881660011415613d325760ff871615613c26576040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b6001600160a01b038416600090815260046020526040902054613c4f908263ffffffff612f4716565b6001600160a01b03808616600090815260046020908152604080832094909455600581528382209287168252919091522054613c91908263ffffffff612f4716565b6001600160a01b03808616600090815260056020908152604080832093881683529290522055613cca42620a8c0063ffffffff612ea416565b6001600160a01b038086166000818152600760209081526040808320948916808452948252918290209490945580518581529051929391927fd6f878a5bcbbe79a64e6418bb0d56aaa20b9a60587d45749819df88dfc7c3c44929181900390910190a3613ad0565b60ff8816613a94576001600160a01b03808516600081815260076020908152604080832094881680845294825280832092909255815185815260ff8c169181019190915281517f4417d10c1e33efa83a770b8d4f47176e78c08c1298d534901ad3b16bb585fa2e929181900390910190a3613ad0565b6000806000806000805b613dbb8961363f565b15613e405784613dd857613dd161326d8a61313e565b9350613e35565b8460011415613df457613ded61326d8a61313e565b9250613e35565b8460021415613e1057613e0961326d8a61313e565b9150613e35565b8460031415613e3057613e256112848a61313e565b905060019550613e35565b613e40565b846001019450613db2565b85613e86576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6000613e9d826402540be40063ffffffff614d8016565b6001600160a01b0386166000908152600d602052604090208054600019019055905060ff8916600114156140705760ff881615613f10576040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b6001600160a01b03808616600090815260056020908152604080832093881683529290522054613f46908263ffffffff612f4716565b6001600160a01b03868116600090815260056020908152604080832089851684529091528082209390935590851681522054613f829082612ea4565b6001600160a01b03808716600090815260056020908152604080832093881683529290522055613fbb42620a8c0063ffffffff612ea416565b6001600160a01b0380871660009081526009602090815260408083208985168452825280832093881683529290522055613ffe42620a8c0063ffffffff612ea416565b6001600160a01b038087166000818152600960209081526040808320898616808552908352818420958b1680855295835292819020959095558451868152945191947f78bffae3f8c6691ac7fc1a3bff800cb2d612f5ad9ae5b0444cfe2eb15c189e18929081900390910190a4614101565b60ff8916613a94576001600160a01b038581166000818152600960209081526040808320898616808552818452828520968a16808652968452828520859055908352818420818552835281842093909355805186815260ff8e169281019290925280519293927fb93bee5c59f85ede6b074a99f4ffcd3e3fc0d5c3d8156de331de89a49e0ce77c9281900390910190a45b50505050505050505050565b6000816040516020018082805190602001908083835b602083106141425780518252601f199092019160209182019101614123565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106141b05780518252601f199092019160209182019101614191565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b60008060008060005b61420b8661363f565b1561427457836142285761422161326d8761313e565b9250614269565b83600114156142445761423d61326d8761313e565b9150614269565b8360021415614264576142596112848761313e565b905060019450614269565b614274565b836001019350614202565b846142ba576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b60006142d1826402540be40063ffffffff614d8016565b6001600160a01b0385166000908152600b602090815260408083208054600019019055600890915290205490915061430f908263ffffffff612ea416565b6001600160a01b0385166000908152600860209081526040808320939093558251630e4f7c3f60e31b81526004810185905292516110049363727be1f89360248083019493928390030190829087803b15801561436b57600080fd5b505af115801561437f573d6000803e3d6000fd5b505050506040513d602081101561439557600080fd5b50516143de576040805162461bcd60e51b81526020600482015260136024820152721dda5d1a191c985dc8189b988819985a5b1959606a1b604482015290519081900360640190fd5b6040516001907ff83de021914a4585482db5ca47d520a5657165b443fa2c7ef8ed4635f054da9b90600090a250505050505050565b60008060008060005b6144258661363f565b1561448e57836144425761443b61326d8761313e565b9250614483565b836001141561445e5761445761326d8761313e565b9150614483565b836002141561447e576144736112848761313e565b905060019450614483565b61448e565b83600101935061441c565b846144d4576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6001600160a01b038084166000908152600c60209081526040808320805460001901905560078252808320938616835292905281812081905590516002917ff83de021914a4585482db5ca47d520a5657165b443fa2c7ef8ed4635f054da9b91a2505050505050565b6000806000806000805b6145508761363f565b156145d5578461456d5761456661326d8861313e565b93506145ca565b84600114156145895761458261326d8861313e565b92506145ca565b84600214156145a55761459e61326d8861313e565b91506145ca565b84600314156145c5576145ba6112848861313e565b9050600195506145ca565b6145d5565b846001019450614547565b8561461b576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6001600160a01b038481166000908152600d602090815260408083208054600019019055600982528083208785168085528184528285209588168552948352818420849055825280832093835292905281812081905590516003917ff83de021914a4585482db5ca47d520a5657165b443fa2c7ef8ed4635f054da9b91a250505050505050565b6000818361472e5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156146f35781810151838201526020016146db565b50505050905090810190601f1680156147205780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161473a57fe5b0495945050505050565b600081848411156147965760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156146f35781810151838201526020016146db565b505050900390565b6060815160011480156147d05750607f60f81b826000815181106147be57fe5b01602001516001600160f81b03191611155b156147dc575080611196565b612bf66147ee8351608060ff16614957565b836148da565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166148385750601861485c565b6fffffffffffffffffffffffffffffffff1984166148585750601061485c565b5060005b60208110156148925781818151811061487157fe5b01602001516001600160f81b0319161561488a57614892565b60010161485c565b60008160200390506060816040519080825280601f01601f1916602001820160405280156148c7576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b8183101561490b5780518352602092830192016148f3565b50855184518101855292509050808201602086015b81831015614938578051835260209283019201614920565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106149a7576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b60408051600180825281830190925260609160208201818036833701905050905060378411614a015782840160f81b816000815181106149e357fe5b60200101906001600160f81b031916908160001a9053509050612bf6565b6060614a0c856147f4565b90508381510160370160f81b82600081518110614a2557fe5b60200101906001600160f81b031916908160001a905350614a4682826148da565b95945050505050565b8051600090614a6057506000611196565b6020820151805160001a9060c0821015614a7f57600092505050611196565b5060019392505050565b8051600090811a6080811015614aa3576000915050611196565b60b8811080614abe575060c08110801590614abe575060f881105b15614acd576001915050611196565b60c0811015614ae15760b519019050611196565b60f519019050611196565b80516000908190811a6080811015614b075760019150614c18565b60b8811015614b1c57607e1981019150614c18565b60c0811015614b9657600060b78203600186019550806020036101000a865104915060018101820193505080831015614b90576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50614c18565b60f8811015614bab5760be1981019150614c18565b600060f78203600186019550806020036101000a865104915060018101820193505080831015614c16576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b8051600090601514614c3057600080fd5b612bf68261318c565b60006060614c52846402540be40063ffffffff612f0516565b60408051600480825260a0820190925291955060609190816020015b6060815260200190600190039081614c6e579050509050614c918760ff16612fac565b81600081518110614c9e57fe5b6020026020010181905250614cbb866001600160a01b0316612f89565b81600181518110614cc857fe5b6020026020010181905250614cdc85612fac565b81600281518110614ce957fe5b6020026020010181905250614d038463ffffffff16612fac565b81600381518110614d1057fe5b60200260200101819052506060614d2682612fbf565b94989497509395505050505050565b80614d3f57612e20565b5b60208110614d5f578251825260209283019290910190601f1901614d40565b915181516020939093036101000a6000190180199091169216919091179052565b600082614d8f57506000612bf6565b82820282848281614d9c57fe5b0414612efe5760405162461bcd60e51b8152600401808060200182810382526021815260200180614ec06021913960400191505060405180910390fd5b60405180606001604052806003906020820280368337509192915050565b6040518060400160405280614e0a614e17565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe7468652042534352656c61796572466565206d6f642074656e20646563696d616c73206d757374206265207a65726f7468652042534352656c61796572466565206d757374206265206c657373207468616e2072656c61796572466565746865206d696e44656c65676174696f6e206d7573742062652067726561746572207468616e2072656c61796572466565536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f777468652072656c61796572466565206d6f642074656e20646563696d616c73206d757374206265207a65726f746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163747468652072656c61796572466565206d757374206265206c657373207468616e206d696e44656c65676174696f6e7468652072656c61796572466565206d757374206265206d6f7265207468616e2042534352656c61796572466565746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374a2646970667358221220066cc7c05d87e3cd20ecf3649deba7ac4ce8b389992969b6006793cbf330c73564736f6c63430006040033" + } + }, + "23603940": { + "0x0000000000000000000000000000000000001006": { + "balance": "0x0", + "code": "0x6080604052600436106101d85760003560e01c80637ae2308811610102578063c81b166211610095578063f9a2bbc711610064578063f9a2bbc714610569578063fb7cfdd71461057e578063fc3e590814610593578063fd6a6879146105a8576101d8565b8063c81b166214610515578063dc927faf1461052a578063e1c7392a1461053f578063e79a198f14610554576101d8565b8063a1a11bf5116100d1578063a1a11bf514610407578063a78abc161461041c578063ab51bb9614610431578063ac43175114610446576101d8565b80637ae23088146103b357806395468d26146103c857806396713da9146103dd5780639dc09262146103f2576101d8565b806351e806721161017a57806370fd5bad1161014957806370fd5bad1461035f578063718a8aa81461037457806375d47a0a146103895780637942fd051461039e576101d8565b806351e80672146102c7578063541d5548146102dc5780636a87d780146103235780636e47b4821461034a576101d8565b80633dffc387116101b65780633dffc3871461024657806343756e5c14610271578063493279b1146102865780634bf6c882146102b2576101d8565b80630bee7a67146101dd5780630e2374a51461020b5780631aa3a0081461023c575b600080fd5b3480156101e957600080fd5b506101f26105bd565b6040805163ffffffff9092168252519081900360200190f35b34801561021757600080fd5b506102206105c2565b604080516001600160a01b039092168252519081900360200190f35b6102446105c8565b005b34801561025257600080fd5b5061025b610749565b6040805160ff9092168252519081900360200190f35b34801561027d57600080fd5b5061022061074e565b34801561029257600080fd5b5061029b610754565b6040805161ffff9092168252519081900360200190f35b3480156102be57600080fd5b5061025b610759565b3480156102d357600080fd5b5061022061075e565b3480156102e857600080fd5b5061030f600480360360208110156102ff57600080fd5b50356001600160a01b0316610764565b604080519115158252519081900360200190f35b34801561032f57600080fd5b50610338610782565b60408051918252519081900360200190f35b34801561035657600080fd5b50610220610788565b34801561036b57600080fd5b5061025b61078e565b34801561038057600080fd5b5061025b610793565b34801561039557600080fd5b50610220610798565b3480156103aa57600080fd5b5061025b61079e565b3480156103bf57600080fd5b506103386107a3565b3480156103d457600080fd5b506103386107b0565b3480156103e957600080fd5b5061025b6107bc565b3480156103fe57600080fd5b506102206107c1565b34801561041357600080fd5b506102206107c7565b34801561042857600080fd5b5061030f6107cd565b34801561043d57600080fd5b506101f26107d6565b34801561045257600080fd5b506102446004803603604081101561046957600080fd5b81019060208101813564010000000081111561048457600080fd5b82018360208201111561049657600080fd5b803590602001918460018302840111640100000000831117156104b857600080fd5b9193909290916020810190356401000000008111156104d657600080fd5b8201836020820111156104e857600080fd5b8035906020019184600183028401116401000000008311171561050a57600080fd5b5090925090506107db565b34801561052157600080fd5b50610220610bfd565b34801561053657600080fd5b50610220610c03565b34801561054b57600080fd5b50610244610c09565b34801561056057600080fd5b50610244610c8b565b34801561057557600080fd5b50610220610e44565b34801561058a57600080fd5b50610338610e4a565b34801561059f57600080fd5b5061025b610e50565b3480156105b457600080fd5b50610220610e55565b606481565b61200181565b3360009081526004602052604090205460ff1615610625576040805162461bcd60e51b81526020600482015260156024820152741c995b185e595c88185b1c9958591e48195e1a5cdd605a1b604482015290519081900360640190fd5b60005460ff16610678576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b61068133610e5b565b156106bd5760405162461bcd60e51b81526004018080602001828103825260278152602001806110486027913960400191505060405180910390fd5b333214610707576040805162461bcd60e51b81526020600482015260136024820152721b9bc81c1c9bde1e481a5cc8185b1b1bddd959606a1b604482015290519081900360640190fd5b6040805162461bcd60e51b81526020600482015260126024820152711c9959da5cdd195c881cdd5cdc195b99195960721b604482015290519081900360640190fd5b600181565b61100181565b606181565b600881565b61200081565b6001600160a01b031660009081526004602052604090205460ff1690565b60025481565b61100581565b600281565b601081565b61100881565b600b81565b68056bc75e2d6310000081565b67016345785d8a000081565b600981565b61100781565b61100681565b60005460ff1681565b600081565b60005460ff1661082e576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b336110071461086e5760405162461bcd60e51b815260040180806020018281038252602e81526020018061106f602e913960400191505060405180910390fd5b6108d484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e1c995c5d5a5c995911195c1bdcda5d608a1b60208201529150610e619050565b156109d757602081146109185760405162461bcd60e51b815260040180806020018281038252602281526020018061109d6022913960400191505060405180910390fd5b604080516020601f840181900481028201810190925282815260009161095691858580838501838280828437600092019190915250610f4892505050565b90506001811180156109715750683635c9adc5dea000008111155b801561097e575060025481115b6109cf576040805162461bcd60e51b815260206004820181905260248201527f7468652072657175697265644465706f736974206f7574206f662072616e6765604482015290519081900360640190fd5b600155610b6b565b610a3284848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260048152636475657360e01b60208201529150610e619050565b15610b2e5760208114610a8c576040805162461bcd60e51b815260206004820152601760248201527f6c656e677468206f662064756573206d69736d61746368000000000000000000604482015290519081900360640190fd5b604080516020601f8401819004810282018101909252828152600091610aca91858580838501838280828437600092019190915250610f4892505050565b9050600081118015610add575060015481105b610b26576040805162461bcd60e51b81526020600482015260156024820152747468652064756573206f7574206f662072616e676560581b604482015290519081900360640190fd5b600255610b6b565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b61100281565b61100381565b60005460ff1615610c61576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b68056bc75e2d63100000600190815567016345785d8a00006002556000805460ff19169091179055565b3360009081526004602052604090205460ff16610ce6576040805162461bcd60e51b81526020600482015260146024820152731c995b185e595c88191bc81b9bdd08195e1a5cdd60621b604482015290519081900360640190fd5b60005460ff16610d39576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b610d4161102d565b5033600081815260036020908152604091829020825180840190935280548084526001909101549183018290529192916108fc91610d85919063ffffffff610f4d16565b6040518115909202916000818181858888f19350505050158015610dad573d6000803e3d6000fd5b50602081015160405161100291829181156108fc0291906000818181858888f19350505050158015610de3573d6000803e3d6000fd5b50336000818152600460209081526040808320805460ff191690556003825280832083815560010192909255815192835290517fd17202129b83db7880d6b9f25df81c58ad46f7e0e2c92236b1aa10663a4876679281900390910190a15050565b61100081565b60015481565b600381565b61100481565b3b151590565b6000816040516020018082805190602001908083835b60208310610e965780518252601f199092019160209182019101610e77565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310610f045780518252601f199092019160209182019101610ee5565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b6000610f8f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f96565b9392505050565b600081848411156110255760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610fea578181015183820152602001610fd2565b50505050905090810190601f1680156110175780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60405180604001604052806000815260200160008152509056fe636f6e7472616374206973206e6f7420616c6c6f77656420746f20626520612072656c61796572746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662072657175697265644465706f736974206d69736d61746368a2646970667358221220bbf2444a200f2d4960875a9cb3258cef8b5f4e79c03999d34530f4a42b7aefd364736f6c63430006040033" + }, + "0x0000000000000000000000000000000000001003": { + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b50600436106102275760003560e01c8063a1a11bf511610130578063dc927faf116100b8578063e405bbc31161007c578063e405bbc3146106a7578063ea54b2aa146106af578063f9a2bbc7146106b7578063fc3e5908146106bf578063fd6a6879146106c757610227565b8063dc927faf14610627578063dda831481461062f578063df5fe70414610655578063e1c7392a1461067b578063e2761af01461068357610227565b8063adc879e9116100ff578063adc879e914610552578063c81b16621461055a578063cba510a914610562578063d816987914610588578063da8d08f01461060157610227565b8063a1a11bf514610462578063a78abc161461046a578063ab51bb9614610486578063ac4317511461048e57610227565b8063564b81ef116101b3578063718a8aa811610182578063718a8aa81461043a57806375d47a0a146104425780637942fd051461044a57806396713da9146104525780639dc092621461045a57610227565b8063564b81ef146102e85780635c5ae8db146103655780636e47b4821461042a57806370fd5bad1461043257610227565b80633dffc387116101fa5780633dffc3871461029357806343756e5c146102b1578063493279b1146102b95780634bf6c882146102d857806351e80672146102e057610227565b80630bee7a671461022c5780630e2374a51461024d5780632657e9b61461027157806333f7798d1461028b575b600080fd5b6102346106cf565b6040805163ffffffff9092168252519081900360200190f35b6102556106d4565b604080516001600160a01b039092168252519081900360200190f35b6102796106da565b60408051918252519081900360200190f35b6102796106e5565b61029b6106eb565b6040805160ff9092168252519081900360200190f35b6102556106f0565b6102c16106f6565b6040805161ffff9092168252519081900360200190f35b61029b6106fb565b610255610700565b6102f0610706565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561032a578181015183820152602001610312565b50505050905090810190601f1680156103575780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61038b6004803603602081101561037b57600080fd5b50356001600160401b0316610812565b60405180856001600160401b03166001600160401b0316815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156103ec5781810151838201526020016103d4565b50505050905090810190601f1680156104195780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b6102556108cd565b61029b6108d3565b61029b6108d8565b6102556108dd565b61029b6108e3565b61029b6108e8565b6102556108ed565b6102556108f3565b6104726108f9565b604080519115158252519081900360200190f35b610234610902565b610550600480360360408110156104a457600080fd5b8101906020810181356401000000008111156104bf57600080fd5b8201836020820111156104d157600080fd5b803590602001918460018302840111640100000000831117156104f357600080fd5b91939092909160208101903564010000000081111561051157600080fd5b82018360208201111561052357600080fd5b8035906020019184600183028401116401000000008311171561054557600080fd5b509092509050610907565b005b610279610bc0565b610255610bc6565b6102796004803603602081101561057857600080fd5b50356001600160401b0316610bcc565b6104726004803603604081101561059e57600080fd5b8101906020810181356401000000008111156105b957600080fd5b8201836020820111156105cb57600080fd5b803590602001918460018302840111640100000000831117156105ed57600080fd5b9193509150356001600160401b0316610beb565b6102556004803603602081101561061757600080fd5b50356001600160401b031661143c565b610255611457565b6102556004803603602081101561064557600080fd5b50356001600160401b031661145d565b6104726004803603602081101561066b57600080fd5b50356001600160401b0316611481565b6105506114c3565b61068b611668565b604080516001600160401b039092168252519081900360200190f35b61068b611677565b6102f061168d565b6102556116aa565b61029b6116b0565b6102556116b5565b606481565b61200181565b662386f26fc1000081565b60055481565b600181565b61100181565b606181565b600881565b61200081565b604080516020808252818301909252606091829190602082018180368337505060045460208301525090506000805b60208160ff16101561077c57828160ff168151811061075057fe5b01602001516001600160f81b0319161561076f57600190910190610774565b61077c565b600101610735565b5060608160ff166040519080825280601f01601f1916602001820160405280156107ad576020820181803683370190505b50905060005b8260ff168160ff16101561080957838160ff16815181106107d057fe5b602001015160f81c60f81b828260ff16815181106107ea57fe5b60200101906001600160f81b031916908160001a9053506001016107b3565b50925050505b90565b60016020818152600092835260409283902080548184015460028084015460038501805489516101009982161599909902600019011692909204601f81018790048702880187019098528787526001600160401b0390931696919592949091908301828280156108c35780601f10610898576101008083540402835291602001916108c3565b820191906000526020600020905b8154815290600101906020018083116108a657829003601f168201915b5050505050905084565b61100581565b600281565b601081565b61100881565b600b81565b600981565b61100781565b61100681565b60005460ff1681565b600081565b60005460ff1661095e576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604482015290519081900360640190fd5b336110071461099e5760405162461bcd60e51b815260040180806020018281038252602e815260200180611b67602e913960400191505060405180910390fd5b610a1284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601b81527f726577617264466f7256616c696461746f725365744368616e67650000000000602082015291506116bb9050565b15610af15760208114610a565760405162461bcd60e51b815260040180806020018281038252602e815260200180611b06602e913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610a94918585808385018382808284376000920191909152506117a292505050565b9050600081118015610aae5750670de0b6b3a76400008111155b610ae95760405162461bcd60e51b815260040180806020018281038252602f815260200180611b95602f913960400191505060405180910390fd5b600555610b2e565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b60045481565b61100281565b6001600160401b03166000908152600160208190526040909120015490565b60408051630a83aaa960e31b815233600482015290516000916110069163541d554891602480820192602092909190829003018186803b158015610c2e57600080fd5b505afa158015610c42573d6000803e3d6000fd5b505050506040513d6020811015610c5857600080fd5b5051610cab576040805162461bcd60e51b815260206004820152601f60248201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604482015290519081900360640190fd5b739fb29aac15b9a4b7f17c3385939b007540f4d791331480610ce057507337b8516a0f88e65d677229b402ec6c1e0e33300433145b610d1b5760405162461bcd60e51b815260040180806020018281038252602a815260200180611bc4602a913960400191505060405180910390fd5b6001600160401b0382166000908152600260205260409020546001600160a01b031615610d8f576040805162461bcd60e51b815260206004820152601c60248201527f63616e27742073796e63206475706c6963617465642068656164657200000000604482015290519081900360640190fd5b6003546001600160401b0390811690831611610ddc5760405162461bcd60e51b8152600401808060200182810382526026815260200180611bee6026913960400191505060405180910390fd5b600354600160401b90046001600160401b0316610df7611904565b6001600160401b0382811660009081526001602081815260409283902083516080810185528154909516855280830154858301526002808201548686015260038201805486516101009682161596909602600019011691909104601f81018490048402850184019095528484529093606086019392830182828015610ebd5780601f10610e9257610100808354040283529160200191610ebd565b820191906000526020600020905b815481529060010190602001808311610ea057829003601f168201915b50505050508152505090505b836001600160401b0316826001600160401b031610158015610efa57506003546001600160401b0390811690831610155b15610fdb5780516001600160401b0380821660009081526001602081815260409283902083516080810185528154909516855280830154858301526002808201548686015260038201805486516101009682161596909602600019011691909104601f8101849004840285018401909552848452959750939460608601939091830182828015610fcb5780601f10610fa057610100808354040283529160200191610fcb565b820191906000526020600020905b815481529060010190602001808311610fae57829003601f168201915b5050505050815250509050610ec9565b6060810151516110d25780516001600160401b03811660009081526001602081815260409283902060030180548451600294821615610100026000190190911693909304601f81018390048302840183019094528383529395509092919083018282801561108a5780601f1061105f5761010080835404028352916020019161108a565b820191906000526020600020905b81548152906001019060200180831161106d57829003601f168201915b505050506060830182905250516110d25760405162461bcd60e51b8152600401808060200182810382526021815260200180611ae56021913960400191505060405180910390fd5b6000816060015151608801905060608787905082016040519080825280601f01601f191660200182016040528015611111576020820181803683370190505b509050600061111f826117a7565b905061112d848683866117ad565b6111685760405162461bcd60e51b81526004018080602001828103825260238152602001806119e26023913960400191505060405180910390fd5b600083820191506111ae8a8a8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061181992505050565b945090506111bd818386611823565b825160200193506111cc61192a565b6110008186866064600019fa6111e157600080fd5b805194506000600160f81b8616156112705750600554604080516309a99b4f60e41b815233600482015260248101929092525160019161100291639a99b4f0916044808201926020929091908290030181600087803b15801561124357600080fd5b505af1158015611257573d6000803e3d6000fd5b505050506040513d602081101561126d57600080fd5b50505b856001600160401b03169550602082019350600061129085888415611864565b90985090506001600160401b03808216908c16146112df5760405162461bcd60e51b8152600401808060200182810382526033815260200180611b346033913960400191505060405180910390fd5b6001600160401b03808c16600081815260026020818152604080842080546001600160a01b031916331790558e86168e529383526001808252928490208d518154961667ffffffffffffffff199096169590951785558c81015192850192909255918b01519183019190915560608a015180518b9392611366926003850192910190611949565b50506003546001600160401b03600160401b9091048116908d16111590506113ae576003805467ffffffffffffffff60401b1916600160401b6001600160401b038e16021790555b7f4042c1020a8f410fb1c8859d276ab436aeb2c3074960e48467299cf1c966d3b48b8a8a602001518560405180856001600160401b03166001600160401b03168152602001846001600160401b03166001600160401b031681526020018381526020018215151515815260200194505050505060405180910390a15060019c9b505050505050505050505050565b6002602052600090815260409020546001600160a01b031681565b61100381565b6001600160401b03166000908152600260205260409020546001600160a01b031690565b6001600160401b0381166000908152600260205260408120546001600160a01b03161515806114bd57506003546001600160401b038381169116145b92915050565b60005460ff161561151b576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b60008061154060405180610100016040528060e08152602001611a0560e09139611819565b81516004559092509050611552611904565b600061156084846000611864565b60008083526001600160401b038281168252600160208181526040938490208651815467ffffffffffffffff19169416939093178355808601519183019190915591840151600282015560608401518051949650929450859390926115cc926003850192910190611949565b50506003805467ffffffffffffffff19166001600160401b0384811691821767ffffffffffffffff60401b1916600160401b9290920291909117918290556000805460ff19166001179055662386f26fc10000600555602085810151604080519490931684529083015280517f5ac9b37d571677b80957ca05693f371526c602fd08042b416a29fdab7efefa499350918290030190a150505050565b6003546001600160401b031681565b600354600160401b90046001600160401b031681565b60405180610100016040528060e08152602001611a0560e0913981565b61100081565b600381565b61100481565b6000816040516020018082805190602001908083835b602083106116f05780518252601f1990920191602091820191016116d1565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b6020831061175e5780518252601f19909201916020918201910161173f565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b60200190565b60008460600151518284010392506000806117cb8760600151611819565b90925090506117db828683611823565b5050506040840151601f1983810191909152602090940151603f19830152605f19820192909252600454606719820152910160871990910152600190565b8051602090910191565b5b60208110611843578251825260209283019290910190601f1901611824565b915181516020939093036101000a6000190180199091169216919091179052565b61186c611904565b600884015160288501516048909501805190956000929161188b611904565b6020810183905260408101829052866118f65760008060688a036040519080825280601f01601f1916602001820160405280156118cf576020820181803683370190505b50606084018190526118e090611819565b90925090506118f360208c018383611823565b50505b989297509195505050505050565b604080516080810182526000808252602082018190529181019190915260608082015290565b6040518061100001604052806080906020820280368337509192915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061198a57805160ff19168380011785556119b7565b828001600101855582156119b7579182015b828111156119b757825182559160200191906001019061199c565b506119c39291506119c7565b5090565b61080f91905b808211156119c357600081556001016119cd56fe6661696c656420746f2073657269616c697a6520636f6e73656e73757320737461746542696e616e63652d436861696e2d47616e67657300000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000aea1ac326886b992a991d21a6eb155f41b77867cbf659e78f31d89d8205122a84d1be64f0e9a466c2e66a53433928192783e29f8fa21beb2133499b5ef770f60000000e8d4a5100099308aa365c40554bc89982af505d85da95251445d5dd4a9bb37dd2584fd92d3000000e8d4a5100001776920ff0b0f38d78cf95c033c21adf7045785114e392a7544179652e0a612000000e8d4a510006661696c656420746f206c6f61642076616c696461746f722073657420646174616c656e677468206f6620726577617264466f7256616c696461746f725365744368616e6765206d69736d617463686865616465722068656967687420646f65736e277420657175616c20746f207468652073706563696669656420686569676874746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374746865206e6577526577617264466f7256616c696461746f725365744368616e6765206f7574206f662072616e6765746865206d73672073656e646572206973206e6f7420612077686974656c6162656c2072656c6179657263616e27742073796e6320686561646572206265666f726520696e697469616c486569676874a2646970667358221220f10bd4cea020bbc51bd92dc8d0216f48c220336c9ca0178fb7726dc899c15ee164736f6c63430006040033" + }, + "0x0000000000000000000000000000000000002000": { + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b50600436106102695760003560e01c80637942fd0511610151578063c27cdcfb116100c3578063e1c7392a11610087578063e1c7392a14610775578063e3b048051461077d578063f7a251d71461079d578063f9a2bbc714610815578063fc3e59081461081d578063fd6a68791461082557610269565b8063c27cdcfb1461070e578063c81b16621461072e578063d31f968d14610736578063d76a867514610765578063dc927faf1461076d57610269565b80639dc09262116101155780639dc0926214610630578063a1a11bf514610638578063a78abc1614610640578063ab51bb9614610648578063ac43175114610650578063b0355f5b1461048057610269565b80637942fd051461053b57806384013b6a14610543578063863fe4ab146106205780638cc8f5611461051b57806396713da91461062857610269565b8063422f9050116101ea5780636e47a51a116101ae5780636e47a51a146104f35780636e47b4821461051357806370fd5bad1461051b578063718a8aa81461052357806374f079b81461052b57806375d47a0a1461053357610269565b8063422f90501461048857806343756e5c146104bc578063493279b1146104c45780634bf6c882146104e357806351e80672146104eb57610269565b80632ff32aea116102315780632ff32aea146102f3578063308325f4146103145780633a648b151461031c5780633bdc47a6146103585780633dffc3871461048057610269565b806305e682581461026e5780630bee7a671461028c5780630e2374a5146102ad57806314b3023b146102d157806322556cdc146102eb575b600080fd5b61027661082d565b6040805160ff9092168252519081900360200190f35b610294610832565b6040805163ffffffff9092168252519081900360200190f35b6102b5610837565b604080516001600160a01b039092168252519081900360200190f35b6102d961083d565b60408051918252519081900360200190f35b6102d9610843565b6102fb610848565b60408051600792830b90920b8252519081900360200190f35b6102d9610851565b61033c6004803603602081101561033257600080fd5b503560ff16610857565b604080516001600160401b039092168252519081900360200190f35b61040b6004803603606081101561036e57600080fd5b60ff82351691602081013591810190606081016040820135600160201b81111561039757600080fd5b8201836020820111156103a957600080fd5b803590602001918460018302840111600160201b831117156103ca57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610872945050505050565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561044557818101518382015260200161042d565b50505050905090810190601f1680156104725780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102766108e8565b6104a86004803603602081101561049e57600080fd5b503560ff166108ed565b604080519115158252519081900360200190f35b6102b5610902565b6104cc610908565b6040805161ffff9092168252519081900360200190f35b61027661090d565b6102b5610912565b6102b56004803603602081101561050957600080fd5b503560ff16610918565b6102b5610933565b610276610939565b61027661093e565b6102d9610943565b6102b5610949565b61027661094f565b61061e600480360360a081101561055957600080fd5b810190602081018135600160201b81111561057357600080fd5b82018360208201111561058557600080fd5b803590602001918460018302840111600160201b831117156105a657600080fd5b919390929091602081019035600160201b8111156105c357600080fd5b8201836020820111156105d557600080fd5b803590602001918460018302840111600160201b831117156105f657600080fd5b919350915080356001600160401b03908116916020810135909116906040013560ff16610954565b005b6102d9611c4d565b610276611c55565b6102b5611c5a565b6102b5611c60565b6104a8611c66565b61029461082d565b61061e6004803603604081101561066657600080fd5b810190602081018135600160201b81111561068057600080fd5b82018360208201111561069257600080fd5b803590602001918460018302840111600160201b831117156106b357600080fd5b919390929091602081019035600160201b8111156106d057600080fd5b8201836020820111156106e257600080fd5b803590602001918460018302840111600160201b8311171561070357600080fd5b509092509050611c6f565b61033c6004803603602081101561072457600080fd5b503560ff16612211565b6102b561222c565b6104a86004803603604081101561074c57600080fd5b5080356001600160a01b0316906020013560ff16612232565b61040b612252565b6102b5612271565b61061e612277565b61033c6004803603602081101561079357600080fd5b503560ff1661262e565b61061e600480360360608110156107b357600080fd5b60ff8235169190810190604081016020820135600160201b8111156107d757600080fd5b8201836020820111156107e957600080fd5b803590602001918460018302840111600160201b8311171561080a57600080fd5b919350915035612649565b6102b561279a565b6102766127a0565b6102b56127a5565b600081565b606481565b61200181565b60015481565b603281565b60045460070b81565b60025481565b600a602052600090815260409020546001600160401b031681565b60606000825160210190506060816040519080825280601f01601f1916602001820160405280156108aa576020820181803683370190505b50602181018690526001810187905282815290506041810160006108cd866127ab565b5090506108dc818388516127b5565b50909695505050505050565b600181565b60096020526000908152604090205460ff1681565b61100181565b606181565b600881565b61200081565b6005602052600090815260409020546001600160a01b031681565b61100581565b600281565b601081565b60035481565b61100881565b600b81565b60005460ff166109a7576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b60408051630a83aaa960e31b815233600482015290516110069163541d5548916024808301926020929190829003018186803b1580156109e657600080fd5b505afa1580156109fa573d6000803e3d6000fd5b505050506040513d6020811015610a1057600080fd5b5051610a63576040805162461bcd60e51b815260206004820152601f60248201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604482015290519081900360640190fd5b739fb29aac15b9a4b7f17c3385939b007540f4d791331480610a9857507337b8516a0f88e65d677229b402ec6c1e0e33300433145b610ad35760405162461bcd60e51b815260040180806020018281038252602a815260200180612d5a602a913960400191505060405180910390fd5b60ff8116600090815260086020526040902054829082906001600160401b039081169083168114610b43576040805162461bcd60e51b815260206004820152601560248201527439b2b8bab2b731b2903737ba1034b71037b93232b960591b604482015290519081900360640190fd5b60ff8216600090815260086020908152604091829020805467ffffffffffffffff1916600185016001600160401b039081169190911790915582516337d7f9c160e21b81529089166004820152915188926110039263df5fe70492602480840193829003018186803b158015610bb857600080fd5b505afa158015610bcc573d6000803e3d6000fd5b505050506040513d6020811015610be257600080fd5b5051610c1f5760405162461bcd60e51b8152600401808060200182810382526023815260200180612db66023913960400191505060405180910390fd5b60ff851660009081526005602052604090205485906001600160a01b0316610c8e576040805162461bcd60e51b815260206004820152601860248201527f6368616e6e656c206973206e6f7420737570706f727465640000000000000000604482015290519081900360640190fd5b60ff86166000908152600a6020526040902054889087906001600160401b039081169083161015610cf7576040805162461bcd60e51b815260206004820152600e60248201526d3a37b79037b632103432b0b232b960911b604482015290519081900360640190fd5b60ff81166000908152600a60205260409020546001600160401b03838116911614610d495760ff81166000908152600a60205260409020805467ffffffffffffffff19166001600160401b0384161790555b60608e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060608d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509050610e8d6110036001600160a01b031663cba510a98e6040518263ffffffff1660e01b815260040180826001600160401b03166001600160401b0316815260200191505060206040518083038186803b158015610e3657600080fd5b505afa158015610e4a573d6000803e3d6000fd5b505050506040513d6020811015610e6057600080fd5b505160408051808201909152600381526269626360e81b6020820152610e868e8e6127f6565b858561283d565b610ed5576040805162461bcd60e51b815260206004820152601460248201527334b73b30b634b21036b2b935b63290383937b7b360611b604482015290519081900360640190fd5b60408051631bb5062960e31b81526001600160401b038e16600482015290516000916110039163dda8314891602480820192602092909190829003018186803b158015610f2157600080fd5b505afa158015610f35573d6000803e3d6000fd5b505050506040513d6020811015610f4b57600080fd5b505190508b8b600080806060610f608961293a565b935093509350935083611022578460ff16866001600160401b03167ff7b2e42d694eb1100184aae86d4245d9e46966100b1dc7e723275b98326854ac8b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610fda578181015183820152602001610fc2565b50505050905090810190601f1680156110075780820380516001836020036101000a031916815260200191505b509250505060405180910390a3505050505050505050611c3d565b6040805160ff85811682529151918716916001600160401b038916917f36afdaf439a8f43fe72135135d804ae620b37a474f0943b5b85f6788312cad40919081900360200190a360ff83166115a75760ff85166000818152600560209081526040808320548151631182b87560e01b815260048101958652602481019283528651604482015286516001600160a01b03909216958695631182b875958d958a9593949093606490910192918601918190849084905b838110156110ef5781810151838201526020016110d7565b50505050905090810190601f16801561111c5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561113c57600080fd5b505af192505050801561122057506040513d6000823e601f3d908101601f19168201604052602081101561116f57600080fd5b8101908080516040519392919084600160201b82111561118e57600080fd5b9083019060208201858111156111a357600080fd5b8251600160201b8111828201881017156111bc57600080fd5b82525081516020918201929091019080838360005b838110156111e95781810151838201526020016111d1565b50505050905090810190601f1680156112165780820380516001836020036101000a031916815260200191505b5060405250505060015b611532576040516000815260443d101561123c575060006112d7565b60046000803e60005160e01c6308c379a0811461125d5760009150506112d7565b60043d036004833e81513d60248201116001600160401b0382111715611288576000925050506112d7565b80830180516001600160401b038111156112a95760009450505050506112d7565b8060208301013d86018111156112c7576000955050505050506112d7565b601f01601f191660405250925050505b806112e257506113f4565b60ff8716600090815260076020526040812054611319916001600160401b039091169089906113149060029088610872565b6129ea565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf948794849390840192918601918190849084905b838110156113b457818101518382015260200161139c565b50505050905090810190601f1680156113e15780820380516001836020036101000a031916815260200191505b509250505060405180910390a25061152d565b3d80801561141e576040519150601f19603f3d011682016040523d82523d6000602084013e611423565b606091505b5060ff8716600090815260076020526040812054611456916001600160401b039091169089906113149060029088610872565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351948794849390840192918601918190849084905b838110156114f15781810151838201526020016114d9565b50505050905090810190601f16801561151e5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b6115a1565b80511561159f5760ff871660009081526007602052604081205461156b916001600160401b039091169089906113149060019086610872565b60ff8716600090815260076020526040902080546001600160401b038082166001011667ffffffffffffffff199091161790555b505b50611b75565b60ff83166001141561184b5760ff8516600081815260056020908152604080832054815163831d65d160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563831d65d1958d958a9593949093606490910192918601918190849084905b83811015611631578181015183820152602001611619565b50505050905090810190601f16801561165e5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561167e57600080fd5b505af192505050801561168f575060015b6115a1576040516000815260443d10156116ab57506000611746565b60046000803e60005160e01c6308c379a081146116cc576000915050611746565b60043d036004833e81513d60248201116001600160401b03821117156116f757600092505050611746565b80830180516001600160401b03811115611718576000945050505050611746565b8060208301013d860181111561173657600095505050505050611746565b601f01601f191660405250925050505b8061175157506117b6565b60408051602080825283518183015283516001600160a01b038616937ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf93869390928392830191850190808383600083156113b457818101518382015260200161139c565b3d8080156117e0576040519150601f19603f3d011682016040523d82523d6000602084013e6117e5565b606091505b5060408051602080825283518183015283516001600160a01b038616937f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd297735193869390928392830191850190808383600083156114f15781810151838201526020016114d9565b60ff831660021415611b755760ff8516600081815260056020908152604080832054815163c8509d8160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563c8509d81958d958a9593949093606490910192918601918190849084905b838110156118d55781810151838201526020016118bd565b50505050905090810190601f1680156119025780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561192257600080fd5b505af1925050508015611933575060015b611b73576040516000815260443d101561194f575060006119ea565b60046000803e60005160e01c6308c379a081146119705760009150506119ea565b60043d036004833e81513d60248201116001600160401b038211171561199b576000925050506119ea565b80830180516001600160401b038111156119bc5760009450505050506119ea565b8060208301013d86018111156119da576000955050505050506119ea565b601f01601f191660405250925050505b806119f55750611a9e565b816001600160a01b03167ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf826040518080602001828103825283818151815260200191508051906020019080838360005b83811015611a5e578181015183820152602001611a46565b50505050905090810190601f168015611a8b5780820380516001836020036101000a031916815260200191505b509250505060405180910390a250611b73565b3d808015611ac8576040519150601f19603f3d011682016040523d82523d6000602084013e611acd565b606091505b50816001600160a01b03167f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351826040518080602001828103825283818151815260200191508051906020019080838360005b83811015611b37578181015183820152602001611b1f565b50505050905090810190601f168015611b645780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b505b60ff80861660009081526009602052604090205461100591636f93d2e6918a91339187911680611ba7575060ff881615155b604080516001600160e01b031960e088901b1681526001600160a01b039586166004820152939094166024840152604483019190915215156064820152905160848083019260209291908290030181600087803b158015611c0757600080fd5b505af1158015611c1b573d6000803e3d6000fd5b505050506040513d6020811015611c3157600080fd5b50505050505050505050505b5050505050505050505050505050565b630100610081565b600981565b61100781565b61100681565b60005460ff1681565b3361100714611caf5760405162461bcd60e51b815260040180806020018281038252602e815260200180612ce2602e913960400191505060405180910390fd5b611d1884848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526012815271626174636853697a65466f724f7261636c6560701b60208201529150612b409050565b15611db357604080516020601f8401819004810282018101909252828152600091611d5b91858580838501838280828437600092019190915250612c2792505050565b90506127108111158015611d705750600a8110155b611dab5760405162461bcd60e51b8152600401808060200182810382526032815260200180612d846032913960400191505060405180910390fd5b60015561217f565b611e1c84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601281527118591913dc955c19185d1950da185b9b995b60721b60208201529150612b409050565b15611fa457606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060169091149050611e9f5760405162461bcd60e51b815260040180806020018281038252605a815260200180612c88605a913960600191505060405180910390fd5b60018101516002820151601683015160ff82161590611ebd81612c2c565b611f0e576040805162461bcd60e51b815260206004820152601960248201527f61646472657373206973206e6f74206120636f6e747261637400000000000000604482015290519081900360640190fd5b60ff8416600081815260056020908152604080832080546001600160a01b0319166001600160a01b038716908117909155808452600683528184208585528352818420805460ff199081166001179091556009909352818420805490931687151517909255519092917f7e3b6af43092577ee20e60eaa1d9b114a7031305c895ee7dd3ffe17196d2e1e091a3505050505061217f565b61201184848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526016815275195b98589b1953dc911a5cd8589b1950da185b9b995b60521b60208201529150612b409050565b1561214257606082828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050825192935050600290911490506120945760405162461bcd60e51b815260040180806020018281038252604a815260200180612d10604a913960600191505060405180910390fd5b600181810151600283015160ff80831660009081526005602052604090205492939192908316909114906001600160a01b03168015612138576001600160a01b038116600090815260066020908152604080832060ff881680855290835292819020805460ff1916861515908117909155815190815290517fa3132e3f9819fbddc7f0ed6d38d7feef59aa95112090b7c592f5cb5bc4aa4adc929181900390910190a25b505050505061217f565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b6008602052600090815260409020546001600160401b031681565b61100281565b600660209081526000928352604080842090915290825290205460ff1681565b6040518060400160405280600381526020016269626360e81b81525081565b61100381565b60005460ff16156122cf576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b7f1471eb6eb2c5e789fc3de43f8ce62938c7d1836ec861730447e2ada8fd81017b80546001600160a01b0319908116611008179091557f92e85d02570a8092d09a6e3a57665bc3815a2699a4074001bf1ccabf660f5a36805460ff199081169091557fd8af288fc1c8680b4f4706064cf021e264efb6828fcaf7eb5ca36818eb365bcc8054821660019081179091557f89832631fb3c3307a103ba2c84ab569c64d6182a18893dcd163f0f1c2090733a805484166110049081179091557f6cde3cea4b3a3fb2488b2808bae7556f4a405e50f65e1794383bc026131b13c38054841690557f72e4efa1513b071517c6c74dba31b5934a81aa83cddd400e7081df5529c9943680548416831790557fa9bc9a3a348c357ba16b37005d7e6b3236198c0e939f4af8c5f19b8deeb8ebc08054851690911790557fc575c31fea594a6eb97c8e9d3f9caee4c16218c6ef37e923234c0fe9014a61e78054831690557f4e523af77f034e9810f1c94057f5e931fb3d16a51511a4c3add793617d18610580548316821790557ffb33122aa9f93cc639ebe80a7bc4784c11e6053dde89c6f4f7e268c6a623da1e805484166110001790557fc7694af312c4f286114180fd0ba6a52461fcee8a381636770b19a343af92538a80548316821790557f01112dd68e482ba8d68a7e828cff8b3abcea08eab88941953c180a7e650e9cd480548316821790557fc0a4a8be475dfebc377ebef2d7c4ff47656f572a08dd92b81017efcdba0febe1805484166110071790557f87e8a52529e8ece4ef759037313542a6429ff494a9fab9027fb79db90124eba680548316821790557f4c7666bbcb22d46469f7cc282f70764a7012dca2cce630ff8d83db9a9cdd48f080548316821790557f40f28f99a40bc9f6beea1013afdbc3cdcc689eb76b82c4de06c0acf1e1932ed58054909316611001179092557f0d9cf2cd531699eed8dd34e40ff2884a14a698c4898184fba85194e6f6772d248054821683179055600b60009081527f23f68c9bd22b8a93d06adabe17481c87c016bcbd20adc8bfd707a4d813a572176020527fdf0d5d05428057f5455c2dc8e810dd86d1e9350faa72f16bda8a45443c5b39328054831684179055603283556004805467ffffffffffffffff19166001600160401b031790556002819055600381905580549091169091179055565b6007602052600090815260409020546001600160401b031681565b60005460ff1661269c576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b33600090815260066020908152604080832060ff80891685529252909120548591166126f95760405162461bcd60e51b8152600401808060200182810382526031815260200180612c576031913960400191505060405180910390fd5b60ff85166000908152600760209081526040808320548151601f88018490048402810184019092528682526001600160401b03169261275e9284928a9261131492909189918c908c908190840183828082843760009201919091525061087292505050565b60ff959095166000908152600760205260409020805467ffffffffffffffff191660019096016001600160401b03169590951790945550505050565b61100081565b600381565b61100481565b8051602090910191565b5b602081106127d5578251825260209283019290910190601f19016127b6565b915181516020939093036101000a6000190180199091169216919091179052565b60408051600e808252818301909252606091630100610060ff851617918391602082018180368337505050600e818101969096526006810192909252509283525090919050565b60008561284c57506000612931565b606082518451865160800101016040519080825280601f01601f191660200182016040528015612883576020820181803683370190505b509050600061289182612c32565b6020808901518252019050866000806128a9896127ab565b80865260209095019490925090506128c28285836127b5565b928301926128cf886127ab565b80865260209095019490925090506128e88285836127b5565b9283018a8152602001926128fb876127ab565b909250905061290b8285836127b5565b508351602001612919612c38565b60208183886065600019fa5051600114955050505050505b95945050505050565b6000806000606060218551101561296a5750506040805160008082526020820190925290925082915081906129e3565b600185015160218601518651604080516020198301808252601f19600119909401939093168101602001909152604189019392916060919080156129b5576020820181803683370190505b50905060006129c3826127ab565b5090506129d5858260218d51036127b5565b506001975091955093509150505b9193509193565b600254431115612a29576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b161790915560035543600255612a6a565b60038054600190810191829055541015612a6a576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b16179091556003555b8160ff16836001600160401b0316600460009054906101000a900460070b6001600160401b03167f3a6e0fc61675aa2a100bcba0568368bb92bcec91c97673391074f11138f0cffe606185604051808361ffff1661ffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015612b00578181015183820152602001612ae8565b50505050905090810190601f168015612b2d5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a4505050565b6000816040516020018082805190602001908083835b60208310612b755780518252601f199092019160209182019101612b56565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310612be35780518252601f199092019160209182019101612bc4565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b3b151590565b60200190565b6040518060200160405280600190602082028036833750919291505056fe74686520636f6e747261637420616e64206368616e6e656c2068617665206e6f74206265656e20726567697374657265646c656e677468206f662076616c756520666f72206164644f725570646174654368616e6e656c2073686f756c642062652032322c206368616e6e656c49643a697346726f6d53797374656d3a68616e646c657241646472657373746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662076616c756520666f7220656e61626c654f7244697361626c654368616e6e656c2073686f756c6420626520322c206368616e6e656c49643a6973456e61626c65746865206d73672073656e646572206973206e6f7420612077686974656c6162656c2072656c61796572746865206e6577426174636853697a65466f724f7261636c652073686f756c6420626520696e205b31302c2031303030305d6c6967687420636c69656e74206e6f742073796e632074686520626c6f636b20796574a2646970667358221220035a34f6ccce4a5331a704da5375e26753e5146b5f166b6efe218f523c6a401064736f6c63430006040033" + } + }, + "28196022": { + "0x0000000000000000000000000000000000001001": { + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b50600436106102535760003560e01c80637942fd0511610146578063ac431751116100c3578063dc927faf11610087578063dc927faf1461073b578063e1c7392a14610743578063f9a2bbc71461074b578063fc3e590814610753578063fc4333cd1461075b578063fd6a68791461076357610253565b8063ac431751146105cf578063c80d4b8f1461068d578063c81b166214610695578063c8509d811461069d578063c96be4cb1461071557610253565b80639dc092621161010a5780639dc0926214610593578063a1a11bf51461059b578063a78abc16146105a3578063ab51bb96146105bf578063ac0af629146105c757610253565b80637942fd05146104fb5780638256ace614610503578063831d65d11461050b57806396713da9146105835780639bc8e4f21461058b57610253565b80634bf6c882116101d45780636e47b482116101985780636e47b482146104d357806370fd5bad146104db578063718a8aa8146104e357806375d47a0a146104eb5780637912a65d146104f357610253565b80634bf6c8821461048b57806351e8067214610493578063567a372d1461049b5780635bfb4990146104a357806362b72cf5146104cb57610253565b806337c8dab91161021b57806337c8dab9146103ed578063389f4f711461042c5780633dffc3871461044657806343756e5c14610464578063493279b11461046c57610253565b80630bee7a67146102585780630e2374a5146102795780631182b8751461029d57806323bac5a21461038a57806335aa2e44146103d0575b600080fd5b61026061076b565b6040805163ffffffff9092168252519081900360200190f35b610281610770565b604080516001600160a01b039092168252519081900360200190f35b610315600480360360408110156102b357600080fd5b60ff8235169190810190604081016020820135600160201b8111156102d757600080fd5b8201836020820111156102e957600080fd5b803590602001918460018302840111600160201b8311171561030a57600080fd5b509092509050610776565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561034f578181015183820152602001610337565b50505050905090810190601f16801561037c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103b0600480360360208110156103a057600080fd5b50356001600160a01b031661084a565b604080519384526020840192909252151582820152519081900360600190f35b610281600480360360208110156103e657600080fd5b503561086d565b6104136004803603602081101561040357600080fd5b50356001600160a01b0316610894565b6040805192835260208301919091528051918290030190f35b6104346108eb565b60408051918252519081900360200190f35b61044e6108f1565b6040805160ff9092168252519081900360200190f35b6102816108f6565b6104746108fc565b6040805161ffff9092168252519081900360200190f35b61044e610901565b610281610906565b61043461090c565b6104c9600480360360208110156104b957600080fd5b50356001600160a01b0316610912565b005b610434610a73565b610281610a79565b61044e610a7f565b61044e610a84565b610281610a89565b610434610a8f565b61044e610a94565b610413610a99565b6104c96004803603604081101561052157600080fd5b60ff8235169190810190604081016020820135600160201b81111561054557600080fd5b82018360208201111561055757600080fd5b803590602001918460018302840111600160201b8311171561057857600080fd5b509092509050610aa3565b61044e610bfd565b610434610c02565b610281610c0d565b610281610c13565b6105ab610c19565b604080519115158252519081900360200190f35b610260610c22565b610434610c27565b6104c9600480360360408110156105e557600080fd5b810190602081018135600160201b8111156105ff57600080fd5b82018360208201111561061157600080fd5b803590602001918460018302840111600160201b8311171561063257600080fd5b919390929091602081019035600160201b81111561064f57600080fd5b82018360208201111561066157600080fd5b803590602001918460018302840111600160201b8311171561068257600080fd5b509092509050610c2c565b61043461101a565b61028161101f565b6104c9600480360360408110156106b357600080fd5b60ff8235169190810190604081016020820135600160201b8111156106d757600080fd5b8201836020820111156106e957600080fd5b803590602001918460018302840111600160201b8311171561070a57600080fd5b509092509050611025565b6104c96004803603602081101561072b57600080fd5b50356001600160a01b03166110d8565b610281611659565b6104c961165f565b6102816116d0565b61044e6116d6565b6104c96116db565b610281611b66565b606481565b61200181565b606033612000146107b85760405162461bcd60e51b815260040180806020018281038252602f8152602001806125bd602f913960400191505060405180910390fd5b60005460ff166107fd576040805162461bcd60e51b81526020600482015260196024820152600080516020612619833981519152604482015290519081900360640190fd5b6040805162461bcd60e51b815260206004820152601e60248201527f7265636569766520756e65787065637465642073796e207061636b6167650000604482015290519081900360640190fd5b600260208190526000918252604090912080546001820154919092015460ff1683565b6001818154811061087a57fe5b6000918252602090912001546001600160a01b0316905081565b60008061089f612481565b5050506001600160a01b0316600090815260026020818152604092839020835160608101855281548082526001830154938201849052919093015460ff16151592909301919091529091565b60055481565b600181565b61100181565b606181565b600881565b61200081565b60045481565b33611000146109525760405162461bcd60e51b81526004018080602001828103825260308152602001806125186030913960400191505060405180910390fd5b60005460ff16610997576040805162461bcd60e51b81526020600482015260196024820152600080516020612619833981519152604482015290519081900360640190fd5b61200063f7a251d7600b6109aa84611b6c565b60006040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015610a0a5781810151838201526020016109f2565b50505050905090810190601f168015610a375780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015610a5857600080fd5b505af1158015610a6c573d6000803e3d6000fd5b5050505050565b60035481565b61100581565b600281565b601081565b61100881565b603281565b600b81565b6004546005549091565b3361200014610ae35760405162461bcd60e51b815260040180806020018281038252602f8152602001806125bd602f913960400191505060405180910390fd5b60005460ff16610b28576040805162461bcd60e51b81526020600482015260196024820152600080516020612619833981519152604482015290519081900360640190fd5b610b306124a4565b6000610b7184848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611c3e92505050565b915091508015610bbb5781516040805163ffffffff9092168252517f7f0956d47419b9525356e7111652b653b530ec6f5096dccc04589bc38e6299679181900360200190a1610a6c565b81516040805163ffffffff9092168252517f7d45f62d17443dd4547bca8a8112c60e2385669318dc300ec61a5d2492f262e79181900360200190a15050505050565b600981565b662386f26fc1000081565b61100781565b61100681565b60005460ff1681565b600081565b600481565b60005460ff16610c71576040805162461bcd60e51b81526020600482015260196024820152600080516020612619833981519152604482015290519081900360640190fd5b3361100714610cb15760405162461bcd60e51b815260040180806020018281038252602e815260200180612548602e913960400191505060405180910390fd5b610d1c84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260148152731b5a5cd9195b59585b9bdc951a1c995cda1bdb1960621b60208201529150611cbe9050565b15610df55760208114610d605760405162461bcd60e51b81526004018080602001828103825260278152602001806124f16027913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610d9e91858580838501838280828437600092019190915250611da692505050565b905060018110158015610db2575060055481105b610ded5760405162461bcd60e51b81526004018080602001828103825260258152602001806125986025913960400191505060405180910390fd5b600455610f88565b610e5b84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e19995b1bdb9e551a1c995cda1bdb19608a1b60208201529150611cbe9050565b15610f4b5760208114610e9f5760405162461bcd60e51b81526004018080602001828103825260228152602001806125766022913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610edd91858580838501838280828437600092019190915250611da692505050565b90506103e88111158015610ef2575060045481115b610f43576040805162461bcd60e51b815260206004820181905260248201527f7468652066656c6f6e795468726573686f6c64206f7574206f662072616e6765604482015290519081900360640190fd5b600555610f88565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b609681565b61100281565b33612000146110655760405162461bcd60e51b815260040180806020018281038252602f8152602001806125bd602f913960400191505060405180910390fd5b60005460ff166110aa576040805162461bcd60e51b81526020600482015260196024820152600080516020612619833981519152604482015290519081900360640190fd5b6040517f07db600eebe2ac176be8dcebad61858c245a4961bb32ca2aa3d159b09aa0810e90600090a1505050565b3341146111165760405162461bcd60e51b815260040180806020018281038252602d8152602001806125ec602d913960400191505060405180910390fd5b60005460ff1661115b576040805162461bcd60e51b81526020600482015260196024820152600080516020612619833981519152604482015290519081900360640190fd5b60035443116111b1576040805162461bcd60e51b815260206004820181905260248201527f63616e206e6f7420736c61736820747769636520696e206f6e6520626c6f636b604482015290519081900360640190fd5b3a156111fb576040805162461bcd60e51b81526020600482015260146024820152736761737072696365206973206e6f74207a65726f60601b604482015290519081900360640190fd5b6040805163155853f360e21b81526001600160a01b03831660048201529051611000916355614fcc916024808301926020929190829003018186803b15801561124357600080fd5b505afa158015611257573d6000803e3d6000fd5b505050506040513d602081101561126d57600080fd5b505161127857611652565b611280612481565b506001600160a01b0381166000908152600260208181526040928390208351606081018552815481526001820154928101929092529091015460ff1615801592820192909252906112db576020810180516001019052611334565b60016040820181905260208201819052805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0384161790555b43815260055460208201518161134657fe5b0661157657600060208201819052604080516335409f7f60e01b81526001600160a01b03851660048201529051611000926335409f7f926024808201939182900301818387803b15801561139957600080fd5b505af11580156113ad573d6000803e3d6000fd5b505050506120006001600160a01b031663f7a251d7600b6113cd85611b6c565b60006040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561142d578181015183820152602001611415565b50505050905090810190601f16801561145a5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561147b57600080fd5b505af192505050801561148c575060015b611571573d8080156114ba576040519150601f19603f3d011682016040523d82523d6000602084013e6114bf565b606091505b50826001600160a01b03167fd7bc86ff5d08c8ab043edec743302aba2520e6635172a428bc956721db9e2d1c8360200151836040518083815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561153457818101518382015260200161151c565b50505050905090810190601f1680156115615780820380516001836020036101000a031916815260200191505b50935050505060405180910390a2505b6115ec565b60045481602001518161158557fe5b066115ec57604080516375abf10160e11b81526001600160a01b038416600482015290516110009163eb57e20291602480830192600092919082900301818387803b1580156115d357600080fd5b505af11580156115e7573d6000803e3d6000fd5b505050505b6001600160a01b0382166000818152600260208181526040808420865181559186015160018301558581015191909201805460ff1916911515919091179055517fddb6012116e51abf5436d956a4f0ebd927e92c576ff96d7918290c8782291e3e9190a2505b5043600355565b61100381565b60005460ff16156116b7576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b603260045560966005556000805460ff19166001179055565b61100081565b600381565b336110001461171b5760405162461bcd60e51b81526004018080602001828103825260308152602001806125186030913960400191505060405180910390fd5b60005460ff16611760576040805162461bcd60e51b81526020600482015260196024820152600080516020612619833981519152604482015290519081900360640190fd5b60015461176c57611b64565b600154600090600019015b808211611b38576000805b8284101561189b57611792612481565b60026000600187815481106117a357fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff1615159082015260055490915060049004816020015111156118855760046005548161181057fe5b0481602001510381602001818152505080600260006001888154811061183257fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208351815591830151600183015591909101516002909101805460ff191691151591909117905561188f565b600192505061189b565b50600190930192611782565b828411611a32576118aa612481565b60026000600186815481106118bb57fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff1615159082015260055490915060049004816020015111156119a35760046005548161192857fe5b0481602001510381602001818152505080600260006001878154811061194a57fe5b6000918252602080832091909101546001600160a01b03168352828101939093526040918201902083518155918301516001808401919091559201516002909101805460ff19169115159190911790559150611a329050565b60026000600186815481106119b457fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff191690558054806119f857fe5b600082815260209020810160001990810180546001600160a01b031916905501905583611a255750611a32565b506000199092019161189b565b818015611a3c5750805b15611b1b576002600060018681548110611a5257fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff19169055805484908110611a9957fe5b600091825260209091200154600180546001600160a01b039092169186908110611abf57fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506001805480611af857fe5b600082815260209020810160001990810180546001600160a01b03191690550190555b82611b27575050611b38565b505060019091019060001901611777565b6040517fcfdb3b6ccaeccbdc68be3c59c840e3b3c90f0a7c491f5fff1cf56cfda200dd9c90600090a150505b565b61100481565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081611b87579050509050611bb0836001600160a01b0316611dab565b81600081518110611bbd57fe5b6020026020010181905250611bd143611dce565b81600181518110611bde57fe5b6020908102919091010152611bf36061611dce565b81600281518110611c0057fe5b6020026020010181905250611c1442611dce565b81600381518110611c2157fe5b6020026020010181905250611c3581611de1565b9150505b919050565b611c466124a4565b6000611c506124a4565b611c586124b6565b611c69611c6486611e6b565b611e90565b90506000805b611c7883611eda565b15611cb15780611ca457611c93611c8e84611efb565b611f49565b63ffffffff16845260019150611ca9565b611cb1565b600101611c6f565b5091935090915050915091565b6000816040516020018082805190602001908083835b60208310611cf35780518252601f199092019160209182019101611cd4565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310611d615780518252601f199092019160209182019101611d42565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052805190602001201490505b92915050565b015190565b60408051600560a21b8318601482015260348101909152606090611c3581612000565b6060611da0611ddc83612056565b612000565b6060815160001415611e025750604080516000815260208101909152611c39565b606082600081518110611e1157fe5b602002602001015190506000600190505b8351811015611e5257611e4882858381518110611e3b57fe5b602002602001015161213c565b9150600101611e22565b50611c35611e65825160c060ff166121b9565b8261213c565b611e736124d6565b506040805180820190915281518152602082810190820152919050565b611e986124b6565b611ea1826122b1565b611eaa57600080fd5b6000611eb983602001516122eb565b60208085015160408051808201909152868152920190820152915050919050565b6000611ee46124d6565b505080518051602091820151919092015191011190565b611f036124d6565b611f0c82611eda565b611f1557600080fd5b60208201516000611f258261234e565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590611f5e57508151602110155b611f6757600080fd5b6000611f7683602001516122eb565b90508083600001511015611fd1576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015611ff757826020036101000a820491505b50949350505050565b6060815160011480156120325750607f60f81b8260008151811061202057fe5b01602001516001600160f81b03191611155b1561203e575080611c39565b611da06120508351608060ff166121b9565b8361213c565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff19841661209a575060186120be565b6fffffffffffffffffffffffffffffffff1984166120ba575060106120be565b5060005b60208110156120f4578181815181106120d357fe5b01602001516001600160f81b031916156120ec576120f4565b6001016120be565b60008160200390506060816040519080825280601f01601f191660200182016040528015612129576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b8183101561216d578051835260209283019201612155565b50855184518101855292509050808201602086015b8183101561219a578051835260209283019201612182565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310612209576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b604080516001808252818301909252606091602082018180368337019050509050603784116122635782840160f81b8160008151811061224557fe5b60200101906001600160f81b031916908160001a9053509050611da0565b606061226e85612056565b90508381510160370160f81b8260008151811061228757fe5b60200101906001600160f81b031916908160001a9053506122a8828261213c565b95945050505050565b80516000906122c257506000611c39565b6020820151805160001a9060c08210156122e157600092505050611c39565b5060019392505050565b8051600090811a6080811015612305576000915050611c39565b60b8811080612320575060c08110801590612320575060f881105b1561232f576001915050611c39565b60c08110156123435760b519019050611c39565b60f519019050611c39565b80516000908190811a6080811015612369576001915061247a565b60b881101561237e57607e198101915061247a565b60c08110156123f857600060b78203600186019550806020036101000a8651049150600181018201935050808310156123f2576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b5061247a565b60f881101561240d5760be198101915061247a565b600060f78203600186019550806020036101000a865104915060018101820193505080831015612478576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b604051806060016040528060008152602001600081526020016000151581525090565b60408051602081019091526000815290565b60405180604001604052806124c96124d6565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe6c656e677468206f66206d697364656d65616e6f725468726573686f6c64206d69736d61746368746865206d6573736167652073656e646572206d7573742062652076616c696461746f7253657420636f6e7472616374746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662066656c6f6e795468726573686f6c64206d69736d61746368746865206d697364656d65616e6f725468726573686f6c64206f7574206f662072616e6765746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d6573736167652073656e646572206d7573742062652074686520626c6f636b2070726f647563657274686520636f6e7472616374206e6f7420696e69742079657400000000000000a264697066735822122073e63503ac4253c326fb17904c6564f8471e21693509513fe7dc5277fcd239a364736f6c63430006040033" + }, + "0x0000000000000000000000000000000000001004": { + "balance": "0x0", + "code": "0x6080604052600436106103c75760003560e01c806396713da9116101f2578063c81b16621161010d578063f0148472116100a0578063fc1a598f1161006f578063fc1a598f14610f25578063fc3e590814610b85578063fd6a687914610f58578063ff9c0027146107fd5761040f565b8063f014847214610ed1578063f9a2bbc714610ee6578063fa9e915914610efb578063fb063e8f14610f105761040f565b8063dc927faf116100dc578063dc927faf14610e5f578063e1c7392a14610e74578063e8f35cea14610e89578063ebf71d5314610ebc5761040f565b8063c81b166214610d8a578063c8509d8114610d9f578063cf41984414610e24578063d9e6dae91461077f5761040f565b8063aa7415f511610185578063b9fd21e311610154578063b9fd21e314610cfa578063ba35ead614610d0f578063bbface1f14610d24578063bd46646114610d575761040f565b8063aa7415f514610b9a578063ab51bb9614610be1578063ac43175114610bf6578063b99328c514610cc15761040f565b8063a1a11bf5116101c1578063a1a11bf514610b46578063a496fba214610b5b578063a78abc1614610b70578063a7c9f02d14610b855761040f565b806396713da914610ace5780639a854bbd14610ae35780639a99b4f014610af85780639dc0926214610b315761040f565b806359b92789116102e257806371d3086311610275578063831d65d111610244578063831d65d1146109d15780638b87b21f146106d45780638eff336c14610a565780639509b98014610a955761040f565b806371d3086314610968578063727be1f81461097d57806375d47a0a146109a75780637942fd05146109bc5761040f565b80636e056520116102b15780636e056520146108125780636e47b4821461093e57806370fd5bad146107fd578063718a8aa8146109535761040f565b806359b92789146107be5780635d499b1b146107e8578063613684751461077f57806366dea52a146107fd5761040f565b80633fd8b02f1161035a5780634a3acdf4116103295780634a3acdf41461076a5780634bf6c8821461077f57806350432d321461079457806351e80672146107a95761040f565b80633fd8b02f146106ff57806343756e5c1461071457806343a368b914610729578063493279b11461073e5761040f565b8063149d14d911610396578063149d14d9146105a85780632ae45483146105cf5780633d713223146106235780633dffc387146106d45761040f565b80630bee7a67146104145780630e2374a5146104425780631182b87514610473578063122345821461056d5761040f565b3661040f57341561040d576040805133815234602082015281517f6c98249d85d88c3753a04a22230f595e4dc8d3dc86c34af35deeeedc861b89db929181900390910190a15b005b600080fd5b34801561042057600080fd5b50610429610f6d565b6040805163ffffffff9092168252519081900360200190f35b34801561044e57600080fd5b50610457610f72565b604080516001600160a01b039092168252519081900360200190f35b34801561047f57600080fd5b506104f86004803603604081101561049657600080fd5b60ff8235169190810190604081016020820135600160201b8111156104ba57600080fd5b8201836020820111156104cc57600080fd5b803590602001918460018302840111600160201b831117156104ed57600080fd5b509092509050610f78565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561053257818101518382015260200161051a565b50505050905090810190601f16801561055f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561057957600080fd5b5061040d6004803603604081101561059057600080fd5b506001600160a01b03813581169160200135166110a6565b3480156105b457600080fd5b506105bd6111a0565b60408051918252519081900360200190f35b3480156105db57600080fd5b5061060a600480360360408110156105f257600080fd5b506001600160a01b03813581169160200135166111a6565b6040805192835260208301919091528051918290030190f35b34801561062f57600080fd5b506104576004803603602081101561064657600080fd5b810190602081018135600160201b81111561066057600080fd5b82018360208201111561067257600080fd5b803590602001918460018302840111600160201b8311171561069357600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506111ca945050505050565b3480156106e057600080fd5b506106e96111ee565b6040805160ff9092168252519081900360200190f35b34801561070b57600080fd5b506105bd6111f3565b34801561072057600080fd5b506104576111f9565b34801561073557600080fd5b506105bd6111ff565b34801561074a57600080fd5b5061075361120b565b6040805161ffff9092168252519081900360200190f35b34801561077657600080fd5b506105bd611210565b34801561078b57600080fd5b506106e9611216565b3480156107a057600080fd5b506105bd61121b565b3480156107b557600080fd5b50610457611226565b3480156107ca57600080fd5b50610457600480360360208110156107e157600080fd5b503561122c565b3480156107f457600080fd5b506105bd611247565b34801561080957600080fd5b506106e9611250565b61092a6004803603608081101561082857600080fd5b810190602081018135600160201b81111561084257600080fd5b82018360208201111561085457600080fd5b803590602001918460208302840111600160201b8311171561087557600080fd5b919390929091602081019035600160201b81111561089257600080fd5b8201836020820111156108a457600080fd5b803590602001918460208302840111600160201b831117156108c557600080fd5b919390929091602081019035600160201b8111156108e257600080fd5b8201836020820111156108f457600080fd5b803590602001918460208302840111600160201b8311171561091557600080fd5b91935091503567ffffffffffffffff16611255565b604080519115158252519081900360200190f35b34801561094a57600080fd5b5061045761172a565b34801561095f57600080fd5b506106e9611730565b34801561097457600080fd5b506105bd611735565b34801561098957600080fd5b5061092a600480360360208110156109a057600080fd5b503561173b565b3480156109b357600080fd5b506104576117bc565b3480156109c857600080fd5b506106e96117c2565b3480156109dd57600080fd5b5061040d600480360360408110156109f457600080fd5b60ff8235169190810190604081016020820135600160201b811115610a1857600080fd5b820183602082011115610a2a57600080fd5b803590602001918460018302840111600160201b83111715610a4b57600080fd5b5090925090506117c7565b348015610a6257600080fd5b5061040d60048036036060811015610a7957600080fd5b508035906001600160a01b036020820135169060400135611910565b348015610aa157600080fd5b5061040d60048036036040811015610ab857600080fd5b506001600160a01b038135169060200135611996565b348015610ada57600080fd5b506106e9611b53565b348015610aef57600080fd5b506105bd611b58565b348015610b0457600080fd5b506105bd60048036036040811015610b1b57600080fd5b506001600160a01b038135169060200135611b64565b348015610b3d57600080fd5b50610457611ca2565b348015610b5257600080fd5b50610457611ca8565b348015610b6757600080fd5b506106e9611cae565b348015610b7c57600080fd5b5061092a611cb3565b348015610b9157600080fd5b506106e9611cbc565b61092a60048036036080811015610bb057600080fd5b5080356001600160a01b03908116916020810135909116906040810135906060013567ffffffffffffffff16611cc1565b348015610bed57600080fd5b50610429611cae565b348015610c0257600080fd5b5061040d60048036036040811015610c1957600080fd5b810190602081018135600160201b811115610c3357600080fd5b820183602082011115610c4557600080fd5b803590602001918460018302840111600160201b83111715610c6657600080fd5b919390929091602081019035600160201b811115610c8357600080fd5b820183602082011115610c9557600080fd5b803590602001918460018302840111600160201b83111715610cb657600080fd5b509092509050612382565b348015610ccd57600080fd5b5061040d60048036036040811015610ce457600080fd5b50803590602001356001600160a01b031661282a565b348015610d0657600080fd5b506105bd6128a0565b348015610d1b57600080fd5b506105bd6128aa565b348015610d3057600080fd5b506105bd60048036036020811015610d4757600080fd5b50356001600160a01b03166128b0565b348015610d6357600080fd5b506105bd60048036036020811015610d7a57600080fd5b50356001600160a01b03166128c2565b348015610d9657600080fd5b506104576128dd565b348015610dab57600080fd5b5061040d60048036036040811015610dc257600080fd5b60ff8235169190810190604081016020820135600160201b811115610de657600080fd5b820183602082011115610df857600080fd5b803590602001918460018302840111600160201b83111715610e1957600080fd5b5090925090506128e3565b348015610e3057600080fd5b5061040d60048036036040811015610e4757600080fd5b506001600160a01b03813581169160200135166129b3565b348015610e6b57600080fd5b50610457612c87565b348015610e8057600080fd5b5061040d612c8d565b348015610e9557600080fd5b506105bd60048036036020811015610eac57600080fd5b50356001600160a01b0316612d2d565b348015610ec857600080fd5b506106e9612d3f565b348015610edd57600080fd5b506106e9612d44565b348015610ef257600080fd5b50610457612d49565b348015610f0757600080fd5b506105bd612d4f565b348015610f1c57600080fd5b506105bd612d55565b348015610f3157600080fd5b506104f860048036036020811015610f4857600080fd5b50356001600160a01b0316612d63565b348015610f6457600080fd5b50610457612e8a565b606481565b61200181565b60005460609060ff16610fc0576040805162461bcd60e51b81526020600482015260196024820152600080516020615582833981519152604482015290519081900360640190fd5b33612000146110005760405162461bcd60e51b815260040180806020018281038252602f815260200180615530602f913960400191505060405180910390fd5b60ff8416600214156110525761104b83838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612e9092505050565b905061109f565b6040805162461bcd60e51b815260206004820152601860248201527f756e7265636f676e697a65642073796e207061636b6167650000000000000000604482015290519081900360640190fd5b9392505050565b33612000146110e65760405162461bcd60e51b815260040180806020018281038252602f815260200180615530602f913960400191505060405180910390fd5b6001600160a01b0380831660009081526007602090815260408083209385168352929052208054611151576040805162461bcd60e51b815260206004820152601060248201526f1b9bc81b1bd8dad95908185b5bdd5b9d60821b604482015290519081900360640190fd5b8054600082556040805182815290516001600160a01b0380861692908716917f152fb15aa5d80f843e1e4bd5f2fc9161714f169945024decec7e84fb910fdd519181900360200190a350505050565b60015490565b60076020908152600092835260408084209091529082529020805460019091015482565b6020818101516000908152600490915260409020546001600160a01b03165b919050565b600181565b60055481565b61100181565b670de0b6b3a764000081565b606181565b61a8c081565b600881565b66071afd498d000081565b61200081565b6000908152600460205260409020546001600160a01b031690565b6402540be40081565b600281565b6000805460ff1661129b576040805162461bcd60e51b81526020600482015260196024820152600080516020615582833981519152604482015290519081900360640190fd5b8685146112d95760405162461bcd60e51b815260040180806020018281038252603b8152602001806154f5603b913960400191505060405180910390fd5b8683146113175760405162461bcd60e51b815260040180806020018281038252603f8152602001806153c8603f913960400191505060405180910390fd5b426078018267ffffffffffffffff1610156113635760405162461bcd60e51b81526004018080602001828103825260248152602001806152b86024913960400191505060405180910390fd5b6402540be4003406156113a75760405162461bcd60e51b81526004018080602001828103825260408152602001806155f86040913960400191505060405180910390fd5b604080518681526020808802820101909152859060009081906060908480156113da578160200160208202803683370190505b50905060005b848110156114b5576402540be4008b8b838181106113fa57fe5b905060200201358161140857fe5b06156114455760405162461bcd60e51b815260040180806020018281038252603c815260200180615407603c913960400191505060405180910390fd5b61146a8b8b8381811061145457fe5b9050602002013585612fb490919063ffffffff16565b93506114966402540be4008c8c8481811061148157fe5b9050602002013561300e90919063ffffffff16565b8282815181106114a257fe5b60209081029190910101526001016113e0565b506001546114da906114cd908663ffffffff61305016565b849063ffffffff612fb416565b3410156115185760405162461bcd60e51b81526004018080602001828103825260568152602001806155a26056913960600191505060405180910390fd5b611528348463ffffffff6130a916565b91506115326150bc565b6040518060c001604052806221272160e91b60001b815260200160006001600160a01b031681526020018381526020018e8e808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505050908252506040805160208c810282810182019093528c82529283019290918d918d91829185019084908082843760009201919091525050509082525067ffffffffffffffff8916602090910152905061200063f7a251d760036115f6846130eb565b61160b876402540be40063ffffffff61300e16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611669578181015183820152602001611651565b50505050905090810190601f1680156116965780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156116b757600080fd5b505af11580156116cb573d6000803e3d6000fd5b505060408051600081523360208201528082018890526060810187905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a15060019c9b505050505050505050505050565b61100581565b601081565b60015481565b6000336120011461177d5760405162461bcd60e51b81526004018080602001828103825260338152602001806151d66033913960400191505060405180910390fd5b81156117b4576040516120019083156108fc029084906000818181858888f193505050501580156117b2573d6000803e3d6000fd5b505b506001919050565b61100881565b600b81565b60005460ff1661180c576040805162461bcd60e51b81526020600482015260196024820152600080516020615582833981519152604482015290519081900360640190fd5b336120001461184c5760405162461bcd60e51b815260040180806020018281038252602f815260200180615530602f913960400191505060405180910390fd5b60ff83166003141561189c5761189782828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506133a692505050565b61190b565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a15b505050565b33611008146119505760405162461bcd60e51b815260040180806020018281038252602381526020018061555f6023913960400191505060405180910390fd5b600083815260046020908152604080832080546001600160a01b039096166001600160a01b03199096168617905593825260038152838220949094556002909352912055565b81806001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b1580156119d057600080fd5b505afa1580156119e4573d6000803e3d6000fd5b505050506040513d60208110156119fa57600080fd5b50516001600160a01b03163314611a58576040805162461bcd60e51b815260206004820152601860248201527f6e6f74206f776e6572206f6620424550323020746f6b656e0000000000000000604482015290519081900360640190fd5b60008211611aa6576040805162461bcd60e51b81526020600482015260166024820152751e995c9bc81b1a5b5a5d081b9bdd08185b1b1bddd95960521b604482015290519081900360640190fd5b6001600160a01b038316600090815260036020526040902054611afc576040805162461bcd60e51b81526020600482015260096024820152681b9bdd08189bdd5b9960ba1b604482015290519081900360640190fd5b6001600160a01b038316600081815260066020908152604091829020859055815185815291513393927f9df3a90730dbf23b5cc18dbbd5f4af3fa94a0dffb6ff6841f98a9a9a6ac626a892908290030190a3505050565b600981565b677ce66c50e284000081565b6000805460ff16611baa576040805162461bcd60e51b81526020600482015260196024820152600080516020615582833981519152604482015290519081900360640190fd5b3361100514611bea5760405162461bcd60e51b815260040180806020018281038252602f815260200180615209602f913960400191505060405180910390fd5b6000478310611bf95747611bfb565b825b9050670de0b6b3a7640000811115611c17576000915050611c9c565b8015611c99576040516001600160a01b0385169082156108fc029083906000818181858888f19350505050158015611c53573d6000803e3d6000fd5b50604080516001600160a01b03861681526020810183905281517ff8b71c64315fc33b2ead2adfa487955065152a8ac33d9d5193aafd7f45dc15a0929181900390910190a15b90505b92915050565b61100781565b61100681565b600081565b60005460ff1681565b600381565b6000805460ff16611d07576040805162461bcd60e51b81526020600482015260196024820152600080516020615582833981519152604482015290519081900360640190fd5b426078018267ffffffffffffffff161015611d535760405162461bcd60e51b81526004018080602001828103825260248152602001806152b86024913960400191505060405180910390fd5b6402540be400340615611d975760405162461bcd60e51b81526004018080602001828103825260408152602001806155f86040913960400191505060405180910390fd5b600080806001600160a01b038816611e7657600154611dbd90879063ffffffff612fb416565b341015611dfb5760405162461bcd60e51b81526004018080602001828103825260618152602001806153426061913960800191505060405180910390fd5b6402540be400860615611e3f5760405162461bcd60e51b815260040180806020018281038252603c815260200180615407603c913960400191505060405180910390fd5b611e4f348763ffffffff6130a916565b9050611e66866402540be40063ffffffff61300e16565b6221272160e91b93509150612119565b6001600160a01b038816600090815260036020526040902054925082611ecd5760405162461bcd60e51b81526004018080602001828103825260318152602001806153116031913960400191505060405180910390fd5b600154341015611f0e5760405162461bcd60e51b815260040180806020018281038252603f815260200180615464603f913960400191505060405180910390fd5b506001600160a01b0387166000908152600260205260409020543490600881111580611f595750600881118015611f595750611f57876007198301600a0a63ffffffff61340216565b155b611f945760405162461bcd60e51b815260040180806020018281038252603c815260200180615407603c913960400191505060405180910390fd5b611f9e8782613444565b9250611fa984613484565b15611ff1576305f5e100831015611ff15760405162461bcd60e51b815260040180806020018281038252603a81526020018061525a603a913960400191505060405180910390fd5b60088110158061200b575060088110801561200b57508683115b6120465760405162461bcd60e51b81526004018080602001828103825260258152602001806153a36025913960400191505060405180910390fd5b677ce66c50e284000083111561208d5760405162461bcd60e51b81526004018080602001828103825260358152602001806152dc6035913960400191505060405180910390fd5b604080516323b872dd60e01b81523360048201523060248201526044810189905290516001600160a01b038b16916323b872dd9160648083019260209291908290030181600087803b1580156120e257600080fd5b505af11580156120f6573d6000803e3d6000fd5b505050506040513d602081101561210c57600080fd5b505161211757600080fd5b505b6121216150bc565b6040805160c0810182528581526001600160a01b038b166020820152815160018082528184018452919283019181602001602082028036833750505081526040805160018082528183019092526020928301929091908083019080368337505050815260408051600180825281830190925260209283019290919080830190803683370190505081526020018767ffffffffffffffff1681525090508281604001516000815181106121cf57fe5b6020026020010181815250508781606001516000815181106121ed57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505033816080015160008151811061221f57fe5b6001600160a01b039092166020928302919091019091015261200063f7a251d7600361224a846130eb565b61225f866402540be40063ffffffff61300e16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156122bd5781810151838201526020016122a5565b50505050905090810190601f1680156122ea5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561230b57600080fd5b505af115801561231f573d6000803e3d6000fd5b5050604080516001600160a01b038d1681523360208201528082018b90526060810186905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a150600198975050505050505050565b33611007146123c25760405162461bcd60e51b815260040180806020018281038252602e8152602001806154a3602e913960400191505060405180910390fd5b60208114612417576040805162461bcd60e51b815260206004820152601b60248201527f65787065637465642076616c7565206c656e6774682069732033320000000000604482015290519081900360640190fd5b606084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8801819004810282018101909252868152939450606093925086915085908190840183828082843760009201919091525050505060208301519091506772656c617946656560c01b81141561251f576020820151670de0b6b3a764000081118015906124c657506402540be4008106155b612517576040805162461bcd60e51b815260206004820152601960248201527f7468652072656c6179466565206f7574206f662072616e676500000000000000604482015290519081900360640190fd5b600155612795565b61259387878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601781527f6c617267655472616e736665724c6f636b506572696f640000000000000000006020820152915061358a9050565b1561262f57604080516020601f87018190048102820181019092528581526000916125d69188888083850183828082843760009201919091525061367192505050565b905062093a80811115612627576040805162461bcd60e51b81526020600482015260146024820152736c6f636b20706572696f6420746f6f206c6f6e6760601b604482015290519081900360640190fd5b600555612795565b61269b87878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526015815274189b9893185c99d9551c985b9cd9995c931a5b5a5d605a1b6020820152915061358a9050565b1561275857604080516020601f87018190048102820181019092528581526000916126de9188888083850183828082843760009201919091525061367192505050565b905068056bc75e2d631000008110156127285760405162461bcd60e51b81526004018080602001828103825260228152602001806152386022913960400191505060405180910390fd5b6000805260066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f855612795565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a878787876040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050505050565b336110081461286a5760405162461bcd60e51b815260040180806020018281038252602381526020018061555f6023913960400191505060405180910390fd5b600091825260046020908152604080842080546001600160a01b03191690556001600160a01b0392909216835260039052812055565b6221272160e91b81565b61c35081565b60026020526000908152604090205481565b6001600160a01b031660009081526003602052604090205490565b61100281565b60005460ff16612928576040805162461bcd60e51b81526020600482015260196024820152600080516020615582833981519152604482015290519081900360640190fd5b33612000146129685760405162461bcd60e51b815260040180806020018281038252602f815260200180615530602f913960400191505060405180910390fd5b60ff83166003141561189c5761189782828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061367692505050565b60085460ff16600214156129ff576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b6008805460ff191660021790556001600160a01b0380831660009081526007602090815260408083209385168352929052208054612a77576040805162461bcd60e51b815260206004820152601060248201526f1b9bc81b1bd8dad95908185b5bdd5b9d60821b604482015290519081900360640190fd5b8060010154421015612ad0576040805162461bcd60e51b815260206004820152601760248201527f7374696c6c206f6e206c6f636b696e6720706572696f64000000000000000000604482015290519081900360640190fd5b805460008083556001600160a01b038516612b43576040516001600160a01b038516906127109084906000818181858888f193505050503d8060008114612b33576040519150601f19603f3d011682016040523d82523d6000602084013e612b38565b606091505b505080915050612bd6565b846001600160a01b031663a9059cbb61c35086856040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b158015612ba657600080fd5b5087f1158015612bba573d6000803e3d6000fd5b50505050506040513d6020811015612bd157600080fd5b505190505b80612c28576040805162461bcd60e51b815260206004820152601e60248201527f776974686472617720756e6c6f636b656420746f6b656e206661696c65640000604482015290519081900360640190fd5b836001600160a01b0316856001600160a01b03167f832fc3e25f2b3e6fb0eb59419a73cba405f2a249fce75f7e31ea5a457a0323f1846040518082815260200191505060405180910390a350506008805460ff19166001179055505050565b61100381565b60005460ff1615612ce5576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b66071afd498d000060019081556000808052600260205260127fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b55805460ff19169091179055565b60066020526000908152604090205481565b600481565b600581565b61100081565b61271081565b69021e19e0c9bab240000081565b6001600160a01b03811660009081526003602090815260409182902054825182815280840190935260609290918391906020820181803683375050506020810183905290506000805b60208160ff161015612df357828160ff1681518110612dc757fe5b01602001516001600160f81b03191615612de657600190910190612deb565b612df3565b600101612dac565b5060608160ff166040519080825280601f01601f191660200182016040528015612e24576020820181803683370190505b50905060005b8260ff168160ff161015612e8057838160ff1681518110612e4757fe5b602001015160f81c60f81b828260ff1681518110612e6157fe5b60200101906001600160f81b031916908160001a905350600101612e2a565b5095945050505050565b61100481565b6060612e9a615108565b6000612ea584613774565b9150915080612efb576040805162461bcd60e51b815260206004820152601f60248201527f756e7265636f676e697a6564207472616e73666572496e207061636b61676500604482015290519081900360640190fd5b6000612f06836138b3565b905063ffffffff811615612f9a576040808401516020808601516001600160a01b03166000908152600290915291822054612f419190613444565b9050612f4b61513d565b60405180608001604052808660000151815260200183815260200186608001516001600160a01b031681526020018463ffffffff168152509050612f8e81613c19565b955050505050506111e9565b505060408051600081526020810190915291506111e99050565b600082820183811015611c99576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000611c9983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613cf5565b60008261305f57506000611c9c565b8282028284828161306c57fe5b0414611c995760405162461bcd60e51b81526004018080602001828103825260218152602001806154436021913960400191505060405180910390fd5b6000611c9983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613d97565b60408051600680825260e08201909252606091829190816020015b6060815260200190600190039081613106575050835190915061312890613df1565b8160008151811061313557fe5b602002602001018190525061315683602001516001600160a01b0316613e04565b8160018151811061316357fe5b6020026020010181905250600083604001515190506060816040519080825280602002602001820160405280156131ae57816020015b60608152602001906001900390816131995790505b50905060005b828110156131fb576131dc866040015182815181106131cf57fe5b6020026020010151613df1565b8282815181106131e857fe5b60209081029190910101526001016131b4565b5061320581613e27565b8360028151811061321257fe5b602002602001018190525060608260405190808252806020026020018201604052801561325357816020015b606081526020019060019003908161323e5790505b50905060005b838110156132a95761328a8760600151828151811061327457fe5b60200260200101516001600160a01b0316613e04565b82828151811061329657fe5b6020908102919091010152600101613259565b506132b381613e27565b846003815181106132c057fe5b602002602001018190525060608360405190808252806020026020018201604052801561330157816020015b60608152602001906001900390816132ec5790505b50905060005b84811015613341576133228860800151828151811061327457fe5b82828151811061332e57fe5b6020908102919091010152600101613307565b5061334b81613e27565b8560048151811061335857fe5b602002602001018190525061337a8760a0015167ffffffffffffffff16613df1565b8560058151811061338757fe5b602002602001018190525061339b85613e27565b979650505050505050565b6133ae615164565b60006133b983613eb1565b91509150806133f95760405162461bcd60e51b81526004018080602001828103825260248152602001806154d16024913960400191505060405180910390fd5b61190b8261407c565b6000611c9983836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f0000000000000000815250614500565b6000600882111561346d57613466836007198401600a0a63ffffffff61300e16565b9050611c9c565b611c99836008849003600a0a63ffffffff61305016565b604080516020808252818301909252600091606091906020820181803683375050506020810184905290506000805b60208160ff1610156134fa57828160ff16815181106134ce57fe5b01602001516001600160f81b031916156134ed576001909101906134f2565b6134fa565b6001016134b3565b50600760ff82161015613512576000925050506111e9565b816005820360ff168151811061352457fe5b6020910101516001600160f81b031916602d60f81b14613549576000925050506111e9565b816001820360ff168151811061355b57fe5b6020910101516001600160f81b031916604d60f81b14613580576000925050506111e9565b5060019392505050565b6000816040516020018082805190602001908083835b602083106135bf5780518252601f1990920191602091820191016135a0565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b6020831061362d5780518252601f19909201916020918201910161360e565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b61367e6150bc565b600061368983614562565b91509150806136c95760405162461bcd60e51b81526004018080602001828103825260248152602001806152946024913960400191505060405180910390fd5b6136d1615164565b602080840180516001600160a01b0390811684526040808701518585015291511660009081526002909252812054905b8460400151518110156137525761372f8560400151828151811061372157fe5b6020026020010151836147c6565b8560400151828151811061373f57fe5b6020908102919091010152600101613701565b50608084015160408301526005606083015261376d8261407c565b5050505050565b61377c615108565b6000613786615108565b61378e61519b565b61379f61379a866147ff565b614824565b90506000805b6137ae8361486e565b156138a657806137d0576137c96137c48461488f565b6148dd565b845261389e565b80600114156137fd576137ea6137e58461488f565b614994565b6001600160a01b0316602085015261389e565b806002141561381c576138126137c48461488f565b604085015261389e565b8060031415613844576138316137e58461488f565b6001600160a01b0316606085015261389e565b806004141561386c576138596137e58461488f565b6001600160a01b0316608085015261389e565b8060051415613899576138816137c48461488f565b67ffffffffffffffff1660a08501526001915061389e565b6138a6565b6001016137a5565b5091935090915050915091565b60208101516000906001600160a01b03166139f7578160a0015167ffffffffffffffff164211156138e6575060016111e9565b81604001514710156138fa575060036111e9565b613903826149ae565b61397857606082015160408084015190516000926001600160a01b0316916127109184818181858888f193505050503d806000811461395e576040519150601f19603f3d011682016040523d82523d6000602084013e613963565b606091505b50509050806139765750600490506111e9565b505b7f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5982602001518360600151846040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a15060006111e9565b8160a0015167ffffffffffffffff16421115613a15575060016111e9565b81516020808401516001600160a01b031660009081526003909152604090205414613a42575060026111e9565b602080830151604080516370a0823160e01b815230600482015290516000936001600160a01b03909316926370a082319261c3509260248083019392829003018187803b158015613a9257600080fd5b5086fa158015613aa6573d6000803e3d6000fd5b50505050506040513d6020811015613abd57600080fd5b50516040840151909150811015613ad85750600390506111e9565b613ae1836149ae565b613b9857600083602001516001600160a01b031663a9059cbb61c350866060015187604001516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b158015613b5657600080fd5b5087f1158015613b6a573d6000803e3d6000fd5b50505050506040513d6020811015613b8157600080fd5b5051905080613b965750600591506111e99050565b505b7f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5983602001518460600151856040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a150600090506111e9565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081613c345750508351909150613c5690613df1565b81600081518110613c6357fe5b6020026020010181905250613c7b8360200151613df1565b81600181518110613c8857fe5b6020026020010181905250613ca983604001516001600160a01b0316613e04565b81600281518110613cb657fe5b6020026020010181905250613cd4836060015163ffffffff16613df1565b81600381518110613ce157fe5b602002602001018190525061109f81613e27565b60008183613d815760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613d46578181015183820152602001613d2e565b50505050905090810190601f168015613d735780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581613d8d57fe5b0495945050505050565b60008184841115613de95760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315613d46578181015183820152602001613d2e565b505050900390565b6060611c9c613dff83614b1c565b614c02565b60408051600560a21b831860148201526034810190915260609061109f81614c02565b6060815160001415613e4857506040805160008152602081019091526111e9565b606082600081518110613e5757fe5b602002602001015190506000600190505b8351811015613e9857613e8e82858381518110613e8157fe5b6020026020010151614c54565b9150600101613e68565b5061109f613eab825160c060ff16614cd1565b82614c54565b613eb9615164565b6000613ec3615164565b613ecb61519b565b613ed761379a866147ff565b90506000805b613ee68361486e565b156138a65780613f0c57613efc6137e58461488f565b6001600160a01b03168452614074565b8060011415613fad576060613f28613f238561488f565b614dc9565b90508051604051908082528060200260200182016040528015613f55578160200160208202803683370190505b50602086015260005b8151811015613fa657613f83828281518110613f7657fe5b60200260200101516148dd565b86602001518281518110613f9357fe5b6020908102919091010152600101613f5e565b5050614074565b806002141561404f576060613fc4613f238561488f565b90508051604051908082528060200260200182016040528015613ff1578160200160208202803683370190505b50604086015260005b8151811015613fa65761401f82828151811061401257fe5b6020026020010151614994565b8660400151828151811061402f57fe5b6001600160a01b0390921660209283029190910190910152600101613ffa565b8060031415613899576140646137c48461488f565b63ffffffff166060850152600191505b600101613edd565b80516001600160a01b03166142a65760005b8160200151518110156142a0576000826040015182815181106140ad57fe5b60200260200101516001600160a01b0316612710846020015184815181106140d157fe5b60209081029190910101516040516000818181858888f193505050503d8060008114614119576040519150601f19603f3d011682016040523d82523d6000602084013e61411e565b606091505b50509050806141e1577f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061415d57fe5b60200260200101518560200151858151811061417557fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a1614297565b7fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a83600001518460400151848151811061421757fe5b60200260200101518560200151858151811061422f57fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b5060010161408e565b506144fd565b60005b8160200151518110156144fb57600082600001516001600160a01b031663a9059cbb61c350856040015185815181106142de57fe5b6020026020010151866020015186815181106142f657fe5b60200260200101516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b15801561434d57600080fd5b5087f1158015614361573d6000803e3d6000fd5b50505050506040513d602081101561437857600080fd5b50519050801561443c577fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a8360000151846040015184815181106143b857fe5b6020026020010151856020015185815181106143d057fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a16144f2565b7f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061447257fe5b60200260200101518560200151858151811061448a57fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b506001016142a9565b505b50565b6000818361454f5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315613d46578181015183820152602001613d2e565b5082848161455957fe5b06949350505050565b61456a6150bc565b60006145746150bc565b61457c61519b565b61458861379a866147ff565b90506000805b6145978361486e565b156138a657806145b4576145ad6137c48461488f565b84526147be565b80600114156145dc576145c96137e58461488f565b6001600160a01b031660208501526147be565b806002141561466b5760606145f3613f238561488f565b90508051604051908082528060200260200182016040528015614620578160200160208202803683370190505b50604086015260005b815181101561466457614641828281518110613f7657fe5b8660400151828151811061465157fe5b6020908102919091010152600101614629565b50506147be565b8060031415614700576060614682613f238561488f565b905080516040519080825280602002602001820160405280156146af578160200160208202803683370190505b50606086015260005b8151811015614664576146d082828151811061401257fe5b866060015182815181106146e057fe5b6001600160a01b03909216602092830291909101909101526001016146b8565b8060041415614795576060614717613f238561488f565b90508051604051908082528060200260200182016040528015614744578160200160208202803683370190505b50608086015260005b81518110156146645761476582828151811061401257fe5b8660800151828151811061477557fe5b6001600160a01b039092166020928302919091019091015260010161474d565b8060051415613899576147aa6137c48461488f565b67ffffffffffffffff1660a0850152600191505b60010161458e565b600060088211156147e857613466836007198401600a0a63ffffffff61305016565b611c99836008849003600a0a63ffffffff61300e16565b6148076151bb565b506040805180820190915281518152602082810190820152919050565b61482c61519b565b61483582614e9a565b61483e57600080fd5b600061484d8360200151614eca565b60208085015160408051808201909152868152920190820152915050919050565b60006148786151bb565b505080518051602091820151919092015191011190565b6148976151bb565b6148a08261486e565b6148a957600080fd5b602082015160006148b982614f2d565b80830160209586015260408051808201909152908152938401919091525090919050565b8051600090158015906148f257508151602110155b6148fb57600080fd5b600061490a8360200151614eca565b90508083600001511015614965576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b82516020808501518301805192849003929183101561498b57826020036101000a820491505b50949350505050565b80516000906015146149a557600080fd5b611c9c826148dd565b600080805260066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f8541580156149e75750600554155b15614a295760008052600660205269021e19e0c9bab24000007f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f85561a8c06005555b6020808301516001600160a01b0316600090815260069091526040902054801580614a575750808360400151105b15614a665760009150506111e9565b6020808401516001600160a01b039081166000908152600783526040808220606088015190931682529190925290819020908401518154614aac9163ffffffff612fb416565b8155600554420160018201819055606085015160208087015160408089015181519081529283019490945283516001600160a01b039384169493909116927f3fb83143cd331170da18fb1e8564d97e8ec39264b6ecb1ba248ea7596ab07258928290030190a35060019392505050565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416614b6057506018614b84565b6fffffffffffffffffffffffffffffffff198416614b8057506010614b84565b5060005b6020811015614bba57818181518110614b9957fe5b01602001516001600160f81b03191615614bb257614bba565b600101614b84565b60008160200390506060816040519080825280601f01601f191660200182016040528015614bef576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015614c345750607f60f81b82600081518110614c2257fe5b01602001516001600160f81b03191611155b15614c405750806111e9565b611c9c614c528351608060ff16614cd1565b835b6060806040519050835180825260208201818101602087015b81831015614c85578051835260209283019201614c6d565b50855184518101855292509050808201602086015b81831015614cb2578051835260209283019201614c9a565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310614d21576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b60408051600180825281830190925260609160208201818036833701905050905060378411614d7b5782840160f81b81600081518110614d5d57fe5b60200101906001600160f81b031916908160001a9053509050611c9c565b6060614d8685614b1c565b90508381510160370160f81b82600081518110614d9f57fe5b60200101906001600160f81b031916908160001a905350614dc08282614c54565b95945050505050565b6060614dd482614e9a565b614ddd57600080fd5b6000614de883615060565b9050606081604051908082528060200260200182016040528015614e2657816020015b614e136151bb565b815260200190600190039081614e0b5790505b5090506000614e388560200151614eca565b60208601510190506000805b84811015614e8f57614e5583614f2d565b9150604051806040016040528083815260200184815250848281518110614e7857fe5b602090810291909101015291810191600101614e44565b509195945050505050565b8051600090614eab575060006111e9565b6020820151805160001a9060c0821015613580576000925050506111e9565b8051600090811a6080811015614ee45760009150506111e9565b60b8811080614eff575060c08110801590614eff575060f881105b15614f0e5760019150506111e9565b60c0811015614f225760b5190190506111e9565b60f5190190506111e9565b80516000908190811a6080811015614f485760019150615059565b60b8811015614f5d57607e1981019150615059565b60c0811015614fd757600060b78203600186019550806020036101000a865104915060018101820193505080831015614fd1576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50615059565b60f8811015614fec5760be1981019150615059565b600060f78203600186019550806020036101000a865104915060018101820193505080831015615057576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b8051600090615071575060006111e9565b600080905060006150858460200151614eca565b602085015185519181019250015b808210156150b3576150a482614f2d565b60019093019290910190615093565b50909392505050565b6040518060c001604052806000801916815260200160006001600160a01b03168152602001606081526020016060815260200160608152602001600067ffffffffffffffff1681525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b60408051608081018252600080825260208201819052918101829052606081019190915290565b604051806080016040528060006001600160a01b031681526020016060815260200160608152602001600063ffffffff1681525090565b60405180604001604052806151ae6151bb565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe6f6e6c79207374616b696e672073797374656d20636f6e74726163742063616e2063616c6c20746869732066756e6374696f6e746865206d6573736167652073656e646572206d75737420626520696e63656e746976697a6520636f6e7472616374626e62206c61726765207472616e73666572206c696d697420746f6f20736d616c6c466f72206d696e69546f6b656e2c20746865207472616e7366657220616d6f756e74206d757374206e6f74206265206c657373207468616e2031756e7265636f676e697a6564207472616e736665724f75742073796e207061636b61676565787069726554696d65206d7573742062652074776f206d696e75746573206c61746572616d6f756e7420697320746f6f206c617267652c20657863656564206d6178696d756d206265703220746f6b656e20616d6f756e7474686520636f6e747261637420686173206e6f74206265656e20626f756e6420746f20616e79206265703220746f6b656e726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e736665724f757420424e4220616d6f756e7420616e64206d696e696d756d2072656c6179466565616d6f756e7420697320746f6f206c617267652c2075696e74323536206f766572666c6f774c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620726566756e644164647273696e76616c6964207472616e7366657220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e20746865206d696e696d756d2072656c6179466565746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374756e7265636f676e697a6564207472616e736665724f75742061636b207061636b6167654c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620616d6f756e7473746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d73672073656e646572206d75737420626520746f6b656e4d616e6167657274686520636f6e7472616374206e6f7420696e69742079657400000000000000726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e7366657220424e4220616d6f756e7420616e642072656c6179466565696e76616c696420726563656976656420424e4220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6ea2646970667358221220ef72e8713245ba000d1e9efd85d005317b64710a26d7b67a7649bda481a927d064736f6c63430006040033" + }, + "0x0000000000000000000000000000000000002000": { + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b50600436106103995760003560e01c8063718a8aa8116101e9578063c27cdcfb1161010f578063dc927faf116100ad578063f7a251d71161007c578063f7a251d714610b2f578063f9a2bbc714610ba7578063fc3e590814610baf578063fd6a687914610bb757610399565b8063dc927faf14610af7578063e1c7392a14610aff578063e3b0480514610b07578063e6400bbe14610b2757610399565b8063ccc108d7116100e9578063ccc108d714610ab0578063d31f968d14610ab8578063d76a867514610ae7578063dc40433114610aef57610399565b8063c27cdcfb14610a80578063c780e9de14610aa0578063c81b166214610aa857610399565b80638cc8f56111610187578063a78abc1611610156578063a78abc16146109b2578063ab51bb96146109ba578063ac431751146109c2578063b0355f5b1461078157610399565b80638cc8f5611461088757806396713da91461099a5780639dc09262146109a2578063a1a11bf5146109aa57610399565b806375d47a0a116101c357806375d47a0a146108a75780637942fd05146108af57806384013b6a146108b7578063863fe4ab1461099257610399565b8063718a8aa81461088f578063719482d51461089757806374f079b81461089f57610399565b8063422f9050116102ce57806363e1394e1161026c5780636de380bd1161023b5780636de380bd146108575780636e47a51a1461085f5780636e47b4821461087f57806370fd5bad1461088757610399565b806363e1394e146107ff5780636a3cb34d146108075780636bacff2c1461080f5780636c46aa681461080757610399565b80634bf6c882116102a85780634bf6c882146107b957806351e80672146107c15780635692ddd3146107c95780635f832177146107d157610399565b8063422f90501461078957806343756e5c146107a9578063493279b1146107b157610399565b8063299b533d1161033b578063308325f411610315578063308325f4146106155780633a648b151461061d5780633bdc47a6146106595780633dffc3871461078157610399565b8063299b533d146105a35780632af6f399146105d75780632ff32aea146105f457610399565b806314b3023b1161037757806314b3023b146104015780631d1309351461041b5780631e275ae11461043757806322556cdc1461059b57610399565b806305e682581461039e5780630bee7a67146103bc5780630e2374a5146103dd575b600080fd5b6103a6610bbf565b6040805160ff9092168252519081900360200190f35b6103c4610bc4565b6040805163ffffffff9092168252519081900360200190f35b6103e5610bc9565b604080516001600160a01b039092168252519081900360200190f35b610409610bcf565b60408051918252519081900360200190f35b610423610bd5565b604080519115158252519081900360200190f35b610599600480360361010081101561044e57600080fd5b81018160a081016080820135600160201b81111561046b57600080fd5b82018360208201111561047d57600080fd5b803590602001918460018302840111600160201b8311171561049e57600080fd5b919390929091602081019035600160201b8111156104bb57600080fd5b8201836020820111156104cd57600080fd5b803590602001918460018302840111600160201b831117156104ee57600080fd5b919390929091602081019035600160201b81111561050b57600080fd5b82018360208201111561051d57600080fd5b803590602001918460018302840111600160201b8311171561053e57600080fd5b919390929091602081019035600160201b81111561055b57600080fd5b82018360208201111561056d57600080fd5b803590602001918460018302840111600160201b8311171561058e57600080fd5b509092509050610bde565b005b6104096112c2565b6105c0600480360360208110156105b957600080fd5b50356112c7565b6040805161ffff9092168252519081900360200190f35b610423600480360360208110156105ed57600080fd5b50356112dd565b6105fc6112f2565b60408051600792830b90920b8252519081900360200190f35b6104096112fb565b61063d6004803603602081101561063357600080fd5b503560ff16611301565b604080516001600160401b039092168252519081900360200190f35b61070c6004803603606081101561066f57600080fd5b60ff82351691602081013591810190606081016040820135600160201b81111561069857600080fd5b8201836020820111156106aa57600080fd5b803590602001918460018302840111600160201b831117156106cb57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061131c945050505050565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561074657818101518382015260200161072e565b50505050905090810190601f1680156107735780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103a6611392565b6104236004803603602081101561079f57600080fd5b503560ff16611397565b6103e56113ac565b6105c06113b2565b6103a66113b7565b6103e56113bc565b6104096113c2565b610599600480360360408110156107e757600080fd5b506001600160a01b03813581169160200135166113f2565b610409611652565b6105c061167a565b61082c6004803603602081101561082557600080fd5b503561167f565b6040805161ffff90941684526001600160801b03909216602084015282820152519081900360600190f35b6104096116ae565b6103e56004803603602081101561087557600080fd5b503560ff166116d5565b6103e56116f0565b6103a661167a565b6103a66116f6565b6105c0611392565b6104096116fb565b6103e5611701565b6103a6611707565b610599600480360360a08110156108cd57600080fd5b810190602081018135600160201b8111156108e757600080fd5b8201836020820111156108f957600080fd5b803590602001918460018302840111600160201b8311171561091a57600080fd5b919390929091602081019035600160201b81111561093757600080fd5b82018360208201111561094957600080fd5b803590602001918460018302840111600160201b8311171561096a57600080fd5b919350915080356001600160401b03908116916020810135909116906040013560ff1661170c565b610409612a36565b6103a6612a3e565b6103e5612a43565b6103e5612a49565b610423612a4f565b6103c4610bbf565b610599600480360360408110156109d857600080fd5b810190602081018135600160201b8111156109f257600080fd5b820183602082011115610a0457600080fd5b803590602001918460018302840111600160201b83111715610a2557600080fd5b919390929091602081019035600160201b811115610a4257600080fd5b820183602082011115610a5457600080fd5b803590602001918460018302840111600160201b83111715610a7557600080fd5b509092509050612a58565b61063d60048036036020811015610a9657600080fd5b503560ff1661351c565b610409613537565b6103e561355b565b610599613561565b61042360048036036040811015610ace57600080fd5b5080356001600160a01b0316906020013560ff166137b5565b61070c6137d5565b6104096137f4565b6103e56137fa565b610599613800565b61063d60048036036020811015610b1d57600080fd5b503560ff16613bb7565b610599613bd2565b61059960048036036060811015610b4557600080fd5b60ff8235169190810190604081016020820135600160201b811115610b6957600080fd5b820183602082011115610b7b57600080fd5b803590602001918460018302840111600160201b83111715610b9c57600080fd5b919350915035613df1565b6103e5613f34565b6103a6613f3a565b6103e5613f3f565b600081565b606481565b61200181565b60015481565b600b5460ff1681565b60005460ff16610c23576040805162461bcd60e51b81526020600482015260196024820152600080516020614a4c833981519152604482015290519081900360640190fd5b604080516337d7f9c160e21b81526001600160401b038b35166004820181905291516110039163df5fe704916024808301926020929190829003018186803b158015610c6e57600080fd5b505afa158015610c82573d6000803e3d6000fd5b505050506040513d6020811015610c9857600080fd5b5051610cd55760405162461bcd60e51b8152600401808060200182810382526023815260200180614a6c6023913960400191505060405180910390fd5b604080516337d7f9c160e21b815260208c8101356001600160401b03166004830181905292516110039263df5fe704926024808301939192829003018186803b158015610d2157600080fd5b505afa158015610d35573d6000803e3d6000fd5b505050506040513d6020811015610d4b57600080fd5b5051610d885760405162461bcd60e51b8152600401808060200182810382526023815260200180614a6c6023913960400191505060405180910390fd5b60608b013560ff81166000908152600560205260409020546001600160401b03909116906001600160a01b0316610e01576040805162461bcd60e51b815260206004820152601860248201527718da185b9b995b081a5cc81b9bdd081cdd5c1c1bdc9d195960421b604482015290519081900360640190fd5b600b5460ff1615610e45576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b8888604051808383808284376040519201829003822094508f93508e9250819050838380828437808301925050509250505060405180910390201415610ec1576040805162461bcd60e51b815260206004820152600c60248201526b1cd85b59481c185e5b1bd85960a21b604482015290519081900360640190fd5b60606001600160401b0360408e01358116908e83013516610ee28282613f45565b80516020808301919091206000818152600e9092526040909120549194509060ff1615610f4b576040805162461bcd60e51b8152602060048201526012602482015271185b1c9958591e4818da185b1b195b99d95960721b604482015290519081900360640190fd5b6000908152600e60205260408120805460ff191660011790558f8160200201356001600160401b0316905060608f8f8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060608c8c8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506040805163cba510a960e01b81526001600160401b038a16600482015290519596509094611003945063cba510a9935060248083019350602092829003018186803b15801561104157600080fd5b505afa158015611055573d6000803e3d6000fd5b505050506040513d602081101561106b57600080fd5b505160408051808201909152600381526269626360e81b6020820152909150611098908290898686613f8d565b6110e1576040805162461bcd60e51b81526020600482015260156024820152740696e76616c6964206d65726b6c652070726f6f663605c1b604482015290519081900360640190fd5b5050505060008f6001600481106110f457fe5b60200201356001600160401b0316905060608d8d8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8f018190048102820181019092528d815293945060609392508d91508c908190840183828082843760009201829052506040805163cba510a960e01b81526001600160401b038a16600482015290519596509094611003945063cba510a9935060248083019350602092829003018186803b1580156111c057600080fd5b505afa1580156111d4573d6000803e3d6000fd5b505050506040513d60208110156111ea57600080fd5b505160408051808201909152600381526269626360e81b6020820152909150611217908290898686613f8d565b611260576040805162461bcd60e51b8152602060048201526015602482015274696e76616c6964206d65726b6c652070726f6f663160581b604482015290519081900360640190fd5b5050505061126c61408a565b604080516001600160401b038416815260ff83166020820152815133927f039eb91179ffd7d3b6e97f8ea106e748e827f910b872375dbc9c14a362319c3c928290030190a2505050505050505050505050505050565b603281565b600d6020526000908152604090205461ffff1681565b600e6020526000908152604090205460ff1681565b60045460070b81565b60025481565b600a602052600090815260409020546001600160401b031681565b60606000825160210190506060816040519080825280601f01601f191660200182016040528015611354576020820181803683370190505b506021810186905260018101879052828152905060418101600061137786614108565b50905061138681838851614112565b50909695505050505050565b600181565b60096020526000908152604090205460ff1681565b61100181565b606181565b600881565b61200081565b604080517710d05390d15317d514905394d1915497d41493d413d4d05360421b8152905190819003601801902081565b60005460ff16611437576040805162461bcd60e51b81526020600482015260196024820152600080516020614a4c833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b15801561147a57600080fd5b505afa15801561148e573d6000803e3d6000fd5b505050506040513d60208110156114a457600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b1580156114e557600080fd5b505afa1580156114f9573d6000803e3d6000fd5b505050506040513d602081101561150f57600080fd5b505190508061151c575060155b60008211801561152c5750808211155b61156b576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b604080516001600160a01b038087166020808401919091529086168284015282518083038401815260608301808552815191909201207710d05390d15317d514905394d1915497d41493d413d4d05360421b90915291519081900360780190206000906115d89083614153565b9050801561164a5760408051630911a2c160e11b81526001600160a01b03888116600483015287166024820152905161100491631223458291604480830192600092919082900301818387803b15801561163157600080fd5b505af1158015611645573d6000803e3d6000fd5b505050505b505050505050565b604080516f14d554d411539117d41493d413d4d05360821b8152905190819003601001902081565b600281565b600c602052600090815260409020805460019091015461ffff8216916201000090046001600160801b03169083565b604080516e149153d4115397d41493d413d4d053608a1b8152905190819003600f01902081565b6005602052600090815260409020546001600160a01b031681565b61100581565b601081565b60035481565b61100881565b600b81565b60005460ff16611751576040805162461bcd60e51b81526020600482015260196024820152600080516020614a4c833981519152604482015290519081900360640190fd5b60408051630a83aaa960e31b815233600482015290516110069163541d5548916024808301926020929190829003018186803b15801561179057600080fd5b505afa1580156117a4573d6000803e3d6000fd5b505050506040513d60208110156117ba57600080fd5b505161180d576040805162461bcd60e51b815260206004820152601f60248201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604482015290519081900360640190fd5b739fb29aac15b9a4b7f17c3385939b007540f4d79133148061184257507337b8516a0f88e65d677229b402ec6c1e0e33300433145b61187d5760405162461bcd60e51b815260040180806020018281038252602a8152602001806149f0602a913960400191505060405180910390fd5b60ff8116600090815260086020526040902054829082906001600160401b0390811690831681146118ed576040805162461bcd60e51b815260206004820152601560248201527439b2b8bab2b731b2903737ba1034b71037b93232b960591b604482015290519081900360640190fd5b60ff8216600090815260086020908152604091829020805467ffffffffffffffff1916600185016001600160401b039081169190911790915582516337d7f9c160e21b81529089166004820152915188926110039263df5fe70492602480840193829003018186803b15801561196257600080fd5b505afa158015611976573d6000803e3d6000fd5b505050506040513d602081101561198c57600080fd5b50516119c95760405162461bcd60e51b8152600401808060200182810382526023815260200180614a6c6023913960400191505060405180910390fd5b60ff851660009081526005602052604090205485906001600160a01b0316611a33576040805162461bcd60e51b815260206004820152601860248201527718da185b9b995b081a5cc81b9bdd081cdd5c1c1bdc9d195960421b604482015290519081900360640190fd5b60ff86166000908152600a6020526040902054889087906001600160401b039081169083161015611a9c576040805162461bcd60e51b815260206004820152600e60248201526d3a37b79037b632103432b0b232b960911b604482015290519081900360640190fd5b60ff81166000908152600a60205260409020546001600160401b03838116911614611aee5760ff81166000908152600a60205260409020805467ffffffffffffffff19166001600160401b0384161790555b600b5460ff1615611b32576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b60608e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060608d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509050611c766110036001600160a01b031663cba510a98e6040518263ffffffff1660e01b815260040180826001600160401b03166001600160401b0316815260200191505060206040518083038186803b158015611c1f57600080fd5b505afa158015611c33573d6000803e3d6000fd5b505050506040513d6020811015611c4957600080fd5b505160408051808201909152600381526269626360e81b6020820152611c6f8e8e613f45565b8585613f8d565b611cbe576040805162461bcd60e51b815260206004820152601460248201527334b73b30b634b21036b2b935b63290383937b7b360611b604482015290519081900360640190fd5b60408051631bb5062960e31b81526001600160401b038e16600482015290516000916110039163dda8314891602480820192602092909190829003018186803b158015611d0a57600080fd5b505afa158015611d1e573d6000803e3d6000fd5b505050506040513d6020811015611d3457600080fd5b505190508b8b600080806060611d4989614438565b935093509350935083611e0b578460ff16866001600160401b03167ff7b2e42d694eb1100184aae86d4245d9e46966100b1dc7e723275b98326854ac8b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015611dc3578181015183820152602001611dab565b50505050905090810190601f168015611df05780820380516001836020036101000a031916815260200191505b509250505060405180910390a3505050505050505050612a26565b6040805160ff85811682529151918716916001600160401b038916917f36afdaf439a8f43fe72135135d804ae620b37a474f0943b5b85f6788312cad40919081900360200190a360ff83166123905760ff85166000818152600560209081526040808320548151631182b87560e01b815260048101958652602481019283528651604482015286516001600160a01b03909216958695631182b875958d958a9593949093606490910192918601918190849084905b83811015611ed8578181015183820152602001611ec0565b50505050905090810190601f168015611f055780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b158015611f2557600080fd5b505af192505050801561200957506040513d6000823e601f3d908101601f191682016040526020811015611f5857600080fd5b8101908080516040519392919084600160201b821115611f7757600080fd5b908301906020820185811115611f8c57600080fd5b8251600160201b811182820188101715611fa557600080fd5b82525081516020918201929091019080838360005b83811015611fd2578181015183820152602001611fba565b50505050905090810190601f168015611fff5780820380516001836020036101000a031916815260200191505b5060405250505060015b61231b576040516000815260443d1015612025575060006120c0565b60046000803e60005160e01c6308c379a081146120465760009150506120c0565b60043d036004833e81513d60248201116001600160401b0382111715612071576000925050506120c0565b80830180516001600160401b038111156120925760009450505050506120c0565b8060208301013d86018111156120b0576000955050505050506120c0565b601f01601f191660405250925050505b806120cb57506121dd565b60ff8716600090815260076020526040812054612102916001600160401b039091169089906120fd906002908861131c565b6144e8565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf948794849390840192918601918190849084905b8381101561219d578181015183820152602001612185565b50505050905090810190601f1680156121ca5780820380516001836020036101000a031916815260200191505b509250505060405180910390a250612316565b3d808015612207576040519150601f19603f3d011682016040523d82523d6000602084013e61220c565b606091505b5060ff871660009081526007602052604081205461223f916001600160401b039091169089906120fd906002908861131c565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351948794849390840192918601918190849084905b838110156122da5781810151838201526020016122c2565b50505050905090810190601f1680156123075780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b61238a565b8051156123885760ff8716600090815260076020526040812054612354916001600160401b039091169089906120fd906001908661131c565b60ff8716600090815260076020526040902080546001600160401b038082166001011667ffffffffffffffff199091161790555b505b5061295e565b60ff8316600114156126345760ff8516600081815260056020908152604080832054815163831d65d160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563831d65d1958d958a9593949093606490910192918601918190849084905b8381101561241a578181015183820152602001612402565b50505050905090810190601f1680156124475780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561246757600080fd5b505af1925050508015612478575060015b61238a576040516000815260443d10156124945750600061252f565b60046000803e60005160e01c6308c379a081146124b557600091505061252f565b60043d036004833e81513d60248201116001600160401b03821117156124e05760009250505061252f565b80830180516001600160401b0381111561250157600094505050505061252f565b8060208301013d860181111561251f5760009550505050505061252f565b601f01601f191660405250925050505b8061253a575061259f565b60408051602080825283518183015283516001600160a01b038616937ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf938693909283928301918501908083836000831561219d578181015183820152602001612185565b3d8080156125c9576040519150601f19603f3d011682016040523d82523d6000602084013e6125ce565b606091505b5060408051602080825283518183015283516001600160a01b038616937f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd297735193869390928392830191850190808383600083156122da5781810151838201526020016122c2565b60ff83166002141561295e5760ff8516600081815260056020908152604080832054815163c8509d8160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563c8509d81958d958a9593949093606490910192918601918190849084905b838110156126be5781810151838201526020016126a6565b50505050905090810190601f1680156126eb5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561270b57600080fd5b505af192505050801561271c575060015b61295c576040516000815260443d1015612738575060006127d3565b60046000803e60005160e01c6308c379a081146127595760009150506127d3565b60043d036004833e81513d60248201116001600160401b0382111715612784576000925050506127d3565b80830180516001600160401b038111156127a55760009450505050506127d3565b8060208301013d86018111156127c3576000955050505050506127d3565b601f01601f191660405250925050505b806127de5750612887565b816001600160a01b03167ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf826040518080602001828103825283818151815260200191508051906020019080838360005b8381101561284757818101518382015260200161282f565b50505050905090810190601f1680156128745780820380516001836020036101000a031916815260200191505b509250505060405180910390a25061295c565b3d8080156128b1576040519150601f19603f3d011682016040523d82523d6000602084013e6128b6565b606091505b50816001600160a01b03167f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351826040518080602001828103825283818151815260200191508051906020019080838360005b83811015612920578181015183820152602001612908565b50505050905090810190601f16801561294d5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b505b60ff80861660009081526009602052604090205461100591636f93d2e6918a91339187911680612990575060ff881615155b604080516001600160e01b031960e088901b1681526001600160a01b039586166004820152939094166024840152604483019190915215156064820152905160848083019260209291908290030181600087803b1580156129f057600080fd5b505af1158015612a04573d6000803e3d6000fd5b505050506040513d6020811015612a1a57600080fd5b50505050505050505050505b5050505050505050505050505050565b630100610081565b600981565b61100781565b61100681565b60005460ff1681565b3361100714612a985760405162461bcd60e51b815260040180806020018281038252602e815260200180614978602e913960400191505060405180910390fd5b600b5460ff1615612adc576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b612b4584848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526012815271626174636853697a65466f724f7261636c6560701b602082015291506146829050565b15612be057604080516020601f8401819004810282018101909252828152600091612b889185858083850183828082843760009201919091525061476992505050565b90506127108111158015612b9d5750600a8110155b612bd85760405162461bcd60e51b8152600401808060200182810382526032815260200180614a1a6032913960400191505060405180910390fd5b60015561348a565b612c4984848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601281527118591913dc955c19185d1950da185b9b995b60721b602082015291506146829050565b15612dd157606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060169091149050612ccc5760405162461bcd60e51b815260040180806020018281038252605a815260200180614891605a913960600191505060405180910390fd5b60018101516002820151601683015160ff82161590612cea8161476e565b612d3b576040805162461bcd60e51b815260206004820152601960248201527f61646472657373206973206e6f74206120636f6e747261637400000000000000604482015290519081900360640190fd5b60ff8416600081815260056020908152604080832080546001600160a01b0319166001600160a01b038716908117909155808452600683528184208585528352818420805460ff199081166001179091556009909352818420805490931687151517909255519092917f7e3b6af43092577ee20e60eaa1d9b114a7031305c895ee7dd3ffe17196d2e1e091a3505050505061348a565b612e3e84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526016815275195b98589b1953dc911a5cd8589b1950da185b9b995b60521b602082015291506146829050565b15612f6f57606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060029091149050612ec15760405162461bcd60e51b815260040180806020018281038252604a8152602001806149a6604a913960600191505060405180910390fd5b600181810151600283015160ff80831660009081526005602052604090205492939192908316909114906001600160a01b03168015612f65576001600160a01b038116600090815260066020908152604080832060ff881680855290835292819020805460ff1916861515908117909155815190815290517fa3132e3f9819fbddc7f0ed6d38d7feef59aa95112090b7c592f5cb5bc4aa4adc929181900390910190a25b505050505061348a565b612fd384848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c73757370656e6451756f72756d60981b602082015291506146829050565b1561310857600281146130175760405162461bcd60e51b815260040180806020018281038252602d81526020018061491f602d913960400191505060405180910390fd5b600061305a600284848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061476992505050565b905060008161ffff16118015613074575060648161ffff16105b6130be576040805162461bcd60e51b8152602060048201526016602482015275696e76616c69642073757370656e642071756f72756d60501b604482015290519081900360640190fd5b604080516f14d554d411539117d41493d413d4d05360821b815281519081900360100190206000908152600d60205220805461ffff90921661ffff1990921691909117905561348a565b61316b84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600c81526b72656f70656e51756f72756d60a01b602082015291506146829050565b1561329e57600281146131af5760405162461bcd60e51b815260040180806020018281038252602c81526020018061494c602c913960400191505060405180910390fd5b60006131f2600284848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061476992505050565b905060008161ffff1611801561320c575060648161ffff16105b613255576040805162461bcd60e51b8152602060048201526015602482015274696e76616c69642072656f70656e2071756f72756d60581b604482015290519081900360640190fd5b604080516e149153d4115397d41493d413d4d053608a1b8152815190819003600f0190206000908152600d60205220805461ffff90921661ffff1990921691909117905561348a565b61330984848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601481527363616e63656c5472616e7366657251756f72756d60601b602082015291506146829050565b1561344d576002811461334d5760405162461bcd60e51b81526004018080602001828103825260348152602001806148eb6034913960400191505060405180910390fd5b6000613390600284848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061476992505050565b905060008161ffff161180156133aa575060648161ffff16105b6133fb576040805162461bcd60e51b815260206004820152601e60248201527f696e76616c69642063616e63656c207472616e736665722071756f72756d0000604482015290519081900360640190fd5b604080517710d05390d15317d514905394d1915497d41493d413d4d05360421b815281519081900360180190206000908152600d60205220805461ffff90921661ffff1990921691909117905561348a565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b6008602052600090815260409020546001600160401b031681565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081565b61100281565b60005460ff166135a6576040805162461bcd60e51b81526020600482015260196024820152600080516020614a4c833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b1580156135e957600080fd5b505afa1580156135fd573d6000803e3d6000fd5b505050506040513d602081101561361357600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b15801561365457600080fd5b505afa158015613668573d6000803e3d6000fd5b505050506040513d602081101561367e57600080fd5b505190508061368b575060155b60008211801561369b5750808211155b6136da576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b600b5460ff16613721576040805162461bcd60e51b815260206004820152600d60248201526c1b9bdd081cdd5cdc195b991959609a1b604482015290519081900360640190fd5b604080516e149153d4115397d41493d413d4d053608a1b8152905190819003600f019020600090613772907fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470614153565b905080156137b057600b805460ff1916905560405133907f899fe8c37dc61708a3aaa99c4bf143346c1d1da69af79be9e8920c0a6785b75290600090a25b505050565b600660209081526000928352604080842090915290825290205460ff1681565b6040518060400160405280600381526020016269626360e81b81525081565b610e1081565b61100381565b60005460ff1615613858576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b7f1471eb6eb2c5e789fc3de43f8ce62938c7d1836ec861730447e2ada8fd81017b80546001600160a01b0319908116611008179091557f92e85d02570a8092d09a6e3a57665bc3815a2699a4074001bf1ccabf660f5a36805460ff199081169091557fd8af288fc1c8680b4f4706064cf021e264efb6828fcaf7eb5ca36818eb365bcc8054821660019081179091557f89832631fb3c3307a103ba2c84ab569c64d6182a18893dcd163f0f1c2090733a805484166110049081179091557f6cde3cea4b3a3fb2488b2808bae7556f4a405e50f65e1794383bc026131b13c38054841690557f72e4efa1513b071517c6c74dba31b5934a81aa83cddd400e7081df5529c9943680548416831790557fa9bc9a3a348c357ba16b37005d7e6b3236198c0e939f4af8c5f19b8deeb8ebc08054851690911790557fc575c31fea594a6eb97c8e9d3f9caee4c16218c6ef37e923234c0fe9014a61e78054831690557f4e523af77f034e9810f1c94057f5e931fb3d16a51511a4c3add793617d18610580548316821790557ffb33122aa9f93cc639ebe80a7bc4784c11e6053dde89c6f4f7e268c6a623da1e805484166110001790557fc7694af312c4f286114180fd0ba6a52461fcee8a381636770b19a343af92538a80548316821790557f01112dd68e482ba8d68a7e828cff8b3abcea08eab88941953c180a7e650e9cd480548316821790557fc0a4a8be475dfebc377ebef2d7c4ff47656f572a08dd92b81017efcdba0febe1805484166110071790557f87e8a52529e8ece4ef759037313542a6429ff494a9fab9027fb79db90124eba680548316821790557f4c7666bbcb22d46469f7cc282f70764a7012dca2cce630ff8d83db9a9cdd48f080548316821790557f40f28f99a40bc9f6beea1013afdbc3cdcc689eb76b82c4de06c0acf1e1932ed58054909316611001179092557f0d9cf2cd531699eed8dd34e40ff2884a14a698c4898184fba85194e6f6772d248054821683179055600b60009081527f23f68c9bd22b8a93d06adabe17481c87c016bcbd20adc8bfd707a4d813a572176020527fdf0d5d05428057f5455c2dc8e810dd86d1e9350faa72f16bda8a45443c5b39328054831684179055603283556004805467ffffffffffffffff19166001600160401b031790556002819055600381905580549091169091179055565b6007602052600090815260409020546001600160401b031681565b60005460ff16613c17576040805162461bcd60e51b81526020600482015260196024820152600080516020614a4c833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b158015613c5a57600080fd5b505afa158015613c6e573d6000803e3d6000fd5b505050506040513d6020811015613c8457600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b158015613cc557600080fd5b505afa158015613cd9573d6000803e3d6000fd5b505050506040513d6020811015613cef57600080fd5b5051905080613cfc575060155b600082118015613d0c5750808211155b613d4b576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b600b5460ff1615613d8f576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b604080516f14d554d411539117d41493d413d4d05360821b81529051908190036010019020600090613de1907fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470614153565b905080156137b0576137b061408a565b60005460ff16613e36576040805162461bcd60e51b81526020600482015260196024820152600080516020614a4c833981519152604482015290519081900360640190fd5b33600090815260066020908152604080832060ff8089168552925290912054859116613e935760405162461bcd60e51b81526004018080602001828103825260318152602001806148606031913960400191505060405180910390fd5b60ff85166000908152600760209081526040808320548151601f88018490048402810184019092528682526001600160401b031692613ef89284928a926120fd92909189918c908c908190840183828082843760009201919091525061131c92505050565b60ff959095166000908152600760205260409020805467ffffffffffffffff191660019096016001600160401b03169590951790945550505050565b61100081565b600381565b61100481565b60408051600e808252818301909252606091630100610060ff851617918391602082018180368337505050600e81810187905260068201939093529182525090505b92915050565b600085613f9c57506000614081565b606082518451865160800101016040519080825280601f01601f191660200182016040528015613fd3576020820181803683370190505b5090506000613fe182614774565b602080890151825201905086600080613ff989614108565b8086526020909501949092509050614012828583614112565b9283019261401f88614108565b8086526020909501949092509050614038828583614112565b9283018a81526020019261404b87614108565b909250905061405b828583614112565b50835160200161406961477a565b60208183886065600019fa5051600114955050505050505b95945050505050565b600b5460ff16156140ce576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b600b805460ff1916600117905560405133907f6f123d3d54c84a7960a573b31c221dcd86e13fd849c5adb0c6ca851468cc1ae490600090a2565b8051602090910191565b5b60208110614132578251825260209283019290910190601f1901614113565b915181516020939093036101000a6000190180199091169216919091179052565b6000828152600d602052604081205461ffff1661421c57604080516f14d554d411539117d41493d413d4d05360821b815281519081900360100181206000908152600d6020818152848320805461ffff199081166001179091556e149153d4115397d41493d413d4d053608a1b8552855194859003600f01852084528282528584208054821660029081179091557710d05390d15317d514905394d1915497d41493d413d4d05360421b8652865195869003601801909520845291905292902080549092161790555b6000838152600c6020526040902080546201000090046001600160801b03164210158061424d575082816001015414155b15614320576000848152600d602090815260409182902054835461ffff90911661ffff199091161771ffffffffffffffffffffffffffffffff0000191662010000610e1042016001600160801b031602178355600180840186905582519182019092523381526142c291600284019190614798565b5080546040805161ffff83168152620100009092046001600160801b0316602083015281810185905251339186917f9e109f0e55ef32e99e4880be2ec357f1ddb3469c79d0747ef4762da6e89fabe5916060908290030190a36143d4565b60005b60028201548110156143ab57336001600160a01b031682600201828154811061434857fe5b6000918252602090912001546001600160a01b031614156143a3576040805162461bcd60e51b815260206004820152601060248201526f185b1c9958591e48185c1c1c9bdd995960821b604482015290519081900360640190fd5b600101614323565b50600281018054600181018255600091825260209091200180546001600160a01b031916331790555b8054600282015461ffff9091161161442e576000848152600c60205260408120805471ffffffffffffffffffffffffffffffffffff19168155600181018290559061442260028301826147fd565b50506001915050613f87565b5060009392505050565b600080600060606021855110156144685750506040805160008082526020820190925290925082915081906144e1565b600185015160218601518651604080516020198301808252601f19600119909401939093168101602001909152604189019392916060919080156144b3576020820181803683370190505b50905060006144c182614108565b5090506144d3858260218d5103614112565b506001975091955093509150505b9193509193565b600b5460ff161561452c576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b60025443111561456b576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b1617909155600355436002556145ac565b600380546001908101918290555410156145ac576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b16179091556003555b8160ff16836001600160401b0316600460009054906101000a900460070b6001600160401b03167f3a6e0fc61675aa2a100bcba0568368bb92bcec91c97673391074f11138f0cffe606185604051808361ffff1661ffff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561464257818101518382015260200161462a565b50505050905090810190601f16801561466f5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a4505050565b6000816040516020018082805190602001908083835b602083106146b75780518252601f199092019160209182019101614698565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106147255780518252601f199092019160209182019101614706565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b3b151590565b60200190565b60405180602001604052806001906020820280368337509192915050565b8280548282559060005260206000209081019282156147ed579160200282015b828111156147ed57825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906147b8565b506147f992915061481e565b5090565b508054600082559060005260206000209081019061481b9190614845565b50565b61484291905b808211156147f95780546001600160a01b0319168155600101614824565b90565b61484291905b808211156147f9576000815560010161484b56fe74686520636f6e747261637420616e64206368616e6e656c2068617665206e6f74206265656e20726567697374657265646c656e677468206f662076616c756520666f72206164644f725570646174654368616e6e656c2073686f756c642062652032322c206368616e6e656c49643a697346726f6d53797374656d3a68616e646c6572416464726573736c656e677468206f662076616c756520666f722063616e63656c5472616e7366657251756f72756d2073686f756c6420626520326c656e677468206f662076616c756520666f722073757370656e6451756f72756d2073686f756c6420626520326c656e677468206f662076616c756520666f722072656f70656e51756f72756d2073686f756c642062652032746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662076616c756520666f7220656e61626c654f7244697361626c654368616e6e656c2073686f756c6420626520322c206368616e6e656c49643a6973456e61626c65746865206d73672073656e646572206973206e6f7420612077686974656c6162656c2072656c61796572746865206e6577426174636853697a65466f724f7261636c652073686f756c6420626520696e205b31302c2031303030305d74686520636f6e7472616374206e6f7420696e697420796574000000000000006c6967687420636c69656e74206e6f742073796e632074686520626c6f636b20796574a264697066735822122026f49f5b5d33882588ea53bac8a0f154c6a6d2ff32bdfdb114fc8cfcf13f710f64736f6c63430006040033" + }, + "0x0000000000000000000000000000000000002001": { + "balance": "0x0", + "code": "0x6080604052600436106103855760003560e01c806370fd5bad116101d1578063b88a802f11610102578063d7ecfcb6116100a0578063f9a2bbc71161006f578063f9a2bbc714610c40578063fa03f79714610c55578063fc3e590814610671578063fd6a687914610c6a5761038c565b8063d7ecfcb614610819578063dc927faf14610bd1578063edc1a5b014610be6578063f45fd80b14610bfb5761038c565b8063c2117d82116100dc578063c2117d8214610ae7578063c81b166214610afc578063c8509d8114610b11578063d61b9b9314610b965761038c565b8063b88a802f14610a82578063baaafd3b14610a97578063bf8546ca14610aac5761038c565b806396713da91161016f578063a78abc1611610149578063a78abc1614610964578063ab51bb961461098d578063ac431751146109a2578063b14315df14610a6d5761038c565b806396713da9146109255780639dc092621461093a578063a1a11bf51461094f5761038c565b806375d47a0a116101ab57806375d47a0a146108765780637942fd051461088b578063831d65d1146108a057806392b888a41461061d5761038c565b806370fd5bad14610819578063718a8aa81461082e57806375aca593146108435761038c565b80633fdfa7e4116102b6578063552aaf931161025457806369b635b61161022357806369b635b6146107865780636bd8f8041461079b5780636e47b482146107d15780636fb7f7eb146107e65761038c565b8063552aaf93146107325780635d17c8bd146107475780635d499b1b1461075c57806362b171d2146107715761038c565b8063493279b111610290578063493279b1146106b05780634bf6c882146106dc5780634d99dd16146106f157806351e806721461071d5761038c565b80633fdfa7e414610671578063413d9c3a1461068657806343756e5c1461069b5761038c565b806311fe9ec6116103235780632fdeb111116102fd5780632fdeb11114610632578063333ad3e71461064757806334c433541461065c5780633dffc3871461061d5761038c565b806311fe9ec6146105bf578063151817e3146105f257806317c9efb01461061d5761038c565b80630bee7a671161035f5780630bee7a67146104515780630c7957151461047f5780630e2374a5146104945780631182b875146104c55761038c565b8063026e402b1461039157806302985992146103bf578063047636d1146103e65761038c565b3661038c57005b600080fd5b6103bd600480360360408110156103a757600080fd5b506001600160a01b038135169060200135610c7f565b005b3480156103cb57600080fd5b506103d46111bc565b60408051918252519081900360200190f35b3480156103f257600080fd5b506104196004803603602081101561040957600080fd5b50356001600160a01b03166111c2565b6040518082606080838360005b8381101561043e578181015183820152602001610426565b5050505090500191505060405180910390f35b34801561045d57600080fd5b50610466611216565b6040805163ffffffff9092168252519081900360200190f35b34801561048b57600080fd5b506103d461121b565b3480156104a057600080fd5b506104a9611221565b604080516001600160a01b039092168252519081900360200190f35b3480156104d157600080fd5b5061054a600480360360408110156104e857600080fd5b60ff8235169190810190604081016020820135600160201b81111561050c57600080fd5b82018360208201111561051e57600080fd5b803590602001918460018302840111600160201b8311171561053f57600080fd5b509092509050611227565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561058457818101518382015260200161056c565b50505050905090810190601f1680156105b15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156105cb57600080fd5b506103d4600480360360208110156105e257600080fd5b50356001600160a01b03166113e3565b3480156105fe57600080fd5b506106076113fe565b6040805160ff9092168252519081900360200190f35b34801561062957600080fd5b50610607611403565b34801561063e57600080fd5b506103d4611408565b34801561065357600080fd5b5061046661140e565b34801561066857600080fd5b506103d4611413565b34801561067d57600080fd5b5061060761141e565b34801561069257600080fd5b506103d4611423565b3480156106a757600080fd5b506104a961142a565b3480156106bc57600080fd5b506106c5611430565b6040805161ffff9092168252519081900360200190f35b3480156106e857600080fd5b50610607611435565b6103bd6004803603604081101561070757600080fd5b506001600160a01b03813516906020013561143a565b34801561072957600080fd5b506104a9611a62565b34801561073e57600080fd5b50610607611a68565b34801561075357600080fd5b506103d4611a6d565b34801561076857600080fd5b506103d4611a73565b34801561077d57600080fd5b506103d4611a7c565b34801561079257600080fd5b506103d4611c1c565b6103bd600480360360608110156107b157600080fd5b506001600160a01b03813581169160208101359091169060400135611c22565b3480156107dd57600080fd5b506104a961230b565b3480156107f257600080fd5b506103d46004803603602081101561080957600080fd5b50356001600160a01b0316612311565b34801561082557600080fd5b5061060761232c565b34801561083a57600080fd5b50610607612331565b34801561084f57600080fd5b506103d46004803603602081101561086657600080fd5b50356001600160a01b0316612336565b34801561088257600080fd5b506104a9612351565b34801561089757600080fd5b50610607612357565b3480156108ac57600080fd5b506103bd600480360360408110156108c357600080fd5b60ff8235169190810190604081016020820135600160201b8111156108e757600080fd5b8201836020820111156108f957600080fd5b803590602001918460018302840111600160201b8311171561091a57600080fd5b50909250905061235c565b34801561093157600080fd5b50610607612624565b34801561094657600080fd5b506104a9612629565b34801561095b57600080fd5b506104a961262f565b34801561097057600080fd5b50610979612635565b604080519115158252519081900360200190f35b34801561099957600080fd5b50610466611a68565b3480156109ae57600080fd5b506103bd600480360360408110156109c557600080fd5b810190602081018135600160201b8111156109df57600080fd5b8201836020820111156109f157600080fd5b803590602001918460018302840111600160201b83111715610a1257600080fd5b919390929091602081019035600160201b811115610a2f57600080fd5b820183602082011115610a4157600080fd5b803590602001918460018302840111600160201b83111715610a6257600080fd5b50909250905061263e565b348015610a7957600080fd5b50610607612dd0565b348015610a8e57600080fd5b506103d4612dd5565b348015610aa357600080fd5b506103d4612f72565b348015610ab857600080fd5b506103d460048036036040811015610acf57600080fd5b506001600160a01b0381358116916020013516612f7d565b348015610af357600080fd5b506103d4612faa565b348015610b0857600080fd5b506104a9612fb0565b348015610b1d57600080fd5b506103bd60048036036040811015610b3457600080fd5b60ff8235169190810190604081016020820135600160201b811115610b5857600080fd5b820183602082011115610b6a57600080fd5b803590602001918460018302840111600160201b83111715610b8b57600080fd5b509092509050612fb6565b348015610ba257600080fd5b506103d460048036036040811015610bb957600080fd5b506001600160a01b03813581169160200135166131d9565b348015610bdd57600080fd5b506104a9613204565b348015610bf257600080fd5b506103d461320a565b348015610c0757600080fd5b506103d460048036036060811015610c1e57600080fd5b506001600160a01b038135811691602081013582169160409091013516613217565b348015610c4c57600080fd5b506104a961324c565b348015610c6157600080fd5b506103d4613252565b348015610c7657600080fd5b506104a9613258565b60105460ff1660021415610ccb576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b6010805460ff19166002179055806402540be4003406158015610cf357506402540be4008106155b610d44576040805162461bcd60e51b815260206004820152601c60248201527f707265636973696f6e206c6f737320696e20636f6e76657273696f6e00000000604482015290519081900360640190fd5b60005460ff16610d87576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b600354821015610dde576040805162461bcd60e51b815260206004820152601760248201527f696e76616c69642064656c656761746520616d6f756e74000000000000000000604482015290519081900360640190fd5b600154610df290839063ffffffff61325e16565b341015610e3d576040805162461bcd60e51b81526020600482015260146024820152736e6f7420656e6f756768206d73672076616c756560601b604482015290519081900360640190fd5b601154604051600091339183818181818787f1925050503d8060008114610e80576040519150601f19603f3d011682016040523d82523d6000602084013e610e85565b606091505b5050905080610ecf576040805162461bcd60e51b815260206004820152601160248201527034b73b30b634b2103232b632b3b0ba37b960791b604482015290519081900360640190fd5b6000610ee6846402540be40063ffffffff6132bf16565b90506000610efa348663ffffffff61330116565b90506000610f136002548361330190919063ffffffff16565b6040805160038082526080820190925291925060609190816020015b6060815260200190600190039081610f2f579050509050610f4f33613343565b81600081518110610f5c57fe5b6020026020010181905250610f79886001600160a01b0316613343565b81600181518110610f8657fe5b6020026020010181905250610f9a84613366565b81600281518110610fa757fe5b60200260200101819052506060610fc76001610fc284613379565b613403565b8051602080830191909120600f80546000908152600a845260408082209390935581546001908101909255338152600b909352912080549091019055905061200063f7a251d7601083611025876402540be40063ffffffff6132bf16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561108357818101518382015260200161106b565b50505050905090810190601f1680156110b05780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156110d157600080fd5b505af11580156110e5573d6000803e3d6000fd5b5061100492506108fc915061110290508a8663ffffffff61325e16565b6040518115909202916000818181858888f1935050505015801561112a573d6000803e3d6000fd5b506002546040516110029180156108fc02916000818181858888f1935050505015801561115b573d6000803e3d6000fd5b50604080518981526020810185905281516001600160a01b038c169233927f5f32ed2794e2e72d19e3cb2320e8820a499c4204887372beba51f5e61c040867929081900390910190a350506010805460ff1916600117905550505050505050565b60035481565b6111ca615193565b6111d2615193565b6001600160a01b0383166000818152600b60209081526040808320548552838352600c82528083205485830152928252600d9052819020549082015290505b919050565b606481565b6108fc81565b61200181565b606033612000146112695760405162461bcd60e51b815260040180806020018281038252602f81526020018061539b602f913960400191505060405180910390fd5b60005460ff166112ac576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b6112b46151b1565b6112fb6112f685858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061348992505050565b6134ae565b9050600061131061130b836134f8565b613546565b90506000606060ff8316600414156113355761132b846135fd565b909250905061138c565b60ff83166005141561134a5761132b846137dd565b6040805162461bcd60e51b8152602060048201526012602482015271756e6b6e6f776e206576656e74207479706560701b604482015290519081900360640190fd5b63ffffffff8216156113d8576040805163ffffffff84168152905160ff8516917f391d6e5ea6ab6c49b9a0abb1782cae5def8d711f973b00c729658c0b2a80b31b919081900360200190a25b979650505050505050565b6001600160a01b031660009081526006602052604090205490565b600581565b600181565b60015481565b606581565b662386f26fc1000081565b600381565b620a8c0081565b61100181565b606181565b600881565b60105460ff1660021415611486576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b6010805460ff19166002179055806402540be40034061580156114ae57506402540be4008106155b6114ff576040805162461bcd60e51b815260206004820152601c60248201527f707265636973696f6e206c6f737320696e20636f6e76657273696f6e00000000604482015290519081900360640190fd5b60005460ff16611542576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b600154341015611590576040805162461bcd60e51b81526020600482015260146024820152736e6f7420656e6f7567682072656c61792066656560601b604482015290519081900360640190fd5b60035482101561164b573360009081526005602090815260408083206001600160a01b03871684529091529020548214611602576040805162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a5908185b5bdd5b9d60921b604482015290519081900360640190fd5b600254821161164b576040805162461bcd60e51b815260206004820152601060248201526f6e6f7420656e6f7567682066756e647360801b604482015290519081900360640190fd5b3360009081526007602090815260408083206001600160a01b03871684529091529020544210156116c3576040805162461bcd60e51b815260206004820152601a60248201527f70656e64696e6720756e64656c65676174696f6e206578697374000000000000604482015290519081900360640190fd5b604080518082018252601081526f6e6f7420656e6f7567682066756e647360801b602080830191909152336000908152600582528381206001600160a01b03881682529091529182205461171e91859063ffffffff6139f916565b905080156117665760025481116117665760405162461bcd60e51b81526004018080602001828103825260258152602001806153766025913960400191505060405180910390fd5b600061177d846402540be40063ffffffff6132bf16565b600254909150349060009061179990839063ffffffff61330116565b6040805160038082526080820190925291925060609190816020015b60608152602001906001900390816117b55790505090506117d533613343565b816000815181106117e257fe5b60200260200101819052506117ff886001600160a01b0316613343565b8160018151811061180c57fe5b602002602001018190525061182084613366565b8160028151811061182d57fe5b602002602001018190525060606118486002610fc284613379565b8051602080830191909120600f80546000908152600a845260408082209390935581546001908101909255338152600c909352912080549091019055905061189942620a8c0063ffffffff61325e16565b3360009081526007602090815260408083206001600160a01b038e16845290915290205561200063f7a251d76010836118dd876402540be40063ffffffff6132bf16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561193b578181015183820152602001611923565b50505050905090810190601f1680156119685780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561198957600080fd5b505af115801561199d573d6000803e3d6000fd5b5050604051611004925085156108fc02915085906000818181858888f193505050501580156119d0573d6000803e3d6000fd5b506002546040516110029180156108fc02916000818181858888f19350505050158015611a01573d6000803e3d6000fd5b50604080518981526020810185905281516001600160a01b038c169233927fdf0b6ac27f3f3bb31cee3dab0f4fe40cc19c6a3f8daaec52e06b261e58a12519929081900390910190a350506010805460ff1916600117905550505050505050565b61200081565b600081565b60025481565b6402540be40081565b60105460009060ff1660021415611acb576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b506010805460ff191660021790553360009081526008602052604090205480611b32576040805162461bcd60e51b81526020600482015260146024820152736e6f20756e64656c6567617465642066756e647360601b604482015290519081900360640190fd5b336000818152600860205260408082208290556011549051919291849084818181858888f193505050503d8060008114611b88576040519150601f19603f3d011682016040523d82523d6000602084013e611b8d565b606091505b5050905080611bd5576040805162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b604482015290519081900360640190fd5b60408051838152905133917fc712d133b8d448221aaed2198ed1f0db6dfc860fb01bc3a630916fe6cbef946f919081900360200190a2506010805460ff1916600117905590565b60035490565b60105460ff1660021415611c6e576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b6010805460ff19166002179055806402540be4003406158015611c9657506402540be4008106155b611ce7576040805162461bcd60e51b815260206004820152601c60248201527f707265636973696f6e206c6f737320696e20636f6e76657273696f6e00000000604482015290519081900360640190fd5b60005460ff16611d2a576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b826001600160a01b0316846001600160a01b03161415611d88576040805162461bcd60e51b815260206004820152601460248201527334b73b30b634b2103932b232b632b3b0ba34b7b760611b604482015290519081900360640190fd5b600154341015611dd6576040805162461bcd60e51b81526020600482015260146024820152736e6f7420656e6f7567682072656c61792066656560601b604482015290519081900360640190fd5b600354821015611e1e576040805162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a5908185b5bdd5b9d60921b604482015290519081900360640190fd5b3360009081526009602090815260408083206001600160a01b03888116855290835281842090871684529091529020544210801590611e8c57503360009081526009602090815260408083206001600160a01b03878116855290835281842090881684529091529020544210155b611edd576040805162461bcd60e51b815260206004820152601a60248201527f70656e64696e6720726564656c65676174696f6e206578697374000000000000604482015290519081900360640190fd5b604080518082018252601081526f6e6f7420656e6f7567682066756e647360801b602080830191909152336000908152600582528381206001600160a01b038916825290915291822054611f3891859063ffffffff6139f916565b90508015611f80576002548111611f805760405162461bcd60e51b815260040180806020018281038252602581526020018061527a6025913960400191505060405180910390fd5b6000611f97846402540be40063ffffffff6132bf16565b6002549091503490600090611fb390839063ffffffff61330116565b60408051600480825260a0820190925291925060609190816020015b6060815260200190600190039081611fcf579050509050611fef33613343565b81600081518110611ffc57fe5b6020026020010181905250612019896001600160a01b0316613343565b8160018151811061202657fe5b6020026020010181905250612043886001600160a01b0316613343565b8160028151811061205057fe5b602002602001018190525061206484613366565b8160038151811061207157fe5b6020026020010181905250606061208c6003610fc284613379565b8051602080830191909120600f80546000908152600a845260408082209390935581546001908101909255338152600d90935291208054909101905590506120dd42620a8c0063ffffffff61325e16565b3360009081526009602090815260408083206001600160a01b038e81168552908352818420908f16845290915290205561212042620a8c0063ffffffff61325e16565b3360009081526009602090815260408083206001600160a01b038f81168552908352818420908e16845290915290205561200063f7a251d7601083612170876402540be40063ffffffff6132bf16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156121ce5781810151838201526020016121b6565b50505050905090810190601f1680156121fb5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561221c57600080fd5b505af1158015612230573d6000803e3d6000fd5b5050604051611004925085156108fc02915085906000818181858888f19350505050158015612263573d6000803e3d6000fd5b506002546040516110029180156108fc02916000818181858888f19350505050158015612294573d6000803e3d6000fd5b50886001600160a01b03168a6001600160a01b0316336001600160a01b03167fdb0d03fdfcb145c486c442659e6a341a8828985505097cb5190afcf541e840158b87604051808381526020018281526020019250505060405180910390a450506010805460ff191660011790555050505050505050565b61100581565b6001600160a01b031660009081526004602052604090205490565b600281565b601081565b6001600160a01b031660009081526008602052604090205490565b61100881565b600b81565b336120001461239c5760405162461bcd60e51b815260040180806020018281038252602f81526020018061539b602f913960400191505060405180910390fd5b60005460ff166123df576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b6123e76151b1565b6124296112f684848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061348992505050565b905060008060606000805b61243d86613a90565b156124a8578061245a5761245361130b876134f8565b94506124a0565b80600114156124765761246f61130b876134f8565b93506124a0565b806002141561249b5761249061248b876134f8565b613ab1565b9250600191506124a0565b6124a8565b600101612434565b816124ee576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6124f783613b21565b61253a576040805162461bcd60e51b815260206004820152600f60248201526e0eee4dedcce40e0c2c6d640d0c2e6d608b1b604482015290519081900360640190fd5b6125466112f684613489565b9550600061255661130b886134f8565b90506125606151b1565b61256988613a90565b1561258c576125856112f661258061248b8b6134f8565b613489565b90506125cd565b6040805162461bcd60e51b8152602060048201526011602482015270656d7074792061636b207061636b61676560781b604482015290519081900360640190fd5b60ff8216600114156125e9576125e4818888613b75565b612617565b60ff821660021415612600576125e4818888613f2c565b60ff82166003141561134a576125e48188886141f9565b5050505050505050505050565b600981565b61100781565b61100681565b60005460ff1681565b60005460ff16612695576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604482015290519081900360640190fd5b33611007146126d55760405162461bcd60e51b815260040180806020018281038252602e8152602001806152ec602e913960400191505060405180910390fd5b61273684848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600a81526972656c6179657246656560b01b6020820152915061455e9050565b1561289c5760208114612790576040805162461bcd60e51b815260206004820152601d60248201527f6c656e677468206f662072656c61796572466565206d69736d61746368000000604482015290519081900360640190fd5b604080516020601f84018190048102820181019092528281526000916127ce9185858083850183828082843760009201919091525061464592505050565b905060035481106128105760405162461bcd60e51b815260040180806020018281038252602e81526020018061531a602e913960400191505060405180910390fd5b60025481116128505760405162461bcd60e51b815260040180806020018281038252602e815260200180615348602e913960400191505060405180910390fd5b6402540be4008106156128945760405162461bcd60e51b815260040180806020018281038252602c8152602001806152c0602c913960400191505060405180910390fd5b600155612d3e565b61290084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c62534352656c6179657246656560981b6020820152915061455e9050565b15612a62576020811461295a576040805162461bcd60e51b815260206004820181905260248201527f6c656e677468206f662062534352656c61796572466565206d69736d61746368604482015290519081900360640190fd5b604080516020601f84018190048102820181019092528281526000916129989185858083850183828082843760009201919091525061464592505050565b9050806129d65760405162461bcd60e51b81526004018080602001828103825260228152602001806153ca6022913960400191505060405180910390fd5b6001548110612a165760405162461bcd60e51b815260040180806020018281038252602e81526020018061521b602e913960400191505060405180910390fd5b6402540be400810615612a5a5760405162461bcd60e51b815260040180806020018281038252602f8152602001806151ec602f913960400191505060405180910390fd5b600255612d3e565b612ac684848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c36b4b72232b632b3b0ba34b7b760991b6020820152915061455e9050565b15612ba85760208114612b20576040805162461bcd60e51b815260206004820181905260248201527f6c656e677468206f66206d696e44656c65676174696f6e206d69736d61746368604482015290519081900360640190fd5b604080516020601f8401819004810282018101909252828152600091612b5e9185858083850183828082843760009201919091525061464592505050565b90506001548111612ba05760405162461bcd60e51b81526004018080602001828103825260318152602001806152496031913960400191505060405180910390fd5b600355612d3e565b612c0a84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600b81526a7472616e7366657247617360a81b6020820152915061455e9050565b15612d015760208114612c64576040805162461bcd60e51b815260206004820152601e60248201527f6c656e677468206f66207472616e73666572476173206d69736d617463680000604482015290519081900360640190fd5b604080516020601f8401819004810282018101909252828152600091612ca29185858083850183828082843760009201919091525061464592505050565b905060008111612cf9576040805162461bcd60e51b815260206004820152601e60248201527f746865207472616e736665724761732063616e6e6f74206265207a65726f0000604482015290519081900360640190fd5b601155612d3e565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b600481565b60105460009060ff1660021415612e24576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b506010805460ff191660021790553360009081526006602052604090205480612e88576040805162461bcd60e51b81526020600482015260116024820152701b9bc81c195b991a5b99c81c995dd85c99607a1b604482015290519081900360640190fd5b336000818152600660205260408082208290556011549051919291849084818181858888f193505050503d8060008114612ede576040519150601f19603f3d011682016040523d82523d6000602084013e612ee3565b606091505b5050905080612f2b576040805162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b604482015290519081900360640190fd5b60408051838152905133917f83b78188b13346b2ffb484da70d42ee27de7fbf9f2bd8045269e10ed643ccd76919081900360200190a2506010805460ff1916600117905590565b6638d7ea4c68000081565b6001600160a01b038083166000908152600760209081526040808320938516835292905220545b92915050565b60015490565b61100281565b3361200014612ff65760405162461bcd60e51b815260040180806020018281038252602f81526020018061539b602f913960400191505060405180910390fd5b60005460ff16613039576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b61307882828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613b2192505050565b6130bb576040805162461bcd60e51b815260206004820152600f60248201526e0eee4dedcce40e0c2c6d640d0c2e6d608b1b604482015290519081900360640190fd5b6130c36151b1565b6131056112f684848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061348992505050565b9050600061311561130b836134f8565b905061311f6151b1565b61312883613a90565b156131465761313f6112f661258061248b866134f8565b905061318c565b6040805162461bcd60e51b8152602060048201526016602482015275656d707479206661696c2061636b207061636b61676560501b604482015290519081900360640190fd5b60ff8216600114156131a6576131a18161464a565b6131d0565b60ff8216600214156131bb576131a181614864565b60ff82166003141561134a576131a18161498e565b5050505b505050565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b61100381565b68056bc75e2d6310000081565b6001600160a01b0392831660009081526009602090815260408083209486168352938152838220929094168152925290205490565b61100081565b60115481565b61100481565b6000828201838110156132b8576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b60006132b883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250614af3565b60006132b883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506139f9565b60408051600560a21b83186014820152603481019091526060906132b881614b58565b6060612fa461337483614bae565b614b58565b606081516000141561339a5750604080516000815260208101909152611211565b6060826000815181106133a957fe5b602002602001015190506000600190505b83518110156133ea576133e0828583815181106133d357fe5b6020026020010151614c94565b91506001016133ba565b506132b86133fd825160c060ff16614d11565b82614c94565b6040805160028082526060828101909352829190816020015b606081526020019060019003908161341c57905050905061343f8460ff16613366565b8160008151811061344c57fe5b602002602001018190525061346083614b58565b8160018151811061346d57fe5b602002602001018190525061348181613379565b949350505050565b6134916151d1565b506040805180820190915281518152602082810190820152919050565b6134b66151b1565b6134bf82614e09565b6134c857600080fd5b60006134d78360200151614e43565b60208085015160408051808201909152868152920190820152915050919050565b6135006151d1565b61350982613a90565b61351257600080fd5b6020820151600061352282614ea6565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061355b57508151602110155b61356457600080fd5b60006135738360200151614e43565b905080836000015110156135ce576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b8251602080850151830180519284900392918310156135f457826020036101000a820491505b50949350505050565b600060606000806000805b61361187613a90565b1561366357826136335761362c613627886134f8565b614fd9565b9150613658565b82600114156136535761364861130b886134f8565b905060019350613658565b613663565b826001019250613608565b836136a9576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b60006110046001600160a01b031663727be1f8836040518263ffffffff1660e01b815260040180828152602001915050602060405180830381600087803b1580156136f357600080fd5b505af1158015613707573d6000803e3d6000fd5b505050506040513d602081101561371d57600080fd5b505190508061374257613734600484846065614ff3565b9650965050505050506137d8565b6001600160a01b03831660009081526006602052604090205461376b908363ffffffff61325e16565b6001600160a01b038416600081815260066020908152604091829020939093558051858152905191927f7cc266c7b444f808013fa187f7b904d470a051a6564e78f482aa496581ba4bf892918290030190a260408051600080825260208201909252909750955050505050505b915091565b6000606060008060008060005b6137f388613a90565b1561385c578361381057613809613627896134f8565b9250613851565b836001141561382c57613825613627896134f8565b9150613851565b836002141561384c5761384161130b896134f8565b905060019450613851565b61385c565b8360010193506137ea565b846138a2576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b60006110046001600160a01b031663727be1f8836040518263ffffffff1660e01b815260040180828152602001915050602060405180830381600087803b1580156138ec57600080fd5b505af1158015613900573d6000803e3d6000fd5b505050506040513d602081101561391657600080fd5b505190508061393c5761392d600585846065614ff3565b975097505050505050506137d8565b6001600160a01b038085166000818152600760209081526040808320948816835293815283822082905591815260089091522054613980908363ffffffff61325e16565b6001600160a01b0380861660008181526008602090815260409182902094909455805186815290519287169391927f35a799836f74fac7eccf5c73902823b970543d2274d3b93d8da3d37a255772a2929181900390910190a3604080516000808252602082019092529098509650505050505050915091565b60008184841115613a885760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613a4d578181015183820152602001613a35565b50505050905090810190601f168015613a7a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000613a9a6151d1565b505080518051602091820151919092015191011190565b8051606090613abf57600080fd5b6000613ace8360200151614e43565b83516040805191839003808352601f19601f8201168301602001909152919250606090828015613b05576020820181803683370190505b50905060008160200190506135f48487602001510182856150ef565b8051602080830191909120600e546000908152600a9092526040822054808214613b5057600092505050611211565b5050600e80546000908152600a60205260408120558054600190810190915592915050565b60008060008060005b613b8788613a90565b15613bf05783613ba457613b9d613627896134f8565b9250613be5565b8360011415613bc057613bb9613627896134f8565b9150613be5565b8360021415613be057613bd561130b896134f8565b905060019450613be5565b613bf0565b836001019350613b7e565b84613c36576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6000613c4d826402540be40063ffffffff61513a16565b6001600160a01b0385166000908152600b602052604090208054600019019055905060ff881660011415613d935760ff871615613cc0576040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b6001600160a01b038416600090815260046020526040902054613ce9908263ffffffff61325e16565b6001600160a01b03808616600090815260046020908152604080832094909455600581528382209287168252919091522054613d2b908263ffffffff61325e16565b6001600160a01b038086166000818152600560209081526040808320948916808452948252918290209490945580518581529051929391927f9a57c81564ab02642f34fd87e41baa9b074c18342cec3b7268b62bf752018fd1929181900390910190a3613f21565b60ff8816613ee5576001600160a01b038416600090815260086020526040902054613dc4908263ffffffff61325e16565b6001600160a01b0385166000908152600860209081526040808320939093558251630e4f7c3f60e31b81526004810185905292516110049363727be1f89360248083019493928390030190829087803b158015613e2057600080fd5b505af1158015613e34573d6000803e3d6000fd5b505050506040513d6020811015613e4a57600080fd5b5051613e93576040805162461bcd60e51b81526020600482015260136024820152721dda5d1a191c985dc8189b988819985a5b1959606a1b604482015290519081900360640190fd5b6040805182815260ff8916602082015281516001600160a01b0380871693908816927fcbd481ae600289fad8c0484d07ce0ffe4f010d7c844ecfdeaf2a13fead52886e929081900390910190a3613f21565b6040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b505050505050505050565b60008060008060005b613f3e88613a90565b15613fa75783613f5b57613f54613627896134f8565b9250613f9c565b8360011415613f7757613f70613627896134f8565b9150613f9c565b8360021415613f9757613f8c61130b896134f8565b905060019450613f9c565b613fa7565b836001019350613f35565b84613fed576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6000614004826402540be40063ffffffff61513a16565b6001600160a01b0385166000908152600c602052604090208054600019019055905060ff8816600114156141835760ff871615614077576040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b6001600160a01b0384166000908152600460205260409020546140a0908263ffffffff61330116565b6001600160a01b038086166000908152600460209081526040808320949094556005815283822092871682529190915220546140e2908263ffffffff61330116565b6001600160a01b0380861660009081526005602090815260408083209388168352929052205561411b42620a8c0063ffffffff61325e16565b6001600160a01b038086166000818152600760209081526040808320948916808452948252918290209490945580518581529051929391927fd6f878a5bcbbe79a64e6418bb0d56aaa20b9a60587d45749819df88dfc7c3c44929181900390910190a3613f21565b60ff8816613ee5576001600160a01b03808516600081815260076020908152604080832094881680845294825280832092909255815185815260ff8c169181019190915281517f4417d10c1e33efa83a770b8d4f47176e78c08c1298d534901ad3b16bb585fa2e929181900390910190a3613f21565b6000806000806000805b61420c89613a90565b156142915784614229576142226136278a6134f8565b9350614286565b84600114156142455761423e6136278a6134f8565b9250614286565b84600214156142615761425a6136278a6134f8565b9150614286565b84600314156142815761427661130b8a6134f8565b905060019550614286565b614291565b846001019450614203565b856142d7576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b60006142ee826402540be40063ffffffff61513a16565b6001600160a01b0386166000908152600d602052604090208054600019019055905060ff8916600114156144c15760ff881615614361576040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b6001600160a01b03808616600090815260056020908152604080832093881683529290522054614397908263ffffffff61330116565b6001600160a01b038681166000908152600560209081526040808320898516845290915280822093909355908516815220546143d3908261325e565b6001600160a01b0380871660009081526005602090815260408083209388168352929052205561440c42620a8c0063ffffffff61325e16565b6001600160a01b038087166000908152600960209081526040808320898516845282528083209388168352929052205561444f42620a8c0063ffffffff61325e16565b6001600160a01b038087166000818152600960209081526040808320898616808552908352818420958b1680855295835292819020959095558451868152945191947f78bffae3f8c6691ac7fc1a3bff800cb2d612f5ad9ae5b0444cfe2eb15c189e18929081900390910190a4614552565b60ff8916613ee5576001600160a01b038581166000818152600960209081526040808320898616808552818452828520968a16808652968452828520859055908352818420818552835281842093909355805186815260ff8e169281019290925280519293927fb93bee5c59f85ede6b074a99f4ffcd3e3fc0d5c3d8156de331de89a49e0ce77c9281900390910190a45b50505050505050505050565b6000816040516020018082805190602001908083835b602083106145935780518252601f199092019160209182019101614574565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106146015780518252601f1990920191602091820191016145e2565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b60008060008060005b61465c86613a90565b156146c5578361467957614672613627876134f8565b92506146ba565b83600114156146955761468e613627876134f8565b91506146ba565b83600214156146b5576146aa61130b876134f8565b9050600194506146ba565b6146c5565b836001019350614653565b8461470b576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6000614722826402540be40063ffffffff61513a16565b6001600160a01b0385166000908152600b6020908152604080832080546000190190556008909152902054909150614760908263ffffffff61325e16565b6001600160a01b0385166000908152600860209081526040808320939093558251630e4f7c3f60e31b81526004810185905292516110049363727be1f89360248083019493928390030190829087803b1580156147bc57600080fd5b505af11580156147d0573d6000803e3d6000fd5b505050506040513d60208110156147e657600080fd5b505161482f576040805162461bcd60e51b81526020600482015260136024820152721dda5d1a191c985dc8189b988819985a5b1959606a1b604482015290519081900360640190fd5b6040516001907ff83de021914a4585482db5ca47d520a5657165b443fa2c7ef8ed4635f054da9b90600090a250505050505050565b60008060008060005b61487686613a90565b156148df57836148935761488c613627876134f8565b92506148d4565b83600114156148af576148a8613627876134f8565b91506148d4565b83600214156148cf576148c461130b876134f8565b9050600194506148d4565b6148df565b83600101935061486d565b84614925576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6001600160a01b038084166000908152600c60209081526040808320805460001901905560078252808320938616835292905281812081905590516002917ff83de021914a4585482db5ca47d520a5657165b443fa2c7ef8ed4635f054da9b91a2505050505050565b6000806000806000805b6149a187613a90565b15614a2657846149be576149b7613627886134f8565b9350614a1b565b84600114156149da576149d3613627886134f8565b9250614a1b565b84600214156149f6576149ef613627886134f8565b9150614a1b565b8460031415614a1657614a0b61130b886134f8565b905060019550614a1b565b614a26565b846001019450614998565b85614a6c576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6001600160a01b038481166000908152600d602090815260408083208054600019019055600982528083208785168085528184528285209588168552948352818420849055825280832093835292905281812081905590516003917ff83de021914a4585482db5ca47d520a5657165b443fa2c7ef8ed4635f054da9b91a250505050505050565b60008183614b425760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315613a4d578181015183820152602001613a35565b506000838581614b4e57fe5b0495945050505050565b606081516001148015614b8a5750607f60f81b82600081518110614b7857fe5b01602001516001600160f81b03191611155b15614b96575080611211565b612fa4614ba88351608060ff16614d11565b83614c94565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416614bf257506018614c16565b6fffffffffffffffffffffffffffffffff198416614c1257506010614c16565b5060005b6020811015614c4c57818181518110614c2b57fe5b01602001516001600160f81b03191615614c4457614c4c565b600101614c16565b60008160200390506060816040519080825280601f01601f191660200182016040528015614c81576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b81831015614cc5578051835260209283019201614cad565b50855184518101855292509050808201602086015b81831015614cf2578051835260209283019201614cda565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310614d61576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b60408051600180825281830190925260609160208201818036833701905050905060378411614dbb5782840160f81b81600081518110614d9d57fe5b60200101906001600160f81b031916908160001a9053509050612fa4565b6060614dc685614bae565b90508381510160370160f81b82600081518110614ddf57fe5b60200101906001600160f81b031916908160001a905350614e008282614c94565b95945050505050565b8051600090614e1a57506000611211565b6020820151805160001a9060c0821015614e3957600092505050611211565b5060019392505050565b8051600090811a6080811015614e5d576000915050611211565b60b8811080614e78575060c08110801590614e78575060f881105b15614e87576001915050611211565b60c0811015614e9b5760b519019050611211565b60f519019050611211565b80516000908190811a6080811015614ec15760019150614fd2565b60b8811015614ed657607e1981019150614fd2565b60c0811015614f5057600060b78203600186019550806020036101000a865104915060018101820193505080831015614f4a576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50614fd2565b60f8811015614f655760be1981019150614fd2565b600060f78203600186019550806020036101000a865104915060018101820193505080831015614fd0576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b8051600090601514614fea57600080fd5b612fa482613546565b6000606061500c846402540be40063ffffffff6132bf16565b60408051600480825260a0820190925291955060609190816020015b606081526020019060019003908161502857905050905061504b8760ff16613366565b8160008151811061505857fe5b6020026020010181905250615075866001600160a01b0316613343565b8160018151811061508257fe5b602002602001018190525061509685613366565b816002815181106150a357fe5b60200260200101819052506150bd8463ffffffff16613366565b816003815181106150ca57fe5b602002602001018190525060606150e082613379565b94989497509395505050505050565b806150f9576131d4565b5b60208110615119578251825260209283019290910190601f19016150fa565b915181516020939093036101000a6000190180199091169216919091179052565b60008261514957506000612fa4565b8282028284828161515657fe5b04146132b85760405162461bcd60e51b815260040180806020018281038252602181526020018061529f6021913960400191505060405180910390fd5b60405180606001604052806003906020820280368337509192915050565b60405180604001604052806151c46151d1565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe7468652042534352656c61796572466565206d6f642074656e20646563696d616c73206d757374206265207a65726f7468652042534352656c61796572466565206d757374206265206c657373207468616e2072656c61796572466565746865206d696e44656c65676174696f6e206d7573742062652067726561746572207468616e2072656c61796572466565696e73756666696369656e742062616c616e636520616674657220726564656c6567617465536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f777468652072656c61796572466565206d6f642074656e20646563696d616c73206d757374206265207a65726f746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163747468652072656c61796572466565206d757374206265206c657373207468616e206d696e44656c65676174696f6e7468652072656c61796572466565206d757374206265206d6f7265207468616e2042534352656c61796572466565696e73756666696369656e742062616c616e636520616674657220756e64656c6567617465746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e74726163747468652042534352656c61796572466565206d757374206e6f74206265207a65726fa2646970667358221220de1a90a99417952bd5d4f424161817780a15ff9f30026401fbf3cc2b00ccc44464736f6c63430006040033" + } + }, + "29295050": { + "0x0000000000000000000000000000000000001000": { + "balance": "0x0", + "code": "0x60806040526004361061046c5760003560e01c8063862498821161024a578063c6d3394511610139578063e40716a1116100b6578063f9a2bbc71161007a578063f9a2bbc714610b6b578063fc3e590814610b80578063fccc281314610b95578063fd4ad81f14610baa578063fd6a687914610bd957610473565b8063e40716a114610af9578063eb57e20214610b0e578063eda5868c14610b2e578063f340fa0114610b43578063f92eb86b14610b5657610473565b8063d86222d5116100fd578063d86222d514610a90578063daacdb6614610aa5578063dc927faf14610aba578063e086c7b114610acf578063e1c7392a14610ae457610473565b8063c6d3394514610a3c578063c81b166214610a51578063c8509d811461085f578063d04aa99614610a66578063d68fb56a14610a7b57610473565b8063a5422d5c116101c7578063ad3c9da61161018b578063ad3c9da6146109d0578063aef198a9146109f0578063b7ab4db514610a05578063b8cf4ef114610a27578063bf9f49951461062f57610473565b8063a5422d5c1461095c578063a78abc1614610971578063aaf5eb6814610986578063ab51bb961461099b578063ac431751146109b057610473565b806396713da91161020e57806396713da9146108f35780639dc09262146109085780639fe0f8161461091d578063a0dc275814610932578063a1a11bf51461094757610473565b8063862498821461087f57806388b32f11146108945780638b5ad0c9146108a95780638d19a410146108be5780639369d7de146108de57610473565b80634df6e0c3116103665780636e47b482116102e35780637942fd05116102a75780637942fd05146108205780637a84ca2a1461083557806381650b621461084a578063831d65d11461085f578063853230aa1461080b57610473565b80636e47b482146107b757806370fd5bad146107cc578063718a8aa8146107e157806375d47a0a146107f657806378dfed4a1461080b57610473565b8063565c56b31161032a578063565c56b3146107265780635667515a146107465780635d77156c1461075b57806362b72cf5146107705780636969a25c1461078557610473565b80634df6e0c3146106b25780635192c82c146106c757806351e80672146106dc578063549b03f2146106f157806355614fcc1461070657610473565b8063321d398a116103f45780633dffc387116103b85780633dffc3871461062f57806343756e5c1461065157806345cf9daf14610666578063493279b11461067b5780634bf6c8821461069d57610473565b8063321d398a146105975780633365af3a146105b757806335409f7f146105d75780633b071dcc146105f75780633de0f0d81461061a57610473565b80631182b8751161043b5780631182b875146104fe578063152ad3b81461052b5780631ff180691461054d578063219f22d514610562578063300c35671461057757610473565b806304c4fec61461047857806307a568471461048f5780630bee7a67146104ba5780630e2374a5146104dc57610473565b3661047357005b600080fd5b34801561048457600080fd5b5061048d610bee565b005b34801561049b57600080fd5b506104a4610c60565b6040516104b19190616ef0565b60405180910390f35b3480156104c657600080fd5b506104cf610c66565b6040516104b19190616f1a565b3480156104e857600080fd5b506104f1610c6b565b6040516104b191906162f7565b34801561050a57600080fd5b5061051e6105193660046161dd565b610c71565b6040516104b1919061646e565b34801561053757600080fd5b50610540610ea9565b6040516104b19190616463565b34801561055957600080fd5b506104a4610eb2565b34801561056e57600080fd5b506104cf610eb8565b34801561058357600080fd5b5061048d6105923660046160a6565b610ebd565b3480156105a357600080fd5b506105406105b236600461618a565b611241565b3480156105c357600080fd5b506105406105d236600461618a565b611310565b3480156105e357600080fd5b5061048d6105f236600461607f565b6113c1565b34801561060357600080fd5b5061060c61151a565b6040516104b1929190616379565b34801561062657600080fd5b506104a46117f6565b34801561063b57600080fd5b506106446117fc565b6040516104b19190616f2b565b34801561065d57600080fd5b506104f1611801565b34801561067257600080fd5b506104a4611807565b34801561068757600080fd5b5061069061180d565b6040516104b19190616ee1565b3480156106a957600080fd5b50610644611812565b3480156106be57600080fd5b5061060c611817565b3480156106d357600080fd5b506104a4611995565b3480156106e857600080fd5b506104f161199b565b3480156106fd57600080fd5b506104a46119a1565b34801561071257600080fd5b5061054061072136600461607f565b6119a7565b34801561073257600080fd5b506104a461074136600461607f565b6119dc565b34801561075257600080fd5b50610644611a2d565b34801561076757600080fd5b506104cf611a32565b34801561077c57600080fd5b506104a4611a37565b34801561079157600080fd5b506107a56107a036600461618a565b611a3d565b6040516104b196959493929190616324565b3480156107c357600080fd5b506104f1611aa1565b3480156107d857600080fd5b50610644611aa7565b3480156107ed57600080fd5b50610644611aac565b34801561080257600080fd5b506104f1611ab1565b34801561081757600080fd5b506104a4611ab7565b34801561082c57600080fd5b50610644611abd565b34801561084157600080fd5b506104a4611ac2565b34801561085657600080fd5b506104cf611ac8565b34801561086b57600080fd5b5061048d61087a3660046161dd565b611acd565b34801561088b57600080fd5b506104a4611b2e565b3480156108a057600080fd5b506104a4611b34565b3480156108b557600080fd5b506104a4611b3a565b3480156108ca57600080fd5b506104a46108d936600461607f565b611b40565b3480156108ea57600080fd5b5061048d611b80565b3480156108ff57600080fd5b50610644611c94565b34801561091457600080fd5b506104f1611c99565b34801561092957600080fd5b506104a4611c9f565b34801561093e57600080fd5b506104a4611ca4565b34801561095357600080fd5b506104f1611ca9565b34801561096857600080fd5b5061051e611caf565b34801561097d57600080fd5b50610540611cce565b34801561099257600080fd5b506104a4611cd7565b3480156109a757600080fd5b506104cf611a2d565b3480156109bc57600080fd5b5061048d6109cb36600461612e565b611ce0565b3480156109dc57600080fd5b506104a46109eb36600461607f565b61258c565b3480156109fc57600080fd5b506104a461259e565b348015610a1157600080fd5b50610a1a6125ab565b6040516104b19190616366565b348015610a3357600080fd5b506104a4612697565b348015610a4857600080fd5b506104a4611aa7565b348015610a5d57600080fd5b506104f161269c565b348015610a7257600080fd5b506104a46126a2565b348015610a8757600080fd5b506104a46126a7565b348015610a9c57600080fd5b506104a46126e6565b348015610ab157600080fd5b506104a46126f2565b348015610ac657600080fd5b506104f16126f8565b348015610adb57600080fd5b506104a46126fe565b348015610af057600080fd5b5061048d612703565b348015610b0557600080fd5b506104a46128b2565b348015610b1a57600080fd5b5061048d610b2936600461607f565b6128b8565b348015610b3a57600080fd5b506104cf6129c0565b61048d610b5136600461607f565b6129c5565b348015610b6257600080fd5b506104a4612c4d565b348015610b7757600080fd5b506104f1612c53565b348015610b8c57600080fd5b50610644611c9f565b348015610ba157600080fd5b506104f1612c59565b348015610bb657600080fd5b50610bca610bc536600461618a565b612c5f565b6040516104b193929190616ef9565b348015610be557600080fd5b506104f1612d21565b6000610bf933611b40565b9050600b8181548110610c0857fe5b600091825260209091206001601690920201015460ff16610c445760405162461bcd60e51b8152600401610c3b90616b99565b60405180910390fd5b6000610c4e6126a7565b9050610c5b338383612d27565b505050565b60095481565b606481565b61200181565b60005460609060ff16610c965760405162461bcd60e51b8152600401610c3b9061662d565b3361200014610cb75760405162461bcd60e51b8152600401610c3b90616d78565b600b54610d7557610cc6615d6b565b60015460005b81811015610d7157600b8054600181018255600091909152835160008051602061714e833981519152601690920291820190815560208086015160008051602061718e8339815191528401805460ff1916911515919091179055604086015180518794610d4d9360008051602061716e833981519152909101920190615d9a565b506060820151610d639060038301906013615e14565b505050806001019050610ccc565b5050505b610d7d615e41565b6000610dbe85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612f1392505050565b9150915080610dda57610dd160646130cf565b92505050610ea2565b815160009060ff16610dff57610df883602001518460400151613130565b9050610e6e565b825160ff1660011415610e6a57826020015151600114610e445760008051602061712e833981519152604051610e3490616a80565b60405180910390a1506067610e65565b610df88360200151600081518110610e5857fe5b6020026020010151613d84565b610e6e565b5060655b63ffffffff8116610e935750506040805160008152602081019091529150610ea29050565b610e9c816130cf565b93505050505b9392505050565b60075460ff1681565b60035481565b606881565b334114610edc5760405162461bcd60e51b8152600401610c3b90616dc7565b6010544311610efd5760405162461bcd60e51b8152600401610c3b90616789565b60005460ff16610f1f5760405162461bcd60e51b8152600401610c3b9061662d565b600f54610f37576032600f5561100231601155611237565b60006110023168056bc75e2d63100000811115610f6657610f5f81606463ffffffff613efb16565b9150610faf565b601154811115610fa857610f5f6064610f9c600f54610f9060115486613f3d90919063ffffffff16565b9063ffffffff613f7f16565b9063ffffffff613efb16565b5050611237565b6040516309a99b4f60e41b815261100290639a99b4f090610fd6903090869060040161630b565b602060405180830381600087803b158015610ff057600080fd5b505af1158015611004573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061102891906161a2565b6110023160115591508161103d575050611237565b6000805b8481101561106b5785858281811061105557fe5b9050602002013582019150806001019050611041565b508061107957505050611237565b6000806000805b8981101561122f578489898381811061109557fe5b905060200201358802816110a557fe5b0493508a8a828181106110b457fe5b90506020020160208101906110c9919061607f565b6001600160a01b038116600090815260046020526040902054909350915081156111e55760006001808403815481106110fe57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff161561116b57836001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d858660405161115e9190616ef0565b60405180910390a26111df565b60035461117e908663ffffffff613fb916565b6003908155810154611196908663ffffffff613fb916565b60038201556040516001600160a01b038516907fcb0aad6cf9cd03bdf6137e359f541c42f38b39f007cae8e89e88aa7d8c6617b2906111d6908890616ef0565b60405180910390a25b50611227565b826001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d858560405161121e9190616ef0565b60405180910390a25b600101611080565b505050505050505b5050436010555050565b60015460009082106112555750600061130b565b60006001600160a01b03166001838154811061126d57fe5b60009182526020909120600490910201546001600160a01b0316148061129d5750600854158061129d5750600a54155b806112ac575060085460095410155b806112bd57506112bb82611310565b155b806112e657506000600b83815481106112d257fe5b906000526020600020906016020160000154115b806112fa575060016112f66125ab565b5111155b156113075750600061130b565b5060015b919050565b60015460009082106113245750600061130b565b600b548210611361576001828154811061133a57fe5b9060005260206000209060040201600201601c9054906101000a900460ff1615905061130b565b6001828154811061136e57fe5b9060005260206000209060040201600201601c9054906101000a900460ff161580156113bb5750600b82815481106113a257fe5b600091825260209091206001601690920201015460ff16155b92915050565b33611001146113e25760405162461bcd60e51b8152600401610c3b90616e98565b600b546114a0576113f1615d6b565b60015460005b8181101561149c57600b8054600181018255600091909152835160008051602061714e833981519152601690920291820190815560208086015160008051602061718e8339815191528401805460ff19169115159190911790556040860151805187946114789360008051602061716e833981519152909101920190615d9a565b50606082015161148e9060038301906013615e14565b5050508060010190506113f7565b5050505b6001600160a01b038116600090815260046020526040902054806114c45750611517565b6001810390506000600b82815481106114d957fe5b600091825260209091206001601690920201015460ff1690506114fc8383613fde565b80156115055750805b15610c5b576009805460001901905550505b50565b60015460609081906000805b8281101561156d576001818154811061153b57fe5b9060005260206000209060040201600201601c9054906101000a900460ff16611565576001909101905b600101611526565b5060608160405190808252806020026020018201604052801561159a578160200160208202803683370190505b5090506060826040519080825280602002602001820160405280156115d357816020015b60608152602001906001900390816115be5790505b50600b546000945090915084141561174e5760005b8481101561174857600181815481106115fd57fe5b9060005260206000209060040201600201601c9054906101000a900460ff16611740576001818154811061162d57fe5b600091825260209091206004909102015483516001600160a01b039091169084908690811061165857fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600b818154811061168557fe5b600091825260209182902060026016909202018101805460408051601f60001961010060018616150201909316949094049182018590048502840185019052808352919290919083018282801561171d5780601f106116f25761010080835404028352916020019161171d565b820191906000526020600020905b81548152906001019060200180831161170057829003601f168201915b505050505082858151811061172e57fe5b60209081029190910101526001909301925b6001016115e8565b506117ea565b60005b848110156117e8576001818154811061176657fe5b9060005260206000209060040201600201601c9054906101000a900460ff166117e0576001818154811061179657fe5b600091825260209091206004909102015483516001600160a01b03909116908490869081106117c157fe5b6001600160a01b03909216602092830291909101909101526001909301925b600101611751565b505b909450925050505b9091565b61271081565b600181565b61100181565b60085481565b606181565b600881565b600e54600c5460609182918061182b575060155b60606118356125ab565b9050606061184282614391565b9050828251116118595790945092506117f2915050565b8383835103101561186b578282510393505b83156118a15760c8430461188783838388880360008a8a6144ff565b61189f8383838888038989038a8b8b8b5103016144ff565b505b6060836040519080825280602002602001820160405280156118cd578160200160208202803683370190505b50905060608460405190808252806020026020018201604052801561190657816020015b60608152602001906001900390816118f15790505b50905060005b858110156119875784818151811061192057fe5b602002602001015183828151811061193457fe5b60200260200101906001600160a01b031690816001600160a01b03168152505083818151811061196057fe5b602002602001015182828151811061197457fe5b602090810291909101015260010161190c565b509096509450505050509091565b60065481565b61200081565b600f5481565b6001600160a01b038116600090815260046020526040812054806119cf57600091505061130b565b60001901610ea281611310565b6001600160a01b03811660009081526004602052604081205480611a0457600091505061130b565b600180820381548110611a1357fe5b906000526020600020906004020160030154915050919050565b600081565b606781565b60105481565b60018181548110611a4a57fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b601081565b61100881565b6103e881565b600b81565b600c5481565b606681565b3361200014611aee5760405162461bcd60e51b8152600401610c3b90616d78565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051611b2193929190616f39565b60405180910390a1505050565b60025481565b60115481565b600a5481565b6001600160a01b03811660009081526004602052604081205480611b765760405162461bcd60e51b8152600401610c3b90616d00565b6000190192915050565b600b54611c3e57611b8f615d6b565b60015460005b81811015611c3a57600b8054600181018255600091909152835160008051602061714e833981519152601690920291820190815560208086015160008051602061718e8339815191528401805460ff1916911515919091179055604086015180518794611c169360008051602061716e833981519152909101920190615d9a565b506060820151611c2c9060038301906013615e14565b505050806001019050611b95565b5050505b600854611c4b5760036008555b600a54611c58576002600a555b6000611c6333611b40565b9050611c6e81611241565b611c8a5760405162461bcd60e51b8152600401610c3b90616a3d565b6115173382614656565b600981565b61100781565b600381565b60c881565b61100681565b604051806101e001604052806101ab8152602001616f836101ab913981565b60005460ff1681565b6402540be40081565b60005460ff16611d025760405162461bcd60e51b8152600401610c3b9061662d565b3361100714611d235760405162461bcd60e51b8152600401610c3b90616b06565b611d8d84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b602082015291506146ee9050565b15611e2a5760208114611db25760405162461bcd60e51b8152600401610c3b90616cba565b604080516020601f8401819004810282018101909252828152600091611df09185858083850183828082843760009201919091525061474792505050565b905060648110158015611e065750620186a08111155b611e225760405162461bcd60e51b8152600401610c3b906168e6565b600255612549565b611e8a84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260098152686275726e526174696f60b81b602082015291506146ee9050565b15611f265760208114611eaf5760405162461bcd60e51b8152600401610c3b906164b3565b604080516020601f8401819004810282018101909252828152600091611eed9185858083850183828082843760009201919091525061474792505050565b9050612710811115611f115760405162461bcd60e51b8152600401610c3b906167cb565b6006556007805460ff19166001179055612549565b611f9084848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260138152726d61784e756d4f664d61696e7461696e696e6760681b602082015291506146ee9050565b1561202a5760208114611fb55760405162461bcd60e51b8152600401610c3b906164ea565b604080516020601f8401819004810282018101909252828152600091611ff39185858083850183828082843760009201919091525061474792505050565b600c5490915080612002575060155b8082106120215760405162461bcd60e51b8152600401610c3b9061683e565b50600855612549565b61209384848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61696e7461696e536c6173685363616c6560701b602082015291506146ee9050565b1561212c57602081146120b85760405162461bcd60e51b8152600401610c3b906165b3565b604080516020601f84018190048102820181019092528281526000916120f69185858083850183828082843760009201919091525061474792505050565b90506000811180156121085750600a81105b6121245760405162461bcd60e51b8152600401610c3b90616e14565b600a55612549565b6121a084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601981527f6d61784e756d4f66576f726b696e6743616e6469646174657300000000000000602082015291506146ee9050565b1561222f57602081146121c55760405162461bcd60e51b8152600401610c3b90616567565b604080516020601f84018190048102820181019092528281526000916122039185858083850183828082843760009201919091525061474792505050565b9050600d548111156122275760405162461bcd60e51b8152600401610c3b9061695c565b600e55612549565b61229884848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61784e756d4f6643616e6469646174657360701b602082015291506146ee9050565b1561231a57602081146122bd5760405162461bcd60e51b8152600401610c3b90616b54565b604080516020601f84018190048102820181019092528281526000916122fb9185858083850183828082843760009201919091525061474792505050565b600d819055600e5490915081101561231457600d54600e555b50612549565b61237e84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c6e756d4f66436162696e65747360981b602082015291506146ee9050565b1561242c57602081146123a35760405162461bcd60e51b8152600401610c3b906165f8565b604080516020601f84018190048102820181019092528281526000916123e19185858083850183828082843760009201919091525061474792505050565b9050600081116124035760405162461bcd60e51b8152600401610c3b9061669b565b60298111156124245760405162461bcd60e51b8152600401610c3b906166e3565b600c55612549565b61249684848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601381527266696e616c697479526577617264526174696f60681b602082015291506146ee9050565b1561253157602081146124bb5760405162461bcd60e51b8152600401610c3b90616c3d565b604080516020601f84018190048102820181019092528281526000916124f99185858083850183828082843760009201919091525061474792505050565b90506001811015801561250d575060648111155b6125295760405162461bcd60e51b8152600401610c3b906169cb565b600f55612549565b60405162461bcd60e51b8152600401610c3b90616e71565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a8484848460405161257e9493929190616481565b60405180910390a150505050565b60046020526000908152604090205481565b68056bc75e2d6310000081565b6001546060906000805b828110156125da576125c681611310565b156125d2578160010191505b6001016125b5565b50606081604051908082528060200260200182016040528015612607578160200160208202803683370190505b5090506000915060005b8381101561268e5761262281611310565b15612686576001818154811061263457fe5b600091825260209091206004909102015482516001600160a01b039091169083908590811061265f57fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508260010192505b600101612611565b50925050505b90565b601581565b61100281565b603281565b60006126b16125ab565b519050600080600c54116126c65760156126ca565b600c545b9050808211156126d8578091505b816126e257600191505b5090565b67016345785d8a000081565b60055481565b61100381565b602981565b60005460ff16156127265760405162461bcd60e51b8152600401610c3b90616c06565b61272e615e41565b6000612754604051806101e001604052806101ab8152602001616f836101ab9139612f13565b91509150806127755760405162461bcd60e51b8152600401610c3b90616d37565b60005b82602001515181101561289a5760018360200151828151811061279757fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a09093015160039093019290925591860151805191850193918590811061286d57fe5b602090810291909101810151516001600160a01b0316825281019190915260400160002055600101612778565b50506103e8600255506000805460ff19166001179055565b600d5481565b33611001146128d95760405162461bcd60e51b8152600401610c3b90616e98565b600b54612997576128e8615d6b565b60015460005b8181101561299357600b8054600181018255600091909152835160008051602061714e833981519152601690920291820190815560208086015160008051602061718e8339815191528401805460ff191691151591909117905560408601518051879461296f9360008051602061716e833981519152909101920190615d9a565b5060608201516129859060038301906013615e14565b5050508060010190506128ee565b5050505b60006129a28261474c565b90506129ad81611241565b156129bc576129bc8282614656565b5050565b606581565b3341146129e45760405162461bcd60e51b8152600401610c3b90616dc7565b60005460ff16612a065760405162461bcd60e51b8152600401610c3b9061662d565b60003411612a265760405162461bcd60e51b8152600401610c3b9061692d565b6001600160a01b0381166000908152600460205260409020546007543491906103e89060ff1615612a5657506006545b600083118015612a665750600081115b15612b07576000612a83612710610f9c868563ffffffff613f7f16565b90508015612b055760405161dead9082156108fc029083906000818181858888f19350505050158015612aba573d6000803e3d6000fd5b507f627059660ea01c4733a328effb2294d2f86905bf806da763a89cee254de8bee581604051612aea9190616ef0565b60405180910390a1612b02848263ffffffff613f3d16565b93505b505b8115612c05576000600180840381548110612b1e57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff1615612b8b57846001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b485604051612b7e9190616ef0565b60405180910390a2612bff565b600354612b9e908563ffffffff613fb916565b6003908155810154612bb6908563ffffffff613fb916565b60038201556040516001600160a01b038616907f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc05590612bf6908790616ef0565b60405180910390a25b50612c47565b836001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b484604051612c3e9190616ef0565b60405180910390a25b50505050565b600e5481565b61100081565b61dead81565b600b8181548110612c6c57fe5b6000918252602091829020601691909102018054600180830154600280850180546040805161010096831615969096026000190190911692909204601f810188900488028501880190925281845293965060ff90911694919291830182828015612d175780601f10612cec57610100808354040283529160200191612d17565b820191906000526020600020905b815481529060010190602001808311612cfa57829003601f168201915b5050505050905083565b61100481565b6000600a5460001480612d38575081155b80612d435750600954155b15612d5057506000610ea2565b60096000815460019003919050819055506000612d9b600a54610f9c85610f9c600b8981548110612d7d57fe5b6000918252602090912060169091020154439063ffffffff613f3d16565b90506000600b8581548110612dac57fe5b906000526020600020906016020160010160006101000a81548160ff0219169083151502179055506000806110016001600160a01b0316638256ace66040518163ffffffff1660e01b8152600401604080518083038186803b158015612e1157600080fd5b505afa158015612e25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e4991906161ba565b9150915060009350808310612ec357612e628787613fde565b506040516305bfb49960e41b815261100190635bfb499090612e88908a906004016162f7565b600060405180830381600087803b158015612ea257600080fd5b505af1158015612eb6573d6000803e3d6000fd5b5050505060019350612ed5565b818310612ed557612ed38761474c565b505b6040516001600160a01b038816907fb9d38178dc641ff1817967a63c9078cbcd955a9f1fcd75e0e3636de615d44d3b90600090a25050509392505050565b612f1b615e41565b6000612f25615e41565b612f2d615e65565b612f3e612f39866148ef565b614914565b90506000805b612f4d8361495e565b156130c15780612f7257612f68612f638461497f565b6149cd565b60ff1684526130b9565b80600114156130b4576060612f8e612f898561497f565b614a4d565b90508051604051908082528060200260200182016040528015612fcb57816020015b612fb8615e85565b815260200190600190039081612fb05790505b508560200181905250805160405190808252806020026020018201604052801561300957816020015b6060815260200190600190039081612ff45790505b50604086015260005b81518110156130a957613023615e85565b6060600061304385858151811061303657fe5b6020026020010151614b1e565b92509250925080613063578860009a509a505050505050505050506130ca565b828960200151858151811061307457fe5b6020026020010181905250818960400151858151811061309057fe5b6020026020010181905250505050806001019050613012565b5060019250506130b9565b6130c1565b600101612f44565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b60608152602001906001900390816130e957905050905061310f8363ffffffff16614c38565b8160008151811061311c57fe5b6020026020010181905250610ea281614c4b565b60006029835111156131675760008051602061712e83398151915260405161315790616740565b60405180910390a15060666113bb565b60005b83518110156132055760005b818110156131fc5784818151811061318a57fe5b6020026020010151600001516001600160a01b03168583815181106131ab57fe5b6020026020010151600001516001600160a01b031614156131f45760008051602061712e8339815191526040516131e19061689b565b60405180910390a16066925050506113bb565b600101613176565b5060010161316a565b506060806132138585614cd5565b60015491935091506000908190815b818110156132985767016345785d8a00006001828154811061324057fe5b9060005260206000209060040201600301541061326257836001019350613290565b60006001828154811061327157fe5b9060005260206000209060040201600301541115613290578260010192505b600101613222565b506060836040519080825280602002602001820160405280156132c5578160200160208202803683370190505b5090506060846040519080825280602002602001820160405280156132f4578160200160208202803683370190505b509050606085604051908082528060200260200182016040528015613323578160200160208202803683370190505b509050606086604051908082528060200260200182016040528015613352578160200160208202803683370190505b5090506000606087604051908082528060200260200182016040528015613383578160200160208202803683370190505b5090506060886040519080825280602002602001820160405280156133b2578160200160208202803683370190505b509050600099506000985060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b1580156133fa57600080fd5b505afa15801561340e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061343291906161a2565b905067016345785d8a000081111561347d5760008051602061712e83398151915260405161345f90616bc5565b60405180910390a160689d50505050505050505050505050506113bb565b60005b898110156136ee5767016345785d8a00006001828154811061349e57fe5b9060005260206000209060040201600301541061362357600181815481106134c257fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316898d815181106134f357fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be4006001838154811061352857fe5b9060005260206000209060040201600301548161354157fe5b066001838154811061354f57fe5b9060005260206000209060040201600301540390506135778382613f3d90919063ffffffff16565b898e8151811061358357fe5b6020026020010181815250506001828154811061359c57fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316878e815181106135cd57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081888e815181106135fa57fe5b6020908102919091010152613615868263ffffffff613fb916565b95508c6001019c50506136e6565b60006001828154811061363257fe5b90600052602060002090600402016003015411156136e6576001818154811061365757fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316848c8151811061368857fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600181815481106136b557fe5b906000526020600020906004020160030154838c815181106136d357fe5b6020026020010181815250508a6001019a505b600101613480565b5060008415613964576002546040516303702b2960e51b815261100491636e056520918891613728918e918e918d914201906004016163e9565b6020604051808303818588803b15801561374157600080fd5b505af193505050508015613772575060408051601f3d908101601f1916820190925261376f9181019061610e565b60015b6138e9576040516000815260443d101561378e57506000613829565b60046000803e60005160e01c6308c379a081146137af576000915050613829565b60043d036004833e81513d60248201116001600160401b03821117156137da57600092505050613829565b80830180516001600160401b038111156137fb576000945050505050613829565b8060208301013d860181111561381957600095505050505050613829565b601f01601f191660405250925050505b806138345750613876565b60019150857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf28082604051613868919061646e565b60405180910390a2506138e4565b3d8080156138a0576040519150601f19603f3d011682016040523d82523d6000602084013e6138a5565b606091505b5060019150857fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a45826040516138da919061646e565b60405180910390a2505b613964565b801561392b577fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b708660405161391e9190616ef0565b60405180910390a1613962565b857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf28060405161395990616530565b60405180910390a25b505b8015613b1a5760005b8751811015613b1857600088828151811061398457fe5b6020026020010151905060006001828154811061399d57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc91859081106139ce57fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f1935050505090508015613a8a5760018281548110613a0f57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d9185908110613a5e57fe5b906000526020600020906004020160030154604051613a7d9190616ef0565b60405180910390a2613b0e565b60018281548110613a9757fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d9185908110613ae657fe5b906000526020600020906004020160030154604051613b059190616ef0565b60405180910390a25b505060010161396d565b505b835115613c645760005b8451811015613c62576000858281518110613b3b57fe5b60200260200101516001600160a01b03166108fc868481518110613b5b57fe5b60200260200101519081150290604051600060405180830381858888f1935050505090508015613bf157858281518110613b9157fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d868481518110613bcf57fe5b6020026020010151604051613be49190616ef0565b60405180910390a2613c59565b858281518110613bfd57fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d868481518110613c3b57fe5b6020026020010151604051613c509190616ef0565b60405180910390a25b50600101613b24565b505b5050505050505050505050506000471115613ce0577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d47604051613ca89190616ef0565b60405180910390a1604051611002904780156108fc02916000818181858888f19350505050158015613cde573d6000803e3d6000fd5b505b60006003819055600555815115613cfb57613cfb8282614f0e565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015613d3857600080fd5b505af1158015613d4c573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a1506000949350505050565b80516001600160a01b0316600090815260046020526040812054801580613dd55750600180820381548110613db557fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b15613e1b5782516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a2600091505061130b565b600154600554600019820111801590613e715784516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a26000935050505061130b565b600580546001908101909155805481906000198601908110613e8f57fe5b6000918252602082206002600490920201018054921515600160e01b0260ff60e01b199093169290921790915585516040516001600160a01b03909116917ff226e7d8f547ff903d9d419cf5f54e0d7d07efa9584135a53a057c5f1f27f49a91a2506000949350505050565b6000610ea283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506156ed565b6000610ea283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250615724565b600082613f8e575060006113bb565b82820282848281613f9b57fe5b0414610ea25760405162461bcd60e51b8152600401610c3b90616ac5565b600082820183811015610ea25760405162461bcd60e51b8152600401610c3b90616664565b60008060018381548110613fee57fe5b906000526020600020906004020160030154905060006001808054905003905060016140186125ab565b511161404d5760006001858154811061402d57fe5b9060005260206000209060040201600301819055506000925050506113bb565b846001600160a01b03167f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a70836040516140869190616ef0565b60405180910390a26001600160a01b038516600090815260046020526040812055835b6001546000190181101561427357600181600101815481106140c757fe5b9060005260206000209060040201600182815481106140e257fe5b60009182526020909120825460049092020180546001600160a01b03199081166001600160a01b0393841617825560018085015481840180548416918616919091179055600280860180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b19909416939093179055600392830154920191909155600b8054909183019081106141a357fe5b9060005260206000209060160201600b82815481106141be57fe5b600091825260209091208254601690920201908155600180830154818301805460ff909216151560ff1990921691909117905560028084018054614215938386019390821615610100026000190190911604615eba565b5061422860038281019084016013615f2f565b5090505080600101600460006001848154811061424157fe5b600091825260208083206004909202909101546001600160a01b031683528201929092526040019020556001016140a9565b50600180548061427f57fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b8054806142d257fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906143046002830182615f59565b614312600383016000615f9d565b50509055600081838161432157fe5b04905080156143855760015460005b8181101561438257826001828154811061434657fe5b906000526020600020906004020160030154016001828154811061436657fe5b6000918252602090912060036004909202010155600101614330565b50505b50600195945050505050565b6001548151604080518281526020808402820101909152606092919083908280156143d057816020015b60608152602001906001900390816143bb5790505b50600b5490915083146143e757925061130b915050565b60005b828110156144f657600b60016004600089858151811061440657fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054038154811061443a57fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156144d25780601f106144a7576101008083540402835291602001916144d2565b820191906000526020600020905b8154815290600101906020018083116144b557829003601f168201915b50505050508282815181106144e357fe5b60209081029190910101526001016143ea565b50949350505050565b60005b8281101561464c57600082878388016040516020016145229291906162e9565b6040516020818303038152906040528051906020012060001c8161454257fe5b06905080850182870114614643576000898388018151811061456057fe5b602002602001015190506060898489018151811061457a57fe5b602002602001015190508a8388018151811061459257fe5b60200260200101518b858a01815181106145a857fe5b60200260200101906001600160a01b031690816001600160a01b031681525050818b848901815181106145d757fe5b60200260200101906001600160a01b031690816001600160a01b031681525050898388018151811061460557fe5b60200260200101518a858a018151811061461b57fe5b6020026020010181905250808a8489018151811061463557fe5b602002602001018190525050505b50600101614502565b5050505050505050565b600980546001908101909155600b80548390811061467057fe5b906000526020600020906016020160010160006101000a81548160ff02191690831515021790555043600b82815481106146a657fe5b600091825260208220601690910201919091556040516001600160a01b038416917ff62981a567ec3cec866c6fa93c55bcdf841d6292d18b8d522ececa769375d82d91a25050565b60008160405160200161470191906162cd565b604051602081830303815290604052805190602001208360405160200161472891906162cd565b6040516020818303038152906040528051906020012014905092915050565b015190565b6001600160a01b038116600090815260046020526040812054806147755750600019905061130b565b60018103905060006001828154811061478a57fe5b90600052602060002090600402016003015490506000600183815481106147ad57fe5b6000918252602090912060036004909202010155600154604051600019909101906001600160a01b038616907f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d90614806908590616ef0565b60405180910390a28061481e5782935050505061130b565b600081838161482957fe5b04905080156148e55760005b8481101561488757816001828154811061484b57fe5b906000526020600020906004020160030154016001828154811061486b57fe5b6000918252602090912060036004909202010155600101614835565b50600180549085015b818110156148e25782600182815481106148a657fe5b90600052602060002090600402016003015401600182815481106148c657fe5b6000918252602090912060036004909202010155600101614890565b50505b5091949350505050565b6148f7615fac565b506040805180820190915281518152602082810190820152919050565b61491c615e65565b61492582615750565b61492e57600080fd5b600061493d836020015161578a565b60208085015160408051808201909152868152920190820152915050919050565b6000614968615fac565b505080518051602091820151919092015191011190565b614987615fac565b6149908261495e565b61499957600080fd5b602082015160006149a9826157ed565b80830160209586015260408051808201909152908152938401919091525090919050565b8051600090158015906149e257508151602110155b6149eb57600080fd5b60006149fa836020015161578a565b90508083600001511015614a205760405162461bcd60e51b8152600401610c3b90616c83565b8251602080850151830180519284900392918310156144f657506020919091036101000a90049392505050565b6060614a5882615750565b614a6157600080fd5b6000614a6c836158ce565b9050606081604051908082528060200260200182016040528015614aaa57816020015b614a97615fac565b815260200190600190039081614a8f5790505b5090506000614abc856020015161578a565b60208601510190506000805b84811015614b1357614ad9836157ed565b9150604051806040016040528083815260200184815250848281518110614afc57fe5b602090810291909101015291810191600101614ac8565b509195945050505050565b614b26615e85565b60606000614b32615e85565b6060614b3c615e65565b614b4587614914565b90506000805b614b548361495e565b15614c295780614b7f57614b6f614b6a8461497f565b61592a565b6001600160a01b03168552614c21565b8060011415614ba757614b94614b6a8461497f565b6001600160a01b03166020860152614c21565b8060021415614bcf57614bbc614b6a8461497f565b6001600160a01b03166040860152614c21565b8060031415614bfb57614be4612f638461497f565b6001600160401b0316606086015260019150614c21565b8060041415614c1c57614c15614c108461497f565b615944565b9350614c21565b614c29565b600101614b4b565b50929791965091945092505050565b60606113bb614c46836159b4565b615a9a565b6060815160001415614c6c575060408051600081526020810190915261130b565b606082600081518110614c7b57fe5b602002602001015190506000600190505b8351811015614cbc57614cb282858381518110614ca557fe5b6020026020010151615aec565b9150600101614c8c565b50610ea2614ccf825160c060ff16615b69565b82615aec565b606080600080808080614ce66126a7565b6001549091505b8015614df457600181039250600b8381548110614d0657fe5b600091825260209091206001601690920201015460ff16614d2657614deb565b60018381548110614d3357fe5b60009182526020909120600490910201546001600160a01b03169450614d5a858484612d27565b9350831580614d6d575060018a51038610155b15614d7757614deb565b60005b8a51811015614de957856001600160a01b03168b8281518110614d9957fe5b6020026020010151600001516001600160a01b03161415614de15760018b8281518110614dc257fe5b6020908102919091010151901515608090910152600190960195614de9565b600101614d7a565b505b60001901614ced565b5084895103604051908082528060200260200182016040528015614e3257816020015b614e1f615e85565b815260200190600190039081614e175790505b50965084895103604051908082528060200260200182016040528015614e6c57816020015b6060815260200190600190039081614e575790505b5095506000915060005b8951811015614f0057898181518110614e8b57fe5b602002602001015160800151614ef857898181518110614ea757fe5b6020026020010151888481518110614ebb57fe5b6020026020010181905250888181518110614ed257fe5b6020026020010151878481518110614ee657fe5b60200260200101819052508260010192505b600101614e76565b5050505050505b9250929050565b600154825160005b8281101561502b576001614f28615e85565b60018381548110614f3557fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b84811015614fff57878181518110614fc557fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b03161415614ff75760009250614fff565b600101614fb1565b5081156150215780516001600160a01b03166000908152600460205260408120555b5050600101614f16565b50808211156150ea57805b828110156150e857600180548061504957fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b80548061509c57fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906150ce6002830182615f59565b6150dc600383016000615f9d565b50509055600101615036565b505b60008183106150f957816150fb565b825b905060005b8181101561549f576151ad86828151811061511757fe5b60200260200101516001838154811061512c57fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a0820152615c3b565b6153615780600101600460008884815181106151c557fe5b6020026020010151600001516001600160a01b03166001600160a01b031681526020019081526020016000208190555085818151811061520157fe5b60200260200101516001828154811061521657fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a09091015160039091015584518590829081106152d157fe5b6020026020010151600b82815481106152e657fe5b9060005260206000209060160201600201908051906020019061530a929190615d9a565b506000600b828154811061531a57fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b80548390811061534b57fe5b6000918252602090912060169091020155615497565b61542785828151811061537057fe5b6020026020010151600b838154811061538557fe5b600091825260209182902060026016909202018101805460408051601f60001961010060018616150201909316949094049182018590048502840185019052808352919290919083018282801561541d5780601f106153f25761010080835404028352916020019161541d565b820191906000526020600020905b81548152906001019060200180831161540057829003601f168201915b5050505050615cbc565b6154725784818151811061543757fe5b6020026020010151600b828154811061544c57fe5b90600052602060002090601602016002019080519060200190615470929190615d9a565b505b60006001828154811061548157fe5b9060005260206000209060040201600301819055505b600101615100565b5082821115615677576154b0615d6b565b835b83811015615674578581815181106154c657fe5b6020026020010151826040018190525060018782815181106154e457fe5b6020908102919091018101518254600181810185556000948552838520835160049093020180546001600160a01b039384166001600160a01b0319918216178255848601518284018054918616918316919091179055604080860151600284018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909a1692909616919091179290921696909617169190911790935560a090930151600390930192909255600b805492830181559093528451601690910260008051602061714e83398151915281019182558583015160008051602061718e8339815191528201805491151560ff199092169190911790559285015180518694929361561a9360008051602061716e83398151915201920190615d9a565b5060608201516156309060038301906013615e14565b505050806001016004600089848151811061564757fe5b602090810291909101810151516001600160a01b03168252810191909152604001600020556001016154b2565b50505b6000600981905560015493505b838110156156e5576000600b828154811061569b57fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b8054839081106156cc57fe5b6000918252602090912060169091020155600101615684565b505050505050565b6000818361570e5760405162461bcd60e51b8152600401610c3b919061646e565b50600083858161571a57fe5b0495945050505050565b600081848411156157485760405162461bcd60e51b8152600401610c3b919061646e565b505050900390565b80516000906157615750600061130b565b6020820151805160001a9060c08210156157805760009250505061130b565b5060019392505050565b8051600090811a60808110156157a457600091505061130b565b60b88110806157bf575060c081108015906157bf575060f881105b156157ce57600191505061130b565b60c08110156157e25760b51901905061130b565b60f51901905061130b565b80516000908190811a608081101561580857600191506158c7565b60b881101561581d57607e19810191506158c7565b60c081101561586e57600060b78203600186019550806020036101000a8651049150600181018201935050808310156158685760405162461bcd60e51b8152600401610c3b90616a12565b506158c7565b60f88110156158835760be19810191506158c7565b600060f78203600186019550806020036101000a8651049150600181018201935050808310156158c55760405162461bcd60e51b8152600401610c3b90616a12565b505b5092915050565b80516000906158df5750600061130b565b600080905060006158f3846020015161578a565b602085015185519181019250015b8082101561592157615912826157ed565b82019150826001019250615901565b50909392505050565b805160009060151461593b57600080fd5b6113bb826149cd565b805160609061595257600080fd5b6000615961836020015161578a565b83516040805191839003808352601f19601f8201168301602001909152919250606090828015615998576020820181803683370190505b50905060008160200190506144f6848760200151018285615d20565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166159f857506018615a1c565b6fffffffffffffffffffffffffffffffff198416615a1857506010615a1c565b5060005b6020811015615a5257818181518110615a3157fe5b01602001516001600160f81b03191615615a4a57615a52565b600101615a1c565b60008160200390506060816040519080825280601f01601f191660200182016040528015615a87576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015615acc5750607f60f81b82600081518110615aba57fe5b01602001516001600160f81b03191611155b15615ad857508061130b565b6113bb615aea8351608060ff16615b69565b835b6060806040519050835180825260208201818101602087015b81831015615b1d578051835260209283019201615b05565b50855184518101855292509050808201602086015b81831015615b4a578051835260209283019201615b32565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310615b935760405162461bcd60e51b8152600401610c3b90616816565b60408051600180825281830190925260609160208201818036833701905050905060378411615bed5782840160f81b81600081518110615bcf57fe5b60200101906001600160f81b031916908160001a90535090506113bb565b6060615bf8856159b4565b90508381510160370160f81b82600081518110615c1157fe5b60200101906001600160f81b031916908160001a905350615c328282615aec565b95945050505050565b805182516000916001600160a01b039182169116148015615c75575081602001516001600160a01b031683602001516001600160a01b0316145b8015615c9a575081604001516001600160a01b031683604001516001600160a01b0316145b8015610ea25750506060908101519101516001600160401b0390811691161490565b815181516000916001918114808314615cd85760009250615d16565b600160208701838101602088015b600284838510011415615d11578051835114615d055760009650600093505b60209283019201615ce6565b505050505b5090949350505050565b80615d2a57610c5b565b5b60208110615d4a578251825260209283019290910190601f1901615d2b565b915181516020939093036101000a6000190180199091169216919091179052565b60405180608001604052806000815260200160001515815260200160608152602001615d95615fc6565b905290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10615ddb57805160ff1916838001178555615e08565b82800160010185558215615e08579182015b82811115615e08578251825591602001919060010190615ded565b506126e2929150615fe5565b8260138101928215615e085791602002820182811115615e08578251825591602001919060010190615ded565b6040518060600160405280600060ff16815260200160608152602001606081525090565b6040518060400160405280615e78615fac565b8152602001600081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10615ef35780548555615e08565b82800160010185558215615e0857600052602060002091601f016020900482015b82811115615e08578254825591600101919060010190615f14565b8260138101928215615e085791820182811115615e08578254825591600101919060010190615f14565b50805460018160011615610100020316600290046000825580601f10615f7f5750611517565b601f0160209004906000526020600020908101906115179190615fe5565b50611517906013810190615fe5565b604051806040016040528060008152602001600081525090565b6040518061026001604052806013906020820280368337509192915050565b61269491905b808211156126e25760008155600101615feb565b60008083601f840112616010578182fd5b5081356001600160401b03811115616026578182fd5b6020830191508360208083028501011115614f0757600080fd5b60008083601f840112616051578182fd5b5081356001600160401b03811115616067578182fd5b602083019150836020828501011115614f0757600080fd5b600060208284031215616090578081fd5b81356001600160a01b0381168114610ea2578182fd5b600080600080604085870312156160bb578283fd5b84356001600160401b03808211156160d1578485fd5b6160dd88838901615fff565b909650945060208701359150808211156160f5578384fd5b5061610287828801615fff565b95989497509550505050565b60006020828403121561611f578081fd5b81518015158114610ea2578182fd5b60008060008060408587031215616143578384fd5b84356001600160401b0380821115616159578586fd5b61616588838901616040565b9096509450602087013591508082111561617d578384fd5b5061610287828801616040565b60006020828403121561619b578081fd5b5035919050565b6000602082840312156161b3578081fd5b5051919050565b600080604083850312156161cc578182fd5b505080516020909101519092909150565b6000806000604084860312156161f1578283fd5b833560ff81168114616201578384fd5b925060208401356001600160401b0381111561621b578283fd5b61622786828701616040565b9497909650939450505050565b6000815180845260208085019450808401835b8381101561626c5781516001600160a01b031687529582019590820190600101616247565b509495945050505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b600081518084526162b9816020860160208601616f56565b601f01601f19169290920160200192915050565b600082516162df818460208701616f56565b9190910192915050565b918252602082015260400190565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b03968716815294861660208601529290941660408401526001600160401b03166060830152911515608082015260a081019190915260c00190565b600060208252610ea26020830184616234565b60006040825261638c6040830185616234565b602083820381850152818551808452828401915082838202850101838801865b838110156163da57601f198784030185526163c88383516162a1565b948601949250908501906001016163ac565b50909998505050505050505050565b6000608082526163fc6080830187616234565b828103602084810191909152865180835287820192820190845b8181101561643257845183529383019391830191600101616416565b505084810360408601526164468188616234565b93505050506001600160401b038316606083015295945050505050565b901515815260200190565b600060208252610ea260208301846162a1565b600060408252616495604083018688616277565b82810360208401526164a8818587616277565b979650505050505050565b6020808252601c908201527f6c656e677468206f66206275726e526174696f206d69736d6174636800000000604082015260600190565b60208082526026908201527f6c656e677468206f66206d61784e756d4f664d61696e7461696e696e67206d696040820152650e6dac2e8c6d60d31b606082015260800190565b6020808252601b908201527f6261746368207472616e736665722072657475726e2066616c73650000000000604082015260600190565b6020808252602c908201527f6c656e677468206f66206d61784e756d4f66576f726b696e6743616e6469646160408201526b0e8cae640dad2e6dac2e8c6d60a31b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61696e7461696e536c6173685363616c65206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252818101527f6c656e677468206f66206e756d4f66436162696e657473206d69736d61746368604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526028908201527f746865206e756d4f66436162696e657473206d75737420626520677265617465604082015267072207468616e20360c41b606082015260800190565b60208082526039908201527f746865206e756d4f66436162696e657473206d757374206265206c657373207460408201527f68616e204d41585f4e554d5f4f465f56414c494441544f525300000000000000606082015260800190565b60208082526029908201527f746865206e756d626572206f662076616c696461746f727320657863656564206040820152681d1a19481b1a5b5a5d60ba1b606082015260800190565b60208082526022908201527f63616e206e6f7420646f207468697320747769636520696e206f6e6520626c6f604082015261636b60f01b606082015260800190565b6020808252602b908201527f746865206275726e526174696f206d757374206265206e6f206772656174657260408201526a0207468616e2031303030360ac1b606082015260800190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526037908201527f746865206d61784e756d4f664d61696e7461696e696e67206d7573742062652060408201527f6c657373207468616e206e756d4f66436162696e657473000000000000000000606082015260800190565b6020808252602b908201527f6475706c696361746520636f6e73656e7375732061646472657373206f66207660408201526a185b1a59185d1bdc94d95d60aa1b606082015260800190565b60208082526027908201527f7468652065787069726554696d655365636f6e64476170206973206f7574206f604082015266662072616e676560c81b606082015260800190565b6020808252601590820152746465706f7369742076616c7565206973207a65726f60581b604082015260600190565b60208082526049908201527f746865206d61784e756d4f66576f726b696e6743616e64696461746573206d7560408201527f7374206265206e6f742067726561746572207468616e206d61784e756d4f6643606082015268616e6469646174657360b81b608082015260a00190565b60208082526027908201527f7468652066696e616c697479526577617264526174696f206973206f7574206f604082015266662072616e676560c81b606082015260800190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b60208082526023908201527f63616e206e6f7420656e7465722054656d706f72617279204d61696e74656e616040820152626e636560e81b606082015260800190565b60208082526025908201527f6c656e677468206f66206a61696c2076616c696461746f7273206d757374206260408201526465206f6e6560d81b606082015260800190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61784e756d4f6643616e64696461746573206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252601290820152716e6f7420696e206d61696e74656e616e636560701b604082015260600190565b60208082526021908201527f666565206973206c6172676572207468616e2044555354595f494e434f4d494e6040820152604760f81b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b60208082526026908201527f6c656e677468206f662066696e616c697479526577617264526174696f206d696040820152650e6dac2e8c6d60d31b606082015260800190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526026908201527f6c656e677468206f662065787069726554696d655365636f6e64476170206d696040820152650e6dac2e8c6d60d31b606082015260800190565b60208082526017908201527f6f6e6c792063757272656e742076616c696461746f7273000000000000000000604082015260600190565b60208082526021908201527f6661696c656420746f20706172736520696e69742076616c696461746f7253656040820152601d60fa1b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b6020808252603e908201527f746865206d61696e7461696e536c6173685363616c65206d757374206265206760408201527f726561746572207468616e203020616e64206c657373207468616e2031300000606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b60208082526029908201527f746865206d6573736167652073656e646572206d75737420626520736c6173686040820152680818dbdb9d1c9858dd60ba1b606082015260800190565b61ffff91909116815260200190565b90815260200190565b6000848252831515602083015260606040830152615c3260608301846162a1565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff8516825260406020830152615c32604083018486616277565b60005b83811015616f71578181015183820152602001616f59565b83811115612c47575050600091015256fef901a880f901a4f844941284214b9b9c85549ab3d2b972df0deef66ac2c9946ddf42a51534fc98d0c0a3b42c963cace8441ddf946ddf42a51534fc98d0c0a3b42c963cace8441ddf8410000000f84494a2959d3f95eae5dc7d70144ce1b73b403b7eb6e0948081ef03f1d9e0bb4a5bf38f16285c879299f07f948081ef03f1d9e0bb4a5bf38f16285c879299f07f8410000000f8449435552c16704d214347f29fa77f77da6d75d7c75294dc4973e838e3949c77aced16ac2315dc2d7ab11194dc4973e838e3949c77aced16ac2315dc2d7ab1118410000000f84494980a75ecd1309ea12fa2ed87a8744fbfc9b863d594cc6ac05c95a99c1f7b5f88de0e3486c82293b27094cc6ac05c95a99c1f7b5f88de0e3486c82293b2708410000000f84494f474cf03cceff28abc65c9cbae594f725c80e12d94e61a183325a18a173319dd8e19c8d069459e217594e61a183325a18a173319dd8e19c8d069459e21758410000000f84494b71b214cb885500844365e95cd9942c7276e7fd894d22ca3ba2141d23adab65ce4940eb7665ea2b6a794d22ca3ba2141d23adab65ce4940eb7665ea2b6a7841000000070e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb20175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbb0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbaa2646970667358221220df3b2f2afc524f6a9eb81529e8bd736333e37b7197419580d4e42bd858b6b14264736f6c63430006040033" + }, + "0x0000000000000000000000000000000000001001": { + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b506004361061027f5760003560e01c80637942fd051161015c578063c80d4b8f116100ce578063dc927faf11610087578063dc927faf146104ad578063e1c7392a146104b5578063f9a2bbc7146104bd578063fc3e5908146104c5578063fc4333cd146104cd578063fd6a6879146104d55761027f565b8063c80d4b8f1461045c578063c81b166214610464578063c8509d811461046c578063c96be4cb1461047f578063cc844b7314610492578063d2a42e4b146104a55761027f565b80639dc09262116101205780639dc0926214610421578063a1a11bf514610429578063a78abc1614610431578063ab51bb9614610439578063ac0af62914610441578063ac431751146104495761027f565b80637942fd05146103ee5780638256ace6146103f6578063831d65d1146103fe57806396713da9146104115780639bc8e4f2146104195761027f565b8063493279b1116101f557806362b72cf5116101b957806362b72cf5146103be5780636e47b482146103c657806370fd5bad146103ce578063718a8aa8146103d657806375d47a0a146103de5780637912a65d146103e65761027f565b8063493279b11461037c5780634bf6c8821461039157806351e8067214610399578063567a372d146103a15780635bfb4990146103a95761027f565b806335aa2e441161024757806335aa2e441461030e57806337c8dab914610321578063389f4f71146103425780633a63f4b1146103575780633dffc3871461035f57806343756e5c146103745761027f565b80630bee7a67146102845780630e2374a5146102a25780631182b875146102b757806322d1e80b146102d757806323bac5a2146102ec575b600080fd5b61028c6104dd565b60405161029991906132a4565b60405180910390f35b6102aa6104e2565b6040516102999190612b82565b6102ca6102c5366004612ab8565b6104e8565b6040516102999190612bba565b6102df61054e565b6040516102999190612baf565b6102ff6102fa366004612866565b610557565b6040516102999392919061328c565b6102aa61031c366004612a88565b61057a565b61033461032f366004612866565b6105a1565b60405161029992919061327e565b61034a6105f8565b6040516102999190613254565b61034a6105fe565b610367610604565b60405161029991906132b5565b6102aa610609565b61038461060f565b6040516102999190613245565b610367610614565b6102aa610619565b61034a61061f565b6103bc6103b7366004612866565b610625565b005b61034a6106d0565b6102aa6106d6565b6103676106dc565b6103676106e1565b6102aa6106e6565b61034a6106ec565b6103676106f1565b6103346106f6565b6103bc61040c366004612ab8565b610700565b610367610812565b61034a610817565b6102aa610822565b6102aa610828565b6102df61082e565b61028c610837565b61034a61083c565b6103bc61045736600461296c565b610841565b61034a610ce0565b6102aa610ce5565b6103bc61047a366004612ab8565b610ceb565b6103bc61048d366004612866565b610d5c565b6103bc6104a03660046129d5565b61114d565b61034a61169a565b6102aa61169f565b6103bc6116a5565b6102aa6116e1565b6103676116e7565b6103bc6116ec565b6102aa611b35565b606481565b61200181565b606033612000146105145760405162461bcd60e51b815260040161050b906130cb565b60405180910390fd5b60005460ff166105365760405162461bcd60e51b815260040161050b90612c9b565b60405162461bcd60e51b815260040161050b9061318e565b60075460ff1681565b600260208190526000918252604090912080546001820154919092015460ff1683565b6001818154811061058757fe5b6000918252602090912001546001600160a01b0316905081565b6000806105ac61264d565b5050506001600160a01b0316600090815260026020818152604092839020835160608101855281548082526001830154938201849052919093015460ff16151592909301919091529091565b60055481565b60065481565b600181565b61100181565b606181565b600881565b61200081565b60045481565b33611000146106465760405162461bcd60e51b815260040161050b90612edf565b60005460ff166106685760405162461bcd60e51b815260040161050b90612c9b565b61200063f7a251d7600b61067b84611b3b565b60006040518463ffffffff1660e01b815260040161069b939291906132c3565b600060405180830381600087803b1580156106b557600080fd5b505af11580156106c9573d6000803e3d6000fd5b5050505050565b60035481565b61100581565b600281565b601081565b61100881565b603281565b600b81565b6004546005549091565b33612000146107215760405162461bcd60e51b815260040161050b906130cb565b60005460ff166107435760405162461bcd60e51b815260040161050b90612c9b565b61074b612670565b600061078c84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611c0d92505050565b9150915080156107d35781516040517f7f0956d47419b9525356e7111652b653b530ec6f5096dccc04589bc38e629967916107c6916132a4565b60405180910390a16106c9565b81516040517f7d45f62d17443dd4547bca8a8112c60e2385669318dc300ec61a5d2492f262e791610803916132a4565b60405180910390a15050505050565b600981565b662386f26fc1000081565b61100781565b61100681565b60005460ff1681565b600081565b600481565b60005460ff166108635760405162461bcd60e51b815260040161050b90612c9b565b33611007146108845760405162461bcd60e51b815260040161050b90612f88565b6108ef84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260148152731b5a5cd9195b59585b9bdc951a1c995cda1bdb1960621b60208201529150611c8d9050565b1561098a57602081146109145760405162461bcd60e51b815260040161050b90612e6b565b604080516020601f840181900481028201810190925282815260009161095291858580838501838280828437600092019190915250611ce792505050565b905060018110158015610966575060055481105b6109825760405162461bcd60e51b815260040161050b90613086565b600455610c9d565b6109f084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e19995b1bdb9e551a1c995cda1bdb19608a1b60208201529150611c8d9050565b15610a8c5760208114610a155760405162461bcd60e51b815260040161050b90612fd6565b604080516020601f8401819004810282018101909252828152600091610a5391858580838501838280828437600092019190915250611ce792505050565b90506103e88111158015610a68575060045481115b610a845760405162461bcd60e51b815260040161050b90612d09565b600555610c9d565b610b0084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f66696e616c697479536c617368526577617264526174696f000000000000000060208201529150611c8d9050565b15610b9a5760208114610b255760405162461bcd60e51b815260040161050b906131c5565b604080516020601f8401819004810282018101909252828152600091610b6391858580838501838280828437600092019190915250611ce792505050565b9050600a8110158015610b765750606481105b610b925760405162461bcd60e51b815260040161050b90612e1f565b600655610c9d565b610c0e84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f656e61626c654d616c6963696f7573566f7465536c617368000000000000000060208201529150611c8d9050565b15610c855760208114610c335760405162461bcd60e51b815260040161050b90612d3e565b604080516020601f8401819004810282018101909252828152610c6f9190848480838501838280828437600092019190915250611cec92505050565b6007805460ff1916911515919091179055610c9d565b60405162461bcd60e51b815260040161050b90613167565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a84848484604051610cd29493929190612bcd565b60405180910390a150505050565b609681565b61100281565b3361200014610d0c5760405162461bcd60e51b815260040161050b906130cb565b60005460ff16610d2e5760405162461bcd60e51b815260040161050b90612c9b565b6040517f07db600eebe2ac176be8dcebad61858c245a4961bb32ca2aa3d159b09aa0810e90600090a1505050565b334114610d7b5760405162461bcd60e51b815260040161050b9061311a565b60005460ff16610d9d5760405162461bcd60e51b815260040161050b90612c9b565b6003544311610dbe5760405162461bcd60e51b815260040161050b90613210565b3a15610ddc5760405162461bcd60e51b815260040161050b90612f5a565b60405163155853f360e21b8152611000906355614fcc90610e01908490600401612b82565b60206040518083038186803b158015610e1957600080fd5b505afa158015610e2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e51919061294c565b610e5a57611146565b610e6261264d565b506001600160a01b0381166000908152600260208181526040928390208351606081018552815481526001820154928101929092529091015460ff161580159282019290925290610ebd576020810180516001019052610f16565b60016040820181905260208201819052805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0384161790555b438152600554602082015181610f2857fe5b0661107457600060208201526040516335409f7f60e01b8152611000906335409f7f90610f59908590600401612b82565b600060405180830381600087803b158015610f7357600080fd5b505af1158015610f87573d6000803e3d6000fd5b505050506120006001600160a01b031663f7a251d7600b610fa785611b3b565b60006040518463ffffffff1660e01b8152600401610fc7939291906132c3565b600060405180830381600087803b158015610fe157600080fd5b505af1925050508015610ff2575060015b61106f573d808015611020576040519150601f19603f3d011682016040523d82523d6000602084013e611025565b606091505b50826001600160a01b03167fd7bc86ff5d08c8ab043edec743302aba2520e6635172a428bc956721db9e2d1c83602001518360405161106592919061325d565b60405180910390a2505b6110e0565b60045481602001518161108357fe5b066110e0576040516375abf10160e11b81526110009063eb57e202906110ad908590600401612b82565b600060405180830381600087803b1580156110c757600080fd5b505af11580156110db573d6000803e3d6000fd5b505050505b6001600160a01b0382166000818152600260208181526040808420865181559186015160018301558581015191909201805460ff1916911515919091179055517fddb6012116e51abf5436d956a4f0ebd927e92c576ff96d7918290c8782291e3e9190a2505b5043600355565b60005460ff1661116f5760405162461bcd60e51b815260040161050b90612c9b565b604051630a83aaa960e31b81526110069063541d554890611194903390600401612b82565b60206040518083038186803b1580156111ac57600080fd5b505afa1580156111c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111e4919061294c565b6112005760405162461bcd60e51b815260040161050b90612bff565b60075460ff166112225760405162461bcd60e51b815260040161050b90612c66565b60065461122f5760146006555b8051514361010090910111801561125157504381602001516000015161010001115b61126d5760405162461bcd60e51b815260040161050b90612c36565b80602001516020015181600001516020015114801561129b5750806020015160600151816000015160600151145b156112b85760405162461bcd60e51b815260040161050b90612eb2565b8051604081015190511080156112d75750602081015160408101519051105b6112f35760405162461bcd60e51b815260040161050b90612de8565b6020810151518151511080156113185750806000015160400151816020015160400151105b8061134357508051516020820151511080156113435750806020015160400151816000015160400151105b8061135d5750806020015160400151816000015160400151145b6113795760405162461bcd60e51b815260040161050b90612cd2565b61138b81600001518260400151611d14565b80156113a457506113a481602001518260400151611d14565b6113c05760405162461bcd60e51b815260040161050b90612d89565b6060806110006001600160a01b0316633b071dcc6040518163ffffffff1660e01b815260040160006040518083038186803b1580156113fe57600080fd5b505afa158015611412573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261143a9190810190612889565b9150915060005b81518110156115775761146b82828151811061145957fe5b60200260200101518560400151611eec565b1561156f576006546040516309a99b4f60e41b815260646110028031909302049190639a99b4f0906114a39033908590600401612b96565b602060405180830381600087803b1580156114bd57600080fd5b505af11580156114d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f59190612aa0565b506110006001600160a01b03166335409f7f85848151811061151357fe5b60200260200101516040518263ffffffff1660e01b81526004016115379190612b82565b600060405180830381600087803b15801561155157600080fd5b505af1158015611565573d6000803e3d6000fd5b5050505050611577565b600101611441565b50600061158984604001516000611f50565b90506120006001600160a01b031663f7a251d7600b6115ab8760400151611f6c565b60006040518463ffffffff1660e01b81526004016115cb939291906132c3565b600060405180830381600087803b1580156115e557600080fd5b505af19250505080156115f6575060015b611668573d808015611624576040519150601f19603f3d011682016040523d82523d6000602084013e611629565b606091505b50817fd58d1183100bd0932c0588f31c4205d6bc6168909765a96c41adbed3115f36288260405161165a9190612bba565b60405180910390a250611694565b60405181907f7b78aadacff901d8b63d0dba4f86283d4db8aef27f9ed70413dd860f1c9532b690600090a25b50505050565b601481565b61100381565b60005460ff16156116c85760405162461bcd60e51b815260040161050b90613018565b603260045560966005556000805460ff19166001179055565b61100081565b600381565b336110001461170d5760405162461bcd60e51b815260040161050b90612edf565b60005460ff1661172f5760405162461bcd60e51b815260040161050b90612c9b565b60015461173b57611b33565b600154600090600019015b808211611b07576000805b8284101561186a5761176161264d565b600260006001878154811061177257fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff161515908201526005549091506004900481602001511115611854576004600554816117df57fe5b0481602001510381602001818152505080600260006001888154811061180157fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208351815591830151600183015591909101516002909101805460ff191691151591909117905561185e565b600192505061186a565b50836001019350611751565b828411611a015761187961264d565b600260006001868154811061188a57fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff161515908201526005549091506004900481602001511115611972576004600554816118f757fe5b0481602001510381602001818152505080600260006001878154811061191957fe5b6000918252602080832091909101546001600160a01b03168352828101939093526040918201902083518155918301516001808401919091559201516002909101805460ff19169115159190911790559150611a019050565b600260006001868154811061198357fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff191690558054806119c757fe5b600082815260209020810160001990810180546001600160a01b0319169055019055836119f45750611a01565b506000199092019161186a565b818015611a0b5750805b15611aea576002600060018681548110611a2157fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff19169055805484908110611a6857fe5b600091825260209091200154600180546001600160a01b039092169186908110611a8e57fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506001805480611ac757fe5b600082815260209020810160001990810180546001600160a01b03191690550190555b82611af6575050611b07565b505060019091019060001901611746565b6040517fcfdb3b6ccaeccbdc68be3c59c840e3b3c90f0a7c491f5fff1cf56cfda200dd9c90600090a150505b565b61100481565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081611b56579050509050611b7f836001600160a01b0316611fa7565b81600081518110611b8c57fe5b6020026020010181905250611ba043611fca565b81600181518110611bad57fe5b6020908102919091010152611bc26061611fca565b81600281518110611bcf57fe5b6020026020010181905250611be342611fca565b81600381518110611bf057fe5b6020026020010181905250611c0481611fdd565b9150505b919050565b611c15612670565b6000611c1f612670565b611c27612682565b611c38611c3386612067565b61208c565b90506000805b611c47836120d6565b15611c805780611c7357611c62611c5d846120f7565b612145565b63ffffffff16845260019150611c78565b611c80565b600101611c3e565b5091935090915050915091565b600081604051602001611ca09190612b66565b6040516020818303038152906040528051906020012083604051602001611cc79190612b66565b604051602081830303815290604052805190602001201490505b92915050565b015190565b8082015160009060ff811615611d06576001915081611d0c565b60009150815b505092915050565b60408051600480825260a0820190925260009160609190816020015b6060815260200190600190039081611d30575050604080516020808252818301909252919250606091908082018180368337019050509050611d758560000151611fca565b82600081518110611d8257fe5b6020026020010181905250611d9d60208660200151836121c7565b611da6816121d7565b82600181518110611db357fe5b6020026020010181905250611dcb8560400151611fca565b82600281518110611dd857fe5b6020026020010181905250611df360208660600151836121c7565b611dfc816121d7565b82600381518110611e0957fe5b6020026020010181905250611e2f6020611e2284611fdd565b80519060200120836121c7565b6040805160b080825260e08201909252606091602082018180368337019050509050611e5f81836000602061222d565b611e718187608001516020606061222d565b611e7f81866080603061222d565b604080516001808252818301909252606091602082018180368337019050509050815160016020830182602086016066600019fa611ebc57600080fd5b506001611eca826000612280565b60ff1614611edf576000945050505050611ce1565b5060019695505050505050565b815181516000916001918114808314611f085760009250611f46565b600160208701838101602088015b600284838510011415611f41578051835114611f355760009650600093505b60209283019201611f16565b505050505b5090949350505050565b60008160200183511015611f6357600080fd5b50016020015190565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081611f87579050509050611b7f836121d7565b60408051600560a21b8318601482015260348101909152606090611c04816121d7565b6060611ce1611fd88361229c565b6121d7565b6060815160001415611ffe5750604080516000815260208101909152611c08565b60608260008151811061200d57fe5b602002602001015190506000600190505b835181101561204e576120448285838151811061203757fe5b6020026020010151612382565b915060010161201e565b50611c04612061825160c060ff166123ff565b82612382565b61206f6126a2565b506040805180820190915281518152602082810190820152919050565b612094612682565b61209d826124d1565b6120a657600080fd5b60006120b5836020015161250b565b60208085015160408051808201909152868152920190820152915050919050565b60006120e06126a2565b505080518051602091820151919092015191011190565b6120ff6126a2565b612108826120d6565b61211157600080fd5b602082015160006121218261256e565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061215a57508151602110155b61216357600080fd5b6000612172836020015161250b565b905080836000015110156121985760405162461bcd60e51b815260040161050b9061304f565b8251602080850151830180519284900392918310156121be57826020036101000a820491505b50949350505050565b9091018181526020918201910152565b6060815160011480156122095750607f60f81b826000815181106121f757fe5b01602001516001600160f81b03191611155b15612215575080611c08565b611ce16122278351608060ff166123ff565b83612382565b60005b818110156106c95783818151811061224457fe5b602001015160f81c60f81b85848060010195508151811061226157fe5b60200101906001600160f81b031916908160001a905350600101612230565b6000816001018351101561229357600080fd5b50016001015190565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166122e057506018612304565b6fffffffffffffffffffffffffffffffff19841661230057506010612304565b5060005b602081101561233a5781818151811061231957fe5b01602001516001600160f81b031916156123325761233a565b600101612304565b60008160200390506060816040519080825280601f01601f19166020018201604052801561236f576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b818310156123b357805183526020928301920161239b565b50855184518101855292509050808201602086015b818310156123e05780518352602092830192016123c8565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106124295760405162461bcd60e51b815260040161050b90612dc0565b604080516001808252818301909252606091602082018180368337019050509050603784116124835782840160f81b8160008151811061246557fe5b60200101906001600160f81b031916908160001a9053509050611ce1565b606061248e8561229c565b90508381510160370160f81b826000815181106124a757fe5b60200101906001600160f81b031916908160001a9053506124c88282612382565b95945050505050565b80516000906124e257506000611c08565b6020820151805160001a9060c082101561250157600092505050611c08565b5060019392505050565b8051600090811a6080811015612525576000915050611c08565b60b8811080612540575060c08110801590612540575060f881105b1561254f576001915050611c08565b60c08110156125635760b519019050611c08565b60f519019050611c08565b80516000908190811a60808110156125895760019150612646565b60b881101561259e57607e1981019150612646565b60c08110156125ef57600060b78203600186019550806020036101000a8651049150600181018201935050808310156125e95760405162461bcd60e51b815260040161050b90612f2f565b50612646565b60f88110156126045760be1981019150612646565b600060f78203600186019550806020036101000a865104915060018101820193505080831015611d0c5760405162461bcd60e51b815260040161050b90612f2f565b5092915050565b604051806060016040528060008152602001600081526020016000151581525090565b60408051602081019091526000815290565b60405180604001604052806126956126a2565b8152602001600081525090565b604051806040016040528060008152602001600081525090565b600082601f8301126126cc578081fd5b81516126df6126da82613316565b6132ef565b818152915060208083019084810160005b84811015612755578151870188603f82011261270b57600080fd5b8381015161271b6126da82613336565b81815260408b8184860101111561273157600080fd5b6127408388840183870161335a565b508652505092820192908201906001016126f0565b505050505092915050565b60008083601f840112612771578182fd5b50813567ffffffffffffffff811115612788578182fd5b6020830191508360208285010111156127a057600080fd5b9250929050565b600082601f8301126127b7578081fd5b81356127c56126da82613336565b91508082528360208285010111156127dc57600080fd5b8060208401602084013760009082016020015292915050565b600060a08284031215612806578081fd5b61281060a06132ef565b905081358152602082013560208201526040820135604082015260608201356060820152608082013567ffffffffffffffff81111561284e57600080fd5b61285a848285016127a7565b60808301525092915050565b600060208284031215612877578081fd5b813561288281613386565b9392505050565b6000806040838503121561289b578081fd5b825167ffffffffffffffff808211156128b2578283fd5b81850186601f8201126128c3578384fd5b805192506128d36126da84613316565b80848252602080830192508084018a8283890287010111156128f3578788fd5b8794505b8685101561291e57805161290a81613386565b8452600194909401939281019281016128f7565b508801519096509350505080821115612935578283fd5b50612942858286016126bc565b9150509250929050565b60006020828403121561295d578081fd5b81518015158114612882578182fd5b60008060008060408587031215612981578182fd5b843567ffffffffffffffff80821115612998578384fd5b6129a488838901612760565b909650945060208701359150808211156129bc578384fd5b506129c987828801612760565b95989497509550505050565b6000602082840312156129e6578081fd5b813567ffffffffffffffff808211156129fd578283fd5b81840160608187031215612a0f578384fd5b612a1960606132ef565b9250803582811115612a29578485fd5b612a35878284016127f5565b845250602081013582811115612a49578485fd5b612a55878284016127f5565b602085015250604081013582811115612a6c578485fd5b612a78878284016127a7565b6040850152509195945050505050565b600060208284031215612a99578081fd5b5035919050565b600060208284031215612ab1578081fd5b5051919050565b600080600060408486031215612acc578283fd5b833560ff81168114612adc578384fd5b9250602084013567ffffffffffffffff811115612af7578283fd5b612b0386828701612760565b9497909650939450505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008151808452612b5281602086016020860161335a565b601f01601f19169290920160200192915050565b60008251612b7881846020870161335a565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b6000602082526128826020830184612b3a565b600060408252612be1604083018688612b10565b8281036020840152612bf4818587612b10565b979650505050505050565b6020808252601f908201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604082015260600190565b6020808252601690820152751d1bdbc81bdb1908189b1bd8dac81a5b9d9bdb1d995960521b604082015260600190565b6020808252818101527f6d616c6963696f757320766f746520736c617368206e6f7420656e61626c6564604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252601a908201527f6e6f2076696f6c6174696f6e206f6620766f74652072756c6573000000000000604082015260600190565b6020808252818101527f7468652066656c6f6e795468726573686f6c64206f7574206f662072616e6765604082015260600190565b6020808252602b908201527f6c656e677468206f6620656e61626c654d616c6963696f7573566f7465536c6160408201526a0e6d040dad2e6dac2e8c6d60ab1b606082015260800190565b60208082526017908201527f766572696679207369676e6174757265206661696c6564000000000000000000604082015260600190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526019908201527f7372634e756d20626967676572207468616e207461724e756d00000000000000604082015260600190565b6020808252602c908201527f7468652066696e616c69747920736c6173682072657761726420726174696f2060408201526b6f7574206f662072616e676560a01b606082015260800190565b60208082526027908201527f6c656e677468206f66206d697364656d65616e6f725468726573686f6c64206d6040820152660d2e6dac2e8c6d60cb1b606082015260800190565b60208082526013908201527274776f206964656e746963616c20766f74657360681b604082015260600190565b60208082526030908201527f746865206d6573736167652073656e646572206d7573742062652076616c696460408201526f185d1bdc94d95d0818dbdb9d1c9858dd60821b606082015260800190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526022908201527f6c656e677468206f662066656c6f6e795468726573686f6c64206d69736d61746040820152610c6d60f31b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526025908201527f746865206d697364656d65616e6f725468726573686f6c64206f7574206f662060408201526472616e676560d81b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b6020808252601e908201527f7265636569766520756e65787065637465642073796e207061636b6167650000604082015260600190565b6020808252602b908201527f6c656e677468206f662066696e616c697479536c61736852657761726452617460408201526a0d2de40dad2e6dac2e8c6d60ab1b606082015260800190565b6020808252818101527f63616e206e6f7420736c61736820747769636520696e206f6e6520626c6f636b604082015260600190565b61ffff91909116815260200190565b90815260200190565b6000838252604060208301526132766040830184612b3a565b949350505050565b918252602082015260400190565b92835260208301919091521515604082015260600190565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff85168252606060208301526132df6060830185612b3a565b9050826040830152949350505050565b60405181810167ffffffffffffffff8111828210171561330e57600080fd5b604052919050565b600067ffffffffffffffff82111561332c578081fd5b5060209081020190565b600067ffffffffffffffff82111561334c578081fd5b50601f01601f191660200190565b60005b8381101561337557818101518382015260200161335d565b838111156116945750506000910152565b6001600160a01b038116811461339b57600080fd5b5056fea2646970667358221220f826c2f80c6807c5df53c6cfe5be2e59ad7e87dad138f63f83dd1caf79118d6064736f6c63430006040033" + }, + "0x0000000000000000000000000000000000001002": { + "balance": "0x0", + "code": "0x6080604052600436106101a05760003560e01c80637942fd05116100ec578063ac4317511161008a578063f9a2bbc711610064578063f9a2bbc714610550578063fb5478b314610565578063fc3e59081461057a578063fd6a68791461058f576101e4565b8063ac43175114610457578063c81b166214610526578063dc927faf1461053b576101e4565b80639dc09262116100c65780639dc0926214610403578063a1a11bf514610418578063a78abc161461042d578063ab51bb9614610442576101e4565b80637942fd05146103a057806396713da9146103b55780639a99b4f0146103ca576101e4565b80634bf6c882116101595780636e47b482116101335780636e47b4821461034c57806370fd5bad14610361578063718a8aa81461037657806375d47a0a1461038b576101e4565b80634bf6c882146102db57806351e80672146102f05780636d70f7ae14610305576101e4565b80630bee7a67146101e95780630e2374a5146102175780633a0b0eff146102485780633dffc3871461026f57806343756e5c1461029a578063493279b1146102af576101e4565b366101e45734156101e25760408051348152905133917f6c98249d85d88c3753a04a22230f595e4dc8d3dc86c34af35deeeedc861b89db919081900360200190a25b005b600080fd5b3480156101f557600080fd5b506101fe6105a4565b6040805163ffffffff9092168252519081900360200190f35b34801561022357600080fd5b5061022c6105a9565b604080516001600160a01b039092168252519081900360200190f35b34801561025457600080fd5b5061025d6105af565b60408051918252519081900360200190f35b34801561027b57600080fd5b506102846105b5565b6040805160ff9092168252519081900360200190f35b3480156102a657600080fd5b5061022c6105ba565b3480156102bb57600080fd5b506102c46105c0565b6040805161ffff9092168252519081900360200190f35b3480156102e757600080fd5b506102846105c5565b3480156102fc57600080fd5b5061022c6105ca565b34801561031157600080fd5b506103386004803603602081101561032857600080fd5b50356001600160a01b03166105d0565b604080519115158252519081900360200190f35b34801561035857600080fd5b5061022c6105ee565b34801561036d57600080fd5b506102846105f4565b34801561038257600080fd5b506102846105f9565b34801561039757600080fd5b5061022c6105fe565b3480156103ac57600080fd5b50610284610604565b3480156103c157600080fd5b50610284610609565b3480156103d657600080fd5b5061025d600480360360408110156103ed57600080fd5b506001600160a01b03813516906020013561060e565b34801561040f57600080fd5b5061022c6107b9565b34801561042457600080fd5b5061022c6107bf565b34801561043957600080fd5b506103386107c5565b34801561044e57600080fd5b506101fe6107ce565b34801561046357600080fd5b506101e26004803603604081101561047a57600080fd5b81019060208101813564010000000081111561049557600080fd5b8201836020820111156104a757600080fd5b803590602001918460018302840111640100000000831117156104c957600080fd5b9193909290916020810190356401000000008111156104e757600080fd5b8201836020820111156104f957600080fd5b8035906020019184600183028401116401000000008311171561051b57600080fd5b5090925090506107d3565b34801561053257600080fd5b5061022c610b56565b34801561054757600080fd5b5061022c610b5c565b34801561055c57600080fd5b5061022c610b62565b34801561057157600080fd5b5061025d610b68565b34801561058657600080fd5b50610284610b74565b34801561059b57600080fd5b5061022c610b79565b606481565b61200181565b60015481565b600181565b61100181565b606181565b600881565b61200081565b6001600160a01b031660009081526002602052604090205460ff1690565b61100581565b600281565b601081565b61100881565b600b81565b600981565b6000805460ff1661068b57600260208190527fe57bda0a954a7c7381b17b2c763e646ba2c60f67292d287ba583603e2c1c41668054600160ff19918216811790925561100560009081527fe25235fc0de9d7165652bef0846fefda506174abb9a190f03d0f7bcc6146dbce80548316841790559282558254161790555b3360009081526002602052604090205460ff166106d95760405162461bcd60e51b815260040180806020018281038252602b815260200180610c67602b913960400191505060405180910390fd5b60004783106106e857476106ea565b825b9050670de0b6b3a76400008111156107075750670de0b6b3a76400005b8015610788576040516001600160a01b0385169082156108fc029083906000818181858888f19350505050158015610743573d6000803e3d6000fd5b506040805182815290516001600160a01b038616917ff8b71c64315fc33b2ead2adfa487955065152a8ac33d9d5193aafd7f45dc15a0919081900360200190a26107b2565b6040517fe589651933c2457488cc0d8e0941518abf748e799435e4e396d9c4d0b2db2d4d90600090a15b9392505050565b61100781565b61100681565b60005460ff1681565b600081565b33611007146108135760405162461bcd60e51b815260040180806020018281038252602e815260200180610cc1602e913960400191505060405180910390fd5b61087584848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600b81526a30b23227b832b930ba37b960a91b60208201529150610b7f9050565b1561094d57606082828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050825192935050601490911490506108f85760405162461bcd60e51b815260040180806020018281038252602c815260200180610cef602c913960400191505060405180910390fd5b60148101516001600160a01b038116600081815260026020526040808220805460ff19166001179055517f9870d7fe5d112134c55844951dedf365363006d9c588db07c4c85af6322a06199190a25050610ac4565b6109b284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600e81526d3232b632ba32a7b832b930ba37b960911b60208201529150610b7f9050565b15610a8757606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060149091149050610a355760405162461bcd60e51b815260040180806020018281038252602f815260200180610c92602f913960400191505060405180910390fd5b60148101516001600160a01b038116600081815260026020526040808220805460ff19169055517fb40992a19dba61ea600e87fce607102bf5908dc89076217b6ca6ae195224f7029190a25050610ac4565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b61100281565b61100381565b61100081565b670de0b6b3a764000081565b600381565b61100481565b6000816040516020018082805190602001908083835b60208310610bb45780518252601f199092019160209182019101610b95565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310610c225780518252601f199092019160209182019101610c03565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052805190602001201490509291505056fe6f6e6c79206f70657261746f7220697320616c6c6f77656420746f2063616c6c20746865206d6574686f646c656e677468206f662076616c756520666f722064656c6574654f70657261746f722073686f756c64206265203230746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662076616c756520666f72206164644f70657261746f722073686f756c64206265203230a26469706673582212205c998ac20925f17d8af20803f32be2cf1698c9a844de45001ca5ed8c879cc93f64736f6c63430006040033" + }, + "0x0000000000000000000000000000000000001006": { + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b50600436106102275760003560e01c80638f83ab1311610130578063c81b1662116100b8578063f3ae24151161007c578063f3ae2415146104e8578063f9a2bbc71461050e578063fc3e590814610516578063fd30d9b81461051e578063fd6a68791461052657610227565b8063c81b1662146104c0578063dc927faf146104c8578063dd91d1c5146104d0578063e1c7392a146104d8578063e79a198f146104e057610227565b8063a1a11bf5116100ff578063a1a11bf5146103de578063a74b83ca146103e6578063a78abc16146103ee578063ab51bb96146103f6578063ac431751146103fe57610227565b80638f83ab13146103a057806395468d26146103c657806396713da9146103ce5780639dc09262146103d657610227565b8063541d5548116101b3578063718a8aa811610182578063718a8aa81461034857806375d47a0a1461035057806378beee67146103585780637942fd051461037e5780637ae230881461038657610227565b8063541d5548146102d85780636a6a419e146103125780636e47b4821461033857806370fd5bad1461034057610227565b80633dffc387116101fa5780633dffc3871461028357806343756e5c146102a1578063493279b1146102a95780634bf6c882146102c857806351e80672146102d057610227565b806303aff02b1461022c578063049a5716146102365780630bee7a671461025a5780630e2374a51461027b575b600080fd5b61023461052e565b005b61023e610539565b604080516001600160a01b039092168252519081900360200190f35b610262610551565b6040805163ffffffff9092168252519081900360200190f35b61023e610556565b61028b61055c565b6040805160ff9092168252519081900360200190f35b61023e610561565b6102b1610567565b6040805161ffff9092168252519081900360200190f35b61028b61056c565b61023e610571565b6102fe600480360360208110156102ee57600080fd5b50356001600160a01b0316610577565b604080519115158252519081900360200190f35b6102fe6004803603602081101561032857600080fd5b50356001600160a01b0316610595565b61023e6105b3565b61028b6105b9565b61028b6105be565b61023e6105c3565b6102346004803603602081101561036e57600080fd5b50356001600160a01b03166105c9565b61028b6107b1565b61038e6107b6565b60408051918252519081900360200190f35b610234600480360360208110156103b657600080fd5b50356001600160a01b03166107c3565b61038e610a02565b61028b610a0e565b61023e610a13565b61023e610a19565b61023e610a1f565b6102fe610a37565b610262610a40565b6102346004803603604081101561041457600080fd5b81019060208101813564010000000081111561042f57600080fd5b82018360208201111561044157600080fd5b8035906020019184600183028401116401000000008311171561046357600080fd5b91939092909160208101903564010000000081111561048157600080fd5b82018360208201111561049357600080fd5b803590602001918460018302840111640100000000831117156104b557600080fd5b509092509050610a45565b61023e610d96565b61023e610d9c565b610234610da2565b610234610e43565b610234610ec5565b6102fe600480360360208110156104fe57600080fd5b50356001600160a01b031661107e565b61023e61109c565b61028b6110a2565b6102fe6110a7565b61023e6110b0565b610537336110b6565b565b739fb29aac15b9a4b7f17c3385939b007540f4d79181565b606481565b61200181565b600181565b61100181565b606181565b600881565b61200081565b6001600160a01b031660009081526007602052604090205460ff1690565b6001600160a01b031660009081526008602052604090205460ff1690565b61100581565b600281565b601081565b61100881565b3360009081526008602052604090205460ff166106175760405162461bcd60e51b81526004018080602001828103825260248152602001806115c26024913960400191505060405180910390fd5b61062033611218565b1561065c5760405162461bcd60e51b815260040180806020018281038252602181526020018061157f6021913960400191505060405180910390fd5b3233146106b0576040805162461bcd60e51b815260206004820152601e60248201527f70726f766973696f6e616c2072656c6179657220697320612070726f78790000604482015290519081900360640190fd5b6001600160a01b038181166000908152600960205260409020541633146107085760405162461bcd60e51b815260040180806020018281038252602781526020018061163b6027913960400191505060405180910390fd5b6001600160a01b03818116600081815260066020908152604080832080543380865260078086528487208054600160ff199182161790915584546001600160a01b031990811684179095556008875285882080548216905597875260098652848720805490941690935596168085529083529281902080549094169093558251828152908101939093528151909260008051602061166283398151915292908290030190a15050565b600b81565b68056bc75e2d6310000081565b3360009081526005602052604090205460ff16610820576040805162461bcd60e51b81526020600482015260166024820152751b585b9859d95c88191bd95cc81b9bdd08195e1a5cdd60521b604482015290519081900360640190fd5b61082981611218565b156108655760405162461bcd60e51b81526004018080602001828103825260278152602001806115e66027913960400191505060405180910390fd5b6001600160a01b03811615610921576001600160a01b03811660009081526007602052604090205460ff16156108db576040805162461bcd60e51b815260206004820152601660248201527572656c6179657220616c72656164792065786973747360501b604482015290519081900360640190fd5b6001600160a01b0381166000818152600860209081526040808320805460ff191660011790553383526009909152902080546001600160a01b03191690911790556109c2565b3360008181526006602090815260408083208054600980855283862080546001600160a01b03198085169095556001600160a01b0393841680895260078852868920805460ff19908116909155918516808a5260088952878a20805490931690925598909752908552805490921690915581518581529086169281019290925280516000805160206116628339815191529281900390910190a150506109ff565b604080516001600160a01b038316815290517ffba56633276570c7d3120d4535bf3bce26523da53958e40734210b9fd99b36939181900360200190a15b50565b67016345785d8a000081565b600981565b61100781565b61100681565b7337b8516a0f88e65d677229b402ec6c1e0e33300481565b60005460ff1681565b600081565b60005460ff16610a98576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b3361100714610ad85760405162461bcd60e51b815260040180806020018281038252602e81526020018061160d602e913960400191505060405180910390fd5b610b3984848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600a81526930b23226b0b730b3b2b960b11b6020820152915061121e9050565b15610bd15760148114610b7d5760405162461bcd60e51b81526004018080602001828103825260228152602001806115a06022913960400191505060405180910390fd5b6000610bc0601484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061130592505050565b9050610bcb8161130a565b50610d04565b610c3584848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c3932b6b7bb32a6b0b730b3b2b960991b6020820152915061121e9050565b15610cc75760148114610c795760405162461bcd60e51b81526004018080602001828103825260228152602001806115a06022913960400191505060405180910390fd5b6000610cbc601484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061130592505050565b9050610bcb816110b6565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b61100281565b61100381565b600a5460ff1615610dfa576040805162461bcd60e51b815260206004820152601e60248201527f7468652077686974656c6973747320616c726561647920757064617465640000604482015290519081900360640190fd5b610e17739fb29aac15b9a4b7f17c3385939b007540f4d7916113cc565b610e347337b8516a0f88e65d677229b402ec6c1e0e3330046113cc565b600a805460ff19166001179055565b60005460ff1615610e9b576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b68056bc75e2d63100000600190815567016345785d8a00006002556000805460ff19169091179055565b3360009081526004602052604090205460ff16610f20576040805162461bcd60e51b81526020600482015260146024820152731c995b185e595c88191bc81b9bdd08195e1a5cdd60621b604482015290519081900360640190fd5b60005460ff16610f73576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b610f7b611564565b5033600081815260036020908152604091829020825180840190935280548084526001909101549183018290529192916108fc91610fbf919063ffffffff61148416565b6040518115909202916000818181858888f19350505050158015610fe7573d6000803e3d6000fd5b50602081015160405161100291829181156108fc0291906000818181858888f1935050505015801561101d573d6000803e3d6000fd5b50336000818152600460209081526040808320805460ff191690556003825280832083815560010192909255815192835290517fd17202129b83db7880d6b9f25df81c58ad46f7e0e2c92236b1aa10663a4876679281900390910190a15050565b6001600160a01b031660009081526005602052604090205460ff1690565b61100081565b600381565b600a5460ff1681565b61100481565b6001600160a01b03811660009081526005602052604090205460ff1661111b576040805162461bcd60e51b81526020600482015260156024820152741b585b9859d95c88191bd95cdb89dd08195e1a5cdd605a1b604482015290519081900360640190fd5b6001600160a01b038082166000818152600660209081526040808320805460058452828520805460ff1990811690915582546001600160a01b0319908116909355600980865284872080548a16885260088752858820805490931690925595879052948452845490911690935580519384525191909316927f2002866d443ac6c241fecaaa2af4895828c7de2cc423b9d01f7969650f557c76928290030190a16001600160a01b03811615611214576001600160a01b0381166000818152600760209081526040808320805460ff1916905580519384529083019190915280516000805160206116628339815191529281900390910190a15b5050565b3b151590565b6000816040516020018082805190602001908083835b602083106112535780518252601f199092019160209182019101611234565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106112c15780518252601f1990920191602091820191016112a2565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b6001600160a01b03811660009081526005602052604090205460ff1615611371576040805162461bcd60e51b81526020600482015260166024820152756d616e6167657220616c72656164792065786973747360501b604482015290519081900360640190fd5b6001600160a01b038116600081815260056020908152604091829020805460ff19166001179055815192835290517fe0de8e71a22c046647f4ef744348fa126ad6d052d4ce070999481f69d45575179281900390910190a150565b6001600160a01b03811660008181526005602090815260408083208054600160ff1991821681179092556006845282852080546001600160a01b031916871790556007845293829020805490941617909255815192835290517fe0de8e71a22c046647f4ef744348fa126ad6d052d4ce070999481f69d45575179281900390910190a160408051600081526001600160a01b03831660208201528151600080516020611662833981519152929181900390910190a150565b60006114c683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506114cd565b9392505050565b6000818484111561155c5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611521578181015183820152602001611509565b50505050905090810190601f16801561154e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60405180604001604052806000815260200160008152509056fe70726f766973696f6e616c2072656c61796572206973206120636f6e74726163746c656e677468206f66206d616e616765722061646472657373206d69736d6174636872656c61796572206973206e6f7420612070726f766973696f6e616c2072656c61796572636f6e7472616374206973206e6f7420616c6c6f77656420746f20626520612072656c61796572746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e747261637470726f766973696f6e616c206973206e6f742073657420666f722074686973206d616e61676572a5a19d7e9dab30a215022382d7abe782b579986fcbedec9942ecd0db9510a148a2646970667358221220e87e5b6ca8388e14d2ec9c2453581b5e2346a0aaa8fa61707f4d522357ac45d464736f6c63430006040033" + }, + "0x0000000000000000000000000000000000002000": { + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b50600436106103995760003560e01c8063718a8aa8116101e9578063c27cdcfb1161010f578063dc927faf116100ad578063f7a251d71161007c578063f7a251d714610b2f578063f9a2bbc714610ba7578063fc3e590814610baf578063fd6a687914610bb757610399565b8063dc927faf14610af7578063e1c7392a14610aff578063e3b0480514610b07578063e6400bbe14610b2757610399565b8063ccc108d7116100e9578063ccc108d714610ab0578063d31f968d14610ab8578063d76a867514610ae7578063dc40433114610aef57610399565b8063c27cdcfb14610a80578063c780e9de14610aa0578063c81b166214610aa857610399565b80638cc8f56111610187578063a78abc1611610156578063a78abc16146109b2578063ab51bb96146109ba578063ac431751146109c2578063b0355f5b1461078157610399565b80638cc8f5611461088757806396713da91461099a5780639dc09262146109a2578063a1a11bf5146109aa57610399565b806375d47a0a116101c357806375d47a0a146108a75780637942fd05146108af57806384013b6a146108b7578063863fe4ab1461099257610399565b8063718a8aa81461088f578063719482d51461089757806374f079b81461089f57610399565b8063422f9050116102ce57806363e1394e1161026c5780636de380bd1161023b5780636de380bd146108575780636e47a51a1461085f5780636e47b4821461087f57806370fd5bad1461088757610399565b806363e1394e146107ff5780636a3cb34d146108075780636bacff2c1461080f5780636c46aa681461080757610399565b80634bf6c882116102a85780634bf6c882146107b957806351e80672146107c15780635692ddd3146107c95780635f832177146107d157610399565b8063422f90501461078957806343756e5c146107a9578063493279b1146107b157610399565b8063299b533d1161033b578063308325f411610315578063308325f4146106155780633a648b151461061d5780633bdc47a6146106595780633dffc3871461078157610399565b8063299b533d146105a35780632af6f399146105d75780632ff32aea146105f457610399565b806314b3023b1161037757806314b3023b146104015780631d1309351461041b5780631e275ae11461043757806322556cdc1461059b57610399565b806305e682581461039e5780630bee7a67146103bc5780630e2374a5146103dd575b600080fd5b6103a6610bbf565b6040805160ff9092168252519081900360200190f35b6103c4610bc4565b6040805163ffffffff9092168252519081900360200190f35b6103e5610bc9565b604080516001600160a01b039092168252519081900360200190f35b610409610bcf565b60408051918252519081900360200190f35b610423610bd5565b604080519115158252519081900360200190f35b610599600480360361010081101561044e57600080fd5b81018160a081016080820135600160201b81111561046b57600080fd5b82018360208201111561047d57600080fd5b803590602001918460018302840111600160201b8311171561049e57600080fd5b919390929091602081019035600160201b8111156104bb57600080fd5b8201836020820111156104cd57600080fd5b803590602001918460018302840111600160201b831117156104ee57600080fd5b919390929091602081019035600160201b81111561050b57600080fd5b82018360208201111561051d57600080fd5b803590602001918460018302840111600160201b8311171561053e57600080fd5b919390929091602081019035600160201b81111561055b57600080fd5b82018360208201111561056d57600080fd5b803590602001918460018302840111600160201b8311171561058e57600080fd5b509092509050610bde565b005b6104096112c2565b6105c0600480360360208110156105b957600080fd5b50356112c7565b6040805161ffff9092168252519081900360200190f35b610423600480360360208110156105ed57600080fd5b50356112dd565b6105fc6112f2565b60408051600792830b90920b8252519081900360200190f35b6104096112fb565b61063d6004803603602081101561063357600080fd5b503560ff16611301565b604080516001600160401b039092168252519081900360200190f35b61070c6004803603606081101561066f57600080fd5b60ff82351691602081013591810190606081016040820135600160201b81111561069857600080fd5b8201836020820111156106aa57600080fd5b803590602001918460018302840111600160201b831117156106cb57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061131c945050505050565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561074657818101518382015260200161072e565b50505050905090810190601f1680156107735780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103a6611392565b6104236004803603602081101561079f57600080fd5b503560ff16611397565b6103e56113ac565b6105c06113b2565b6103a66113b7565b6103e56113bc565b6104096113c2565b610599600480360360408110156107e757600080fd5b506001600160a01b03813581169160200135166113f2565b610409611652565b6105c061167a565b61082c6004803603602081101561082557600080fd5b503561167f565b6040805161ffff90941684526001600160801b03909216602084015282820152519081900360600190f35b6104096116ae565b6103e56004803603602081101561087557600080fd5b503560ff166116d5565b6103e56116f0565b6103a661167a565b6103a66116f6565b6105c0611392565b6104096116fb565b6103e5611701565b6103a6611707565b610599600480360360a08110156108cd57600080fd5b810190602081018135600160201b8111156108e757600080fd5b8201836020820111156108f957600080fd5b803590602001918460018302840111600160201b8311171561091a57600080fd5b919390929091602081019035600160201b81111561093757600080fd5b82018360208201111561094957600080fd5b803590602001918460018302840111600160201b8311171561096a57600080fd5b919350915080356001600160401b03908116916020810135909116906040013560ff1661170c565b6104096129c6565b6103a66129ce565b6103e56129d3565b6103e56129d9565b6104236129df565b6103c4610bbf565b610599600480360360408110156109d857600080fd5b810190602081018135600160201b8111156109f257600080fd5b820183602082011115610a0457600080fd5b803590602001918460018302840111600160201b83111715610a2557600080fd5b919390929091602081019035600160201b811115610a4257600080fd5b820183602082011115610a5457600080fd5b803590602001918460018302840111600160201b83111715610a7557600080fd5b5090925090506129e8565b61063d60048036036020811015610a9657600080fd5b503560ff166134ac565b6104096134c7565b6103e56134eb565b6105996134f1565b61042360048036036040811015610ace57600080fd5b5080356001600160a01b0316906020013560ff16613745565b61070c613765565b610409613784565b6103e561378a565b610599613790565b61063d60048036036020811015610b1d57600080fd5b503560ff16613b47565b610599613b62565b61059960048036036060811015610b4557600080fd5b60ff8235169190810190604081016020820135600160201b811115610b6957600080fd5b820183602082011115610b7b57600080fd5b803590602001918460018302840111600160201b83111715610b9c57600080fd5b919350915035613d81565b6103e5613ec4565b6103a6613eca565b6103e5613ecf565b600081565b606481565b61200181565b60015481565b600b5460ff1681565b60005460ff16610c23576040805162461bcd60e51b815260206004820152601960248201526000805160206149b2833981519152604482015290519081900360640190fd5b604080516337d7f9c160e21b81526001600160401b038b35166004820181905291516110039163df5fe704916024808301926020929190829003018186803b158015610c6e57600080fd5b505afa158015610c82573d6000803e3d6000fd5b505050506040513d6020811015610c9857600080fd5b5051610cd55760405162461bcd60e51b81526004018080602001828103825260238152602001806149d26023913960400191505060405180910390fd5b604080516337d7f9c160e21b815260208c8101356001600160401b03166004830181905292516110039263df5fe704926024808301939192829003018186803b158015610d2157600080fd5b505afa158015610d35573d6000803e3d6000fd5b505050506040513d6020811015610d4b57600080fd5b5051610d885760405162461bcd60e51b81526004018080602001828103825260238152602001806149d26023913960400191505060405180910390fd5b60608b013560ff81166000908152600560205260409020546001600160401b03909116906001600160a01b0316610e01576040805162461bcd60e51b815260206004820152601860248201527718da185b9b995b081a5cc81b9bdd081cdd5c1c1bdc9d195960421b604482015290519081900360640190fd5b600b5460ff1615610e45576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b8888604051808383808284376040519201829003822094508f93508e9250819050838380828437808301925050509250505060405180910390201415610ec1576040805162461bcd60e51b815260206004820152600c60248201526b1cd85b59481c185e5b1bd85960a21b604482015290519081900360640190fd5b60606001600160401b0360408e01358116908e83013516610ee28282613ed5565b80516020808301919091206000818152600e9092526040909120549194509060ff1615610f4b576040805162461bcd60e51b8152602060048201526012602482015271185b1c9958591e4818da185b1b195b99d95960721b604482015290519081900360640190fd5b6000908152600e60205260408120805460ff191660011790558f8160200201356001600160401b0316905060608f8f8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060608c8c8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506040805163cba510a960e01b81526001600160401b038a16600482015290519596509094611003945063cba510a9935060248083019350602092829003018186803b15801561104157600080fd5b505afa158015611055573d6000803e3d6000fd5b505050506040513d602081101561106b57600080fd5b505160408051808201909152600381526269626360e81b6020820152909150611098908290898686613f1d565b6110e1576040805162461bcd60e51b81526020600482015260156024820152740696e76616c6964206d65726b6c652070726f6f663605c1b604482015290519081900360640190fd5b5050505060008f6001600481106110f457fe5b60200201356001600160401b0316905060608d8d8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8f018190048102820181019092528d815293945060609392508d91508c908190840183828082843760009201829052506040805163cba510a960e01b81526001600160401b038a16600482015290519596509094611003945063cba510a9935060248083019350602092829003018186803b1580156111c057600080fd5b505afa1580156111d4573d6000803e3d6000fd5b505050506040513d60208110156111ea57600080fd5b505160408051808201909152600381526269626360e81b6020820152909150611217908290898686613f1d565b611260576040805162461bcd60e51b8152602060048201526015602482015274696e76616c6964206d65726b6c652070726f6f663160581b604482015290519081900360640190fd5b5050505061126c61401a565b604080516001600160401b038416815260ff83166020820152815133927f039eb91179ffd7d3b6e97f8ea106e748e827f910b872375dbc9c14a362319c3c928290030190a2505050505050505050505050505050565b603281565b600d6020526000908152604090205461ffff1681565b600e6020526000908152604090205460ff1681565b60045460070b81565b60025481565b600a602052600090815260409020546001600160401b031681565b60606000825160210190506060816040519080825280601f01601f191660200182016040528015611354576020820181803683370190505b506021810186905260018101879052828152905060418101600061137786614098565b509050611386818388516140a2565b50909695505050505050565b600181565b60096020526000908152604090205460ff1681565b61100181565b606181565b600881565b61200081565b604080517710d05390d15317d514905394d1915497d41493d413d4d05360421b8152905190819003601801902081565b60005460ff16611437576040805162461bcd60e51b815260206004820152601960248201526000805160206149b2833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b15801561147a57600080fd5b505afa15801561148e573d6000803e3d6000fd5b505050506040513d60208110156114a457600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b1580156114e557600080fd5b505afa1580156114f9573d6000803e3d6000fd5b505050506040513d602081101561150f57600080fd5b505190508061151c575060155b60008211801561152c5750808211155b61156b576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b604080516001600160a01b038087166020808401919091529086168284015282518083038401815260608301808552815191909201207710d05390d15317d514905394d1915497d41493d413d4d05360421b90915291519081900360780190206000906115d890836140e3565b9050801561164a5760408051630911a2c160e11b81526001600160a01b03888116600483015287166024820152905161100491631223458291604480830192600092919082900301818387803b15801561163157600080fd5b505af1158015611645573d6000803e3d6000fd5b505050505b505050505050565b604080516f14d554d411539117d41493d413d4d05360821b8152905190819003601001902081565b600281565b600c602052600090815260409020805460019091015461ffff8216916201000090046001600160801b03169083565b604080516e149153d4115397d41493d413d4d053608a1b8152905190819003600f01902081565b6005602052600090815260409020546001600160a01b031681565b61100581565b601081565b60035481565b61100881565b600b81565b60005460ff16611751576040805162461bcd60e51b815260206004820152601960248201526000805160206149b2833981519152604482015290519081900360640190fd5b60408051630a83aaa960e31b815233600482015290516110069163541d5548916024808301926020929190829003018186803b15801561179057600080fd5b505afa1580156117a4573d6000803e3d6000fd5b505050506040513d60208110156117ba57600080fd5b505161180d576040805162461bcd60e51b815260206004820152601f60248201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604482015290519081900360640190fd5b60ff8116600090815260086020526040902054829082906001600160401b03908116908316811461187d576040805162461bcd60e51b815260206004820152601560248201527439b2b8bab2b731b2903737ba1034b71037b93232b960591b604482015290519081900360640190fd5b60ff8216600090815260086020908152604091829020805467ffffffffffffffff1916600185016001600160401b039081169190911790915582516337d7f9c160e21b81529089166004820152915188926110039263df5fe70492602480840193829003018186803b1580156118f257600080fd5b505afa158015611906573d6000803e3d6000fd5b505050506040513d602081101561191c57600080fd5b50516119595760405162461bcd60e51b81526004018080602001828103825260238152602001806149d26023913960400191505060405180910390fd5b60ff851660009081526005602052604090205485906001600160a01b03166119c3576040805162461bcd60e51b815260206004820152601860248201527718da185b9b995b081a5cc81b9bdd081cdd5c1c1bdc9d195960421b604482015290519081900360640190fd5b60ff86166000908152600a6020526040902054889087906001600160401b039081169083161015611a2c576040805162461bcd60e51b815260206004820152600e60248201526d3a37b79037b632103432b0b232b960911b604482015290519081900360640190fd5b60ff81166000908152600a60205260409020546001600160401b03838116911614611a7e5760ff81166000908152600a60205260409020805467ffffffffffffffff19166001600160401b0384161790555b600b5460ff1615611ac2576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b60608e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060608d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509050611c066110036001600160a01b031663cba510a98e6040518263ffffffff1660e01b815260040180826001600160401b03166001600160401b0316815260200191505060206040518083038186803b158015611baf57600080fd5b505afa158015611bc3573d6000803e3d6000fd5b505050506040513d6020811015611bd957600080fd5b505160408051808201909152600381526269626360e81b6020820152611bff8e8e613ed5565b8585613f1d565b611c4e576040805162461bcd60e51b815260206004820152601460248201527334b73b30b634b21036b2b935b63290383937b7b360611b604482015290519081900360640190fd5b60408051631bb5062960e31b81526001600160401b038e16600482015290516000916110039163dda8314891602480820192602092909190829003018186803b158015611c9a57600080fd5b505afa158015611cae573d6000803e3d6000fd5b505050506040513d6020811015611cc457600080fd5b505190508b8b600080806060611cd9896143c8565b935093509350935083611d9b578460ff16866001600160401b03167ff7b2e42d694eb1100184aae86d4245d9e46966100b1dc7e723275b98326854ac8b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015611d53578181015183820152602001611d3b565b50505050905090810190601f168015611d805780820380516001836020036101000a031916815260200191505b509250505060405180910390a35050505050505050506129b6565b6040805160ff85811682529151918716916001600160401b038916917f36afdaf439a8f43fe72135135d804ae620b37a474f0943b5b85f6788312cad40919081900360200190a360ff83166123205760ff85166000818152600560209081526040808320548151631182b87560e01b815260048101958652602481019283528651604482015286516001600160a01b03909216958695631182b875958d958a9593949093606490910192918601918190849084905b83811015611e68578181015183820152602001611e50565b50505050905090810190601f168015611e955780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b158015611eb557600080fd5b505af1925050508015611f9957506040513d6000823e601f3d908101601f191682016040526020811015611ee857600080fd5b8101908080516040519392919084600160201b821115611f0757600080fd5b908301906020820185811115611f1c57600080fd5b8251600160201b811182820188101715611f3557600080fd5b82525081516020918201929091019080838360005b83811015611f62578181015183820152602001611f4a565b50505050905090810190601f168015611f8f5780820380516001836020036101000a031916815260200191505b5060405250505060015b6122ab576040516000815260443d1015611fb557506000612050565b60046000803e60005160e01c6308c379a08114611fd6576000915050612050565b60043d036004833e81513d60248201116001600160401b038211171561200157600092505050612050565b80830180516001600160401b03811115612022576000945050505050612050565b8060208301013d860181111561204057600095505050505050612050565b601f01601f191660405250925050505b8061205b575061216d565b60ff8716600090815260076020526040812054612092916001600160401b0390911690899061208d906002908861131c565b614478565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf948794849390840192918601918190849084905b8381101561212d578181015183820152602001612115565b50505050905090810190601f16801561215a5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2506122a6565b3d808015612197576040519150601f19603f3d011682016040523d82523d6000602084013e61219c565b606091505b5060ff87166000908152600760205260408120546121cf916001600160401b0390911690899061208d906002908861131c565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351948794849390840192918601918190849084905b8381101561226a578181015183820152602001612252565b50505050905090810190601f1680156122975780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b61231a565b8051156123185760ff87166000908152600760205260408120546122e4916001600160401b0390911690899061208d906001908661131c565b60ff8716600090815260076020526040902080546001600160401b038082166001011667ffffffffffffffff199091161790555b505b506128ee565b60ff8316600114156125c45760ff8516600081815260056020908152604080832054815163831d65d160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563831d65d1958d958a9593949093606490910192918601918190849084905b838110156123aa578181015183820152602001612392565b50505050905090810190601f1680156123d75780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b1580156123f757600080fd5b505af1925050508015612408575060015b61231a576040516000815260443d1015612424575060006124bf565b60046000803e60005160e01c6308c379a081146124455760009150506124bf565b60043d036004833e81513d60248201116001600160401b0382111715612470576000925050506124bf565b80830180516001600160401b038111156124915760009450505050506124bf565b8060208301013d86018111156124af576000955050505050506124bf565b601f01601f191660405250925050505b806124ca575061252f565b60408051602080825283518183015283516001600160a01b038616937ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf938693909283928301918501908083836000831561212d578181015183820152602001612115565b3d808015612559576040519150601f19603f3d011682016040523d82523d6000602084013e61255e565b606091505b5060408051602080825283518183015283516001600160a01b038616937f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351938693909283928301918501908083836000831561226a578181015183820152602001612252565b60ff8316600214156128ee5760ff8516600081815260056020908152604080832054815163c8509d8160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563c8509d81958d958a9593949093606490910192918601918190849084905b8381101561264e578181015183820152602001612636565b50505050905090810190601f16801561267b5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561269b57600080fd5b505af19250505080156126ac575060015b6128ec576040516000815260443d10156126c857506000612763565b60046000803e60005160e01c6308c379a081146126e9576000915050612763565b60043d036004833e81513d60248201116001600160401b038211171561271457600092505050612763565b80830180516001600160401b03811115612735576000945050505050612763565b8060208301013d860181111561275357600095505050505050612763565b601f01601f191660405250925050505b8061276e5750612817565b816001600160a01b03167ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf826040518080602001828103825283818151815260200191508051906020019080838360005b838110156127d75781810151838201526020016127bf565b50505050905090810190601f1680156128045780820380516001836020036101000a031916815260200191505b509250505060405180910390a2506128ec565b3d808015612841576040519150601f19603f3d011682016040523d82523d6000602084013e612846565b606091505b50816001600160a01b03167f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351826040518080602001828103825283818151815260200191508051906020019080838360005b838110156128b0578181015183820152602001612898565b50505050905090810190601f1680156128dd5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b505b60ff80861660009081526009602052604090205461100591636f93d2e6918a91339187911680612920575060ff881615155b604080516001600160e01b031960e088901b1681526001600160a01b039586166004820152939094166024840152604483019190915215156064820152905160848083019260209291908290030181600087803b15801561298057600080fd5b505af1158015612994573d6000803e3d6000fd5b505050506040513d60208110156129aa57600080fd5b50505050505050505050505b5050505050505050505050505050565b630100610081565b600981565b61100781565b61100681565b60005460ff1681565b3361100714612a285760405162461bcd60e51b815260040180806020018281038252602e815260200180614908602e913960400191505060405180910390fd5b600b5460ff1615612a6c576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b612ad584848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526012815271626174636853697a65466f724f7261636c6560701b602082015291506146129050565b15612b7057604080516020601f8401819004810282018101909252828152600091612b18918585808385018382808284376000920191909152506146f992505050565b90506127108111158015612b2d5750600a8110155b612b685760405162461bcd60e51b81526004018080602001828103825260328152602001806149806032913960400191505060405180910390fd5b60015561341a565b612bd984848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601281527118591913dc955c19185d1950da185b9b995b60721b602082015291506146129050565b15612d6157606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060169091149050612c5c5760405162461bcd60e51b815260040180806020018281038252605a815260200180614821605a913960600191505060405180910390fd5b60018101516002820151601683015160ff82161590612c7a816146fe565b612ccb576040805162461bcd60e51b815260206004820152601960248201527f61646472657373206973206e6f74206120636f6e747261637400000000000000604482015290519081900360640190fd5b60ff8416600081815260056020908152604080832080546001600160a01b0319166001600160a01b038716908117909155808452600683528184208585528352818420805460ff199081166001179091556009909352818420805490931687151517909255519092917f7e3b6af43092577ee20e60eaa1d9b114a7031305c895ee7dd3ffe17196d2e1e091a3505050505061341a565b612dce84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526016815275195b98589b1953dc911a5cd8589b1950da185b9b995b60521b602082015291506146129050565b15612eff57606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060029091149050612e515760405162461bcd60e51b815260040180806020018281038252604a815260200180614936604a913960600191505060405180910390fd5b600181810151600283015160ff80831660009081526005602052604090205492939192908316909114906001600160a01b03168015612ef5576001600160a01b038116600090815260066020908152604080832060ff881680855290835292819020805460ff1916861515908117909155815190815290517fa3132e3f9819fbddc7f0ed6d38d7feef59aa95112090b7c592f5cb5bc4aa4adc929181900390910190a25b505050505061341a565b612f6384848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c73757370656e6451756f72756d60981b602082015291506146129050565b156130985760028114612fa75760405162461bcd60e51b815260040180806020018281038252602d8152602001806148af602d913960400191505060405180910390fd5b6000612fea600284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506146f992505050565b905060008161ffff16118015613004575060648161ffff16105b61304e576040805162461bcd60e51b8152602060048201526016602482015275696e76616c69642073757370656e642071756f72756d60501b604482015290519081900360640190fd5b604080516f14d554d411539117d41493d413d4d05360821b815281519081900360100190206000908152600d60205220805461ffff90921661ffff1990921691909117905561341a565b6130fb84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600c81526b72656f70656e51756f72756d60a01b602082015291506146129050565b1561322e576002811461313f5760405162461bcd60e51b815260040180806020018281038252602c8152602001806148dc602c913960400191505060405180910390fd5b6000613182600284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506146f992505050565b905060008161ffff1611801561319c575060648161ffff16105b6131e5576040805162461bcd60e51b8152602060048201526015602482015274696e76616c69642072656f70656e2071756f72756d60581b604482015290519081900360640190fd5b604080516e149153d4115397d41493d413d4d053608a1b8152815190819003600f0190206000908152600d60205220805461ffff90921661ffff1990921691909117905561341a565b61329984848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601481527363616e63656c5472616e7366657251756f72756d60601b602082015291506146129050565b156133dd57600281146132dd5760405162461bcd60e51b815260040180806020018281038252603481526020018061487b6034913960400191505060405180910390fd5b6000613320600284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506146f992505050565b905060008161ffff1611801561333a575060648161ffff16105b61338b576040805162461bcd60e51b815260206004820152601e60248201527f696e76616c69642063616e63656c207472616e736665722071756f72756d0000604482015290519081900360640190fd5b604080517710d05390d15317d514905394d1915497d41493d413d4d05360421b815281519081900360180190206000908152600d60205220805461ffff90921661ffff1990921691909117905561341a565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b6008602052600090815260409020546001600160401b031681565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081565b61100281565b60005460ff16613536576040805162461bcd60e51b815260206004820152601960248201526000805160206149b2833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b15801561357957600080fd5b505afa15801561358d573d6000803e3d6000fd5b505050506040513d60208110156135a357600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b1580156135e457600080fd5b505afa1580156135f8573d6000803e3d6000fd5b505050506040513d602081101561360e57600080fd5b505190508061361b575060155b60008211801561362b5750808211155b61366a576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b600b5460ff166136b1576040805162461bcd60e51b815260206004820152600d60248201526c1b9bdd081cdd5cdc195b991959609a1b604482015290519081900360640190fd5b604080516e149153d4115397d41493d413d4d053608a1b8152905190819003600f019020600090613702907fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4706140e3565b9050801561374057600b805460ff1916905560405133907f899fe8c37dc61708a3aaa99c4bf143346c1d1da69af79be9e8920c0a6785b75290600090a25b505050565b600660209081526000928352604080842090915290825290205460ff1681565b6040518060400160405280600381526020016269626360e81b81525081565b610e1081565b61100381565b60005460ff16156137e8576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b7f1471eb6eb2c5e789fc3de43f8ce62938c7d1836ec861730447e2ada8fd81017b80546001600160a01b0319908116611008179091557f92e85d02570a8092d09a6e3a57665bc3815a2699a4074001bf1ccabf660f5a36805460ff199081169091557fd8af288fc1c8680b4f4706064cf021e264efb6828fcaf7eb5ca36818eb365bcc8054821660019081179091557f89832631fb3c3307a103ba2c84ab569c64d6182a18893dcd163f0f1c2090733a805484166110049081179091557f6cde3cea4b3a3fb2488b2808bae7556f4a405e50f65e1794383bc026131b13c38054841690557f72e4efa1513b071517c6c74dba31b5934a81aa83cddd400e7081df5529c9943680548416831790557fa9bc9a3a348c357ba16b37005d7e6b3236198c0e939f4af8c5f19b8deeb8ebc08054851690911790557fc575c31fea594a6eb97c8e9d3f9caee4c16218c6ef37e923234c0fe9014a61e78054831690557f4e523af77f034e9810f1c94057f5e931fb3d16a51511a4c3add793617d18610580548316821790557ffb33122aa9f93cc639ebe80a7bc4784c11e6053dde89c6f4f7e268c6a623da1e805484166110001790557fc7694af312c4f286114180fd0ba6a52461fcee8a381636770b19a343af92538a80548316821790557f01112dd68e482ba8d68a7e828cff8b3abcea08eab88941953c180a7e650e9cd480548316821790557fc0a4a8be475dfebc377ebef2d7c4ff47656f572a08dd92b81017efcdba0febe1805484166110071790557f87e8a52529e8ece4ef759037313542a6429ff494a9fab9027fb79db90124eba680548316821790557f4c7666bbcb22d46469f7cc282f70764a7012dca2cce630ff8d83db9a9cdd48f080548316821790557f40f28f99a40bc9f6beea1013afdbc3cdcc689eb76b82c4de06c0acf1e1932ed58054909316611001179092557f0d9cf2cd531699eed8dd34e40ff2884a14a698c4898184fba85194e6f6772d248054821683179055600b60009081527f23f68c9bd22b8a93d06adabe17481c87c016bcbd20adc8bfd707a4d813a572176020527fdf0d5d05428057f5455c2dc8e810dd86d1e9350faa72f16bda8a45443c5b39328054831684179055603283556004805467ffffffffffffffff19166001600160401b031790556002819055600381905580549091169091179055565b6007602052600090815260409020546001600160401b031681565b60005460ff16613ba7576040805162461bcd60e51b815260206004820152601960248201526000805160206149b2833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b158015613bea57600080fd5b505afa158015613bfe573d6000803e3d6000fd5b505050506040513d6020811015613c1457600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b158015613c5557600080fd5b505afa158015613c69573d6000803e3d6000fd5b505050506040513d6020811015613c7f57600080fd5b5051905080613c8c575060155b600082118015613c9c5750808211155b613cdb576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b600b5460ff1615613d1f576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b604080516f14d554d411539117d41493d413d4d05360821b81529051908190036010019020600090613d71907fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4706140e3565b905080156137405761374061401a565b60005460ff16613dc6576040805162461bcd60e51b815260206004820152601960248201526000805160206149b2833981519152604482015290519081900360640190fd5b33600090815260066020908152604080832060ff8089168552925290912054859116613e235760405162461bcd60e51b81526004018080602001828103825260318152602001806147f06031913960400191505060405180910390fd5b60ff85166000908152600760209081526040808320548151601f88018490048402810184019092528682526001600160401b031692613e889284928a9261208d92909189918c908c908190840183828082843760009201919091525061131c92505050565b60ff959095166000908152600760205260409020805467ffffffffffffffff191660019096016001600160401b03169590951790945550505050565b61100081565b600381565b61100481565b60408051600e808252818301909252606091630100610060ff851617918391602082018180368337505050600e81810187905260068201939093529182525090505b92915050565b600085613f2c57506000614011565b606082518451865160800101016040519080825280601f01601f191660200182016040528015613f63576020820181803683370190505b5090506000613f7182614704565b602080890151825201905086600080613f8989614098565b8086526020909501949092509050613fa28285836140a2565b92830192613faf88614098565b8086526020909501949092509050613fc88285836140a2565b9283018a815260200192613fdb87614098565b9092509050613feb8285836140a2565b508351602001613ff961470a565b60208183886065600019fa5051600114955050505050505b95945050505050565b600b5460ff161561405e576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b600b805460ff1916600117905560405133907f6f123d3d54c84a7960a573b31c221dcd86e13fd849c5adb0c6ca851468cc1ae490600090a2565b8051602090910191565b5b602081106140c2578251825260209283019290910190601f19016140a3565b915181516020939093036101000a6000190180199091169216919091179052565b6000828152600d602052604081205461ffff166141ac57604080516f14d554d411539117d41493d413d4d05360821b815281519081900360100181206000908152600d6020818152848320805461ffff199081166001179091556e149153d4115397d41493d413d4d053608a1b8552855194859003600f01852084528282528584208054821660029081179091557710d05390d15317d514905394d1915497d41493d413d4d05360421b8652865195869003601801909520845291905292902080549092161790555b6000838152600c6020526040902080546201000090046001600160801b0316421015806141dd575082816001015414155b156142b0576000848152600d602090815260409182902054835461ffff90911661ffff199091161771ffffffffffffffffffffffffffffffff0000191662010000610e1042016001600160801b0316021783556001808401869055825191820190925233815261425291600284019190614728565b5080546040805161ffff83168152620100009092046001600160801b0316602083015281810185905251339186917f9e109f0e55ef32e99e4880be2ec357f1ddb3469c79d0747ef4762da6e89fabe5916060908290030190a3614364565b60005b600282015481101561433b57336001600160a01b03168260020182815481106142d857fe5b6000918252602090912001546001600160a01b03161415614333576040805162461bcd60e51b815260206004820152601060248201526f185b1c9958591e48185c1c1c9bdd995960821b604482015290519081900360640190fd5b6001016142b3565b50600281018054600181018255600091825260209091200180546001600160a01b031916331790555b8054600282015461ffff909116116143be576000848152600c60205260408120805471ffffffffffffffffffffffffffffffffffff1916815560018101829055906143b2600283018261478d565b50506001915050613f17565b5060009392505050565b600080600060606021855110156143f8575050604080516000808252602082019092529092508291508190614471565b600185015160218601518651604080516020198301808252601f1960011990940193909316810160200190915260418901939291606091908015614443576020820181803683370190505b509050600061445182614098565b509050614463858260218d51036140a2565b506001975091955093509150505b9193509193565b600b5460ff16156144bc576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b6002544311156144fb576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b16179091556003554360025561453c565b6003805460019081019182905554101561453c576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b16179091556003555b8160ff16836001600160401b0316600460009054906101000a900460070b6001600160401b03167f3a6e0fc61675aa2a100bcba0568368bb92bcec91c97673391074f11138f0cffe606185604051808361ffff1661ffff16815260200180602001828103825283818151815260200191508051906020019080838360005b838110156145d25781810151838201526020016145ba565b50505050905090810190601f1680156145ff5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a4505050565b6000816040516020018082805190602001908083835b602083106146475780518252601f199092019160209182019101614628565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106146b55780518252601f199092019160209182019101614696565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b3b151590565b60200190565b60405180602001604052806001906020820280368337509192915050565b82805482825590600052602060002090810192821561477d579160200282015b8281111561477d57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190614748565b506147899291506147ae565b5090565b50805460008255906000526020600020908101906147ab91906147d5565b50565b6147d291905b808211156147895780546001600160a01b03191681556001016147b4565b90565b6147d291905b8082111561478957600081556001016147db56fe74686520636f6e747261637420616e64206368616e6e656c2068617665206e6f74206265656e20726567697374657265646c656e677468206f662076616c756520666f72206164644f725570646174654368616e6e656c2073686f756c642062652032322c206368616e6e656c49643a697346726f6d53797374656d3a68616e646c6572416464726573736c656e677468206f662076616c756520666f722063616e63656c5472616e7366657251756f72756d2073686f756c6420626520326c656e677468206f662076616c756520666f722073757370656e6451756f72756d2073686f756c6420626520326c656e677468206f662076616c756520666f722072656f70656e51756f72756d2073686f756c642062652032746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662076616c756520666f7220656e61626c654f7244697361626c654368616e6e656c2073686f756c6420626520322c206368616e6e656c49643a6973456e61626c65746865206e6577426174636853697a65466f724f7261636c652073686f756c6420626520696e205b31302c2031303030305d74686520636f6e7472616374206e6f7420696e697420796574000000000000006c6967687420636c69656e74206e6f742073796e632074686520626c6f636b20796574a26469706673582212200822a3bd79df610f758cc9702e0be636463b002fc0089f5e09cf86383a7f79fc64736f6c63430006040033" + } + }, + "29861024": { + "0x0000000000000000000000000000000000001000": { + "balance": "0x0", + "code": "0x60806040526004361061048d5760003560e01c806388b32f1111610255578063c81b166211610144578063e40716a1116100c1578063f92eb86b11610085578063f92eb86b14610bd7578063f9a2bbc714610bec578063fc3e590814610c01578063fccc281314610c16578063fd4ad81f14610c2b578063fd6a687914610c5a57610494565b8063e40716a114610b5a578063ea321e4914610b6f578063eb57e20214610b8f578063eda5868c14610baf578063f340fa0114610bc457610494565b8063d86222d511610108578063d86222d514610af1578063daacdb6614610b06578063dc927faf14610b1b578063e086c7b114610b30578063e1c7392a14610b4557610494565b8063c81b166214610a92578063c8509d81146108a0578063ce910b0c14610aa7578063d04aa99614610ac7578063d68fb56a14610adc57610494565b8063a78abc16116101d2578063aef198a911610196578063aef198a914610a31578063b7ab4db514610a46578063b8cf4ef114610a68578063bf9f499514610650578063c6d3394514610a7d57610494565b8063a78abc16146109b2578063aaf5eb68146109c7578063ab51bb96146109dc578063ac431751146109f1578063ad3c9da614610a1157610494565b80639dc09262116102195780639dc09262146109495780639fe0f8161461095e578063a0dc275814610973578063a1a11bf514610988578063a5422d5c1461099d57610494565b806388b32f11146108d55780638b5ad0c9146108ea5780638d19a410146108ff5780639369d7de1461091f57806396713da91461093457610494565b80635192c82c1161037c5780636e47b482116102f95780637942fd05116102bd5780637942fd05146108615780637a84ca2a1461087657806381650b621461088b578063831d65d1146108a0578063853230aa1461084c57806386249882146108c057610494565b80636e47b482146107f857806370fd5bad1461080d578063718a8aa81461082257806375d47a0a1461083757806378dfed4a1461084c57610494565b80635667515a116103405780635667515a146107675780635d77156c1461077c57806360eba4fe1461079157806362b72cf5146107b15780636969a25c146107c657610494565b80635192c82c146106e857806351e80672146106fd578063549b03f21461071257806355614fcc14610727578063565c56b31461074757610494565b80633365af3a1161040a57806343756e5c116103ce57806343756e5c1461067257806345cf9daf14610687578063493279b11461069c5780634bf6c882146106be5780634df6e0c3146106d357610494565b80633365af3a146105d857806335409f7f146105f85780633b071dcc146106185780633de0f0d81461063b5780633dffc3871461065057610494565b8063152ad3b811610451578063152ad3b81461054c5780631ff180691461056e578063219f22d514610583578063300c356714610598578063321d398a146105b857610494565b806304c4fec61461049957806307a56847146104b05780630bee7a67146104db5780630e2374a5146104fd5780631182b8751461051f57610494565b3661049457005b600080fd5b3480156104a557600080fd5b506104ae610c6f565b005b3480156104bc57600080fd5b506104c5610ce1565b6040516104d29190617594565b60405180910390f35b3480156104e757600080fd5b506104f0610ce7565b6040516104d291906175be565b34801561050957600080fd5b50610512610cec565b6040516104d2919061699b565b34801561052b57600080fd5b5061053f61053a366004616881565b610cf2565b6040516104d29190616b12565b34801561055857600080fd5b50610561610f2a565b6040516104d29190616b07565b34801561057a57600080fd5b506104c5610f33565b34801561058f57600080fd5b506104f0610f39565b3480156105a457600080fd5b506104ae6105b336600461670b565b610f3e565b3480156105c457600080fd5b506105616105d336600461682e565b6112c2565b3480156105e457600080fd5b506105616105f336600461682e565b611391565b34801561060457600080fd5b506104ae6106133660046166e4565b611442565b34801561062457600080fd5b5061062d61159b565b6040516104d2929190616a1d565b34801561064757600080fd5b506104c5611877565b34801561065c57600080fd5b5061066561187d565b6040516104d291906175cf565b34801561067e57600080fd5b50610512611882565b34801561069357600080fd5b506104c5611888565b3480156106a857600080fd5b506106b161188e565b6040516104d29190617585565b3480156106ca57600080fd5b50610665611893565b3480156106df57600080fd5b5061062d611898565b3480156106f457600080fd5b506104c5611a16565b34801561070957600080fd5b50610512611a1c565b34801561071e57600080fd5b506104c5611a22565b34801561073357600080fd5b506105616107423660046166e4565b611a28565b34801561075357600080fd5b506104c56107623660046166e4565b611a5d565b34801561077357600080fd5b50610665611aae565b34801561078857600080fd5b506104f0611ab3565b34801561079d57600080fd5b5061053f6107ac36600461682e565b611ab8565b3480156107bd57600080fd5b506104c5611b5e565b3480156107d257600080fd5b506107e66107e136600461682e565b611b64565b6040516104d2969594939291906169c8565b34801561080457600080fd5b50610512611bc8565b34801561081957600080fd5b50610665611bce565b34801561082e57600080fd5b50610665611bd3565b34801561084357600080fd5b50610512611bd8565b34801561085857600080fd5b506104c5611bde565b34801561086d57600080fd5b50610665611be4565b34801561088257600080fd5b506104c5611be9565b34801561089757600080fd5b506104f0611bef565b3480156108ac57600080fd5b506104ae6108bb366004616881565b611bf4565b3480156108cc57600080fd5b506104c5611c55565b3480156108e157600080fd5b506104c5611c5b565b3480156108f657600080fd5b506104c5611c61565b34801561090b57600080fd5b506104c561091a3660046166e4565b611c67565b34801561092b57600080fd5b506104ae611ca7565b34801561094057600080fd5b50610665611dbb565b34801561095557600080fd5b50610512611dc0565b34801561096a57600080fd5b506104c5611dc6565b34801561097f57600080fd5b506104c5611dcb565b34801561099457600080fd5b50610512611dd0565b3480156109a957600080fd5b5061053f611dd6565b3480156109be57600080fd5b50610561611df5565b3480156109d357600080fd5b506104c5611dfe565b3480156109e857600080fd5b506104f0611aae565b3480156109fd57600080fd5b506104ae610a0c3660046167d2565b611e07565b348015610a1d57600080fd5b506104c5610a2c3660046166e4565b6126b3565b348015610a3d57600080fd5b506104c56126c5565b348015610a5257600080fd5b50610a5b6126d2565b6040516104d29190616a0a565b348015610a7457600080fd5b506104c56127be565b348015610a8957600080fd5b506104c5611bce565b348015610a9e57600080fd5b506105126127c3565b348015610ab357600080fd5b5061053f610ac236600461682e565b6127c9565b348015610ad357600080fd5b506104c56127d6565b348015610ae857600080fd5b506104c56127db565b348015610afd57600080fd5b506104c561281a565b348015610b1257600080fd5b506104c5612826565b348015610b2757600080fd5b5061051261282c565b348015610b3c57600080fd5b506104c5612832565b348015610b5157600080fd5b506104ae612837565b348015610b6657600080fd5b506104c56129e6565b348015610b7b57600080fd5b50610561610b8a366004616793565b6129ec565b348015610b9b57600080fd5b506104ae610baa3660046166e4565b612b72565b348015610bbb57600080fd5b506104f0612c7a565b6104ae610bd23660046166e4565b612c7f565b348015610be357600080fd5b506104c5612f07565b348015610bf857600080fd5b50610512612f0d565b348015610c0d57600080fd5b50610665611dc6565b348015610c2257600080fd5b50610512612f13565b348015610c3757600080fd5b50610c4b610c4636600461682e565b612f19565b6040516104d29392919061759d565b348015610c6657600080fd5b50610512612fdb565b6000610c7a33611c67565b9050600b8181548110610c8957fe5b600091825260209091206001601690920201015460ff16610cc55760405162461bcd60e51b8152600401610cbc9061723d565b60405180910390fd5b6000610ccf6127db565b9050610cdc338383612fe1565b505050565b60095481565b606481565b61200181565b60005460609060ff16610d175760405162461bcd60e51b8152600401610cbc90616cd1565b3361200014610d385760405162461bcd60e51b8152600401610cbc9061741c565b600b54610df657610d476163d0565b60015460005b81811015610df257600b805460018101825560009190915283516000805160206177f283398151915260169092029182019081556020808601516000805160206178328339815191528401805460ff1916911515919091179055604086015180518794610dce936000805160206178128339815191529091019201906163ff565b506060820151610de49060038301906013616479565b505050806001019050610d4d565b5050505b610dfe6164a6565b6000610e3f85858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506131cd92505050565b9150915080610e5b57610e526064613389565b92505050610f23565b815160009060ff16610e8057610e79836020015184604001516133ea565b9050610eef565b825160ff1660011415610eeb57826020015151600114610ec5576000805160206177d2833981519152604051610eb590617124565b60405180910390a1506067610ee6565b610e798360200151600081518110610ed957fe5b602002602001015161403e565b610eef565b5060655b63ffffffff8116610f145750506040805160008152602081019091529150610f239050565b610f1d81613389565b93505050505b9392505050565b60075460ff1681565b60035481565b606881565b334114610f5d5760405162461bcd60e51b8152600401610cbc9061746b565b6010544311610f7e5760405162461bcd60e51b8152600401610cbc90616e2d565b60005460ff16610fa05760405162461bcd60e51b8152600401610cbc90616cd1565b600f54610fb8576032600f55611002316011556112b8565b60006110023168056bc75e2d63100000811115610fe757610fe081606463ffffffff6141b516565b9150611030565b60115481111561102957610fe0606461101d600f54611011601154866141f790919063ffffffff16565b9063ffffffff61423916565b9063ffffffff6141b516565b50506112b8565b6040516309a99b4f60e41b815261100290639a99b4f09061105790309086906004016169af565b602060405180830381600087803b15801561107157600080fd5b505af1158015611085573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110a99190616846565b611002316011559150816110be5750506112b8565b6000805b848110156110ec578585828181106110d657fe5b90506020020135820191508060010190506110c2565b50806110fa575050506112b8565b6000806000805b898110156112b0578489898381811061111657fe5b9050602002013588028161112657fe5b0493508a8a8281811061113557fe5b905060200201602081019061114a91906166e4565b6001600160a01b0381166000908152600460205260409020549093509150811561126657600060018084038154811061117f57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff16156111ec57836001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d85866040516111df9190617594565b60405180910390a2611260565b6003546111ff908663ffffffff61427316565b6003908155810154611217908663ffffffff61427316565b60038201556040516001600160a01b038516907fcb0aad6cf9cd03bdf6137e359f541c42f38b39f007cae8e89e88aa7d8c6617b290611257908890617594565b60405180910390a25b506112a8565b826001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d858560405161129f9190617594565b60405180910390a25b600101611101565b505050505050505b5050436010555050565b60015460009082106112d65750600061138c565b60006001600160a01b0316600183815481106112ee57fe5b60009182526020909120600490910201546001600160a01b0316148061131e5750600854158061131e5750600a54155b8061132d575060085460095410155b8061133e575061133c82611391565b155b8061136757506000600b838154811061135357fe5b906000526020600020906016020160000154115b8061137b575060016113776126d2565b5111155b156113885750600061138c565b5060015b919050565b60015460009082106113a55750600061138c565b600b5482106113e257600182815481106113bb57fe5b9060005260206000209060040201600201601c9054906101000a900460ff1615905061138c565b600182815481106113ef57fe5b9060005260206000209060040201600201601c9054906101000a900460ff1615801561143c5750600b828154811061142357fe5b600091825260209091206001601690920201015460ff16155b92915050565b33611001146114635760405162461bcd60e51b8152600401610cbc9061753c565b600b54611521576114726163d0565b60015460005b8181101561151d57600b805460018101825560009190915283516000805160206177f283398151915260169092029182019081556020808601516000805160206178328339815191528401805460ff19169115159190911790556040860151805187946114f9936000805160206178128339815191529091019201906163ff565b50606082015161150f9060038301906013616479565b505050806001019050611478565b5050505b6001600160a01b038116600090815260046020526040902054806115455750611598565b6001810390506000600b828154811061155a57fe5b600091825260209091206001601690920201015460ff16905061157d8383614298565b80156115865750805b15610cdc576009805460001901905550505b50565b60015460609081906000805b828110156115ee57600181815481106115bc57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166115e6576001909101905b6001016115a7565b5060608160405190808252806020026020018201604052801561161b578160200160208202803683370190505b50905060608260405190808252806020026020018201604052801561165457816020015b606081526020019060019003908161163f5790505b50600b54600094509091508414156117cf5760005b848110156117c9576001818154811061167e57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166117c157600181815481106116ae57fe5b600091825260209091206004909102015483516001600160a01b03909116908490869081106116d957fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600b818154811061170657fe5b600091825260209182902060026016909202018101805460408051601f60001961010060018616150201909316949094049182018590048502840185019052808352919290919083018282801561179e5780601f106117735761010080835404028352916020019161179e565b820191906000526020600020905b81548152906001019060200180831161178157829003601f168201915b50505050508285815181106117af57fe5b60209081029190910101526001909301925b600101611669565b5061186b565b60005b8481101561186957600181815481106117e757fe5b9060005260206000209060040201600201601c9054906101000a900460ff16611861576001818154811061181757fe5b600091825260209091206004909102015483516001600160a01b039091169084908690811061184257fe5b6001600160a01b03909216602092830291909101909101526001909301925b6001016117d2565b505b909450925050505b9091565b61271081565b600181565b61100181565b60085481565b606181565b600881565b600e54600c546060918291806118ac575060155b60606118b66126d2565b905060606118c38261464b565b9050828251116118da579094509250611873915050565b838383510310156118ec578282510393505b83156119225760c8430461190883838388880360008a8a6147b9565b6119208383838888038989038a8b8b8b5103016147b9565b505b60608360405190808252806020026020018201604052801561194e578160200160208202803683370190505b50905060608460405190808252806020026020018201604052801561198757816020015b60608152602001906001900390816119725790505b50905060005b85811015611a08578481815181106119a157fe5b60200260200101518382815181106119b557fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508381815181106119e157fe5b60200260200101518282815181106119f557fe5b602090810291909101015260010161198d565b509096509450505050509091565b60065481565b61200081565b600f5481565b6001600160a01b03811660009081526004602052604081205480611a5057600091505061138c565b60001901610f2381611391565b6001600160a01b03811660009081526004602052604081205480611a8557600091505061138c565b600180820381548110611a9457fe5b906000526020600020906004020160030154915050919050565b600081565b606781565b60128181548110611ac557fe5b600091825260209182902001805460408051601f6002600019610100600187161502019094169390930492830185900485028101850190915281815293509091830182828015611b565780601f10611b2b57610100808354040283529160200191611b56565b820191906000526020600020905b815481529060010190602001808311611b3957829003601f168201915b505050505081565b60105481565b60018181548110611b7157fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b601081565b61100881565b6103e881565b600b81565b600c5481565b606681565b3361200014611c155760405162461bcd60e51b8152600401610cbc9061741c565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051611c48939291906175dd565b60405180910390a1505050565b60025481565b60115481565b600a5481565b6001600160a01b03811660009081526004602052604081205480611c9d5760405162461bcd60e51b8152600401610cbc906173a4565b6000190192915050565b600b54611d6557611cb66163d0565b60015460005b81811015611d6157600b805460018101825560009190915283516000805160206177f283398151915260169092029182019081556020808601516000805160206178328339815191528401805460ff1916911515919091179055604086015180518794611d3d936000805160206178128339815191529091019201906163ff565b506060820151611d539060038301906013616479565b505050806001019050611cbc565b5050505b600854611d725760036008555b600a54611d7f576002600a555b6000611d8a33611c67565b9050611d95816112c2565b611db15760405162461bcd60e51b8152600401610cbc906170e1565b6115983382614910565b600981565b61100781565b600381565b60c881565b61100681565b604051806101e001604052806101ab81526020016176276101ab913981565b60005460ff1681565b6402540be40081565b60005460ff16611e295760405162461bcd60e51b8152600401610cbc90616cd1565b3361100714611e4a5760405162461bcd60e51b8152600401610cbc906171aa565b611eb484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b602082015291506149a89050565b15611f515760208114611ed95760405162461bcd60e51b8152600401610cbc9061735e565b604080516020601f8401819004810282018101909252828152600091611f1791858580838501838280828437600092019190915250614a0192505050565b905060648110158015611f2d5750620186a08111155b611f495760405162461bcd60e51b8152600401610cbc90616f8a565b600255612670565b611fb184848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260098152686275726e526174696f60b81b602082015291506149a89050565b1561204d5760208114611fd65760405162461bcd60e51b8152600401610cbc90616b57565b604080516020601f840181900481028201810190925282815260009161201491858580838501838280828437600092019190915250614a0192505050565b90506127108111156120385760405162461bcd60e51b8152600401610cbc90616e6f565b6006556007805460ff19166001179055612670565b6120b784848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260138152726d61784e756d4f664d61696e7461696e696e6760681b602082015291506149a89050565b1561215157602081146120dc5760405162461bcd60e51b8152600401610cbc90616b8e565b604080516020601f840181900481028201810190925282815260009161211a91858580838501838280828437600092019190915250614a0192505050565b600c5490915080612129575060155b8082106121485760405162461bcd60e51b8152600401610cbc90616ee2565b50600855612670565b6121ba84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61696e7461696e536c6173685363616c6560701b602082015291506149a89050565b1561225357602081146121df5760405162461bcd60e51b8152600401610cbc90616c57565b604080516020601f840181900481028201810190925282815260009161221d91858580838501838280828437600092019190915250614a0192505050565b905060008111801561222f5750600a81105b61224b5760405162461bcd60e51b8152600401610cbc906174b8565b600a55612670565b6122c784848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601981527f6d61784e756d4f66576f726b696e6743616e6469646174657300000000000000602082015291506149a89050565b1561235657602081146122ec5760405162461bcd60e51b8152600401610cbc90616c0b565b604080516020601f840181900481028201810190925282815260009161232a91858580838501838280828437600092019190915250614a0192505050565b9050600d5481111561234e5760405162461bcd60e51b8152600401610cbc90617000565b600e55612670565b6123bf84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61784e756d4f6643616e6469646174657360701b602082015291506149a89050565b1561244157602081146123e45760405162461bcd60e51b8152600401610cbc906171f8565b604080516020601f840181900481028201810190925282815260009161242291858580838501838280828437600092019190915250614a0192505050565b600d819055600e5490915081101561243b57600d54600e555b50612670565b6124a584848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c6e756d4f66436162696e65747360981b602082015291506149a89050565b1561255357602081146124ca5760405162461bcd60e51b8152600401610cbc90616c9c565b604080516020601f840181900481028201810190925282815260009161250891858580838501838280828437600092019190915250614a0192505050565b90506000811161252a5760405162461bcd60e51b8152600401610cbc90616d3f565b602981111561254b5760405162461bcd60e51b8152600401610cbc90616d87565b600c55612670565b6125bd84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601381527266696e616c697479526577617264526174696f60681b602082015291506149a89050565b1561265857602081146125e25760405162461bcd60e51b8152600401610cbc906172e1565b604080516020601f840181900481028201810190925282815260009161262091858580838501838280828437600092019190915250614a0192505050565b905060018110158015612634575060648111155b6126505760405162461bcd60e51b8152600401610cbc9061706f565b600f55612670565b60405162461bcd60e51b8152600401610cbc90617515565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040516126a59493929190616b25565b60405180910390a150505050565b60046020526000908152604090205481565b68056bc75e2d6310000081565b6001546060906000805b82811015612701576126ed81611391565b156126f9578160010191505b6001016126dc565b5060608160405190808252806020026020018201604052801561272e578160200160208202803683370190505b5090506000915060005b838110156127b55761274981611391565b156127ad576001818154811061275b57fe5b600091825260209091206004909102015482516001600160a01b039091169083908590811061278657fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508260010192505b600101612738565b50925050505b90565b601581565b61100281565b60138181548110611ac557fe5b603281565b60006127e56126d2565b519050600080600c54116127fa5760156127fe565b600c545b90508082111561280c578091505b8161281657600191505b5090565b67016345785d8a000081565b60055481565b61100381565b602981565b60005460ff161561285a5760405162461bcd60e51b8152600401610cbc906172aa565b6128626164a6565b6000612888604051806101e001604052806101ab81526020016176276101ab91396131cd565b91509150806128a95760405162461bcd60e51b8152600401610cbc906173db565b60005b8260200151518110156129ce576001836020015182815181106128cb57fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a0909301516003909301929092559186015180519185019391859081106129a157fe5b602090810291909101810151516001600160a01b03168252810191909152604001600020556001016128ac565b50506103e8600255506000805460ff19166001179055565b600d5481565b601354600090815b81811015612af557612add85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050601380549092508591508110612a4557fe5b600091825260209182902001805460408051601f6002600019610100600187161502019094169390930492830185900485028101850190915281815292830182828015612ad35780601f10612aa857610100808354040283529160200191612ad3565b820191906000526020600020905b815481529060010190602001808311612ab657829003601f168201915b5050505050614a06565b15612aed5760019250505061143c565b6001016129f4565b5060125460005b81811015612b6657612b4d86868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050601280549092508591508110612a4557fe5b15612b5e576001935050505061143c565b600101612afc565b50600095945050505050565b3361100114612b935760405162461bcd60e51b8152600401610cbc9061753c565b600b54612c5157612ba26163d0565b60015460005b81811015612c4d57600b805460018101825560009190915283516000805160206177f283398151915260169092029182019081556020808601516000805160206178328339815191528401805460ff1916911515919091179055604086015180518794612c29936000805160206178128339815191529091019201906163ff565b506060820151612c3f9060038301906013616479565b505050806001019050612ba8565b5050505b6000612c5c82614a6a565b9050612c67816112c2565b15612c7657612c768282614910565b5050565b606581565b334114612c9e5760405162461bcd60e51b8152600401610cbc9061746b565b60005460ff16612cc05760405162461bcd60e51b8152600401610cbc90616cd1565b60003411612ce05760405162461bcd60e51b8152600401610cbc90616fd1565b6001600160a01b0381166000908152600460205260409020546007543491906103e89060ff1615612d1057506006545b600083118015612d205750600081115b15612dc1576000612d3d61271061101d868563ffffffff61423916565b90508015612dbf5760405161dead9082156108fc029083906000818181858888f19350505050158015612d74573d6000803e3d6000fd5b507f627059660ea01c4733a328effb2294d2f86905bf806da763a89cee254de8bee581604051612da49190617594565b60405180910390a1612dbc848263ffffffff6141f716565b93505b505b8115612ebf576000600180840381548110612dd857fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff1615612e4557846001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b485604051612e389190617594565b60405180910390a2612eb9565b600354612e58908563ffffffff61427316565b6003908155810154612e70908563ffffffff61427316565b60038201556040516001600160a01b038616907f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc05590612eb0908790617594565b60405180910390a25b50612f01565b836001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b484604051612ef89190617594565b60405180910390a25b50505050565b600e5481565b61100081565b61dead81565b600b8181548110612f2657fe5b6000918252602091829020601691909102018054600180830154600280850180546040805161010096831615969096026000190190911692909204601f810188900488028501880190925281845293965060ff90911694919291830182828015612fd15780601f10612fa657610100808354040283529160200191612fd1565b820191906000526020600020905b815481529060010190602001808311612fb457829003601f168201915b5050505050905083565b61100481565b6000600a5460001480612ff2575081155b80612ffd5750600954155b1561300a57506000610f23565b60096000815460019003919050819055506000613055600a5461101d8561101d600b898154811061303757fe5b6000918252602090912060169091020154439063ffffffff6141f716565b90506000600b858154811061306657fe5b906000526020600020906016020160010160006101000a81548160ff0219169083151502179055506000806110016001600160a01b0316638256ace66040518163ffffffff1660e01b8152600401604080518083038186803b1580156130cb57600080fd5b505afa1580156130df573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613103919061685e565b915091506000935080831061317d5761311c8787614298565b506040516305bfb49960e41b815261100190635bfb499090613142908a9060040161699b565b600060405180830381600087803b15801561315c57600080fd5b505af1158015613170573d6000803e3d6000fd5b505050506001935061318f565b81831061318f5761318d87614a6a565b505b6040516001600160a01b038816907fb9d38178dc641ff1817967a63c9078cbcd955a9f1fcd75e0e3636de615d44d3b90600090a25050509392505050565b6131d56164a6565b60006131df6164a6565b6131e76164ca565b6131f86131f386614c0d565b614c32565b90506000805b61320783614c7c565b1561337b578061322c5761322261321d84614c9d565b614ceb565b60ff168452613373565b806001141561336e57606061324861324385614c9d565b614d6b565b9050805160405190808252806020026020018201604052801561328557816020015b6132726164ea565b81526020019060019003908161326a5790505b50856020018190525080516040519080825280602002602001820160405280156132c357816020015b60608152602001906001900390816132ae5790505b50604086015260005b8151811015613363576132dd6164ea565b606060006132fd8585815181106132f057fe5b6020026020010151614e3c565b9250925092508061331d578860009a509a50505050505050505050613384565b828960200151858151811061332e57fe5b6020026020010181905250818960400151858151811061334a57fe5b60200260200101819052505050508060010190506132cc565b506001925050613373565b61337b565b6001016131fe565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b60608152602001906001900390816133a35790505090506133c98363ffffffff16614f56565b816000815181106133d657fe5b6020026020010181905250610f2381614f69565b6000602983511115613421576000805160206177d283398151915260405161341190616de4565b60405180910390a150606661143c565b60005b83518110156134bf5760005b818110156134b65784818151811061344457fe5b6020026020010151600001516001600160a01b031685838151811061346557fe5b6020026020010151600001516001600160a01b031614156134ae576000805160206177d283398151915260405161349b90616f3f565b60405180910390a160669250505061143c565b600101613430565b50600101613424565b506060806134cd8585614ff3565b60015491935091506000908190815b818110156135525767016345785d8a0000600182815481106134fa57fe5b9060005260206000209060040201600301541061351c5783600101935061354a565b60006001828154811061352b57fe5b906000526020600020906004020160030154111561354a578260010192505b6001016134dc565b5060608360405190808252806020026020018201604052801561357f578160200160208202803683370190505b5090506060846040519080825280602002602001820160405280156135ae578160200160208202803683370190505b5090506060856040519080825280602002602001820160405280156135dd578160200160208202803683370190505b50905060608660405190808252806020026020018201604052801561360c578160200160208202803683370190505b509050600060608760405190808252806020026020018201604052801561363d578160200160208202803683370190505b50905060608860405190808252806020026020018201604052801561366c578160200160208202803683370190505b509050600099506000985060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b1580156136b457600080fd5b505afa1580156136c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136ec9190616846565b905067016345785d8a0000811115613737576000805160206177d283398151915260405161371990617269565b60405180910390a160689d505050505050505050505050505061143c565b60005b898110156139a85767016345785d8a00006001828154811061375857fe5b906000526020600020906004020160030154106138dd576001818154811061377c57fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316898d815181106137ad57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be400600183815481106137e257fe5b906000526020600020906004020160030154816137fb57fe5b066001838154811061380957fe5b90600052602060002090600402016003015403905061383183826141f790919063ffffffff16565b898e8151811061383d57fe5b6020026020010181815250506001828154811061385657fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316878e8151811061388757fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081888e815181106138b457fe5b60209081029190910101526138cf868263ffffffff61427316565b95508c6001019c50506139a0565b6000600182815481106138ec57fe5b90600052602060002090600402016003015411156139a0576001818154811061391157fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316848c8151811061394257fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506001818154811061396f57fe5b906000526020600020906004020160030154838c8151811061398d57fe5b6020026020010181815250508a6001019a505b60010161373a565b5060008415613c1e576002546040516303702b2960e51b815261100491636e0565209188916139e2918e918e918d91420190600401616a8d565b6020604051808303818588803b1580156139fb57600080fd5b505af193505050508015613a2c575060408051601f3d908101601f19168201909252613a2991810190616773565b60015b613ba3576040516000815260443d1015613a4857506000613ae3565b60046000803e60005160e01c6308c379a08114613a69576000915050613ae3565b60043d036004833e81513d60248201116001600160401b0382111715613a9457600092505050613ae3565b80830180516001600160401b03811115613ab5576000945050505050613ae3565b8060208301013d8601811115613ad357600095505050505050613ae3565b601f01601f191660405250925050505b80613aee5750613b30565b60019150857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf28082604051613b229190616b12565b60405180910390a250613b9e565b3d808015613b5a576040519150601f19603f3d011682016040523d82523d6000602084013e613b5f565b606091505b5060019150857fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a4582604051613b949190616b12565b60405180910390a2505b613c1e565b8015613be5577fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b7086604051613bd89190617594565b60405180910390a1613c1c565b857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280604051613c1390616bd4565b60405180910390a25b505b8015613dd45760005b8751811015613dd2576000888281518110613c3e57fe5b60200260200101519050600060018281548110613c5757fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc9185908110613c8857fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f1935050505090508015613d445760018281548110613cc957fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d9185908110613d1857fe5b906000526020600020906004020160030154604051613d379190617594565b60405180910390a2613dc8565b60018281548110613d5157fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d9185908110613da057fe5b906000526020600020906004020160030154604051613dbf9190617594565b60405180910390a25b5050600101613c27565b505b835115613f1e5760005b8451811015613f1c576000858281518110613df557fe5b60200260200101516001600160a01b03166108fc868481518110613e1557fe5b60200260200101519081150290604051600060405180830381858888f1935050505090508015613eab57858281518110613e4b57fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d868481518110613e8957fe5b6020026020010151604051613e9e9190617594565b60405180910390a2613f13565b858281518110613eb757fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d868481518110613ef557fe5b6020026020010151604051613f0a9190617594565b60405180910390a25b50600101613dde565b505b5050505050505050505050506000471115613f9a577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d47604051613f629190617594565b60405180910390a1604051611002904780156108fc02916000818181858888f19350505050158015613f98573d6000803e3d6000fd5b505b60006003819055600555815115613fb557613fb5828261522c565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015613ff257600080fd5b505af1158015614006573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a1506000949350505050565b80516001600160a01b031660009081526004602052604081205480158061408f575060018082038154811061406f57fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b156140d55782516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a2600091505061138c565b60015460055460001982011180159061412b5784516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a26000935050505061138c565b60058054600190810190915580548190600019860190811061414957fe5b6000918252602082206002600490920201018054921515600160e01b0260ff60e01b199093169290921790915585516040516001600160a01b03909116917ff226e7d8f547ff903d9d419cf5f54e0d7d07efa9584135a53a057c5f1f27f49a91a2506000949350505050565b6000610f2383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506159e6565b6000610f2383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250615a1d565b6000826142485750600061143c565b8282028284828161425557fe5b0414610f235760405162461bcd60e51b8152600401610cbc90617169565b600082820183811015610f235760405162461bcd60e51b8152600401610cbc90616d08565b600080600183815481106142a857fe5b906000526020600020906004020160030154905060006001808054905003905060016142d26126d2565b5111614307576000600185815481106142e757fe5b90600052602060002090600402016003018190555060009250505061143c565b846001600160a01b03167f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a70836040516143409190617594565b60405180910390a26001600160a01b038516600090815260046020526040812055835b6001546000190181101561452d576001816001018154811061438157fe5b90600052602060002090600402016001828154811061439c57fe5b60009182526020909120825460049092020180546001600160a01b03199081166001600160a01b0393841617825560018085015481840180548416918616919091179055600280860180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b19909416939093179055600392830154920191909155600b80549091830190811061445d57fe5b9060005260206000209060160201600b828154811061447857fe5b600091825260209091208254601690920201908155600180830154818301805460ff909216151560ff19909216919091179055600280840180546144cf93838601939082161561010002600019019091160461651f565b506144e260038281019084016013616594565b509050508060010160046000600184815481106144fb57fe5b600091825260208083206004909202909101546001600160a01b03168352820192909252604001902055600101614363565b50600180548061453957fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b80548061458c57fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906145be60028301826165be565b6145cc600383016000616602565b5050905560008183816145db57fe5b049050801561463f5760015460005b8181101561463c57826001828154811061460057fe5b906000526020600020906004020160030154016001828154811061462057fe5b60009182526020909120600360049092020101556001016145ea565b50505b50600195945050505050565b60015481516040805182815260208084028201019091526060929190839082801561468a57816020015b60608152602001906001900390816146755790505b50600b5490915083146146a157925061138c915050565b60005b828110156147b057600b6001600460008985815181106146c057fe5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205403815481106146f457fe5b600091825260209182902060026016909202018101805460408051601f60001961010060018616150201909316949094049182018590048502840185019052808352919290919083018282801561478c5780601f106147615761010080835404028352916020019161478c565b820191906000526020600020905b81548152906001019060200180831161476f57829003601f168201915b505050505082828151811061479d57fe5b60209081029190910101526001016146a4565b50949350505050565b60005b8281101561490657600082878388016040516020016147dc92919061698d565b6040516020818303038152906040528051906020012060001c816147fc57fe5b069050808501828701146148fd576000898388018151811061481a57fe5b602002602001015190506060898489018151811061483457fe5b602002602001015190508a8388018151811061484c57fe5b60200260200101518b858a018151811061486257fe5b60200260200101906001600160a01b031690816001600160a01b031681525050818b8489018151811061489157fe5b60200260200101906001600160a01b031690816001600160a01b03168152505089838801815181106148bf57fe5b60200260200101518a858a01815181106148d557fe5b6020026020010181905250808a848901815181106148ef57fe5b602002602001018190525050505b506001016147bc565b5050505050505050565b600980546001908101909155600b80548390811061492a57fe5b906000526020600020906016020160010160006101000a81548160ff02191690831515021790555043600b828154811061496057fe5b600091825260208220601690910201919091556040516001600160a01b038416917ff62981a567ec3cec866c6fa93c55bcdf841d6292d18b8d522ececa769375d82d91a25050565b6000816040516020016149bb9190616971565b60405160208183030381529060405280519060200120836040516020016149e29190616971565b6040516020818303038152906040528051906020012014905092915050565b015190565b815181516000916001918114808314614a225760009250614a60565b600160208701838101602088015b600284838510011415614a5b578051835114614a4f5760009650600093505b60209283019201614a30565b505050505b5090949350505050565b6001600160a01b03811660009081526004602052604081205480614a935750600019905061138c565b600181039050600060018281548110614aa857fe5b9060005260206000209060040201600301549050600060018381548110614acb57fe5b6000918252602090912060036004909202010155600154604051600019909101906001600160a01b038616907f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d90614b24908590617594565b60405180910390a280614b3c5782935050505061138c565b6000818381614b4757fe5b0490508015614c035760005b84811015614ba5578160018281548110614b6957fe5b9060005260206000209060040201600301540160018281548110614b8957fe5b6000918252602090912060036004909202010155600101614b53565b50600180549085015b81811015614c00578260018281548110614bc457fe5b9060005260206000209060040201600301540160018281548110614be457fe5b6000918252602090912060036004909202010155600101614bae565b50505b5091949350505050565b614c15616611565b506040805180820190915281518152602082810190820152919050565b614c3a6164ca565b614c4382615a49565b614c4c57600080fd5b6000614c5b8360200151615a83565b60208085015160408051808201909152868152920190820152915050919050565b6000614c86616611565b505080518051602091820151919092015191011190565b614ca5616611565b614cae82614c7c565b614cb757600080fd5b60208201516000614cc782615ae6565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590614d0057508151602110155b614d0957600080fd5b6000614d188360200151615a83565b90508083600001511015614d3e5760405162461bcd60e51b8152600401610cbc90617327565b8251602080850151830180519284900392918310156147b057506020919091036101000a90049392505050565b6060614d7682615a49565b614d7f57600080fd5b6000614d8a83615bc7565b9050606081604051908082528060200260200182016040528015614dc857816020015b614db5616611565b815260200190600190039081614dad5790505b5090506000614dda8560200151615a83565b60208601510190506000805b84811015614e3157614df783615ae6565b9150604051806040016040528083815260200184815250848281518110614e1a57fe5b602090810291909101015291810191600101614de6565b509195945050505050565b614e446164ea565b60606000614e506164ea565b6060614e5a6164ca565b614e6387614c32565b90506000805b614e7283614c7c565b15614f475780614e9d57614e8d614e8884614c9d565b615c23565b6001600160a01b03168552614f3f565b8060011415614ec557614eb2614e8884614c9d565b6001600160a01b03166020860152614f3f565b8060021415614eed57614eda614e8884614c9d565b6001600160a01b03166040860152614f3f565b8060031415614f1957614f0261321d84614c9d565b6001600160401b0316606086015260019150614f3f565b8060041415614f3a57614f33614f2e84614c9d565b615c3d565b9350614f3f565b614f47565b600101614e69565b50929791965091945092505050565b606061143c614f6483615cad565b615d93565b6060815160001415614f8a575060408051600081526020810190915261138c565b606082600081518110614f9957fe5b602002602001015190506000600190505b8351811015614fda57614fd082858381518110614fc357fe5b6020026020010151615de5565b9150600101614faa565b50610f23614fed825160c060ff16615e62565b82615de5565b6060806000808080806150046127db565b6001549091505b801561511257600181039250600b838154811061502457fe5b600091825260209091206001601690920201015460ff1661504457615109565b6001838154811061505157fe5b60009182526020909120600490910201546001600160a01b03169450615078858484612fe1565b935083158061508b575060018a51038610155b1561509557615109565b60005b8a5181101561510757856001600160a01b03168b82815181106150b757fe5b6020026020010151600001516001600160a01b031614156150ff5760018b82815181106150e057fe5b6020908102919091010151901515608090910152600190960195615107565b600101615098565b505b6000190161500b565b508489510360405190808252806020026020018201604052801561515057816020015b61513d6164ea565b8152602001906001900390816151355790505b5096508489510360405190808252806020026020018201604052801561518a57816020015b60608152602001906001900390816151755790505b5095506000915060005b895181101561521e578981815181106151a957fe5b602002602001015160800151615216578981815181106151c557fe5b60200260200101518884815181106151d957fe5b60200260200101819052508881815181106151f057fe5b602002602001015187848151811061520457fe5b60200260200101819052508260010192505b600101615194565b5050505050505b9250929050565b600154825160005b828110156153495760016152466164ea565b6001838154811061525357fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b8481101561531d578781815181106152e357fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b03161415615315576000925061531d565b6001016152cf565b50811561533f5780516001600160a01b03166000908152600460205260408120555b5050600101615234565b508082111561540857805b8281101561540657600180548061536757fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b8054806153ba57fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906153ec60028301826165be565b6153fa600383016000616602565b50509055600101615354565b505b60008183106154175781615419565b825b905060005b81811015615788576154cb86828151811061543557fe5b60200260200101516001838154811061544a57fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a0820152615f34565b61567f5780600101600460008884815181106154e357fe5b6020026020010151600001516001600160a01b03166001600160a01b031681526020019081526020016000208190555085818151811061551f57fe5b60200260200101516001828154811061553457fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a09091015160039091015584518590829081106155ef57fe5b6020026020010151600b828154811061560457fe5b906000526020600020906016020160020190805190602001906156289291906163ff565b506000600b828154811061563857fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b80548390811061566957fe5b6000918252602090912060169091020155615780565b61571085828151811061568e57fe5b6020026020010151600b83815481106156a357fe5b600091825260209182902060026016909202018101805460408051601f600019610100600186161502019093169490940491820185900485028401850190528083529192909190830182828015612ad35780601f10612aa857610100808354040283529160200191612ad3565b61575b5784818151811061572057fe5b6020026020010151600b828154811061573557fe5b906000526020600020906016020160020190805190602001906157599291906163ff565b505b60006001828154811061576a57fe5b9060005260206000209060040201600301819055505b60010161541e565b5082821115615960576157996163d0565b835b8381101561595d578581815181106157af57fe5b6020026020010151826040018190525060018782815181106157cd57fe5b6020908102919091018101518254600181810185556000948552838520835160049093020180546001600160a01b039384166001600160a01b0319918216178255848601518284018054918616918316919091179055604080860151600284018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909a1692909616919091179290921696909617169190911790935560a090930151600390930192909255600b80549283018155909352845160169091026000805160206177f28339815191528101918255858301516000805160206178328339815191528201805491151560ff199092169190911790559285015180518694929361590393600080516020617812833981519152019201906163ff565b5060608201516159199060038301906013616479565b505050806001016004600089848151811061593057fe5b602090810291909101810151516001600160a01b031682528101919091526040016000205560010161579b565b50505b615968615fb5565b615970616197565b6000600981905560015493505b838110156159de576000600b828154811061599457fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b8054839081106159c557fe5b600091825260209091206016909102015560010161597d565b505050505050565b60008183615a075760405162461bcd60e51b8152600401610cbc9190616b12565b506000838581615a1357fe5b0495945050505050565b60008184841115615a415760405162461bcd60e51b8152600401610cbc9190616b12565b505050900390565b8051600090615a5a5750600061138c565b6020820151805160001a9060c0821015615a795760009250505061138c565b5060019392505050565b8051600090811a6080811015615a9d57600091505061138c565b60b8811080615ab8575060c08110801590615ab8575060f881105b15615ac757600191505061138c565b60c0811015615adb5760b51901905061138c565b60f51901905061138c565b80516000908190811a6080811015615b015760019150615bc0565b60b8811015615b1657607e1981019150615bc0565b60c0811015615b6757600060b78203600186019550806020036101000a865104915060018101820193505080831015615b615760405162461bcd60e51b8152600401610cbc906170b6565b50615bc0565b60f8811015615b7c5760be1981019150615bc0565b600060f78203600186019550806020036101000a865104915060018101820193505080831015615bbe5760405162461bcd60e51b8152600401610cbc906170b6565b505b5092915050565b8051600090615bd85750600061138c565b60008090506000615bec8460200151615a83565b602085015185519181019250015b80821015615c1a57615c0b82615ae6565b82019150826001019250615bfa565b50909392505050565b8051600090601514615c3457600080fd5b61143c82614ceb565b8051606090615c4b57600080fd5b6000615c5a8360200151615a83565b83516040805191839003808352601f19601f8201168301602001909152919250606090828015615c91576020820181803683370190505b50905060008160200190506147b0848760200151018285616385565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416615cf157506018615d15565b6fffffffffffffffffffffffffffffffff198416615d1157506010615d15565b5060005b6020811015615d4b57818181518110615d2a57fe5b01602001516001600160f81b03191615615d4357615d4b565b600101615d15565b60008160200390506060816040519080825280601f01601f191660200182016040528015615d80576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015615dc55750607f60f81b82600081518110615db357fe5b01602001516001600160f81b03191611155b15615dd157508061138c565b61143c615de38351608060ff16615e62565b835b6060806040519050835180825260208201818101602087015b81831015615e16578051835260209283019201615dfe565b50855184518101855292509050808201602086015b81831015615e43578051835260209283019201615e2b565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310615e8c5760405162461bcd60e51b8152600401610cbc90616eba565b60408051600180825281830190925260609160208201818036833701905050905060378411615ee65782840160f81b81600081518110615ec857fe5b60200101906001600160f81b031916908160001a905350905061143c565b6060615ef185615cad565b90508381510160370160f81b82600081518110615f0a57fe5b60200101906001600160f81b031916908160001a905350615f2b8282615de5565b95945050505050565b805182516000916001600160a01b039182169116148015615f6e575081602001516001600160a01b031683602001516001600160a01b0316145b8015615f93575081604001516001600160a01b031683604001516001600160a01b0316145b8015610f235750506060908101519101516001600160401b0390811691161490565b6012546013548082111561600057805b82811015615ffe576012805480615fd857fe5b600190038181906000526020600020016000615ff491906165be565b9055600101615fc5565b505b600081831061600f5781616011565b825b905060005b81811015616129576160ce6012828154811061602e57fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156160bc5780601f10616091576101008083540402835291602001916160bc565b820191906000526020600020905b81548152906001019060200180831161609f57829003601f168201915b505050505060138381548110612a4557fe5b61612157601381815481106160df57fe5b90600052602060002001601282815481106160f657fe5b90600052602060002001908054600181600116156101000203166002900461611f92919061651f565b505b600101616016565b5082821115610cdc57825b82811015612f015760126013828154811061614b57fe5b600091825260208083208454600181810187559585529190932092909101805461618e94939092019290916002610100928216159290920260001901160461651f565b50600101616134565b601354600b54808211156161e257805b828110156161e05760138054806161ba57fe5b6001900381819060005260206000200160006161d691906165be565b90556001016161a7565b505b60008183106161f157816161f3565b825b905060005b81811015616312576162b06013828154811061621057fe5b600091825260209182902001805460408051601f600260001961010060018716150201909416939093049283018590048502810185019091528181529283018282801561629e5780601f106162735761010080835404028352916020019161629e565b820191906000526020600020905b81548152906001019060200180831161628157829003601f168201915b5050505050600b83815481106156a357fe5b61630a57600b81815481106162c157fe5b9060005260206000209060160201600201601382815481106162df57fe5b90600052602060002001908054600181600116156101000203166002900461630892919061651f565b505b6001016161f8565b5082821115610cdc57825b82811015612f01576013600b828154811061633457fe5b60009182526020808320845460018082018755958552919093206016929092029092016002908101805461637c9593909401939092600019908216156101000201160461651f565b5060010161631d565b8061638f57610cdc565b5b602081106163af578251825260209283019290910190601f1901616390565b915181516020939093036101000a6000190180199091169216919091179052565b604051806080016040528060008152602001600015158152602001606081526020016163fa61662b565b905290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061644057805160ff191683800117855561646d565b8280016001018555821561646d579182015b8281111561646d578251825591602001919060010190616452565b5061281692915061664a565b826013810192821561646d579160200282018281111561646d578251825591602001919060010190616452565b6040518060600160405280600060ff16815260200160608152602001606081525090565b60405180604001604052806164dd616611565b8152602001600081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10616558578054855561646d565b8280016001018555821561646d57600052602060002091601f016020900482015b8281111561646d578254825591600101919060010190616579565b826013810192821561646d579182018281111561646d578254825591600101919060010190616579565b50805460018160011615610100020316600290046000825580601f106165e45750611598565b601f016020900490600052602060002090810190611598919061664a565b5061159890601381019061664a565b604051806040016040528060008152602001600081525090565b6040518061026001604052806013906020820280368337509192915050565b6127bb91905b808211156128165760008155600101616650565b60008083601f840112616675578182fd5b5081356001600160401b0381111561668b578182fd5b602083019150836020808302850101111561522557600080fd5b60008083601f8401126166b6578182fd5b5081356001600160401b038111156166cc578182fd5b60208301915083602082850101111561522557600080fd5b6000602082840312156166f5578081fd5b81356001600160a01b0381168114610f23578182fd5b60008060008060408587031215616720578283fd5b84356001600160401b0380821115616736578485fd5b61674288838901616664565b9096509450602087013591508082111561675a578384fd5b5061676787828801616664565b95989497509550505050565b600060208284031215616784578081fd5b81518015158114610f23578182fd5b600080602083850312156167a5578182fd5b82356001600160401b038111156167ba578283fd5b6167c6858286016166a5565b90969095509350505050565b600080600080604085870312156167e7578384fd5b84356001600160401b03808211156167fd578586fd5b616809888389016166a5565b90965094506020870135915080821115616821578384fd5b50616767878288016166a5565b60006020828403121561683f578081fd5b5035919050565b600060208284031215616857578081fd5b5051919050565b60008060408385031215616870578182fd5b505080516020909101519092909150565b600080600060408486031215616895578283fd5b833560ff811681146168a5578384fd5b925060208401356001600160401b038111156168bf578283fd5b6168cb868287016166a5565b9497909650939450505050565b6000815180845260208085019450808401835b838110156169105781516001600160a01b0316875295820195908201906001016168eb565b509495945050505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b6000815180845261695d8160208601602086016175fa565b601f01601f19169290920160200192915050565b600082516169838184602087016175fa565b9190910192915050565b918252602082015260400190565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b03968716815294861660208601529290941660408401526001600160401b03166060830152911515608082015260a081019190915260c00190565b600060208252610f2360208301846168d8565b600060408252616a3060408301856168d8565b602083820381850152818551808452828401915082838202850101838801865b83811015616a7e57601f19878403018552616a6c838351616945565b94860194925090850190600101616a50565b50909998505050505050505050565b600060808252616aa060808301876168d8565b828103602084810191909152865180835287820192820190845b81811015616ad657845183529383019391830191600101616aba565b50508481036040860152616aea81886168d8565b93505050506001600160401b038316606083015295945050505050565b901515815260200190565b600060208252610f236020830184616945565b600060408252616b3960408301868861691b565b8281036020840152616b4c81858761691b565b979650505050505050565b6020808252601c908201527f6c656e677468206f66206275726e526174696f206d69736d6174636800000000604082015260600190565b60208082526026908201527f6c656e677468206f66206d61784e756d4f664d61696e7461696e696e67206d696040820152650e6dac2e8c6d60d31b606082015260800190565b6020808252601b908201527f6261746368207472616e736665722072657475726e2066616c73650000000000604082015260600190565b6020808252602c908201527f6c656e677468206f66206d61784e756d4f66576f726b696e6743616e6469646160408201526b0e8cae640dad2e6dac2e8c6d60a31b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61696e7461696e536c6173685363616c65206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252818101527f6c656e677468206f66206e756d4f66436162696e657473206d69736d61746368604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526028908201527f746865206e756d4f66436162696e657473206d75737420626520677265617465604082015267072207468616e20360c41b606082015260800190565b60208082526039908201527f746865206e756d4f66436162696e657473206d757374206265206c657373207460408201527f68616e204d41585f4e554d5f4f465f56414c494441544f525300000000000000606082015260800190565b60208082526029908201527f746865206e756d626572206f662076616c696461746f727320657863656564206040820152681d1a19481b1a5b5a5d60ba1b606082015260800190565b60208082526022908201527f63616e206e6f7420646f207468697320747769636520696e206f6e6520626c6f604082015261636b60f01b606082015260800190565b6020808252602b908201527f746865206275726e526174696f206d757374206265206e6f206772656174657260408201526a0207468616e2031303030360ac1b606082015260800190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526037908201527f746865206d61784e756d4f664d61696e7461696e696e67206d7573742062652060408201527f6c657373207468616e206e756d4f66436162696e657473000000000000000000606082015260800190565b6020808252602b908201527f6475706c696361746520636f6e73656e7375732061646472657373206f66207660408201526a185b1a59185d1bdc94d95d60aa1b606082015260800190565b60208082526027908201527f7468652065787069726554696d655365636f6e64476170206973206f7574206f604082015266662072616e676560c81b606082015260800190565b6020808252601590820152746465706f7369742076616c7565206973207a65726f60581b604082015260600190565b60208082526049908201527f746865206d61784e756d4f66576f726b696e6743616e64696461746573206d7560408201527f7374206265206e6f742067726561746572207468616e206d61784e756d4f6643606082015268616e6469646174657360b81b608082015260a00190565b60208082526027908201527f7468652066696e616c697479526577617264526174696f206973206f7574206f604082015266662072616e676560c81b606082015260800190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b60208082526023908201527f63616e206e6f7420656e7465722054656d706f72617279204d61696e74656e616040820152626e636560e81b606082015260800190565b60208082526025908201527f6c656e677468206f66206a61696c2076616c696461746f7273206d757374206260408201526465206f6e6560d81b606082015260800190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61784e756d4f6643616e64696461746573206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252601290820152716e6f7420696e206d61696e74656e616e636560701b604082015260600190565b60208082526021908201527f666565206973206c6172676572207468616e2044555354595f494e434f4d494e6040820152604760f81b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b60208082526026908201527f6c656e677468206f662066696e616c697479526577617264526174696f206d696040820152650e6dac2e8c6d60d31b606082015260800190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526026908201527f6c656e677468206f662065787069726554696d655365636f6e64476170206d696040820152650e6dac2e8c6d60d31b606082015260800190565b60208082526017908201527f6f6e6c792063757272656e742076616c696461746f7273000000000000000000604082015260600190565b60208082526021908201527f6661696c656420746f20706172736520696e69742076616c696461746f7253656040820152601d60fa1b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b6020808252603e908201527f746865206d61696e7461696e536c6173685363616c65206d757374206265206760408201527f726561746572207468616e203020616e64206c657373207468616e2031300000606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b60208082526029908201527f746865206d6573736167652073656e646572206d75737420626520736c6173686040820152680818dbdb9d1c9858dd60ba1b606082015260800190565b61ffff91909116815260200190565b90815260200190565b6000848252831515602083015260606040830152615f2b6060830184616945565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff8516825260406020830152615f2b60408301848661691b565b60005b838110156176155781810151838201526020016175fd565b83811115612f01575050600091015256fef901a880f901a4f844941284214b9b9c85549ab3d2b972df0deef66ac2c9946ddf42a51534fc98d0c0a3b42c963cace8441ddf946ddf42a51534fc98d0c0a3b42c963cace8441ddf8410000000f84494a2959d3f95eae5dc7d70144ce1b73b403b7eb6e0948081ef03f1d9e0bb4a5bf38f16285c879299f07f948081ef03f1d9e0bb4a5bf38f16285c879299f07f8410000000f8449435552c16704d214347f29fa77f77da6d75d7c75294dc4973e838e3949c77aced16ac2315dc2d7ab11194dc4973e838e3949c77aced16ac2315dc2d7ab1118410000000f84494980a75ecd1309ea12fa2ed87a8744fbfc9b863d594cc6ac05c95a99c1f7b5f88de0e3486c82293b27094cc6ac05c95a99c1f7b5f88de0e3486c82293b2708410000000f84494f474cf03cceff28abc65c9cbae594f725c80e12d94e61a183325a18a173319dd8e19c8d069459e217594e61a183325a18a173319dd8e19c8d069459e21758410000000f84494b71b214cb885500844365e95cd9942c7276e7fd894d22ca3ba2141d23adab65ce4940eb7665ea2b6a794d22ca3ba2141d23adab65ce4940eb7665ea2b6a7841000000070e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb20175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbb0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbaa26469706673582212201bfbc326e63aa136a8685cddd241600b97b8502885f737aee34f1189c78be29b64736f6c63430006040033" + }, + "0x0000000000000000000000000000000000001001": { + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b506004361061027f5760003560e01c80637942fd051161015c578063c80d4b8f116100ce578063dc927faf11610087578063dc927faf146104ad578063e1c7392a146104b5578063f9a2bbc7146104bd578063fc3e5908146104c5578063fc4333cd146104cd578063fd6a6879146104d55761027f565b8063c80d4b8f1461045c578063c81b166214610464578063c8509d811461046c578063c96be4cb1461047f578063cc844b7314610492578063d2a42e4b146104a55761027f565b80639dc09262116101205780639dc0926214610421578063a1a11bf514610429578063a78abc1614610431578063ab51bb9614610439578063ac0af62914610441578063ac431751146104495761027f565b80637942fd05146103ee5780638256ace6146103f6578063831d65d1146103fe57806396713da9146104115780639bc8e4f2146104195761027f565b8063493279b1116101f557806362b72cf5116101b957806362b72cf5146103be5780636e47b482146103c657806370fd5bad146103ce578063718a8aa8146103d657806375d47a0a146103de5780637912a65d146103e65761027f565b8063493279b11461037c5780634bf6c8821461039157806351e8067214610399578063567a372d146103a15780635bfb4990146103a95761027f565b806335aa2e441161024757806335aa2e441461030e57806337c8dab914610321578063389f4f71146103425780633a63f4b1146103575780633dffc3871461035f57806343756e5c146103745761027f565b80630bee7a67146102845780630e2374a5146102a25780631182b875146102b757806322d1e80b146102d757806323bac5a2146102ec575b600080fd5b61028c6104dd565b604051610299919061336a565b60405180910390f35b6102aa6104e2565b6040516102999190612c1b565b6102ca6102c5366004612b51565b6104e8565b6040516102999190612c53565b6102df61054e565b6040516102999190612c48565b6102ff6102fa3660046128ff565b610557565b60405161029993929190613352565b6102aa61031c366004612b21565b61057a565b61033461032f3660046128ff565b6105a1565b604051610299929190613344565b61034a6105f8565b604051610299919061331a565b61034a6105fe565b610367610604565b604051610299919061337b565b6102aa610609565b61038461060f565b604051610299919061330b565b610367610614565b6102aa610619565b61034a61061f565b6103bc6103b73660046128ff565b610625565b005b61034a6106d0565b6102aa6106d6565b6103676106dc565b6103676106e1565b6102aa6106e6565b61034a6106ec565b6103676106f1565b6103346106f6565b6103bc61040c366004612b51565b610700565b610367610812565b61034a610817565b6102aa610822565b6102aa610828565b6102df61082e565b61028c610837565b61034a61083c565b6103bc610457366004612a05565b610841565b61034a610ce0565b6102aa610ce5565b6103bc61047a366004612b51565b610ceb565b6103bc61048d3660046128ff565b610d5c565b6103bc6104a0366004612a6e565b61114d565b61034a611733565b6102aa611738565b6103bc61173e565b6102aa61177a565b610367611780565b6103bc611785565b6102aa611bce565b606481565b61200181565b606033612000146105145760405162461bcd60e51b815260040161050b90613163565b60405180910390fd5b60005460ff166105365760405162461bcd60e51b815260040161050b90612d04565b60405162461bcd60e51b815260040161050b90613254565b60075460ff1681565b600260208190526000918252604090912080546001820154919092015460ff1683565b6001818154811061058757fe5b6000918252602090912001546001600160a01b0316905081565b6000806105ac6126e6565b5050506001600160a01b0316600090815260026020818152604092839020835160608101855281548082526001830154938201849052919093015460ff16151592909301919091529091565b60055481565b60065481565b600181565b61100181565b606181565b600881565b61200081565b60045481565b33611000146106465760405162461bcd60e51b815260040161050b90612f48565b60005460ff166106685760405162461bcd60e51b815260040161050b90612d04565b61200063f7a251d7600b61067b84611bd4565b60006040518463ffffffff1660e01b815260040161069b93929190613389565b600060405180830381600087803b1580156106b557600080fd5b505af11580156106c9573d6000803e3d6000fd5b5050505050565b60035481565b61100581565b600281565b601081565b61100881565b603281565b600b81565b6004546005549091565b33612000146107215760405162461bcd60e51b815260040161050b90613163565b60005460ff166107435760405162461bcd60e51b815260040161050b90612d04565b61074b612709565b600061078c84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611ca692505050565b9150915080156107d35781516040517f7f0956d47419b9525356e7111652b653b530ec6f5096dccc04589bc38e629967916107c69161336a565b60405180910390a16106c9565b81516040517f7d45f62d17443dd4547bca8a8112c60e2385669318dc300ec61a5d2492f262e7916108039161336a565b60405180910390a15050505050565b600981565b662386f26fc1000081565b61100781565b61100681565b60005460ff1681565b600081565b600481565b60005460ff166108635760405162461bcd60e51b815260040161050b90612d04565b33611007146108845760405162461bcd60e51b815260040161050b90613020565b6108ef84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260148152731b5a5cd9195b59585b9bdc951a1c995cda1bdb1960621b60208201529150611d269050565b1561098a57602081146109145760405162461bcd60e51b815260040161050b90612ed4565b604080516020601f840181900481028201810190925282815260009161095291858580838501838280828437600092019190915250611d8092505050565b905060018110158015610966575060055481105b6109825760405162461bcd60e51b815260040161050b9061311e565b600455610c9d565b6109f084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e19995b1bdb9e551a1c995cda1bdb19608a1b60208201529150611d269050565b15610a8c5760208114610a155760405162461bcd60e51b815260040161050b9061306e565b604080516020601f8401819004810282018101909252828152600091610a5391858580838501838280828437600092019190915250611d8092505050565b90506103e88111158015610a68575060045481115b610a845760405162461bcd60e51b815260040161050b90612d72565b600555610c9d565b610b0084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f66696e616c697479536c617368526577617264526174696f000000000000000060208201529150611d269050565b15610b9a5760208114610b255760405162461bcd60e51b815260040161050b9061328b565b604080516020601f8401819004810282018101909252828152600091610b6391858580838501838280828437600092019190915250611d8092505050565b9050600a8110158015610b765750606481105b610b925760405162461bcd60e51b815260040161050b90612e88565b600655610c9d565b610c0e84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f656e61626c654d616c6963696f7573566f7465536c617368000000000000000060208201529150611d269050565b15610c855760208114610c335760405162461bcd60e51b815260040161050b90612da7565b604080516020601f8401819004810282018101909252828152610c6f9190848480838501838280828437600092019190915250611d8592505050565b6007805460ff1916911515919091179055610c9d565b60405162461bcd60e51b815260040161050b906131ff565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a84848484604051610cd29493929190612c66565b60405180910390a150505050565b609681565b61100281565b3361200014610d0c5760405162461bcd60e51b815260040161050b90613163565b60005460ff16610d2e5760405162461bcd60e51b815260040161050b90612d04565b6040517f07db600eebe2ac176be8dcebad61858c245a4961bb32ca2aa3d159b09aa0810e90600090a1505050565b334114610d7b5760405162461bcd60e51b815260040161050b906131b2565b60005460ff16610d9d5760405162461bcd60e51b815260040161050b90612d04565b6003544311610dbe5760405162461bcd60e51b815260040161050b906132d6565b3a15610ddc5760405162461bcd60e51b815260040161050b90612fc3565b60405163155853f360e21b8152611000906355614fcc90610e01908490600401612c1b565b60206040518083038186803b158015610e1957600080fd5b505afa158015610e2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5191906129e5565b610e5a57611146565b610e626126e6565b506001600160a01b0381166000908152600260208181526040928390208351606081018552815481526001820154928101929092529091015460ff161580159282019290925290610ebd576020810180516001019052610f16565b60016040820181905260208201819052805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0384161790555b438152600554602082015181610f2857fe5b0661107457600060208201526040516335409f7f60e01b8152611000906335409f7f90610f59908590600401612c1b565b600060405180830381600087803b158015610f7357600080fd5b505af1158015610f87573d6000803e3d6000fd5b505050506120006001600160a01b031663f7a251d7600b610fa785611bd4565b60006040518463ffffffff1660e01b8152600401610fc793929190613389565b600060405180830381600087803b158015610fe157600080fd5b505af1925050508015610ff2575060015b61106f573d808015611020576040519150601f19603f3d011682016040523d82523d6000602084013e611025565b606091505b50826001600160a01b03167fd7bc86ff5d08c8ab043edec743302aba2520e6635172a428bc956721db9e2d1c836020015183604051611065929190613323565b60405180910390a2505b6110e0565b60045481602001518161108357fe5b066110e0576040516375abf10160e11b81526110009063eb57e202906110ad908590600401612c1b565b600060405180830381600087803b1580156110c757600080fd5b505af11580156110db573d6000803e3d6000fd5b505050505b6001600160a01b0382166000818152600260208181526040808420865181559186015160018301558581015191909201805460ff1916911515919091179055517fddb6012116e51abf5436d956a4f0ebd927e92c576ff96d7918290c8782291e3e9190a2505b5043600355565b60005460ff1661116f5760405162461bcd60e51b815260040161050b90612d04565b604051630a83aaa960e31b81526110069063541d554890611194903390600401612c1b565b60206040518083038186803b1580156111ac57600080fd5b505afa1580156111c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111e491906129e5565b6112005760405162461bcd60e51b815260040161050b90612c98565b60075460ff166112225760405162461bcd60e51b815260040161050b90612ccf565b60065461122f5760146006555b438160000151604001516101000111801561125557504381602001516040015161010001115b6112715760405162461bcd60e51b815260040161050b90613226565b80602001516020015181600001516020015114801561129f5750806020015160600151816000015160600151145b156112bc5760405162461bcd60e51b815260040161050b90612f1b565b8051604081015190511080156112db5750602081015160408101519051105b6112f75760405162461bcd60e51b815260040161050b90612e51565b60208101515181515110801561131c5750806000015160400151816020015160400151105b8061134757508051516020820151511080156113475750806020015160400151816000015160400151105b806113615750806020015160400151816000015160400151145b61137d5760405162461bcd60e51b815260040161050b90612d3b565b604080820151905163ea321e4960e01b81526110009163ea321e49916113a69190600401612c53565b60206040518083038186803b1580156113be57600080fd5b505afa1580156113d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113f691906129e5565b6114125760405162461bcd60e51b815260040161050b90612ff1565b61142481600001518260400151611dad565b801561143d575061143d81602001518260400151611dad565b6114595760405162461bcd60e51b815260040161050b90612df2565b6060806110006001600160a01b0316633b071dcc6040518163ffffffff1660e01b815260040160006040518083038186803b15801561149757600080fd5b505afa1580156114ab573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526114d39190810190612922565b9150915060005b8151811015611610576115048282815181106114f257fe5b60200260200101518560400151611f85565b15611608576006546040516309a99b4f60e41b815260646110028031909302049190639a99b4f09061153c9033908590600401612c2f565b602060405180830381600087803b15801561155657600080fd5b505af115801561156a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061158e9190612b39565b506110006001600160a01b03166335409f7f8584815181106115ac57fe5b60200260200101516040518263ffffffff1660e01b81526004016115d09190612c1b565b600060405180830381600087803b1580156115ea57600080fd5b505af11580156115fe573d6000803e3d6000fd5b5050505050611610565b6001016114da565b50600061162284604001516000611fe9565b90506120006001600160a01b031663f7a251d7600b6116448760400151612005565b60006040518463ffffffff1660e01b815260040161166493929190613389565b600060405180830381600087803b15801561167e57600080fd5b505af192505050801561168f575060015b611701573d8080156116bd576040519150601f19603f3d011682016040523d82523d6000602084013e6116c2565b606091505b50817fd58d1183100bd0932c0588f31c4205d6bc6168909765a96c41adbed3115f3628826040516116f39190612c53565b60405180910390a25061172d565b60405181907f7b78aadacff901d8b63d0dba4f86283d4db8aef27f9ed70413dd860f1c9532b690600090a25b50505050565b601481565b61100381565b60005460ff16156117615760405162461bcd60e51b815260040161050b906130b0565b603260045560966005556000805460ff19166001179055565b61100081565b600381565b33611000146117a65760405162461bcd60e51b815260040161050b90612f48565b60005460ff166117c85760405162461bcd60e51b815260040161050b90612d04565b6001546117d457611bcc565b600154600090600019015b808211611ba0576000805b82841015611903576117fa6126e6565b600260006001878154811061180b57fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff1615159082015260055490915060049004816020015111156118ed5760046005548161187857fe5b0481602001510381602001818152505080600260006001888154811061189a57fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208351815591830151600183015591909101516002909101805460ff19169115159190911790556118f7565b6001925050611903565b508360010193506117ea565b828411611a9a576119126126e6565b600260006001868154811061192357fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff161515908201526005549091506004900481602001511115611a0b5760046005548161199057fe5b048160200151038160200181815250508060026000600187815481106119b257fe5b6000918252602080832091909101546001600160a01b03168352828101939093526040918201902083518155918301516001808401919091559201516002909101805460ff19169115159190911790559150611a9a9050565b6002600060018681548110611a1c57fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff19169055805480611a6057fe5b600082815260209020810160001990810180546001600160a01b031916905501905583611a8d5750611a9a565b5060001990920191611903565b818015611aa45750805b15611b83576002600060018681548110611aba57fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff19169055805484908110611b0157fe5b600091825260209091200154600180546001600160a01b039092169186908110611b2757fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506001805480611b6057fe5b600082815260209020810160001990810180546001600160a01b03191690550190555b82611b8f575050611ba0565b5050600190910190600019016117df565b6040517fcfdb3b6ccaeccbdc68be3c59c840e3b3c90f0a7c491f5fff1cf56cfda200dd9c90600090a150505b565b61100481565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081611bef579050509050611c18836001600160a01b0316612040565b81600081518110611c2557fe5b6020026020010181905250611c3943612063565b81600181518110611c4657fe5b6020908102919091010152611c5b6061612063565b81600281518110611c6857fe5b6020026020010181905250611c7c42612063565b81600381518110611c8957fe5b6020026020010181905250611c9d81612076565b9150505b919050565b611cae612709565b6000611cb8612709565b611cc061271b565b611cd1611ccc86612100565b612125565b90506000805b611ce08361216f565b15611d195780611d0c57611cfb611cf684612190565b6121de565b63ffffffff16845260019150611d11565b611d19565b600101611cd7565b5091935090915050915091565b600081604051602001611d399190612bff565b6040516020818303038152906040528051906020012083604051602001611d609190612bff565b604051602081830303815290604052805190602001201490505b92915050565b015190565b8082015160009060ff811615611d9f576001915081611da5565b60009150815b505092915050565b60408051600480825260a0820190925260009160609190816020015b6060815260200190600190039081611dc9575050604080516020808252818301909252919250606091908082018180368337019050509050611e0e8560000151612063565b82600081518110611e1b57fe5b6020026020010181905250611e366020866020015183612260565b611e3f81612270565b82600181518110611e4c57fe5b6020026020010181905250611e648560400151612063565b82600281518110611e7157fe5b6020026020010181905250611e8c6020866060015183612260565b611e9581612270565b82600381518110611ea257fe5b6020026020010181905250611ec86020611ebb84612076565b8051906020012083612260565b6040805160b080825260e08201909252606091602082018180368337019050509050611ef88183600060206122c6565b611f0a818760800151602060606122c6565b611f188186608060306122c6565b604080516001808252818301909252606091602082018180368337019050509050815160016020830182602086016066600019fa611f5557600080fd5b506001611f63826000612319565b60ff1614611f78576000945050505050611d7a565b5060019695505050505050565b815181516000916001918114808314611fa15760009250611fdf565b600160208701838101602088015b600284838510011415611fda578051835114611fce5760009650600093505b60209283019201611faf565b505050505b5090949350505050565b60008160200183511015611ffc57600080fd5b50016020015190565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081612020579050509050611c1883612270565b60408051600560a21b8318601482015260348101909152606090611c9d81612270565b6060611d7a61207183612335565b612270565b60608151600014156120975750604080516000815260208101909152611ca1565b6060826000815181106120a657fe5b602002602001015190506000600190505b83518110156120e7576120dd828583815181106120d057fe5b602002602001015161241b565b91506001016120b7565b50611c9d6120fa825160c060ff16612498565b8261241b565b61210861273b565b506040805180820190915281518152602082810190820152919050565b61212d61271b565b6121368261256a565b61213f57600080fd5b600061214e83602001516125a4565b60208085015160408051808201909152868152920190820152915050919050565b600061217961273b565b505080518051602091820151919092015191011190565b61219861273b565b6121a18261216f565b6121aa57600080fd5b602082015160006121ba82612607565b80830160209586015260408051808201909152908152938401919091525090919050565b8051600090158015906121f357508151602110155b6121fc57600080fd5b600061220b83602001516125a4565b905080836000015110156122315760405162461bcd60e51b815260040161050b906130e7565b82516020808501518301805192849003929183101561225757826020036101000a820491505b50949350505050565b9091018181526020918201910152565b6060815160011480156122a25750607f60f81b8260008151811061229057fe5b01602001516001600160f81b03191611155b156122ae575080611ca1565b611d7a6122c08351608060ff16612498565b8361241b565b60005b818110156106c9578381815181106122dd57fe5b602001015160f81c60f81b8584806001019550815181106122fa57fe5b60200101906001600160f81b031916908160001a9053506001016122c9565b6000816001018351101561232c57600080fd5b50016001015190565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166123795750601861239d565b6fffffffffffffffffffffffffffffffff1984166123995750601061239d565b5060005b60208110156123d3578181815181106123b257fe5b01602001516001600160f81b031916156123cb576123d3565b60010161239d565b60008160200390506060816040519080825280601f01601f191660200182016040528015612408576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b8183101561244c578051835260209283019201612434565b50855184518101855292509050808201602086015b81831015612479578051835260209283019201612461565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106124c25760405162461bcd60e51b815260040161050b90612e29565b6040805160018082528183019092526060916020820181803683370190505090506037841161251c5782840160f81b816000815181106124fe57fe5b60200101906001600160f81b031916908160001a9053509050611d7a565b606061252785612335565b90508381510160370160f81b8260008151811061254057fe5b60200101906001600160f81b031916908160001a905350612561828261241b565b95945050505050565b805160009061257b57506000611ca1565b6020820151805160001a9060c082101561259a57600092505050611ca1565b5060019392505050565b8051600090811a60808110156125be576000915050611ca1565b60b88110806125d9575060c081108015906125d9575060f881105b156125e8576001915050611ca1565b60c08110156125fc5760b519019050611ca1565b60f519019050611ca1565b80516000908190811a608081101561262257600191506126df565b60b881101561263757607e19810191506126df565b60c081101561268857600060b78203600186019550806020036101000a8651049150600181018201935050808310156126825760405162461bcd60e51b815260040161050b90612f98565b506126df565b60f881101561269d5760be19810191506126df565b600060f78203600186019550806020036101000a865104915060018101820193505080831015611da55760405162461bcd60e51b815260040161050b90612f98565b5092915050565b604051806060016040528060008152602001600081526020016000151581525090565b60408051602081019091526000815290565b604051806040016040528061272e61273b565b8152602001600081525090565b604051806040016040528060008152602001600081525090565b600082601f830112612765578081fd5b8151612778612773826133dc565b6133b5565b818152915060208083019084810160005b848110156127ee578151870188603f8201126127a457600080fd5b838101516127b4612773826133fc565b81815260408b818486010111156127ca57600080fd5b6127d983888401838701613420565b50865250509282019290820190600101612789565b505050505092915050565b60008083601f84011261280a578182fd5b50813567ffffffffffffffff811115612821578182fd5b60208301915083602082850101111561283957600080fd5b9250929050565b600082601f830112612850578081fd5b813561285e612773826133fc565b915080825283602082850101111561287557600080fd5b8060208401602084013760009082016020015292915050565b600060a0828403121561289f578081fd5b6128a960a06133b5565b905081358152602082013560208201526040820135604082015260608201356060820152608082013567ffffffffffffffff8111156128e757600080fd5b6128f384828501612840565b60808301525092915050565b600060208284031215612910578081fd5b813561291b8161344c565b9392505050565b60008060408385031215612934578081fd5b825167ffffffffffffffff8082111561294b578283fd5b81850186601f82011261295c578384fd5b8051925061296c612773846133dc565b80848252602080830192508084018a82838902870101111561298c578788fd5b8794505b868510156129b75780516129a38161344c565b845260019490940193928101928101612990565b5088015190965093505050808211156129ce578283fd5b506129db85828601612755565b9150509250929050565b6000602082840312156129f6578081fd5b8151801515811461291b578182fd5b60008060008060408587031215612a1a578182fd5b843567ffffffffffffffff80821115612a31578384fd5b612a3d888389016127f9565b90965094506020870135915080821115612a55578384fd5b50612a62878288016127f9565b95989497509550505050565b600060208284031215612a7f578081fd5b813567ffffffffffffffff80821115612a96578283fd5b81840160608187031215612aa8578384fd5b612ab260606133b5565b9250803582811115612ac2578485fd5b612ace8782840161288e565b845250602081013582811115612ae2578485fd5b612aee8782840161288e565b602085015250604081013582811115612b05578485fd5b612b1187828401612840565b6040850152509195945050505050565b600060208284031215612b32578081fd5b5035919050565b600060208284031215612b4a578081fd5b5051919050565b600080600060408486031215612b65578283fd5b833560ff81168114612b75578384fd5b9250602084013567ffffffffffffffff811115612b90578283fd5b612b9c868287016127f9565b9497909650939450505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008151808452612beb816020860160208601613420565b601f01601f19169290920160200192915050565b60008251612c11818460208701613420565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b60006020825261291b6020830184612bd3565b600060408252612c7a604083018688612ba9565b8281036020840152612c8d818587612ba9565b979650505050505050565b6020808252601f908201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604082015260600190565b6020808252818101527f6d616c6963696f757320766f746520736c617368206e6f7420656e61626c6564604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252601a908201527f6e6f2076696f6c6174696f6e206f6620766f74652072756c6573000000000000604082015260600190565b6020808252818101527f7468652066656c6f6e795468726573686f6c64206f7574206f662072616e6765604082015260600190565b6020808252602b908201527f6c656e677468206f6620656e61626c654d616c6963696f7573566f7465536c6160408201526a0e6d040dad2e6dac2e8c6d60ab1b606082015260800190565b60208082526017908201527f766572696679207369676e6174757265206661696c6564000000000000000000604082015260600190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526019908201527f7372634e756d20626967676572207468616e207461724e756d00000000000000604082015260600190565b6020808252602c908201527f7468652066696e616c69747920736c6173682072657761726420726174696f2060408201526b6f7574206f662072616e676560a01b606082015260800190565b60208082526027908201527f6c656e677468206f66206d697364656d65616e6f725468726573686f6c64206d6040820152660d2e6dac2e8c6d60cb1b606082015260800190565b60208082526013908201527274776f206964656e746963616c20766f74657360681b604082015260600190565b60208082526030908201527f746865206d6573736167652073656e646572206d7573742062652076616c696460408201526f185d1bdc94d95d0818dbdb9d1c9858dd60821b606082015260800190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b6020808252601590820152741d9bdd195059191c881a5cc81b9bdd08199bdd5b99605a1b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526022908201527f6c656e677468206f662066656c6f6e795468726573686f6c64206d69736d61746040820152610c6d60f31b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526025908201527f746865206d697364656d65616e6f725468726573686f6c64206f7574206f662060408201526472616e676560d81b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b6020808252601490820152731d185c99d95d08189b1bd8dac81d1bdbc81bdb1960621b604082015260600190565b6020808252601e908201527f7265636569766520756e65787065637465642073796e207061636b6167650000604082015260600190565b6020808252602b908201527f6c656e677468206f662066696e616c697479536c61736852657761726452617460408201526a0d2de40dad2e6dac2e8c6d60ab1b606082015260800190565b6020808252818101527f63616e206e6f7420736c61736820747769636520696e206f6e6520626c6f636b604082015260600190565b61ffff91909116815260200190565b90815260200190565b60008382526040602083015261333c6040830184612bd3565b949350505050565b918252602082015260400190565b92835260208301919091521515604082015260600190565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff85168252606060208301526133a56060830185612bd3565b9050826040830152949350505050565b60405181810167ffffffffffffffff811182821017156133d457600080fd5b604052919050565b600067ffffffffffffffff8211156133f2578081fd5b5060209081020190565b600067ffffffffffffffff821115613412578081fd5b50601f01601f191660200190565b60005b8381101561343b578181015183820152602001613423565b8381111561172d5750506000910152565b6001600160a01b038116811461346157600080fd5b5056fea2646970667358221220c3310788cc2517fb88ccc86019bc9b743e07923bbb3700f681487f4aa3af63b964736f6c63430006040033" + } + }, + "1702972800": { + "0x0000000000000000000000000000000000001000": { + "balance": "0x0", + "code": "0x6080604052600436106104a35760003560e01c806388b32f1111610260578063c6d3394511610144578063e40716a1116100c1578063f92eb86b11610085578063f92eb86b14610c02578063f9a2bbc714610c17578063fc3e590814610c2c578063fccc281314610c41578063fd4ad81f14610c56578063fd6a687914610c85576104aa565b8063e40716a114610b85578063ea321e4914610b9a578063eb57e20214610bba578063eda5868c14610bda578063f340fa0114610bef576104aa565b8063d86222d511610108578063d86222d514610b1c578063daacdb6614610b31578063dc927faf14610b46578063e086c7b114610b5b578063e1c7392a14610b70576104aa565b8063c6d3394514610abd578063c81b166214610ad2578063c8509d81146108b6578063ce910b0c14610ae7578063d68fb56a14610b07576104aa565b8063a5422d5c116101dd578063ad3c9da6116101a1578063ad3c9da614610a3c578063aef198a914610a5c578063b7ab4db514610a71578063b8cf4ef114610a93578063bf9f499514610666578063c466689d14610aa8576104aa565b8063a5422d5c146109c8578063a78abc16146109dd578063aaf5eb68146109f2578063ab51bb9614610a07578063ac43175114610a1c576104aa565b806396713da91161022457806396713da91461095f5780639dc09262146109745780639fe0f81614610989578063a0dc27581461099e578063a1a11bf5146109b3576104aa565b806388b32f11146108eb5780638a7beb01146109005780638b5ad0c9146109155780638d19a4101461092a5780639369d7de1461094a576104aa565b806351e80672116103875780636e47b482116103045780637942fd05116102c85780637942fd05146108775780637a84ca2a1461088c57806381650b62146108a1578063831d65d1146108b6578063853230aa1461086257806386249882146108d6576104aa565b80636e47b4821461080e57806370fd5bad14610823578063718a8aa81461083857806375d47a0a1461084d57806378dfed4a14610862576104aa565b80635de1e22c1161034b5780635de1e22c14610792578063603d86d31461065157806360eba4fe146107a757806362b72cf5146107c75780636969a25c146107dc576104aa565b806351e806721461071357806355614fcc14610728578063565c56b3146107485780635667515a146107685780635d77156c1461077d576104aa565b80633365af3a1161042057806343756e5c116103e457806343756e5c1461068857806345cf9daf1461069d578063493279b1146106b25780634bf6c882146106d45780634df6e0c3146106e95780635192c82c146106fe576104aa565b80633365af3a146105ee57806335409f7f1461060e5780633b071dcc1461062e5780633de0f0d8146106515780633dffc38714610666576104aa565b8063152ad3b811610467578063152ad3b8146105625780631ff1806914610584578063219f22d514610599578063300c3567146105ae578063321d398a146105ce576104aa565b806304c4fec6146104af57806307a56847146104c65780630bee7a67146104f15780630e2374a5146105135780631182b87514610535576104aa565b366104aa57005b600080fd5b3480156104bb57600080fd5b506104c4610c9a565b005b3480156104d257600080fd5b506104db610d0c565b6040516104e89190617691565b60405180910390f35b3480156104fd57600080fd5b50610506610d12565b6040516104e891906176bb565b34801561051f57600080fd5b50610528610d17565b6040516104e89190616a60565b34801561054157600080fd5b50610555610550366004616946565b610d1d565b6040516104e89190616bd7565b34801561056e57600080fd5b50610577610f55565b6040516104e89190616bcc565b34801561059057600080fd5b506104db610f5e565b3480156105a557600080fd5b50610506610f64565b3480156105ba57600080fd5b506104c46105c93660046167d0565b610f69565b3480156105da57600080fd5b506105776105e93660046168f3565b6112b0565b3480156105fa57600080fd5b506105776106093660046168f3565b61137f565b34801561061a57600080fd5b506104c46106293660046167a9565b611430565b34801561063a57600080fd5b50610643611589565b6040516104e8929190616ae2565b34801561065d57600080fd5b506104db611865565b34801561067257600080fd5b5061067b61186b565b6040516104e891906176cc565b34801561069457600080fd5b50610528611870565b3480156106a957600080fd5b506104db611876565b3480156106be57600080fd5b506106c761187c565b6040516104e89190617682565b3480156106e057600080fd5b5061067b611881565b3480156106f557600080fd5b50610643611886565b34801561070a57600080fd5b506104db611a04565b34801561071f57600080fd5b50610528611a0a565b34801561073457600080fd5b506105776107433660046167a9565b611a10565b34801561075457600080fd5b506104db6107633660046167a9565b611a45565b34801561077457600080fd5b5061067b611a96565b34801561078957600080fd5b50610506611a9b565b34801561079e57600080fd5b506104db611aa0565b3480156107b357600080fd5b506105556107c23660046168f3565b611aa6565b3480156107d357600080fd5b506104db611b4c565b3480156107e857600080fd5b506107fc6107f73660046168f3565b611b52565b6040516104e896959493929190616a8d565b34801561081a57600080fd5b50610528611bb6565b34801561082f57600080fd5b5061067b611bbc565b34801561084457600080fd5b5061067b611bc1565b34801561085957600080fd5b50610528611bc6565b34801561086e57600080fd5b506104db611bcc565b34801561088357600080fd5b5061067b611bd2565b34801561089857600080fd5b506104db611bd7565b3480156108ad57600080fd5b50610506611bdd565b3480156108c257600080fd5b506104c46108d1366004616946565b611be2565b3480156108e257600080fd5b506104db611c43565b3480156108f757600080fd5b506104db611c49565b34801561090c57600080fd5b50610577611c4f565b34801561092157600080fd5b506104db611c58565b34801561093657600080fd5b506104db6109453660046167a9565b611c5e565b34801561095657600080fd5b506104c4611c9e565b34801561096b57600080fd5b5061067b611db2565b34801561098057600080fd5b50610528611db7565b34801561099557600080fd5b506104db611dbd565b3480156109aa57600080fd5b506104db611dc2565b3480156109bf57600080fd5b50610528611dc7565b3480156109d457600080fd5b50610555611dcd565b3480156109e957600080fd5b50610577611dec565b3480156109fe57600080fd5b506104db611df5565b348015610a1357600080fd5b50610506611a96565b348015610a2857600080fd5b506104c4610a37366004616897565b611dfe565b348015610a4857600080fd5b506104db610a573660046167a9565b61269c565b348015610a6857600080fd5b506104db6126ae565b348015610a7d57600080fd5b50610a866126bb565b6040516104e89190616acf565b348015610a9f57600080fd5b506104db6127a7565b348015610ab457600080fd5b506104db6127ac565b348015610ac957600080fd5b506104db611bbc565b348015610ade57600080fd5b506105286127b2565b348015610af357600080fd5b50610555610b023660046168f3565b6127b8565b348015610b1357600080fd5b506104db6127c5565b348015610b2857600080fd5b506104db612804565b348015610b3d57600080fd5b506104db612810565b348015610b5257600080fd5b50610528612816565b348015610b6757600080fd5b506104db610d12565b348015610b7c57600080fd5b506104c461281c565b348015610b9157600080fd5b506104db6129cb565b348015610ba657600080fd5b50610577610bb5366004616858565b6129d1565b348015610bc657600080fd5b506104c4610bd53660046167a9565b612b57565b348015610be657600080fd5b50610506612c5f565b6104c4610bfd3660046167a9565b612c64565b348015610c0e57600080fd5b506104db612fcc565b348015610c2357600080fd5b50610528612fd2565b348015610c3857600080fd5b5061067b611dbd565b348015610c4d57600080fd5b50610528612fd8565b348015610c6257600080fd5b50610c76610c713660046168f3565b612fde565b6040516104e89392919061769a565b348015610c9157600080fd5b506105286130a0565b6000610ca533611c5e565b9050600b8181548110610cb457fe5b600091825260209091206001601690920201015460ff16610cf05760405162461bcd60e51b8152600401610ce79061733c565b60405180910390fd5b6000610cfa6127c5565b9050610d073383836130a6565b505050565b60095481565b606481565b61200181565b60005460609060ff16610d425760405162461bcd60e51b8152600401610ce790616d96565b3361200014610d635760405162461bcd60e51b8152600401610ce7906174d5565b600b54610e2157610d72616495565b60015460005b81811015610e1d57600b805460018101825560009190915283516000805160206178ef833981519152601690920291820190815560208086015160008051602061792f8339815191528401805460ff1916911515919091179055604086015180518794610df99360008051602061790f8339815191529091019201906164c4565b506060820151610e0f906003830190601361653e565b505050806001019050610d78565b5050505b610e2961656b565b6000610e6a85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061329292505050565b9150915080610e8657610e7d606461344e565b92505050610f4e565b815160009060ff16610eab57610ea4836020015184604001516134af565b9050610f1a565b825160ff1660011415610f1657826020015151600114610ef0576000805160206178cf833981519152604051610ee0906171f5565b60405180910390a1506067610f11565b610ea48360200151600081518110610f0457fe5b6020026020010151614103565b610f1a565b5060655b63ffffffff8116610f3f5750506040805160008152602081019091529150610f4e9050565b610f488161344e565b93505050505b9392505050565b60075460ff1681565b60035481565b606881565b334114610f885760405162461bcd60e51b8152600401610ce790617524565b6010544311610fa95760405162461bcd60e51b8152600401610ce790616ef2565b3a15610fc75760405162461bcd60e51b8152600401610ce79061727b565b60005460ff16610fe95760405162461bcd60e51b8152600401610ce790616d96565b60006110023168056bc75e2d63100000811115611020576110198168056bc75e2d6310000063ffffffff61427a16565b9150611027565b50506112a6565b6040516213929d60e11b8152611002906227253a9061104c9030908690600401616a74565b602060405180830381600087803b15801561106657600080fd5b505af115801561107a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061109e919061690b565b9150816110ac5750506112a6565b6000805b848110156110da578585828181106110c457fe5b90506020020135820191508060010190506110b0565b50806110e8575050506112a6565b6000806000805b8981101561129e578489898381811061110457fe5b9050602002013588028161111457fe5b0493508a8a8281811061112357fe5b905060200201602081019061113891906167a9565b6001600160a01b0381166000908152600460205260409020549093509150811561125457600060018084038154811061116d57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff16156111da57836001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d85866040516111cd9190617691565b60405180910390a261124e565b6003546111ed908663ffffffff6142bc16565b6003908155810154611205908663ffffffff6142bc16565b60038201556040516001600160a01b038516907fcb0aad6cf9cd03bdf6137e359f541c42f38b39f007cae8e89e88aa7d8c6617b290611245908890617691565b60405180910390a25b50611296565b826001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d858560405161128d9190617691565b60405180910390a25b6001016110ef565b505050505050505b5050436010555050565b60015460009082106112c45750600061137a565b60006001600160a01b0316600183815481106112dc57fe5b60009182526020909120600490910201546001600160a01b0316148061130c5750600854158061130c5750600a54155b8061131b575060085460095410155b8061132c575061132a8261137f565b155b8061135557506000600b838154811061134157fe5b906000526020600020906016020160000154115b80611369575060016113656126bb565b5111155b156113765750600061137a565b5060015b919050565b60015460009082106113935750600061137a565b600b5482106113d057600182815481106113a957fe5b9060005260206000209060040201600201601c9054906101000a900460ff1615905061137a565b600182815481106113dd57fe5b9060005260206000209060040201600201601c9054906101000a900460ff1615801561142a5750600b828154811061141157fe5b600091825260209091206001601690920201015460ff16155b92915050565b33611001146114515760405162461bcd60e51b8152600401610ce790617639565b600b5461150f57611460616495565b60015460005b8181101561150b57600b805460018101825560009190915283516000805160206178ef833981519152601690920291820190815560208086015160008051602061792f8339815191528401805460ff19169115159190911790556040860151805187946114e79360008051602061790f8339815191529091019201906164c4565b5060608201516114fd906003830190601361653e565b505050806001019050611466565b5050505b6001600160a01b038116600090815260046020526040902054806115335750611586565b6001810390506000600b828154811061154857fe5b600091825260209091206001601690920201015460ff16905061156b83836142e1565b80156115745750805b15610d07576009805460001901905550505b50565b60015460609081906000805b828110156115dc57600181815481106115aa57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166115d4576001909101905b600101611595565b50606081604051908082528060200260200182016040528015611609578160200160208202803683370190505b50905060608260405190808252806020026020018201604052801561164257816020015b606081526020019060019003908161162d5790505b50600b54600094509091508414156117bd5760005b848110156117b7576001818154811061166c57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166117af576001818154811061169c57fe5b600091825260209091206004909102015483516001600160a01b03909116908490869081106116c757fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600b81815481106116f457fe5b600091825260209182902060026016909202018101805460408051601f60001961010060018616150201909316949094049182018590048502840185019052808352919290919083018282801561178c5780601f106117615761010080835404028352916020019161178c565b820191906000526020600020905b81548152906001019060200180831161176f57829003601f168201915b505050505082858151811061179d57fe5b60209081029190910101526001909301925b600101611657565b50611859565b60005b8481101561185757600181815481106117d557fe5b9060005260206000209060040201600201601c9054906101000a900460ff1661184f576001818154811061180557fe5b600091825260209091206004909102015483516001600160a01b039091169084908690811061183057fe5b6001600160a01b03909216602092830291909101909101526001909301925b6001016117c0565b505b909450925050505b9091565b61271081565b600181565b61100181565b60085481565b606181565b600881565b600e54600c5460609182918061189a575060155b60606118a46126bb565b905060606118b182614694565b9050828251116118c8579094509250611861915050565b838383510310156118da578282510393505b83156119105760c843046118f683838388880360008a8a614802565b61190e8383838888038989038a8b8b8b510301614802565b505b60608360405190808252806020026020018201604052801561193c578160200160208202803683370190505b50905060608460405190808252806020026020018201604052801561197557816020015b60608152602001906001900390816119605790505b50905060005b858110156119f65784818151811061198f57fe5b60200260200101518382815181106119a357fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508381815181106119cf57fe5b60200260200101518282815181106119e357fe5b602090810291909101015260010161197b565b509096509450505050509091565b60065481565b61200081565b6001600160a01b03811660009081526004602052604081205480611a3857600091505061137a565b60001901610f4e8161137f565b6001600160a01b03811660009081526004602052604081205480611a6d57600091505061137a565b600180820381548110611a7c57fe5b906000526020600020906004020160030154915050919050565b600081565b606781565b600f5481565b60128181548110611ab357fe5b600091825260209182902001805460408051601f6002600019610100600187161502019094169390930492830185900485028101850190915281815293509091830182828015611b445780601f10611b1957610100808354040283529160200191611b44565b820191906000526020600020905b815481529060010190602001808311611b2757829003601f168201915b505050505081565b60105481565b60018181548110611b5f57fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b601081565b61100881565b6103e881565b600b81565b600c5481565b606681565b3361200014611c035760405162461bcd60e51b8152600401610ce7906174d5565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051611c36939291906176da565b60405180910390a1505050565b60025481565b60115481565b60145460ff1681565b600a5481565b6001600160a01b03811660009081526004602052604081205480611c945760405162461bcd60e51b8152600401610ce79061745d565b6000190192915050565b600b54611d5c57611cad616495565b60015460005b81811015611d5857600b805460018101825560009190915283516000805160206178ef833981519152601690920291820190815560208086015160008051602061792f8339815191528401805460ff1916911515919091179055604086015180518794611d349360008051602061790f8339815191529091019201906164c4565b506060820151611d4a906003830190601361653e565b505050806001019050611cb3565b5050505b600854611d695760036008555b600a54611d76576002600a555b6000611d8133611c5e565b9050611d8c816112b0565b611da85760405162461bcd60e51b8152600401610ce7906171b2565b6115863382614959565b600981565b61100781565b600381565b60c881565b61100681565b604051806101e001604052806101ab81526020016177246101ab913981565b60005460ff1681565b6402540be40081565b60005460ff16611e205760405162461bcd60e51b8152600401610ce790616d96565b3361100714611e415760405162461bcd60e51b8152600401610ce7906172a9565b611eab84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b602082015291506149f19050565b15611f485760208114611ed05760405162461bcd60e51b8152600401610ce790617417565b604080516020601f8401819004810282018101909252828152600091611f0e91858580838501838280828437600092019190915250614a4a92505050565b905060648110158015611f245750620186a08111155b611f405760405162461bcd60e51b8152600401610ce7906170a2565b600255612659565b611fa884848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260098152686275726e526174696f60b81b602082015291506149f19050565b156120375760208114611fcd5760405162461bcd60e51b8152600401610ce790616c1c565b604080516020601f840181900481028201810190925282815260009161200b91858580838501838280828437600092019190915250614a4a92505050565b905061271081111561202f5760405162461bcd60e51b8152600401610ce790616f34565b600655612659565b6120a184848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260138152726d61784e756d4f664d61696e7461696e696e6760681b602082015291506149f19050565b1561213b57602081146120c65760405162461bcd60e51b8152600401610ce790616c53565b604080516020601f840181900481028201810190925282815260009161210491858580838501838280828437600092019190915250614a4a92505050565b600c5490915080612113575060155b8082106121325760405162461bcd60e51b8152600401610ce790616fa7565b50600855612659565b6121a484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61696e7461696e536c6173685363616c6560701b602082015291506149f19050565b1561223d57602081146121c95760405162461bcd60e51b8152600401610ce790616d1c565b604080516020601f840181900481028201810190925282815260009161220791858580838501838280828437600092019190915250614a4a92505050565b90506000811180156122195750600a81105b6122355760405162461bcd60e51b8152600401610ce7906175b5565b600a55612659565b6122b184848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601981527f6d61784e756d4f66576f726b696e6743616e6469646174657300000000000000602082015291506149f19050565b1561234057602081146122d65760405162461bcd60e51b8152600401610ce790616cd0565b604080516020601f840181900481028201810190925282815260009161231491858580838501838280828437600092019190915250614a4a92505050565b9050600d548111156123385760405162461bcd60e51b8152600401610ce790617118565b600e55612659565b6123a984848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61784e756d4f6643616e6469646174657360701b602082015291506149f19050565b1561242b57602081146123ce5760405162461bcd60e51b8152600401610ce7906172f7565b604080516020601f840181900481028201810190925282815260009161240c91858580838501838280828437600092019190915250614a4a92505050565b600d819055600e5490915081101561242557600d54600e555b50612659565b61248f84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c6e756d4f66436162696e65747360981b602082015291506149f19050565b1561253d57602081146124b45760405162461bcd60e51b8152600401610ce790616d61565b604080516020601f84018190048102820181019092528281526000916124f291858580838501838280828437600092019190915250614a4a92505050565b9050600081116125145760405162461bcd60e51b8152600401610ce790616e04565b60648111156125355760405162461bcd60e51b8152600401610ce790616e4c565b600c55612659565b6125a584848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601181527073797374656d526577617264526174696f60781b602082015291506149f19050565b1561264157602081146125ca5760405162461bcd60e51b8152600401610ce790617571565b604080516020601f840181900481028201810190925282815260009161260891858580838501838280828437600092019190915250614a4a92505050565b90506001811015801561261d57506127108111155b6126395760405162461bcd60e51b8152600401610ce79061704f565b600f55612659565b60405162461bcd60e51b8152600401610ce790617612565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a8484848460405161268e9493929190616bea565b60405180910390a150505050565b60046020526000908152604090205481565b68056bc75e2d6310000081565b6001546060906000805b828110156126ea576126d68161137f565b156126e2578160010191505b6001016126c5565b50606081604051908082528060200260200182016040528015612717578160200160208202803683370190505b5090506000915060005b8381101561279e576127328161137f565b15612796576001818154811061274457fe5b600091825260209091206004909102015482516001600160a01b039091169083908590811061276f57fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508260010192505b600101612721565b50925050505b90565b601581565b61027181565b61100281565b60138181548110611ab357fe5b60006127cf6126bb565b519050600080600c54116127e45760156127e8565b600c545b9050808211156127f6578091505b8161280057600191505b5090565b67016345785d8a000081565b60055481565b61100381565b60005460ff161561283f5760405162461bcd60e51b8152600401610ce7906173a9565b61284761656b565b600061286d604051806101e001604052806101ab81526020016177246101ab9139613292565b915091508061288e5760405162461bcd60e51b8152600401610ce790617494565b60005b8260200151518110156129b3576001836020015182815181106128b057fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a09093015160039093019290925591860151805191850193918590811061298657fe5b602090810291909101810151516001600160a01b0316825281019190915260400160002055600101612891565b50506103e8600255506000805460ff19166001179055565b600d5481565b601354600090815b81811015612ada57612ac285858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050601380549092508591508110612a2a57fe5b600091825260209182902001805460408051601f6002600019610100600187161502019094169390930492830185900485028101850190915281815292830182828015612ab85780601f10612a8d57610100808354040283529160200191612ab8565b820191906000526020600020905b815481529060010190602001808311612a9b57829003601f168201915b5050505050614a4f565b15612ad25760019250505061142a565b6001016129d9565b5060125460005b81811015612b4b57612b3286868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050601280549092508591508110612a2a57fe5b15612b43576001935050505061142a565b600101612ae1565b50600095945050505050565b3361100114612b785760405162461bcd60e51b8152600401610ce790617639565b600b54612c3657612b87616495565b60015460005b81811015612c3257600b805460018101825560009190915283516000805160206178ef833981519152601690920291820190815560208086015160008051602061792f8339815191528401805460ff1916911515919091179055604086015180518794612c0e9360008051602061790f8339815191529091019201906164c4565b506060820151612c24906003830190601361653e565b505050806001019050612b8d565b5050505b6000612c4182614ab3565b9050612c4c816112b0565b15612c5b57612c5b8282614959565b5050565b606581565b334114612c835760405162461bcd60e51b8152600401610ce790617524565b60005460ff16612ca55760405162461bcd60e51b8152600401610ce790616d96565b60003411612cc55760405162461bcd60e51b8152600401610ce7906170e9565b3a15612ce35760405162461bcd60e51b8152600401610ce79061727b565b6001600160a01b03811660009081526004602052604090205460145434919060ff16612d2357610271600f556103e86006556014805460ff191660011790555b6000612d4c612710612d40600f5486614c5690919063ffffffff16565b9063ffffffff614c9016565b90508015612dbc576040516110029082156108fc029083906000818181858888f19350505050158015612d83573d6000803e3d6000fd5b507f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d81604051612db39190617691565b60405180910390a15b600083118015612dce57506000600654115b15612e74576000612df0612710612d4060065487614c5690919063ffffffff16565b90508015612e725760405161dead9082156108fc029083906000818181858888f19350505050158015612e27573d6000803e3d6000fd5b507f627059660ea01c4733a328effb2294d2f86905bf806da763a89cee254de8bee581604051612e579190617691565b60405180910390a1612e6f848263ffffffff61427a16565b93505b505b612e84838263ffffffff61427a16565b92508115612f84576000600180840381548110612e9d57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff1615612f0a57846001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b485604051612efd9190617691565b60405180910390a2612f7e565b600354612f1d908563ffffffff6142bc16565b6003908155810154612f35908563ffffffff6142bc16565b60038201556040516001600160a01b038616907f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc05590612f75908790617691565b60405180910390a25b50612fc6565b836001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b484604051612fbd9190617691565b60405180910390a25b50505050565b600e5481565b61100081565b61dead81565b600b8181548110612feb57fe5b6000918252602091829020601691909102018054600180830154600280850180546040805161010096831615969096026000190190911692909204601f810188900488028501880190925281845293965060ff909116949192918301828280156130965780601f1061306b57610100808354040283529160200191613096565b820191906000526020600020905b81548152906001019060200180831161307957829003601f168201915b5050505050905083565b61100481565b6000600a54600014806130b7575081155b806130c25750600954155b156130cf57506000610f4e565b6009600081546001900391905081905550600061311a600a54612d4085612d40600b89815481106130fc57fe5b6000918252602090912060169091020154439063ffffffff61427a16565b90506000600b858154811061312b57fe5b906000526020600020906016020160010160006101000a81548160ff0219169083151502179055506000806110016001600160a01b0316638256ace66040518163ffffffff1660e01b8152600401604080518083038186803b15801561319057600080fd5b505afa1580156131a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131c89190616923565b9150915060009350808310613242576131e187876142e1565b506040516305bfb49960e41b815261100190635bfb499090613207908a90600401616a60565b600060405180830381600087803b15801561322157600080fd5b505af1158015613235573d6000803e3d6000fd5b5050505060019350613254565b8183106132545761325287614ab3565b505b6040516001600160a01b038816907fb9d38178dc641ff1817967a63c9078cbcd955a9f1fcd75e0e3636de615d44d3b90600090a25050509392505050565b61329a61656b565b60006132a461656b565b6132ac61658f565b6132bd6132b886614cd2565b614cf7565b90506000805b6132cc83614d41565b1561344057806132f1576132e76132e284614d62565b614db0565b60ff168452613438565b806001141561343357606061330d61330885614d62565b614e30565b9050805160405190808252806020026020018201604052801561334a57816020015b6133376165af565b81526020019060019003908161332f5790505b508560200181905250805160405190808252806020026020018201604052801561338857816020015b60608152602001906001900390816133735790505b50604086015260005b8151811015613428576133a26165af565b606060006133c28585815181106133b557fe5b6020026020010151614f01565b925092509250806133e2578860009a509a50505050505050505050613449565b82896020015185815181106133f357fe5b6020026020010181905250818960400151858151811061340f57fe5b6020026020010181905250505050806001019050613391565b506001925050613438565b613440565b6001016132c3565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b606081526020019060019003908161346857905050905061348e8363ffffffff1661501b565b8160008151811061349b57fe5b6020026020010181905250610f4e8161502e565b60006064835111156134e6576000805160206178cf8339815191526040516134d690616ea9565b60405180910390a150606661142a565b60005b83518110156135845760005b8181101561357b5784818151811061350957fe5b6020026020010151600001516001600160a01b031685838151811061352a57fe5b6020026020010151600001516001600160a01b03161415613573576000805160206178cf83398151915260405161356090617004565b60405180910390a160669250505061142a565b6001016134f5565b506001016134e9565b5060608061359285856150b8565b60015491935091506000908190815b818110156136175767016345785d8a0000600182815481106135bf57fe5b906000526020600020906004020160030154106135e15783600101935061360f565b6000600182815481106135f057fe5b906000526020600020906004020160030154111561360f578260010192505b6001016135a1565b50606083604051908082528060200260200182016040528015613644578160200160208202803683370190505b509050606084604051908082528060200260200182016040528015613673578160200160208202803683370190505b5090506060856040519080825280602002602001820160405280156136a2578160200160208202803683370190505b5090506060866040519080825280602002602001820160405280156136d1578160200160208202803683370190505b5090506000606087604051908082528060200260200182016040528015613702578160200160208202803683370190505b509050606088604051908082528060200260200182016040528015613731578160200160208202803683370190505b509050600099506000985060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b15801561377957600080fd5b505afa15801561378d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137b1919061690b565b905067016345785d8a00008111156137fc576000805160206178cf8339815191526040516137de90617368565b60405180910390a160689d505050505050505050505050505061142a565b60005b89811015613a6d5767016345785d8a00006001828154811061381d57fe5b906000526020600020906004020160030154106139a2576001818154811061384157fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316898d8151811061387257fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be400600183815481106138a757fe5b906000526020600020906004020160030154816138c057fe5b06600183815481106138ce57fe5b9060005260206000209060040201600301540390506138f6838261427a90919063ffffffff16565b898e8151811061390257fe5b6020026020010181815250506001828154811061391b57fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316878e8151811061394c57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081888e8151811061397957fe5b6020908102919091010152613994868263ffffffff6142bc16565b95508c6001019c5050613a65565b6000600182815481106139b157fe5b9060005260206000209060040201600301541115613a6557600181815481106139d657fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316848c81518110613a0757fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060018181548110613a3457fe5b906000526020600020906004020160030154838c81518110613a5257fe5b6020026020010181815250508a6001019a505b6001016137ff565b5060008415613ce3576002546040516303702b2960e51b815261100491636e056520918891613aa7918e918e918d91420190600401616b52565b6020604051808303818588803b158015613ac057600080fd5b505af193505050508015613af1575060408051601f3d908101601f19168201909252613aee91810190616838565b60015b613c68576040516000815260443d1015613b0d57506000613ba8565b60046000803e60005160e01c6308c379a08114613b2e576000915050613ba8565b60043d036004833e81513d60248201116001600160401b0382111715613b5957600092505050613ba8565b80830180516001600160401b03811115613b7a576000945050505050613ba8565b8060208301013d8601811115613b9857600095505050505050613ba8565b601f01601f191660405250925050505b80613bb35750613bf5565b60019150857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf28082604051613be79190616bd7565b60405180910390a250613c63565b3d808015613c1f576040519150601f19603f3d011682016040523d82523d6000602084013e613c24565b606091505b5060019150857fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a4582604051613c599190616bd7565b60405180910390a2505b613ce3565b8015613caa577fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b7086604051613c9d9190617691565b60405180910390a1613ce1565b857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280604051613cd890616c99565b60405180910390a25b505b8015613e995760005b8751811015613e97576000888281518110613d0357fe5b60200260200101519050600060018281548110613d1c57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc9185908110613d4d57fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f1935050505090508015613e095760018281548110613d8e57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d9185908110613ddd57fe5b906000526020600020906004020160030154604051613dfc9190617691565b60405180910390a2613e8d565b60018281548110613e1657fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d9185908110613e6557fe5b906000526020600020906004020160030154604051613e849190617691565b60405180910390a25b5050600101613cec565b505b835115613fe35760005b8451811015613fe1576000858281518110613eba57fe5b60200260200101516001600160a01b03166108fc868481518110613eda57fe5b60200260200101519081150290604051600060405180830381858888f1935050505090508015613f7057858281518110613f1057fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d868481518110613f4e57fe5b6020026020010151604051613f639190617691565b60405180910390a2613fd8565b858281518110613f7c57fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d868481518110613fba57fe5b6020026020010151604051613fcf9190617691565b60405180910390a25b50600101613ea3565b505b505050505050505050505050600047111561405f577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d476040516140279190617691565b60405180910390a1604051611002904780156108fc02916000818181858888f1935050505015801561405d573d6000803e3d6000fd5b505b6000600381905560055581511561407a5761407a82826152f1565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156140b757600080fd5b505af11580156140cb573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a1506000949350505050565b80516001600160a01b0316600090815260046020526040812054801580614154575060018082038154811061413457fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b1561419a5782516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a2600091505061137a565b6001546005546000198201118015906141f05784516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a26000935050505061137a565b60058054600190810190915580548190600019860190811061420e57fe5b6000918252602082206002600490920201018054921515600160e01b0260ff60e01b199093169290921790915585516040516001600160a01b03909116917ff226e7d8f547ff903d9d419cf5f54e0d7d07efa9584135a53a057c5f1f27f49a91a2506000949350505050565b6000610f4e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250615aab565b600082820183811015610f4e5760405162461bcd60e51b8152600401610ce790616dcd565b600080600183815481106142f157fe5b9060005260206000209060040201600301549050600060018080549050039050600161431b6126bb565b51116143505760006001858154811061433057fe5b90600052602060002090600402016003018190555060009250505061142a565b846001600160a01b03167f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a70836040516143899190617691565b60405180910390a26001600160a01b038516600090815260046020526040812055835b6001546000190181101561457657600181600101815481106143ca57fe5b9060005260206000209060040201600182815481106143e557fe5b60009182526020909120825460049092020180546001600160a01b03199081166001600160a01b0393841617825560018085015481840180548416918616919091179055600280860180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b19909416939093179055600392830154920191909155600b8054909183019081106144a657fe5b9060005260206000209060160201600b82815481106144c157fe5b600091825260209091208254601690920201908155600180830154818301805460ff909216151560ff19909216919091179055600280840180546145189383860193908216156101000260001901909116046165e4565b5061452b60038281019084016013616659565b5090505080600101600460006001848154811061454457fe5b600091825260208083206004909202909101546001600160a01b031683528201929092526040019020556001016143ac565b50600180548061458257fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b8054806145d557fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906146076002830182616683565b6146156003830160006166c7565b50509055600081838161462457fe5b04905080156146885760015460005b8181101561468557826001828154811061464957fe5b906000526020600020906004020160030154016001828154811061466957fe5b6000918252602090912060036004909202010155600101614633565b50505b50600195945050505050565b6001548151604080518281526020808402820101909152606092919083908280156146d357816020015b60608152602001906001900390816146be5790505b50600b5490915083146146ea57925061137a915050565b60005b828110156147f957600b60016004600089858151811061470957fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054038154811061473d57fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156147d55780601f106147aa576101008083540402835291602001916147d5565b820191906000526020600020905b8154815290600101906020018083116147b857829003601f168201915b50505050508282815181106147e657fe5b60209081029190910101526001016146ed565b50949350505050565b60005b8281101561494f5760008287838801604051602001614825929190616a52565b6040516020818303038152906040528051906020012060001c8161484557fe5b06905080850182870114614946576000898388018151811061486357fe5b602002602001015190506060898489018151811061487d57fe5b602002602001015190508a8388018151811061489557fe5b60200260200101518b858a01815181106148ab57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050818b848901815181106148da57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050898388018151811061490857fe5b60200260200101518a858a018151811061491e57fe5b6020026020010181905250808a8489018151811061493857fe5b602002602001018190525050505b50600101614805565b5050505050505050565b600980546001908101909155600b80548390811061497357fe5b906000526020600020906016020160010160006101000a81548160ff02191690831515021790555043600b82815481106149a957fe5b600091825260208220601690910201919091556040516001600160a01b038416917ff62981a567ec3cec866c6fa93c55bcdf841d6292d18b8d522ececa769375d82d91a25050565b600081604051602001614a049190616a36565b6040516020818303038152906040528051906020012083604051602001614a2b9190616a36565b6040516020818303038152906040528051906020012014905092915050565b015190565b815181516000916001918114808314614a6b5760009250614aa9565b600160208701838101602088015b600284838510011415614aa4578051835114614a985760009650600093505b60209283019201614a79565b505050505b5090949350505050565b6001600160a01b03811660009081526004602052604081205480614adc5750600019905061137a565b600181039050600060018281548110614af157fe5b9060005260206000209060040201600301549050600060018381548110614b1457fe5b6000918252602090912060036004909202010155600154604051600019909101906001600160a01b038616907f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d90614b6d908590617691565b60405180910390a280614b855782935050505061137a565b6000818381614b9057fe5b0490508015614c4c5760005b84811015614bee578160018281548110614bb257fe5b9060005260206000209060040201600301540160018281548110614bd257fe5b6000918252602090912060036004909202010155600101614b9c565b50600180549085015b81811015614c49578260018281548110614c0d57fe5b9060005260206000209060040201600301540160018281548110614c2d57fe5b6000918252602090912060036004909202010155600101614bf7565b50505b5091949350505050565b600082614c655750600061142a565b82820282848281614c7257fe5b0414610f4e5760405162461bcd60e51b8152600401610ce79061723a565b6000610f4e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250615ad7565b614cda6166d6565b506040805180820190915281518152602082810190820152919050565b614cff61658f565b614d0882615b0e565b614d1157600080fd5b6000614d208360200151615b48565b60208085015160408051808201909152868152920190820152915050919050565b6000614d4b6166d6565b505080518051602091820151919092015191011190565b614d6a6166d6565b614d7382614d41565b614d7c57600080fd5b60208201516000614d8c82615bab565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590614dc557508151602110155b614dce57600080fd5b6000614ddd8360200151615b48565b90508083600001511015614e035760405162461bcd60e51b8152600401610ce7906173e0565b8251602080850151830180519284900392918310156147f957506020919091036101000a90049392505050565b6060614e3b82615b0e565b614e4457600080fd5b6000614e4f83615c8c565b9050606081604051908082528060200260200182016040528015614e8d57816020015b614e7a6166d6565b815260200190600190039081614e725790505b5090506000614e9f8560200151615b48565b60208601510190506000805b84811015614ef657614ebc83615bab565b9150604051806040016040528083815260200184815250848281518110614edf57fe5b602090810291909101015291810191600101614eab565b509195945050505050565b614f096165af565b60606000614f156165af565b6060614f1f61658f565b614f2887614cf7565b90506000805b614f3783614d41565b1561500c5780614f6257614f52614f4d84614d62565b615ce8565b6001600160a01b03168552615004565b8060011415614f8a57614f77614f4d84614d62565b6001600160a01b03166020860152615004565b8060021415614fb257614f9f614f4d84614d62565b6001600160a01b03166040860152615004565b8060031415614fde57614fc76132e284614d62565b6001600160401b0316606086015260019150615004565b8060041415614fff57614ff8614ff384614d62565b615d02565b9350615004565b61500c565b600101614f2e565b50929791965091945092505050565b606061142a61502983615d72565b615e58565b606081516000141561504f575060408051600081526020810190915261137a565b60608260008151811061505e57fe5b602002602001015190506000600190505b835181101561509f576150958285838151811061508857fe5b6020026020010151615eaa565b915060010161506f565b50610f4e6150b2825160c060ff16615f27565b82615eaa565b6060806000808080806150c96127c5565b6001549091505b80156151d757600181039250600b83815481106150e957fe5b600091825260209091206001601690920201015460ff16615109576151ce565b6001838154811061511657fe5b60009182526020909120600490910201546001600160a01b0316945061513d8584846130a6565b9350831580615150575060018a51038610155b1561515a576151ce565b60005b8a518110156151cc57856001600160a01b03168b828151811061517c57fe5b6020026020010151600001516001600160a01b031614156151c45760018b82815181106151a557fe5b60209081029190910101519015156080909101526001909601956151cc565b60010161515d565b505b600019016150d0565b508489510360405190808252806020026020018201604052801561521557816020015b6152026165af565b8152602001906001900390816151fa5790505b5096508489510360405190808252806020026020018201604052801561524f57816020015b606081526020019060019003908161523a5790505b5095506000915060005b89518110156152e35789818151811061526e57fe5b6020026020010151608001516152db5789818151811061528a57fe5b602002602001015188848151811061529e57fe5b60200260200101819052508881815181106152b557fe5b60200260200101518784815181106152c957fe5b60200260200101819052508260010192505b600101615259565b5050505050505b9250929050565b600154825160005b8281101561540e57600161530b6165af565b6001838154811061531857fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b848110156153e2578781815181106153a857fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b031614156153da57600092506153e2565b600101615394565b5081156154045780516001600160a01b03166000908152600460205260408120555b50506001016152f9565b50808211156154cd57805b828110156154cb57600180548061542c57fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b80548061547f57fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906154b16002830182616683565b6154bf6003830160006166c7565b50509055600101615419565b505b60008183106154dc57816154de565b825b905060005b8181101561584d576155908682815181106154fa57fe5b60200260200101516001838154811061550f57fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a0820152615ff9565b6157445780600101600460008884815181106155a857fe5b6020026020010151600001516001600160a01b03166001600160a01b03168152602001908152602001600020819055508581815181106155e457fe5b6020026020010151600182815481106155f957fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a09091015160039091015584518590829081106156b457fe5b6020026020010151600b82815481106156c957fe5b906000526020600020906016020160020190805190602001906156ed9291906164c4565b506000600b82815481106156fd57fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b80548390811061572e57fe5b6000918252602090912060169091020155615845565b6157d585828151811061575357fe5b6020026020010151600b838154811061576857fe5b600091825260209182902060026016909202018101805460408051601f600019610100600186161502019093169490940491820185900485028401850190528083529192909190830182828015612ab85780601f10612a8d57610100808354040283529160200191612ab8565b615820578481815181106157e557fe5b6020026020010151600b82815481106157fa57fe5b9060005260206000209060160201600201908051906020019061581e9291906164c4565b505b60006001828154811061582f57fe5b9060005260206000209060040201600301819055505b6001016154e3565b5082821115615a255761585e616495565b835b83811015615a225785818151811061587457fe5b60200260200101518260400181905250600187828151811061589257fe5b6020908102919091018101518254600181810185556000948552838520835160049093020180546001600160a01b039384166001600160a01b0319918216178255848601518284018054918616918316919091179055604080860151600284018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909a1692909616919091179290921696909617169190911790935560a090930151600390930192909255600b80549283018155909352845160169091026000805160206178ef83398151915281019182558583015160008051602061792f8339815191528201805491151560ff19909216919091179055928501518051869492936159c89360008051602061790f833981519152019201906164c4565b5060608201516159de906003830190601361653e565b50505080600101600460008984815181106159f557fe5b602090810291909101810151516001600160a01b0316825281019190915260400160002055600101615860565b50505b615a2d61607a565b615a3561625c565b6000600981905560015493505b83811015615aa3576000600b8281548110615a5957fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b805483908110615a8a57fe5b6000918252602090912060169091020155600101615a42565b505050505050565b60008184841115615acf5760405162461bcd60e51b8152600401610ce79190616bd7565b505050900390565b60008183615af85760405162461bcd60e51b8152600401610ce79190616bd7565b506000838581615b0457fe5b0495945050505050565b8051600090615b1f5750600061137a565b6020820151805160001a9060c0821015615b3e5760009250505061137a565b5060019392505050565b8051600090811a6080811015615b6257600091505061137a565b60b8811080615b7d575060c08110801590615b7d575060f881105b15615b8c57600191505061137a565b60c0811015615ba05760b51901905061137a565b60f51901905061137a565b80516000908190811a6080811015615bc65760019150615c85565b60b8811015615bdb57607e1981019150615c85565b60c0811015615c2c57600060b78203600186019550806020036101000a865104915060018101820193505080831015615c265760405162461bcd60e51b8152600401610ce790617187565b50615c85565b60f8811015615c415760be1981019150615c85565b600060f78203600186019550806020036101000a865104915060018101820193505080831015615c835760405162461bcd60e51b8152600401610ce790617187565b505b5092915050565b8051600090615c9d5750600061137a565b60008090506000615cb18460200151615b48565b602085015185519181019250015b80821015615cdf57615cd082615bab565b82019150826001019250615cbf565b50909392505050565b8051600090601514615cf957600080fd5b61142a82614db0565b8051606090615d1057600080fd5b6000615d1f8360200151615b48565b83516040805191839003808352601f19601f8201168301602001909152919250606090828015615d56576020820181803683370190505b50905060008160200190506147f984876020015101828561644a565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416615db657506018615dda565b6fffffffffffffffffffffffffffffffff198416615dd657506010615dda565b5060005b6020811015615e1057818181518110615def57fe5b01602001516001600160f81b03191615615e0857615e10565b600101615dda565b60008160200390506060816040519080825280601f01601f191660200182016040528015615e45576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015615e8a5750607f60f81b82600081518110615e7857fe5b01602001516001600160f81b03191611155b15615e9657508061137a565b61142a615ea88351608060ff16615f27565b835b6060806040519050835180825260208201818101602087015b81831015615edb578051835260209283019201615ec3565b50855184518101855292509050808201602086015b81831015615f08578051835260209283019201615ef0565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310615f515760405162461bcd60e51b8152600401610ce790616f7f565b60408051600180825281830190925260609160208201818036833701905050905060378411615fab5782840160f81b81600081518110615f8d57fe5b60200101906001600160f81b031916908160001a905350905061142a565b6060615fb685615d72565b90508381510160370160f81b82600081518110615fcf57fe5b60200101906001600160f81b031916908160001a905350615ff08282615eaa565b95945050505050565b805182516000916001600160a01b039182169116148015616033575081602001516001600160a01b031683602001516001600160a01b0316145b8015616058575081604001516001600160a01b031683604001516001600160a01b0316145b8015610f4e5750506060908101519101516001600160401b0390811691161490565b601254601354808211156160c557805b828110156160c357601280548061609d57fe5b6001900381819060005260206000200160006160b99190616683565b905560010161608a565b505b60008183106160d457816160d6565b825b905060005b818110156161ee57616193601282815481106160f357fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156161815780601f1061615657610100808354040283529160200191616181565b820191906000526020600020905b81548152906001019060200180831161616457829003601f168201915b505050505060138381548110612a2a57fe5b6161e657601381815481106161a457fe5b90600052602060002001601282815481106161bb57fe5b9060005260206000200190805460018160011615610100020316600290046161e49291906165e4565b505b6001016160db565b5082821115610d0757825b82811015612fc65760126013828154811061621057fe5b60009182526020808320845460018181018755958552919093209290910180546162539493909201929091600261010092821615929092026000190116046165e4565b506001016161f9565b601354600b54808211156162a757805b828110156162a557601380548061627f57fe5b60019003818190600052602060002001600061629b9190616683565b905560010161626c565b505b60008183106162b657816162b8565b825b905060005b818110156163d757616375601382815481106162d557fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156163635780601f1061633857610100808354040283529160200191616363565b820191906000526020600020905b81548152906001019060200180831161634657829003601f168201915b5050505050600b838154811061576857fe5b6163cf57600b818154811061638657fe5b9060005260206000209060160201600201601382815481106163a457fe5b9060005260206000200190805460018160011615610100020316600290046163cd9291906165e4565b505b6001016162bd565b5082821115610d0757825b82811015612fc6576013600b82815481106163f957fe5b600091825260208083208454600180820187559585529190932060169290920290920160029081018054616441959390940193909260001990821615610100020116046165e4565b506001016163e2565b8061645457610d07565b5b60208110616474578251825260209283019290910190601f1901616455565b915181516020939093036101000a6000190180199091169216919091179052565b604051806080016040528060008152602001600015158152602001606081526020016164bf6166f0565b905290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061650557805160ff1916838001178555616532565b82800160010185558215616532579182015b82811115616532578251825591602001919060010190616517565b5061280092915061670f565b82601381019282156165325791602002820182811115616532578251825591602001919060010190616517565b6040518060600160405280600060ff16815260200160608152602001606081525090565b60405180604001604052806165a26166d6565b8152602001600081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061661d5780548555616532565b8280016001018555821561653257600052602060002091601f016020900482015b8281111561653257825482559160010191906001019061663e565b8260138101928215616532579182018281111561653257825482559160010191906001019061663e565b50805460018160011615610100020316600290046000825580601f106166a95750611586565b601f016020900490600052602060002090810190611586919061670f565b5061158690601381019061670f565b604051806040016040528060008152602001600081525090565b6040518061026001604052806013906020820280368337509192915050565b6127a491905b808211156128005760008155600101616715565b60008083601f84011261673a578182fd5b5081356001600160401b03811115616750578182fd5b60208301915083602080830285010111156152ea57600080fd5b60008083601f84011261677b578182fd5b5081356001600160401b03811115616791578182fd5b6020830191508360208285010111156152ea57600080fd5b6000602082840312156167ba578081fd5b81356001600160a01b0381168114610f4e578182fd5b600080600080604085870312156167e5578283fd5b84356001600160401b03808211156167fb578485fd5b61680788838901616729565b9096509450602087013591508082111561681f578384fd5b5061682c87828801616729565b95989497509550505050565b600060208284031215616849578081fd5b81518015158114610f4e578182fd5b6000806020838503121561686a578182fd5b82356001600160401b0381111561687f578283fd5b61688b8582860161676a565b90969095509350505050565b600080600080604085870312156168ac578384fd5b84356001600160401b03808211156168c2578586fd5b6168ce8883890161676a565b909650945060208701359150808211156168e6578384fd5b5061682c8782880161676a565b600060208284031215616904578081fd5b5035919050565b60006020828403121561691c578081fd5b5051919050565b60008060408385031215616935578182fd5b505080516020909101519092909150565b60008060006040848603121561695a578283fd5b833560ff8116811461696a578384fd5b925060208401356001600160401b03811115616984578283fd5b6169908682870161676a565b9497909650939450505050565b6000815180845260208085019450808401835b838110156169d55781516001600160a01b0316875295820195908201906001016169b0565b509495945050505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008151808452616a228160208601602086016176f7565b601f01601f19169290920160200192915050565b60008251616a488184602087016176f7565b9190910192915050565b918252602082015260400190565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b03968716815294861660208601529290941660408401526001600160401b03166060830152911515608082015260a081019190915260c00190565b600060208252610f4e602083018461699d565b600060408252616af5604083018561699d565b602083820381850152818551808452828401915082838202850101838801865b83811015616b4357601f19878403018552616b31838351616a0a565b94860194925090850190600101616b15565b50909998505050505050505050565b600060808252616b65608083018761699d565b828103602084810191909152865180835287820192820190845b81811015616b9b57845183529383019391830191600101616b7f565b50508481036040860152616baf818861699d565b93505050506001600160401b038316606083015295945050505050565b901515815260200190565b600060208252610f4e6020830184616a0a565b600060408252616bfe6040830186886169e0565b8281036020840152616c118185876169e0565b979650505050505050565b6020808252601c908201527f6c656e677468206f66206275726e526174696f206d69736d6174636800000000604082015260600190565b60208082526026908201527f6c656e677468206f66206d61784e756d4f664d61696e7461696e696e67206d696040820152650e6dac2e8c6d60d31b606082015260800190565b6020808252601b908201527f6261746368207472616e736665722072657475726e2066616c73650000000000604082015260600190565b6020808252602c908201527f6c656e677468206f66206d61784e756d4f66576f726b696e6743616e6469646160408201526b0e8cae640dad2e6dac2e8c6d60a31b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61696e7461696e536c6173685363616c65206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252818101527f6c656e677468206f66206e756d4f66436162696e657473206d69736d61746368604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526028908201527f746865206e756d4f66436162696e657473206d75737420626520677265617465604082015267072207468616e20360c41b606082015260800190565b60208082526039908201527f746865206e756d4f66436162696e657473206d757374206265206c657373207460408201527f68616e204d41585f4e554d5f4f465f56414c494441544f525300000000000000606082015260800190565b60208082526029908201527f746865206e756d626572206f662076616c696461746f727320657863656564206040820152681d1a19481b1a5b5a5d60ba1b606082015260800190565b60208082526022908201527f63616e206e6f7420646f207468697320747769636520696e206f6e6520626c6f604082015261636b60f01b606082015260800190565b6020808252602b908201527f746865206275726e526174696f206d757374206265206e6f206772656174657260408201526a0207468616e2031303030360ac1b606082015260800190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526037908201527f746865206d61784e756d4f664d61696e7461696e696e67206d7573742062652060408201527f6c657373207468616e206e756d4f66436162696e657473000000000000000000606082015260800190565b6020808252602b908201527f6475706c696361746520636f6e73656e7375732061646472657373206f66207660408201526a185b1a59185d1bdc94d95d60aa1b606082015260800190565b60208082526033908201527f7468652073797374656d526577617264526174696f206d757374206265206e6f60408201527202067726561746572207468616e20313030303606c1b606082015260800190565b60208082526027908201527f7468652065787069726554696d655365636f6e64476170206973206f7574206f604082015266662072616e676560c81b606082015260800190565b6020808252601590820152746465706f7369742076616c7565206973207a65726f60581b604082015260600190565b60208082526049908201527f746865206d61784e756d4f66576f726b696e6743616e64696461746573206d7560408201527f7374206265206e6f742067726561746572207468616e206d61784e756d4f6643606082015268616e6469646174657360b81b608082015260a00190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b60208082526023908201527f63616e206e6f7420656e7465722054656d706f72617279204d61696e74656e616040820152626e636560e81b606082015260800190565b60208082526025908201527f6c656e677468206f66206a61696c2076616c696461746f7273206d757374206260408201526465206f6e6560d81b606082015260800190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61784e756d4f6643616e64696461746573206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252601290820152716e6f7420696e206d61696e74656e616e636560701b604082015260600190565b60208082526021908201527f666565206973206c6172676572207468616e2044555354595f494e434f4d494e6040820152604760f81b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526026908201527f6c656e677468206f662065787069726554696d655365636f6e64476170206d696040820152650e6dac2e8c6d60d31b606082015260800190565b60208082526017908201527f6f6e6c792063757272656e742076616c696461746f7273000000000000000000604082015260600190565b60208082526021908201527f6661696c656420746f20706172736520696e69742076616c696461746f7253656040820152601d60fa1b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b60208082526024908201527f6c656e677468206f662073797374656d526577617264526174696f206d69736d6040820152630c2e8c6d60e31b606082015260800190565b6020808252603e908201527f746865206d61696e7461696e536c6173685363616c65206d757374206265206760408201527f726561746572207468616e203020616e64206c657373207468616e2031300000606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b60208082526029908201527f746865206d6573736167652073656e646572206d75737420626520736c6173686040820152680818dbdb9d1c9858dd60ba1b606082015260800190565b61ffff91909116815260200190565b90815260200190565b6000848252831515602083015260606040830152615ff06060830184616a0a565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff8516825260406020830152615ff06040830184866169e0565b60005b838110156177125781810151838201526020016176fa565b83811115612fc6575050600091015256fef901a880f901a4f844941284214b9b9c85549ab3d2b972df0deef66ac2c9946ddf42a51534fc98d0c0a3b42c963cace8441ddf946ddf42a51534fc98d0c0a3b42c963cace8441ddf8410000000f84494a2959d3f95eae5dc7d70144ce1b73b403b7eb6e0948081ef03f1d9e0bb4a5bf38f16285c879299f07f948081ef03f1d9e0bb4a5bf38f16285c879299f07f8410000000f8449435552c16704d214347f29fa77f77da6d75d7c75294dc4973e838e3949c77aced16ac2315dc2d7ab11194dc4973e838e3949c77aced16ac2315dc2d7ab1118410000000f84494980a75ecd1309ea12fa2ed87a8744fbfc9b863d594cc6ac05c95a99c1f7b5f88de0e3486c82293b27094cc6ac05c95a99c1f7b5f88de0e3486c82293b2708410000000f84494f474cf03cceff28abc65c9cbae594f725c80e12d94e61a183325a18a173319dd8e19c8d069459e217594e61a183325a18a173319dd8e19c8d069459e21758410000000f84494b71b214cb885500844365e95cd9942c7276e7fd894d22ca3ba2141d23adab65ce4940eb7665ea2b6a794d22ca3ba2141d23adab65ce4940eb7665ea2b6a7841000000070e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb20175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbb0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbaa164736f6c6343000604000a" + }, + "0x0000000000000000000000000000000000001001": { + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b50600436106102955760003560e01c80638256ace611610167578063c81b1662116100ce578063e1c7392a11610087578063e1c7392a146104d3578063eb57bff7146104db578063f9a2bbc7146104e3578063fc3e5908146104eb578063fc4333cd146104f3578063fd6a6879146104fb57610295565b8063c81b166214610482578063c8509d811461048a578063c96be4cb1461049d578063cc844b73146104b0578063d2a42e4b146104c3578063dc927faf146104cb57610295565b8063a78abc1611610120578063a78abc1614610447578063ab51bb961461044f578063ac0af62914610457578063ac4317511461045f578063ae61dc3b14610472578063c80d4b8f1461047a57610295565b80638256ace61461040c578063831d65d11461041457806396713da9146104275780639bc8e4f21461042f5780639dc0926214610437578063a1a11bf51461043f57610295565b8063493279b11161020b5780636e47b482116101c45780636e47b482146103dc57806370fd5bad146103e4578063718a8aa8146103ec57806375d47a0a146103f45780637912a65d146103fc5780637942fd051461040457610295565b8063493279b1146103925780634bf6c882146103a757806351e80672146103af578063567a372d146103b75780635bfb4990146103bf57806362b72cf5146103d457610295565b806335aa2e441161025d57806335aa2e441461032457806337c8dab914610337578063389f4f71146103585780633a63f4b11461036d5780633dffc3871461037557806343756e5c1461038a57610295565b80630bee7a671461029a5780630e2374a5146102b85780631182b875146102cd57806322d1e80b146102ed57806323bac5a214610302575b600080fd5b6102a2610503565b6040516102af919061354e565b60405180910390f35b6102c0610508565b6040516102af9190612d6a565b6102e06102db366004612ca0565b61050e565b6040516102af9190612da2565b6102f5610574565b6040516102af9190612d97565b610315610310366004612a4e565b61057d565b6040516102af93929190613536565b6102c0610332366004612c70565b6105a0565b61034a610345366004612a4e565b6105c7565b6040516102af929190613528565b61036061061e565b6040516102af91906134fe565b610360610624565b61037d61062a565b6040516102af919061355f565b6102c061062f565b61039a610635565b6040516102af91906134ef565b61037d61063a565b6102c061063f565b610360610645565b6103d26103cd366004612a4e565b61064b565b005b6103606106f6565b6102c06106fc565b61037d610702565b61037d610707565b6102c061070c565b610360610712565b61037d610717565b61034a61071c565b6103d2610422366004612ca0565b610726565b61037d610838565b61036061083d565b6102c0610848565b6102c061084e565b6102f5610854565b6102a261085d565b610360610862565b6103d261046d366004612b54565b610867565b610360610e17565b610360610e1e565b6102c0610e23565b6103d2610498366004612ca0565b610e29565b6103d26104ab366004612a4e565b610e9a565b6103d26104be366004612bbd565b61128b565b61036061187c565b6102c0611881565b6103d2611887565b6103606118c3565b6102c06118c9565b61037d6118cf565b6103d26118d4565b6102c0611d1d565b606481565b61200181565b6060336120001461053a5760405162461bcd60e51b815260040161053190613347565b60405180910390fd5b60005460ff1661055c5760405162461bcd60e51b815260040161053190612e9d565b60405162461bcd60e51b815260040161053190613438565b60075460ff1681565b600260208190526000918252604090912080546001820154919092015460ff1683565b600181815481106105ad57fe5b6000918252602090912001546001600160a01b0316905081565b6000806105d2612835565b5050506001600160a01b0316600090815260026020818152604092839020835160608101855281548082526001830154938201849052919093015460ff16151592909301919091529091565b60055481565b60065481565b600181565b61100181565b606181565b600881565b61200081565b60045481565b336110001461066c5760405162461bcd60e51b81526004016105319061312c565b60005460ff1661068e5760405162461bcd60e51b815260040161053190612e9d565b61200063f7a251d7600b6106a184611d23565b60006040518463ffffffff1660e01b81526004016106c19392919061356d565b600060405180830381600087803b1580156106db57600080fd5b505af11580156106ef573d6000803e3d6000fd5b5050505050565b60035481565b61100581565b600281565b601081565b61100881565b603281565b600b81565b6004546005549091565b33612000146107475760405162461bcd60e51b815260040161053190613347565b60005460ff166107695760405162461bcd60e51b815260040161053190612e9d565b610771612858565b60006107b284848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611df592505050565b9150915080156107f95781516040517f7f0956d47419b9525356e7111652b653b530ec6f5096dccc04589bc38e629967916107ec9161354e565b60405180910390a16106ef565b81516040517f7d45f62d17443dd4547bca8a8112c60e2385669318dc300ec61a5d2492f262e7916108299161354e565b60405180910390a15050505050565b600981565b662386f26fc1000081565b61100781565b61100681565b60005460ff1681565b600081565b600481565b60005460ff166108895760405162461bcd60e51b815260040161053190612e9d565b33611007146108aa5760405162461bcd60e51b815260040161053190613204565b61091584848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260148152731b5a5cd9195b59585b9bdc951a1c995cda1bdb1960621b60208201529150611e759050565b156109b0576020811461093a5760405162461bcd60e51b8152600401610531906130b8565b604080516020601f840181900481028201810190925282815260009161097891858580838501838280828437600092019190915250611ecf92505050565b90506001811015801561098c575060055481105b6109a85760405162461bcd60e51b815260040161053190613302565b600455610dd4565b610a1684848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e19995b1bdb9e551a1c995cda1bdb19608a1b60208201529150611e759050565b15610ab25760208114610a3b5760405162461bcd60e51b815260040161053190613252565b604080516020601f8401819004810282018101909252828152600091610a7991858580838501838280828437600092019190915250611ecf92505050565b90506103e88111158015610a8e575060045481115b610aaa5760405162461bcd60e51b815260040161053190612f56565b600555610dd4565b610b2684848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f66696e616c697479536c617368526577617264526174696f000000000000000060208201529150611e759050565b15610bc05760208114610b4b5760405162461bcd60e51b81526004016105319061346f565b604080516020601f8401819004810282018101909252828152600091610b8991858580838501838280828437600092019190915250611ecf92505050565b9050600a8110158015610b9c5750606481105b610bb85760405162461bcd60e51b81526004016105319061306c565b600655610dd4565b610c3484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f656e61626c654d616c6963696f7573566f7465536c617368000000000000000060208201529150611e759050565b15610cab5760208114610c595760405162461bcd60e51b815260040161053190612f8b565b604080516020601f8401819004810282018101909252828152610c959190848480838501838280828437600092019190915250611ed492505050565b6007805460ff1916911515919091179055610dd4565b610d1f84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601781527f6d616c6963696f7573566f7465536c61736853636f706500000000000000000060208201529150611e759050565b15610dbc5760208114610d445760405162461bcd60e51b815260040161053190612de7565b604080516020601f8401819004810282018101909252828152600091610d8291858580838501838280828437600092019190915250611ecf92505050565b90506170808110158015610d985750620d2f0081105b610db45760405162461bcd60e51b815260040161053190612ed4565b600855610dd4565b60405162461bcd60e51b8152600401610531906133e3565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a84848484604051610e099493929190612db5565b60405180910390a150505050565b6201518081565b609681565b61100281565b3361200014610e4a5760405162461bcd60e51b815260040161053190613347565b60005460ff16610e6c5760405162461bcd60e51b815260040161053190612e9d565b6040517f07db600eebe2ac176be8dcebad61858c245a4961bb32ca2aa3d159b09aa0810e90600090a1505050565b334114610eb95760405162461bcd60e51b815260040161053190613396565b60005460ff16610edb5760405162461bcd60e51b815260040161053190612e9d565b6003544311610efc5760405162461bcd60e51b8152600401610531906134ba565b3a15610f1a5760405162461bcd60e51b8152600401610531906131a7565b60405163155853f360e21b8152611000906355614fcc90610f3f908490600401612d6a565b60206040518083038186803b158015610f5757600080fd5b505afa158015610f6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f8f9190612b34565b610f9857611284565b610fa0612835565b506001600160a01b0381166000908152600260208181526040928390208351606081018552815481526001820154928101929092529091015460ff161580159282019290925290610ffb576020810180516001019052611054565b60016040820181905260208201819052805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0384161790555b43815260055460208201518161106657fe5b066111b257600060208201526040516335409f7f60e01b8152611000906335409f7f90611097908590600401612d6a565b600060405180830381600087803b1580156110b157600080fd5b505af11580156110c5573d6000803e3d6000fd5b505050506120006001600160a01b031663f7a251d7600b6110e585611d23565b60006040518463ffffffff1660e01b81526004016111059392919061356d565b600060405180830381600087803b15801561111f57600080fd5b505af1925050508015611130575060015b6111ad573d80801561115e576040519150601f19603f3d011682016040523d82523d6000602084013e611163565b606091505b50826001600160a01b03167fd7bc86ff5d08c8ab043edec743302aba2520e6635172a428bc956721db9e2d1c8360200151836040516111a3929190613507565b60405180910390a2505b61121e565b6004548160200151816111c157fe5b0661121e576040516375abf10160e11b81526110009063eb57e202906111eb908590600401612d6a565b600060405180830381600087803b15801561120557600080fd5b505af1158015611219573d6000803e3d6000fd5b505050505b6001600160a01b0382166000818152600260208181526040808420865181559186015160018301558581015191909201805460ff1916911515919091179055517fddb6012116e51abf5436d956a4f0ebd927e92c576ff96d7918290c8782291e3e9190a2505b5043600355565b60005460ff166112ad5760405162461bcd60e51b815260040161053190612e9d565b604051630a83aaa960e31b81526110069063541d5548906112d2903390600401612d6a565b60206040518083038186803b1580156112ea57600080fd5b505afa1580156112fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113229190612b34565b61133e5760405162461bcd60e51b815260040161053190612e31565b60075460ff166113605760405162461bcd60e51b815260040161053190612e68565b60065461136d5760146006555b60085461137c57620151806008555b6008548151604001514391011180156113a057504360085482602001516040015101115b6113bc5760405162461bcd60e51b81526004016105319061340a565b8060200151602001518160000151602001511480156113ea5750806020015160600151816000015160600151145b156114075760405162461bcd60e51b8152600401610531906130ff565b8051604081015190511080156114265750602081015160408101519051105b6114425760405162461bcd60e51b815260040161053190613035565b6020810151518151511080156114675750806000015160400151816020015160400151105b8061149257508051516020820151511080156114925750806020015160400151816000015160400151105b806114ac5750806020015160400151816000015160400151145b6114c85760405162461bcd60e51b815260040161053190612f1f565b604080820151905163ea321e4960e01b81526110009163ea321e49916114f19190600401612da2565b60206040518083038186803b15801561150957600080fd5b505afa15801561151d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115419190612b34565b61155d5760405162461bcd60e51b8152600401610531906131d5565b61156f81600001518260400151611efc565b8015611588575061158881602001518260400151611efc565b6115a45760405162461bcd60e51b815260040161053190612fd6565b6060806110006001600160a01b0316633b071dcc6040518163ffffffff1660e01b815260040160006040518083038186803b1580156115e257600080fd5b505afa1580156115f6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261161e9190810190612a71565b9150915060005b81518110156117595761164f82828151811061163d57fe5b602002602001015185604001516120d4565b15611751576006546040516213929d60e11b8152606461100280319093020491906227253a906116859033908590600401612d7e565b602060405180830381600087803b15801561169f57600080fd5b505af11580156116b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116d79190612c88565b506110006001600160a01b03166335409f7f8584815181106116f557fe5b60200260200101516040518263ffffffff1660e01b81526004016117199190612d6a565b600060405180830381600087803b15801561173357600080fd5b505af1158015611747573d6000803e3d6000fd5b5050505050611759565b600101611625565b50600061176b84604001516000612138565b90506120006001600160a01b031663f7a251d7600b61178d8760400151612154565b60006040518463ffffffff1660e01b81526004016117ad9392919061356d565b600060405180830381600087803b1580156117c757600080fd5b505af19250505080156117d8575060015b61184a573d808015611806576040519150601f19603f3d011682016040523d82523d6000602084013e61180b565b606091505b50817fd58d1183100bd0932c0588f31c4205d6bc6168909765a96c41adbed3115f36288260405161183c9190612da2565b60405180910390a250611876565b60405181907f7b78aadacff901d8b63d0dba4f86283d4db8aef27f9ed70413dd860f1c9532b690600090a25b50505050565b601481565b61100381565b60005460ff16156118aa5760405162461bcd60e51b815260040161053190613294565b603260045560966005556000805460ff19166001179055565b60085481565b61100081565b600381565b33611000146118f55760405162461bcd60e51b81526004016105319061312c565b60005460ff166119175760405162461bcd60e51b815260040161053190612e9d565b60015461192357611d1b565b600154600090600019015b808211611cef576000805b82841015611a5257611949612835565b600260006001878154811061195a57fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff161515908201526005549091506004900481602001511115611a3c576004600554816119c757fe5b048160200151038160200181815250508060026000600188815481106119e957fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208351815591830151600183015591909101516002909101805460ff1916911515919091179055611a46565b6001925050611a52565b50836001019350611939565b828411611be957611a61612835565b6002600060018681548110611a7257fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff161515908201526005549091506004900481602001511115611b5a57600460055481611adf57fe5b04816020015103816020018181525050806002600060018781548110611b0157fe5b6000918252602080832091909101546001600160a01b03168352828101939093526040918201902083518155918301516001808401919091559201516002909101805460ff19169115159190911790559150611be99050565b6002600060018681548110611b6b57fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff19169055805480611baf57fe5b600082815260209020810160001990810180546001600160a01b031916905501905583611bdc5750611be9565b5060001990920191611a52565b818015611bf35750805b15611cd2576002600060018681548110611c0957fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff19169055805484908110611c5057fe5b600091825260209091200154600180546001600160a01b039092169186908110611c7657fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506001805480611caf57fe5b600082815260209020810160001990810180546001600160a01b03191690550190555b82611cde575050611cef565b50506001909101906000190161192e565b6040517fcfdb3b6ccaeccbdc68be3c59c840e3b3c90f0a7c491f5fff1cf56cfda200dd9c90600090a150505b565b61100481565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081611d3e579050509050611d67836001600160a01b031661218f565b81600081518110611d7457fe5b6020026020010181905250611d88436121b2565b81600181518110611d9557fe5b6020908102919091010152611daa60616121b2565b81600281518110611db757fe5b6020026020010181905250611dcb426121b2565b81600381518110611dd857fe5b6020026020010181905250611dec816121c5565b9150505b919050565b611dfd612858565b6000611e07612858565b611e0f61286a565b611e20611e1b8661224f565b612274565b90506000805b611e2f836122be565b15611e685780611e5b57611e4a611e45846122df565b61232d565b63ffffffff16845260019150611e60565b611e68565b600101611e26565b5091935090915050915091565b600081604051602001611e889190612d4e565b6040516020818303038152906040528051906020012083604051602001611eaf9190612d4e565b604051602081830303815290604052805190602001201490505b92915050565b015190565b8082015160009060ff811615611eee576001915081611ef4565b60009150815b505092915050565b60408051600480825260a0820190925260009160609190816020015b6060815260200190600190039081611f18575050604080516020808252818301909252919250606091908082018180368337019050509050611f5d85600001516121b2565b82600081518110611f6a57fe5b6020026020010181905250611f8560208660200151836123af565b611f8e816123bf565b82600181518110611f9b57fe5b6020026020010181905250611fb385604001516121b2565b82600281518110611fc057fe5b6020026020010181905250611fdb60208660600151836123af565b611fe4816123bf565b82600381518110611ff157fe5b6020026020010181905250612017602061200a846121c5565b80519060200120836123af565b6040805160b080825260e08201909252606091602082018180368337019050509050612047818360006020612415565b61205981876080015160206060612415565b612067818660806030612415565b604080516001808252818301909252606091602082018180368337019050509050815160016020830182602086016066600019fa6120a457600080fd5b5060016120b2826000612468565b60ff16146120c7576000945050505050611ec9565b5060019695505050505050565b8151815160009160019181148083146120f0576000925061212e565b600160208701838101602088015b60028483851001141561212957805183511461211d5760009650600093505b602092830192016120fe565b505050505b5090949350505050565b6000816020018351101561214b57600080fd5b50016020015190565b60408051600480825260a08201909252606091829190816020015b606081526020019060019003908161216f579050509050611d67836123bf565b60408051600560a21b8318601482015260348101909152606090611dec816123bf565b6060611ec96121c083612484565b6123bf565b60608151600014156121e65750604080516000815260208101909152611df0565b6060826000815181106121f557fe5b602002602001015190506000600190505b83518110156122365761222c8285838151811061221f57fe5b602002602001015161256a565b9150600101612206565b50611dec612249825160c060ff166125e7565b8261256a565b61225761288a565b506040805180820190915281518152602082810190820152919050565b61227c61286a565b612285826126b9565b61228e57600080fd5b600061229d83602001516126f3565b60208085015160408051808201909152868152920190820152915050919050565b60006122c861288a565b505080518051602091820151919092015191011190565b6122e761288a565b6122f0826122be565b6122f957600080fd5b6020820151600061230982612756565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061234257508151602110155b61234b57600080fd5b600061235a83602001516126f3565b905080836000015110156123805760405162461bcd60e51b8152600401610531906132cb565b8251602080850151830180519284900392918310156123a657826020036101000a820491505b50949350505050565b9091018181526020918201910152565b6060815160011480156123f15750607f60f81b826000815181106123df57fe5b01602001516001600160f81b03191611155b156123fd575080611df0565b611ec961240f8351608060ff166125e7565b8361256a565b60005b818110156106ef5783818151811061242c57fe5b602001015160f81c60f81b85848060010195508151811061244957fe5b60200101906001600160f81b031916908160001a905350600101612418565b6000816001018351101561247b57600080fd5b50016001015190565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166124c8575060186124ec565b6fffffffffffffffffffffffffffffffff1984166124e8575060106124ec565b5060005b60208110156125225781818151811061250157fe5b01602001516001600160f81b0319161561251a57612522565b6001016124ec565b60008160200390506060816040519080825280601f01601f191660200182016040528015612557576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b8183101561259b578051835260209283019201612583565b50855184518101855292509050808201602086015b818310156125c85780518352602092830192016125b0565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106126115760405162461bcd60e51b81526004016105319061300d565b6040805160018082528183019092526060916020820181803683370190505090506037841161266b5782840160f81b8160008151811061264d57fe5b60200101906001600160f81b031916908160001a9053509050611ec9565b606061267685612484565b90508381510160370160f81b8260008151811061268f57fe5b60200101906001600160f81b031916908160001a9053506126b0828261256a565b95945050505050565b80516000906126ca57506000611df0565b6020820151805160001a9060c08210156126e957600092505050611df0565b5060019392505050565b8051600090811a608081101561270d576000915050611df0565b60b8811080612728575060c08110801590612728575060f881105b15612737576001915050611df0565b60c081101561274b5760b519019050611df0565b60f519019050611df0565b80516000908190811a6080811015612771576001915061282e565b60b881101561278657607e198101915061282e565b60c08110156127d757600060b78203600186019550806020036101000a8651049150600181018201935050808310156127d15760405162461bcd60e51b81526004016105319061317c565b5061282e565b60f88110156127ec5760be198101915061282e565b600060f78203600186019550806020036101000a865104915060018101820193505080831015611ef45760405162461bcd60e51b81526004016105319061317c565b5092915050565b604051806060016040528060008152602001600081526020016000151581525090565b60408051602081019091526000815290565b604051806040016040528061287d61288a565b8152602001600081525090565b604051806040016040528060008152602001600081525090565b600082601f8301126128b4578081fd5b81516128c76128c2826135c0565b613599565b818152915060208083019084810160005b8481101561293d578151870188603f8201126128f357600080fd5b838101516129036128c2826135e0565b81815260408b8184860101111561291957600080fd5b61292883888401838701613604565b508652505092820192908201906001016128d8565b505050505092915050565b60008083601f840112612959578182fd5b50813567ffffffffffffffff811115612970578182fd5b60208301915083602082850101111561298857600080fd5b9250929050565b600082601f83011261299f578081fd5b81356129ad6128c2826135e0565b91508082528360208285010111156129c457600080fd5b8060208401602084013760009082016020015292915050565b600060a082840312156129ee578081fd5b6129f860a0613599565b905081358152602082013560208201526040820135604082015260608201356060820152608082013567ffffffffffffffff811115612a3657600080fd5b612a428482850161298f565b60808301525092915050565b600060208284031215612a5f578081fd5b8135612a6a81613630565b9392505050565b60008060408385031215612a83578081fd5b825167ffffffffffffffff80821115612a9a578283fd5b81850186601f820112612aab578384fd5b80519250612abb6128c2846135c0565b80848252602080830192508084018a828389028701011115612adb578788fd5b8794505b86851015612b06578051612af281613630565b845260019490940193928101928101612adf565b508801519096509350505080821115612b1d578283fd5b50612b2a858286016128a4565b9150509250929050565b600060208284031215612b45578081fd5b81518015158114612a6a578182fd5b60008060008060408587031215612b69578182fd5b843567ffffffffffffffff80821115612b80578384fd5b612b8c88838901612948565b90965094506020870135915080821115612ba4578384fd5b50612bb187828801612948565b95989497509550505050565b600060208284031215612bce578081fd5b813567ffffffffffffffff80821115612be5578283fd5b81840160608187031215612bf7578384fd5b612c016060613599565b9250803582811115612c11578485fd5b612c1d878284016129dd565b845250602081013582811115612c31578485fd5b612c3d878284016129dd565b602085015250604081013582811115612c54578485fd5b612c608782840161298f565b6040850152509195945050505050565b600060208284031215612c81578081fd5b5035919050565b600060208284031215612c99578081fd5b5051919050565b600080600060408486031215612cb4578283fd5b833560ff81168114612cc4578384fd5b9250602084013567ffffffffffffffff811115612cdf578283fd5b612ceb86828701612948565b9497909650939450505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008151808452612d3a816020860160208601613604565b601f01601f19169290920160200192915050565b60008251612d60818460208701613604565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b600060208252612a6a6020830184612d22565b600060408252612dc9604083018688612cf8565b8281036020840152612ddc818587612cf8565b979650505050505050565b6020808252602a908201527f6c656e677468206f66206d616c6963696f7573566f7465536c61736853636f706040820152690ca40dad2e6dac2e8c6d60b31b606082015260800190565b6020808252601f908201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604082015260600190565b6020808252818101527f6d616c6963696f757320766f746520736c617368206e6f7420656e61626c6564604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252602b908201527f746865206d616c6963696f757320766f746520736c6173682073636f7065206f60408201526a7574206f662072616e676560a81b606082015260800190565b6020808252601a908201527f6e6f2076696f6c6174696f6e206f6620766f74652072756c6573000000000000604082015260600190565b6020808252818101527f7468652066656c6f6e795468726573686f6c64206f7574206f662072616e6765604082015260600190565b6020808252602b908201527f6c656e677468206f6620656e61626c654d616c6963696f7573566f7465536c6160408201526a0e6d040dad2e6dac2e8c6d60ab1b606082015260800190565b60208082526017908201527f766572696679207369676e6174757265206661696c6564000000000000000000604082015260600190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526019908201527f7372634e756d20626967676572207468616e207461724e756d00000000000000604082015260600190565b6020808252602c908201527f7468652066696e616c69747920736c6173682072657761726420726174696f2060408201526b6f7574206f662072616e676560a01b606082015260800190565b60208082526027908201527f6c656e677468206f66206d697364656d65616e6f725468726573686f6c64206d6040820152660d2e6dac2e8c6d60cb1b606082015260800190565b60208082526013908201527274776f206964656e746963616c20766f74657360681b604082015260600190565b60208082526030908201527f746865206d6573736167652073656e646572206d7573742062652076616c696460408201526f185d1bdc94d95d0818dbdb9d1c9858dd60821b606082015260800190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b6020808252601590820152741d9bdd195059191c881a5cc81b9bdd08199bdd5b99605a1b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526022908201527f6c656e677468206f662066656c6f6e795468726573686f6c64206d69736d61746040820152610c6d60f31b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526025908201527f746865206d697364656d65616e6f725468726573686f6c64206f7574206f662060408201526472616e676560d81b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b6020808252601490820152731d185c99d95d08189b1bd8dac81d1bdbc81bdb1960621b604082015260600190565b6020808252601e908201527f7265636569766520756e65787065637465642073796e207061636b6167650000604082015260600190565b6020808252602b908201527f6c656e677468206f662066696e616c697479536c61736852657761726452617460408201526a0d2de40dad2e6dac2e8c6d60ab1b606082015260800190565b6020808252818101527f63616e206e6f7420736c61736820747769636520696e206f6e6520626c6f636b604082015260600190565b61ffff91909116815260200190565b90815260200190565b6000838252604060208301526135206040830184612d22565b949350505050565b918252602082015260400190565b92835260208301919091521515604082015260600190565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff85168252606060208301526135896060830185612d22565b9050826040830152949350505050565b60405181810167ffffffffffffffff811182821017156135b857600080fd5b604052919050565b600067ffffffffffffffff8211156135d6578081fd5b5060209081020190565b600067ffffffffffffffff8211156135f6578081fd5b50601f01601f191660200190565b60005b8381101561361f578181015183820152602001613607565b838111156118765750506000910152565b6001600160a01b038116811461364557600080fd5b5056fea164736f6c6343000604000a" + }, + "0x0000000000000000000000000000000000001002": { + "balance": "0x0", + "code": "0x6080604052600436106101c55760003560e01c806375d47a0a116100f7578063ab51bb9611610095578063f9a2bbc711610064578063f9a2bbc7146105c3578063fb5478b3146105d8578063fc3e5908146105ed578063fd6a68791461060257610209565b8063ab51bb96146104b5578063ac431751146104ca578063c81b166214610599578063dc927faf146105ae57610209565b80639a99b4f0116100d15780639a99b4f01461043d5780639dc0926214610476578063a1a11bf51461048b578063a78abc16146104a057610209565b806375d47a0a146103fe5780637942fd051461041357806396713da91461042857610209565b8063493279b1116101645780636d70f7ae1161013e5780636d70f7ae146103785780636e47b482146103bf57806370fd5bad146103d4578063718a8aa8146103e957610209565b8063493279b1146103225780634bf6c8821461034e57806351e806721461036357610209565b806331b6d4a5116101a057806331b6d4a5146102b85780633a0b0eff146102cd5780633dffc387146102e257806343756e5c1461030d57610209565b806227253a1461020e5780630bee7a67146102595780630e2374a51461028757610209565b366102095734156102075760408051348152905133917f6c98249d85d88c3753a04a22230f595e4dc8d3dc86c34af35deeeedc861b89db919081900360200190a25b005b600080fd5b34801561021a57600080fd5b506102476004803603604081101561023157600080fd5b506001600160a01b038135169060200135610617565b60408051918252519081900360200190f35b34801561026557600080fd5b5061026e6107c2565b6040805163ffffffff9092168252519081900360200190f35b34801561029357600080fd5b5061029c6107c7565b604080516001600160a01b039092168252519081900360200190f35b3480156102c457600080fd5b506102476107cd565b3480156102d957600080fd5b506102476107d9565b3480156102ee57600080fd5b506102f76107df565b6040805160ff9092168252519081900360200190f35b34801561031957600080fd5b5061029c6107e4565b34801561032e57600080fd5b506103376107ea565b6040805161ffff9092168252519081900360200190f35b34801561035a57600080fd5b506102f76107ef565b34801561036f57600080fd5b5061029c6107f4565b34801561038457600080fd5b506103ab6004803603602081101561039b57600080fd5b50356001600160a01b03166107fa565b604080519115158252519081900360200190f35b3480156103cb57600080fd5b5061029c610818565b3480156103e057600080fd5b506102f761081e565b3480156103f557600080fd5b506102f7610823565b34801561040a57600080fd5b5061029c610828565b34801561041f57600080fd5b506102f761082e565b34801561043457600080fd5b506102f7610833565b34801561044957600080fd5b506102476004803603604081101561046057600080fd5b506001600160a01b038135169060200135610838565b34801561048257600080fd5b5061029c610962565b34801561049757600080fd5b5061029c610968565b3480156104ac57600080fd5b506103ab61096e565b3480156104c157600080fd5b5061026e610977565b3480156104d657600080fd5b50610207600480360360408110156104ed57600080fd5b81019060208101813564010000000081111561050857600080fd5b82018360208201111561051a57600080fd5b8035906020019184600183028401116401000000008311171561053c57600080fd5b91939092909160208101903564010000000081111561055a57600080fd5b82018360208201111561056c57600080fd5b8035906020019184600183028401116401000000008311171561058e57600080fd5b50909250905061097c565b3480156105a557600080fd5b5061029c610cff565b3480156105ba57600080fd5b5061029c610d05565b3480156105cf57600080fd5b5061029c610d0b565b3480156105e457600080fd5b50610247610d11565b3480156105f957600080fd5b506102f7610d1d565b34801561060e57600080fd5b5061029c610d22565b6000805460ff1661069457600260208190527fe57bda0a954a7c7381b17b2c763e646ba2c60f67292d287ba583603e2c1c41668054600160ff19918216811790925561100560009081527fe25235fc0de9d7165652bef0846fefda506174abb9a190f03d0f7bcc6146dbce80548316841790559282558254161790555b3360009081526002602052604090205460ff166106e25760405162461bcd60e51b815260040180806020018281038252602b815260200180610e10602b913960400191505060405180910390fd5b60004783106106f157476106f3565b825b9050674563918244f400008111156107105750674563918244f400005b8015610791576040516001600160a01b0385169082156108fc029083906000818181858888f1935050505015801561074c573d6000803e3d6000fd5b506040805182815290516001600160a01b038616917ff8b71c64315fc33b2ead2adfa487955065152a8ac33d9d5193aafd7f45dc15a0919081900360200190a26107bb565b6040517fe589651933c2457488cc0d8e0941518abf748e799435e4e396d9c4d0b2db2d4d90600090a15b9392505050565b606481565b61200181565b674563918244f4000081565b60015481565b600181565b61100181565b606181565b600881565b61200081565b6001600160a01b031660009081526002602052604090205460ff1690565b61100581565b600281565b601081565b61100881565b600b81565b600981565b6000805460ff166108b557600260208190527fe57bda0a954a7c7381b17b2c763e646ba2c60f67292d287ba583603e2c1c41668054600160ff19918216811790925561100560009081527fe25235fc0de9d7165652bef0846fefda506174abb9a190f03d0f7bcc6146dbce80548316841790559282558254161790555b3360009081526002602052604090205460ff166109035760405162461bcd60e51b815260040180806020018281038252602b815260200180610e10602b913960400191505060405180910390fd5b60004783106109125747610914565b825b9050670de0b6b3a76400008111156107105750604051670de0b6b3a7640000906001600160a01b03851690600090839082818181858883f1935050505015801561074c573d6000803e3d6000fd5b61100781565b61100681565b60005460ff1681565b600081565b33611007146109bc5760405162461bcd60e51b815260040180806020018281038252602e815260200180610e6a602e913960400191505060405180910390fd5b610a1e84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600b81526a30b23227b832b930ba37b960a91b60208201529150610d289050565b15610af657606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060149091149050610aa15760405162461bcd60e51b815260040180806020018281038252602c815260200180610e98602c913960400191505060405180910390fd5b60148101516001600160a01b038116600081815260026020526040808220805460ff19166001179055517f9870d7fe5d112134c55844951dedf365363006d9c588db07c4c85af6322a06199190a25050610c6d565b610b5b84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600e81526d3232b632ba32a7b832b930ba37b960911b60208201529150610d289050565b15610c3057606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060149091149050610bde5760405162461bcd60e51b815260040180806020018281038252602f815260200180610e3b602f913960400191505060405180910390fd5b60148101516001600160a01b038116600081815260026020526040808220805460ff19169055517fb40992a19dba61ea600e87fce607102bf5908dc89076217b6ca6ae195224f7029190a25050610c6d565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b61100281565b61100381565b61100081565b670de0b6b3a764000081565b600381565b61100481565b6000816040516020018082805190602001908083835b60208310610d5d5780518252601f199092019160209182019101610d3e565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310610dcb5780518252601f199092019160209182019101610dac565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052805190602001201490509291505056fe6f6e6c79206f70657261746f7220697320616c6c6f77656420746f2063616c6c20746865206d6574686f646c656e677468206f662076616c756520666f722064656c6574654f70657261746f722073686f756c64206265203230746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662076616c756520666f72206164644f70657261746f722073686f756c64206265203230a164736f6c6343000604000a" + } + }, + "1710136800": { + "0x0000000000000000000000000000000000001000": { + "balance": "0x0", + "code": "0x6080604052600436106104fb5760003560e01c806388b32f111161028c578063c6d339451161015a578063e40716a1116100cc578063f92eb86b11610085578063f92eb86b14610d2d578063f9a2bbc714610d42578063fc3e590814610d57578063fccc281314610d6c578063fd4ad81f14610d81578063fd6a687914610db057610502565b8063e40716a114610c9b578063ea321e4914610cb0578063eb57e20214610cd0578063eda5868c14610cf0578063f1fad10414610d05578063f340fa0114610d1a57610502565b8063d86222d51161011e578063d86222d514610c1d578063daacdb6614610c32578063dc927faf14610c47578063df8079e914610c5c578063e086c7b114610c71578063e1c7392a14610c8657610502565b8063c6d3394514610bbe578063c81b166214610bd3578063c8509d811461098d578063ce910b0c14610be8578063d68fb56a14610c0857610502565b8063a78abc16116101fe578063ad3c9da6116101b7578063ad3c9da614610b3d578063aef198a914610b5d578063b7ab4db514610b72578063b8cf4ef114610b94578063bf9f4995146106fe578063c466689d14610ba957610502565b8063a78abc1614610ab4578063aa82dce114610ac9578063aad5606314610ade578063aaf5eb6814610af3578063ab51bb9614610b08578063ac43175114610b1d57610502565b806396713da91161025057806396713da914610a365780639dc0926214610a4b5780639fe0f81614610a60578063a0dc275814610a75578063a1a11bf514610a8a578063a5422d5c14610a9f57610502565b806388b32f11146109c25780638a7beb01146109d75780638b5ad0c9146109ec5780638d19a41014610a015780639369d7de14610a2157610502565b806351b4dce3116103c957806370fd5bad1161033b5780637e434d54116102f45780637e434d541461094e57806381650b6214610963578063820dcaa814610978578063831d65d11461098d578063853230aa1461090f57806386249882146109ad57610502565b806370fd5bad146108d0578063718a8aa8146108e557806375d47a0a146108fa57806378dfed4a1461090f5780637942fd05146109245780637a84ca2a1461093957610502565b80635d77156c1161038d5780635d77156c1461082a5780635de1e22c1461083f57806360eba4fe1461085457806362b72cf5146108745780636969a25c146108895780636e47b482146108bb57610502565b806351b4dce3146107ab57806351e80672146107c057806355614fcc146107d5578063565c56b3146107f55780635667515a1461081557610502565b8063300c35671161046d57806343756e5c1161042657806343756e5c1461072057806345cf9daf14610735578063493279b11461074a5780634bf6c8821461076c5780634df6e0c3146107815780635192c82c1461079657610502565b8063300c35671461065b578063321d398a1461067b5780633365af3a1461069b57806335409f7f146106bb5780633b071dcc146106db5780633dffc387146106fe57610502565b8063152ad3b8116104bf578063152ad3b8146105ba5780631e4c1524146105dc5780631ff18069146105fc578063219f22d51461061157806328087028146106265780632a0ffb6e1461063b57610502565b806304c4fec61461050757806307a568471461051e5780630bee7a67146105495780630e2374a51461056b5780631182b8751461058d57610502565b3661050257005b600080fd5b34801561051357600080fd5b5061051c610dc5565b005b34801561052a57600080fd5b50610533610e37565b6040516105409190618ee4565b60405180910390f35b34801561055557600080fd5b5061055e610e3d565b6040516105409190618f0e565b34801561057757600080fd5b50610580610e42565b60405161054091906181f7565b34801561059957600080fd5b506105ad6105a83660046180dd565b610e48565b604051610540919061838a565b3480156105c657600080fd5b506105cf611165565b604051610540919061837f565b3480156105e857600080fd5b5061051c6105f7366004617eeb565b61116e565b34801561060857600080fd5b50610533611844565b34801561061d57600080fd5b5061055e61184a565b34801561063257600080fd5b5061058061184f565b34801561064757600080fd5b5061051c610656366004617e4b565b611855565b34801561066757600080fd5b5061051c610676366004617e83565b611902565b34801561068757600080fd5b506105cf61069636600461808a565b611c4b565b3480156106a757600080fd5b506105cf6106b636600461808a565b611d1a565b3480156106c757600080fd5b5061051c6106d6366004617e4b565b611dcb565b3480156106e757600080fd5b506106f0611f30565b604051610540929190618295565b34801561070a57600080fd5b5061071361220c565b6040516105409190618f1f565b34801561072c57600080fd5b50610580612211565b34801561074157600080fd5b50610533612217565b34801561075657600080fd5b5061075f61221d565b6040516105409190618ed5565b34801561077857600080fd5b50610713612222565b34801561078d57600080fd5b506106f0612227565b3480156107a257600080fd5b506105336123b3565b3480156107b757600080fd5b506105806123b9565b3480156107cc57600080fd5b506105806123bf565b3480156107e157600080fd5b506105cf6107f0366004617e4b565b6123c5565b34801561080157600080fd5b50610533610810366004617e4b565b6123fa565b34801561082157600080fd5b5061071361244b565b34801561083657600080fd5b5061055e612450565b34801561084b57600080fd5b50610533612455565b34801561086057600080fd5b506105ad61086f36600461808a565b61245b565b34801561088057600080fd5b50610533612501565b34801561089557600080fd5b506108a96108a436600461808a565b612507565b60405161054096959493929190618224565b3480156108c757600080fd5b5061058061256b565b3480156108dc57600080fd5b50610713612571565b3480156108f157600080fd5b50610713612576565b34801561090657600080fd5b5061058061257b565b34801561091b57600080fd5b50610533612581565b34801561093057600080fd5b50610713612587565b34801561094557600080fd5b5061053361258c565b34801561095a57600080fd5b50610580612592565b34801561096f57600080fd5b5061055e612598565b34801561098457600080fd5b5061053361259d565b34801561099957600080fd5b5061051c6109a83660046180dd565b6125a3565b3480156109b957600080fd5b50610533612604565b3480156109ce57600080fd5b5061053361260a565b3480156109e357600080fd5b506105cf612610565b3480156109f857600080fd5b50610533612619565b348015610a0d57600080fd5b50610533610a1c366004617e4b565b61261f565b348015610a2d57600080fd5b5061051c61265f565b348015610a4257600080fd5b50610713612773565b348015610a5757600080fd5b50610580612778565b348015610a6c57600080fd5b5061053361277e565b348015610a8157600080fd5b50610533612783565b348015610a9657600080fd5b50610580612788565b348015610aab57600080fd5b506105ad61278e565b348015610ac057600080fd5b506105cf6127ad565b348015610ad557600080fd5b506105806127b6565b348015610aea57600080fd5b506105806127bc565b348015610aff57600080fd5b506105336127c2565b348015610b1457600080fd5b5061055e61244b565b348015610b2957600080fd5b5061051c610b3836600461802e565b6127cb565b348015610b4957600080fd5b50610533610b58366004617e4b565b613084565b348015610b6957600080fd5b50610533613096565b348015610b7e57600080fd5b50610b876130a3565b6040516105409190618282565b348015610ba057600080fd5b5061053361318f565b348015610bb557600080fd5b50610533613194565b348015610bca57600080fd5b50610533612571565b348015610bdf57600080fd5b5061058061319a565b348015610bf457600080fd5b506105ad610c0336600461808a565b6131a0565b348015610c1457600080fd5b506105336131ad565b348015610c2957600080fd5b506105336131ec565b348015610c3e57600080fd5b506105336131f8565b348015610c5357600080fd5b506105806131fe565b348015610c6857600080fd5b50610580613204565b348015610c7d57600080fd5b50610533610e3d565b348015610c9257600080fd5b5061051c61320a565b348015610ca757600080fd5b506105336133b9565b348015610cbc57600080fd5b506105cf610ccb366004617fef565b6133bf565b348015610cdc57600080fd5b5061051c610ceb366004617e4b565b613545565b348015610cfc57600080fd5b5061055e613649565b348015610d1157600080fd5b5061071361364e565b61051c610d28366004617e4b565b613653565b348015610d3957600080fd5b506105336139d2565b348015610d4e57600080fd5b506105806139d8565b348015610d6357600080fd5b5061071361277e565b348015610d7857600080fd5b506105806139de565b348015610d8d57600080fd5b50610da1610d9c36600461808a565b6139e4565b60405161054093929190618eed565b348015610dbc57600080fd5b50610580613aa6565b6000610dd03361261f565b9050600b8181548110610ddf57fe5b600091825260209091206001601690920201015460ff16610e1b5760405162461bcd60e51b8152600401610e1290618af0565b60405180910390fd5b6000610e256131ad565b9050610e32338383613aac565b505050565b60095481565b606481565b61200181565b60005460609060ff16610e6d5760405162461bcd60e51b8152600401610e12906185b1565b3361200014610e8e5760405162461bcd60e51b8152600401610e1290618cf1565b600b54610f4c57610e9d6179f7565b60015460005b81811015610f4857600b8054600181018255600091909152835160008051602061919c83398151915260169092029182019081556020808601516000805160206191dc8339815191528401805460ff1916911515919091179055604086015180518794610f24936000805160206191bc833981519152909101920190617a26565b506060820151610f3a9060038301906013617aa0565b505050806001019050610ea3565b5050505b610f54617acd565b6000610f9585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613d7d92505050565b9150915080610fb157610fa86064613f39565b9250505061115e565b815160009060ff16610fd657610fcf83602001518460400151613f9a565b905061112a565b825160ff16600114156111265782602001515160011461101b5760008051602061917c83398151915260405161100b906189a9565b60405180910390a1506067611121565b6000836020015160008151811061102e57fe5b602090810291909101810151516001600160a01b0381166000908152600490925260409091205490915080158061108f575060018082038154811061106f57fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b156110cd576040516001600160a01b038316907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a261111a565b60006110dc836001840361515c565b905080611118576040516001600160a01b038416907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a25b505b6000925050505b61112a565b5060655b63ffffffff811661114f575050604080516000815260208101909152915061115e9050565b61115881613f39565b93505050505b9392505050565b60075460ff1681565b33411461118d5760405162461bcd60e51b8152600401610e1290618d40565b3a156111ab5760405162461bcd60e51b8152600401610e1290618a2f565b82516040805182815260208084028201019091526060908280156111e957816020015b6111d6617af1565b8152602001906001900390816111ce5790505b50905060005b82811015611293576040518060c0016040528087838151811061120e57fe5b60200260200101516001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b0316815260200186838151811061125057fe5b60200260200101516001600160401b03168152602001600015158152602001600081525082828151811061128057fe5b60209081029190910101526001016111ef565b5060405163d31f968d60e01b81526120009063d31f968d906112be9061100090600890600401618266565b60206040518083038186803b1580156112d657600080fd5b505afa1580156112ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061130e9190617fcf565b15611631578051601554818111156113b057815b818110156113ae57601580548061133557fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055601680548061138857fe5b6001900381819060005260206000200160006113a49190617b26565b9055600101611322565b505b60005b828110156115f0578181106114d85760158482815181106113d057fe5b602090810291909101810151825460018181018555600094855293839020825160049092020180546001600160a01b039283166001600160a01b0319918216178255938301519481018054958316958516959095179094556040820151600285018054606085015160808601511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590961692909716919091179290921692909217169290921790915560a0015160039091015585516016908790839081106114a057fe5b602090810291909101810151825460018101845560009384529282902081516114d29491909101929190910190617a26565b506115e8565b8381815181106114e457fe5b6020026020010151601582815481106114f957fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a09091015160039091015585518690829081106115b457fe5b6020026020010151601682815481106115c957fe5b9060005260206000200190805190602001906115e6929190617a26565b505b6001016113b3565b507fb8e726330a0dad1cf3d04e925663b17e391f1ed547d79b7f4e5f344119b44246826040516116209190618ee4565b60405180910390a150505050610e32565b60608061163e838661551f565b9150915060005b6001548110156117345760006001828154811061165e57fe5b90600052602060002090600402016003015490508060001461172b5760006001838154811061168957fe5b9060005260206000209060040201600301819055506120026001600160a01b031663092193ab82600185815481106116bd57fe5b60009182526020909120600491820201546040516001600160e01b031960e086901b1681526116f8926001600160a01b0390921691016181f7565b6000604051808303818588803b15801561171157600080fd5b505af1158015611725573d6000803e3d6000fd5b50505050505b50600101611645565b5047156117a2577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d4760405161176a9190618ee4565b60405180910390a1604051611002904780156108fc02916000818181858888f193505050501580156117a0573d6000803e3d6000fd5b505b600060038190556005558151156117bd576117bd8282615a06565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156117fa57600080fd5b505af115801561180e573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a150505050505050565b60035481565b606881565b61200581565b33612002146118765760405162461bcd60e51b8152600401610e1290618e9e565b60005b6015548110156118fe57816001600160a01b03166015828154811061189a57fe5b60009182526020909120600490910201546001600160a01b031614156118f6576001601582815481106118c957fe5b9060005260206000209060040201600201601c6101000a81548160ff0219169083151502179055506118fe565b600101611879565b5050565b3341146119215760405162461bcd60e51b8152600401610e1290618d40565b60105443116119425760405162461bcd60e51b8152600401610e1290618744565b3a156119605760405162461bcd60e51b8152600401610e1290618a2f565b60005460ff166119825760405162461bcd60e51b8152600401610e12906185b1565b60006110023168056bc75e2d631000008111156119b9576119b28168056bc75e2d6310000063ffffffff6161f516565b91506119c0565b5050611c41565b6040516309a99b4f60e41b815261100290639a99b4f0906119e7903090869060040161820b565b602060405180830381600087803b158015611a0157600080fd5b505af1158015611a15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3991906180a2565b915081611a47575050611c41565b6000805b84811015611a7557858582818110611a5f57fe5b9050602002013582019150806001019050611a4b565b5080611a8357505050611c41565b6000806000805b89811015611c395784898983818110611a9f57fe5b90506020020135880281611aaf57fe5b0493508a8a82818110611abe57fe5b9050602002016020810190611ad39190617e4b565b6001600160a01b03811660009081526004602052604090205490935091508115611bef576000600180840381548110611b0857fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff1615611b7557836001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d8586604051611b689190618ee4565b60405180910390a2611be9565b600354611b88908663ffffffff61623716565b6003908155810154611ba0908663ffffffff61623716565b60038201556040516001600160a01b038516907fcb0aad6cf9cd03bdf6137e359f541c42f38b39f007cae8e89e88aa7d8c6617b290611be0908890618ee4565b60405180910390a25b50611c31565b826001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d8585604051611c289190618ee4565b60405180910390a25b600101611a8a565b505050505050505b5050436010555050565b6001546000908210611c5f57506000611d15565b60006001600160a01b031660018381548110611c7757fe5b60009182526020909120600490910201546001600160a01b03161480611ca757506008541580611ca75750600a54155b80611cb6575060085460095410155b80611cc75750611cc582611d1a565b155b80611cf057506000600b8381548110611cdc57fe5b906000526020600020906016020160000154115b80611d0457506001611d006130a3565b5111155b15611d1157506000611d15565b5060015b919050565b6001546000908210611d2e57506000611d15565b600b548210611d6b5760018281548110611d4457fe5b9060005260206000209060040201600201601c9054906101000a900460ff16159050611d15565b60018281548110611d7857fe5b9060005260206000209060040201600201601c9054906101000a900460ff16158015611dc55750600b8281548110611dac57fe5b600091825260209091206001601690920201015460ff16155b92915050565b600b54611e8957611dda6179f7565b60015460005b81811015611e8557600b8054600181018255600091909152835160008051602061919c83398151915260169092029182019081556020808601516000805160206191dc8339815191528401805460ff1916911515919091179055604086015180518794611e61936000805160206191bc833981519152909101920190617a26565b506060820151611e779060038301906013617aa0565b505050806001019050611de0565b5050505b336110011480611e9a575033612002145b611eb65760405162461bcd60e51b8152600401610e12906185e8565b6001600160a01b03811660009081526004602052604090205480611eda5750611f2d565b6001810390506000600b8281548110611eef57fe5b600091825260209091206001601690920201015460ff169050611f12838361515c565b8015611f1b5750805b15610e32576009805460001901905550505b50565b60015460609081906000805b82811015611f835760018181548110611f5157fe5b9060005260206000209060040201600201601c9054906101000a900460ff16611f7b576001909101905b600101611f3c565b50606081604051908082528060200260200182016040528015611fb0578160200160208202803683370190505b509050606082604051908082528060200260200182016040528015611fe957816020015b6060815260200190600190039081611fd45790505b50600b54600094509091508414156121645760005b8481101561215e576001818154811061201357fe5b9060005260206000209060040201600201601c9054906101000a900460ff16612156576001818154811061204357fe5b600091825260209091206004909102015483516001600160a01b039091169084908690811061206e57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600b818154811061209b57fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156121335780601f1061210857610100808354040283529160200191612133565b820191906000526020600020905b81548152906001019060200180831161211657829003601f168201915b505050505082858151811061214457fe5b60209081029190910101526001909301925b600101611ffe565b50612200565b60005b848110156121fe576001818154811061217c57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166121f657600181815481106121ac57fe5b600091825260209091206004909102015483516001600160a01b03909116908490869081106121d757fe5b6001600160a01b03909216602092830291909101909101526001909301925b600101612167565b505b909450925050505b9091565b600181565b61100181565b60085481565b606181565b600881565b6060806000600e549050600080600c5411612243576015612247565b600c545b905060606122536130a3565b905060606122608261625c565b905082825111612277579094509250612208915050565b83838351031015612289578282510393505b83156122bf5760c843046122a583838388880360008a8a6163ca565b6122bd8383838888038989038a8b8b8b5103016163ca565b505b6060836040519080825280602002602001820160405280156122eb578160200160208202803683370190505b50905060608460405190808252806020026020018201604052801561232457816020015b606081526020019060019003908161230f5790505b50905060005b858110156123a55784818151811061233e57fe5b602002602001015183828151811061235257fe5b60200260200101906001600160a01b031690816001600160a01b03168152505083818151811061237e57fe5b602002602001015182828151811061239257fe5b602090810291909101015260010161232a565b509096509450505050509091565b60065481565b61200681565b61200081565b6001600160a01b038116600090815260046020526040812054806123ed576000915050611d15565b6000190161115e81611d1a565b6001600160a01b03811660009081526004602052604081205480612422576000915050611d15565b60018082038154811061243157fe5b906000526020600020906004020160030154915050919050565b600081565b606781565b600f5481565b6012818154811061246857fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152935090918301828280156124f95780601f106124ce576101008083540402835291602001916124f9565b820191906000526020600020905b8154815290600101906020018083116124dc57829003601f168201915b505050505081565b60105481565b6001818154811061251457fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b601081565b61100881565b6103e881565b600b81565b600c5481565b61200381565b606681565b61271081565b33612000146125c45760405162461bcd60e51b8152600401610e1290618cf1565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f389021016058383836040516125f793929190618f2d565b60405180910390a1505050565b60025481565b60115481565b60145460ff1681565b600a5481565b6001600160a01b038116600090815260046020526040812054806126555760405162461bcd60e51b8152600401610e1290618c79565b6000190192915050565b600b5461271d5761266e6179f7565b60015460005b8181101561271957600b8054600181018255600091909152835160008051602061919c83398151915260169092029182019081556020808601516000805160206191dc8339815191528401805460ff19169115159190911790556040860151805187946126f5936000805160206191bc833981519152909101920190617a26565b50606082015161270b9060038301906013617aa0565b505050806001019050612674565b5050505b60085461272a5760036008555b600a54612737576002600a555b60006127423361261f565b905061274d81611c4b565b6127695760405162461bcd60e51b8152600401610e1290618966565b611f2d3382616521565b600981565b61100781565b600381565b60c881565b61100681565b604051806101e001604052806101ab8152602001618fd16101ab913981565b60005460ff1681565b61200281565b61300081565b6402540be40081565b60005460ff166127ed5760405162461bcd60e51b8152600401610e12906185b1565b336110071461280e5760405162461bcd60e51b8152600401610e1290618a5d565b61287884848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b602082015291506165b99050565b15612915576020811461289d5760405162461bcd60e51b8152600401610e1290618c33565b604080516020601f84018190048102820181019092528281526000916128db9185858083850183828082843760009201919091525061661292505050565b9050606481101580156128f15750620186a08111155b61290d5760405162461bcd60e51b8152600401610e1290618856565b600255613041565b61297584848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260098152686275726e526174696f60b81b602082015291506165b99050565b15612a18576020811461299a5760405162461bcd60e51b8152600401610e12906183cf565b604080516020601f84018190048102820181019092528281526000916129d89185858083850183828082843760009201919091525061661292505050565b90506127106129f2600f548361623790919063ffffffff16565b1115612a105760405162461bcd60e51b8152600401610e1290618406565b600655613041565b612a8284848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260138152726d61784e756d4f664d61696e7461696e696e6760681b602082015291506165b99050565b15612b1c5760208114612aa75760405162461bcd60e51b8152600401610e129061846e565b604080516020601f8401819004810282018101909252828152600091612ae59185858083850183828082843760009201919091525061661292505050565b600c5490915080612af4575060155b808210612b135760405162461bcd60e51b8152600401610e12906187ae565b50600855613041565b612b8584848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61696e7461696e536c6173685363616c6560701b602082015291506165b99050565b15612c1e5760208114612baa5760405162461bcd60e51b8152600401610e1290618537565b604080516020601f8401819004810282018101909252828152600091612be89185858083850183828082843760009201919091525061661292505050565b9050600081118015612bfa5750600a81105b612c165760405162461bcd60e51b8152600401610e1290618dd1565b600a55613041565b612c9284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601981527f6d61784e756d4f66576f726b696e6743616e6469646174657300000000000000602082015291506165b99050565b15612d215760208114612cb75760405162461bcd60e51b8152600401610e12906184eb565b604080516020601f8401819004810282018101909252828152600091612cf59185858083850183828082843760009201919091525061661292505050565b9050600d54811115612d195760405162461bcd60e51b8152600401610e12906188cc565b600e55613041565b612d8a84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61784e756d4f6643616e6469646174657360701b602082015291506165b99050565b15612e0c5760208114612daf5760405162461bcd60e51b8152600401610e1290618aab565b604080516020601f8401819004810282018101909252828152600091612ded9185858083850183828082843760009201919091525061661292505050565b600d819055600e54909150811015612e0657600d54600e555b50613041565b612e7084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c6e756d4f66436162696e65747360981b602082015291506165b99050565b15612f1e5760208114612e955760405162461bcd60e51b8152600401610e129061857c565b604080516020601f8401819004810282018101909252828152600091612ed39185858083850183828082843760009201919091525061661292505050565b905060008111612ef55760405162461bcd60e51b8152600401610e1290618656565b6064811115612f165760405162461bcd60e51b8152600401610e129061869e565b600c55613041565b612f8684848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601181527073797374656d526577617264526174696f60781b602082015291506165b99050565b156130295760208114612fab5760405162461bcd60e51b8152600401610e1290618d8d565b604080516020601f8401819004810282018101909252828152600091612fe99185858083850183828082843760009201919091525061661292505050565b90506127106130036006548361623790919063ffffffff16565b11156130215760405162461bcd60e51b8152600401610e1290618b94565b600f55613041565b60405162461bcd60e51b8152600401610e1290618e2e565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a84848484604051613076949392919061839d565b60405180910390a150505050565b60046020526000908152604090205481565b68056bc75e2d6310000081565b6001546060906000805b828110156130d2576130be81611d1a565b156130ca578160010191505b6001016130ad565b506060816040519080825280602002602001820160405280156130ff578160200160208202803683370190505b5090506000915060005b838110156131865761311a81611d1a565b1561317e576001818154811061312c57fe5b600091825260209091206004909102015482516001600160a01b039091169083908590811061315757fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508260010192505b600101613109565b50925050505b90565b601581565b61027181565b61100281565b6013818154811061246857fe5b60006131b76130a3565b519050600080600c54116131cc5760156131d0565b600c545b9050808211156131de578091505b816131e857600191505b5090565b67016345785d8a000081565b60055481565b61100381565b61200481565b60005460ff161561322d5760405162461bcd60e51b8152600401610e1290618b5d565b613235617acd565b600061325b604051806101e001604052806101ab8152602001618fd16101ab9139613d7d565b915091508061327c5760405162461bcd60e51b8152600401610e1290618cb0565b60005b8260200151518110156133a15760018360200151828151811061329e57fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a09093015160039093019290925591860151805191850193918590811061337457fe5b602090810291909101810151516001600160a01b031682528101919091526040016000205560010161327f565b50506103e8600255506000805460ff19166001179055565b600d5481565b601354600090815b818110156134c8576134b085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060138054909250859150811061341857fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156134a65780601f1061347b576101008083540402835291602001916134a6565b820191906000526020600020905b81548152906001019060200180831161348957829003601f168201915b5050505050616617565b156134c057600192505050611dc5565b6001016133c7565b5060125460005b818110156135395761352086868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060128054909250859150811061341857fe5b156135315760019350505050611dc5565b6001016134cf565b50600095945050505050565b33611001146135665760405162461bcd60e51b8152600401610e1290618e55565b600b54613624576135756179f7565b60015460005b8181101561362057600b8054600181018255600091909152835160008051602061919c83398151915260169092029182019081556020808601516000805160206191dc8339815191528401805460ff19169115159190911790556040860151805187946135fc936000805160206191bc833981519152909101920190617a26565b5060608201516136129060038301906013617aa0565b50505080600101905061357b565b5050505b600061362f8261667b565b905061363a81611c4b565b156118fe576118fe8282616521565b606581565b601181565b3341146136725760405162461bcd60e51b8152600401610e1290618d40565b60005460ff166136945760405162461bcd60e51b8152600401610e12906185b1565b600034116136b45760405162461bcd60e51b8152600401610e129061889d565b3a156136d25760405162461bcd60e51b8152600401610e1290618a2f565b6001600160a01b03811660009081526004602052604090205460145434919060ff1661371257610271600f556103e86006556014805460ff191660011790555b60008211801561372457506000600f54115b156137d6576000613752612710613746600f54346167fe90919063ffffffff16565b9063ffffffff61683816565b905080156137d4576040516110029082156108fc029083906000818181858888f19350505050158015613789573d6000803e3d6000fd5b507f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d816040516137b99190618ee4565b60405180910390a16137d1838263ffffffff6161f516565b92505b505b6000821180156137e857506000600654115b1561388e57600061380a612710613746600654346167fe90919063ffffffff16565b9050801561388c5760405161dead9082156108fc029083906000818181858888f19350505050158015613841573d6000803e3d6000fd5b507f627059660ea01c4733a328effb2294d2f86905bf806da763a89cee254de8bee5816040516138719190618ee4565b60405180910390a1613889838263ffffffff6161f516565b92505b505b801561398c5760006001808303815481106138a557fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff161561391257836001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4846040516139059190618ee4565b60405180910390a2613986565b600354613925908463ffffffff61623716565b600390815581015461393d908463ffffffff61623716565b60038201556040516001600160a01b038516907f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc0559061397d908690618ee4565b60405180910390a25b50610e32565b826001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4836040516139c59190618ee4565b60405180910390a2505050565b600e5481565b61100081565b61dead81565b600b81815481106139f157fe5b6000918252602091829020601691909102018054600180830154600280850180546040805161010096831615969096026000190190911692909204601f810188900488028501880190925281845293965060ff90911694919291830182828015613a9c5780601f10613a7157610100808354040283529160200191613a9c565b820191906000526020600020905b815481529060010190602001808311613a7f57829003601f168201915b5050505050905083565b61100481565b6000600a5460001480613abd575081155b80613ac85750600954155b15613ad55750600061115e565b60096000815460019003919050819055506000613b20600a5461374685613746600b8981548110613b0257fe5b6000918252602090912060169091020154439063ffffffff6161f516565b90506000600b8581548110613b3157fe5b906000526020600020906016020160010160006101000a81548160ff0219169083151502179055506000806110016001600160a01b0316638256ace66040518163ffffffff1660e01b8152600401604080518083038186803b158015613b9657600080fd5b505afa158015613baa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613bce91906180ba565b9150915060009350808310613d2d57613be7878761515c565b5060405163436aa28360e11b8152600090612002906386d5450690613c10908b906004016181f7565b60206040518083038186803b158015613c2857600080fd5b505afa158015613c3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c609190617e67565b6001600160a01b031614613ccc576040516313d13bdb60e31b815261100190639e89ded890613c95908a90879060040161820b565b600060405180830381600087803b158015613caf57600080fd5b505af1158015613cc3573d6000803e3d6000fd5b50505050613d24565b6040516305bfb49960e41b815261100190635bfb499090613cf1908a906004016181f7565b600060405180830381600087803b158015613d0b57600080fd5b505af1158015613d1f573d6000803e3d6000fd5b505050505b60019350613d3f565b818310613d3f57613d3d8761667b565b505b6040516001600160a01b038816907fb9d38178dc641ff1817967a63c9078cbcd955a9f1fcd75e0e3636de615d44d3b90600090a25050509392505050565b613d85617acd565b6000613d8f617acd565b613d97617b6a565b613da8613da38661687a565b61689f565b90506000805b613db7836168e9565b15613f2b5780613ddc57613dd2613dcd8461690a565b616958565b60ff168452613f23565b8060011415613f1e576060613df8613df38561690a565b6169d8565b90508051604051908082528060200260200182016040528015613e3557816020015b613e22617af1565b815260200190600190039081613e1a5790505b5085602001819052508051604051908082528060200260200182016040528015613e7357816020015b6060815260200190600190039081613e5e5790505b50604086015260005b8151811015613f1357613e8d617af1565b60606000613ead858581518110613ea057fe5b6020026020010151616aa9565b92509250925080613ecd578860009a509a50505050505050505050613f34565b8289602001518581518110613ede57fe5b60200260200101819052508189604001518581518110613efa57fe5b6020026020010181905250505050806001019050613e7c565b506001925050613f23565b613f2b565b600101613dae565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b6060815260200190600190039081613f53579050509050613f798363ffffffff16616bc3565b81600081518110613f8657fe5b602002602001018190525061115e81616bd6565b6000606483511115613fd15760008051602061917c833981519152604051613fc1906186fb565b60405180910390a1506066611dc5565b60005b835181101561406f5760005b8181101561406657848181518110613ff457fe5b6020026020010151600001516001600160a01b031685838151811061401557fe5b6020026020010151600001516001600160a01b0316141561405e5760008051602061917c83398151915260405161404b9061880b565b60405180910390a1606692505050611dc5565b600101613fe0565b50600101613fd4565b5060608060606015805480602002602001604051908101604052809291908181526020016000905b828210156141215760008481526020908190206040805160c0810182526004860290920180546001600160a01b039081168452600180830154821685870152600283015491821693850193909352600160a01b81046001600160401b03166060850152600160e01b900460ff16151560808401526003015460a08301529083529092019101614097565b50505050905060606016805480602002602001604051908101604052809291908181526020016000905b828210156141f65760008481526020908190208301805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156141e25780601f106141b7576101008083540402835291602001916141e2565b820191906000526020600020905b8154815290600101906020018083116141c557829003601f168201915b50505050508152602001906001019061414b565b50505050905060005b82518110156142535782818151811061421457fe5b60200260200101516060015160030283828151811061422f57fe5b60209081029190910101516001600160401b039091166060909101526001016141ff565b5060608061426389898686616c60565b91509150614271828261551f565b600154604080518281526020808402820101909152929850909650600095508594509250606091508280156142b0578160200160208202803683370190505b50905060005b828110156144415760006001600160a01b03166120026001600160a01b03166386d54506600184815481106142e757fe5b60009182526020909120600491820201546040516001600160e01b031960e085901b168152614322926001600160a01b0390921691016181f7565b60206040518083038186803b15801561433a57600080fd5b505afa15801561434e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143729190617e67565b6001600160a01b0316146143d457600182828151811061438e57fe5b602002602001019060ff16908160ff1681525050600181815481106143af57fe5b9060005260206000209060040201600301546000146143cf578360010193505b614439565b67016345785d8a0000600182815481106143ea57fe5b9060005260206000209060040201600301541061440c57846001019450614439565b6001818154811061441957fe5b906000526020600020906004020160030154600014614439578360010193505b6001016142b6565b5060608460405190808252806020026020018201604052801561446e578160200160208202803683370190505b50905060608560405190808252806020026020018201604052801561449d578160200160208202803683370190505b5090506060866040519080825280602002602001820160405280156144cc578160200160208202803683370190505b5090506060876040519080825280602002602001820160405280156144fb578160200160208202803683370190505b509050600060608860405190808252806020026020018201604052801561452c578160200160208202803683370190505b50905060608960405190808252806020026020018201604052801561455b578160200160208202803683370190505b50905060009a506000995060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b1580156145a357600080fd5b505afa1580156145b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145db91906180a2565b905067016345785d8a00008111156146275760008051602061917c83398151915260405161460890618b1c565b60405180910390a160689e505050505050505050505050505050611dc5565b60005b8a8110156149bb5789818151811061463e57fe5b602002602001015160ff1660011415614734576001818154811061465e57fe5b90600052602060002090600402016003015460001461472f576001818154811061468457fe5b600091825260209091206004909102015484516001600160a01b039091169085908e9081106146af57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600181815481106146dc57fe5b906000526020600020906004020160030154838d815181106146fa57fe5b60200260200101818152505060018a8d8151811061471457fe5b602002602001019060ff16908160ff16815250508b6001019b505b6149b3565b67016345785d8a00006001828154811061474a57fe5b906000526020600020906004020160030154106148cf576001818154811061476e57fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316898e8151811061479f57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be400600183815481106147d457fe5b906000526020600020906004020160030154816147ed57fe5b06600183815481106147fb57fe5b90600052602060002090600402016003015403905061482383826161f590919063ffffffff16565b898f8151811061482f57fe5b6020026020010181815250506001828154811061484857fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316878f8151811061487957fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081888f815181106148a657fe5b60209081029190910101526148c1868263ffffffff61623716565b95508d6001019d50506149b3565b600181815481106148dc57fe5b9060005260206000209060040201600301546000146149b3576001818154811061490257fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316848d8151811061493357fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506001818154811061496057fe5b906000526020600020906004020160030154838d8151811061497e57fe5b60200260200101818152505060008a8d8151811061499857fe5b602002602001019060ff16908160ff16815250508b6001019b505b60010161462a565b5060008415614c31576002546040516303702b2960e51b815261100491636e0565209188916149f5918e918e918d91420190600401618305565b6020604051808303818588803b158015614a0e57600080fd5b505af193505050508015614a3f575060408051601f3d908101601f19168201909252614a3c91810190617fcf565b60015b614bb6576040516000815260443d1015614a5b57506000614af6565b60046000803e60005160e01c6308c379a08114614a7c576000915050614af6565b60043d036004833e81513d60248201116001600160401b0382111715614aa757600092505050614af6565b80830180516001600160401b03811115614ac8576000945050505050614af6565b8060208301013d8601811115614ae657600095505050505050614af6565b601f01601f191660405250925050505b80614b015750614b43565b60019150857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf28082604051614b35919061838a565b60405180910390a250614bb1565b3d808015614b6d576040519150601f19603f3d011682016040523d82523d6000602084013e614b72565b606091505b5060019150857fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a4582604051614ba7919061838a565b60405180910390a2505b614c31565b8015614bf8577fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b7086604051614beb9190618ee4565b60405180910390a1614c2f565b857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280604051614c26906184b4565b60405180910390a25b505b8015614de75760005b8751811015614de5576000888281518110614c5157fe5b60200260200101519050600060018281548110614c6a57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc9185908110614c9b57fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f1935050505090508015614d575760018281548110614cdc57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d9185908110614d2b57fe5b906000526020600020906004020160030154604051614d4a9190618ee4565b60405180910390a2614ddb565b60018281548110614d6457fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d9185908110614db357fe5b906000526020600020906004020160030154604051614dd29190618ee4565b60405180910390a25b5050600101614c3a565b505b835115614fdd5760005b8451811015614fdb578a8181518110614e0657fe5b602002602001015160ff1660011415614ea5576120026001600160a01b031663092193ab858381518110614e3657fe5b6020026020010151878481518110614e4a57fe5b60200260200101516040518363ffffffff1660e01b8152600401614e6e91906181f7565b6000604051808303818588803b158015614e8757600080fd5b505af1158015614e9b573d6000803e3d6000fd5b5050505050614fd3565b6000858281518110614eb357fe5b60200260200101516001600160a01b03166108fc868481518110614ed357fe5b60200260200101519081150290604051600060405180830381858888f1935050505090508015614f6957858281518110614f0957fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d868481518110614f4757fe5b6020026020010151604051614f5c9190618ee4565b60405180910390a2614fd1565b858281518110614f7557fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d868481518110614fb357fe5b6020026020010151604051614fc89190618ee4565b60405180910390a25b505b600101614df1565b505b5050505050505050505050505060005b60015481101561504a576001818154811061500457fe5b9060005260206000209060040201600301546000146150425760006001828154811061502c57fe5b9060005260206000209060040201600301819055505b600101614fed565b5047156150b8577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d476040516150809190618ee4565b60405180910390a1604051611002904780156108fc02916000818181858888f193505050501580156150b6573d6000803e3d6000fd5b505b600060038190556005558151156150d3576150d38282615a06565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561511057600080fd5b505af1158015615124573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a1506000949350505050565b6000806001838154811061516c57fe5b906000526020600020906004020160030154905060006001808054905003905060016151966130a3565b51116151cb576000600185815481106151ab57fe5b906000526020600020906004020160030181905550600092505050611dc5565b846001600160a01b03167f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a70836040516152049190618ee4565b60405180910390a26001600160a01b038516600090815260046020526040812055835b600154600019018110156153f1576001816001018154811061524557fe5b90600052602060002090600402016001828154811061526057fe5b60009182526020909120825460049092020180546001600160a01b03199081166001600160a01b0393841617825560018085015481840180548416918616919091179055600280860180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b19909416939093179055600392830154920191909155600b80549091830190811061532157fe5b9060005260206000209060160201600b828154811061533c57fe5b600091825260209091208254601690920201908155600180830154818301805460ff909216151560ff1990921691909117905560028084018054615393938386019390821615610100026000190190911604617b8a565b506153a660038281019084016013617bff565b509050508060010160046000600184815481106153bf57fe5b600091825260208083206004909202909101546001600160a01b03168352820192909252604001902055600101615227565b5060018054806153fd57fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b80548061545057fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906154826002830182617b26565b615490600383016000617c29565b50509055600081838161549f57fe5b04905080156155135760015460005b81811015615510576154e783600183815481106154c757fe5b90600052602060002090600402016003015461623790919063ffffffff16565b600182815481106154f457fe5b60009182526020909120600360049092020101556001016154ae565b50505b50600195945050505050565b6060806000808080806155306131ad565b6001549091505b801561575f57600181039250600b838154811061555057fe5b600091825260209091206001601690920201015460ff1661557057615756565b6001838154811061557d57fe5b60009182526020909120600490910201546001600160a01b031694506155a4858484613aac565b9350836155b057615756565b60405163436aa28360e11b81526000908190612002906386d54506906155da908a906004016181f7565b60206040518083038186803b1580156155f257600080fd5b505afa158015615606573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061562a9190617e67565b90506001600160a01b038116156156b3576040516302ceee9160e11b81526120029063059ddd22906156609084906004016181f7565b60206040518083038186803b15801561567857600080fd5b505afa15801561568c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906156b09190617e67565b91505b60005b8c5181101561575257876001600160a01b03168d82815181106156d557fe5b6020026020010151600001516001600160a01b0316148061571e5750826001600160a01b03168d828151811061570757fe5b6020026020010151600001516001600160a01b0316145b1561574a5760018d828151811061573157fe5b6020908102919091010151901515608090910152615752565b6001016156b6565b5050505b60001901615537565b5060005b89518110156157cc5789818151811061577857fe5b602002602001015160800151806157b8575060006001600160a01b03168a82815181106157a157fe5b6020026020010151600001516001600160a01b0316145b156157c4578560010195505b600101615763565b50885185106158b45760408051600180825281830190925290816020015b6157f2617af1565b8152602001906001900390816157ea575050604080516001808252818301909252919850602082015b606081526020019060019003908161581b5790505095508860008151811061583f57fe5b60200260200101518760008151811061585457fe5b60200260200101819052508760008151811061586c57fe5b60200260200101518660008151811061588157fe5b602002602001018190525060008760008151811061589b57fe5b60209081029190910101519015156080909101526159f9565b848951036040519080825280602002602001820160405280156158f157816020015b6158de617af1565b8152602001906001900390816158d65790505b5096508489510360405190808252806020026020018201604052801561592b57816020015b60608152602001906001900390816159165790505b5095506000915060005b89518110156159f75789818151811061594a57fe5b60200260200101516080015115801561598d575060006001600160a01b03168a828151811061597557fe5b6020026020010151600001516001600160a01b031614155b156159ef5789818151811061599e57fe5b60200260200101518884815181106159b257fe5b60200260200101819052508881815181106159c957fe5b60200260200101518784815181106159dd57fe5b60200260200101819052508260010192505b600101615935565b505b50505050505b9250929050565b600154825160005b82811015615b23576001615a20617af1565b60018381548110615a2d57fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b84811015615af757878181518110615abd57fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b03161415615aef5760009250615af7565b600101615aa9565b508115615b195780516001600160a01b03166000908152600460205260408120555b5050600101615a0e565b5080821115615be257805b82811015615be0576001805480615b4157fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b805480615b9457fe5b60008281526020812060166000199093019283020181815560018101805460ff1916905590615bc66002830182617b26565b615bd4600383016000617c29565b50509055600101615b2e565b505b6000818310615bf15781615bf3565b825b905060005b81811015615f9757615ca5868281518110615c0f57fe5b602002602001015160018381548110615c2457fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a082015261702c565b615e59578060010160046000888481518110615cbd57fe5b6020026020010151600001516001600160a01b03166001600160a01b0316815260200190815260200160002081905550858181518110615cf957fe5b602002602001015160018281548110615d0e57fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a0909101516003909101558451859082908110615dc957fe5b6020026020010151600b8281548110615dde57fe5b90600052602060002090601602016002019080519060200190615e02929190617a26565b506000600b8281548110615e1257fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b805483908110615e4357fe5b6000918252602090912060169091020155615f8f565b858181518110615e6557fe5b60200260200101516060015160018281548110615e7e57fe5b906000526020600020906004020160020160146101000a8154816001600160401b0302191690836001600160401b03160217905550615f44858281518110615ec257fe5b6020026020010151600b8381548110615ed757fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156134a65780601f1061347b576101008083540402835291602001916134a6565b615f8f57848181518110615f5457fe5b6020026020010151600b8281548110615f6957fe5b90600052602060002090601602016002019080519060200190615f8d929190617a26565b505b600101615bf8565b508282111561616f57615fa86179f7565b835b8381101561616c57858181518110615fbe57fe5b602002602001015182604001819052506001878281518110615fdc57fe5b6020908102919091018101518254600181810185556000948552838520835160049093020180546001600160a01b039384166001600160a01b0319918216178255848601518284018054918616918316919091179055604080860151600284018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909a1692909616919091179290921696909617169190911790935560a090930151600390930192909255600b805492830181559093528451601690910260008051602061919c8339815191528101918255858301516000805160206191dc8339815191528201805491151560ff1990921691909117905592850151805186949293616112936000805160206191bc83398151915201920190617a26565b5060608201516161289060038301906013617aa0565b505050806001016004600089848151811061613f57fe5b602090810291909101810151516001600160a01b0316825281019190915260400160002055600101615faa565b50505b616177617088565b61617f617270565b6000600981905560015493505b838110156161ed576000600b82815481106161a357fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b8054839081106161d457fe5b600091825260209091206016909102015560010161618c565b505050505050565b600061115e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061745e565b60008282018381101561115e5760405162461bcd60e51b8152600401610e129061861f565b60015481516040805182815260208084028201019091526060929190839082801561629b57816020015b60608152602001906001900390816162865790505b50600b5490915083146162b2579250611d15915050565b60005b828110156163c157600b6001600460008985815181106162d157fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054038154811061630557fe5b600091825260209182902060026016909202018101805460408051601f60001961010060018616150201909316949094049182018590048502840185019052808352919290919083018282801561639d5780601f106163725761010080835404028352916020019161639d565b820191906000526020600020905b81548152906001019060200180831161638057829003601f168201915b50505050508282815181106163ae57fe5b60209081029190910101526001016162b5565b50949350505050565b60005b8281101561651757600082878388016040516020016163ed9291906181e9565b6040516020818303038152906040528051906020012060001c8161640d57fe5b0690508085018287011461650e576000898388018151811061642b57fe5b602002602001015190506060898489018151811061644557fe5b602002602001015190508a8388018151811061645d57fe5b60200260200101518b858a018151811061647357fe5b60200260200101906001600160a01b031690816001600160a01b031681525050818b848901815181106164a257fe5b60200260200101906001600160a01b031690816001600160a01b03168152505089838801815181106164d057fe5b60200260200101518a858a01815181106164e657fe5b6020026020010181905250808a8489018151811061650057fe5b602002602001018190525050505b506001016163cd565b5050505050505050565b600980546001908101909155600b80548390811061653b57fe5b906000526020600020906016020160010160006101000a81548160ff02191690831515021790555043600b828154811061657157fe5b600091825260208220601690910201919091556040516001600160a01b038416917ff62981a567ec3cec866c6fa93c55bcdf841d6292d18b8d522ececa769375d82d91a25050565b6000816040516020016165cc91906181cd565b60405160208183030381529060405280519060200120836040516020016165f391906181cd565b6040516020818303038152906040528051906020012014905092915050565b015190565b8151815160009160019181148083146166335760009250616671565b600160208701838101602088015b60028483851001141561666c5780518351146166605760009650600093505b60209283019201616641565b505050505b5090949350505050565b6001600160a01b038116600090815260046020526040812054806166a457506000199050611d15565b6001810390506000600182815481106166b957fe5b90600052602060002090600402016003015490506000600183815481106166dc57fe5b6000918252602090912060036004909202010155600154604051600019909101906001600160a01b038616907f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d90616735908590618ee4565b60405180910390a28061674d57829350505050611d15565b600081838161675857fe5b04905080156167f45760005b848110156167a65761677d82600183815481106154c757fe5b6001828154811061678a57fe5b6000918252602090912060036004909202010155600101616764565b50600180549085015b818110156167f1576167c883600183815481106154c757fe5b600182815481106167d557fe5b60009182526020909120600360049092020101556001016167af565b50505b5091949350505050565b60008261680d57506000611dc5565b8282028284828161681a57fe5b041461115e5760405162461bcd60e51b8152600401610e12906189ee565b600061115e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061748a565b616882617c38565b506040805180820190915281518152602082810190820152919050565b6168a7617b6a565b6168b0826174c1565b6168b957600080fd5b60006168c883602001516174fb565b60208085015160408051808201909152868152920190820152915050919050565b60006168f3617c38565b505080518051602091820151919092015191011190565b616912617c38565b61691b826168e9565b61692457600080fd5b602082015160006169348261755e565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061696d57508151602110155b61697657600080fd5b600061698583602001516174fb565b905080836000015110156169ab5760405162461bcd60e51b8152600401610e1290618bfc565b8251602080850151830180519284900392918310156163c157506020919091036101000a90049392505050565b60606169e3826174c1565b6169ec57600080fd5b60006169f78361763f565b9050606081604051908082528060200260200182016040528015616a3557816020015b616a22617c38565b815260200190600190039081616a1a5790505b5090506000616a4785602001516174fb565b60208601510190506000805b84811015616a9e57616a648361755e565b9150604051806040016040528083815260200184815250848281518110616a8757fe5b602090810291909101015291810191600101616a53565b509195945050505050565b616ab1617af1565b60606000616abd617af1565b6060616ac7617b6a565b616ad08761689f565b90506000805b616adf836168e9565b15616bb45780616b0a57616afa616af58461690a565b61769b565b6001600160a01b03168552616bac565b8060011415616b3257616b1f616af58461690a565b6001600160a01b03166020860152616bac565b8060021415616b5a57616b47616af58461690a565b6001600160a01b03166040860152616bac565b8060031415616b8657616b6f613dcd8461690a565b6001600160401b0316606086015260019150616bac565b8060041415616ba757616ba0616b9b8461690a565b6176b5565b9350616bac565b616bb4565b600101616ad6565b50929791965091945092505050565b6060611dc5616bd183617725565b61780b565b6060815160001415616bf75750604080516000815260208101909152611d15565b606082600081518110616c0657fe5b602002602001015190506000600190505b8351811015616c4757616c3d82858381518110616c3057fe5b602002602001015161785d565b9150600101616c17565b5061115e616c5a825160c060ff166178da565b8261785d565b60608060006120026001600160a01b031663c473318f6040518163ffffffff1660e01b815260040160206040518083038186803b158015616ca057600080fd5b505afa158015616cb4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190616cd891906180a2565b90508085518851011015616ced575083518651015b606081604051908082528060200260200182016040528015616d2957816020015b616d16617af1565b815260200190600190039081616d0e5790505b509050606082604051908082528060200260200182016040528015616d6257816020015b6060815260200190600190039081616d4d5790505b50905060008060005b8b51831080616d7a5750895182105b8015616d8557508581105b1561701a578b51831415616df557898281518110616d9f57fe5b6020026020010151858281518110616db357fe5b6020026020010181905250888281518110616dca57fe5b6020026020010151848281518110616dde57fe5b602090810291909101015260019182019101616d6b565b8951821415616e60578b8381518110616e0a57fe5b6020026020010151858281518110616e1e57fe5b60200260200101819052508a8381518110616e3557fe5b6020026020010151848281518110616e4957fe5b602090810291909101015260019283019201616d6b565b898281518110616e6c57fe5b6020026020010151606001516001600160401b03168c8481518110616e8d57fe5b6020026020010151606001516001600160401b03161115616f09578b8381518110616eb457fe5b6020026020010151858281518110616ec857fe5b60200260200101819052508a8381518110616edf57fe5b6020026020010151848281518110616ef357fe5b6020026020010181905250826001019250617012565b898281518110616f1557fe5b6020026020010151606001516001600160401b03168c8481518110616f3657fe5b6020026020010151606001516001600160401b03161015616fb257898281518110616f5d57fe5b6020026020010151858281518110616f7157fe5b6020026020010181905250888281518110616f8857fe5b6020026020010151848281518110616f9c57fe5b6020026020010181905250816001019150617012565b898281518110616fbe57fe5b6020026020010151600001516001600160a01b03168c8481518110616fdf57fe5b6020026020010151600001516001600160a01b03161015617006578b8381518110616eb457fe5b898281518110616d9f57fe5b600101616d6b565b50929a91995090975050505050505050565b805182516000916001600160a01b039182169116148015617066575081602001516001600160a01b031683602001516001600160a01b0316145b801561115e5750506040908101519101516001600160a01b0390811691161490565b601254601354808211156170d357805b828110156170d15760128054806170ab57fe5b6001900381819060005260206000200160006170c79190617b26565b9055600101617098565b505b60008183106170e257816170e4565b825b905060005b818110156171fc576171a16012828154811061710157fe5b600091825260209182902001805460408051601f600260001961010060018716150201909416939093049283018590048502810185019091528181529283018282801561718f5780601f106171645761010080835404028352916020019161718f565b820191906000526020600020905b81548152906001019060200180831161717257829003601f168201915b50505050506013838154811061341857fe5b6171f457601381815481106171b257fe5b90600052602060002001601282815481106171c957fe5b9060005260206000200190805460018160011615610100020316600290046171f2929190617b8a565b505b6001016170e9565b5082821115610e3257825b8281101561726a5760126013828154811061721e57fe5b6000918252602080832084546001818101875595855291909320929091018054617261949390920192909160026101009282161592909202600019011604617b8a565b50600101617207565b50505050565b601354600b54808211156172bb57805b828110156172b957601380548061729357fe5b6001900381819060005260206000200160006172af9190617b26565b9055600101617280565b505b60008183106172ca57816172cc565b825b905060005b818110156173eb57617389601382815481106172e957fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156173775780601f1061734c57610100808354040283529160200191617377565b820191906000526020600020905b81548152906001019060200180831161735a57829003601f168201915b5050505050600b8381548110615ed757fe5b6173e357600b818154811061739a57fe5b9060005260206000209060160201600201601382815481106173b857fe5b9060005260206000200190805460018160011615610100020316600290046173e1929190617b8a565b505b6001016172d1565b5082821115610e3257825b8281101561726a576013600b828154811061740d57fe5b60009182526020808320845460018082018755958552919093206016929092029092016002908101805461745595939094019390926000199082161561010002011604617b8a565b506001016173f6565b600081848411156174825760405162461bcd60e51b8152600401610e12919061838a565b505050900390565b600081836174ab5760405162461bcd60e51b8152600401610e12919061838a565b5060008385816174b757fe5b0495945050505050565b80516000906174d257506000611d15565b6020820151805160001a9060c08210156174f157600092505050611d15565b5060019392505050565b8051600090811a6080811015617515576000915050611d15565b60b8811080617530575060c08110801590617530575060f881105b1561753f576001915050611d15565b60c08110156175535760b519019050611d15565b60f519019050611d15565b80516000908190811a60808110156175795760019150617638565b60b881101561758e57607e1981019150617638565b60c08110156175df57600060b78203600186019550806020036101000a8651049150600181018201935050808310156175d95760405162461bcd60e51b8152600401610e129061893b565b50617638565b60f88110156175f45760be1981019150617638565b600060f78203600186019550806020036101000a8651049150600181018201935050808310156176365760405162461bcd60e51b8152600401610e129061893b565b505b5092915050565b805160009061765057506000611d15565b6000809050600061766484602001516174fb565b602085015185519181019250015b80821015617692576176838261755e565b82019150826001019250617672565b50909392505050565b80516000906015146176ac57600080fd5b611dc582616958565b80516060906176c357600080fd5b60006176d283602001516174fb565b83516040805191839003808352601f19601f8201168301602001909152919250606090828015617709576020820181803683370190505b50905060008160200190506163c18487602001510182856179ac565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166177695750601861778d565b6fffffffffffffffffffffffffffffffff1984166177895750601061778d565b5060005b60208110156177c3578181815181106177a257fe5b01602001516001600160f81b031916156177bb576177c3565b60010161778d565b60008160200390506060816040519080825280601f01601f1916602001820160405280156177f8576020820181803683370190505b5080830196909652508452509192915050565b60608151600114801561783d5750607f60f81b8260008151811061782b57fe5b01602001516001600160f81b03191611155b15617849575080611d15565b611dc561785b8351608060ff166178da565b835b6060806040519050835180825260208201818101602087015b8183101561788e578051835260209283019201617876565b50855184518101855292509050808201602086015b818310156178bb5780518352602092830192016178a3565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106179045760405162461bcd60e51b8152600401610e1290618786565b6040805160018082528183019092526060916020820181803683370190505090506037841161795e5782840160f81b8160008151811061794057fe5b60200101906001600160f81b031916908160001a9053509050611dc5565b606061796985617725565b90508381510160370160f81b8260008151811061798257fe5b60200101906001600160f81b031916908160001a9053506179a3828261785d565b95945050505050565b806179b657610e32565b5b602081106179d6578251825260209283019290910190601f19016179b7565b915181516020939093036101000a6000190180199091169216919091179052565b60405180608001604052806000815260200160001515815260200160608152602001617a21617c52565b905290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10617a6757805160ff1916838001178555617a94565b82800160010185558215617a94579182015b82811115617a94578251825591602001919060010190617a79565b506131e8929150617c71565b8260138101928215617a945791602002820182811115617a94578251825591602001919060010190617a79565b6040518060600160405280600060ff16815260200160608152602001606081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b50805460018160011615610100020316600290046000825580601f10617b4c5750611f2d565b601f016020900490600052602060002090810190611f2d9190617c71565b6040518060400160405280617b7d617c38565b8152602001600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10617bc35780548555617a94565b82800160010185558215617a9457600052602060002091601f016020900482015b82811115617a94578254825591600101919060010190617be4565b8260138101928215617a945791820182811115617a94578254825591600101919060010190617be4565b50611f2d906013810190617c71565b604051806040016040528060008152602001600081525090565b6040518061026001604052806013906020820280368337509192915050565b61318c91905b808211156131e85760008155600101617c77565b8035611dc581618fbb565b60008083601f840112617ca7578182fd5b5081356001600160401b03811115617cbd578182fd5b60208301915083602080830285010111156159ff57600080fd5b6000601f8381840112617ce8578182fd5b8235617cfb617cf682618f70565b618f4a565b818152925060208084019085810160005b84811015617d8d578135880189603f820112617d2757600080fd5b838101356001600160401b03811115617d3f57600080fd5b617d50818901601f19168601618f4a565b81815260408c81848601011115617d6657600080fd5b82818501888401375060009181018601919091528552509282019290820190600101617d0c565b50505050505092915050565b600082601f830112617da9578081fd5b8135617db7617cf682618f70565b818152915060208083019084810181840286018201871015617dd857600080fd5b6000805b85811015617d8d5782356001600160401b0381168114617dfa578283fd5b85529383019391830191600101617ddc565b60008083601f840112617e1d578182fd5b5081356001600160401b03811115617e33578182fd5b6020830191508360208285010111156159ff57600080fd5b600060208284031215617e5c578081fd5b813561115e81618fbb565b600060208284031215617e78578081fd5b815161115e81618fbb565b60008060008060408587031215617e98578283fd5b84356001600160401b0380821115617eae578485fd5b617eba88838901617c96565b90965094506020870135915080821115617ed2578384fd5b50617edf87828801617c96565b95989497509550505050565b600080600060608486031215617eff578283fd5b83356001600160401b0380821115617f15578485fd5b81860187601f820112617f26578586fd5b80359250617f36617cf684618f70565b80848252602080830192508084018b828389028701011115617f5657898afd5b8994505b86851015617f8057617f6c8c82617c8b565b845260019490940193928101928101617f5a565b509097508801359350505080821115617f97578384fd5b617fa387838801617d99565b93506040860135915080821115617fb8578283fd5b50617fc586828701617cd7565b9150509250925092565b600060208284031215617fe0578081fd5b8151801515811461115e578182fd5b60008060208385031215618001578182fd5b82356001600160401b03811115618016578283fd5b61802285828601617e0c565b90969095509350505050565b60008060008060408587031215618043578384fd5b84356001600160401b0380821115618059578586fd5b61806588838901617e0c565b9096509450602087013591508082111561807d578384fd5b50617edf87828801617e0c565b60006020828403121561809b578081fd5b5035919050565b6000602082840312156180b3578081fd5b5051919050565b600080604083850312156180cc578182fd5b505080516020909101519092909150565b6000806000604084860312156180f1578081fd5b833560ff81168114618101578182fd5b925060208401356001600160401b0381111561811b578182fd5b61812786828701617e0c565b9497909650939450505050565b6000815180845260208085019450808401835b8381101561816c5781516001600160a01b031687529582019590820190600101618147565b509495945050505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b600081518084526181b9816020860160208601618f8f565b601f01601f19169290920160200192915050565b600082516181df818460208701618f8f565b9190910192915050565b918252602082015260400190565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b03968716815294861660208601529290941660408401526001600160401b03166060830152911515608082015260a081019190915260c00190565b6001600160a01b0392909216825260ff16602082015260400190565b60006020825261115e6020830184618134565b6000604082526182a86040830185618134565b602083820381850152818551808452828401915082838202850101838801865b838110156182f657601f198784030185526182e48383516181a1565b948601949250908501906001016182c8565b50909998505050505050505050565b6000608082526183186080830187618134565b828103602084810191909152865180835287820192820190845b8181101561834e57845183529383019391830191600101618332565b505084810360408601526183628188618134565b93505050506001600160401b038316606083015295945050505050565b901515815260200190565b60006020825261115e60208301846181a1565b6000604082526183b1604083018688618177565b82810360208401526183c4818587618177565b979650505050505050565b6020808252601c908201527f6c656e677468206f66206275726e526174696f206d69736d6174636800000000604082015260600190565b60208082526042908201527f746865206275726e526174696f20706c75732073797374656d5265776172645260408201527f6174696f206d757374206265206e6f2067726561746572207468616e20313030606082015261030360f41b608082015260a00190565b60208082526026908201527f6c656e677468206f66206d61784e756d4f664d61696e7461696e696e67206d696040820152650e6dac2e8c6d60d31b606082015260800190565b6020808252601b908201527f6261746368207472616e736665722072657475726e2066616c73650000000000604082015260600190565b6020808252602c908201527f6c656e677468206f66206d61784e756d4f66576f726b696e6743616e6469646160408201526b0e8cae640dad2e6dac2e8c6d60a31b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61696e7461696e536c6173685363616c65206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252818101527f6c656e677468206f66206e756d4f66436162696e657473206d69736d61746368604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252601f908201527f6f6e6c7920736c617368206f72207374616b6548756220636f6e747261637400604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526028908201527f746865206e756d4f66436162696e657473206d75737420626520677265617465604082015267072207468616e20360c41b606082015260800190565b60208082526039908201527f746865206e756d4f66436162696e657473206d757374206265206c657373207460408201527f68616e204d41585f4e554d5f4f465f56414c494441544f525300000000000000606082015260800190565b60208082526029908201527f746865206e756d626572206f662076616c696461746f727320657863656564206040820152681d1a19481b1a5b5a5d60ba1b606082015260800190565b60208082526022908201527f63616e206e6f7420646f207468697320747769636520696e206f6e6520626c6f604082015261636b60f01b606082015260800190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526037908201527f746865206d61784e756d4f664d61696e7461696e696e67206d7573742062652060408201527f6c657373207468616e206e756d4f66436162696e657473000000000000000000606082015260800190565b6020808252602b908201527f6475706c696361746520636f6e73656e7375732061646472657373206f66207660408201526a185b1a59185d1bdc94d95d60aa1b606082015260800190565b60208082526027908201527f7468652065787069726554696d655365636f6e64476170206973206f7574206f604082015266662072616e676560c81b606082015260800190565b6020808252601590820152746465706f7369742076616c7565206973207a65726f60581b604082015260600190565b60208082526049908201527f746865206d61784e756d4f66576f726b696e6743616e64696461746573206d7560408201527f7374206265206e6f742067726561746572207468616e206d61784e756d4f6643606082015268616e6469646174657360b81b608082015260a00190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b60208082526023908201527f63616e206e6f7420656e7465722054656d706f72617279204d61696e74656e616040820152626e636560e81b606082015260800190565b60208082526025908201527f6c656e677468206f66206a61696c2076616c696461746f7273206d757374206260408201526465206f6e6560d81b606082015260800190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61784e756d4f6643616e64696461746573206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252601290820152716e6f7420696e206d61696e74656e616e636560701b604082015260600190565b60208082526021908201527f666565206973206c6172676572207468616e2044555354595f494e434f4d494e6040820152604760f81b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b60208082526042908201527f7468652073797374656d526577617264526174696f20706c7573206275726e5260408201527f6174696f206d757374206265206e6f2067726561746572207468616e20313030606082015261030360f41b608082015260a00190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526026908201527f6c656e677468206f662065787069726554696d655365636f6e64476170206d696040820152650e6dac2e8c6d60d31b606082015260800190565b60208082526017908201527f6f6e6c792063757272656e742076616c696461746f7273000000000000000000604082015260600190565b60208082526021908201527f6661696c656420746f20706172736520696e69742076616c696461746f7253656040820152601d60fa1b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b60208082526024908201527f6c656e677468206f662073797374656d526577617264526174696f206d69736d6040820152630c2e8c6d60e31b606082015260800190565b6020808252603e908201527f746865206d61696e7461696e536c6173685363616c65206d757374206265206760408201527f726561746572207468616e203020616e64206c657373207468616e2031300000606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b60208082526029908201527f746865206d6573736167652073656e646572206d75737420626520736c6173686040820152680818dbdb9d1c9858dd60ba1b606082015260800190565b6020808252601f908201527f746865206d73672073656e646572206d757374206265207374616b6548756200604082015260600190565b61ffff91909116815260200190565b90815260200190565b60008482528315156020830152606060408301526179a360608301846181a1565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff85168252604060208301526179a3604083018486618177565b6040518181016001600160401b0381118282101715618f6857600080fd5b604052919050565b60006001600160401b03821115618f85578081fd5b5060209081020190565b60005b83811015618faa578181015183820152602001618f92565b8381111561726a5750506000910152565b6001600160a01b0381168114611f2d57600080fdfef901a880f901a4f844941284214b9b9c85549ab3d2b972df0deef66ac2c9946ddf42a51534fc98d0c0a3b42c963cace8441ddf946ddf42a51534fc98d0c0a3b42c963cace8441ddf8410000000f84494a2959d3f95eae5dc7d70144ce1b73b403b7eb6e0948081ef03f1d9e0bb4a5bf38f16285c879299f07f948081ef03f1d9e0bb4a5bf38f16285c879299f07f8410000000f8449435552c16704d214347f29fa77f77da6d75d7c75294dc4973e838e3949c77aced16ac2315dc2d7ab11194dc4973e838e3949c77aced16ac2315dc2d7ab1118410000000f84494980a75ecd1309ea12fa2ed87a8744fbfc9b863d594cc6ac05c95a99c1f7b5f88de0e3486c82293b27094cc6ac05c95a99c1f7b5f88de0e3486c82293b2708410000000f84494f474cf03cceff28abc65c9cbae594f725c80e12d94e61a183325a18a173319dd8e19c8d069459e217594e61a183325a18a173319dd8e19c8d069459e21758410000000f84494b71b214cb885500844365e95cd9942c7276e7fd894d22ca3ba2141d23adab65ce4940eb7665ea2b6a794d22ca3ba2141d23adab65ce4940eb7665ea2b6a7841000000070e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb20175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbb0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbaa164736f6c6343000604000a" + }, + "0x0000000000000000000000000000000000001001": { + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b506004361061035d5760003560e01c80637e434d54116101d3578063c80d4b8f11610104578063df8079e9116100a2578063f9a2bbc71161007c578063f9a2bbc714610601578063fc3e590814610609578063fc4333cd14610611578063fd6a6879146106195761035d565b8063df8079e9146105e9578063e1c7392a146105f1578063f1fad104146105f95761035d565b8063c96be4cb116100de578063c96be4cb146105b3578063cc844b73146105c6578063dc927faf146105d9578063dcc6f156146105e15761035d565b8063c80d4b8f14610590578063c81b166214610598578063c8509d81146105a05761035d565b8063a1a11bf511610171578063aad560631161014b578063aad5606314610565578063ab51bb961461056d578063ac0af62914610575578063ac4317511461057d5761035d565b8063a1a11bf51461054d578063a78abc1614610555578063aa82dce11461055d5761035d565b806396713da9116101ad57806396713da9146105225780639dc092621461052a5780639e89ded8146105325780639f804f5f146105455761035d565b80637e434d54146104ff5780638256ace614610507578063831d65d11461050f5761035d565b8063493279b1116102ad57806362b72cf51161024b578063718a8aa811610225578063718a8aa8146104df57806375d47a0a146104e75780637912a65d146104ef5780637942fd05146104f75761035d565b806362b72cf5146104c75780636e47b482146104cf57806370fd5bad146104d75761035d565b806351b4dce31161028757806351b4dce31461049c57806351e80672146104a4578063567a372d146104ac5780635bfb4990146104b45761035d565b8063493279b1146104775780634bf6c8821461048c57806350055f90146104945761035d565b8063280870281161031a57806337c8dab9116102f457806337c8dab914610431578063389f4f71146104525780633dffc3871461045a57806343756e5c1461046f5761035d565b806328087028146104015780633306ccca1461040957806335aa2e441461041e5761035d565b80630bee7a67146103625780630e2374a5146103805780631182b8751461039557806322d1e80b146103b557806323bac5a2146103ca57806327962118146103ec575b600080fd5b61036a610621565b6040516103779190613d56565b60405180910390f35b610388610626565b6040516103779190613534565b6103a86103a336600461346a565b61062c565b604051610377919061356c565b6103bd610692565b6040516103779190613561565b6103dd6103d8366004613181565b61069b565b60405161037793929190613d3e565b6103ff6103fa3660046132c7565b6106be565b005b610388610a13565b610411610a19565b6040516103779190613d27565b61038861042c36600461343a565b610a1f565b61044461043f366004613181565b610a46565b604051610377929190613d30565b610411610a9d565b610462610aa3565b6040516103779190613d67565b610388610aa8565b61047f610aae565b6040516103779190613d18565b610462610ab3565b610411610ab8565b610388610abe565b610388610ac4565b610411610aca565b6103ff6104c2366004613181565b610ad0565b610411610bdc565b610388610be2565b610462610be8565b610462610bed565b610388610bf2565b610411610bf8565b610462610bfd565b610388610c02565b610444610c08565b6103ff61051d36600461346a565b610c12565b610462610d26565b610388610d2b565b6103ff6105403660046131b9565b610d31565b610411610d60565b610388610d66565b6103bd610d6c565b610388610d75565b610388610d7b565b61036a610d81565b610411610d86565b6103ff61058b36600461331e565b610d8b565b610411611327565b61038861132c565b6103ff6105ae36600461346a565b611332565b6103ff6105c1366004613181565b6113a3565b6103ff6105d4366004613387565b611812565b610388611df1565b610411611df7565b610388611dfc565b6103ff611e02565b610462611e3e565b610388611e43565b610462611e49565b6103ff611e4e565b610388612297565b606481565b61200181565b606033612000146106585760405162461bcd60e51b815260040161064f90613bbb565b60405180910390fd5b60005460ff1661067a5760405162461bcd60e51b815260040161064f90613661565b60405162461bcd60e51b815260040161064f90613cac565b60075460ff1681565b600260208190526000918252604090912080546001820154919092015460ff1683565b60005460ff166106e05760405162461bcd60e51b815260040161064f90613661565b6006546106ed5760146006555b6008546106fb576170806008555b81511580159061070b5750805115155b6107275760405162461bcd60e51b815260040161064f90613b19565b60408051600380825260808201909252606091816020015b606081526020019060019003908161073f579050509050610760606161229d565b8160008151811061076d57fe5b6020026020010181905250610781836122b8565b8160018151811061078e57fe5b60200260200101819052506107a2826122b8565b816002815181106107af57fe5b602002602001018190525060606107c58261230e565b60408051603480825260608281019093529293509091602082018180368337019050509050815160346020830182602086016068600019fa61080657600080fd5b506014810151603482015160405163436aa28360e11b8152600090612002906386d5450690610839908690600401613534565b60206040518083038186803b15801561085157600080fd5b505afa158015610865573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610889919061319d565b6001600160a01b031614156108b05760405162461bcd60e51b815260040161064f90613631565b43600854820110156108d45760405162461bcd60e51b815260040161064f906135d2565b604051631871f7d960e31b81526120029063c38fbec8906108f9908590600401613534565b600060405180830381600087803b15801561091357600080fd5b505af1158015610927573d6000803e3d6000fd5b50506040516335409f7f60e01b815261100092506335409f7f9150610950908590600401613534565b600060405180830381600087803b15801561096a57600080fd5b505af115801561097e573d6000803e3d6000fd5b50506006546040516309a99b4f60e41b815260646110028031909302049350909150639a99b4f0906109b69033908590600401613548565b602060405180830381600087803b1580156109d057600080fd5b505af11580156109e4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a089190613452565b505050505050505050565b61200581565b61708081565b60018181548110610a2c57fe5b6000918252602090912001546001600160a01b0316905081565b600080610a51612f68565b5050506001600160a01b0316600090815260026020818152604092839020835160608101855281548082526001830154938201849052919093015460ff16151592909301919091529091565b60055481565b600181565b61100181565b606181565b600881565b60065481565b61200681565b61200081565b60045481565b3361100014610af15760405162461bcd60e51b815260040161064f906138a4565b60005460ff16610b135760405162461bcd60e51b815260040161064f90613661565b61200063f7a251d7600b610b268461239f565b60006040518463ffffffff1660e01b8152600401610b4693929190613d75565b600060405180830381600087803b158015610b6057600080fd5b505af1925050508015610b71575060015b610bd9573d808015610b9f576040519150601f19603f3d011682016040523d82523d6000602084013e610ba4565b606091505b50816001600160a01b0316600080516020613e52833981519152600083604051610bcf92919061357f565b60405180910390a2505b50565b60035481565b61100581565b600281565b601081565b61100881565b603281565b600b81565b61200381565b6004546005549091565b3361200014610c335760405162461bcd60e51b815260040161064f90613bbb565b60005460ff16610c555760405162461bcd60e51b815260040161064f90613661565b610c5d612f8b565b6000610c9e84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061246892505050565b915091508015610ce55781516040517f7f0956d47419b9525356e7111652b653b530ec6f5096dccc04589bc38e62996791610cd891613d56565b60405180910390a1610d1e565b81516040517f7d45f62d17443dd4547bca8a8112c60e2385669318dc300ec61a5d2492f262e791610d1591613d56565b60405180910390a15b50505b505050565b600981565b61100781565b3361100014610d525760405162461bcd60e51b815260040161064f906138a4565b610d5c82826124e8565b5050565b60085481565b61100681565b60005460ff1681565b61200281565b61300081565b600081565b600481565b60005460ff16610dad5760405162461bcd60e51b815260040161064f90613661565b3361100714610dce5760405162461bcd60e51b815260040161064f90613a08565b610e3984848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260148152731b5a5cd9195b59585b9bdc951a1c995cda1bdb1960621b6020820152915061269b9050565b15610ed45760208114610e5e5760405162461bcd60e51b815260040161064f90613830565b604080516020601f8401819004810282018101909252828152600091610e9c918585808385018382808284376000920191909152506126f592505050565b905060018110158015610eb0575060055481105b610ecc5760405162461bcd60e51b815260040161064f90613b76565b6004556112e4565b610f3a84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e19995b1bdb9e551a1c995cda1bdb19608a1b6020820152915061269b9050565b15610fd65760208114610f5f5760405162461bcd60e51b815260040161064f90613a56565b604080516020601f8401819004810282018101909252828152600091610f9d918585808385018382808284376000920191909152506126f592505050565b90506103e88111158015610fb2575060045481115b610fce5760405162461bcd60e51b815260040161064f9061371a565b6005556112e4565b61104384848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601681527566656c6f6e79536c617368526577617264526174696f60501b6020820152915061269b9050565b156110dd57602081146110685760405162461bcd60e51b815260040161064f90613990565b604080516020601f84018190048102820181019092528281526000916110a6918585808385018382808284376000920191909152506126f592505050565b9050600a81101580156110b95750606481105b6110d55760405162461bcd60e51b815260040161064f90613a98565b6006556112e4565b61115184848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f656e61626c654d616c6963696f7573566f7465536c61736800000000000000006020820152915061269b9050565b156111c857602081146111765760405162461bcd60e51b815260040161064f9061374f565b604080516020601f84018190048102820181019092528281526111b291908484808385018382808284376000920191909152506126fa92505050565b6007805460ff19169115159190911790556112e4565b61122f84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601081526f66656c6f6e79536c61736853636f706560801b6020820152915061269b9050565b156112cc57602081146112545760405162461bcd60e51b815260040161064f9061391f565b604080516020601f8401819004810282018101909252828152600091611292918585808385018382808284376000920191909152506126f592505050565b905061708081101580156112a85750620d2f0081105b6112c45760405162461bcd60e51b815260040161064f90613698565b6008556112e4565b60405162461bcd60e51b815260040161064f90613c57565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a8484848460405161131994939291906135a0565b60405180910390a150505050565b609681565b61100281565b33612000146113535760405162461bcd60e51b815260040161064f90613bbb565b60005460ff166113755760405162461bcd60e51b815260040161064f90613661565b6040517f07db600eebe2ac176be8dcebad61858c245a4961bb32ca2aa3d159b09aa0810e90600090a1505050565b3341146113c25760405162461bcd60e51b815260040161064f90613c0a565b60005460ff166113e45760405162461bcd60e51b815260040161064f90613661565b60035443116114055760405162461bcd60e51b815260040161064f90613ce3565b3a156114235760405162461bcd60e51b815260040161064f90613962565b60405163155853f360e21b8152611000906355614fcc90611448908490600401613534565b60206040518083038186803b15801561146057600080fd5b505afa158015611474573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149891906132a7565b6114a15761180b565b6114a9612f68565b506001600160a01b0381166000908152600260208181526040928390208351606081018552815481526001820154928101929092529091015460ff16158015928201929092529061150457602081018051600101905261155d565b60016040820181905260208201819052805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0384161790555b43815260055460208201518161156f57fe5b0661173957600060208201526040516335409f7f60e01b8152611000906335409f7f906115a0908590600401613534565b600060405180830381600087803b1580156115ba57600080fd5b505af11580156115ce573d6000803e3d6000fd5b505060405163436aa28360e11b81526000925061200291506386d54506906115fa908690600401613534565b60206040518083038186803b15801561161257600080fd5b505afa158015611626573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061164a919061319d565b6001600160a01b03161461166b576116668282602001516124e8565b611734565b61200063f7a251d7600b61167e8561239f565b60006040518463ffffffff1660e01b815260040161169e93929190613d75565b600060405180830381600087803b1580156116b857600080fd5b505af19250505080156116c9575060015b611734573d8080156116f7576040519150601f19603f3d011682016040523d82523d6000602084013e6116fc565b606091505b50826001600160a01b0316600080516020613e5283398151915283602001518360405161172a92919061357f565b60405180910390a2505b6117a5565b60045481602001518161174857fe5b066117a5576040516375abf10160e11b81526110009063eb57e20290611772908590600401613534565b600060405180830381600087803b15801561178c57600080fd5b505af11580156117a0573d6000803e3d6000fd5b505050505b6001600160a01b0382166000818152600260208181526040808420865181559186015160018301558581015191909201805460ff1916911515919091179055517fddb6012116e51abf5436d956a4f0ebd927e92c576ff96d7918290c8782291e3e9190a2505b5043600355565b60005460ff166118345760405162461bcd60e51b815260040161064f90613661565b60075460ff166118565760405162461bcd60e51b815260040161064f906135fc565b6006546118635760146006555b600854611871576170806008555b60085481516040015143910111801561189557504360085482602001516040015101115b6118b15760405162461bcd60e51b815260040161064f90613c7e565b8060200151602001518160000151602001511480156118df5750806020015160600151816000015160600151145b156118fc5760405162461bcd60e51b815260040161064f90613877565b80516040810151905110801561191b5750602081015160408101519051105b6119375760405162461bcd60e51b815260040161064f906137f9565b60208101515181515110801561195c5750806000015160400151816020015160400151105b8061198757508051516020820151511080156119875750806020015160400151816000015160400151105b806119a15750806020015160400151816000015160400151145b6119bd5760405162461bcd60e51b815260040161064f906136e3565b604080820151905163ea321e4960e01b81526110009163ea321e49916119e6919060040161356c565b60206040518083038186803b1580156119fe57600080fd5b505afa158015611a12573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3691906132a7565b611a525760405162461bcd60e51b815260040161064f906139d9565b611a6481600001518260400151612722565b8015611a7d5750611a7d81602001518260400151612722565b611a995760405162461bcd60e51b815260040161064f9061379a565b6060806110006001600160a01b0316633b071dcc6040518163ffffffff1660e01b815260040160006040518083038186803b158015611ad757600080fd5b505afa158015611aeb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611b1391908101906131e4565b9150915060005b8151811015611c5057611b44828281518110611b3257fe5b602002602001015185604001516128fa565b15611c48576006546040516309a99b4f60e41b815260646110028031909302049190639a99b4f090611b7c9033908590600401613548565b602060405180830381600087803b158015611b9657600080fd5b505af1158015611baa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bce9190613452565b506110006001600160a01b03166335409f7f858481518110611bec57fe5b60200260200101516040518263ffffffff1660e01b8152600401611c109190613534565b600060405180830381600087803b158015611c2a57600080fd5b505af1158015611c3e573d6000803e3d6000fd5b5050505050611c50565b600101611b1a565b5060408084015190516317b4f35360e01b8152600091612002916317b4f35391611c7c9160040161356c565b60206040518083038186803b158015611c9457600080fd5b505afa158015611ca8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ccc919061319d565b6001600160a01b031614611d3a576040808401519051630e9fbf5160e01b815261200291630e9fbf5191611d03919060040161356c565b600060405180830381600087803b158015611d1d57600080fd5b505af1158015611d31573d6000803e3d6000fd5b50505050610d21565b6120006001600160a01b031663f7a251d7600b611d5a866040015161295e565b60006040518463ffffffff1660e01b8152600401611d7a93929190613d75565b600060405180830381600087803b158015611d9457600080fd5b505af1158015611da8573d6000803e3d6000fd5b505050506000611dbd84604001516000612999565b60405190915081907f7b78aadacff901d8b63d0dba4f86283d4db8aef27f9ed70413dd860f1c9532b690600090a250505050565b61100381565b601481565b61200481565b60005460ff1615611e255760405162461bcd60e51b815260040161064f90613ae2565b603260045560966005556000805460ff19166001179055565b601181565b61100081565b600381565b3361100014611e6f5760405162461bcd60e51b815260040161064f906138a4565b60005460ff16611e915760405162461bcd60e51b815260040161064f90613661565b600154611e9d57612295565b600154600090600019015b808211612269576000805b82841015611fcc57611ec3612f68565b6002600060018781548110611ed457fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff161515908201526005549091506004900481602001511115611fb657600460055481611f4157fe5b04816020015103816020018181525050806002600060018881548110611f6357fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208351815591830151600183015591909101516002909101805460ff1916911515919091179055611fc0565b6001925050611fcc565b50836001019350611eb3565b82841161216357611fdb612f68565b6002600060018681548110611fec57fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff1615159082015260055490915060049004816020015111156120d45760046005548161205957fe5b0481602001510381602001818152505080600260006001878154811061207b57fe5b6000918252602080832091909101546001600160a01b03168352828101939093526040918201902083518155918301516001808401919091559201516002909101805460ff191691151591909117905591506121639050565b60026000600186815481106120e557fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff1916905580548061212957fe5b600082815260209020810160001990810180546001600160a01b0319169055019055836121565750612163565b5060001990920191611fcc565b81801561216d5750805b1561224c57600260006001868154811061218357fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff191690558054849081106121ca57fe5b600091825260209091200154600180546001600160a01b0390921691869081106121f057fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600180548061222957fe5b600082815260209020810160001990810180546001600160a01b03191690550190555b82612258575050612269565b505060019091019060001901611ea8565b6040517fcfdb3b6ccaeccbdc68be3c59c840e3b3c90f0a7c491f5fff1cf56cfda200dd9c90600090a150505b565b61100481565b60606122b06122ab836129b5565b6122b8565b90505b919050565b6060815160011480156122ea5750607f60f81b826000815181106122d857fe5b01602001516001600160f81b03191611155b156122f65750806122b3565b6122b06123088351608060ff16612a9b565b83612b6d565b606081516000141561232f57506040805160008152602081019091526122b3565b60608260008151811061233e57fe5b602002602001015190506000600190505b835181101561237f576123758285838151811061236857fe5b6020026020010151612b6d565b915060010161234f565b50612398612392825160c060ff16612a9b565b82612b6d565b9392505050565b60408051600480825260a08201909252606091829190816020015b60608152602001906001900390816123ba5790505090506123e3836001600160a01b0316612bea565b816000815181106123f057fe5b60200260200101819052506124044361229d565b8160018151811061241157fe5b6020908102919091010152612426606161229d565b8160028151811061243357fe5b60200260200101819052506124474261229d565b8160038151811061245457fe5b60200260200101819052506123988161230e565b612470612f8b565b600061247a612f8b565b612482612f9d565b61249361248e86612c0d565b612c32565b90506000805b6124a283612c7c565b156124db57806124ce576124bd6124b884612c9d565b612ceb565b63ffffffff168452600191506124d3565b6124db565b600101612499565b5091935090915050915091565b6040516375cc7d8960e01b8152612002906375cc7d899061250d908590600401613534565b600060405180830381600087803b15801561252757600080fd5b505af1925050508015612538575060015b610d5c576040516000815260443d1015612554575060006125f1565b60046000803e60005160e01c6308c379a081146125755760009150506125f1565b60043d036004833e81513d602482011167ffffffffffffffff821117156125a1576000925050506125f1565b808301805167ffffffffffffffff8111156125c35760009450505050506125f1565b8060208301013d86018111156125e1576000955050505050506125f1565b601f01601f191660405250925050505b806125fc5750612633565b826001600160a01b0316600080516020613e52833981519152838360405161262592919061357f565b60405180910390a250612696565b3d80801561265d576040519150601f19603f3d011682016040523d82523d6000602084013e612662565b606091505b50826001600160a01b0316600080516020613e52833981519152838360405161268c92919061357f565b60405180910390a2505b610d5c565b6000816040516020016126ae9190613518565b60405160208183030381529060405280519060200120836040516020016126d59190613518565b604051602081830303815290604052805190602001201490505b92915050565b015190565b8082015160009060ff81161561271457600191508161271a565b60009150815b505092915050565b60408051600480825260a0820190925260009160609190816020015b606081526020019060019003908161273e575050604080516020808252818301909252919250606091908082018180368337019050509050612783856000015161229d565b8260008151811061279057fe5b60200260200101819052506127ab6020866020015183612d6d565b6127b4816122b8565b826001815181106127c157fe5b60200260200101819052506127d9856040015161229d565b826002815181106127e657fe5b60200260200101819052506128016020866060015183612d6d565b61280a816122b8565b8260038151811061281757fe5b602002602001018190525061283d60206128308461230e565b8051906020012083612d6d565b6040805160b080825260e0820190925260609160208201818036833701905050905061286d818360006020612d7d565b61287f81876080015160206060612d7d565b61288d818660806030612d7d565b604080516001808252818301909252606091602082018180368337019050509050815160016020830182602086016066600019fa6128ca57600080fd5b5060016128d8826000612dd0565b60ff16146128ed5760009450505050506126ef565b5060019695505050505050565b8151815160009160019181148083146129165760009250612954565b600160208701838101602088015b60028483851001141561294f5780518351146129435760009650600093505b60209283019201612924565b505050505b5090949350505050565b60408051600480825260a08201909252606091829190816020015b60608152602001906001900390816129795790505090506123e3836122b8565b600081602001835110156129ac57600080fd5b50016020015190565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166129f957506018612a1d565b6fffffffffffffffffffffffffffffffff198416612a1957506010612a1d565b5060005b6020811015612a5357818181518110612a3257fe5b01602001516001600160f81b03191615612a4b57612a53565b600101612a1d565b60008160200390506060816040519080825280601f01601f191660200182016040528015612a88576020820181803683370190505b5080830196909652508452509192915050565b6060680100000000000000008310612ac55760405162461bcd60e51b815260040161064f906137d1565b60408051600180825281830190925260609160208201818036833701905050905060378411612b1f5782840160f81b81600081518110612b0157fe5b60200101906001600160f81b031916908160001a90535090506126ef565b6060612b2a856129b5565b90508381510160370160f81b82600081518110612b4357fe5b60200101906001600160f81b031916908160001a905350612b648282612b6d565b95945050505050565b6060806040519050835180825260208201818101602087015b81831015612b9e578051835260209283019201612b86565b50855184518101855292509050808201602086015b81831015612bcb578051835260209283019201612bb3565b508651929092011591909101601f01601f191660405250905092915050565b60408051600560a21b8318601482015260348101909152606090612398816122b8565b612c15612fbd565b506040805180820190915281518152602082810190820152919050565b612c3a612f9d565b612c4382612dec565b612c4c57600080fd5b6000612c5b8360200151612e26565b60208085015160408051808201909152868152920190820152915050919050565b6000612c86612fbd565b505080518051602091820151919092015191011190565b612ca5612fbd565b612cae82612c7c565b612cb757600080fd5b60208201516000612cc782612e89565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590612d0057508151602110155b612d0957600080fd5b6000612d188360200151612e26565b90508083600001511015612d3e5760405162461bcd60e51b815260040161064f90613b3f565b825160208085015183018051928490039291831015612d6457826020036101000a820491505b50949350505050565b9091018181526020918201910152565b60005b81811015610d1e57838181518110612d9457fe5b602001015160f81c60f81b858480600101955081518110612db157fe5b60200101906001600160f81b031916908160001a905350600101612d80565b60008160010183511015612de357600080fd5b50016001015190565b8051600090612dfd575060006122b3565b6020820151805160001a9060c0821015612e1c576000925050506122b3565b5060019392505050565b8051600090811a6080811015612e405760009150506122b3565b60b8811080612e5b575060c08110801590612e5b575060f881105b15612e6a5760019150506122b3565b60c0811015612e7e5760b5190190506122b3565b60f5190190506122b3565b80516000908190811a6080811015612ea45760019150612f61565b60b8811015612eb957607e1981019150612f61565b60c0811015612f0a57600060b78203600186019550806020036101000a865104915060018101820193505080831015612f045760405162461bcd60e51b815260040161064f906138f4565b50612f61565b60f8811015612f1f5760be1981019150612f61565b600060f78203600186019550806020036101000a86510491506001810182019350508083101561271a5760405162461bcd60e51b815260040161064f906138f4565b5092915050565b604051806060016040528060008152602001600081526020016000151581525090565b60408051602081019091526000815290565b6040518060400160405280612fb0612fbd565b8152602001600081525090565b604051806040016040528060008152602001600081525090565b600082601f830112612fe7578081fd5b8151612ffa612ff582613dc8565b613da1565b818152915060208083019084810160005b84811015613070578151870188603f82011261302657600080fd5b83810151613036612ff582613de8565b81815260408b8184860101111561304c57600080fd5b61305b83888401838701613e0c565b5086525050928201929082019060010161300b565b505050505092915050565b60008083601f84011261308c578182fd5b50813567ffffffffffffffff8111156130a3578182fd5b6020830191508360208285010111156130bb57600080fd5b9250929050565b600082601f8301126130d2578081fd5b81356130e0612ff582613de8565b91508082528360208285010111156130f757600080fd5b8060208401602084013760009082016020015292915050565b600060a08284031215613121578081fd5b61312b60a0613da1565b905081358152602082013560208201526040820135604082015260608201356060820152608082013567ffffffffffffffff81111561316957600080fd5b613175848285016130c2565b60808301525092915050565b600060208284031215613192578081fd5b813561239881613e3c565b6000602082840312156131ae578081fd5b815161239881613e3c565b600080604083850312156131cb578081fd5b82356131d681613e3c565b946020939093013593505050565b600080604083850312156131f6578182fd5b825167ffffffffffffffff8082111561320d578384fd5b81850186601f82011261321e578485fd5b8051925061322e612ff584613dc8565b80848252602080830192508084018a82838902870101111561324e578889fd5b8894505b8685101561327957805161326581613e3c565b845260019490940193928101928101613252565b508801519096509350505080821115613290578283fd5b5061329d85828601612fd7565b9150509250929050565b6000602082840312156132b8578081fd5b81518015158114612398578182fd5b600080604083850312156132d9578182fd5b823567ffffffffffffffff808211156132f0578384fd5b6132fc868387016130c2565b93506020850135915080821115613311578283fd5b5061329d858286016130c2565b60008060008060408587031215613333578182fd5b843567ffffffffffffffff8082111561334a578384fd5b6133568883890161307b565b9096509450602087013591508082111561336e578384fd5b5061337b8782880161307b565b95989497509550505050565b600060208284031215613398578081fd5b813567ffffffffffffffff808211156133af578283fd5b818401606081870312156133c1578384fd5b6133cb6060613da1565b92508035828111156133db578485fd5b6133e787828401613110565b8452506020810135828111156133fb578485fd5b61340787828401613110565b60208501525060408101358281111561341e578485fd5b61342a878284016130c2565b6040850152509195945050505050565b60006020828403121561344b578081fd5b5035919050565b600060208284031215613463578081fd5b5051919050565b60008060006040848603121561347e578081fd5b833560ff8116811461348e578182fd5b9250602084013567ffffffffffffffff8111156134a9578182fd5b6134b58682870161307b565b9497909650939450505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008151808452613504816020860160208601613e0c565b601f01601f19169290920160200192915050565b6000825161352a818460208701613e0c565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b60006020825261239860208301846134ec565b60008382526040602083015261359860408301846134ec565b949350505050565b6000604082526135b46040830186886134c2565b82810360208401526135c78185876134c2565b979650505050505050565b60208082526010908201526f195d9a59195b98d9481d1bdbc81bdb1960821b604082015260600190565b6020808252818101527f6d616c6963696f757320766f746520736c617368206e6f7420656e61626c6564604082015260600190565b6020808252601690820152751d985b1a59185d1bdc881b9bdd081b5a59dc985d195960521b604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252602b908201527f746865206d616c6963696f757320766f746520736c6173682073636f7065206f60408201526a7574206f662072616e676560a81b606082015260800190565b6020808252601a908201527f6e6f2076696f6c6174696f6e206f6620766f74652072756c6573000000000000604082015260600190565b6020808252818101527f7468652066656c6f6e795468726573686f6c64206f7574206f662072616e6765604082015260600190565b6020808252602b908201527f6c656e677468206f6620656e61626c654d616c6963696f7573566f7465536c6160408201526a0e6d040dad2e6dac2e8c6d60ab1b606082015260800190565b60208082526017908201527f766572696679207369676e6174757265206661696c6564000000000000000000604082015260600190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526019908201527f7372634e756d20626967676572207468616e207461724e756d00000000000000604082015260600190565b60208082526027908201527f6c656e677468206f66206d697364656d65616e6f725468726573686f6c64206d6040820152660d2e6dac2e8c6d60cb1b606082015260800190565b60208082526013908201527274776f206964656e746963616c20766f74657360681b604082015260600190565b60208082526030908201527f746865206d6573736167652073656e646572206d7573742062652076616c696460408201526f185d1bdc94d95d0818dbdb9d1c9858dd60821b606082015260800190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b60208082526023908201527f6c656e677468206f662066656c6f6e79536c61736853636f7065206d69736d616040820152620e8c6d60eb1b606082015260800190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b60208082526029908201527f6c656e677468206f662066656c6f6e79536c617368526577617264526174696f604082015268040dad2e6dac2e8c6d60bb1b606082015260800190565b6020808252601590820152741d9bdd195059191c881a5cc81b9bdd08199bdd5b99605a1b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526022908201527f6c656e677468206f662066656c6f6e795468726573686f6c64206d69736d61746040820152610c6d60f31b606082015260800190565b6020808252602a908201527f7468652066656c6f6e7920736c6173682072657761726420726174696f206f7560408201526974206f662072616e676560b01b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b6020808252600c908201526b32b6b83a3c903432b0b232b960a11b604082015260600190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526025908201527f746865206d697364656d65616e6f725468726573686f6c64206f7574206f662060408201526472616e676560d81b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b6020808252601490820152731d185c99d95d08189b1bd8dac81d1bdbc81bdb1960621b604082015260600190565b6020808252601e908201527f7265636569766520756e65787065637465642073796e207061636b6167650000604082015260600190565b6020808252818101527f63616e206e6f7420736c61736820747769636520696e206f6e6520626c6f636b604082015260600190565b61ffff91909116815260200190565b90815260200190565b918252602082015260400190565b92835260208301919091521515604082015260600190565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff8516825260606020830152613d9160608301856134ec565b9050826040830152949350505050565b60405181810167ffffffffffffffff81118282101715613dc057600080fd5b604052919050565b600067ffffffffffffffff821115613dde578081fd5b5060209081020190565b600067ffffffffffffffff821115613dfe578081fd5b50601f01601f191660200190565b60005b83811015613e27578181015183820152602001613e0f565b83811115613e36576000848401525b50505050565b6001600160a01b0381168114610bd957600080fdfed7bc86ff5d08c8ab043edec743302aba2520e6635172a428bc956721db9e2d1ca164736f6c6343000604000a" + }, + "0x0000000000000000000000000000000000001004": { + "balance": "0x0", + "code": "0x6080604052600436106104405760003560e01c80639509b98011610234578063c81b16621161012e578063ebf71d53116100b6578063fb063e8f1161007a578063fb063e8f146110d3578063fc1a598f146110e8578063fc3e590814610cca578063fd6a68791461111b578063ff9c0027146108a057610488565b8063ebf71d531461106a578063f01484721461107f578063f1fad10414611094578063f9a2bbc7146110a9578063fa9e9159146110be57610488565b8063dc927faf116100fd578063dc927faf14610fce578063df8079e914610fe3578063e04c83a714610ff8578063e1c7392a14611022578063e8f35cea1461103757610488565b8063c81b166214610ef9578063c8509d8114610f0e578063cf41984414610f93578063d9e6dae91461080d57610488565b8063aa7415f5116101bc578063b99328c511610180578063b99328c514610e30578063b9fd21e314610e69578063ba35ead614610e7e578063bbface1f14610e93578063bd46646114610ec657610488565b8063aa7415f514610cdf578063aa82dce114610d26578063aad5606314610d3b578063ab51bb9614610d50578063ac43175114610d6557610488565b80639dc09262116102035780639dc0926214610c76578063a1a11bf514610c8b578063a496fba214610ca0578063a78abc1614610cb5578063a7c9f02d14610cca57610488565b80639509b98014610bda57806396713da914610c135780639a854bbd14610c285780639a99b4f014610c3d57610488565b806359b9278911610345578063727be1f8116102cd578063831d65d111610291578063831d65d114610ac85780638525db0314610b4d5780638b87b21f146107625780638eff336c14610b8657806393ab703f14610bc557610488565b8063727be1f814610a2057806375d47a0a14610a4a5780637942fd0514610a5f578063799758b914610a745780637e434d5414610ab357610488565b80636e056520116103145780636e056520146108b55780636e47b482146109e157806370fd5bad146108a0578063718a8aa8146109f657806371d3086314610a0b57610488565b806359b92789146108615780635d499b1b1461088b578063613684751461080d57806366dea52a146108a057610488565b80633fd8b02f116103c85780634a3acdf4116103975780634a3acdf4146107f85780634bf6c8821461080d57806350432d321461082257806351b4dce31461083757806351e806721461084c57610488565b80633fd8b02f1461078d57806343756e5c146107a257806343a368b9146107b7578063493279b1146107cc57610488565b8063149d14d91161040f578063149d14d91461062157806328087028146106485780632ae454831461065d5780633d713223146106b15780633dffc3871461076257610488565b80630bee7a671461048d5780630e2374a5146104bb5780631182b875146104ec57806312234582146105e657610488565b36610488573415610486576040805133815234602082015281517f6c98249d85d88c3753a04a22230f595e4dc8d3dc86c34af35deeeedc861b89db929181900390910190a15b005b600080fd5b34801561049957600080fd5b506104a2611130565b6040805163ffffffff9092168252519081900360200190f35b3480156104c757600080fd5b506104d0611135565b604080516001600160a01b039092168252519081900360200190f35b3480156104f857600080fd5b506105716004803603604081101561050f57600080fd5b60ff8235169190810190604081016020820135600160201b81111561053357600080fd5b82018360208201111561054557600080fd5b803590602001918460018302840111600160201b8311171561056657600080fd5b50909250905061113b565b6040805160208082528351818301528351919283929083019185019080838360005b838110156105ab578181015183820152602001610593565b50505050905090810190601f1680156105d85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156105f257600080fd5b506104866004803603604081101561060957600080fd5b506001600160a01b0381358116916020013516611269565b34801561062d57600080fd5b50610636611363565b60408051918252519081900360200190f35b34801561065457600080fd5b506104d0611369565b34801561066957600080fd5b506106986004803603604081101561068057600080fd5b506001600160a01b038135811691602001351661136f565b6040805192835260208301919091528051918290030190f35b3480156106bd57600080fd5b506104d0600480360360208110156106d457600080fd5b810190602081018135600160201b8111156106ee57600080fd5b82018360208201111561070057600080fd5b803590602001918460018302840111600160201b8311171561072157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611393945050505050565b34801561076e57600080fd5b506107776113b7565b6040805160ff9092168252519081900360200190f35b34801561079957600080fd5b506106366113bc565b3480156107ae57600080fd5b506104d06113c2565b3480156107c357600080fd5b506106366113c8565b3480156107d857600080fd5b506107e16113d4565b6040805161ffff9092168252519081900360200190f35b34801561080457600080fd5b506106366113d9565b34801561081957600080fd5b506107776113df565b34801561082e57600080fd5b506106366113e4565b34801561084357600080fd5b506104d06113ef565b34801561085857600080fd5b506104d06113f5565b34801561086d57600080fd5b506104d06004803603602081101561088457600080fd5b50356113fb565b34801561089757600080fd5b50610636611416565b3480156108ac57600080fd5b5061077761141f565b6109cd600480360360808110156108cb57600080fd5b810190602081018135600160201b8111156108e557600080fd5b8201836020820111156108f757600080fd5b803590602001918460208302840111600160201b8311171561091857600080fd5b919390929091602081019035600160201b81111561093557600080fd5b82018360208201111561094757600080fd5b803590602001918460208302840111600160201b8311171561096857600080fd5b919390929091602081019035600160201b81111561098557600080fd5b82018360208201111561099757600080fd5b803590602001918460208302840111600160201b831117156109b857600080fd5b91935091503567ffffffffffffffff16611424565b604080519115158252519081900360200190f35b3480156109ed57600080fd5b506104d06118f9565b348015610a0257600080fd5b506107776118ff565b348015610a1757600080fd5b50610636611904565b348015610a2c57600080fd5b506109cd60048036036020811015610a4357600080fd5b503561190a565b348015610a5657600080fd5b506104d061198b565b348015610a6b57600080fd5b50610777611991565b348015610a8057600080fd5b5061048660048036036060811015610a9757600080fd5b508035906001600160a01b036020820135169060400135611996565b348015610abf57600080fd5b506104d0611c46565b348015610ad457600080fd5b5061048660048036036040811015610aeb57600080fd5b60ff8235169190810190604081016020820135600160201b811115610b0f57600080fd5b820183602082011115610b2157600080fd5b803590602001918460018302840111600160201b83111715610b4257600080fd5b509092509050611c4c565b348015610b5957600080fd5b5061048660048036036040811015610b7057600080fd5b50803590602001356001600160a01b0316611d94565b348015610b9257600080fd5b5061048660048036036060811015610ba957600080fd5b508035906001600160a01b036020820135169060400135611efd565b348015610bd157600080fd5b50610636611f83565b348015610be657600080fd5b5061048660048036036040811015610bfd57600080fd5b506001600160a01b038135169060200135611f8a565b348015610c1f57600080fd5b50610777612147565b348015610c3457600080fd5b5061063661214c565b348015610c4957600080fd5b5061063660048036036040811015610c6057600080fd5b506001600160a01b038135169060200135612158565b348015610c8257600080fd5b506104d0612296565b348015610c9757600080fd5b506104d061229c565b348015610cac57600080fd5b506107776122a2565b348015610cc157600080fd5b506109cd6122a7565b348015610cd657600080fd5b506107776122b0565b6109cd60048036036080811015610cf557600080fd5b5080356001600160a01b03908116916020810135909116906040810135906060013567ffffffffffffffff166122b5565b348015610d3257600080fd5b506104d0612335565b348015610d4757600080fd5b506104d061233b565b348015610d5c57600080fd5b506104a26122a2565b348015610d7157600080fd5b5061048660048036036040811015610d8857600080fd5b810190602081018135600160201b811115610da257600080fd5b820183602082011115610db457600080fd5b803590602001918460018302840111600160201b83111715610dd557600080fd5b919390929091602081019035600160201b811115610df257600080fd5b820183602082011115610e0457600080fd5b803590602001918460018302840111600160201b83111715610e2557600080fd5b509092509050612341565b348015610e3c57600080fd5b5061048660048036036040811015610e5357600080fd5b50803590602001356001600160a01b03166127e9565b348015610e7557600080fd5b50610636612869565b348015610e8a57600080fd5b50610636612873565b348015610e9f57600080fd5b5061063660048036036020811015610eb657600080fd5b50356001600160a01b0316612879565b348015610ed257600080fd5b5061063660048036036020811015610ee957600080fd5b50356001600160a01b031661288b565b348015610f0557600080fd5b506104d06128a6565b348015610f1a57600080fd5b5061048660048036036040811015610f3157600080fd5b60ff8235169190810190604081016020820135600160201b811115610f5557600080fd5b820183602082011115610f6757600080fd5b803590602001918460018302840111600160201b83111715610f8857600080fd5b5090925090506128ac565b348015610f9f57600080fd5b5061048660048036036040811015610fb657600080fd5b506001600160a01b038135811691602001351661297c565b348015610fda57600080fd5b506104d0612c50565b348015610fef57600080fd5b506104d0612c56565b34801561100457600080fd5b506109cd6004803603602081101561101b57600080fd5b5035612c5c565b34801561102e57600080fd5b50610486612cfc565b34801561104357600080fd5b506106366004803603602081101561105a57600080fd5b50356001600160a01b0316612d9c565b34801561107657600080fd5b50610777612dae565b34801561108b57600080fd5b50610777612db3565b3480156110a057600080fd5b50610777612db8565b3480156110b557600080fd5b506104d0612dbd565b3480156110ca57600080fd5b50610636612dc3565b3480156110df57600080fd5b50610636612dc9565b3480156110f457600080fd5b506105716004803603602081101561110b57600080fd5b50356001600160a01b0316612dd7565b34801561112757600080fd5b506104d0612efe565b606481565b61200181565b60005460609060ff16611183576040805162461bcd60e51b815260206004820152601960248201526000805160206153e4833981519152604482015290519081900360640190fd5b33612000146111c35760405162461bcd60e51b815260040180806020018281038252602f815260200180615392602f913960400191505060405180910390fd5b60ff8416600214156112155761120e83838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612f0492505050565b9050611262565b6040805162461bcd60e51b815260206004820152601860248201527f756e7265636f676e697a65642073796e207061636b6167650000000000000000604482015290519081900360640190fd5b9392505050565b33612000146112a95760405162461bcd60e51b815260040180806020018281038252602f815260200180615392602f913960400191505060405180910390fd5b6001600160a01b0380831660009081526007602090815260408083209385168352929052208054611314576040805162461bcd60e51b815260206004820152601060248201526f1b9bc81b1bd8dad95908185b5bdd5b9d60821b604482015290519081900360640190fd5b8054600082556040805182815290516001600160a01b0380861692908716917f152fb15aa5d80f843e1e4bd5f2fc9161714f169945024decec7e84fb910fdd519181900360200190a350505050565b60015490565b61200581565b60076020908152600092835260408084209091529082529020805460019091015482565b6020818101516000908152600490915260409020546001600160a01b03165b919050565b600181565b60055481565b61100181565b670de0b6b3a764000081565b606181565b61a8c081565b600881565b66071afd498d000081565b61200681565b61200081565b6000908152600460205260409020546001600160a01b031690565b6402540be40081565b600281565b6000805460ff1661146a576040805162461bcd60e51b815260206004820152601960248201526000805160206153e4833981519152604482015290519081900360640190fd5b8685146114a85760405162461bcd60e51b815260040180806020018281038252603b815260200180615357603b913960400191505060405180910390fd5b8683146114e65760405162461bcd60e51b815260040180806020018281038252603f815260200180615269603f913960400191505060405180910390fd5b426078018267ffffffffffffffff1610156115325760405162461bcd60e51b81526004018080602001828103825260248152602001806151e56024913960400191505060405180910390fd5b6402540be4003406156115765760405162461bcd60e51b815260040180806020018281038252604081526020018061545a6040913960400191505060405180910390fd5b604080518681526020808802820101909152859060009081906060908480156115a9578160200160208202803683370190505b50905060005b84811015611684576402540be4008b8b838181106115c957fe5b90506020020135816115d757fe5b06156116145760405162461bcd60e51b815260040180806020018281038252603c8152602001806152a8603c913960400191505060405180910390fd5b6116398b8b8381811061162357fe5b905060200201358561302890919063ffffffff16565b93506116656402540be4008c8c8481811061165057fe5b9050602002013561308290919063ffffffff16565b82828151811061167157fe5b60209081029190910101526001016115af565b506001546116a99061169c908663ffffffff6130c416565b849063ffffffff61302816565b3410156116e75760405162461bcd60e51b81526004018080602001828103825260568152602001806154046056913960600191505060405180910390fd5b6116f7348463ffffffff61311d16565b9150611701615023565b6040518060c001604052806221272160e91b60001b815260200160006001600160a01b031681526020018381526020018e8e808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505050908252506040805160208c810282810182019093528c82529283019290918d918d91829185019084908082843760009201919091525050509082525067ffffffffffffffff8916602090910152905061200063f7a251d760036117c58461315f565b6117da876402540be40063ffffffff61308216565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611838578181015183820152602001611820565b50505050905090810190601f1680156118655780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561188657600080fd5b505af115801561189a573d6000803e3d6000fd5b505060408051600081523360208201528082018890526060810187905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a15060019c9b505050505050505050505050565b61100581565b601081565b60015481565b6000336120011461194c5760405162461bcd60e51b815260040180806020018281038252603381526020018061513d6033913960400191505060405180910390fd5b8115611983576040516120019083156108fc029084906000818181858888f19350505050158015611981573d6000803e3d6000fd5b505b506001919050565b61100881565b600b81565b60005460ff166119db576040805162461bcd60e51b815260206004820152601960248201526000805160206153e4833981519152604482015290519081900360640190fd5b3361300014611a1b5760405162461bcd60e51b815260040180806020018281038252602b81526020018061523e602b913960400191505060405180910390fd5b677ce66c50e2840000811115611a625760405162461bcd60e51b81526004018080602001828103825260358152602001806152096035913960400191505060405180910390fd5b60006221272160e91b8414611bcc576000848152600460205260409020546001600160a01b031680611ad5576040805184815290516001600160a01b0386169187917fc16ee9013bf67c846d37735983debb0acc5b2d1419cb5931c9843ad4689505499181900360200190a35050611c41565b6001600160a01b038116600090815260026020526040902054611af8848261341a565b604080516370a0823160e01b8152306004820152905191945084916001600160a01b038516916370a08231916024808301926020929190829003018186803b158015611b4357600080fd5b505afa158015611b57573d6000803e3d6000fd5b505050506040513d6020811015611b6d57600080fd5b50511015611bb9576040805162461bcd60e51b8152602060048201526014602482015273696e73756666696369656e742062616c616e636560601b604482015290519081900360640190fd5b611bc58683858861345a565b5050611c3f565b611be1826402540be40063ffffffff6130c416565b905080471015611c2f576040805162461bcd60e51b8152602060048201526014602482015273696e73756666696369656e742062616c616e636560601b604482015290519081900360640190fd5b6000611c3d8582848761345a565b505b505b505050565b61200381565b60005460ff16611c91576040805162461bcd60e51b815260206004820152601960248201526000805160206153e4833981519152604482015290519081900360640190fd5b3361200014611cd15760405162461bcd60e51b815260040180806020018281038252602f815260200180615392602f913960400191505060405180910390fd5b60ff831660031415611d2157611d1c82828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506134f492505050565b611c41565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a1505050565b3361300014611dd45760405162461bcd60e51b815260040180806020018281038252602b81526020018061523e602b913960400191505060405180910390fd5b60006221272160e91b8314611e3f57506000828152600460205260409020546001600160a01b031680611e3f576040805162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a59081cde5b589bdb60921b604482015290519081900360640190fd5b6001600160a01b0380821660009081526007602090815260408083209386168352929052208054611eaa576040805162461bcd60e51b815260206004820152601060248201526f1b9bc81b1bd8dad95908185b5bdd5b9d60821b604482015290519081900360640190fd5b8054600082556040805182815290516001600160a01b03808716929086169188917f8041a9a8704332594e2884f5e0f942281cdd7611854c365b4d0aa70b2295d6b6919081900360200190a45050505050565b3361100814611f3d5760405162461bcd60e51b81526004018080602001828103825260238152602001806153c16023913960400191505060405180910390fd5b600083815260046020908152604080832080546001600160a01b039096166001600160a01b03199096168617905593825260038152838220949094556002909352912055565b6201518081565b81806001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b158015611fc457600080fd5b505afa158015611fd8573d6000803e3d6000fd5b505050506040513d6020811015611fee57600080fd5b50516001600160a01b0316331461204c576040805162461bcd60e51b815260206004820152601860248201527f6e6f74206f776e6572206f6620424550323020746f6b656e0000000000000000604482015290519081900360640190fd5b6000821161209a576040805162461bcd60e51b81526020600482015260166024820152751e995c9bc81b1a5b5a5d081b9bdd08185b1b1bddd95960521b604482015290519081900360640190fd5b6001600160a01b0383166000908152600360205260409020546120f0576040805162461bcd60e51b81526020600482015260096024820152681b9bdd08189bdd5b9960ba1b604482015290519081900360640190fd5b6001600160a01b038316600081815260066020908152604091829020859055815185815291513393927f9df3a90730dbf23b5cc18dbbd5f4af3fa94a0dffb6ff6841f98a9a9a6ac626a892908290030190a3505050565b600981565b677ce66c50e284000081565b6000805460ff1661219e576040805162461bcd60e51b815260206004820152601960248201526000805160206153e4833981519152604482015290519081900360640190fd5b33611005146121de5760405162461bcd60e51b815260040180806020018281038252602f815260200180615170602f913960400191505060405180910390fd5b60004783106121ed57476121ef565b825b9050670de0b6b3a764000081111561220b576000915050612290565b801561228d576040516001600160a01b0385169082156108fc029083906000818181858888f19350505050158015612247573d6000803e3d6000fd5b50604080516001600160a01b03861681526020810183905281517ff8b71c64315fc33b2ead2adfa487955065152a8ac33d9d5193aafd7f45dc15a0929181900390910190a15b90505b92915050565b61100781565b61100681565b600081565b60005460ff1681565b600381565b6000805460ff166122fb576040805162461bcd60e51b815260206004820152601960248201526000805160206153e4833981519152604482015290519081900360640190fd5b6040805162461bcd60e51b815260206004820152600a60248201526919195c1c9958d85d195960b21b604482015290519081900360640190fd5b61200281565b61300081565b33611007146123815760405162461bcd60e51b815260040180806020018281038252602e815260200180615305602e913960400191505060405180910390fd5b602081146123d6576040805162461bcd60e51b815260206004820152601b60248201527f65787065637465642076616c7565206c656e6774682069732033320000000000604482015290519081900360640190fd5b606084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8801819004810282018101909252868152939450606093925086915085908190840183828082843760009201919091525050505060208301519091506772656c617946656560c01b8114156124de576020820151670de0b6b3a7640000811180159061248557506402540be4008106155b6124d6576040805162461bcd60e51b815260206004820152601960248201527f7468652072656c6179466565206f7574206f662072616e676500000000000000604482015290519081900360640190fd5b600155612754565b61255287878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601781527f6c617267655472616e736665724c6f636b506572696f64000000000000000000602082015291506135509050565b156125ee57604080516020601f87018190048102820181019092528581526000916125959188888083850183828082843760009201919091525061363792505050565b905062093a808111156125e6576040805162461bcd60e51b81526020600482015260146024820152736c6f636b20706572696f6420746f6f206c6f6e6760601b604482015290519081900360640190fd5b600555612754565b61265a87878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526015815274189b9893185c99d9551c985b9cd9995c931a5b5a5d605a1b602082015291506135509050565b1561271757604080516020601f870181900481028201810190925285815260009161269d9188888083850183828082843760009201919091525061363792505050565b905068056bc75e2d631000008110156126e75760405162461bcd60e51b815260040180806020018281038252602281526020018061519f6022913960400191505060405180910390fd5b6000805260066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f855612754565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a878787876040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050505050565b33611008146128295760405162461bcd60e51b81526004018080602001828103825260238152602001806153c16023913960400191505060405180910390fd5b600091825260046020908152604080842080546001600160a01b03191690556001600160a01b039290921683526003815281832083905560029052812055565b6221272160e91b81565b61c35081565b60026020526000908152604090205481565b6001600160a01b031660009081526003602052604090205490565b61100281565b60005460ff166128f1576040805162461bcd60e51b815260206004820152601960248201526000805160206153e4833981519152604482015290519081900360640190fd5b33612000146129315760405162461bcd60e51b815260040180806020018281038252602f815260200180615392602f913960400191505060405180910390fd5b60ff831660031415611d2157611d1c82828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061363c92505050565b60085460ff16600214156129c8576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b6008805460ff191660021790556001600160a01b0380831660009081526007602090815260408083209385168352929052208054612a40576040805162461bcd60e51b815260206004820152601060248201526f1b9bc81b1bd8dad95908185b5bdd5b9d60821b604482015290519081900360640190fd5b8060010154421015612a99576040805162461bcd60e51b815260206004820152601760248201527f7374696c6c206f6e206c6f636b696e6720706572696f64000000000000000000604482015290519081900360640190fd5b805460008083556001600160a01b038516612b0c576040516001600160a01b038516906127109084906000818181858888f193505050503d8060008114612afc576040519150601f19603f3d011682016040523d82523d6000602084013e612b01565b606091505b505080915050612b9f565b846001600160a01b031663a9059cbb61c35086856040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b158015612b6f57600080fd5b5087f1158015612b83573d6000803e3d6000fd5b50505050506040513d6020811015612b9a57600080fd5b505190505b80612bf1576040805162461bcd60e51b815260206004820152601e60248201527f776974686472617720756e6c6f636b656420746f6b656e206661696c65640000604482015290519081900360640190fd5b836001600160a01b0316856001600160a01b03167f832fc3e25f2b3e6fb0eb59419a73cba405f2a249fce75f7e31ea5a457a0323f1846040518082815260200191505060405180910390a350506008805460ff19166001179055505050565b61100381565b61200481565b60003361200214612cb4576040805162461bcd60e51b815260206004820152601f60248201527f746865206d73672073656e646572206d757374206265207374616b6548756200604482015290519081900360640190fd5b814710612cf4576040516120029083156108fc029084906000818181858888f19350505050158015612cea573d6000803e3d6000fd5b50600190506113b2565b506000919050565b60005460ff1615612d54576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b66071afd498d000060019081556000808052600260205260127fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b55805460ff19169091179055565b60066020526000908152604090205481565b600481565b600581565b601181565b61100081565b61271081565b69021e19e0c9bab240000081565b6001600160a01b03811660009081526003602090815260409182902054825182815280840190935260609290918391906020820181803683375050506020810183905290506000805b60208160ff161015612e6757828160ff1681518110612e3b57fe5b01602001516001600160f81b03191615612e5a57816001019150612e5f565b612e67565b600101612e20565b5060608160ff166040519080825280601f01601f191660200182016040528015612e98576020820181803683370190505b50905060005b8260ff168160ff161015612ef457838160ff1681518110612ebb57fe5b602001015160f81c60f81b828260ff1681518110612ed557fe5b60200101906001600160f81b031916908160001a905350600101612e9e565b5095945050505050565b61100481565b6060612f0e61506f565b6000612f1984613733565b9150915080612f6f576040805162461bcd60e51b815260206004820152601f60248201527f756e7265636f676e697a6564207472616e73666572496e207061636b61676500604482015290519081900360640190fd5b6000612f7a83613872565b905063ffffffff81161561300e576040808401516020808601516001600160a01b03166000908152600290915291822054612fb59190613bd8565b9050612fbf6150a4565b60405180608001604052808660000151815260200183815260200186608001516001600160a01b031681526020018463ffffffff16815250905061300281613c11565b955050505050506113b2565b505060408051600081526020810190915291506113b29050565b60008282018381101561228d576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600061228d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613ced565b6000826130d357506000612290565b828202828482816130e057fe5b041461228d5760405162461bcd60e51b81526004018080602001828103825260218152602001806152e46021913960400191505060405180910390fd5b600061228d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613d8f565b60408051600680825260e08201909252606091829190816020015b606081526020019060019003908161317a575050835190915061319c90613de9565b816000815181106131a957fe5b60200260200101819052506131ca83602001516001600160a01b0316613dfc565b816001815181106131d757fe5b60200260200101819052506000836040015151905060608160405190808252806020026020018201604052801561322257816020015b606081526020019060019003908161320d5790505b50905060005b8281101561326f576132508660400151828151811061324357fe5b6020026020010151613de9565b82828151811061325c57fe5b6020908102919091010152600101613228565b5061327981613e1f565b8360028151811061328657fe5b60200260200101819052506060826040519080825280602002602001820160405280156132c757816020015b60608152602001906001900390816132b25790505b50905060005b8381101561331d576132fe876060015182815181106132e857fe5b60200260200101516001600160a01b0316613dfc565b82828151811061330a57fe5b60209081029190910101526001016132cd565b5061332781613e1f565b8460038151811061333457fe5b602002602001018190525060608360405190808252806020026020018201604052801561337557816020015b60608152602001906001900390816133605790505b50905060005b848110156133b557613396886080015182815181106132e857fe5b8282815181106133a257fe5b602090810291909101015260010161337b565b506133bf81613e1f565b856004815181106133cc57fe5b60200260200101819052506133ee8760a0015167ffffffffffffffff16613de9565b856005815181106133fb57fe5b602002602001018190525061340f85613e1f565b979650505050505050565b600060088211156134435761343c836007198401600a0a63ffffffff6130c416565b9050612290565b61228d836008849003600a0a63ffffffff61308216565b6001600160a01b0380841660009081526007602090815260408083209385168352929052208054613491908463ffffffff61302816565b81554262015180016001820181905560408051858152602081019290925280516001600160a01b03808616939088169289927f446d1aa056e7b903901f49880e9f252762c1b81dc4301cf28db6dae526497eaa9281900390910190a45050505050565b6134fc6150cb565b600061350783613ea9565b91509150806135475760405162461bcd60e51b81526004018080602001828103825260248152602001806153336024913960400191505060405180910390fd5b611c4182614074565b6000816040516020018082805190602001908083835b602083106135855780518252601f199092019160209182019101613566565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106135f35780518252601f1990920191602091820191016135d4565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b613644615023565b600061364f836144f8565b915091508061368f5760405162461bcd60e51b81526004018080602001828103825260248152602001806151c16024913960400191505060405180910390fd5b6136976150cb565b602080840180516001600160a01b0390811684526040808701518585015291511660009081526002909252812054905b846040015151811015613718576136f5856040015182815181106136e757fe5b60200260200101518361341a565b8560400151828151811061370557fe5b60209081029190910101526001016136c7565b506080840151604083015260056060830152611c3d82614074565b61373b61506f565b600061374561506f565b61374d615102565b61375e6137598661475c565b614781565b90506000805b61376d836147cb565b15613865578061378f57613788613783846147ec565b61483a565b845261385d565b80600114156137bc576137a96137a4846147ec565b6148f1565b6001600160a01b0316602085015261385d565b80600214156137db576137d1613783846147ec565b604085015261385d565b8060031415613803576137f06137a4846147ec565b6001600160a01b0316606085015261385d565b806004141561382b576138186137a4846147ec565b6001600160a01b0316608085015261385d565b806005141561385857613840613783846147ec565b67ffffffffffffffff1660a08501526001915061385d565b613865565b600101613764565b5091935090915050915091565b60208101516000906001600160a01b03166139b6578160a0015167ffffffffffffffff164211156138a5575060016113b2565b81604001514710156138b9575060036113b2565b6138c28261490b565b61393757606082015160408084015190516000926001600160a01b0316916127109184818181858888f193505050503d806000811461391d576040519150601f19603f3d011682016040523d82523d6000602084013e613922565b606091505b50509050806139355750600490506113b2565b505b7f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5982602001518360600151846040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a15060006113b2565b8160a0015167ffffffffffffffff164211156139d4575060016113b2565b81516020808401516001600160a01b031660009081526003909152604090205414613a01575060026113b2565b602080830151604080516370a0823160e01b815230600482015290516000936001600160a01b03909316926370a082319261c3509260248083019392829003018187803b158015613a5157600080fd5b5086fa158015613a65573d6000803e3d6000fd5b50505050506040513d6020811015613a7c57600080fd5b50516040840151909150811015613a975750600390506113b2565b613aa08361490b565b613b5757600083602001516001600160a01b031663a9059cbb61c350866060015187604001516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b158015613b1557600080fd5b5087f1158015613b29573d6000803e3d6000fd5b50505050506040513d6020811015613b4057600080fd5b5051905080613b555750600591506113b29050565b505b7f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5983602001518460600151856040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a150600090506113b2565b60006008821115613bfa5761343c836007198401600a0a63ffffffff61308216565b61228d836008849003600a0a63ffffffff6130c416565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081613c2c5750508351909150613c4e90613de9565b81600081518110613c5b57fe5b6020026020010181905250613c738360200151613de9565b81600181518110613c8057fe5b6020026020010181905250613ca183604001516001600160a01b0316613dfc565b81600281518110613cae57fe5b6020026020010181905250613ccc836060015163ffffffff16613de9565b81600381518110613cd957fe5b602002602001018190525061126281613e1f565b60008183613d795760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613d3e578181015183820152602001613d26565b50505050905090810190601f168015613d6b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581613d8557fe5b0495945050505050565b60008184841115613de15760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315613d3e578181015183820152602001613d26565b505050900390565b6060612290613df783614a79565b614b5f565b60408051600560a21b831860148201526034810190915260609061126281614b5f565b6060815160001415613e4057506040805160008152602081019091526113b2565b606082600081518110613e4f57fe5b602002602001015190506000600190505b8351811015613e9057613e8682858381518110613e7957fe5b6020026020010151614bb1565b9150600101613e60565b50611262613ea3825160c060ff16614c2e565b82614bb1565b613eb16150cb565b6000613ebb6150cb565b613ec3615102565b613ecf6137598661475c565b90506000805b613ede836147cb565b156138655780613f0457613ef46137a4846147ec565b6001600160a01b0316845261406c565b8060011415613fa5576060613f20613f1b856147ec565b614d26565b90508051604051908082528060200260200182016040528015613f4d578160200160208202803683370190505b50602086015260005b8151811015613f9e57613f7b828281518110613f6e57fe5b602002602001015161483a565b86602001518281518110613f8b57fe5b6020908102919091010152600101613f56565b505061406c565b8060021415614047576060613fbc613f1b856147ec565b90508051604051908082528060200260200182016040528015613fe9578160200160208202803683370190505b50604086015260005b8151811015613f9e5761401782828151811061400a57fe5b60200260200101516148f1565b8660400151828151811061402757fe5b6001600160a01b0390921660209283029190910190910152600101613ff2565b80600314156138585761405c613783846147ec565b63ffffffff166060850152600191505b600101613ed5565b80516001600160a01b031661429e5760005b816020015151811015614298576000826040015182815181106140a557fe5b60200260200101516001600160a01b0316612710846020015184815181106140c957fe5b60209081029190910101516040516000818181858888f193505050503d8060008114614111576040519150601f19603f3d011682016040523d82523d6000602084013e614116565b606091505b50509050806141d9577f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061415557fe5b60200260200101518560200151858151811061416d57fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a161428f565b7fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a83600001518460400151848151811061420f57fe5b60200260200101518560200151858151811061422757fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b50600101614086565b506144f5565b60005b8160200151518110156144f357600082600001516001600160a01b031663a9059cbb61c350856040015185815181106142d657fe5b6020026020010151866020015186815181106142ee57fe5b60200260200101516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b15801561434557600080fd5b5087f1158015614359573d6000803e3d6000fd5b50505050506040513d602081101561437057600080fd5b505190508015614434577fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a8360000151846040015184815181106143b057fe5b6020026020010151856020015185815181106143c857fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a16144ea565b7f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061446a57fe5b60200260200101518560200151858151811061448257fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b506001016142a1565b505b50565b614500615023565b600061450a615023565b614512615102565b61451e6137598661475c565b90506000805b61452d836147cb565b15613865578061454a57614543613783846147ec565b8452614754565b80600114156145725761455f6137a4846147ec565b6001600160a01b03166020850152614754565b8060021415614601576060614589613f1b856147ec565b905080516040519080825280602002602001820160405280156145b6578160200160208202803683370190505b50604086015260005b81518110156145fa576145d7828281518110613f6e57fe5b866040015182815181106145e757fe5b60209081029190910101526001016145bf565b5050614754565b8060031415614696576060614618613f1b856147ec565b90508051604051908082528060200260200182016040528015614645578160200160208202803683370190505b50606086015260005b81518110156145fa5761466682828151811061400a57fe5b8660600151828151811061467657fe5b6001600160a01b039092166020928302919091019091015260010161464e565b806004141561472b5760606146ad613f1b856147ec565b905080516040519080825280602002602001820160405280156146da578160200160208202803683370190505b50608086015260005b81518110156145fa576146fb82828151811061400a57fe5b8660800151828151811061470b57fe5b6001600160a01b03909216602092830291909101909101526001016146e3565b806005141561385857614740613783846147ec565b67ffffffffffffffff1660a0850152600191505b600101614524565b614764615122565b506040805180820190915281518152602082810190820152919050565b614789615102565b61479282614df7565b61479b57600080fd5b60006147aa8360200151614e31565b60208085015160408051808201909152868152920190820152915050919050565b60006147d5615122565b505080518051602091820151919092015191011190565b6147f4615122565b6147fd826147cb565b61480657600080fd5b6020820151600061481682614e94565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061484f57508151602110155b61485857600080fd5b60006148678360200151614e31565b905080836000015110156148c2576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b8251602080850151830180519284900392918310156148e857826020036101000a820491505b50949350505050565b805160009060151461490257600080fd5b6122908261483a565b600080805260066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f8541580156149445750600554155b156149865760008052600660205269021e19e0c9bab24000007f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f85561a8c06005555b6020808301516001600160a01b03166000908152600690915260409020548015806149b45750808360400151105b156149c35760009150506113b2565b6020808401516001600160a01b039081166000908152600783526040808220606088015190931682529190925290819020908401518154614a099163ffffffff61302816565b8155600554420160018201819055606085015160208087015160408089015181519081529283019490945283516001600160a01b039384169493909116927f3fb83143cd331170da18fb1e8564d97e8ec39264b6ecb1ba248ea7596ab07258928290030190a35060019392505050565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416614abd57506018614ae1565b6fffffffffffffffffffffffffffffffff198416614add57506010614ae1565b5060005b6020811015614b1757818181518110614af657fe5b01602001516001600160f81b03191615614b0f57614b17565b600101614ae1565b60008160200390506060816040519080825280601f01601f191660200182016040528015614b4c576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015614b915750607f60f81b82600081518110614b7f57fe5b01602001516001600160f81b03191611155b15614b9d5750806113b2565b612290614baf8351608060ff16614c2e565b835b6060806040519050835180825260208201818101602087015b81831015614be2578051835260209283019201614bca565b50855184518101855292509050808201602086015b81831015614c0f578051835260209283019201614bf7565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310614c7e576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b60408051600180825281830190925260609160208201818036833701905050905060378411614cd85782840160f81b81600081518110614cba57fe5b60200101906001600160f81b031916908160001a9053509050612290565b6060614ce385614a79565b90508381510160370160f81b82600081518110614cfc57fe5b60200101906001600160f81b031916908160001a905350614d1d8282614bb1565b95945050505050565b6060614d3182614df7565b614d3a57600080fd5b6000614d4583614fc7565b9050606081604051908082528060200260200182016040528015614d8357816020015b614d70615122565b815260200190600190039081614d685790505b5090506000614d958560200151614e31565b60208601510190506000805b84811015614dec57614db283614e94565b9150604051806040016040528083815260200184815250848281518110614dd557fe5b602090810291909101015291810191600101614da1565b509195945050505050565b8051600090614e08575060006113b2565b6020820151805160001a9060c0821015614e27576000925050506113b2565b5060019392505050565b8051600090811a6080811015614e4b5760009150506113b2565b60b8811080614e66575060c08110801590614e66575060f881105b15614e755760019150506113b2565b60c0811015614e895760b5190190506113b2565b60f5190190506113b2565b80516000908190811a6080811015614eaf5760019150614fc0565b60b8811015614ec457607e1981019150614fc0565b60c0811015614f3e57600060b78203600186019550806020036101000a865104915060018101820193505080831015614f38576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50614fc0565b60f8811015614f535760be1981019150614fc0565b600060f78203600186019550806020036101000a865104915060018101820193505080831015614fbe576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b8051600090614fd8575060006113b2565b60008090506000614fec8460200151614e31565b602085015185519181019250015b8082101561501a5761500b82614e94565b82019150826001019250614ffa565b50909392505050565b6040518060c001604052806000801916815260200160006001600160a01b03168152602001606081526020016060815260200160608152602001600067ffffffffffffffff1681525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b60408051608081018252600080825260208201819052918101829052606081019190915290565b604051806080016040528060006001600160a01b031681526020016060815260200160608152602001600063ffffffff1681525090565b6040518060400160405280615115615122565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe6f6e6c79207374616b696e672073797374656d20636f6e74726163742063616e2063616c6c20746869732066756e6374696f6e746865206d6573736167652073656e646572206d75737420626520696e63656e746976697a6520636f6e7472616374626e62206c61726765207472616e73666572206c696d697420746f6f20736d616c6c756e7265636f676e697a6564207472616e736665724f75742073796e207061636b61676565787069726554696d65206d7573742062652074776f206d696e75746573206c61746572616d6f756e7420697320746f6f206c617267652c20657863656564206d6178696d756d206265703220746f6b656e20616d6f756e74746865206d73672073656e646572206d75737420626520746f6b656e207265636f76657220706f7274616c4c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620726566756e644164647273696e76616c6964207472616e7366657220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374756e7265636f676e697a6564207472616e736665724f75742061636b207061636b6167654c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620616d6f756e7473746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d73672073656e646572206d75737420626520746f6b656e4d616e6167657274686520636f6e7472616374206e6f7420696e69742079657400000000000000726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e7366657220424e4220616d6f756e7420616e642072656c6179466565696e76616c696420726563656976656420424e4220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6ea164736f6c6343000604000a" + }, + "0x0000000000000000000000000000000000001007": { + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b506004361061021c5760003560e01c8063831d65d111610125578063ab51bb96116100ad578063df8079e91161007c578063df8079e914610615578063f1fad1041461061d578063f9a2bbc714610625578063fc3e59081461062d578063fd6a6879146106355761021c565b8063ab51bb9614610585578063c81b16621461058d578063c8509d8114610595578063dc927faf1461060d5761021c565b80639dc09262116100f45780639dc0926214610549578063a1a11bf514610551578063a78abc1614610559578063aa82dce114610575578063aad560631461057d5761021c565b8063831d65d1146103f857806388e4194e1461047257806396713da9146105395780639ab1a373146105415761021c565b80634bf6c882116101a857806370fd5bad1161017757806370fd5bad146103d0578063718a8aa8146103d857806375d47a0a146103e05780637942fd05146103e85780637e434d54146103f05761021c565b80634bf6c882146103b057806351b4dce3146103b857806351e80672146103c05780636e47b482146103c85761021c565b80633a21baae116101ef5780633a21baae1461035b5780633dffc3871461036357806343756e5c146103815780634900c4ea14610389578063493279b1146103915761021c565b80630bee7a67146102215780630e2374a5146102425780631182b875146102665780632808702814610353575b600080fd5b61022961063d565b6040805163ffffffff9092168252519081900360200190f35b61024a610642565b604080516001600160a01b039092168252519081900360200190f35b6102de6004803603604081101561027c57600080fd5b60ff8235169190810190604081016020820135600160201b8111156102a057600080fd5b8201836020820111156102b257600080fd5b803590602001918460018302840111600160201b831117156102d357600080fd5b509092509050610648565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610318578181015183820152602001610300565b50505050905090810190601f1680156103455780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61024a610737565b61022961073d565b61036b610742565b6040805160ff9092168252519081900360200190f35b61024a610747565b61036b61074d565b610399610752565b6040805161ffff9092168252519081900360200190f35b61036b610757565b61024a61075c565b61024a610762565b61024a610768565b61036b61076e565b61036b610773565b61024a610778565b61036b61077e565b61024a610783565b6104706004803603604081101561040e57600080fd5b60ff8235169190810190604081016020820135600160201b81111561043257600080fd5b82018360208201111561044457600080fd5b803590602001918460018302840111600160201b8311171561046557600080fd5b509092509050610789565b005b6104706004803603606081101561048857600080fd5b810190602081018135600160201b8111156104a257600080fd5b8201836020820111156104b457600080fd5b803590602001918460018302840111600160201b831117156104d557600080fd5b919390929091602081019035600160201b8111156104f257600080fd5b82018360208201111561050457600080fd5b803590602001918460018302840111600160201b8311171561052557600080fd5b9193509150356001600160a01b031661081b565b61036b610906565b61022961090b565b61024a610910565b61024a610916565b61056161091c565b604080519115158252519081900360200190f35b61024a610925565b61024a61092b565b61022961074d565b61024a610931565b610470600480360360408110156105ab57600080fd5b60ff8235169190810190604081016020820135600160201b8111156105cf57600080fd5b8201836020820111156105e157600080fd5b803590602001918460018302840111600160201b8311171561060257600080fd5b509092509050610937565b61024a6109ae565b61024a6109b4565b61036b6109ba565b61024a6109bf565b61036b6109c5565b61024a6109ca565b606481565b61200181565b6060336120001461068a5760405162461bcd60e51b815260040180806020018281038252602f81526020018061169d602f913960400191505060405180910390fd5b610692611638565b60006106d385858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506109d092505050565b91509150806106ef576106e66064610a96565b92505050610730565b60006106fa83610b00565b905063ffffffff811661072157505060408051600081526020810190915291506107309050565b61072a81610a96565b93505050505b9392505050565b61200581565b606681565b600181565b61100181565b600081565b606181565b600881565b61200681565b61200081565b61100581565b600281565b601081565b61100881565b600b81565b61200381565b33612000146107c95760405162461bcd60e51b815260040180806020018281038252602f81526020018061169d602f913960400191505060405180910390fd5b6040805162461bcd60e51b815260206004820152601e60248201527f7265636569766520756e65787065637465642061636b207061636b6167650000604482015290519081900360640190fd5b505050565b336120061461085b5760405162461bcd60e51b81526004018080602001828103825260318152602001806116cc6031913960400191505060405180910390fd5b610863611638565b604051806060016040528087878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505090825250604080516020601f8801819004810282018101909252868152918101919087908790819084018382808284376000920191909152505050908252506001600160a01b03841660209091015290506108fd81610b00565b50505050505050565b600981565b606581565b61100781565b61100681565b60005460ff1681565b61200281565b61300081565b61100281565b33612000146109775760405162461bcd60e51b815260040180806020018281038252602f81526020018061169d602f913960400191505060405180910390fd5b60405162461bcd60e51b81526004018080602001828103825260238152602001806116fd6023913960400191505060405180910390fd5b61100381565b61200481565b601181565b61100081565b600381565b61100481565b6109d8611638565b60006109e2611638565b6109ea611662565b6109fb6109f686610ea1565b610ec6565b90506000805b610a0a83610f10565b15610a895780610a2c57610a25610a2084610f31565b610f7f565b8452610a81565b8060011415610a4b57610a41610a2084610f31565b6020850152610a81565b8060021415610a7c57610a65610a6084610f31565b610ff8565b6001600160a01b0316604085015260019150610a81565b610a89565b600101610a01565b5091935090915050915091565b604080516001808252818301909252606091829190816020015b6060815260200190600190039081610ab0579050509050610ad68363ffffffff16611018565b81600081518110610ae357fe5b6020026020010181905250610af78161102b565b9150505b919050565b6000610b0f82604001516110b5565b610b7b57604080516020808252601c908201527f74686520746172676574206973206e6f74206120636f6e7472616374000000008183015290517f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb29181900360600190a1506065610afb565b81604001516001600160a01b031663ac431751836000015184602001516040518363ffffffff1660e01b8152600401808060200180602001838103835285818151815260200191508051906020019080838360005b83811015610be8578181015183820152602001610bd0565b50505050905090810190601f168015610c155780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b83811015610c48578181015183820152602001610c30565b50505050905090810190601f168015610c755780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015610c9657600080fd5b505af1925050508015610ca7575060015b610e99576040516000815260443d1015610cc357506000610d60565b60046000803e60005160e01c6308c379a08114610ce4576000915050610d60565b60043d036004833e81513d602482011167ffffffffffffffff82111715610d1057600092505050610d60565b808301805167ffffffffffffffff811115610d32576000945050505050610d60565b8060208301013d8601811115610d5057600095505050505050610d60565b601f01601f191660405250925050505b80610d6b5750610e0e565b7f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2816040518080602001828103825283818151815260200191508051906020019080838360005b83811015610dca578181015183820152602001610db2565b50505050905090810190601f168015610df75780820380516001836020036101000a031916815260200191505b509250505060405180910390a16066915050610afb565b3d808015610e38576040519150601f19603f3d011682016040523d82523d6000602084013e610e3d565b606091505b5060408051602080825283518183015283517f1279f84165b4fd69c35e1f338ff107231b036c655cd1688851e011ce617c4e8d938593928392918301919085019080838360008315610dca578181015183820152602001610db2565b506000919050565b610ea9611682565b506040805180820190915281518152602082810190820152919050565b610ece611662565b610ed7826110bb565b610ee057600080fd5b6000610eef83602001516110f5565b60208085015160408051808201909152868152920190820152915050919050565b6000610f1a611682565b505080518051602091820151919092015191011190565b610f39611682565b610f4282610f10565b610f4b57600080fd5b60208201516000610f5b82611158565b80830160209586015260408051808201909152908152938401919091525090919050565b8051606090610f8d57600080fd5b6000610f9c83602001516110f5565b83516040805191839003808352601f19601f8201168301602001909152919250606090828015610fd3576020820181803683370190505b5090506000816020019050610fef84876020015101828561128b565b50949350505050565b805160009060151461100957600080fd5b611012826112d6565b92915050565b60606110126110268361138b565b611471565b606081516000141561104c5750604080516000815260208101909152610afb565b60608260008151811061105b57fe5b602002602001015190506000600190505b835181101561109c576110928285838151811061108557fe5b60200260200101516114c3565b915060010161106c565b50610af76110af825160c060ff16611540565b826114c3565b3b151590565b80516000906110cc57506000610afb565b6020820151805160001a9060c08210156110eb57600092505050610afb565b5060019392505050565b8051600090811a608081101561110f576000915050610afb565b60b881108061112a575060c0811080159061112a575060f881105b15611139576001915050610afb565b60c081101561114d5760b519019050610afb565b60f519019050610afb565b80516000908190811a60808110156111735760019150611284565b60b881101561118857607e1981019150611284565b60c081101561120257600060b78203600186019550806020036101000a8651049150600181018201935050808310156111fc576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50611284565b60f88110156112175760be1981019150611284565b600060f78203600186019550806020036101000a865104915060018101820193505080831015611282576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b8061129557610816565b5b602081106112b5578251825260209283019290910190601f1901611296565b915181516020939093036101000a6000190180199091169216919091179052565b8051600090158015906112eb57508151602110155b6112f457600080fd5b600061130383602001516110f5565b9050808360000151101561135e576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015610fef57506020919091036101000a90049392505050565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166113cf575060186113f3565b6fffffffffffffffffffffffffffffffff1984166113ef575060106113f3565b5060005b60208110156114295781818151811061140857fe5b01602001516001600160f81b0319161561142157611429565b6001016113f3565b60008160200390506060816040519080825280601f01601f19166020018201604052801561145e576020820181803683370190505b5080830196909652508452509192915050565b6060815160011480156114a35750607f60f81b8260008151811061149157fe5b01602001516001600160f81b03191611155b156114af575080610afb565b6110126114c18351608060ff16611540565b835b6060806040519050835180825260208201818101602087015b818310156114f45780518352602092830192016114dc565b50855184518101855292509050808201602086015b81831015611521578051835260209283019201611509565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310611590576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b604080516001808252818301909252606091602082018180368337019050509050603784116115ea5782840160f81b816000815181106115cc57fe5b60200101906001600160f81b031916908160001a9053509050611012565b60606115f58561138b565b90508381510160370160f81b8260008151811061160e57fe5b60200101906001600160f81b031916908160001a90535061162f82826114c3565b95945050505050565b6040518060600160405280606081526020016060815260200160006001600160a01b031681525090565b6040518060400160405280611675611682565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d73672073656e646572206d75737420626520676f7665726e6f722074696d656c6f636b20636f6e74726163747265636569766520756e6578706563746564206661696c2061636b207061636b616765a164736f6c6343000604000a" + }, + "0x0000000000000000000000000000000000002000": { + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b50600436106103e65760003560e01c806374f079b81161020a578063c27cdcfb11610125578063df8079e9116100b8578063f1fad10411610087578063f1fad10414610bac578063f7a251d714610bb4578063f9a2bbc714610c2c578063fc3e590814610c34578063fd6a687914610c3c576103e6565b8063df8079e914610b74578063e1c7392a14610b7c578063e3b0480514610b84578063e6400bbe14610ba4576103e6565b8063d31f968d116100f4578063d31f968d14610b2d578063d76a867514610b5c578063dc40433114610b64578063dc927faf14610b6c576103e6565b8063c27cdcfb14610af5578063c780e9de14610b15578063c81b166214610b1d578063ccc108d714610b25576103e6565b80639dc092621161019d578063aad560631161016c578063aad5606314610a27578063ab51bb9614610a2f578063ac43175114610a37578063b0355f5b146107d6576103e6565b80639dc0926214610a07578063a1a11bf514610a0f578063a78abc1614610a17578063aa82dce114610a1f576103e6565b806384013b6a116101d957806384013b6a1461091c578063863fe4ab146109f75780638cc8f561146108e457806396713da9146109ff576103e6565b806374f079b8146108fc57806375d47a0a146109045780637942fd051461090c5780637e434d5414610914576103e6565b806343756e5c116103055780636a3cb34d116102985780636e47a51a116102675780636e47a51a146108bc5780636e47b482146108dc57806370fd5bad146108e4578063718a8aa8146108ec578063719482d5146108f4576103e6565b80636a3cb34d146108645780636bacff2c1461086c5780636c46aa68146108645780636de380bd146108b4576103e6565b806351e80672116102d457806351e806721461081e5780635692ddd3146108265780635f8321771461082e57806363e1394e1461085c576103e6565b806343756e5c146107fe578063493279b1146108065780634bf6c8821461080e57806351b4dce314610816576103e6565b8063299b533d1161037d5780633a648b151161034c5780633a648b15146106725780633bdc47a6146106ae5780633dffc387146107d6578063422f9050146107de576103e6565b8063299b533d146105f85780632af6f3991461062c5780632ff32aea14610649578063308325f41461066a576103e6565b80631d130935116103b95780631d130935146104685780631e275ae11461048457806322556cdc146105e857806328087028146105f0576103e6565b806305e68258146103eb5780630bee7a67146104095780630e2374a51461042a57806314b3023b1461044e575b600080fd5b6103f3610c44565b6040805160ff9092168252519081900360200190f35b610411610c49565b6040805163ffffffff9092168252519081900360200190f35b610432610c4e565b604080516001600160a01b039092168252519081900360200190f35b610456610c54565b60408051918252519081900360200190f35b610470610c5a565b604080519115158252519081900360200190f35b6105e6600480360361010081101561049b57600080fd5b81018160a081016080820135600160201b8111156104b857600080fd5b8201836020820111156104ca57600080fd5b803590602001918460018302840111600160201b831117156104eb57600080fd5b919390929091602081019035600160201b81111561050857600080fd5b82018360208201111561051a57600080fd5b803590602001918460018302840111600160201b8311171561053b57600080fd5b919390929091602081019035600160201b81111561055857600080fd5b82018360208201111561056a57600080fd5b803590602001918460018302840111600160201b8311171561058b57600080fd5b919390929091602081019035600160201b8111156105a857600080fd5b8201836020820111156105ba57600080fd5b803590602001918460018302840111600160201b831117156105db57600080fd5b509092509050610c63565b005b610456611347565b61043261134c565b6106156004803603602081101561060e57600080fd5b5035611352565b6040805161ffff9092168252519081900360200190f35b6104706004803603602081101561064257600080fd5b5035611368565b61065161137d565b60408051600792830b90920b8252519081900360200190f35b610456611386565b6106926004803603602081101561068857600080fd5b503560ff1661138c565b604080516001600160401b039092168252519081900360200190f35b610761600480360360608110156106c457600080fd5b60ff82351691602081013591810190606081016040820135600160201b8111156106ed57600080fd5b8201836020820111156106ff57600080fd5b803590602001918460018302840111600160201b8311171561072057600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506113a7945050505050565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561079b578181015183820152602001610783565b50505050905090810190601f1680156107c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103f361141d565b610470600480360360208110156107f457600080fd5b503560ff16611422565b610432611437565b61061561143d565b6103f3611442565b610432611447565b61043261144d565b610456611453565b6105e66004803603604081101561084457600080fd5b506001600160a01b0381358116916020013516611483565b6104566116e3565b61061561170b565b6108896004803603602081101561088257600080fd5b5035611710565b6040805161ffff90941684526001600160801b03909216602084015282820152519081900360600190f35b61045661173f565b610432600480360360208110156108d257600080fd5b503560ff16611766565b610432611781565b6103f361170b565b6103f3611787565b61061561141d565b61045661178c565b610432611792565b6103f3611798565b61043261179d565b6105e6600480360360a081101561093257600080fd5b810190602081018135600160201b81111561094c57600080fd5b82018360208201111561095e57600080fd5b803590602001918460018302840111600160201b8311171561097f57600080fd5b919390929091602081019035600160201b81111561099c57600080fd5b8201836020820111156109ae57600080fd5b803590602001918460018302840111600160201b831117156109cf57600080fd5b919350915080356001600160401b03908116916020810135909116906040013560ff166117a3565b610456612a5d565b6103f3612a65565b610432612a6a565b610432612a70565b610470612a76565b610432612a7f565b610432612a85565b610411610c44565b6105e660048036036040811015610a4d57600080fd5b810190602081018135600160201b811115610a6757600080fd5b820183602082011115610a7957600080fd5b803590602001918460018302840111600160201b83111715610a9a57600080fd5b919390929091602081019035600160201b811115610ab757600080fd5b820183602082011115610ac957600080fd5b803590602001918460018302840111600160201b83111715610aea57600080fd5b509092509050612a8b565b61069260048036036020811015610b0b57600080fd5b503560ff1661354f565b61045661356a565b61043261358e565b6105e6613594565b61047060048036036040811015610b4357600080fd5b5080356001600160a01b0316906020013560ff166137e8565b610761613808565b610456613827565b61043261382d565b610432613833565b6105e6613839565b61069260048036036020811015610b9a57600080fd5b503560ff16613bf0565b6105e6613c0b565b6103f3613e2a565b6105e660048036036060811015610bca57600080fd5b60ff8235169190810190604081016020820135600160201b811115610bee57600080fd5b820183602082011115610c0057600080fd5b803590602001918460018302840111600160201b83111715610c2157600080fd5b919350915035613e2f565b610432613f72565b6103f3613f78565b610432613f7d565b600081565b606481565b61200181565b60015481565b600b5460ff1681565b60005460ff16610ca8576040805162461bcd60e51b81526020600482015260196024820152600080516020614a60833981519152604482015290519081900360640190fd5b604080516337d7f9c160e21b81526001600160401b038b35166004820181905291516110039163df5fe704916024808301926020929190829003018186803b158015610cf357600080fd5b505afa158015610d07573d6000803e3d6000fd5b505050506040513d6020811015610d1d57600080fd5b5051610d5a5760405162461bcd60e51b8152600401808060200182810382526023815260200180614a806023913960400191505060405180910390fd5b604080516337d7f9c160e21b815260208c8101356001600160401b03166004830181905292516110039263df5fe704926024808301939192829003018186803b158015610da657600080fd5b505afa158015610dba573d6000803e3d6000fd5b505050506040513d6020811015610dd057600080fd5b5051610e0d5760405162461bcd60e51b8152600401808060200182810382526023815260200180614a806023913960400191505060405180910390fd5b60608b013560ff81166000908152600560205260409020546001600160401b03909116906001600160a01b0316610e86576040805162461bcd60e51b815260206004820152601860248201527718da185b9b995b081a5cc81b9bdd081cdd5c1c1bdc9d195960421b604482015290519081900360640190fd5b600b5460ff1615610eca576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b8888604051808383808284376040519201829003822094508f93508e9250819050838380828437808301925050509250505060405180910390201415610f46576040805162461bcd60e51b815260206004820152600c60248201526b1cd85b59481c185e5b1bd85960a21b604482015290519081900360640190fd5b60606001600160401b0360408e01358116908e83013516610f678282613f83565b80516020808301919091206000818152600e9092526040909120549194509060ff1615610fd0576040805162461bcd60e51b8152602060048201526012602482015271185b1c9958591e4818da185b1b195b99d95960721b604482015290519081900360640190fd5b6000908152600e60205260408120805460ff191660011790558f8160200201356001600160401b0316905060608f8f8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060608c8c8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506040805163cba510a960e01b81526001600160401b038a16600482015290519596509094611003945063cba510a9935060248083019350602092829003018186803b1580156110c657600080fd5b505afa1580156110da573d6000803e3d6000fd5b505050506040513d60208110156110f057600080fd5b505160408051808201909152600381526269626360e81b602082015290915061111d908290898686613fcb565b611166576040805162461bcd60e51b81526020600482015260156024820152740696e76616c6964206d65726b6c652070726f6f663605c1b604482015290519081900360640190fd5b5050505060008f60016004811061117957fe5b60200201356001600160401b0316905060608d8d8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8f018190048102820181019092528d815293945060609392508d91508c908190840183828082843760009201829052506040805163cba510a960e01b81526001600160401b038a16600482015290519596509094611003945063cba510a9935060248083019350602092829003018186803b15801561124557600080fd5b505afa158015611259573d6000803e3d6000fd5b505050506040513d602081101561126f57600080fd5b505160408051808201909152600381526269626360e81b602082015290915061129c908290898686613fcb565b6112e5576040805162461bcd60e51b8152602060048201526015602482015274696e76616c6964206d65726b6c652070726f6f663160581b604482015290519081900360640190fd5b505050506112f16140c8565b604080516001600160401b038416815260ff83166020820152815133927f039eb91179ffd7d3b6e97f8ea106e748e827f910b872375dbc9c14a362319c3c928290030190a2505050505050505050505050505050565b603281565b61200581565b600d6020526000908152604090205461ffff1681565b600e6020526000908152604090205460ff1681565b60045460070b81565b60025481565b600a602052600090815260409020546001600160401b031681565b60606000825160210190506060816040519080825280601f01601f1916602001820160405280156113df576020820181803683370190505b506021810186905260018101879052828152905060418101600061140286614146565b50905061141181838851614150565b50909695505050505050565b600181565b60096020526000908152604090205460ff1681565b61100181565b606181565b600881565b61200681565b61200081565b604080517710d05390d15317d514905394d1915497d41493d413d4d05360421b8152905190819003601801902081565b60005460ff166114c8576040805162461bcd60e51b81526020600482015260196024820152600080516020614a60833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b15801561150b57600080fd5b505afa15801561151f573d6000803e3d6000fd5b505050506040513d602081101561153557600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b15801561157657600080fd5b505afa15801561158a573d6000803e3d6000fd5b505050506040513d60208110156115a057600080fd5b50519050806115ad575060155b6000821180156115bd5750808211155b6115fc576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b604080516001600160a01b038087166020808401919091529086168284015282518083038401815260608301808552815191909201207710d05390d15317d514905394d1915497d41493d413d4d05360421b90915291519081900360780190206000906116699083614191565b905080156116db5760408051630911a2c160e11b81526001600160a01b03888116600483015287166024820152905161100491631223458291604480830192600092919082900301818387803b1580156116c257600080fd5b505af11580156116d6573d6000803e3d6000fd5b505050505b505050505050565b604080516f14d554d411539117d41493d413d4d05360821b8152905190819003601001902081565b600281565b600c602052600090815260409020805460019091015461ffff8216916201000090046001600160801b03169083565b604080516e149153d4115397d41493d413d4d053608a1b8152905190819003600f01902081565b6005602052600090815260409020546001600160a01b031681565b61100581565b601081565b60035481565b61100881565b600b81565b61200381565b60005460ff166117e8576040805162461bcd60e51b81526020600482015260196024820152600080516020614a60833981519152604482015290519081900360640190fd5b60408051630a83aaa960e31b815233600482015290516110069163541d5548916024808301926020929190829003018186803b15801561182757600080fd5b505afa15801561183b573d6000803e3d6000fd5b505050506040513d602081101561185157600080fd5b50516118a4576040805162461bcd60e51b815260206004820152601f60248201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604482015290519081900360640190fd5b60ff8116600090815260086020526040902054829082906001600160401b039081169083168114611914576040805162461bcd60e51b815260206004820152601560248201527439b2b8bab2b731b2903737ba1034b71037b93232b960591b604482015290519081900360640190fd5b60ff8216600090815260086020908152604091829020805467ffffffffffffffff1916600185016001600160401b039081169190911790915582516337d7f9c160e21b81529089166004820152915188926110039263df5fe70492602480840193829003018186803b15801561198957600080fd5b505afa15801561199d573d6000803e3d6000fd5b505050506040513d60208110156119b357600080fd5b50516119f05760405162461bcd60e51b8152600401808060200182810382526023815260200180614a806023913960400191505060405180910390fd5b60ff851660009081526005602052604090205485906001600160a01b0316611a5a576040805162461bcd60e51b815260206004820152601860248201527718da185b9b995b081a5cc81b9bdd081cdd5c1c1bdc9d195960421b604482015290519081900360640190fd5b60ff86166000908152600a6020526040902054889087906001600160401b039081169083161015611ac3576040805162461bcd60e51b815260206004820152600e60248201526d3a37b79037b632103432b0b232b960911b604482015290519081900360640190fd5b60ff81166000908152600a60205260409020546001600160401b03838116911614611b155760ff81166000908152600a60205260409020805467ffffffffffffffff19166001600160401b0384161790555b600b5460ff1615611b59576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b60608e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060608d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509050611c9d6110036001600160a01b031663cba510a98e6040518263ffffffff1660e01b815260040180826001600160401b03166001600160401b0316815260200191505060206040518083038186803b158015611c4657600080fd5b505afa158015611c5a573d6000803e3d6000fd5b505050506040513d6020811015611c7057600080fd5b505160408051808201909152600381526269626360e81b6020820152611c968e8e613f83565b8585613fcb565b611ce5576040805162461bcd60e51b815260206004820152601460248201527334b73b30b634b21036b2b935b63290383937b7b360611b604482015290519081900360640190fd5b60408051631bb5062960e31b81526001600160401b038e16600482015290516000916110039163dda8314891602480820192602092909190829003018186803b158015611d3157600080fd5b505afa158015611d45573d6000803e3d6000fd5b505050506040513d6020811015611d5b57600080fd5b505190508b8b600080806060611d7089614476565b935093509350935083611e32578460ff16866001600160401b03167ff7b2e42d694eb1100184aae86d4245d9e46966100b1dc7e723275b98326854ac8b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015611dea578181015183820152602001611dd2565b50505050905090810190601f168015611e175780820380516001836020036101000a031916815260200191505b509250505060405180910390a3505050505050505050612a4d565b6040805160ff85811682529151918716916001600160401b038916917f36afdaf439a8f43fe72135135d804ae620b37a474f0943b5b85f6788312cad40919081900360200190a360ff83166123b75760ff85166000818152600560209081526040808320548151631182b87560e01b815260048101958652602481019283528651604482015286516001600160a01b03909216958695631182b875958d958a9593949093606490910192918601918190849084905b83811015611eff578181015183820152602001611ee7565b50505050905090810190601f168015611f2c5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b158015611f4c57600080fd5b505af192505050801561203057506040513d6000823e601f3d908101601f191682016040526020811015611f7f57600080fd5b8101908080516040519392919084600160201b821115611f9e57600080fd5b908301906020820185811115611fb357600080fd5b8251600160201b811182820188101715611fcc57600080fd5b82525081516020918201929091019080838360005b83811015611ff9578181015183820152602001611fe1565b50505050905090810190601f1680156120265780820380516001836020036101000a031916815260200191505b5060405250505060015b612342576040516000815260443d101561204c575060006120e7565b60046000803e60005160e01c6308c379a0811461206d5760009150506120e7565b60043d036004833e81513d60248201116001600160401b0382111715612098576000925050506120e7565b80830180516001600160401b038111156120b95760009450505050506120e7565b8060208301013d86018111156120d7576000955050505050506120e7565b601f01601f191660405250925050505b806120f25750612204565b60ff8716600090815260076020526040812054612129916001600160401b0390911690899061212490600290886113a7565b614526565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf948794849390840192918601918190849084905b838110156121c45781810151838201526020016121ac565b50505050905090810190601f1680156121f15780820380516001836020036101000a031916815260200191505b509250505060405180910390a25061233d565b3d80801561222e576040519150601f19603f3d011682016040523d82523d6000602084013e612233565b606091505b5060ff8716600090815260076020526040812054612266916001600160401b0390911690899061212490600290886113a7565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351948794849390840192918601918190849084905b838110156123015781810151838201526020016122e9565b50505050905090810190601f16801561232e5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b6123b1565b8051156123af5760ff871660009081526007602052604081205461237b916001600160401b0390911690899061212490600190866113a7565b60ff8716600090815260076020526040902080546001600160401b038082166001011667ffffffffffffffff199091161790555b505b50612985565b60ff83166001141561265b5760ff8516600081815260056020908152604080832054815163831d65d160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563831d65d1958d958a9593949093606490910192918601918190849084905b83811015612441578181015183820152602001612429565b50505050905090810190601f16801561246e5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561248e57600080fd5b505af192505050801561249f575060015b6123b1576040516000815260443d10156124bb57506000612556565b60046000803e60005160e01c6308c379a081146124dc576000915050612556565b60043d036004833e81513d60248201116001600160401b038211171561250757600092505050612556565b80830180516001600160401b03811115612528576000945050505050612556565b8060208301013d860181111561254657600095505050505050612556565b601f01601f191660405250925050505b8061256157506125c6565b60408051602080825283518183015283516001600160a01b038616937ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf93869390928392830191850190808383600083156121c45781810151838201526020016121ac565b3d8080156125f0576040519150601f19603f3d011682016040523d82523d6000602084013e6125f5565b606091505b5060408051602080825283518183015283516001600160a01b038616937f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd297735193869390928392830191850190808383600083156123015781810151838201526020016122e9565b60ff8316600214156129855760ff8516600081815260056020908152604080832054815163c8509d8160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563c8509d81958d958a9593949093606490910192918601918190849084905b838110156126e55781810151838201526020016126cd565b50505050905090810190601f1680156127125780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561273257600080fd5b505af1925050508015612743575060015b612983576040516000815260443d101561275f575060006127fa565b60046000803e60005160e01c6308c379a081146127805760009150506127fa565b60043d036004833e81513d60248201116001600160401b03821117156127ab576000925050506127fa565b80830180516001600160401b038111156127cc5760009450505050506127fa565b8060208301013d86018111156127ea576000955050505050506127fa565b601f01601f191660405250925050505b8061280557506128ae565b816001600160a01b03167ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf826040518080602001828103825283818151815260200191508051906020019080838360005b8381101561286e578181015183820152602001612856565b50505050905090810190601f16801561289b5780820380516001836020036101000a031916815260200191505b509250505060405180910390a250612983565b3d8080156128d8576040519150601f19603f3d011682016040523d82523d6000602084013e6128dd565b606091505b50816001600160a01b03167f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351826040518080602001828103825283818151815260200191508051906020019080838360005b8381101561294757818101518382015260200161292f565b50505050905090810190601f1680156129745780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b505b60ff80861660009081526009602052604090205461100591636f93d2e6918a913391879116806129b7575060ff881615155b604080516001600160e01b031960e088901b1681526001600160a01b039586166004820152939094166024840152604483019190915215156064820152905160848083019260209291908290030181600087803b158015612a1757600080fd5b505af1158015612a2b573d6000803e3d6000fd5b505050506040513d6020811015612a4157600080fd5b50505050505050505050505b5050505050505050505050505050565b630100610081565b600981565b61100781565b61100681565b60005460ff1681565b61200281565b61300081565b3361100714612acb5760405162461bcd60e51b815260040180806020018281038252602e8152602001806149b6602e913960400191505060405180910390fd5b600b5460ff1615612b0f576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b612b7884848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526012815271626174636853697a65466f724f7261636c6560701b602082015291506146c09050565b15612c1357604080516020601f8401819004810282018101909252828152600091612bbb918585808385018382808284376000920191909152506147a792505050565b90506127108111158015612bd05750600a8110155b612c0b5760405162461bcd60e51b8152600401808060200182810382526032815260200180614a2e6032913960400191505060405180910390fd5b6001556134bd565b612c7c84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601281527118591913dc955c19185d1950da185b9b995b60721b602082015291506146c09050565b15612e0457606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060169091149050612cff5760405162461bcd60e51b815260040180806020018281038252605a8152602001806148cf605a913960600191505060405180910390fd5b60018101516002820151601683015160ff82161590612d1d816147ac565b612d6e576040805162461bcd60e51b815260206004820152601960248201527f61646472657373206973206e6f74206120636f6e747261637400000000000000604482015290519081900360640190fd5b60ff8416600081815260056020908152604080832080546001600160a01b0319166001600160a01b038716908117909155808452600683528184208585528352818420805460ff199081166001179091556009909352818420805490931687151517909255519092917f7e3b6af43092577ee20e60eaa1d9b114a7031305c895ee7dd3ffe17196d2e1e091a350505050506134bd565b612e7184848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526016815275195b98589b1953dc911a5cd8589b1950da185b9b995b60521b602082015291506146c09050565b15612fa257606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060029091149050612ef45760405162461bcd60e51b815260040180806020018281038252604a8152602001806149e4604a913960600191505060405180910390fd5b600181810151600283015160ff80831660009081526005602052604090205492939192908316909114906001600160a01b03168015612f98576001600160a01b038116600090815260066020908152604080832060ff881680855290835292819020805460ff1916861515908117909155815190815290517fa3132e3f9819fbddc7f0ed6d38d7feef59aa95112090b7c592f5cb5bc4aa4adc929181900390910190a25b50505050506134bd565b61300684848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c73757370656e6451756f72756d60981b602082015291506146c09050565b1561313b576002811461304a5760405162461bcd60e51b815260040180806020018281038252602d81526020018061495d602d913960400191505060405180910390fd5b600061308d600284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506147a792505050565b905060008161ffff161180156130a7575060648161ffff16105b6130f1576040805162461bcd60e51b8152602060048201526016602482015275696e76616c69642073757370656e642071756f72756d60501b604482015290519081900360640190fd5b604080516f14d554d411539117d41493d413d4d05360821b815281519081900360100190206000908152600d60205220805461ffff90921661ffff199092169190911790556134bd565b61319e84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600c81526b72656f70656e51756f72756d60a01b602082015291506146c09050565b156132d157600281146131e25760405162461bcd60e51b815260040180806020018281038252602c81526020018061498a602c913960400191505060405180910390fd5b6000613225600284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506147a792505050565b905060008161ffff1611801561323f575060648161ffff16105b613288576040805162461bcd60e51b8152602060048201526015602482015274696e76616c69642072656f70656e2071756f72756d60581b604482015290519081900360640190fd5b604080516e149153d4115397d41493d413d4d053608a1b8152815190819003600f0190206000908152600d60205220805461ffff90921661ffff199092169190911790556134bd565b61333c84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601481527363616e63656c5472616e7366657251756f72756d60601b602082015291506146c09050565b1561348057600281146133805760405162461bcd60e51b81526004018080602001828103825260348152602001806149296034913960400191505060405180910390fd5b60006133c3600284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506147a792505050565b905060008161ffff161180156133dd575060648161ffff16105b61342e576040805162461bcd60e51b815260206004820152601e60248201527f696e76616c69642063616e63656c207472616e736665722071756f72756d0000604482015290519081900360640190fd5b604080517710d05390d15317d514905394d1915497d41493d413d4d05360421b815281519081900360180190206000908152600d60205220805461ffff90921661ffff199092169190911790556134bd565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b6008602052600090815260409020546001600160401b031681565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081565b61100281565b60005460ff166135d9576040805162461bcd60e51b81526020600482015260196024820152600080516020614a60833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b15801561361c57600080fd5b505afa158015613630573d6000803e3d6000fd5b505050506040513d602081101561364657600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b15801561368757600080fd5b505afa15801561369b573d6000803e3d6000fd5b505050506040513d60208110156136b157600080fd5b50519050806136be575060155b6000821180156136ce5750808211155b61370d576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b600b5460ff16613754576040805162461bcd60e51b815260206004820152600d60248201526c1b9bdd081cdd5cdc195b991959609a1b604482015290519081900360640190fd5b604080516e149153d4115397d41493d413d4d053608a1b8152905190819003600f0190206000906137a5907fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470614191565b905080156137e357600b805460ff1916905560405133907f899fe8c37dc61708a3aaa99c4bf143346c1d1da69af79be9e8920c0a6785b75290600090a25b505050565b600660209081526000928352604080842090915290825290205460ff1681565b6040518060400160405280600381526020016269626360e81b81525081565b610e1081565b61100381565b61200481565b60005460ff1615613891576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b7f1471eb6eb2c5e789fc3de43f8ce62938c7d1836ec861730447e2ada8fd81017b80546001600160a01b0319908116611008179091557f92e85d02570a8092d09a6e3a57665bc3815a2699a4074001bf1ccabf660f5a36805460ff199081169091557fd8af288fc1c8680b4f4706064cf021e264efb6828fcaf7eb5ca36818eb365bcc8054821660019081179091557f89832631fb3c3307a103ba2c84ab569c64d6182a18893dcd163f0f1c2090733a805484166110049081179091557f6cde3cea4b3a3fb2488b2808bae7556f4a405e50f65e1794383bc026131b13c38054841690557f72e4efa1513b071517c6c74dba31b5934a81aa83cddd400e7081df5529c9943680548416831790557fa9bc9a3a348c357ba16b37005d7e6b3236198c0e939f4af8c5f19b8deeb8ebc08054851690911790557fc575c31fea594a6eb97c8e9d3f9caee4c16218c6ef37e923234c0fe9014a61e78054831690557f4e523af77f034e9810f1c94057f5e931fb3d16a51511a4c3add793617d18610580548316821790557ffb33122aa9f93cc639ebe80a7bc4784c11e6053dde89c6f4f7e268c6a623da1e805484166110001790557fc7694af312c4f286114180fd0ba6a52461fcee8a381636770b19a343af92538a80548316821790557f01112dd68e482ba8d68a7e828cff8b3abcea08eab88941953c180a7e650e9cd480548316821790557fc0a4a8be475dfebc377ebef2d7c4ff47656f572a08dd92b81017efcdba0febe1805484166110071790557f87e8a52529e8ece4ef759037313542a6429ff494a9fab9027fb79db90124eba680548316821790557f4c7666bbcb22d46469f7cc282f70764a7012dca2cce630ff8d83db9a9cdd48f080548316821790557f40f28f99a40bc9f6beea1013afdbc3cdcc689eb76b82c4de06c0acf1e1932ed58054909316611001179092557f0d9cf2cd531699eed8dd34e40ff2884a14a698c4898184fba85194e6f6772d248054821683179055600b60009081527f23f68c9bd22b8a93d06adabe17481c87c016bcbd20adc8bfd707a4d813a572176020527fdf0d5d05428057f5455c2dc8e810dd86d1e9350faa72f16bda8a45443c5b39328054831684179055603283556004805467ffffffffffffffff19166001600160401b031790556002819055600381905580549091169091179055565b6007602052600090815260409020546001600160401b031681565b60005460ff16613c50576040805162461bcd60e51b81526020600482015260196024820152600080516020614a60833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b158015613c9357600080fd5b505afa158015613ca7573d6000803e3d6000fd5b505050506040513d6020811015613cbd57600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b158015613cfe57600080fd5b505afa158015613d12573d6000803e3d6000fd5b505050506040513d6020811015613d2857600080fd5b5051905080613d35575060155b600082118015613d455750808211155b613d84576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b600b5460ff1615613dc8576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b604080516f14d554d411539117d41493d413d4d05360821b81529051908190036010019020600090613e1a907fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470614191565b905080156137e3576137e36140c8565b601181565b60005460ff16613e74576040805162461bcd60e51b81526020600482015260196024820152600080516020614a60833981519152604482015290519081900360640190fd5b33600090815260066020908152604080832060ff8089168552925290912054859116613ed15760405162461bcd60e51b815260040180806020018281038252603181526020018061489e6031913960400191505060405180910390fd5b60ff85166000908152600760209081526040808320548151601f88018490048402810184019092528682526001600160401b031692613f369284928a9261212492909189918c908c90819084018382808284376000920191909152506113a792505050565b60ff959095166000908152600760205260409020805467ffffffffffffffff191660019096016001600160401b03169590951790945550505050565b61100081565b600381565b61100481565b60408051600e808252818301909252606091630100610060ff851617918391602082018180368337505050600e81810187905260068201939093529182525090505b92915050565b600085613fda575060006140bf565b606082518451865160800101016040519080825280601f01601f191660200182016040528015614011576020820181803683370190505b509050600061401f826147b2565b60208089015182520190508660008061403789614146565b8086526020909501949092509050614050828583614150565b9283019261405d88614146565b8086526020909501949092509050614076828583614150565b9283018a81526020019261408987614146565b9092509050614099828583614150565b5083516020016140a76147b8565b60208183886065600019fa5051600114955050505050505b95945050505050565b600b5460ff161561410c576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b600b805460ff1916600117905560405133907f6f123d3d54c84a7960a573b31c221dcd86e13fd849c5adb0c6ca851468cc1ae490600090a2565b8051602090910191565b5b60208110614170578251825260209283019290910190601f1901614151565b915181516020939093036101000a6000190180199091169216919091179052565b6000828152600d602052604081205461ffff1661425a57604080516f14d554d411539117d41493d413d4d05360821b815281519081900360100181206000908152600d6020818152848320805461ffff199081166001179091556e149153d4115397d41493d413d4d053608a1b8552855194859003600f01852084528282528584208054821660029081179091557710d05390d15317d514905394d1915497d41493d413d4d05360421b8652865195869003601801909520845291905292902080549092161790555b6000838152600c6020526040902080546201000090046001600160801b03164210158061428b575082816001015414155b1561435e576000848152600d602090815260409182902054835461ffff90911661ffff199091161771ffffffffffffffffffffffffffffffff0000191662010000610e1042016001600160801b03160217835560018084018690558251918201909252338152614300916002840191906147d6565b5080546040805161ffff83168152620100009092046001600160801b0316602083015281810185905251339186917f9e109f0e55ef32e99e4880be2ec357f1ddb3469c79d0747ef4762da6e89fabe5916060908290030190a3614412565b60005b60028201548110156143e957336001600160a01b031682600201828154811061438657fe5b6000918252602090912001546001600160a01b031614156143e1576040805162461bcd60e51b815260206004820152601060248201526f185b1c9958591e48185c1c1c9bdd995960821b604482015290519081900360640190fd5b600101614361565b50600281018054600181018255600091825260209091200180546001600160a01b031916331790555b8054600282015461ffff9091161161446c576000848152600c60205260408120805471ffffffffffffffffffffffffffffffffffff191681556001810182905590614460600283018261483b565b50506001915050613fc5565b5060009392505050565b600080600060606021855110156144a657505060408051600080825260208201909252909250829150819061451f565b600185015160218601518651604080516020198301808252601f19600119909401939093168101602001909152604189019392916060919080156144f1576020820181803683370190505b50905060006144ff82614146565b509050614511858260218d5103614150565b506001975091955093509150505b9193509193565b600b5460ff161561456a576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b6002544311156145a9576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b1617909155600355436002556145ea565b600380546001908101918290555410156145ea576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b16179091556003555b8160ff16836001600160401b0316600460009054906101000a900460070b6001600160401b03167f3a6e0fc61675aa2a100bcba0568368bb92bcec91c97673391074f11138f0cffe606185604051808361ffff1661ffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015614680578181015183820152602001614668565b50505050905090810190601f1680156146ad5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a4505050565b6000816040516020018082805190602001908083835b602083106146f55780518252601f1990920191602091820191016146d6565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106147635780518252601f199092019160209182019101614744565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b3b151590565b60200190565b60405180602001604052806001906020820280368337509192915050565b82805482825590600052602060002090810192821561482b579160200282015b8281111561482b57825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906147f6565b5061483792915061485c565b5090565b50805460008255906000526020600020908101906148599190614883565b50565b61488091905b808211156148375780546001600160a01b0319168155600101614862565b90565b61488091905b80821115614837576000815560010161488956fe74686520636f6e747261637420616e64206368616e6e656c2068617665206e6f74206265656e20726567697374657265646c656e677468206f662076616c756520666f72206164644f725570646174654368616e6e656c2073686f756c642062652032322c206368616e6e656c49643a697346726f6d53797374656d3a68616e646c6572416464726573736c656e677468206f662076616c756520666f722063616e63656c5472616e7366657251756f72756d2073686f756c6420626520326c656e677468206f662076616c756520666f722073757370656e6451756f72756d2073686f756c6420626520326c656e677468206f662076616c756520666f722072656f70656e51756f72756d2073686f756c642062652032746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662076616c756520666f7220656e61626c654f7244697361626c654368616e6e656c2073686f756c6420626520322c206368616e6e656c49643a6973456e61626c65746865206e6577426174636853697a65466f724f7261636c652073686f756c6420626520696e205b31302c2031303030305d74686520636f6e7472616374206e6f7420696e697420796574000000000000006c6967687420636c69656e74206e6f742073796e632074686520626c6f636b20796574a164736f6c6343000604000a" + }, + "0x0000000000000000000000000000000000002001": { + "balance": "0x0", + "code": "0x6080604052600436106103d25760003560e01c8063718a8aa8116101fd578063b88a802f11610118578063dc927faf116100ab578063f45fd80b1161007a578063f45fd80b14610cdb578063f9a2bbc714610d20578063fa03f79714610d35578063fc3e5908146106d3578063fd6a687914610d4a576103d9565b8063dc927faf14610c87578063df8079e914610c9c578063edc1a5b014610cb1578063f1fad10414610cc6576103d9565b8063c81b1662116100e7578063c81b166214610bb2578063c8509d8114610bc7578063d61b9b9314610c4c578063d7ecfcb614610890576103d9565b8063b88a802f14610b38578063baaafd3b14610b4d578063bf8546ca14610b62578063c2117d8214610b9d576103d9565b80639dc0926211610190578063aad560631161015f578063aad5606314610a2e578063ab51bb9614610a43578063ac43175114610a58578063b14315df14610b23576103d9565b80639dc09262146109c6578063a1a11bf5146109db578063a78abc16146109f0578063aa82dce114610a19576103d9565b80637e434d54116101cc5780637e434d5414610917578063831d65d11461092c57806392b888a41461066a57806396713da9146109b1576103d9565b8063718a8aa8146108a557806375aca593146108ba57806375d47a0a146108ed5780637942fd0514610902576103d9565b8063413d9c3a116102ed5780635d17c8bd116102805780636bd8f8041161024f5780636bd8f804146108125780636e47b482146108485780636fb7f7eb1461085d57806370fd5bad14610890576103d9565b80635d17c8bd146107be5780635d499b1b146107d357806362b171d2146107e857806369b635b6146107fd576103d9565b80634d99dd16116102bc5780634d99dd161461075357806351b4dce31461077f57806351e8067214610794578063552aaf93146107a9576103d9565b8063413d9c3a146106e857806343756e5c146106fd578063493279b1146107125780634bf6c8821461073e576103d9565b8063151817e311610365578063333ad3e711610334578063333ad3e7146106a957806334c43354146106be5780633dffc3871461066a5780633fdfa7e4146106d3576103d9565b8063151817e31461063f57806317c9efb01461066a578063280870281461067f5780632fdeb11114610694576103d9565b80630c795715116103a15780630c795715146104cc5780630e2374a5146104e15780631182b8751461051257806311fe9ec61461060c576103d9565b8063026e402b146103de578063029859921461040c578063047636d1146104335780630bee7a671461049e576103d9565b366103d957005b600080fd5b61040a600480360360408110156103f457600080fd5b506001600160a01b038135169060200135610d5f565b005b34801561041857600080fd5b50610421610d9c565b60408051918252519081900360200190f35b34801561043f57600080fd5b506104666004803603602081101561045657600080fd5b50356001600160a01b0316610da2565b6040518082606080838360005b8381101561048b578181015183820152602001610473565b5050505090500191505060405180910390f35b3480156104aa57600080fd5b506104b3610df6565b6040805163ffffffff9092168252519081900360200190f35b3480156104d857600080fd5b50610421610dfb565b3480156104ed57600080fd5b506104f6610e01565b604080516001600160a01b039092168252519081900360200190f35b34801561051e57600080fd5b506105976004803603604081101561053557600080fd5b60ff8235169190810190604081016020820135600160201b81111561055957600080fd5b82018360208201111561056b57600080fd5b803590602001918460018302840111600160201b8311171561058c57600080fd5b509092509050610e07565b6040805160208082528351818301528351919283929083019185019080838360005b838110156105d15781810151838201526020016105b9565b50505050905090810190601f1680156105fe5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561061857600080fd5b506104216004803603602081101561062f57600080fd5b50356001600160a01b0316610fc3565b34801561064b57600080fd5b50610654610fde565b6040805160ff9092168252519081900360200190f35b34801561067657600080fd5b50610654610fe3565b34801561068b57600080fd5b506104f6610fe8565b3480156106a057600080fd5b50610421610fee565b3480156106b557600080fd5b506104b3610ff4565b3480156106ca57600080fd5b50610421610ff9565b3480156106df57600080fd5b50610654611004565b3480156106f457600080fd5b50610421611009565b34801561070957600080fd5b506104f6611010565b34801561071e57600080fd5b50610727611016565b6040805161ffff9092168252519081900360200190f35b34801561074a57600080fd5b5061065461101b565b61040a6004803603604081101561076957600080fd5b506001600160a01b038135169060200135611020565b34801561078b57600080fd5b506104f661164d565b3480156107a057600080fd5b506104f6611653565b3480156107b557600080fd5b50610654611659565b3480156107ca57600080fd5b5061042161165e565b3480156107df57600080fd5b50610421611664565b3480156107f457600080fd5b5061042161166d565b34801561080957600080fd5b5061042161180d565b61040a6004803603606081101561082857600080fd5b506001600160a01b03813581169160208101359091169060400135610d5f565b34801561085457600080fd5b506104f6611813565b34801561086957600080fd5b506104216004803603602081101561088057600080fd5b50356001600160a01b0316611819565b34801561089c57600080fd5b50610654611834565b3480156108b157600080fd5b50610654611839565b3480156108c657600080fd5b50610421600480360360208110156108dd57600080fd5b50356001600160a01b031661183e565b3480156108f957600080fd5b506104f6611859565b34801561090e57600080fd5b5061065461185f565b34801561092357600080fd5b506104f6611864565b34801561093857600080fd5b5061040a6004803603604081101561094f57600080fd5b60ff8235169190810190604081016020820135600160201b81111561097357600080fd5b82018360208201111561098557600080fd5b803590602001918460018302840111600160201b831117156109a657600080fd5b50909250905061186a565b3480156109bd57600080fd5b50610654611b32565b3480156109d257600080fd5b506104f6611b37565b3480156109e757600080fd5b506104f6611b3d565b3480156109fc57600080fd5b50610a05611b43565b604080519115158252519081900360200190f35b348015610a2557600080fd5b506104f6611b4c565b348015610a3a57600080fd5b506104f6611b52565b348015610a4f57600080fd5b506104b3611659565b348015610a6457600080fd5b5061040a60048036036040811015610a7b57600080fd5b810190602081018135600160201b811115610a9557600080fd5b820183602082011115610aa757600080fd5b803590602001918460018302840111600160201b83111715610ac857600080fd5b919390929091602081019035600160201b811115610ae557600080fd5b820183602082011115610af757600080fd5b803590602001918460018302840111600160201b83111715610b1857600080fd5b509092509050611b58565b348015610b2f57600080fd5b506106546122ea565b348015610b4457600080fd5b506104216122ef565b348015610b5957600080fd5b5061042161248c565b348015610b6e57600080fd5b5061042160048036036040811015610b8557600080fd5b506001600160a01b0381358116916020013516612497565b348015610ba957600080fd5b506104216124c4565b348015610bbe57600080fd5b506104f66124ca565b348015610bd357600080fd5b5061040a60048036036040811015610bea57600080fd5b60ff8235169190810190604081016020820135600160201b811115610c0e57600080fd5b820183602082011115610c2057600080fd5b803590602001918460018302840111600160201b83111715610c4157600080fd5b5090925090506124d0565b348015610c5857600080fd5b5061042160048036036040811015610c6f57600080fd5b506001600160a01b03813581169160200135166126f3565b348015610c9357600080fd5b506104f661271e565b348015610ca857600080fd5b506104f6612724565b348015610cbd57600080fd5b5061042161272a565b348015610cd257600080fd5b50610654612737565b348015610ce757600080fd5b5061042160048036036060811015610cfe57600080fd5b506001600160a01b03813581169160208101358216916040909101351661273c565b348015610d2c57600080fd5b506104f6612771565b348015610d4157600080fd5b50610421612777565b348015610d5657600080fd5b506104f661277d565b6040805162461bcd60e51b815260206004820152600d60248201526c1b9bdd081cdd5c1c1bdc9d1959609a1b604482015290519081900360640190fd5b60035481565b610daa614800565b610db2614800565b6001600160a01b0383166000818152600b60209081526040808320548552838352600c82528083205485830152928252600d9052819020549082015290505b919050565b606481565b6108fc81565b61200181565b60603361200014610e495760405162461bcd60e51b815260040180806020018281038252602f8152602001806149e3602f913960400191505060405180910390fd5b60005460ff16610e8c576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b610e9461481e565b610edb610ed685858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278392505050565b6127a8565b90506000610ef0610eeb836127f2565b612840565b90506000606060ff831660041415610f1557610f0b846128f7565b9092509050610f6c565b60ff831660051415610f2a57610f0b84612ad7565b6040805162461bcd60e51b8152602060048201526012602482015271756e6b6e6f776e206576656e74207479706560701b604482015290519081900360640190fd5b63ffffffff821615610fb8576040805163ffffffff84168152905160ff8516917f391d6e5ea6ab6c49b9a0abb1782cae5def8d711f973b00c729658c0b2a80b31b919081900360200190a25b979650505050505050565b6001600160a01b031660009081526006602052604090205490565b600581565b600181565b61200581565b60015481565b606581565b662386f26fc1000081565b600381565b620a8c0081565b61100181565b606181565b600881565b60105460ff166002141561106c576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b6010805460ff19166002179055806402540be400340615801561109457506402540be4008106155b6110e5576040805162461bcd60e51b815260206004820152601c60248201527f707265636973696f6e206c6f737320696e20636f6e76657273696f6e00000000604482015290519081900360640190fd5b60005460ff16611128576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b600154341015611176576040805162461bcd60e51b81526020600482015260146024820152736e6f7420656e6f7567682072656c61792066656560601b604482015290519081900360640190fd5b600354821015611231573360009081526005602090815260408083206001600160a01b038716845290915290205482146111e8576040805162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a5908185b5bdd5b9d60921b604482015290519081900360640190fd5b6002548211611231576040805162461bcd60e51b815260206004820152601060248201526f6e6f7420656e6f7567682066756e647360801b604482015290519081900360640190fd5b3360009081526007602090815260408083206001600160a01b03871684529091529020544210156112a9576040805162461bcd60e51b815260206004820152601a60248201527f70656e64696e6720756e64656c65676174696f6e206578697374000000000000604482015290519081900360640190fd5b604080518082018252601081526f6e6f7420656e6f7567682066756e647360801b602080830191909152336000908152600582528381206001600160a01b03881682529091529182205461130491859063ffffffff612df716565b9050801561134c57600254811161134c5760405162461bcd60e51b81526004018080602001828103825260258152602001806149be6025913960400191505060405180910390fd5b6000611363846402540be40063ffffffff612e8e16565b600254909150349060009061137f90839063ffffffff612ed716565b6040805160038082526080820190925291925060609190816020015b606081526020019060019003908161139b5790505090506113bb33612f19565b816000815181106113c857fe5b60200260200101819052506113e5886001600160a01b0316612f19565b816001815181106113f257fe5b602002602001018190525061140684612f3c565b8160028151811061141357fe5b60200260200101819052506060611433600261142e84612f4f565b612fd9565b8051602080830191909120600f80546000908152600a845260408082209390935581546001908101909255338152600c909352912080549091019055905061148442620a8c0063ffffffff61305f16565b3360009081526007602090815260408083206001600160a01b038e16845290915290205561200063f7a251d76010836114c8876402540be40063ffffffff612e8e16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561152657818101518382015260200161150e565b50505050905090810190601f1680156115535780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561157457600080fd5b505af1158015611588573d6000803e3d6000fd5b5050604051611004925085156108fc02915085906000818181858888f193505050501580156115bb573d6000803e3d6000fd5b506002546040516110029180156108fc02916000818181858888f193505050501580156115ec573d6000803e3d6000fd5b50604080518981526020810185905281516001600160a01b038c169233927fdf0b6ac27f3f3bb31cee3dab0f4fe40cc19c6a3f8daaec52e06b261e58a12519929081900390910190a350506010805460ff1916600117905550505050505050565b61200681565b61200081565b600081565b60025481565b6402540be40081565b60105460009060ff16600214156116bc576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b506010805460ff191660021790553360009081526008602052604090205480611723576040805162461bcd60e51b81526020600482015260146024820152736e6f20756e64656c6567617465642066756e647360601b604482015290519081900360640190fd5b336000818152600860205260408082208290556011549051919291849084818181858888f193505050503d8060008114611779576040519150601f19603f3d011682016040523d82523d6000602084013e61177e565b606091505b50509050806117c6576040805162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b604482015290519081900360640190fd5b60408051838152905133917fc712d133b8d448221aaed2198ed1f0db6dfc860fb01bc3a630916fe6cbef946f919081900360200190a2506010805460ff1916600117905590565b60035490565b61100581565b6001600160a01b031660009081526004602052604090205490565b600281565b601081565b6001600160a01b031660009081526008602052604090205490565b61100881565b600b81565b61200381565b33612000146118aa5760405162461bcd60e51b815260040180806020018281038252602f8152602001806149e3602f913960400191505060405180910390fd5b60005460ff166118ed576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b6118f561481e565b611937610ed684848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278392505050565b905060008060606000805b61194b866130b9565b156119b6578061196857611961610eeb876127f2565b94506119ae565b80600114156119845761197d610eeb876127f2565b93506119ae565b80600214156119a95761199e611999876127f2565b6130da565b9250600191506119ae565b6119b6565b600101611942565b816119fc576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b611a058361314a565b611a48576040805162461bcd60e51b815260206004820152600f60248201526e0eee4dedcce40e0c2c6d640d0c2e6d608b1b604482015290519081900360640190fd5b611a54610ed684612783565b95506000611a64610eeb886127f2565b9050611a6e61481e565b611a77886130b9565b15611a9a57611a93610ed6611a8e6119998b6127f2565b612783565b9050611adb565b6040805162461bcd60e51b8152602060048201526011602482015270656d7074792061636b207061636b61676560781b604482015290519081900360640190fd5b60ff821660011415611af757611af281888861319e565b611b25565b60ff821660021415611b0e57611af2818888613555565b60ff821660031415610f2a57611af2818888613822565b5050505050505050505050565b600981565b61100781565b61100681565b60005460ff1681565b61200281565b61300081565b60005460ff16611baf576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604482015290519081900360640190fd5b3361100714611bef5760405162461bcd60e51b815260040180806020018281038252602e815260200180614934602e913960400191505060405180910390fd5b611c5084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600a81526972656c6179657246656560b01b60208201529150613b879050565b15611db65760208114611caa576040805162461bcd60e51b815260206004820152601d60248201527f6c656e677468206f662072656c61796572466565206d69736d61746368000000604482015290519081900360640190fd5b604080516020601f8401819004810282018101909252828152600091611ce891858580838501838280828437600092019190915250613c6e92505050565b90506003548110611d2a5760405162461bcd60e51b815260040180806020018281038252602e815260200180614962602e913960400191505060405180910390fd5b6002548111611d6a5760405162461bcd60e51b815260040180806020018281038252602e815260200180614990602e913960400191505060405180910390fd5b6402540be400810615611dae5760405162461bcd60e51b815260040180806020018281038252602c815260200180614908602c913960400191505060405180910390fd5b600155612258565b611e1a84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c62534352656c6179657246656560981b60208201529150613b879050565b15611f7c5760208114611e74576040805162461bcd60e51b815260206004820181905260248201527f6c656e677468206f662062534352656c61796572466565206d69736d61746368604482015290519081900360640190fd5b604080516020601f8401819004810282018101909252828152600091611eb291858580838501838280828437600092019190915250613c6e92505050565b905080611ef05760405162461bcd60e51b8152600401808060200182810382526022815260200180614a126022913960400191505060405180910390fd5b6001548110611f305760405162461bcd60e51b815260040180806020018281038252602e815260200180614888602e913960400191505060405180910390fd5b6402540be400810615611f745760405162461bcd60e51b815260040180806020018281038252602f815260200180614859602f913960400191505060405180910390fd5b600255612258565b611fe084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c36b4b72232b632b3b0ba34b7b760991b60208201529150613b879050565b156120c2576020811461203a576040805162461bcd60e51b815260206004820181905260248201527f6c656e677468206f66206d696e44656c65676174696f6e206d69736d61746368604482015290519081900360640190fd5b604080516020601f840181900481028201810190925282815260009161207891858580838501838280828437600092019190915250613c6e92505050565b905060015481116120ba5760405162461bcd60e51b81526004018080602001828103825260318152602001806148b66031913960400191505060405180910390fd5b600355612258565b61212484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600b81526a7472616e7366657247617360a81b60208201529150613b879050565b1561221b576020811461217e576040805162461bcd60e51b815260206004820152601e60248201527f6c656e677468206f66207472616e73666572476173206d69736d617463680000604482015290519081900360640190fd5b604080516020601f84018190048102820181019092528281526000916121bc91858580838501838280828437600092019190915250613c6e92505050565b905060008111612213576040805162461bcd60e51b815260206004820152601e60248201527f746865207472616e736665724761732063616e6e6f74206265207a65726f0000604482015290519081900360640190fd5b601155612258565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b600481565b60105460009060ff166002141561233e576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b506010805460ff1916600217905533600090815260066020526040902054806123a2576040805162461bcd60e51b81526020600482015260116024820152701b9bc81c195b991a5b99c81c995dd85c99607a1b604482015290519081900360640190fd5b336000818152600660205260408082208290556011549051919291849084818181858888f193505050503d80600081146123f8576040519150601f19603f3d011682016040523d82523d6000602084013e6123fd565b606091505b5050905080612445576040805162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b604482015290519081900360640190fd5b60408051838152905133917f83b78188b13346b2ffb484da70d42ee27de7fbf9f2bd8045269e10ed643ccd76919081900360200190a2506010805460ff1916600117905590565b6638d7ea4c68000081565b6001600160a01b038083166000908152600760209081526040808320938516835292905220545b92915050565b60015490565b61100281565b33612000146125105760405162461bcd60e51b815260040180806020018281038252602f8152602001806149e3602f913960400191505060405180910390fd5b60005460ff16612553576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b61259282828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061314a92505050565b6125d5576040805162461bcd60e51b815260206004820152600f60248201526e0eee4dedcce40e0c2c6d640d0c2e6d608b1b604482015290519081900360640190fd5b6125dd61481e565b61261f610ed684848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278392505050565b9050600061262f610eeb836127f2565b905061263961481e565b612642836130b9565b1561266057612659610ed6611a8e611999866127f2565b90506126a6565b6040805162461bcd60e51b8152602060048201526016602482015275656d707479206661696c2061636b207061636b61676560501b604482015290519081900360640190fd5b60ff8216600114156126c0576126bb81613c73565b6126ea565b60ff8216600214156126d5576126bb81613e8d565b60ff821660031415610f2a576126bb81613fb7565b5050505b505050565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b61100381565b61200481565b68056bc75e2d6310000081565b601181565b6001600160a01b0392831660009081526009602090815260408083209486168352938152838220929094168152925290205490565b61100081565b60115481565b61100481565b61278b61483e565b506040805180820190915281518152602082810190820152919050565b6127b061481e565b6127b98261411c565b6127c257600080fd5b60006127d18360200151614156565b60208085015160408051808201909152868152920190820152915050919050565b6127fa61483e565b612803826130b9565b61280c57600080fd5b6020820151600061281c826141b9565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061285557508151602110155b61285e57600080fd5b600061286d8360200151614156565b905080836000015110156128c8576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b8251602080850151830180519284900392918310156128ee57826020036101000a820491505b50949350505050565b600060606000806000805b61290b876130b9565b1561295d578261292d57612926612921886127f2565b6142ec565b9150612952565b826001141561294d57612942610eeb886127f2565b905060019350612952565b61295d565b826001019250612902565b836129a3576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b60006110046001600160a01b031663727be1f8836040518263ffffffff1660e01b815260040180828152602001915050602060405180830381600087803b1580156129ed57600080fd5b505af1158015612a01573d6000803e3d6000fd5b505050506040513d6020811015612a1757600080fd5b5051905080612a3c57612a2e600484846065614306565b965096505050505050612ad2565b6001600160a01b038316600090815260066020526040902054612a65908363ffffffff61305f16565b6001600160a01b038416600081815260066020908152604091829020939093558051858152905191927f7cc266c7b444f808013fa187f7b904d470a051a6564e78f482aa496581ba4bf892918290030190a260408051600080825260208201909252909750955050505050505b915091565b600060606000806000806000805b612aee896130b9565b15612b785784612b0b57612b046129218a6127f2565b9350612b6d565b8460011415612b2757612b206129218a6127f2565b9250612b6d565b8460021415612b4757612b3c610eeb8a6127f2565b915060019550612b6d565b8460031415612b6857612b61612b5c8a6127f2565b614402565b9050612b6d565b612b78565b846001019450612ae5565b85612bbe576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b60006110046001600160a01b031663727be1f8846040518263ffffffff1660e01b815260040180828152602001915050602060405180830381600087803b158015612c0857600080fd5b505af1158015612c1c573d6000803e3d6000fd5b505050506040513d6020811015612c3257600080fd5b5051905080612c5957612c49600586856065614306565b9850985050505050505050612ad2565b6001600160a01b038086166000818152600760209081526040808320948916835293815283822082905591815260089091522054612c9d908463ffffffff61305f16565b6001600160a01b0386166000908152600860205260409020558115612d8b576001600160a01b038516600090815260046020526040902054612ce5908463ffffffff612ed716565b6001600160a01b03808716600090815260046020908152604080832094909455600581528382209288168252919091522054612d27908463ffffffff612ed716565b6001600160a01b038087166000818152600560209081526040808320948a16808452948252918290209490945580518781529051929391927fd6f878a5bcbbe79a64e6418bb0d56aaa20b9a60587d45749819df88dfc7c3c44929181900390910190a35b836001600160a01b0316856001600160a01b03167f35a799836f74fac7eccf5c73902823b970543d2274d3b93d8da3d37a255772a2856040518082815260200191505060405180910390a360408051600080825260208201909252909950975050505050505050915091565b60008184841115612e865760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612e4b578181015183820152602001612e33565b50505050905090810190601f168015612e785780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000612ed083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250614446565b9392505050565b6000612ed083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612df7565b60408051600560a21b8318601482015260348101909152606090612ed0816144ab565b60606124be612f4a83614501565b6144ab565b6060815160001415612f705750604080516000815260208101909152610df1565b606082600081518110612f7f57fe5b602002602001015190506000600190505b8351811015612fc057612fb682858381518110612fa957fe5b60200260200101516145e7565b9150600101612f90565b50612ed0612fd3825160c060ff16614664565b826145e7565b6040805160028082526060828101909352829190816020015b6060815260200190600190039081612ff25790505090506130158460ff16612f3c565b8160008151811061302257fe5b6020026020010181905250613036836144ab565b8160018151811061304357fe5b602002602001018190525061305781612f4f565b949350505050565b600082820183811015612ed0576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60006130c361483e565b505080518051602091820151919092015191011190565b80516060906130e857600080fd5b60006130f78360200151614156565b83516040805191839003808352601f19601f820116830160200190915291925060609082801561312e576020820181803683370190505b50905060008160200190506128ee84876020015101828561475c565b8051602080830191909120600e546000908152600a909252604082205480821461317957600092505050610df1565b5050600e80546000908152600a60205260408120558054600190810190915592915050565b60008060008060005b6131b0886130b9565b1561321957836131cd576131c6612921896127f2565b925061320e565b83600114156131e9576131e2612921896127f2565b915061320e565b8360021415613209576131fe610eeb896127f2565b90506001945061320e565b613219565b8360010193506131a7565b8461325f576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6000613276826402540be40063ffffffff6147a716565b6001600160a01b0385166000908152600b602052604090208054600019019055905060ff8816600114156133bc5760ff8716156132e9576040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b6001600160a01b038416600090815260046020526040902054613312908263ffffffff61305f16565b6001600160a01b03808616600090815260046020908152604080832094909455600581528382209287168252919091522054613354908263ffffffff61305f16565b6001600160a01b038086166000818152600560209081526040808320948916808452948252918290209490945580518581529051929391927f9a57c81564ab02642f34fd87e41baa9b074c18342cec3b7268b62bf752018fd1929181900390910190a361354a565b60ff881661350e576001600160a01b0384166000908152600860205260409020546133ed908263ffffffff61305f16565b6001600160a01b0385166000908152600860209081526040808320939093558251630e4f7c3f60e31b81526004810185905292516110049363727be1f89360248083019493928390030190829087803b15801561344957600080fd5b505af115801561345d573d6000803e3d6000fd5b505050506040513d602081101561347357600080fd5b50516134bc576040805162461bcd60e51b81526020600482015260136024820152721dda5d1a191c985dc8189b988819985a5b1959606a1b604482015290519081900360640190fd5b6040805182815260ff8916602082015281516001600160a01b0380871693908816927fcbd481ae600289fad8c0484d07ce0ffe4f010d7c844ecfdeaf2a13fead52886e929081900390910190a361354a565b6040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b505050505050505050565b60008060008060005b613567886130b9565b156135d057836135845761357d612921896127f2565b92506135c5565b83600114156135a057613599612921896127f2565b91506135c5565b83600214156135c0576135b5610eeb896127f2565b9050600194506135c5565b6135d0565b83600101935061355e565b84613616576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b600061362d826402540be40063ffffffff6147a716565b6001600160a01b0385166000908152600c602052604090208054600019019055905060ff8816600114156137ac5760ff8716156136a0576040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b6001600160a01b0384166000908152600460205260409020546136c9908263ffffffff612ed716565b6001600160a01b0380861660009081526004602090815260408083209490945560058152838220928716825291909152205461370b908263ffffffff612ed716565b6001600160a01b0380861660009081526005602090815260408083209388168352929052205561374442620a8c0063ffffffff61305f16565b6001600160a01b038086166000818152600760209081526040808320948916808452948252918290209490945580518581529051929391927fd6f878a5bcbbe79a64e6418bb0d56aaa20b9a60587d45749819df88dfc7c3c44929181900390910190a361354a565b60ff881661350e576001600160a01b03808516600081815260076020908152604080832094881680845294825280832092909255815185815260ff8c169181019190915281517f4417d10c1e33efa83a770b8d4f47176e78c08c1298d534901ad3b16bb585fa2e929181900390910190a361354a565b6000806000806000805b613835896130b9565b156138ba57846138525761384b6129218a6127f2565b93506138af565b846001141561386e576138676129218a6127f2565b92506138af565b846002141561388a576138836129218a6127f2565b91506138af565b84600314156138aa5761389f610eeb8a6127f2565b9050600195506138af565b6138ba565b84600101945061382c565b85613900576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6000613917826402540be40063ffffffff6147a716565b6001600160a01b0386166000908152600d602052604090208054600019019055905060ff891660011415613aea5760ff88161561398a576040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b6001600160a01b038086166000908152600560209081526040808320938816835292905220546139c0908263ffffffff612ed716565b6001600160a01b038681166000908152600560209081526040808320898516845290915280822093909355908516815220546139fc908261305f565b6001600160a01b03808716600090815260056020908152604080832093881683529290522055613a3542620a8c0063ffffffff61305f16565b6001600160a01b0380871660009081526009602090815260408083208985168452825280832093881683529290522055613a7842620a8c0063ffffffff61305f16565b6001600160a01b038087166000818152600960209081526040808320898616808552908352818420958b1680855295835292819020959095558451868152945191947f78bffae3f8c6691ac7fc1a3bff800cb2d612f5ad9ae5b0444cfe2eb15c189e18929081900390910190a4613b7b565b60ff891661350e576001600160a01b038581166000818152600960209081526040808320898616808552818452828520968a16808652968452828520859055908352818420818552835281842093909355805186815260ff8e169281019290925280519293927fb93bee5c59f85ede6b074a99f4ffcd3e3fc0d5c3d8156de331de89a49e0ce77c9281900390910190a45b50505050505050505050565b6000816040516020018082805190602001908083835b60208310613bbc5780518252601f199092019160209182019101613b9d565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310613c2a5780518252601f199092019160209182019101613c0b565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b60008060008060005b613c85866130b9565b15613cee5783613ca257613c9b612921876127f2565b9250613ce3565b8360011415613cbe57613cb7612921876127f2565b9150613ce3565b8360021415613cde57613cd3610eeb876127f2565b905060019450613ce3565b613cee565b836001019350613c7c565b84613d34576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6000613d4b826402540be40063ffffffff6147a716565b6001600160a01b0385166000908152600b6020908152604080832080546000190190556008909152902054909150613d89908263ffffffff61305f16565b6001600160a01b0385166000908152600860209081526040808320939093558251630e4f7c3f60e31b81526004810185905292516110049363727be1f89360248083019493928390030190829087803b158015613de557600080fd5b505af1158015613df9573d6000803e3d6000fd5b505050506040513d6020811015613e0f57600080fd5b5051613e58576040805162461bcd60e51b81526020600482015260136024820152721dda5d1a191c985dc8189b988819985a5b1959606a1b604482015290519081900360640190fd5b6040516001907ff83de021914a4585482db5ca47d520a5657165b443fa2c7ef8ed4635f054da9b90600090a250505050505050565b60008060008060005b613e9f866130b9565b15613f085783613ebc57613eb5612921876127f2565b9250613efd565b8360011415613ed857613ed1612921876127f2565b9150613efd565b8360021415613ef857613eed610eeb876127f2565b905060019450613efd565b613f08565b836001019350613e96565b84613f4e576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6001600160a01b038084166000908152600c60209081526040808320805460001901905560078252808320938616835292905281812081905590516002917ff83de021914a4585482db5ca47d520a5657165b443fa2c7ef8ed4635f054da9b91a2505050505050565b6000806000806000805b613fca876130b9565b1561404f5784613fe757613fe0612921886127f2565b9350614044565b846001141561400357613ffc612921886127f2565b9250614044565b846002141561401f57614018612921886127f2565b9150614044565b846003141561403f57614034610eeb886127f2565b905060019550614044565b61404f565b846001019450613fc1565b85614095576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6001600160a01b038481166000908152600d602090815260408083208054600019019055600982528083208785168085528184528285209588168552948352818420849055825280832093835292905281812081905590516003917ff83de021914a4585482db5ca47d520a5657165b443fa2c7ef8ed4635f054da9b91a250505050505050565b805160009061412d57506000610df1565b6020820151805160001a9060c082101561414c57600092505050610df1565b5060019392505050565b8051600090811a6080811015614170576000915050610df1565b60b881108061418b575060c0811080159061418b575060f881105b1561419a576001915050610df1565b60c08110156141ae5760b519019050610df1565b60f519019050610df1565b80516000908190811a60808110156141d457600191506142e5565b60b88110156141e957607e19810191506142e5565b60c081101561426357600060b78203600186019550806020036101000a86510491506001810182019350508083101561425d576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b506142e5565b60f88110156142785760be19810191506142e5565b600060f78203600186019550806020036101000a8651049150600181018201935050808310156142e3576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b80516000906015146142fd57600080fd5b6124be82612840565b6000606061431f846402540be40063ffffffff612e8e16565b60408051600480825260a0820190925291955060609190816020015b606081526020019060019003908161433b57905050905061435e8760ff16612f3c565b8160008151811061436b57fe5b6020026020010181905250614388866001600160a01b0316612f19565b8160018151811061439557fe5b60200260200101819052506143a985612f3c565b816002815181106143b657fe5b60200260200101819052506143d08463ffffffff16612f3c565b816003815181106143dd57fe5b602002602001018190525060606143f382612f4f565b94989497509395505050505050565b805160009060011461441357600080fd5b6020820151805160001a9081158061442b5750608082145b1561443b57600092505050610df1565b600192505050610df1565b600081836144955760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315612e4b578181015183820152602001612e33565b5060008385816144a157fe5b0495945050505050565b6060815160011480156144dd5750607f60f81b826000815181106144cb57fe5b01602001516001600160f81b03191611155b156144e9575080610df1565b6124be6144fb8351608060ff16614664565b836145e7565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff19841661454557506018614569565b6fffffffffffffffffffffffffffffffff19841661456557506010614569565b5060005b602081101561459f5781818151811061457e57fe5b01602001516001600160f81b031916156145975761459f565b600101614569565b60008160200390506060816040519080825280601f01601f1916602001820160405280156145d4576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b81831015614618578051835260209283019201614600565b50855184518101855292509050808201602086015b8183101561464557805183526020928301920161462d565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106146b4576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b6040805160018082528183019092526060916020820181803683370190505090506037841161470e5782840160f81b816000815181106146f057fe5b60200101906001600160f81b031916908160001a90535090506124be565b606061471985614501565b90508381510160370160f81b8260008151811061473257fe5b60200101906001600160f81b031916908160001a90535061475382826145e7565b95945050505050565b80614766576126ee565b5b60208110614786578251825260209283019290910190601f1901614767565b915181516020939093036101000a6000190180199091169216919091179052565b6000826147b6575060006124be565b828202828482816147c357fe5b0414612ed05760405162461bcd60e51b81526004018080602001828103825260218152602001806148e76021913960400191505060405180910390fd5b60405180606001604052806003906020820280368337509192915050565b604051806040016040528061483161483e565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe7468652042534352656c61796572466565206d6f642074656e20646563696d616c73206d757374206265207a65726f7468652042534352656c61796572466565206d757374206265206c657373207468616e2072656c61796572466565746865206d696e44656c65676174696f6e206d7573742062652067726561746572207468616e2072656c61796572466565536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f777468652072656c61796572466565206d6f642074656e20646563696d616c73206d757374206265207a65726f746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163747468652072656c61796572466565206d757374206265206c657373207468616e206d696e44656c65676174696f6e7468652072656c61796572466565206d757374206265206d6f7265207468616e2042534352656c61796572466565696e73756666696369656e742062616c616e636520616674657220756e64656c6567617465746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e74726163747468652042534352656c61796572466565206d757374206e6f74206265207a65726fa164736f6c6343000604000a" + }, + "0x0000000000000000000000000000000000002002": { + "balance": "0x0", + "code": "0x608060405260043610620003db5760003560e01c806386d545061162000203578063d115a2061162000117578063e992aaf511620000ad578063f80a34021162000078578063f80a34021462000bef578063fb50b31f1462000c14578063fc0c5ff11462000c39578063ff69ab611462000c5157600080fd5b8063e992aaf51462000b6c578063efdbf0e11462000b84578063f1f74d841462000bc0578063f1fad1041462000bd857600080fd5b8063d8ca511f11620000ee578063d8ca511f1462000aff578063daacdb661462000b17578063dbda7fb31462000b2f578063e8f67c3b1462000b5457600080fd5b8063d115a2061462000a9d578063d6ca429d1462000ab5578063d7c2dfc81462000ada57600080fd5b8063b187bd261162000199578063c38fbec81162000164578063c38fbec81462000a1f578063c473318f1462000a44578063c8509d81146200083d578063cbb04d9d1462000a5c57600080fd5b8063b187bd26146200098c578063baa7199e14620009ac578063bdceadf314620009d1578063bff02e2014620009e957600080fd5b8063982ef0a711620001da578063982ef0a714620008f7578063a43569b3146200090e578063aad3ec961462000942578063ac431751146200096757600080fd5b806386d54506146200087a5780638a4d3fa814620008b45780638cd22b2214620008d257600080fd5b80634bf6c88211620002fb578063663706d3116200029157806376e7d6d6116200025c57806376e7d6d6146200080d5780638129fc1c1462000825578063831d65d1146200083d5780638456cb59146200086257600080fd5b8063663706d3146200073a5780636ec01b27146200076b5780636f8e2fa414620007c357806375cc7d8914620007e857600080fd5b80635949187111620002d25780635949187114620006a25780635e7cc1c914620006c757806363a036b514620006ec57806364028fbd146200072357600080fd5b80634bf6c882146200063b5780634d99dd1614620006655780634e6fd6c4146200068a57600080fd5b80631fa8882b1162000371578063449ecfe61162000348578063449ecfe6146200058757806345211bfd14620005ac5780634838d16514620005d15780634a49ac4c146200061657600080fd5b80631fa8882b146200053157806338409988146200054a578063417c73a7146200056257600080fd5b8063092193ab11620003b2578063092193ab146200047c5780630e9fbf5114620004935780631182b87514620004b857806317b4f35314620004ec57600080fd5b8063046f7da214620003fb578063059ddd2214620004135780630661806e146200045557600080fd5b36620003f65760345460ff16600114620003f457600080fd5b005b600080fd5b3480156200040857600080fd5b50620003f462000c69565b3480156200042057600080fd5b506200043862000432366004620093e3565b62000cfb565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156200046257600080fd5b506200046d60365481565b6040519081526020016200044c565b620003f46200048d366004620093e3565b62001110565b348015620004a057600080fd5b50620003f4620004b236600462009447565b6200174e565b348015620004c557600080fd5b50620004dd620004d73660046200948c565b62001a7a565b6040516200044c91906200953f565b348015620004f957600080fd5b50620004386200050b36600462009635565b80516020818301810180516045825292820191909301209152546001600160a01b031681565b3480156200053e57600080fd5b506200046d6201518081565b3480156200055757600080fd5b506200046d60375481565b3480156200056f57600080fd5b50620003f462000581366004620093e3565b62001d53565b3480156200059457600080fd5b50620003f4620005a6366004620093e3565b62001dd5565b348015620005b957600080fd5b50620003f4620005cb366004620093e3565b62001fba565b348015620005de57600080fd5b5062000605620005f0366004620093e3565b60016020526000908152604090205460ff1681565b60405190151581526020016200044c565b3480156200062357600080fd5b50620003f462000635366004620093e3565b62002197565b3480156200064857600080fd5b5062000652600881565b60405160ff90911681526020016200044c565b3480156200067257600080fd5b50620003f4620006843660046200968a565b62002213565b3480156200069757600080fd5b506200043861dead81565b348015620006af57600080fd5b50620003f4620006c1366004620096c8565b62002830565b348015620006d457600080fd5b50620003f4620006e636600462009738565b62003602565b348015620006f957600080fd5b50620007116200070b36600462009758565b6200380a565b6040516200044c9493929190620097c1565b620003f4620007343660046200987d565b62003e9c565b3480156200074757600080fd5b506200046d62000759366004620093e3565b60446020526000908152604090205481565b3480156200077857600080fd5b50620007906200078a366004620093e3565b620044e6565b6040805182516001600160401b03908116825260208085015182169083015292820151909216908201526060016200044c565b348015620007d057600080fd5b50620004dd620007e2366004620093e3565b62004590565b348015620007f557600080fd5b50620003f462000807366004620093e3565b620049a9565b3480156200081a57600080fd5b506200046d603d5481565b3480156200083257600080fd5b50620003f462004b7b565b3480156200084a57600080fd5b50620003f46200085c3660046200948c565b62004e92565b3480156200086f57600080fd5b50620003f462004efc565b3480156200088757600080fd5b506200043862000899366004620093e3565b6043602052600090815260409020546001600160a01b031681565b348015620008c157600080fd5b506200046d670de0b6b3a764000081565b348015620008df57600080fd5b506200046d620008f13660046200968a565b62004f94565b620003f46200090836600462009955565b6200504d565b3480156200091b57600080fd5b50620009336200092d366004620093e3565b620056d7565b6040516200044c919062009993565b3480156200094f57600080fd5b50620003f4620009613660046200968a565b620059c4565b3480156200097457600080fd5b50620003f46200098636600462009a10565b62005a31565b3480156200099957600080fd5b5060005462010000900460ff1662000605565b348015620009b957600080fd5b50620003f4620009cb36600462009ac9565b620068d0565b348015620009de57600080fd5b506200046d603c5481565b348015620009f657600080fd5b5062000a0e62000a0836600462009758565b62006a9d565b6040516200044c9392919062009b25565b34801562000a2c57600080fd5b50620003f462000a3e366004620093e3565b62006c79565b34801562000a5157600080fd5b506200046d60385481565b34801562000a6957600080fd5b5062000a8162000a7b366004620093e3565b62006f3b565b604080519384529115156020840152908201526060016200044c565b34801562000aaa57600080fd5b506200046d61271081565b34801562000ac257600080fd5b50620003f462000ad436600462009b82565b6200736b565b34801562000ae757600080fd5b50620003f462000af936600462009c6b565b6200756f565b34801562000b0c57600080fd5b506200046d603b5481565b34801562000b2457600080fd5b506200046d60495481565b34801562000b3c57600080fd5b506200043862000b4e366004620093e3565b62007665565b34801562000b6157600080fd5b506200046d60355481565b34801562000b7957600080fd5b506200046d603a5481565b34801562000b9157600080fd5b506200046d62000ba336600462009635565b805160208183018101805160468252928201919093012091525481565b34801562000bcd57600080fd5b506200046d603e5481565b34801562000be557600080fd5b5062000652601181565b34801562000bfc57600080fd5b506200046d62000c0e3660046200968a565b62007a7c565b34801562000c2157600080fd5b50620003f462000c3336600462009a10565b62007aed565b34801562000c4657600080fd5b506200046d60395481565b34801562000c5e57600080fd5b506200046d604a5481565b600054630100000090046001600160a01b0316331462000c9c576040516306fbb1e360e01b815260040160405180910390fd5b60005462010000900460ff1662000cc657604051636cd6020160e01b815260040160405180910390fd5b6000805462ff0000191681556040517f62451d457bc659158be6e6247f56ec1df424a5c7597f71c20c2bc44e0965c8f99190a1565b6001600160a01b038082166000908152604160209081526040808320815161016081018352815486168152600182015486169381019390935260028101549094169082015260038301546060820152600483018054929384939091608084019162000d669062009cd1565b80601f016020809104026020016040519081016040528092919081815260200182805462000d949062009cd1565b801562000de55780601f1062000db95761010080835404028352916020019162000de5565b820191906000526020600020905b81548152906001019060200180831162000dc757829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462000e109062009cd1565b80601f016020809104026020016040519081016040528092919081815260200182805462000e3e9062009cd1565b801562000e8f5780601f1062000e635761010080835404028352916020019162000e8f565b820191906000526020600020905b81548152906001019060200180831162000e7157829003601f168201915b5050505050815260200160018201805462000eaa9062009cd1565b80601f016020809104026020016040519081016040528092919081815260200182805462000ed89062009cd1565b801562000f295780601f1062000efd5761010080835404028352916020019162000f29565b820191906000526020600020905b81548152906001019060200180831162000f0b57829003601f168201915b5050505050815260200160028201805462000f449062009cd1565b80601f016020809104026020016040519081016040528092919081815260200182805462000f729062009cd1565b801562000fc35780601f1062000f975761010080835404028352916020019162000fc3565b820191906000526020600020905b81548152906001019060200180831162000fa557829003601f168201915b5050505050815260200160038201805462000fde9062009cd1565b80601f01602080910402602001604051908101604052809291908181526020018280546200100c9062009cd1565b80156200105d5780601f1062001031576101008083540402835291602001916200105d565b820191906000526020600020905b8154815290600101906020018083116200103f57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b815481526020019060010190808311620010e9575050509190925250509051949350505050565b33611000146200113c57604051630f22c43960e41b815261100060048201526024015b60405180910390fd5b6001600160a01b03808216600090815260436020908152604080832054841680845260418352818420825161016081018452815487168152600182015487169481019490945260028101549095169183019190915260038401546060830152600484018054919491608084019190620011b59062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620011e39062009cd1565b8015620012345780601f10620012085761010080835404028352916020019162001234565b820191906000526020600020905b8154815290600101906020018083116200121657829003601f168201915b50505050508152602001600582016040518060800160405290816000820180546200125f9062009cd1565b80601f01602080910402602001604051908101604052809291908181526020018280546200128d9062009cd1565b8015620012de5780601f10620012b257610100808354040283529160200191620012de565b820191906000526020600020905b815481529060010190602001808311620012c057829003601f168201915b50505050508152602001600182018054620012f99062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620013279062009cd1565b8015620013785780601f106200134c5761010080835404028352916020019162001378565b820191906000526020600020905b8154815290600101906020018083116200135a57829003601f168201915b50505050508152602001600282018054620013939062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620013c19062009cd1565b8015620014125780601f10620013e65761010080835404028352916020019162001412565b820191906000526020600020905b815481529060010190602001808311620013f457829003601f168201915b505050505081526020016003820180546200142d9062009cd1565b80601f01602080910402602001604051908101604052809291908181526020018280546200145b9062009cd1565b8015620014ac5780601f106200148057610100808354040283529160200191620014ac565b820191906000526020600020905b8154815290600101906020018083116200148e57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b81548152602001906001019080831162001538575050509190925250505060408101519091506001600160a01b031615806200157557508060e001515b156200163257604051611002903490600081818185875af1925050503d8060008114620015bf576040519150601f19603f3d011682016040523d82523d6000602084013e620015c4565b606091505b505050816001600160a01b03167ffc8bff675087dd2da069cc3fb517b9ed001e19750c0865241a5542dba1ba170d604051620016259060208082526011908201527024a72b20a624a22fab20a624a220aa27a960791b604082015260600190565b60405180910390a2505050565b60408181015160c0830151519151632f303ebb60e11b81526001600160401b0390921660048301526001600160a01b031690635e607d769034906024016000604051808303818588803b1580156200168957600080fd5b505af11580156200169e573d6000803e3d6000fd5b5050505050816001600160a01b03167fe34918ff1c7084970068b53fd71ad6d8b04e9f15d3886cbf006443e6cdc52ea634604051620016df91815260200190565b60405180910390a26040808201519051633041949b60e01b815261200591633041949b91620017149190869060040162009d07565b600060405180830381600087803b1580156200172f57600080fd5b505af115801562001744573d6000803e3d6000fd5b5050505050505b50565b33611001146200177657604051630f22c43960e41b8152611001600482015260240162001133565b60005462010000900460ff1615620017a157604051631785c68160e01b815260040160405180910390fd5b600060458383604051620017b792919062009d21565b908152604051908190036020019020546001600160a01b03169050620017df603f8262007d41565b620017fd5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b03811660009081526041602052604081209062001825620151804262009d47565b604a546000828152604b602052604090205491925011620018595760405163bd52fcdb60e01b815260040160405180910390fd5b6000818152604b602052604081208054600192906200187a90849062009d6a565b909155505060405160469062001894908790879062009d21565b908152602001604051809103902054600014158015620018e55750426201518060468787604051620018c892919062009d21565b908152602001604051809103902054620018e3919062009d6a565b105b156200190457604051631898eb6b60e01b815260040160405180910390fd5b6000806200191485600262007d64565b91509150816200193757604051631b919bb160e11b815260040160405180910390fd5b6002840154603c5460405163045bc4d160e41b815260048101919091526000916001600160a01b0316906345bc4d10906024016020604051808303816000875af11580156200198a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620019b0919062009d80565b9050620019be858362007dee565b856001600160a01b03167f6e9a2ee7aee95665e3a774a212eb11441b217e3e4656ab9563793094689aabb283836002604051620019fe9392919062009db0565b60405180910390a26002850154604051633041949b60e01b815261200591633041949b9162001a3c916001600160a01b0316908a9060040162009d07565b600060405180830381600087803b15801562001a5757600080fd5b505af115801562001a6c573d6000803e3d6000fd5b505050505050505050505050565b6060336120001462001aa457604051630f22c43960e41b8152612000600482015260240162001133565b6034805460ff19166001179055604080516020601f8501819004810282018101909252838152600091829162001af591879087908190840183828082843760009201919091525062007fb592505050565b915091508062001b185760405163035ede3560e21b815260040160405180910390fd5b816060015160000362001b3e575050604080516000815260208101909152905062001d42565b606082015160405163e04c83a760e01b81526000916110049163e04c83a79162001b6e9160040190815260200190565b6020604051808303816000875af115801562001b8e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001bb4919062009ddf565b90508062001c5b5782602001516001600160a01b031683600001516001600160a01b03167fa9084c89a291b43bc984e045671d394974730a159b9a826b577bb148ab504c3a8560600151600160405162001c1092919062009dff565b60405180910390a385858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092965062001d4295505050505050565b600062001c688462008118565b9050600081600381111562001c815762001c8162009d9a565b0362001ca3575050604080516000815260208101909152925062001d42915050565b83602001516001600160a01b031684600001516001600160a01b03167fa9084c89a291b43bc984e045671d394974730a159b9a826b577bb148ab504c3a86606001518460405162001cf692919062009dff565b60405180910390a386868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092975062001d429650505050505050565b6034805460ff191690559392505050565b600054630100000090046001600160a01b0316331462001d86576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b0381166000818152600160208190526040808320805460ff1916909217909155517f7fd26be6fc92aff63f1f4409b2b2ddeb272a888031d7f55ec830485ec61941869190a250565b60005462010000900460ff161562001e0057604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161562001e325760405163b1d02c3d60e01b815260040160405180910390fd5b8062001e40603f8262007d41565b62001e5e5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b0382166000908152604160205260409020600a81015460ff1662001e9c57604051634b6b857d60e01b815260040160405180910390fd5b6036546002820154604051630913db4760e01b81526001600160a01b03868116600483015290911690630913db4790602401602060405180830381865afa15801562001eec573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001f12919062009d80565b101562001f32576040516317b204bf60e11b815260040160405180910390fd5b4281600b0154111562001f585760405163170cb76760e21b815260040160405180910390fd5b600a8101805460ff19169055604980546001919060009062001f7c90849062009e26565b90915550506040516001600160a01b038416907f9390b453426557da5ebdc31f19a37753ca04addf656d32f35232211bb2af3f1990600090a2505050565b60005462010000900460ff161562001fe557604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620020175760405163b1d02c3d60e01b815260040160405180910390fd5b3362002025603f8262007d41565b620020435760405163056e881160e01b815260040160405180910390fd5b6001600160a01b0382166200206b57604051636520611b60e11b815260040160405180910390fd5b6001600160a01b0382811660009081526043602052604090205416151580620020ac57506001600160a01b03821660009081526047602052604090205460ff165b15620020cb57604051631e6f587560e11b815260040160405180910390fd5b336000818152604160205260409020600c8101544290620020f190620151809062009d6a565b11156200211157604051631f92cdbd60e11b815260040160405180910390fd5b80546001600160a01b039081166000908152604460209081526040808320429081905585548986166001600160a01b031991821681178855600c88019290925581855260439093528184208054958816959093168517909255519092917f6e4e747ca35203f16401c69805c7dd52fff67ef60b0ebc5c7fe16890530f223591a350505050565b600054630100000090046001600160a01b03163314620021ca576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b038116600081815260016020526040808220805460ff19169055517fe0db3499b7fdc3da4cddff5f45d694549c19835e7f719fb5606d3ad1a5de40119190a250565b60005462010000900460ff16156200223e57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620022705760405163b1d02c3d60e01b815260040160405180910390fd5b816200227e603f8262007d41565b6200229c5760405163056e881160e01b815260040160405180910390fd5b81600003620022be57604051639811e0c760e01b815260040160405180910390fd5b6001600160a01b0380841660009081526041602090815260408083208151610160810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180543394916080840191620023269062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620023549062009cd1565b8015620023a55780601f106200237957610100808354040283529160200191620023a5565b820191906000526020600020905b8154815290600101906020018083116200238757829003601f168201915b5050505050815260200160058201604051806080016040529081600082018054620023d09062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620023fe9062009cd1565b80156200244f5780601f1062002423576101008083540402835291602001916200244f565b820191906000526020600020905b8154815290600101906020018083116200243157829003601f168201915b505050505081526020016001820180546200246a9062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620024989062009cd1565b8015620024e95780601f10620024bd57610100808354040283529160200191620024e9565b820191906000526020600020905b815481529060010190602001808311620024cb57829003601f168201915b50505050508152602001600282018054620025049062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620025329062009cd1565b8015620025835780601f10620025575761010080835404028352916020019162002583565b820191906000526020600020905b8154815290600101906020018083116200256557829003601f168201915b505050505081526020016003820180546200259e9062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620025cc9062009cd1565b80156200261d5780601f10620025f1576101008083540402835291602001916200261d565b820191906000526020600020905b815481529060010190602001808311620025ff57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b815481526020019060010190808311620026a9575050509190925250505060408082015190516326ccee8b60e11b81526001600160a01b0385811660048301526024820188905292935060009290911690634d99dd16906044016020604051808303816000875af115801562002723573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002749919062009d80565b9050826001600160a01b0316866001600160a01b03167f3aace7340547de7b9156593a7652dc07ee900cea3fd8f82cb6c9d38b4082980287846040516200279a929190918252602082015260400190565b60405180910390a3856001600160a01b0316836001600160a01b031603620027c757620027c786620087ab565b6040808301519051633041949b60e01b815261200591633041949b91620027f49190879060040162009d07565b600060405180830381600087803b1580156200280f57600080fd5b505af115801562002824573d6000803e3d6000fd5b50505050505050505050565b60005462010000900460ff16156200285b57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff16156200288d5760405163b1d02c3d60e01b815260040160405180910390fd5b836200289b603f8262007d41565b620028b95760405163056e881160e01b815260040160405180910390fd5b83620028c7603f8262007d41565b620028e55760405163056e881160e01b815260040160405180910390fd5b6034805460ff1916600117905560008490036200291557604051639811e0c760e01b815260040160405180910390fd5b846001600160a01b0316866001600160a01b031603620029485760405163f0e3e62960e01b815260040160405180910390fd5b6001600160a01b0380871660009081526041602090815260408083208151610160810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180543394916080840191620029b09062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620029de9062009cd1565b801562002a2f5780601f1062002a035761010080835404028352916020019162002a2f565b820191906000526020600020905b81548152906001019060200180831162002a1157829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462002a5a9062009cd1565b80601f016020809104026020016040519081016040528092919081815260200182805462002a889062009cd1565b801562002ad95780601f1062002aad5761010080835404028352916020019162002ad9565b820191906000526020600020905b81548152906001019060200180831162002abb57829003601f168201915b5050505050815260200160018201805462002af49062009cd1565b80601f016020809104026020016040519081016040528092919081815260200182805462002b229062009cd1565b801562002b735780601f1062002b475761010080835404028352916020019162002b73565b820191906000526020600020905b81548152906001019060200180831162002b5557829003601f168201915b5050505050815260200160028201805462002b8e9062009cd1565b80601f016020809104026020016040519081016040528092919081815260200182805462002bbc9062009cd1565b801562002c0d5780601f1062002be15761010080835404028352916020019162002c0d565b820191906000526020600020905b81548152906001019060200180831162002bef57829003601f168201915b5050505050815260200160038201805462002c289062009cd1565b80601f016020809104026020016040519081016040528092919081815260200182805462002c569062009cd1565b801562002ca75780601f1062002c7b5761010080835404028352916020019162002ca7565b820191906000526020600020905b81548152906001019060200180831162002c8957829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b81548152602001906001019080831162002d3357505050919092525050506001600160a01b0380891660009081526041602090815260408083208151610160810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180549495509193909291608084019162002dbe9062009cd1565b80601f016020809104026020016040519081016040528092919081815260200182805462002dec9062009cd1565b801562002e3d5780601f1062002e115761010080835404028352916020019162002e3d565b820191906000526020600020905b81548152906001019060200180831162002e1f57829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462002e689062009cd1565b80601f016020809104026020016040519081016040528092919081815260200182805462002e969062009cd1565b801562002ee75780601f1062002ebb5761010080835404028352916020019162002ee7565b820191906000526020600020905b81548152906001019060200180831162002ec957829003601f168201915b5050505050815260200160018201805462002f029062009cd1565b80601f016020809104026020016040519081016040528092919081815260200182805462002f309062009cd1565b801562002f815780601f1062002f555761010080835404028352916020019162002f81565b820191906000526020600020905b81548152906001019060200180831162002f6357829003601f168201915b5050505050815260200160028201805462002f9c9062009cd1565b80601f016020809104026020016040519081016040528092919081815260200182805462002fca9062009cd1565b80156200301b5780601f1062002fef576101008083540402835291602001916200301b565b820191906000526020600020905b81548152906001019060200180831162002ffd57829003601f168201915b50505050508152602001600382018054620030369062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620030649062009cd1565b8015620030b55780601f106200308957610100808354040283529160200191620030b5565b820191906000526020600020905b8154815290600101906020018083116200309757829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b815481526020019060010190808311620031415750505050508152505090508060e001518015620031845750876001600160a01b0316836001600160a01b031614155b15620031a357604051636468920360e01b815260040160405180910390fd5b60408083015190516352e82ce560e11b81526001600160a01b038581166004830152602482018a9052600092169063a5d059ca906044016020604051808303816000875af1158015620031fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003220919062009d80565b9050603754811015620032465760405163dc6f0bdd60e01b815260040160405180910390fd5b896001600160a01b0316846001600160a01b0316148015620032db57506036546040808501519051630913db4760e01b81526001600160a01b038d8116600483015290911690630913db4790602401602060405180830381865afa158015620032b3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620032d9919062009d80565b105b15620032fa576040516317b204bf60e11b815260040160405180910390fd5b6000612710603a54836200330f919062009e3c565b6200331b919062009d47565b9050600083604001516001600160a01b03168260405160006040518083038185875af1925050503d806000811462003370576040519150601f19603f3d011682016040523d82523d6000602084013e62003375565b606091505b505090508062003398576040516312171d8360e31b815260040160405180910390fd5b620033a4828462009e26565b60408086015190516317066a5760e21b81526001600160a01b03898116600483015292955060009290911690635c19a95c90869060240160206040518083038185885af1158015620033fa573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019062003421919062009d80565b9050866001600160a01b03168c6001600160a01b03168e6001600160a01b03167ffdac6e81913996d95abcc289e90f2d8bd235487ce6fe6f821e7d21002a1915b48e858960405162003486939291909283526020830191909152604082015260600190565b60405180910390a4604080516002808252606082018352600092602083019080368337019050509050866040015181600081518110620034ca57620034ca62009e56565b60200260200101906001600160a01b031690816001600160a01b03168152505085604001518160018151811062003505576200350562009e56565b6001600160a01b0390921660209283029190910190910152604051634484077560e01b815261200590634484077590620035469084908c9060040162009e6c565b600060405180830381600087803b1580156200356157600080fd5b505af115801562003576573d6000803e3d6000fd5b505050508a15620035e8576120056001600160a01b031663e5ed5b1e898f6040518363ffffffff1660e01b8152600401620035b392919062009d07565b600060405180830381600087803b158015620035ce57600080fd5b505af1158015620035e3573d6000803e3d6000fd5b505050505b50506034805460ff19169055505050505050505050505050565b60005462010000900460ff16156200362d57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff16156200365f5760405163b1d02c3d60e01b815260040160405180910390fd5b336200366d603f8262007d41565b6200368b5760405163056e881160e01b815260040160405180910390fd5b336000818152604160205260409020600c8101544290620036b190620151809062009d6a565b1115620036d157604051631f92cdbd60e11b815260040160405180910390fd5b60098101546001600160401b03600160401b909104811690851611156200370b5760405163dc81db8560e01b815260040160405180910390fd5b60098101546000906001600160401b03908116908616101562003749576009820154620037439086906001600160401b031662009e98565b62003763565b600982015462003763906001600160401b03168662009e98565b60098301546001600160401b039182169250600160801b9004168111156200379e5760405163dc81db8560e01b815260040160405180910390fd5b60098201805467ffffffffffffffff19166001600160401b03871690811790915542600c8401556040519081526001600160a01b038416907f78cdd96edf59e09cfd4d26ef6ef6c92d166effe6a40970c54821206d541932cb9060200160405180910390a25050505050565b606080606060006200381d603f620088d1565b90508086101562003e9357841562003836578462003838565b805b945060008562003849888462009e26565b1162003861576200385b878362009e26565b62003863565b855b9050806001600160401b0381111562003880576200388062009554565b604051908082528060200260200182016040528015620038aa578160200160208202803683370190505b509450806001600160401b03811115620038c857620038c862009554565b604051908082528060200260200182016040528015620038f2578160200160208202803683370190505b509350806001600160401b0381111562003910576200391062009554565b6040519080825280602002602001820160405280156200394557816020015b60608152602001906001900390816200392f5790505b50925060005b8181101562003e905760006200396f62003966838b62009d6a565b603f90620088dc565b6001600160a01b03808216600090815260416020908152604080832081516101608101835281548616815260018201548616938101939093526002810154909416908201526003830154606082015260048301805494955091939092916080840191620039dc9062009cd1565b80601f016020809104026020016040519081016040528092919081815260200182805462003a0a9062009cd1565b801562003a5b5780601f1062003a2f5761010080835404028352916020019162003a5b565b820191906000526020600020905b81548152906001019060200180831162003a3d57829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462003a869062009cd1565b80601f016020809104026020016040519081016040528092919081815260200182805462003ab49062009cd1565b801562003b055780601f1062003ad95761010080835404028352916020019162003b05565b820191906000526020600020905b81548152906001019060200180831162003ae757829003601f168201915b5050505050815260200160018201805462003b209062009cd1565b80601f016020809104026020016040519081016040528092919081815260200182805462003b4e9062009cd1565b801562003b9f5780601f1062003b735761010080835404028352916020019162003b9f565b820191906000526020600020905b81548152906001019060200180831162003b8157829003601f168201915b5050505050815260200160028201805462003bba9062009cd1565b80601f016020809104026020016040519081016040528092919081815260200182805462003be89062009cd1565b801562003c395780601f1062003c0d5761010080835404028352916020019162003c39565b820191906000526020600020905b81548152906001019060200180831162003c1b57829003601f168201915b5050505050815260200160038201805462003c549062009cd1565b80601f016020809104026020016040519081016040528092919081815260200182805462003c829062009cd1565b801562003cd35780601f1062003ca75761010080835404028352916020019162003cd3565b820191906000526020600020905b81548152906001019060200180831162003cb557829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b81548152602001906001019080831162003d5f575050505050815250509050806000015188848151811062003d985762003d9862009e56565b60200260200101906001600160a01b031690816001600160a01b0316815250508060e0015162003e315780604001516001600160a01b03166315d1f8986040518163ffffffff1660e01b8152600401602060405180830381865afa15801562003e05573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003e2b919062009d80565b62003e34565b60005b87848151811062003e495762003e4962009e56565b602002602001018181525050806080015186848151811062003e6f5762003e6f62009e56565b602002602001018190525050508062003e889062009ebb565b90506200394b565b50505b92959194509250565b60005462010000900460ff161562003ec757604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161562003ef95760405163b1d02c3d60e01b815260040160405180910390fd5b3362003f07603f8262007d41565b1562003f2657604051635f28f62b60e01b815260040160405180910390fd5b6001600160a01b038881166000908152604360205260409020541615158062003f6757506001600160a01b03881660009081526047602052604090205460ff165b1562003f8657604051631e6f587560e11b815260040160405180910390fd5b60006001600160a01b03166045888860405162003fa592919062009d21565b908152604051908190036020019020546001600160a01b031614158062003fef57506048878760405162003fdb92919062009d21565b9081526040519081900360200190205460ff165b156200400e576040516311fdb94760e01b815260040160405180910390fd5b60006200401c838062009ed7565b6040516020016200402f92919062009d21565b60408051601f1981840301815291815281516020928301206000818152604290935291205490915060ff1615620040795760405163c0bf414360e01b815260040160405180910390fd5b60006200408f670de0b6b3a76400003462009e26565b9050603654811015620040b5576040516317b204bf60e11b815260040160405180910390fd5b6001600160a01b038a16620040dd57604051636520611b60e11b815260040160405180910390fd5b611388620040f2604087016020880162009738565b6001600160401b0316118062004138575062004115604086016020870162009738565b6001600160401b03166200412d602087018762009738565b6001600160401b0316115b8062004177575062004151604086016020870162009738565b6001600160401b03166200416c606087016040880162009738565b6001600160401b0316115b15620041965760405163dc81db8560e01b815260040160405180910390fd5b620041e1620041a6858062009ed7565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250620088ea92505050565b620041ff57604051635dba5ad760e01b815260040160405180910390fd5b6200420e838a8a8a8a62008a8c565b6200422c57604051631647e3cb60e11b815260040160405180910390fd5b60006200427a846200423f878062009ed7565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525062008bbc92505050565b905062004289603f8562008cbd565b506000838152604260209081526040808320805460ff191660019081179091556001600160a01b0380891680865260419094529190932080548f83166001600160a01b031991821617825593810180548516909317909255600282018054918516919093161790915542600382015560048101620043098b8d8362009f7f565b5085600582016200431b82826200a047565b50879050600982016200432f82826200a180565b505042600c8201556001600160a01b038c81166000908152604360205260409081902080546001600160a01b031916928816929092179091555185906045906200437d908e908e9062009d21565b908152602001604051809103902060006101000a8154816001600160a01b0302191690836001600160a01b03160217905550816001600160a01b0316856001600160a01b03168d6001600160a01b03167faecd9fb95e79c75a3a1de93362c6be5fe6ab65770d8614be583884161cd8228d8e8e604051620044009291906200a250565b60405180910390a460408051848152602081018590526001600160a01b0387169182916000805160206200b757833981519152910160405180910390a360408051670de0b6b3a7640000808252602082015261dead916001600160a01b038816916000805160206200b757833981519152910160405180910390a3604051633041949b60e01b815261200590633041949b90620044a4908590899060040162009d07565b600060405180830381600087803b158015620044bf57600080fd5b505af1158015620044d4573d6000803e3d6000fd5b50505050505050505050505050505050565b60408051606081018252600080825260208201819052918101919091528162004511603f8262007d41565b6200452f5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b03831660009081526041602090815260409182902082516060810184526009909101546001600160401b038082168352600160401b8204811693830193909352600160801b90049091169181019190915291505b50919050565b6001600160a01b03808216600090815260416020908152604080832081516101608101835281548616815260018201548616938101939093526002810154909416908201526003830154606082810191909152600484018054919491608084019190620045fd9062009cd1565b80601f01602080910402602001604051908101604052809291908181526020018280546200462b9062009cd1565b80156200467c5780601f1062004650576101008083540402835291602001916200467c565b820191906000526020600020905b8154815290600101906020018083116200465e57829003601f168201915b5050505050815260200160058201604051806080016040529081600082018054620046a79062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620046d59062009cd1565b8015620047265780601f10620046fa5761010080835404028352916020019162004726565b820191906000526020600020905b8154815290600101906020018083116200470857829003601f168201915b50505050508152602001600182018054620047419062009cd1565b80601f01602080910402602001604051908101604052809291908181526020018280546200476f9062009cd1565b8015620047c05780601f106200479457610100808354040283529160200191620047c0565b820191906000526020600020905b815481529060010190602001808311620047a257829003601f168201915b50505050508152602001600282018054620047db9062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620048099062009cd1565b80156200485a5780601f106200482e576101008083540402835291602001916200485a565b820191906000526020600020905b8154815290600101906020018083116200483c57829003601f168201915b50505050508152602001600382018054620048759062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620048a39062009cd1565b8015620048f45780601f10620048c857610100808354040283529160200191620048f4565b820191906000526020600020905b815481529060010190602001808311620048d657829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b815481526020019060010190808311620049805750505091909252505050608001519392505050565b3361100114620049d157604051630f22c43960e41b8152611001600482015260240162001133565b6001600160a01b0380821660009081526043602052604090205416620049f9603f8262007d41565b62004a175760405163056e881160e01b815260040160405180910390fd5b6001600160a01b038181166000908152604160205260408082206002810154603b54925163045bc4d160e41b81526004810193909352909316906345bc4d10906024016020604051808303816000875af115801562004a7a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004aa0919062009d80565b90506000603d544262004ab4919062009d6a565b905062004ac2838262007dee565b836001600160a01b03167f6e9a2ee7aee95665e3a774a212eb11441b217e3e4656ab9563793094689aabb28284600160405162004b029392919062009db0565b60405180910390a26002830154604051633041949b60e01b815261200591633041949b9162004b40916001600160a01b031690889060040162009d07565b600060405180830381600087803b15801562004b5b57600080fd5b505af115801562004b70573d6000803e3d6000fd5b505050505050505050565b600054610100900460ff161580801562004b9c5750600054600160ff909116105b8062004bb85750303b15801562004bb8575060005460ff166001145b62004c1d5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840162001133565b6000805460ff19166001179055801562004c41576000805461ff0019166101001790555b33411462004c625760405163022d8c9560e31b815260040160405180910390fd5b3a1562004c82576040516383f1b1d360e01b815260040160405180910390fd5b611388603555686c6b935b8bbd400000603655670de0b6b3a7640000603755600960385562093a806039556002603a819055678ac7230489e80000603b55680ad78ebc5ac6200000603c556202a300603d5562069780603e55604a5560408051610220810190915261020080825260609182916200b557602083013980602001905181019062004d1391906200a28c565b915060405180610360016040528061034081526020016200b777610340913980602001905181019062004d4791906200a330565b905060005b825181101562004db65760016047600085848151811062004d715762004d7162009e56565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905562004dae8162009ebb565b905062004d4c565b5060005b815181101562004e27576001604883838151811062004ddd5762004ddd62009e56565b602002602001015160405162004df491906200a42d565b908152604051908190036020019020805491151560ff1990921691909117905562004e1f8162009ebb565b905062004dba565b5062004e477330151da466ec8ab345bef3d6983023e050fb067362008cd4565b505080156200174b576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b336120001462004eba57604051630f22c43960e41b8152612000600482015260240162001133565b7faa5ba621c8b3d7d05bb9e51a7506108251d4d5dbe542ca66fc7bb52aacb02b6583838360405162004eef939291906200a44b565b60405180910390a1505050565b600054630100000090046001600160a01b0316331462004f2f576040516306fbb1e360e01b815260040160405180910390fd5b60005462010000900460ff161562004f5a57604051631785c68160e01b815260040160405180910390fd5b6000805462ff00001916620100001781556040517f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e7529190a1565b600062004fa3603f8462007d41565b62004fc15760405163056e881160e01b815260040160405180910390fd5b6001600160a01b0383811660009081526041602052604090819020600201549051636bbf224960e01b815260048101859052911690636bbf2249906024015b602060405180830381865afa1580156200501e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062005044919062009d80565b90505b92915050565b60005462010000900460ff16156200507857604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620050aa5760405163b1d02c3d60e01b815260040160405180910390fd5b81620050b8603f8262007d41565b620050d65760405163056e881160e01b815260040160405180910390fd5b6037543490811015620050fc5760405163dc6f0bdd60e01b815260040160405180910390fd5b6001600160a01b0380851660009081526041602090815260408083208151610160810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180543394916080840191620051649062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620051929062009cd1565b8015620051e35780601f10620051b757610100808354040283529160200191620051e3565b820191906000526020600020905b815481529060010190602001808311620051c557829003601f168201915b50505050508152602001600582016040518060800160405290816000820180546200520e9062009cd1565b80601f01602080910402602001604051908101604052809291908181526020018280546200523c9062009cd1565b80156200528d5780601f1062005261576101008083540402835291602001916200528d565b820191906000526020600020905b8154815290600101906020018083116200526f57829003601f168201915b50505050508152602001600182018054620052a89062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620052d69062009cd1565b8015620053275780601f10620052fb5761010080835404028352916020019162005327565b820191906000526020600020905b8154815290600101906020018083116200530957829003601f168201915b50505050508152602001600282018054620053429062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620053709062009cd1565b8015620053c15780601f106200539557610100808354040283529160200191620053c1565b820191906000526020600020905b815481529060010190602001808311620053a357829003601f168201915b50505050508152602001600382018054620053dc9062009cd1565b80601f01602080910402602001604051908101604052809291908181526020018280546200540a9062009cd1565b80156200545b5780601f106200542f576101008083540402835291602001916200545b565b820191906000526020600020905b8154815290600101906020018083116200543d57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b815481526020019060010190808311620054e75750505050508152505090508060e0015180156200552a5750856001600160a01b0316826001600160a01b031614155b156200554957604051636468920360e01b815260040160405180910390fd5b60408082015190516317066a5760e21b81526001600160a01b0384811660048301526000921690635c19a95c90869060240160206040518083038185885af11580156200559a573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190620055c1919062009d80565b9050826001600160a01b0316876001600160a01b03166000805160206200b757833981519152838760405162005601929190918252602082015260400190565b60405180910390a36040808301519051633041949b60e01b815261200591633041949b91620056369190879060040162009d07565b600060405180830381600087803b1580156200565157600080fd5b505af115801562005666573d6000803e3d6000fd5b50505050851562001744576040516372f6ad8f60e11b81526120059063e5ed5b1e906200569a9086908b9060040162009d07565b600060405180830381600087803b158015620056b557600080fd5b505af1158015620056ca573d6000803e3d6000fd5b5050505050505050505050565b620057036040518060800160405280606081526020016060815260200160608152602001606081525090565b8162005711603f8262007d41565b6200572f5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b03831660009081526041602052604090819020815160808101909252600501805482908290620057669062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620057949062009cd1565b8015620057e55780601f10620057b957610100808354040283529160200191620057e5565b820191906000526020600020905b815481529060010190602001808311620057c757829003601f168201915b50505050508152602001600182018054620058009062009cd1565b80601f01602080910402602001604051908101604052809291908181526020018280546200582e9062009cd1565b80156200587f5780601f1062005853576101008083540402835291602001916200587f565b820191906000526020600020905b8154815290600101906020018083116200586157829003601f168201915b505050505081526020016002820180546200589a9062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620058c89062009cd1565b8015620059195780601f10620058ed5761010080835404028352916020019162005919565b820191906000526020600020905b815481529060010190602001808311620058fb57829003601f168201915b50505050508152602001600382018054620059349062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620059629062009cd1565b8015620059b35780601f106200598757610100808354040283529160200191620059b3565b820191906000526020600020905b8154815290600101906020018083116200599557829003601f168201915b505050505081525050915050919050565b60005462010000900460ff1615620059ef57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161562005a215760405163b1d02c3d60e01b815260040160405180910390fd5b62005a2d828262008d6d565b5050565b336110071462005a5957604051630f22c43960e41b8152611007600482015260240162001133565b62005ac66040518060400160405280601081526020016f1d1c985b9cd9995c91d85cd31a5b5a5d60821b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008e799050565b1562005b81576020811462005af85783838383604051630a5a604160e01b81526004016200113394939291906200a46a565b604080516020601f840181900481028201810190925282815260009162005b3b91858580838501838280828437600092019190915250929392505062008ed69050565b90506108fc81108062005b4f575061271081115b1562005b785784848484604051630a5a604160e01b81526004016200113394939291906200a46a565b6035556200688b565b62005bf26040518060400160405280601481526020017336b4b729b2b6332232b632b3b0ba34b7b721272160611b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008e799050565b1562005cbc576020811462005c245783838383604051630a5a604160e01b81526004016200113394939291906200a46a565b604080516020601f840181900481028201810190925282815260009162005c6791858580838501838280828437600092019190915250929392505062008ed69050565b9050683635c9adc5dea0000081108062005c8a575069152d02c7e14af680000081115b1562005cb35784848484604051630a5a604160e01b81526004016200113394939291906200a46a565b6036556200688b565b62005d2f604051806040016040528060168152602001756d696e44656c65676174696f6e424e424368616e676560501b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008e799050565b1562005df6576020811462005d615783838383604051630a5a604160e01b81526004016200113394939291906200a46a565b604080516020601f840181900481028201810190925282815260009162005da491858580838501838280828437600092019190915250929392505062008ed69050565b905067016345785d8a000081108062005dc45750678ac7230489e8000081115b1562005ded5784848484604051630a5a604160e01b81526004016200113394939291906200a46a565b6037556200688b565b62005e67604051806040016040528060148152602001736d6178456c656374656456616c696461746f727360601b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008e799050565b1562005f1f576020811462005e995783838383604051630a5a604160e01b81526004016200113394939291906200a46a565b604080516020601f840181900481028201810190925282815260009162005edc91858580838501838280828437600092019190915250929392505062008ed69050565b905080158062005eed57506101f481115b1562005f165784848484604051630a5a604160e01b81526004016200113394939291906200a46a565b6038556200688b565b62005f886040518060400160405280600c81526020016b1d5b989bdb9914195c9a5bd960a21b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008e799050565b1562006045576020811462005fba5783838383604051630a5a604160e01b81526004016200113394939291906200a46a565b604080516020601f840181900481028201810190925282815260009162005ffd91858580838501838280828437600092019190915250929392505062008ed69050565b90506203f48081108062006013575062278d0081115b156200603c5784848484604051630a5a604160e01b81526004016200113394939291906200a46a565b6039556200688b565b620060b360405180604001604052806011815260200170726564656c65676174654665655261746560781b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008e799050565b15620061605760208114620060e55783838383604051630a5a604160e01b81526004016200113394939291906200a46a565b604080516020601f84018190048102820181019092528281526000916200612891858580838501838280828437600092019190915250929392505062008ed69050565b90506064811115620061575784848484604051630a5a604160e01b81526004016200113394939291906200a46a565b603a556200688b565b620061d060405180604001604052806013815260200172191bdddb9d1a5b5954db185cda105b5bdd5b9d606a1b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008e799050565b15620062915760208114620062025783838383604051630a5a604160e01b81526004016200113394939291906200a46a565b604080516020601f84018190048102820181019092528281526000916200624591858580838501838280828437600092019190915250929392505062008ed69050565b9050674563918244f400008110806200625f5750603c5481115b15620062885784848484604051630a5a604160e01b81526004016200113394939291906200a46a565b603b556200688b565b620062ff6040518060400160405280601181526020017019995b1bdb9e54db185cda105b5bdd5b9d607a1b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008e799050565b15620063c25760208114620063315783838383604051630a5a604160e01b81526004016200113394939291906200a46a565b604080516020601f84018190048102820181019092528281526000916200637491858580838501838280828437600092019190915250929392505062008ed69050565b905068056bc75e2d63100000811080620063905750603b548111155b15620063b95784848484604051630a5a604160e01b81526004016200113394939291906200a46a565b603c556200688b565b6200642f6040518060400160405280601081526020016f646f776e74696d654a61696c54696d6560801b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008e799050565b15620064ec5760208114620064615783838383604051630a5a604160e01b81526004016200113394939291906200a46a565b604080516020601f8401819004810282018101909252828152600091620064a491858580838501838280828437600092019190915250929392505062008ed69050565b90506202a300811080620064ba5750603e548110155b15620064e35784848484604051630a5a604160e01b81526004016200113394939291906200a46a565b603d556200688b565b620065576040518060400160405280600e81526020016d66656c6f6e794a61696c54696d6560901b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008e799050565b15620066145760208114620065895783838383604051630a5a604160e01b81526004016200113394939291906200a46a565b604080516020601f8401819004810282018101909252828152600091620065cc91858580838501838280828437600092019190915250929392505062008ed69050565b9050620d2f00811080620065e25750603d548111155b156200660b5784848484604051630a5a604160e01b81526004016200113394939291906200a46a565b603e556200688b565b6200668e6040518060400160405280601c81526020017f6d617846656c6f6e794265747765656e42726561746865426c6f636b0000000081525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008e799050565b156200673a5760208114620066c05783838383604051630a5a604160e01b81526004016200113394939291906200a46a565b604080516020601f84018190048102820181019092528281526000916200670391858580838501838280828437600092019190915250929392505062008ed69050565b905080600003620067315784848484604051630a5a604160e01b81526004016200113394939291906200a46a565b604a556200688b565b620067a86040518060400160405280601181526020017039ba30b5b2a43ab1283937ba32b1ba37b960791b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008e799050565b15620068685760148114620067da5783838383604051630a5a604160e01b81526004016200113394939291906200a46a565b600062006822601484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed69050565b90506001600160a01b038116620068565784848484604051630a5a604160e01b81526004016200113394939291906200a46a565b620068618162008edb565b506200688b565b838383836040516325ee20d560e21b81526004016200113394939291906200a46a565b7ff1ce9b2cbf50eeb05769a29e2543fd350cab46894a7dd9978a12d534bb20e63384848484604051620068c294939291906200a46a565b60405180910390a150505050565b60005462010000900460ff1615620068fb57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff16156200692d5760405163b1d02c3d60e01b815260040160405180910390fd5b816000816001600160401b038111156200694b576200694b62009554565b60405190808252806020026020018201604052801562006975578160200160208202803683370190505b5090506000805b8381101562006a7357620069be8787838181106200699e576200699e62009e56565b9050602002016020810190620069b59190620093e3565b603f9062007d41565b620069dc5760405163056e881160e01b815260040160405180910390fd5b60416000888884818110620069f557620069f562009e56565b905060200201602081019062006a0c9190620093e3565b6001600160a01b039081168252602082019290925260400160002060020154845191169250829084908390811062006a485762006a4862009e56565b6001600160a01b039092166020928302919091019091015262006a6b8162009ebb565b90506200697c565b50604051634484077560e01b815261200590634484077590620027f4908590889060040162009e6c565b606080600062006aae603f620088d1565b90508085101562006c7257831562006ac7578362006ac9565b805b935060008462006ada878462009e26565b1162006af25762006aec868362009e26565b62006af4565b845b9050806001600160401b0381111562006b115762006b1162009554565b60405190808252806020026020018201604052801562006b3b578160200160208202803683370190505b509350806001600160401b0381111562006b595762006b5962009554565b60405190808252806020026020018201604052801562006b83578160200160208202803683370190505b50925060005b8181101562006c6f5762006ba262003966828962009d6a565b85828151811062006bb75762006bb762009e56565b60200260200101906001600160a01b031690816001600160a01b0316815250506041600086838151811062006bf05762006bf062009e56565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060020160009054906101000a90046001600160a01b031684828151811062006c445762006c4462009e56565b6001600160a01b039092166020928302919091019091015262006c678162009ebb565b905062006b89565b50505b9250925092565b336110011462006ca157604051630f22c43960e41b8152611001600482015260240162001133565b60005462010000900460ff161562006ccc57604051631785c68160e01b815260040160405180910390fd5b6001600160a01b038082166000908152604360205260409020541662006cf4603f8262007d41565b62006d125760405163056e881160e01b815260040160405180910390fd5b6001600160a01b03811660009081526041602052604081209062006d3a620151804262009d47565b604a546000828152604b60205260409020549192501162006d6e5760405163bd52fcdb60e01b815260040160405180910390fd5b6000818152604b6020526040812080546001929062006d8f90849062009d6a565b90915550506001600160a01b0384166000908152604460205260409020541580159062006de457506001600160a01b038416600090815260446020526040902054429062006de290620151809062009d6a565b105b1562006e03576040516330abb81d60e21b815260040160405180910390fd5b60008062006e1385600062007d64565b915091508162006e3657604051631b919bb160e11b815260040160405180910390fd5b6002840154603c5460405163045bc4d160e41b815260048101919091526000916001600160a01b0316906345bc4d10906024016020604051808303816000875af115801562006e89573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062006eaf919062009d80565b905062006ebd858362007dee565b856001600160a01b03167f6e9a2ee7aee95665e3a774a212eb11441b217e3e4656ab9563793094689aabb28383600060405162006efd9392919062009db0565b60405180910390a26002850154604051633041949b60e01b815261200591633041949b916200569a916001600160a01b0316908a9060040162009d07565b6001600160a01b038082166000908152604160209081526040808320815161016081018352815486168152600182015486169381019390935260028101549094169082015260038301546060820152600483018054929384938493849390929160808401919062006fac9062009cd1565b80601f016020809104026020016040519081016040528092919081815260200182805462006fda9062009cd1565b80156200702b5780601f1062006fff576101008083540402835291602001916200702b565b820191906000526020600020905b8154815290600101906020018083116200700d57829003601f168201915b5050505050815260200160058201604051806080016040529081600082018054620070569062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620070849062009cd1565b8015620070d55780601f10620070a957610100808354040283529160200191620070d5565b820191906000526020600020905b815481529060010190602001808311620070b757829003601f168201915b50505050508152602001600182018054620070f09062009cd1565b80601f01602080910402602001604051908101604052809291908181526020018280546200711e9062009cd1565b80156200716f5780601f1062007143576101008083540402835291602001916200716f565b820191906000526020600020905b8154815290600101906020018083116200715157829003601f168201915b505050505081526020016002820180546200718a9062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620071b89062009cd1565b8015620072095780601f10620071dd5761010080835404028352916020019162007209565b820191906000526020600020905b815481529060010190602001808311620071eb57829003601f168201915b50505050508152602001600382018054620072249062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620072529062009cd1565b8015620072a35780601f106200727757610100808354040283529160200191620072a3565b820191906000526020600020905b8154815290600101906020018083116200728557829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b8154815260200190600101908083116200732f5750505091909252505050606081015160e0820151610100909201519097919650945092505050565b60005462010000900460ff16156200739657604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620073c85760405163b1d02c3d60e01b815260040160405180910390fd5b33620073d6603f8262007d41565b620073f45760405163056e881160e01b815260040160405180910390fd5b336000818152604160205260409020600c81015442906200741a90620151809062009d6a565b11156200743a57604051631f92cdbd60e11b815260040160405180910390fd5b6005810180546200744b9062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620074799062009cd1565b8015620074ca5780601f106200749e57610100808354040283529160200191620074ca565b820191906000526020600020905b815481529060010190602001808311620074ac57829003601f168201915b5050508287525085916005840191508190620074e790826200a495565b5060208201516001820190620074fe90826200a495565b50604082015160028201906200751590826200a495565b50606082015160038201906200752c90826200a495565b505042600c830155506040516001600160a01b038316907f85d6366b336ade7f106987ec7a8eac1e8799e508aeab045a39d2f63e0dc969d990600090a250505050565b60005462010000900460ff16156200759a57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620075cc5760405163b1d02c3d60e01b815260040160405180910390fd5b828114620075ed576040516341abc80160e01b815260040160405180910390fd5b60005b838110156200765e576200764b85858381811062007612576200761262009e56565b9050602002016020810190620076299190620093e3565b8484848181106200763e576200763e62009e56565b9050602002013562008d6d565b620076568162009ebb565b9050620075f0565b5050505050565b6001600160a01b0380821660009081526041602090815260408083208151610160810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180549293849390916080840191620076d09062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620076fe9062009cd1565b80156200774f5780601f1062007723576101008083540402835291602001916200774f565b820191906000526020600020905b8154815290600101906020018083116200773157829003601f168201915b50505050508152602001600582016040518060800160405290816000820180546200777a9062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620077a89062009cd1565b8015620077f95780601f10620077cd57610100808354040283529160200191620077f9565b820191906000526020600020905b815481529060010190602001808311620077db57829003601f168201915b50505050508152602001600182018054620078149062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620078429062009cd1565b8015620078935780601f10620078675761010080835404028352916020019162007893565b820191906000526020600020905b8154815290600101906020018083116200787557829003601f168201915b50505050508152602001600282018054620078ae9062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620078dc9062009cd1565b80156200792d5780601f1062007901576101008083540402835291602001916200792d565b820191906000526020600020905b8154815290600101906020018083116200790f57829003601f168201915b50505050508152602001600382018054620079489062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620079769062009cd1565b8015620079c75780601f106200799b57610100808354040283529160200191620079c7565b820191906000526020600020905b815481529060010190602001808311620079a957829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b81548152602001906001019080831162007a535750505091909252505050604001519392505050565b600062007a8b603f8462007d41565b62007aa95760405163056e881160e01b815260040160405180910390fd5b6001600160a01b038381166000908152604160205260409081902060020154905163aa1966cd60e01b81526004810185905291169063aa1966cd9060240162005000565b60005462010000900460ff161562007b1857604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161562007b4a5760405163b1d02c3d60e01b815260040160405180910390fd5b3362007b58603f8262007d41565b62007b765760405163056e881160e01b815260040160405180910390fd5b3362007b86818787878762008a8c565b62007ba457604051631647e3cb60e11b815260040160405180910390fd5b60006001600160a01b03166045878760405162007bc392919062009d21565b908152604051908190036020019020546001600160a01b031614158062007c0d57506048868660405162007bf992919062009d21565b9081526040519081900360200190205460ff165b1562007c2c576040516311fdb94760e01b815260040160405180910390fd5b6001600160a01b0381166000908152604160205260409020600c810154429062007c5b90620151809062009d6a565b111562007c7b57604051631f92cdbd60e11b815260040160405180910390fd5b4260468260040160405162007c9191906200a55d565b908152604051908190036020019020556004810162007cb287898362009f7f565b5042600c820155604051829060459062007cd0908a908a9062009d21565b90815260405190819003602001812080546001600160a01b039384166001600160a01b0319909116179055908316907f783156582145bd0ff7924fae6953ba054cf1233eb60739a200ddb10de068ff0d9062007d30908a908a906200a250565b60405180910390a250505050505050565b6001600160a01b0381166000908152600183016020526040812054151562005044565b6000806000848460405160200162007d7e9291906200a5db565b60408051601f1981840301815291815281516020928301206000818152604c9093529120549091504281111562007dbe5760008093509350505062007de7565b603e5462007dcd904262009d6a565b6000928352604c6020526040909220829055506001925090505b9250929050565b8154604051631507fdb760e11b81526001600160a01b03909116600482015261100090632a0ffb6e90602401600060405180830381600087803b15801562007e3557600080fd5b505af115801562007e4a573d6000803e3d6000fd5b505050506000600162007e5e603f620088d1565b62007e6a919062009e26565b604954108015915062007f285760405163d31f968d60e01b81526110006004820152600860248201526120009063d31f968d90604401602060405180830381865afa15801562007ebe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062007ee4919062009ddf565b62007f285760018301546040516001600160a01b03909116907f2afdc18061ac21cff7d9f11527ab9c8dec6fabd4edf6f894ed634bebd6a20d4590600090a2505050565b82600b015482111562007f3d57600b83018290555b600a83015460ff1662007fb057600a8301805460ff191660019081179091556049805460009062007f7090849062009d6a565b909155505060018301546040516001600160a01b03909116907f4905ac32602da3fb8b4b7b00c285e5fc4c6c2308cc908b4a1e4e9625a29c90a390600090a25b505050565b60408051608080820183526000808352602080840182905283850182905260608085018390528551938401865282845283820183905283860183905283018290528451808601865282815281018290528451808601909552855185528581019085015291928290620080279062008f47565b90506000805b620080388362008fba565b156200810b57806000036200806d576200805c620080568462008fe0565b62009044565b6001600160a01b03168452620080f8565b80600103620080995762008085620080568462008fe0565b6001600160a01b03166020850152620080f8565b80600203620080c557620080b1620080568462008fe0565b6001600160a01b03166040850152620080f8565b80600303620080f257620080e3620080dd8462008fe0565b6200905c565b606085015260019150620080f8565b6200810b565b620081038162009ebb565b90506200802d565b5091959194509092505050565b6000805462010000900460ff16156200814457604051631785c68160e01b815260040160405180910390fd5b6020808301516001600160a01b031660009081526001909152604090205460ff16806200817c575060208201516001600160a01b0316155b156200819b5760405163b1d02c3d60e01b815260040160405180910390fd5b8151620081ab90603f9062007d41565b620081b857506002919050565b81516001600160a01b03908116600090815260416020908152604080832081516101608101835281548616815260018201548616938101939093526002810154909416908201526003830154606082015260048301805492939192608084019190620082249062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620082529062009cd1565b8015620082a35780601f106200827757610100808354040283529160200191620082a3565b820191906000526020600020905b8154815290600101906020018083116200828557829003601f168201915b5050505050815260200160058201604051806080016040529081600082018054620082ce9062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620082fc9062009cd1565b80156200834d5780601f1062008321576101008083540402835291602001916200834d565b820191906000526020600020905b8154815290600101906020018083116200832f57829003601f168201915b50505050508152602001600182018054620083689062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620083969062009cd1565b8015620083e75780601f10620083bb57610100808354040283529160200191620083e7565b820191906000526020600020905b815481529060010190602001808311620083c957829003601f168201915b50505050508152602001600282018054620084029062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620084309062009cd1565b8015620084815780601f10620084555761010080835404028352916020019162008481565b820191906000526020600020905b8154815290600101906020018083116200846357829003601f168201915b505050505081526020016003820180546200849c9062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620084ca9062009cd1565b80156200851b5780601f10620084ef576101008083540402835291602001916200851b565b820191906000526020600020905b815481529060010190602001808311620084fd57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b815481526020019060010190808311620085a75750505050508152505090508060e001518015620085f2575082600001516001600160a01b031683602001516001600160a01b031614155b15620086015750600392915050565b6040808201516060850151602086015192516317066a5760e21b81526001600160a01b03938416600482015260009390921691635c19a95c919060240160206040518083038185885af11580156200865d573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019062008684919062009d80565b905083602001516001600160a01b031684600001516001600160a01b03166000805160206200b757833981519152838760600151604051620086d0929190918252602082015260400190565b60405180910390a383602001516001600160a01b031684600001516001600160a01b03167f607b17598da6bdca05650a2fc08bd2bc8e38c3236806a0fa8e0daabc1d6cb1d883876060015160405162008733929190918252602082015260400190565b60405180910390a360408083015160208601519151633041949b60e01b815261200592633041949b926200876d9290919060040162009d07565b600060405180830381600087803b1580156200878857600080fd5b505af11580156200879d573d6000803e3d6000fd5b506000979650505050505050565b6001600160a01b0381166000908152604160205260409020600a81015460ff1615620087d5575050565b6036546002820154604051630913db4760e01b81526001600160a01b03858116600483015290911690630913db4790602401602060405180830381865afa15801562008825573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200884b919062009d80565b101562005a2d576200886d81603d544262008867919062009d6a565b62007dee565b80546040516335409f7f60e01b81526001600160a01b039091166004820152611000906335409f7f90602401600060405180830381600087803b158015620088b457600080fd5b505af1158015620088c9573d6000803e3d6000fd5b505050505050565b600062005047825490565b600062005044838362009134565b60008082905060038151108062008902575060098151115b15620089115750600092915050565b60418160008151811062008929576200892962009e56565b016020015160f81c10806200895b5750605a8160008151811062008951576200895162009e56565b016020015160f81c115b156200896a5750600092915050565b60015b815181101562008a825760308282815181106200898e576200898e62009e56565b016020015160f81c1080620089bf57506039828281518110620089b557620089b562009e56565b016020015160f81c115b801562008a0f57506041828281518110620089de57620089de62009e56565b016020015160f81c108062008a0f5750605a82828151811062008a055762008a0562009e56565b016020015160f81c115b801562008a5f5750606182828151811062008a2e5762008a2e62009e56565b016020015160f81c108062008a5f5750607a82828151811062008a555762008a5562009e56565b016020015160f81c115b1562008a6f575060009392505050565b62008a7a8162009ebb565b90506200896d565b5060019392505050565b600060308414158062008aa0575060608214155b1562008aaf5750600062008bb3565b60008686864660405160200162008aca94939291906200a619565b60408051808303601f1901815282825280516020918201208184528383019092529092506000919060208201818036833701905050905081602082015260008186868a8a60405160200162008b249594939291906200a646565b60408051808303601f190181526001808452838301909252925060009190602082018180368337019050509050815160016020830182602086016066600019fa62008b6e57600080fd5b5060008160008151811062008b875762008b8762009e56565b016020015160f81c90506001811462008ba95760009550505050505062008bb3565b6001955050505050505b95945050505050565b60008061200361dead60405162008bd390620093bf565b6001600160a01b03928316815291166020820152606060408201819052600090820152608001604051809103906000f08015801562008c16573d6000803e3d6000fd5b509050806001600160a01b031663f399e22e3486866040518463ffffffff1660e01b815260040162008c4a9291906200a67e565b6000604051808303818588803b15801562008c6457600080fd5b505af115801562008c79573d6000803e3d6000fd5b50506040516001600160a01b038086169450881692507fd481492e4e93bb36b4c12a5af93f03be3bf04b454dfbc35dd2663fa26f44d5b09150600090a39392505050565b600062005044836001600160a01b03841662009161565b600054610100900460ff1662008d415760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840162001133565b600080546001600160a01b039092166301000000026301000000600160b81b0319909216919091179055565b8162008d7b603f8262007d41565b62008d995760405163056e881160e01b815260040160405180910390fd5b6001600160a01b03838116600090815260416020526040808220600201549051635569f64b60e11b8152336004820152602481018690529192169063aad3ec96906044016020604051808303816000875af115801562008dfd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062008e23919062009d80565b9050336001600160a01b0316846001600160a01b03167ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd39926838360405162008e6b91815260200190565b60405180910390a350505050565b60008160405160200162008e8e91906200a42d565b604051602081830303815290604052805190602001208360405160200162008eb791906200a42d565b6040516020818303038152906040528051906020012014905092915050565b015190565b600080546040516001600160a01b0380851693630100000090930416917f44fc1b38a4abaa91ebd1b628a5b259a698f86238c8217d68f516e87769c60c0b91a3600080546001600160a01b039092166301000000026301000000600160b81b0319909216919091179055565b604080516080810182526000918101828152606082018390528152602081019190915262008f7582620091b3565b62008f7f57600080fd5b600062008f908360200151620091e6565b836020015162008fa1919062009d6a565b6040805180820190915293845260208401525090919050565b8051805160208201516000929162008fd29162009d6a565b836020015110915050919050565b604080518082019091526000808252602082015262008fff8262008fba565b6200900957600080fd5b602082015160006200901b8262009275565b905062009029818362009d6a565b60209485015260408051808201909152908152928301525090565b80516000906015146200905657600080fd5b62005047825b8051600090158015906200907257508151602110155b6200907c57600080fd5b60006200908d8360200151620091e6565b90508083600001511015620090e55760405162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015260640162001133565b8251600090620090f790839062009e26565b90506000808386602001516200910e919062009d6a565b90508051915060208310156200912b57826020036101000a820491505b50949350505050565b60008260000182815481106200914e576200914e62009e56565b9060005260206000200154905092915050565b6000818152600183016020526040812054620091aa5750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915562005047565b50600062005047565b80516000908103620091c757506000919050565b6020820151805160001a9060c082101562008a82575060009392505050565b8051600090811a6080811015620092005750600092915050565b60b88110806200921d575060c081108015906200921d575060f881105b156200922c5750600192915050565b60c0811015620092675762009244600160b86200a6a4565b620092539060ff168262009e26565b6200926090600162009d6a565b9392505050565b62009244600160f86200a6a4565b80516000908190811a6080811015620092925760019150620093b8565b60b8811015620092be57620092a960808262009e26565b620092b690600162009d6a565b9150620093b8565b60c08110156200933757600060b78203600186019550806020036101000a865104915060018101820193505080831015620093305760405162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015260640162001133565b50620093b8565b60f88110156200934e57620092a960c08262009e26565b600060f78203600186019550806020036101000a865104915060018101820193505080831015620093b65760405162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015260640162001133565b505b5092915050565b610e96806200a6c183390190565b6001600160a01b03811681146200174b57600080fd5b600060208284031215620093f657600080fd5b81356200926081620093cd565b60008083601f8401126200941657600080fd5b5081356001600160401b038111156200942e57600080fd5b60208301915083602082850101111562007de757600080fd5b600080602083850312156200945b57600080fd5b82356001600160401b038111156200947257600080fd5b620094808582860162009403565b90969095509350505050565b600080600060408486031215620094a257600080fd5b833560ff81168114620094b457600080fd5b925060208401356001600160401b03811115620094d057600080fd5b620094de8682870162009403565b9497909650939450505050565b60005b8381101562009508578181015183820152602001620094ee565b50506000910152565b600081518084526200952b816020860160208601620094eb565b601f01601f19169290920160200192915050565b60208152600062005044602083018462009511565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b03811182821017156200958f576200958f62009554565b60405290565b604051601f8201601f191681016001600160401b0381118282101715620095c057620095c062009554565b604052919050565b60006001600160401b03821115620095e457620095e462009554565b50601f01601f191660200190565b6000620096096200960384620095c8565b62009595565b90508281528383830111156200961e57600080fd5b828260208301376000602084830101529392505050565b6000602082840312156200964857600080fd5b81356001600160401b038111156200965f57600080fd5b8201601f810184136200967157600080fd5b6200968284823560208401620095f2565b949350505050565b600080604083850312156200969e57600080fd5b8235620096ab81620093cd565b946020939093013593505050565b80151581146200174b57600080fd5b60008060008060808587031215620096df57600080fd5b8435620096ec81620093cd565b93506020850135620096fe81620093cd565b92506040850135915060608501356200971781620096b9565b939692955090935050565b6001600160401b03811681146200174b57600080fd5b6000602082840312156200974b57600080fd5b8135620092608162009722565b600080604083850312156200976c57600080fd5b50508035926020909101359150565b600081518084526020808501945080840160005b83811015620097b65781516001600160a01b0316875295820195908201906001016200978f565b509495945050505050565b608081526000620097d660808301876200977b565b82810360208481019190915286518083528782019282019060005b818110156200980f57845183529383019391830191600101620097f1565b5050848103604086015286518082528282019350600581901b8201830183890160005b838110156200986457601f198584030187526200985183835162009511565b9686019692509085019060010162009832565b5050809550505050505082606083015295945050505050565b600080600080600080600087890360e08112156200989a57600080fd5b8835620098a781620093cd565b975060208901356001600160401b0380821115620098c457600080fd5b620098d28c838d0162009403565b909950975060408b0135915080821115620098ec57600080fd5b620098fa8c838d0162009403565b90975095508591506060605f19840112156200991557600080fd5b60608b01945060c08b01359250808311156200993057600080fd5b505088016080818b0312156200994557600080fd5b8091505092959891949750929550565b600080604083850312156200996957600080fd5b82356200997681620093cd565b915060208301356200998881620096b9565b809150509250929050565b602081526000825160806020840152620099b160a084018262009511565b90506020840151601f1980858403016040860152620099d1838362009511565b92506040860151915080858403016060860152620099f0838362009511565b925060608601519150808584030160808601525062008bb3828262009511565b6000806000806040858703121562009a2757600080fd5b84356001600160401b038082111562009a3f57600080fd5b62009a4d8883890162009403565b9096509450602087013591508082111562009a6757600080fd5b5062009a768782880162009403565b95989497509550505050565b60008083601f84011262009a9557600080fd5b5081356001600160401b0381111562009aad57600080fd5b6020830191508360208260051b850101111562007de757600080fd5b60008060006040848603121562009adf57600080fd5b83356001600160401b0381111562009af657600080fd5b62009b048682870162009a82565b909450925050602084013562009b1a81620093cd565b809150509250925092565b60608152600062009b3a60608301866200977b565b828103602084015262009b4e81866200977b565b915050826040830152949350505050565b600082601f83011262009b7157600080fd5b6200504483833560208501620095f2565b60006020828403121562009b9557600080fd5b81356001600160401b038082111562009bad57600080fd5b908301906080828603121562009bc257600080fd5b62009bcc6200956a565b82358281111562009bdc57600080fd5b62009bea8782860162009b5f565b82525060208301358281111562009c0057600080fd5b62009c0e8782860162009b5f565b60208301525060408301358281111562009c2757600080fd5b62009c358782860162009b5f565b60408301525060608301358281111562009c4e57600080fd5b62009c5c8782860162009b5f565b60608301525095945050505050565b6000806000806040858703121562009c8257600080fd5b84356001600160401b038082111562009c9a57600080fd5b62009ca88883890162009a82565b9096509450602087013591508082111562009cc257600080fd5b5062009a768782880162009a82565b600181811c9082168062009ce657607f821691505b6020821081036200458a57634e487b7160e01b600052602260045260246000fd5b6001600160a01b0392831681529116602082015260400190565b8183823760009101908152919050565b634e487b7160e01b600052601160045260246000fd5b60008262009d6557634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111562005047576200504762009d31565b60006020828403121562009d9357600080fd5b5051919050565b634e487b7160e01b600052602160045260246000fd5b83815260208101839052606081016003831062009dd15762009dd162009d9a565b826040830152949350505050565b60006020828403121562009df257600080fd5b81516200926081620096b9565b828152604081016004831062009e195762009e1962009d9a565b8260208301529392505050565b8181038181111562005047576200504762009d31565b808202811582820484141762005047576200504762009d31565b634e487b7160e01b600052603260045260246000fd5b60408152600062009e8160408301856200977b565b905060018060a01b03831660208301529392505050565b6001600160401b03828116828216039080821115620093b857620093b862009d31565b60006001820162009ed05762009ed062009d31565b5060010190565b6000808335601e1984360301811262009eef57600080fd5b8301803591506001600160401b0382111562009f0a57600080fd5b60200191503681900382131562007de757600080fd5b601f82111562007fb057600081815260208120601f850160051c8101602086101562009f495750805b601f850160051c820191505b81811015620088c95782815560010162009f55565b600019600383901b1c191660019190911b1790565b6001600160401b0383111562009f995762009f9962009554565b62009fb18362009faa835462009cd1565b8362009f20565b6000601f84116001811462009fe4576000851562009fcf5750838201355b62009fdb868262009f6a565b8455506200765e565b600083815260209020601f19861690835b828110156200a017578685013582556020948501946001909201910162009ff5565b50868210156200a0355760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b6200a053828362009ed7565b6001600160401b038111156200a06d576200a06d62009554565b6200a085816200a07e855462009cd1565b8562009f20565b6000601f8211600181146200a0b857600083156200a0a35750838201355b6200a0af848262009f6a565b8655506200a115565b600085815260209020601f19841690835b828110156200a0eb57868501358255602094850194600190920191016200a0c9565b50848210156200a1095760001960f88660031b161c19848701351681555b505060018360011b0185555b505050506200a128602083018362009ed7565b6200a13881836001860162009f7f565b50506200a149604083018362009ed7565b6200a15981836002860162009f7f565b50506200a16a606083018362009ed7565b6200a17a81836003860162009f7f565b50505050565b81356200a18d8162009722565b6001600160401b03811690508154816001600160401b0319821617835560208401356200a1ba8162009722565b6fffffffffffffffff0000000000000000604091821b166fffffffffffffffffffffffffffffffff198316841781178555908501356200a1fa8162009722565b6001600160c01b0319929092169092179190911760809190911b67ffffffffffffffff60801b1617905550565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b602081526000620096826020830184866200a227565b60006001600160401b038211156200a282576200a28262009554565b5060051b60200190565b600060208083850312156200a2a057600080fd5b82516001600160401b038111156200a2b757600080fd5b8301601f810185136200a2c957600080fd5b80516200a2da62009603826200a266565b81815260059190911b820183019083810190878311156200a2fa57600080fd5b928401925b828410156200a3255783516200a31581620093cd565b825292840192908401906200a2ff565b979650505050505050565b600060208083850312156200a34457600080fd5b82516001600160401b03808211156200a35c57600080fd5b818501915085601f8301126200a37157600080fd5b81516200a38262009603826200a266565b81815260059190911b830184019084810190888311156200a3a257600080fd5b8585015b838110156200a420578051858111156200a3c05760008081fd5b8601603f81018b136200a3d35760008081fd5b8781015160406200a3e86200960383620095c8565b8281528d828486010111156200a3fe5760008081fd5b6200a40f838c8301848701620094eb565b86525050509186019186016200a3a6565b5098975050505050505050565b600082516200a441818460208701620094eb565b9190910192915050565b60ff8416815260406020820152600062008bb36040830184866200a227565b6040815260006200a4806040830186886200a227565b82810360208401526200a3258185876200a227565b81516001600160401b038111156200a4b1576200a4b162009554565b6200a4c9816200a4c2845462009cd1565b8462009f20565b602080601f8311600181146200a4fd57600084156200a4e85750858301515b6200a4f4858262009f6a565b865550620088c9565b600085815260208120601f198616915b828110156200a52e578886015182559484019460019091019084016200a50d565b50858210156200a54d5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60008083546200a56d8162009cd1565b600182811680156200a58857600181146200a59e576200a5cf565b60ff19841687528215158302870194506200a5cf565b8760005260208060002060005b858110156200a5c65781548a8201529084019082016200a5ab565b50505082870194505b50929695505050505050565b6bffffffffffffffffffffffff198360601b1681526000600383106200a605576200a60562009d9a565b5060f89190911b6014820152601501919050565b6bffffffffffffffffffffffff198560601b16815282846014830137601492019182015260340192915050565b600086516200a65a818460208b01620094eb565b82018587823760009086019081528385823760009301928352509095945050505050565b6001600160a01b0383168152604060208201819052600090620096829083018462009511565b60ff828116828216039081111562005047576200504762009d3156fe608060405260405162000e9638038062000e96833981016040819052620000269162000497565b828162000036828260006200004d565b50620000449050826200008a565b505050620005ca565b6200005883620000e5565b600082511180620000665750805b1562000085576200008383836200012760201b620001691760201c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000b562000156565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000e2816200018f565b50565b620000f08162000244565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200014f838360405180606001604052806027815260200162000e6f60279139620002f8565b9392505050565b60006200018060008051602062000e4f83398151915260001b6200037760201b620001951760201c565b546001600160a01b0316919050565b6001600160a01b038116620001fa5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b806200022360008051602062000e4f83398151915260001b6200037760201b620001951760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b6200025a816200037a60201b620001981760201c565b620002be5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001f1565b80620002237f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6200037760201b620001951760201c565b6060600080856001600160a01b03168560405162000317919062000577565b600060405180830381855af49150503d806000811462000354576040519150601f19603f3d011682016040523d82523d6000602084013e62000359565b606091505b5090925090506200036d8683838762000389565b9695505050505050565b90565b6001600160a01b03163b151590565b60608315620003fd578251600003620003f5576001600160a01b0385163b620003f55760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401620001f1565b508162000409565b62000409838362000411565b949350505050565b815115620004225781518083602001fd5b8060405162461bcd60e51b8152600401620001f1919062000595565b80516001600160a01b03811681146200045657600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200048e57818101518382015260200162000474565b50506000910152565b600080600060608486031215620004ad57600080fd5b620004b8846200043e565b9250620004c8602085016200043e565b60408501519092506001600160401b0380821115620004e657600080fd5b818601915086601f830112620004fb57600080fd5b8151818111156200051057620005106200045b565b604051601f8201601f19908116603f011681019083821181831017156200053b576200053b6200045b565b816040528281528960208487010111156200055557600080fd5b6200056883602083016020880162000471565b80955050505050509250925092565b600082516200058b81846020870162000471565b9190910192915050565b6020815260008251806020840152620005b681604085016020870162000471565b601f01601f19169190910160400192915050565b61087580620005da6000396000f3fe60806040523661001357610011610017565b005b6100115b61001f6101a7565b6001600160a01b0316330361015f5760606001600160e01b0319600035166364d3180d60e11b810161005a576100536101da565b9150610157565b63587086bd60e11b6001600160e01b031982160161007a57610053610231565b63070d7c6960e41b6001600160e01b031982160161009a57610053610277565b621eb96f60e61b6001600160e01b03198216016100b9576100536102a8565b63a39f25e560e01b6001600160e01b03198216016100d9576100536102e8565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b6101676102fc565b565b606061018e83836040518060600160405280602781526020016108426027913961030c565b9392505050565b90565b6001600160a01b03163b151590565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101e4610384565b60006101f33660048184610695565b81019061020091906106db565b905061021d8160405180602001604052806000815250600061038f565b505060408051602081019091526000815290565b60606000806102433660048184610695565b810190610250919061070c565b915091506102608282600161038f565b604051806020016040528060008152509250505090565b6060610281610384565b60006102903660048184610695565b81019061029d91906106db565b905061021d816103bb565b60606102b2610384565b60006102bc6101a7565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b60606102f2610384565b60006102bc610412565b610167610307610412565b610421565b6060600080856001600160a01b03168560405161032991906107f2565b600060405180830381855af49150503d8060008114610364576040519150601f19603f3d011682016040523d82523d6000602084013e610369565b606091505b509150915061037a86838387610445565b9695505050505050565b341561016757600080fd5b610398836104c6565b6000825111806103a55750805b156103b6576103b48383610169565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103e46101a7565b604080516001600160a01b03928316815291841660208301520160405180910390a161040f81610506565b50565b600061041c6105af565b905090565b3660008037600080366000845af43d6000803e808015610440573d6000f35b3d6000fd5b606083156104b45782516000036104ad576001600160a01b0385163b6104ad5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161014e565b50816104be565b6104be83836105d7565b949350505050565b6104cf81610601565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6001600160a01b03811661056b5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161014e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101cb565b8151156105e75781518083602001fd5b8060405162461bcd60e51b815260040161014e919061080e565b6001600160a01b0381163b61066e5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161014e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61058e565b600080858511156106a557600080fd5b838611156106b257600080fd5b5050820193919092039150565b80356001600160a01b03811681146106d657600080fd5b919050565b6000602082840312156106ed57600080fd5b61018e826106bf565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561071f57600080fd5b610728836106bf565b9150602083013567ffffffffffffffff8082111561074557600080fd5b818501915085601f83011261075957600080fd5b81358181111561076b5761076b6106f6565b604051601f8201601f19908116603f01168101908382118183101715610793576107936106f6565b816040528281528860208487010111156107ac57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b838110156107e95781810151838201526020016107d1565b50506000910152565b600082516108048184602087016107ce565b9190910192915050565b602081526000825180602084015261082d8160408501602087016107ce565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a164736f6c6343000811000ab53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000001284214b9b9c85549ab3d2b972df0deef66ac2c9000000000000000000000000a2959d3f95eae5dc7d70144ce1b73b403b7eb6e0000000000000000000000000980a75ecd1309ea12fa2ed87a8744fbfc9b863d5000000000000000000000000b71b214cb885500844365e95cd9942c7276e7fd800000000000000000000000035552c16704d214347f29fa77f77da6d75d7c752000000000000000000000000f474cf03cceff28abc65c9cbae594f725c80e12d00000000000000000000000096c5d20b2a975c050e4220be276ace4892f4b41a00000000000000000000000047788386d0ed6c748e03a53160b4b30ed3748cc5000000000000000000000000bdfbc016c1bd481f5d8ca6f754f4b200a7ed66ce000000000000000000000000372e4887005ec21a5aff9ff62eda9e7713e3643700000000000000000000000055c968cf3430f3ba0534ef49ff4b3fbc9086c7ce000000000000000000000000136bd6343049c9690569db79dcd9208a57d342ad000000000000000000000000977ecef7de795cd248d77fd0d080ce3a35dec013000000000000000000000000b334ced91dff560bc9b5b3c30ae613bf335f181324d7bda8602b916d64417f0dbfe2e2e88ec9b1157bd9f596dfdb91ba26624e040000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000000308e82934ca974fdcd97f3309de967d3c9c43fa711a8d673af5d75465844bf8969c8d1948d903748ac7b8b1720fa64e50c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b973c2d38487e58fd6e145491b110080fb14ac915a0411fc78f19e09a399ddee0d20c63a75d8f930f1694544ad2dc01b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003089037a9ace3b590165ea1c0c5ac72bf600b7c88c1e435f41932c1132aae1bfa0bb68e46b96ccb12c3415e4d82af717d8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030a2750ec6dded3dcdc2f351782310b0eadc077db59abca0f0cd26776e2e7acb9f3bce40b1fa5221fd1561226c6263cc5f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b742ad4855bae330426b823e742da31f816cc83bc16d69a9134be0cfb4a1d17ec34f1b5b32d5c20440b8536b1e88f0f200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003096c9b86c3400e529bfe184056e257c07940bb664636f689e8d2027c834681f8f878b73445261034e946bb2d901b4b87800000000000000000000000000000000a164736f6c6343000811000a" + }, + "0x0000000000000000000000000000000000002003": { + "balance": "0x0", + "code": "0x6080604052600436106101e75760003560e01c8063647df75911610102578063a9664feb11610095578063d241c1ea11610064578063d241c1ea1461068d578063dd62ed3e146106cf578063f1fad104146106ef578063f399e22e1461070457600080fd5b8063a9664feb14610600578063aa1966cd14610620578063aad3ec961461064d578063c2cde2b21461066d57600080fd5b806395d89b41116100d157806395d89b411461058b578063a457c2d7146105a0578063a5d059ca146105c0578063a9059cbb146105e057600080fd5b8063647df759146104e85780636bbf22491461050857806370a082311461053557806391faf0b41461056b57600080fd5b8063313ce5671161017a5780634bf6c882116101495780634bf6c8821461048b5780634d99dd16146104a05780635c19a95c146104c05780635e607d76146104d357600080fd5b8063313ce567146103f157806339509351146104135780633a5381b51461043357806345bc4d101461046b57600080fd5b806315d1f898116101b657806315d1f8981461038657806318160ddd1461039c57806323b872dd146103b15780632f2d448a146103d157600080fd5b8063038c0023146102e157806306fdde03146103145780630913db4714610336578063095ea7b31461035657600080fd5b366102dc57336120021461021757604051630f22c43960e41b815261200260048201526024015b60405180910390fd5b60006120026001600160a01b0316631fa8882b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610259573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061027d9190611de4565b6102879042611e13565b6098546000828152609d6020908152604080832093909355609c9052908120805492935034929091906102bb908490611e35565b9250508190555034609860008282546102d49190611e35565b925050819055005b600080fd5b3480156102ed57600080fd5b506103016102fc366004611e60565b610717565b6040519081526020015b60405180910390f35b34801561032057600080fd5b50610329610747565b60405161030b9190611e84565b34801561034257600080fd5b50610301610351366004611e60565b6107d9565b34801561036257600080fd5b50610376610371366004611ed2565b6107fb565b604051901515815260200161030b565b34801561039257600080fd5b5061030160985481565b3480156103a857600080fd5b50606754610301565b3480156103bd57600080fd5b506103766103cc366004611efe565b610813565b3480156103dd57600080fd5b506103016103ec366004611e60565b610837565b3480156103fd57600080fd5b5060125b60405160ff909116815260200161030b565b34801561041f57600080fd5b5061037661042e366004611ed2565b6108fc565b34801561043f57600080fd5b50609754610453906001600160a01b031681565b6040516001600160a01b03909116815260200161030b565b34801561047757600080fd5b50610301610486366004611f3f565b61091e565b34801561049757600080fd5b50610401600881565b3480156104ac57600080fd5b506103016104bb366004611ed2565b610a11565b6103016104ce366004611e60565b610c28565b6104e66104e1366004611f58565b610c9e565b005b3480156104f457600080fd5b50610301610503366004611f3f565b610e11565b34801561051457600080fd5b50610301610523366004611f3f565b609d6020526000908152604090205481565b34801561054157600080fd5b50610301610550366004611e60565b6001600160a01b031660009081526065602052604090205490565b34801561057757600080fd5b50610301610586366004611f3f565b610e50565b34801561059757600080fd5b50610329610e8b565b3480156105ac57600080fd5b506103766105bb366004611ed2565b610e9a565b3480156105cc57600080fd5b506103016105db366004611ed2565b610f15565b3480156105ec57600080fd5b506103766105fb366004611ed2565b611016565b34801561060c57600080fd5b5061030161061b366004611ed2565b611024565b34801561062c57600080fd5b5061030161063b366004611f3f565b609c6020526000908152604090205481565b34801561065957600080fd5b50610301610668366004611ed2565b61114d565b34801561067957600080fd5b50610301610688366004611e60565b6113f0565b34801561069957600080fd5b506106ad6106a8366004611ed2565b61140e565b604080518251815260208084015190820152918101519082015260600161030b565b3480156106db57600080fd5b506103016106ea366004611f82565b611491565b3480156106fb57600080fd5b50610401601181565b6104e6610712366004611fbb565b6114bc565b6001600160a01b0381166000908152609a6020526040812054600f81810b600160801b909204900b035b92915050565b60606068805461075690612040565b80601f016020809104026020016040519081016040528092919081815260200182805461078290612040565b80156107cf5780601f106107a4576101008083540402835291602001916107cf565b820191906000526020600020905b8154815290600101906020018083116107b257829003601f168201915b5050505050905090565b6001600160a01b03811660009081526065602052604081205461074190610e50565b600033610809818585611672565b5060019392505050565b60003361082185828561168b565b61082c8585856116ff565b506001949350505050565b6001600160a01b0381166000908152609a6020526040812054600f81810b600160801b909204900b0381805b828110156108f4576001600160a01b0385166000908152609a6020526040812061088d9083611718565b6000818152609960209081526040918290208251606081018452815481526001820154928101929092526002015491810182905291925042106108da576108d384612074565b93506108e1565b50506108f4565b5050806108ed90612074565b9050610863565b509392505050565b60003361080981858561090f8383611491565b6109199190611e35565b611672565b6000336120021461094657604051630f22c43960e41b8152612002600482015260240161020e565b6097546001600160a01b03166000908152606560205260408120549061096b84610e11565b905081811161097a578061097c565b815b609754909150600090610998906001600160a01b031683611789565b6040519091506000906110029083908381818185875af1925050503d80600081146109df576040519150601f19603f3d011682016040523d82523d6000602084013e6109e4565b606091505b5050905080610a06576040516312171d8360e31b815260040160405180910390fd5b50925050505b919050565b60003361200214610a3957604051630f22c43960e41b8152612002600482015260240161020e565b81600003610a5a57604051639811e0c760e01b815260040160405180910390fd5b6001600160a01b038316600090815260656020526040902054821115610a9357604051631e9acf1760e31b815260040160405180910390fd5b610a9d8383611789565b905060006120026001600160a01b031663fc0c5ff16040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ae1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b059190611de4565b610b0f9042611e35565b6040805160608101825285815260208101859052908101829052909150600085610b38816117be565b60405160609290921b6bffffffffffffffffffffffff19166020830152603482015260540160408051601f1981840301815291815281516020928301206000818152609990935291205490915015610ba35760405163b19e911560e01b815260040160405180910390fd5b600081815260996020908152604080832085518155828601516001820155818601516002909101556001600160a01b0389168352609a9091529020610c1f90828154600160801b90819004600f0b6000818152600180860160205260409091209390935583546001600160801b03908116939091011602179055565b50505092915050565b60003361200214610c5057604051630f22c43960e41b8152612002600482015260240161020e565b34600003610c7157604051631f2a200560e01b815260040160405180910390fd5b610c7b82346117e6565b905080600003610a0c57604051639811e0c760e01b815260040160405180910390fd5b3361200214610cc457604051630f22c43960e41b8152612002600482015260240161020e565b346000612710610cde67ffffffffffffffff85168461208d565b610ce89190611e13565b90506000610cf682846120a4565b905060006120026001600160a01b0316631fa8882b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d5e9190611de4565b610d689042611e13565b6098546000828152609d6020908152604080832093909355609c905290812080549293508492909190610d9c908490611e35565b925050819055508160986000828254610db59190611e35565b9091555050609754610dd0906001600160a01b0316846117e6565b5060408051838152602081018590527ffb0e1482d62102ab9594f69d4c6d693749e3e2bf1c21af272f5456b2d5a4f6b5910160405180910390a15050505050565b6000609854600003610e36576040516307b76ce760e51b815260040160405180910390fd5b609854606754610e46908461208d565b6107419190611e13565b6000610e5b60675490565b600003610e7b57604051632fe8dae960e01b815260040160405180910390fd5b606754609854610e46908461208d565b60606069805461075690612040565b60003381610ea88286611491565b905083811015610f085760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161020e565b61082c8286868403611672565b60003361200214610f3d57604051630f22c43960e41b8152612002600482015260240161020e565b81600003610f5e57604051639811e0c760e01b815260040160405180910390fd5b6001600160a01b038316600090815260656020526040902054821115610f9757604051631e9acf1760e31b815260040160405180910390fd5b610fa18383611789565b6040519091506000906120029083908381818185875af1925050503d8060008114610fe8576040519150601f19603f3d011682016040523d82523d6000602084013e610fed565b606091505b505090508061100f576040516312171d8360e31b815260040160405180910390fd5b5092915050565b6000336108098185856116ff565b6001600160a01b0382166000908152609a6020526040812054600f81810b600160801b909204900b0360000361105c57506000610741565b81158061109057506001600160a01b0383166000908152609a6020526040902054600f81810b600160801b909204900b0382115b61109a57816110c4565b6001600160a01b0383166000908152609a6020526040902054600f81810b600160801b909204900b035b91506000805b838110156108f4576001600160a01b0385166000908152609a602052604081206110f49083611718565b600081815260996020908152604091829020825160608101845281548152600182015492810183905260029091015492810192909252919250906111389085611e35565b935050508061114690612074565b90506110ca565b6000336120021461117557604051630f22c43960e41b8152612002600482015260240161020e565b61117d61180f565b6001600160a01b0383166000908152609a6020526040902054600f81810b600160801b909204900b036000036111c65760405163ad41893760e01b815260040160405180910390fd5b8115806111fa57506001600160a01b0383166000908152609a6020526040902054600f81810b600160801b909204900b0382115b611204578161122e565b6001600160a01b0383166000908152609a6020526040902054600f81810b600160801b909204900b035b915060005b82156112e4576001600160a01b0384166000908152609a6020526040812061125a90611868565b6000818152609960209081526040918290208251606081018452815481526001820154928101929092526002015491810182905291925042101561129f5750506112e4565b6001600160a01b0386166000908152609a602052604090206112c0906118bc565b5060208101516112d09084611e35565b92506112db856120b7565b94505050611233565b80600003611305576040516303cd8e0960e21b815260040160405180910390fd5b60006120026001600160a01b031663e8f67c3b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611347573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061136b9190611de4565b90506000856001600160a01b03168284604051600060405180830381858888f193505050503d80600081146113bc576040519150601f19603f3d011682016040523d82523d6000602084013e6113c1565b606091505b50509050806113e3576040516312171d8360e31b815260040160405180910390fd5b5050600180559050610741565b6001600160a01b0381166000908152609b6020526040812054610741565b61143260405180606001604052806000815260200160008152602001600081525090565b6001600160a01b0383166000908152609a602052604081206114549084611718565b6000908152609960209081526040918290208251606081018452815481526001820154928101929092526002015491810191909152949350505050565b6001600160a01b03918216600090815260666020908152604080832093909416825291909152205490565b600054610100900460ff16158080156114dc5750600054600160ff909116105b806114f65750303b1580156114f6575060005460ff166001145b6115595760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161020e565b6000805460ff19166001179055801561157c576000805461ff0019166101001790555b33612002146115a257604051630f22c43960e41b8152612002600482015260240161020e565b600083836040516020016115b79291906120ce565b6040516020818303038152906040529050600084846040516020016115dd9291906120fe565b60405160208183030381529060405290506115f88282611941565b611600611986565b609780546001600160a01b0319166001600160a01b038816179055611624346119ad565b5050801561166c576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b604051632028747160e01b815260040160405180910390fd5b60006116978484611491565b9050600019811461166c57818110156116f25760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161020e565b61166c8484848403611672565b604051638cd22d1960e01b815260040160405180910390fd5b60008061173b61172784611b1d565b85546117369190600f0b61211c565b611b8b565b8454909150600160801b9004600f90810b9082900b1261176e57604051632d0483c560e21b815260040160405180910390fd5b600f0b60009081526001939093016020525050604090205490565b600061179482610e50565b90506117a08383611bef565b80609860008282546117b291906120a4565b90915550909392505050565b6001600160a01b0381166000908152609b602052604090208054600181018255905b50919050565b60006117f182610e11565b90506117fd8382611d23565b81609860008282546117b29190611e35565b6002600154036118615760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161020e565b6002600155565b60006118838254600f81810b600160801b909204900b131590565b156118a157604051631ed9509560e11b815260040160405180910390fd5b508054600f0b60009081526001909101602052604090205490565b60006118d78254600f81810b600160801b909204900b131590565b156118f557604051631ed9509560e11b815260040160405180910390fd5b508054600f0b6000818152600180840160205260408220805492905583546fffffffffffffffffffffffffffffffff191692016001600160801b03169190911790915590565b60018055565b600054610100900460ff166119685760405162461bcd60e51b815260040161020e90612144565b606861197483826121f3565b50606961198182826121f3565b505050565b600054610100900460ff1661193b5760405162461bcd60e51b815260040161020e90612144565b600054610100900460ff166119d45760405162461bcd60e51b815260040161020e90612144565b60006120026001600160a01b0316638a4d3fa86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3a9190611de4565b90508082111580611a5457506097546001600160a01b0316155b80611a60575060675415155b15611a7e57604051632163e6b960e21b815260040160405180910390fd5b60006120026001600160a01b0316634e6fd6c46040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ac0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ae491906122b3565b9050611af08183611d23565b6000611afc83856120a4565b609754909150611b15906001600160a01b031682611d23565b505050609855565b60006001600160ff1b03821115611b875760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b606482015260840161020e565b5090565b80600f81900b8114610a0c5760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20316044820152663238206269747360c81b606482015260840161020e565b6001600160a01b038216611c4f5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b606482015260840161020e565b6001600160a01b03821660009081526065602052604090205481811015611cc35760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b606482015260840161020e565b6001600160a01b03831660008181526065602090815260408083208686039055606780548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6001600160a01b038216611d795760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161020e565b8060676000828254611d8b9190611e35565b90915550506001600160a01b0382166000818152606560209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b600060208284031215611df657600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b600082611e3057634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561074157610741611dfd565b6001600160a01b0381168114611e5d57600080fd5b50565b600060208284031215611e7257600080fd5b8135611e7d81611e48565b9392505050565b600060208083528351808285015260005b81811015611eb157858101830151858201604001528201611e95565b506000604082860101526040601f19601f8301168501019250505092915050565b60008060408385031215611ee557600080fd5b8235611ef081611e48565b946020939093013593505050565b600080600060608486031215611f1357600080fd5b8335611f1e81611e48565b92506020840135611f2e81611e48565b929592945050506040919091013590565b600060208284031215611f5157600080fd5b5035919050565b600060208284031215611f6a57600080fd5b813567ffffffffffffffff81168114611e7d57600080fd5b60008060408385031215611f9557600080fd5b8235611fa081611e48565b91506020830135611fb081611e48565b809150509250929050565b600080600060408486031215611fd057600080fd5b8335611fdb81611e48565b9250602084013567ffffffffffffffff80821115611ff857600080fd5b818601915086601f83011261200c57600080fd5b81358181111561201b57600080fd5b87602082850101111561202d57600080fd5b6020830194508093505050509250925092565b600181811c9082168061205457607f821691505b6020821081036117e057634e487b7160e01b600052602260045260246000fd5b60006001820161208657612086611dfd565b5060010190565b808202811582820484141761074157610741611dfd565b8181038181111561074157610741611dfd565b6000816120c6576120c6611dfd565b506000190190565b65029ba30b5b2960d51b815281836006830137660810dc99591a5d60ca1b91016006810191909152600d01919050565b611cdd60f21b81528183600283013760009101600201908152919050565b808201828112600083128015821682158216171561213c5761213c611dfd565b505092915050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b634e487b7160e01b600052604160045260246000fd5b601f82111561198157600081815260208120601f850160051c810160208610156121cc5750805b601f850160051c820191505b818110156121eb578281556001016121d8565b505050505050565b815167ffffffffffffffff81111561220d5761220d61218f565b6122218161221b8454612040565b846121a5565b602080601f831160018114612256576000841561223e5750858301515b600019600386901b1c1916600185901b1785556121eb565b600085815260208120601f198616915b8281101561228557888601518255948401946001909101908401612266565b50858210156122a35787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156122c557600080fd5b8151611e7d81611e4856fea164736f6c6343000811000a" + }, + "0x0000000000000000000000000000000000002004": { + "balance": "0x0", + "code": "0x6080604052600436106103f35760003560e01c80637b3c71d311610208578063c28bc2fa11610118578063e23a9a52116100ab578063f1fad1041161007a578063f1fad10414610e46578063f23a6e6114610e5b578063f8ce560a14610e87578063fc0c546a14610ea7578063fe0d94c114610ec857600080fd5b8063e23a9a5214610d1b578063ea0217cf14610de6578063eb9019d414610e06578063ece40cc114610e2657600080fd5b8063da95691a116100e7578063da95691a14610c61578063dd4e2ba514610c81578063ddf0b00914610cc7578063deaaa7cc14610ce757600080fd5b8063c28bc2fa14610bef578063c59057e414610c02578063d07f91e914610c22578063d33219b414610c4257600080fd5b8063a7713a701161019b578063b187bd261161016a578063b187bd2614610b55578063b58131b014610b73578063bc197c8114610b88578063c01f9e3714610bb4578063c170ec0b14610bd457600080fd5b8063a7713a7014610ae0578063a890c91014610af5578063ab58fb8e14610b15578063ac43175114610b3557600080fd5b806384b0196e116101d757806384b0196e14610a5857806391ddadf414610a8057806397c3d33414610aac5780639a802a6d14610ac057600080fd5b80637b3c71d3146109ee5780637d5e81e214610a0e5780638129fc1c14610a2e5780638456cb5914610a4357600080fd5b80633932abb1116103035780634a49ac4c1161029657806354fd4d501161026557806354fd4d5014610944578063567813881461096e5780635f398a141461098e57806360c4247f146109ae57806370b0f660146109ce57600080fd5b80634a49ac4c146108b75780634bf5d7e9146108d75780634bf6c882146108ec578063533ddd141461091357600080fd5b8063417c73a7116102d2578063417c73a7146107fc578063438596321461081c578063452115d6146108675780634838d1651461088757600080fd5b80633932abb1146107795780633bccf4fd1461078f5780633e4f49e6146107af57806340e58ee5146107dc57600080fd5b8063150b7a02116103865780632656227d116103555780632656227d146106a25780632d63f693146106b55780632fe3e261146106ec578063328dd9821461072057806332b8113e1461075057600080fd5b8063150b7a02146105fb578063160cbed71461063f57806317977c611461065f57806324bc1a641461068d57600080fd5b8063046f7da2116103c2578063046f7da21461054e57806306f3f9e61461056357806306fdde0314610583578063143489d0146105a557600080fd5b8063013cf08b1461046357806301ffc9a7146104de57806302a251a31461050e578063034201811461052e57600080fd5b3661045e5730610401610edb565b6001600160a01b03161461045c5760405162461bcd60e51b815260206004820152601f60248201527f476f7665726e6f723a206d7573742073656e6420746f206578656375746f720060448201526064015b60405180910390fd5b005b600080fd5b34801561046f57600080fd5b5061048361047e366004615c8a565b610ef5565b604080519a8b526001600160a01b0390991660208b0152978901969096526060880194909452608087019290925260a086015260c085015260e084015215156101008301521515610120820152610140015b60405180910390f35b3480156104ea57600080fd5b506104fe6104f9366004615ca3565b610fb0565b60405190151581526020016104d5565b34801561051a57600080fd5b50610195545b6040519081526020016104d5565b34801561053a57600080fd5b50610520610549366004615de9565b610fc1565b34801561055a57600080fd5b5061045c6110b9565b34801561056f57600080fd5b5061045c61057e366004615c8a565b611149565b34801561058f57600080fd5b506105986111d4565b6040516104d59190615edf565b3480156105b157600080fd5b506105e36105c0366004615c8a565b60009081526101636020526040902054600160401b90046001600160a01b031690565b6040516001600160a01b0390911681526020016104d5565b34801561060757600080fd5b50610626610616366004615f07565b630a85bd0160e11b949350505050565b6040516001600160e01b031990911681526020016104d5565b34801561064b57600080fd5b5061052061065a3660046160de565b611267565b34801561066b57600080fd5b5061052061067a36600461616d565b6102c36020526000908152604090205481565b34801561069957600080fd5b50610520611352565b6105206106b03660046160de565b611378565b3480156106c157600080fd5b506105206106d0366004615c8a565b600090815261016360205260409020546001600160401b031690565b3480156106f857600080fd5b506105207fb3b3f3b703cd84ce352197dcff232b1b5d3cfb2025ce47cf04742d0651f1af8881565b34801561072c57600080fd5b5061074061073b366004615c8a565b61146b565b6040516104d59493929190616253565b34801561075c57600080fd5b5061028f546040516001600160401b0390911681526020016104d5565b34801561078557600080fd5b5061019454610520565b34801561079b57600080fd5b506105206107aa3660046162a0565b6116fd565b3480156107bb57600080fd5b506107cf6107ca366004615c8a565b611773565b6040516104d59190616304565b3480156107e857600080fd5b5061045c6107f7366004615c8a565b61177e565b34801561080857600080fd5b5061045c61081736600461616d565b6117a9565b34801561082857600080fd5b506104fe61083736600461632c565b60008281526101c6602090815260408083206001600160a01b038516845260080190915290205460ff1692915050565b34801561087357600080fd5b506105206108823660046160de565b61182a565b34801561089357600080fd5b506104fe6108a236600461616d565b60016020526000908152604090205460ff1681565b3480156108c357600080fd5b5061045c6108d236600461616d565b611838565b3480156108e357600080fd5b506105986118b3565b3480156108f857600080fd5b50610901600881565b60405160ff90911681526020016104d5565b34801561091f57600080fd5b506104fe61092e36600461616d565b6102c16020526000908152604090205460ff1681565b34801561095057600080fd5b506040805180820190915260018152603160f81b6020820152610598565b34801561097a57600080fd5b5061052061098936600461635c565b611960565b34801561099a57600080fd5b506105206109a9366004616388565b611989565b3480156109ba57600080fd5b506105206109c9366004615c8a565b6119d3565b3480156109da57600080fd5b5061045c6109e9366004615c8a565b611a88565b3480156109fa57600080fd5b50610520610a0936600461640b565b611b10565b348015610a1a57600080fd5b50610520610a29366004616464565b611b62565b348015610a3a57600080fd5b5061045c611c7d565b348015610a4f57600080fd5b5061045c611eae565b348015610a6457600080fd5b50610a6d611f44565b6040516104d59796959493929190616504565b348015610a8c57600080fd5b50610a95611fe2565b60405165ffffffffffff90911681526020016104d5565b348015610ab857600080fd5b506064610520565b348015610acc57600080fd5b50610520610adb366004616566565b612056565b348015610aec57600080fd5b5061052061206d565b348015610b0157600080fd5b5061045c610b1036600461616d565b61209a565b348015610b2157600080fd5b50610520610b30366004615c8a565b612122565b348015610b4157600080fd5b5061045c610b503660046165be565b6121be565b348015610b6157600080fd5b5060005462010000900460ff166104fe565b348015610b7f57600080fd5b50610520612903565b348015610b9457600080fd5b50610626610ba336600461661d565b63bc197c8160e01b95945050505050565b348015610bc057600080fd5b50610520610bcf366004615c8a565b61290f565b348015610be057600080fd5b506102c2546104fe9060ff1681565b61045c610bfd3660046166b0565b61291a565b348015610c0e57600080fd5b50610520610c1d3660046160de565b612a2a565b348015610c2e57600080fd5b5061045c610c3d3660046166f3565b612a64565b348015610c4e57600080fd5b5061022b546001600160a01b03166105e3565b348015610c6d57600080fd5b50610520610c7c36600461671c565b612aec565b348015610c8d57600080fd5b5060408051808201909152601a81527f737570706f72743d627261766f2671756f72756d3d627261766f0000000000006020820152610598565b348015610cd357600080fd5b5061045c610ce2366004615c8a565b612b73565b348015610cf357600080fd5b506105207f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f81565b348015610d2757600080fd5b50610db6610d3636600461632c565b60408051606081018252600080825260208201819052918101919091525060009182526101c6602090815260408084206001600160a01b0393909316845260089092018152918190208151606081018352905460ff8082161515835261010082041693820193909352620100009092046001600160601b03169082015290565b6040805182511515815260208084015160ff1690820152918101516001600160601b0316908201526060016104d5565b348015610df257600080fd5b5061045c610e01366004615c8a565b612b96565b348015610e1257600080fd5b50610520610e213660046167bd565b612c1e565b348015610e3257600080fd5b5061045c610e41366004615c8a565b612c3f565b348015610e5257600080fd5b50610901601181565b348015610e6757600080fd5b50610626610e763660046167e9565b63f23a6e6160e01b95945050505050565b348015610e9357600080fd5b50610520610ea2366004615c8a565b612cc7565b348015610eb357600080fd5b506101f8546105e3906001600160a01b031681565b61045c610ed6366004615c8a565b612d56565b6000610ef061022b546001600160a01b031690565b905090565b8060008080808080808080610f098a612122565b60008c815261016360205260409020549098506001600160401b03169650610f308b61290f565b60008c81526101c66020526040812080546005820154600683015460078401546001600160a01b039093169e50949a509850929650919450610f718d611773565b90506002816007811115610f8757610f876162ee565b1493506007816007811115610f9e57610f9e6162ee565b14925050509193959799509193959799565b6000610fbb82612d79565b92915050565b60008061106561105d7fb3b3f3b703cd84ce352197dcff232b1b5d3cfb2025ce47cf04742d0651f1af888c8c8c8c604051610ffd929190616851565b60405180910390208b80519060200120604051602001611042959493929190948552602085019390935260ff9190911660408401526060830152608082015260a00190565b60405160208183030381529060405280519060200120612d9e565b868686612dcb565b90506110ab8a828b8b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508d9250612de9915050565b9a9950505050505050505050565b600054630100000090046001600160a01b031633146110eb576040516306fbb1e360e01b815260040160405180910390fd5b60005462010000900460ff1661111457604051636cd6020160e01b815260040160405180910390fd5b6000805462ff0000191681556040517f62451d457bc659158be6e6247f56ec1df424a5c7597f71c20c2bc44e0965c8f99190a1565b611151610edb565b6001600160a01b0316336001600160a01b0316146111815760405162461bcd60e51b815260040161045390616861565b3061118a610edb565b6001600160a01b0316146111c857600080366040516111aa929190616851565b604051809103902090505b806111c1610164612e52565b036111b557505b6111d181612ed1565b50565b606061016280546111e490616898565b80601f016020809104026020016040519081016040528092919081815260200182805461121090616898565b801561125d5780601f106112325761010080835404028352916020019161125d565b820191906000526020600020905b81548152906001019060200180831161124057829003601f168201915b5050505050905090565b6000805462010000900460ff161561129257604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff16156112c35760405163b1d02c3d60e01b815260040160405180910390fd5b60005b855181101561133c576102c160008783815181106112e6576112e66168d2565b6020908102919091018101516001600160a01b031682528101919091526040016000205460ff1661132a57604051630b094f2760e31b815260040160405180910390fd5b80611334816168fe565b9150506112c6565b5061134985858585613042565b95945050505050565b6000610ef06001611361611fe2565b61136b9190616917565b65ffffffffffff16612cc7565b60008061138786868686612a2a565b9050600061139482611773565b905060048160078111156113aa576113aa6162ee565b14806113c7575060058160078111156113c5576113c56162ee565b145b6113e35760405162461bcd60e51b81526004016104539061693d565b6000828152610163602052604090819020600201805460ff19166001179055517f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f906114329084815260200190565b60405180910390a16114478288888888613247565b61145482888888886132e8565b61146182888888886133ca565b5095945050505050565b60608060608060006101c66000878152602001908152602001600020905080600101816002018260030183600401838054806020026020016040519081016040528092919081815260200182805480156114ee57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116114d0575b505050505093508280548060200260200160405190810160405280929190818152602001828054801561154057602002820191906000526020600020905b81548152602001906001019080831161152c575b5050505050925081805480602002602001604051908101604052809291908181526020016000905b8282101561161457838290600052602060002001805461158790616898565b80601f01602080910402602001604051908101604052809291908181526020018280546115b390616898565b80156116005780601f106115d557610100808354040283529160200191611600565b820191906000526020600020905b8154815290600101906020018083116115e357829003601f168201915b505050505081526020019060010190611568565b50505050915080805480602002602001604051908101604052809291908181526020016000905b828210156116e757838290600052602060002001805461165a90616898565b80601f016020809104026020016040519081016040528092919081815260200182805461168690616898565b80156116d35780601f106116a8576101008083540402835291602001916116d3565b820191906000526020600020905b8154815290600101906020018083116116b657829003601f168201915b50505050508152602001906001019061163b565b5050505090509450945094509450509193509193565b604080517f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f602082015290810186905260ff85166060820152600090819061174b9061105d90608001611042565b905061176887828860405180602001604052806000815250613405565b979650505050505050565b6000610fbb82613428565b60008060008061178d85613575565b93509350935093506117a18484848461182a565b505050505050565b600054630100000090046001600160a01b031633146117db576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b0381166000818152600160208190526040808320805460ff1916909217909155517f7fd26be6fc92aff63f1f4409b2b2ddeb272a888031d7f55ec830485ec61941869190a250565b600061134985858585613806565b600054630100000090046001600160a01b0316331461186a576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b038116600081815260016020526040808220805460ff19169055517fe0db3499b7fdc3da4cddff5f45d694549c19835e7f719fb5606d3ad1a5de40119190a250565b6101f85460408051634bf5d7e960e01b815290516060926001600160a01b031691634bf5d7e99160048083019260009291908290030181865afa92505050801561191f57506040513d6000823e601f3d908101601f1916820160405261191c919081019061697e565b60015b61195b575060408051808201909152601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000602082015290565b919050565b60008033905061198184828560405180602001604052806000815250613405565b949350505050565b60008033905061176887828888888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a9250612de9915050565b61025e546000908082036119ec57505061025d54919050565b600061025e6119fc6001846169eb565b81548110611a0c57611a0c6168d2565b60009182526020918290206040805180820190915291015463ffffffff8116808352600160201b9091046001600160e01b03169282019290925291508410611a6257602001516001600160e01b03169392505050565b611a77611a6e856138d1565b61025e9061393a565b6001600160e01b0316949350505050565b611a90610edb565b6001600160a01b0316336001600160a01b031614611ac05760405162461bcd60e51b815260040161045390616861565b30611ac9610edb565b6001600160a01b031614611b075760008036604051611ae9929190616851565b604051809103902090505b80611b00610164612e52565b03611af457505b6111d1816139ed565b600080339050611b5886828787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061340592505050565b9695505050505050565b6000805462010000900460ff1615611b8d57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615611bbe5760405163b1d02c3d60e01b815260040160405180910390fd5b611bc6613a30565b3360009081526102c360205260409020548015611c3b576000611be882611773565b90506001816007811115611bfe57611bfe6162ee565b1480611c1b57506000816007811115611c1957611c196162ee565b145b15611c395760405163867f3ee560e01b815260040160405180910390fd5b505b825160208401206000611c5088888885612a2a565b3360009081526102c3602052604090208190559050611c7188888888613adb565b98975050505050505050565b600054610100900460ff1615808015611c9d5750600054600160ff909116105b80611cb75750303b158015611cb7575060005460ff166001145b611d1a5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610453565b6000805460ff191660011790558015611d3d576000805461ff0019166101001790555b334114611d5d5760405163022d8c9560e31b815260040160405180910390fd5b3a15611d7c576040516383f1b1d360e01b815260040160405180910390fd5b611da86040518060400160405280600b81526020016a2129a1a3b7bb32b93737b960a91b815250613b43565b611dd4611db760036000616a14565b611dc5600362015180616a14565b68056bc75e2d63100000613b9a565b611ddc613bd1565b611de7612005613bf8565b611df2612006613c28565b611dfc600a613c58565b611e11611e0c6003610e10616a14565b613c88565b6110076000526102c16020527f2f832952f0ef896b8c8edd6d16a2e4f2591a90375e33021e3b9ff197f3793fc0805460ff19166001179055611e667330151da466ec8ab345bef3d6983023e050fb0673613cb8565b80156111d1576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b600054630100000090046001600160a01b03163314611ee0576040516306fbb1e360e01b815260040160405180910390fd5b60005462010000900460ff1615611f0a57604051631785c68160e01b815260040160405180910390fd5b6000805462ff00001916620100001781556040517f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e7529190a1565b6000606080600080600060606098546000801b148015611f645750609954155b611fa85760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606401610453565b611fb0613d0b565b611fb8613d1a565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b6101f854604080516324776b7d60e21b815290516000926001600160a01b0316916391ddadf49160048083019260209291908290030181865afa925050508015612049575060408051601f3d908101601f1916820190925261204691810190616a36565b60015b61195b57610ef043613d29565b6000612063848484613d90565b90505b9392505050565b61025e54600090156120925761208461025e613e07565b6001600160e01b0316905090565b5061025d5490565b6120a2610edb565b6001600160a01b0316336001600160a01b0316146120d25760405162461bcd60e51b815260040161045390616861565b306120db610edb565b6001600160a01b03161461211957600080366040516120fb929190616851565b604051809103902090505b80612112610164612e52565b0361210657505b6111d181613e37565b61022b54600082815261022c602052604080822054905163d45c443560e01b81526004810191909152909182916001600160a01b039091169063d45c443590602401602060405180830381865afa158015612181573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121a59190616a5e565b9050806001146121b55780612066565b60009392505050565b33611007146121e457604051630f22c43960e41b81526110076004820152602401610453565b61224a6040518060400160405280600b81526020016a766f74696e6744656c617960a81b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613ea29050565b156122ff57602081146122785783838383604051630a5a604160e01b81526004016104539493929190616aa0565b604080516020601f84018190048102820181019092528281526000916122b9918585808385018382808284376000920191909152509293925050613efb9050565b90508015806122ca57506201518081115b156122f05784848484604051630a5a604160e01b81526004016104539493929190616aa0565b6122f9816139ed565b506128c0565b6123666040518060400160405280600c81526020016b1d9bdd1a5b99d4195c9a5bd960a21b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613ea29050565b1561241557602081146123945783838383604051630a5a604160e01b81526004016104539493929190616aa0565b604080516020601f84018190048102820181019092528281526000916123d5918585808385018382808284376000920191909152509293925050613efb9050565b90508015806123e6575062278d0081115b1561240c5784848484604051630a5a604160e01b81526004016104539493929190616aa0565b6122f981613f00565b612481604051806040016040528060118152602001701c1c9bdc1bdcd85b151a1c995cda1bdb19607a1b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613ea29050565b1561253757602081146124af5783838383604051630a5a604160e01b81526004016104539493929190616aa0565b604080516020601f84018190048102820181019092528281526000916124f0918585808385018382808284376000920191909152509293925050613efb9050565b9050801580612508575069021e19e0c9bab240000081115b1561252e5784848484604051630a5a604160e01b81526004016104539493929190616aa0565b6122f981613fa3565b6125a16040518060400160405280600f81526020016e38bab7b93ab6a73ab6b2b930ba37b960891b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613ea29050565b1561265057602081146125cf5783838383604051630a5a604160e01b81526004016104539493929190616aa0565b604080516020601f8401819004810282018101909252828152600091612610918585808385018382808284376000920191909152509293925050613efb9050565b905060058110806126215750601481115b156126475784848484604051630a5a604160e01b81526004016104539493929190616aa0565b6122f981612ed1565b6126bf604051806040016040528060148152602001736d696e506572696f64416674657251756f72756d60601b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613ea29050565b1561278557600881146126ed5783838383604051630a5a604160e01b81526004016104539493929190616aa0565b6000612733600884848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613efb9050565b90506001600160401b038116158061275657506202a300816001600160401b0316115b1561277c5784848484604051630a5a604160e01b81526004016104539493929190616aa0565b6122f981613fe6565b6127f16040518060400160405280601181526020017033b7bb32b93737b9283937ba32b1ba37b960791b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613ea29050565b1561289f576014811461281f5783838383604051630a5a604160e01b81526004016104539493929190616aa0565b6000612865601484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613efb9050565b90506001600160a01b0381166128965784848484604051630a5a604160e01b81526004016104539493929190616aa0565b6122f981614052565b838383836040516325ee20d560e21b81526004016104539493929190616aa0565b7ff1ce9b2cbf50eeb05769a29e2543fd350cab46894a7dd9978a12d534bb20e633848484846040516128f59493929190616aa0565b60405180910390a150505050565b6000610ef06101965490565b6000610fbb826140be565b612922610edb565b6001600160a01b0316336001600160a01b0316146129525760405162461bcd60e51b815260040161045390616861565b3061295b610edb565b6001600160a01b031614612999576000803660405161297b929190616851565b604051809103902090505b80612992610164612e52565b0361298657505b600080856001600160a01b03168585856040516129b7929190616851565b60006040518083038185875af1925050503d80600081146129f4576040519150601f19603f3d011682016040523d82523d6000602084013e6129f9565b606091505b5091509150612a218282604051806060016040528060288152602001616efd602891396140fc565b50505050505050565b600084848484604051602001612a439493929190616ac7565b60408051601f19818403018152919052805160209091012095945050505050565b612a6c610edb565b6001600160a01b0316336001600160a01b031614612a9c5760405162461bcd60e51b815260040161045390616861565b30612aa5610edb565b6001600160a01b031614612ae35760008036604051612ac5929190616851565b604051809103902090505b80612adc610164612e52565b03612ad057505b6111d181613fe6565b60008251845114612b505760405162461bcd60e51b815260206004820152602860248201527f476f7665726e6f72427261766f3a20696e76616c6964207369676e61747572656044820152670e640d8cadccee8d60c31b6064820152608401610453565b612b5e338787878787614115565b611b588686612b6d87876141d3565b85611b62565b600080600080612b8285613575565b93509350935093506117a184848484611267565b612b9e610edb565b6001600160a01b0316336001600160a01b031614612bce5760405162461bcd60e51b815260040161045390616861565b30612bd7610edb565b6001600160a01b031614612c155760008036604051612bf7929190616851565b604051809103902090505b80612c0e610164612e52565b03612c0257505b6111d181613f00565b60006120668383612c3a60408051602081019091526000815290565b613d90565b612c47610edb565b6001600160a01b0316336001600160a01b031614612c775760405162461bcd60e51b815260040161045390616861565b30612c80610edb565b6001600160a01b031614612cbe5760008036604051612ca0929190616851565b604051809103902090505b80612cb7610164612e52565b03612cab57505b6111d181613fa3565b60006064612cd4836119d3565b6101f854604051632394e7a360e21b8152600481018690526001600160a01b0390911690638e539e8c90602401602060405180830381865afa158015612d1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d429190616a5e565b612d4c9190616b12565b610fbb9190616a14565b600080600080612d6585613575565b93509350935093506117a184848484611378565b60006001600160e01b03198216636e665ced60e01b1480610fbb5750610fbb82614305565b6000610fbb612dab6143a1565b8360405161190160f01b8152600281019290925260228201526042902090565b6000806000612ddc878787876143ab565b915091506114618161446f565b6000805462010000900460ff1615612e1457604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615612e455760405163b1d02c3d60e01b815260040160405180910390fd5b611b5886868686866145b9565b6000612e6d8254600f81810b600160801b909204900b131590565b15612e8b57604051631ed9509560e11b815260040160405180910390fd5b508054600f0b6000818152600180840160205260408220805492905583546fffffffffffffffffffffffffffffffff191692016001600160801b03169190911790915590565b6064811115612f545760405162461bcd60e51b815260206004820152604360248201527f476f7665726e6f72566f74657351756f72756d4672616374696f6e3a2071756f60448201527f72756d4e756d657261746f72206f7665722071756f72756d44656e6f6d696e616064820152623a37b960e91b608482015260a401610453565b6000612f5e61206d565b90508015801590612f70575061025e54155b15612fd557604080518082019091526000815261025e9060208101612f94846146bc565b6001600160e01b039081169091528254600181018455600093845260209384902083519490930151909116600160201b0263ffffffff909316929092179101555b613003612ff0612fe3611fe2565b65ffffffffffff166138d1565b612ff9846146bc565b61025e9190614725565b505060408051828152602081018490527f0553476bf02ef2726e8ce5ced78d63e26e602e4a2257b1f559418e24b4633997910160405180910390a15050565b60008061305186868686612a2a565b9050600461305e82611773565b600781111561306f5761306f6162ee565b1461308c5760405162461bcd60e51b81526004016104539061693d565b61022b546040805163793d064960e11b815290516000926001600160a01b03169163f27a0c929160048083019260209291908290030181865afa1580156130d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130fb9190616a5e565b61022b5460405163b1c5f42760e01b81529192506001600160a01b03169063b1c5f42790613136908a908a908a906000908b90600401616b29565b602060405180830381865afa158015613153573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131779190616a5e565b600083815261022c60205260408082209290925561022b5491516308f2a0bb60e41b81526001600160a01b0390921691638f2a0bb0916131c4918b918b918b91908b908990600401616b77565b600060405180830381600087803b1580156131de57600080fd5b505af11580156131f2573d6000803e3d6000fd5b505050507f9a2e42fd6722813d69113e7d0079d3d940171428df7373df9c7f7617cfda28928282426132249190616bcf565b604080519283526020830191909152015b60405180910390a15095945050505050565b30613250610edb565b6001600160a01b0316146132e15760005b84518110156117a157306001600160a01b0316858281518110613286576132866168d2565b60200260200101516001600160a01b0316036132d1576132d18382815181106132b1576132b16168d2565b60200260200101518051906020012061016461474090919063ffffffff16565b6132da816168fe565b9050613261565b5050505050565b60005462010000900460ff161561331257604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff16156133435760405163b1d02c3d60e01b815260040160405180910390fd5b60005b84518110156133bc576102c16000868381518110613366576133666168d2565b6020908102919091018101516001600160a01b031682528101919091526040016000205460ff166133aa57604051630b094f2760e31b815260040160405180910390fd5b806133b4816168fe565b915050613346565b506132e1858585858561477c565b306133d3610edb565b6001600160a01b0316146132e15761016454600f81810b600160801b909204900b13156132e1576000610164556132e1565b60006113498585858561342360408051602081019091526000815290565b612de9565b600080613434836147f1565b9050600481600781111561344a5761344a6162ee565b146134555792915050565b600083815261022c602052604090205480613471575092915050565b61022b54604051632ab0f52960e01b8152600481018390526001600160a01b0390911690632ab0f52990602401602060405180830381865afa1580156134bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134df9190616be2565b156134ee575060079392505050565b61022b54604051632c258a9f60e11b8152600481018390526001600160a01b039091169063584b153e90602401602060405180830381865afa158015613538573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061355c9190616be2565b1561356b575060059392505050565b5060029392505050565b60608060606000806101c660008781526020019081526020016000209050806001018160020161374783600301805480602002602001604051908101604052809291908181526020016000905b8282101561366e5783829060005260206000200180546135e190616898565b80601f016020809104026020016040519081016040528092919081815260200182805461360d90616898565b801561365a5780601f1061362f5761010080835404028352916020019161365a565b820191906000526020600020905b81548152906001019060200180831161363d57829003601f168201915b5050505050815260200190600101906135c2565b50505060048601805460408051602080840282018101909252828152935060009084015b8282101561373e5783829060005260206000200180546136b190616898565b80601f01602080910402602001604051908101604052809291908181526020018280546136dd90616898565b801561372a5780601f106136ff5761010080835404028352916020019161372a565b820191906000526020600020905b81548152906001019060200180831161370d57829003601f168201915b505050505081526020019060010190613692565b505050506141d3565b600984015483546040805160208084028201810190925282815291869183018282801561379d57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161377f575b50505050509350828054806020026020016040519081016040528092919081815260200182805480156137ef57602002820191906000526020600020905b8154815260200190600101908083116137db575b505050505092509450945094509450509193509193565b60008061381586868686612a2a565b60008181526101c660205260409020549091506001600160a01b0316338114806138695750613842612903565b613867826001613850611fe2565b61385a9190616917565b65ffffffffffff16612c1e565b105b6138c55760405162461bcd60e51b815260206004820152602760248201527f476f7665726e6f72427261766f3a2070726f706f7365722061626f76652074686044820152661c995cda1bdb1960ca1b6064820152608401610453565b61176887878787614929565b600063ffffffff8211156139365760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b6064820152608401610453565b5090565b81546000908181600581111561399757600061395584614937565b61395f90856169eb565b60008881526020902090915081015463ffffffff908116908716101561398757809150613995565b613992816001616bcf565b92505b505b60006139a587878585614a1f565b905080156139e0576139ca876139bc6001846169eb565b600091825260209091200190565b54600160201b90046001600160e01b0316611768565b6000979650505050505050565b6101945460408051918252602082018390527fc565b045403dc03c2eea82b81a0465edad9e2e7fc4d97e11421c209da93d7a93910160405180910390a161019455565b6102c25460ff16613ad9576a084595161401484a0000006120056001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613a87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613aab9190616a5e565b1015613aca576040516311b6707f60e01b815260040160405180910390fd5b6102c2805460ff191660011790555b565b6000613b3733868686516001600160401b03811115613afc57613afc615d26565b604051908082528060200260200182016040528015613b2f57816020015b6060815260200190600190039081613b1a5790505b508787614115565b61134985858585614a75565b600054610100900460ff16613b6a5760405162461bcd60e51b815260040161045390616c04565b613b9181613b8c6040805180820190915260018152603160f81b602082015290565b614e54565b6111d181614ea3565b600054610100900460ff16613bc15760405162461bcd60e51b815260040161045390616c04565b613bcc838383614edb565b505050565b600054610100900460ff16613ad95760405162461bcd60e51b815260040161045390616c04565b600054610100900460ff16613c1f5760405162461bcd60e51b815260040161045390616c04565b6111d181614f1d565b600054610100900460ff16613c4f5760405162461bcd60e51b815260040161045390616c04565b6111d181614f67565b600054610100900460ff16613c7f5760405162461bcd60e51b815260040161045390616c04565b6111d181614f8e565b600054610100900460ff16613caf5760405162461bcd60e51b815260040161045390616c04565b6111d181614fb5565b600054610100900460ff16613cdf5760405162461bcd60e51b815260040161045390616c04565b600080546001600160a01b039092166301000000026301000000600160b81b0319909216919091179055565b6060609a80546111e490616898565b6060609b80546111e490616898565b600065ffffffffffff8211156139365760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203460448201526538206269747360d01b6064820152608401610453565b6101f854604051630748d63560e31b81526001600160a01b038581166004830152602482018590526000921690633a46b1a890604401602060405180830381865afa158015613de3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120639190616a5e565b805460009080156121b557613e21836139bc6001846169eb565b54600160201b90046001600160e01b0316612066565b61022b54604080516001600160a01b03928316815291831660208301527f08f74ea46ef7894f65eabfb5e6e695de773a000b47c529ab559178069b226401910160405180910390a161022b80546001600160a01b0319166001600160a01b0392909216919091179055565b600081604051602001613eb59190616c4f565b6040516020818303038152906040528051906020012083604051602001613edc9190616c4f565b6040516020818303038152906040528051906020012014905092915050565b015190565b60008111613f605760405162461bcd60e51b815260206004820152602760248201527f476f7665726e6f7253657474696e67733a20766f74696e6720706572696f6420604482015266746f6f206c6f7760c81b6064820152608401610453565b6101955460408051918252602082018390527f7e3f7f0708a84de9203036abaa450dccc85ad5ff52f78c170f3edb55cf5e8828910160405180910390a161019555565b6101965460408051918252602082018390527fccb45da8d5717e6c4544694297c4ba5cf151d455c9bb0ed4fc7a38411bc05461910160405180910390a161019655565b61028f54604080516001600160401b03928316815291831660208301527f7ca4ac117ed3cdce75c1161d8207c440389b1a15d69d096831664657c07dafc2910160405180910390a161028f805467ffffffffffffffff19166001600160401b0392909216919091179055565b600080546040516001600160a01b0380851693630100000090930416917f44fc1b38a4abaa91ebd1b628a5b259a698f86238c8217d68f516e87769c60c0b91a3600080546001600160a01b039092166301000000026301000000600160b81b0319909216919091179055565b60008181526101636020526040812060010154610fbb906001600160401b0316600084815261029060205260409020546001600160401b0316614fdc565b6060831561410b575081612066565b6120668383614ff2565b805160208201206000614133878761412d88886141d3565b85612a2a565b60008181526101c6602052604090206009810154919250906141c85780546001600160a01b0319166001600160a01b038a16178155875161417d90600183019060208b0190615ac1565b50865161419390600283019060208a0190615b22565b5085516141a99060038301906020890190615b5d565b5084516141bf9060048301906020880190615baf565b50600981018390555b505050505050505050565b6060600082516001600160401b038111156141f0576141f0615d26565b60405190808252806020026020018201604052801561422357816020015b606081526020019060019003908161420e5790505b50905060005b81518110156142fd57848181518110614244576142446168d2565b6020026020010151516000146142b457848181518110614266576142666168d2565b602002602001015180519060200120848281518110614287576142876168d2565b60200260200101516040516020016142a0929190616c6b565b6040516020818303038152906040526142cf565b8381815181106142c6576142c66168d2565b60200260200101515b8282815181106142e1576142e16168d2565b6020026020010181905250806142f6906168fe565b9050614229565b509392505050565b600063288ace0360e11b6318df743f60e31b63bf26d89760e01b6379dd796f60e01b6001600160e01b0319861682148061434b57506001600160e01b0319868116908216145b8061436257506001600160e01b0319868116908516145b8061437d57506001600160e01b03198616630271189760e51b145b80611b5857506301ffc9a760e01b6001600160e01b03198716149695505050505050565b6000610ef061501c565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156143e25750600090506003614466565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614436573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661445f57600060019250925050614466565b9150600090505b94509492505050565b6000816004811115614483576144836162ee565b0361448b5750565b600181600481111561449f5761449f6162ee565b036144ec5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610453565b6002816004811115614500576145006162ee565b0361454d5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610453565b6003816004811115614561576145616162ee565b036111d15760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610453565b6000806145c98787878787615090565b600088815261029060205260409020549091506001600160401b03161580156145f657506145f6876151e6565b15611b5857600061461061028f546001600160401b031690565b614618611fe2565b65ffffffffffff1661462a9190616c9c565b90506146358861290f565b816001600160401b03161115614684576040516001600160401b038216815288907f541f725fb9f7c98a30cc9c0ff32fbb14358cd7159c847a3aa20a2bdc442ba5119060200160405180910390a25b600088815261029060205260409020805467ffffffffffffffff19166001600160401b03929092169190911790559695505050505050565b60006001600160e01b038211156139365760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b6064820152608401610453565b600080614733858585615226565b915091505b935093915050565b8154600160801b90819004600f0b6000818152600180860160205260409091209390935583546001600160801b03908116939091011602179055565b61022b5460405163e38335e560e01b81526001600160a01b039091169063e38335e59034906147b8908890889088906000908990600401616b29565b6000604051808303818588803b1580156147d157600080fd5b505af11580156147e5573d6000803e3d6000fd5b50505050505050505050565b600081815261016360205260408120600281015460ff16156148165750600792915050565b6002810154610100900460ff16156148315750600292915050565b600083815261016360205260408120546001600160401b03169081900361489a5760405162461bcd60e51b815260206004820152601d60248201527f476f7665726e6f723a20756e6b6e6f776e2070726f706f73616c2069640000006044820152606401610453565b60006148a4611fe2565b65ffffffffffff1690508082106148c057506000949350505050565b60006148cb8661290f565b90508181106148e05750600195945050505050565b6148e9866151e6565b801561490c575060008681526101c6602052604090206006810154600590910154115b1561491d5750600495945050505050565b50600395945050505050565b6000611349858585856153c5565b60008160000361494957506000919050565b600060016149568461547b565b901c6001901b9050600181848161496f5761496f6169fe565b048201901c90506001818481614987576149876169fe565b048201901c9050600181848161499f5761499f6169fe565b048201901c905060018184816149b7576149b76169fe565b048201901c905060018184816149cf576149cf6169fe565b048201901c905060018184816149e7576149e76169fe565b048201901c905060018184816149ff576149ff6169fe565b048201901c905061206681828581614a1957614a196169fe565b0461550f565b60005b818310156142fd576000614a36848461551e565b60008781526020902090915063ffffffff86169082015463ffffffff161115614a6157809250614a6f565b614a6c816001616bcf565b93505b50614a22565b600033614a828184615539565b614ace5760405162461bcd60e51b815260206004820152601d60248201527f476f7665726e6f723a2070726f706f73657220726573747269637465640000006044820152606401610453565b6000614ad8611fe2565b65ffffffffffff169050614aea612903565b614af983610e216001856169eb565b1015614b615760405162461bcd60e51b815260206004820152603160248201527f476f7665726e6f723a2070726f706f73657220766f7465732062656c6f7720706044820152701c9bdc1bdcd85b081d1a1c995cda1bdb19607a1b6064820152608401610453565b6000614b768888888880519060200120612a2a565b90508651885114614b995760405162461bcd60e51b815260040161045390616cbc565b8551885114614bba5760405162461bcd60e51b815260040161045390616cbc565b6000885111614c0b5760405162461bcd60e51b815260206004820152601860248201527f476f7665726e6f723a20656d7074792070726f706f73616c00000000000000006044820152606401610453565b600081815261016360205260409020546001600160401b031615614c7b5760405162461bcd60e51b815260206004820152602160248201527f476f7665726e6f723a2070726f706f73616c20616c72656164792065786973746044820152607360f81b6064820152608401610453565b6000614c876101945490565b614c919084616bcf565b90506000614c9f6101955490565b614ca99083616bcf565b90506040518060e00160405280614cbf8461562a565b6001600160401b031681526001600160a01b038716602082015260006040820152606001614cec8361562a565b6001600160401b03908116825260006020808401829052604080850183905260609485018390528883526101638252918290208551815492870151878501519186166001600160e01b031990941693909317600160401b6001600160a01b039094168402176001600160e01b0316600160e01b60e09290921c91909102178155938501516080860151908416921c0217600183015560a08301516002909201805460c09094015161ffff1990941692151561ff00191692909217610100931515939093029290921790558a517f7d84a6263ae0d98d3329bd7b46bb4e8d6f98cd35a7adb45c274c8b7fd5ebd5e091859188918e918e91811115614df157614df1615d26565b604051908082528060200260200182016040528015614e2457816020015b6060815260200190600190039081614e0f5790505b508d88888f604051614e3e99989796959493929190616cfd565b60405180910390a1509098975050505050505050565b600054610100900460ff16614e7b5760405162461bcd60e51b815260040161045390616c04565b609a614e878382616ddb565b50609b614e948282616ddb565b50506000609881905560995550565b600054610100900460ff16614eca5760405162461bcd60e51b815260040161045390616c04565b610162614ed78282616ddb565b5050565b600054610100900460ff16614f025760405162461bcd60e51b815260040161045390616c04565b614f0b836139ed565b614f1482613f00565b613bcc81613fa3565b600054610100900460ff16614f445760405162461bcd60e51b815260040161045390616c04565b6101f880546001600160a01b0319166001600160a01b0392909216919091179055565b600054610100900460ff166121195760405162461bcd60e51b815260040161045390616c04565b600054610100900460ff166111c85760405162461bcd60e51b815260040161045390616c04565b600054610100900460ff16612ae35760405162461bcd60e51b815260040161045390616c04565b6000818311614feb5781612066565b5090919050565b8151156150025781518083602001fd5b8060405162461bcd60e51b81526004016104539190615edf565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f615047615692565b61504f6156eb565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b60008581526101636020526040812060016150aa88611773565b60078111156150bb576150bb6162ee565b146151145760405162461bcd60e51b815260206004820152602360248201527f476f7665726e6f723a20766f7465206e6f742063757272656e746c792061637460448201526269766560e81b6064820152608401610453565b805460009061512e9088906001600160401b031686613d90565b905061513d888888848861571c565b835160000361519257866001600160a01b03167fb8e138887d0aa13bab447e82de9d5c1777041ecd21ca36ba824ff1e6c07ddda4898884896040516151859493929190616e9a565b60405180910390a2611768565b866001600160a01b03167fe2babfbac5889a709b63bb7f598b324e08bc5a4fb9ec647fb3cbc9ec07eb871289888489896040516151d3959493929190616ec2565b60405180910390a2979650505050505050565b60008181526101c660205260408120600581015461521d610ea285600090815261016360205260409020546001600160401b031690565b11159392505050565b82546000908190801561536c576000615244876139bc6001856169eb565b60408051808201909152905463ffffffff808216808452600160201b9092046001600160e01b0316602084015291925090871610156152c55760405162461bcd60e51b815260206004820152601b60248201527f436865636b706f696e743a2064656372656173696e67206b65797300000000006044820152606401610453565b805163ffffffff80881691160361530d57846152e6886139bc6001866169eb565b80546001600160e01b0392909216600160201b0263ffffffff90921691909117905561535c565b6040805180820190915263ffffffff80881682526001600160e01b0380881660208085019182528b54600181018d5560008d81529190912094519151909216600160201b029216919091179101555b6020015192508391506147389050565b50506040805180820190915263ffffffff80851682526001600160e01b0380851660208085019182528854600181018a5560008a815291822095519251909316600160201b029190931617920191909155905081614738565b6000806153d4868686866158ba565b600081815261022c6020526040902054909150156113495761022b54600082815261022c60205260409081902054905163c4d252f560e01b81526001600160a01b039092169163c4d252f5916154309160040190815260200190565b600060405180830381600087803b15801561544a57600080fd5b505af115801561545e573d6000803e3d6000fd5b505050600082815261022c60205260408120555095945050505050565b600080608083901c1561549057608092831c92015b604083901c156154a257604092831c92015b602083901c156154b457602092831c92015b601083901c156154c657601092831c92015b600883901c156154d857600892831c92015b600483901c156154ea57600492831c92015b600283901c156154fc57600292831c92015b600183901c15610fbb5760010192915050565b6000818310614feb5781612066565b600061552d6002848418616a14565b61206690848416616bcf565b80516000906034811015615551576001915050610fbb565b82810160131901516001600160a01b031981166b046e0e4dee0dee6cae47a60f60a31b1461558457600192505050610fbb565b6000806155926028856169eb565b90505b83811015615609576000806155c98884815181106155b5576155b56168d2565b01602001516001600160f81b0319166159c7565b91509150816155e15760019650505050505050610fbb565b8060ff166004856001600160a01b0316901b179350505080615602906168fe565b9050615595565b50856001600160a01b0316816001600160a01b031614935050505092915050565b60006001600160401b038211156139365760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201526534206269747360d01b6064820152608401610453565b60008061569d613d0b565b8051909150156156b4578051602090910120919050565b60985480156156c35792915050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4709250505090565b6000806156f6613d1a565b80519091501561570d578051602090910120919050565b60995480156156c35792915050565b60008581526101c6602090815260408083206001600160a01b038816845260088101909252909120805460ff16156157ac5760405162461bcd60e51b815260206004820152602d60248201527f476f7665726e6f72436f6d7061746962696c697479427261766f3a20766f746560448201526c08185b1c9958591e4818d85cdd609a1b6064820152608401610453565b805460ff86166101000261ffff199091161760011781556157cc84615a59565b81546001600160601b039190911662010000026dffffffffffffffffffffffff00001990911617815560ff851661581c57838260060160008282546158119190616bcf565b90915550612a219050565b60001960ff86160161583c57838260050160008282546158119190616bcf565b60011960ff86160161585c57838260070160008282546158119190616bcf565b60405162461bcd60e51b815260206004820152602d60248201527f476f7665726e6f72436f6d7061746962696c697479427261766f3a20696e766160448201526c6c696420766f7465207479706560981b6064820152608401610453565b6000806158c986868686612a2a565b905060006158d682611773565b905060028160078111156158ec576158ec6162ee565b1415801561590c57506006816007811115615909576159096162ee565b14155b801561592a57506007816007811115615927576159276162ee565b14155b6159765760405162461bcd60e51b815260206004820152601d60248201527f476f7665726e6f723a2070726f706f73616c206e6f74206163746976650000006044820152606401610453565b6000828152610163602052604090819020600201805461ff001916610100179055517f789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c906132359084815260200190565b60008060f883901c602f811180156159e25750603a8160ff16105b156159f757600194602f199091019350915050565b8060ff166040108015615a0d575060478160ff16105b15615a22576001946036199091019350915050565b8060ff166060108015615a38575060678160ff16105b15615a4d576001946056199091019350915050565b50600093849350915050565b60006001600160601b038211156139365760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203960448201526536206269747360d01b6064820152608401610453565b828054828255906000526020600020908101928215615b16579160200282015b82811115615b1657825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190615ae1565b50613936929150615c01565b828054828255906000526020600020908101928215615b16579160200282015b82811115615b16578251825591602001919060010190615b42565b828054828255906000526020600020908101928215615ba3579160200282015b82811115615ba35782518290615b939082616ddb565b5091602001919060010190615b7d565b50613936929150615c16565b828054828255906000526020600020908101928215615bf5579160200282015b82811115615bf55782518290615be59082616ddb565b5091602001919060010190615bcf565b50613936929150615c33565b5b808211156139365760008155600101615c02565b80821115613936576000615c2a8282615c50565b50600101615c16565b80821115613936576000615c478282615c50565b50600101615c33565b508054615c5c90616898565b6000825580601f10615c6c575050565b601f0160209004906000526020600020908101906111d19190615c01565b600060208284031215615c9c57600080fd5b5035919050565b600060208284031215615cb557600080fd5b81356001600160e01b03198116811461206657600080fd5b803560ff8116811461195b57600080fd5b60008083601f840112615cf057600080fd5b5081356001600160401b03811115615d0757600080fd5b602083019150836020828501011115615d1f57600080fd5b9250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715615d6457615d64615d26565b604052919050565b60006001600160401b03821115615d8557615d85615d26565b50601f01601f191660200190565b600082601f830112615da457600080fd5b8135615db7615db282615d6c565b615d3c565b818152846020838601011115615dcc57600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060008060008060e0898b031215615e0557600080fd5b88359750615e1560208a01615ccd565b965060408901356001600160401b0380821115615e3157600080fd5b615e3d8c838d01615cde565b909850965060608b0135915080821115615e5657600080fd5b50615e638b828c01615d93565b945050615e7260808a01615ccd565b925060a0890135915060c089013590509295985092959890939650565b60005b83811015615eaa578181015183820152602001615e92565b50506000910152565b60008151808452615ecb816020860160208601615e8f565b601f01601f19169290920160200192915050565b6020815260006120666020830184615eb3565b6001600160a01b03811681146111d157600080fd5b60008060008060808587031215615f1d57600080fd5b8435615f2881615ef2565b93506020850135615f3881615ef2565b92506040850135915060608501356001600160401b03811115615f5a57600080fd5b615f6687828801615d93565b91505092959194509250565b60006001600160401b03821115615f8b57615f8b615d26565b5060051b60200190565b600082601f830112615fa657600080fd5b81356020615fb6615db283615f72565b82815260059290921b84018101918181019086841115615fd557600080fd5b8286015b84811015615ff9578035615fec81615ef2565b8352918301918301615fd9565b509695505050505050565b600082601f83011261601557600080fd5b81356020616025615db283615f72565b82815260059290921b8401810191818101908684111561604457600080fd5b8286015b84811015615ff95780358352918301918301616048565b600082601f83011261607057600080fd5b81356020616080615db283615f72565b82815260059290921b8401810191818101908684111561609f57600080fd5b8286015b84811015615ff95780356001600160401b038111156160c25760008081fd5b6160d08986838b0101615d93565b8452509183019183016160a3565b600080600080608085870312156160f457600080fd5b84356001600160401b038082111561610b57600080fd5b61611788838901615f95565b9550602087013591508082111561612d57600080fd5b61613988838901616004565b9450604087013591508082111561614f57600080fd5b5061615c8782880161605f565b949793965093946060013593505050565b60006020828403121561617f57600080fd5b813561206681615ef2565b600081518084526020808501945080840160005b838110156161c35781516001600160a01b03168752958201959082019060010161619e565b509495945050505050565b600081518084526020808501945080840160005b838110156161c3578151875295820195908201906001016161e2565b600081518084526020808501808196508360051b8101915082860160005b85811015616246578284038952616234848351615eb3565b9885019893509084019060010161621c565b5091979650505050505050565b608081526000616266608083018761618a565b828103602084015261627881876161ce565b9050828103604084015261628c81866161fe565b9050828103606084015261176881856161fe565b600080600080600060a086880312156162b857600080fd5b853594506162c860208701615ccd565b93506162d660408701615ccd565b94979396509394606081013594506080013592915050565b634e487b7160e01b600052602160045260246000fd5b602081016008831061632657634e487b7160e01b600052602160045260246000fd5b91905290565b6000806040838503121561633f57600080fd5b82359150602083013561635181615ef2565b809150509250929050565b6000806040838503121561636f57600080fd5b8235915061637f60208401615ccd565b90509250929050565b6000806000806000608086880312156163a057600080fd5b853594506163b060208701615ccd565b935060408601356001600160401b03808211156163cc57600080fd5b6163d889838a01615cde565b909550935060608801359150808211156163f157600080fd5b506163fe88828901615d93565b9150509295509295909350565b6000806000806060858703121561642157600080fd5b8435935061643160208601615ccd565b925060408501356001600160401b0381111561644c57600080fd5b61645887828801615cde565b95989497509550505050565b6000806000806080858703121561647a57600080fd5b84356001600160401b038082111561649157600080fd5b61649d88838901615f95565b955060208701359150808211156164b357600080fd5b6164bf88838901616004565b945060408701359150808211156164d557600080fd5b6164e18883890161605f565b935060608701359150808211156164f757600080fd5b50615f6687828801615d93565b60ff60f81b8816815260e06020820152600061652360e0830189615eb3565b82810360408401526165358189615eb3565b606084018890526001600160a01b038716608085015260a0840186905283810360c085015290506110ab81856161ce565b60008060006060848603121561657b57600080fd5b833561658681615ef2565b92506020840135915060408401356001600160401b038111156165a857600080fd5b6165b486828701615d93565b9150509250925092565b600080600080604085870312156165d457600080fd5b84356001600160401b03808211156165eb57600080fd5b6165f788838901615cde565b9096509450602087013591508082111561661057600080fd5b5061645887828801615cde565b600080600080600060a0868803121561663557600080fd5b853561664081615ef2565b9450602086013561665081615ef2565b935060408601356001600160401b038082111561666c57600080fd5b61667889838a01616004565b9450606088013591508082111561668e57600080fd5b61669a89838a01616004565b935060808801359150808211156163f157600080fd5b600080600080606085870312156166c657600080fd5b84356166d181615ef2565b93506020850135925060408501356001600160401b0381111561644c57600080fd5b60006020828403121561670557600080fd5b81356001600160401b038116811461206657600080fd5b600080600080600060a0868803121561673457600080fd5b85356001600160401b038082111561674b57600080fd5b61675789838a01615f95565b9650602088013591508082111561676d57600080fd5b61677989838a01616004565b9550604088013591508082111561678f57600080fd5b61679b89838a0161605f565b945060608801359150808211156167b157600080fd5b61669a89838a0161605f565b600080604083850312156167d057600080fd5b82356167db81615ef2565b946020939093013593505050565b600080600080600060a0868803121561680157600080fd5b853561680c81615ef2565b9450602086013561681c81615ef2565b9350604086013592506060860135915060808601356001600160401b0381111561684557600080fd5b6163fe88828901615d93565b8183823760009101908152919050565b60208082526018908201527f476f7665726e6f723a206f6e6c79476f7665726e616e63650000000000000000604082015260600190565b600181811c908216806168ac57607f821691505b6020821081036168cc57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201616910576169106168e8565b5060010190565b65ffffffffffff828116828216039080821115616936576169366168e8565b5092915050565b60208082526021908201527f476f7665726e6f723a2070726f706f73616c206e6f74207375636365737366756040820152601b60fa1b606082015260800190565b60006020828403121561699057600080fd5b81516001600160401b038111156169a657600080fd5b8201601f810184136169b757600080fd5b80516169c5615db282615d6c565b8181528560208385010111156169da57600080fd5b611349826020830160208601615e8f565b81810381811115610fbb57610fbb6168e8565b634e487b7160e01b600052601260045260246000fd5b600082616a3157634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215616a4857600080fd5b815165ffffffffffff8116811461206657600080fd5b600060208284031215616a7057600080fd5b5051919050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b604081526000616ab4604083018688616a77565b8281036020840152611768818587616a77565b608081526000616ada608083018761618a565b8281036020840152616aec81876161ce565b90508281036040840152616b0081866161fe565b91505082606083015295945050505050565b8082028115828204841417610fbb57610fbb6168e8565b60a081526000616b3c60a083018861618a565b8281036020840152616b4e81886161ce565b90508281036040840152616b6281876161fe565b60608401959095525050608001529392505050565b60c081526000616b8a60c083018961618a565b8281036020840152616b9c81896161ce565b90508281036040840152616bb081886161fe565b60608401969096525050608081019290925260a0909101529392505050565b80820180821115610fbb57610fbb6168e8565b600060208284031215616bf457600080fd5b8151801515811461206657600080fd5b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60008251616c61818460208701615e8f565b9190910192915050565b6001600160e01b0319831681528151600090616c8e816004850160208701615e8f565b919091016004019392505050565b6001600160401b03818116838216019080821115616936576169366168e8565b60208082526021908201527f476f7665726e6f723a20696e76616c69642070726f706f73616c206c656e67746040820152600d60fb1b606082015260800190565b8981526001600160a01b038916602082015261012060408201819052600090616d288382018b61618a565b90508281036060840152616d3c818a6161ce565b90508281036080840152616d5081896161fe565b905082810360a0840152616d6481886161fe565b90508560c08401528460e0840152828103610100840152616d858185615eb3565b9c9b505050505050505050505050565b601f821115613bcc57600081815260208120601f850160051c81016020861015616dbc5750805b601f850160051c820191505b818110156117a157828155600101616dc8565b81516001600160401b03811115616df457616df4615d26565b616e0881616e028454616898565b84616d95565b602080601f831160018114616e3d5760008415616e255750858301515b600019600386901b1c1916600185901b1785556117a1565b600085815260208120601f198616915b82811015616e6c57888601518255948401946001909101908401616e4d565b5085821015616e8a5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b84815260ff84166020820152826040820152608060608201526000611b586080830184615eb3565b85815260ff8516602082015283604082015260a060608201526000616eea60a0830185615eb3565b8281036080840152611c718185615eb356fe476f7665726e6f723a2072656c617920726576657274656420776974686f7574206d657373616765a164736f6c6343000811000a" + }, + "0x0000000000000000000000000000000000002005": { + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b50600436106102065760003560e01c806370a082311161011a5780639ab24eb0116100ad578063d505accf1161007c578063d505accf1461049d578063dd62ed3e146104b0578063e5ed5b1e146104c3578063f1127ed8146104d6578063f1fad1041461051357600080fd5b80639ab24eb014610451578063a457c2d714610464578063a9059cbb14610477578063c3cda5201461048a57600080fd5b806384b0196e116100e957806384b0196e146103fc5780638e539e8c1461041757806391ddadf41461042a57806395d89b411461044957600080fd5b806370a08231146103aa57806379cc6790146103d35780637ecebe00146103e15780638129fc1c146103f457600080fd5b8063395093511161019d5780634bf5d7e91161016c5780634bf5d7e91461031b5780634bf6c88214610323578063587cde1e1461032b5780635c19a95c1461036f5780636fcfff451461038257600080fd5b806339509351146102cf5780633a46b1a8146102e257806342966c68146102f5578063448407751461030857600080fd5b806323b872dd116101d957806323b872dd1461028a5780633041949b1461029d578063313ce567146102b25780633644e515146102c757600080fd5b8063039c91fc1461020b57806306fdde031461024a578063095ea7b31461025f57806318160ddd14610282575b600080fd5b6102376102193660046120c7565b61013060209081526000928352604080842090915290825290205481565b6040519081526020015b60405180910390f35b61025261051b565b6040516102419190612140565b61027261026d366004612153565b6105ad565b6040519015158152602001610241565b603554610237565b61027261029836600461217d565b6105c7565b6102b06102ab3660046120c7565b6105eb565b005b60125b60405160ff9091168152602001610241565b610237610624565b6102726102dd366004612153565b610633565b6102376102f0366004612153565b610655565b6102b06103033660046121b9565b6106da565b6102b06103163660046121d2565b6106f3565b61025261076c565b6102b5600881565b610357610339366004612256565b6001600160a01b03908116600090815260fe60205260409020541690565b6040516001600160a01b039091168152602001610241565b6102b061037d366004612256565b610804565b610395610390366004612256565b610811565b60405163ffffffff9091168152602001610241565b6102376103b8366004612256565b6001600160a01b031660009081526033602052604090205490565b6102b0610303366004612153565b6102376103ef366004612256565b610833565b6102b0610851565b610404610a31565b6040516102419796959493929190612271565b6102376104253660046121b9565b610acf565b610432610b37565b60405165ffffffffffff9091168152602001610241565b610252610b42565b61023761045f366004612256565b610b51565b610272610472366004612153565b610bd3565b610272610485366004612153565b610c4e565b6102b0610498366004612318565b610c5c565b6102b06104ab366004612370565b610d92565b6102376104be3660046120c7565b610ef6565b6102b06104d13660046120c7565b610f21565b6104e96104e43660046123da565b610f51565b60408051825163ffffffff1681526020928301516001600160e01b03169281019290925201610241565b6102b5601181565b60606036805461052a9061241a565b80601f01602080910402602001604051908101604052809291908181526020018280546105569061241a565b80156105a35780601f10610578576101008083540402835291602001916105a3565b820191906000526020600020905b81548152906001019060200180831161058657829003601f168201915b5050505050905090565b6000336105bb818585610fd5565b60019150505b92915050565b6000336105d5858285610fee565b6105e0858585611068565b506001949350505050565b336120021461061657604051630f22c43960e41b815261200260048201526024015b60405180910390fd5b6106208282611081565b5050565b600061062e6111b1565b905090565b6000336105bb8185856106468383610ef6565b6106509190612464565b610fd5565b600061065f610b37565b65ffffffffffff1682106106b15760405162461bcd60e51b815260206004820152601960248201527804552433230566f7465733a20667574757265206c6f6f6b757603c1b604482015260640161060d565b6001600160a01b038316600090815260ff602052604090206106d390836111bb565b9392505050565b60405163e5d8776760e01b815260040160405180910390fd5b336120021461071957604051630f22c43960e41b8152612002600482015260240161060d565b8160005b818110156107655761075585858381811061073a5761073a612477565b905060200201602081019061074f9190612256565b84611081565b61075e8161248d565b905061071d565b5050505050565b606043610777610b37565b65ffffffffffff16146107cc5760405162461bcd60e51b815260206004820152601d60248201527f4552433230566f7465733a2062726f6b656e20636c6f636b206d6f6465000000604482015260640161060d565b5060408051808201909152601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000602082015290565b61080e33826112a4565b50565b6001600160a01b038116600090815260ff60205260408120546105c19061131e565b6001600160a01b038116600090815260cb60205260408120546105c1565b600054610100900460ff16158080156108715750600054600160ff909116105b8061088b5750303b15801561088b575060005460ff166001145b6108ee5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161060d565b6000805460ff191660011790558015610911576000805461ff0019166101001790555b3341146109315760405163022d8c9560e31b815260040160405180910390fd5b3a15610950576040516383f1b1d360e01b815260040160405180910390fd5b6109a4604051806040016040528060148152602001732129a19023b7bb32b93730b731b2902a37b5b2b760611b8152506040518060400160405280600681526020016533b7bb21272160d11b815250611387565b6109ac6113b8565b6109e1604051806040016040528060148152602001732129a19023b7bb32b93730b731b2902a37b5b2b760611b8152506113e1565b6109e96113b8565b801561080e576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b6000606080600080600060606097546000801b148015610a515750609854155b610a955760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b604482015260640161060d565b610a9d61142b565b610aa561143a565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b6000610ad9610b37565b65ffffffffffff168210610b2b5760405162461bcd60e51b815260206004820152601960248201527804552433230566f7465733a20667574757265206c6f6f6b757603c1b604482015260640161060d565b6105c1610100836111bb565b600061062e43611449565b60606037805461052a9061241a565b6001600160a01b038116600090815260ff60205260408120548015610bc0576001600160a01b038316600090815260ff6020526040902080546000198301908110610b9e57610b9e612477565b60009182526020909120015464010000000090046001600160e01b0316610bc3565b60005b6001600160e01b03169392505050565b60003381610be18286610ef6565b905083811015610c415760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161060d565b6105e08286868403610fd5565b6000336105bb818585611068565b83421115610cac5760405162461bcd60e51b815260206004820152601d60248201527f4552433230566f7465733a207369676e61747572652065787069726564000000604482015260640161060d565b604080517fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60208201526001600160a01b038816918101919091526060810186905260808101859052600090610d2690610d1e9060a001604051602081830303815290604052805190602001206114b0565b8585856114dd565b9050610d3181611505565b8614610d7f5760405162461bcd60e51b815260206004820152601960248201527f4552433230566f7465733a20696e76616c6964206e6f6e636500000000000000604482015260640161060d565b610d8981886112a4565b50505050505050565b83421115610de25760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e65000000604482015260640161060d565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9888888610e118c611505565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090506000610e6c826114b0565b90506000610e7c828787876114dd565b9050896001600160a01b0316816001600160a01b031614610edf5760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e61747572650000604482015260640161060d565b610eea8a8a8a610fd5565b50505050505050505050565b6001600160a01b03918216600090815260346020908152604080832093909416825291909152205490565b3361200214610f4757604051630f22c43960e41b8152612002600482015260240161060d565b61062082826112a4565b60408051808201909152600080825260208201526001600160a01b038316600090815260ff60205260409020805463ffffffff8416908110610f9557610f95612477565b60009182526020918290206040805180820190915291015463ffffffff8116825264010000000090046001600160e01b0316918101919091529392505050565b604051632028747160e01b815260040160405180910390fd5b6000610ffa8484610ef6565b9050600019811461106257818110156110555760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161060d565b6110628484848403610fd5565b50505050565b604051638cd22d1960e01b815260040160405180910390fd5b604051630913db4760e01b81526001600160a01b03828116600483015260009190841690630913db4790602401602060405180830381865afa1580156110cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ef91906124bc565b6001600160a01b03808516600090815261013060209081526040808320938716835292905220549091508181101561116857600061112d82846124d5565b6001600160a01b038087166000908152610130602090815260408083209389168352929052208490559050611162848261152d565b50611062565b8181111561106257600061117c83836124d5565b6001600160a01b0380871660009081526101306020908152604080832093891683529290522084905590506107658482611537565b600061062e611541565b8154600090818160058111156112155760006111d6846115b5565b6111e090856124d5565b600088815260209020909150869082015463ffffffff16111561120557809150611213565b611210816001612464565b92505b505b80821015611262576000611229838361169d565b600088815260209020909150869082015463ffffffff16111561124e5780915061125c565b611259816001612464565b92505b50611215565b801561128e576000868152602090208101600019015464010000000090046001600160e01b0316611291565b60005b6001600160e01b03169695505050505050565b6001600160a01b03828116600081815260fe6020818152604080842080546033845282862054949093528787166001600160a01b03198416811790915590519190951694919391928592917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a46110628284836116b8565b600063ffffffff8211156113835760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b606482015260840161060d565b5090565b600054610100900460ff166113ae5760405162461bcd60e51b815260040161060d906124e8565b61062082826117f6565b600054610100900460ff166113df5760405162461bcd60e51b815260040161060d906124e8565b565b600054610100900460ff166114085760405162461bcd60e51b815260040161060d906124e8565b61080e81604051806040016040528060018152602001603160f81b815250611836565b60606099805461052a9061241a565b6060609a805461052a9061241a565b600065ffffffffffff8211156113835760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203460448201526538206269747360d01b606482015260840161060d565b60006105c16114bd6111b1565b8360405161190160f01b8152600281019290925260228201526042902090565b60008060006114ee87878787611885565b915091506114fb81611949565b5095945050505050565b6001600160a01b038116600090815260cb602052604090208054600181018255905b50919050565b6106208282611a93565b6106208282611b1e565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f61156c611b37565b611574611b90565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b6000816000036115c757506000919050565b600060016115d484611bc1565b901c6001901b905060018184816115ed576115ed612533565b048201901c9050600181848161160557611605612533565b048201901c9050600181848161161d5761161d612533565b048201901c9050600181848161163557611635612533565b048201901c9050600181848161164d5761164d612533565b048201901c9050600181848161166557611665612533565b048201901c9050600181848161167d5761167d612533565b048201901c90506106d38182858161169757611697612533565b04611c55565b60006116ac6002848418612549565b6106d390848416612464565b816001600160a01b0316836001600160a01b0316141580156116da5750600081115b156117f1576001600160a01b03831615611768576001600160a01b038316600090815260ff60205260408120819061171590611c6b85611c77565b91509150846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724838360405161175d929190918252602082015260400190565b60405180910390a250505b6001600160a01b038216156117f1576001600160a01b038216600090815260ff60205260408120819061179e90611dec85611c77565b91509150836001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a72483836040516117e6929190918252602082015260400190565b60405180910390a250505b505050565b600054610100900460ff1661181d5760405162461bcd60e51b815260040161060d906124e8565b603661182983826125b9565b5060376117f182826125b9565b600054610100900460ff1661185d5760405162461bcd60e51b815260040161060d906124e8565b609961186983826125b9565b50609a61187682826125b9565b50506000609781905560985550565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156118bc5750600090506003611940565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611910573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661193957600060019250925050611940565b9150600090505b94509492505050565b600081600481111561195d5761195d612679565b036119655750565b600181600481111561197957611979612679565b036119c65760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161060d565b60028160048111156119da576119da612679565b03611a275760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161060d565b6003816004811115611a3b57611a3b612679565b0361080e5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161060d565b611a9d8282611df8565b6035546001600160e01b031015611b0f5760405162461bcd60e51b815260206004820152603060248201527f4552433230566f7465733a20746f74616c20737570706c79207269736b73206f60448201526f766572666c6f77696e6720766f74657360801b606482015260840161060d565b611062610100611dec83611c77565b611b288282611ec1565b611062610100611c6b83611c77565b600080611b4261142b565b805190915015611b59578051602090910120919050565b6097548015611b685792915050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4709250505090565b600080611b9b61143a565b805190915015611bb2578051602090910120919050565b6098548015611b685792915050565b600080608083901c15611bd657608092831c92015b604083901c15611be857604092831c92015b602083901c15611bfa57602092831c92015b601083901c15611c0c57601092831c92015b600883901c15611c1e57600892831c92015b600483901c15611c3057600492831c92015b600283901c15611c4257600292831c92015b600183901c156105c15760010192915050565b6000818310611c6457816106d3565b5090919050565b60006106d382846124d5565b82546000908190818115611cc45760008781526020902082016000190160408051808201909152905463ffffffff8116825264010000000090046001600160e01b03166020820152611cd9565b60408051808201909152600080825260208201525b905080602001516001600160e01b03169350611cf984868863ffffffff16565b9250600082118015611d235750611d0e610b37565b65ffffffffffff16816000015163ffffffff16145b15611d6857611d3183611ffc565b60008881526020902083016000190180546001600160e01b03929092166401000000000263ffffffff909216919091179055611de2565b866040518060400160405280611d8c611d7f610b37565b65ffffffffffff1661131e565b63ffffffff168152602001611da086611ffc565b6001600160e01b0390811690915282546001810184556000938452602093849020835194909301519091166401000000000263ffffffff909316929092179101555b5050935093915050565b60006106d38284612464565b6001600160a01b038216611e4e5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161060d565b8060356000828254611e609190612464565b90915550506001600160a01b0382166000818152603360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361062060008383612065565b6001600160a01b038216611f215760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b606482015260840161060d565b6001600160a01b03821660009081526033602052604090205481811015611f955760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b606482015260840161060d565b6001600160a01b03831660008181526033602090815260408083208686039055603580548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36117f183600084612065565b60006001600160e01b038211156113835760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b606482015260840161060d565b6117f18383836001600160a01b03808416600090815260fe60205260409020546117f191166001600160a01b03808516600090815260fe602052604090205416836116b8565b80356001600160a01b03811681146120c257600080fd5b919050565b600080604083850312156120da57600080fd5b6120e3836120ab565b91506120f1602084016120ab565b90509250929050565b6000815180845260005b8181101561212057602081850181015186830182015201612104565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006106d360208301846120fa565b6000806040838503121561216657600080fd5b61216f836120ab565b946020939093013593505050565b60008060006060848603121561219257600080fd5b61219b846120ab565b92506121a9602085016120ab565b9150604084013590509250925092565b6000602082840312156121cb57600080fd5b5035919050565b6000806000604084860312156121e757600080fd5b833567ffffffffffffffff808211156121ff57600080fd5b818601915086601f83011261221357600080fd5b81358181111561222257600080fd5b8760208260051b850101111561223757600080fd5b60209283019550935061224d91860190506120ab565b90509250925092565b60006020828403121561226857600080fd5b6106d3826120ab565b60ff60f81b881681526000602060e08184015261229160e084018a6120fa565b83810360408501526122a3818a6120fa565b606085018990526001600160a01b038816608086015260a0850187905284810360c0860152855180825283870192509083019060005b818110156122f5578351835292840192918401916001016122d9565b50909c9b505050505050505050505050565b803560ff811681146120c257600080fd5b60008060008060008060c0878903121561233157600080fd5b61233a876120ab565b9550602087013594506040870135935061235660608801612307565b92506080870135915060a087013590509295509295509295565b600080600080600080600060e0888a03121561238b57600080fd5b612394886120ab565b96506123a2602089016120ab565b955060408801359450606088013593506123be60808901612307565b925060a0880135915060c0880135905092959891949750929550565b600080604083850312156123ed57600080fd5b6123f6836120ab565b9150602083013563ffffffff8116811461240f57600080fd5b809150509250929050565b600181811c9082168061242e57607f821691505b60208210810361152757634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b808201808211156105c1576105c161244e565b634e487b7160e01b600052603260045260246000fd5b60006001820161249f5761249f61244e565b5060010190565b634e487b7160e01b600052604160045260246000fd5b6000602082840312156124ce57600080fd5b5051919050565b818103818111156105c1576105c161244e565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b634e487b7160e01b600052601260045260246000fd5b60008261256657634e487b7160e01b600052601260045260246000fd5b500490565b601f8211156117f157600081815260208120601f850160051c810160208610156125925750805b601f850160051c820191505b818110156125b15782815560010161259e565b505050505050565b815167ffffffffffffffff8111156125d3576125d36124a6565b6125e7816125e1845461241a565b8461256b565b602080601f83116001811461261c57600084156126045750858301515b600019600386901b1c1916600185901b1785556125b1565b600085815260208120601f198616915b8281101561264b5788860151825594840194600190910190840161262c565b50858210156126695787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052602160045260246000fdfea164736f6c6343000811000a" + }, + "0x0000000000000000000000000000000000002006": { + "balance": "0x0", + "code": "0x6080604052600436106101e75760003560e01c80638129fc1c11610102578063bc197c8111610095578063e38335e511610064578063e38335e5146105e1578063f1fad104146105f4578063f23a6e6114610609578063f27a0c921461063557600080fd5b8063bc197c8114610548578063c4d252f514610574578063d45c443514610594578063d547741f146105c157600080fd5b8063a217fddf116100d1578063a217fddf146104d1578063ac431751146104e6578063b08e51c014610506578063b1c5f4271461052857600080fd5b80638129fc1c1461045a5780638f2a0bb01461046f5780638f61f4f51461048f57806391d14854146104b157600080fd5b80632ab0f5291161017a5780634bf6c882116101495780634bf6c882146103d3578063584b153e146103fa57806364d623531461041a5780638065657f1461043a57600080fd5b80632ab0f529146103435780632f2ff15d1461037357806331d507501461039357806336568abe146103b357600080fd5b8063134008d3116101b6578063134008d31461029c57806313bc9f20146102af578063150b7a02146102cf578063248a9ca31461031357600080fd5b806301d5062a146101f357806301ffc9a71461021557806307bd02651461024a5780630d3cf6fc1461027a57600080fd5b366101ee57005b600080fd5b3480156101ff57600080fd5b5061021361020e366004611aa5565b61064a565b005b34801561022157600080fd5b50610235610230366004611b19565b61070e565b60405190151581526020015b60405180910390f35b34801561025657600080fd5b5061026c60008051602061258983398151915281565b604051908152602001610241565b34801561028657600080fd5b5061026c60008051602061254983398151915281565b6102136102aa366004611b43565b610739565b3480156102bb57600080fd5b506102356102ca366004611bae565b6107dc565b3480156102db57600080fd5b506102fa6102ea366004611c7c565b630a85bd0160e11b949350505050565b6040516001600160e01b03199091168152602001610241565b34801561031f57600080fd5b5061026c61032e366004611bae565b60009081526065602052604090206001015490565b34801561034f57600080fd5b5061023561035e366004611bae565b60009081526097602052604090205460011490565b34801561037f57600080fd5b5061021361038e366004611ce3565b610802565b34801561039f57600080fd5b506102356103ae366004611bae565b61082c565b3480156103bf57600080fd5b506102136103ce366004611ce3565b610845565b3480156103df57600080fd5b506103e8600881565b60405160ff9091168152602001610241565b34801561040657600080fd5b50610235610415366004611bae565b6108c8565b34801561042657600080fd5b50610213610435366004611bae565b6108df565b34801561044657600080fd5b5061026c610455366004611b43565b610983565b34801561046657600080fd5b506102136109c2565b34801561047b57600080fd5b5061021361048a366004611d53565b610b73565b34801561049b57600080fd5b5061026c60008051602061256983398151915281565b3480156104bd57600080fd5b506102356104cc366004611ce3565b610cf4565b3480156104dd57600080fd5b5061026c600081565b3480156104f257600080fd5b50610213610501366004611e04565b610d1f565b34801561051257600080fd5b5061026c6000805160206125a983398151915281565b34801561053457600080fd5b5061026c610543366004611e6f565b610f09565b34801561055457600080fd5b506102fa610563366004611f96565b63bc197c8160e01b95945050505050565b34801561058057600080fd5b5061021361058f366004611bae565b610f4e565b3480156105a057600080fd5b5061026c6105af366004611bae565b60009081526097602052604090205490565b3480156105cd57600080fd5b506102136105dc366004611ce3565b611011565b6102136105ef366004611e6f565b611036565b34801561060057600080fd5b506103e8601181565b34801561061557600080fd5b506102fa61062436600461203f565b63f23a6e6160e01b95945050505050565b34801561064157600080fd5b5060985461026c565b600080516020612569833981519152610662816111ae565b6000610672898989898989610983565b905061067e81846111b8565b6000817f4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca8b8b8b8b8b8a6040516106ba969594939291906120cc565b60405180910390a3831561070357807f20fda5fd27a1ea7bf5b9567f143ac5470bb059374a27e8f67cb44f946f6d0387856040516106fa91815260200190565b60405180910390a25b505050505050505050565b60006001600160e01b03198216630271189760e51b14806107335750610733826112a7565b92915050565b600080516020612589833981519152610753816000610cf4565b6107615761076181336112dc565b6000610771888888888888610983565b905061077d8185611335565b610789888888886113d0565b6000817fc2617efa69bab66782fa219543714338489c4e9e178271560a91b82c3f612b588a8a8a8a6040516107c19493929190612109565b60405180910390a36107d2816114a3565b5050505050505050565b6000818152609760205260408120546001811180156107fb5750428111155b9392505050565b60008281526065602052604090206001015461081d816111ae565b61082783836114dc565b505050565b60008181526097602052604081205481905b1192915050565b6001600160a01b03811633146108ba5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6108c48282611562565b5050565b60008181526097602052604081205460019061083e565b3330146109425760405162461bcd60e51b815260206004820152602b60248201527f54696d656c6f636b436f6e74726f6c6c65723a2063616c6c6572206d7573742060448201526a62652074696d656c6f636b60a81b60648201526084016108b1565b60985460408051918252602082018390527f11c24f4ead16507c69ac467fbd5e4eed5fb5c699626d2cc6d66421df253886d5910160405180910390a1609855565b60008686868686866040516020016109a0969594939291906120cc565b6040516020818303038152906040528051906020012090509695505050505050565b600054610100900460ff16158080156109e25750600054600160ff909116105b806109fc5750303b1580156109fc575060005460ff166001145b610a5f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016108b1565b6000805460ff191660011790558015610a82576000805461ff0019166101001790555b334114610aa25760405163022d8c9560e31b815260040160405180910390fd5b3a15610ac1576040516383f1b1d360e01b815260040160405180910390fd5b6040805160018082528183019092526000916020808301908036833701905050905061200481600081518110610af957610af961213b565b60200260200101906001600160a01b031690816001600160a01b031681525050610b2961546082836120046115c9565b508015610b70576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50565b600080516020612569833981519152610b8b816111ae565b888714610baa5760405162461bcd60e51b81526004016108b190612151565b888514610bc95760405162461bcd60e51b81526004016108b190612151565b6000610bdb8b8b8b8b8b8b8b8b610f09565b9050610be781846111b8565b60005b8a811015610ca55780827f4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca8e8e85818110610c2757610c2761213b565b9050602002016020810190610c3c9190612194565b8d8d86818110610c4e57610c4e61213b565b905060200201358c8c87818110610c6757610c6761213b565b9050602002810190610c7991906121af565b8c8b604051610c8d969594939291906120cc565b60405180910390a3610c9e8161220b565b9050610bea565b508315610ce757807f20fda5fd27a1ea7bf5b9567f143ac5470bb059374a27e8f67cb44f946f6d038785604051610cde91815260200190565b60405180910390a25b5050505050505050505050565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b3361100714610d4557604051630f22c43960e41b815261100760048201526024016108b1565b610da8604051806040016040528060088152602001676d696e44656c617960c01b81525085858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092939250506116029050565b15610ea55760208114610dd65783838383604051630a5a604160e01b81526004016108b19493929190612224565b604080516020601f8401819004810282018101909252828152600091610e1791858580838501838280828437600092019190915250929392505061165b9050565b9050801580610e2857506212750081115b15610e4e5784848484604051630a5a604160e01b81526004016108b19493929190612224565b6040516364d6235360e01b81526004810182905230906364d6235390602401600060405180830381600087803b158015610e8757600080fd5b505af1158015610e9b573d6000803e3d6000fd5b5050505050610ec6565b838383836040516325ee20d560e21b81526004016108b19493929190612224565b7ff1ce9b2cbf50eeb05769a29e2543fd350cab46894a7dd9978a12d534bb20e63384848484604051610efb9493929190612224565b60405180910390a150505050565b60008888888888888888604051602001610f2a9897969594939291906122d9565b60405160208183030381529060405280519060200120905098975050505050505050565b6000805160206125a9833981519152610f66816111ae565b610f6f826108c8565b610fd55760405162461bcd60e51b815260206004820152603160248201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e2063616044820152701b9b9bdd0818994818d85b98d95b1b1959607a1b60648201526084016108b1565b6000828152609760205260408082208290555183917fbaa1eb22f2a492ba1a5fea61b8df4d27c6c8b5f3971e63bb58fa14ff72eedb7091a25050565b60008281526065602052604090206001015461102c816111ae565b6108278383611562565b600080516020612589833981519152611050816000610cf4565b61105e5761105e81336112dc565b87861461107d5760405162461bcd60e51b81526004016108b190612151565b87841461109c5760405162461bcd60e51b81526004016108b190612151565b60006110ae8a8a8a8a8a8a8a8a610f09565b90506110ba8185611335565b60005b898110156111985760008b8b838181106110d9576110d961213b565b90506020020160208101906110ee9190612194565b905060008a8a848181106111045761110461213b565b9050602002013590503660008a8a868181106111225761112261213b565b905060200281019061113491906121af565b91509150611144848484846113d0565b84867fc2617efa69bab66782fa219543714338489c4e9e178271560a91b82c3f612b588686868660405161117b9493929190612109565b60405180910390a350505050806111919061220b565b90506110bd565b506111a2816114a3565b50505050505050505050565b610b7081336112dc565b6111c18261082c565b156112265760405162461bcd60e51b815260206004820152602f60248201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e20616c60448201526e1c9958591e481cd8da19591d5b1959608a1b60648201526084016108b1565b6098548110156112875760405162461bcd60e51b815260206004820152602660248201527f54696d656c6f636b436f6e74726f6c6c65723a20696e73756666696369656e746044820152652064656c617960d01b60648201526084016108b1565b611291814261237a565b6000928352609760205260409092209190915550565b60006001600160e01b03198216637965db0b60e01b148061073357506301ffc9a760e01b6001600160e01b0319831614610733565b6112e68282610cf4565b6108c4576112f381611660565b6112fe836020611672565b60405160200161130f9291906123b1565b60408051601f198184030181529082905262461bcd60e51b82526108b191600401612426565b61133e826107dc565b61135a5760405162461bcd60e51b81526004016108b190612459565b80158061137557506000818152609760205260409020546001145b6108c45760405162461bcd60e51b815260206004820152602660248201527f54696d656c6f636b436f6e74726f6c6c65723a206d697373696e6720646570656044820152656e64656e637960d01b60648201526084016108b1565b6000846001600160a01b03168484846040516113ed9291906124a3565b60006040518083038185875af1925050503d806000811461142a576040519150601f19603f3d011682016040523d82523d6000602084013e61142f565b606091505b505090508061149c5760405162461bcd60e51b815260206004820152603360248201527f54696d656c6f636b436f6e74726f6c6c65723a20756e6465726c79696e6720746044820152721c985b9cd858dd1a5bdb881c995d995c9d1959606a1b60648201526084016108b1565b5050505050565b6114ac816107dc565b6114c85760405162461bcd60e51b81526004016108b190612459565b600090815260976020526040902060019055565b6114e68282610cf4565b6108c45760008281526065602090815260408083206001600160a01b03851684529091529020805460ff1916600117905561151e3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b61156c8282610cf4565b156108c45760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600054610100900460ff166115f05760405162461bcd60e51b81526004016108b1906124b3565b6115fc8484848461180d565b50505050565b60008160405160200161161591906124fe565b604051602081830303815290604052805190602001208360405160200161163c91906124fe565b6040516020818303038152906040528051906020012014905092915050565b015190565b60606107336001600160a01b03831660145b6060600061168183600261251a565b61168c90600261237a565b6001600160401b038111156116a3576116a3611bc7565b6040519080825280601f01601f1916602001820160405280156116cd576020820181803683370190505b509050600360fc1b816000815181106116e8576116e861213b565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106117175761171761213b565b60200101906001600160f81b031916908160001a905350600061173b84600261251a565b61174690600161237a565b90505b60018111156117be576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061177a5761177a61213b565b1a60f81b8282815181106117905761179061213b565b60200101906001600160f81b031916908160001a90535060049490941c936117b781612531565b9050611749565b5083156107fb5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016108b1565b600054610100900460ff166118345760405162461bcd60e51b81526004016108b1906124b3565b61184c600080516020612549833981519152806119ec565b6118726000805160206125698339815191526000805160206125498339815191526119ec565b6118986000805160206125898339815191526000805160206125498339815191526119ec565b6118be6000805160206125a98339815191526000805160206125498339815191526119ec565b6118d660008051602061254983398151915230611a37565b6001600160a01b038116156118fd576118fd60008051602061254983398151915282611a37565b60005b835181101561196e5761193a60008051602061256983398151915285838151811061192d5761192d61213b565b6020026020010151611a37565b61195e6000805160206125a983398151915285838151811061192d5761192d61213b565b6119678161220b565b9050611900565b5060005b82518110156119af5761199f60008051602061258983398151915284838151811061192d5761192d61213b565b6119a88161220b565b9050611972565b5060988490556040805160008152602081018690527f11c24f4ead16507c69ac467fbd5e4eed5fb5c699626d2cc6d66421df253886d59101610efb565b600082815260656020526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b6108c482826114dc565b80356001600160a01b0381168114611a5857600080fd5b919050565b60008083601f840112611a6f57600080fd5b5081356001600160401b03811115611a8657600080fd5b602083019150836020828501011115611a9e57600080fd5b9250929050565b600080600080600080600060c0888a031215611ac057600080fd5b611ac988611a41565b96506020880135955060408801356001600160401b03811115611aeb57600080fd5b611af78a828b01611a5d565b989b979a50986060810135976080820135975060a09091013595509350505050565b600060208284031215611b2b57600080fd5b81356001600160e01b0319811681146107fb57600080fd5b60008060008060008060a08789031215611b5c57600080fd5b611b6587611a41565b95506020870135945060408701356001600160401b03811115611b8757600080fd5b611b9389828a01611a5d565b979a9699509760608101359660809091013595509350505050565b600060208284031215611bc057600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611c0557611c05611bc7565b604052919050565b600082601f830112611c1e57600080fd5b81356001600160401b03811115611c3757611c37611bc7565b611c4a601f8201601f1916602001611bdd565b818152846020838601011115611c5f57600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215611c9257600080fd5b611c9b85611a41565b9350611ca960208601611a41565b92506040850135915060608501356001600160401b03811115611ccb57600080fd5b611cd787828801611c0d565b91505092959194509250565b60008060408385031215611cf657600080fd5b82359150611d0660208401611a41565b90509250929050565b60008083601f840112611d2157600080fd5b5081356001600160401b03811115611d3857600080fd5b6020830191508360208260051b8501011115611a9e57600080fd5b600080600080600080600080600060c08a8c031215611d7157600080fd5b89356001600160401b0380821115611d8857600080fd5b611d948d838e01611d0f565b909b50995060208c0135915080821115611dad57600080fd5b611db98d838e01611d0f565b909950975060408c0135915080821115611dd257600080fd5b50611ddf8c828d01611d0f565b9a9d999c50979a969997986060880135976080810135975060a0013595509350505050565b60008060008060408587031215611e1a57600080fd5b84356001600160401b0380821115611e3157600080fd5b611e3d88838901611a5d565b90965094506020870135915080821115611e5657600080fd5b50611e6387828801611a5d565b95989497509550505050565b60008060008060008060008060a0898b031215611e8b57600080fd5b88356001600160401b0380821115611ea257600080fd5b611eae8c838d01611d0f565b909a50985060208b0135915080821115611ec757600080fd5b611ed38c838d01611d0f565b909850965060408b0135915080821115611eec57600080fd5b50611ef98b828c01611d0f565b999c989b509699959896976060870135966080013595509350505050565b600082601f830112611f2857600080fd5b813560206001600160401b03821115611f4357611f43611bc7565b8160051b611f52828201611bdd565b9283528481018201928281019087851115611f6c57600080fd5b83870192505b84831015611f8b57823582529183019190830190611f72565b979650505050505050565b600080600080600060a08688031215611fae57600080fd5b611fb786611a41565b9450611fc560208701611a41565b935060408601356001600160401b0380821115611fe157600080fd5b611fed89838a01611f17565b9450606088013591508082111561200357600080fd5b61200f89838a01611f17565b9350608088013591508082111561202557600080fd5b5061203288828901611c0d565b9150509295509295909350565b600080600080600060a0868803121561205757600080fd5b61206086611a41565b945061206e60208701611a41565b9350604086013592506060860135915060808601356001600160401b0381111561209757600080fd5b61203288828901611c0d565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60018060a01b038716815285602082015260a0604082015260006120f460a0830186886120a3565b60608301949094525060800152949350505050565b60018060a01b03851681528360208201526060604082015260006121316060830184866120a3565b9695505050505050565b634e487b7160e01b600052603260045260246000fd5b60208082526023908201527f54696d656c6f636b436f6e74726f6c6c65723a206c656e677468206d69736d616040820152620e8c6d60eb1b606082015260800190565b6000602082840312156121a657600080fd5b6107fb82611a41565b6000808335601e198436030181126121c657600080fd5b8301803591506001600160401b038211156121e057600080fd5b602001915036819003821315611a9e57600080fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161221d5761221d6121f5565b5060010190565b6040815260006122386040830186886120a3565b8281036020840152611f8b8185876120a3565b818352600060208085019450848460051b86018460005b878110156122cc5783830389528135601e1988360301811261228357600080fd5b870185810190356001600160401b0381111561229e57600080fd5b8036038213156122ad57600080fd5b6122b88582846120a3565b9a87019a9450505090840190600101612262565b5090979650505050505050565b60a0808252810188905260008960c08301825b8b81101561231a576001600160a01b0361230584611a41565b168252602092830192909101906001016122ec565b5083810360208501528881526001600160fb1b0389111561233a57600080fd5b8860051b9150818a60208301370182810360209081016040850152612362908201878961224b565b60608401959095525050608001529695505050505050565b80820180821115610733576107336121f5565b60005b838110156123a8578181015183820152602001612390565b50506000910152565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516123e981601785016020880161238d565b7001034b99036b4b9b9b4b733903937b6329607d1b601791840191820152835161241a81602884016020880161238d565b01602801949350505050565b602081526000825180602084015261244581604085016020870161238d565b601f01601f19169190910160400192915050565b6020808252602a908201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e206973604082015269206e6f7420726561647960b01b606082015260800190565b8183823760009101908152919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6000825161251081846020870161238d565b9190910192915050565b8082028115828204841417610733576107336121f5565b600081612540576125406121f5565b50600019019056fe5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca5b09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc1d8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63fd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f783a164736f6c6343000811000a" + }, + "0x0000000000000000000000000000000000003000": { + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b506004361061010b5760003560e01c80638129fc1c116100a2578063b187bd2611610071578063b187bd261461022c578063bfb5a6a114610237578063e33f8d321461024a578063e842426a1461026d578063f1fad1041461029857600080fd5b80638129fc1c146101fc5780638456cb59146102045780639fcb50121461020c578063ac4317511461021957600080fd5b80634a49ac4c116100de5780634a49ac4c1461017c5780634bf6c8821461018f578063572c9980146101a957806374be2150146101bc57600080fd5b8063046f7da2146101105780632eb4a7ab1461011a578063417c73a7146101365780634838d16514610149575b600080fd5b6101186102a0565b005b61012360685481565b6040519081526020015b60405180910390f35b6101186101443660046116a8565b610328565b61016c6101573660046116a8565b60346020526000908152604090205460ff1681565b604051901515815260200161012d565b61011861018a3660046116a8565b6103a4565b610197600881565b60405160ff909116815260200161012d565b6101186101b73660046116c3565b61041d565b6101ef6040518060400160405280601481526020017342696e616e63652d436861696e2d47616e67657360601b81525081565b60405161012d919061173f565b6101186104b3565b610118610625565b60695461016c9060ff1681565b61011861022736600461179b565b6106b1565b60335460ff1661016c565b61011861024536600461184c565b610ad0565b61016c610258366004611926565b6000908152606a602052604090205460ff1690565b606754610280906001600160a01b031681565b6040516001600160a01b03909116815260200161012d565b610197601181565b60335461010090046001600160a01b031633146102d0576040516306fbb1e360e01b815260040160405180910390fd5b60335460ff166102f357604051636cd6020160e01b815260040160405180910390fd5b6033805460ff191690556040517f62451d457bc659158be6e6247f56ec1df424a5c7597f71c20c2bc44e0965c8f990600090a1565b60335461010090046001600160a01b03163314610358576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b038116600081815260346020526040808220805460ff19166001179055517f7fd26be6fc92aff63f1f4409b2b2ddeb272a888031d7f55ec830485ec61941869190a250565b60335461010090046001600160a01b031633146103d4576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b038116600081815260346020526040808220805460ff19169055517fe0db3499b7fdc3da4cddff5f45d694549c19835e7f719fb5606d3ad1a5de40119190a250565b60335461010090046001600160a01b0316331461044d576040516306fbb1e360e01b815260040160405180910390fd5b604051638525db0360e01b8152600481018390526001600160a01b038216602482015261100490638525db0390604401600060405180830381600087803b15801561049757600080fd5b505af11580156104ab573d6000803e3d6000fd5b505050505050565b600054610100900460ff16158080156104d35750600054600160ff909116105b806104ed5750303b1580156104ed575060005460ff166001145b6105555760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff191660011790558015610578576000805461ff0019166101001790555b3341146105985760405163022d8c9560e31b815260040160405180910390fd5b3a156105b7576040516383f1b1d360e01b815260040160405180910390fd5b6105bf610e30565b6105dc7330151da466ec8ab345bef3d6983023e050fb0673610e5d565b8015610622576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50565b60335461010090046001600160a01b03163314610655576040516306fbb1e360e01b815260040160405180910390fd5b60335460ff161561067957604051631785c68160e01b815260040160405180910390fd5b6033805460ff191660011790556040517f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e75290600090a1565b33611007146106d757604051630f22c43960e41b8152611007600482015260240161054c565b6107416040518060400160405280600f81526020016e617070726f76616c4164647265737360881b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050610eac9050565b1561080b576014811461076f5783838383604051630a5a604160e01b815260040161054c9493929190611968565b60006107b5601484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050610f069050565b90506001600160a01b0381166107e65784848484604051630a5a604160e01b815260040161054c9493929190611968565b606780546001600160a01b0319166001600160a01b0392909216919091179055610a8d565b6108706040518060400160405280600a8152602001691b595c9adb19549bdbdd60b21b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050610eac9050565b156109405760695460ff1615610899576040516379b3306f60e11b815260040160405180910390fd5b602081146108c25783838383604051630a5a604160e01b815260040161054c9493929190611968565b604080516020601f8401819004810282018101909252828152600091610903918585808385018382808284376000920191909152509293925050610f069050565b90508061092b5784848484604051630a5a604160e01b815260040161054c9493929190611968565b6068556069805460ff19166001179055610a8d565b6109b86040518060400160405280601b81526020017f746f6b656e5265636f766572506f7274616c50726f746563746f72000000000081525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050610eac9050565b15610a6c57601481146109e65783838383604051630a5a604160e01b815260040161054c9493929190611968565b6000610a2c601484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050610f069050565b90506001600160a01b038116610a5d5784848484604051630a5a604160e01b815260040161054c9493929190611968565b610a6681610f0b565b50610a8d565b838383836040516325ee20d560e21b815260040161054c9493929190611968565b7ff1ce9b2cbf50eeb05769a29e2543fd350cab46894a7dd9978a12d534bb20e63384848484604051610ac29493929190611968565b60405180910390a150505050565b60695460ff16610af35760405163678f619760e11b815260040160405180910390fd5b606854610b135760405163678f619760e11b815260040160405180910390fd5b6067546001600160a01b0316610b3c57604051631a1b977b60e31b815260040160405180910390fd5b60335460ff1615610b6057604051631785c68160e01b815260040160405180910390fd5b610b68610f72565b6000610bf689898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a9081908401838280828437600081840152601f19601f82011690508083019250505050505050610bf18e8e33610fcb565b6110ec565b90506000818c8c604051602001610c0f9392919061199a565b604051602081830303815290604052805190602001209050610c40816000908152606a602052604090205460ff1690565b15610c5d57604051623e493160e81b815260040160405180910390fd5b610d053389898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a908190840183828082843760009201919091525050604080516020808c0282810182019093528b82528994509092508b918b918291908501908490808284376000920191909152506111c492505050565b610d468484808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505060685491508490506112cf565b610d63576040516309bde33960e01b815260040160405180910390fd5b6000818152606a602052604090819020805460ff191660011790555163799758b960e01b8152600481018d9052336024820152604481018c90526110049063799758b990606401600060405180830381600087803b158015610dc457600080fd5b505af1158015610dd8573d6000803e3d6000fd5b505050507f39cc0b7297a0ef9102d75ebc4919ffec0347d50008c2b865eda4125d5812cb64828d338e604051610e1194939291906119c1565b60405180910390a15050610e2460018055565b50505050505050505050565b600054610100900460ff16610e575760405162461bcd60e51b815260040161054c906119f9565b60018055565b600054610100900460ff16610e845760405162461bcd60e51b815260040161054c906119f9565b603380546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b600081604051602001610ebf9190611a44565b6040516020818303038152906040528051906020012083604051602001610ee69190611a44565b604051602081830303815290604052805190602001201490505b92915050565b015190565b6033546040516001600160a01b0380841692610100900416907f44fc1b38a4abaa91ebd1b628a5b259a698f86238c8217d68f516e87769c60c0b90600090a3603380546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b600260015403610fc45760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161054c565b6002600155565b600060026040518060400160405280601481526020017342696e616e63652d436861696e2d47616e67657360601b8152506110288560405160200161101291815260200190565b60405160208183030381529060405260006112e5565b6040516bffffffffffffffffffffffff19606087901b1660208201526110619060340160405160208183030381529060405260016112e5565b6110778860405160200161101291815260200190565b60405160200161108a9493929190611a60565b60408051601f19818403018152908290526110a491611a44565b602060405180830381855afa1580156110c1573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906110e49190611b8f565b949350505050565b6060835160211461111057604051638152ea1b60e01b815260040160405180910390fd5b825160401461113257604051635e4bd79760e11b815260040160405180910390fd5b604080516020808252818301909252600091602082018180368337019050509050826020820152600085858360405160200161117093929190611bbe565b60408051808303601f190181526014808452838301909252925060009190602082018180368337019050509050815160146020830182602086016069600019fa6111b957600080fd5b509695505050505050565b606060005b825181101561122257818382815181106111e5576111e5611c01565b60200260200101516040516020016111fe929190611c17565b6040516020818303038152906040529150808061121a90611c4f565b9150506111c9565b5060006040518060400160405280601481526020017342696e616e63652d436861696e2d47616e67657360601b8152508787866068548660405160200161126e96959493929190611c68565b60408051601f1981840301815291905280516020909101206067549091506001600160a01b031661129f86836114b7565b6001600160a01b0316146112c6576040516356b00a4f60e11b815260040160405180910390fd5b50505050505050565b6000826112dc8584611551565b14949350505050565b60606000835160026112f79190611cd9565b67ffffffffffffffff81111561130f5761130f611ba8565b6040519080825280601f01601f191660200182016040528015611339576020820181803683370190505b5060408051808201909152601081526f181899199a1a9b1b9c1cb0b131b232b360811b602082015290915060005b855181101561147f5781825187838151811061138557611385611c01565b0160200151611397919060f81c611d06565b815181106113a7576113a7611c01565b01602001516001600160f81b031916836113c2836002611cd9565b815181106113d2576113d2611c01565b60200101906001600160f81b031916908160001a9053508182518783815181106113fe576113fe611c01565b0160200151611410919060f81c611d1a565b8151811061142057611420611c01565b01602001516001600160f81b0319168361143b836002611cd9565b611446906001611d2e565b8151811061145657611456611c01565b60200101906001600160f81b031916908160001a9053508061147781611c4f565b915050611367565b5083156114af57816040516020016114979190611d41565b60405160208183030381529060405292505050610f00565b509392505050565b600082516041146114db576040516356b00a4f60e11b815260040160405180910390fd5b60208301516040840151606085015160001a601b81101561150457611501601b82611d6b565b90505b601b8160ff1610806115195750601c8160ff16115b15611537576040516356b00a4f60e11b815260040160405180910390fd5b600061154586838686611596565b50979650505050505050565b600081815b84518110156114af576115828286838151811061157557611575611c01565b602002602001015161165a565b91508061158e81611c4f565b915050611556565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156115cd5750600090506003611651565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611621573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661164a57600060019250925050611651565b9150600090505b94509492505050565b6000818310611676576000828152602084905260409020611685565b60008381526020839052604090205b9392505050565b80356001600160a01b03811681146116a357600080fd5b919050565b6000602082840312156116ba57600080fd5b6116858261168c565b600080604083850312156116d657600080fd5b823591506116e66020840161168c565b90509250929050565b60005b8381101561170a5781810151838201526020016116f2565b50506000910152565b6000815180845261172b8160208601602086016116ef565b601f01601f19169290920160200192915050565b6020815260006116856020830184611713565b60008083601f84011261176457600080fd5b50813567ffffffffffffffff81111561177c57600080fd5b60208301915083602082850101111561179457600080fd5b9250929050565b600080600080604085870312156117b157600080fd5b843567ffffffffffffffff808211156117c957600080fd5b6117d588838901611752565b909650945060208701359150808211156117ee57600080fd5b506117fb87828801611752565b95989497509550505050565b60008083601f84011261181957600080fd5b50813567ffffffffffffffff81111561183157600080fd5b6020830191508360208260051b850101111561179457600080fd5b60008060008060008060008060008060c08b8d03121561186b57600080fd5b8a35995060208b0135985060408b013567ffffffffffffffff8082111561189157600080fd5b61189d8e838f01611752565b909a50985060608d01359150808211156118b657600080fd5b6118c28e838f01611752565b909850965060808d01359150808211156118db57600080fd5b6118e78e838f01611752565b909650945060a08d013591508082111561190057600080fd5b5061190d8d828e01611807565b915080935050809150509295989b9194979a5092959850565b60006020828403121561193857600080fd5b5035919050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60408152600061197c60408301868861193f565b828103602084015261198f81858761193f565b979650505050505050565b600084516119ac8184602089016116ef565b91909101928352506020820152604001919050565b6080815260006119d46080830187611713565b6020830195909552506001600160a01b03929092166040830152606090910152919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60008251611a568184602087016116ef565b9190910192915050565b7f7b226163636f756e745f6e756d626572223a2230222c22636861696e5f6964228152611d1160f11b602082015260008551611aa3816022850160208a016116ef565b7f222c2264617461223a6e756c6c2c226d656d6f223a22222c226d736773223a5b6022918401918201526a3d9130b6b7bab73a111d1160a91b60428201528551611af481604d840160208a016116ef565b6e1116113932b1b4b834b2b73a111d1160891b604d92909101918201528451611b2481605c8401602089016116ef565b711116113a37b5b2b72fb9bcb6b137b6111d1160711b605c92909101918201528351611b5781606e8401602088016116ef565b7f227d5d2c2273657175656e6365223a2230222c22736f75726365223a2230227d606e9290910191820152608e019695505050505050565b600060208284031215611ba157600080fd5b5051919050565b634e487b7160e01b600052604160045260246000fd5b60008451611bd08184602089016116ef565b845190830190611be48183602089016116ef565b8451910190611bf78183602088016116ef565b0195945050505050565b634e487b7160e01b600052603260045260246000fd5b60008351611c298184602088016116ef565b9190910191825250602001919050565b634e487b7160e01b600052601160045260246000fd5b600060018201611c6157611c61611c39565b5060010190565b60008751611c7a818460208c016116ef565b606088901b6bffffffffffffffffffffffff19169083019081528651611ca7816014840160208b016116ef565b0160148101869052603481018590528351611cc98160548401602088016116ef565b0160540198975050505050505050565b8082028115828204841417610f0057610f00611c39565b634e487b7160e01b600052601260045260246000fd5b600082611d1557611d15611cf0565b500490565b600082611d2957611d29611cf0565b500690565b80820180821115610f0057610f00611c39565b61060f60f31b815260008251611d5e8160028501602087016116ef565b9190910160020192915050565b60ff8181168382160190811115610f0057610f00611c3956fea164736f6c6343000811000a" + } + }, + "1711342800": { + "0x0000000000000000000000000000000000001000": { + "balance": "0x0", + "code": "0x6080604052600436106104fb5760003560e01c806388b32f111161028c578063c6d339451161015a578063e40716a1116100cc578063f92eb86b11610085578063f92eb86b14610d2d578063f9a2bbc714610d42578063fc3e590814610d57578063fccc281314610d6c578063fd4ad81f14610d81578063fd6a687914610db057610502565b8063e40716a114610c9b578063ea321e4914610cb0578063eb57e20214610cd0578063eda5868c14610cf0578063f1fad10414610d05578063f340fa0114610d1a57610502565b8063d86222d51161011e578063d86222d514610c1d578063daacdb6614610c32578063dc927faf14610c47578063df8079e914610c5c578063e086c7b114610c71578063e1c7392a14610c8657610502565b8063c6d3394514610bbe578063c81b166214610bd3578063c8509d811461098d578063ce910b0c14610be8578063d68fb56a14610c0857610502565b8063a78abc16116101fe578063ad3c9da6116101b7578063ad3c9da614610b3d578063aef198a914610b5d578063b7ab4db514610b72578063b8cf4ef114610b94578063bf9f4995146106fe578063c466689d14610ba957610502565b8063a78abc1614610ab4578063aa82dce114610ac9578063aad5606314610ade578063aaf5eb6814610af3578063ab51bb9614610b08578063ac43175114610b1d57610502565b806396713da91161025057806396713da914610a365780639dc0926214610a4b5780639fe0f81614610a60578063a0dc275814610a75578063a1a11bf514610a8a578063a5422d5c14610a9f57610502565b806388b32f11146109c25780638a7beb01146109d75780638b5ad0c9146109ec5780638d19a41014610a015780639369d7de14610a2157610502565b806351b4dce3116103c957806370fd5bad1161033b5780637e434d54116102f45780637e434d541461094e57806381650b6214610963578063820dcaa814610978578063831d65d11461098d578063853230aa1461090f57806386249882146109ad57610502565b806370fd5bad146108d0578063718a8aa8146108e557806375d47a0a146108fa57806378dfed4a1461090f5780637942fd05146109245780637a84ca2a1461093957610502565b80635d77156c1161038d5780635d77156c1461082a5780635de1e22c1461083f57806360eba4fe1461085457806362b72cf5146108745780636969a25c146108895780636e47b482146108bb57610502565b806351b4dce3146107ab57806351e80672146107c057806355614fcc146107d5578063565c56b3146107f55780635667515a1461081557610502565b8063300c35671161046d57806343756e5c1161042657806343756e5c1461072057806345cf9daf14610735578063493279b11461074a5780634bf6c8821461076c5780634df6e0c3146107815780635192c82c1461079657610502565b8063300c35671461065b578063321d398a1461067b5780633365af3a1461069b57806335409f7f146106bb5780633b071dcc146106db5780633dffc387146106fe57610502565b8063152ad3b8116104bf578063152ad3b8146105ba5780631e4c1524146105dc5780631ff18069146105fc578063219f22d51461061157806328087028146106265780632a0ffb6e1461063b57610502565b806304c4fec61461050757806307a568471461051e5780630bee7a67146105495780630e2374a51461056b5780631182b8751461058d57610502565b3661050257005b600080fd5b34801561051357600080fd5b5061051c610dc5565b005b34801561052a57600080fd5b50610533610e37565b6040516105409190618ed8565b60405180910390f35b34801561055557600080fd5b5061055e610e3d565b6040516105409190618f02565b34801561057757600080fd5b50610580610e42565b60405161054091906181eb565b34801561059957600080fd5b506105ad6105a83660046180d1565b610e48565b604051610540919061837e565b3480156105c657600080fd5b506105cf611165565b6040516105409190618373565b3480156105e857600080fd5b5061051c6105f7366004617edf565b61116e565b34801561060857600080fd5b50610533611844565b34801561061d57600080fd5b5061055e61184a565b34801561063257600080fd5b5061058061184f565b34801561064757600080fd5b5061051c610656366004617e3f565b611855565b34801561066757600080fd5b5061051c610676366004617e77565b611902565b34801561068757600080fd5b506105cf61069636600461807e565b611c4b565b3480156106a757600080fd5b506105cf6106b636600461807e565b611d1a565b3480156106c757600080fd5b5061051c6106d6366004617e3f565b611dcb565b3480156106e757600080fd5b506106f0611f30565b604051610540929190618289565b34801561070a57600080fd5b5061071361220c565b6040516105409190618f13565b34801561072c57600080fd5b50610580612211565b34801561074157600080fd5b50610533612217565b34801561075657600080fd5b5061075f61221d565b6040516105409190618ec9565b34801561077857600080fd5b50610713612222565b34801561078d57600080fd5b506106f0612227565b3480156107a257600080fd5b506105336123b3565b3480156107b757600080fd5b506105806123b9565b3480156107cc57600080fd5b506105806123bf565b3480156107e157600080fd5b506105cf6107f0366004617e3f565b6123c5565b34801561080157600080fd5b50610533610810366004617e3f565b6123fa565b34801561082157600080fd5b5061071361244b565b34801561083657600080fd5b5061055e612450565b34801561084b57600080fd5b50610533612455565b34801561086057600080fd5b506105ad61086f36600461807e565b61245b565b34801561088057600080fd5b50610533612501565b34801561089557600080fd5b506108a96108a436600461807e565b612507565b60405161054096959493929190618218565b3480156108c757600080fd5b5061058061256b565b3480156108dc57600080fd5b50610713612571565b3480156108f157600080fd5b50610713612576565b34801561090657600080fd5b5061058061257b565b34801561091b57600080fd5b50610533612581565b34801561093057600080fd5b50610713612587565b34801561094557600080fd5b5061053361258c565b34801561095a57600080fd5b50610580612592565b34801561096f57600080fd5b5061055e612598565b34801561098457600080fd5b5061053361259d565b34801561099957600080fd5b5061051c6109a83660046180d1565b6125a3565b3480156109b957600080fd5b50610533612604565b3480156109ce57600080fd5b5061053361260a565b3480156109e357600080fd5b506105cf612610565b3480156109f857600080fd5b50610533612619565b348015610a0d57600080fd5b50610533610a1c366004617e3f565b61261f565b348015610a2d57600080fd5b5061051c61265f565b348015610a4257600080fd5b50610713612773565b348015610a5757600080fd5b50610580612778565b348015610a6c57600080fd5b5061053361277e565b348015610a8157600080fd5b50610533612783565b348015610a9657600080fd5b50610580612788565b348015610aab57600080fd5b506105ad61278e565b348015610ac057600080fd5b506105cf6127ad565b348015610ad557600080fd5b506105806127b6565b348015610aea57600080fd5b506105806127bc565b348015610aff57600080fd5b506105336127c2565b348015610b1457600080fd5b5061055e61244b565b348015610b2957600080fd5b5061051c610b38366004618022565b6127cb565b348015610b4957600080fd5b50610533610b58366004617e3f565b613084565b348015610b6957600080fd5b50610533613096565b348015610b7e57600080fd5b50610b876130a3565b6040516105409190618276565b348015610ba057600080fd5b5061053361318f565b348015610bb557600080fd5b50610533613194565b348015610bca57600080fd5b50610533612571565b348015610bdf57600080fd5b5061058061319a565b348015610bf457600080fd5b506105ad610c0336600461807e565b6131a0565b348015610c1457600080fd5b506105336131ad565b348015610c2957600080fd5b506105336131ec565b348015610c3e57600080fd5b506105336131f8565b348015610c5357600080fd5b506105806131fe565b348015610c6857600080fd5b50610580613204565b348015610c7d57600080fd5b50610533610e3d565b348015610c9257600080fd5b5061051c61320a565b348015610ca757600080fd5b506105336133b9565b348015610cbc57600080fd5b506105cf610ccb366004617fe3565b6133bf565b348015610cdc57600080fd5b5061051c610ceb366004617e3f565b613545565b348015610cfc57600080fd5b5061055e613649565b348015610d1157600080fd5b5061071361364e565b61051c610d28366004617e3f565b613653565b348015610d3957600080fd5b506105336139d2565b348015610d4e57600080fd5b506105806139d8565b348015610d6357600080fd5b5061071361277e565b348015610d7857600080fd5b506105806139de565b348015610d8d57600080fd5b50610da1610d9c36600461807e565b6139e4565b60405161054093929190618ee1565b348015610dbc57600080fd5b50610580613aa6565b6000610dd03361261f565b9050600b8181548110610ddf57fe5b600091825260209091206001601690920201015460ff16610e1b5760405162461bcd60e51b8152600401610e1290618ae4565b60405180910390fd5b6000610e256131ad565b9050610e32338383613aac565b505050565b60095481565b606481565b61200181565b60005460609060ff16610e6d5760405162461bcd60e51b8152600401610e12906185a5565b3361200014610e8e5760405162461bcd60e51b8152600401610e1290618ce5565b600b54610f4c57610e9d6179eb565b60015460005b81811015610f4857600b8054600181018255600091909152835160008051602061919083398151915260169092029182019081556020808601516000805160206191d08339815191528401805460ff1916911515919091179055604086015180518794610f24936000805160206191b0833981519152909101920190617a1a565b506060820151610f3a9060038301906013617a94565b505050806001019050610ea3565b5050505b610f54617ac1565b6000610f9585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613d7192505050565b9150915080610fb157610fa86064613f2d565b9250505061115e565b815160009060ff16610fd657610fcf83602001518460400151613f8e565b905061112a565b825160ff16600114156111265782602001515160011461101b5760008051602061917083398151915260405161100b9061899d565b60405180910390a1506067611121565b6000836020015160008151811061102e57fe5b602090810291909101810151516001600160a01b0381166000908152600490925260409091205490915080158061108f575060018082038154811061106f57fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b156110cd576040516001600160a01b038316907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a261111a565b60006110dc8360018403615150565b905080611118576040516001600160a01b038416907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a25b505b6000925050505b61112a565b5060655b63ffffffff811661114f575050604080516000815260208101909152915061115e9050565b61115881613f2d565b93505050505b9392505050565b60075460ff1681565b33411461118d5760405162461bcd60e51b8152600401610e1290618d34565b3a156111ab5760405162461bcd60e51b8152600401610e1290618a23565b82516040805182815260208084028201019091526060908280156111e957816020015b6111d6617ae5565b8152602001906001900390816111ce5790505b50905060005b82811015611293576040518060c0016040528087838151811061120e57fe5b60200260200101516001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b0316815260200186838151811061125057fe5b60200260200101516001600160401b03168152602001600015158152602001600081525082828151811061128057fe5b60209081029190910101526001016111ef565b5060405163d31f968d60e01b81526120009063d31f968d906112be906110009060089060040161825a565b60206040518083038186803b1580156112d657600080fd5b505afa1580156112ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061130e9190617fc3565b15611631578051601554818111156113b057815b818110156113ae57601580548061133557fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055601680548061138857fe5b6001900381819060005260206000200160006113a49190617b1a565b9055600101611322565b505b60005b828110156115f0578181106114d85760158482815181106113d057fe5b602090810291909101810151825460018181018555600094855293839020825160049092020180546001600160a01b039283166001600160a01b0319918216178255938301519481018054958316958516959095179094556040820151600285018054606085015160808601511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590961692909716919091179290921692909217169290921790915560a0015160039091015585516016908790839081106114a057fe5b602090810291909101810151825460018101845560009384529282902081516114d29491909101929190910190617a1a565b506115e8565b8381815181106114e457fe5b6020026020010151601582815481106114f957fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a09091015160039091015585518690829081106115b457fe5b6020026020010151601682815481106115c957fe5b9060005260206000200190805190602001906115e6929190617a1a565b505b6001016113b3565b507fb8e726330a0dad1cf3d04e925663b17e391f1ed547d79b7f4e5f344119b44246826040516116209190618ed8565b60405180910390a150505050610e32565b60608061163e8386615513565b9150915060005b6001548110156117345760006001828154811061165e57fe5b90600052602060002090600402016003015490508060001461172b5760006001838154811061168957fe5b9060005260206000209060040201600301819055506120026001600160a01b031663092193ab82600185815481106116bd57fe5b60009182526020909120600491820201546040516001600160e01b031960e086901b1681526116f8926001600160a01b0390921691016181eb565b6000604051808303818588803b15801561171157600080fd5b505af1158015611725573d6000803e3d6000fd5b50505050505b50600101611645565b5047156117a2577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d4760405161176a9190618ed8565b60405180910390a1604051611002904780156108fc02916000818181858888f193505050501580156117a0573d6000803e3d6000fd5b505b600060038190556005558151156117bd576117bd82826159fa565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156117fa57600080fd5b505af115801561180e573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a150505050505050565b60035481565b606881565b61200581565b33612002146118765760405162461bcd60e51b8152600401610e1290618e92565b60005b6015548110156118fe57816001600160a01b03166015828154811061189a57fe5b60009182526020909120600490910201546001600160a01b031614156118f6576001601582815481106118c957fe5b9060005260206000209060040201600201601c6101000a81548160ff0219169083151502179055506118fe565b600101611879565b5050565b3341146119215760405162461bcd60e51b8152600401610e1290618d34565b60105443116119425760405162461bcd60e51b8152600401610e1290618738565b3a156119605760405162461bcd60e51b8152600401610e1290618a23565b60005460ff166119825760405162461bcd60e51b8152600401610e12906185a5565b60006110023168056bc75e2d631000008111156119b9576119b28168056bc75e2d6310000063ffffffff6161e916565b91506119c0565b5050611c41565b6040516309a99b4f60e41b815261100290639a99b4f0906119e790309086906004016181ff565b602060405180830381600087803b158015611a0157600080fd5b505af1158015611a15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a399190618096565b915081611a47575050611c41565b6000805b84811015611a7557858582818110611a5f57fe5b9050602002013582019150806001019050611a4b565b5080611a8357505050611c41565b6000806000805b89811015611c395784898983818110611a9f57fe5b90506020020135880281611aaf57fe5b0493508a8a82818110611abe57fe5b9050602002016020810190611ad39190617e3f565b6001600160a01b03811660009081526004602052604090205490935091508115611bef576000600180840381548110611b0857fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff1615611b7557836001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d8586604051611b689190618ed8565b60405180910390a2611be9565b600354611b88908663ffffffff61622b16565b6003908155810154611ba0908663ffffffff61622b16565b60038201556040516001600160a01b038516907fcb0aad6cf9cd03bdf6137e359f541c42f38b39f007cae8e89e88aa7d8c6617b290611be0908890618ed8565b60405180910390a25b50611c31565b826001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d8585604051611c289190618ed8565b60405180910390a25b600101611a8a565b505050505050505b5050436010555050565b6001546000908210611c5f57506000611d15565b60006001600160a01b031660018381548110611c7757fe5b60009182526020909120600490910201546001600160a01b03161480611ca757506008541580611ca75750600a54155b80611cb6575060085460095410155b80611cc75750611cc582611d1a565b155b80611cf057506000600b8381548110611cdc57fe5b906000526020600020906016020160000154115b80611d0457506001611d006130a3565b5111155b15611d1157506000611d15565b5060015b919050565b6001546000908210611d2e57506000611d15565b600b548210611d6b5760018281548110611d4457fe5b9060005260206000209060040201600201601c9054906101000a900460ff16159050611d15565b60018281548110611d7857fe5b9060005260206000209060040201600201601c9054906101000a900460ff16158015611dc55750600b8281548110611dac57fe5b600091825260209091206001601690920201015460ff16155b92915050565b600b54611e8957611dda6179eb565b60015460005b81811015611e8557600b8054600181018255600091909152835160008051602061919083398151915260169092029182019081556020808601516000805160206191d08339815191528401805460ff1916911515919091179055604086015180518794611e61936000805160206191b0833981519152909101920190617a1a565b506060820151611e779060038301906013617a94565b505050806001019050611de0565b5050505b336110011480611e9a575033612002145b611eb65760405162461bcd60e51b8152600401610e12906185dc565b6001600160a01b03811660009081526004602052604090205480611eda5750611f2d565b6001810390506000600b8281548110611eef57fe5b600091825260209091206001601690920201015460ff169050611f128383615150565b8015611f1b5750805b15610e32576009805460001901905550505b50565b60015460609081906000805b82811015611f835760018181548110611f5157fe5b9060005260206000209060040201600201601c9054906101000a900460ff16611f7b576001909101905b600101611f3c565b50606081604051908082528060200260200182016040528015611fb0578160200160208202803683370190505b509050606082604051908082528060200260200182016040528015611fe957816020015b6060815260200190600190039081611fd45790505b50600b54600094509091508414156121645760005b8481101561215e576001818154811061201357fe5b9060005260206000209060040201600201601c9054906101000a900460ff16612156576001818154811061204357fe5b600091825260209091206004909102015483516001600160a01b039091169084908690811061206e57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600b818154811061209b57fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156121335780601f1061210857610100808354040283529160200191612133565b820191906000526020600020905b81548152906001019060200180831161211657829003601f168201915b505050505082858151811061214457fe5b60209081029190910101526001909301925b600101611ffe565b50612200565b60005b848110156121fe576001818154811061217c57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166121f657600181815481106121ac57fe5b600091825260209091206004909102015483516001600160a01b03909116908490869081106121d757fe5b6001600160a01b03909216602092830291909101909101526001909301925b600101612167565b505b909450925050505b9091565b600181565b61100181565b60085481565b606181565b600881565b6060806000600e549050600080600c5411612243576015612247565b600c545b905060606122536130a3565b9050606061226082616250565b905082825111612277579094509250612208915050565b83838351031015612289578282510393505b83156122bf5760c843046122a583838388880360008a8a6163be565b6122bd8383838888038989038a8b8b8b5103016163be565b505b6060836040519080825280602002602001820160405280156122eb578160200160208202803683370190505b50905060608460405190808252806020026020018201604052801561232457816020015b606081526020019060019003908161230f5790505b50905060005b858110156123a55784818151811061233e57fe5b602002602001015183828151811061235257fe5b60200260200101906001600160a01b031690816001600160a01b03168152505083818151811061237e57fe5b602002602001015182828151811061239257fe5b602090810291909101015260010161232a565b509096509450505050509091565b60065481565b61200681565b61200081565b6001600160a01b038116600090815260046020526040812054806123ed576000915050611d15565b6000190161115e81611d1a565b6001600160a01b03811660009081526004602052604081205480612422576000915050611d15565b60018082038154811061243157fe5b906000526020600020906004020160030154915050919050565b600081565b606781565b600f5481565b6012818154811061246857fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152935090918301828280156124f95780601f106124ce576101008083540402835291602001916124f9565b820191906000526020600020905b8154815290600101906020018083116124dc57829003601f168201915b505050505081565b60105481565b6001818154811061251457fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b601081565b61100881565b6103e881565b600b81565b600c5481565b61200381565b606681565b61271081565b33612000146125c45760405162461bcd60e51b8152600401610e1290618ce5565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f389021016058383836040516125f793929190618f21565b60405180910390a1505050565b60025481565b60115481565b60145460ff1681565b600a5481565b6001600160a01b038116600090815260046020526040812054806126555760405162461bcd60e51b8152600401610e1290618c6d565b6000190192915050565b600b5461271d5761266e6179eb565b60015460005b8181101561271957600b8054600181018255600091909152835160008051602061919083398151915260169092029182019081556020808601516000805160206191d08339815191528401805460ff19169115159190911790556040860151805187946126f5936000805160206191b0833981519152909101920190617a1a565b50606082015161270b9060038301906013617a94565b505050806001019050612674565b5050505b60085461272a5760036008555b600a54612737576002600a555b60006127423361261f565b905061274d81611c4b565b6127695760405162461bcd60e51b8152600401610e129061895a565b611f2d3382616515565b600981565b61100781565b600381565b60c881565b61100681565b604051806101e001604052806101ab8152602001618fc56101ab913981565b60005460ff1681565b61200281565b61300081565b6402540be40081565b60005460ff166127ed5760405162461bcd60e51b8152600401610e12906185a5565b336110071461280e5760405162461bcd60e51b8152600401610e1290618a51565b61287884848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b602082015291506165ad9050565b15612915576020811461289d5760405162461bcd60e51b8152600401610e1290618c27565b604080516020601f84018190048102820181019092528281526000916128db9185858083850183828082843760009201919091525061660692505050565b9050606481101580156128f15750620186a08111155b61290d5760405162461bcd60e51b8152600401610e129061884a565b600255613041565b61297584848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260098152686275726e526174696f60b81b602082015291506165ad9050565b15612a18576020811461299a5760405162461bcd60e51b8152600401610e12906183c3565b604080516020601f84018190048102820181019092528281526000916129d89185858083850183828082843760009201919091525061660692505050565b90506127106129f2600f548361622b90919063ffffffff16565b1115612a105760405162461bcd60e51b8152600401610e12906183fa565b600655613041565b612a8284848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260138152726d61784e756d4f664d61696e7461696e696e6760681b602082015291506165ad9050565b15612b1c5760208114612aa75760405162461bcd60e51b8152600401610e1290618462565b604080516020601f8401819004810282018101909252828152600091612ae59185858083850183828082843760009201919091525061660692505050565b600c5490915080612af4575060155b808210612b135760405162461bcd60e51b8152600401610e12906187a2565b50600855613041565b612b8584848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61696e7461696e536c6173685363616c6560701b602082015291506165ad9050565b15612c1e5760208114612baa5760405162461bcd60e51b8152600401610e129061852b565b604080516020601f8401819004810282018101909252828152600091612be89185858083850183828082843760009201919091525061660692505050565b9050600081118015612bfa5750600a81105b612c165760405162461bcd60e51b8152600401610e1290618dc5565b600a55613041565b612c9284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601981527f6d61784e756d4f66576f726b696e6743616e6469646174657300000000000000602082015291506165ad9050565b15612d215760208114612cb75760405162461bcd60e51b8152600401610e12906184df565b604080516020601f8401819004810282018101909252828152600091612cf59185858083850183828082843760009201919091525061660692505050565b9050600d54811115612d195760405162461bcd60e51b8152600401610e12906188c0565b600e55613041565b612d8a84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61784e756d4f6643616e6469646174657360701b602082015291506165ad9050565b15612e0c5760208114612daf5760405162461bcd60e51b8152600401610e1290618a9f565b604080516020601f8401819004810282018101909252828152600091612ded9185858083850183828082843760009201919091525061660692505050565b600d819055600e54909150811015612e0657600d54600e555b50613041565b612e7084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c6e756d4f66436162696e65747360981b602082015291506165ad9050565b15612f1e5760208114612e955760405162461bcd60e51b8152600401610e1290618570565b604080516020601f8401819004810282018101909252828152600091612ed39185858083850183828082843760009201919091525061660692505050565b905060008111612ef55760405162461bcd60e51b8152600401610e129061864a565b6064811115612f165760405162461bcd60e51b8152600401610e1290618692565b600c55613041565b612f8684848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601181527073797374656d526577617264526174696f60781b602082015291506165ad9050565b156130295760208114612fab5760405162461bcd60e51b8152600401610e1290618d81565b604080516020601f8401819004810282018101909252828152600091612fe99185858083850183828082843760009201919091525061660692505050565b90506127106130036006548361622b90919063ffffffff16565b11156130215760405162461bcd60e51b8152600401610e1290618b88565b600f55613041565b60405162461bcd60e51b8152600401610e1290618e22565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040516130769493929190618391565b60405180910390a150505050565b60046020526000908152604090205481565b68056bc75e2d6310000081565b6001546060906000805b828110156130d2576130be81611d1a565b156130ca578160010191505b6001016130ad565b506060816040519080825280602002602001820160405280156130ff578160200160208202803683370190505b5090506000915060005b838110156131865761311a81611d1a565b1561317e576001818154811061312c57fe5b600091825260209091206004909102015482516001600160a01b039091169083908590811061315757fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508260010192505b600101613109565b50925050505b90565b601581565b61027181565b61100281565b6013818154811061246857fe5b60006131b76130a3565b519050600080600c54116131cc5760156131d0565b600c545b9050808211156131de578091505b816131e857600191505b5090565b67016345785d8a000081565b60055481565b61100381565b61200481565b60005460ff161561322d5760405162461bcd60e51b8152600401610e1290618b51565b613235617ac1565b600061325b604051806101e001604052806101ab8152602001618fc56101ab9139613d71565b915091508061327c5760405162461bcd60e51b8152600401610e1290618ca4565b60005b8260200151518110156133a15760018360200151828151811061329e57fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a09093015160039093019290925591860151805191850193918590811061337457fe5b602090810291909101810151516001600160a01b031682528101919091526040016000205560010161327f565b50506103e8600255506000805460ff19166001179055565b600d5481565b601354600090815b818110156134c8576134b085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060138054909250859150811061341857fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156134a65780601f1061347b576101008083540402835291602001916134a6565b820191906000526020600020905b81548152906001019060200180831161348957829003601f168201915b505050505061660b565b156134c057600192505050611dc5565b6001016133c7565b5060125460005b818110156135395761352086868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060128054909250859150811061341857fe5b156135315760019350505050611dc5565b6001016134cf565b50600095945050505050565b33611001146135665760405162461bcd60e51b8152600401610e1290618e49565b600b54613624576135756179eb565b60015460005b8181101561362057600b8054600181018255600091909152835160008051602061919083398151915260169092029182019081556020808601516000805160206191d08339815191528401805460ff19169115159190911790556040860151805187946135fc936000805160206191b0833981519152909101920190617a1a565b5060608201516136129060038301906013617a94565b50505080600101905061357b565b5050505b600061362f8261666f565b905061363a81611c4b565b156118fe576118fe8282616515565b606581565b601181565b3341146136725760405162461bcd60e51b8152600401610e1290618d34565b60005460ff166136945760405162461bcd60e51b8152600401610e12906185a5565b600034116136b45760405162461bcd60e51b8152600401610e1290618891565b3a156136d25760405162461bcd60e51b8152600401610e1290618a23565b6001600160a01b03811660009081526004602052604090205460145434919060ff1661371257610271600f556103e86006556014805460ff191660011790555b60008211801561372457506000600f54115b156137d6576000613752612710613746600f54346167f290919063ffffffff16565b9063ffffffff61682c16565b905080156137d4576040516110029082156108fc029083906000818181858888f19350505050158015613789573d6000803e3d6000fd5b507f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d816040516137b99190618ed8565b60405180910390a16137d1838263ffffffff6161e916565b92505b505b6000821180156137e857506000600654115b1561388e57600061380a612710613746600654346167f290919063ffffffff16565b9050801561388c5760405161dead9082156108fc029083906000818181858888f19350505050158015613841573d6000803e3d6000fd5b507f627059660ea01c4733a328effb2294d2f86905bf806da763a89cee254de8bee5816040516138719190618ed8565b60405180910390a1613889838263ffffffff6161e916565b92505b505b801561398c5760006001808303815481106138a557fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff161561391257836001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4846040516139059190618ed8565b60405180910390a2613986565b600354613925908463ffffffff61622b16565b600390815581015461393d908463ffffffff61622b16565b60038201556040516001600160a01b038516907f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc0559061397d908690618ed8565b60405180910390a25b50610e32565b826001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4836040516139c59190618ed8565b60405180910390a2505050565b600e5481565b61100081565b61dead81565b600b81815481106139f157fe5b6000918252602091829020601691909102018054600180830154600280850180546040805161010096831615969096026000190190911692909204601f810188900488028501880190925281845293965060ff90911694919291830182828015613a9c5780601f10613a7157610100808354040283529160200191613a9c565b820191906000526020600020905b815481529060010190602001808311613a7f57829003601f168201915b5050505050905083565b61100481565b6000600a5460001480613abd575081155b80613ac85750600954155b15613ad55750600061115e565b6000613b0f600a5461374685613746600b8981548110613af157fe5b6000918252602090912060169091020154439063ffffffff6161e916565b90506000806110016001600160a01b0316638256ace66040518163ffffffff1660e01b8152600401604080518083038186803b158015613b4e57600080fd5b505afa158015613b62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b8691906180ae565b9150915060009350808310613ce557613b9f8787615150565b5060405163436aa28360e11b8152600090612002906386d5450690613bc8908b906004016181eb565b60206040518083038186803b158015613be057600080fd5b505afa158015613bf4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c189190617e5b565b6001600160a01b031614613c84576040516313d13bdb60e31b815261100190639e89ded890613c4d908a9087906004016181ff565b600060405180830381600087803b158015613c6757600080fd5b505af1158015613c7b573d6000803e3d6000fd5b50505050613cdc565b6040516305bfb49960e41b815261100190635bfb499090613ca9908a906004016181eb565b600060405180830381600087803b158015613cc357600080fd5b505af1158015613cd7573d6000803e3d6000fd5b505050505b60019350613cf7565b818310613cf757613cf58761666f565b505b60098054600019019055600b80546000919088908110613d1357fe5b60009182526020822060169190910201600101805460ff1916921515929092179091556040516001600160a01b038916917fb9d38178dc641ff1817967a63c9078cbcd955a9f1fcd75e0e3636de615d44d3b91a25050509392505050565b613d79617ac1565b6000613d83617ac1565b613d8b617b5e565b613d9c613d978661686e565b616893565b90506000805b613dab836168dd565b15613f1f5780613dd057613dc6613dc1846168fe565b61694c565b60ff168452613f17565b8060011415613f12576060613dec613de7856168fe565b6169cc565b90508051604051908082528060200260200182016040528015613e2957816020015b613e16617ae5565b815260200190600190039081613e0e5790505b5085602001819052508051604051908082528060200260200182016040528015613e6757816020015b6060815260200190600190039081613e525790505b50604086015260005b8151811015613f0757613e81617ae5565b60606000613ea1858581518110613e9457fe5b6020026020010151616a9d565b92509250925080613ec1578860009a509a50505050505050505050613f28565b8289602001518581518110613ed257fe5b60200260200101819052508189604001518581518110613eee57fe5b6020026020010181905250505050806001019050613e70565b506001925050613f17565b613f1f565b600101613da2565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b6060815260200190600190039081613f47579050509050613f6d8363ffffffff16616bb7565b81600081518110613f7a57fe5b602002602001018190525061115e81616bca565b6000606483511115613fc557600080516020619170833981519152604051613fb5906186ef565b60405180910390a1506066611dc5565b60005b83518110156140635760005b8181101561405a57848181518110613fe857fe5b6020026020010151600001516001600160a01b031685838151811061400957fe5b6020026020010151600001516001600160a01b031614156140525760008051602061917083398151915260405161403f906187ff565b60405180910390a1606692505050611dc5565b600101613fd4565b50600101613fc8565b5060608060606015805480602002602001604051908101604052809291908181526020016000905b828210156141155760008481526020908190206040805160c0810182526004860290920180546001600160a01b039081168452600180830154821685870152600283015491821693850193909352600160a01b81046001600160401b03166060850152600160e01b900460ff16151560808401526003015460a0830152908352909201910161408b565b50505050905060606016805480602002602001604051908101604052809291908181526020016000905b828210156141ea5760008481526020908190208301805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156141d65780601f106141ab576101008083540402835291602001916141d6565b820191906000526020600020905b8154815290600101906020018083116141b957829003601f168201915b50505050508152602001906001019061413f565b50505050905060005b82518110156142475782818151811061420857fe5b60200260200101516060015160030283828151811061422357fe5b60209081029190910101516001600160401b039091166060909101526001016141f3565b5060608061425789898686616c54565b915091506142658282615513565b600154604080518281526020808402820101909152929850909650600095508594509250606091508280156142a4578160200160208202803683370190505b50905060005b828110156144355760006001600160a01b03166120026001600160a01b03166386d54506600184815481106142db57fe5b60009182526020909120600491820201546040516001600160e01b031960e085901b168152614316926001600160a01b0390921691016181eb565b60206040518083038186803b15801561432e57600080fd5b505afa158015614342573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143669190617e5b565b6001600160a01b0316146143c857600182828151811061438257fe5b602002602001019060ff16908160ff1681525050600181815481106143a357fe5b9060005260206000209060040201600301546000146143c3578360010193505b61442d565b67016345785d8a0000600182815481106143de57fe5b906000526020600020906004020160030154106144005784600101945061442d565b6001818154811061440d57fe5b90600052602060002090600402016003015460001461442d578360010193505b6001016142aa565b50606084604051908082528060200260200182016040528015614462578160200160208202803683370190505b509050606085604051908082528060200260200182016040528015614491578160200160208202803683370190505b5090506060866040519080825280602002602001820160405280156144c0578160200160208202803683370190505b5090506060876040519080825280602002602001820160405280156144ef578160200160208202803683370190505b5090506000606088604051908082528060200260200182016040528015614520578160200160208202803683370190505b50905060608960405190808252806020026020018201604052801561454f578160200160208202803683370190505b50905060009a506000995060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b15801561459757600080fd5b505afa1580156145ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145cf9190618096565b905067016345785d8a000081111561461b576000805160206191708339815191526040516145fc90618b10565b60405180910390a160689e505050505050505050505050505050611dc5565b60005b8a8110156149af5789818151811061463257fe5b602002602001015160ff1660011415614728576001818154811061465257fe5b906000526020600020906004020160030154600014614723576001818154811061467857fe5b600091825260209091206004909102015484516001600160a01b039091169085908e9081106146a357fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600181815481106146d057fe5b906000526020600020906004020160030154838d815181106146ee57fe5b60200260200101818152505060018a8d8151811061470857fe5b602002602001019060ff16908160ff16815250508b6001019b505b6149a7565b67016345785d8a00006001828154811061473e57fe5b906000526020600020906004020160030154106148c3576001818154811061476257fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316898e8151811061479357fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be400600183815481106147c857fe5b906000526020600020906004020160030154816147e157fe5b06600183815481106147ef57fe5b90600052602060002090600402016003015403905061481783826161e990919063ffffffff16565b898f8151811061482357fe5b6020026020010181815250506001828154811061483c57fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316878f8151811061486d57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081888f8151811061489a57fe5b60209081029190910101526148b5868263ffffffff61622b16565b95508d6001019d50506149a7565b600181815481106148d057fe5b9060005260206000209060040201600301546000146149a757600181815481106148f657fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316848d8151811061492757fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506001818154811061495457fe5b906000526020600020906004020160030154838d8151811061497257fe5b60200260200101818152505060008a8d8151811061498c57fe5b602002602001019060ff16908160ff16815250508b6001019b505b60010161461e565b5060008415614c25576002546040516303702b2960e51b815261100491636e0565209188916149e9918e918e918d914201906004016182f9565b6020604051808303818588803b158015614a0257600080fd5b505af193505050508015614a33575060408051601f3d908101601f19168201909252614a3091810190617fc3565b60015b614baa576040516000815260443d1015614a4f57506000614aea565b60046000803e60005160e01c6308c379a08114614a70576000915050614aea565b60043d036004833e81513d60248201116001600160401b0382111715614a9b57600092505050614aea565b80830180516001600160401b03811115614abc576000945050505050614aea565b8060208301013d8601811115614ada57600095505050505050614aea565b601f01601f191660405250925050505b80614af55750614b37565b60019150857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf28082604051614b29919061837e565b60405180910390a250614ba5565b3d808015614b61576040519150601f19603f3d011682016040523d82523d6000602084013e614b66565b606091505b5060019150857fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a4582604051614b9b919061837e565b60405180910390a2505b614c25565b8015614bec577fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b7086604051614bdf9190618ed8565b60405180910390a1614c23565b857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280604051614c1a906184a8565b60405180910390a25b505b8015614ddb5760005b8751811015614dd9576000888281518110614c4557fe5b60200260200101519050600060018281548110614c5e57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc9185908110614c8f57fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f1935050505090508015614d4b5760018281548110614cd057fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d9185908110614d1f57fe5b906000526020600020906004020160030154604051614d3e9190618ed8565b60405180910390a2614dcf565b60018281548110614d5857fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d9185908110614da757fe5b906000526020600020906004020160030154604051614dc69190618ed8565b60405180910390a25b5050600101614c2e565b505b835115614fd15760005b8451811015614fcf578a8181518110614dfa57fe5b602002602001015160ff1660011415614e99576120026001600160a01b031663092193ab858381518110614e2a57fe5b6020026020010151878481518110614e3e57fe5b60200260200101516040518363ffffffff1660e01b8152600401614e6291906181eb565b6000604051808303818588803b158015614e7b57600080fd5b505af1158015614e8f573d6000803e3d6000fd5b5050505050614fc7565b6000858281518110614ea757fe5b60200260200101516001600160a01b03166108fc868481518110614ec757fe5b60200260200101519081150290604051600060405180830381858888f1935050505090508015614f5d57858281518110614efd57fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d868481518110614f3b57fe5b6020026020010151604051614f509190618ed8565b60405180910390a2614fc5565b858281518110614f6957fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d868481518110614fa757fe5b6020026020010151604051614fbc9190618ed8565b60405180910390a25b505b600101614de5565b505b5050505050505050505050505060005b60015481101561503e5760018181548110614ff857fe5b9060005260206000209060040201600301546000146150365760006001828154811061502057fe5b9060005260206000209060040201600301819055505b600101614fe1565b5047156150ac577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d476040516150749190618ed8565b60405180910390a1604051611002904780156108fc02916000818181858888f193505050501580156150aa573d6000803e3d6000fd5b505b600060038190556005558151156150c7576150c782826159fa565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561510457600080fd5b505af1158015615118573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a1506000949350505050565b6000806001838154811061516057fe5b9060005260206000209060040201600301549050600060018080549050039050600161518a6130a3565b51116151bf5760006001858154811061519f57fe5b906000526020600020906004020160030181905550600092505050611dc5565b846001600160a01b03167f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a70836040516151f89190618ed8565b60405180910390a26001600160a01b038516600090815260046020526040812055835b600154600019018110156153e5576001816001018154811061523957fe5b90600052602060002090600402016001828154811061525457fe5b60009182526020909120825460049092020180546001600160a01b03199081166001600160a01b0393841617825560018085015481840180548416918616919091179055600280860180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b19909416939093179055600392830154920191909155600b80549091830190811061531557fe5b9060005260206000209060160201600b828154811061533057fe5b600091825260209091208254601690920201908155600180830154818301805460ff909216151560ff1990921691909117905560028084018054615387938386019390821615610100026000190190911604617b7e565b5061539a60038281019084016013617bf3565b509050508060010160046000600184815481106153b357fe5b600091825260208083206004909202909101546001600160a01b0316835282019290925260400190205560010161521b565b5060018054806153f157fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b80548061544457fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906154766002830182617b1a565b615484600383016000617c1d565b50509055600081838161549357fe5b04905080156155075760015460005b81811015615504576154db83600183815481106154bb57fe5b90600052602060002090600402016003015461622b90919063ffffffff16565b600182815481106154e857fe5b60009182526020909120600360049092020101556001016154a2565b50505b50600195945050505050565b6060806000808080806155246131ad565b6001549091505b801561575357600181039250600b838154811061554457fe5b600091825260209091206001601690920201015460ff166155645761574a565b6001838154811061557157fe5b60009182526020909120600490910201546001600160a01b03169450615598858484613aac565b9350836155a45761574a565b60405163436aa28360e11b81526000908190612002906386d54506906155ce908a906004016181eb565b60206040518083038186803b1580156155e657600080fd5b505afa1580156155fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061561e9190617e5b565b90506001600160a01b038116156156a7576040516302ceee9160e11b81526120029063059ddd22906156549084906004016181eb565b60206040518083038186803b15801561566c57600080fd5b505afa158015615680573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906156a49190617e5b565b91505b60005b8c5181101561574657876001600160a01b03168d82815181106156c957fe5b6020026020010151600001516001600160a01b031614806157125750826001600160a01b03168d82815181106156fb57fe5b6020026020010151600001516001600160a01b0316145b1561573e5760018d828151811061572557fe5b6020908102919091010151901515608090910152615746565b6001016156aa565b5050505b6000190161552b565b5060005b89518110156157c05789818151811061576c57fe5b602002602001015160800151806157ac575060006001600160a01b03168a828151811061579557fe5b6020026020010151600001516001600160a01b0316145b156157b8578560010195505b600101615757565b50885185106158a85760408051600180825281830190925290816020015b6157e6617ae5565b8152602001906001900390816157de575050604080516001808252818301909252919850602082015b606081526020019060019003908161580f5790505095508860008151811061583357fe5b60200260200101518760008151811061584857fe5b60200260200101819052508760008151811061586057fe5b60200260200101518660008151811061587557fe5b602002602001018190525060008760008151811061588f57fe5b60209081029190910101519015156080909101526159ed565b848951036040519080825280602002602001820160405280156158e557816020015b6158d2617ae5565b8152602001906001900390816158ca5790505b5096508489510360405190808252806020026020018201604052801561591f57816020015b606081526020019060019003908161590a5790505b5095506000915060005b89518110156159eb5789818151811061593e57fe5b602002602001015160800151158015615981575060006001600160a01b03168a828151811061596957fe5b6020026020010151600001516001600160a01b031614155b156159e35789818151811061599257fe5b60200260200101518884815181106159a657fe5b60200260200101819052508881815181106159bd57fe5b60200260200101518784815181106159d157fe5b60200260200101819052508260010192505b600101615929565b505b50505050505b9250929050565b600154825160005b82811015615b17576001615a14617ae5565b60018381548110615a2157fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b84811015615aeb57878181518110615ab157fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b03161415615ae35760009250615aeb565b600101615a9d565b508115615b0d5780516001600160a01b03166000908152600460205260408120555b5050600101615a02565b5080821115615bd657805b82811015615bd4576001805480615b3557fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b805480615b8857fe5b60008281526020812060166000199093019283020181815560018101805460ff1916905590615bba6002830182617b1a565b615bc8600383016000617c1d565b50509055600101615b22565b505b6000818310615be55781615be7565b825b905060005b81811015615f8b57615c99868281518110615c0357fe5b602002602001015160018381548110615c1857fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a0820152617020565b615e4d578060010160046000888481518110615cb157fe5b6020026020010151600001516001600160a01b03166001600160a01b0316815260200190815260200160002081905550858181518110615ced57fe5b602002602001015160018281548110615d0257fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a0909101516003909101558451859082908110615dbd57fe5b6020026020010151600b8281548110615dd257fe5b90600052602060002090601602016002019080519060200190615df6929190617a1a565b506000600b8281548110615e0657fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b805483908110615e3757fe5b6000918252602090912060169091020155615f83565b858181518110615e5957fe5b60200260200101516060015160018281548110615e7257fe5b906000526020600020906004020160020160146101000a8154816001600160401b0302191690836001600160401b03160217905550615f38858281518110615eb657fe5b6020026020010151600b8381548110615ecb57fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156134a65780601f1061347b576101008083540402835291602001916134a6565b615f8357848181518110615f4857fe5b6020026020010151600b8281548110615f5d57fe5b90600052602060002090601602016002019080519060200190615f81929190617a1a565b505b600101615bec565b508282111561616357615f9c6179eb565b835b8381101561616057858181518110615fb257fe5b602002602001015182604001819052506001878281518110615fd057fe5b6020908102919091018101518254600181810185556000948552838520835160049093020180546001600160a01b039384166001600160a01b0319918216178255848601518284018054918616918316919091179055604080860151600284018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909a1692909616919091179290921696909617169190911790935560a090930151600390930192909255600b80549283018155909352845160169091026000805160206191908339815191528101918255858301516000805160206191d08339815191528201805491151560ff1990921691909117905592850151805186949293616106936000805160206191b083398151915201920190617a1a565b50606082015161611c9060038301906013617a94565b505050806001016004600089848151811061613357fe5b602090810291909101810151516001600160a01b0316825281019190915260400160002055600101615f9e565b50505b61616b61707c565b616173617264565b6000600981905560015493505b838110156161e1576000600b828154811061619757fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b8054839081106161c857fe5b6000918252602090912060169091020155600101616180565b505050505050565b600061115e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250617452565b60008282018381101561115e5760405162461bcd60e51b8152600401610e1290618613565b60015481516040805182815260208084028201019091526060929190839082801561628f57816020015b606081526020019060019003908161627a5790505b50600b5490915083146162a6579250611d15915050565b60005b828110156163b557600b6001600460008985815181106162c557fe5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205403815481106162f957fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156163915780601f1061636657610100808354040283529160200191616391565b820191906000526020600020905b81548152906001019060200180831161637457829003601f168201915b50505050508282815181106163a257fe5b60209081029190910101526001016162a9565b50949350505050565b60005b8281101561650b57600082878388016040516020016163e19291906181dd565b6040516020818303038152906040528051906020012060001c8161640157fe5b06905080850182870114616502576000898388018151811061641f57fe5b602002602001015190506060898489018151811061643957fe5b602002602001015190508a8388018151811061645157fe5b60200260200101518b858a018151811061646757fe5b60200260200101906001600160a01b031690816001600160a01b031681525050818b8489018151811061649657fe5b60200260200101906001600160a01b031690816001600160a01b03168152505089838801815181106164c457fe5b60200260200101518a858a01815181106164da57fe5b6020026020010181905250808a848901815181106164f457fe5b602002602001018190525050505b506001016163c1565b5050505050505050565b600980546001908101909155600b80548390811061652f57fe5b906000526020600020906016020160010160006101000a81548160ff02191690831515021790555043600b828154811061656557fe5b600091825260208220601690910201919091556040516001600160a01b038416917ff62981a567ec3cec866c6fa93c55bcdf841d6292d18b8d522ececa769375d82d91a25050565b6000816040516020016165c091906181c1565b60405160208183030381529060405280519060200120836040516020016165e791906181c1565b6040516020818303038152906040528051906020012014905092915050565b015190565b8151815160009160019181148083146166275760009250616665565b600160208701838101602088015b6002848385100114156166605780518351146166545760009650600093505b60209283019201616635565b505050505b5090949350505050565b6001600160a01b0381166000908152600460205260408120548061669857506000199050611d15565b6001810390506000600182815481106166ad57fe5b90600052602060002090600402016003015490506000600183815481106166d057fe5b6000918252602090912060036004909202010155600154604051600019909101906001600160a01b038616907f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d90616729908590618ed8565b60405180910390a28061674157829350505050611d15565b600081838161674c57fe5b04905080156167e85760005b8481101561679a5761677182600183815481106154bb57fe5b6001828154811061677e57fe5b6000918252602090912060036004909202010155600101616758565b50600180549085015b818110156167e5576167bc83600183815481106154bb57fe5b600182815481106167c957fe5b60009182526020909120600360049092020101556001016167a3565b50505b5091949350505050565b60008261680157506000611dc5565b8282028284828161680e57fe5b041461115e5760405162461bcd60e51b8152600401610e12906189e2565b600061115e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061747e565b616876617c2c565b506040805180820190915281518152602082810190820152919050565b61689b617b5e565b6168a4826174b5565b6168ad57600080fd5b60006168bc83602001516174ef565b60208085015160408051808201909152868152920190820152915050919050565b60006168e7617c2c565b505080518051602091820151919092015191011190565b616906617c2c565b61690f826168dd565b61691857600080fd5b6020820151600061692882617552565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061696157508151602110155b61696a57600080fd5b600061697983602001516174ef565b9050808360000151101561699f5760405162461bcd60e51b8152600401610e1290618bf0565b8251602080850151830180519284900392918310156163b557506020919091036101000a90049392505050565b60606169d7826174b5565b6169e057600080fd5b60006169eb83617633565b9050606081604051908082528060200260200182016040528015616a2957816020015b616a16617c2c565b815260200190600190039081616a0e5790505b5090506000616a3b85602001516174ef565b60208601510190506000805b84811015616a9257616a5883617552565b9150604051806040016040528083815260200184815250848281518110616a7b57fe5b602090810291909101015291810191600101616a47565b509195945050505050565b616aa5617ae5565b60606000616ab1617ae5565b6060616abb617b5e565b616ac487616893565b90506000805b616ad3836168dd565b15616ba85780616afe57616aee616ae9846168fe565b61768f565b6001600160a01b03168552616ba0565b8060011415616b2657616b13616ae9846168fe565b6001600160a01b03166020860152616ba0565b8060021415616b4e57616b3b616ae9846168fe565b6001600160a01b03166040860152616ba0565b8060031415616b7a57616b63613dc1846168fe565b6001600160401b0316606086015260019150616ba0565b8060041415616b9b57616b94616b8f846168fe565b6176a9565b9350616ba0565b616ba8565b600101616aca565b50929791965091945092505050565b6060611dc5616bc583617719565b6177ff565b6060815160001415616beb5750604080516000815260208101909152611d15565b606082600081518110616bfa57fe5b602002602001015190506000600190505b8351811015616c3b57616c3182858381518110616c2457fe5b6020026020010151617851565b9150600101616c0b565b5061115e616c4e825160c060ff166178ce565b82617851565b60608060006120026001600160a01b031663c473318f6040518163ffffffff1660e01b815260040160206040518083038186803b158015616c9457600080fd5b505afa158015616ca8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190616ccc9190618096565b90508085518851011015616ce1575083518651015b606081604051908082528060200260200182016040528015616d1d57816020015b616d0a617ae5565b815260200190600190039081616d025790505b509050606082604051908082528060200260200182016040528015616d5657816020015b6060815260200190600190039081616d415790505b50905060008060005b8b51831080616d6e5750895182105b8015616d7957508581105b1561700e578b51831415616de957898281518110616d9357fe5b6020026020010151858281518110616da757fe5b6020026020010181905250888281518110616dbe57fe5b6020026020010151848281518110616dd257fe5b602090810291909101015260019182019101616d5f565b8951821415616e54578b8381518110616dfe57fe5b6020026020010151858281518110616e1257fe5b60200260200101819052508a8381518110616e2957fe5b6020026020010151848281518110616e3d57fe5b602090810291909101015260019283019201616d5f565b898281518110616e6057fe5b6020026020010151606001516001600160401b03168c8481518110616e8157fe5b6020026020010151606001516001600160401b03161115616efd578b8381518110616ea857fe5b6020026020010151858281518110616ebc57fe5b60200260200101819052508a8381518110616ed357fe5b6020026020010151848281518110616ee757fe5b6020026020010181905250826001019250617006565b898281518110616f0957fe5b6020026020010151606001516001600160401b03168c8481518110616f2a57fe5b6020026020010151606001516001600160401b03161015616fa657898281518110616f5157fe5b6020026020010151858281518110616f6557fe5b6020026020010181905250888281518110616f7c57fe5b6020026020010151848281518110616f9057fe5b6020026020010181905250816001019150617006565b898281518110616fb257fe5b6020026020010151600001516001600160a01b03168c8481518110616fd357fe5b6020026020010151600001516001600160a01b03161015616ffa578b8381518110616ea857fe5b898281518110616d9357fe5b600101616d5f565b50929a91995090975050505050505050565b805182516000916001600160a01b03918216911614801561705a575081602001516001600160a01b031683602001516001600160a01b0316145b801561115e5750506040908101519101516001600160a01b0390811691161490565b601254601354808211156170c757805b828110156170c557601280548061709f57fe5b6001900381819060005260206000200160006170bb9190617b1a565b905560010161708c565b505b60008183106170d657816170d8565b825b905060005b818110156171f057617195601282815481106170f557fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156171835780601f1061715857610100808354040283529160200191617183565b820191906000526020600020905b81548152906001019060200180831161716657829003601f168201915b50505050506013838154811061341857fe5b6171e857601381815481106171a657fe5b90600052602060002001601282815481106171bd57fe5b9060005260206000200190805460018160011615610100020316600290046171e6929190617b7e565b505b6001016170dd565b5082821115610e3257825b8281101561725e5760126013828154811061721257fe5b6000918252602080832084546001818101875595855291909320929091018054617255949390920192909160026101009282161592909202600019011604617b7e565b506001016171fb565b50505050565b601354600b54808211156172af57805b828110156172ad57601380548061728757fe5b6001900381819060005260206000200160006172a39190617b1a565b9055600101617274565b505b60008183106172be57816172c0565b825b905060005b818110156173df5761737d601382815481106172dd57fe5b600091825260209182902001805460408051601f600260001961010060018716150201909416939093049283018590048502810185019091528181529283018282801561736b5780601f106173405761010080835404028352916020019161736b565b820191906000526020600020905b81548152906001019060200180831161734e57829003601f168201915b5050505050600b8381548110615ecb57fe5b6173d757600b818154811061738e57fe5b9060005260206000209060160201600201601382815481106173ac57fe5b9060005260206000200190805460018160011615610100020316600290046173d5929190617b7e565b505b6001016172c5565b5082821115610e3257825b8281101561725e576013600b828154811061740157fe5b60009182526020808320845460018082018755958552919093206016929092029092016002908101805461744995939094019390926000199082161561010002011604617b7e565b506001016173ea565b600081848411156174765760405162461bcd60e51b8152600401610e12919061837e565b505050900390565b6000818361749f5760405162461bcd60e51b8152600401610e12919061837e565b5060008385816174ab57fe5b0495945050505050565b80516000906174c657506000611d15565b6020820151805160001a9060c08210156174e557600092505050611d15565b5060019392505050565b8051600090811a6080811015617509576000915050611d15565b60b8811080617524575060c08110801590617524575060f881105b15617533576001915050611d15565b60c08110156175475760b519019050611d15565b60f519019050611d15565b80516000908190811a608081101561756d576001915061762c565b60b881101561758257607e198101915061762c565b60c08110156175d357600060b78203600186019550806020036101000a8651049150600181018201935050808310156175cd5760405162461bcd60e51b8152600401610e129061892f565b5061762c565b60f88110156175e85760be198101915061762c565b600060f78203600186019550806020036101000a86510491506001810182019350508083101561762a5760405162461bcd60e51b8152600401610e129061892f565b505b5092915050565b805160009061764457506000611d15565b6000809050600061765884602001516174ef565b602085015185519181019250015b808210156176865761767782617552565b82019150826001019250617666565b50909392505050565b80516000906015146176a057600080fd5b611dc58261694c565b80516060906176b757600080fd5b60006176c683602001516174ef565b83516040805191839003808352601f19601f82011683016020019091529192506060908280156176fd576020820181803683370190505b50905060008160200190506163b58487602001510182856179a0565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff19841661775d57506018617781565b6fffffffffffffffffffffffffffffffff19841661777d57506010617781565b5060005b60208110156177b75781818151811061779657fe5b01602001516001600160f81b031916156177af576177b7565b600101617781565b60008160200390506060816040519080825280601f01601f1916602001820160405280156177ec576020820181803683370190505b5080830196909652508452509192915050565b6060815160011480156178315750607f60f81b8260008151811061781f57fe5b01602001516001600160f81b03191611155b1561783d575080611d15565b611dc561784f8351608060ff166178ce565b835b6060806040519050835180825260208201818101602087015b8183101561788257805183526020928301920161786a565b50855184518101855292509050808201602086015b818310156178af578051835260209283019201617897565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106178f85760405162461bcd60e51b8152600401610e129061877a565b604080516001808252818301909252606091602082018180368337019050509050603784116179525782840160f81b8160008151811061793457fe5b60200101906001600160f81b031916908160001a9053509050611dc5565b606061795d85617719565b90508381510160370160f81b8260008151811061797657fe5b60200101906001600160f81b031916908160001a9053506179978282617851565b95945050505050565b806179aa57610e32565b5b602081106179ca578251825260209283019290910190601f19016179ab565b915181516020939093036101000a6000190180199091169216919091179052565b60405180608001604052806000815260200160001515815260200160608152602001617a15617c46565b905290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10617a5b57805160ff1916838001178555617a88565b82800160010185558215617a88579182015b82811115617a88578251825591602001919060010190617a6d565b506131e8929150617c65565b8260138101928215617a885791602002820182811115617a88578251825591602001919060010190617a6d565b6040518060600160405280600060ff16815260200160608152602001606081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b50805460018160011615610100020316600290046000825580601f10617b405750611f2d565b601f016020900490600052602060002090810190611f2d9190617c65565b6040518060400160405280617b71617c2c565b8152602001600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10617bb75780548555617a88565b82800160010185558215617a8857600052602060002091601f016020900482015b82811115617a88578254825591600101919060010190617bd8565b8260138101928215617a885791820182811115617a88578254825591600101919060010190617bd8565b50611f2d906013810190617c65565b604051806040016040528060008152602001600081525090565b6040518061026001604052806013906020820280368337509192915050565b61318c91905b808211156131e85760008155600101617c6b565b8035611dc581618faf565b60008083601f840112617c9b578182fd5b5081356001600160401b03811115617cb1578182fd5b60208301915083602080830285010111156159f357600080fd5b6000601f8381840112617cdc578182fd5b8235617cef617cea82618f64565b618f3e565b818152925060208084019085810160005b84811015617d81578135880189603f820112617d1b57600080fd5b838101356001600160401b03811115617d3357600080fd5b617d44818901601f19168601618f3e565b81815260408c81848601011115617d5a57600080fd5b82818501888401375060009181018601919091528552509282019290820190600101617d00565b50505050505092915050565b600082601f830112617d9d578081fd5b8135617dab617cea82618f64565b818152915060208083019084810181840286018201871015617dcc57600080fd5b6000805b85811015617d815782356001600160401b0381168114617dee578283fd5b85529383019391830191600101617dd0565b60008083601f840112617e11578182fd5b5081356001600160401b03811115617e27578182fd5b6020830191508360208285010111156159f357600080fd5b600060208284031215617e50578081fd5b813561115e81618faf565b600060208284031215617e6c578081fd5b815161115e81618faf565b60008060008060408587031215617e8c578283fd5b84356001600160401b0380821115617ea2578485fd5b617eae88838901617c8a565b90965094506020870135915080821115617ec6578384fd5b50617ed387828801617c8a565b95989497509550505050565b600080600060608486031215617ef3578283fd5b83356001600160401b0380821115617f09578485fd5b81860187601f820112617f1a578586fd5b80359250617f2a617cea84618f64565b80848252602080830192508084018b828389028701011115617f4a57898afd5b8994505b86851015617f7457617f608c82617c7f565b845260019490940193928101928101617f4e565b509097508801359350505080821115617f8b578384fd5b617f9787838801617d8d565b93506040860135915080821115617fac578283fd5b50617fb986828701617ccb565b9150509250925092565b600060208284031215617fd4578081fd5b8151801515811461115e578182fd5b60008060208385031215617ff5578182fd5b82356001600160401b0381111561800a578283fd5b61801685828601617e00565b90969095509350505050565b60008060008060408587031215618037578384fd5b84356001600160401b038082111561804d578586fd5b61805988838901617e00565b90965094506020870135915080821115618071578384fd5b50617ed387828801617e00565b60006020828403121561808f578081fd5b5035919050565b6000602082840312156180a7578081fd5b5051919050565b600080604083850312156180c0578182fd5b505080516020909101519092909150565b6000806000604084860312156180e5578081fd5b833560ff811681146180f5578182fd5b925060208401356001600160401b0381111561810f578182fd5b61811b86828701617e00565b9497909650939450505050565b6000815180845260208085019450808401835b838110156181605781516001600160a01b03168752958201959082019060010161813b565b509495945050505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b600081518084526181ad816020860160208601618f83565b601f01601f19169290920160200192915050565b600082516181d3818460208701618f83565b9190910192915050565b918252602082015260400190565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b03968716815294861660208601529290941660408401526001600160401b03166060830152911515608082015260a081019190915260c00190565b6001600160a01b0392909216825260ff16602082015260400190565b60006020825261115e6020830184618128565b60006040825261829c6040830185618128565b602083820381850152818551808452828401915082838202850101838801865b838110156182ea57601f198784030185526182d8838351618195565b948601949250908501906001016182bc565b50909998505050505050505050565b60006080825261830c6080830187618128565b828103602084810191909152865180835287820192820190845b8181101561834257845183529383019391830191600101618326565b505084810360408601526183568188618128565b93505050506001600160401b038316606083015295945050505050565b901515815260200190565b60006020825261115e6020830184618195565b6000604082526183a560408301868861816b565b82810360208401526183b881858761816b565b979650505050505050565b6020808252601c908201527f6c656e677468206f66206275726e526174696f206d69736d6174636800000000604082015260600190565b60208082526042908201527f746865206275726e526174696f20706c75732073797374656d5265776172645260408201527f6174696f206d757374206265206e6f2067726561746572207468616e20313030606082015261030360f41b608082015260a00190565b60208082526026908201527f6c656e677468206f66206d61784e756d4f664d61696e7461696e696e67206d696040820152650e6dac2e8c6d60d31b606082015260800190565b6020808252601b908201527f6261746368207472616e736665722072657475726e2066616c73650000000000604082015260600190565b6020808252602c908201527f6c656e677468206f66206d61784e756d4f66576f726b696e6743616e6469646160408201526b0e8cae640dad2e6dac2e8c6d60a31b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61696e7461696e536c6173685363616c65206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252818101527f6c656e677468206f66206e756d4f66436162696e657473206d69736d61746368604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252601f908201527f6f6e6c7920736c617368206f72207374616b6548756220636f6e747261637400604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526028908201527f746865206e756d4f66436162696e657473206d75737420626520677265617465604082015267072207468616e20360c41b606082015260800190565b60208082526039908201527f746865206e756d4f66436162696e657473206d757374206265206c657373207460408201527f68616e204d41585f4e554d5f4f465f56414c494441544f525300000000000000606082015260800190565b60208082526029908201527f746865206e756d626572206f662076616c696461746f727320657863656564206040820152681d1a19481b1a5b5a5d60ba1b606082015260800190565b60208082526022908201527f63616e206e6f7420646f207468697320747769636520696e206f6e6520626c6f604082015261636b60f01b606082015260800190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526037908201527f746865206d61784e756d4f664d61696e7461696e696e67206d7573742062652060408201527f6c657373207468616e206e756d4f66436162696e657473000000000000000000606082015260800190565b6020808252602b908201527f6475706c696361746520636f6e73656e7375732061646472657373206f66207660408201526a185b1a59185d1bdc94d95d60aa1b606082015260800190565b60208082526027908201527f7468652065787069726554696d655365636f6e64476170206973206f7574206f604082015266662072616e676560c81b606082015260800190565b6020808252601590820152746465706f7369742076616c7565206973207a65726f60581b604082015260600190565b60208082526049908201527f746865206d61784e756d4f66576f726b696e6743616e64696461746573206d7560408201527f7374206265206e6f742067726561746572207468616e206d61784e756d4f6643606082015268616e6469646174657360b81b608082015260a00190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b60208082526023908201527f63616e206e6f7420656e7465722054656d706f72617279204d61696e74656e616040820152626e636560e81b606082015260800190565b60208082526025908201527f6c656e677468206f66206a61696c2076616c696461746f7273206d757374206260408201526465206f6e6560d81b606082015260800190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61784e756d4f6643616e64696461746573206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252601290820152716e6f7420696e206d61696e74656e616e636560701b604082015260600190565b60208082526021908201527f666565206973206c6172676572207468616e2044555354595f494e434f4d494e6040820152604760f81b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b60208082526042908201527f7468652073797374656d526577617264526174696f20706c7573206275726e5260408201527f6174696f206d757374206265206e6f2067726561746572207468616e20313030606082015261030360f41b608082015260a00190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526026908201527f6c656e677468206f662065787069726554696d655365636f6e64476170206d696040820152650e6dac2e8c6d60d31b606082015260800190565b60208082526017908201527f6f6e6c792063757272656e742076616c696461746f7273000000000000000000604082015260600190565b60208082526021908201527f6661696c656420746f20706172736520696e69742076616c696461746f7253656040820152601d60fa1b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b60208082526024908201527f6c656e677468206f662073797374656d526577617264526174696f206d69736d6040820152630c2e8c6d60e31b606082015260800190565b6020808252603e908201527f746865206d61696e7461696e536c6173685363616c65206d757374206265206760408201527f726561746572207468616e203020616e64206c657373207468616e2031300000606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b60208082526029908201527f746865206d6573736167652073656e646572206d75737420626520736c6173686040820152680818dbdb9d1c9858dd60ba1b606082015260800190565b6020808252601f908201527f746865206d73672073656e646572206d757374206265207374616b6548756200604082015260600190565b61ffff91909116815260200190565b90815260200190565b60008482528315156020830152606060408301526179976060830184618195565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff851682526040602083015261799760408301848661816b565b6040518181016001600160401b0381118282101715618f5c57600080fd5b604052919050565b60006001600160401b03821115618f79578081fd5b5060209081020190565b60005b83811015618f9e578181015183820152602001618f86565b8381111561725e5750506000910152565b6001600160a01b0381168114611f2d57600080fdfef901a880f901a4f844941284214b9b9c85549ab3d2b972df0deef66ac2c9946ddf42a51534fc98d0c0a3b42c963cace8441ddf946ddf42a51534fc98d0c0a3b42c963cace8441ddf8410000000f84494a2959d3f95eae5dc7d70144ce1b73b403b7eb6e0948081ef03f1d9e0bb4a5bf38f16285c879299f07f948081ef03f1d9e0bb4a5bf38f16285c879299f07f8410000000f8449435552c16704d214347f29fa77f77da6d75d7c75294dc4973e838e3949c77aced16ac2315dc2d7ab11194dc4973e838e3949c77aced16ac2315dc2d7ab1118410000000f84494980a75ecd1309ea12fa2ed87a8744fbfc9b863d594cc6ac05c95a99c1f7b5f88de0e3486c82293b27094cc6ac05c95a99c1f7b5f88de0e3486c82293b2708410000000f84494f474cf03cceff28abc65c9cbae594f725c80e12d94e61a183325a18a173319dd8e19c8d069459e217594e61a183325a18a173319dd8e19c8d069459e21758410000000f84494b71b214cb885500844365e95cd9942c7276e7fd894d22ca3ba2141d23adab65ce4940eb7665ea2b6a794d22ca3ba2141d23adab65ce4940eb7665ea2b6a7841000000070e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb20175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbb0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbaa164736f6c6343000604000a" + }, + "0x0000000000000000000000000000000000002002": { + "balance": "0x0", + "code": "0x608060405260043610620003db5760003560e01c806386d545061162000203578063d115a2061162000117578063e992aaf511620000ad578063f80a34021162000078578063f80a34021462000bef578063fb50b31f1462000c14578063fc0c5ff11462000c39578063ff69ab611462000c5157600080fd5b8063e992aaf51462000b6c578063efdbf0e11462000b84578063f1f74d841462000bc0578063f1fad1041462000bd857600080fd5b8063d8ca511f11620000ee578063d8ca511f1462000aff578063daacdb661462000b17578063dbda7fb31462000b2f578063e8f67c3b1462000b5457600080fd5b8063d115a2061462000a9d578063d6ca429d1462000ab5578063d7c2dfc81462000ada57600080fd5b8063b187bd261162000199578063c38fbec81162000164578063c38fbec81462000a1f578063c473318f1462000a44578063c8509d81146200083d578063cbb04d9d1462000a5c57600080fd5b8063b187bd26146200098c578063baa7199e14620009ac578063bdceadf314620009d1578063bff02e2014620009e957600080fd5b8063982ef0a711620001da578063982ef0a714620008f7578063a43569b3146200090e578063aad3ec961462000942578063ac431751146200096757600080fd5b806386d54506146200087a5780638a4d3fa814620008b45780638cd22b2214620008d257600080fd5b80634bf6c88211620002fb578063663706d3116200029157806376e7d6d6116200025c57806376e7d6d6146200080d5780638129fc1c1462000825578063831d65d1146200083d5780638456cb59146200086257600080fd5b8063663706d3146200073a5780636ec01b27146200076b5780636f8e2fa414620007c357806375cc7d8914620007e857600080fd5b80635949187111620002d25780635949187114620006a25780635e7cc1c914620006c757806363a036b514620006ec57806364028fbd146200072357600080fd5b80634bf6c882146200063b5780634d99dd1614620006655780634e6fd6c4146200068a57600080fd5b80631fa8882b1162000371578063449ecfe61162000348578063449ecfe6146200058757806345211bfd14620005ac5780634838d16514620005d15780634a49ac4c146200061657600080fd5b80631fa8882b146200053157806338409988146200054a578063417c73a7146200056257600080fd5b8063092193ab11620003b2578063092193ab146200047c5780630e9fbf5114620004935780631182b87514620004b857806317b4f35314620004ec57600080fd5b8063046f7da214620003fb578063059ddd2214620004135780630661806e146200045557600080fd5b36620003f65760345460ff16600114620003f457600080fd5b005b600080fd5b3480156200040857600080fd5b50620003f462000c69565b3480156200042057600080fd5b50620004386200043236600462009440565b62000cfb565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156200046257600080fd5b506200046d60365481565b6040519081526020016200044c565b620003f46200048d36600462009440565b62001110565b348015620004a057600080fd5b50620003f4620004b2366004620094a4565b6200174e565b348015620004c557600080fd5b50620004dd620004d7366004620094e9565b62001a7a565b6040516200044c91906200959c565b348015620004f957600080fd5b50620004386200050b36600462009692565b80516020818301810180516045825292820191909301209152546001600160a01b031681565b3480156200053e57600080fd5b506200046d6201518081565b3480156200055757600080fd5b506200046d60375481565b3480156200056f57600080fd5b50620003f46200058136600462009440565b62001ded565b3480156200059457600080fd5b50620003f4620005a636600462009440565b62001e6f565b348015620005b957600080fd5b50620003f4620005cb36600462009440565b62002054565b348015620005de57600080fd5b5062000605620005f036600462009440565b60016020526000908152604090205460ff1681565b60405190151581526020016200044c565b3480156200062357600080fd5b50620003f46200063536600462009440565b62002231565b3480156200064857600080fd5b5062000652600881565b60405160ff90911681526020016200044c565b3480156200067257600080fd5b50620003f462000684366004620096e7565b620022ad565b3480156200069757600080fd5b506200043861dead81565b348015620006af57600080fd5b50620003f4620006c136600462009725565b620028ca565b348015620006d457600080fd5b50620003f4620006e636600462009795565b6200369c565b348015620006f957600080fd5b50620007116200070b366004620097b5565b620038a4565b6040516200044c94939291906200981e565b620003f462000734366004620098da565b62003f36565b3480156200074757600080fd5b506200046d6200075936600462009440565b60446020526000908152604090205481565b3480156200077857600080fd5b50620007906200078a36600462009440565b62004580565b6040805182516001600160401b03908116825260208085015182169083015292820151909216908201526060016200044c565b348015620007d057600080fd5b50620004dd620007e236600462009440565b6200462a565b348015620007f557600080fd5b50620003f46200080736600462009440565b62004a43565b3480156200081a57600080fd5b506200046d603d5481565b3480156200083257600080fd5b50620003f462004c15565b3480156200084a57600080fd5b50620003f46200085c366004620094e9565b62004f2c565b3480156200086f57600080fd5b50620003f462004f96565b3480156200088757600080fd5b50620004386200089936600462009440565b6043602052600090815260409020546001600160a01b031681565b348015620008c157600080fd5b506200046d670de0b6b3a764000081565b348015620008df57600080fd5b506200046d620008f1366004620096e7565b6200502e565b620003f462000908366004620099b2565b620050e7565b3480156200091b57600080fd5b50620009336200092d36600462009440565b62005771565b6040516200044c9190620099f0565b3480156200094f57600080fd5b50620003f462000961366004620096e7565b62005a5e565b3480156200097457600080fd5b50620003f46200098636600462009a6d565b62005acb565b3480156200099957600080fd5b5060005462010000900460ff1662000605565b348015620009b957600080fd5b50620003f4620009cb36600462009b26565b6200696a565b348015620009de57600080fd5b506200046d603c5481565b348015620009f657600080fd5b5062000a0e62000a08366004620097b5565b62006b37565b6040516200044c9392919062009b82565b34801562000a2c57600080fd5b50620003f462000a3e36600462009440565b62006d13565b34801562000a5157600080fd5b506200046d60385481565b34801562000a6957600080fd5b5062000a8162000a7b36600462009440565b62006fd5565b604080519384529115156020840152908201526060016200044c565b34801562000aaa57600080fd5b506200046d61271081565b34801562000ac257600080fd5b50620003f462000ad436600462009bdf565b62007405565b34801562000ae757600080fd5b50620003f462000af936600462009cc8565b62007609565b34801562000b0c57600080fd5b506200046d603b5481565b34801562000b2457600080fd5b506200046d60495481565b34801562000b3c57600080fd5b506200043862000b4e36600462009440565b620076ff565b34801562000b6157600080fd5b506200046d60355481565b34801562000b7957600080fd5b506200046d603a5481565b34801562000b9157600080fd5b506200046d62000ba336600462009692565b805160208183018101805160468252928201919093012091525481565b34801562000bcd57600080fd5b506200046d603e5481565b34801562000be557600080fd5b5062000652601181565b34801562000bfc57600080fd5b506200046d62000c0e366004620096e7565b62007b16565b34801562000c2157600080fd5b50620003f462000c3336600462009a6d565b62007b87565b34801562000c4657600080fd5b506200046d60395481565b34801562000c5e57600080fd5b506200046d604a5481565b600054630100000090046001600160a01b0316331462000c9c576040516306fbb1e360e01b815260040160405180910390fd5b60005462010000900460ff1662000cc657604051636cd6020160e01b815260040160405180910390fd5b6000805462ff0000191681556040517f62451d457bc659158be6e6247f56ec1df424a5c7597f71c20c2bc44e0965c8f99190a1565b6001600160a01b038082166000908152604160209081526040808320815161016081018352815486168152600182015486169381019390935260028101549094169082015260038301546060820152600483018054929384939091608084019162000d669062009d2e565b80601f016020809104026020016040519081016040528092919081815260200182805462000d949062009d2e565b801562000de55780601f1062000db95761010080835404028352916020019162000de5565b820191906000526020600020905b81548152906001019060200180831162000dc757829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462000e109062009d2e565b80601f016020809104026020016040519081016040528092919081815260200182805462000e3e9062009d2e565b801562000e8f5780601f1062000e635761010080835404028352916020019162000e8f565b820191906000526020600020905b81548152906001019060200180831162000e7157829003601f168201915b5050505050815260200160018201805462000eaa9062009d2e565b80601f016020809104026020016040519081016040528092919081815260200182805462000ed89062009d2e565b801562000f295780601f1062000efd5761010080835404028352916020019162000f29565b820191906000526020600020905b81548152906001019060200180831162000f0b57829003601f168201915b5050505050815260200160028201805462000f449062009d2e565b80601f016020809104026020016040519081016040528092919081815260200182805462000f729062009d2e565b801562000fc35780601f1062000f975761010080835404028352916020019162000fc3565b820191906000526020600020905b81548152906001019060200180831162000fa557829003601f168201915b5050505050815260200160038201805462000fde9062009d2e565b80601f01602080910402602001604051908101604052809291908181526020018280546200100c9062009d2e565b80156200105d5780601f1062001031576101008083540402835291602001916200105d565b820191906000526020600020905b8154815290600101906020018083116200103f57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b815481526020019060010190808311620010e9575050509190925250509051949350505050565b33611000146200113c57604051630f22c43960e41b815261100060048201526024015b60405180910390fd5b6001600160a01b03808216600090815260436020908152604080832054841680845260418352818420825161016081018452815487168152600182015487169481019490945260028101549095169183019190915260038401546060830152600484018054919491608084019190620011b59062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620011e39062009d2e565b8015620012345780601f10620012085761010080835404028352916020019162001234565b820191906000526020600020905b8154815290600101906020018083116200121657829003601f168201915b50505050508152602001600582016040518060800160405290816000820180546200125f9062009d2e565b80601f01602080910402602001604051908101604052809291908181526020018280546200128d9062009d2e565b8015620012de5780601f10620012b257610100808354040283529160200191620012de565b820191906000526020600020905b815481529060010190602001808311620012c057829003601f168201915b50505050508152602001600182018054620012f99062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620013279062009d2e565b8015620013785780601f106200134c5761010080835404028352916020019162001378565b820191906000526020600020905b8154815290600101906020018083116200135a57829003601f168201915b50505050508152602001600282018054620013939062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620013c19062009d2e565b8015620014125780601f10620013e65761010080835404028352916020019162001412565b820191906000526020600020905b815481529060010190602001808311620013f457829003601f168201915b505050505081526020016003820180546200142d9062009d2e565b80601f01602080910402602001604051908101604052809291908181526020018280546200145b9062009d2e565b8015620014ac5780601f106200148057610100808354040283529160200191620014ac565b820191906000526020600020905b8154815290600101906020018083116200148e57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b81548152602001906001019080831162001538575050509190925250505060408101519091506001600160a01b031615806200157557508060e001515b156200163257604051611002903490600081818185875af1925050503d8060008114620015bf576040519150601f19603f3d011682016040523d82523d6000602084013e620015c4565b606091505b505050816001600160a01b03167ffc8bff675087dd2da069cc3fb517b9ed001e19750c0865241a5542dba1ba170d604051620016259060208082526011908201527024a72b20a624a22fab20a624a220aa27a960791b604082015260600190565b60405180910390a2505050565b60408181015160c0830151519151632f303ebb60e11b81526001600160401b0390921660048301526001600160a01b031690635e607d769034906024016000604051808303818588803b1580156200168957600080fd5b505af11580156200169e573d6000803e3d6000fd5b5050505050816001600160a01b03167fe34918ff1c7084970068b53fd71ad6d8b04e9f15d3886cbf006443e6cdc52ea634604051620016df91815260200190565b60405180910390a26040808201519051633041949b60e01b815261200591633041949b91620017149190869060040162009d64565b600060405180830381600087803b1580156200172f57600080fd5b505af115801562001744573d6000803e3d6000fd5b5050505050505b50565b33611001146200177657604051630f22c43960e41b8152611001600482015260240162001133565b60005462010000900460ff1615620017a157604051631785c68160e01b815260040160405180910390fd5b600060458383604051620017b792919062009d7e565b908152604051908190036020019020546001600160a01b03169050620017df603f8262007ddb565b620017fd5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b03811660009081526041602052604081209062001825620151804262009da4565b604a546000828152604b602052604090205491925011620018595760405163bd52fcdb60e01b815260040160405180910390fd5b6000818152604b602052604081208054600192906200187a90849062009dc7565b909155505060405160469062001894908790879062009d7e565b908152602001604051809103902054600014158015620018e55750426201518060468787604051620018c892919062009d7e565b908152602001604051809103902054620018e3919062009dc7565b105b156200190457604051631898eb6b60e01b815260040160405180910390fd5b6000806200191485600262007dfe565b91509150816200193757604051631b919bb160e11b815260040160405180910390fd5b6002840154603c5460405163045bc4d160e41b815260048101919091526000916001600160a01b0316906345bc4d10906024016020604051808303816000875af11580156200198a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620019b0919062009ddd565b9050620019be858362007e88565b856001600160a01b03167f6e9a2ee7aee95665e3a774a212eb11441b217e3e4656ab9563793094689aabb283836002604051620019fe9392919062009e0d565b60405180910390a26002850154604051633041949b60e01b815261200591633041949b9162001a3c916001600160a01b0316908a9060040162009d64565b600060405180830381600087803b15801562001a5757600080fd5b505af115801562001a6c573d6000803e3d6000fd5b505050505050505050505050565b6060336120001462001aa457604051630f22c43960e41b8152612000600482015260240162001133565b60005462010000900460ff161562001acf57604051631785c68160e01b815260040160405180910390fd5b6034805460ff19166001179055604080516020601f8501819004810282018101909252838152600091829162001b209187908790819084018382808284376000920191909152506200804f92505050565b915091508062001b435760405163035ede3560e21b815260040160405180910390fd5b816060015160000362001b69575050604080516000815260208101909152905062001ddc565b606082015160405163e04c83a760e01b81526000916110049163e04c83a79162001b999160040190815260200190565b6020604051808303816000875af115801562001bb9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001bdf919062009e3c565b90508062001c865782602001516001600160a01b031683600001516001600160a01b03167fa9084c89a291b43bc984e045671d394974730a159b9a826b577bb148ab504c3a8560600151600160405162001c3b92919062009e5c565b60405180910390a385858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092965062001ddc95505050505050565b600062001c9384620081b2565b9050600081600481111562001cac5762001cac62009df7565b0362001cce575050604080516000815260208101909152925062001ddc915050565b6040516000906110049047908381818185875af1925050503d806000811462001d14576040519150601f19603f3d011682016040523d82523d6000602084013e62001d19565b606091505b505090508062001d3c576040516312171d8360e31b815260040160405180910390fd5b84602001516001600160a01b031685600001516001600160a01b03167fa9084c89a291b43bc984e045671d394974730a159b9a826b577bb148ab504c3a87606001518560405162001d8f92919062009e5c565b60405180910390a387878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092985062001ddc975050505050505050565b6034805460ff191690559392505050565b600054630100000090046001600160a01b0316331462001e20576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b0381166000818152600160208190526040808320805460ff1916909217909155517f7fd26be6fc92aff63f1f4409b2b2ddeb272a888031d7f55ec830485ec61941869190a250565b60005462010000900460ff161562001e9a57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161562001ecc5760405163b1d02c3d60e01b815260040160405180910390fd5b8062001eda603f8262007ddb565b62001ef85760405163056e881160e01b815260040160405180910390fd5b6001600160a01b0382166000908152604160205260409020600a81015460ff1662001f3657604051634b6b857d60e01b815260040160405180910390fd5b6036546002820154604051630913db4760e01b81526001600160a01b03868116600483015290911690630913db4790602401602060405180830381865afa15801562001f86573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001fac919062009ddd565b101562001fcc576040516317b204bf60e11b815260040160405180910390fd5b4281600b0154111562001ff25760405163170cb76760e21b815260040160405180910390fd5b600a8101805460ff1916905560498054600191906000906200201690849062009e83565b90915550506040516001600160a01b038416907f9390b453426557da5ebdc31f19a37753ca04addf656d32f35232211bb2af3f1990600090a2505050565b60005462010000900460ff16156200207f57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620020b15760405163b1d02c3d60e01b815260040160405180910390fd5b33620020bf603f8262007ddb565b620020dd5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b0382166200210557604051636520611b60e11b815260040160405180910390fd5b6001600160a01b03828116600090815260436020526040902054161515806200214657506001600160a01b03821660009081526047602052604090205460ff165b156200216557604051631e6f587560e11b815260040160405180910390fd5b336000818152604160205260409020600c81015442906200218b90620151809062009dc7565b1115620021ab57604051631f92cdbd60e11b815260040160405180910390fd5b80546001600160a01b039081166000908152604460209081526040808320429081905585548986166001600160a01b031991821681178855600c88019290925581855260439093528184208054958816959093168517909255519092917f6e4e747ca35203f16401c69805c7dd52fff67ef60b0ebc5c7fe16890530f223591a350505050565b600054630100000090046001600160a01b0316331462002264576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b038116600081815260016020526040808220805460ff19169055517fe0db3499b7fdc3da4cddff5f45d694549c19835e7f719fb5606d3ad1a5de40119190a250565b60005462010000900460ff1615620022d857604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff16156200230a5760405163b1d02c3d60e01b815260040160405180910390fd5b8162002318603f8262007ddb565b620023365760405163056e881160e01b815260040160405180910390fd5b816000036200235857604051639811e0c760e01b815260040160405180910390fd5b6001600160a01b0380841660009081526041602090815260408083208151610160810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180543394916080840191620023c09062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620023ee9062009d2e565b80156200243f5780601f1062002413576101008083540402835291602001916200243f565b820191906000526020600020905b8154815290600101906020018083116200242157829003601f168201915b50505050508152602001600582016040518060800160405290816000820180546200246a9062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620024989062009d2e565b8015620024e95780601f10620024bd57610100808354040283529160200191620024e9565b820191906000526020600020905b815481529060010190602001808311620024cb57829003601f168201915b50505050508152602001600182018054620025049062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620025329062009d2e565b8015620025835780601f10620025575761010080835404028352916020019162002583565b820191906000526020600020905b8154815290600101906020018083116200256557829003601f168201915b505050505081526020016002820180546200259e9062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620025cc9062009d2e565b80156200261d5780601f10620025f1576101008083540402835291602001916200261d565b820191906000526020600020905b815481529060010190602001808311620025ff57829003601f168201915b50505050508152602001600382018054620026389062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620026669062009d2e565b8015620026b75780601f106200268b57610100808354040283529160200191620026b7565b820191906000526020600020905b8154815290600101906020018083116200269957829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b81548152602001906001019080831162002743575050509190925250505060408082015190516326ccee8b60e11b81526001600160a01b0385811660048301526024820188905292935060009290911690634d99dd16906044016020604051808303816000875af1158015620027bd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620027e3919062009ddd565b9050826001600160a01b0316866001600160a01b03167f3aace7340547de7b9156593a7652dc07ee900cea3fd8f82cb6c9d38b40829802878460405162002834929190918252602082015260400190565b60405180910390a3856001600160a01b0316836001600160a01b0316036200286157620028618662008808565b6040808301519051633041949b60e01b815261200591633041949b916200288e9190879060040162009d64565b600060405180830381600087803b158015620028a957600080fd5b505af1158015620028be573d6000803e3d6000fd5b50505050505050505050565b60005462010000900460ff1615620028f557604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620029275760405163b1d02c3d60e01b815260040160405180910390fd5b8362002935603f8262007ddb565b620029535760405163056e881160e01b815260040160405180910390fd5b8362002961603f8262007ddb565b6200297f5760405163056e881160e01b815260040160405180910390fd5b6034805460ff191660011790556000849003620029af57604051639811e0c760e01b815260040160405180910390fd5b846001600160a01b0316866001600160a01b031603620029e25760405163f0e3e62960e01b815260040160405180910390fd5b6001600160a01b038087166000908152604160209081526040808320815161016081018352815486168152600182015486169381019390935260028101549094169082015260038301546060820152600483018054339491608084019162002a4a9062009d2e565b80601f016020809104026020016040519081016040528092919081815260200182805462002a789062009d2e565b801562002ac95780601f1062002a9d5761010080835404028352916020019162002ac9565b820191906000526020600020905b81548152906001019060200180831162002aab57829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462002af49062009d2e565b80601f016020809104026020016040519081016040528092919081815260200182805462002b229062009d2e565b801562002b735780601f1062002b475761010080835404028352916020019162002b73565b820191906000526020600020905b81548152906001019060200180831162002b5557829003601f168201915b5050505050815260200160018201805462002b8e9062009d2e565b80601f016020809104026020016040519081016040528092919081815260200182805462002bbc9062009d2e565b801562002c0d5780601f1062002be15761010080835404028352916020019162002c0d565b820191906000526020600020905b81548152906001019060200180831162002bef57829003601f168201915b5050505050815260200160028201805462002c289062009d2e565b80601f016020809104026020016040519081016040528092919081815260200182805462002c569062009d2e565b801562002ca75780601f1062002c7b5761010080835404028352916020019162002ca7565b820191906000526020600020905b81548152906001019060200180831162002c8957829003601f168201915b5050505050815260200160038201805462002cc29062009d2e565b80601f016020809104026020016040519081016040528092919081815260200182805462002cf09062009d2e565b801562002d415780601f1062002d155761010080835404028352916020019162002d41565b820191906000526020600020905b81548152906001019060200180831162002d2357829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b81548152602001906001019080831162002dcd57505050919092525050506001600160a01b0380891660009081526041602090815260408083208151610160810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180549495509193909291608084019162002e589062009d2e565b80601f016020809104026020016040519081016040528092919081815260200182805462002e869062009d2e565b801562002ed75780601f1062002eab5761010080835404028352916020019162002ed7565b820191906000526020600020905b81548152906001019060200180831162002eb957829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462002f029062009d2e565b80601f016020809104026020016040519081016040528092919081815260200182805462002f309062009d2e565b801562002f815780601f1062002f555761010080835404028352916020019162002f81565b820191906000526020600020905b81548152906001019060200180831162002f6357829003601f168201915b5050505050815260200160018201805462002f9c9062009d2e565b80601f016020809104026020016040519081016040528092919081815260200182805462002fca9062009d2e565b80156200301b5780601f1062002fef576101008083540402835291602001916200301b565b820191906000526020600020905b81548152906001019060200180831162002ffd57829003601f168201915b50505050508152602001600282018054620030369062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620030649062009d2e565b8015620030b55780601f106200308957610100808354040283529160200191620030b5565b820191906000526020600020905b8154815290600101906020018083116200309757829003601f168201915b50505050508152602001600382018054620030d09062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620030fe9062009d2e565b80156200314f5780601f1062003123576101008083540402835291602001916200314f565b820191906000526020600020905b8154815290600101906020018083116200313157829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b815481526020019060010190808311620031db5750505050508152505090508060e0015180156200321e5750876001600160a01b0316836001600160a01b031614155b156200323d57604051636468920360e01b815260040160405180910390fd5b60408083015190516352e82ce560e11b81526001600160a01b038581166004830152602482018a9052600092169063a5d059ca906044016020604051808303816000875af115801562003294573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620032ba919062009ddd565b9050603754811015620032e05760405163dc6f0bdd60e01b815260040160405180910390fd5b896001600160a01b0316846001600160a01b03161480156200337557506036546040808501519051630913db4760e01b81526001600160a01b038d8116600483015290911690630913db4790602401602060405180830381865afa1580156200334d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003373919062009ddd565b105b1562003394576040516317b204bf60e11b815260040160405180910390fd5b6000612710603a5483620033a9919062009e99565b620033b5919062009da4565b9050600083604001516001600160a01b03168260405160006040518083038185875af1925050503d80600081146200340a576040519150601f19603f3d011682016040523d82523d6000602084013e6200340f565b606091505b505090508062003432576040516312171d8360e31b815260040160405180910390fd5b6200343e828462009e83565b60408086015190516317066a5760e21b81526001600160a01b03898116600483015292955060009290911690635c19a95c90869060240160206040518083038185885af115801562003494573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190620034bb919062009ddd565b9050866001600160a01b03168c6001600160a01b03168e6001600160a01b03167ffdac6e81913996d95abcc289e90f2d8bd235487ce6fe6f821e7d21002a1915b48e858960405162003520939291909283526020830191909152604082015260600190565b60405180910390a460408051600280825260608201835260009260208301908036833701905050905086604001518160008151811062003564576200356462009eb3565b60200260200101906001600160a01b031690816001600160a01b0316815250508560400151816001815181106200359f576200359f62009eb3565b6001600160a01b0390921660209283029190910190910152604051634484077560e01b815261200590634484077590620035e09084908c9060040162009ec9565b600060405180830381600087803b158015620035fb57600080fd5b505af115801562003610573d6000803e3d6000fd5b505050508a1562003682576120056001600160a01b031663e5ed5b1e898f6040518363ffffffff1660e01b81526004016200364d92919062009d64565b600060405180830381600087803b1580156200366857600080fd5b505af11580156200367d573d6000803e3d6000fd5b505050505b50506034805460ff19169055505050505050505050505050565b60005462010000900460ff1615620036c757604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620036f95760405163b1d02c3d60e01b815260040160405180910390fd5b3362003707603f8262007ddb565b620037255760405163056e881160e01b815260040160405180910390fd5b336000818152604160205260409020600c81015442906200374b90620151809062009dc7565b11156200376b57604051631f92cdbd60e11b815260040160405180910390fd5b60098101546001600160401b03600160401b90910481169085161115620037a55760405163dc81db8560e01b815260040160405180910390fd5b60098101546000906001600160401b039081169086161015620037e3576009820154620037dd9086906001600160401b031662009ef5565b620037fd565b6009820154620037fd906001600160401b03168662009ef5565b60098301546001600160401b039182169250600160801b900416811115620038385760405163dc81db8560e01b815260040160405180910390fd5b60098201805467ffffffffffffffff19166001600160401b03871690811790915542600c8401556040519081526001600160a01b038416907f78cdd96edf59e09cfd4d26ef6ef6c92d166effe6a40970c54821206d541932cb9060200160405180910390a25050505050565b60608060606000620038b7603f6200892e565b90508086101562003f2d578415620038d05784620038d2565b805b9450600085620038e3888462009e83565b11620038fb57620038f5878362009e83565b620038fd565b855b9050806001600160401b038111156200391a576200391a620095b1565b60405190808252806020026020018201604052801562003944578160200160208202803683370190505b509450806001600160401b03811115620039625762003962620095b1565b6040519080825280602002602001820160405280156200398c578160200160208202803683370190505b509350806001600160401b03811115620039aa57620039aa620095b1565b604051908082528060200260200182016040528015620039df57816020015b6060815260200190600190039081620039c95790505b50925060005b8181101562003f2a57600062003a0962003a00838b62009dc7565b603f9062008939565b6001600160a01b0380821660009081526041602090815260408083208151610160810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180549495509193909291608084019162003a769062009d2e565b80601f016020809104026020016040519081016040528092919081815260200182805462003aa49062009d2e565b801562003af55780601f1062003ac95761010080835404028352916020019162003af5565b820191906000526020600020905b81548152906001019060200180831162003ad757829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462003b209062009d2e565b80601f016020809104026020016040519081016040528092919081815260200182805462003b4e9062009d2e565b801562003b9f5780601f1062003b735761010080835404028352916020019162003b9f565b820191906000526020600020905b81548152906001019060200180831162003b8157829003601f168201915b5050505050815260200160018201805462003bba9062009d2e565b80601f016020809104026020016040519081016040528092919081815260200182805462003be89062009d2e565b801562003c395780601f1062003c0d5761010080835404028352916020019162003c39565b820191906000526020600020905b81548152906001019060200180831162003c1b57829003601f168201915b5050505050815260200160028201805462003c549062009d2e565b80601f016020809104026020016040519081016040528092919081815260200182805462003c829062009d2e565b801562003cd35780601f1062003ca75761010080835404028352916020019162003cd3565b820191906000526020600020905b81548152906001019060200180831162003cb557829003601f168201915b5050505050815260200160038201805462003cee9062009d2e565b80601f016020809104026020016040519081016040528092919081815260200182805462003d1c9062009d2e565b801562003d6d5780601f1062003d415761010080835404028352916020019162003d6d565b820191906000526020600020905b81548152906001019060200180831162003d4f57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b81548152602001906001019080831162003df9575050505050815250509050806000015188848151811062003e325762003e3262009eb3565b60200260200101906001600160a01b031690816001600160a01b0316815250508060e0015162003ecb5780604001516001600160a01b03166315d1f8986040518163ffffffff1660e01b8152600401602060405180830381865afa15801562003e9f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003ec5919062009ddd565b62003ece565b60005b87848151811062003ee35762003ee362009eb3565b602002602001018181525050806080015186848151811062003f095762003f0962009eb3565b602002602001018190525050508062003f229062009f18565b9050620039e5565b50505b92959194509250565b60005462010000900460ff161562003f6157604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161562003f935760405163b1d02c3d60e01b815260040160405180910390fd5b3362003fa1603f8262007ddb565b1562003fc057604051635f28f62b60e01b815260040160405180910390fd5b6001600160a01b03888116600090815260436020526040902054161515806200400157506001600160a01b03881660009081526047602052604090205460ff165b156200402057604051631e6f587560e11b815260040160405180910390fd5b60006001600160a01b0316604588886040516200403f92919062009d7e565b908152604051908190036020019020546001600160a01b0316141580620040895750604887876040516200407592919062009d7e565b9081526040519081900360200190205460ff165b15620040a8576040516311fdb94760e01b815260040160405180910390fd5b6000620040b6838062009f34565b604051602001620040c992919062009d7e565b60408051601f1981840301815291815281516020928301206000818152604290935291205490915060ff1615620041135760405163c0bf414360e01b815260040160405180910390fd5b600062004129670de0b6b3a76400003462009e83565b90506036548110156200414f576040516317b204bf60e11b815260040160405180910390fd5b6001600160a01b038a166200417757604051636520611b60e11b815260040160405180910390fd5b6113886200418c604087016020880162009795565b6001600160401b03161180620041d25750620041af604086016020870162009795565b6001600160401b0316620041c7602087018762009795565b6001600160401b0316115b80620042115750620041eb604086016020870162009795565b6001600160401b031662004206606087016040880162009795565b6001600160401b0316115b15620042305760405163dc81db8560e01b815260040160405180910390fd5b6200427b62004240858062009f34565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506200894792505050565b6200429957604051635dba5ad760e01b815260040160405180910390fd5b620042a8838a8a8a8a62008ae9565b620042c657604051631647e3cb60e11b815260040160405180910390fd5b60006200431484620042d9878062009f34565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525062008c1992505050565b905062004323603f8562008d1a565b506000838152604260209081526040808320805460ff191660019081179091556001600160a01b0380891680865260419094529190932080548f83166001600160a01b031991821617825593810180548516909317909255600282018054918516919093161790915542600382015560048101620043a38b8d8362009fdc565b508560058201620043b582826200a0a4565b5087905060098201620043c982826200a1dd565b505042600c8201556001600160a01b038c81166000908152604360205260409081902080546001600160a01b0319169288169290921790915551859060459062004417908e908e9062009d7e565b908152602001604051809103902060006101000a8154816001600160a01b0302191690836001600160a01b03160217905550816001600160a01b0316856001600160a01b03168d6001600160a01b03167faecd9fb95e79c75a3a1de93362c6be5fe6ab65770d8614be583884161cd8228d8e8e6040516200449a9291906200a2ad565b60405180910390a460408051848152602081018590526001600160a01b0387169182916000805160206200b7b4833981519152910160405180910390a360408051670de0b6b3a7640000808252602082015261dead916001600160a01b038816916000805160206200b7b4833981519152910160405180910390a3604051633041949b60e01b815261200590633041949b906200453e908590899060040162009d64565b600060405180830381600087803b1580156200455957600080fd5b505af11580156200456e573d6000803e3d6000fd5b50505050505050505050505050505050565b604080516060810182526000808252602082018190529181019190915281620045ab603f8262007ddb565b620045c95760405163056e881160e01b815260040160405180910390fd5b6001600160a01b03831660009081526041602090815260409182902082516060810184526009909101546001600160401b038082168352600160401b8204811693830193909352600160801b90049091169181019190915291505b50919050565b6001600160a01b03808216600090815260416020908152604080832081516101608101835281548616815260018201548616938101939093526002810154909416908201526003830154606082810191909152600484018054919491608084019190620046979062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620046c59062009d2e565b8015620047165780601f10620046ea5761010080835404028352916020019162004716565b820191906000526020600020905b815481529060010190602001808311620046f857829003601f168201915b5050505050815260200160058201604051806080016040529081600082018054620047419062009d2e565b80601f01602080910402602001604051908101604052809291908181526020018280546200476f9062009d2e565b8015620047c05780601f106200479457610100808354040283529160200191620047c0565b820191906000526020600020905b815481529060010190602001808311620047a257829003601f168201915b50505050508152602001600182018054620047db9062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620048099062009d2e565b80156200485a5780601f106200482e576101008083540402835291602001916200485a565b820191906000526020600020905b8154815290600101906020018083116200483c57829003601f168201915b50505050508152602001600282018054620048759062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620048a39062009d2e565b8015620048f45780601f10620048c857610100808354040283529160200191620048f4565b820191906000526020600020905b815481529060010190602001808311620048d657829003601f168201915b505050505081526020016003820180546200490f9062009d2e565b80601f01602080910402602001604051908101604052809291908181526020018280546200493d9062009d2e565b80156200498e5780601f1062004962576101008083540402835291602001916200498e565b820191906000526020600020905b8154815290600101906020018083116200497057829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b81548152602001906001019080831162004a1a5750505091909252505050608001519392505050565b336110011462004a6b57604051630f22c43960e41b8152611001600482015260240162001133565b6001600160a01b038082166000908152604360205260409020541662004a93603f8262007ddb565b62004ab15760405163056e881160e01b815260040160405180910390fd5b6001600160a01b038181166000908152604160205260408082206002810154603b54925163045bc4d160e41b81526004810193909352909316906345bc4d10906024016020604051808303816000875af115801562004b14573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004b3a919062009ddd565b90506000603d544262004b4e919062009dc7565b905062004b5c838262007e88565b836001600160a01b03167f6e9a2ee7aee95665e3a774a212eb11441b217e3e4656ab9563793094689aabb28284600160405162004b9c9392919062009e0d565b60405180910390a26002830154604051633041949b60e01b815261200591633041949b9162004bda916001600160a01b031690889060040162009d64565b600060405180830381600087803b15801562004bf557600080fd5b505af115801562004c0a573d6000803e3d6000fd5b505050505050505050565b600054610100900460ff161580801562004c365750600054600160ff909116105b8062004c525750303b15801562004c52575060005460ff166001145b62004cb75760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840162001133565b6000805460ff19166001179055801562004cdb576000805461ff0019166101001790555b33411462004cfc5760405163022d8c9560e31b815260040160405180910390fd5b3a1562004d1c576040516383f1b1d360e01b815260040160405180910390fd5b611388603555686c6b935b8bbd400000603655670de0b6b3a7640000603755600960385562093a806039556002603a819055678ac7230489e80000603b55680ad78ebc5ac6200000603c556202a300603d5562069780603e55604a5560408051610220810190915261020080825260609182916200b5b4602083013980602001905181019062004dad91906200a2e9565b915060405180610360016040528061034081526020016200b7d4610340913980602001905181019062004de191906200a38d565b905060005b825181101562004e505760016047600085848151811062004e0b5762004e0b62009eb3565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905562004e488162009f18565b905062004de6565b5060005b815181101562004ec1576001604883838151811062004e775762004e7762009eb3565b602002602001015160405162004e8e91906200a48a565b908152604051908190036020019020805491151560ff1990921691909117905562004eb98162009f18565b905062004e54565b5062004ee17330151da466ec8ab345bef3d6983023e050fb067362008d31565b505080156200174b576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b336120001462004f5457604051630f22c43960e41b8152612000600482015260240162001133565b7faa5ba621c8b3d7d05bb9e51a7506108251d4d5dbe542ca66fc7bb52aacb02b6583838360405162004f89939291906200a4a8565b60405180910390a1505050565b600054630100000090046001600160a01b0316331462004fc9576040516306fbb1e360e01b815260040160405180910390fd5b60005462010000900460ff161562004ff457604051631785c68160e01b815260040160405180910390fd5b6000805462ff00001916620100001781556040517f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e7529190a1565b60006200503d603f8462007ddb565b6200505b5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b0383811660009081526041602052604090819020600201549051636bbf224960e01b815260048101859052911690636bbf2249906024015b602060405180830381865afa158015620050b8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620050de919062009ddd565b90505b92915050565b60005462010000900460ff16156200511257604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620051445760405163b1d02c3d60e01b815260040160405180910390fd5b8162005152603f8262007ddb565b620051705760405163056e881160e01b815260040160405180910390fd5b6037543490811015620051965760405163dc6f0bdd60e01b815260040160405180910390fd5b6001600160a01b0380851660009081526041602090815260408083208151610160810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180543394916080840191620051fe9062009d2e565b80601f01602080910402602001604051908101604052809291908181526020018280546200522c9062009d2e565b80156200527d5780601f1062005251576101008083540402835291602001916200527d565b820191906000526020600020905b8154815290600101906020018083116200525f57829003601f168201915b5050505050815260200160058201604051806080016040529081600082018054620052a89062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620052d69062009d2e565b8015620053275780601f10620052fb5761010080835404028352916020019162005327565b820191906000526020600020905b8154815290600101906020018083116200530957829003601f168201915b50505050508152602001600182018054620053429062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620053709062009d2e565b8015620053c15780601f106200539557610100808354040283529160200191620053c1565b820191906000526020600020905b815481529060010190602001808311620053a357829003601f168201915b50505050508152602001600282018054620053dc9062009d2e565b80601f01602080910402602001604051908101604052809291908181526020018280546200540a9062009d2e565b80156200545b5780601f106200542f576101008083540402835291602001916200545b565b820191906000526020600020905b8154815290600101906020018083116200543d57829003601f168201915b50505050508152602001600382018054620054769062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620054a49062009d2e565b8015620054f55780601f10620054c957610100808354040283529160200191620054f5565b820191906000526020600020905b815481529060010190602001808311620054d757829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b815481526020019060010190808311620055815750505050508152505090508060e001518015620055c45750856001600160a01b0316826001600160a01b031614155b15620055e357604051636468920360e01b815260040160405180910390fd5b60408082015190516317066a5760e21b81526001600160a01b0384811660048301526000921690635c19a95c90869060240160206040518083038185885af115801562005634573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906200565b919062009ddd565b9050826001600160a01b0316876001600160a01b03166000805160206200b7b483398151915283876040516200569b929190918252602082015260400190565b60405180910390a36040808301519051633041949b60e01b815261200591633041949b91620056d09190879060040162009d64565b600060405180830381600087803b158015620056eb57600080fd5b505af115801562005700573d6000803e3d6000fd5b50505050851562001744576040516372f6ad8f60e11b81526120059063e5ed5b1e90620057349086908b9060040162009d64565b600060405180830381600087803b1580156200574f57600080fd5b505af115801562005764573d6000803e3d6000fd5b5050505050505050505050565b6200579d6040518060800160405280606081526020016060815260200160608152602001606081525090565b81620057ab603f8262007ddb565b620057c95760405163056e881160e01b815260040160405180910390fd5b6001600160a01b03831660009081526041602052604090819020815160808101909252600501805482908290620058009062009d2e565b80601f01602080910402602001604051908101604052809291908181526020018280546200582e9062009d2e565b80156200587f5780601f1062005853576101008083540402835291602001916200587f565b820191906000526020600020905b8154815290600101906020018083116200586157829003601f168201915b505050505081526020016001820180546200589a9062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620058c89062009d2e565b8015620059195780601f10620058ed5761010080835404028352916020019162005919565b820191906000526020600020905b815481529060010190602001808311620058fb57829003601f168201915b50505050508152602001600282018054620059349062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620059629062009d2e565b8015620059b35780601f106200598757610100808354040283529160200191620059b3565b820191906000526020600020905b8154815290600101906020018083116200599557829003601f168201915b50505050508152602001600382018054620059ce9062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620059fc9062009d2e565b801562005a4d5780601f1062005a215761010080835404028352916020019162005a4d565b820191906000526020600020905b81548152906001019060200180831162005a2f57829003601f168201915b505050505081525050915050919050565b60005462010000900460ff161562005a8957604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161562005abb5760405163b1d02c3d60e01b815260040160405180910390fd5b62005ac7828262008dca565b5050565b336110071462005af357604051630f22c43960e41b8152611007600482015260240162001133565b62005b606040518060400160405280601081526020016f1d1c985b9cd9995c91d85cd31a5b5a5d60821b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed69050565b1562005c1b576020811462005b925783838383604051630a5a604160e01b81526004016200113394939291906200a4c7565b604080516020601f840181900481028201810190925282815260009162005bd591858580838501838280828437600092019190915250929392505062008f339050565b90506108fc81108062005be9575061271081115b1562005c125784848484604051630a5a604160e01b81526004016200113394939291906200a4c7565b60355562006925565b62005c8c6040518060400160405280601481526020017336b4b729b2b6332232b632b3b0ba34b7b721272160611b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed69050565b1562005d56576020811462005cbe5783838383604051630a5a604160e01b81526004016200113394939291906200a4c7565b604080516020601f840181900481028201810190925282815260009162005d0191858580838501838280828437600092019190915250929392505062008f339050565b9050683635c9adc5dea0000081108062005d24575069152d02c7e14af680000081115b1562005d4d5784848484604051630a5a604160e01b81526004016200113394939291906200a4c7565b60365562006925565b62005dc9604051806040016040528060168152602001756d696e44656c65676174696f6e424e424368616e676560501b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed69050565b1562005e90576020811462005dfb5783838383604051630a5a604160e01b81526004016200113394939291906200a4c7565b604080516020601f840181900481028201810190925282815260009162005e3e91858580838501838280828437600092019190915250929392505062008f339050565b905067016345785d8a000081108062005e5e5750678ac7230489e8000081115b1562005e875784848484604051630a5a604160e01b81526004016200113394939291906200a4c7565b60375562006925565b62005f01604051806040016040528060148152602001736d6178456c656374656456616c696461746f727360601b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed69050565b1562005fb9576020811462005f335783838383604051630a5a604160e01b81526004016200113394939291906200a4c7565b604080516020601f840181900481028201810190925282815260009162005f7691858580838501838280828437600092019190915250929392505062008f339050565b905080158062005f8757506101f481115b1562005fb05784848484604051630a5a604160e01b81526004016200113394939291906200a4c7565b60385562006925565b620060226040518060400160405280600c81526020016b1d5b989bdb9914195c9a5bd960a21b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed69050565b15620060df5760208114620060545783838383604051630a5a604160e01b81526004016200113394939291906200a4c7565b604080516020601f84018190048102820181019092528281526000916200609791858580838501838280828437600092019190915250929392505062008f339050565b90506203f480811080620060ad575062278d0081115b15620060d65784848484604051630a5a604160e01b81526004016200113394939291906200a4c7565b60395562006925565b6200614d60405180604001604052806011815260200170726564656c65676174654665655261746560781b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed69050565b15620061fa57602081146200617f5783838383604051630a5a604160e01b81526004016200113394939291906200a4c7565b604080516020601f8401819004810282018101909252828152600091620061c291858580838501838280828437600092019190915250929392505062008f339050565b90506064811115620061f15784848484604051630a5a604160e01b81526004016200113394939291906200a4c7565b603a5562006925565b6200626a60405180604001604052806013815260200172191bdddb9d1a5b5954db185cda105b5bdd5b9d606a1b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed69050565b156200632b57602081146200629c5783838383604051630a5a604160e01b81526004016200113394939291906200a4c7565b604080516020601f8401819004810282018101909252828152600091620062df91858580838501838280828437600092019190915250929392505062008f339050565b9050674563918244f40000811080620062f95750603c5481115b15620063225784848484604051630a5a604160e01b81526004016200113394939291906200a4c7565b603b5562006925565b620063996040518060400160405280601181526020017019995b1bdb9e54db185cda105b5bdd5b9d607a1b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed69050565b156200645c5760208114620063cb5783838383604051630a5a604160e01b81526004016200113394939291906200a4c7565b604080516020601f84018190048102820181019092528281526000916200640e91858580838501838280828437600092019190915250929392505062008f339050565b905068056bc75e2d631000008110806200642a5750603b548111155b15620064535784848484604051630a5a604160e01b81526004016200113394939291906200a4c7565b603c5562006925565b620064c96040518060400160405280601081526020016f646f776e74696d654a61696c54696d6560801b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed69050565b15620065865760208114620064fb5783838383604051630a5a604160e01b81526004016200113394939291906200a4c7565b604080516020601f84018190048102820181019092528281526000916200653e91858580838501838280828437600092019190915250929392505062008f339050565b90506202a300811080620065545750603e548110155b156200657d5784848484604051630a5a604160e01b81526004016200113394939291906200a4c7565b603d5562006925565b620065f16040518060400160405280600e81526020016d66656c6f6e794a61696c54696d6560901b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed69050565b15620066ae5760208114620066235783838383604051630a5a604160e01b81526004016200113394939291906200a4c7565b604080516020601f84018190048102820181019092528281526000916200666691858580838501838280828437600092019190915250929392505062008f339050565b9050620d2f008110806200667c5750603d548111155b15620066a55784848484604051630a5a604160e01b81526004016200113394939291906200a4c7565b603e5562006925565b620067286040518060400160405280601c81526020017f6d617846656c6f6e794265747765656e42726561746865426c6f636b0000000081525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed69050565b15620067d457602081146200675a5783838383604051630a5a604160e01b81526004016200113394939291906200a4c7565b604080516020601f84018190048102820181019092528281526000916200679d91858580838501838280828437600092019190915250929392505062008f339050565b905080600003620067cb5784848484604051630a5a604160e01b81526004016200113394939291906200a4c7565b604a5562006925565b620068426040518060400160405280601181526020017039ba30b5b2a43ab1283937ba32b1ba37b960791b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed69050565b15620069025760148114620068745783838383604051630a5a604160e01b81526004016200113394939291906200a4c7565b6000620068bc601484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008f339050565b90506001600160a01b038116620068f05784848484604051630a5a604160e01b81526004016200113394939291906200a4c7565b620068fb8162008f38565b5062006925565b838383836040516325ee20d560e21b81526004016200113394939291906200a4c7565b7ff1ce9b2cbf50eeb05769a29e2543fd350cab46894a7dd9978a12d534bb20e633848484846040516200695c94939291906200a4c7565b60405180910390a150505050565b60005462010000900460ff16156200699557604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620069c75760405163b1d02c3d60e01b815260040160405180910390fd5b816000816001600160401b03811115620069e557620069e5620095b1565b60405190808252806020026020018201604052801562006a0f578160200160208202803683370190505b5090506000805b8381101562006b0d5762006a5887878381811062006a385762006a3862009eb3565b905060200201602081019062006a4f919062009440565b603f9062007ddb565b62006a765760405163056e881160e01b815260040160405180910390fd5b6041600088888481811062006a8f5762006a8f62009eb3565b905060200201602081019062006aa6919062009440565b6001600160a01b039081168252602082019290925260400160002060020154845191169250829084908390811062006ae25762006ae262009eb3565b6001600160a01b039092166020928302919091019091015262006b058162009f18565b905062006a16565b50604051634484077560e01b8152612005906344840775906200288e908590889060040162009ec9565b606080600062006b48603f6200892e565b90508085101562006d0c57831562006b61578362006b63565b805b935060008462006b74878462009e83565b1162006b8c5762006b86868362009e83565b62006b8e565b845b9050806001600160401b0381111562006bab5762006bab620095b1565b60405190808252806020026020018201604052801562006bd5578160200160208202803683370190505b509350806001600160401b0381111562006bf35762006bf3620095b1565b60405190808252806020026020018201604052801562006c1d578160200160208202803683370190505b50925060005b8181101562006d095762006c3c62003a00828962009dc7565b85828151811062006c515762006c5162009eb3565b60200260200101906001600160a01b031690816001600160a01b0316815250506041600086838151811062006c8a5762006c8a62009eb3565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060020160009054906101000a90046001600160a01b031684828151811062006cde5762006cde62009eb3565b6001600160a01b039092166020928302919091019091015262006d018162009f18565b905062006c23565b50505b9250925092565b336110011462006d3b57604051630f22c43960e41b8152611001600482015260240162001133565b60005462010000900460ff161562006d6657604051631785c68160e01b815260040160405180910390fd5b6001600160a01b038082166000908152604360205260409020541662006d8e603f8262007ddb565b62006dac5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b03811660009081526041602052604081209062006dd4620151804262009da4565b604a546000828152604b60205260409020549192501162006e085760405163bd52fcdb60e01b815260040160405180910390fd5b6000818152604b6020526040812080546001929062006e2990849062009dc7565b90915550506001600160a01b0384166000908152604460205260409020541580159062006e7e57506001600160a01b038416600090815260446020526040902054429062006e7c90620151809062009dc7565b105b1562006e9d576040516330abb81d60e21b815260040160405180910390fd5b60008062006ead85600062007dfe565b915091508162006ed057604051631b919bb160e11b815260040160405180910390fd5b6002840154603c5460405163045bc4d160e41b815260048101919091526000916001600160a01b0316906345bc4d10906024016020604051808303816000875af115801562006f23573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062006f49919062009ddd565b905062006f57858362007e88565b856001600160a01b03167f6e9a2ee7aee95665e3a774a212eb11441b217e3e4656ab9563793094689aabb28383600060405162006f979392919062009e0d565b60405180910390a26002850154604051633041949b60e01b815261200591633041949b9162005734916001600160a01b0316908a9060040162009d64565b6001600160a01b0380821660009081526041602090815260408083208151610160810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180549293849384938493909291608084019190620070469062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620070749062009d2e565b8015620070c55780601f106200709957610100808354040283529160200191620070c5565b820191906000526020600020905b815481529060010190602001808311620070a757829003601f168201915b5050505050815260200160058201604051806080016040529081600082018054620070f09062009d2e565b80601f01602080910402602001604051908101604052809291908181526020018280546200711e9062009d2e565b80156200716f5780601f1062007143576101008083540402835291602001916200716f565b820191906000526020600020905b8154815290600101906020018083116200715157829003601f168201915b505050505081526020016001820180546200718a9062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620071b89062009d2e565b8015620072095780601f10620071dd5761010080835404028352916020019162007209565b820191906000526020600020905b815481529060010190602001808311620071eb57829003601f168201915b50505050508152602001600282018054620072249062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620072529062009d2e565b8015620072a35780601f106200727757610100808354040283529160200191620072a3565b820191906000526020600020905b8154815290600101906020018083116200728557829003601f168201915b50505050508152602001600382018054620072be9062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620072ec9062009d2e565b80156200733d5780601f1062007311576101008083540402835291602001916200733d565b820191906000526020600020905b8154815290600101906020018083116200731f57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b815481526020019060010190808311620073c95750505091909252505050606081015160e0820151610100909201519097919650945092505050565b60005462010000900460ff16156200743057604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620074625760405163b1d02c3d60e01b815260040160405180910390fd5b3362007470603f8262007ddb565b6200748e5760405163056e881160e01b815260040160405180910390fd5b336000818152604160205260409020600c8101544290620074b490620151809062009dc7565b1115620074d457604051631f92cdbd60e11b815260040160405180910390fd5b600581018054620074e59062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620075139062009d2e565b8015620075645780601f10620075385761010080835404028352916020019162007564565b820191906000526020600020905b8154815290600101906020018083116200754657829003601f168201915b50505082875250859160058401915081906200758190826200a4f2565b50602082015160018201906200759890826200a4f2565b5060408201516002820190620075af90826200a4f2565b5060608201516003820190620075c690826200a4f2565b505042600c830155506040516001600160a01b038316907f85d6366b336ade7f106987ec7a8eac1e8799e508aeab045a39d2f63e0dc969d990600090a250505050565b60005462010000900460ff16156200763457604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620076665760405163b1d02c3d60e01b815260040160405180910390fd5b82811462007687576040516341abc80160e01b815260040160405180910390fd5b60005b83811015620076f857620076e5858583818110620076ac57620076ac62009eb3565b9050602002016020810190620076c3919062009440565b848484818110620076d857620076d862009eb3565b9050602002013562008dca565b620076f08162009f18565b90506200768a565b5050505050565b6001600160a01b03808216600090815260416020908152604080832081516101608101835281548616815260018201548616938101939093526002810154909416908201526003830154606082015260048301805492938493909160808401916200776a9062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620077989062009d2e565b8015620077e95780601f10620077bd57610100808354040283529160200191620077e9565b820191906000526020600020905b815481529060010190602001808311620077cb57829003601f168201915b5050505050815260200160058201604051806080016040529081600082018054620078149062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620078429062009d2e565b8015620078935780601f10620078675761010080835404028352916020019162007893565b820191906000526020600020905b8154815290600101906020018083116200787557829003601f168201915b50505050508152602001600182018054620078ae9062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620078dc9062009d2e565b80156200792d5780601f1062007901576101008083540402835291602001916200792d565b820191906000526020600020905b8154815290600101906020018083116200790f57829003601f168201915b50505050508152602001600282018054620079489062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620079769062009d2e565b8015620079c75780601f106200799b57610100808354040283529160200191620079c7565b820191906000526020600020905b815481529060010190602001808311620079a957829003601f168201915b50505050508152602001600382018054620079e29062009d2e565b80601f016020809104026020016040519081016040528092919081815260200182805462007a109062009d2e565b801562007a615780601f1062007a355761010080835404028352916020019162007a61565b820191906000526020600020905b81548152906001019060200180831162007a4357829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b81548152602001906001019080831162007aed5750505091909252505050604001519392505050565b600062007b25603f8462007ddb565b62007b435760405163056e881160e01b815260040160405180910390fd5b6001600160a01b038381166000908152604160205260409081902060020154905163aa1966cd60e01b81526004810185905291169063aa1966cd906024016200509a565b60005462010000900460ff161562007bb257604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161562007be45760405163b1d02c3d60e01b815260040160405180910390fd5b3362007bf2603f8262007ddb565b62007c105760405163056e881160e01b815260040160405180910390fd5b3362007c20818787878762008ae9565b62007c3e57604051631647e3cb60e11b815260040160405180910390fd5b60006001600160a01b03166045878760405162007c5d92919062009d7e565b908152604051908190036020019020546001600160a01b031614158062007ca757506048868660405162007c9392919062009d7e565b9081526040519081900360200190205460ff165b1562007cc6576040516311fdb94760e01b815260040160405180910390fd5b6001600160a01b0381166000908152604160205260409020600c810154429062007cf590620151809062009dc7565b111562007d1557604051631f92cdbd60e11b815260040160405180910390fd5b4260468260040160405162007d2b91906200a5ba565b908152604051908190036020019020556004810162007d4c87898362009fdc565b5042600c820155604051829060459062007d6a908a908a9062009d7e565b90815260405190819003602001812080546001600160a01b039384166001600160a01b0319909116179055908316907f783156582145bd0ff7924fae6953ba054cf1233eb60739a200ddb10de068ff0d9062007dca908a908a906200a2ad565b60405180910390a250505050505050565b6001600160a01b03811660009081526001830160205260408120541515620050de565b6000806000848460405160200162007e189291906200a638565b60408051601f1981840301815291815281516020928301206000818152604c9093529120549091504281111562007e585760008093509350505062007e81565b603e5462007e67904262009dc7565b6000928352604c6020526040909220829055506001925090505b9250929050565b8154604051631507fdb760e11b81526001600160a01b03909116600482015261100090632a0ffb6e90602401600060405180830381600087803b15801562007ecf57600080fd5b505af115801562007ee4573d6000803e3d6000fd5b505050506000600162007ef8603f6200892e565b62007f04919062009e83565b604954108015915062007fc25760405163d31f968d60e01b81526110006004820152600860248201526120009063d31f968d90604401602060405180830381865afa15801562007f58573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062007f7e919062009e3c565b62007fc25760018301546040516001600160a01b03909116907f2afdc18061ac21cff7d9f11527ab9c8dec6fabd4edf6f894ed634bebd6a20d4590600090a2505050565b82600b015482111562007fd757600b83018290555b600a83015460ff166200804a57600a8301805460ff19166001908117909155604980546000906200800a90849062009dc7565b909155505060018301546040516001600160a01b03909116907f4905ac32602da3fb8b4b7b00c285e5fc4c6c2308cc908b4a1e4e9625a29c90a390600090a25b505050565b60408051608080820183526000808352602080840182905283850182905260608085018390528551938401865282845283820183905283860183905283018290528451808601865282815281018290528451808601909552855185528581019085015291928290620080c19062008fa4565b90506000805b620080d28362009017565b15620081a557806000036200810757620080f6620080f0846200903d565b620090a1565b6001600160a01b0316845262008192565b8060010362008133576200811f620080f0846200903d565b6001600160a01b0316602085015262008192565b806002036200815f576200814b620080f0846200903d565b6001600160a01b0316604085015262008192565b806003036200818c576200817d62008177846200903d565b620090b9565b60608501526001915062008192565b620081a5565b6200819d8162009f18565b9050620080c7565b5091959194509092505050565b6020808201516001600160a01b031660009081526001909152604081205460ff1680620081ea575060208201516001600160a01b0316155b15620081f857506004919050565b81516200820890603f9062007ddb565b6200821557506002919050565b81516001600160a01b03908116600090815260416020908152604080832081516101608101835281548616815260018201548616938101939093526002810154909416908201526003830154606082015260048301805492939192608084019190620082819062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620082af9062009d2e565b8015620083005780601f10620082d45761010080835404028352916020019162008300565b820191906000526020600020905b815481529060010190602001808311620082e257829003601f168201915b50505050508152602001600582016040518060800160405290816000820180546200832b9062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620083599062009d2e565b8015620083aa5780601f106200837e57610100808354040283529160200191620083aa565b820191906000526020600020905b8154815290600101906020018083116200838c57829003601f168201915b50505050508152602001600182018054620083c59062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620083f39062009d2e565b8015620084445780601f10620084185761010080835404028352916020019162008444565b820191906000526020600020905b8154815290600101906020018083116200842657829003601f168201915b505050505081526020016002820180546200845f9062009d2e565b80601f01602080910402602001604051908101604052809291908181526020018280546200848d9062009d2e565b8015620084de5780601f10620084b257610100808354040283529160200191620084de565b820191906000526020600020905b815481529060010190602001808311620084c057829003601f168201915b50505050508152602001600382018054620084f99062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620085279062009d2e565b8015620085785780601f106200854c5761010080835404028352916020019162008578565b820191906000526020600020905b8154815290600101906020018083116200855a57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b815481526020019060010190808311620086045750505050508152505090508060e0015180156200864f575082600001516001600160a01b031683602001516001600160a01b031614155b156200865e5750600392915050565b6040808201516060850151602086015192516317066a5760e21b81526001600160a01b03938416600482015260009390921691635c19a95c919060240160206040518083038185885af1158015620086ba573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190620086e1919062009ddd565b905083602001516001600160a01b031684600001516001600160a01b03166000805160206200b7b48339815191528387606001516040516200872d929190918252602082015260400190565b60405180910390a383602001516001600160a01b031684600001516001600160a01b03167f607b17598da6bdca05650a2fc08bd2bc8e38c3236806a0fa8e0daabc1d6cb1d883876060015160405162008790929190918252602082015260400190565b60405180910390a360408083015160208601519151633041949b60e01b815261200592633041949b92620087ca9290919060040162009d64565b600060405180830381600087803b158015620087e557600080fd5b505af1158015620087fa573d6000803e3d6000fd5b506000979650505050505050565b6001600160a01b0381166000908152604160205260409020600a81015460ff161562008832575050565b6036546002820154604051630913db4760e01b81526001600160a01b03858116600483015290911690630913db4790602401602060405180830381865afa15801562008882573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620088a8919062009ddd565b101562005ac757620088ca81603d5442620088c4919062009dc7565b62007e88565b80546040516335409f7f60e01b81526001600160a01b039091166004820152611000906335409f7f90602401600060405180830381600087803b1580156200891157600080fd5b505af115801562008926573d6000803e3d6000fd5b505050505050565b6000620050e1825490565b6000620050de838362009191565b6000808290506003815110806200895f575060098151115b156200896e5750600092915050565b60418160008151811062008986576200898662009eb3565b016020015160f81c1080620089b85750605a81600081518110620089ae57620089ae62009eb3565b016020015160f81c115b15620089c75750600092915050565b60015b815181101562008adf576030828281518110620089eb57620089eb62009eb3565b016020015160f81c108062008a1c5750603982828151811062008a125762008a1262009eb3565b016020015160f81c115b801562008a6c5750604182828151811062008a3b5762008a3b62009eb3565b016020015160f81c108062008a6c5750605a82828151811062008a625762008a6262009eb3565b016020015160f81c115b801562008abc5750606182828151811062008a8b5762008a8b62009eb3565b016020015160f81c108062008abc5750607a82828151811062008ab25762008ab262009eb3565b016020015160f81c115b1562008acc575060009392505050565b62008ad78162009f18565b9050620089ca565b5060019392505050565b600060308414158062008afd575060608214155b1562008b0c5750600062008c10565b60008686864660405160200162008b2794939291906200a676565b60408051808303601f1901815282825280516020918201208184528383019092529092506000919060208201818036833701905050905081602082015260008186868a8a60405160200162008b819594939291906200a6a3565b60408051808303601f190181526001808452838301909252925060009190602082018180368337019050509050815160016020830182602086016066600019fa62008bcb57600080fd5b5060008160008151811062008be45762008be462009eb3565b016020015160f81c90506001811462008c065760009550505050505062008c10565b6001955050505050505b95945050505050565b60008061200361dead60405162008c30906200941c565b6001600160a01b03928316815291166020820152606060408201819052600090820152608001604051809103906000f08015801562008c73573d6000803e3d6000fd5b509050806001600160a01b031663f399e22e3486866040518463ffffffff1660e01b815260040162008ca79291906200a6db565b6000604051808303818588803b15801562008cc157600080fd5b505af115801562008cd6573d6000803e3d6000fd5b50506040516001600160a01b038086169450881692507fd481492e4e93bb36b4c12a5af93f03be3bf04b454dfbc35dd2663fa26f44d5b09150600090a39392505050565b6000620050de836001600160a01b038416620091be565b600054610100900460ff1662008d9e5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840162001133565b600080546001600160a01b039092166301000000026301000000600160b81b0319909216919091179055565b8162008dd8603f8262007ddb565b62008df65760405163056e881160e01b815260040160405180910390fd5b6001600160a01b03838116600090815260416020526040808220600201549051635569f64b60e11b8152336004820152602481018690529192169063aad3ec96906044016020604051808303816000875af115801562008e5a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062008e80919062009ddd565b9050336001600160a01b0316846001600160a01b03167ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd39926838360405162008ec891815260200190565b60405180910390a350505050565b60008160405160200162008eeb91906200a48a565b604051602081830303815290604052805190602001208360405160200162008f1491906200a48a565b6040516020818303038152906040528051906020012014905092915050565b015190565b600080546040516001600160a01b0380851693630100000090930416917f44fc1b38a4abaa91ebd1b628a5b259a698f86238c8217d68f516e87769c60c0b91a3600080546001600160a01b039092166301000000026301000000600160b81b0319909216919091179055565b604080516080810182526000918101828152606082018390528152602081019190915262008fd28262009210565b62008fdc57600080fd5b600062008fed836020015162009243565b836020015162008ffe919062009dc7565b6040805180820190915293845260208401525090919050565b805180516020820151600092916200902f9162009dc7565b836020015110915050919050565b60408051808201909152600080825260208201526200905c8262009017565b6200906657600080fd5b602082015160006200907882620092d2565b905062009086818362009dc7565b60209485015260408051808201909152908152928301525090565b8051600090601514620090b357600080fd5b620050e1825b805160009015801590620090cf57508151602110155b620090d957600080fd5b6000620090ea836020015162009243565b90508083600001511015620091425760405162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015260640162001133565b82516000906200915490839062009e83565b90506000808386602001516200916b919062009dc7565b90508051915060208310156200918857826020036101000a820491505b50949350505050565b6000826000018281548110620091ab57620091ab62009eb3565b9060005260206000200154905092915050565b60008181526001830160205260408120546200920757508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155620050e1565b506000620050e1565b805160009081036200922457506000919050565b6020820151805160001a9060c082101562008adf575060009392505050565b8051600090811a60808110156200925d5750600092915050565b60b88110806200927a575060c081108015906200927a575060f881105b15620092895750600192915050565b60c0811015620092c457620092a1600160b86200a701565b620092b09060ff168262009e83565b620092bd90600162009dc7565b9392505050565b620092a1600160f86200a701565b80516000908190811a6080811015620092ef576001915062009415565b60b88110156200931b576200930660808262009e83565b6200931390600162009dc7565b915062009415565b60c08110156200939457600060b78203600186019550806020036101000a8651049150600181018201935050808310156200938d5760405162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015260640162001133565b5062009415565b60f8811015620093ab576200930660c08262009e83565b600060f78203600186019550806020036101000a865104915060018101820193505080831015620094135760405162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015260640162001133565b505b5092915050565b610e96806200a71e83390190565b6001600160a01b03811681146200174b57600080fd5b6000602082840312156200945357600080fd5b8135620092bd816200942a565b60008083601f8401126200947357600080fd5b5081356001600160401b038111156200948b57600080fd5b60208301915083602082850101111562007e8157600080fd5b60008060208385031215620094b857600080fd5b82356001600160401b03811115620094cf57600080fd5b620094dd8582860162009460565b90969095509350505050565b600080600060408486031215620094ff57600080fd5b833560ff811681146200951157600080fd5b925060208401356001600160401b038111156200952d57600080fd5b6200953b8682870162009460565b9497909650939450505050565b60005b83811015620095655781810151838201526020016200954b565b50506000910152565b600081518084526200958881602086016020860162009548565b601f01601f19169290920160200192915050565b602081526000620050de60208301846200956e565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b0381118282101715620095ec57620095ec620095b1565b60405290565b604051601f8201601f191681016001600160401b03811182821017156200961d576200961d620095b1565b604052919050565b60006001600160401b03821115620096415762009641620095b1565b50601f01601f191660200190565b600062009666620096608462009625565b620095f2565b90508281528383830111156200967b57600080fd5b828260208301376000602084830101529392505050565b600060208284031215620096a557600080fd5b81356001600160401b03811115620096bc57600080fd5b8201601f81018413620096ce57600080fd5b620096df848235602084016200964f565b949350505050565b60008060408385031215620096fb57600080fd5b823562009708816200942a565b946020939093013593505050565b80151581146200174b57600080fd5b600080600080608085870312156200973c57600080fd5b843562009749816200942a565b935060208501356200975b816200942a565b9250604085013591506060850135620097748162009716565b939692955090935050565b6001600160401b03811681146200174b57600080fd5b600060208284031215620097a857600080fd5b8135620092bd816200977f565b60008060408385031215620097c957600080fd5b50508035926020909101359150565b600081518084526020808501945080840160005b83811015620098135781516001600160a01b031687529582019590820190600101620097ec565b509495945050505050565b608081526000620098336080830187620097d8565b82810360208481019190915286518083528782019282019060005b818110156200986c578451835293830193918301916001016200984e565b5050848103604086015286518082528282019350600581901b8201830183890160005b83811015620098c157601f19858403018752620098ae8383516200956e565b968601969250908501906001016200988f565b5050809550505050505082606083015295945050505050565b600080600080600080600087890360e0811215620098f757600080fd5b883562009904816200942a565b975060208901356001600160401b03808211156200992157600080fd5b6200992f8c838d0162009460565b909950975060408b01359150808211156200994957600080fd5b620099578c838d0162009460565b90975095508591506060605f19840112156200997257600080fd5b60608b01945060c08b01359250808311156200998d57600080fd5b505088016080818b031215620099a257600080fd5b8091505092959891949750929550565b60008060408385031215620099c657600080fd5b8235620099d3816200942a565b91506020830135620099e58162009716565b809150509250929050565b60208152600082516080602084015262009a0e60a08401826200956e565b90506020840151601f198085840301604086015262009a2e83836200956e565b9250604086015191508085840301606086015262009a4d83836200956e565b925060608601519150808584030160808601525062008c1082826200956e565b6000806000806040858703121562009a8457600080fd5b84356001600160401b038082111562009a9c57600080fd5b62009aaa8883890162009460565b9096509450602087013591508082111562009ac457600080fd5b5062009ad38782880162009460565b95989497509550505050565b60008083601f84011262009af257600080fd5b5081356001600160401b0381111562009b0a57600080fd5b6020830191508360208260051b850101111562007e8157600080fd5b60008060006040848603121562009b3c57600080fd5b83356001600160401b0381111562009b5357600080fd5b62009b618682870162009adf565b909450925050602084013562009b77816200942a565b809150509250925092565b60608152600062009b976060830186620097d8565b828103602084015262009bab8186620097d8565b915050826040830152949350505050565b600082601f83011262009bce57600080fd5b620050de838335602085016200964f565b60006020828403121562009bf257600080fd5b81356001600160401b038082111562009c0a57600080fd5b908301906080828603121562009c1f57600080fd5b62009c29620095c7565b82358281111562009c3957600080fd5b62009c478782860162009bbc565b82525060208301358281111562009c5d57600080fd5b62009c6b8782860162009bbc565b60208301525060408301358281111562009c8457600080fd5b62009c928782860162009bbc565b60408301525060608301358281111562009cab57600080fd5b62009cb98782860162009bbc565b60608301525095945050505050565b6000806000806040858703121562009cdf57600080fd5b84356001600160401b038082111562009cf757600080fd5b62009d058883890162009adf565b9096509450602087013591508082111562009d1f57600080fd5b5062009ad38782880162009adf565b600181811c9082168062009d4357607f821691505b6020821081036200462457634e487b7160e01b600052602260045260246000fd5b6001600160a01b0392831681529116602082015260400190565b8183823760009101908152919050565b634e487b7160e01b600052601160045260246000fd5b60008262009dc257634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115620050e157620050e162009d8e565b60006020828403121562009df057600080fd5b5051919050565b634e487b7160e01b600052602160045260246000fd5b83815260208101839052606081016003831062009e2e5762009e2e62009df7565b826040830152949350505050565b60006020828403121562009e4f57600080fd5b8151620092bd8162009716565b828152604081016005831062009e765762009e7662009df7565b8260208301529392505050565b81810381811115620050e157620050e162009d8e565b8082028115828204841417620050e157620050e162009d8e565b634e487b7160e01b600052603260045260246000fd5b60408152600062009ede6040830185620097d8565b905060018060a01b03831660208301529392505050565b6001600160401b0382811682821603908082111562009415576200941562009d8e565b60006001820162009f2d5762009f2d62009d8e565b5060010190565b6000808335601e1984360301811262009f4c57600080fd5b8301803591506001600160401b0382111562009f6757600080fd5b60200191503681900382131562007e8157600080fd5b601f8211156200804a57600081815260208120601f850160051c8101602086101562009fa65750805b601f850160051c820191505b81811015620089265782815560010162009fb2565b600019600383901b1c191660019190911b1790565b6001600160401b0383111562009ff65762009ff6620095b1565b6200a00e836200a007835462009d2e565b8362009f7d565b6000601f8411600181146200a04157600085156200a02c5750838201355b6200a038868262009fc7565b845550620076f8565b600083815260209020601f19861690835b828110156200a07457868501358255602094850194600190920191016200a052565b50868210156200a0925760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b6200a0b0828362009f34565b6001600160401b038111156200a0ca576200a0ca620095b1565b6200a0e2816200a0db855462009d2e565b8562009f7d565b6000601f8211600181146200a11557600083156200a1005750838201355b6200a10c848262009fc7565b8655506200a172565b600085815260209020601f19841690835b828110156200a14857868501358255602094850194600190920191016200a126565b50848210156200a1665760001960f88660031b161c19848701351681555b505060018360011b0185555b505050506200a185602083018362009f34565b6200a19581836001860162009fdc565b50506200a1a6604083018362009f34565b6200a1b681836002860162009fdc565b50506200a1c7606083018362009f34565b6200a1d781836003860162009fdc565b50505050565b81356200a1ea816200977f565b6001600160401b03811690508154816001600160401b0319821617835560208401356200a217816200977f565b6fffffffffffffffff0000000000000000604091821b166fffffffffffffffffffffffffffffffff198316841781178555908501356200a257816200977f565b6001600160c01b0319929092169092179190911760809190911b67ffffffffffffffff60801b1617905550565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b602081526000620096df6020830184866200a284565b60006001600160401b038211156200a2df576200a2df620095b1565b5060051b60200190565b600060208083850312156200a2fd57600080fd5b82516001600160401b038111156200a31457600080fd5b8301601f810185136200a32657600080fd5b80516200a33762009660826200a2c3565b81815260059190911b820183019083810190878311156200a35757600080fd5b928401925b828410156200a3825783516200a372816200942a565b825292840192908401906200a35c565b979650505050505050565b600060208083850312156200a3a157600080fd5b82516001600160401b03808211156200a3b957600080fd5b818501915085601f8301126200a3ce57600080fd5b81516200a3df62009660826200a2c3565b81815260059190911b830184019084810190888311156200a3ff57600080fd5b8585015b838110156200a47d578051858111156200a41d5760008081fd5b8601603f81018b136200a4305760008081fd5b8781015160406200a445620096608362009625565b8281528d828486010111156200a45b5760008081fd5b6200a46c838c830184870162009548565b86525050509186019186016200a403565b5098975050505050505050565b600082516200a49e81846020870162009548565b9190910192915050565b60ff8416815260406020820152600062008c106040830184866200a284565b6040815260006200a4dd6040830186886200a284565b82810360208401526200a3828185876200a284565b81516001600160401b038111156200a50e576200a50e620095b1565b6200a526816200a51f845462009d2e565b8462009f7d565b602080601f8311600181146200a55a57600084156200a5455750858301515b6200a551858262009fc7565b86555062008926565b600085815260208120601f198616915b828110156200a58b578886015182559484019460019091019084016200a56a565b50858210156200a5aa5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60008083546200a5ca8162009d2e565b600182811680156200a5e557600181146200a5fb576200a62c565b60ff19841687528215158302870194506200a62c565b8760005260208060002060005b858110156200a6235781548a8201529084019082016200a608565b50505082870194505b50929695505050505050565b6bffffffffffffffffffffffff198360601b1681526000600383106200a662576200a66262009df7565b5060f89190911b6014820152601501919050565b6bffffffffffffffffffffffff198560601b16815282846014830137601492019182015260340192915050565b600086516200a6b7818460208b0162009548565b82018587823760009086019081528385823760009301928352509095945050505050565b6001600160a01b0383168152604060208201819052600090620096df908301846200956e565b60ff8281168282160390811115620050e157620050e162009d8e56fe608060405260405162000e9638038062000e96833981016040819052620000269162000497565b828162000036828260006200004d565b50620000449050826200008a565b505050620005ca565b6200005883620000e5565b600082511180620000665750805b1562000085576200008383836200012760201b620001691760201c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000b562000156565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000e2816200018f565b50565b620000f08162000244565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200014f838360405180606001604052806027815260200162000e6f60279139620002f8565b9392505050565b60006200018060008051602062000e4f83398151915260001b6200037760201b620001951760201c565b546001600160a01b0316919050565b6001600160a01b038116620001fa5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b806200022360008051602062000e4f83398151915260001b6200037760201b620001951760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b6200025a816200037a60201b620001981760201c565b620002be5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001f1565b80620002237f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6200037760201b620001951760201c565b6060600080856001600160a01b03168560405162000317919062000577565b600060405180830381855af49150503d806000811462000354576040519150601f19603f3d011682016040523d82523d6000602084013e62000359565b606091505b5090925090506200036d8683838762000389565b9695505050505050565b90565b6001600160a01b03163b151590565b60608315620003fd578251600003620003f5576001600160a01b0385163b620003f55760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401620001f1565b508162000409565b62000409838362000411565b949350505050565b815115620004225781518083602001fd5b8060405162461bcd60e51b8152600401620001f1919062000595565b80516001600160a01b03811681146200045657600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200048e57818101518382015260200162000474565b50506000910152565b600080600060608486031215620004ad57600080fd5b620004b8846200043e565b9250620004c8602085016200043e565b60408501519092506001600160401b0380821115620004e657600080fd5b818601915086601f830112620004fb57600080fd5b8151818111156200051057620005106200045b565b604051601f8201601f19908116603f011681019083821181831017156200053b576200053b6200045b565b816040528281528960208487010111156200055557600080fd5b6200056883602083016020880162000471565b80955050505050509250925092565b600082516200058b81846020870162000471565b9190910192915050565b6020815260008251806020840152620005b681604085016020870162000471565b601f01601f19169190910160400192915050565b61087580620005da6000396000f3fe60806040523661001357610011610017565b005b6100115b61001f6101a7565b6001600160a01b0316330361015f5760606001600160e01b0319600035166364d3180d60e11b810161005a576100536101da565b9150610157565b63587086bd60e11b6001600160e01b031982160161007a57610053610231565b63070d7c6960e41b6001600160e01b031982160161009a57610053610277565b621eb96f60e61b6001600160e01b03198216016100b9576100536102a8565b63a39f25e560e01b6001600160e01b03198216016100d9576100536102e8565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b6101676102fc565b565b606061018e83836040518060600160405280602781526020016108426027913961030c565b9392505050565b90565b6001600160a01b03163b151590565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101e4610384565b60006101f33660048184610695565b81019061020091906106db565b905061021d8160405180602001604052806000815250600061038f565b505060408051602081019091526000815290565b60606000806102433660048184610695565b810190610250919061070c565b915091506102608282600161038f565b604051806020016040528060008152509250505090565b6060610281610384565b60006102903660048184610695565b81019061029d91906106db565b905061021d816103bb565b60606102b2610384565b60006102bc6101a7565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b60606102f2610384565b60006102bc610412565b610167610307610412565b610421565b6060600080856001600160a01b03168560405161032991906107f2565b600060405180830381855af49150503d8060008114610364576040519150601f19603f3d011682016040523d82523d6000602084013e610369565b606091505b509150915061037a86838387610445565b9695505050505050565b341561016757600080fd5b610398836104c6565b6000825111806103a55750805b156103b6576103b48383610169565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103e46101a7565b604080516001600160a01b03928316815291841660208301520160405180910390a161040f81610506565b50565b600061041c6105af565b905090565b3660008037600080366000845af43d6000803e808015610440573d6000f35b3d6000fd5b606083156104b45782516000036104ad576001600160a01b0385163b6104ad5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161014e565b50816104be565b6104be83836105d7565b949350505050565b6104cf81610601565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6001600160a01b03811661056b5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161014e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101cb565b8151156105e75781518083602001fd5b8060405162461bcd60e51b815260040161014e919061080e565b6001600160a01b0381163b61066e5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161014e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61058e565b600080858511156106a557600080fd5b838611156106b257600080fd5b5050820193919092039150565b80356001600160a01b03811681146106d657600080fd5b919050565b6000602082840312156106ed57600080fd5b61018e826106bf565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561071f57600080fd5b610728836106bf565b9150602083013567ffffffffffffffff8082111561074557600080fd5b818501915085601f83011261075957600080fd5b81358181111561076b5761076b6106f6565b604051601f8201601f19908116603f01168101908382118183101715610793576107936106f6565b816040528281528860208487010111156107ac57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b838110156107e95781810151838201526020016107d1565b50506000910152565b600082516108048184602087016107ce565b9190910192915050565b602081526000825180602084015261082d8160408501602087016107ce565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a164736f6c6343000811000ab53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000001284214b9b9c85549ab3d2b972df0deef66ac2c9000000000000000000000000a2959d3f95eae5dc7d70144ce1b73b403b7eb6e0000000000000000000000000980a75ecd1309ea12fa2ed87a8744fbfc9b863d5000000000000000000000000b71b214cb885500844365e95cd9942c7276e7fd800000000000000000000000035552c16704d214347f29fa77f77da6d75d7c752000000000000000000000000f474cf03cceff28abc65c9cbae594f725c80e12d00000000000000000000000096c5d20b2a975c050e4220be276ace4892f4b41a00000000000000000000000047788386d0ed6c748e03a53160b4b30ed3748cc5000000000000000000000000bdfbc016c1bd481f5d8ca6f754f4b200a7ed66ce000000000000000000000000372e4887005ec21a5aff9ff62eda9e7713e3643700000000000000000000000055c968cf3430f3ba0534ef49ff4b3fbc9086c7ce000000000000000000000000136bd6343049c9690569db79dcd9208a57d342ad000000000000000000000000977ecef7de795cd248d77fd0d080ce3a35dec013000000000000000000000000b334ced91dff560bc9b5b3c30ae613bf335f181324d7bda8602b916d64417f0dbfe2e2e88ec9b1157bd9f596dfdb91ba26624e040000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000000308e82934ca974fdcd97f3309de967d3c9c43fa711a8d673af5d75465844bf8969c8d1948d903748ac7b8b1720fa64e50c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b973c2d38487e58fd6e145491b110080fb14ac915a0411fc78f19e09a399ddee0d20c63a75d8f930f1694544ad2dc01b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003089037a9ace3b590165ea1c0c5ac72bf600b7c88c1e435f41932c1132aae1bfa0bb68e46b96ccb12c3415e4d82af717d8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030a2750ec6dded3dcdc2f351782310b0eadc077db59abca0f0cd26776e2e7acb9f3bce40b1fa5221fd1561226c6263cc5f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b742ad4855bae330426b823e742da31f816cc83bc16d69a9134be0cfb4a1d17ec34f1b5b32d5c20440b8536b1e88f0f200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003096c9b86c3400e529bfe184056e257c07940bb664636f689e8d2027c834681f8f878b73445261034e946bb2d901b4b87800000000000000000000000000000000a164736f6c6343000811000a" + } + }, + "1719986788": { + "0x0000000000000000000000000000000000001000": { + "balance": "0x0", + "code": "0x6080604052600436106104fb5760003560e01c806388b32f111161028c578063c6d339451161015a578063e40716a1116100cc578063f92eb86b11610085578063f92eb86b14610d2d578063f9a2bbc714610d42578063fc3e590814610d57578063fccc281314610d6c578063fd4ad81f14610d81578063fd6a687914610db057610502565b8063e40716a114610c9b578063ea321e4914610cb0578063eb57e20214610cd0578063eda5868c14610cf0578063f1fad10414610d05578063f340fa0114610d1a57610502565b8063d86222d51161011e578063d86222d514610c1d578063daacdb6614610c32578063dc927faf14610c47578063df8079e914610c5c578063e086c7b114610c71578063e1c7392a14610c8657610502565b8063c6d3394514610bbe578063c81b166214610bd3578063c8509d811461098d578063ce910b0c14610be8578063d68fb56a14610c0857610502565b8063a78abc16116101fe578063ad3c9da6116101b7578063ad3c9da614610b3d578063aef198a914610b5d578063b7ab4db514610b72578063b8cf4ef114610b94578063bf9f4995146106fe578063c466689d14610ba957610502565b8063a78abc1614610ab4578063aa82dce114610ac9578063aad5606314610ade578063aaf5eb6814610af3578063ab51bb9614610b08578063ac43175114610b1d57610502565b806396713da91161025057806396713da914610a365780639dc0926214610a4b5780639fe0f81614610a60578063a0dc275814610a75578063a1a11bf514610a8a578063a5422d5c14610a9f57610502565b806388b32f11146109c25780638a7beb01146109d75780638b5ad0c9146109ec5780638d19a41014610a015780639369d7de14610a2157610502565b806351b4dce3116103c957806370fd5bad1161033b5780637e434d54116102f45780637e434d541461094e57806381650b6214610963578063820dcaa814610978578063831d65d11461098d578063853230aa1461090f57806386249882146109ad57610502565b806370fd5bad146108d0578063718a8aa8146108e557806375d47a0a146108fa57806378dfed4a1461090f5780637942fd05146109245780637a84ca2a1461093957610502565b80635d77156c1161038d5780635d77156c1461082a5780635de1e22c1461083f57806360eba4fe1461085457806362b72cf5146108745780636969a25c146108895780636e47b482146108bb57610502565b806351b4dce3146107ab57806351e80672146107c057806355614fcc146107d5578063565c56b3146107f55780635667515a1461081557610502565b8063300c35671161046d57806343756e5c1161042657806343756e5c1461072057806345cf9daf14610735578063493279b11461074a5780634bf6c8821461076c5780634df6e0c3146107815780635192c82c1461079657610502565b8063300c35671461065b578063321d398a1461067b5780633365af3a1461069b57806335409f7f146106bb5780633b071dcc146106db5780633dffc387146106fe57610502565b8063152ad3b8116104bf578063152ad3b8146105ba5780631e4c1524146105dc5780631ff18069146105fc578063219f22d51461061157806328087028146106265780632a0ffb6e1461063b57610502565b806304c4fec61461050757806307a568471461051e5780630bee7a67146105495780630e2374a51461056b5780631182b8751461058d57610502565b3661050257005b600080fd5b34801561051357600080fd5b5061051c610dc5565b005b34801561052a57600080fd5b50610533610e39565b6040516105409190618f10565b60405180910390f35b34801561055557600080fd5b5061055e610e3f565b6040516105409190618f3a565b34801561057757600080fd5b50610580610e44565b6040516105409190618200565b34801561059957600080fd5b506105ad6105a83660046180e6565b610e4a565b60405161054091906183b6565b3480156105c657600080fd5b506105cf611167565b60405161054091906183ab565b3480156105e857600080fd5b5061051c6105f7366004617ef4565b611170565b34801561060857600080fd5b50610533611846565b34801561061d57600080fd5b5061055e61184c565b34801561063257600080fd5b50610580611851565b34801561064757600080fd5b5061051c610656366004617e54565b611857565b34801561066757600080fd5b5061051c610676366004617e8c565b611904565b34801561068757600080fd5b506105cf610696366004618093565b611c4d565b3480156106a757600080fd5b506105cf6106b6366004618093565b611d1c565b3480156106c757600080fd5b5061051c6106d6366004617e54565b611dcd565b3480156106e757600080fd5b506106f0611f32565b6040516105409291906182c1565b34801561070a57600080fd5b5061071361220e565b6040516105409190618f4b565b34801561072c57600080fd5b50610580612213565b34801561074157600080fd5b50610533612219565b34801561075657600080fd5b5061075f61221f565b6040516105409190618f01565b34801561077857600080fd5b50610713612224565b34801561078d57600080fd5b506106f0612229565b3480156107a257600080fd5b506105336123b5565b3480156107b757600080fd5b506105806123bb565b3480156107cc57600080fd5b506105806123c1565b3480156107e157600080fd5b506105cf6107f0366004617e54565b6123c7565b34801561080157600080fd5b50610533610810366004617e54565b6123fc565b34801561082157600080fd5b5061071361244d565b34801561083657600080fd5b5061055e612452565b34801561084b57600080fd5b50610533612457565b34801561086057600080fd5b506105ad61086f366004618093565b61245d565b34801561088057600080fd5b50610533612503565b34801561089557600080fd5b506108a96108a4366004618093565b612509565b6040516105409695949392919061822d565b3480156108c757600080fd5b5061058061256d565b3480156108dc57600080fd5b50610713612573565b3480156108f157600080fd5b50610713612578565b34801561090657600080fd5b5061058061257d565b34801561091b57600080fd5b50610533612583565b34801561093057600080fd5b50610713612589565b34801561094557600080fd5b5061053361258e565b34801561095a57600080fd5b50610580612594565b34801561096f57600080fd5b5061055e61259a565b34801561098457600080fd5b5061053361259f565b34801561099957600080fd5b5061051c6109a83660046180e6565b6125a5565b3480156109b957600080fd5b50610533612606565b3480156109ce57600080fd5b5061053361260c565b3480156109e357600080fd5b506105cf612612565b3480156109f857600080fd5b5061053361261b565b348015610a0d57600080fd5b50610533610a1c366004617e54565b612621565b348015610a2d57600080fd5b5061051c612661565b348015610a4257600080fd5b50610713612775565b348015610a5757600080fd5b5061058061277a565b348015610a6c57600080fd5b50610533612780565b348015610a8157600080fd5b50610533612785565b348015610a9657600080fd5b5061058061278a565b348015610aab57600080fd5b506105ad612790565b348015610ac057600080fd5b506105cf6127af565b348015610ad557600080fd5b506105806127b8565b348015610aea57600080fd5b506105806127be565b348015610aff57600080fd5b506105336127c4565b348015610b1457600080fd5b5061055e61244d565b348015610b2957600080fd5b5061051c610b38366004618037565b6127cd565b348015610b4957600080fd5b50610533610b58366004617e54565b613086565b348015610b6957600080fd5b50610533613098565b348015610b7e57600080fd5b50610b876130a5565b60405161054091906182ae565b348015610ba057600080fd5b50610533613191565b348015610bb557600080fd5b50610533613196565b348015610bca57600080fd5b50610533612573565b348015610bdf57600080fd5b5061058061319c565b348015610bf457600080fd5b506105ad610c03366004618093565b6131a2565b348015610c1457600080fd5b506105336131af565b348015610c2957600080fd5b506105336131ee565b348015610c3e57600080fd5b506105336131fa565b348015610c5357600080fd5b50610580613200565b348015610c6857600080fd5b50610580613206565b348015610c7d57600080fd5b50610533610e3f565b348015610c9257600080fd5b5061051c61320c565b348015610ca757600080fd5b506105336133bb565b348015610cbc57600080fd5b506105cf610ccb366004617ff8565b6133c1565b348015610cdc57600080fd5b5061051c610ceb366004617e54565b613547565b348015610cfc57600080fd5b5061055e61364b565b348015610d1157600080fd5b50610713613650565b61051c610d28366004617e54565b613655565b348015610d3957600080fd5b506105336139d4565b348015610d4e57600080fd5b506105806139da565b348015610d6357600080fd5b50610713612780565b348015610d7857600080fd5b506105806139e0565b348015610d8d57600080fd5b50610da1610d9c366004618093565b6139e6565b60405161054093929190618f19565b348015610dbc57600080fd5b50610580613aa8565b6000610dd033612621565b9050600b8181548110610ddf57fe5b600091825260209091206001601690920201015460ff16610e1b5760405162461bcd60e51b8152600401610e1290618b1c565b60405180910390fd5b6000610e256131af565b9050610e343383836001613aae565b505050565b60095481565b606481565b61200181565b60005460609060ff16610e6f5760405162461bcd60e51b8152600401610e12906185dd565b3361200014610e905760405162461bcd60e51b8152600401610e1290618d1d565b600b54610f4e57610e9f617a00565b60015460005b81811015610f4a57600b805460018101825560009190915283516000805160206191c883398151915260169092029182019081556020808601516000805160206192088339815191528401805460ff1916911515919091179055604086015180518794610f26936000805160206191e8833981519152909101920190617a2f565b506060820151610f3c9060038301906013617aa9565b505050806001019050610ea5565b5050505b610f56617ad6565b6000610f9785858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613d8392505050565b9150915080610fb357610faa6064613f3f565b92505050611160565b815160009060ff16610fd857610fd183602001518460400151613fa0565b905061112c565b825160ff16600114156111285782602001515160011461101d576000805160206191a883398151915260405161100d906189d5565b60405180910390a1506067611123565b6000836020015160008151811061103057fe5b602090810291909101810151516001600160a01b03811660009081526004909252604090912054909150801580611091575060018082038154811061107157fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b156110cf576040516001600160a01b038316907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a261111c565b60006110de8360018403615162565b90508061111a576040516001600160a01b038416907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a25b505b6000925050505b61112c565b5060655b63ffffffff811661115157505060408051600081526020810190915291506111609050565b61115a81613f3f565b93505050505b9392505050565b60075460ff1681565b33411461118f5760405162461bcd60e51b8152600401610e1290618d6c565b3a156111ad5760405162461bcd60e51b8152600401610e1290618a5b565b82516040805182815260208084028201019091526060908280156111eb57816020015b6111d8617afa565b8152602001906001900390816111d05790505b50905060005b82811015611295576040518060c0016040528087838151811061121057fe5b60200260200101516001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b0316815260200186838151811061125257fe5b60200260200101516001600160401b03168152602001600015158152602001600081525082828151811061128257fe5b60209081029190910101526001016111f1565b5060405163d31f968d60e01b81526120009063d31f968d906112c09061100090600890600401618292565b60206040518083038186803b1580156112d857600080fd5b505afa1580156112ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113109190617fd8565b15611633578051601554818111156113b257815b818110156113b057601580548061133757fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055601680548061138a57fe5b6001900381819060005260206000200160006113a69190617b2f565b9055600101611324565b505b60005b828110156115f2578181106114da5760158482815181106113d257fe5b602090810291909101810151825460018181018555600094855293839020825160049092020180546001600160a01b039283166001600160a01b0319918216178255938301519481018054958316958516959095179094556040820151600285018054606085015160808601511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590961692909716919091179290921692909217169290921790915560a0015160039091015585516016908790839081106114a257fe5b602090810291909101810151825460018101845560009384529282902081516114d49491909101929190910190617a2f565b506115ea565b8381815181106114e657fe5b6020026020010151601582815481106114fb57fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a09091015160039091015585518690829081106115b657fe5b6020026020010151601682815481106115cb57fe5b9060005260206000200190805190602001906115e8929190617a2f565b505b6001016113b5565b507fb8e726330a0dad1cf3d04e925663b17e391f1ed547d79b7f4e5f344119b44246826040516116229190618f10565b60405180910390a150505050610e34565b6060806116408386615525565b9150915060005b6001548110156117365760006001828154811061166057fe5b90600052602060002090600402016003015490508060001461172d5760006001838154811061168b57fe5b9060005260206000209060040201600301819055506120026001600160a01b031663092193ab82600185815481106116bf57fe5b60009182526020909120600491820201546040516001600160e01b031960e086901b1681526116fa926001600160a01b039092169101618200565b6000604051808303818588803b15801561171357600080fd5b505af1158015611727573d6000803e3d6000fd5b50505050505b50600101611647565b5047156117a4577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d4760405161176c9190618f10565b60405180910390a1604051611002904780156108fc02916000818181858888f193505050501580156117a2573d6000803e3d6000fd5b505b600060038190556005558151156117bf576117bf8282615a0f565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156117fc57600080fd5b505af1158015611810573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a150505050505050565b60035481565b606881565b61200581565b33612002146118785760405162461bcd60e51b8152600401610e1290618eca565b60005b60155481101561190057816001600160a01b03166015828154811061189c57fe5b60009182526020909120600490910201546001600160a01b031614156118f8576001601582815481106118cb57fe5b9060005260206000209060040201600201601c6101000a81548160ff021916908315150217905550611900565b60010161187b565b5050565b3341146119235760405162461bcd60e51b8152600401610e1290618d6c565b60105443116119445760405162461bcd60e51b8152600401610e1290618770565b3a156119625760405162461bcd60e51b8152600401610e1290618a5b565b60005460ff166119845760405162461bcd60e51b8152600401610e12906185dd565b60006110023168056bc75e2d631000008111156119bb576119b48168056bc75e2d6310000063ffffffff6161fe16565b91506119c2565b5050611c43565b6040516309a99b4f60e41b815261100290639a99b4f0906119e99030908690600401618214565b602060405180830381600087803b158015611a0357600080fd5b505af1158015611a17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3b91906180ab565b915081611a49575050611c43565b6000805b84811015611a7757858582818110611a6157fe5b9050602002013582019150806001019050611a4d565b5080611a8557505050611c43565b6000806000805b89811015611c3b5784898983818110611aa157fe5b90506020020135880281611ab157fe5b0493508a8a82818110611ac057fe5b9050602002016020810190611ad59190617e54565b6001600160a01b03811660009081526004602052604090205490935091508115611bf1576000600180840381548110611b0a57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff1615611b7757836001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d8586604051611b6a9190618f10565b60405180910390a2611beb565b600354611b8a908663ffffffff61624016565b6003908155810154611ba2908663ffffffff61624016565b60038201556040516001600160a01b038516907fcb0aad6cf9cd03bdf6137e359f541c42f38b39f007cae8e89e88aa7d8c6617b290611be2908890618f10565b60405180910390a25b50611c33565b826001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d8585604051611c2a9190618f10565b60405180910390a25b600101611a8c565b505050505050505b5050436010555050565b6001546000908210611c6157506000611d17565b60006001600160a01b031660018381548110611c7957fe5b60009182526020909120600490910201546001600160a01b03161480611ca957506008541580611ca95750600a54155b80611cb8575060085460095410155b80611cc95750611cc782611d1c565b155b80611cf257506000600b8381548110611cde57fe5b906000526020600020906016020160000154115b80611d0657506001611d026130a5565b5111155b15611d1357506000611d17565b5060015b919050565b6001546000908210611d3057506000611d17565b600b548210611d6d5760018281548110611d4657fe5b9060005260206000209060040201600201601c9054906101000a900460ff16159050611d17565b60018281548110611d7a57fe5b9060005260206000209060040201600201601c9054906101000a900460ff16158015611dc75750600b8281548110611dae57fe5b600091825260209091206001601690920201015460ff16155b92915050565b600b54611e8b57611ddc617a00565b60015460005b81811015611e8757600b805460018101825560009190915283516000805160206191c883398151915260169092029182019081556020808601516000805160206192088339815191528401805460ff1916911515919091179055604086015180518794611e63936000805160206191e8833981519152909101920190617a2f565b506060820151611e799060038301906013617aa9565b505050806001019050611de2565b5050505b336110011480611e9c575033612002145b611eb85760405162461bcd60e51b8152600401610e1290618614565b6001600160a01b03811660009081526004602052604090205480611edc5750611f2f565b6001810390506000600b8281548110611ef157fe5b600091825260209091206001601690920201015460ff169050611f148383615162565b8015611f1d5750805b15610e34576009805460001901905550505b50565b60015460609081906000805b82811015611f855760018181548110611f5357fe5b9060005260206000209060040201600201601c9054906101000a900460ff16611f7d576001909101905b600101611f3e565b50606081604051908082528060200260200182016040528015611fb2578160200160208202803683370190505b509050606082604051908082528060200260200182016040528015611feb57816020015b6060815260200190600190039081611fd65790505b50600b54600094509091508414156121665760005b84811015612160576001818154811061201557fe5b9060005260206000209060040201600201601c9054906101000a900460ff16612158576001818154811061204557fe5b600091825260209091206004909102015483516001600160a01b039091169084908690811061207057fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600b818154811061209d57fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156121355780601f1061210a57610100808354040283529160200191612135565b820191906000526020600020905b81548152906001019060200180831161211857829003601f168201915b505050505082858151811061214657fe5b60209081029190910101526001909301925b600101612000565b50612202565b60005b84811015612200576001818154811061217e57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166121f857600181815481106121ae57fe5b600091825260209091206004909102015483516001600160a01b03909116908490869081106121d957fe5b6001600160a01b03909216602092830291909101909101526001909301925b600101612169565b505b909450925050505b9091565b600181565b61100181565b60085481565b606181565b600881565b6060806000600e549050600080600c5411612245576015612249565b600c545b905060606122556130a5565b9050606061226282616265565b90508282511161227957909450925061220a915050565b8383835103101561228b578282510393505b83156122c15760c843046122a783838388880360008a8a6163d3565b6122bf8383838888038989038a8b8b8b5103016163d3565b505b6060836040519080825280602002602001820160405280156122ed578160200160208202803683370190505b50905060608460405190808252806020026020018201604052801561232657816020015b60608152602001906001900390816123115790505b50905060005b858110156123a75784818151811061234057fe5b602002602001015183828151811061235457fe5b60200260200101906001600160a01b031690816001600160a01b03168152505083818151811061238057fe5b602002602001015182828151811061239457fe5b602090810291909101015260010161232c565b509096509450505050509091565b60065481565b61200681565b61200081565b6001600160a01b038116600090815260046020526040812054806123ef576000915050611d17565b6000190161116081611d1c565b6001600160a01b03811660009081526004602052604081205480612424576000915050611d17565b60018082038154811061243357fe5b906000526020600020906004020160030154915050919050565b600081565b606781565b600f5481565b6012818154811061246a57fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152935090918301828280156124fb5780601f106124d0576101008083540402835291602001916124fb565b820191906000526020600020905b8154815290600101906020018083116124de57829003601f168201915b505050505081565b60105481565b6001818154811061251657fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b601081565b61100881565b6103e881565b600b81565b600c5481565b61200381565b606681565b61271081565b33612000146125c65760405162461bcd60e51b8152600401610e1290618d1d565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f389021016058383836040516125f993929190618f59565b60405180910390a1505050565b60025481565b60115481565b60145460ff1681565b600a5481565b6001600160a01b038116600090815260046020526040812054806126575760405162461bcd60e51b8152600401610e1290618ca5565b6000190192915050565b600b5461271f57612670617a00565b60015460005b8181101561271b57600b805460018101825560009190915283516000805160206191c883398151915260169092029182019081556020808601516000805160206192088339815191528401805460ff19169115159190911790556040860151805187946126f7936000805160206191e8833981519152909101920190617a2f565b50606082015161270d9060038301906013617aa9565b505050806001019050612676565b5050505b60085461272c5760036008555b600a54612739576002600a555b600061274433612621565b905061274f81611c4d565b61276b5760405162461bcd60e51b8152600401610e1290618992565b611f2f338261652a565b600981565b61100781565b600381565b60c881565b61100681565b604051806101e001604052806101ab8152602001618ffd6101ab913981565b60005460ff1681565b61200281565b61300081565b6402540be40081565b60005460ff166127ef5760405162461bcd60e51b8152600401610e12906185dd565b33611007146128105760405162461bcd60e51b8152600401610e1290618a89565b61287a84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b602082015291506165c29050565b15612917576020811461289f5760405162461bcd60e51b8152600401610e1290618c5f565b604080516020601f84018190048102820181019092528281526000916128dd9185858083850183828082843760009201919091525061661b92505050565b9050606481101580156128f35750620186a08111155b61290f5760405162461bcd60e51b8152600401610e1290618882565b600255613043565b61297784848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260098152686275726e526174696f60b81b602082015291506165c29050565b15612a1a576020811461299c5760405162461bcd60e51b8152600401610e12906183fb565b604080516020601f84018190048102820181019092528281526000916129da9185858083850183828082843760009201919091525061661b92505050565b90506127106129f4600f548361624090919063ffffffff16565b1115612a125760405162461bcd60e51b8152600401610e1290618432565b600655613043565b612a8484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260138152726d61784e756d4f664d61696e7461696e696e6760681b602082015291506165c29050565b15612b1e5760208114612aa95760405162461bcd60e51b8152600401610e129061849a565b604080516020601f8401819004810282018101909252828152600091612ae79185858083850183828082843760009201919091525061661b92505050565b600c5490915080612af6575060155b808210612b155760405162461bcd60e51b8152600401610e12906187da565b50600855613043565b612b8784848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61696e7461696e536c6173685363616c6560701b602082015291506165c29050565b15612c205760208114612bac5760405162461bcd60e51b8152600401610e1290618563565b604080516020601f8401819004810282018101909252828152600091612bea9185858083850183828082843760009201919091525061661b92505050565b9050600081118015612bfc5750600a81105b612c185760405162461bcd60e51b8152600401610e1290618dfd565b600a55613043565b612c9484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601981527f6d61784e756d4f66576f726b696e6743616e6469646174657300000000000000602082015291506165c29050565b15612d235760208114612cb95760405162461bcd60e51b8152600401610e1290618517565b604080516020601f8401819004810282018101909252828152600091612cf79185858083850183828082843760009201919091525061661b92505050565b9050600d54811115612d1b5760405162461bcd60e51b8152600401610e12906188f8565b600e55613043565b612d8c84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61784e756d4f6643616e6469646174657360701b602082015291506165c29050565b15612e0e5760208114612db15760405162461bcd60e51b8152600401610e1290618ad7565b604080516020601f8401819004810282018101909252828152600091612def9185858083850183828082843760009201919091525061661b92505050565b600d819055600e54909150811015612e0857600d54600e555b50613043565b612e7284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c6e756d4f66436162696e65747360981b602082015291506165c29050565b15612f205760208114612e975760405162461bcd60e51b8152600401610e12906185a8565b604080516020601f8401819004810282018101909252828152600091612ed59185858083850183828082843760009201919091525061661b92505050565b905060008111612ef75760405162461bcd60e51b8152600401610e1290618682565b6064811115612f185760405162461bcd60e51b8152600401610e12906186ca565b600c55613043565b612f8884848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601181527073797374656d526577617264526174696f60781b602082015291506165c29050565b1561302b5760208114612fad5760405162461bcd60e51b8152600401610e1290618db9565b604080516020601f8401819004810282018101909252828152600091612feb9185858083850183828082843760009201919091525061661b92505050565b90506127106130056006548361624090919063ffffffff16565b11156130235760405162461bcd60e51b8152600401610e1290618bc0565b600f55613043565b60405162461bcd60e51b8152600401610e1290618e5a565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a8484848460405161307894939291906183c9565b60405180910390a150505050565b60046020526000908152604090205481565b68056bc75e2d6310000081565b6001546060906000805b828110156130d4576130c081611d1c565b156130cc578160010191505b6001016130af565b50606081604051908082528060200260200182016040528015613101578160200160208202803683370190505b5090506000915060005b838110156131885761311c81611d1c565b15613180576001818154811061312e57fe5b600091825260209091206004909102015482516001600160a01b039091169083908590811061315957fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508260010192505b60010161310b565b50925050505b90565b601581565b61027181565b61100281565b6013818154811061246a57fe5b60006131b96130a5565b519050600080600c54116131ce5760156131d2565b600c545b9050808211156131e0578091505b816131ea57600191505b5090565b67016345785d8a000081565b60055481565b61100381565b61200481565b60005460ff161561322f5760405162461bcd60e51b8152600401610e1290618b89565b613237617ad6565b600061325d604051806101e001604052806101ab8152602001618ffd6101ab9139613d83565b915091508061327e5760405162461bcd60e51b8152600401610e1290618cdc565b60005b8260200151518110156133a3576001836020015182815181106132a057fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a09093015160039093019290925591860151805191850193918590811061337657fe5b602090810291909101810151516001600160a01b0316825281019190915260400160002055600101613281565b50506103e8600255506000805460ff19166001179055565b600d5481565b601354600090815b818110156134ca576134b285858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060138054909250859150811061341a57fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156134a85780601f1061347d576101008083540402835291602001916134a8565b820191906000526020600020905b81548152906001019060200180831161348b57829003601f168201915b5050505050616620565b156134c257600192505050611dc7565b6001016133c9565b5060125460005b8181101561353b5761352286868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060128054909250859150811061341a57fe5b156135335760019350505050611dc7565b6001016134d1565b50600095945050505050565b33611001146135685760405162461bcd60e51b8152600401610e1290618e81565b600b5461362657613577617a00565b60015460005b8181101561362257600b805460018101825560009190915283516000805160206191c883398151915260169092029182019081556020808601516000805160206192088339815191528401805460ff19169115159190911790556040860151805187946135fe936000805160206191e8833981519152909101920190617a2f565b5060608201516136149060038301906013617aa9565b50505080600101905061357d565b5050505b600061363182616684565b905061363c81611c4d565b1561190057611900828261652a565b606581565b601181565b3341146136745760405162461bcd60e51b8152600401610e1290618d6c565b60005460ff166136965760405162461bcd60e51b8152600401610e12906185dd565b600034116136b65760405162461bcd60e51b8152600401610e12906188c9565b3a156136d45760405162461bcd60e51b8152600401610e1290618a5b565b6001600160a01b03811660009081526004602052604090205460145434919060ff1661371457610271600f556103e86006556014805460ff191660011790555b60008211801561372657506000600f54115b156137d8576000613754612710613748600f543461680790919063ffffffff16565b9063ffffffff61684116565b905080156137d6576040516110029082156108fc029083906000818181858888f1935050505015801561378b573d6000803e3d6000fd5b507f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d816040516137bb9190618f10565b60405180910390a16137d3838263ffffffff6161fe16565b92505b505b6000821180156137ea57506000600654115b1561389057600061380c6127106137486006543461680790919063ffffffff16565b9050801561388e5760405161dead9082156108fc029083906000818181858888f19350505050158015613843573d6000803e3d6000fd5b507f627059660ea01c4733a328effb2294d2f86905bf806da763a89cee254de8bee5816040516138739190618f10565b60405180910390a161388b838263ffffffff6161fe16565b92505b505b801561398e5760006001808303815481106138a757fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff161561391457836001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4846040516139079190618f10565b60405180910390a2613988565b600354613927908463ffffffff61624016565b600390815581015461393f908463ffffffff61624016565b60038201556040516001600160a01b038516907f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc0559061397f908690618f10565b60405180910390a25b50610e34565b826001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4836040516139c79190618f10565b60405180910390a2505050565b600e5481565b61100081565b61dead81565b600b81815481106139f357fe5b6000918252602091829020601691909102018054600180830154600280850180546040805161010096831615969096026000190190911692909204601f810188900488028501880190925281845293965060ff90911694919291830182828015613a9e5780601f10613a7357610100808354040283529160200191613a9e565b820191906000526020600020905b815481529060010190602001808311613a8157829003601f168201915b5050505050905083565b61100481565b6000600a5460001480613abf575082155b80613aca5750600954155b15613ad757506000613d7b565b60096000815460019003919050819055506000613b22600a5461374886613748600b8a81548110613b0457fe5b6000918252602090912060169091020154439063ffffffff6161fe16565b90506000600b8681548110613b3357fe5b906000526020600020906016020160010160006101000a81548160ff0219169083151502179055506000806110016001600160a01b0316638256ace66040518163ffffffff1660e01b8152600401604080518083038186803b158015613b9857600080fd5b505afa158015613bac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613bd091906180c3565b9150915060009350808310613d3157613be98888615162565b5060405163436aa28360e11b8152600090612002906386d5450690613c12908c90600401618200565b60206040518083038186803b158015613c2a57600080fd5b505afa158015613c3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c629190617e70565b6001600160a01b031614613cd0576040516328aa02b160e01b8152611001906328aa02b190613c99908b9087908a9060040161826f565b600060405180830381600087803b158015613cb357600080fd5b505af1158015613cc7573d6000803e3d6000fd5b50505050613d28565b6040516305bfb49960e41b815261100190635bfb499090613cf5908b90600401618200565b600060405180830381600087803b158015613d0f57600080fd5b505af1158015613d23573d6000803e3d6000fd5b505050505b60019350613d43565b818310613d4357613d4188616684565b505b6040516001600160a01b038916907fb9d38178dc641ff1817967a63c9078cbcd955a9f1fcd75e0e3636de615d44d3b90600090a25050505b949350505050565b613d8b617ad6565b6000613d95617ad6565b613d9d617b73565b613dae613da986616883565b6168a8565b90506000805b613dbd836168f2565b15613f315780613de257613dd8613dd384616913565b616961565b60ff168452613f29565b8060011415613f24576060613dfe613df985616913565b6169e1565b90508051604051908082528060200260200182016040528015613e3b57816020015b613e28617afa565b815260200190600190039081613e205790505b5085602001819052508051604051908082528060200260200182016040528015613e7957816020015b6060815260200190600190039081613e645790505b50604086015260005b8151811015613f1957613e93617afa565b60606000613eb3858581518110613ea657fe5b6020026020010151616ab2565b92509250925080613ed3578860009a509a50505050505050505050613f3a565b8289602001518581518110613ee457fe5b60200260200101819052508189604001518581518110613f0057fe5b6020026020010181905250505050806001019050613e82565b506001925050613f29565b613f31565b600101613db4565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b6060815260200190600190039081613f59579050509050613f7f8363ffffffff16616bcc565b81600081518110613f8c57fe5b602002602001018190525061116081616bdf565b6000606483511115613fd7576000805160206191a8833981519152604051613fc790618727565b60405180910390a1506066611dc7565b60005b83518110156140755760005b8181101561406c57848181518110613ffa57fe5b6020026020010151600001516001600160a01b031685838151811061401b57fe5b6020026020010151600001516001600160a01b03161415614064576000805160206191a883398151915260405161405190618837565b60405180910390a1606692505050611dc7565b600101613fe6565b50600101613fda565b5060608060606015805480602002602001604051908101604052809291908181526020016000905b828210156141275760008481526020908190206040805160c0810182526004860290920180546001600160a01b039081168452600180830154821685870152600283015491821693850193909352600160a01b81046001600160401b03166060850152600160e01b900460ff16151560808401526003015460a0830152908352909201910161409d565b50505050905060606016805480602002602001604051908101604052809291908181526020016000905b828210156141fc5760008481526020908190208301805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156141e85780601f106141bd576101008083540402835291602001916141e8565b820191906000526020600020905b8154815290600101906020018083116141cb57829003601f168201915b505050505081526020019060010190614151565b50505050905060005b82518110156142595782818151811061421a57fe5b60200260200101516060015160030283828151811061423557fe5b60209081029190910101516001600160401b03909116606090910152600101614205565b5060608061426989898686616c69565b915091506142778282615525565b600154604080518281526020808402820101909152929850909650600095508594509250606091508280156142b6578160200160208202803683370190505b50905060005b828110156144475760006001600160a01b03166120026001600160a01b03166386d54506600184815481106142ed57fe5b60009182526020909120600491820201546040516001600160e01b031960e085901b168152614328926001600160a01b039092169101618200565b60206040518083038186803b15801561434057600080fd5b505afa158015614354573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143789190617e70565b6001600160a01b0316146143da57600182828151811061439457fe5b602002602001019060ff16908160ff1681525050600181815481106143b557fe5b9060005260206000209060040201600301546000146143d5578360010193505b61443f565b67016345785d8a0000600182815481106143f057fe5b906000526020600020906004020160030154106144125784600101945061443f565b6001818154811061441f57fe5b90600052602060002090600402016003015460001461443f578360010193505b6001016142bc565b50606084604051908082528060200260200182016040528015614474578160200160208202803683370190505b5090506060856040519080825280602002602001820160405280156144a3578160200160208202803683370190505b5090506060866040519080825280602002602001820160405280156144d2578160200160208202803683370190505b509050606087604051908082528060200260200182016040528015614501578160200160208202803683370190505b5090506000606088604051908082528060200260200182016040528015614532578160200160208202803683370190505b509050606089604051908082528060200260200182016040528015614561578160200160208202803683370190505b50905060009a506000995060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b1580156145a957600080fd5b505afa1580156145bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145e191906180ab565b905067016345785d8a000081111561462d576000805160206191a883398151915260405161460e90618b48565b60405180910390a160689e505050505050505050505050505050611dc7565b60005b8a8110156149c15789818151811061464457fe5b602002602001015160ff166001141561473a576001818154811061466457fe5b906000526020600020906004020160030154600014614735576001818154811061468a57fe5b600091825260209091206004909102015484516001600160a01b039091169085908e9081106146b557fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600181815481106146e257fe5b906000526020600020906004020160030154838d8151811061470057fe5b60200260200101818152505060018a8d8151811061471a57fe5b602002602001019060ff16908160ff16815250508b6001019b505b6149b9565b67016345785d8a00006001828154811061475057fe5b906000526020600020906004020160030154106148d5576001818154811061477457fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316898e815181106147a557fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be400600183815481106147da57fe5b906000526020600020906004020160030154816147f357fe5b066001838154811061480157fe5b90600052602060002090600402016003015403905061482983826161fe90919063ffffffff16565b898f8151811061483557fe5b6020026020010181815250506001828154811061484e57fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316878f8151811061487f57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081888f815181106148ac57fe5b60209081029190910101526148c7868263ffffffff61624016565b95508d6001019d50506149b9565b600181815481106148e257fe5b9060005260206000209060040201600301546000146149b9576001818154811061490857fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316848d8151811061493957fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506001818154811061496657fe5b906000526020600020906004020160030154838d8151811061498457fe5b60200260200101818152505060008a8d8151811061499e57fe5b602002602001019060ff16908160ff16815250508b6001019b505b600101614630565b5060008415614c37576002546040516303702b2960e51b815261100491636e0565209188916149fb918e918e918d91420190600401618331565b6020604051808303818588803b158015614a1457600080fd5b505af193505050508015614a45575060408051601f3d908101601f19168201909252614a4291810190617fd8565b60015b614bbc576040516000815260443d1015614a6157506000614afc565b60046000803e60005160e01c6308c379a08114614a82576000915050614afc565b60043d036004833e81513d60248201116001600160401b0382111715614aad57600092505050614afc565b80830180516001600160401b03811115614ace576000945050505050614afc565b8060208301013d8601811115614aec57600095505050505050614afc565b601f01601f191660405250925050505b80614b075750614b49565b60019150857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf28082604051614b3b91906183b6565b60405180910390a250614bb7565b3d808015614b73576040519150601f19603f3d011682016040523d82523d6000602084013e614b78565b606091505b5060019150857fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a4582604051614bad91906183b6565b60405180910390a2505b614c37565b8015614bfe577fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b7086604051614bf19190618f10565b60405180910390a1614c35565b857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280604051614c2c906184e0565b60405180910390a25b505b8015614ded5760005b8751811015614deb576000888281518110614c5757fe5b60200260200101519050600060018281548110614c7057fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc9185908110614ca157fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f1935050505090508015614d5d5760018281548110614ce257fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d9185908110614d3157fe5b906000526020600020906004020160030154604051614d509190618f10565b60405180910390a2614de1565b60018281548110614d6a57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d9185908110614db957fe5b906000526020600020906004020160030154604051614dd89190618f10565b60405180910390a25b5050600101614c40565b505b835115614fe35760005b8451811015614fe1578a8181518110614e0c57fe5b602002602001015160ff1660011415614eab576120026001600160a01b031663092193ab858381518110614e3c57fe5b6020026020010151878481518110614e5057fe5b60200260200101516040518363ffffffff1660e01b8152600401614e749190618200565b6000604051808303818588803b158015614e8d57600080fd5b505af1158015614ea1573d6000803e3d6000fd5b5050505050614fd9565b6000858281518110614eb957fe5b60200260200101516001600160a01b03166108fc868481518110614ed957fe5b60200260200101519081150290604051600060405180830381858888f1935050505090508015614f6f57858281518110614f0f57fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d868481518110614f4d57fe5b6020026020010151604051614f629190618f10565b60405180910390a2614fd7565b858281518110614f7b57fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d868481518110614fb957fe5b6020026020010151604051614fce9190618f10565b60405180910390a25b505b600101614df7565b505b5050505050505050505050505060005b600154811015615050576001818154811061500a57fe5b9060005260206000209060040201600301546000146150485760006001828154811061503257fe5b9060005260206000209060040201600301819055505b600101614ff3565b5047156150be577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d476040516150869190618f10565b60405180910390a1604051611002904780156108fc02916000818181858888f193505050501580156150bc573d6000803e3d6000fd5b505b600060038190556005558151156150d9576150d98282615a0f565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561511657600080fd5b505af115801561512a573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a1506000949350505050565b6000806001838154811061517257fe5b9060005260206000209060040201600301549050600060018080549050039050600161519c6130a5565b51116151d1576000600185815481106151b157fe5b906000526020600020906004020160030181905550600092505050611dc7565b846001600160a01b03167f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a708360405161520a9190618f10565b60405180910390a26001600160a01b038516600090815260046020526040812055835b600154600019018110156153f7576001816001018154811061524b57fe5b90600052602060002090600402016001828154811061526657fe5b60009182526020909120825460049092020180546001600160a01b03199081166001600160a01b0393841617825560018085015481840180548416918616919091179055600280860180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b19909416939093179055600392830154920191909155600b80549091830190811061532757fe5b9060005260206000209060160201600b828154811061534257fe5b600091825260209091208254601690920201908155600180830154818301805460ff909216151560ff1990921691909117905560028084018054615399938386019390821615610100026000190190911604617b93565b506153ac60038281019084016013617c08565b509050508060010160046000600184815481106153c557fe5b600091825260208083206004909202909101546001600160a01b0316835282019290925260400190205560010161522d565b50600180548061540357fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b80548061545657fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906154886002830182617b2f565b615496600383016000617c32565b5050905560008183816154a557fe5b04905080156155195760015460005b81811015615516576154ed83600183815481106154cd57fe5b90600052602060002090600402016003015461624090919063ffffffff16565b600182815481106154fa57fe5b60009182526020909120600360049092020101556001016154b4565b50505b50600195945050505050565b6060806000808080806155366131af565b6001549091505b801561576857600181039250600b838154811061555657fe5b600091825260209091206001601690920201015460ff166155765761575f565b6001838154811061558357fe5b600091825260208220600490910201546001600160a01b031695506155ad90869085908590613aae565b9350836155b95761575f565b60405163436aa28360e11b81526000908190612002906386d54506906155e3908a90600401618200565b60206040518083038186803b1580156155fb57600080fd5b505afa15801561560f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906156339190617e70565b90506001600160a01b038116156156bc576040516302ceee9160e11b81526120029063059ddd2290615669908490600401618200565b60206040518083038186803b15801561568157600080fd5b505afa158015615695573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906156b99190617e70565b91505b60005b8c5181101561575b57876001600160a01b03168d82815181106156de57fe5b6020026020010151600001516001600160a01b031614806157275750826001600160a01b03168d828151811061571057fe5b6020026020010151600001516001600160a01b0316145b156157535760018d828151811061573a57fe5b602090810291909101015190151560809091015261575b565b6001016156bf565b5050505b6000190161553d565b5060005b89518110156157d55789818151811061578157fe5b602002602001015160800151806157c1575060006001600160a01b03168a82815181106157aa57fe5b6020026020010151600001516001600160a01b0316145b156157cd578560010195505b60010161576c565b50885185106158bd5760408051600180825281830190925290816020015b6157fb617afa565b8152602001906001900390816157f3575050604080516001808252818301909252919850602082015b60608152602001906001900390816158245790505095508860008151811061584857fe5b60200260200101518760008151811061585d57fe5b60200260200101819052508760008151811061587557fe5b60200260200101518660008151811061588a57fe5b60200260200101819052506000876000815181106158a457fe5b6020908102919091010151901515608090910152615a02565b848951036040519080825280602002602001820160405280156158fa57816020015b6158e7617afa565b8152602001906001900390816158df5790505b5096508489510360405190808252806020026020018201604052801561593457816020015b606081526020019060019003908161591f5790505b5095506000915060005b8951811015615a005789818151811061595357fe5b602002602001015160800151158015615996575060006001600160a01b03168a828151811061597e57fe5b6020026020010151600001516001600160a01b031614155b156159f8578981815181106159a757fe5b60200260200101518884815181106159bb57fe5b60200260200101819052508881815181106159d257fe5b60200260200101518784815181106159e657fe5b60200260200101819052508260010192505b60010161593e565b505b50505050505b9250929050565b600154825160005b82811015615b2c576001615a29617afa565b60018381548110615a3657fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b84811015615b0057878181518110615ac657fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b03161415615af85760009250615b00565b600101615ab2565b508115615b225780516001600160a01b03166000908152600460205260408120555b5050600101615a17565b5080821115615beb57805b82811015615be9576001805480615b4a57fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b805480615b9d57fe5b60008281526020812060166000199093019283020181815560018101805460ff1916905590615bcf6002830182617b2f565b615bdd600383016000617c32565b50509055600101615b37565b505b6000818310615bfa5781615bfc565b825b905060005b81811015615fa057615cae868281518110615c1857fe5b602002602001015160018381548110615c2d57fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a0820152617035565b615e62578060010160046000888481518110615cc657fe5b6020026020010151600001516001600160a01b03166001600160a01b0316815260200190815260200160002081905550858181518110615d0257fe5b602002602001015160018281548110615d1757fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a0909101516003909101558451859082908110615dd257fe5b6020026020010151600b8281548110615de757fe5b90600052602060002090601602016002019080519060200190615e0b929190617a2f565b506000600b8281548110615e1b57fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b805483908110615e4c57fe5b6000918252602090912060169091020155615f98565b858181518110615e6e57fe5b60200260200101516060015160018281548110615e8757fe5b906000526020600020906004020160020160146101000a8154816001600160401b0302191690836001600160401b03160217905550615f4d858281518110615ecb57fe5b6020026020010151600b8381548110615ee057fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156134a85780601f1061347d576101008083540402835291602001916134a8565b615f9857848181518110615f5d57fe5b6020026020010151600b8281548110615f7257fe5b90600052602060002090601602016002019080519060200190615f96929190617a2f565b505b600101615c01565b508282111561617857615fb1617a00565b835b8381101561617557858181518110615fc757fe5b602002602001015182604001819052506001878281518110615fe557fe5b6020908102919091018101518254600181810185556000948552838520835160049093020180546001600160a01b039384166001600160a01b0319918216178255848601518284018054918616918316919091179055604080860151600284018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909a1692909616919091179290921696909617169190911790935560a090930151600390930192909255600b80549283018155909352845160169091026000805160206191c88339815191528101918255858301516000805160206192088339815191528201805491151560ff199092169190911790559285015180518694929361611b936000805160206191e883398151915201920190617a2f565b5060608201516161319060038301906013617aa9565b505050806001016004600089848151811061614857fe5b602090810291909101810151516001600160a01b0316825281019190915260400160002055600101615fb3565b50505b616180617091565b616188617279565b6000600981905560015493505b838110156161f6576000600b82815481106161ac57fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b8054839081106161dd57fe5b6000918252602090912060169091020155600101616195565b505050505050565b600061116083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250617467565b6000828201838110156111605760405162461bcd60e51b8152600401610e129061864b565b6001548151604080518281526020808402820101909152606092919083908280156162a457816020015b606081526020019060019003908161628f5790505b50600b5490915083146162bb579250611d17915050565b60005b828110156163ca57600b6001600460008985815181106162da57fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054038154811061630e57fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156163a65780601f1061637b576101008083540402835291602001916163a6565b820191906000526020600020905b81548152906001019060200180831161638957829003601f168201915b50505050508282815181106163b757fe5b60209081029190910101526001016162be565b50949350505050565b60005b8281101561652057600082878388016040516020016163f69291906181f2565b6040516020818303038152906040528051906020012060001c8161641657fe5b06905080850182870114616517576000898388018151811061643457fe5b602002602001015190506060898489018151811061644e57fe5b602002602001015190508a8388018151811061646657fe5b60200260200101518b858a018151811061647c57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050818b848901815181106164ab57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505089838801815181106164d957fe5b60200260200101518a858a01815181106164ef57fe5b6020026020010181905250808a8489018151811061650957fe5b602002602001018190525050505b506001016163d6565b5050505050505050565b600980546001908101909155600b80548390811061654457fe5b906000526020600020906016020160010160006101000a81548160ff02191690831515021790555043600b828154811061657a57fe5b600091825260208220601690910201919091556040516001600160a01b038416917ff62981a567ec3cec866c6fa93c55bcdf841d6292d18b8d522ececa769375d82d91a25050565b6000816040516020016165d591906181d6565b60405160208183030381529060405280519060200120836040516020016165fc91906181d6565b6040516020818303038152906040528051906020012014905092915050565b015190565b81518151600091600191811480831461663c576000925061667a565b600160208701838101602088015b6002848385100114156166755780518351146166695760009650600093505b6020928301920161664a565b505050505b5090949350505050565b6001600160a01b038116600090815260046020526040812054806166ad57506000199050611d17565b6001810390506000600182815481106166c257fe5b90600052602060002090600402016003015490506000600183815481106166e557fe5b6000918252602090912060036004909202010155600154604051600019909101906001600160a01b038616907f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d9061673e908590618f10565b60405180910390a28061675657829350505050611d17565b600081838161676157fe5b04905080156167fd5760005b848110156167af5761678682600183815481106154cd57fe5b6001828154811061679357fe5b600091825260209091206003600490920201015560010161676d565b50600180549085015b818110156167fa576167d183600183815481106154cd57fe5b600182815481106167de57fe5b60009182526020909120600360049092020101556001016167b8565b50505b5091949350505050565b60008261681657506000611dc7565b8282028284828161682357fe5b04146111605760405162461bcd60e51b8152600401610e1290618a1a565b600061116083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250617493565b61688b617c41565b506040805180820190915281518152602082810190820152919050565b6168b0617b73565b6168b9826174ca565b6168c257600080fd5b60006168d18360200151617504565b60208085015160408051808201909152868152920190820152915050919050565b60006168fc617c41565b505080518051602091820151919092015191011190565b61691b617c41565b616924826168f2565b61692d57600080fd5b6020820151600061693d82617567565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061697657508151602110155b61697f57600080fd5b600061698e8360200151617504565b905080836000015110156169b45760405162461bcd60e51b8152600401610e1290618c28565b8251602080850151830180519284900392918310156163ca57506020919091036101000a90049392505050565b60606169ec826174ca565b6169f557600080fd5b6000616a0083617648565b9050606081604051908082528060200260200182016040528015616a3e57816020015b616a2b617c41565b815260200190600190039081616a235790505b5090506000616a508560200151617504565b60208601510190506000805b84811015616aa757616a6d83617567565b9150604051806040016040528083815260200184815250848281518110616a9057fe5b602090810291909101015291810191600101616a5c565b509195945050505050565b616aba617afa565b60606000616ac6617afa565b6060616ad0617b73565b616ad9876168a8565b90506000805b616ae8836168f2565b15616bbd5780616b1357616b03616afe84616913565b6176a4565b6001600160a01b03168552616bb5565b8060011415616b3b57616b28616afe84616913565b6001600160a01b03166020860152616bb5565b8060021415616b6357616b50616afe84616913565b6001600160a01b03166040860152616bb5565b8060031415616b8f57616b78613dd384616913565b6001600160401b0316606086015260019150616bb5565b8060041415616bb057616ba9616ba484616913565b6176be565b9350616bb5565b616bbd565b600101616adf565b50929791965091945092505050565b6060611dc7616bda8361772e565b617814565b6060815160001415616c005750604080516000815260208101909152611d17565b606082600081518110616c0f57fe5b602002602001015190506000600190505b8351811015616c5057616c4682858381518110616c3957fe5b6020026020010151617866565b9150600101616c20565b50611160616c63825160c060ff166178e3565b82617866565b60608060006120026001600160a01b031663c473318f6040518163ffffffff1660e01b815260040160206040518083038186803b158015616ca957600080fd5b505afa158015616cbd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190616ce191906180ab565b90508085518851011015616cf6575083518651015b606081604051908082528060200260200182016040528015616d3257816020015b616d1f617afa565b815260200190600190039081616d175790505b509050606082604051908082528060200260200182016040528015616d6b57816020015b6060815260200190600190039081616d565790505b50905060008060005b8b51831080616d835750895182105b8015616d8e57508581105b15617023578b51831415616dfe57898281518110616da857fe5b6020026020010151858281518110616dbc57fe5b6020026020010181905250888281518110616dd357fe5b6020026020010151848281518110616de757fe5b602090810291909101015260019182019101616d74565b8951821415616e69578b8381518110616e1357fe5b6020026020010151858281518110616e2757fe5b60200260200101819052508a8381518110616e3e57fe5b6020026020010151848281518110616e5257fe5b602090810291909101015260019283019201616d74565b898281518110616e7557fe5b6020026020010151606001516001600160401b03168c8481518110616e9657fe5b6020026020010151606001516001600160401b03161115616f12578b8381518110616ebd57fe5b6020026020010151858281518110616ed157fe5b60200260200101819052508a8381518110616ee857fe5b6020026020010151848281518110616efc57fe5b602002602001018190525082600101925061701b565b898281518110616f1e57fe5b6020026020010151606001516001600160401b03168c8481518110616f3f57fe5b6020026020010151606001516001600160401b03161015616fbb57898281518110616f6657fe5b6020026020010151858281518110616f7a57fe5b6020026020010181905250888281518110616f9157fe5b6020026020010151848281518110616fa557fe5b602002602001018190525081600101915061701b565b898281518110616fc757fe5b6020026020010151600001516001600160a01b03168c8481518110616fe857fe5b6020026020010151600001516001600160a01b0316101561700f578b8381518110616ebd57fe5b898281518110616da857fe5b600101616d74565b50929a91995090975050505050505050565b805182516000916001600160a01b03918216911614801561706f575081602001516001600160a01b031683602001516001600160a01b0316145b80156111605750506040908101519101516001600160a01b0390811691161490565b601254601354808211156170dc57805b828110156170da5760128054806170b457fe5b6001900381819060005260206000200160006170d09190617b2f565b90556001016170a1565b505b60008183106170eb57816170ed565b825b905060005b81811015617205576171aa6012828154811061710a57fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156171985780601f1061716d57610100808354040283529160200191617198565b820191906000526020600020905b81548152906001019060200180831161717b57829003601f168201915b50505050506013838154811061341a57fe5b6171fd57601381815481106171bb57fe5b90600052602060002001601282815481106171d257fe5b9060005260206000200190805460018160011615610100020316600290046171fb929190617b93565b505b6001016170f2565b5082821115610e3457825b828110156172735760126013828154811061722757fe5b600091825260208083208454600181810187559585529190932092909101805461726a949390920192909160026101009282161592909202600019011604617b93565b50600101617210565b50505050565b601354600b54808211156172c457805b828110156172c257601380548061729c57fe5b6001900381819060005260206000200160006172b89190617b2f565b9055600101617289565b505b60008183106172d357816172d5565b825b905060005b818110156173f457617392601382815481106172f257fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156173805780601f1061735557610100808354040283529160200191617380565b820191906000526020600020905b81548152906001019060200180831161736357829003601f168201915b5050505050600b8381548110615ee057fe5b6173ec57600b81815481106173a357fe5b9060005260206000209060160201600201601382815481106173c157fe5b9060005260206000200190805460018160011615610100020316600290046173ea929190617b93565b505b6001016172da565b5082821115610e3457825b82811015617273576013600b828154811061741657fe5b60009182526020808320845460018082018755958552919093206016929092029092016002908101805461745e95939094019390926000199082161561010002011604617b93565b506001016173ff565b6000818484111561748b5760405162461bcd60e51b8152600401610e1291906183b6565b505050900390565b600081836174b45760405162461bcd60e51b8152600401610e1291906183b6565b5060008385816174c057fe5b0495945050505050565b80516000906174db57506000611d17565b6020820151805160001a9060c08210156174fa57600092505050611d17565b5060019392505050565b8051600090811a608081101561751e576000915050611d17565b60b8811080617539575060c08110801590617539575060f881105b15617548576001915050611d17565b60c081101561755c5760b519019050611d17565b60f519019050611d17565b80516000908190811a60808110156175825760019150617641565b60b881101561759757607e1981019150617641565b60c08110156175e857600060b78203600186019550806020036101000a8651049150600181018201935050808310156175e25760405162461bcd60e51b8152600401610e1290618967565b50617641565b60f88110156175fd5760be1981019150617641565b600060f78203600186019550806020036101000a86510491506001810182019350508083101561763f5760405162461bcd60e51b8152600401610e1290618967565b505b5092915050565b805160009061765957506000611d17565b6000809050600061766d8460200151617504565b602085015185519181019250015b8082101561769b5761768c82617567565b8201915082600101925061767b565b50909392505050565b80516000906015146176b557600080fd5b611dc782616961565b80516060906176cc57600080fd5b60006176db8360200151617504565b83516040805191839003808352601f19601f8201168301602001909152919250606090828015617712576020820181803683370190505b50905060008160200190506163ca8487602001510182856179b5565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff19841661777257506018617796565b6fffffffffffffffffffffffffffffffff19841661779257506010617796565b5060005b60208110156177cc578181815181106177ab57fe5b01602001516001600160f81b031916156177c4576177cc565b600101617796565b60008160200390506060816040519080825280601f01601f191660200182016040528015617801576020820181803683370190505b5080830196909652508452509192915050565b6060815160011480156178465750607f60f81b8260008151811061783457fe5b01602001516001600160f81b03191611155b15617852575080611d17565b611dc76178648351608060ff166178e3565b835b6060806040519050835180825260208201818101602087015b8183101561789757805183526020928301920161787f565b50855184518101855292509050808201602086015b818310156178c45780518352602092830192016178ac565b508651929092011591909101601f01601f191660405250905092915050565b606068010000000000000000831061790d5760405162461bcd60e51b8152600401610e12906187b2565b604080516001808252818301909252606091602082018180368337019050509050603784116179675782840160f81b8160008151811061794957fe5b60200101906001600160f81b031916908160001a9053509050611dc7565b60606179728561772e565b90508381510160370160f81b8260008151811061798b57fe5b60200101906001600160f81b031916908160001a9053506179ac8282617866565b95945050505050565b806179bf57610e34565b5b602081106179df578251825260209283019290910190601f19016179c0565b915181516020939093036101000a6000190180199091169216919091179052565b60405180608001604052806000815260200160001515815260200160608152602001617a2a617c5b565b905290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10617a7057805160ff1916838001178555617a9d565b82800160010185558215617a9d579182015b82811115617a9d578251825591602001919060010190617a82565b506131ea929150617c7a565b8260138101928215617a9d5791602002820182811115617a9d578251825591602001919060010190617a82565b6040518060600160405280600060ff16815260200160608152602001606081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b50805460018160011615610100020316600290046000825580601f10617b555750611f2f565b601f016020900490600052602060002090810190611f2f9190617c7a565b6040518060400160405280617b86617c41565b8152602001600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10617bcc5780548555617a9d565b82800160010185558215617a9d57600052602060002091601f016020900482015b82811115617a9d578254825591600101919060010190617bed565b8260138101928215617a9d5791820182811115617a9d578254825591600101919060010190617bed565b50611f2f906013810190617c7a565b604051806040016040528060008152602001600081525090565b6040518061026001604052806013906020820280368337509192915050565b61318e91905b808211156131ea5760008155600101617c80565b8035611dc781618fe7565b60008083601f840112617cb0578182fd5b5081356001600160401b03811115617cc6578182fd5b6020830191508360208083028501011115615a0857600080fd5b6000601f8381840112617cf1578182fd5b8235617d04617cff82618f9c565b618f76565b818152925060208084019085810160005b84811015617d96578135880189603f820112617d3057600080fd5b838101356001600160401b03811115617d4857600080fd5b617d59818901601f19168601618f76565b81815260408c81848601011115617d6f57600080fd5b82818501888401375060009181018601919091528552509282019290820190600101617d15565b50505050505092915050565b600082601f830112617db2578081fd5b8135617dc0617cff82618f9c565b818152915060208083019084810181840286018201871015617de157600080fd5b6000805b85811015617d965782356001600160401b0381168114617e03578283fd5b85529383019391830191600101617de5565b60008083601f840112617e26578182fd5b5081356001600160401b03811115617e3c578182fd5b602083019150836020828501011115615a0857600080fd5b600060208284031215617e65578081fd5b813561116081618fe7565b600060208284031215617e81578081fd5b815161116081618fe7565b60008060008060408587031215617ea1578283fd5b84356001600160401b0380821115617eb7578485fd5b617ec388838901617c9f565b90965094506020870135915080821115617edb578384fd5b50617ee887828801617c9f565b95989497509550505050565b600080600060608486031215617f08578283fd5b83356001600160401b0380821115617f1e578485fd5b81860187601f820112617f2f578586fd5b80359250617f3f617cff84618f9c565b80848252602080830192508084018b828389028701011115617f5f57898afd5b8994505b86851015617f8957617f758c82617c94565b845260019490940193928101928101617f63565b509097508801359350505080821115617fa0578384fd5b617fac87838801617da2565b93506040860135915080821115617fc1578283fd5b50617fce86828701617ce0565b9150509250925092565b600060208284031215617fe9578081fd5b81518015158114611160578182fd5b6000806020838503121561800a578182fd5b82356001600160401b0381111561801f578283fd5b61802b85828601617e15565b90969095509350505050565b6000806000806040858703121561804c578384fd5b84356001600160401b0380821115618062578586fd5b61806e88838901617e15565b90965094506020870135915080821115618086578384fd5b50617ee887828801617e15565b6000602082840312156180a4578081fd5b5035919050565b6000602082840312156180bc578081fd5b5051919050565b600080604083850312156180d5578182fd5b505080516020909101519092909150565b6000806000604084860312156180fa578081fd5b833560ff8116811461810a578182fd5b925060208401356001600160401b03811115618124578182fd5b61813086828701617e15565b9497909650939450505050565b6000815180845260208085019450808401835b838110156181755781516001600160a01b031687529582019590820190600101618150565b509495945050505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b600081518084526181c2816020860160208601618fbb565b601f01601f19169290920160200192915050565b600082516181e8818460208701618fbb565b9190910192915050565b918252602082015260400190565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b03968716815294861660208601529290941660408401526001600160401b03166060830152911515608082015260a081019190915260c00190565b6001600160a01b0393909316835260208301919091521515604082015260600190565b6001600160a01b0392909216825260ff16602082015260400190565b600060208252611160602083018461813d565b6000604082526182d4604083018561813d565b602083820381850152818551808452828401915082838202850101838801865b8381101561832257601f198784030185526183108383516181aa565b948601949250908501906001016182f4565b50909998505050505050505050565b600060808252618344608083018761813d565b828103602084810191909152865180835287820192820190845b8181101561837a5784518352938301939183019160010161835e565b5050848103604086015261838e818861813d565b93505050506001600160401b038316606083015295945050505050565b901515815260200190565b60006020825261116060208301846181aa565b6000604082526183dd604083018688618180565b82810360208401526183f0818587618180565b979650505050505050565b6020808252601c908201527f6c656e677468206f66206275726e526174696f206d69736d6174636800000000604082015260600190565b60208082526042908201527f746865206275726e526174696f20706c75732073797374656d5265776172645260408201527f6174696f206d757374206265206e6f2067726561746572207468616e20313030606082015261030360f41b608082015260a00190565b60208082526026908201527f6c656e677468206f66206d61784e756d4f664d61696e7461696e696e67206d696040820152650e6dac2e8c6d60d31b606082015260800190565b6020808252601b908201527f6261746368207472616e736665722072657475726e2066616c73650000000000604082015260600190565b6020808252602c908201527f6c656e677468206f66206d61784e756d4f66576f726b696e6743616e6469646160408201526b0e8cae640dad2e6dac2e8c6d60a31b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61696e7461696e536c6173685363616c65206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252818101527f6c656e677468206f66206e756d4f66436162696e657473206d69736d61746368604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252601f908201527f6f6e6c7920736c617368206f72207374616b6548756220636f6e747261637400604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526028908201527f746865206e756d4f66436162696e657473206d75737420626520677265617465604082015267072207468616e20360c41b606082015260800190565b60208082526039908201527f746865206e756d4f66436162696e657473206d757374206265206c657373207460408201527f68616e204d41585f4e554d5f4f465f56414c494441544f525300000000000000606082015260800190565b60208082526029908201527f746865206e756d626572206f662076616c696461746f727320657863656564206040820152681d1a19481b1a5b5a5d60ba1b606082015260800190565b60208082526022908201527f63616e206e6f7420646f207468697320747769636520696e206f6e6520626c6f604082015261636b60f01b606082015260800190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526037908201527f746865206d61784e756d4f664d61696e7461696e696e67206d7573742062652060408201527f6c657373207468616e206e756d4f66436162696e657473000000000000000000606082015260800190565b6020808252602b908201527f6475706c696361746520636f6e73656e7375732061646472657373206f66207660408201526a185b1a59185d1bdc94d95d60aa1b606082015260800190565b60208082526027908201527f7468652065787069726554696d655365636f6e64476170206973206f7574206f604082015266662072616e676560c81b606082015260800190565b6020808252601590820152746465706f7369742076616c7565206973207a65726f60581b604082015260600190565b60208082526049908201527f746865206d61784e756d4f66576f726b696e6743616e64696461746573206d7560408201527f7374206265206e6f742067726561746572207468616e206d61784e756d4f6643606082015268616e6469646174657360b81b608082015260a00190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b60208082526023908201527f63616e206e6f7420656e7465722054656d706f72617279204d61696e74656e616040820152626e636560e81b606082015260800190565b60208082526025908201527f6c656e677468206f66206a61696c2076616c696461746f7273206d757374206260408201526465206f6e6560d81b606082015260800190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61784e756d4f6643616e64696461746573206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252601290820152716e6f7420696e206d61696e74656e616e636560701b604082015260600190565b60208082526021908201527f666565206973206c6172676572207468616e2044555354595f494e434f4d494e6040820152604760f81b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b60208082526042908201527f7468652073797374656d526577617264526174696f20706c7573206275726e5260408201527f6174696f206d757374206265206e6f2067726561746572207468616e20313030606082015261030360f41b608082015260a00190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526026908201527f6c656e677468206f662065787069726554696d655365636f6e64476170206d696040820152650e6dac2e8c6d60d31b606082015260800190565b60208082526017908201527f6f6e6c792063757272656e742076616c696461746f7273000000000000000000604082015260600190565b60208082526021908201527f6661696c656420746f20706172736520696e69742076616c696461746f7253656040820152601d60fa1b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b60208082526024908201527f6c656e677468206f662073797374656d526577617264526174696f206d69736d6040820152630c2e8c6d60e31b606082015260800190565b6020808252603e908201527f746865206d61696e7461696e536c6173685363616c65206d757374206265206760408201527f726561746572207468616e203020616e64206c657373207468616e2031300000606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b60208082526029908201527f746865206d6573736167652073656e646572206d75737420626520736c6173686040820152680818dbdb9d1c9858dd60ba1b606082015260800190565b6020808252601f908201527f746865206d73672073656e646572206d757374206265207374616b6548756200604082015260600190565b61ffff91909116815260200190565b90815260200190565b60008482528315156020830152606060408301526179ac60608301846181aa565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff85168252604060208301526179ac604083018486618180565b6040518181016001600160401b0381118282101715618f9457600080fd5b604052919050565b60006001600160401b03821115618fb1578081fd5b5060209081020190565b60005b83811015618fd6578181015183820152602001618fbe565b838111156172735750506000910152565b6001600160a01b0381168114611f2f57600080fdfef901a880f901a4f844941284214b9b9c85549ab3d2b972df0deef66ac2c9946ddf42a51534fc98d0c0a3b42c963cace8441ddf946ddf42a51534fc98d0c0a3b42c963cace8441ddf8410000000f84494a2959d3f95eae5dc7d70144ce1b73b403b7eb6e0948081ef03f1d9e0bb4a5bf38f16285c879299f07f948081ef03f1d9e0bb4a5bf38f16285c879299f07f8410000000f8449435552c16704d214347f29fa77f77da6d75d7c75294dc4973e838e3949c77aced16ac2315dc2d7ab11194dc4973e838e3949c77aced16ac2315dc2d7ab1118410000000f84494980a75ecd1309ea12fa2ed87a8744fbfc9b863d594cc6ac05c95a99c1f7b5f88de0e3486c82293b27094cc6ac05c95a99c1f7b5f88de0e3486c82293b2708410000000f84494f474cf03cceff28abc65c9cbae594f725c80e12d94e61a183325a18a173319dd8e19c8d069459e217594e61a183325a18a173319dd8e19c8d069459e21758410000000f84494b71b214cb885500844365e95cd9942c7276e7fd894d22ca3ba2141d23adab65ce4940eb7665ea2b6a794d22ca3ba2141d23adab65ce4940eb7665ea2b6a7841000000070e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb20175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbb0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbaa164736f6c6343000604000a" + }, + "0x0000000000000000000000000000000000001002": { + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b506004361061035d5760003560e01c80637942fd05116101d3578063c80d4b8f11610104578063df8079e9116100a2578063f9a2bbc71161007c578063f9a2bbc714610601578063fc3e590814610609578063fc4333cd14610611578063fd6a6879146106195761035d565b8063df8079e9146105e9578063e1c7392a146105f1578063f1fad104146105f95761035d565b8063c96be4cb116100de578063c96be4cb146105b3578063cc844b73146105c6578063dc927faf146105d9578063dcc6f156146105e15761035d565b8063c80d4b8f14610590578063c81b166214610598578063c8509d81146105a05761035d565b8063a1a11bf511610171578063aad560631161014b578063aad5606314610565578063ab51bb961461056d578063ac0af62914610575578063ac4317511461057d5761035d565b8063a1a11bf51461054d578063a78abc1614610555578063aa82dce11461055d5761035d565b8063831d65d1116101ad578063831d65d11461052257806396713da9146105355780639dc092621461053d5780639f804f5f146105455761035d565b80637942fd051461050a5780637e434d54146105125780638256ace61461051a5761035d565b806343756e5c116102ad5780635bfb49901161024b57806370fd5bad1161022557806370fd5bad146104ea578063718a8aa8146104f257806375d47a0a146104fa5780637912a65d146105025761035d565b80635bfb4990146104c757806362b72cf5146104da5780636e47b482146104e25761035d565b806350055f901161028757806350055f90146104a757806351b4dce3146104af57806351e80672146104b7578063567a372d146104bf5761035d565b806343756e5c14610482578063493279b11461048a5780634bf6c8821461049f5761035d565b8063280870281161031a57806335aa2e44116102f457806335aa2e441461043157806337c8dab914610444578063389f4f71146104655780633dffc3871461046d5761035d565b8063280870281461040157806328aa02b1146104095780633306ccca1461041c5761035d565b80630bee7a67146103625780630e2374a5146103805780631182b8751461039557806322d1e80b146103b557806323bac5a2146103ca57806327962118146103ec575b600080fd5b61036a610621565b6040516103779190613d96565b60405180910390f35b610388610626565b6040516103779190613574565b6103a86103a33660046134aa565b61062c565b60405161037791906135ac565b6103bd610692565b60405161037791906135a1565b6103dd6103d83660046131af565b61069b565b60405161037793929190613d7e565b6103ff6103fa366004613307565b6106be565b005b610388610a13565b6103ff6104173660046131e7565b610a19565b610424610a4a565b6040516103779190613d67565b61038861043f36600461347a565b610a50565b6104576104523660046131af565b610a77565b604051610377929190613d70565b610424610ace565b610475610ad4565b6040516103779190613da7565b610388610ad9565b610492610adf565b6040516103779190613d58565b610475610ae4565b610424610ae9565b610388610aef565b610388610af5565b610424610afb565b6103ff6104d53660046131af565b610b01565b610424610c0d565b610388610c13565b610475610c19565b610475610c1e565b610388610c23565b610424610c29565b610475610c2e565b610388610c33565b610457610c39565b6103ff6105303660046134aa565b610c43565b610475610d56565b610388610d5b565b610424610d61565b610388610d67565b6103bd610d6d565b610388610d76565b610388610d7c565b61036a610d82565b610424610d87565b6103ff61058b36600461335e565b610d8c565b610424611328565b61038861132d565b6103ff6105ae3660046134aa565b611333565b6103ff6105c13660046131af565b6113a4565b6103ff6105d43660046133c7565b611815565b610388611df4565b610424611dfa565b610388611dff565b6103ff611e05565b610475611e41565b610388611e46565b610475611e4c565b6103ff611e51565b61038861229a565b606481565b61200181565b606033612000146106585760405162461bcd60e51b815260040161064f90613bfb565b60405180910390fd5b60005460ff1661067a5760405162461bcd60e51b815260040161064f906136a1565b60405162461bcd60e51b815260040161064f90613cec565b60075460ff1681565b600260208190526000918252604090912080546001820154919092015460ff1683565b60005460ff166106e05760405162461bcd60e51b815260040161064f906136a1565b6006546106ed5760146006555b6008546106fb576170806008555b81511580159061070b5750805115155b6107275760405162461bcd60e51b815260040161064f90613b59565b60408051600380825260808201909252606091816020015b606081526020019060019003908161073f57905050905061076060616122a0565b8160008151811061076d57fe5b6020026020010181905250610781836122bb565b8160018151811061078e57fe5b60200260200101819052506107a2826122bb565b816002815181106107af57fe5b602002602001018190525060606107c582612311565b60408051603480825260608281019093529293509091602082018180368337019050509050815160346020830182602086016068600019fa61080657600080fd5b506014810151603482015160405163436aa28360e11b8152600090612002906386d5450690610839908690600401613574565b60206040518083038186803b15801561085157600080fd5b505afa158015610865573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088991906131cb565b6001600160a01b031614156108b05760405162461bcd60e51b815260040161064f90613671565b43600854820110156108d45760405162461bcd60e51b815260040161064f90613612565b604051631871f7d960e31b81526120029063c38fbec8906108f9908590600401613574565b600060405180830381600087803b15801561091357600080fd5b505af1158015610927573d6000803e3d6000fd5b50506040516335409f7f60e01b815261100092506335409f7f9150610950908590600401613574565b600060405180830381600087803b15801561096a57600080fd5b505af115801561097e573d6000803e3d6000fd5b50506006546040516309a99b4f60e41b815260646110028031909302049350909150639a99b4f0906109b69033908590600401613588565b602060405180830381600087803b1580156109d057600080fd5b505af11580156109e4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a089190613492565b505050505050505050565b61200581565b3361100014610a3a5760405162461bcd60e51b815260040161064f906138e4565b610a458383836123a2565b505050565b61708081565b60018181548110610a5d57fe5b6000918252602090912001546001600160a01b0316905081565b600080610a82612f96565b5050506001600160a01b0316600090815260026020818152604092839020835160608101855281548082526001830154938201849052919093015460ff16151592909301919091529091565b60055481565b600181565b61100181565b606181565b600881565b60065481565b61200681565b61200081565b60045481565b3361100014610b225760405162461bcd60e51b815260040161064f906138e4565b60005460ff16610b445760405162461bcd60e51b815260040161064f906136a1565b61200063f7a251d7600b610b5784612580565b60006040518463ffffffff1660e01b8152600401610b7793929190613db5565b600060405180830381600087803b158015610b9157600080fd5b505af1925050508015610ba2575060015b610c0a573d808015610bd0576040519150601f19603f3d011682016040523d82523d6000602084013e610bd5565b606091505b50816001600160a01b0316600080516020613ea0833981519152600083604051610c009291906135bf565b60405180910390a2505b50565b60035481565b61100581565b600281565b601081565b61100881565b603281565b600b81565b61200381565b6004546005549091565b3361200014610c645760405162461bcd60e51b815260040161064f90613bfb565b60005460ff16610c865760405162461bcd60e51b815260040161064f906136a1565b610c8e612fb9565b6000610ccf84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061264992505050565b915091508015610d165781516040517f7f0956d47419b9525356e7111652b653b530ec6f5096dccc04589bc38e62996791610d0991613d96565b60405180910390a1610d4f565b81516040517f7d45f62d17443dd4547bca8a8112c60e2385669318dc300ec61a5d2492f262e791610d4691613d96565b60405180910390a15b5050505050565b600981565b61100781565b60085481565b61100681565b60005460ff1681565b61200281565b61300081565b600081565b600481565b60005460ff16610dae5760405162461bcd60e51b815260040161064f906136a1565b3361100714610dcf5760405162461bcd60e51b815260040161064f90613a48565b610e3a84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260148152731b5a5cd9195b59585b9bdc951a1c995cda1bdb1960621b602082015291506126c99050565b15610ed55760208114610e5f5760405162461bcd60e51b815260040161064f90613870565b604080516020601f8401819004810282018101909252828152600091610e9d9185858083850183828082843760009201919091525061272392505050565b905060018110158015610eb1575060055481105b610ecd5760405162461bcd60e51b815260040161064f90613bb6565b6004556112e5565b610f3b84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e19995b1bdb9e551a1c995cda1bdb19608a1b602082015291506126c99050565b15610fd75760208114610f605760405162461bcd60e51b815260040161064f90613a96565b604080516020601f8401819004810282018101909252828152600091610f9e9185858083850183828082843760009201919091525061272392505050565b90506103e88111158015610fb3575060045481115b610fcf5760405162461bcd60e51b815260040161064f9061375a565b6005556112e5565b61104484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601681527566656c6f6e79536c617368526577617264526174696f60501b602082015291506126c99050565b156110de57602081146110695760405162461bcd60e51b815260040161064f906139d0565b604080516020601f84018190048102820181019092528281526000916110a79185858083850183828082843760009201919091525061272392505050565b9050600a81101580156110ba5750606481105b6110d65760405162461bcd60e51b815260040161064f90613ad8565b6006556112e5565b61115284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f656e61626c654d616c6963696f7573566f7465536c6173680000000000000000602082015291506126c99050565b156111c957602081146111775760405162461bcd60e51b815260040161064f9061378f565b604080516020601f84018190048102820181019092528281526111b3919084848083850183828082843760009201919091525061272892505050565b6007805460ff19169115159190911790556112e5565b61123084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601081526f66656c6f6e79536c61736853636f706560801b602082015291506126c99050565b156112cd57602081146112555760405162461bcd60e51b815260040161064f9061395f565b604080516020601f84018190048102820181019092528281526000916112939185858083850183828082843760009201919091525061272392505050565b905061708081101580156112a95750620d2f0081105b6112c55760405162461bcd60e51b815260040161064f906136d8565b6008556112e5565b60405162461bcd60e51b815260040161064f90613c97565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a8484848460405161131a94939291906135e0565b60405180910390a150505050565b609681565b61100281565b33612000146113545760405162461bcd60e51b815260040161064f90613bfb565b60005460ff166113765760405162461bcd60e51b815260040161064f906136a1565b6040517f07db600eebe2ac176be8dcebad61858c245a4961bb32ca2aa3d159b09aa0810e90600090a1505050565b3341146113c35760405162461bcd60e51b815260040161064f90613c4a565b60005460ff166113e55760405162461bcd60e51b815260040161064f906136a1565b60035443116114065760405162461bcd60e51b815260040161064f90613d23565b3a156114245760405162461bcd60e51b815260040161064f906139a2565b60405163155853f360e21b8152611000906355614fcc90611449908490600401613574565b60206040518083038186803b15801561146157600080fd5b505afa158015611475573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149991906132eb565b6114a25761180e565b6114aa612f96565b506001600160a01b0381166000908152600260208181526040928390208351606081018552815481526001820154928101929092529091015460ff16158015928201929092529061150557602081018051600101905261155e565b60016040820181905260208201819052805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0384161790555b43815260055460208201518161157057fe5b0661173c57600060208201526040516335409f7f60e01b8152611000906335409f7f906115a1908590600401613574565b600060405180830381600087803b1580156115bb57600080fd5b505af11580156115cf573d6000803e3d6000fd5b505060405163436aa28360e11b81526000925061200291506386d54506906115fb908690600401613574565b60206040518083038186803b15801561161357600080fd5b505afa158015611627573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061164b91906131cb565b6001600160a01b03161461166e5761166982826020015160006123a2565b611737565b61200063f7a251d7600b61168185612580565b60006040518463ffffffff1660e01b81526004016116a193929190613db5565b600060405180830381600087803b1580156116bb57600080fd5b505af19250505080156116cc575060015b611737573d8080156116fa576040519150601f19603f3d011682016040523d82523d6000602084013e6116ff565b606091505b50826001600160a01b0316600080516020613ea083398151915283602001518360405161172d9291906135bf565b60405180910390a2505b6117a8565b60045481602001518161174b57fe5b066117a8576040516375abf10160e11b81526110009063eb57e20290611775908590600401613574565b600060405180830381600087803b15801561178f57600080fd5b505af11580156117a3573d6000803e3d6000fd5b505050505b6001600160a01b0382166000818152600260208181526040808420865181559186015160018301558581015191909201805460ff1916911515919091179055517fddb6012116e51abf5436d956a4f0ebd927e92c576ff96d7918290c8782291e3e9190a2505b5043600355565b60005460ff166118375760405162461bcd60e51b815260040161064f906136a1565b60075460ff166118595760405162461bcd60e51b815260040161064f9061363c565b6006546118665760146006555b600854611874576170806008555b60085481516040015143910111801561189857504360085482602001516040015101115b6118b45760405162461bcd60e51b815260040161064f90613cbe565b8060200151602001518160000151602001511480156118e25750806020015160600151816000015160600151145b156118ff5760405162461bcd60e51b815260040161064f906138b7565b80516040810151905110801561191e5750602081015160408101519051105b61193a5760405162461bcd60e51b815260040161064f90613839565b60208101515181515110801561195f5750806000015160400151816020015160400151105b8061198a575080515160208201515110801561198a5750806020015160400151816000015160400151105b806119a45750806020015160400151816000015160400151145b6119c05760405162461bcd60e51b815260040161064f90613723565b604080820151905163ea321e4960e01b81526110009163ea321e49916119e991906004016135ac565b60206040518083038186803b158015611a0157600080fd5b505afa158015611a15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3991906132eb565b611a555760405162461bcd60e51b815260040161064f90613a19565b611a6781600001518260400151612750565b8015611a805750611a8081602001518260400151612750565b611a9c5760405162461bcd60e51b815260040161064f906137da565b6060806110006001600160a01b0316633b071dcc6040518163ffffffff1660e01b815260040160006040518083038186803b158015611ada57600080fd5b505afa158015611aee573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611b169190810190613228565b9150915060005b8151811015611c5357611b47828281518110611b3557fe5b60200260200101518560400151612928565b15611c4b576006546040516309a99b4f60e41b815260646110028031909302049190639a99b4f090611b7f9033908590600401613588565b602060405180830381600087803b158015611b9957600080fd5b505af1158015611bad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bd19190613492565b506110006001600160a01b03166335409f7f858481518110611bef57fe5b60200260200101516040518263ffffffff1660e01b8152600401611c139190613574565b600060405180830381600087803b158015611c2d57600080fd5b505af1158015611c41573d6000803e3d6000fd5b5050505050611c53565b600101611b1d565b5060408084015190516317b4f35360e01b8152600091612002916317b4f35391611c7f916004016135ac565b60206040518083038186803b158015611c9757600080fd5b505afa158015611cab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ccf91906131cb565b6001600160a01b031614611d3d576040808401519051630e9fbf5160e01b815261200291630e9fbf5191611d0691906004016135ac565b600060405180830381600087803b158015611d2057600080fd5b505af1158015611d34573d6000803e3d6000fd5b50505050610a45565b6120006001600160a01b031663f7a251d7600b611d5d866040015161298c565b60006040518463ffffffff1660e01b8152600401611d7d93929190613db5565b600060405180830381600087803b158015611d9757600080fd5b505af1158015611dab573d6000803e3d6000fd5b505050506000611dc0846040015160006129c7565b60405190915081907f7b78aadacff901d8b63d0dba4f86283d4db8aef27f9ed70413dd860f1c9532b690600090a250505050565b61100381565b601481565b61200481565b60005460ff1615611e285760405162461bcd60e51b815260040161064f90613b22565b603260045560966005556000805460ff19166001179055565b601181565b61100081565b600381565b3361100014611e725760405162461bcd60e51b815260040161064f906138e4565b60005460ff16611e945760405162461bcd60e51b815260040161064f906136a1565b600154611ea057612298565b600154600090600019015b80821161226c576000805b82841015611fcf57611ec6612f96565b6002600060018781548110611ed757fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff161515908201526005549091506004900481602001511115611fb957600460055481611f4457fe5b04816020015103816020018181525050806002600060018881548110611f6657fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208351815591830151600183015591909101516002909101805460ff1916911515919091179055611fc3565b6001925050611fcf565b50836001019350611eb6565b82841161216657611fde612f96565b6002600060018681548110611fef57fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff1615159082015260055490915060049004816020015111156120d75760046005548161205c57fe5b0481602001510381602001818152505080600260006001878154811061207e57fe5b6000918252602080832091909101546001600160a01b03168352828101939093526040918201902083518155918301516001808401919091559201516002909101805460ff191691151591909117905591506121669050565b60026000600186815481106120e857fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff1916905580548061212c57fe5b600082815260209020810160001990810180546001600160a01b0319169055019055836121595750612166565b5060001990920191611fcf565b8180156121705750805b1561224f57600260006001868154811061218657fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff191690558054849081106121cd57fe5b600091825260209091200154600180546001600160a01b0390921691869081106121f357fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600180548061222c57fe5b600082815260209020810160001990810180546001600160a01b03191690550190555b8261225b57505061226c565b505060019091019060001901611eab565b6040517fcfdb3b6ccaeccbdc68be3c59c840e3b3c90f0a7c491f5fff1cf56cfda200dd9c90600090a150505b565b61100481565b60606122b36122ae836129e3565b6122bb565b90505b919050565b6060815160011480156122ed5750607f60f81b826000815181106122db57fe5b01602001516001600160f81b03191611155b156122f95750806122b6565b6122b361230b8351608060ff16612ac9565b83612b9b565b606081516000141561233257506040805160008152602081019091526122b6565b60608260008151811061234157fe5b602002602001015190506000600190505b8351811015612382576123788285838151811061236b57fe5b6020026020010151612b9b565b9150600101612352565b5061239b612395825160c060ff16612ac9565b82612b9b565b9392505050565b80156123cd576040516375cc7d8960e01b8152612002906375cc7d8990611d06908690600401613574565b6040516375cc7d8960e01b8152612002906375cc7d89906123f2908690600401613574565b600060405180830381600087803b15801561240c57600080fd5b505af192505050801561241d575060015b610a45576040516000815260443d1015612439575060006124d6565b60046000803e60005160e01c6308c379a0811461245a5760009150506124d6565b60043d036004833e81513d602482011167ffffffffffffffff82111715612486576000925050506124d6565b808301805167ffffffffffffffff8111156124a85760009450505050506124d6565b8060208301013d86018111156124c6576000955050505050506124d6565b601f01601f191660405250925050505b806124e15750612518565b836001600160a01b0316600080516020613ea0833981519152848360405161250a9291906135bf565b60405180910390a25061257b565b3d808015612542576040519150601f19603f3d011682016040523d82523d6000602084013e612547565b606091505b50836001600160a01b0316600080516020613ea083398151915284836040516125719291906135bf565b60405180910390a2505b610a45565b60408051600480825260a08201909252606091829190816020015b606081526020019060019003908161259b5790505090506125c4836001600160a01b0316612c18565b816000815181106125d157fe5b60200260200101819052506125e5436122a0565b816001815181106125f257fe5b602090810291909101015261260760616122a0565b8160028151811061261457fe5b6020026020010181905250612628426122a0565b8160038151811061263557fe5b602002602001018190525061239b81612311565b612651612fb9565b600061265b612fb9565b612663612fcb565b61267461266f86612c3b565b612c60565b90506000805b61268383612caa565b156126bc57806126af5761269e61269984612ccb565b612d19565b63ffffffff168452600191506126b4565b6126bc565b60010161267a565b5091935090915050915091565b6000816040516020016126dc9190613558565b60405160208183030381529060405280519060200120836040516020016127039190613558565b604051602081830303815290604052805190602001201490505b92915050565b015190565b8082015160009060ff811615612742576001915081612748565b60009150815b505092915050565b60408051600480825260a0820190925260009160609190816020015b606081526020019060019003908161276c5750506040805160208082528183019092529192506060919080820181803683370190505090506127b185600001516122a0565b826000815181106127be57fe5b60200260200101819052506127d96020866020015183612d9b565b6127e2816122bb565b826001815181106127ef57fe5b602002602001018190525061280785604001516122a0565b8260028151811061281457fe5b602002602001018190525061282f6020866060015183612d9b565b612838816122bb565b8260038151811061284557fe5b602002602001018190525061286b602061285e84612311565b8051906020012083612d9b565b6040805160b080825260e0820190925260609160208201818036833701905050905061289b818360006020612dab565b6128ad81876080015160206060612dab565b6128bb818660806030612dab565b604080516001808252818301909252606091602082018180368337019050509050815160016020830182602086016066600019fa6128f857600080fd5b506001612906826000612dfe565b60ff161461291b57600094505050505061271d565b5060019695505050505050565b8151815160009160019181148083146129445760009250612982565b600160208701838101602088015b60028483851001141561297d5780518351146129715760009650600093505b60209283019201612952565b505050505b5090949350505050565b60408051600480825260a08201909252606091829190816020015b60608152602001906001900390816129a75790505090506125c4836122bb565b600081602001835110156129da57600080fd5b50016020015190565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416612a2757506018612a4b565b6fffffffffffffffffffffffffffffffff198416612a4757506010612a4b565b5060005b6020811015612a8157818181518110612a6057fe5b01602001516001600160f81b03191615612a7957612a81565b600101612a4b565b60008160200390506060816040519080825280601f01601f191660200182016040528015612ab6576020820181803683370190505b5080830196909652508452509192915050565b6060680100000000000000008310612af35760405162461bcd60e51b815260040161064f90613811565b60408051600180825281830190925260609160208201818036833701905050905060378411612b4d5782840160f81b81600081518110612b2f57fe5b60200101906001600160f81b031916908160001a905350905061271d565b6060612b58856129e3565b90508381510160370160f81b82600081518110612b7157fe5b60200101906001600160f81b031916908160001a905350612b928282612b9b565b95945050505050565b6060806040519050835180825260208201818101602087015b81831015612bcc578051835260209283019201612bb4565b50855184518101855292509050808201602086015b81831015612bf9578051835260209283019201612be1565b508651929092011591909101601f01601f191660405250905092915050565b60408051600560a21b831860148201526034810190915260609061239b816122bb565b612c43612feb565b506040805180820190915281518152602082810190820152919050565b612c68612fcb565b612c7182612e1a565b612c7a57600080fd5b6000612c898360200151612e54565b60208085015160408051808201909152868152920190820152915050919050565b6000612cb4612feb565b505080518051602091820151919092015191011190565b612cd3612feb565b612cdc82612caa565b612ce557600080fd5b60208201516000612cf582612eb7565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590612d2e57508151602110155b612d3757600080fd5b6000612d468360200151612e54565b90508083600001511015612d6c5760405162461bcd60e51b815260040161064f90613b7f565b825160208085015183018051928490039291831015612d9257826020036101000a820491505b50949350505050565b9091018181526020918201910152565b60005b81811015610d4f57838181518110612dc257fe5b602001015160f81c60f81b858480600101955081518110612ddf57fe5b60200101906001600160f81b031916908160001a905350600101612dae565b60008160010183511015612e1157600080fd5b50016001015190565b8051600090612e2b575060006122b6565b6020820151805160001a9060c0821015612e4a576000925050506122b6565b5060019392505050565b8051600090811a6080811015612e6e5760009150506122b6565b60b8811080612e89575060c08110801590612e89575060f881105b15612e985760019150506122b6565b60c0811015612eac5760b5190190506122b6565b60f5190190506122b6565b80516000908190811a6080811015612ed25760019150612f8f565b60b8811015612ee757607e1981019150612f8f565b60c0811015612f3857600060b78203600186019550806020036101000a865104915060018101820193505080831015612f325760405162461bcd60e51b815260040161064f90613934565b50612f8f565b60f8811015612f4d5760be1981019150612f8f565b600060f78203600186019550806020036101000a8651049150600181018201935050808310156127485760405162461bcd60e51b815260040161064f90613934565b5092915050565b604051806060016040528060008152602001600081526020016000151581525090565b60408051602081019091526000815290565b6040518060400160405280612fde612feb565b8152602001600081525090565b604051806040016040528060008152602001600081525090565b600082601f830112613015578081fd5b815161302861302382613e08565b613de1565b818152915060208083019084810160005b8481101561309e578151870188603f82011261305457600080fd5b8381015161306461302382613e28565b81815260408b8184860101111561307a57600080fd5b61308983888401838701613e4c565b50865250509282019290820190600101613039565b505050505092915050565b60008083601f8401126130ba578182fd5b50813567ffffffffffffffff8111156130d1578182fd5b6020830191508360208285010111156130e957600080fd5b9250929050565b600082601f830112613100578081fd5b813561310e61302382613e28565b915080825283602082850101111561312557600080fd5b8060208401602084013760009082016020015292915050565b600060a0828403121561314f578081fd5b61315960a0613de1565b905081358152602082013560208201526040820135604082015260608201356060820152608082013567ffffffffffffffff81111561319757600080fd5b6131a3848285016130f0565b60808301525092915050565b6000602082840312156131c0578081fd5b813561239b81613e7c565b6000602082840312156131dc578081fd5b815161239b81613e7c565b6000806000606084860312156131fb578182fd5b833561320681613e7c565b925060208401359150604084013561321d81613e91565b809150509250925092565b6000806040838503121561323a578182fd5b825167ffffffffffffffff80821115613251578384fd5b81850186601f820112613262578485fd5b8051925061327261302384613e08565b80848252602080830192508084018a828389028701011115613292578889fd5b8894505b868510156132bd5780516132a981613e7c565b845260019490940193928101928101613296565b5088015190965093505050808211156132d4578283fd5b506132e185828601613005565b9150509250929050565b6000602082840312156132fc578081fd5b815161239b81613e91565b60008060408385031215613319578182fd5b823567ffffffffffffffff80821115613330578384fd5b61333c868387016130f0565b93506020850135915080821115613351578283fd5b506132e1858286016130f0565b60008060008060408587031215613373578182fd5b843567ffffffffffffffff8082111561338a578384fd5b613396888389016130a9565b909650945060208701359150808211156133ae578384fd5b506133bb878288016130a9565b95989497509550505050565b6000602082840312156133d8578081fd5b813567ffffffffffffffff808211156133ef578283fd5b81840160608187031215613401578384fd5b61340b6060613de1565b925080358281111561341b578485fd5b6134278782840161313e565b84525060208101358281111561343b578485fd5b6134478782840161313e565b60208501525060408101358281111561345e578485fd5b61346a878284016130f0565b6040850152509195945050505050565b60006020828403121561348b578081fd5b5035919050565b6000602082840312156134a3578081fd5b5051919050565b6000806000604084860312156134be578081fd5b833560ff811681146134ce578182fd5b9250602084013567ffffffffffffffff8111156134e9578182fd5b6134f5868287016130a9565b9497909650939450505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008151808452613544816020860160208601613e4c565b601f01601f19169290920160200192915050565b6000825161356a818460208701613e4c565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b60006020825261239b602083018461352c565b6000838252604060208301526135d8604083018461352c565b949350505050565b6000604082526135f4604083018688613502565b8281036020840152613607818587613502565b979650505050505050565b60208082526010908201526f195d9a59195b98d9481d1bdbc81bdb1960821b604082015260600190565b6020808252818101527f6d616c6963696f757320766f746520736c617368206e6f7420656e61626c6564604082015260600190565b6020808252601690820152751d985b1a59185d1bdc881b9bdd081b5a59dc985d195960521b604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252602b908201527f746865206d616c6963696f757320766f746520736c6173682073636f7065206f60408201526a7574206f662072616e676560a81b606082015260800190565b6020808252601a908201527f6e6f2076696f6c6174696f6e206f6620766f74652072756c6573000000000000604082015260600190565b6020808252818101527f7468652066656c6f6e795468726573686f6c64206f7574206f662072616e6765604082015260600190565b6020808252602b908201527f6c656e677468206f6620656e61626c654d616c6963696f7573566f7465536c6160408201526a0e6d040dad2e6dac2e8c6d60ab1b606082015260800190565b60208082526017908201527f766572696679207369676e6174757265206661696c6564000000000000000000604082015260600190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526019908201527f7372634e756d20626967676572207468616e207461724e756d00000000000000604082015260600190565b60208082526027908201527f6c656e677468206f66206d697364656d65616e6f725468726573686f6c64206d6040820152660d2e6dac2e8c6d60cb1b606082015260800190565b60208082526013908201527274776f206964656e746963616c20766f74657360681b604082015260600190565b60208082526030908201527f746865206d6573736167652073656e646572206d7573742062652076616c696460408201526f185d1bdc94d95d0818dbdb9d1c9858dd60821b606082015260800190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b60208082526023908201527f6c656e677468206f662066656c6f6e79536c61736853636f7065206d69736d616040820152620e8c6d60eb1b606082015260800190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b60208082526029908201527f6c656e677468206f662066656c6f6e79536c617368526577617264526174696f604082015268040dad2e6dac2e8c6d60bb1b606082015260800190565b6020808252601590820152741d9bdd195059191c881a5cc81b9bdd08199bdd5b99605a1b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526022908201527f6c656e677468206f662066656c6f6e795468726573686f6c64206d69736d61746040820152610c6d60f31b606082015260800190565b6020808252602a908201527f7468652066656c6f6e7920736c6173682072657761726420726174696f206f7560408201526974206f662072616e676560b01b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b6020808252600c908201526b32b6b83a3c903432b0b232b960a11b604082015260600190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526025908201527f746865206d697364656d65616e6f725468726573686f6c64206f7574206f662060408201526472616e676560d81b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b6020808252601490820152731d185c99d95d08189b1bd8dac81d1bdbc81bdb1960621b604082015260600190565b6020808252601e908201527f7265636569766520756e65787065637465642073796e207061636b6167650000604082015260600190565b6020808252818101527f63616e206e6f7420736c61736820747769636520696e206f6e6520626c6f636b604082015260600190565b61ffff91909116815260200190565b90815260200190565b918252602082015260400190565b92835260208301919091521515604082015260600190565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff8516825260606020830152613dd1606083018561352c565b9050826040830152949350505050565b60405181810167ffffffffffffffff81118282101715613e0057600080fd5b604052919050565b600067ffffffffffffffff821115613e1e578081fd5b5060209081020190565b600067ffffffffffffffff821115613e3e578081fd5b50601f01601f191660200190565b60005b83811015613e67578181015183820152602001613e4f565b83811115613e76576000848401525b50505050565b6001600160a01b0381168114610c0a57600080fd5b8015158114610c0a57600080fdfed7bc86ff5d08c8ab043edec743302aba2520e6635172a428bc956721db9e2d1ca164736f6c6343000604000a" + } + } + } } } \ No newline at end of file diff --git a/turbo/stages/headerdownload/header_algos.go b/turbo/stages/headerdownload/header_algos.go index caf16677635..5ed7d632881 100644 --- a/turbo/stages/headerdownload/header_algos.go +++ b/turbo/stages/headerdownload/header_algos.go @@ -610,7 +610,7 @@ func (hd *HeaderDownload) InsertHeader(hf FeedHeaderFunc, terminalTotalDifficult } for hd.persistedLinkQueue.Len() > hd.persistedLinkLimit { link := heap.Pop(&hd.persistedLinkQueue).(*Link) - log.Debug("HeaderEvicted", "link.blockHeight", link.blockHeight) + // log.Debug("HeaderEvicted", "link.blockHeight", link.blockHeight) dataflow.HeaderDownloadStates.AddChange(link.blockHeight, dataflow.HeaderEvicted) delete(hd.links, link.hash) link.ClearChildren() @@ -1117,8 +1117,8 @@ func (hd *HeaderDownload) ProcessHeader(sh ChainSegmentHeader, newBlock bool, pe } anchor.fLink = link hd.anchors[anchor.parentHash] = anchor - _, success := hd.anchorTree.ReplaceOrInsert(anchor) - log.Debug("AnchorTree add anchor", "anchor.blockHeight", anchor.blockHeight, "success", success) + hd.anchorTree.ReplaceOrInsert(anchor) + // log.Debug("AnchorTree add anchor", "anchor.blockHeight", anchor.blockHeight, "success", success) return true } return false From cf85a1bb61a054888f2cbacf6374c1b646bb9dfe Mon Sep 17 00:00:00 2001 From: blxdyx <125243069+blxdyx@users.noreply.github.com> Date: Wed, 3 Jul 2024 14:55:17 +0800 Subject: [PATCH 09/22] fix the systemcontract address (#423) --- params/chainspecs/bsc.json | 2 +- params/chainspecs/chapel.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/params/chainspecs/bsc.json b/params/chainspecs/bsc.json index e5c111cc988..f3d07057708 100644 --- a/params/chainspecs/bsc.json +++ b/params/chainspecs/bsc.json @@ -207,7 +207,7 @@ "balance": "0x0", "code": "0x6080604052600436106104fb5760003560e01c806388b32f111161028c578063c6d339451161015a578063e40716a1116100cc578063f92eb86b11610085578063f92eb86b14610d2d578063f9a2bbc714610d42578063fc3e590814610d57578063fccc281314610d6c578063fd4ad81f14610d81578063fd6a687914610db057610502565b8063e40716a114610c9b578063ea321e4914610cb0578063eb57e20214610cd0578063eda5868c14610cf0578063f1fad10414610d05578063f340fa0114610d1a57610502565b8063d86222d51161011e578063d86222d514610c1d578063daacdb6614610c32578063dc927faf14610c47578063df8079e914610c5c578063e086c7b114610c71578063e1c7392a14610c8657610502565b8063c6d3394514610bbe578063c81b166214610bd3578063c8509d811461098d578063ce910b0c14610be8578063d68fb56a14610c0857610502565b8063a78abc16116101fe578063ad3c9da6116101b7578063ad3c9da614610b3d578063aef198a914610b5d578063b7ab4db514610b72578063b8cf4ef114610b94578063bf9f4995146106fe578063c466689d14610ba957610502565b8063a78abc1614610ab4578063aa82dce114610ac9578063aad5606314610ade578063aaf5eb6814610af3578063ab51bb9614610b08578063ac43175114610b1d57610502565b806396713da91161025057806396713da914610a365780639dc0926214610a4b5780639fe0f81614610a60578063a0dc275814610a75578063a1a11bf514610a8a578063a5422d5c14610a9f57610502565b806388b32f11146109c25780638a7beb01146109d75780638b5ad0c9146109ec5780638d19a41014610a015780639369d7de14610a2157610502565b806351b4dce3116103c957806370fd5bad1161033b5780637e434d54116102f45780637e434d541461094e57806381650b6214610963578063820dcaa814610978578063831d65d11461098d578063853230aa1461090f57806386249882146109ad57610502565b806370fd5bad146108d0578063718a8aa8146108e557806375d47a0a146108fa57806378dfed4a1461090f5780637942fd05146109245780637a84ca2a1461093957610502565b80635d77156c1161038d5780635d77156c1461082a5780635de1e22c1461083f57806360eba4fe1461085457806362b72cf5146108745780636969a25c146108895780636e47b482146108bb57610502565b806351b4dce3146107ab57806351e80672146107c057806355614fcc146107d5578063565c56b3146107f55780635667515a1461081557610502565b8063300c35671161046d57806343756e5c1161042657806343756e5c1461072057806345cf9daf14610735578063493279b11461074a5780634bf6c8821461076c5780634df6e0c3146107815780635192c82c1461079657610502565b8063300c35671461065b578063321d398a1461067b5780633365af3a1461069b57806335409f7f146106bb5780633b071dcc146106db5780633dffc387146106fe57610502565b8063152ad3b8116104bf578063152ad3b8146105ba5780631e4c1524146105dc5780631ff18069146105fc578063219f22d51461061157806328087028146106265780632a0ffb6e1461063b57610502565b806304c4fec61461050757806307a568471461051e5780630bee7a67146105495780630e2374a51461056b5780631182b8751461058d57610502565b3661050257005b600080fd5b34801561051357600080fd5b5061051c610dc5565b005b34801561052a57600080fd5b50610533610e39565b6040516105409190618f10565b60405180910390f35b34801561055557600080fd5b5061055e610e3f565b6040516105409190618f3a565b34801561057757600080fd5b50610580610e44565b6040516105409190618200565b34801561059957600080fd5b506105ad6105a83660046180e6565b610e4a565b60405161054091906183b6565b3480156105c657600080fd5b506105cf611167565b60405161054091906183ab565b3480156105e857600080fd5b5061051c6105f7366004617ef4565b611170565b34801561060857600080fd5b50610533611846565b34801561061d57600080fd5b5061055e61184c565b34801561063257600080fd5b50610580611851565b34801561064757600080fd5b5061051c610656366004617e54565b611857565b34801561066757600080fd5b5061051c610676366004617e8c565b611904565b34801561068757600080fd5b506105cf610696366004618093565b611c4d565b3480156106a757600080fd5b506105cf6106b6366004618093565b611d1c565b3480156106c757600080fd5b5061051c6106d6366004617e54565b611dcd565b3480156106e757600080fd5b506106f0611f32565b6040516105409291906182c1565b34801561070a57600080fd5b5061071361220e565b6040516105409190618f4b565b34801561072c57600080fd5b50610580612213565b34801561074157600080fd5b50610533612219565b34801561075657600080fd5b5061075f61221f565b6040516105409190618f01565b34801561077857600080fd5b50610713612224565b34801561078d57600080fd5b506106f0612229565b3480156107a257600080fd5b506105336123b5565b3480156107b757600080fd5b506105806123bb565b3480156107cc57600080fd5b506105806123c1565b3480156107e157600080fd5b506105cf6107f0366004617e54565b6123c7565b34801561080157600080fd5b50610533610810366004617e54565b6123fc565b34801561082157600080fd5b5061071361244d565b34801561083657600080fd5b5061055e612452565b34801561084b57600080fd5b50610533612457565b34801561086057600080fd5b506105ad61086f366004618093565b61245d565b34801561088057600080fd5b50610533612503565b34801561089557600080fd5b506108a96108a4366004618093565b612509565b6040516105409695949392919061822d565b3480156108c757600080fd5b5061058061256d565b3480156108dc57600080fd5b50610713612573565b3480156108f157600080fd5b50610713612578565b34801561090657600080fd5b5061058061257d565b34801561091b57600080fd5b50610533612583565b34801561093057600080fd5b50610713612589565b34801561094557600080fd5b5061053361258e565b34801561095a57600080fd5b50610580612594565b34801561096f57600080fd5b5061055e61259a565b34801561098457600080fd5b5061053361259f565b34801561099957600080fd5b5061051c6109a83660046180e6565b6125a5565b3480156109b957600080fd5b50610533612606565b3480156109ce57600080fd5b5061053361260c565b3480156109e357600080fd5b506105cf612612565b3480156109f857600080fd5b5061053361261b565b348015610a0d57600080fd5b50610533610a1c366004617e54565b612621565b348015610a2d57600080fd5b5061051c612661565b348015610a4257600080fd5b50610713612775565b348015610a5757600080fd5b5061058061277a565b348015610a6c57600080fd5b50610533612780565b348015610a8157600080fd5b50610533612785565b348015610a9657600080fd5b5061058061278a565b348015610aab57600080fd5b506105ad612790565b348015610ac057600080fd5b506105cf6127af565b348015610ad557600080fd5b506105806127b8565b348015610aea57600080fd5b506105806127be565b348015610aff57600080fd5b506105336127c4565b348015610b1457600080fd5b5061055e61244d565b348015610b2957600080fd5b5061051c610b38366004618037565b6127cd565b348015610b4957600080fd5b50610533610b58366004617e54565b613086565b348015610b6957600080fd5b50610533613098565b348015610b7e57600080fd5b50610b876130a5565b60405161054091906182ae565b348015610ba057600080fd5b50610533613191565b348015610bb557600080fd5b50610533613196565b348015610bca57600080fd5b50610533612573565b348015610bdf57600080fd5b5061058061319c565b348015610bf457600080fd5b506105ad610c03366004618093565b6131a2565b348015610c1457600080fd5b506105336131af565b348015610c2957600080fd5b506105336131ee565b348015610c3e57600080fd5b506105336131fa565b348015610c5357600080fd5b50610580613200565b348015610c6857600080fd5b50610580613206565b348015610c7d57600080fd5b50610533610e3f565b348015610c9257600080fd5b5061051c61320c565b348015610ca757600080fd5b506105336133bb565b348015610cbc57600080fd5b506105cf610ccb366004617ff8565b6133c1565b348015610cdc57600080fd5b5061051c610ceb366004617e54565b613547565b348015610cfc57600080fd5b5061055e61364b565b348015610d1157600080fd5b50610713613650565b61051c610d28366004617e54565b613655565b348015610d3957600080fd5b506105336139d4565b348015610d4e57600080fd5b506105806139da565b348015610d6357600080fd5b50610713612780565b348015610d7857600080fd5b506105806139e0565b348015610d8d57600080fd5b50610da1610d9c366004618093565b6139e6565b60405161054093929190618f19565b348015610dbc57600080fd5b50610580613aa8565b6000610dd033612621565b9050600b8181548110610ddf57fe5b600091825260209091206001601690920201015460ff16610e1b5760405162461bcd60e51b8152600401610e1290618b1c565b60405180910390fd5b6000610e256131af565b9050610e343383836001613aae565b505050565b60095481565b606481565b61200181565b60005460609060ff16610e6f5760405162461bcd60e51b8152600401610e12906185dd565b3361200014610e905760405162461bcd60e51b8152600401610e1290618d1d565b600b54610f4e57610e9f617a00565b60015460005b81811015610f4a57600b8054600181018255600091909152835160008051602061901d833981519152601690920291820190815560208086015160008051602061964c8339815191528401805460ff1916911515919091179055604086015180518794610f269360008051602061903d833981519152909101920190617a2f565b506060820151610f3c9060038301906013617aa9565b505050806001019050610ea5565b5050505b610f56617ad6565b6000610f9785858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613d8392505050565b9150915080610fb357610faa6064613f3f565b92505050611160565b815160009060ff16610fd857610fd183602001518460400151613fa0565b905061112c565b825160ff16600114156111285782602001515160011461101d57600080516020618ffd83398151915260405161100d906189d5565b60405180910390a1506067611123565b6000836020015160008151811061103057fe5b602090810291909101810151516001600160a01b03811660009081526004909252604090912054909150801580611091575060018082038154811061107157fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b156110cf576040516001600160a01b038316907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a261111c565b60006110de8360018403615162565b90508061111a576040516001600160a01b038416907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a25b505b6000925050505b61112c565b5060655b63ffffffff811661115157505060408051600081526020810190915291506111609050565b61115a81613f3f565b93505050505b9392505050565b60075460ff1681565b33411461118f5760405162461bcd60e51b8152600401610e1290618d6c565b3a156111ad5760405162461bcd60e51b8152600401610e1290618a5b565b82516040805182815260208084028201019091526060908280156111eb57816020015b6111d8617afa565b8152602001906001900390816111d05790505b50905060005b82811015611295576040518060c0016040528087838151811061121057fe5b60200260200101516001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b0316815260200186838151811061125257fe5b60200260200101516001600160401b03168152602001600015158152602001600081525082828151811061128257fe5b60209081029190910101526001016111f1565b5060405163d31f968d60e01b81526120009063d31f968d906112c09061100090600890600401618292565b60206040518083038186803b1580156112d857600080fd5b505afa1580156112ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113109190617fd8565b15611633578051601554818111156113b257815b818110156113b057601580548061133757fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055601680548061138a57fe5b6001900381819060005260206000200160006113a69190617b2f565b9055600101611324565b505b60005b828110156115f2578181106114da5760158482815181106113d257fe5b602090810291909101810151825460018181018555600094855293839020825160049092020180546001600160a01b039283166001600160a01b0319918216178255938301519481018054958316958516959095179094556040820151600285018054606085015160808601511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590961692909716919091179290921692909217169290921790915560a0015160039091015585516016908790839081106114a257fe5b602090810291909101810151825460018101845560009384529282902081516114d49491909101929190910190617a2f565b506115ea565b8381815181106114e657fe5b6020026020010151601582815481106114fb57fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a09091015160039091015585518690829081106115b657fe5b6020026020010151601682815481106115cb57fe5b9060005260206000200190805190602001906115e8929190617a2f565b505b6001016113b5565b507fb8e726330a0dad1cf3d04e925663b17e391f1ed547d79b7f4e5f344119b44246826040516116229190618f10565b60405180910390a150505050610e34565b6060806116408386615525565b9150915060005b6001548110156117365760006001828154811061166057fe5b90600052602060002090600402016003015490508060001461172d5760006001838154811061168b57fe5b9060005260206000209060040201600301819055506120026001600160a01b031663092193ab82600185815481106116bf57fe5b60009182526020909120600491820201546040516001600160e01b031960e086901b1681526116fa926001600160a01b039092169101618200565b6000604051808303818588803b15801561171357600080fd5b505af1158015611727573d6000803e3d6000fd5b50505050505b50600101611647565b5047156117a4577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d4760405161176c9190618f10565b60405180910390a1604051611002904780156108fc02916000818181858888f193505050501580156117a2573d6000803e3d6000fd5b505b600060038190556005558151156117bf576117bf8282615a0f565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156117fc57600080fd5b505af1158015611810573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a150505050505050565b60035481565b606881565b61200581565b33612002146118785760405162461bcd60e51b8152600401610e1290618eca565b60005b60155481101561190057816001600160a01b03166015828154811061189c57fe5b60009182526020909120600490910201546001600160a01b031614156118f8576001601582815481106118cb57fe5b9060005260206000209060040201600201601c6101000a81548160ff021916908315150217905550611900565b60010161187b565b5050565b3341146119235760405162461bcd60e51b8152600401610e1290618d6c565b60105443116119445760405162461bcd60e51b8152600401610e1290618770565b3a156119625760405162461bcd60e51b8152600401610e1290618a5b565b60005460ff166119845760405162461bcd60e51b8152600401610e12906185dd565b60006110023168056bc75e2d631000008111156119bb576119b48168056bc75e2d6310000063ffffffff6161fe16565b91506119c2565b5050611c43565b6040516309a99b4f60e41b815261100290639a99b4f0906119e99030908690600401618214565b602060405180830381600087803b158015611a0357600080fd5b505af1158015611a17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3b91906180ab565b915081611a49575050611c43565b6000805b84811015611a7757858582818110611a6157fe5b9050602002013582019150806001019050611a4d565b5080611a8557505050611c43565b6000806000805b89811015611c3b5784898983818110611aa157fe5b90506020020135880281611ab157fe5b0493508a8a82818110611ac057fe5b9050602002016020810190611ad59190617e54565b6001600160a01b03811660009081526004602052604090205490935091508115611bf1576000600180840381548110611b0a57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff1615611b7757836001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d8586604051611b6a9190618f10565b60405180910390a2611beb565b600354611b8a908663ffffffff61624016565b6003908155810154611ba2908663ffffffff61624016565b60038201556040516001600160a01b038516907fcb0aad6cf9cd03bdf6137e359f541c42f38b39f007cae8e89e88aa7d8c6617b290611be2908890618f10565b60405180910390a25b50611c33565b826001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d8585604051611c2a9190618f10565b60405180910390a25b600101611a8c565b505050505050505b5050436010555050565b6001546000908210611c6157506000611d17565b60006001600160a01b031660018381548110611c7957fe5b60009182526020909120600490910201546001600160a01b03161480611ca957506008541580611ca95750600a54155b80611cb8575060085460095410155b80611cc95750611cc782611d1c565b155b80611cf257506000600b8381548110611cde57fe5b906000526020600020906016020160000154115b80611d0657506001611d026130a5565b5111155b15611d1357506000611d17565b5060015b919050565b6001546000908210611d3057506000611d17565b600b548210611d6d5760018281548110611d4657fe5b9060005260206000209060040201600201601c9054906101000a900460ff16159050611d17565b60018281548110611d7a57fe5b9060005260206000209060040201600201601c9054906101000a900460ff16158015611dc75750600b8281548110611dae57fe5b600091825260209091206001601690920201015460ff16155b92915050565b600b54611e8b57611ddc617a00565b60015460005b81811015611e8757600b8054600181018255600091909152835160008051602061901d833981519152601690920291820190815560208086015160008051602061964c8339815191528401805460ff1916911515919091179055604086015180518794611e639360008051602061903d833981519152909101920190617a2f565b506060820151611e799060038301906013617aa9565b505050806001019050611de2565b5050505b336110011480611e9c575033612002145b611eb85760405162461bcd60e51b8152600401610e1290618614565b6001600160a01b03811660009081526004602052604090205480611edc5750611f2f565b6001810390506000600b8281548110611ef157fe5b600091825260209091206001601690920201015460ff169050611f148383615162565b8015611f1d5750805b15610e34576009805460001901905550505b50565b60015460609081906000805b82811015611f855760018181548110611f5357fe5b9060005260206000209060040201600201601c9054906101000a900460ff16611f7d576001909101905b600101611f3e565b50606081604051908082528060200260200182016040528015611fb2578160200160208202803683370190505b509050606082604051908082528060200260200182016040528015611feb57816020015b6060815260200190600190039081611fd65790505b50600b54600094509091508414156121665760005b84811015612160576001818154811061201557fe5b9060005260206000209060040201600201601c9054906101000a900460ff16612158576001818154811061204557fe5b600091825260209091206004909102015483516001600160a01b039091169084908690811061207057fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600b818154811061209d57fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156121355780601f1061210a57610100808354040283529160200191612135565b820191906000526020600020905b81548152906001019060200180831161211857829003601f168201915b505050505082858151811061214657fe5b60209081029190910101526001909301925b600101612000565b50612202565b60005b84811015612200576001818154811061217e57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166121f857600181815481106121ae57fe5b600091825260209091206004909102015483516001600160a01b03909116908490869081106121d957fe5b6001600160a01b03909216602092830291909101909101526001909301925b600101612169565b505b909450925050505b9091565b600181565b61100181565b60085481565b603881565b600881565b6060806000600e549050600080600c5411612245576015612249565b600c545b905060606122556130a5565b9050606061226282616265565b90508282511161227957909450925061220a915050565b8383835103101561228b578282510393505b83156122c15760c843046122a783838388880360008a8a6163d3565b6122bf8383838888038989038a8b8b8b5103016163d3565b505b6060836040519080825280602002602001820160405280156122ed578160200160208202803683370190505b50905060608460405190808252806020026020018201604052801561232657816020015b60608152602001906001900390816123115790505b50905060005b858110156123a75784818151811061234057fe5b602002602001015183828151811061235457fe5b60200260200101906001600160a01b031690816001600160a01b03168152505083818151811061238057fe5b602002602001015182828151811061239457fe5b602090810291909101015260010161232c565b509096509450505050509091565b60065481565b61200681565b61200081565b6001600160a01b038116600090815260046020526040812054806123ef576000915050611d17565b6000190161116081611d1c565b6001600160a01b03811660009081526004602052604081205480612424576000915050611d17565b60018082038154811061243357fe5b906000526020600020906004020160030154915050919050565b600081565b606781565b600f5481565b6012818154811061246a57fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152935090918301828280156124fb5780601f106124d0576101008083540402835291602001916124fb565b820191906000526020600020905b8154815290600101906020018083116124de57829003601f168201915b505050505081565b60105481565b6001818154811061251657fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b601081565b61100881565b6103e881565b600b81565b600c5481565b61200381565b606681565b61271081565b33612000146125c65760405162461bcd60e51b8152600401610e1290618d1d565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f389021016058383836040516125f993929190618f59565b60405180910390a1505050565b60025481565b60115481565b60145460ff1681565b600a5481565b6001600160a01b038116600090815260046020526040812054806126575760405162461bcd60e51b8152600401610e1290618ca5565b6000190192915050565b600b5461271f57612670617a00565b60015460005b8181101561271b57600b8054600181018255600091909152835160008051602061901d833981519152601690920291820190815560208086015160008051602061964c8339815191528401805460ff19169115159190911790556040860151805187946126f79360008051602061903d833981519152909101920190617a2f565b50606082015161270d9060038301906013617aa9565b505050806001019050612676565b5050505b60085461272c5760036008555b600a54612739576002600a555b600061274433612621565b905061274f81611c4d565b61276b5760405162461bcd60e51b8152600401610e1290618992565b611f2f338261652a565b600981565b61100781565b600381565b60c881565b61100681565b6040518061062001604052806105ef815260200161905d6105ef913981565b60005460ff1681565b61200281565b61300081565b6402540be40081565b60005460ff166127ef5760405162461bcd60e51b8152600401610e12906185dd565b33611007146128105760405162461bcd60e51b8152600401610e1290618a89565b61287a84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b602082015291506165c29050565b15612917576020811461289f5760405162461bcd60e51b8152600401610e1290618c5f565b604080516020601f84018190048102820181019092528281526000916128dd9185858083850183828082843760009201919091525061661b92505050565b9050606481101580156128f35750620186a08111155b61290f5760405162461bcd60e51b8152600401610e1290618882565b600255613043565b61297784848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260098152686275726e526174696f60b81b602082015291506165c29050565b15612a1a576020811461299c5760405162461bcd60e51b8152600401610e12906183fb565b604080516020601f84018190048102820181019092528281526000916129da9185858083850183828082843760009201919091525061661b92505050565b90506127106129f4600f548361624090919063ffffffff16565b1115612a125760405162461bcd60e51b8152600401610e1290618432565b600655613043565b612a8484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260138152726d61784e756d4f664d61696e7461696e696e6760681b602082015291506165c29050565b15612b1e5760208114612aa95760405162461bcd60e51b8152600401610e129061849a565b604080516020601f8401819004810282018101909252828152600091612ae79185858083850183828082843760009201919091525061661b92505050565b600c5490915080612af6575060155b808210612b155760405162461bcd60e51b8152600401610e12906187da565b50600855613043565b612b8784848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61696e7461696e536c6173685363616c6560701b602082015291506165c29050565b15612c205760208114612bac5760405162461bcd60e51b8152600401610e1290618563565b604080516020601f8401819004810282018101909252828152600091612bea9185858083850183828082843760009201919091525061661b92505050565b9050600081118015612bfc5750600a81105b612c185760405162461bcd60e51b8152600401610e1290618dfd565b600a55613043565b612c9484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601981527f6d61784e756d4f66576f726b696e6743616e6469646174657300000000000000602082015291506165c29050565b15612d235760208114612cb95760405162461bcd60e51b8152600401610e1290618517565b604080516020601f8401819004810282018101909252828152600091612cf79185858083850183828082843760009201919091525061661b92505050565b9050600d54811115612d1b5760405162461bcd60e51b8152600401610e12906188f8565b600e55613043565b612d8c84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61784e756d4f6643616e6469646174657360701b602082015291506165c29050565b15612e0e5760208114612db15760405162461bcd60e51b8152600401610e1290618ad7565b604080516020601f8401819004810282018101909252828152600091612def9185858083850183828082843760009201919091525061661b92505050565b600d819055600e54909150811015612e0857600d54600e555b50613043565b612e7284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c6e756d4f66436162696e65747360981b602082015291506165c29050565b15612f205760208114612e975760405162461bcd60e51b8152600401610e12906185a8565b604080516020601f8401819004810282018101909252828152600091612ed59185858083850183828082843760009201919091525061661b92505050565b905060008111612ef75760405162461bcd60e51b8152600401610e1290618682565b6064811115612f185760405162461bcd60e51b8152600401610e12906186ca565b600c55613043565b612f8884848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601181527073797374656d526577617264526174696f60781b602082015291506165c29050565b1561302b5760208114612fad5760405162461bcd60e51b8152600401610e1290618db9565b604080516020601f8401819004810282018101909252828152600091612feb9185858083850183828082843760009201919091525061661b92505050565b90506127106130056006548361624090919063ffffffff16565b11156130235760405162461bcd60e51b8152600401610e1290618bc0565b600f55613043565b60405162461bcd60e51b8152600401610e1290618e5a565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a8484848460405161307894939291906183c9565b60405180910390a150505050565b60046020526000908152604090205481565b68056bc75e2d6310000081565b6001546060906000805b828110156130d4576130c081611d1c565b156130cc578160010191505b6001016130af565b50606081604051908082528060200260200182016040528015613101578160200160208202803683370190505b5090506000915060005b838110156131885761311c81611d1c565b15613180576001818154811061312e57fe5b600091825260209091206004909102015482516001600160a01b039091169083908590811061315957fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508260010192505b60010161310b565b50925050505b90565b601581565b61027181565b61100281565b6013818154811061246a57fe5b60006131b96130a5565b519050600080600c54116131ce5760156131d2565b600c545b9050808211156131e0578091505b816131ea57600191505b5090565b67016345785d8a000081565b60055481565b61100381565b61200481565b60005460ff161561322f5760405162461bcd60e51b8152600401610e1290618b89565b613237617ad6565b600061325d6040518061062001604052806105ef815260200161905d6105ef9139613d83565b915091508061327e5760405162461bcd60e51b8152600401610e1290618cdc565b60005b8260200151518110156133a3576001836020015182815181106132a057fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a09093015160039093019290925591860151805191850193918590811061337657fe5b602090810291909101810151516001600160a01b0316825281019190915260400160002055600101613281565b50506103e8600255506000805460ff19166001179055565b600d5481565b601354600090815b818110156134ca576134b285858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060138054909250859150811061341a57fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156134a85780601f1061347d576101008083540402835291602001916134a8565b820191906000526020600020905b81548152906001019060200180831161348b57829003601f168201915b5050505050616620565b156134c257600192505050611dc7565b6001016133c9565b5060125460005b8181101561353b5761352286868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060128054909250859150811061341a57fe5b156135335760019350505050611dc7565b6001016134d1565b50600095945050505050565b33611001146135685760405162461bcd60e51b8152600401610e1290618e81565b600b5461362657613577617a00565b60015460005b8181101561362257600b8054600181018255600091909152835160008051602061901d833981519152601690920291820190815560208086015160008051602061964c8339815191528401805460ff19169115159190911790556040860151805187946135fe9360008051602061903d833981519152909101920190617a2f565b5060608201516136149060038301906013617aa9565b50505080600101905061357d565b5050505b600061363182616684565b905061363c81611c4d565b1561190057611900828261652a565b606581565b601181565b3341146136745760405162461bcd60e51b8152600401610e1290618d6c565b60005460ff166136965760405162461bcd60e51b8152600401610e12906185dd565b600034116136b65760405162461bcd60e51b8152600401610e12906188c9565b3a156136d45760405162461bcd60e51b8152600401610e1290618a5b565b6001600160a01b03811660009081526004602052604090205460145434919060ff1661371457610271600f556103e86006556014805460ff191660011790555b60008211801561372657506000600f54115b156137d8576000613754612710613748600f543461680790919063ffffffff16565b9063ffffffff61684116565b905080156137d6576040516110029082156108fc029083906000818181858888f1935050505015801561378b573d6000803e3d6000fd5b507f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d816040516137bb9190618f10565b60405180910390a16137d3838263ffffffff6161fe16565b92505b505b6000821180156137ea57506000600654115b1561389057600061380c6127106137486006543461680790919063ffffffff16565b9050801561388e5760405161dead9082156108fc029083906000818181858888f19350505050158015613843573d6000803e3d6000fd5b507f627059660ea01c4733a328effb2294d2f86905bf806da763a89cee254de8bee5816040516138739190618f10565b60405180910390a161388b838263ffffffff6161fe16565b92505b505b801561398e5760006001808303815481106138a757fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff161561391457836001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4846040516139079190618f10565b60405180910390a2613988565b600354613927908463ffffffff61624016565b600390815581015461393f908463ffffffff61624016565b60038201556040516001600160a01b038516907f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc0559061397f908690618f10565b60405180910390a25b50610e34565b826001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4836040516139c79190618f10565b60405180910390a2505050565b600e5481565b61100081565b61dead81565b600b81815481106139f357fe5b6000918252602091829020601691909102018054600180830154600280850180546040805161010096831615969096026000190190911692909204601f810188900488028501880190925281845293965060ff90911694919291830182828015613a9e5780601f10613a7357610100808354040283529160200191613a9e565b820191906000526020600020905b815481529060010190602001808311613a8157829003601f168201915b5050505050905083565b61100481565b6000600a5460001480613abf575082155b80613aca5750600954155b15613ad757506000613d7b565b60096000815460019003919050819055506000613b22600a5461374886613748600b8a81548110613b0457fe5b6000918252602090912060169091020154439063ffffffff6161fe16565b90506000600b8681548110613b3357fe5b906000526020600020906016020160010160006101000a81548160ff0219169083151502179055506000806110016001600160a01b0316638256ace66040518163ffffffff1660e01b8152600401604080518083038186803b158015613b9857600080fd5b505afa158015613bac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613bd091906180c3565b9150915060009350808310613d3157613be98888615162565b5060405163436aa28360e11b8152600090612002906386d5450690613c12908c90600401618200565b60206040518083038186803b158015613c2a57600080fd5b505afa158015613c3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c629190617e70565b6001600160a01b031614613cd0576040516328aa02b160e01b8152611001906328aa02b190613c99908b9087908a9060040161826f565b600060405180830381600087803b158015613cb357600080fd5b505af1158015613cc7573d6000803e3d6000fd5b50505050613d28565b6040516305bfb49960e41b815261100190635bfb499090613cf5908b90600401618200565b600060405180830381600087803b158015613d0f57600080fd5b505af1158015613d23573d6000803e3d6000fd5b505050505b60019350613d43565b818310613d4357613d4188616684565b505b6040516001600160a01b038916907fb9d38178dc641ff1817967a63c9078cbcd955a9f1fcd75e0e3636de615d44d3b90600090a25050505b949350505050565b613d8b617ad6565b6000613d95617ad6565b613d9d617b73565b613dae613da986616883565b6168a8565b90506000805b613dbd836168f2565b15613f315780613de257613dd8613dd384616913565b616961565b60ff168452613f29565b8060011415613f24576060613dfe613df985616913565b6169e1565b90508051604051908082528060200260200182016040528015613e3b57816020015b613e28617afa565b815260200190600190039081613e205790505b5085602001819052508051604051908082528060200260200182016040528015613e7957816020015b6060815260200190600190039081613e645790505b50604086015260005b8151811015613f1957613e93617afa565b60606000613eb3858581518110613ea657fe5b6020026020010151616ab2565b92509250925080613ed3578860009a509a50505050505050505050613f3a565b8289602001518581518110613ee457fe5b60200260200101819052508189604001518581518110613f0057fe5b6020026020010181905250505050806001019050613e82565b506001925050613f29565b613f31565b600101613db4565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b6060815260200190600190039081613f59579050509050613f7f8363ffffffff16616bcc565b81600081518110613f8c57fe5b602002602001018190525061116081616bdf565b6000606483511115613fd757600080516020618ffd833981519152604051613fc790618727565b60405180910390a1506066611dc7565b60005b83518110156140755760005b8181101561406c57848181518110613ffa57fe5b6020026020010151600001516001600160a01b031685838151811061401b57fe5b6020026020010151600001516001600160a01b0316141561406457600080516020618ffd83398151915260405161405190618837565b60405180910390a1606692505050611dc7565b600101613fe6565b50600101613fda565b5060608060606015805480602002602001604051908101604052809291908181526020016000905b828210156141275760008481526020908190206040805160c0810182526004860290920180546001600160a01b039081168452600180830154821685870152600283015491821693850193909352600160a01b81046001600160401b03166060850152600160e01b900460ff16151560808401526003015460a0830152908352909201910161409d565b50505050905060606016805480602002602001604051908101604052809291908181526020016000905b828210156141fc5760008481526020908190208301805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156141e85780601f106141bd576101008083540402835291602001916141e8565b820191906000526020600020905b8154815290600101906020018083116141cb57829003601f168201915b505050505081526020019060010190614151565b50505050905060005b82518110156142595782818151811061421a57fe5b60200260200101516060015160030283828151811061423557fe5b60209081029190910101516001600160401b03909116606090910152600101614205565b5060608061426989898686616c69565b915091506142778282615525565b600154604080518281526020808402820101909152929850909650600095508594509250606091508280156142b6578160200160208202803683370190505b50905060005b828110156144475760006001600160a01b03166120026001600160a01b03166386d54506600184815481106142ed57fe5b60009182526020909120600491820201546040516001600160e01b031960e085901b168152614328926001600160a01b039092169101618200565b60206040518083038186803b15801561434057600080fd5b505afa158015614354573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143789190617e70565b6001600160a01b0316146143da57600182828151811061439457fe5b602002602001019060ff16908160ff1681525050600181815481106143b557fe5b9060005260206000209060040201600301546000146143d5578360010193505b61443f565b67016345785d8a0000600182815481106143f057fe5b906000526020600020906004020160030154106144125784600101945061443f565b6001818154811061441f57fe5b90600052602060002090600402016003015460001461443f578360010193505b6001016142bc565b50606084604051908082528060200260200182016040528015614474578160200160208202803683370190505b5090506060856040519080825280602002602001820160405280156144a3578160200160208202803683370190505b5090506060866040519080825280602002602001820160405280156144d2578160200160208202803683370190505b509050606087604051908082528060200260200182016040528015614501578160200160208202803683370190505b5090506000606088604051908082528060200260200182016040528015614532578160200160208202803683370190505b509050606089604051908082528060200260200182016040528015614561578160200160208202803683370190505b50905060009a506000995060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b1580156145a957600080fd5b505afa1580156145bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145e191906180ab565b905067016345785d8a000081111561462d57600080516020618ffd83398151915260405161460e90618b48565b60405180910390a160689e505050505050505050505050505050611dc7565b60005b8a8110156149c15789818151811061464457fe5b602002602001015160ff166001141561473a576001818154811061466457fe5b906000526020600020906004020160030154600014614735576001818154811061468a57fe5b600091825260209091206004909102015484516001600160a01b039091169085908e9081106146b557fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600181815481106146e257fe5b906000526020600020906004020160030154838d8151811061470057fe5b60200260200101818152505060018a8d8151811061471a57fe5b602002602001019060ff16908160ff16815250508b6001019b505b6149b9565b67016345785d8a00006001828154811061475057fe5b906000526020600020906004020160030154106148d5576001818154811061477457fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316898e815181106147a557fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be400600183815481106147da57fe5b906000526020600020906004020160030154816147f357fe5b066001838154811061480157fe5b90600052602060002090600402016003015403905061482983826161fe90919063ffffffff16565b898f8151811061483557fe5b6020026020010181815250506001828154811061484e57fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316878f8151811061487f57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081888f815181106148ac57fe5b60209081029190910101526148c7868263ffffffff61624016565b95508d6001019d50506149b9565b600181815481106148e257fe5b9060005260206000209060040201600301546000146149b9576001818154811061490857fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316848d8151811061493957fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506001818154811061496657fe5b906000526020600020906004020160030154838d8151811061498457fe5b60200260200101818152505060008a8d8151811061499e57fe5b602002602001019060ff16908160ff16815250508b6001019b505b600101614630565b5060008415614c37576002546040516303702b2960e51b815261100491636e0565209188916149fb918e918e918d91420190600401618331565b6020604051808303818588803b158015614a1457600080fd5b505af193505050508015614a45575060408051601f3d908101601f19168201909252614a4291810190617fd8565b60015b614bbc576040516000815260443d1015614a6157506000614afc565b60046000803e60005160e01c6308c379a08114614a82576000915050614afc565b60043d036004833e81513d60248201116001600160401b0382111715614aad57600092505050614afc565b80830180516001600160401b03811115614ace576000945050505050614afc565b8060208301013d8601811115614aec57600095505050505050614afc565b601f01601f191660405250925050505b80614b075750614b49565b60019150857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf28082604051614b3b91906183b6565b60405180910390a250614bb7565b3d808015614b73576040519150601f19603f3d011682016040523d82523d6000602084013e614b78565b606091505b5060019150857fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a4582604051614bad91906183b6565b60405180910390a2505b614c37565b8015614bfe577fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b7086604051614bf19190618f10565b60405180910390a1614c35565b857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280604051614c2c906184e0565b60405180910390a25b505b8015614ded5760005b8751811015614deb576000888281518110614c5757fe5b60200260200101519050600060018281548110614c7057fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc9185908110614ca157fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f1935050505090508015614d5d5760018281548110614ce257fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d9185908110614d3157fe5b906000526020600020906004020160030154604051614d509190618f10565b60405180910390a2614de1565b60018281548110614d6a57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d9185908110614db957fe5b906000526020600020906004020160030154604051614dd89190618f10565b60405180910390a25b5050600101614c40565b505b835115614fe35760005b8451811015614fe1578a8181518110614e0c57fe5b602002602001015160ff1660011415614eab576120026001600160a01b031663092193ab858381518110614e3c57fe5b6020026020010151878481518110614e5057fe5b60200260200101516040518363ffffffff1660e01b8152600401614e749190618200565b6000604051808303818588803b158015614e8d57600080fd5b505af1158015614ea1573d6000803e3d6000fd5b5050505050614fd9565b6000858281518110614eb957fe5b60200260200101516001600160a01b03166108fc868481518110614ed957fe5b60200260200101519081150290604051600060405180830381858888f1935050505090508015614f6f57858281518110614f0f57fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d868481518110614f4d57fe5b6020026020010151604051614f629190618f10565b60405180910390a2614fd7565b858281518110614f7b57fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d868481518110614fb957fe5b6020026020010151604051614fce9190618f10565b60405180910390a25b505b600101614df7565b505b5050505050505050505050505060005b600154811015615050576001818154811061500a57fe5b9060005260206000209060040201600301546000146150485760006001828154811061503257fe5b9060005260206000209060040201600301819055505b600101614ff3565b5047156150be577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d476040516150869190618f10565b60405180910390a1604051611002904780156108fc02916000818181858888f193505050501580156150bc573d6000803e3d6000fd5b505b600060038190556005558151156150d9576150d98282615a0f565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561511657600080fd5b505af115801561512a573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a1506000949350505050565b6000806001838154811061517257fe5b9060005260206000209060040201600301549050600060018080549050039050600161519c6130a5565b51116151d1576000600185815481106151b157fe5b906000526020600020906004020160030181905550600092505050611dc7565b846001600160a01b03167f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a708360405161520a9190618f10565b60405180910390a26001600160a01b038516600090815260046020526040812055835b600154600019018110156153f7576001816001018154811061524b57fe5b90600052602060002090600402016001828154811061526657fe5b60009182526020909120825460049092020180546001600160a01b03199081166001600160a01b0393841617825560018085015481840180548416918616919091179055600280860180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b19909416939093179055600392830154920191909155600b80549091830190811061532757fe5b9060005260206000209060160201600b828154811061534257fe5b600091825260209091208254601690920201908155600180830154818301805460ff909216151560ff1990921691909117905560028084018054615399938386019390821615610100026000190190911604617b93565b506153ac60038281019084016013617c08565b509050508060010160046000600184815481106153c557fe5b600091825260208083206004909202909101546001600160a01b0316835282019290925260400190205560010161522d565b50600180548061540357fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b80548061545657fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906154886002830182617b2f565b615496600383016000617c32565b5050905560008183816154a557fe5b04905080156155195760015460005b81811015615516576154ed83600183815481106154cd57fe5b90600052602060002090600402016003015461624090919063ffffffff16565b600182815481106154fa57fe5b60009182526020909120600360049092020101556001016154b4565b50505b50600195945050505050565b6060806000808080806155366131af565b6001549091505b801561576857600181039250600b838154811061555657fe5b600091825260209091206001601690920201015460ff166155765761575f565b6001838154811061558357fe5b600091825260208220600490910201546001600160a01b031695506155ad90869085908590613aae565b9350836155b95761575f565b60405163436aa28360e11b81526000908190612002906386d54506906155e3908a90600401618200565b60206040518083038186803b1580156155fb57600080fd5b505afa15801561560f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906156339190617e70565b90506001600160a01b038116156156bc576040516302ceee9160e11b81526120029063059ddd2290615669908490600401618200565b60206040518083038186803b15801561568157600080fd5b505afa158015615695573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906156b99190617e70565b91505b60005b8c5181101561575b57876001600160a01b03168d82815181106156de57fe5b6020026020010151600001516001600160a01b031614806157275750826001600160a01b03168d828151811061571057fe5b6020026020010151600001516001600160a01b0316145b156157535760018d828151811061573a57fe5b602090810291909101015190151560809091015261575b565b6001016156bf565b5050505b6000190161553d565b5060005b89518110156157d55789818151811061578157fe5b602002602001015160800151806157c1575060006001600160a01b03168a82815181106157aa57fe5b6020026020010151600001516001600160a01b0316145b156157cd578560010195505b60010161576c565b50885185106158bd5760408051600180825281830190925290816020015b6157fb617afa565b8152602001906001900390816157f3575050604080516001808252818301909252919850602082015b60608152602001906001900390816158245790505095508860008151811061584857fe5b60200260200101518760008151811061585d57fe5b60200260200101819052508760008151811061587557fe5b60200260200101518660008151811061588a57fe5b60200260200101819052506000876000815181106158a457fe5b6020908102919091010151901515608090910152615a02565b848951036040519080825280602002602001820160405280156158fa57816020015b6158e7617afa565b8152602001906001900390816158df5790505b5096508489510360405190808252806020026020018201604052801561593457816020015b606081526020019060019003908161591f5790505b5095506000915060005b8951811015615a005789818151811061595357fe5b602002602001015160800151158015615996575060006001600160a01b03168a828151811061597e57fe5b6020026020010151600001516001600160a01b031614155b156159f8578981815181106159a757fe5b60200260200101518884815181106159bb57fe5b60200260200101819052508881815181106159d257fe5b60200260200101518784815181106159e657fe5b60200260200101819052508260010192505b60010161593e565b505b50505050505b9250929050565b600154825160005b82811015615b2c576001615a29617afa565b60018381548110615a3657fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b84811015615b0057878181518110615ac657fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b03161415615af85760009250615b00565b600101615ab2565b508115615b225780516001600160a01b03166000908152600460205260408120555b5050600101615a17565b5080821115615beb57805b82811015615be9576001805480615b4a57fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b805480615b9d57fe5b60008281526020812060166000199093019283020181815560018101805460ff1916905590615bcf6002830182617b2f565b615bdd600383016000617c32565b50509055600101615b37565b505b6000818310615bfa5781615bfc565b825b905060005b81811015615fa057615cae868281518110615c1857fe5b602002602001015160018381548110615c2d57fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a0820152617035565b615e62578060010160046000888481518110615cc657fe5b6020026020010151600001516001600160a01b03166001600160a01b0316815260200190815260200160002081905550858181518110615d0257fe5b602002602001015160018281548110615d1757fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a0909101516003909101558451859082908110615dd257fe5b6020026020010151600b8281548110615de757fe5b90600052602060002090601602016002019080519060200190615e0b929190617a2f565b506000600b8281548110615e1b57fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b805483908110615e4c57fe5b6000918252602090912060169091020155615f98565b858181518110615e6e57fe5b60200260200101516060015160018281548110615e8757fe5b906000526020600020906004020160020160146101000a8154816001600160401b0302191690836001600160401b03160217905550615f4d858281518110615ecb57fe5b6020026020010151600b8381548110615ee057fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156134a85780601f1061347d576101008083540402835291602001916134a8565b615f9857848181518110615f5d57fe5b6020026020010151600b8281548110615f7257fe5b90600052602060002090601602016002019080519060200190615f96929190617a2f565b505b600101615c01565b508282111561617857615fb1617a00565b835b8381101561617557858181518110615fc757fe5b602002602001015182604001819052506001878281518110615fe557fe5b6020908102919091018101518254600181810185556000948552838520835160049093020180546001600160a01b039384166001600160a01b0319918216178255848601518284018054918616918316919091179055604080860151600284018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909a1692909616919091179290921696909617169190911790935560a090930151600390930192909255600b805492830181559093528451601690910260008051602061901d83398151915281019182558583015160008051602061964c8339815191528201805491151560ff199092169190911790559285015180518694929361611b9360008051602061903d83398151915201920190617a2f565b5060608201516161319060038301906013617aa9565b505050806001016004600089848151811061614857fe5b602090810291909101810151516001600160a01b0316825281019190915260400160002055600101615fb3565b50505b616180617091565b616188617279565b6000600981905560015493505b838110156161f6576000600b82815481106161ac57fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b8054839081106161dd57fe5b6000918252602090912060169091020155600101616195565b505050505050565b600061116083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250617467565b6000828201838110156111605760405162461bcd60e51b8152600401610e129061864b565b6001548151604080518281526020808402820101909152606092919083908280156162a457816020015b606081526020019060019003908161628f5790505b50600b5490915083146162bb579250611d17915050565b60005b828110156163ca57600b6001600460008985815181106162da57fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054038154811061630e57fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156163a65780601f1061637b576101008083540402835291602001916163a6565b820191906000526020600020905b81548152906001019060200180831161638957829003601f168201915b50505050508282815181106163b757fe5b60209081029190910101526001016162be565b50949350505050565b60005b8281101561652057600082878388016040516020016163f69291906181f2565b6040516020818303038152906040528051906020012060001c8161641657fe5b06905080850182870114616517576000898388018151811061643457fe5b602002602001015190506060898489018151811061644e57fe5b602002602001015190508a8388018151811061646657fe5b60200260200101518b858a018151811061647c57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050818b848901815181106164ab57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505089838801815181106164d957fe5b60200260200101518a858a01815181106164ef57fe5b6020026020010181905250808a8489018151811061650957fe5b602002602001018190525050505b506001016163d6565b5050505050505050565b600980546001908101909155600b80548390811061654457fe5b906000526020600020906016020160010160006101000a81548160ff02191690831515021790555043600b828154811061657a57fe5b600091825260208220601690910201919091556040516001600160a01b038416917ff62981a567ec3cec866c6fa93c55bcdf841d6292d18b8d522ececa769375d82d91a25050565b6000816040516020016165d591906181d6565b60405160208183030381529060405280519060200120836040516020016165fc91906181d6565b6040516020818303038152906040528051906020012014905092915050565b015190565b81518151600091600191811480831461663c576000925061667a565b600160208701838101602088015b6002848385100114156166755780518351146166695760009650600093505b6020928301920161664a565b505050505b5090949350505050565b6001600160a01b038116600090815260046020526040812054806166ad57506000199050611d17565b6001810390506000600182815481106166c257fe5b90600052602060002090600402016003015490506000600183815481106166e557fe5b6000918252602090912060036004909202010155600154604051600019909101906001600160a01b038616907f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d9061673e908590618f10565b60405180910390a28061675657829350505050611d17565b600081838161676157fe5b04905080156167fd5760005b848110156167af5761678682600183815481106154cd57fe5b6001828154811061679357fe5b600091825260209091206003600490920201015560010161676d565b50600180549085015b818110156167fa576167d183600183815481106154cd57fe5b600182815481106167de57fe5b60009182526020909120600360049092020101556001016167b8565b50505b5091949350505050565b60008261681657506000611dc7565b8282028284828161682357fe5b04146111605760405162461bcd60e51b8152600401610e1290618a1a565b600061116083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250617493565b61688b617c41565b506040805180820190915281518152602082810190820152919050565b6168b0617b73565b6168b9826174ca565b6168c257600080fd5b60006168d18360200151617504565b60208085015160408051808201909152868152920190820152915050919050565b60006168fc617c41565b505080518051602091820151919092015191011190565b61691b617c41565b616924826168f2565b61692d57600080fd5b6020820151600061693d82617567565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061697657508151602110155b61697f57600080fd5b600061698e8360200151617504565b905080836000015110156169b45760405162461bcd60e51b8152600401610e1290618c28565b8251602080850151830180519284900392918310156163ca57506020919091036101000a90049392505050565b60606169ec826174ca565b6169f557600080fd5b6000616a0083617648565b9050606081604051908082528060200260200182016040528015616a3e57816020015b616a2b617c41565b815260200190600190039081616a235790505b5090506000616a508560200151617504565b60208601510190506000805b84811015616aa757616a6d83617567565b9150604051806040016040528083815260200184815250848281518110616a9057fe5b602090810291909101015291810191600101616a5c565b509195945050505050565b616aba617afa565b60606000616ac6617afa565b6060616ad0617b73565b616ad9876168a8565b90506000805b616ae8836168f2565b15616bbd5780616b1357616b03616afe84616913565b6176a4565b6001600160a01b03168552616bb5565b8060011415616b3b57616b28616afe84616913565b6001600160a01b03166020860152616bb5565b8060021415616b6357616b50616afe84616913565b6001600160a01b03166040860152616bb5565b8060031415616b8f57616b78613dd384616913565b6001600160401b0316606086015260019150616bb5565b8060041415616bb057616ba9616ba484616913565b6176be565b9350616bb5565b616bbd565b600101616adf565b50929791965091945092505050565b6060611dc7616bda8361772e565b617814565b6060815160001415616c005750604080516000815260208101909152611d17565b606082600081518110616c0f57fe5b602002602001015190506000600190505b8351811015616c5057616c4682858381518110616c3957fe5b6020026020010151617866565b9150600101616c20565b50611160616c63825160c060ff166178e3565b82617866565b60608060006120026001600160a01b031663c473318f6040518163ffffffff1660e01b815260040160206040518083038186803b158015616ca957600080fd5b505afa158015616cbd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190616ce191906180ab565b90508085518851011015616cf6575083518651015b606081604051908082528060200260200182016040528015616d3257816020015b616d1f617afa565b815260200190600190039081616d175790505b509050606082604051908082528060200260200182016040528015616d6b57816020015b6060815260200190600190039081616d565790505b50905060008060005b8b51831080616d835750895182105b8015616d8e57508581105b15617023578b51831415616dfe57898281518110616da857fe5b6020026020010151858281518110616dbc57fe5b6020026020010181905250888281518110616dd357fe5b6020026020010151848281518110616de757fe5b602090810291909101015260019182019101616d74565b8951821415616e69578b8381518110616e1357fe5b6020026020010151858281518110616e2757fe5b60200260200101819052508a8381518110616e3e57fe5b6020026020010151848281518110616e5257fe5b602090810291909101015260019283019201616d74565b898281518110616e7557fe5b6020026020010151606001516001600160401b03168c8481518110616e9657fe5b6020026020010151606001516001600160401b03161115616f12578b8381518110616ebd57fe5b6020026020010151858281518110616ed157fe5b60200260200101819052508a8381518110616ee857fe5b6020026020010151848281518110616efc57fe5b602002602001018190525082600101925061701b565b898281518110616f1e57fe5b6020026020010151606001516001600160401b03168c8481518110616f3f57fe5b6020026020010151606001516001600160401b03161015616fbb57898281518110616f6657fe5b6020026020010151858281518110616f7a57fe5b6020026020010181905250888281518110616f9157fe5b6020026020010151848281518110616fa557fe5b602002602001018190525081600101915061701b565b898281518110616fc757fe5b6020026020010151600001516001600160a01b03168c8481518110616fe857fe5b6020026020010151600001516001600160a01b0316101561700f578b8381518110616ebd57fe5b898281518110616da857fe5b600101616d74565b50929a91995090975050505050505050565b805182516000916001600160a01b03918216911614801561706f575081602001516001600160a01b031683602001516001600160a01b0316145b80156111605750506040908101519101516001600160a01b0390811691161490565b601254601354808211156170dc57805b828110156170da5760128054806170b457fe5b6001900381819060005260206000200160006170d09190617b2f565b90556001016170a1565b505b60008183106170eb57816170ed565b825b905060005b81811015617205576171aa6012828154811061710a57fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156171985780601f1061716d57610100808354040283529160200191617198565b820191906000526020600020905b81548152906001019060200180831161717b57829003601f168201915b50505050506013838154811061341a57fe5b6171fd57601381815481106171bb57fe5b90600052602060002001601282815481106171d257fe5b9060005260206000200190805460018160011615610100020316600290046171fb929190617b93565b505b6001016170f2565b5082821115610e3457825b828110156172735760126013828154811061722757fe5b600091825260208083208454600181810187559585529190932092909101805461726a949390920192909160026101009282161592909202600019011604617b93565b50600101617210565b50505050565b601354600b54808211156172c457805b828110156172c257601380548061729c57fe5b6001900381819060005260206000200160006172b89190617b2f565b9055600101617289565b505b60008183106172d357816172d5565b825b905060005b818110156173f457617392601382815481106172f257fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156173805780601f1061735557610100808354040283529160200191617380565b820191906000526020600020905b81548152906001019060200180831161736357829003601f168201915b5050505050600b8381548110615ee057fe5b6173ec57600b81815481106173a357fe5b9060005260206000209060160201600201601382815481106173c157fe5b9060005260206000200190805460018160011615610100020316600290046173ea929190617b93565b505b6001016172da565b5082821115610e3457825b82811015617273576013600b828154811061741657fe5b60009182526020808320845460018082018755958552919093206016929092029092016002908101805461745e95939094019390926000199082161561010002011604617b93565b506001016173ff565b6000818484111561748b5760405162461bcd60e51b8152600401610e1291906183b6565b505050900390565b600081836174b45760405162461bcd60e51b8152600401610e1291906183b6565b5060008385816174c057fe5b0495945050505050565b80516000906174db57506000611d17565b6020820151805160001a9060c08210156174fa57600092505050611d17565b5060019392505050565b8051600090811a608081101561751e576000915050611d17565b60b8811080617539575060c08110801590617539575060f881105b15617548576001915050611d17565b60c081101561755c5760b519019050611d17565b60f519019050611d17565b80516000908190811a60808110156175825760019150617641565b60b881101561759757607e1981019150617641565b60c08110156175e857600060b78203600186019550806020036101000a8651049150600181018201935050808310156175e25760405162461bcd60e51b8152600401610e1290618967565b50617641565b60f88110156175fd5760be1981019150617641565b600060f78203600186019550806020036101000a86510491506001810182019350508083101561763f5760405162461bcd60e51b8152600401610e1290618967565b505b5092915050565b805160009061765957506000611d17565b6000809050600061766d8460200151617504565b602085015185519181019250015b8082101561769b5761768c82617567565b8201915082600101925061767b565b50909392505050565b80516000906015146176b557600080fd5b611dc782616961565b80516060906176cc57600080fd5b60006176db8360200151617504565b83516040805191839003808352601f19601f8201168301602001909152919250606090828015617712576020820181803683370190505b50905060008160200190506163ca8487602001510182856179b5565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff19841661777257506018617796565b6fffffffffffffffffffffffffffffffff19841661779257506010617796565b5060005b60208110156177cc578181815181106177ab57fe5b01602001516001600160f81b031916156177c4576177cc565b600101617796565b60008160200390506060816040519080825280601f01601f191660200182016040528015617801576020820181803683370190505b5080830196909652508452509192915050565b6060815160011480156178465750607f60f81b8260008151811061783457fe5b01602001516001600160f81b03191611155b15617852575080611d17565b611dc76178648351608060ff166178e3565b835b6060806040519050835180825260208201818101602087015b8183101561789757805183526020928301920161787f565b50855184518101855292509050808201602086015b818310156178c45780518352602092830192016178ac565b508651929092011591909101601f01601f191660405250905092915050565b606068010000000000000000831061790d5760405162461bcd60e51b8152600401610e12906187b2565b604080516001808252818301909252606091602082018180368337019050509050603784116179675782840160f81b8160008151811061794957fe5b60200101906001600160f81b031916908160001a9053509050611dc7565b60606179728561772e565b90508381510160370160f81b8260008151811061798b57fe5b60200101906001600160f81b031916908160001a9053506179ac8282617866565b95945050505050565b806179bf57610e34565b5b602081106179df578251825260209283019290910190601f19016179c0565b915181516020939093036101000a6000190180199091169216919091179052565b60405180608001604052806000815260200160001515815260200160608152602001617a2a617c5b565b905290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10617a7057805160ff1916838001178555617a9d565b82800160010185558215617a9d579182015b82811115617a9d578251825591602001919060010190617a82565b506131ea929150617c7a565b8260138101928215617a9d5791602002820182811115617a9d578251825591602001919060010190617a82565b6040518060600160405280600060ff16815260200160608152602001606081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b50805460018160011615610100020316600290046000825580601f10617b555750611f2f565b601f016020900490600052602060002090810190611f2f9190617c7a565b6040518060400160405280617b86617c41565b8152602001600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10617bcc5780548555617a9d565b82800160010185558215617a9d57600052602060002091601f016020900482015b82811115617a9d578254825591600101919060010190617bed565b8260138101928215617a9d5791820182811115617a9d578254825591600101919060010190617bed565b50611f2f906013810190617c7a565b604051806040016040528060008152602001600081525090565b6040518061026001604052806013906020820280368337509192915050565b61318e91905b808211156131ea5760008155600101617c80565b8035611dc781618fe7565b60008083601f840112617cb0578182fd5b5081356001600160401b03811115617cc6578182fd5b6020830191508360208083028501011115615a0857600080fd5b6000601f8381840112617cf1578182fd5b8235617d04617cff82618f9c565b618f76565b818152925060208084019085810160005b84811015617d96578135880189603f820112617d3057600080fd5b838101356001600160401b03811115617d4857600080fd5b617d59818901601f19168601618f76565b81815260408c81848601011115617d6f57600080fd5b82818501888401375060009181018601919091528552509282019290820190600101617d15565b50505050505092915050565b600082601f830112617db2578081fd5b8135617dc0617cff82618f9c565b818152915060208083019084810181840286018201871015617de157600080fd5b6000805b85811015617d965782356001600160401b0381168114617e03578283fd5b85529383019391830191600101617de5565b60008083601f840112617e26578182fd5b5081356001600160401b03811115617e3c578182fd5b602083019150836020828501011115615a0857600080fd5b600060208284031215617e65578081fd5b813561116081618fe7565b600060208284031215617e81578081fd5b815161116081618fe7565b60008060008060408587031215617ea1578283fd5b84356001600160401b0380821115617eb7578485fd5b617ec388838901617c9f565b90965094506020870135915080821115617edb578384fd5b50617ee887828801617c9f565b95989497509550505050565b600080600060608486031215617f08578283fd5b83356001600160401b0380821115617f1e578485fd5b81860187601f820112617f2f578586fd5b80359250617f3f617cff84618f9c565b80848252602080830192508084018b828389028701011115617f5f57898afd5b8994505b86851015617f8957617f758c82617c94565b845260019490940193928101928101617f63565b509097508801359350505080821115617fa0578384fd5b617fac87838801617da2565b93506040860135915080821115617fc1578283fd5b50617fce86828701617ce0565b9150509250925092565b600060208284031215617fe9578081fd5b81518015158114611160578182fd5b6000806020838503121561800a578182fd5b82356001600160401b0381111561801f578283fd5b61802b85828601617e15565b90969095509350505050565b6000806000806040858703121561804c578384fd5b84356001600160401b0380821115618062578586fd5b61806e88838901617e15565b90965094506020870135915080821115618086578384fd5b50617ee887828801617e15565b6000602082840312156180a4578081fd5b5035919050565b6000602082840312156180bc578081fd5b5051919050565b600080604083850312156180d5578182fd5b505080516020909101519092909150565b6000806000604084860312156180fa578081fd5b833560ff8116811461810a578182fd5b925060208401356001600160401b03811115618124578182fd5b61813086828701617e15565b9497909650939450505050565b6000815180845260208085019450808401835b838110156181755781516001600160a01b031687529582019590820190600101618150565b509495945050505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b600081518084526181c2816020860160208601618fbb565b601f01601f19169290920160200192915050565b600082516181e8818460208701618fbb565b9190910192915050565b918252602082015260400190565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b03968716815294861660208601529290941660408401526001600160401b03166060830152911515608082015260a081019190915260c00190565b6001600160a01b0393909316835260208301919091521515604082015260600190565b6001600160a01b0392909216825260ff16602082015260400190565b600060208252611160602083018461813d565b6000604082526182d4604083018561813d565b602083820381850152818551808452828401915082838202850101838801865b8381101561832257601f198784030185526183108383516181aa565b948601949250908501906001016182f4565b50909998505050505050505050565b600060808252618344608083018761813d565b828103602084810191909152865180835287820192820190845b8181101561837a5784518352938301939183019160010161835e565b5050848103604086015261838e818861813d565b93505050506001600160401b038316606083015295945050505050565b901515815260200190565b60006020825261116060208301846181aa565b6000604082526183dd604083018688618180565b82810360208401526183f0818587618180565b979650505050505050565b6020808252601c908201527f6c656e677468206f66206275726e526174696f206d69736d6174636800000000604082015260600190565b60208082526042908201527f746865206275726e526174696f20706c75732073797374656d5265776172645260408201527f6174696f206d757374206265206e6f2067726561746572207468616e20313030606082015261030360f41b608082015260a00190565b60208082526026908201527f6c656e677468206f66206d61784e756d4f664d61696e7461696e696e67206d696040820152650e6dac2e8c6d60d31b606082015260800190565b6020808252601b908201527f6261746368207472616e736665722072657475726e2066616c73650000000000604082015260600190565b6020808252602c908201527f6c656e677468206f66206d61784e756d4f66576f726b696e6743616e6469646160408201526b0e8cae640dad2e6dac2e8c6d60a31b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61696e7461696e536c6173685363616c65206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252818101527f6c656e677468206f66206e756d4f66436162696e657473206d69736d61746368604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252601f908201527f6f6e6c7920736c617368206f72207374616b6548756220636f6e747261637400604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526028908201527f746865206e756d4f66436162696e657473206d75737420626520677265617465604082015267072207468616e20360c41b606082015260800190565b60208082526039908201527f746865206e756d4f66436162696e657473206d757374206265206c657373207460408201527f68616e204d41585f4e554d5f4f465f56414c494441544f525300000000000000606082015260800190565b60208082526029908201527f746865206e756d626572206f662076616c696461746f727320657863656564206040820152681d1a19481b1a5b5a5d60ba1b606082015260800190565b60208082526022908201527f63616e206e6f7420646f207468697320747769636520696e206f6e6520626c6f604082015261636b60f01b606082015260800190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526037908201527f746865206d61784e756d4f664d61696e7461696e696e67206d7573742062652060408201527f6c657373207468616e206e756d4f66436162696e657473000000000000000000606082015260800190565b6020808252602b908201527f6475706c696361746520636f6e73656e7375732061646472657373206f66207660408201526a185b1a59185d1bdc94d95d60aa1b606082015260800190565b60208082526027908201527f7468652065787069726554696d655365636f6e64476170206973206f7574206f604082015266662072616e676560c81b606082015260800190565b6020808252601590820152746465706f7369742076616c7565206973207a65726f60581b604082015260600190565b60208082526049908201527f746865206d61784e756d4f66576f726b696e6743616e64696461746573206d7560408201527f7374206265206e6f742067726561746572207468616e206d61784e756d4f6643606082015268616e6469646174657360b81b608082015260a00190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b60208082526023908201527f63616e206e6f7420656e7465722054656d706f72617279204d61696e74656e616040820152626e636560e81b606082015260800190565b60208082526025908201527f6c656e677468206f66206a61696c2076616c696461746f7273206d757374206260408201526465206f6e6560d81b606082015260800190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61784e756d4f6643616e64696461746573206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252601290820152716e6f7420696e206d61696e74656e616e636560701b604082015260600190565b60208082526021908201527f666565206973206c6172676572207468616e2044555354595f494e434f4d494e6040820152604760f81b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b60208082526042908201527f7468652073797374656d526577617264526174696f20706c7573206275726e5260408201527f6174696f206d757374206265206e6f2067726561746572207468616e20313030606082015261030360f41b608082015260a00190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526026908201527f6c656e677468206f662065787069726554696d655365636f6e64476170206d696040820152650e6dac2e8c6d60d31b606082015260800190565b60208082526017908201527f6f6e6c792063757272656e742076616c696461746f7273000000000000000000604082015260600190565b60208082526021908201527f6661696c656420746f20706172736520696e69742076616c696461746f7253656040820152601d60fa1b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b60208082526024908201527f6c656e677468206f662073797374656d526577617264526174696f206d69736d6040820152630c2e8c6d60e31b606082015260800190565b6020808252603e908201527f746865206d61696e7461696e536c6173685363616c65206d757374206265206760408201527f726561746572207468616e203020616e64206c657373207468616e2031300000606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b60208082526029908201527f746865206d6573736167652073656e646572206d75737420626520736c6173686040820152680818dbdb9d1c9858dd60ba1b606082015260800190565b6020808252601f908201527f746865206d73672073656e646572206d757374206265207374616b6548756200604082015260600190565b61ffff91909116815260200190565b90815260200190565b60008482528315156020830152606060408301526179ac60608301846181aa565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff85168252604060208301526179ac604083018486618180565b6040518181016001600160401b0381118282101715618f9457600080fd5b604052919050565b60006001600160401b03821115618fb1578081fd5b5060209081020190565b60005b83811015618fd6578181015183820152602001618fbe565b838111156172735750506000910152565b6001600160a01b0381168114611f2f57600080fdfe70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb20175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbbf905ec80f905e8f846942a7cdd959bfe8d9487b2a43b33565295a698f7e294b6a7edd747c0554875d3fc531d19ba1497992c5e941ff80f3f7f110ffd8920a3ac38fdef318fe94a3f86048c27395000f846946488aa4d1955ee33403f8ccb1d4de5fb97c7ade294220f003d8bdfaadf52aa1e55ae4cc485e6794875941a87e90e440a39c99aa9cb5cea0ad6a3f0b2407b86048c27395000f846949ef9f4360c606c7ab4db26b016007d3ad0ab86a0946103af86a874b705854033438383c82575f25bc29418e2db06cbff3e3c5f856410a1838649e760175786048c27395000f84694ee01c3b1283aa067c58eab4709f85e99d46de5fe94ee4b9bfb1871c64e2bcabb1dc382dc8b7c4218a29415904ab26ab0e99d70b51c220ccdcccabee6e29786048c27395000f84694685b1ded8013785d6623cc18d214320b6bb6475994a20ef4e5e4e7e36258dbf51f4d905114cb1b34bc9413e39085dc88704f4394d35209a02b1a9520320c86048c27395000f8469478f3adfc719c99674c072166708589033e2d9afe9448a30d5eaa7b64492a160f139e2da2800ec3834e94055838358c29edf4dcc1ba1985ad58aedbb6be2b86048c27395000f84694c2be4ec20253b8642161bc3f444f53679c1f3d479466f50c616d737e60d7ca6311ff0d9c434197898a94d1d678a2506eeaa365056fe565df8bc8659f28b086048c27395000f846942f7be8361c80a4c1e7e9aaf001d0877f1cfde218945f93992ac37f3e61db2ef8a587a436a161fd210b94ecbc4fb1a97861344dad0867ca3cba2b860411f086048c27395000f84694ce2fd7544e0b2cc94692d4a704debef7bcb613289444abc67b4b2fba283c582387f54c9cba7c34bafa948acc2ab395ded08bb75ce85bf0f95ad2abc51ad586048c27395000f84694b8f7166496996a7da21cf1f1b04d9b3e26a3d077946770572763289aac606e4f327c2f6cc1aa3b3e3b94882d745ed97d4422ca8da1c22ec49d880c4c097286048c27395000f846942d4c407bbe49438ed859fe965b140dcf1aab71a9943ad0939e120f33518fbba04631afe7a3ed6327b194b2bbb170ca4e499a2b0f3cc85ebfa6e8c4dfcbea86048c27395000f846946bbad7cf34b5fa511d8e963dbba288b1960e75d694853b0f6c324d1f4e76c8266942337ac1b0af1a229442498946a51ca5924552ead6fc2af08b94fcba648601d1a94a2000f846944430b3230294d12c6ab2aac5c2cd68e80b16b581947b107f4976a252a6939b771202c28e64e03f52d694795811a7f214084116949fc4f53cedbf189eeab28601d1a94a2000f84694ea0a6e3c511bbd10f4519ece37dc24887e11b55d946811ca77acfb221a49393c193f3a22db829fcc8e9464feb7c04830dd9ace164fc5c52b3f5a29e5018a8601d1a94a2000f846947ae2f5b9e386cd1b50a4550696d957cb4900f03a94e83bcc5077e6b873995c24bac871b5ad856047e19464e48d4057a90b233e026c1041e6012ada897fe88601d1a94a2000f8469482012708dafc9e1b880fd083b32182b869be8e09948e5adc73a2d233a1b496ed3115464dd6c7b887509428b383d324bc9a37f4e276190796ba5a8947f5ed8601d1a94a2000f8469422b81f8e175ffde54d797fe11eb03f9e3bf75f1d94a1c3ef7ca38d8ba80cce3bfc53ebd2903ed21658942767f7447f7b9b70313d4147b795414aecea54718601d1a94a2000f8469468bf0b8b6fb4e317a0f9d6f03eaf8ce6675bc60d94675cfe570b7902623f47e7f59c9664b5f5065dcf94d84f0d2e50bcf00f2fc476e1c57f5ca2d57f625b8601d1a94a2000f846948c4d90829ce8f72d0163c1d5cf348a862d5506309485c42a7b34309bee2ed6a235f86d16f059deec5894cc2cedc53f0fa6d376336efb67e43d167169f3b78601d1a94a2000f8469435e7a025f4da968de7e4d7e4004197917f4070f194b1182abaeeb3b4d8eba7e6a4162eac7ace23d57394c4fd0d870da52e73de2dd8ded19fe3d26f43a1138601d1a94a2000f84694d6caa02bbebaebb5d7e581e4b66559e635f805ff94c07335cf083c1c46a487f0325769d88e163b653694efaff03b42e41f953a925fc43720e45fb61a19938601d1a94a20000175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbaa164736f6c6343000604000a" }, - "0x0000000000000000000000000000000000001002": { + "0x0000000000000000000000000000000000001001": { "balance": "0x0", "code": "0x608060405234801561001057600080fd5b506004361061035d5760003560e01c80637942fd05116101d3578063c80d4b8f11610104578063df8079e9116100a2578063f9a2bbc71161007c578063f9a2bbc714610601578063fc3e590814610609578063fc4333cd14610611578063fd6a6879146106195761035d565b8063df8079e9146105e9578063e1c7392a146105f1578063f1fad104146105f95761035d565b8063c96be4cb116100de578063c96be4cb146105b3578063cc844b73146105c6578063dc927faf146105d9578063dcc6f156146105e15761035d565b8063c80d4b8f14610590578063c81b166214610598578063c8509d81146105a05761035d565b8063a1a11bf511610171578063aad560631161014b578063aad5606314610565578063ab51bb961461056d578063ac0af62914610575578063ac4317511461057d5761035d565b8063a1a11bf51461054d578063a78abc1614610555578063aa82dce11461055d5761035d565b8063831d65d1116101ad578063831d65d11461052257806396713da9146105355780639dc092621461053d5780639f804f5f146105455761035d565b80637942fd051461050a5780637e434d54146105125780638256ace61461051a5761035d565b806343756e5c116102ad5780635bfb49901161024b57806370fd5bad1161022557806370fd5bad146104ea578063718a8aa8146104f257806375d47a0a146104fa5780637912a65d146105025761035d565b80635bfb4990146104c757806362b72cf5146104da5780636e47b482146104e25761035d565b806350055f901161028757806350055f90146104a757806351b4dce3146104af57806351e80672146104b7578063567a372d146104bf5761035d565b806343756e5c14610482578063493279b11461048a5780634bf6c8821461049f5761035d565b8063280870281161031a57806335aa2e44116102f457806335aa2e441461043157806337c8dab914610444578063389f4f71146104655780633dffc3871461046d5761035d565b8063280870281461040157806328aa02b1146104095780633306ccca1461041c5761035d565b80630bee7a67146103625780630e2374a5146103805780631182b8751461039557806322d1e80b146103b557806323bac5a2146103ca57806327962118146103ec575b600080fd5b61036a610621565b6040516103779190613d96565b60405180910390f35b610388610626565b6040516103779190613574565b6103a86103a33660046134aa565b61062c565b60405161037791906135ac565b6103bd610692565b60405161037791906135a1565b6103dd6103d83660046131af565b61069b565b60405161037793929190613d7e565b6103ff6103fa366004613307565b6106be565b005b610388610a13565b6103ff6104173660046131e7565b610a19565b610424610a4a565b6040516103779190613d67565b61038861043f36600461347a565b610a50565b6104576104523660046131af565b610a77565b604051610377929190613d70565b610424610ace565b610475610ad4565b6040516103779190613da7565b610388610ad9565b610492610adf565b6040516103779190613d58565b610475610ae4565b610424610ae9565b610388610aef565b610388610af5565b610424610afb565b6103ff6104d53660046131af565b610b01565b610424610c0d565b610388610c13565b610475610c19565b610475610c1e565b610388610c23565b610424610c29565b610475610c2e565b610388610c33565b610457610c39565b6103ff6105303660046134aa565b610c43565b610475610d56565b610388610d5b565b610424610d61565b610388610d67565b6103bd610d6d565b610388610d76565b610388610d7c565b61036a610d82565b610424610d87565b6103ff61058b36600461335e565b610d8c565b610424611328565b61038861132d565b6103ff6105ae3660046134aa565b611333565b6103ff6105c13660046131af565b6113a4565b6103ff6105d43660046133c7565b611815565b610388611df4565b610424611dfa565b610388611dff565b6103ff611e05565b610475611e41565b610388611e46565b610475611e4c565b6103ff611e51565b61038861229a565b606481565b61200181565b606033612000146106585760405162461bcd60e51b815260040161064f90613bfb565b60405180910390fd5b60005460ff1661067a5760405162461bcd60e51b815260040161064f906136a1565b60405162461bcd60e51b815260040161064f90613cec565b60075460ff1681565b600260208190526000918252604090912080546001820154919092015460ff1683565b60005460ff166106e05760405162461bcd60e51b815260040161064f906136a1565b6006546106ed5760146006555b6008546106fb576170806008555b81511580159061070b5750805115155b6107275760405162461bcd60e51b815260040161064f90613b59565b60408051600380825260808201909252606091816020015b606081526020019060019003908161073f57905050905061076060386122a0565b8160008151811061076d57fe5b6020026020010181905250610781836122bb565b8160018151811061078e57fe5b60200260200101819052506107a2826122bb565b816002815181106107af57fe5b602002602001018190525060606107c582612311565b60408051603480825260608281019093529293509091602082018180368337019050509050815160346020830182602086016068600019fa61080657600080fd5b506014810151603482015160405163436aa28360e11b8152600090612002906386d5450690610839908690600401613574565b60206040518083038186803b15801561085157600080fd5b505afa158015610865573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088991906131cb565b6001600160a01b031614156108b05760405162461bcd60e51b815260040161064f90613671565b43600854820110156108d45760405162461bcd60e51b815260040161064f90613612565b604051631871f7d960e31b81526120029063c38fbec8906108f9908590600401613574565b600060405180830381600087803b15801561091357600080fd5b505af1158015610927573d6000803e3d6000fd5b50506040516335409f7f60e01b815261100092506335409f7f9150610950908590600401613574565b600060405180830381600087803b15801561096a57600080fd5b505af115801561097e573d6000803e3d6000fd5b50506006546040516309a99b4f60e41b815260646110028031909302049350909150639a99b4f0906109b69033908590600401613588565b602060405180830381600087803b1580156109d057600080fd5b505af11580156109e4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a089190613492565b505050505050505050565b61200581565b3361100014610a3a5760405162461bcd60e51b815260040161064f906138e4565b610a458383836123a2565b505050565b61708081565b60018181548110610a5d57fe5b6000918252602090912001546001600160a01b0316905081565b600080610a82612f96565b5050506001600160a01b0316600090815260026020818152604092839020835160608101855281548082526001830154938201849052919093015460ff16151592909301919091529091565b60055481565b600181565b61100181565b603881565b600881565b60065481565b61200681565b61200081565b60045481565b3361100014610b225760405162461bcd60e51b815260040161064f906138e4565b60005460ff16610b445760405162461bcd60e51b815260040161064f906136a1565b61200063f7a251d7600b610b5784612580565b60006040518463ffffffff1660e01b8152600401610b7793929190613db5565b600060405180830381600087803b158015610b9157600080fd5b505af1925050508015610ba2575060015b610c0a573d808015610bd0576040519150601f19603f3d011682016040523d82523d6000602084013e610bd5565b606091505b50816001600160a01b0316600080516020613ea0833981519152600083604051610c009291906135bf565b60405180910390a2505b50565b60035481565b61100581565b600281565b601081565b61100881565b603281565b600b81565b61200381565b6004546005549091565b3361200014610c645760405162461bcd60e51b815260040161064f90613bfb565b60005460ff16610c865760405162461bcd60e51b815260040161064f906136a1565b610c8e612fb9565b6000610ccf84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061264992505050565b915091508015610d165781516040517f7f0956d47419b9525356e7111652b653b530ec6f5096dccc04589bc38e62996791610d0991613d96565b60405180910390a1610d4f565b81516040517f7d45f62d17443dd4547bca8a8112c60e2385669318dc300ec61a5d2492f262e791610d4691613d96565b60405180910390a15b5050505050565b600981565b61100781565b60085481565b61100681565b60005460ff1681565b61200281565b61300081565b600081565b600481565b60005460ff16610dae5760405162461bcd60e51b815260040161064f906136a1565b3361100714610dcf5760405162461bcd60e51b815260040161064f90613a48565b610e3a84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260148152731b5a5cd9195b59585b9bdc951a1c995cda1bdb1960621b602082015291506126c99050565b15610ed55760208114610e5f5760405162461bcd60e51b815260040161064f90613870565b604080516020601f8401819004810282018101909252828152600091610e9d9185858083850183828082843760009201919091525061272392505050565b905060018110158015610eb1575060055481105b610ecd5760405162461bcd60e51b815260040161064f90613bb6565b6004556112e5565b610f3b84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e19995b1bdb9e551a1c995cda1bdb19608a1b602082015291506126c99050565b15610fd75760208114610f605760405162461bcd60e51b815260040161064f90613a96565b604080516020601f8401819004810282018101909252828152600091610f9e9185858083850183828082843760009201919091525061272392505050565b90506103e88111158015610fb3575060045481115b610fcf5760405162461bcd60e51b815260040161064f9061375a565b6005556112e5565b61104484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601681527566656c6f6e79536c617368526577617264526174696f60501b602082015291506126c99050565b156110de57602081146110695760405162461bcd60e51b815260040161064f906139d0565b604080516020601f84018190048102820181019092528281526000916110a79185858083850183828082843760009201919091525061272392505050565b9050600a81101580156110ba5750606481105b6110d65760405162461bcd60e51b815260040161064f90613ad8565b6006556112e5565b61115284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f656e61626c654d616c6963696f7573566f7465536c6173680000000000000000602082015291506126c99050565b156111c957602081146111775760405162461bcd60e51b815260040161064f9061378f565b604080516020601f84018190048102820181019092528281526111b3919084848083850183828082843760009201919091525061272892505050565b6007805460ff19169115159190911790556112e5565b61123084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601081526f66656c6f6e79536c61736853636f706560801b602082015291506126c99050565b156112cd57602081146112555760405162461bcd60e51b815260040161064f9061395f565b604080516020601f84018190048102820181019092528281526000916112939185858083850183828082843760009201919091525061272392505050565b905061708081101580156112a95750620d2f0081105b6112c55760405162461bcd60e51b815260040161064f906136d8565b6008556112e5565b60405162461bcd60e51b815260040161064f90613c97565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a8484848460405161131a94939291906135e0565b60405180910390a150505050565b609681565b61100281565b33612000146113545760405162461bcd60e51b815260040161064f90613bfb565b60005460ff166113765760405162461bcd60e51b815260040161064f906136a1565b6040517f07db600eebe2ac176be8dcebad61858c245a4961bb32ca2aa3d159b09aa0810e90600090a1505050565b3341146113c35760405162461bcd60e51b815260040161064f90613c4a565b60005460ff166113e55760405162461bcd60e51b815260040161064f906136a1565b60035443116114065760405162461bcd60e51b815260040161064f90613d23565b3a156114245760405162461bcd60e51b815260040161064f906139a2565b60405163155853f360e21b8152611000906355614fcc90611449908490600401613574565b60206040518083038186803b15801561146157600080fd5b505afa158015611475573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149991906132eb565b6114a25761180e565b6114aa612f96565b506001600160a01b0381166000908152600260208181526040928390208351606081018552815481526001820154928101929092529091015460ff16158015928201929092529061150557602081018051600101905261155e565b60016040820181905260208201819052805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0384161790555b43815260055460208201518161157057fe5b0661173c57600060208201526040516335409f7f60e01b8152611000906335409f7f906115a1908590600401613574565b600060405180830381600087803b1580156115bb57600080fd5b505af11580156115cf573d6000803e3d6000fd5b505060405163436aa28360e11b81526000925061200291506386d54506906115fb908690600401613574565b60206040518083038186803b15801561161357600080fd5b505afa158015611627573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061164b91906131cb565b6001600160a01b03161461166e5761166982826020015160006123a2565b611737565b61200063f7a251d7600b61168185612580565b60006040518463ffffffff1660e01b81526004016116a193929190613db5565b600060405180830381600087803b1580156116bb57600080fd5b505af19250505080156116cc575060015b611737573d8080156116fa576040519150601f19603f3d011682016040523d82523d6000602084013e6116ff565b606091505b50826001600160a01b0316600080516020613ea083398151915283602001518360405161172d9291906135bf565b60405180910390a2505b6117a8565b60045481602001518161174b57fe5b066117a8576040516375abf10160e11b81526110009063eb57e20290611775908590600401613574565b600060405180830381600087803b15801561178f57600080fd5b505af11580156117a3573d6000803e3d6000fd5b505050505b6001600160a01b0382166000818152600260208181526040808420865181559186015160018301558581015191909201805460ff1916911515919091179055517fddb6012116e51abf5436d956a4f0ebd927e92c576ff96d7918290c8782291e3e9190a2505b5043600355565b60005460ff166118375760405162461bcd60e51b815260040161064f906136a1565b60075460ff166118595760405162461bcd60e51b815260040161064f9061363c565b6006546118665760146006555b600854611874576170806008555b60085481516040015143910111801561189857504360085482602001516040015101115b6118b45760405162461bcd60e51b815260040161064f90613cbe565b8060200151602001518160000151602001511480156118e25750806020015160600151816000015160600151145b156118ff5760405162461bcd60e51b815260040161064f906138b7565b80516040810151905110801561191e5750602081015160408101519051105b61193a5760405162461bcd60e51b815260040161064f90613839565b60208101515181515110801561195f5750806000015160400151816020015160400151105b8061198a575080515160208201515110801561198a5750806020015160400151816000015160400151105b806119a45750806020015160400151816000015160400151145b6119c05760405162461bcd60e51b815260040161064f90613723565b604080820151905163ea321e4960e01b81526110009163ea321e49916119e991906004016135ac565b60206040518083038186803b158015611a0157600080fd5b505afa158015611a15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3991906132eb565b611a555760405162461bcd60e51b815260040161064f90613a19565b611a6781600001518260400151612750565b8015611a805750611a8081602001518260400151612750565b611a9c5760405162461bcd60e51b815260040161064f906137da565b6060806110006001600160a01b0316633b071dcc6040518163ffffffff1660e01b815260040160006040518083038186803b158015611ada57600080fd5b505afa158015611aee573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611b169190810190613228565b9150915060005b8151811015611c5357611b47828281518110611b3557fe5b60200260200101518560400151612928565b15611c4b576006546040516309a99b4f60e41b815260646110028031909302049190639a99b4f090611b7f9033908590600401613588565b602060405180830381600087803b158015611b9957600080fd5b505af1158015611bad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bd19190613492565b506110006001600160a01b03166335409f7f858481518110611bef57fe5b60200260200101516040518263ffffffff1660e01b8152600401611c139190613574565b600060405180830381600087803b158015611c2d57600080fd5b505af1158015611c41573d6000803e3d6000fd5b5050505050611c53565b600101611b1d565b5060408084015190516317b4f35360e01b8152600091612002916317b4f35391611c7f916004016135ac565b60206040518083038186803b158015611c9757600080fd5b505afa158015611cab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ccf91906131cb565b6001600160a01b031614611d3d576040808401519051630e9fbf5160e01b815261200291630e9fbf5191611d0691906004016135ac565b600060405180830381600087803b158015611d2057600080fd5b505af1158015611d34573d6000803e3d6000fd5b50505050610a45565b6120006001600160a01b031663f7a251d7600b611d5d866040015161298c565b60006040518463ffffffff1660e01b8152600401611d7d93929190613db5565b600060405180830381600087803b158015611d9757600080fd5b505af1158015611dab573d6000803e3d6000fd5b505050506000611dc0846040015160006129c7565b60405190915081907f7b78aadacff901d8b63d0dba4f86283d4db8aef27f9ed70413dd860f1c9532b690600090a250505050565b61100381565b601481565b61200481565b60005460ff1615611e285760405162461bcd60e51b815260040161064f90613b22565b603260045560966005556000805460ff19166001179055565b601181565b61100081565b600381565b3361100014611e725760405162461bcd60e51b815260040161064f906138e4565b60005460ff16611e945760405162461bcd60e51b815260040161064f906136a1565b600154611ea057612298565b600154600090600019015b80821161226c576000805b82841015611fcf57611ec6612f96565b6002600060018781548110611ed757fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff161515908201526005549091506004900481602001511115611fb957600460055481611f4457fe5b04816020015103816020018181525050806002600060018881548110611f6657fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208351815591830151600183015591909101516002909101805460ff1916911515919091179055611fc3565b6001925050611fcf565b50836001019350611eb6565b82841161216657611fde612f96565b6002600060018681548110611fef57fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff1615159082015260055490915060049004816020015111156120d75760046005548161205c57fe5b0481602001510381602001818152505080600260006001878154811061207e57fe5b6000918252602080832091909101546001600160a01b03168352828101939093526040918201902083518155918301516001808401919091559201516002909101805460ff191691151591909117905591506121669050565b60026000600186815481106120e857fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff1916905580548061212c57fe5b600082815260209020810160001990810180546001600160a01b0319169055019055836121595750612166565b5060001990920191611fcf565b8180156121705750805b1561224f57600260006001868154811061218657fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff191690558054849081106121cd57fe5b600091825260209091200154600180546001600160a01b0390921691869081106121f357fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600180548061222c57fe5b600082815260209020810160001990810180546001600160a01b03191690550190555b8261225b57505061226c565b505060019091019060001901611eab565b6040517fcfdb3b6ccaeccbdc68be3c59c840e3b3c90f0a7c491f5fff1cf56cfda200dd9c90600090a150505b565b61100481565b60606122b36122ae836129e3565b6122bb565b90505b919050565b6060815160011480156122ed5750607f60f81b826000815181106122db57fe5b01602001516001600160f81b03191611155b156122f95750806122b6565b6122b361230b8351608060ff16612ac9565b83612b9b565b606081516000141561233257506040805160008152602081019091526122b6565b60608260008151811061234157fe5b602002602001015190506000600190505b8351811015612382576123788285838151811061236b57fe5b6020026020010151612b9b565b9150600101612352565b5061239b612395825160c060ff16612ac9565b82612b9b565b9392505050565b80156123cd576040516375cc7d8960e01b8152612002906375cc7d8990611d06908690600401613574565b6040516375cc7d8960e01b8152612002906375cc7d89906123f2908690600401613574565b600060405180830381600087803b15801561240c57600080fd5b505af192505050801561241d575060015b610a45576040516000815260443d1015612439575060006124d6565b60046000803e60005160e01c6308c379a0811461245a5760009150506124d6565b60043d036004833e81513d602482011167ffffffffffffffff82111715612486576000925050506124d6565b808301805167ffffffffffffffff8111156124a85760009450505050506124d6565b8060208301013d86018111156124c6576000955050505050506124d6565b601f01601f191660405250925050505b806124e15750612518565b836001600160a01b0316600080516020613ea0833981519152848360405161250a9291906135bf565b60405180910390a25061257b565b3d808015612542576040519150601f19603f3d011682016040523d82523d6000602084013e612547565b606091505b50836001600160a01b0316600080516020613ea083398151915284836040516125719291906135bf565b60405180910390a2505b610a45565b60408051600480825260a08201909252606091829190816020015b606081526020019060019003908161259b5790505090506125c4836001600160a01b0316612c18565b816000815181106125d157fe5b60200260200101819052506125e5436122a0565b816001815181106125f257fe5b602090810291909101015261260760386122a0565b8160028151811061261457fe5b6020026020010181905250612628426122a0565b8160038151811061263557fe5b602002602001018190525061239b81612311565b612651612fb9565b600061265b612fb9565b612663612fcb565b61267461266f86612c3b565b612c60565b90506000805b61268383612caa565b156126bc57806126af5761269e61269984612ccb565b612d19565b63ffffffff168452600191506126b4565b6126bc565b60010161267a565b5091935090915050915091565b6000816040516020016126dc9190613558565b60405160208183030381529060405280519060200120836040516020016127039190613558565b604051602081830303815290604052805190602001201490505b92915050565b015190565b8082015160009060ff811615612742576001915081612748565b60009150815b505092915050565b60408051600480825260a0820190925260009160609190816020015b606081526020019060019003908161276c5750506040805160208082528183019092529192506060919080820181803683370190505090506127b185600001516122a0565b826000815181106127be57fe5b60200260200101819052506127d96020866020015183612d9b565b6127e2816122bb565b826001815181106127ef57fe5b602002602001018190525061280785604001516122a0565b8260028151811061281457fe5b602002602001018190525061282f6020866060015183612d9b565b612838816122bb565b8260038151811061284557fe5b602002602001018190525061286b602061285e84612311565b8051906020012083612d9b565b6040805160b080825260e0820190925260609160208201818036833701905050905061289b818360006020612dab565b6128ad81876080015160206060612dab565b6128bb818660806030612dab565b604080516001808252818301909252606091602082018180368337019050509050815160016020830182602086016066600019fa6128f857600080fd5b506001612906826000612dfe565b60ff161461291b57600094505050505061271d565b5060019695505050505050565b8151815160009160019181148083146129445760009250612982565b600160208701838101602088015b60028483851001141561297d5780518351146129715760009650600093505b60209283019201612952565b505050505b5090949350505050565b60408051600480825260a08201909252606091829190816020015b60608152602001906001900390816129a75790505090506125c4836122bb565b600081602001835110156129da57600080fd5b50016020015190565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416612a2757506018612a4b565b6fffffffffffffffffffffffffffffffff198416612a4757506010612a4b565b5060005b6020811015612a8157818181518110612a6057fe5b01602001516001600160f81b03191615612a7957612a81565b600101612a4b565b60008160200390506060816040519080825280601f01601f191660200182016040528015612ab6576020820181803683370190505b5080830196909652508452509192915050565b6060680100000000000000008310612af35760405162461bcd60e51b815260040161064f90613811565b60408051600180825281830190925260609160208201818036833701905050905060378411612b4d5782840160f81b81600081518110612b2f57fe5b60200101906001600160f81b031916908160001a905350905061271d565b6060612b58856129e3565b90508381510160370160f81b82600081518110612b7157fe5b60200101906001600160f81b031916908160001a905350612b928282612b9b565b95945050505050565b6060806040519050835180825260208201818101602087015b81831015612bcc578051835260209283019201612bb4565b50855184518101855292509050808201602086015b81831015612bf9578051835260209283019201612be1565b508651929092011591909101601f01601f191660405250905092915050565b60408051600560a21b831860148201526034810190915260609061239b816122bb565b612c43612feb565b506040805180820190915281518152602082810190820152919050565b612c68612fcb565b612c7182612e1a565b612c7a57600080fd5b6000612c898360200151612e54565b60208085015160408051808201909152868152920190820152915050919050565b6000612cb4612feb565b505080518051602091820151919092015191011190565b612cd3612feb565b612cdc82612caa565b612ce557600080fd5b60208201516000612cf582612eb7565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590612d2e57508151602110155b612d3757600080fd5b6000612d468360200151612e54565b90508083600001511015612d6c5760405162461bcd60e51b815260040161064f90613b7f565b825160208085015183018051928490039291831015612d9257826020036101000a820491505b50949350505050565b9091018181526020918201910152565b60005b81811015610d4f57838181518110612dc257fe5b602001015160f81c60f81b858480600101955081518110612ddf57fe5b60200101906001600160f81b031916908160001a905350600101612dae565b60008160010183511015612e1157600080fd5b50016001015190565b8051600090612e2b575060006122b6565b6020820151805160001a9060c0821015612e4a576000925050506122b6565b5060019392505050565b8051600090811a6080811015612e6e5760009150506122b6565b60b8811080612e89575060c08110801590612e89575060f881105b15612e985760019150506122b6565b60c0811015612eac5760b5190190506122b6565b60f5190190506122b6565b80516000908190811a6080811015612ed25760019150612f8f565b60b8811015612ee757607e1981019150612f8f565b60c0811015612f3857600060b78203600186019550806020036101000a865104915060018101820193505080831015612f325760405162461bcd60e51b815260040161064f90613934565b50612f8f565b60f8811015612f4d5760be1981019150612f8f565b600060f78203600186019550806020036101000a8651049150600181018201935050808310156127485760405162461bcd60e51b815260040161064f90613934565b5092915050565b604051806060016040528060008152602001600081526020016000151581525090565b60408051602081019091526000815290565b6040518060400160405280612fde612feb565b8152602001600081525090565b604051806040016040528060008152602001600081525090565b600082601f830112613015578081fd5b815161302861302382613e08565b613de1565b818152915060208083019084810160005b8481101561309e578151870188603f82011261305457600080fd5b8381015161306461302382613e28565b81815260408b8184860101111561307a57600080fd5b61308983888401838701613e4c565b50865250509282019290820190600101613039565b505050505092915050565b60008083601f8401126130ba578182fd5b50813567ffffffffffffffff8111156130d1578182fd5b6020830191508360208285010111156130e957600080fd5b9250929050565b600082601f830112613100578081fd5b813561310e61302382613e28565b915080825283602082850101111561312557600080fd5b8060208401602084013760009082016020015292915050565b600060a0828403121561314f578081fd5b61315960a0613de1565b905081358152602082013560208201526040820135604082015260608201356060820152608082013567ffffffffffffffff81111561319757600080fd5b6131a3848285016130f0565b60808301525092915050565b6000602082840312156131c0578081fd5b813561239b81613e7c565b6000602082840312156131dc578081fd5b815161239b81613e7c565b6000806000606084860312156131fb578182fd5b833561320681613e7c565b925060208401359150604084013561321d81613e91565b809150509250925092565b6000806040838503121561323a578182fd5b825167ffffffffffffffff80821115613251578384fd5b81850186601f820112613262578485fd5b8051925061327261302384613e08565b80848252602080830192508084018a828389028701011115613292578889fd5b8894505b868510156132bd5780516132a981613e7c565b845260019490940193928101928101613296565b5088015190965093505050808211156132d4578283fd5b506132e185828601613005565b9150509250929050565b6000602082840312156132fc578081fd5b815161239b81613e91565b60008060408385031215613319578182fd5b823567ffffffffffffffff80821115613330578384fd5b61333c868387016130f0565b93506020850135915080821115613351578283fd5b506132e1858286016130f0565b60008060008060408587031215613373578182fd5b843567ffffffffffffffff8082111561338a578384fd5b613396888389016130a9565b909650945060208701359150808211156133ae578384fd5b506133bb878288016130a9565b95989497509550505050565b6000602082840312156133d8578081fd5b813567ffffffffffffffff808211156133ef578283fd5b81840160608187031215613401578384fd5b61340b6060613de1565b925080358281111561341b578485fd5b6134278782840161313e565b84525060208101358281111561343b578485fd5b6134478782840161313e565b60208501525060408101358281111561345e578485fd5b61346a878284016130f0565b6040850152509195945050505050565b60006020828403121561348b578081fd5b5035919050565b6000602082840312156134a3578081fd5b5051919050565b6000806000604084860312156134be578081fd5b833560ff811681146134ce578182fd5b9250602084013567ffffffffffffffff8111156134e9578182fd5b6134f5868287016130a9565b9497909650939450505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008151808452613544816020860160208601613e4c565b601f01601f19169290920160200192915050565b6000825161356a818460208701613e4c565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b60006020825261239b602083018461352c565b6000838252604060208301526135d8604083018461352c565b949350505050565b6000604082526135f4604083018688613502565b8281036020840152613607818587613502565b979650505050505050565b60208082526010908201526f195d9a59195b98d9481d1bdbc81bdb1960821b604082015260600190565b6020808252818101527f6d616c6963696f757320766f746520736c617368206e6f7420656e61626c6564604082015260600190565b6020808252601690820152751d985b1a59185d1bdc881b9bdd081b5a59dc985d195960521b604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252602b908201527f746865206d616c6963696f757320766f746520736c6173682073636f7065206f60408201526a7574206f662072616e676560a81b606082015260800190565b6020808252601a908201527f6e6f2076696f6c6174696f6e206f6620766f74652072756c6573000000000000604082015260600190565b6020808252818101527f7468652066656c6f6e795468726573686f6c64206f7574206f662072616e6765604082015260600190565b6020808252602b908201527f6c656e677468206f6620656e61626c654d616c6963696f7573566f7465536c6160408201526a0e6d040dad2e6dac2e8c6d60ab1b606082015260800190565b60208082526017908201527f766572696679207369676e6174757265206661696c6564000000000000000000604082015260600190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526019908201527f7372634e756d20626967676572207468616e207461724e756d00000000000000604082015260600190565b60208082526027908201527f6c656e677468206f66206d697364656d65616e6f725468726573686f6c64206d6040820152660d2e6dac2e8c6d60cb1b606082015260800190565b60208082526013908201527274776f206964656e746963616c20766f74657360681b604082015260600190565b60208082526030908201527f746865206d6573736167652073656e646572206d7573742062652076616c696460408201526f185d1bdc94d95d0818dbdb9d1c9858dd60821b606082015260800190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b60208082526023908201527f6c656e677468206f662066656c6f6e79536c61736853636f7065206d69736d616040820152620e8c6d60eb1b606082015260800190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b60208082526029908201527f6c656e677468206f662066656c6f6e79536c617368526577617264526174696f604082015268040dad2e6dac2e8c6d60bb1b606082015260800190565b6020808252601590820152741d9bdd195059191c881a5cc81b9bdd08199bdd5b99605a1b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526022908201527f6c656e677468206f662066656c6f6e795468726573686f6c64206d69736d61746040820152610c6d60f31b606082015260800190565b6020808252602a908201527f7468652066656c6f6e7920736c6173682072657761726420726174696f206f7560408201526974206f662072616e676560b01b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b6020808252600c908201526b32b6b83a3c903432b0b232b960a11b604082015260600190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526025908201527f746865206d697364656d65616e6f725468726573686f6c64206f7574206f662060408201526472616e676560d81b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b6020808252601490820152731d185c99d95d08189b1bd8dac81d1bdbc81bdb1960621b604082015260600190565b6020808252601e908201527f7265636569766520756e65787065637465642073796e207061636b6167650000604082015260600190565b6020808252818101527f63616e206e6f7420736c61736820747769636520696e206f6e6520626c6f636b604082015260600190565b61ffff91909116815260200190565b90815260200190565b918252602082015260400190565b92835260208301919091521515604082015260600190565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff8516825260606020830152613dd1606083018561352c565b9050826040830152949350505050565b60405181810167ffffffffffffffff81118282101715613e0057600080fd5b604052919050565b600067ffffffffffffffff821115613e1e578081fd5b5060209081020190565b600067ffffffffffffffff821115613e3e578081fd5b50601f01601f191660200190565b60005b83811015613e67578181015183820152602001613e4f565b83811115613e76576000848401525b50505050565b6001600160a01b0381168114610c0a57600080fd5b8015158114610c0a57600080fdfed7bc86ff5d08c8ab043edec743302aba2520e6635172a428bc956721db9e2d1ca164736f6c6343000604000a" } diff --git a/params/chainspecs/chapel.json b/params/chainspecs/chapel.json index b91e21964b6..035c3f94690 100644 --- a/params/chainspecs/chapel.json +++ b/params/chainspecs/chapel.json @@ -305,7 +305,7 @@ "balance": "0x0", "code": "0x6080604052600436106104fb5760003560e01c806388b32f111161028c578063c6d339451161015a578063e40716a1116100cc578063f92eb86b11610085578063f92eb86b14610d2d578063f9a2bbc714610d42578063fc3e590814610d57578063fccc281314610d6c578063fd4ad81f14610d81578063fd6a687914610db057610502565b8063e40716a114610c9b578063ea321e4914610cb0578063eb57e20214610cd0578063eda5868c14610cf0578063f1fad10414610d05578063f340fa0114610d1a57610502565b8063d86222d51161011e578063d86222d514610c1d578063daacdb6614610c32578063dc927faf14610c47578063df8079e914610c5c578063e086c7b114610c71578063e1c7392a14610c8657610502565b8063c6d3394514610bbe578063c81b166214610bd3578063c8509d811461098d578063ce910b0c14610be8578063d68fb56a14610c0857610502565b8063a78abc16116101fe578063ad3c9da6116101b7578063ad3c9da614610b3d578063aef198a914610b5d578063b7ab4db514610b72578063b8cf4ef114610b94578063bf9f4995146106fe578063c466689d14610ba957610502565b8063a78abc1614610ab4578063aa82dce114610ac9578063aad5606314610ade578063aaf5eb6814610af3578063ab51bb9614610b08578063ac43175114610b1d57610502565b806396713da91161025057806396713da914610a365780639dc0926214610a4b5780639fe0f81614610a60578063a0dc275814610a75578063a1a11bf514610a8a578063a5422d5c14610a9f57610502565b806388b32f11146109c25780638a7beb01146109d75780638b5ad0c9146109ec5780638d19a41014610a015780639369d7de14610a2157610502565b806351b4dce3116103c957806370fd5bad1161033b5780637e434d54116102f45780637e434d541461094e57806381650b6214610963578063820dcaa814610978578063831d65d11461098d578063853230aa1461090f57806386249882146109ad57610502565b806370fd5bad146108d0578063718a8aa8146108e557806375d47a0a146108fa57806378dfed4a1461090f5780637942fd05146109245780637a84ca2a1461093957610502565b80635d77156c1161038d5780635d77156c1461082a5780635de1e22c1461083f57806360eba4fe1461085457806362b72cf5146108745780636969a25c146108895780636e47b482146108bb57610502565b806351b4dce3146107ab57806351e80672146107c057806355614fcc146107d5578063565c56b3146107f55780635667515a1461081557610502565b8063300c35671161046d57806343756e5c1161042657806343756e5c1461072057806345cf9daf14610735578063493279b11461074a5780634bf6c8821461076c5780634df6e0c3146107815780635192c82c1461079657610502565b8063300c35671461065b578063321d398a1461067b5780633365af3a1461069b57806335409f7f146106bb5780633b071dcc146106db5780633dffc387146106fe57610502565b8063152ad3b8116104bf578063152ad3b8146105ba5780631e4c1524146105dc5780631ff18069146105fc578063219f22d51461061157806328087028146106265780632a0ffb6e1461063b57610502565b806304c4fec61461050757806307a568471461051e5780630bee7a67146105495780630e2374a51461056b5780631182b8751461058d57610502565b3661050257005b600080fd5b34801561051357600080fd5b5061051c610dc5565b005b34801561052a57600080fd5b50610533610e39565b6040516105409190618f10565b60405180910390f35b34801561055557600080fd5b5061055e610e3f565b6040516105409190618f3a565b34801561057757600080fd5b50610580610e44565b6040516105409190618200565b34801561059957600080fd5b506105ad6105a83660046180e6565b610e4a565b60405161054091906183b6565b3480156105c657600080fd5b506105cf611167565b60405161054091906183ab565b3480156105e857600080fd5b5061051c6105f7366004617ef4565b611170565b34801561060857600080fd5b50610533611846565b34801561061d57600080fd5b5061055e61184c565b34801561063257600080fd5b50610580611851565b34801561064757600080fd5b5061051c610656366004617e54565b611857565b34801561066757600080fd5b5061051c610676366004617e8c565b611904565b34801561068757600080fd5b506105cf610696366004618093565b611c4d565b3480156106a757600080fd5b506105cf6106b6366004618093565b611d1c565b3480156106c757600080fd5b5061051c6106d6366004617e54565b611dcd565b3480156106e757600080fd5b506106f0611f32565b6040516105409291906182c1565b34801561070a57600080fd5b5061071361220e565b6040516105409190618f4b565b34801561072c57600080fd5b50610580612213565b34801561074157600080fd5b50610533612219565b34801561075657600080fd5b5061075f61221f565b6040516105409190618f01565b34801561077857600080fd5b50610713612224565b34801561078d57600080fd5b506106f0612229565b3480156107a257600080fd5b506105336123b5565b3480156107b757600080fd5b506105806123bb565b3480156107cc57600080fd5b506105806123c1565b3480156107e157600080fd5b506105cf6107f0366004617e54565b6123c7565b34801561080157600080fd5b50610533610810366004617e54565b6123fc565b34801561082157600080fd5b5061071361244d565b34801561083657600080fd5b5061055e612452565b34801561084b57600080fd5b50610533612457565b34801561086057600080fd5b506105ad61086f366004618093565b61245d565b34801561088057600080fd5b50610533612503565b34801561089557600080fd5b506108a96108a4366004618093565b612509565b6040516105409695949392919061822d565b3480156108c757600080fd5b5061058061256d565b3480156108dc57600080fd5b50610713612573565b3480156108f157600080fd5b50610713612578565b34801561090657600080fd5b5061058061257d565b34801561091b57600080fd5b50610533612583565b34801561093057600080fd5b50610713612589565b34801561094557600080fd5b5061053361258e565b34801561095a57600080fd5b50610580612594565b34801561096f57600080fd5b5061055e61259a565b34801561098457600080fd5b5061053361259f565b34801561099957600080fd5b5061051c6109a83660046180e6565b6125a5565b3480156109b957600080fd5b50610533612606565b3480156109ce57600080fd5b5061053361260c565b3480156109e357600080fd5b506105cf612612565b3480156109f857600080fd5b5061053361261b565b348015610a0d57600080fd5b50610533610a1c366004617e54565b612621565b348015610a2d57600080fd5b5061051c612661565b348015610a4257600080fd5b50610713612775565b348015610a5757600080fd5b5061058061277a565b348015610a6c57600080fd5b50610533612780565b348015610a8157600080fd5b50610533612785565b348015610a9657600080fd5b5061058061278a565b348015610aab57600080fd5b506105ad612790565b348015610ac057600080fd5b506105cf6127af565b348015610ad557600080fd5b506105806127b8565b348015610aea57600080fd5b506105806127be565b348015610aff57600080fd5b506105336127c4565b348015610b1457600080fd5b5061055e61244d565b348015610b2957600080fd5b5061051c610b38366004618037565b6127cd565b348015610b4957600080fd5b50610533610b58366004617e54565b613086565b348015610b6957600080fd5b50610533613098565b348015610b7e57600080fd5b50610b876130a5565b60405161054091906182ae565b348015610ba057600080fd5b50610533613191565b348015610bb557600080fd5b50610533613196565b348015610bca57600080fd5b50610533612573565b348015610bdf57600080fd5b5061058061319c565b348015610bf457600080fd5b506105ad610c03366004618093565b6131a2565b348015610c1457600080fd5b506105336131af565b348015610c2957600080fd5b506105336131ee565b348015610c3e57600080fd5b506105336131fa565b348015610c5357600080fd5b50610580613200565b348015610c6857600080fd5b50610580613206565b348015610c7d57600080fd5b50610533610e3f565b348015610c9257600080fd5b5061051c61320c565b348015610ca757600080fd5b506105336133bb565b348015610cbc57600080fd5b506105cf610ccb366004617ff8565b6133c1565b348015610cdc57600080fd5b5061051c610ceb366004617e54565b613547565b348015610cfc57600080fd5b5061055e61364b565b348015610d1157600080fd5b50610713613650565b61051c610d28366004617e54565b613655565b348015610d3957600080fd5b506105336139d4565b348015610d4e57600080fd5b506105806139da565b348015610d6357600080fd5b50610713612780565b348015610d7857600080fd5b506105806139e0565b348015610d8d57600080fd5b50610da1610d9c366004618093565b6139e6565b60405161054093929190618f19565b348015610dbc57600080fd5b50610580613aa8565b6000610dd033612621565b9050600b8181548110610ddf57fe5b600091825260209091206001601690920201015460ff16610e1b5760405162461bcd60e51b8152600401610e1290618b1c565b60405180910390fd5b6000610e256131af565b9050610e343383836001613aae565b505050565b60095481565b606481565b61200181565b60005460609060ff16610e6f5760405162461bcd60e51b8152600401610e12906185dd565b3361200014610e905760405162461bcd60e51b8152600401610e1290618d1d565b600b54610f4e57610e9f617a00565b60015460005b81811015610f4a57600b805460018101825560009190915283516000805160206191c883398151915260169092029182019081556020808601516000805160206192088339815191528401805460ff1916911515919091179055604086015180518794610f26936000805160206191e8833981519152909101920190617a2f565b506060820151610f3c9060038301906013617aa9565b505050806001019050610ea5565b5050505b610f56617ad6565b6000610f9785858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613d8392505050565b9150915080610fb357610faa6064613f3f565b92505050611160565b815160009060ff16610fd857610fd183602001518460400151613fa0565b905061112c565b825160ff16600114156111285782602001515160011461101d576000805160206191a883398151915260405161100d906189d5565b60405180910390a1506067611123565b6000836020015160008151811061103057fe5b602090810291909101810151516001600160a01b03811660009081526004909252604090912054909150801580611091575060018082038154811061107157fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b156110cf576040516001600160a01b038316907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a261111c565b60006110de8360018403615162565b90508061111a576040516001600160a01b038416907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a25b505b6000925050505b61112c565b5060655b63ffffffff811661115157505060408051600081526020810190915291506111609050565b61115a81613f3f565b93505050505b9392505050565b60075460ff1681565b33411461118f5760405162461bcd60e51b8152600401610e1290618d6c565b3a156111ad5760405162461bcd60e51b8152600401610e1290618a5b565b82516040805182815260208084028201019091526060908280156111eb57816020015b6111d8617afa565b8152602001906001900390816111d05790505b50905060005b82811015611295576040518060c0016040528087838151811061121057fe5b60200260200101516001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b0316815260200186838151811061125257fe5b60200260200101516001600160401b03168152602001600015158152602001600081525082828151811061128257fe5b60209081029190910101526001016111f1565b5060405163d31f968d60e01b81526120009063d31f968d906112c09061100090600890600401618292565b60206040518083038186803b1580156112d857600080fd5b505afa1580156112ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113109190617fd8565b15611633578051601554818111156113b257815b818110156113b057601580548061133757fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055601680548061138a57fe5b6001900381819060005260206000200160006113a69190617b2f565b9055600101611324565b505b60005b828110156115f2578181106114da5760158482815181106113d257fe5b602090810291909101810151825460018181018555600094855293839020825160049092020180546001600160a01b039283166001600160a01b0319918216178255938301519481018054958316958516959095179094556040820151600285018054606085015160808601511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590961692909716919091179290921692909217169290921790915560a0015160039091015585516016908790839081106114a257fe5b602090810291909101810151825460018101845560009384529282902081516114d49491909101929190910190617a2f565b506115ea565b8381815181106114e657fe5b6020026020010151601582815481106114fb57fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a09091015160039091015585518690829081106115b657fe5b6020026020010151601682815481106115cb57fe5b9060005260206000200190805190602001906115e8929190617a2f565b505b6001016113b5565b507fb8e726330a0dad1cf3d04e925663b17e391f1ed547d79b7f4e5f344119b44246826040516116229190618f10565b60405180910390a150505050610e34565b6060806116408386615525565b9150915060005b6001548110156117365760006001828154811061166057fe5b90600052602060002090600402016003015490508060001461172d5760006001838154811061168b57fe5b9060005260206000209060040201600301819055506120026001600160a01b031663092193ab82600185815481106116bf57fe5b60009182526020909120600491820201546040516001600160e01b031960e086901b1681526116fa926001600160a01b039092169101618200565b6000604051808303818588803b15801561171357600080fd5b505af1158015611727573d6000803e3d6000fd5b50505050505b50600101611647565b5047156117a4577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d4760405161176c9190618f10565b60405180910390a1604051611002904780156108fc02916000818181858888f193505050501580156117a2573d6000803e3d6000fd5b505b600060038190556005558151156117bf576117bf8282615a0f565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156117fc57600080fd5b505af1158015611810573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a150505050505050565b60035481565b606881565b61200581565b33612002146118785760405162461bcd60e51b8152600401610e1290618eca565b60005b60155481101561190057816001600160a01b03166015828154811061189c57fe5b60009182526020909120600490910201546001600160a01b031614156118f8576001601582815481106118cb57fe5b9060005260206000209060040201600201601c6101000a81548160ff021916908315150217905550611900565b60010161187b565b5050565b3341146119235760405162461bcd60e51b8152600401610e1290618d6c565b60105443116119445760405162461bcd60e51b8152600401610e1290618770565b3a156119625760405162461bcd60e51b8152600401610e1290618a5b565b60005460ff166119845760405162461bcd60e51b8152600401610e12906185dd565b60006110023168056bc75e2d631000008111156119bb576119b48168056bc75e2d6310000063ffffffff6161fe16565b91506119c2565b5050611c43565b6040516309a99b4f60e41b815261100290639a99b4f0906119e99030908690600401618214565b602060405180830381600087803b158015611a0357600080fd5b505af1158015611a17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3b91906180ab565b915081611a49575050611c43565b6000805b84811015611a7757858582818110611a6157fe5b9050602002013582019150806001019050611a4d565b5080611a8557505050611c43565b6000806000805b89811015611c3b5784898983818110611aa157fe5b90506020020135880281611ab157fe5b0493508a8a82818110611ac057fe5b9050602002016020810190611ad59190617e54565b6001600160a01b03811660009081526004602052604090205490935091508115611bf1576000600180840381548110611b0a57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff1615611b7757836001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d8586604051611b6a9190618f10565b60405180910390a2611beb565b600354611b8a908663ffffffff61624016565b6003908155810154611ba2908663ffffffff61624016565b60038201556040516001600160a01b038516907fcb0aad6cf9cd03bdf6137e359f541c42f38b39f007cae8e89e88aa7d8c6617b290611be2908890618f10565b60405180910390a25b50611c33565b826001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d8585604051611c2a9190618f10565b60405180910390a25b600101611a8c565b505050505050505b5050436010555050565b6001546000908210611c6157506000611d17565b60006001600160a01b031660018381548110611c7957fe5b60009182526020909120600490910201546001600160a01b03161480611ca957506008541580611ca95750600a54155b80611cb8575060085460095410155b80611cc95750611cc782611d1c565b155b80611cf257506000600b8381548110611cde57fe5b906000526020600020906016020160000154115b80611d0657506001611d026130a5565b5111155b15611d1357506000611d17565b5060015b919050565b6001546000908210611d3057506000611d17565b600b548210611d6d5760018281548110611d4657fe5b9060005260206000209060040201600201601c9054906101000a900460ff16159050611d17565b60018281548110611d7a57fe5b9060005260206000209060040201600201601c9054906101000a900460ff16158015611dc75750600b8281548110611dae57fe5b600091825260209091206001601690920201015460ff16155b92915050565b600b54611e8b57611ddc617a00565b60015460005b81811015611e8757600b805460018101825560009190915283516000805160206191c883398151915260169092029182019081556020808601516000805160206192088339815191528401805460ff1916911515919091179055604086015180518794611e63936000805160206191e8833981519152909101920190617a2f565b506060820151611e799060038301906013617aa9565b505050806001019050611de2565b5050505b336110011480611e9c575033612002145b611eb85760405162461bcd60e51b8152600401610e1290618614565b6001600160a01b03811660009081526004602052604090205480611edc5750611f2f565b6001810390506000600b8281548110611ef157fe5b600091825260209091206001601690920201015460ff169050611f148383615162565b8015611f1d5750805b15610e34576009805460001901905550505b50565b60015460609081906000805b82811015611f855760018181548110611f5357fe5b9060005260206000209060040201600201601c9054906101000a900460ff16611f7d576001909101905b600101611f3e565b50606081604051908082528060200260200182016040528015611fb2578160200160208202803683370190505b509050606082604051908082528060200260200182016040528015611feb57816020015b6060815260200190600190039081611fd65790505b50600b54600094509091508414156121665760005b84811015612160576001818154811061201557fe5b9060005260206000209060040201600201601c9054906101000a900460ff16612158576001818154811061204557fe5b600091825260209091206004909102015483516001600160a01b039091169084908690811061207057fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600b818154811061209d57fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156121355780601f1061210a57610100808354040283529160200191612135565b820191906000526020600020905b81548152906001019060200180831161211857829003601f168201915b505050505082858151811061214657fe5b60209081029190910101526001909301925b600101612000565b50612202565b60005b84811015612200576001818154811061217e57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166121f857600181815481106121ae57fe5b600091825260209091206004909102015483516001600160a01b03909116908490869081106121d957fe5b6001600160a01b03909216602092830291909101909101526001909301925b600101612169565b505b909450925050505b9091565b600181565b61100181565b60085481565b606181565b600881565b6060806000600e549050600080600c5411612245576015612249565b600c545b905060606122556130a5565b9050606061226282616265565b90508282511161227957909450925061220a915050565b8383835103101561228b578282510393505b83156122c15760c843046122a783838388880360008a8a6163d3565b6122bf8383838888038989038a8b8b8b5103016163d3565b505b6060836040519080825280602002602001820160405280156122ed578160200160208202803683370190505b50905060608460405190808252806020026020018201604052801561232657816020015b60608152602001906001900390816123115790505b50905060005b858110156123a75784818151811061234057fe5b602002602001015183828151811061235457fe5b60200260200101906001600160a01b031690816001600160a01b03168152505083818151811061238057fe5b602002602001015182828151811061239457fe5b602090810291909101015260010161232c565b509096509450505050509091565b60065481565b61200681565b61200081565b6001600160a01b038116600090815260046020526040812054806123ef576000915050611d17565b6000190161116081611d1c565b6001600160a01b03811660009081526004602052604081205480612424576000915050611d17565b60018082038154811061243357fe5b906000526020600020906004020160030154915050919050565b600081565b606781565b600f5481565b6012818154811061246a57fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152935090918301828280156124fb5780601f106124d0576101008083540402835291602001916124fb565b820191906000526020600020905b8154815290600101906020018083116124de57829003601f168201915b505050505081565b60105481565b6001818154811061251657fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b601081565b61100881565b6103e881565b600b81565b600c5481565b61200381565b606681565b61271081565b33612000146125c65760405162461bcd60e51b8152600401610e1290618d1d565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f389021016058383836040516125f993929190618f59565b60405180910390a1505050565b60025481565b60115481565b60145460ff1681565b600a5481565b6001600160a01b038116600090815260046020526040812054806126575760405162461bcd60e51b8152600401610e1290618ca5565b6000190192915050565b600b5461271f57612670617a00565b60015460005b8181101561271b57600b805460018101825560009190915283516000805160206191c883398151915260169092029182019081556020808601516000805160206192088339815191528401805460ff19169115159190911790556040860151805187946126f7936000805160206191e8833981519152909101920190617a2f565b50606082015161270d9060038301906013617aa9565b505050806001019050612676565b5050505b60085461272c5760036008555b600a54612739576002600a555b600061274433612621565b905061274f81611c4d565b61276b5760405162461bcd60e51b8152600401610e1290618992565b611f2f338261652a565b600981565b61100781565b600381565b60c881565b61100681565b604051806101e001604052806101ab8152602001618ffd6101ab913981565b60005460ff1681565b61200281565b61300081565b6402540be40081565b60005460ff166127ef5760405162461bcd60e51b8152600401610e12906185dd565b33611007146128105760405162461bcd60e51b8152600401610e1290618a89565b61287a84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b602082015291506165c29050565b15612917576020811461289f5760405162461bcd60e51b8152600401610e1290618c5f565b604080516020601f84018190048102820181019092528281526000916128dd9185858083850183828082843760009201919091525061661b92505050565b9050606481101580156128f35750620186a08111155b61290f5760405162461bcd60e51b8152600401610e1290618882565b600255613043565b61297784848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260098152686275726e526174696f60b81b602082015291506165c29050565b15612a1a576020811461299c5760405162461bcd60e51b8152600401610e12906183fb565b604080516020601f84018190048102820181019092528281526000916129da9185858083850183828082843760009201919091525061661b92505050565b90506127106129f4600f548361624090919063ffffffff16565b1115612a125760405162461bcd60e51b8152600401610e1290618432565b600655613043565b612a8484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260138152726d61784e756d4f664d61696e7461696e696e6760681b602082015291506165c29050565b15612b1e5760208114612aa95760405162461bcd60e51b8152600401610e129061849a565b604080516020601f8401819004810282018101909252828152600091612ae79185858083850183828082843760009201919091525061661b92505050565b600c5490915080612af6575060155b808210612b155760405162461bcd60e51b8152600401610e12906187da565b50600855613043565b612b8784848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61696e7461696e536c6173685363616c6560701b602082015291506165c29050565b15612c205760208114612bac5760405162461bcd60e51b8152600401610e1290618563565b604080516020601f8401819004810282018101909252828152600091612bea9185858083850183828082843760009201919091525061661b92505050565b9050600081118015612bfc5750600a81105b612c185760405162461bcd60e51b8152600401610e1290618dfd565b600a55613043565b612c9484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601981527f6d61784e756d4f66576f726b696e6743616e6469646174657300000000000000602082015291506165c29050565b15612d235760208114612cb95760405162461bcd60e51b8152600401610e1290618517565b604080516020601f8401819004810282018101909252828152600091612cf79185858083850183828082843760009201919091525061661b92505050565b9050600d54811115612d1b5760405162461bcd60e51b8152600401610e12906188f8565b600e55613043565b612d8c84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61784e756d4f6643616e6469646174657360701b602082015291506165c29050565b15612e0e5760208114612db15760405162461bcd60e51b8152600401610e1290618ad7565b604080516020601f8401819004810282018101909252828152600091612def9185858083850183828082843760009201919091525061661b92505050565b600d819055600e54909150811015612e0857600d54600e555b50613043565b612e7284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c6e756d4f66436162696e65747360981b602082015291506165c29050565b15612f205760208114612e975760405162461bcd60e51b8152600401610e12906185a8565b604080516020601f8401819004810282018101909252828152600091612ed59185858083850183828082843760009201919091525061661b92505050565b905060008111612ef75760405162461bcd60e51b8152600401610e1290618682565b6064811115612f185760405162461bcd60e51b8152600401610e12906186ca565b600c55613043565b612f8884848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601181527073797374656d526577617264526174696f60781b602082015291506165c29050565b1561302b5760208114612fad5760405162461bcd60e51b8152600401610e1290618db9565b604080516020601f8401819004810282018101909252828152600091612feb9185858083850183828082843760009201919091525061661b92505050565b90506127106130056006548361624090919063ffffffff16565b11156130235760405162461bcd60e51b8152600401610e1290618bc0565b600f55613043565b60405162461bcd60e51b8152600401610e1290618e5a565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a8484848460405161307894939291906183c9565b60405180910390a150505050565b60046020526000908152604090205481565b68056bc75e2d6310000081565b6001546060906000805b828110156130d4576130c081611d1c565b156130cc578160010191505b6001016130af565b50606081604051908082528060200260200182016040528015613101578160200160208202803683370190505b5090506000915060005b838110156131885761311c81611d1c565b15613180576001818154811061312e57fe5b600091825260209091206004909102015482516001600160a01b039091169083908590811061315957fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508260010192505b60010161310b565b50925050505b90565b601581565b61027181565b61100281565b6013818154811061246a57fe5b60006131b96130a5565b519050600080600c54116131ce5760156131d2565b600c545b9050808211156131e0578091505b816131ea57600191505b5090565b67016345785d8a000081565b60055481565b61100381565b61200481565b60005460ff161561322f5760405162461bcd60e51b8152600401610e1290618b89565b613237617ad6565b600061325d604051806101e001604052806101ab8152602001618ffd6101ab9139613d83565b915091508061327e5760405162461bcd60e51b8152600401610e1290618cdc565b60005b8260200151518110156133a3576001836020015182815181106132a057fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a09093015160039093019290925591860151805191850193918590811061337657fe5b602090810291909101810151516001600160a01b0316825281019190915260400160002055600101613281565b50506103e8600255506000805460ff19166001179055565b600d5481565b601354600090815b818110156134ca576134b285858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060138054909250859150811061341a57fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156134a85780601f1061347d576101008083540402835291602001916134a8565b820191906000526020600020905b81548152906001019060200180831161348b57829003601f168201915b5050505050616620565b156134c257600192505050611dc7565b6001016133c9565b5060125460005b8181101561353b5761352286868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060128054909250859150811061341a57fe5b156135335760019350505050611dc7565b6001016134d1565b50600095945050505050565b33611001146135685760405162461bcd60e51b8152600401610e1290618e81565b600b5461362657613577617a00565b60015460005b8181101561362257600b805460018101825560009190915283516000805160206191c883398151915260169092029182019081556020808601516000805160206192088339815191528401805460ff19169115159190911790556040860151805187946135fe936000805160206191e8833981519152909101920190617a2f565b5060608201516136149060038301906013617aa9565b50505080600101905061357d565b5050505b600061363182616684565b905061363c81611c4d565b1561190057611900828261652a565b606581565b601181565b3341146136745760405162461bcd60e51b8152600401610e1290618d6c565b60005460ff166136965760405162461bcd60e51b8152600401610e12906185dd565b600034116136b65760405162461bcd60e51b8152600401610e12906188c9565b3a156136d45760405162461bcd60e51b8152600401610e1290618a5b565b6001600160a01b03811660009081526004602052604090205460145434919060ff1661371457610271600f556103e86006556014805460ff191660011790555b60008211801561372657506000600f54115b156137d8576000613754612710613748600f543461680790919063ffffffff16565b9063ffffffff61684116565b905080156137d6576040516110029082156108fc029083906000818181858888f1935050505015801561378b573d6000803e3d6000fd5b507f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d816040516137bb9190618f10565b60405180910390a16137d3838263ffffffff6161fe16565b92505b505b6000821180156137ea57506000600654115b1561389057600061380c6127106137486006543461680790919063ffffffff16565b9050801561388e5760405161dead9082156108fc029083906000818181858888f19350505050158015613843573d6000803e3d6000fd5b507f627059660ea01c4733a328effb2294d2f86905bf806da763a89cee254de8bee5816040516138739190618f10565b60405180910390a161388b838263ffffffff6161fe16565b92505b505b801561398e5760006001808303815481106138a757fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff161561391457836001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4846040516139079190618f10565b60405180910390a2613988565b600354613927908463ffffffff61624016565b600390815581015461393f908463ffffffff61624016565b60038201556040516001600160a01b038516907f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc0559061397f908690618f10565b60405180910390a25b50610e34565b826001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4836040516139c79190618f10565b60405180910390a2505050565b600e5481565b61100081565b61dead81565b600b81815481106139f357fe5b6000918252602091829020601691909102018054600180830154600280850180546040805161010096831615969096026000190190911692909204601f810188900488028501880190925281845293965060ff90911694919291830182828015613a9e5780601f10613a7357610100808354040283529160200191613a9e565b820191906000526020600020905b815481529060010190602001808311613a8157829003601f168201915b5050505050905083565b61100481565b6000600a5460001480613abf575082155b80613aca5750600954155b15613ad757506000613d7b565b60096000815460019003919050819055506000613b22600a5461374886613748600b8a81548110613b0457fe5b6000918252602090912060169091020154439063ffffffff6161fe16565b90506000600b8681548110613b3357fe5b906000526020600020906016020160010160006101000a81548160ff0219169083151502179055506000806110016001600160a01b0316638256ace66040518163ffffffff1660e01b8152600401604080518083038186803b158015613b9857600080fd5b505afa158015613bac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613bd091906180c3565b9150915060009350808310613d3157613be98888615162565b5060405163436aa28360e11b8152600090612002906386d5450690613c12908c90600401618200565b60206040518083038186803b158015613c2a57600080fd5b505afa158015613c3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c629190617e70565b6001600160a01b031614613cd0576040516328aa02b160e01b8152611001906328aa02b190613c99908b9087908a9060040161826f565b600060405180830381600087803b158015613cb357600080fd5b505af1158015613cc7573d6000803e3d6000fd5b50505050613d28565b6040516305bfb49960e41b815261100190635bfb499090613cf5908b90600401618200565b600060405180830381600087803b158015613d0f57600080fd5b505af1158015613d23573d6000803e3d6000fd5b505050505b60019350613d43565b818310613d4357613d4188616684565b505b6040516001600160a01b038916907fb9d38178dc641ff1817967a63c9078cbcd955a9f1fcd75e0e3636de615d44d3b90600090a25050505b949350505050565b613d8b617ad6565b6000613d95617ad6565b613d9d617b73565b613dae613da986616883565b6168a8565b90506000805b613dbd836168f2565b15613f315780613de257613dd8613dd384616913565b616961565b60ff168452613f29565b8060011415613f24576060613dfe613df985616913565b6169e1565b90508051604051908082528060200260200182016040528015613e3b57816020015b613e28617afa565b815260200190600190039081613e205790505b5085602001819052508051604051908082528060200260200182016040528015613e7957816020015b6060815260200190600190039081613e645790505b50604086015260005b8151811015613f1957613e93617afa565b60606000613eb3858581518110613ea657fe5b6020026020010151616ab2565b92509250925080613ed3578860009a509a50505050505050505050613f3a565b8289602001518581518110613ee457fe5b60200260200101819052508189604001518581518110613f0057fe5b6020026020010181905250505050806001019050613e82565b506001925050613f29565b613f31565b600101613db4565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b6060815260200190600190039081613f59579050509050613f7f8363ffffffff16616bcc565b81600081518110613f8c57fe5b602002602001018190525061116081616bdf565b6000606483511115613fd7576000805160206191a8833981519152604051613fc790618727565b60405180910390a1506066611dc7565b60005b83518110156140755760005b8181101561406c57848181518110613ffa57fe5b6020026020010151600001516001600160a01b031685838151811061401b57fe5b6020026020010151600001516001600160a01b03161415614064576000805160206191a883398151915260405161405190618837565b60405180910390a1606692505050611dc7565b600101613fe6565b50600101613fda565b5060608060606015805480602002602001604051908101604052809291908181526020016000905b828210156141275760008481526020908190206040805160c0810182526004860290920180546001600160a01b039081168452600180830154821685870152600283015491821693850193909352600160a01b81046001600160401b03166060850152600160e01b900460ff16151560808401526003015460a0830152908352909201910161409d565b50505050905060606016805480602002602001604051908101604052809291908181526020016000905b828210156141fc5760008481526020908190208301805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156141e85780601f106141bd576101008083540402835291602001916141e8565b820191906000526020600020905b8154815290600101906020018083116141cb57829003601f168201915b505050505081526020019060010190614151565b50505050905060005b82518110156142595782818151811061421a57fe5b60200260200101516060015160030283828151811061423557fe5b60209081029190910101516001600160401b03909116606090910152600101614205565b5060608061426989898686616c69565b915091506142778282615525565b600154604080518281526020808402820101909152929850909650600095508594509250606091508280156142b6578160200160208202803683370190505b50905060005b828110156144475760006001600160a01b03166120026001600160a01b03166386d54506600184815481106142ed57fe5b60009182526020909120600491820201546040516001600160e01b031960e085901b168152614328926001600160a01b039092169101618200565b60206040518083038186803b15801561434057600080fd5b505afa158015614354573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143789190617e70565b6001600160a01b0316146143da57600182828151811061439457fe5b602002602001019060ff16908160ff1681525050600181815481106143b557fe5b9060005260206000209060040201600301546000146143d5578360010193505b61443f565b67016345785d8a0000600182815481106143f057fe5b906000526020600020906004020160030154106144125784600101945061443f565b6001818154811061441f57fe5b90600052602060002090600402016003015460001461443f578360010193505b6001016142bc565b50606084604051908082528060200260200182016040528015614474578160200160208202803683370190505b5090506060856040519080825280602002602001820160405280156144a3578160200160208202803683370190505b5090506060866040519080825280602002602001820160405280156144d2578160200160208202803683370190505b509050606087604051908082528060200260200182016040528015614501578160200160208202803683370190505b5090506000606088604051908082528060200260200182016040528015614532578160200160208202803683370190505b509050606089604051908082528060200260200182016040528015614561578160200160208202803683370190505b50905060009a506000995060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b1580156145a957600080fd5b505afa1580156145bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145e191906180ab565b905067016345785d8a000081111561462d576000805160206191a883398151915260405161460e90618b48565b60405180910390a160689e505050505050505050505050505050611dc7565b60005b8a8110156149c15789818151811061464457fe5b602002602001015160ff166001141561473a576001818154811061466457fe5b906000526020600020906004020160030154600014614735576001818154811061468a57fe5b600091825260209091206004909102015484516001600160a01b039091169085908e9081106146b557fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600181815481106146e257fe5b906000526020600020906004020160030154838d8151811061470057fe5b60200260200101818152505060018a8d8151811061471a57fe5b602002602001019060ff16908160ff16815250508b6001019b505b6149b9565b67016345785d8a00006001828154811061475057fe5b906000526020600020906004020160030154106148d5576001818154811061477457fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316898e815181106147a557fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be400600183815481106147da57fe5b906000526020600020906004020160030154816147f357fe5b066001838154811061480157fe5b90600052602060002090600402016003015403905061482983826161fe90919063ffffffff16565b898f8151811061483557fe5b6020026020010181815250506001828154811061484e57fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316878f8151811061487f57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081888f815181106148ac57fe5b60209081029190910101526148c7868263ffffffff61624016565b95508d6001019d50506149b9565b600181815481106148e257fe5b9060005260206000209060040201600301546000146149b9576001818154811061490857fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316848d8151811061493957fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506001818154811061496657fe5b906000526020600020906004020160030154838d8151811061498457fe5b60200260200101818152505060008a8d8151811061499e57fe5b602002602001019060ff16908160ff16815250508b6001019b505b600101614630565b5060008415614c37576002546040516303702b2960e51b815261100491636e0565209188916149fb918e918e918d91420190600401618331565b6020604051808303818588803b158015614a1457600080fd5b505af193505050508015614a45575060408051601f3d908101601f19168201909252614a4291810190617fd8565b60015b614bbc576040516000815260443d1015614a6157506000614afc565b60046000803e60005160e01c6308c379a08114614a82576000915050614afc565b60043d036004833e81513d60248201116001600160401b0382111715614aad57600092505050614afc565b80830180516001600160401b03811115614ace576000945050505050614afc565b8060208301013d8601811115614aec57600095505050505050614afc565b601f01601f191660405250925050505b80614b075750614b49565b60019150857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf28082604051614b3b91906183b6565b60405180910390a250614bb7565b3d808015614b73576040519150601f19603f3d011682016040523d82523d6000602084013e614b78565b606091505b5060019150857fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a4582604051614bad91906183b6565b60405180910390a2505b614c37565b8015614bfe577fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b7086604051614bf19190618f10565b60405180910390a1614c35565b857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280604051614c2c906184e0565b60405180910390a25b505b8015614ded5760005b8751811015614deb576000888281518110614c5757fe5b60200260200101519050600060018281548110614c7057fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc9185908110614ca157fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f1935050505090508015614d5d5760018281548110614ce257fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d9185908110614d3157fe5b906000526020600020906004020160030154604051614d509190618f10565b60405180910390a2614de1565b60018281548110614d6a57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d9185908110614db957fe5b906000526020600020906004020160030154604051614dd89190618f10565b60405180910390a25b5050600101614c40565b505b835115614fe35760005b8451811015614fe1578a8181518110614e0c57fe5b602002602001015160ff1660011415614eab576120026001600160a01b031663092193ab858381518110614e3c57fe5b6020026020010151878481518110614e5057fe5b60200260200101516040518363ffffffff1660e01b8152600401614e749190618200565b6000604051808303818588803b158015614e8d57600080fd5b505af1158015614ea1573d6000803e3d6000fd5b5050505050614fd9565b6000858281518110614eb957fe5b60200260200101516001600160a01b03166108fc868481518110614ed957fe5b60200260200101519081150290604051600060405180830381858888f1935050505090508015614f6f57858281518110614f0f57fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d868481518110614f4d57fe5b6020026020010151604051614f629190618f10565b60405180910390a2614fd7565b858281518110614f7b57fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d868481518110614fb957fe5b6020026020010151604051614fce9190618f10565b60405180910390a25b505b600101614df7565b505b5050505050505050505050505060005b600154811015615050576001818154811061500a57fe5b9060005260206000209060040201600301546000146150485760006001828154811061503257fe5b9060005260206000209060040201600301819055505b600101614ff3565b5047156150be577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d476040516150869190618f10565b60405180910390a1604051611002904780156108fc02916000818181858888f193505050501580156150bc573d6000803e3d6000fd5b505b600060038190556005558151156150d9576150d98282615a0f565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561511657600080fd5b505af115801561512a573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a1506000949350505050565b6000806001838154811061517257fe5b9060005260206000209060040201600301549050600060018080549050039050600161519c6130a5565b51116151d1576000600185815481106151b157fe5b906000526020600020906004020160030181905550600092505050611dc7565b846001600160a01b03167f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a708360405161520a9190618f10565b60405180910390a26001600160a01b038516600090815260046020526040812055835b600154600019018110156153f7576001816001018154811061524b57fe5b90600052602060002090600402016001828154811061526657fe5b60009182526020909120825460049092020180546001600160a01b03199081166001600160a01b0393841617825560018085015481840180548416918616919091179055600280860180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b19909416939093179055600392830154920191909155600b80549091830190811061532757fe5b9060005260206000209060160201600b828154811061534257fe5b600091825260209091208254601690920201908155600180830154818301805460ff909216151560ff1990921691909117905560028084018054615399938386019390821615610100026000190190911604617b93565b506153ac60038281019084016013617c08565b509050508060010160046000600184815481106153c557fe5b600091825260208083206004909202909101546001600160a01b0316835282019290925260400190205560010161522d565b50600180548061540357fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b80548061545657fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906154886002830182617b2f565b615496600383016000617c32565b5050905560008183816154a557fe5b04905080156155195760015460005b81811015615516576154ed83600183815481106154cd57fe5b90600052602060002090600402016003015461624090919063ffffffff16565b600182815481106154fa57fe5b60009182526020909120600360049092020101556001016154b4565b50505b50600195945050505050565b6060806000808080806155366131af565b6001549091505b801561576857600181039250600b838154811061555657fe5b600091825260209091206001601690920201015460ff166155765761575f565b6001838154811061558357fe5b600091825260208220600490910201546001600160a01b031695506155ad90869085908590613aae565b9350836155b95761575f565b60405163436aa28360e11b81526000908190612002906386d54506906155e3908a90600401618200565b60206040518083038186803b1580156155fb57600080fd5b505afa15801561560f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906156339190617e70565b90506001600160a01b038116156156bc576040516302ceee9160e11b81526120029063059ddd2290615669908490600401618200565b60206040518083038186803b15801561568157600080fd5b505afa158015615695573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906156b99190617e70565b91505b60005b8c5181101561575b57876001600160a01b03168d82815181106156de57fe5b6020026020010151600001516001600160a01b031614806157275750826001600160a01b03168d828151811061571057fe5b6020026020010151600001516001600160a01b0316145b156157535760018d828151811061573a57fe5b602090810291909101015190151560809091015261575b565b6001016156bf565b5050505b6000190161553d565b5060005b89518110156157d55789818151811061578157fe5b602002602001015160800151806157c1575060006001600160a01b03168a82815181106157aa57fe5b6020026020010151600001516001600160a01b0316145b156157cd578560010195505b60010161576c565b50885185106158bd5760408051600180825281830190925290816020015b6157fb617afa565b8152602001906001900390816157f3575050604080516001808252818301909252919850602082015b60608152602001906001900390816158245790505095508860008151811061584857fe5b60200260200101518760008151811061585d57fe5b60200260200101819052508760008151811061587557fe5b60200260200101518660008151811061588a57fe5b60200260200101819052506000876000815181106158a457fe5b6020908102919091010151901515608090910152615a02565b848951036040519080825280602002602001820160405280156158fa57816020015b6158e7617afa565b8152602001906001900390816158df5790505b5096508489510360405190808252806020026020018201604052801561593457816020015b606081526020019060019003908161591f5790505b5095506000915060005b8951811015615a005789818151811061595357fe5b602002602001015160800151158015615996575060006001600160a01b03168a828151811061597e57fe5b6020026020010151600001516001600160a01b031614155b156159f8578981815181106159a757fe5b60200260200101518884815181106159bb57fe5b60200260200101819052508881815181106159d257fe5b60200260200101518784815181106159e657fe5b60200260200101819052508260010192505b60010161593e565b505b50505050505b9250929050565b600154825160005b82811015615b2c576001615a29617afa565b60018381548110615a3657fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b84811015615b0057878181518110615ac657fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b03161415615af85760009250615b00565b600101615ab2565b508115615b225780516001600160a01b03166000908152600460205260408120555b5050600101615a17565b5080821115615beb57805b82811015615be9576001805480615b4a57fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b805480615b9d57fe5b60008281526020812060166000199093019283020181815560018101805460ff1916905590615bcf6002830182617b2f565b615bdd600383016000617c32565b50509055600101615b37565b505b6000818310615bfa5781615bfc565b825b905060005b81811015615fa057615cae868281518110615c1857fe5b602002602001015160018381548110615c2d57fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a0820152617035565b615e62578060010160046000888481518110615cc657fe5b6020026020010151600001516001600160a01b03166001600160a01b0316815260200190815260200160002081905550858181518110615d0257fe5b602002602001015160018281548110615d1757fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a0909101516003909101558451859082908110615dd257fe5b6020026020010151600b8281548110615de757fe5b90600052602060002090601602016002019080519060200190615e0b929190617a2f565b506000600b8281548110615e1b57fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b805483908110615e4c57fe5b6000918252602090912060169091020155615f98565b858181518110615e6e57fe5b60200260200101516060015160018281548110615e8757fe5b906000526020600020906004020160020160146101000a8154816001600160401b0302191690836001600160401b03160217905550615f4d858281518110615ecb57fe5b6020026020010151600b8381548110615ee057fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156134a85780601f1061347d576101008083540402835291602001916134a8565b615f9857848181518110615f5d57fe5b6020026020010151600b8281548110615f7257fe5b90600052602060002090601602016002019080519060200190615f96929190617a2f565b505b600101615c01565b508282111561617857615fb1617a00565b835b8381101561617557858181518110615fc757fe5b602002602001015182604001819052506001878281518110615fe557fe5b6020908102919091018101518254600181810185556000948552838520835160049093020180546001600160a01b039384166001600160a01b0319918216178255848601518284018054918616918316919091179055604080860151600284018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909a1692909616919091179290921696909617169190911790935560a090930151600390930192909255600b80549283018155909352845160169091026000805160206191c88339815191528101918255858301516000805160206192088339815191528201805491151560ff199092169190911790559285015180518694929361611b936000805160206191e883398151915201920190617a2f565b5060608201516161319060038301906013617aa9565b505050806001016004600089848151811061614857fe5b602090810291909101810151516001600160a01b0316825281019190915260400160002055600101615fb3565b50505b616180617091565b616188617279565b6000600981905560015493505b838110156161f6576000600b82815481106161ac57fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b8054839081106161dd57fe5b6000918252602090912060169091020155600101616195565b505050505050565b600061116083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250617467565b6000828201838110156111605760405162461bcd60e51b8152600401610e129061864b565b6001548151604080518281526020808402820101909152606092919083908280156162a457816020015b606081526020019060019003908161628f5790505b50600b5490915083146162bb579250611d17915050565b60005b828110156163ca57600b6001600460008985815181106162da57fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054038154811061630e57fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156163a65780601f1061637b576101008083540402835291602001916163a6565b820191906000526020600020905b81548152906001019060200180831161638957829003601f168201915b50505050508282815181106163b757fe5b60209081029190910101526001016162be565b50949350505050565b60005b8281101561652057600082878388016040516020016163f69291906181f2565b6040516020818303038152906040528051906020012060001c8161641657fe5b06905080850182870114616517576000898388018151811061643457fe5b602002602001015190506060898489018151811061644e57fe5b602002602001015190508a8388018151811061646657fe5b60200260200101518b858a018151811061647c57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050818b848901815181106164ab57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505089838801815181106164d957fe5b60200260200101518a858a01815181106164ef57fe5b6020026020010181905250808a8489018151811061650957fe5b602002602001018190525050505b506001016163d6565b5050505050505050565b600980546001908101909155600b80548390811061654457fe5b906000526020600020906016020160010160006101000a81548160ff02191690831515021790555043600b828154811061657a57fe5b600091825260208220601690910201919091556040516001600160a01b038416917ff62981a567ec3cec866c6fa93c55bcdf841d6292d18b8d522ececa769375d82d91a25050565b6000816040516020016165d591906181d6565b60405160208183030381529060405280519060200120836040516020016165fc91906181d6565b6040516020818303038152906040528051906020012014905092915050565b015190565b81518151600091600191811480831461663c576000925061667a565b600160208701838101602088015b6002848385100114156166755780518351146166695760009650600093505b6020928301920161664a565b505050505b5090949350505050565b6001600160a01b038116600090815260046020526040812054806166ad57506000199050611d17565b6001810390506000600182815481106166c257fe5b90600052602060002090600402016003015490506000600183815481106166e557fe5b6000918252602090912060036004909202010155600154604051600019909101906001600160a01b038616907f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d9061673e908590618f10565b60405180910390a28061675657829350505050611d17565b600081838161676157fe5b04905080156167fd5760005b848110156167af5761678682600183815481106154cd57fe5b6001828154811061679357fe5b600091825260209091206003600490920201015560010161676d565b50600180549085015b818110156167fa576167d183600183815481106154cd57fe5b600182815481106167de57fe5b60009182526020909120600360049092020101556001016167b8565b50505b5091949350505050565b60008261681657506000611dc7565b8282028284828161682357fe5b04146111605760405162461bcd60e51b8152600401610e1290618a1a565b600061116083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250617493565b61688b617c41565b506040805180820190915281518152602082810190820152919050565b6168b0617b73565b6168b9826174ca565b6168c257600080fd5b60006168d18360200151617504565b60208085015160408051808201909152868152920190820152915050919050565b60006168fc617c41565b505080518051602091820151919092015191011190565b61691b617c41565b616924826168f2565b61692d57600080fd5b6020820151600061693d82617567565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061697657508151602110155b61697f57600080fd5b600061698e8360200151617504565b905080836000015110156169b45760405162461bcd60e51b8152600401610e1290618c28565b8251602080850151830180519284900392918310156163ca57506020919091036101000a90049392505050565b60606169ec826174ca565b6169f557600080fd5b6000616a0083617648565b9050606081604051908082528060200260200182016040528015616a3e57816020015b616a2b617c41565b815260200190600190039081616a235790505b5090506000616a508560200151617504565b60208601510190506000805b84811015616aa757616a6d83617567565b9150604051806040016040528083815260200184815250848281518110616a9057fe5b602090810291909101015291810191600101616a5c565b509195945050505050565b616aba617afa565b60606000616ac6617afa565b6060616ad0617b73565b616ad9876168a8565b90506000805b616ae8836168f2565b15616bbd5780616b1357616b03616afe84616913565b6176a4565b6001600160a01b03168552616bb5565b8060011415616b3b57616b28616afe84616913565b6001600160a01b03166020860152616bb5565b8060021415616b6357616b50616afe84616913565b6001600160a01b03166040860152616bb5565b8060031415616b8f57616b78613dd384616913565b6001600160401b0316606086015260019150616bb5565b8060041415616bb057616ba9616ba484616913565b6176be565b9350616bb5565b616bbd565b600101616adf565b50929791965091945092505050565b6060611dc7616bda8361772e565b617814565b6060815160001415616c005750604080516000815260208101909152611d17565b606082600081518110616c0f57fe5b602002602001015190506000600190505b8351811015616c5057616c4682858381518110616c3957fe5b6020026020010151617866565b9150600101616c20565b50611160616c63825160c060ff166178e3565b82617866565b60608060006120026001600160a01b031663c473318f6040518163ffffffff1660e01b815260040160206040518083038186803b158015616ca957600080fd5b505afa158015616cbd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190616ce191906180ab565b90508085518851011015616cf6575083518651015b606081604051908082528060200260200182016040528015616d3257816020015b616d1f617afa565b815260200190600190039081616d175790505b509050606082604051908082528060200260200182016040528015616d6b57816020015b6060815260200190600190039081616d565790505b50905060008060005b8b51831080616d835750895182105b8015616d8e57508581105b15617023578b51831415616dfe57898281518110616da857fe5b6020026020010151858281518110616dbc57fe5b6020026020010181905250888281518110616dd357fe5b6020026020010151848281518110616de757fe5b602090810291909101015260019182019101616d74565b8951821415616e69578b8381518110616e1357fe5b6020026020010151858281518110616e2757fe5b60200260200101819052508a8381518110616e3e57fe5b6020026020010151848281518110616e5257fe5b602090810291909101015260019283019201616d74565b898281518110616e7557fe5b6020026020010151606001516001600160401b03168c8481518110616e9657fe5b6020026020010151606001516001600160401b03161115616f12578b8381518110616ebd57fe5b6020026020010151858281518110616ed157fe5b60200260200101819052508a8381518110616ee857fe5b6020026020010151848281518110616efc57fe5b602002602001018190525082600101925061701b565b898281518110616f1e57fe5b6020026020010151606001516001600160401b03168c8481518110616f3f57fe5b6020026020010151606001516001600160401b03161015616fbb57898281518110616f6657fe5b6020026020010151858281518110616f7a57fe5b6020026020010181905250888281518110616f9157fe5b6020026020010151848281518110616fa557fe5b602002602001018190525081600101915061701b565b898281518110616fc757fe5b6020026020010151600001516001600160a01b03168c8481518110616fe857fe5b6020026020010151600001516001600160a01b0316101561700f578b8381518110616ebd57fe5b898281518110616da857fe5b600101616d74565b50929a91995090975050505050505050565b805182516000916001600160a01b03918216911614801561706f575081602001516001600160a01b031683602001516001600160a01b0316145b80156111605750506040908101519101516001600160a01b0390811691161490565b601254601354808211156170dc57805b828110156170da5760128054806170b457fe5b6001900381819060005260206000200160006170d09190617b2f565b90556001016170a1565b505b60008183106170eb57816170ed565b825b905060005b81811015617205576171aa6012828154811061710a57fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156171985780601f1061716d57610100808354040283529160200191617198565b820191906000526020600020905b81548152906001019060200180831161717b57829003601f168201915b50505050506013838154811061341a57fe5b6171fd57601381815481106171bb57fe5b90600052602060002001601282815481106171d257fe5b9060005260206000200190805460018160011615610100020316600290046171fb929190617b93565b505b6001016170f2565b5082821115610e3457825b828110156172735760126013828154811061722757fe5b600091825260208083208454600181810187559585529190932092909101805461726a949390920192909160026101009282161592909202600019011604617b93565b50600101617210565b50505050565b601354600b54808211156172c457805b828110156172c257601380548061729c57fe5b6001900381819060005260206000200160006172b89190617b2f565b9055600101617289565b505b60008183106172d357816172d5565b825b905060005b818110156173f457617392601382815481106172f257fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156173805780601f1061735557610100808354040283529160200191617380565b820191906000526020600020905b81548152906001019060200180831161736357829003601f168201915b5050505050600b8381548110615ee057fe5b6173ec57600b81815481106173a357fe5b9060005260206000209060160201600201601382815481106173c157fe5b9060005260206000200190805460018160011615610100020316600290046173ea929190617b93565b505b6001016172da565b5082821115610e3457825b82811015617273576013600b828154811061741657fe5b60009182526020808320845460018082018755958552919093206016929092029092016002908101805461745e95939094019390926000199082161561010002011604617b93565b506001016173ff565b6000818484111561748b5760405162461bcd60e51b8152600401610e1291906183b6565b505050900390565b600081836174b45760405162461bcd60e51b8152600401610e1291906183b6565b5060008385816174c057fe5b0495945050505050565b80516000906174db57506000611d17565b6020820151805160001a9060c08210156174fa57600092505050611d17565b5060019392505050565b8051600090811a608081101561751e576000915050611d17565b60b8811080617539575060c08110801590617539575060f881105b15617548576001915050611d17565b60c081101561755c5760b519019050611d17565b60f519019050611d17565b80516000908190811a60808110156175825760019150617641565b60b881101561759757607e1981019150617641565b60c08110156175e857600060b78203600186019550806020036101000a8651049150600181018201935050808310156175e25760405162461bcd60e51b8152600401610e1290618967565b50617641565b60f88110156175fd5760be1981019150617641565b600060f78203600186019550806020036101000a86510491506001810182019350508083101561763f5760405162461bcd60e51b8152600401610e1290618967565b505b5092915050565b805160009061765957506000611d17565b6000809050600061766d8460200151617504565b602085015185519181019250015b8082101561769b5761768c82617567565b8201915082600101925061767b565b50909392505050565b80516000906015146176b557600080fd5b611dc782616961565b80516060906176cc57600080fd5b60006176db8360200151617504565b83516040805191839003808352601f19601f8201168301602001909152919250606090828015617712576020820181803683370190505b50905060008160200190506163ca8487602001510182856179b5565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff19841661777257506018617796565b6fffffffffffffffffffffffffffffffff19841661779257506010617796565b5060005b60208110156177cc578181815181106177ab57fe5b01602001516001600160f81b031916156177c4576177cc565b600101617796565b60008160200390506060816040519080825280601f01601f191660200182016040528015617801576020820181803683370190505b5080830196909652508452509192915050565b6060815160011480156178465750607f60f81b8260008151811061783457fe5b01602001516001600160f81b03191611155b15617852575080611d17565b611dc76178648351608060ff166178e3565b835b6060806040519050835180825260208201818101602087015b8183101561789757805183526020928301920161787f565b50855184518101855292509050808201602086015b818310156178c45780518352602092830192016178ac565b508651929092011591909101601f01601f191660405250905092915050565b606068010000000000000000831061790d5760405162461bcd60e51b8152600401610e12906187b2565b604080516001808252818301909252606091602082018180368337019050509050603784116179675782840160f81b8160008151811061794957fe5b60200101906001600160f81b031916908160001a9053509050611dc7565b60606179728561772e565b90508381510160370160f81b8260008151811061798b57fe5b60200101906001600160f81b031916908160001a9053506179ac8282617866565b95945050505050565b806179bf57610e34565b5b602081106179df578251825260209283019290910190601f19016179c0565b915181516020939093036101000a6000190180199091169216919091179052565b60405180608001604052806000815260200160001515815260200160608152602001617a2a617c5b565b905290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10617a7057805160ff1916838001178555617a9d565b82800160010185558215617a9d579182015b82811115617a9d578251825591602001919060010190617a82565b506131ea929150617c7a565b8260138101928215617a9d5791602002820182811115617a9d578251825591602001919060010190617a82565b6040518060600160405280600060ff16815260200160608152602001606081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b50805460018160011615610100020316600290046000825580601f10617b555750611f2f565b601f016020900490600052602060002090810190611f2f9190617c7a565b6040518060400160405280617b86617c41565b8152602001600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10617bcc5780548555617a9d565b82800160010185558215617a9d57600052602060002091601f016020900482015b82811115617a9d578254825591600101919060010190617bed565b8260138101928215617a9d5791820182811115617a9d578254825591600101919060010190617bed565b50611f2f906013810190617c7a565b604051806040016040528060008152602001600081525090565b6040518061026001604052806013906020820280368337509192915050565b61318e91905b808211156131ea5760008155600101617c80565b8035611dc781618fe7565b60008083601f840112617cb0578182fd5b5081356001600160401b03811115617cc6578182fd5b6020830191508360208083028501011115615a0857600080fd5b6000601f8381840112617cf1578182fd5b8235617d04617cff82618f9c565b618f76565b818152925060208084019085810160005b84811015617d96578135880189603f820112617d3057600080fd5b838101356001600160401b03811115617d4857600080fd5b617d59818901601f19168601618f76565b81815260408c81848601011115617d6f57600080fd5b82818501888401375060009181018601919091528552509282019290820190600101617d15565b50505050505092915050565b600082601f830112617db2578081fd5b8135617dc0617cff82618f9c565b818152915060208083019084810181840286018201871015617de157600080fd5b6000805b85811015617d965782356001600160401b0381168114617e03578283fd5b85529383019391830191600101617de5565b60008083601f840112617e26578182fd5b5081356001600160401b03811115617e3c578182fd5b602083019150836020828501011115615a0857600080fd5b600060208284031215617e65578081fd5b813561116081618fe7565b600060208284031215617e81578081fd5b815161116081618fe7565b60008060008060408587031215617ea1578283fd5b84356001600160401b0380821115617eb7578485fd5b617ec388838901617c9f565b90965094506020870135915080821115617edb578384fd5b50617ee887828801617c9f565b95989497509550505050565b600080600060608486031215617f08578283fd5b83356001600160401b0380821115617f1e578485fd5b81860187601f820112617f2f578586fd5b80359250617f3f617cff84618f9c565b80848252602080830192508084018b828389028701011115617f5f57898afd5b8994505b86851015617f8957617f758c82617c94565b845260019490940193928101928101617f63565b509097508801359350505080821115617fa0578384fd5b617fac87838801617da2565b93506040860135915080821115617fc1578283fd5b50617fce86828701617ce0565b9150509250925092565b600060208284031215617fe9578081fd5b81518015158114611160578182fd5b6000806020838503121561800a578182fd5b82356001600160401b0381111561801f578283fd5b61802b85828601617e15565b90969095509350505050565b6000806000806040858703121561804c578384fd5b84356001600160401b0380821115618062578586fd5b61806e88838901617e15565b90965094506020870135915080821115618086578384fd5b50617ee887828801617e15565b6000602082840312156180a4578081fd5b5035919050565b6000602082840312156180bc578081fd5b5051919050565b600080604083850312156180d5578182fd5b505080516020909101519092909150565b6000806000604084860312156180fa578081fd5b833560ff8116811461810a578182fd5b925060208401356001600160401b03811115618124578182fd5b61813086828701617e15565b9497909650939450505050565b6000815180845260208085019450808401835b838110156181755781516001600160a01b031687529582019590820190600101618150565b509495945050505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b600081518084526181c2816020860160208601618fbb565b601f01601f19169290920160200192915050565b600082516181e8818460208701618fbb565b9190910192915050565b918252602082015260400190565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b03968716815294861660208601529290941660408401526001600160401b03166060830152911515608082015260a081019190915260c00190565b6001600160a01b0393909316835260208301919091521515604082015260600190565b6001600160a01b0392909216825260ff16602082015260400190565b600060208252611160602083018461813d565b6000604082526182d4604083018561813d565b602083820381850152818551808452828401915082838202850101838801865b8381101561832257601f198784030185526183108383516181aa565b948601949250908501906001016182f4565b50909998505050505050505050565b600060808252618344608083018761813d565b828103602084810191909152865180835287820192820190845b8181101561837a5784518352938301939183019160010161835e565b5050848103604086015261838e818861813d565b93505050506001600160401b038316606083015295945050505050565b901515815260200190565b60006020825261116060208301846181aa565b6000604082526183dd604083018688618180565b82810360208401526183f0818587618180565b979650505050505050565b6020808252601c908201527f6c656e677468206f66206275726e526174696f206d69736d6174636800000000604082015260600190565b60208082526042908201527f746865206275726e526174696f20706c75732073797374656d5265776172645260408201527f6174696f206d757374206265206e6f2067726561746572207468616e20313030606082015261030360f41b608082015260a00190565b60208082526026908201527f6c656e677468206f66206d61784e756d4f664d61696e7461696e696e67206d696040820152650e6dac2e8c6d60d31b606082015260800190565b6020808252601b908201527f6261746368207472616e736665722072657475726e2066616c73650000000000604082015260600190565b6020808252602c908201527f6c656e677468206f66206d61784e756d4f66576f726b696e6743616e6469646160408201526b0e8cae640dad2e6dac2e8c6d60a31b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61696e7461696e536c6173685363616c65206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252818101527f6c656e677468206f66206e756d4f66436162696e657473206d69736d61746368604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252601f908201527f6f6e6c7920736c617368206f72207374616b6548756220636f6e747261637400604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526028908201527f746865206e756d4f66436162696e657473206d75737420626520677265617465604082015267072207468616e20360c41b606082015260800190565b60208082526039908201527f746865206e756d4f66436162696e657473206d757374206265206c657373207460408201527f68616e204d41585f4e554d5f4f465f56414c494441544f525300000000000000606082015260800190565b60208082526029908201527f746865206e756d626572206f662076616c696461746f727320657863656564206040820152681d1a19481b1a5b5a5d60ba1b606082015260800190565b60208082526022908201527f63616e206e6f7420646f207468697320747769636520696e206f6e6520626c6f604082015261636b60f01b606082015260800190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526037908201527f746865206d61784e756d4f664d61696e7461696e696e67206d7573742062652060408201527f6c657373207468616e206e756d4f66436162696e657473000000000000000000606082015260800190565b6020808252602b908201527f6475706c696361746520636f6e73656e7375732061646472657373206f66207660408201526a185b1a59185d1bdc94d95d60aa1b606082015260800190565b60208082526027908201527f7468652065787069726554696d655365636f6e64476170206973206f7574206f604082015266662072616e676560c81b606082015260800190565b6020808252601590820152746465706f7369742076616c7565206973207a65726f60581b604082015260600190565b60208082526049908201527f746865206d61784e756d4f66576f726b696e6743616e64696461746573206d7560408201527f7374206265206e6f742067726561746572207468616e206d61784e756d4f6643606082015268616e6469646174657360b81b608082015260a00190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b60208082526023908201527f63616e206e6f7420656e7465722054656d706f72617279204d61696e74656e616040820152626e636560e81b606082015260800190565b60208082526025908201527f6c656e677468206f66206a61696c2076616c696461746f7273206d757374206260408201526465206f6e6560d81b606082015260800190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61784e756d4f6643616e64696461746573206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252601290820152716e6f7420696e206d61696e74656e616e636560701b604082015260600190565b60208082526021908201527f666565206973206c6172676572207468616e2044555354595f494e434f4d494e6040820152604760f81b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b60208082526042908201527f7468652073797374656d526577617264526174696f20706c7573206275726e5260408201527f6174696f206d757374206265206e6f2067726561746572207468616e20313030606082015261030360f41b608082015260a00190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526026908201527f6c656e677468206f662065787069726554696d655365636f6e64476170206d696040820152650e6dac2e8c6d60d31b606082015260800190565b60208082526017908201527f6f6e6c792063757272656e742076616c696461746f7273000000000000000000604082015260600190565b60208082526021908201527f6661696c656420746f20706172736520696e69742076616c696461746f7253656040820152601d60fa1b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b60208082526024908201527f6c656e677468206f662073797374656d526577617264526174696f206d69736d6040820152630c2e8c6d60e31b606082015260800190565b6020808252603e908201527f746865206d61696e7461696e536c6173685363616c65206d757374206265206760408201527f726561746572207468616e203020616e64206c657373207468616e2031300000606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b60208082526029908201527f746865206d6573736167652073656e646572206d75737420626520736c6173686040820152680818dbdb9d1c9858dd60ba1b606082015260800190565b6020808252601f908201527f746865206d73672073656e646572206d757374206265207374616b6548756200604082015260600190565b61ffff91909116815260200190565b90815260200190565b60008482528315156020830152606060408301526179ac60608301846181aa565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff85168252604060208301526179ac604083018486618180565b6040518181016001600160401b0381118282101715618f9457600080fd5b604052919050565b60006001600160401b03821115618fb1578081fd5b5060209081020190565b60005b83811015618fd6578181015183820152602001618fbe565b838111156172735750506000910152565b6001600160a01b0381168114611f2f57600080fdfef901a880f901a4f844941284214b9b9c85549ab3d2b972df0deef66ac2c9946ddf42a51534fc98d0c0a3b42c963cace8441ddf946ddf42a51534fc98d0c0a3b42c963cace8441ddf8410000000f84494a2959d3f95eae5dc7d70144ce1b73b403b7eb6e0948081ef03f1d9e0bb4a5bf38f16285c879299f07f948081ef03f1d9e0bb4a5bf38f16285c879299f07f8410000000f8449435552c16704d214347f29fa77f77da6d75d7c75294dc4973e838e3949c77aced16ac2315dc2d7ab11194dc4973e838e3949c77aced16ac2315dc2d7ab1118410000000f84494980a75ecd1309ea12fa2ed87a8744fbfc9b863d594cc6ac05c95a99c1f7b5f88de0e3486c82293b27094cc6ac05c95a99c1f7b5f88de0e3486c82293b2708410000000f84494f474cf03cceff28abc65c9cbae594f725c80e12d94e61a183325a18a173319dd8e19c8d069459e217594e61a183325a18a173319dd8e19c8d069459e21758410000000f84494b71b214cb885500844365e95cd9942c7276e7fd894d22ca3ba2141d23adab65ce4940eb7665ea2b6a794d22ca3ba2141d23adab65ce4940eb7665ea2b6a7841000000070e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb20175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbb0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbaa164736f6c6343000604000a" }, - "0x0000000000000000000000000000000000001002": { + "0x0000000000000000000000000000000000001001": { "balance": "0x0", "code": "0x608060405234801561001057600080fd5b506004361061035d5760003560e01c80637942fd05116101d3578063c80d4b8f11610104578063df8079e9116100a2578063f9a2bbc71161007c578063f9a2bbc714610601578063fc3e590814610609578063fc4333cd14610611578063fd6a6879146106195761035d565b8063df8079e9146105e9578063e1c7392a146105f1578063f1fad104146105f95761035d565b8063c96be4cb116100de578063c96be4cb146105b3578063cc844b73146105c6578063dc927faf146105d9578063dcc6f156146105e15761035d565b8063c80d4b8f14610590578063c81b166214610598578063c8509d81146105a05761035d565b8063a1a11bf511610171578063aad560631161014b578063aad5606314610565578063ab51bb961461056d578063ac0af62914610575578063ac4317511461057d5761035d565b8063a1a11bf51461054d578063a78abc1614610555578063aa82dce11461055d5761035d565b8063831d65d1116101ad578063831d65d11461052257806396713da9146105355780639dc092621461053d5780639f804f5f146105455761035d565b80637942fd051461050a5780637e434d54146105125780638256ace61461051a5761035d565b806343756e5c116102ad5780635bfb49901161024b57806370fd5bad1161022557806370fd5bad146104ea578063718a8aa8146104f257806375d47a0a146104fa5780637912a65d146105025761035d565b80635bfb4990146104c757806362b72cf5146104da5780636e47b482146104e25761035d565b806350055f901161028757806350055f90146104a757806351b4dce3146104af57806351e80672146104b7578063567a372d146104bf5761035d565b806343756e5c14610482578063493279b11461048a5780634bf6c8821461049f5761035d565b8063280870281161031a57806335aa2e44116102f457806335aa2e441461043157806337c8dab914610444578063389f4f71146104655780633dffc3871461046d5761035d565b8063280870281461040157806328aa02b1146104095780633306ccca1461041c5761035d565b80630bee7a67146103625780630e2374a5146103805780631182b8751461039557806322d1e80b146103b557806323bac5a2146103ca57806327962118146103ec575b600080fd5b61036a610621565b6040516103779190613d96565b60405180910390f35b610388610626565b6040516103779190613574565b6103a86103a33660046134aa565b61062c565b60405161037791906135ac565b6103bd610692565b60405161037791906135a1565b6103dd6103d83660046131af565b61069b565b60405161037793929190613d7e565b6103ff6103fa366004613307565b6106be565b005b610388610a13565b6103ff6104173660046131e7565b610a19565b610424610a4a565b6040516103779190613d67565b61038861043f36600461347a565b610a50565b6104576104523660046131af565b610a77565b604051610377929190613d70565b610424610ace565b610475610ad4565b6040516103779190613da7565b610388610ad9565b610492610adf565b6040516103779190613d58565b610475610ae4565b610424610ae9565b610388610aef565b610388610af5565b610424610afb565b6103ff6104d53660046131af565b610b01565b610424610c0d565b610388610c13565b610475610c19565b610475610c1e565b610388610c23565b610424610c29565b610475610c2e565b610388610c33565b610457610c39565b6103ff6105303660046134aa565b610c43565b610475610d56565b610388610d5b565b610424610d61565b610388610d67565b6103bd610d6d565b610388610d76565b610388610d7c565b61036a610d82565b610424610d87565b6103ff61058b36600461335e565b610d8c565b610424611328565b61038861132d565b6103ff6105ae3660046134aa565b611333565b6103ff6105c13660046131af565b6113a4565b6103ff6105d43660046133c7565b611815565b610388611df4565b610424611dfa565b610388611dff565b6103ff611e05565b610475611e41565b610388611e46565b610475611e4c565b6103ff611e51565b61038861229a565b606481565b61200181565b606033612000146106585760405162461bcd60e51b815260040161064f90613bfb565b60405180910390fd5b60005460ff1661067a5760405162461bcd60e51b815260040161064f906136a1565b60405162461bcd60e51b815260040161064f90613cec565b60075460ff1681565b600260208190526000918252604090912080546001820154919092015460ff1683565b60005460ff166106e05760405162461bcd60e51b815260040161064f906136a1565b6006546106ed5760146006555b6008546106fb576170806008555b81511580159061070b5750805115155b6107275760405162461bcd60e51b815260040161064f90613b59565b60408051600380825260808201909252606091816020015b606081526020019060019003908161073f57905050905061076060616122a0565b8160008151811061076d57fe5b6020026020010181905250610781836122bb565b8160018151811061078e57fe5b60200260200101819052506107a2826122bb565b816002815181106107af57fe5b602002602001018190525060606107c582612311565b60408051603480825260608281019093529293509091602082018180368337019050509050815160346020830182602086016068600019fa61080657600080fd5b506014810151603482015160405163436aa28360e11b8152600090612002906386d5450690610839908690600401613574565b60206040518083038186803b15801561085157600080fd5b505afa158015610865573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088991906131cb565b6001600160a01b031614156108b05760405162461bcd60e51b815260040161064f90613671565b43600854820110156108d45760405162461bcd60e51b815260040161064f90613612565b604051631871f7d960e31b81526120029063c38fbec8906108f9908590600401613574565b600060405180830381600087803b15801561091357600080fd5b505af1158015610927573d6000803e3d6000fd5b50506040516335409f7f60e01b815261100092506335409f7f9150610950908590600401613574565b600060405180830381600087803b15801561096a57600080fd5b505af115801561097e573d6000803e3d6000fd5b50506006546040516309a99b4f60e41b815260646110028031909302049350909150639a99b4f0906109b69033908590600401613588565b602060405180830381600087803b1580156109d057600080fd5b505af11580156109e4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a089190613492565b505050505050505050565b61200581565b3361100014610a3a5760405162461bcd60e51b815260040161064f906138e4565b610a458383836123a2565b505050565b61708081565b60018181548110610a5d57fe5b6000918252602090912001546001600160a01b0316905081565b600080610a82612f96565b5050506001600160a01b0316600090815260026020818152604092839020835160608101855281548082526001830154938201849052919093015460ff16151592909301919091529091565b60055481565b600181565b61100181565b606181565b600881565b60065481565b61200681565b61200081565b60045481565b3361100014610b225760405162461bcd60e51b815260040161064f906138e4565b60005460ff16610b445760405162461bcd60e51b815260040161064f906136a1565b61200063f7a251d7600b610b5784612580565b60006040518463ffffffff1660e01b8152600401610b7793929190613db5565b600060405180830381600087803b158015610b9157600080fd5b505af1925050508015610ba2575060015b610c0a573d808015610bd0576040519150601f19603f3d011682016040523d82523d6000602084013e610bd5565b606091505b50816001600160a01b0316600080516020613ea0833981519152600083604051610c009291906135bf565b60405180910390a2505b50565b60035481565b61100581565b600281565b601081565b61100881565b603281565b600b81565b61200381565b6004546005549091565b3361200014610c645760405162461bcd60e51b815260040161064f90613bfb565b60005460ff16610c865760405162461bcd60e51b815260040161064f906136a1565b610c8e612fb9565b6000610ccf84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061264992505050565b915091508015610d165781516040517f7f0956d47419b9525356e7111652b653b530ec6f5096dccc04589bc38e62996791610d0991613d96565b60405180910390a1610d4f565b81516040517f7d45f62d17443dd4547bca8a8112c60e2385669318dc300ec61a5d2492f262e791610d4691613d96565b60405180910390a15b5050505050565b600981565b61100781565b60085481565b61100681565b60005460ff1681565b61200281565b61300081565b600081565b600481565b60005460ff16610dae5760405162461bcd60e51b815260040161064f906136a1565b3361100714610dcf5760405162461bcd60e51b815260040161064f90613a48565b610e3a84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260148152731b5a5cd9195b59585b9bdc951a1c995cda1bdb1960621b602082015291506126c99050565b15610ed55760208114610e5f5760405162461bcd60e51b815260040161064f90613870565b604080516020601f8401819004810282018101909252828152600091610e9d9185858083850183828082843760009201919091525061272392505050565b905060018110158015610eb1575060055481105b610ecd5760405162461bcd60e51b815260040161064f90613bb6565b6004556112e5565b610f3b84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e19995b1bdb9e551a1c995cda1bdb19608a1b602082015291506126c99050565b15610fd75760208114610f605760405162461bcd60e51b815260040161064f90613a96565b604080516020601f8401819004810282018101909252828152600091610f9e9185858083850183828082843760009201919091525061272392505050565b90506103e88111158015610fb3575060045481115b610fcf5760405162461bcd60e51b815260040161064f9061375a565b6005556112e5565b61104484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601681527566656c6f6e79536c617368526577617264526174696f60501b602082015291506126c99050565b156110de57602081146110695760405162461bcd60e51b815260040161064f906139d0565b604080516020601f84018190048102820181019092528281526000916110a79185858083850183828082843760009201919091525061272392505050565b9050600a81101580156110ba5750606481105b6110d65760405162461bcd60e51b815260040161064f90613ad8565b6006556112e5565b61115284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f656e61626c654d616c6963696f7573566f7465536c6173680000000000000000602082015291506126c99050565b156111c957602081146111775760405162461bcd60e51b815260040161064f9061378f565b604080516020601f84018190048102820181019092528281526111b3919084848083850183828082843760009201919091525061272892505050565b6007805460ff19169115159190911790556112e5565b61123084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601081526f66656c6f6e79536c61736853636f706560801b602082015291506126c99050565b156112cd57602081146112555760405162461bcd60e51b815260040161064f9061395f565b604080516020601f84018190048102820181019092528281526000916112939185858083850183828082843760009201919091525061272392505050565b905061708081101580156112a95750620d2f0081105b6112c55760405162461bcd60e51b815260040161064f906136d8565b6008556112e5565b60405162461bcd60e51b815260040161064f90613c97565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a8484848460405161131a94939291906135e0565b60405180910390a150505050565b609681565b61100281565b33612000146113545760405162461bcd60e51b815260040161064f90613bfb565b60005460ff166113765760405162461bcd60e51b815260040161064f906136a1565b6040517f07db600eebe2ac176be8dcebad61858c245a4961bb32ca2aa3d159b09aa0810e90600090a1505050565b3341146113c35760405162461bcd60e51b815260040161064f90613c4a565b60005460ff166113e55760405162461bcd60e51b815260040161064f906136a1565b60035443116114065760405162461bcd60e51b815260040161064f90613d23565b3a156114245760405162461bcd60e51b815260040161064f906139a2565b60405163155853f360e21b8152611000906355614fcc90611449908490600401613574565b60206040518083038186803b15801561146157600080fd5b505afa158015611475573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149991906132eb565b6114a25761180e565b6114aa612f96565b506001600160a01b0381166000908152600260208181526040928390208351606081018552815481526001820154928101929092529091015460ff16158015928201929092529061150557602081018051600101905261155e565b60016040820181905260208201819052805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0384161790555b43815260055460208201518161157057fe5b0661173c57600060208201526040516335409f7f60e01b8152611000906335409f7f906115a1908590600401613574565b600060405180830381600087803b1580156115bb57600080fd5b505af11580156115cf573d6000803e3d6000fd5b505060405163436aa28360e11b81526000925061200291506386d54506906115fb908690600401613574565b60206040518083038186803b15801561161357600080fd5b505afa158015611627573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061164b91906131cb565b6001600160a01b03161461166e5761166982826020015160006123a2565b611737565b61200063f7a251d7600b61168185612580565b60006040518463ffffffff1660e01b81526004016116a193929190613db5565b600060405180830381600087803b1580156116bb57600080fd5b505af19250505080156116cc575060015b611737573d8080156116fa576040519150601f19603f3d011682016040523d82523d6000602084013e6116ff565b606091505b50826001600160a01b0316600080516020613ea083398151915283602001518360405161172d9291906135bf565b60405180910390a2505b6117a8565b60045481602001518161174b57fe5b066117a8576040516375abf10160e11b81526110009063eb57e20290611775908590600401613574565b600060405180830381600087803b15801561178f57600080fd5b505af11580156117a3573d6000803e3d6000fd5b505050505b6001600160a01b0382166000818152600260208181526040808420865181559186015160018301558581015191909201805460ff1916911515919091179055517fddb6012116e51abf5436d956a4f0ebd927e92c576ff96d7918290c8782291e3e9190a2505b5043600355565b60005460ff166118375760405162461bcd60e51b815260040161064f906136a1565b60075460ff166118595760405162461bcd60e51b815260040161064f9061363c565b6006546118665760146006555b600854611874576170806008555b60085481516040015143910111801561189857504360085482602001516040015101115b6118b45760405162461bcd60e51b815260040161064f90613cbe565b8060200151602001518160000151602001511480156118e25750806020015160600151816000015160600151145b156118ff5760405162461bcd60e51b815260040161064f906138b7565b80516040810151905110801561191e5750602081015160408101519051105b61193a5760405162461bcd60e51b815260040161064f90613839565b60208101515181515110801561195f5750806000015160400151816020015160400151105b8061198a575080515160208201515110801561198a5750806020015160400151816000015160400151105b806119a45750806020015160400151816000015160400151145b6119c05760405162461bcd60e51b815260040161064f90613723565b604080820151905163ea321e4960e01b81526110009163ea321e49916119e991906004016135ac565b60206040518083038186803b158015611a0157600080fd5b505afa158015611a15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3991906132eb565b611a555760405162461bcd60e51b815260040161064f90613a19565b611a6781600001518260400151612750565b8015611a805750611a8081602001518260400151612750565b611a9c5760405162461bcd60e51b815260040161064f906137da565b6060806110006001600160a01b0316633b071dcc6040518163ffffffff1660e01b815260040160006040518083038186803b158015611ada57600080fd5b505afa158015611aee573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611b169190810190613228565b9150915060005b8151811015611c5357611b47828281518110611b3557fe5b60200260200101518560400151612928565b15611c4b576006546040516309a99b4f60e41b815260646110028031909302049190639a99b4f090611b7f9033908590600401613588565b602060405180830381600087803b158015611b9957600080fd5b505af1158015611bad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bd19190613492565b506110006001600160a01b03166335409f7f858481518110611bef57fe5b60200260200101516040518263ffffffff1660e01b8152600401611c139190613574565b600060405180830381600087803b158015611c2d57600080fd5b505af1158015611c41573d6000803e3d6000fd5b5050505050611c53565b600101611b1d565b5060408084015190516317b4f35360e01b8152600091612002916317b4f35391611c7f916004016135ac565b60206040518083038186803b158015611c9757600080fd5b505afa158015611cab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ccf91906131cb565b6001600160a01b031614611d3d576040808401519051630e9fbf5160e01b815261200291630e9fbf5191611d0691906004016135ac565b600060405180830381600087803b158015611d2057600080fd5b505af1158015611d34573d6000803e3d6000fd5b50505050610a45565b6120006001600160a01b031663f7a251d7600b611d5d866040015161298c565b60006040518463ffffffff1660e01b8152600401611d7d93929190613db5565b600060405180830381600087803b158015611d9757600080fd5b505af1158015611dab573d6000803e3d6000fd5b505050506000611dc0846040015160006129c7565b60405190915081907f7b78aadacff901d8b63d0dba4f86283d4db8aef27f9ed70413dd860f1c9532b690600090a250505050565b61100381565b601481565b61200481565b60005460ff1615611e285760405162461bcd60e51b815260040161064f90613b22565b603260045560966005556000805460ff19166001179055565b601181565b61100081565b600381565b3361100014611e725760405162461bcd60e51b815260040161064f906138e4565b60005460ff16611e945760405162461bcd60e51b815260040161064f906136a1565b600154611ea057612298565b600154600090600019015b80821161226c576000805b82841015611fcf57611ec6612f96565b6002600060018781548110611ed757fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff161515908201526005549091506004900481602001511115611fb957600460055481611f4457fe5b04816020015103816020018181525050806002600060018881548110611f6657fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208351815591830151600183015591909101516002909101805460ff1916911515919091179055611fc3565b6001925050611fcf565b50836001019350611eb6565b82841161216657611fde612f96565b6002600060018681548110611fef57fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff1615159082015260055490915060049004816020015111156120d75760046005548161205c57fe5b0481602001510381602001818152505080600260006001878154811061207e57fe5b6000918252602080832091909101546001600160a01b03168352828101939093526040918201902083518155918301516001808401919091559201516002909101805460ff191691151591909117905591506121669050565b60026000600186815481106120e857fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff1916905580548061212c57fe5b600082815260209020810160001990810180546001600160a01b0319169055019055836121595750612166565b5060001990920191611fcf565b8180156121705750805b1561224f57600260006001868154811061218657fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff191690558054849081106121cd57fe5b600091825260209091200154600180546001600160a01b0390921691869081106121f357fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600180548061222c57fe5b600082815260209020810160001990810180546001600160a01b03191690550190555b8261225b57505061226c565b505060019091019060001901611eab565b6040517fcfdb3b6ccaeccbdc68be3c59c840e3b3c90f0a7c491f5fff1cf56cfda200dd9c90600090a150505b565b61100481565b60606122b36122ae836129e3565b6122bb565b90505b919050565b6060815160011480156122ed5750607f60f81b826000815181106122db57fe5b01602001516001600160f81b03191611155b156122f95750806122b6565b6122b361230b8351608060ff16612ac9565b83612b9b565b606081516000141561233257506040805160008152602081019091526122b6565b60608260008151811061234157fe5b602002602001015190506000600190505b8351811015612382576123788285838151811061236b57fe5b6020026020010151612b9b565b9150600101612352565b5061239b612395825160c060ff16612ac9565b82612b9b565b9392505050565b80156123cd576040516375cc7d8960e01b8152612002906375cc7d8990611d06908690600401613574565b6040516375cc7d8960e01b8152612002906375cc7d89906123f2908690600401613574565b600060405180830381600087803b15801561240c57600080fd5b505af192505050801561241d575060015b610a45576040516000815260443d1015612439575060006124d6565b60046000803e60005160e01c6308c379a0811461245a5760009150506124d6565b60043d036004833e81513d602482011167ffffffffffffffff82111715612486576000925050506124d6565b808301805167ffffffffffffffff8111156124a85760009450505050506124d6565b8060208301013d86018111156124c6576000955050505050506124d6565b601f01601f191660405250925050505b806124e15750612518565b836001600160a01b0316600080516020613ea0833981519152848360405161250a9291906135bf565b60405180910390a25061257b565b3d808015612542576040519150601f19603f3d011682016040523d82523d6000602084013e612547565b606091505b50836001600160a01b0316600080516020613ea083398151915284836040516125719291906135bf565b60405180910390a2505b610a45565b60408051600480825260a08201909252606091829190816020015b606081526020019060019003908161259b5790505090506125c4836001600160a01b0316612c18565b816000815181106125d157fe5b60200260200101819052506125e5436122a0565b816001815181106125f257fe5b602090810291909101015261260760616122a0565b8160028151811061261457fe5b6020026020010181905250612628426122a0565b8160038151811061263557fe5b602002602001018190525061239b81612311565b612651612fb9565b600061265b612fb9565b612663612fcb565b61267461266f86612c3b565b612c60565b90506000805b61268383612caa565b156126bc57806126af5761269e61269984612ccb565b612d19565b63ffffffff168452600191506126b4565b6126bc565b60010161267a565b5091935090915050915091565b6000816040516020016126dc9190613558565b60405160208183030381529060405280519060200120836040516020016127039190613558565b604051602081830303815290604052805190602001201490505b92915050565b015190565b8082015160009060ff811615612742576001915081612748565b60009150815b505092915050565b60408051600480825260a0820190925260009160609190816020015b606081526020019060019003908161276c5750506040805160208082528183019092529192506060919080820181803683370190505090506127b185600001516122a0565b826000815181106127be57fe5b60200260200101819052506127d96020866020015183612d9b565b6127e2816122bb565b826001815181106127ef57fe5b602002602001018190525061280785604001516122a0565b8260028151811061281457fe5b602002602001018190525061282f6020866060015183612d9b565b612838816122bb565b8260038151811061284557fe5b602002602001018190525061286b602061285e84612311565b8051906020012083612d9b565b6040805160b080825260e0820190925260609160208201818036833701905050905061289b818360006020612dab565b6128ad81876080015160206060612dab565b6128bb818660806030612dab565b604080516001808252818301909252606091602082018180368337019050509050815160016020830182602086016066600019fa6128f857600080fd5b506001612906826000612dfe565b60ff161461291b57600094505050505061271d565b5060019695505050505050565b8151815160009160019181148083146129445760009250612982565b600160208701838101602088015b60028483851001141561297d5780518351146129715760009650600093505b60209283019201612952565b505050505b5090949350505050565b60408051600480825260a08201909252606091829190816020015b60608152602001906001900390816129a75790505090506125c4836122bb565b600081602001835110156129da57600080fd5b50016020015190565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416612a2757506018612a4b565b6fffffffffffffffffffffffffffffffff198416612a4757506010612a4b565b5060005b6020811015612a8157818181518110612a6057fe5b01602001516001600160f81b03191615612a7957612a81565b600101612a4b565b60008160200390506060816040519080825280601f01601f191660200182016040528015612ab6576020820181803683370190505b5080830196909652508452509192915050565b6060680100000000000000008310612af35760405162461bcd60e51b815260040161064f90613811565b60408051600180825281830190925260609160208201818036833701905050905060378411612b4d5782840160f81b81600081518110612b2f57fe5b60200101906001600160f81b031916908160001a905350905061271d565b6060612b58856129e3565b90508381510160370160f81b82600081518110612b7157fe5b60200101906001600160f81b031916908160001a905350612b928282612b9b565b95945050505050565b6060806040519050835180825260208201818101602087015b81831015612bcc578051835260209283019201612bb4565b50855184518101855292509050808201602086015b81831015612bf9578051835260209283019201612be1565b508651929092011591909101601f01601f191660405250905092915050565b60408051600560a21b831860148201526034810190915260609061239b816122bb565b612c43612feb565b506040805180820190915281518152602082810190820152919050565b612c68612fcb565b612c7182612e1a565b612c7a57600080fd5b6000612c898360200151612e54565b60208085015160408051808201909152868152920190820152915050919050565b6000612cb4612feb565b505080518051602091820151919092015191011190565b612cd3612feb565b612cdc82612caa565b612ce557600080fd5b60208201516000612cf582612eb7565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590612d2e57508151602110155b612d3757600080fd5b6000612d468360200151612e54565b90508083600001511015612d6c5760405162461bcd60e51b815260040161064f90613b7f565b825160208085015183018051928490039291831015612d9257826020036101000a820491505b50949350505050565b9091018181526020918201910152565b60005b81811015610d4f57838181518110612dc257fe5b602001015160f81c60f81b858480600101955081518110612ddf57fe5b60200101906001600160f81b031916908160001a905350600101612dae565b60008160010183511015612e1157600080fd5b50016001015190565b8051600090612e2b575060006122b6565b6020820151805160001a9060c0821015612e4a576000925050506122b6565b5060019392505050565b8051600090811a6080811015612e6e5760009150506122b6565b60b8811080612e89575060c08110801590612e89575060f881105b15612e985760019150506122b6565b60c0811015612eac5760b5190190506122b6565b60f5190190506122b6565b80516000908190811a6080811015612ed25760019150612f8f565b60b8811015612ee757607e1981019150612f8f565b60c0811015612f3857600060b78203600186019550806020036101000a865104915060018101820193505080831015612f325760405162461bcd60e51b815260040161064f90613934565b50612f8f565b60f8811015612f4d5760be1981019150612f8f565b600060f78203600186019550806020036101000a8651049150600181018201935050808310156127485760405162461bcd60e51b815260040161064f90613934565b5092915050565b604051806060016040528060008152602001600081526020016000151581525090565b60408051602081019091526000815290565b6040518060400160405280612fde612feb565b8152602001600081525090565b604051806040016040528060008152602001600081525090565b600082601f830112613015578081fd5b815161302861302382613e08565b613de1565b818152915060208083019084810160005b8481101561309e578151870188603f82011261305457600080fd5b8381015161306461302382613e28565b81815260408b8184860101111561307a57600080fd5b61308983888401838701613e4c565b50865250509282019290820190600101613039565b505050505092915050565b60008083601f8401126130ba578182fd5b50813567ffffffffffffffff8111156130d1578182fd5b6020830191508360208285010111156130e957600080fd5b9250929050565b600082601f830112613100578081fd5b813561310e61302382613e28565b915080825283602082850101111561312557600080fd5b8060208401602084013760009082016020015292915050565b600060a0828403121561314f578081fd5b61315960a0613de1565b905081358152602082013560208201526040820135604082015260608201356060820152608082013567ffffffffffffffff81111561319757600080fd5b6131a3848285016130f0565b60808301525092915050565b6000602082840312156131c0578081fd5b813561239b81613e7c565b6000602082840312156131dc578081fd5b815161239b81613e7c565b6000806000606084860312156131fb578182fd5b833561320681613e7c565b925060208401359150604084013561321d81613e91565b809150509250925092565b6000806040838503121561323a578182fd5b825167ffffffffffffffff80821115613251578384fd5b81850186601f820112613262578485fd5b8051925061327261302384613e08565b80848252602080830192508084018a828389028701011115613292578889fd5b8894505b868510156132bd5780516132a981613e7c565b845260019490940193928101928101613296565b5088015190965093505050808211156132d4578283fd5b506132e185828601613005565b9150509250929050565b6000602082840312156132fc578081fd5b815161239b81613e91565b60008060408385031215613319578182fd5b823567ffffffffffffffff80821115613330578384fd5b61333c868387016130f0565b93506020850135915080821115613351578283fd5b506132e1858286016130f0565b60008060008060408587031215613373578182fd5b843567ffffffffffffffff8082111561338a578384fd5b613396888389016130a9565b909650945060208701359150808211156133ae578384fd5b506133bb878288016130a9565b95989497509550505050565b6000602082840312156133d8578081fd5b813567ffffffffffffffff808211156133ef578283fd5b81840160608187031215613401578384fd5b61340b6060613de1565b925080358281111561341b578485fd5b6134278782840161313e565b84525060208101358281111561343b578485fd5b6134478782840161313e565b60208501525060408101358281111561345e578485fd5b61346a878284016130f0565b6040850152509195945050505050565b60006020828403121561348b578081fd5b5035919050565b6000602082840312156134a3578081fd5b5051919050565b6000806000604084860312156134be578081fd5b833560ff811681146134ce578182fd5b9250602084013567ffffffffffffffff8111156134e9578182fd5b6134f5868287016130a9565b9497909650939450505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008151808452613544816020860160208601613e4c565b601f01601f19169290920160200192915050565b6000825161356a818460208701613e4c565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b60006020825261239b602083018461352c565b6000838252604060208301526135d8604083018461352c565b949350505050565b6000604082526135f4604083018688613502565b8281036020840152613607818587613502565b979650505050505050565b60208082526010908201526f195d9a59195b98d9481d1bdbc81bdb1960821b604082015260600190565b6020808252818101527f6d616c6963696f757320766f746520736c617368206e6f7420656e61626c6564604082015260600190565b6020808252601690820152751d985b1a59185d1bdc881b9bdd081b5a59dc985d195960521b604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252602b908201527f746865206d616c6963696f757320766f746520736c6173682073636f7065206f60408201526a7574206f662072616e676560a81b606082015260800190565b6020808252601a908201527f6e6f2076696f6c6174696f6e206f6620766f74652072756c6573000000000000604082015260600190565b6020808252818101527f7468652066656c6f6e795468726573686f6c64206f7574206f662072616e6765604082015260600190565b6020808252602b908201527f6c656e677468206f6620656e61626c654d616c6963696f7573566f7465536c6160408201526a0e6d040dad2e6dac2e8c6d60ab1b606082015260800190565b60208082526017908201527f766572696679207369676e6174757265206661696c6564000000000000000000604082015260600190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526019908201527f7372634e756d20626967676572207468616e207461724e756d00000000000000604082015260600190565b60208082526027908201527f6c656e677468206f66206d697364656d65616e6f725468726573686f6c64206d6040820152660d2e6dac2e8c6d60cb1b606082015260800190565b60208082526013908201527274776f206964656e746963616c20766f74657360681b604082015260600190565b60208082526030908201527f746865206d6573736167652073656e646572206d7573742062652076616c696460408201526f185d1bdc94d95d0818dbdb9d1c9858dd60821b606082015260800190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b60208082526023908201527f6c656e677468206f662066656c6f6e79536c61736853636f7065206d69736d616040820152620e8c6d60eb1b606082015260800190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b60208082526029908201527f6c656e677468206f662066656c6f6e79536c617368526577617264526174696f604082015268040dad2e6dac2e8c6d60bb1b606082015260800190565b6020808252601590820152741d9bdd195059191c881a5cc81b9bdd08199bdd5b99605a1b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526022908201527f6c656e677468206f662066656c6f6e795468726573686f6c64206d69736d61746040820152610c6d60f31b606082015260800190565b6020808252602a908201527f7468652066656c6f6e7920736c6173682072657761726420726174696f206f7560408201526974206f662072616e676560b01b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b6020808252600c908201526b32b6b83a3c903432b0b232b960a11b604082015260600190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526025908201527f746865206d697364656d65616e6f725468726573686f6c64206f7574206f662060408201526472616e676560d81b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b6020808252601490820152731d185c99d95d08189b1bd8dac81d1bdbc81bdb1960621b604082015260600190565b6020808252601e908201527f7265636569766520756e65787065637465642073796e207061636b6167650000604082015260600190565b6020808252818101527f63616e206e6f7420736c61736820747769636520696e206f6e6520626c6f636b604082015260600190565b61ffff91909116815260200190565b90815260200190565b918252602082015260400190565b92835260208301919091521515604082015260600190565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff8516825260606020830152613dd1606083018561352c565b9050826040830152949350505050565b60405181810167ffffffffffffffff81118282101715613e0057600080fd5b604052919050565b600067ffffffffffffffff821115613e1e578081fd5b5060209081020190565b600067ffffffffffffffff821115613e3e578081fd5b50601f01601f191660200190565b60005b83811015613e67578181015183820152602001613e4f565b83811115613e76576000848401525b50505050565b6001600160a01b0381168114610c0a57600080fd5b8015158114610c0a57600080fdfed7bc86ff5d08c8ab043edec743302aba2520e6635172a428bc956721db9e2d1ca164736f6c6343000604000a" } From 31f8787396ac2b8044f08a98005164b6966504ef Mon Sep 17 00:00:00 2001 From: blxdyx <125243069+blxdyx@users.noreply.github.com> Date: Fri, 5 Jul 2024 15:29:37 +0800 Subject: [PATCH 10/22] upgrade.go: system contracts defined after genesis need to be explicitly created (#425) --- core/systemcontracts/upgrade.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/core/systemcontracts/upgrade.go b/core/systemcontracts/upgrade.go index 0a995f28414..0e352fc4298 100644 --- a/core/systemcontracts/upgrade.go +++ b/core/systemcontracts/upgrade.go @@ -56,6 +56,11 @@ func UpgradeBuildInSystemContract(config *chain.Config, blockNumber *big.Int, la } for addr, account := range allocs { logger.Debug("[parlia] upgrade System Contract code", "blockNumber", blockNumber, "blockTime", blockTime, "targetNumberOrTime", numOrTime, "address", addr) + prevContractCode := state.GetCode(addr) + if len(prevContractCode) == 0 && len(account.Code) > 0 { + // system contracts defined after genesis need to be explicitly created + state.CreateAccount(addr, true) + } state.SetCode(addr, account.Code) } } From 5245f1fdb1ec47d17b9b2a5c1dda3eb90d743d4d Mon Sep 17 00:00:00 2001 From: blxdyx <125243069+blxdyx@users.noreply.github.com> Date: Wed, 10 Jul 2024 14:35:39 +0800 Subject: [PATCH 11/22] remove bsc haber fix (#428) --- params/chainspecs/bsc.json | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/params/chainspecs/bsc.json b/params/chainspecs/bsc.json index f3d07057708..ee03dd68f65 100644 --- a/params/chainspecs/bsc.json +++ b/params/chainspecs/bsc.json @@ -31,7 +31,6 @@ "feynmanFixTime": 1713419340, "cancunTime": 1718863500, "haberTime": 1718863500, - "haberFixTime": 1720591588, "parlia": { "DBPath": "", "InMemory": false, @@ -201,16 +200,6 @@ "balance": "0x0", "code": "0x608060405234801561001057600080fd5b506004361061010b5760003560e01c80638129fc1c116100a2578063b187bd2611610071578063b187bd261461022c578063bfb5a6a114610237578063e33f8d321461024a578063e842426a1461026d578063f1fad1041461029857600080fd5b80638129fc1c146101fc5780638456cb59146102045780639fcb50121461020c578063ac4317511461021957600080fd5b80634a49ac4c116100de5780634a49ac4c1461017c5780634bf6c8821461018f578063572c9980146101a957806374be2150146101bc57600080fd5b8063046f7da2146101105780632eb4a7ab1461011a578063417c73a7146101365780634838d16514610149575b600080fd5b6101186102a0565b005b61012360685481565b6040519081526020015b60405180910390f35b6101186101443660046116a8565b610328565b61016c6101573660046116a8565b60346020526000908152604090205460ff1681565b604051901515815260200161012d565b61011861018a3660046116a8565b6103a4565b610197600881565b60405160ff909116815260200161012d565b6101186101b73660046116c3565b61041d565b6101ef6040518060400160405280601481526020017342696e616e63652d436861696e2d54696772697360601b81525081565b60405161012d919061173f565b6101186104b3565b610118610625565b60695461016c9060ff1681565b61011861022736600461179b565b6106b1565b60335460ff1661016c565b61011861024536600461184c565b610ad0565b61016c610258366004611926565b6000908152606a602052604090205460ff1690565b606754610280906001600160a01b031681565b6040516001600160a01b03909116815260200161012d565b610197601181565b60335461010090046001600160a01b031633146102d0576040516306fbb1e360e01b815260040160405180910390fd5b60335460ff166102f357604051636cd6020160e01b815260040160405180910390fd5b6033805460ff191690556040517f62451d457bc659158be6e6247f56ec1df424a5c7597f71c20c2bc44e0965c8f990600090a1565b60335461010090046001600160a01b03163314610358576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b038116600081815260346020526040808220805460ff19166001179055517f7fd26be6fc92aff63f1f4409b2b2ddeb272a888031d7f55ec830485ec61941869190a250565b60335461010090046001600160a01b031633146103d4576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b038116600081815260346020526040808220805460ff19169055517fe0db3499b7fdc3da4cddff5f45d694549c19835e7f719fb5606d3ad1a5de40119190a250565b60335461010090046001600160a01b0316331461044d576040516306fbb1e360e01b815260040160405180910390fd5b604051638525db0360e01b8152600481018390526001600160a01b038216602482015261100490638525db0390604401600060405180830381600087803b15801561049757600080fd5b505af11580156104ab573d6000803e3d6000fd5b505050505050565b600054610100900460ff16158080156104d35750600054600160ff909116105b806104ed5750303b1580156104ed575060005460ff166001145b6105555760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff191660011790558015610578576000805461ff0019166101001790555b3341146105985760405163022d8c9560e31b815260040160405180910390fd5b3a156105b7576040516383f1b1d360e01b815260040160405180910390fd5b6105bf610e30565b6105dc7308e68ec70fa3b629784fdb28887e206ce8561e08610e5d565b8015610622576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50565b60335461010090046001600160a01b03163314610655576040516306fbb1e360e01b815260040160405180910390fd5b60335460ff161561067957604051631785c68160e01b815260040160405180910390fd5b6033805460ff191660011790556040517f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e75290600090a1565b33611007146106d757604051630f22c43960e41b8152611007600482015260240161054c565b6107416040518060400160405280600f81526020016e617070726f76616c4164647265737360881b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050610eac9050565b1561080b576014811461076f5783838383604051630a5a604160e01b815260040161054c9493929190611968565b60006107b5601484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050610f069050565b90506001600160a01b0381166107e65784848484604051630a5a604160e01b815260040161054c9493929190611968565b606780546001600160a01b0319166001600160a01b0392909216919091179055610a8d565b6108706040518060400160405280600a8152602001691b595c9adb19549bdbdd60b21b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050610eac9050565b156109405760695460ff1615610899576040516379b3306f60e11b815260040160405180910390fd5b602081146108c25783838383604051630a5a604160e01b815260040161054c9493929190611968565b604080516020601f8401819004810282018101909252828152600091610903918585808385018382808284376000920191909152509293925050610f069050565b90508061092b5784848484604051630a5a604160e01b815260040161054c9493929190611968565b6068556069805460ff19166001179055610a8d565b6109b86040518060400160405280601b81526020017f746f6b656e5265636f766572506f7274616c50726f746563746f72000000000081525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050610eac9050565b15610a6c57601481146109e65783838383604051630a5a604160e01b815260040161054c9493929190611968565b6000610a2c601484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050610f069050565b90506001600160a01b038116610a5d5784848484604051630a5a604160e01b815260040161054c9493929190611968565b610a6681610f0b565b50610a8d565b838383836040516325ee20d560e21b815260040161054c9493929190611968565b7ff1ce9b2cbf50eeb05769a29e2543fd350cab46894a7dd9978a12d534bb20e63384848484604051610ac29493929190611968565b60405180910390a150505050565b60695460ff16610af35760405163678f619760e11b815260040160405180910390fd5b606854610b135760405163678f619760e11b815260040160405180910390fd5b6067546001600160a01b0316610b3c57604051631a1b977b60e31b815260040160405180910390fd5b60335460ff1615610b6057604051631785c68160e01b815260040160405180910390fd5b610b68610f72565b6000610bf689898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a9081908401838280828437600081840152601f19601f82011690508083019250505050505050610bf18e8e33610fcb565b6110ec565b90506000818c8c604051602001610c0f9392919061199a565b604051602081830303815290604052805190602001209050610c40816000908152606a602052604090205460ff1690565b15610c5d57604051623e493160e81b815260040160405180910390fd5b610d053389898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a908190840183828082843760009201919091525050604080516020808c0282810182019093528b82528994509092508b918b918291908501908490808284376000920191909152506111c492505050565b610d468484808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505060685491508490506112cf565b610d63576040516309bde33960e01b815260040160405180910390fd5b6000818152606a602052604090819020805460ff191660011790555163799758b960e01b8152600481018d9052336024820152604481018c90526110049063799758b990606401600060405180830381600087803b158015610dc457600080fd5b505af1158015610dd8573d6000803e3d6000fd5b505050507f39cc0b7297a0ef9102d75ebc4919ffec0347d50008c2b865eda4125d5812cb64828d338e604051610e1194939291906119c1565b60405180910390a15050610e2460018055565b50505050505050505050565b600054610100900460ff16610e575760405162461bcd60e51b815260040161054c906119f9565b60018055565b600054610100900460ff16610e845760405162461bcd60e51b815260040161054c906119f9565b603380546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b600081604051602001610ebf9190611a44565b6040516020818303038152906040528051906020012083604051602001610ee69190611a44565b604051602081830303815290604052805190602001201490505b92915050565b015190565b6033546040516001600160a01b0380841692610100900416907f44fc1b38a4abaa91ebd1b628a5b259a698f86238c8217d68f516e87769c60c0b90600090a3603380546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b600260015403610fc45760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161054c565b6002600155565b600060026040518060400160405280601481526020017342696e616e63652d436861696e2d54696772697360601b8152506110288560405160200161101291815260200190565b60405160208183030381529060405260006112e5565b6040516bffffffffffffffffffffffff19606087901b1660208201526110619060340160405160208183030381529060405260016112e5565b6110778860405160200161101291815260200190565b60405160200161108a9493929190611a60565b60408051601f19818403018152908290526110a491611a44565b602060405180830381855afa1580156110c1573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906110e49190611b8f565b949350505050565b6060835160211461111057604051638152ea1b60e01b815260040160405180910390fd5b825160401461113257604051635e4bd79760e11b815260040160405180910390fd5b604080516020808252818301909252600091602082018180368337019050509050826020820152600085858360405160200161117093929190611bbe565b60408051808303601f190181526014808452838301909252925060009190602082018180368337019050509050815160146020830182602086016069600019fa6111b957600080fd5b509695505050505050565b606060005b825181101561122257818382815181106111e5576111e5611c01565b60200260200101516040516020016111fe929190611c17565b6040516020818303038152906040529150808061121a90611c4f565b9150506111c9565b5060006040518060400160405280601481526020017342696e616e63652d436861696e2d54696772697360601b8152508787866068548660405160200161126e96959493929190611c68565b60408051601f1981840301815291905280516020909101206067549091506001600160a01b031661129f86836114b7565b6001600160a01b0316146112c6576040516356b00a4f60e11b815260040160405180910390fd5b50505050505050565b6000826112dc8584611551565b14949350505050565b60606000835160026112f79190611cd9565b67ffffffffffffffff81111561130f5761130f611ba8565b6040519080825280601f01601f191660200182016040528015611339576020820181803683370190505b5060408051808201909152601081526f181899199a1a9b1b9c1cb0b131b232b360811b602082015290915060005b855181101561147f5781825187838151811061138557611385611c01565b0160200151611397919060f81c611d06565b815181106113a7576113a7611c01565b01602001516001600160f81b031916836113c2836002611cd9565b815181106113d2576113d2611c01565b60200101906001600160f81b031916908160001a9053508182518783815181106113fe576113fe611c01565b0160200151611410919060f81c611d1a565b8151811061142057611420611c01565b01602001516001600160f81b0319168361143b836002611cd9565b611446906001611d2e565b8151811061145657611456611c01565b60200101906001600160f81b031916908160001a9053508061147781611c4f565b915050611367565b5083156114af57816040516020016114979190611d41565b60405160208183030381529060405292505050610f00565b509392505050565b600082516041146114db576040516356b00a4f60e11b815260040160405180910390fd5b60208301516040840151606085015160001a601b81101561150457611501601b82611d6b565b90505b601b8160ff1610806115195750601c8160ff16115b15611537576040516356b00a4f60e11b815260040160405180910390fd5b600061154586838686611596565b50979650505050505050565b600081815b84518110156114af576115828286838151811061157557611575611c01565b602002602001015161165a565b91508061158e81611c4f565b915050611556565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156115cd5750600090506003611651565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611621573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661164a57600060019250925050611651565b9150600090505b94509492505050565b6000818310611676576000828152602084905260409020611685565b60008381526020839052604090205b9392505050565b80356001600160a01b03811681146116a357600080fd5b919050565b6000602082840312156116ba57600080fd5b6116858261168c565b600080604083850312156116d657600080fd5b823591506116e66020840161168c565b90509250929050565b60005b8381101561170a5781810151838201526020016116f2565b50506000910152565b6000815180845261172b8160208601602086016116ef565b601f01601f19169290920160200192915050565b6020815260006116856020830184611713565b60008083601f84011261176457600080fd5b50813567ffffffffffffffff81111561177c57600080fd5b60208301915083602082850101111561179457600080fd5b9250929050565b600080600080604085870312156117b157600080fd5b843567ffffffffffffffff808211156117c957600080fd5b6117d588838901611752565b909650945060208701359150808211156117ee57600080fd5b506117fb87828801611752565b95989497509550505050565b60008083601f84011261181957600080fd5b50813567ffffffffffffffff81111561183157600080fd5b6020830191508360208260051b850101111561179457600080fd5b60008060008060008060008060008060c08b8d03121561186b57600080fd5b8a35995060208b0135985060408b013567ffffffffffffffff8082111561189157600080fd5b61189d8e838f01611752565b909a50985060608d01359150808211156118b657600080fd5b6118c28e838f01611752565b909850965060808d01359150808211156118db57600080fd5b6118e78e838f01611752565b909650945060a08d013591508082111561190057600080fd5b5061190d8d828e01611807565b915080935050809150509295989b9194979a5092959850565b60006020828403121561193857600080fd5b5035919050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60408152600061197c60408301868861193f565b828103602084015261198f81858761193f565b979650505050505050565b600084516119ac8184602089016116ef565b91909101928352506020820152604001919050565b6080815260006119d46080830187611713565b6020830195909552506001600160a01b03929092166040830152606090910152919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60008251611a568184602087016116ef565b9190910192915050565b7f7b226163636f756e745f6e756d626572223a2230222c22636861696e5f6964228152611d1160f11b602082015260008551611aa3816022850160208a016116ef565b7f222c2264617461223a6e756c6c2c226d656d6f223a22222c226d736773223a5b6022918401918201526a3d9130b6b7bab73a111d1160a91b60428201528551611af481604d840160208a016116ef565b6e1116113932b1b4b834b2b73a111d1160891b604d92909101918201528451611b2481605c8401602089016116ef565b711116113a37b5b2b72fb9bcb6b137b6111d1160711b605c92909101918201528351611b5781606e8401602088016116ef565b7f227d5d2c2273657175656e6365223a2230222c22736f75726365223a2230227d606e9290910191820152608e019695505050505050565b600060208284031215611ba157600080fd5b5051919050565b634e487b7160e01b600052604160045260246000fd5b60008451611bd08184602089016116ef565b845190830190611be48183602089016116ef565b8451910190611bf78183602088016116ef565b0195945050505050565b634e487b7160e01b600052603260045260246000fd5b60008351611c298184602088016116ef565b9190910191825250602001919050565b634e487b7160e01b600052601160045260246000fd5b600060018201611c6157611c61611c39565b5060010190565b60008751611c7a818460208c016116ef565b606088901b6bffffffffffffffffffffffff19169083019081528651611ca7816014840160208b016116ef565b0160148101869052603481018590528351611cc98160548401602088016116ef565b0160540198975050505050505050565b8082028115828204841417610f0057610f00611c39565b634e487b7160e01b600052601260045260246000fd5b600082611d1557611d15611cf0565b500490565b600082611d2957611d29611cf0565b500690565b80820180821115610f0057610f00611c39565b61060f60f31b815260008251611d5e8160028501602087016116ef565b9190910160020192915050565b60ff8181168382160190811115610f0057610f00611c3956fea164736f6c6343000811000a" } - }, - "1720591588": { - "0x0000000000000000000000000000000000001000": { - "balance": "0x0", - "code": "0x6080604052600436106104fb5760003560e01c806388b32f111161028c578063c6d339451161015a578063e40716a1116100cc578063f92eb86b11610085578063f92eb86b14610d2d578063f9a2bbc714610d42578063fc3e590814610d57578063fccc281314610d6c578063fd4ad81f14610d81578063fd6a687914610db057610502565b8063e40716a114610c9b578063ea321e4914610cb0578063eb57e20214610cd0578063eda5868c14610cf0578063f1fad10414610d05578063f340fa0114610d1a57610502565b8063d86222d51161011e578063d86222d514610c1d578063daacdb6614610c32578063dc927faf14610c47578063df8079e914610c5c578063e086c7b114610c71578063e1c7392a14610c8657610502565b8063c6d3394514610bbe578063c81b166214610bd3578063c8509d811461098d578063ce910b0c14610be8578063d68fb56a14610c0857610502565b8063a78abc16116101fe578063ad3c9da6116101b7578063ad3c9da614610b3d578063aef198a914610b5d578063b7ab4db514610b72578063b8cf4ef114610b94578063bf9f4995146106fe578063c466689d14610ba957610502565b8063a78abc1614610ab4578063aa82dce114610ac9578063aad5606314610ade578063aaf5eb6814610af3578063ab51bb9614610b08578063ac43175114610b1d57610502565b806396713da91161025057806396713da914610a365780639dc0926214610a4b5780639fe0f81614610a60578063a0dc275814610a75578063a1a11bf514610a8a578063a5422d5c14610a9f57610502565b806388b32f11146109c25780638a7beb01146109d75780638b5ad0c9146109ec5780638d19a41014610a015780639369d7de14610a2157610502565b806351b4dce3116103c957806370fd5bad1161033b5780637e434d54116102f45780637e434d541461094e57806381650b6214610963578063820dcaa814610978578063831d65d11461098d578063853230aa1461090f57806386249882146109ad57610502565b806370fd5bad146108d0578063718a8aa8146108e557806375d47a0a146108fa57806378dfed4a1461090f5780637942fd05146109245780637a84ca2a1461093957610502565b80635d77156c1161038d5780635d77156c1461082a5780635de1e22c1461083f57806360eba4fe1461085457806362b72cf5146108745780636969a25c146108895780636e47b482146108bb57610502565b806351b4dce3146107ab57806351e80672146107c057806355614fcc146107d5578063565c56b3146107f55780635667515a1461081557610502565b8063300c35671161046d57806343756e5c1161042657806343756e5c1461072057806345cf9daf14610735578063493279b11461074a5780634bf6c8821461076c5780634df6e0c3146107815780635192c82c1461079657610502565b8063300c35671461065b578063321d398a1461067b5780633365af3a1461069b57806335409f7f146106bb5780633b071dcc146106db5780633dffc387146106fe57610502565b8063152ad3b8116104bf578063152ad3b8146105ba5780631e4c1524146105dc5780631ff18069146105fc578063219f22d51461061157806328087028146106265780632a0ffb6e1461063b57610502565b806304c4fec61461050757806307a568471461051e5780630bee7a67146105495780630e2374a51461056b5780631182b8751461058d57610502565b3661050257005b600080fd5b34801561051357600080fd5b5061051c610dc5565b005b34801561052a57600080fd5b50610533610e39565b6040516105409190618f10565b60405180910390f35b34801561055557600080fd5b5061055e610e3f565b6040516105409190618f3a565b34801561057757600080fd5b50610580610e44565b6040516105409190618200565b34801561059957600080fd5b506105ad6105a83660046180e6565b610e4a565b60405161054091906183b6565b3480156105c657600080fd5b506105cf611167565b60405161054091906183ab565b3480156105e857600080fd5b5061051c6105f7366004617ef4565b611170565b34801561060857600080fd5b50610533611846565b34801561061d57600080fd5b5061055e61184c565b34801561063257600080fd5b50610580611851565b34801561064757600080fd5b5061051c610656366004617e54565b611857565b34801561066757600080fd5b5061051c610676366004617e8c565b611904565b34801561068757600080fd5b506105cf610696366004618093565b611c4d565b3480156106a757600080fd5b506105cf6106b6366004618093565b611d1c565b3480156106c757600080fd5b5061051c6106d6366004617e54565b611dcd565b3480156106e757600080fd5b506106f0611f32565b6040516105409291906182c1565b34801561070a57600080fd5b5061071361220e565b6040516105409190618f4b565b34801561072c57600080fd5b50610580612213565b34801561074157600080fd5b50610533612219565b34801561075657600080fd5b5061075f61221f565b6040516105409190618f01565b34801561077857600080fd5b50610713612224565b34801561078d57600080fd5b506106f0612229565b3480156107a257600080fd5b506105336123b5565b3480156107b757600080fd5b506105806123bb565b3480156107cc57600080fd5b506105806123c1565b3480156107e157600080fd5b506105cf6107f0366004617e54565b6123c7565b34801561080157600080fd5b50610533610810366004617e54565b6123fc565b34801561082157600080fd5b5061071361244d565b34801561083657600080fd5b5061055e612452565b34801561084b57600080fd5b50610533612457565b34801561086057600080fd5b506105ad61086f366004618093565b61245d565b34801561088057600080fd5b50610533612503565b34801561089557600080fd5b506108a96108a4366004618093565b612509565b6040516105409695949392919061822d565b3480156108c757600080fd5b5061058061256d565b3480156108dc57600080fd5b50610713612573565b3480156108f157600080fd5b50610713612578565b34801561090657600080fd5b5061058061257d565b34801561091b57600080fd5b50610533612583565b34801561093057600080fd5b50610713612589565b34801561094557600080fd5b5061053361258e565b34801561095a57600080fd5b50610580612594565b34801561096f57600080fd5b5061055e61259a565b34801561098457600080fd5b5061053361259f565b34801561099957600080fd5b5061051c6109a83660046180e6565b6125a5565b3480156109b957600080fd5b50610533612606565b3480156109ce57600080fd5b5061053361260c565b3480156109e357600080fd5b506105cf612612565b3480156109f857600080fd5b5061053361261b565b348015610a0d57600080fd5b50610533610a1c366004617e54565b612621565b348015610a2d57600080fd5b5061051c612661565b348015610a4257600080fd5b50610713612775565b348015610a5757600080fd5b5061058061277a565b348015610a6c57600080fd5b50610533612780565b348015610a8157600080fd5b50610533612785565b348015610a9657600080fd5b5061058061278a565b348015610aab57600080fd5b506105ad612790565b348015610ac057600080fd5b506105cf6127af565b348015610ad557600080fd5b506105806127b8565b348015610aea57600080fd5b506105806127be565b348015610aff57600080fd5b506105336127c4565b348015610b1457600080fd5b5061055e61244d565b348015610b2957600080fd5b5061051c610b38366004618037565b6127cd565b348015610b4957600080fd5b50610533610b58366004617e54565b613086565b348015610b6957600080fd5b50610533613098565b348015610b7e57600080fd5b50610b876130a5565b60405161054091906182ae565b348015610ba057600080fd5b50610533613191565b348015610bb557600080fd5b50610533613196565b348015610bca57600080fd5b50610533612573565b348015610bdf57600080fd5b5061058061319c565b348015610bf457600080fd5b506105ad610c03366004618093565b6131a2565b348015610c1457600080fd5b506105336131af565b348015610c2957600080fd5b506105336131ee565b348015610c3e57600080fd5b506105336131fa565b348015610c5357600080fd5b50610580613200565b348015610c6857600080fd5b50610580613206565b348015610c7d57600080fd5b50610533610e3f565b348015610c9257600080fd5b5061051c61320c565b348015610ca757600080fd5b506105336133bb565b348015610cbc57600080fd5b506105cf610ccb366004617ff8565b6133c1565b348015610cdc57600080fd5b5061051c610ceb366004617e54565b613547565b348015610cfc57600080fd5b5061055e61364b565b348015610d1157600080fd5b50610713613650565b61051c610d28366004617e54565b613655565b348015610d3957600080fd5b506105336139d4565b348015610d4e57600080fd5b506105806139da565b348015610d6357600080fd5b50610713612780565b348015610d7857600080fd5b506105806139e0565b348015610d8d57600080fd5b50610da1610d9c366004618093565b6139e6565b60405161054093929190618f19565b348015610dbc57600080fd5b50610580613aa8565b6000610dd033612621565b9050600b8181548110610ddf57fe5b600091825260209091206001601690920201015460ff16610e1b5760405162461bcd60e51b8152600401610e1290618b1c565b60405180910390fd5b6000610e256131af565b9050610e343383836001613aae565b505050565b60095481565b606481565b61200181565b60005460609060ff16610e6f5760405162461bcd60e51b8152600401610e12906185dd565b3361200014610e905760405162461bcd60e51b8152600401610e1290618d1d565b600b54610f4e57610e9f617a00565b60015460005b81811015610f4a57600b8054600181018255600091909152835160008051602061901d833981519152601690920291820190815560208086015160008051602061964c8339815191528401805460ff1916911515919091179055604086015180518794610f269360008051602061903d833981519152909101920190617a2f565b506060820151610f3c9060038301906013617aa9565b505050806001019050610ea5565b5050505b610f56617ad6565b6000610f9785858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613d8392505050565b9150915080610fb357610faa6064613f3f565b92505050611160565b815160009060ff16610fd857610fd183602001518460400151613fa0565b905061112c565b825160ff16600114156111285782602001515160011461101d57600080516020618ffd83398151915260405161100d906189d5565b60405180910390a1506067611123565b6000836020015160008151811061103057fe5b602090810291909101810151516001600160a01b03811660009081526004909252604090912054909150801580611091575060018082038154811061107157fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b156110cf576040516001600160a01b038316907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a261111c565b60006110de8360018403615162565b90508061111a576040516001600160a01b038416907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a25b505b6000925050505b61112c565b5060655b63ffffffff811661115157505060408051600081526020810190915291506111609050565b61115a81613f3f565b93505050505b9392505050565b60075460ff1681565b33411461118f5760405162461bcd60e51b8152600401610e1290618d6c565b3a156111ad5760405162461bcd60e51b8152600401610e1290618a5b565b82516040805182815260208084028201019091526060908280156111eb57816020015b6111d8617afa565b8152602001906001900390816111d05790505b50905060005b82811015611295576040518060c0016040528087838151811061121057fe5b60200260200101516001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b0316815260200186838151811061125257fe5b60200260200101516001600160401b03168152602001600015158152602001600081525082828151811061128257fe5b60209081029190910101526001016111f1565b5060405163d31f968d60e01b81526120009063d31f968d906112c09061100090600890600401618292565b60206040518083038186803b1580156112d857600080fd5b505afa1580156112ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113109190617fd8565b15611633578051601554818111156113b257815b818110156113b057601580548061133757fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055601680548061138a57fe5b6001900381819060005260206000200160006113a69190617b2f565b9055600101611324565b505b60005b828110156115f2578181106114da5760158482815181106113d257fe5b602090810291909101810151825460018181018555600094855293839020825160049092020180546001600160a01b039283166001600160a01b0319918216178255938301519481018054958316958516959095179094556040820151600285018054606085015160808601511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590961692909716919091179290921692909217169290921790915560a0015160039091015585516016908790839081106114a257fe5b602090810291909101810151825460018101845560009384529282902081516114d49491909101929190910190617a2f565b506115ea565b8381815181106114e657fe5b6020026020010151601582815481106114fb57fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a09091015160039091015585518690829081106115b657fe5b6020026020010151601682815481106115cb57fe5b9060005260206000200190805190602001906115e8929190617a2f565b505b6001016113b5565b507fb8e726330a0dad1cf3d04e925663b17e391f1ed547d79b7f4e5f344119b44246826040516116229190618f10565b60405180910390a150505050610e34565b6060806116408386615525565b9150915060005b6001548110156117365760006001828154811061166057fe5b90600052602060002090600402016003015490508060001461172d5760006001838154811061168b57fe5b9060005260206000209060040201600301819055506120026001600160a01b031663092193ab82600185815481106116bf57fe5b60009182526020909120600491820201546040516001600160e01b031960e086901b1681526116fa926001600160a01b039092169101618200565b6000604051808303818588803b15801561171357600080fd5b505af1158015611727573d6000803e3d6000fd5b50505050505b50600101611647565b5047156117a4577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d4760405161176c9190618f10565b60405180910390a1604051611002904780156108fc02916000818181858888f193505050501580156117a2573d6000803e3d6000fd5b505b600060038190556005558151156117bf576117bf8282615a0f565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156117fc57600080fd5b505af1158015611810573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a150505050505050565b60035481565b606881565b61200581565b33612002146118785760405162461bcd60e51b8152600401610e1290618eca565b60005b60155481101561190057816001600160a01b03166015828154811061189c57fe5b60009182526020909120600490910201546001600160a01b031614156118f8576001601582815481106118cb57fe5b9060005260206000209060040201600201601c6101000a81548160ff021916908315150217905550611900565b60010161187b565b5050565b3341146119235760405162461bcd60e51b8152600401610e1290618d6c565b60105443116119445760405162461bcd60e51b8152600401610e1290618770565b3a156119625760405162461bcd60e51b8152600401610e1290618a5b565b60005460ff166119845760405162461bcd60e51b8152600401610e12906185dd565b60006110023168056bc75e2d631000008111156119bb576119b48168056bc75e2d6310000063ffffffff6161fe16565b91506119c2565b5050611c43565b6040516309a99b4f60e41b815261100290639a99b4f0906119e99030908690600401618214565b602060405180830381600087803b158015611a0357600080fd5b505af1158015611a17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3b91906180ab565b915081611a49575050611c43565b6000805b84811015611a7757858582818110611a6157fe5b9050602002013582019150806001019050611a4d565b5080611a8557505050611c43565b6000806000805b89811015611c3b5784898983818110611aa157fe5b90506020020135880281611ab157fe5b0493508a8a82818110611ac057fe5b9050602002016020810190611ad59190617e54565b6001600160a01b03811660009081526004602052604090205490935091508115611bf1576000600180840381548110611b0a57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff1615611b7757836001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d8586604051611b6a9190618f10565b60405180910390a2611beb565b600354611b8a908663ffffffff61624016565b6003908155810154611ba2908663ffffffff61624016565b60038201556040516001600160a01b038516907fcb0aad6cf9cd03bdf6137e359f541c42f38b39f007cae8e89e88aa7d8c6617b290611be2908890618f10565b60405180910390a25b50611c33565b826001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d8585604051611c2a9190618f10565b60405180910390a25b600101611a8c565b505050505050505b5050436010555050565b6001546000908210611c6157506000611d17565b60006001600160a01b031660018381548110611c7957fe5b60009182526020909120600490910201546001600160a01b03161480611ca957506008541580611ca95750600a54155b80611cb8575060085460095410155b80611cc95750611cc782611d1c565b155b80611cf257506000600b8381548110611cde57fe5b906000526020600020906016020160000154115b80611d0657506001611d026130a5565b5111155b15611d1357506000611d17565b5060015b919050565b6001546000908210611d3057506000611d17565b600b548210611d6d5760018281548110611d4657fe5b9060005260206000209060040201600201601c9054906101000a900460ff16159050611d17565b60018281548110611d7a57fe5b9060005260206000209060040201600201601c9054906101000a900460ff16158015611dc75750600b8281548110611dae57fe5b600091825260209091206001601690920201015460ff16155b92915050565b600b54611e8b57611ddc617a00565b60015460005b81811015611e8757600b8054600181018255600091909152835160008051602061901d833981519152601690920291820190815560208086015160008051602061964c8339815191528401805460ff1916911515919091179055604086015180518794611e639360008051602061903d833981519152909101920190617a2f565b506060820151611e799060038301906013617aa9565b505050806001019050611de2565b5050505b336110011480611e9c575033612002145b611eb85760405162461bcd60e51b8152600401610e1290618614565b6001600160a01b03811660009081526004602052604090205480611edc5750611f2f565b6001810390506000600b8281548110611ef157fe5b600091825260209091206001601690920201015460ff169050611f148383615162565b8015611f1d5750805b15610e34576009805460001901905550505b50565b60015460609081906000805b82811015611f855760018181548110611f5357fe5b9060005260206000209060040201600201601c9054906101000a900460ff16611f7d576001909101905b600101611f3e565b50606081604051908082528060200260200182016040528015611fb2578160200160208202803683370190505b509050606082604051908082528060200260200182016040528015611feb57816020015b6060815260200190600190039081611fd65790505b50600b54600094509091508414156121665760005b84811015612160576001818154811061201557fe5b9060005260206000209060040201600201601c9054906101000a900460ff16612158576001818154811061204557fe5b600091825260209091206004909102015483516001600160a01b039091169084908690811061207057fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600b818154811061209d57fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156121355780601f1061210a57610100808354040283529160200191612135565b820191906000526020600020905b81548152906001019060200180831161211857829003601f168201915b505050505082858151811061214657fe5b60209081029190910101526001909301925b600101612000565b50612202565b60005b84811015612200576001818154811061217e57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166121f857600181815481106121ae57fe5b600091825260209091206004909102015483516001600160a01b03909116908490869081106121d957fe5b6001600160a01b03909216602092830291909101909101526001909301925b600101612169565b505b909450925050505b9091565b600181565b61100181565b60085481565b603881565b600881565b6060806000600e549050600080600c5411612245576015612249565b600c545b905060606122556130a5565b9050606061226282616265565b90508282511161227957909450925061220a915050565b8383835103101561228b578282510393505b83156122c15760c843046122a783838388880360008a8a6163d3565b6122bf8383838888038989038a8b8b8b5103016163d3565b505b6060836040519080825280602002602001820160405280156122ed578160200160208202803683370190505b50905060608460405190808252806020026020018201604052801561232657816020015b60608152602001906001900390816123115790505b50905060005b858110156123a75784818151811061234057fe5b602002602001015183828151811061235457fe5b60200260200101906001600160a01b031690816001600160a01b03168152505083818151811061238057fe5b602002602001015182828151811061239457fe5b602090810291909101015260010161232c565b509096509450505050509091565b60065481565b61200681565b61200081565b6001600160a01b038116600090815260046020526040812054806123ef576000915050611d17565b6000190161116081611d1c565b6001600160a01b03811660009081526004602052604081205480612424576000915050611d17565b60018082038154811061243357fe5b906000526020600020906004020160030154915050919050565b600081565b606781565b600f5481565b6012818154811061246a57fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152935090918301828280156124fb5780601f106124d0576101008083540402835291602001916124fb565b820191906000526020600020905b8154815290600101906020018083116124de57829003601f168201915b505050505081565b60105481565b6001818154811061251657fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b601081565b61100881565b6103e881565b600b81565b600c5481565b61200381565b606681565b61271081565b33612000146125c65760405162461bcd60e51b8152600401610e1290618d1d565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f389021016058383836040516125f993929190618f59565b60405180910390a1505050565b60025481565b60115481565b60145460ff1681565b600a5481565b6001600160a01b038116600090815260046020526040812054806126575760405162461bcd60e51b8152600401610e1290618ca5565b6000190192915050565b600b5461271f57612670617a00565b60015460005b8181101561271b57600b8054600181018255600091909152835160008051602061901d833981519152601690920291820190815560208086015160008051602061964c8339815191528401805460ff19169115159190911790556040860151805187946126f79360008051602061903d833981519152909101920190617a2f565b50606082015161270d9060038301906013617aa9565b505050806001019050612676565b5050505b60085461272c5760036008555b600a54612739576002600a555b600061274433612621565b905061274f81611c4d565b61276b5760405162461bcd60e51b8152600401610e1290618992565b611f2f338261652a565b600981565b61100781565b600381565b60c881565b61100681565b6040518061062001604052806105ef815260200161905d6105ef913981565b60005460ff1681565b61200281565b61300081565b6402540be40081565b60005460ff166127ef5760405162461bcd60e51b8152600401610e12906185dd565b33611007146128105760405162461bcd60e51b8152600401610e1290618a89565b61287a84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b602082015291506165c29050565b15612917576020811461289f5760405162461bcd60e51b8152600401610e1290618c5f565b604080516020601f84018190048102820181019092528281526000916128dd9185858083850183828082843760009201919091525061661b92505050565b9050606481101580156128f35750620186a08111155b61290f5760405162461bcd60e51b8152600401610e1290618882565b600255613043565b61297784848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260098152686275726e526174696f60b81b602082015291506165c29050565b15612a1a576020811461299c5760405162461bcd60e51b8152600401610e12906183fb565b604080516020601f84018190048102820181019092528281526000916129da9185858083850183828082843760009201919091525061661b92505050565b90506127106129f4600f548361624090919063ffffffff16565b1115612a125760405162461bcd60e51b8152600401610e1290618432565b600655613043565b612a8484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260138152726d61784e756d4f664d61696e7461696e696e6760681b602082015291506165c29050565b15612b1e5760208114612aa95760405162461bcd60e51b8152600401610e129061849a565b604080516020601f8401819004810282018101909252828152600091612ae79185858083850183828082843760009201919091525061661b92505050565b600c5490915080612af6575060155b808210612b155760405162461bcd60e51b8152600401610e12906187da565b50600855613043565b612b8784848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61696e7461696e536c6173685363616c6560701b602082015291506165c29050565b15612c205760208114612bac5760405162461bcd60e51b8152600401610e1290618563565b604080516020601f8401819004810282018101909252828152600091612bea9185858083850183828082843760009201919091525061661b92505050565b9050600081118015612bfc5750600a81105b612c185760405162461bcd60e51b8152600401610e1290618dfd565b600a55613043565b612c9484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601981527f6d61784e756d4f66576f726b696e6743616e6469646174657300000000000000602082015291506165c29050565b15612d235760208114612cb95760405162461bcd60e51b8152600401610e1290618517565b604080516020601f8401819004810282018101909252828152600091612cf79185858083850183828082843760009201919091525061661b92505050565b9050600d54811115612d1b5760405162461bcd60e51b8152600401610e12906188f8565b600e55613043565b612d8c84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61784e756d4f6643616e6469646174657360701b602082015291506165c29050565b15612e0e5760208114612db15760405162461bcd60e51b8152600401610e1290618ad7565b604080516020601f8401819004810282018101909252828152600091612def9185858083850183828082843760009201919091525061661b92505050565b600d819055600e54909150811015612e0857600d54600e555b50613043565b612e7284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c6e756d4f66436162696e65747360981b602082015291506165c29050565b15612f205760208114612e975760405162461bcd60e51b8152600401610e12906185a8565b604080516020601f8401819004810282018101909252828152600091612ed59185858083850183828082843760009201919091525061661b92505050565b905060008111612ef75760405162461bcd60e51b8152600401610e1290618682565b6064811115612f185760405162461bcd60e51b8152600401610e12906186ca565b600c55613043565b612f8884848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601181527073797374656d526577617264526174696f60781b602082015291506165c29050565b1561302b5760208114612fad5760405162461bcd60e51b8152600401610e1290618db9565b604080516020601f8401819004810282018101909252828152600091612feb9185858083850183828082843760009201919091525061661b92505050565b90506127106130056006548361624090919063ffffffff16565b11156130235760405162461bcd60e51b8152600401610e1290618bc0565b600f55613043565b60405162461bcd60e51b8152600401610e1290618e5a565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a8484848460405161307894939291906183c9565b60405180910390a150505050565b60046020526000908152604090205481565b68056bc75e2d6310000081565b6001546060906000805b828110156130d4576130c081611d1c565b156130cc578160010191505b6001016130af565b50606081604051908082528060200260200182016040528015613101578160200160208202803683370190505b5090506000915060005b838110156131885761311c81611d1c565b15613180576001818154811061312e57fe5b600091825260209091206004909102015482516001600160a01b039091169083908590811061315957fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508260010192505b60010161310b565b50925050505b90565b601581565b61027181565b61100281565b6013818154811061246a57fe5b60006131b96130a5565b519050600080600c54116131ce5760156131d2565b600c545b9050808211156131e0578091505b816131ea57600191505b5090565b67016345785d8a000081565b60055481565b61100381565b61200481565b60005460ff161561322f5760405162461bcd60e51b8152600401610e1290618b89565b613237617ad6565b600061325d6040518061062001604052806105ef815260200161905d6105ef9139613d83565b915091508061327e5760405162461bcd60e51b8152600401610e1290618cdc565b60005b8260200151518110156133a3576001836020015182815181106132a057fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a09093015160039093019290925591860151805191850193918590811061337657fe5b602090810291909101810151516001600160a01b0316825281019190915260400160002055600101613281565b50506103e8600255506000805460ff19166001179055565b600d5481565b601354600090815b818110156134ca576134b285858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060138054909250859150811061341a57fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156134a85780601f1061347d576101008083540402835291602001916134a8565b820191906000526020600020905b81548152906001019060200180831161348b57829003601f168201915b5050505050616620565b156134c257600192505050611dc7565b6001016133c9565b5060125460005b8181101561353b5761352286868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060128054909250859150811061341a57fe5b156135335760019350505050611dc7565b6001016134d1565b50600095945050505050565b33611001146135685760405162461bcd60e51b8152600401610e1290618e81565b600b5461362657613577617a00565b60015460005b8181101561362257600b8054600181018255600091909152835160008051602061901d833981519152601690920291820190815560208086015160008051602061964c8339815191528401805460ff19169115159190911790556040860151805187946135fe9360008051602061903d833981519152909101920190617a2f565b5060608201516136149060038301906013617aa9565b50505080600101905061357d565b5050505b600061363182616684565b905061363c81611c4d565b1561190057611900828261652a565b606581565b601181565b3341146136745760405162461bcd60e51b8152600401610e1290618d6c565b60005460ff166136965760405162461bcd60e51b8152600401610e12906185dd565b600034116136b65760405162461bcd60e51b8152600401610e12906188c9565b3a156136d45760405162461bcd60e51b8152600401610e1290618a5b565b6001600160a01b03811660009081526004602052604090205460145434919060ff1661371457610271600f556103e86006556014805460ff191660011790555b60008211801561372657506000600f54115b156137d8576000613754612710613748600f543461680790919063ffffffff16565b9063ffffffff61684116565b905080156137d6576040516110029082156108fc029083906000818181858888f1935050505015801561378b573d6000803e3d6000fd5b507f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d816040516137bb9190618f10565b60405180910390a16137d3838263ffffffff6161fe16565b92505b505b6000821180156137ea57506000600654115b1561389057600061380c6127106137486006543461680790919063ffffffff16565b9050801561388e5760405161dead9082156108fc029083906000818181858888f19350505050158015613843573d6000803e3d6000fd5b507f627059660ea01c4733a328effb2294d2f86905bf806da763a89cee254de8bee5816040516138739190618f10565b60405180910390a161388b838263ffffffff6161fe16565b92505b505b801561398e5760006001808303815481106138a757fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff161561391457836001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4846040516139079190618f10565b60405180910390a2613988565b600354613927908463ffffffff61624016565b600390815581015461393f908463ffffffff61624016565b60038201556040516001600160a01b038516907f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc0559061397f908690618f10565b60405180910390a25b50610e34565b826001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4836040516139c79190618f10565b60405180910390a2505050565b600e5481565b61100081565b61dead81565b600b81815481106139f357fe5b6000918252602091829020601691909102018054600180830154600280850180546040805161010096831615969096026000190190911692909204601f810188900488028501880190925281845293965060ff90911694919291830182828015613a9e5780601f10613a7357610100808354040283529160200191613a9e565b820191906000526020600020905b815481529060010190602001808311613a8157829003601f168201915b5050505050905083565b61100481565b6000600a5460001480613abf575082155b80613aca5750600954155b15613ad757506000613d7b565b60096000815460019003919050819055506000613b22600a5461374886613748600b8a81548110613b0457fe5b6000918252602090912060169091020154439063ffffffff6161fe16565b90506000600b8681548110613b3357fe5b906000526020600020906016020160010160006101000a81548160ff0219169083151502179055506000806110016001600160a01b0316638256ace66040518163ffffffff1660e01b8152600401604080518083038186803b158015613b9857600080fd5b505afa158015613bac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613bd091906180c3565b9150915060009350808310613d3157613be98888615162565b5060405163436aa28360e11b8152600090612002906386d5450690613c12908c90600401618200565b60206040518083038186803b158015613c2a57600080fd5b505afa158015613c3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c629190617e70565b6001600160a01b031614613cd0576040516328aa02b160e01b8152611001906328aa02b190613c99908b9087908a9060040161826f565b600060405180830381600087803b158015613cb357600080fd5b505af1158015613cc7573d6000803e3d6000fd5b50505050613d28565b6040516305bfb49960e41b815261100190635bfb499090613cf5908b90600401618200565b600060405180830381600087803b158015613d0f57600080fd5b505af1158015613d23573d6000803e3d6000fd5b505050505b60019350613d43565b818310613d4357613d4188616684565b505b6040516001600160a01b038916907fb9d38178dc641ff1817967a63c9078cbcd955a9f1fcd75e0e3636de615d44d3b90600090a25050505b949350505050565b613d8b617ad6565b6000613d95617ad6565b613d9d617b73565b613dae613da986616883565b6168a8565b90506000805b613dbd836168f2565b15613f315780613de257613dd8613dd384616913565b616961565b60ff168452613f29565b8060011415613f24576060613dfe613df985616913565b6169e1565b90508051604051908082528060200260200182016040528015613e3b57816020015b613e28617afa565b815260200190600190039081613e205790505b5085602001819052508051604051908082528060200260200182016040528015613e7957816020015b6060815260200190600190039081613e645790505b50604086015260005b8151811015613f1957613e93617afa565b60606000613eb3858581518110613ea657fe5b6020026020010151616ab2565b92509250925080613ed3578860009a509a50505050505050505050613f3a565b8289602001518581518110613ee457fe5b60200260200101819052508189604001518581518110613f0057fe5b6020026020010181905250505050806001019050613e82565b506001925050613f29565b613f31565b600101613db4565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b6060815260200190600190039081613f59579050509050613f7f8363ffffffff16616bcc565b81600081518110613f8c57fe5b602002602001018190525061116081616bdf565b6000606483511115613fd757600080516020618ffd833981519152604051613fc790618727565b60405180910390a1506066611dc7565b60005b83518110156140755760005b8181101561406c57848181518110613ffa57fe5b6020026020010151600001516001600160a01b031685838151811061401b57fe5b6020026020010151600001516001600160a01b0316141561406457600080516020618ffd83398151915260405161405190618837565b60405180910390a1606692505050611dc7565b600101613fe6565b50600101613fda565b5060608060606015805480602002602001604051908101604052809291908181526020016000905b828210156141275760008481526020908190206040805160c0810182526004860290920180546001600160a01b039081168452600180830154821685870152600283015491821693850193909352600160a01b81046001600160401b03166060850152600160e01b900460ff16151560808401526003015460a0830152908352909201910161409d565b50505050905060606016805480602002602001604051908101604052809291908181526020016000905b828210156141fc5760008481526020908190208301805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156141e85780601f106141bd576101008083540402835291602001916141e8565b820191906000526020600020905b8154815290600101906020018083116141cb57829003601f168201915b505050505081526020019060010190614151565b50505050905060005b82518110156142595782818151811061421a57fe5b60200260200101516060015160030283828151811061423557fe5b60209081029190910101516001600160401b03909116606090910152600101614205565b5060608061426989898686616c69565b915091506142778282615525565b600154604080518281526020808402820101909152929850909650600095508594509250606091508280156142b6578160200160208202803683370190505b50905060005b828110156144475760006001600160a01b03166120026001600160a01b03166386d54506600184815481106142ed57fe5b60009182526020909120600491820201546040516001600160e01b031960e085901b168152614328926001600160a01b039092169101618200565b60206040518083038186803b15801561434057600080fd5b505afa158015614354573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143789190617e70565b6001600160a01b0316146143da57600182828151811061439457fe5b602002602001019060ff16908160ff1681525050600181815481106143b557fe5b9060005260206000209060040201600301546000146143d5578360010193505b61443f565b67016345785d8a0000600182815481106143f057fe5b906000526020600020906004020160030154106144125784600101945061443f565b6001818154811061441f57fe5b90600052602060002090600402016003015460001461443f578360010193505b6001016142bc565b50606084604051908082528060200260200182016040528015614474578160200160208202803683370190505b5090506060856040519080825280602002602001820160405280156144a3578160200160208202803683370190505b5090506060866040519080825280602002602001820160405280156144d2578160200160208202803683370190505b509050606087604051908082528060200260200182016040528015614501578160200160208202803683370190505b5090506000606088604051908082528060200260200182016040528015614532578160200160208202803683370190505b509050606089604051908082528060200260200182016040528015614561578160200160208202803683370190505b50905060009a506000995060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b1580156145a957600080fd5b505afa1580156145bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145e191906180ab565b905067016345785d8a000081111561462d57600080516020618ffd83398151915260405161460e90618b48565b60405180910390a160689e505050505050505050505050505050611dc7565b60005b8a8110156149c15789818151811061464457fe5b602002602001015160ff166001141561473a576001818154811061466457fe5b906000526020600020906004020160030154600014614735576001818154811061468a57fe5b600091825260209091206004909102015484516001600160a01b039091169085908e9081106146b557fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600181815481106146e257fe5b906000526020600020906004020160030154838d8151811061470057fe5b60200260200101818152505060018a8d8151811061471a57fe5b602002602001019060ff16908160ff16815250508b6001019b505b6149b9565b67016345785d8a00006001828154811061475057fe5b906000526020600020906004020160030154106148d5576001818154811061477457fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316898e815181106147a557fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be400600183815481106147da57fe5b906000526020600020906004020160030154816147f357fe5b066001838154811061480157fe5b90600052602060002090600402016003015403905061482983826161fe90919063ffffffff16565b898f8151811061483557fe5b6020026020010181815250506001828154811061484e57fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316878f8151811061487f57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081888f815181106148ac57fe5b60209081029190910101526148c7868263ffffffff61624016565b95508d6001019d50506149b9565b600181815481106148e257fe5b9060005260206000209060040201600301546000146149b9576001818154811061490857fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316848d8151811061493957fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506001818154811061496657fe5b906000526020600020906004020160030154838d8151811061498457fe5b60200260200101818152505060008a8d8151811061499e57fe5b602002602001019060ff16908160ff16815250508b6001019b505b600101614630565b5060008415614c37576002546040516303702b2960e51b815261100491636e0565209188916149fb918e918e918d91420190600401618331565b6020604051808303818588803b158015614a1457600080fd5b505af193505050508015614a45575060408051601f3d908101601f19168201909252614a4291810190617fd8565b60015b614bbc576040516000815260443d1015614a6157506000614afc565b60046000803e60005160e01c6308c379a08114614a82576000915050614afc565b60043d036004833e81513d60248201116001600160401b0382111715614aad57600092505050614afc565b80830180516001600160401b03811115614ace576000945050505050614afc565b8060208301013d8601811115614aec57600095505050505050614afc565b601f01601f191660405250925050505b80614b075750614b49565b60019150857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf28082604051614b3b91906183b6565b60405180910390a250614bb7565b3d808015614b73576040519150601f19603f3d011682016040523d82523d6000602084013e614b78565b606091505b5060019150857fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a4582604051614bad91906183b6565b60405180910390a2505b614c37565b8015614bfe577fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b7086604051614bf19190618f10565b60405180910390a1614c35565b857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280604051614c2c906184e0565b60405180910390a25b505b8015614ded5760005b8751811015614deb576000888281518110614c5757fe5b60200260200101519050600060018281548110614c7057fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc9185908110614ca157fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f1935050505090508015614d5d5760018281548110614ce257fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d9185908110614d3157fe5b906000526020600020906004020160030154604051614d509190618f10565b60405180910390a2614de1565b60018281548110614d6a57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d9185908110614db957fe5b906000526020600020906004020160030154604051614dd89190618f10565b60405180910390a25b5050600101614c40565b505b835115614fe35760005b8451811015614fe1578a8181518110614e0c57fe5b602002602001015160ff1660011415614eab576120026001600160a01b031663092193ab858381518110614e3c57fe5b6020026020010151878481518110614e5057fe5b60200260200101516040518363ffffffff1660e01b8152600401614e749190618200565b6000604051808303818588803b158015614e8d57600080fd5b505af1158015614ea1573d6000803e3d6000fd5b5050505050614fd9565b6000858281518110614eb957fe5b60200260200101516001600160a01b03166108fc868481518110614ed957fe5b60200260200101519081150290604051600060405180830381858888f1935050505090508015614f6f57858281518110614f0f57fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d868481518110614f4d57fe5b6020026020010151604051614f629190618f10565b60405180910390a2614fd7565b858281518110614f7b57fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d868481518110614fb957fe5b6020026020010151604051614fce9190618f10565b60405180910390a25b505b600101614df7565b505b5050505050505050505050505060005b600154811015615050576001818154811061500a57fe5b9060005260206000209060040201600301546000146150485760006001828154811061503257fe5b9060005260206000209060040201600301819055505b600101614ff3565b5047156150be577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d476040516150869190618f10565b60405180910390a1604051611002904780156108fc02916000818181858888f193505050501580156150bc573d6000803e3d6000fd5b505b600060038190556005558151156150d9576150d98282615a0f565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561511657600080fd5b505af115801561512a573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a1506000949350505050565b6000806001838154811061517257fe5b9060005260206000209060040201600301549050600060018080549050039050600161519c6130a5565b51116151d1576000600185815481106151b157fe5b906000526020600020906004020160030181905550600092505050611dc7565b846001600160a01b03167f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a708360405161520a9190618f10565b60405180910390a26001600160a01b038516600090815260046020526040812055835b600154600019018110156153f7576001816001018154811061524b57fe5b90600052602060002090600402016001828154811061526657fe5b60009182526020909120825460049092020180546001600160a01b03199081166001600160a01b0393841617825560018085015481840180548416918616919091179055600280860180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b19909416939093179055600392830154920191909155600b80549091830190811061532757fe5b9060005260206000209060160201600b828154811061534257fe5b600091825260209091208254601690920201908155600180830154818301805460ff909216151560ff1990921691909117905560028084018054615399938386019390821615610100026000190190911604617b93565b506153ac60038281019084016013617c08565b509050508060010160046000600184815481106153c557fe5b600091825260208083206004909202909101546001600160a01b0316835282019290925260400190205560010161522d565b50600180548061540357fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b80548061545657fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906154886002830182617b2f565b615496600383016000617c32565b5050905560008183816154a557fe5b04905080156155195760015460005b81811015615516576154ed83600183815481106154cd57fe5b90600052602060002090600402016003015461624090919063ffffffff16565b600182815481106154fa57fe5b60009182526020909120600360049092020101556001016154b4565b50505b50600195945050505050565b6060806000808080806155366131af565b6001549091505b801561576857600181039250600b838154811061555657fe5b600091825260209091206001601690920201015460ff166155765761575f565b6001838154811061558357fe5b600091825260208220600490910201546001600160a01b031695506155ad90869085908590613aae565b9350836155b95761575f565b60405163436aa28360e11b81526000908190612002906386d54506906155e3908a90600401618200565b60206040518083038186803b1580156155fb57600080fd5b505afa15801561560f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906156339190617e70565b90506001600160a01b038116156156bc576040516302ceee9160e11b81526120029063059ddd2290615669908490600401618200565b60206040518083038186803b15801561568157600080fd5b505afa158015615695573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906156b99190617e70565b91505b60005b8c5181101561575b57876001600160a01b03168d82815181106156de57fe5b6020026020010151600001516001600160a01b031614806157275750826001600160a01b03168d828151811061571057fe5b6020026020010151600001516001600160a01b0316145b156157535760018d828151811061573a57fe5b602090810291909101015190151560809091015261575b565b6001016156bf565b5050505b6000190161553d565b5060005b89518110156157d55789818151811061578157fe5b602002602001015160800151806157c1575060006001600160a01b03168a82815181106157aa57fe5b6020026020010151600001516001600160a01b0316145b156157cd578560010195505b60010161576c565b50885185106158bd5760408051600180825281830190925290816020015b6157fb617afa565b8152602001906001900390816157f3575050604080516001808252818301909252919850602082015b60608152602001906001900390816158245790505095508860008151811061584857fe5b60200260200101518760008151811061585d57fe5b60200260200101819052508760008151811061587557fe5b60200260200101518660008151811061588a57fe5b60200260200101819052506000876000815181106158a457fe5b6020908102919091010151901515608090910152615a02565b848951036040519080825280602002602001820160405280156158fa57816020015b6158e7617afa565b8152602001906001900390816158df5790505b5096508489510360405190808252806020026020018201604052801561593457816020015b606081526020019060019003908161591f5790505b5095506000915060005b8951811015615a005789818151811061595357fe5b602002602001015160800151158015615996575060006001600160a01b03168a828151811061597e57fe5b6020026020010151600001516001600160a01b031614155b156159f8578981815181106159a757fe5b60200260200101518884815181106159bb57fe5b60200260200101819052508881815181106159d257fe5b60200260200101518784815181106159e657fe5b60200260200101819052508260010192505b60010161593e565b505b50505050505b9250929050565b600154825160005b82811015615b2c576001615a29617afa565b60018381548110615a3657fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b84811015615b0057878181518110615ac657fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b03161415615af85760009250615b00565b600101615ab2565b508115615b225780516001600160a01b03166000908152600460205260408120555b5050600101615a17565b5080821115615beb57805b82811015615be9576001805480615b4a57fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b805480615b9d57fe5b60008281526020812060166000199093019283020181815560018101805460ff1916905590615bcf6002830182617b2f565b615bdd600383016000617c32565b50509055600101615b37565b505b6000818310615bfa5781615bfc565b825b905060005b81811015615fa057615cae868281518110615c1857fe5b602002602001015160018381548110615c2d57fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a0820152617035565b615e62578060010160046000888481518110615cc657fe5b6020026020010151600001516001600160a01b03166001600160a01b0316815260200190815260200160002081905550858181518110615d0257fe5b602002602001015160018281548110615d1757fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a0909101516003909101558451859082908110615dd257fe5b6020026020010151600b8281548110615de757fe5b90600052602060002090601602016002019080519060200190615e0b929190617a2f565b506000600b8281548110615e1b57fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b805483908110615e4c57fe5b6000918252602090912060169091020155615f98565b858181518110615e6e57fe5b60200260200101516060015160018281548110615e8757fe5b906000526020600020906004020160020160146101000a8154816001600160401b0302191690836001600160401b03160217905550615f4d858281518110615ecb57fe5b6020026020010151600b8381548110615ee057fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156134a85780601f1061347d576101008083540402835291602001916134a8565b615f9857848181518110615f5d57fe5b6020026020010151600b8281548110615f7257fe5b90600052602060002090601602016002019080519060200190615f96929190617a2f565b505b600101615c01565b508282111561617857615fb1617a00565b835b8381101561617557858181518110615fc757fe5b602002602001015182604001819052506001878281518110615fe557fe5b6020908102919091018101518254600181810185556000948552838520835160049093020180546001600160a01b039384166001600160a01b0319918216178255848601518284018054918616918316919091179055604080860151600284018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909a1692909616919091179290921696909617169190911790935560a090930151600390930192909255600b805492830181559093528451601690910260008051602061901d83398151915281019182558583015160008051602061964c8339815191528201805491151560ff199092169190911790559285015180518694929361611b9360008051602061903d83398151915201920190617a2f565b5060608201516161319060038301906013617aa9565b505050806001016004600089848151811061614857fe5b602090810291909101810151516001600160a01b0316825281019190915260400160002055600101615fb3565b50505b616180617091565b616188617279565b6000600981905560015493505b838110156161f6576000600b82815481106161ac57fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b8054839081106161dd57fe5b6000918252602090912060169091020155600101616195565b505050505050565b600061116083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250617467565b6000828201838110156111605760405162461bcd60e51b8152600401610e129061864b565b6001548151604080518281526020808402820101909152606092919083908280156162a457816020015b606081526020019060019003908161628f5790505b50600b5490915083146162bb579250611d17915050565b60005b828110156163ca57600b6001600460008985815181106162da57fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054038154811061630e57fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156163a65780601f1061637b576101008083540402835291602001916163a6565b820191906000526020600020905b81548152906001019060200180831161638957829003601f168201915b50505050508282815181106163b757fe5b60209081029190910101526001016162be565b50949350505050565b60005b8281101561652057600082878388016040516020016163f69291906181f2565b6040516020818303038152906040528051906020012060001c8161641657fe5b06905080850182870114616517576000898388018151811061643457fe5b602002602001015190506060898489018151811061644e57fe5b602002602001015190508a8388018151811061646657fe5b60200260200101518b858a018151811061647c57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050818b848901815181106164ab57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505089838801815181106164d957fe5b60200260200101518a858a01815181106164ef57fe5b6020026020010181905250808a8489018151811061650957fe5b602002602001018190525050505b506001016163d6565b5050505050505050565b600980546001908101909155600b80548390811061654457fe5b906000526020600020906016020160010160006101000a81548160ff02191690831515021790555043600b828154811061657a57fe5b600091825260208220601690910201919091556040516001600160a01b038416917ff62981a567ec3cec866c6fa93c55bcdf841d6292d18b8d522ececa769375d82d91a25050565b6000816040516020016165d591906181d6565b60405160208183030381529060405280519060200120836040516020016165fc91906181d6565b6040516020818303038152906040528051906020012014905092915050565b015190565b81518151600091600191811480831461663c576000925061667a565b600160208701838101602088015b6002848385100114156166755780518351146166695760009650600093505b6020928301920161664a565b505050505b5090949350505050565b6001600160a01b038116600090815260046020526040812054806166ad57506000199050611d17565b6001810390506000600182815481106166c257fe5b90600052602060002090600402016003015490506000600183815481106166e557fe5b6000918252602090912060036004909202010155600154604051600019909101906001600160a01b038616907f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d9061673e908590618f10565b60405180910390a28061675657829350505050611d17565b600081838161676157fe5b04905080156167fd5760005b848110156167af5761678682600183815481106154cd57fe5b6001828154811061679357fe5b600091825260209091206003600490920201015560010161676d565b50600180549085015b818110156167fa576167d183600183815481106154cd57fe5b600182815481106167de57fe5b60009182526020909120600360049092020101556001016167b8565b50505b5091949350505050565b60008261681657506000611dc7565b8282028284828161682357fe5b04146111605760405162461bcd60e51b8152600401610e1290618a1a565b600061116083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250617493565b61688b617c41565b506040805180820190915281518152602082810190820152919050565b6168b0617b73565b6168b9826174ca565b6168c257600080fd5b60006168d18360200151617504565b60208085015160408051808201909152868152920190820152915050919050565b60006168fc617c41565b505080518051602091820151919092015191011190565b61691b617c41565b616924826168f2565b61692d57600080fd5b6020820151600061693d82617567565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061697657508151602110155b61697f57600080fd5b600061698e8360200151617504565b905080836000015110156169b45760405162461bcd60e51b8152600401610e1290618c28565b8251602080850151830180519284900392918310156163ca57506020919091036101000a90049392505050565b60606169ec826174ca565b6169f557600080fd5b6000616a0083617648565b9050606081604051908082528060200260200182016040528015616a3e57816020015b616a2b617c41565b815260200190600190039081616a235790505b5090506000616a508560200151617504565b60208601510190506000805b84811015616aa757616a6d83617567565b9150604051806040016040528083815260200184815250848281518110616a9057fe5b602090810291909101015291810191600101616a5c565b509195945050505050565b616aba617afa565b60606000616ac6617afa565b6060616ad0617b73565b616ad9876168a8565b90506000805b616ae8836168f2565b15616bbd5780616b1357616b03616afe84616913565b6176a4565b6001600160a01b03168552616bb5565b8060011415616b3b57616b28616afe84616913565b6001600160a01b03166020860152616bb5565b8060021415616b6357616b50616afe84616913565b6001600160a01b03166040860152616bb5565b8060031415616b8f57616b78613dd384616913565b6001600160401b0316606086015260019150616bb5565b8060041415616bb057616ba9616ba484616913565b6176be565b9350616bb5565b616bbd565b600101616adf565b50929791965091945092505050565b6060611dc7616bda8361772e565b617814565b6060815160001415616c005750604080516000815260208101909152611d17565b606082600081518110616c0f57fe5b602002602001015190506000600190505b8351811015616c5057616c4682858381518110616c3957fe5b6020026020010151617866565b9150600101616c20565b50611160616c63825160c060ff166178e3565b82617866565b60608060006120026001600160a01b031663c473318f6040518163ffffffff1660e01b815260040160206040518083038186803b158015616ca957600080fd5b505afa158015616cbd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190616ce191906180ab565b90508085518851011015616cf6575083518651015b606081604051908082528060200260200182016040528015616d3257816020015b616d1f617afa565b815260200190600190039081616d175790505b509050606082604051908082528060200260200182016040528015616d6b57816020015b6060815260200190600190039081616d565790505b50905060008060005b8b51831080616d835750895182105b8015616d8e57508581105b15617023578b51831415616dfe57898281518110616da857fe5b6020026020010151858281518110616dbc57fe5b6020026020010181905250888281518110616dd357fe5b6020026020010151848281518110616de757fe5b602090810291909101015260019182019101616d74565b8951821415616e69578b8381518110616e1357fe5b6020026020010151858281518110616e2757fe5b60200260200101819052508a8381518110616e3e57fe5b6020026020010151848281518110616e5257fe5b602090810291909101015260019283019201616d74565b898281518110616e7557fe5b6020026020010151606001516001600160401b03168c8481518110616e9657fe5b6020026020010151606001516001600160401b03161115616f12578b8381518110616ebd57fe5b6020026020010151858281518110616ed157fe5b60200260200101819052508a8381518110616ee857fe5b6020026020010151848281518110616efc57fe5b602002602001018190525082600101925061701b565b898281518110616f1e57fe5b6020026020010151606001516001600160401b03168c8481518110616f3f57fe5b6020026020010151606001516001600160401b03161015616fbb57898281518110616f6657fe5b6020026020010151858281518110616f7a57fe5b6020026020010181905250888281518110616f9157fe5b6020026020010151848281518110616fa557fe5b602002602001018190525081600101915061701b565b898281518110616fc757fe5b6020026020010151600001516001600160a01b03168c8481518110616fe857fe5b6020026020010151600001516001600160a01b0316101561700f578b8381518110616ebd57fe5b898281518110616da857fe5b600101616d74565b50929a91995090975050505050505050565b805182516000916001600160a01b03918216911614801561706f575081602001516001600160a01b031683602001516001600160a01b0316145b80156111605750506040908101519101516001600160a01b0390811691161490565b601254601354808211156170dc57805b828110156170da5760128054806170b457fe5b6001900381819060005260206000200160006170d09190617b2f565b90556001016170a1565b505b60008183106170eb57816170ed565b825b905060005b81811015617205576171aa6012828154811061710a57fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156171985780601f1061716d57610100808354040283529160200191617198565b820191906000526020600020905b81548152906001019060200180831161717b57829003601f168201915b50505050506013838154811061341a57fe5b6171fd57601381815481106171bb57fe5b90600052602060002001601282815481106171d257fe5b9060005260206000200190805460018160011615610100020316600290046171fb929190617b93565b505b6001016170f2565b5082821115610e3457825b828110156172735760126013828154811061722757fe5b600091825260208083208454600181810187559585529190932092909101805461726a949390920192909160026101009282161592909202600019011604617b93565b50600101617210565b50505050565b601354600b54808211156172c457805b828110156172c257601380548061729c57fe5b6001900381819060005260206000200160006172b89190617b2f565b9055600101617289565b505b60008183106172d357816172d5565b825b905060005b818110156173f457617392601382815481106172f257fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156173805780601f1061735557610100808354040283529160200191617380565b820191906000526020600020905b81548152906001019060200180831161736357829003601f168201915b5050505050600b8381548110615ee057fe5b6173ec57600b81815481106173a357fe5b9060005260206000209060160201600201601382815481106173c157fe5b9060005260206000200190805460018160011615610100020316600290046173ea929190617b93565b505b6001016172da565b5082821115610e3457825b82811015617273576013600b828154811061741657fe5b60009182526020808320845460018082018755958552919093206016929092029092016002908101805461745e95939094019390926000199082161561010002011604617b93565b506001016173ff565b6000818484111561748b5760405162461bcd60e51b8152600401610e1291906183b6565b505050900390565b600081836174b45760405162461bcd60e51b8152600401610e1291906183b6565b5060008385816174c057fe5b0495945050505050565b80516000906174db57506000611d17565b6020820151805160001a9060c08210156174fa57600092505050611d17565b5060019392505050565b8051600090811a608081101561751e576000915050611d17565b60b8811080617539575060c08110801590617539575060f881105b15617548576001915050611d17565b60c081101561755c5760b519019050611d17565b60f519019050611d17565b80516000908190811a60808110156175825760019150617641565b60b881101561759757607e1981019150617641565b60c08110156175e857600060b78203600186019550806020036101000a8651049150600181018201935050808310156175e25760405162461bcd60e51b8152600401610e1290618967565b50617641565b60f88110156175fd5760be1981019150617641565b600060f78203600186019550806020036101000a86510491506001810182019350508083101561763f5760405162461bcd60e51b8152600401610e1290618967565b505b5092915050565b805160009061765957506000611d17565b6000809050600061766d8460200151617504565b602085015185519181019250015b8082101561769b5761768c82617567565b8201915082600101925061767b565b50909392505050565b80516000906015146176b557600080fd5b611dc782616961565b80516060906176cc57600080fd5b60006176db8360200151617504565b83516040805191839003808352601f19601f8201168301602001909152919250606090828015617712576020820181803683370190505b50905060008160200190506163ca8487602001510182856179b5565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff19841661777257506018617796565b6fffffffffffffffffffffffffffffffff19841661779257506010617796565b5060005b60208110156177cc578181815181106177ab57fe5b01602001516001600160f81b031916156177c4576177cc565b600101617796565b60008160200390506060816040519080825280601f01601f191660200182016040528015617801576020820181803683370190505b5080830196909652508452509192915050565b6060815160011480156178465750607f60f81b8260008151811061783457fe5b01602001516001600160f81b03191611155b15617852575080611d17565b611dc76178648351608060ff166178e3565b835b6060806040519050835180825260208201818101602087015b8183101561789757805183526020928301920161787f565b50855184518101855292509050808201602086015b818310156178c45780518352602092830192016178ac565b508651929092011591909101601f01601f191660405250905092915050565b606068010000000000000000831061790d5760405162461bcd60e51b8152600401610e12906187b2565b604080516001808252818301909252606091602082018180368337019050509050603784116179675782840160f81b8160008151811061794957fe5b60200101906001600160f81b031916908160001a9053509050611dc7565b60606179728561772e565b90508381510160370160f81b8260008151811061798b57fe5b60200101906001600160f81b031916908160001a9053506179ac8282617866565b95945050505050565b806179bf57610e34565b5b602081106179df578251825260209283019290910190601f19016179c0565b915181516020939093036101000a6000190180199091169216919091179052565b60405180608001604052806000815260200160001515815260200160608152602001617a2a617c5b565b905290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10617a7057805160ff1916838001178555617a9d565b82800160010185558215617a9d579182015b82811115617a9d578251825591602001919060010190617a82565b506131ea929150617c7a565b8260138101928215617a9d5791602002820182811115617a9d578251825591602001919060010190617a82565b6040518060600160405280600060ff16815260200160608152602001606081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b50805460018160011615610100020316600290046000825580601f10617b555750611f2f565b601f016020900490600052602060002090810190611f2f9190617c7a565b6040518060400160405280617b86617c41565b8152602001600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10617bcc5780548555617a9d565b82800160010185558215617a9d57600052602060002091601f016020900482015b82811115617a9d578254825591600101919060010190617bed565b8260138101928215617a9d5791820182811115617a9d578254825591600101919060010190617bed565b50611f2f906013810190617c7a565b604051806040016040528060008152602001600081525090565b6040518061026001604052806013906020820280368337509192915050565b61318e91905b808211156131ea5760008155600101617c80565b8035611dc781618fe7565b60008083601f840112617cb0578182fd5b5081356001600160401b03811115617cc6578182fd5b6020830191508360208083028501011115615a0857600080fd5b6000601f8381840112617cf1578182fd5b8235617d04617cff82618f9c565b618f76565b818152925060208084019085810160005b84811015617d96578135880189603f820112617d3057600080fd5b838101356001600160401b03811115617d4857600080fd5b617d59818901601f19168601618f76565b81815260408c81848601011115617d6f57600080fd5b82818501888401375060009181018601919091528552509282019290820190600101617d15565b50505050505092915050565b600082601f830112617db2578081fd5b8135617dc0617cff82618f9c565b818152915060208083019084810181840286018201871015617de157600080fd5b6000805b85811015617d965782356001600160401b0381168114617e03578283fd5b85529383019391830191600101617de5565b60008083601f840112617e26578182fd5b5081356001600160401b03811115617e3c578182fd5b602083019150836020828501011115615a0857600080fd5b600060208284031215617e65578081fd5b813561116081618fe7565b600060208284031215617e81578081fd5b815161116081618fe7565b60008060008060408587031215617ea1578283fd5b84356001600160401b0380821115617eb7578485fd5b617ec388838901617c9f565b90965094506020870135915080821115617edb578384fd5b50617ee887828801617c9f565b95989497509550505050565b600080600060608486031215617f08578283fd5b83356001600160401b0380821115617f1e578485fd5b81860187601f820112617f2f578586fd5b80359250617f3f617cff84618f9c565b80848252602080830192508084018b828389028701011115617f5f57898afd5b8994505b86851015617f8957617f758c82617c94565b845260019490940193928101928101617f63565b509097508801359350505080821115617fa0578384fd5b617fac87838801617da2565b93506040860135915080821115617fc1578283fd5b50617fce86828701617ce0565b9150509250925092565b600060208284031215617fe9578081fd5b81518015158114611160578182fd5b6000806020838503121561800a578182fd5b82356001600160401b0381111561801f578283fd5b61802b85828601617e15565b90969095509350505050565b6000806000806040858703121561804c578384fd5b84356001600160401b0380821115618062578586fd5b61806e88838901617e15565b90965094506020870135915080821115618086578384fd5b50617ee887828801617e15565b6000602082840312156180a4578081fd5b5035919050565b6000602082840312156180bc578081fd5b5051919050565b600080604083850312156180d5578182fd5b505080516020909101519092909150565b6000806000604084860312156180fa578081fd5b833560ff8116811461810a578182fd5b925060208401356001600160401b03811115618124578182fd5b61813086828701617e15565b9497909650939450505050565b6000815180845260208085019450808401835b838110156181755781516001600160a01b031687529582019590820190600101618150565b509495945050505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b600081518084526181c2816020860160208601618fbb565b601f01601f19169290920160200192915050565b600082516181e8818460208701618fbb565b9190910192915050565b918252602082015260400190565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b03968716815294861660208601529290941660408401526001600160401b03166060830152911515608082015260a081019190915260c00190565b6001600160a01b0393909316835260208301919091521515604082015260600190565b6001600160a01b0392909216825260ff16602082015260400190565b600060208252611160602083018461813d565b6000604082526182d4604083018561813d565b602083820381850152818551808452828401915082838202850101838801865b8381101561832257601f198784030185526183108383516181aa565b948601949250908501906001016182f4565b50909998505050505050505050565b600060808252618344608083018761813d565b828103602084810191909152865180835287820192820190845b8181101561837a5784518352938301939183019160010161835e565b5050848103604086015261838e818861813d565b93505050506001600160401b038316606083015295945050505050565b901515815260200190565b60006020825261116060208301846181aa565b6000604082526183dd604083018688618180565b82810360208401526183f0818587618180565b979650505050505050565b6020808252601c908201527f6c656e677468206f66206275726e526174696f206d69736d6174636800000000604082015260600190565b60208082526042908201527f746865206275726e526174696f20706c75732073797374656d5265776172645260408201527f6174696f206d757374206265206e6f2067726561746572207468616e20313030606082015261030360f41b608082015260a00190565b60208082526026908201527f6c656e677468206f66206d61784e756d4f664d61696e7461696e696e67206d696040820152650e6dac2e8c6d60d31b606082015260800190565b6020808252601b908201527f6261746368207472616e736665722072657475726e2066616c73650000000000604082015260600190565b6020808252602c908201527f6c656e677468206f66206d61784e756d4f66576f726b696e6743616e6469646160408201526b0e8cae640dad2e6dac2e8c6d60a31b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61696e7461696e536c6173685363616c65206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252818101527f6c656e677468206f66206e756d4f66436162696e657473206d69736d61746368604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252601f908201527f6f6e6c7920736c617368206f72207374616b6548756220636f6e747261637400604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526028908201527f746865206e756d4f66436162696e657473206d75737420626520677265617465604082015267072207468616e20360c41b606082015260800190565b60208082526039908201527f746865206e756d4f66436162696e657473206d757374206265206c657373207460408201527f68616e204d41585f4e554d5f4f465f56414c494441544f525300000000000000606082015260800190565b60208082526029908201527f746865206e756d626572206f662076616c696461746f727320657863656564206040820152681d1a19481b1a5b5a5d60ba1b606082015260800190565b60208082526022908201527f63616e206e6f7420646f207468697320747769636520696e206f6e6520626c6f604082015261636b60f01b606082015260800190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526037908201527f746865206d61784e756d4f664d61696e7461696e696e67206d7573742062652060408201527f6c657373207468616e206e756d4f66436162696e657473000000000000000000606082015260800190565b6020808252602b908201527f6475706c696361746520636f6e73656e7375732061646472657373206f66207660408201526a185b1a59185d1bdc94d95d60aa1b606082015260800190565b60208082526027908201527f7468652065787069726554696d655365636f6e64476170206973206f7574206f604082015266662072616e676560c81b606082015260800190565b6020808252601590820152746465706f7369742076616c7565206973207a65726f60581b604082015260600190565b60208082526049908201527f746865206d61784e756d4f66576f726b696e6743616e64696461746573206d7560408201527f7374206265206e6f742067726561746572207468616e206d61784e756d4f6643606082015268616e6469646174657360b81b608082015260a00190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b60208082526023908201527f63616e206e6f7420656e7465722054656d706f72617279204d61696e74656e616040820152626e636560e81b606082015260800190565b60208082526025908201527f6c656e677468206f66206a61696c2076616c696461746f7273206d757374206260408201526465206f6e6560d81b606082015260800190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61784e756d4f6643616e64696461746573206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252601290820152716e6f7420696e206d61696e74656e616e636560701b604082015260600190565b60208082526021908201527f666565206973206c6172676572207468616e2044555354595f494e434f4d494e6040820152604760f81b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b60208082526042908201527f7468652073797374656d526577617264526174696f20706c7573206275726e5260408201527f6174696f206d757374206265206e6f2067726561746572207468616e20313030606082015261030360f41b608082015260a00190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526026908201527f6c656e677468206f662065787069726554696d655365636f6e64476170206d696040820152650e6dac2e8c6d60d31b606082015260800190565b60208082526017908201527f6f6e6c792063757272656e742076616c696461746f7273000000000000000000604082015260600190565b60208082526021908201527f6661696c656420746f20706172736520696e69742076616c696461746f7253656040820152601d60fa1b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b60208082526024908201527f6c656e677468206f662073797374656d526577617264526174696f206d69736d6040820152630c2e8c6d60e31b606082015260800190565b6020808252603e908201527f746865206d61696e7461696e536c6173685363616c65206d757374206265206760408201527f726561746572207468616e203020616e64206c657373207468616e2031300000606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b60208082526029908201527f746865206d6573736167652073656e646572206d75737420626520736c6173686040820152680818dbdb9d1c9858dd60ba1b606082015260800190565b6020808252601f908201527f746865206d73672073656e646572206d757374206265207374616b6548756200604082015260600190565b61ffff91909116815260200190565b90815260200190565b60008482528315156020830152606060408301526179ac60608301846181aa565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff85168252604060208301526179ac604083018486618180565b6040518181016001600160401b0381118282101715618f9457600080fd5b604052919050565b60006001600160401b03821115618fb1578081fd5b5060209081020190565b60005b83811015618fd6578181015183820152602001618fbe565b838111156172735750506000910152565b6001600160a01b0381168114611f2f57600080fdfe70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb20175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbbf905ec80f905e8f846942a7cdd959bfe8d9487b2a43b33565295a698f7e294b6a7edd747c0554875d3fc531d19ba1497992c5e941ff80f3f7f110ffd8920a3ac38fdef318fe94a3f86048c27395000f846946488aa4d1955ee33403f8ccb1d4de5fb97c7ade294220f003d8bdfaadf52aa1e55ae4cc485e6794875941a87e90e440a39c99aa9cb5cea0ad6a3f0b2407b86048c27395000f846949ef9f4360c606c7ab4db26b016007d3ad0ab86a0946103af86a874b705854033438383c82575f25bc29418e2db06cbff3e3c5f856410a1838649e760175786048c27395000f84694ee01c3b1283aa067c58eab4709f85e99d46de5fe94ee4b9bfb1871c64e2bcabb1dc382dc8b7c4218a29415904ab26ab0e99d70b51c220ccdcccabee6e29786048c27395000f84694685b1ded8013785d6623cc18d214320b6bb6475994a20ef4e5e4e7e36258dbf51f4d905114cb1b34bc9413e39085dc88704f4394d35209a02b1a9520320c86048c27395000f8469478f3adfc719c99674c072166708589033e2d9afe9448a30d5eaa7b64492a160f139e2da2800ec3834e94055838358c29edf4dcc1ba1985ad58aedbb6be2b86048c27395000f84694c2be4ec20253b8642161bc3f444f53679c1f3d479466f50c616d737e60d7ca6311ff0d9c434197898a94d1d678a2506eeaa365056fe565df8bc8659f28b086048c27395000f846942f7be8361c80a4c1e7e9aaf001d0877f1cfde218945f93992ac37f3e61db2ef8a587a436a161fd210b94ecbc4fb1a97861344dad0867ca3cba2b860411f086048c27395000f84694ce2fd7544e0b2cc94692d4a704debef7bcb613289444abc67b4b2fba283c582387f54c9cba7c34bafa948acc2ab395ded08bb75ce85bf0f95ad2abc51ad586048c27395000f84694b8f7166496996a7da21cf1f1b04d9b3e26a3d077946770572763289aac606e4f327c2f6cc1aa3b3e3b94882d745ed97d4422ca8da1c22ec49d880c4c097286048c27395000f846942d4c407bbe49438ed859fe965b140dcf1aab71a9943ad0939e120f33518fbba04631afe7a3ed6327b194b2bbb170ca4e499a2b0f3cc85ebfa6e8c4dfcbea86048c27395000f846946bbad7cf34b5fa511d8e963dbba288b1960e75d694853b0f6c324d1f4e76c8266942337ac1b0af1a229442498946a51ca5924552ead6fc2af08b94fcba648601d1a94a2000f846944430b3230294d12c6ab2aac5c2cd68e80b16b581947b107f4976a252a6939b771202c28e64e03f52d694795811a7f214084116949fc4f53cedbf189eeab28601d1a94a2000f84694ea0a6e3c511bbd10f4519ece37dc24887e11b55d946811ca77acfb221a49393c193f3a22db829fcc8e9464feb7c04830dd9ace164fc5c52b3f5a29e5018a8601d1a94a2000f846947ae2f5b9e386cd1b50a4550696d957cb4900f03a94e83bcc5077e6b873995c24bac871b5ad856047e19464e48d4057a90b233e026c1041e6012ada897fe88601d1a94a2000f8469482012708dafc9e1b880fd083b32182b869be8e09948e5adc73a2d233a1b496ed3115464dd6c7b887509428b383d324bc9a37f4e276190796ba5a8947f5ed8601d1a94a2000f8469422b81f8e175ffde54d797fe11eb03f9e3bf75f1d94a1c3ef7ca38d8ba80cce3bfc53ebd2903ed21658942767f7447f7b9b70313d4147b795414aecea54718601d1a94a2000f8469468bf0b8b6fb4e317a0f9d6f03eaf8ce6675bc60d94675cfe570b7902623f47e7f59c9664b5f5065dcf94d84f0d2e50bcf00f2fc476e1c57f5ca2d57f625b8601d1a94a2000f846948c4d90829ce8f72d0163c1d5cf348a862d5506309485c42a7b34309bee2ed6a235f86d16f059deec5894cc2cedc53f0fa6d376336efb67e43d167169f3b78601d1a94a2000f8469435e7a025f4da968de7e4d7e4004197917f4070f194b1182abaeeb3b4d8eba7e6a4162eac7ace23d57394c4fd0d870da52e73de2dd8ded19fe3d26f43a1138601d1a94a2000f84694d6caa02bbebaebb5d7e581e4b66559e635f805ff94c07335cf083c1c46a487f0325769d88e163b653694efaff03b42e41f953a925fc43720e45fb61a19938601d1a94a20000175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbaa164736f6c6343000604000a" - }, - "0x0000000000000000000000000000000000001001": { - "balance": "0x0", - "code": "0x608060405234801561001057600080fd5b506004361061035d5760003560e01c80637942fd05116101d3578063c80d4b8f11610104578063df8079e9116100a2578063f9a2bbc71161007c578063f9a2bbc714610601578063fc3e590814610609578063fc4333cd14610611578063fd6a6879146106195761035d565b8063df8079e9146105e9578063e1c7392a146105f1578063f1fad104146105f95761035d565b8063c96be4cb116100de578063c96be4cb146105b3578063cc844b73146105c6578063dc927faf146105d9578063dcc6f156146105e15761035d565b8063c80d4b8f14610590578063c81b166214610598578063c8509d81146105a05761035d565b8063a1a11bf511610171578063aad560631161014b578063aad5606314610565578063ab51bb961461056d578063ac0af62914610575578063ac4317511461057d5761035d565b8063a1a11bf51461054d578063a78abc1614610555578063aa82dce11461055d5761035d565b8063831d65d1116101ad578063831d65d11461052257806396713da9146105355780639dc092621461053d5780639f804f5f146105455761035d565b80637942fd051461050a5780637e434d54146105125780638256ace61461051a5761035d565b806343756e5c116102ad5780635bfb49901161024b57806370fd5bad1161022557806370fd5bad146104ea578063718a8aa8146104f257806375d47a0a146104fa5780637912a65d146105025761035d565b80635bfb4990146104c757806362b72cf5146104da5780636e47b482146104e25761035d565b806350055f901161028757806350055f90146104a757806351b4dce3146104af57806351e80672146104b7578063567a372d146104bf5761035d565b806343756e5c14610482578063493279b11461048a5780634bf6c8821461049f5761035d565b8063280870281161031a57806335aa2e44116102f457806335aa2e441461043157806337c8dab914610444578063389f4f71146104655780633dffc3871461046d5761035d565b8063280870281461040157806328aa02b1146104095780633306ccca1461041c5761035d565b80630bee7a67146103625780630e2374a5146103805780631182b8751461039557806322d1e80b146103b557806323bac5a2146103ca57806327962118146103ec575b600080fd5b61036a610621565b6040516103779190613d96565b60405180910390f35b610388610626565b6040516103779190613574565b6103a86103a33660046134aa565b61062c565b60405161037791906135ac565b6103bd610692565b60405161037791906135a1565b6103dd6103d83660046131af565b61069b565b60405161037793929190613d7e565b6103ff6103fa366004613307565b6106be565b005b610388610a13565b6103ff6104173660046131e7565b610a19565b610424610a4a565b6040516103779190613d67565b61038861043f36600461347a565b610a50565b6104576104523660046131af565b610a77565b604051610377929190613d70565b610424610ace565b610475610ad4565b6040516103779190613da7565b610388610ad9565b610492610adf565b6040516103779190613d58565b610475610ae4565b610424610ae9565b610388610aef565b610388610af5565b610424610afb565b6103ff6104d53660046131af565b610b01565b610424610c0d565b610388610c13565b610475610c19565b610475610c1e565b610388610c23565b610424610c29565b610475610c2e565b610388610c33565b610457610c39565b6103ff6105303660046134aa565b610c43565b610475610d56565b610388610d5b565b610424610d61565b610388610d67565b6103bd610d6d565b610388610d76565b610388610d7c565b61036a610d82565b610424610d87565b6103ff61058b36600461335e565b610d8c565b610424611328565b61038861132d565b6103ff6105ae3660046134aa565b611333565b6103ff6105c13660046131af565b6113a4565b6103ff6105d43660046133c7565b611815565b610388611df4565b610424611dfa565b610388611dff565b6103ff611e05565b610475611e41565b610388611e46565b610475611e4c565b6103ff611e51565b61038861229a565b606481565b61200181565b606033612000146106585760405162461bcd60e51b815260040161064f90613bfb565b60405180910390fd5b60005460ff1661067a5760405162461bcd60e51b815260040161064f906136a1565b60405162461bcd60e51b815260040161064f90613cec565b60075460ff1681565b600260208190526000918252604090912080546001820154919092015460ff1683565b60005460ff166106e05760405162461bcd60e51b815260040161064f906136a1565b6006546106ed5760146006555b6008546106fb576170806008555b81511580159061070b5750805115155b6107275760405162461bcd60e51b815260040161064f90613b59565b60408051600380825260808201909252606091816020015b606081526020019060019003908161073f57905050905061076060386122a0565b8160008151811061076d57fe5b6020026020010181905250610781836122bb565b8160018151811061078e57fe5b60200260200101819052506107a2826122bb565b816002815181106107af57fe5b602002602001018190525060606107c582612311565b60408051603480825260608281019093529293509091602082018180368337019050509050815160346020830182602086016068600019fa61080657600080fd5b506014810151603482015160405163436aa28360e11b8152600090612002906386d5450690610839908690600401613574565b60206040518083038186803b15801561085157600080fd5b505afa158015610865573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088991906131cb565b6001600160a01b031614156108b05760405162461bcd60e51b815260040161064f90613671565b43600854820110156108d45760405162461bcd60e51b815260040161064f90613612565b604051631871f7d960e31b81526120029063c38fbec8906108f9908590600401613574565b600060405180830381600087803b15801561091357600080fd5b505af1158015610927573d6000803e3d6000fd5b50506040516335409f7f60e01b815261100092506335409f7f9150610950908590600401613574565b600060405180830381600087803b15801561096a57600080fd5b505af115801561097e573d6000803e3d6000fd5b50506006546040516309a99b4f60e41b815260646110028031909302049350909150639a99b4f0906109b69033908590600401613588565b602060405180830381600087803b1580156109d057600080fd5b505af11580156109e4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a089190613492565b505050505050505050565b61200581565b3361100014610a3a5760405162461bcd60e51b815260040161064f906138e4565b610a458383836123a2565b505050565b61708081565b60018181548110610a5d57fe5b6000918252602090912001546001600160a01b0316905081565b600080610a82612f96565b5050506001600160a01b0316600090815260026020818152604092839020835160608101855281548082526001830154938201849052919093015460ff16151592909301919091529091565b60055481565b600181565b61100181565b603881565b600881565b60065481565b61200681565b61200081565b60045481565b3361100014610b225760405162461bcd60e51b815260040161064f906138e4565b60005460ff16610b445760405162461bcd60e51b815260040161064f906136a1565b61200063f7a251d7600b610b5784612580565b60006040518463ffffffff1660e01b8152600401610b7793929190613db5565b600060405180830381600087803b158015610b9157600080fd5b505af1925050508015610ba2575060015b610c0a573d808015610bd0576040519150601f19603f3d011682016040523d82523d6000602084013e610bd5565b606091505b50816001600160a01b0316600080516020613ea0833981519152600083604051610c009291906135bf565b60405180910390a2505b50565b60035481565b61100581565b600281565b601081565b61100881565b603281565b600b81565b61200381565b6004546005549091565b3361200014610c645760405162461bcd60e51b815260040161064f90613bfb565b60005460ff16610c865760405162461bcd60e51b815260040161064f906136a1565b610c8e612fb9565b6000610ccf84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061264992505050565b915091508015610d165781516040517f7f0956d47419b9525356e7111652b653b530ec6f5096dccc04589bc38e62996791610d0991613d96565b60405180910390a1610d4f565b81516040517f7d45f62d17443dd4547bca8a8112c60e2385669318dc300ec61a5d2492f262e791610d4691613d96565b60405180910390a15b5050505050565b600981565b61100781565b60085481565b61100681565b60005460ff1681565b61200281565b61300081565b600081565b600481565b60005460ff16610dae5760405162461bcd60e51b815260040161064f906136a1565b3361100714610dcf5760405162461bcd60e51b815260040161064f90613a48565b610e3a84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260148152731b5a5cd9195b59585b9bdc951a1c995cda1bdb1960621b602082015291506126c99050565b15610ed55760208114610e5f5760405162461bcd60e51b815260040161064f90613870565b604080516020601f8401819004810282018101909252828152600091610e9d9185858083850183828082843760009201919091525061272392505050565b905060018110158015610eb1575060055481105b610ecd5760405162461bcd60e51b815260040161064f90613bb6565b6004556112e5565b610f3b84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e19995b1bdb9e551a1c995cda1bdb19608a1b602082015291506126c99050565b15610fd75760208114610f605760405162461bcd60e51b815260040161064f90613a96565b604080516020601f8401819004810282018101909252828152600091610f9e9185858083850183828082843760009201919091525061272392505050565b90506103e88111158015610fb3575060045481115b610fcf5760405162461bcd60e51b815260040161064f9061375a565b6005556112e5565b61104484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601681527566656c6f6e79536c617368526577617264526174696f60501b602082015291506126c99050565b156110de57602081146110695760405162461bcd60e51b815260040161064f906139d0565b604080516020601f84018190048102820181019092528281526000916110a79185858083850183828082843760009201919091525061272392505050565b9050600a81101580156110ba5750606481105b6110d65760405162461bcd60e51b815260040161064f90613ad8565b6006556112e5565b61115284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f656e61626c654d616c6963696f7573566f7465536c6173680000000000000000602082015291506126c99050565b156111c957602081146111775760405162461bcd60e51b815260040161064f9061378f565b604080516020601f84018190048102820181019092528281526111b3919084848083850183828082843760009201919091525061272892505050565b6007805460ff19169115159190911790556112e5565b61123084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601081526f66656c6f6e79536c61736853636f706560801b602082015291506126c99050565b156112cd57602081146112555760405162461bcd60e51b815260040161064f9061395f565b604080516020601f84018190048102820181019092528281526000916112939185858083850183828082843760009201919091525061272392505050565b905061708081101580156112a95750620d2f0081105b6112c55760405162461bcd60e51b815260040161064f906136d8565b6008556112e5565b60405162461bcd60e51b815260040161064f90613c97565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a8484848460405161131a94939291906135e0565b60405180910390a150505050565b609681565b61100281565b33612000146113545760405162461bcd60e51b815260040161064f90613bfb565b60005460ff166113765760405162461bcd60e51b815260040161064f906136a1565b6040517f07db600eebe2ac176be8dcebad61858c245a4961bb32ca2aa3d159b09aa0810e90600090a1505050565b3341146113c35760405162461bcd60e51b815260040161064f90613c4a565b60005460ff166113e55760405162461bcd60e51b815260040161064f906136a1565b60035443116114065760405162461bcd60e51b815260040161064f90613d23565b3a156114245760405162461bcd60e51b815260040161064f906139a2565b60405163155853f360e21b8152611000906355614fcc90611449908490600401613574565b60206040518083038186803b15801561146157600080fd5b505afa158015611475573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149991906132eb565b6114a25761180e565b6114aa612f96565b506001600160a01b0381166000908152600260208181526040928390208351606081018552815481526001820154928101929092529091015460ff16158015928201929092529061150557602081018051600101905261155e565b60016040820181905260208201819052805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0384161790555b43815260055460208201518161157057fe5b0661173c57600060208201526040516335409f7f60e01b8152611000906335409f7f906115a1908590600401613574565b600060405180830381600087803b1580156115bb57600080fd5b505af11580156115cf573d6000803e3d6000fd5b505060405163436aa28360e11b81526000925061200291506386d54506906115fb908690600401613574565b60206040518083038186803b15801561161357600080fd5b505afa158015611627573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061164b91906131cb565b6001600160a01b03161461166e5761166982826020015160006123a2565b611737565b61200063f7a251d7600b61168185612580565b60006040518463ffffffff1660e01b81526004016116a193929190613db5565b600060405180830381600087803b1580156116bb57600080fd5b505af19250505080156116cc575060015b611737573d8080156116fa576040519150601f19603f3d011682016040523d82523d6000602084013e6116ff565b606091505b50826001600160a01b0316600080516020613ea083398151915283602001518360405161172d9291906135bf565b60405180910390a2505b6117a8565b60045481602001518161174b57fe5b066117a8576040516375abf10160e11b81526110009063eb57e20290611775908590600401613574565b600060405180830381600087803b15801561178f57600080fd5b505af11580156117a3573d6000803e3d6000fd5b505050505b6001600160a01b0382166000818152600260208181526040808420865181559186015160018301558581015191909201805460ff1916911515919091179055517fddb6012116e51abf5436d956a4f0ebd927e92c576ff96d7918290c8782291e3e9190a2505b5043600355565b60005460ff166118375760405162461bcd60e51b815260040161064f906136a1565b60075460ff166118595760405162461bcd60e51b815260040161064f9061363c565b6006546118665760146006555b600854611874576170806008555b60085481516040015143910111801561189857504360085482602001516040015101115b6118b45760405162461bcd60e51b815260040161064f90613cbe565b8060200151602001518160000151602001511480156118e25750806020015160600151816000015160600151145b156118ff5760405162461bcd60e51b815260040161064f906138b7565b80516040810151905110801561191e5750602081015160408101519051105b61193a5760405162461bcd60e51b815260040161064f90613839565b60208101515181515110801561195f5750806000015160400151816020015160400151105b8061198a575080515160208201515110801561198a5750806020015160400151816000015160400151105b806119a45750806020015160400151816000015160400151145b6119c05760405162461bcd60e51b815260040161064f90613723565b604080820151905163ea321e4960e01b81526110009163ea321e49916119e991906004016135ac565b60206040518083038186803b158015611a0157600080fd5b505afa158015611a15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3991906132eb565b611a555760405162461bcd60e51b815260040161064f90613a19565b611a6781600001518260400151612750565b8015611a805750611a8081602001518260400151612750565b611a9c5760405162461bcd60e51b815260040161064f906137da565b6060806110006001600160a01b0316633b071dcc6040518163ffffffff1660e01b815260040160006040518083038186803b158015611ada57600080fd5b505afa158015611aee573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611b169190810190613228565b9150915060005b8151811015611c5357611b47828281518110611b3557fe5b60200260200101518560400151612928565b15611c4b576006546040516309a99b4f60e41b815260646110028031909302049190639a99b4f090611b7f9033908590600401613588565b602060405180830381600087803b158015611b9957600080fd5b505af1158015611bad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bd19190613492565b506110006001600160a01b03166335409f7f858481518110611bef57fe5b60200260200101516040518263ffffffff1660e01b8152600401611c139190613574565b600060405180830381600087803b158015611c2d57600080fd5b505af1158015611c41573d6000803e3d6000fd5b5050505050611c53565b600101611b1d565b5060408084015190516317b4f35360e01b8152600091612002916317b4f35391611c7f916004016135ac565b60206040518083038186803b158015611c9757600080fd5b505afa158015611cab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ccf91906131cb565b6001600160a01b031614611d3d576040808401519051630e9fbf5160e01b815261200291630e9fbf5191611d0691906004016135ac565b600060405180830381600087803b158015611d2057600080fd5b505af1158015611d34573d6000803e3d6000fd5b50505050610a45565b6120006001600160a01b031663f7a251d7600b611d5d866040015161298c565b60006040518463ffffffff1660e01b8152600401611d7d93929190613db5565b600060405180830381600087803b158015611d9757600080fd5b505af1158015611dab573d6000803e3d6000fd5b505050506000611dc0846040015160006129c7565b60405190915081907f7b78aadacff901d8b63d0dba4f86283d4db8aef27f9ed70413dd860f1c9532b690600090a250505050565b61100381565b601481565b61200481565b60005460ff1615611e285760405162461bcd60e51b815260040161064f90613b22565b603260045560966005556000805460ff19166001179055565b601181565b61100081565b600381565b3361100014611e725760405162461bcd60e51b815260040161064f906138e4565b60005460ff16611e945760405162461bcd60e51b815260040161064f906136a1565b600154611ea057612298565b600154600090600019015b80821161226c576000805b82841015611fcf57611ec6612f96565b6002600060018781548110611ed757fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff161515908201526005549091506004900481602001511115611fb957600460055481611f4457fe5b04816020015103816020018181525050806002600060018881548110611f6657fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208351815591830151600183015591909101516002909101805460ff1916911515919091179055611fc3565b6001925050611fcf565b50836001019350611eb6565b82841161216657611fde612f96565b6002600060018681548110611fef57fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff1615159082015260055490915060049004816020015111156120d75760046005548161205c57fe5b0481602001510381602001818152505080600260006001878154811061207e57fe5b6000918252602080832091909101546001600160a01b03168352828101939093526040918201902083518155918301516001808401919091559201516002909101805460ff191691151591909117905591506121669050565b60026000600186815481106120e857fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff1916905580548061212c57fe5b600082815260209020810160001990810180546001600160a01b0319169055019055836121595750612166565b5060001990920191611fcf565b8180156121705750805b1561224f57600260006001868154811061218657fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff191690558054849081106121cd57fe5b600091825260209091200154600180546001600160a01b0390921691869081106121f357fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600180548061222c57fe5b600082815260209020810160001990810180546001600160a01b03191690550190555b8261225b57505061226c565b505060019091019060001901611eab565b6040517fcfdb3b6ccaeccbdc68be3c59c840e3b3c90f0a7c491f5fff1cf56cfda200dd9c90600090a150505b565b61100481565b60606122b36122ae836129e3565b6122bb565b90505b919050565b6060815160011480156122ed5750607f60f81b826000815181106122db57fe5b01602001516001600160f81b03191611155b156122f95750806122b6565b6122b361230b8351608060ff16612ac9565b83612b9b565b606081516000141561233257506040805160008152602081019091526122b6565b60608260008151811061234157fe5b602002602001015190506000600190505b8351811015612382576123788285838151811061236b57fe5b6020026020010151612b9b565b9150600101612352565b5061239b612395825160c060ff16612ac9565b82612b9b565b9392505050565b80156123cd576040516375cc7d8960e01b8152612002906375cc7d8990611d06908690600401613574565b6040516375cc7d8960e01b8152612002906375cc7d89906123f2908690600401613574565b600060405180830381600087803b15801561240c57600080fd5b505af192505050801561241d575060015b610a45576040516000815260443d1015612439575060006124d6565b60046000803e60005160e01c6308c379a0811461245a5760009150506124d6565b60043d036004833e81513d602482011167ffffffffffffffff82111715612486576000925050506124d6565b808301805167ffffffffffffffff8111156124a85760009450505050506124d6565b8060208301013d86018111156124c6576000955050505050506124d6565b601f01601f191660405250925050505b806124e15750612518565b836001600160a01b0316600080516020613ea0833981519152848360405161250a9291906135bf565b60405180910390a25061257b565b3d808015612542576040519150601f19603f3d011682016040523d82523d6000602084013e612547565b606091505b50836001600160a01b0316600080516020613ea083398151915284836040516125719291906135bf565b60405180910390a2505b610a45565b60408051600480825260a08201909252606091829190816020015b606081526020019060019003908161259b5790505090506125c4836001600160a01b0316612c18565b816000815181106125d157fe5b60200260200101819052506125e5436122a0565b816001815181106125f257fe5b602090810291909101015261260760386122a0565b8160028151811061261457fe5b6020026020010181905250612628426122a0565b8160038151811061263557fe5b602002602001018190525061239b81612311565b612651612fb9565b600061265b612fb9565b612663612fcb565b61267461266f86612c3b565b612c60565b90506000805b61268383612caa565b156126bc57806126af5761269e61269984612ccb565b612d19565b63ffffffff168452600191506126b4565b6126bc565b60010161267a565b5091935090915050915091565b6000816040516020016126dc9190613558565b60405160208183030381529060405280519060200120836040516020016127039190613558565b604051602081830303815290604052805190602001201490505b92915050565b015190565b8082015160009060ff811615612742576001915081612748565b60009150815b505092915050565b60408051600480825260a0820190925260009160609190816020015b606081526020019060019003908161276c5750506040805160208082528183019092529192506060919080820181803683370190505090506127b185600001516122a0565b826000815181106127be57fe5b60200260200101819052506127d96020866020015183612d9b565b6127e2816122bb565b826001815181106127ef57fe5b602002602001018190525061280785604001516122a0565b8260028151811061281457fe5b602002602001018190525061282f6020866060015183612d9b565b612838816122bb565b8260038151811061284557fe5b602002602001018190525061286b602061285e84612311565b8051906020012083612d9b565b6040805160b080825260e0820190925260609160208201818036833701905050905061289b818360006020612dab565b6128ad81876080015160206060612dab565b6128bb818660806030612dab565b604080516001808252818301909252606091602082018180368337019050509050815160016020830182602086016066600019fa6128f857600080fd5b506001612906826000612dfe565b60ff161461291b57600094505050505061271d565b5060019695505050505050565b8151815160009160019181148083146129445760009250612982565b600160208701838101602088015b60028483851001141561297d5780518351146129715760009650600093505b60209283019201612952565b505050505b5090949350505050565b60408051600480825260a08201909252606091829190816020015b60608152602001906001900390816129a75790505090506125c4836122bb565b600081602001835110156129da57600080fd5b50016020015190565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416612a2757506018612a4b565b6fffffffffffffffffffffffffffffffff198416612a4757506010612a4b565b5060005b6020811015612a8157818181518110612a6057fe5b01602001516001600160f81b03191615612a7957612a81565b600101612a4b565b60008160200390506060816040519080825280601f01601f191660200182016040528015612ab6576020820181803683370190505b5080830196909652508452509192915050565b6060680100000000000000008310612af35760405162461bcd60e51b815260040161064f90613811565b60408051600180825281830190925260609160208201818036833701905050905060378411612b4d5782840160f81b81600081518110612b2f57fe5b60200101906001600160f81b031916908160001a905350905061271d565b6060612b58856129e3565b90508381510160370160f81b82600081518110612b7157fe5b60200101906001600160f81b031916908160001a905350612b928282612b9b565b95945050505050565b6060806040519050835180825260208201818101602087015b81831015612bcc578051835260209283019201612bb4565b50855184518101855292509050808201602086015b81831015612bf9578051835260209283019201612be1565b508651929092011591909101601f01601f191660405250905092915050565b60408051600560a21b831860148201526034810190915260609061239b816122bb565b612c43612feb565b506040805180820190915281518152602082810190820152919050565b612c68612fcb565b612c7182612e1a565b612c7a57600080fd5b6000612c898360200151612e54565b60208085015160408051808201909152868152920190820152915050919050565b6000612cb4612feb565b505080518051602091820151919092015191011190565b612cd3612feb565b612cdc82612caa565b612ce557600080fd5b60208201516000612cf582612eb7565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590612d2e57508151602110155b612d3757600080fd5b6000612d468360200151612e54565b90508083600001511015612d6c5760405162461bcd60e51b815260040161064f90613b7f565b825160208085015183018051928490039291831015612d9257826020036101000a820491505b50949350505050565b9091018181526020918201910152565b60005b81811015610d4f57838181518110612dc257fe5b602001015160f81c60f81b858480600101955081518110612ddf57fe5b60200101906001600160f81b031916908160001a905350600101612dae565b60008160010183511015612e1157600080fd5b50016001015190565b8051600090612e2b575060006122b6565b6020820151805160001a9060c0821015612e4a576000925050506122b6565b5060019392505050565b8051600090811a6080811015612e6e5760009150506122b6565b60b8811080612e89575060c08110801590612e89575060f881105b15612e985760019150506122b6565b60c0811015612eac5760b5190190506122b6565b60f5190190506122b6565b80516000908190811a6080811015612ed25760019150612f8f565b60b8811015612ee757607e1981019150612f8f565b60c0811015612f3857600060b78203600186019550806020036101000a865104915060018101820193505080831015612f325760405162461bcd60e51b815260040161064f90613934565b50612f8f565b60f8811015612f4d5760be1981019150612f8f565b600060f78203600186019550806020036101000a8651049150600181018201935050808310156127485760405162461bcd60e51b815260040161064f90613934565b5092915050565b604051806060016040528060008152602001600081526020016000151581525090565b60408051602081019091526000815290565b6040518060400160405280612fde612feb565b8152602001600081525090565b604051806040016040528060008152602001600081525090565b600082601f830112613015578081fd5b815161302861302382613e08565b613de1565b818152915060208083019084810160005b8481101561309e578151870188603f82011261305457600080fd5b8381015161306461302382613e28565b81815260408b8184860101111561307a57600080fd5b61308983888401838701613e4c565b50865250509282019290820190600101613039565b505050505092915050565b60008083601f8401126130ba578182fd5b50813567ffffffffffffffff8111156130d1578182fd5b6020830191508360208285010111156130e957600080fd5b9250929050565b600082601f830112613100578081fd5b813561310e61302382613e28565b915080825283602082850101111561312557600080fd5b8060208401602084013760009082016020015292915050565b600060a0828403121561314f578081fd5b61315960a0613de1565b905081358152602082013560208201526040820135604082015260608201356060820152608082013567ffffffffffffffff81111561319757600080fd5b6131a3848285016130f0565b60808301525092915050565b6000602082840312156131c0578081fd5b813561239b81613e7c565b6000602082840312156131dc578081fd5b815161239b81613e7c565b6000806000606084860312156131fb578182fd5b833561320681613e7c565b925060208401359150604084013561321d81613e91565b809150509250925092565b6000806040838503121561323a578182fd5b825167ffffffffffffffff80821115613251578384fd5b81850186601f820112613262578485fd5b8051925061327261302384613e08565b80848252602080830192508084018a828389028701011115613292578889fd5b8894505b868510156132bd5780516132a981613e7c565b845260019490940193928101928101613296565b5088015190965093505050808211156132d4578283fd5b506132e185828601613005565b9150509250929050565b6000602082840312156132fc578081fd5b815161239b81613e91565b60008060408385031215613319578182fd5b823567ffffffffffffffff80821115613330578384fd5b61333c868387016130f0565b93506020850135915080821115613351578283fd5b506132e1858286016130f0565b60008060008060408587031215613373578182fd5b843567ffffffffffffffff8082111561338a578384fd5b613396888389016130a9565b909650945060208701359150808211156133ae578384fd5b506133bb878288016130a9565b95989497509550505050565b6000602082840312156133d8578081fd5b813567ffffffffffffffff808211156133ef578283fd5b81840160608187031215613401578384fd5b61340b6060613de1565b925080358281111561341b578485fd5b6134278782840161313e565b84525060208101358281111561343b578485fd5b6134478782840161313e565b60208501525060408101358281111561345e578485fd5b61346a878284016130f0565b6040850152509195945050505050565b60006020828403121561348b578081fd5b5035919050565b6000602082840312156134a3578081fd5b5051919050565b6000806000604084860312156134be578081fd5b833560ff811681146134ce578182fd5b9250602084013567ffffffffffffffff8111156134e9578182fd5b6134f5868287016130a9565b9497909650939450505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008151808452613544816020860160208601613e4c565b601f01601f19169290920160200192915050565b6000825161356a818460208701613e4c565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b60006020825261239b602083018461352c565b6000838252604060208301526135d8604083018461352c565b949350505050565b6000604082526135f4604083018688613502565b8281036020840152613607818587613502565b979650505050505050565b60208082526010908201526f195d9a59195b98d9481d1bdbc81bdb1960821b604082015260600190565b6020808252818101527f6d616c6963696f757320766f746520736c617368206e6f7420656e61626c6564604082015260600190565b6020808252601690820152751d985b1a59185d1bdc881b9bdd081b5a59dc985d195960521b604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252602b908201527f746865206d616c6963696f757320766f746520736c6173682073636f7065206f60408201526a7574206f662072616e676560a81b606082015260800190565b6020808252601a908201527f6e6f2076696f6c6174696f6e206f6620766f74652072756c6573000000000000604082015260600190565b6020808252818101527f7468652066656c6f6e795468726573686f6c64206f7574206f662072616e6765604082015260600190565b6020808252602b908201527f6c656e677468206f6620656e61626c654d616c6963696f7573566f7465536c6160408201526a0e6d040dad2e6dac2e8c6d60ab1b606082015260800190565b60208082526017908201527f766572696679207369676e6174757265206661696c6564000000000000000000604082015260600190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526019908201527f7372634e756d20626967676572207468616e207461724e756d00000000000000604082015260600190565b60208082526027908201527f6c656e677468206f66206d697364656d65616e6f725468726573686f6c64206d6040820152660d2e6dac2e8c6d60cb1b606082015260800190565b60208082526013908201527274776f206964656e746963616c20766f74657360681b604082015260600190565b60208082526030908201527f746865206d6573736167652073656e646572206d7573742062652076616c696460408201526f185d1bdc94d95d0818dbdb9d1c9858dd60821b606082015260800190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b60208082526023908201527f6c656e677468206f662066656c6f6e79536c61736853636f7065206d69736d616040820152620e8c6d60eb1b606082015260800190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b60208082526029908201527f6c656e677468206f662066656c6f6e79536c617368526577617264526174696f604082015268040dad2e6dac2e8c6d60bb1b606082015260800190565b6020808252601590820152741d9bdd195059191c881a5cc81b9bdd08199bdd5b99605a1b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526022908201527f6c656e677468206f662066656c6f6e795468726573686f6c64206d69736d61746040820152610c6d60f31b606082015260800190565b6020808252602a908201527f7468652066656c6f6e7920736c6173682072657761726420726174696f206f7560408201526974206f662072616e676560b01b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b6020808252600c908201526b32b6b83a3c903432b0b232b960a11b604082015260600190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526025908201527f746865206d697364656d65616e6f725468726573686f6c64206f7574206f662060408201526472616e676560d81b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b6020808252601490820152731d185c99d95d08189b1bd8dac81d1bdbc81bdb1960621b604082015260600190565b6020808252601e908201527f7265636569766520756e65787065637465642073796e207061636b6167650000604082015260600190565b6020808252818101527f63616e206e6f7420736c61736820747769636520696e206f6e6520626c6f636b604082015260600190565b61ffff91909116815260200190565b90815260200190565b918252602082015260400190565b92835260208301919091521515604082015260600190565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff8516825260606020830152613dd1606083018561352c565b9050826040830152949350505050565b60405181810167ffffffffffffffff81118282101715613e0057600080fd5b604052919050565b600067ffffffffffffffff821115613e1e578081fd5b5060209081020190565b600067ffffffffffffffff821115613e3e578081fd5b50601f01601f191660200190565b60005b83811015613e67578181015183820152602001613e4f565b83811115613e76576000848401525b50505050565b6001600160a01b0381168114610c0a57600080fd5b8015158114610c0a57600080fdfed7bc86ff5d08c8ab043edec743302aba2520e6635172a428bc956721db9e2d1ca164736f6c6343000604000a" - } } } } From 58e62fe7ccbd0f7c72dd2f555e3334582554eb57 Mon Sep 17 00:00:00 2001 From: blxdyx <125243069+blxdyx@users.noreply.github.com> Date: Wed, 10 Jul 2024 14:41:41 +0800 Subject: [PATCH 12/22] bump version (#429) --- params/version.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/params/version.go b/params/version.go index 4ff2a4c0e34..c5dbdc1b4ef 100644 --- a/params/version.go +++ b/params/version.go @@ -33,7 +33,7 @@ var ( const ( VersionMajor = 1 // Major version component of the current release VersionMinor = 2 // Minor version component of the current release - VersionMicro = 11 // Patch version component of the current release + VersionMicro = 12 // Patch version component of the current release VersionModifier = "dev" // Modifier component of the current release VersionKeyCreated = "ErigonVersionCreated" VersionKeyFinished = "ErigonVersionFinished" From d35a878600ccf315156a4192c380aa1936c3e553 Mon Sep 17 00:00:00 2001 From: blxdyx <125243069+blxdyx@users.noreply.github.com> Date: Thu, 11 Jul 2024 16:48:21 +0800 Subject: [PATCH 13/22] add a mark for latest block (#432) --- core/data_availability.go | 4 ++-- eth/stagedsync/stage_bodies.go | 2 +- p2p/sentry/sentry_multi_client/sentry_multi_client.go | 3 +++ turbo/stages/bodydownload/body_data_struct.go | 1 + 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/core/data_availability.go b/core/data_availability.go index dd0c04a548c..99e50307f2e 100644 --- a/core/data_availability.go +++ b/core/data_availability.go @@ -10,7 +10,7 @@ import ( ) // IsDataAvailable it checks that the blobTx block has available blob data -func IsDataAvailable(chain consensus.ChainHeaderReader, header *types.Header, body *types.RawBody) (err error) { +func IsDataAvailable(chain consensus.ChainHeaderReader, header *types.Header, body *types.RawBody, latest uint64) (err error) { if !chain.Config().IsCancun(header.Number.Uint64(), header.Time) { if body.Sidecars != nil { return errors.New("sidecars present in block body before cancun") @@ -19,7 +19,7 @@ func IsDataAvailable(chain consensus.ChainHeaderReader, header *types.Header, bo } current := chain.CurrentHeader() - if header.Number.Uint64()+params.MinBlocksForBlobRequests < current.Number.Uint64() { + if header.Number.Uint64()+params.MinBlocksForBlobRequests < max(current.Number.Uint64(), latest) { // if we needn't check DA of this block, just clean it body.CleanSidecars() return nil diff --git a/eth/stagedsync/stage_bodies.go b/eth/stagedsync/stage_bodies.go index 95cc0b8ca62..4c0104465db 100644 --- a/eth/stagedsync/stage_bodies.go +++ b/eth/stagedsync/stage_bodies.go @@ -244,7 +244,7 @@ func BodiesForward( metrics.UpdateBlockConsumerBodyDownloadDelay(header.Time, header.Number.Uint64(), logger) if cfg.chanConfig.Parlia != nil && cfg.chanConfig.IsCancun(headerNumber, header.Time) { - if err = core.IsDataAvailable(cr, header, rawBody); err != nil { + if err = core.IsDataAvailable(cr, header, rawBody, cfg.bd.LatestBlock); err != nil { return false, err } } diff --git a/p2p/sentry/sentry_multi_client/sentry_multi_client.go b/p2p/sentry/sentry_multi_client/sentry_multi_client.go index 9d58b4bfd46..6bfd8e40b2e 100644 --- a/p2p/sentry/sentry_multi_client/sentry_multi_client.go +++ b/p2p/sentry/sentry_multi_client/sentry_multi_client.go @@ -575,6 +575,9 @@ func (cs *MultiClient) newBlock66(ctx context.Context, inreq *proto_sentry.Inbou return fmt.Errorf("singleHeaderAsSegment failed: %w", err) } cs.Bd.AddToPrefetch(request.Block.Header(), request.Block.RawBody()) + if cs.Bd.LatestBlock < request.Block.NumberU64() { + cs.Bd.LatestBlock = request.Block.NumberU64() + } outreq := proto_sentry.PeerMinBlockRequest{ PeerId: inreq.PeerId, MinBlock: request.Block.NumberU64(), diff --git a/turbo/stages/bodydownload/body_data_struct.go b/turbo/stages/bodydownload/body_data_struct.go index c49e7c835d2..2e270ffcb2a 100644 --- a/turbo/stages/bodydownload/body_data_struct.go +++ b/turbo/stages/bodydownload/body_data_struct.go @@ -53,6 +53,7 @@ type BodyDownload struct { bodyCacheLimit int // Limit of body Cache size blockBufferSize int br services.FullBlockReader + LatestBlock uint64 logger log.Logger } From 52d8a218cf3929020c073eab39cca665a3ceef81 Mon Sep 17 00:00:00 2001 From: blxdyx <125243069+blxdyx@users.noreply.github.com> Date: Fri, 12 Jul 2024 14:41:35 +0800 Subject: [PATCH 14/22] update snapshots (#434) --- erigon-lib/go.mod | 2 +- erigon-lib/go.sum | 4 ++-- go.mod | 2 +- go.sum | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/erigon-lib/go.mod b/erigon-lib/go.mod index 46d403c0957..6a38d3bc613 100644 --- a/erigon-lib/go.mod +++ b/erigon-lib/go.mod @@ -144,6 +144,6 @@ require ( zombiezen.com/go/sqlite v0.13.1 // indirect ) -replace github.com/ledgerwatch/erigon-snapshot => github.com/node-real/bsc-erigon-snapshot v1.0.1-0.20240521025755-e1faf8fbdbbf +replace github.com/ledgerwatch/erigon-snapshot => github.com/node-real/bsc-erigon-snapshot v1.0.1-0.20240709051627-c65dc1113d0d replace github.com/anacrolix/torrent => github.com/erigontech/torrent v1.54.2-alpha-8 diff --git a/erigon-lib/go.sum b/erigon-lib/go.sum index eab01d37028..7d2245caec3 100644 --- a/erigon-lib/go.sum +++ b/erigon-lib/go.sum @@ -295,8 +295,8 @@ github.com/mschoch/smat v0.2.0/go.mod h1:kc9mz7DoBKqDyiRL7VZN8KvXQMWeTaVnttLRXOl github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/ncruces/go-strftime v0.1.9 h1:bY0MQC28UADQmHmaF5dgpLmImcShSi2kHU9XLdhx/f4= github.com/ncruces/go-strftime v0.1.9/go.mod h1:Fwc5htZGVVkseilnfgOVb9mKy6w1naJmn9CehxcKcls= -github.com/node-real/bsc-erigon-snapshot v1.0.1-0.20240521025755-e1faf8fbdbbf h1:Zl7E4z+q+piNYgDUIDXsM9jg+4tXqWqVRrMoI/9cw1Q= -github.com/node-real/bsc-erigon-snapshot v1.0.1-0.20240521025755-e1faf8fbdbbf/go.mod h1:3AuPxZc85jkehh/HA9h8gabv5MSi3kb/ddtzBsTVJFo= +github.com/node-real/bsc-erigon-snapshot v1.0.1-0.20240709051627-c65dc1113d0d h1:OUml2EGfelzdoUKBIcUoMyyuRC5ULCdFuq5jvreIwtQ= +github.com/node-real/bsc-erigon-snapshot v1.0.1-0.20240709051627-c65dc1113d0d/go.mod h1:3AuPxZc85jkehh/HA9h8gabv5MSi3kb/ddtzBsTVJFo= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= diff --git a/go.mod b/go.mod index fdf73895022..52bdb4ac613 100644 --- a/go.mod +++ b/go.mod @@ -320,6 +320,6 @@ replace ( github.com/anacrolix/torrent => github.com/erigontech/torrent v1.54.2-alpha-8 github.com/cometbft/cometbft => github.com/bnb-chain/greenfield-tendermint v0.0.0-20230417032003-4cda1f296fb2 github.com/gballet/go-verkle => github.com/gballet/go-verkle v0.0.0-20221121182333-31427a1f2d35 - github.com/ledgerwatch/erigon-snapshot => github.com/node-real/bsc-erigon-snapshot v1.0.1-0.20240521025755-e1faf8fbdbbf + github.com/ledgerwatch/erigon-snapshot => github.com/node-real/bsc-erigon-snapshot v1.0.1-0.20240709051627-c65dc1113d0d github.com/tendermint/tendermint => github.com/bnb-chain/tendermint v0.31.16 ) diff --git a/go.sum b/go.sum index dbd9cc68b81..9da00b03cee 100644 --- a/go.sum +++ b/go.sum @@ -1272,8 +1272,8 @@ github.com/ncruces/go-strftime v0.1.9 h1:bY0MQC28UADQmHmaF5dgpLmImcShSi2kHU9XLdh github.com/ncruces/go-strftime v0.1.9/go.mod h1:Fwc5htZGVVkseilnfgOVb9mKy6w1naJmn9CehxcKcls= github.com/neelance/astrewrite v0.0.0-20160511093645-99348263ae86/go.mod h1:kHJEU3ofeGjhHklVoIGuVj85JJwZ6kWPaJwCIxgnFmo= github.com/neelance/sourcemap v0.0.0-20151028013722-8c68805598ab/go.mod h1:Qr6/a/Q4r9LP1IltGz7tA7iOK1WonHEYhu1HRBA7ZiM= -github.com/node-real/bsc-erigon-snapshot v1.0.1-0.20240521025755-e1faf8fbdbbf h1:Zl7E4z+q+piNYgDUIDXsM9jg+4tXqWqVRrMoI/9cw1Q= -github.com/node-real/bsc-erigon-snapshot v1.0.1-0.20240521025755-e1faf8fbdbbf/go.mod h1:3AuPxZc85jkehh/HA9h8gabv5MSi3kb/ddtzBsTVJFo= +github.com/node-real/bsc-erigon-snapshot v1.0.1-0.20240709051627-c65dc1113d0d h1:OUml2EGfelzdoUKBIcUoMyyuRC5ULCdFuq5jvreIwtQ= +github.com/node-real/bsc-erigon-snapshot v1.0.1-0.20240709051627-c65dc1113d0d/go.mod h1:3AuPxZc85jkehh/HA9h8gabv5MSi3kb/ddtzBsTVJFo= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= github.com/nxadm/tail v1.4.9-0.20211216163028-4472660a31a6 h1:iZ5rEHU561k2tdi/atkIsrP5/3AX3BjyhYtC96nJ260= From 314c9d0d0d0f555c522a9779a953bd880913a673 Mon Sep 17 00:00:00 2001 From: blxdyx <125243069+blxdyx@users.noreply.github.com> Date: Fri, 12 Jul 2024 19:58:45 +0800 Subject: [PATCH 15/22] update logs (#438) --- consensus/parlia/parlia.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/consensus/parlia/parlia.go b/consensus/parlia/parlia.go index 018120a6e7c..e9adc8e27e7 100644 --- a/consensus/parlia/parlia.go +++ b/consensus/parlia/parlia.go @@ -399,7 +399,7 @@ func (p *Parlia) getParent(chain consensus.ChainHeaderReader, header *types.Head } if parent == nil || parent.Number.Uint64() != number-1 || parent.Hash() != header.ParentHash { - return nil, consensus.ErrUnknownAncestor + return nil, fmt.Errorf("number = %v, hash = %v, err = %v", number-1, header.ParentHash, consensus.ErrUnknownAncestor) } return parent, nil } @@ -776,7 +776,7 @@ func (p *Parlia) snapshot(chain consensus.ChainHeaderReader, number uint64, hash // If we have explicit parents, pick from there (enforced) header = parents[len(parents)-1] if header.Hash() != hash || header.Number.Uint64() != number { - return nil, consensus.ErrUnknownAncestor + return nil, fmt.Errorf("header = %v, hash = %v, err = %v", header.Number.Uint64(), header.Hash(), consensus.ErrUnknownAncestor) } parents = parents[:len(parents)-1] } else { @@ -786,7 +786,7 @@ func (p *Parlia) snapshot(chain consensus.ChainHeaderReader, number uint64, hash } header = chain.GetHeader(hash, number) if header == nil { - return nil, consensus.ErrUnknownAncestor + return nil, fmt.Errorf("header = %v, hash = %v, err = %v", number, hash, consensus.ErrUnknownAncestor) } } headers = append(headers, header) @@ -842,7 +842,7 @@ func (p *Parlia) Prepare(chain consensus.ChainHeaderReader, header *types.Header parent := chain.GetHeader(header.ParentHash, number-1) if parent == nil { - return consensus.ErrUnknownAncestor + return fmt.Errorf("Number = %v, hash = %v, err = %v", number-1, header.ParentHash, consensus.ErrUnknownAncestor) } // Set the correct difficulty From 9318cef026e3707aa9a2f97a056f1f53af480084 Mon Sep 17 00:00:00 2001 From: blxdyx <125243069+blxdyx@users.noreply.github.com> Date: Sat, 13 Jul 2024 09:12:18 +0800 Subject: [PATCH 16/22] add webseed (#439) --- erigon-lib/go.mod | 2 +- erigon-lib/go.sum | 4 ++-- go.mod | 2 +- go.sum | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/erigon-lib/go.mod b/erigon-lib/go.mod index 6a38d3bc613..80bdafe0f42 100644 --- a/erigon-lib/go.mod +++ b/erigon-lib/go.mod @@ -144,6 +144,6 @@ require ( zombiezen.com/go/sqlite v0.13.1 // indirect ) -replace github.com/ledgerwatch/erigon-snapshot => github.com/node-real/bsc-erigon-snapshot v1.0.1-0.20240709051627-c65dc1113d0d +replace github.com/ledgerwatch/erigon-snapshot => github.com/node-real/bsc-erigon-snapshot v1.0.1-0.20240712171019-175208b917f9 replace github.com/anacrolix/torrent => github.com/erigontech/torrent v1.54.2-alpha-8 diff --git a/erigon-lib/go.sum b/erigon-lib/go.sum index 7d2245caec3..cda1a1c1611 100644 --- a/erigon-lib/go.sum +++ b/erigon-lib/go.sum @@ -295,8 +295,8 @@ github.com/mschoch/smat v0.2.0/go.mod h1:kc9mz7DoBKqDyiRL7VZN8KvXQMWeTaVnttLRXOl github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/ncruces/go-strftime v0.1.9 h1:bY0MQC28UADQmHmaF5dgpLmImcShSi2kHU9XLdhx/f4= github.com/ncruces/go-strftime v0.1.9/go.mod h1:Fwc5htZGVVkseilnfgOVb9mKy6w1naJmn9CehxcKcls= -github.com/node-real/bsc-erigon-snapshot v1.0.1-0.20240709051627-c65dc1113d0d h1:OUml2EGfelzdoUKBIcUoMyyuRC5ULCdFuq5jvreIwtQ= -github.com/node-real/bsc-erigon-snapshot v1.0.1-0.20240709051627-c65dc1113d0d/go.mod h1:3AuPxZc85jkehh/HA9h8gabv5MSi3kb/ddtzBsTVJFo= +github.com/node-real/bsc-erigon-snapshot v1.0.1-0.20240712171019-175208b917f9 h1:A9ogc/J6uwgpyyFXPhM1YiZMro3ph3HaLFR4lwiv0YU= +github.com/node-real/bsc-erigon-snapshot v1.0.1-0.20240712171019-175208b917f9/go.mod h1:3AuPxZc85jkehh/HA9h8gabv5MSi3kb/ddtzBsTVJFo= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= diff --git a/go.mod b/go.mod index 52bdb4ac613..66a8dfd3946 100644 --- a/go.mod +++ b/go.mod @@ -320,6 +320,6 @@ replace ( github.com/anacrolix/torrent => github.com/erigontech/torrent v1.54.2-alpha-8 github.com/cometbft/cometbft => github.com/bnb-chain/greenfield-tendermint v0.0.0-20230417032003-4cda1f296fb2 github.com/gballet/go-verkle => github.com/gballet/go-verkle v0.0.0-20221121182333-31427a1f2d35 - github.com/ledgerwatch/erigon-snapshot => github.com/node-real/bsc-erigon-snapshot v1.0.1-0.20240709051627-c65dc1113d0d + github.com/ledgerwatch/erigon-snapshot => github.com/node-real/bsc-erigon-snapshot v1.0.1-0.20240712171019-175208b917f9 github.com/tendermint/tendermint => github.com/bnb-chain/tendermint v0.31.16 ) diff --git a/go.sum b/go.sum index 9da00b03cee..9458a1e6677 100644 --- a/go.sum +++ b/go.sum @@ -1272,8 +1272,8 @@ github.com/ncruces/go-strftime v0.1.9 h1:bY0MQC28UADQmHmaF5dgpLmImcShSi2kHU9XLdh github.com/ncruces/go-strftime v0.1.9/go.mod h1:Fwc5htZGVVkseilnfgOVb9mKy6w1naJmn9CehxcKcls= github.com/neelance/astrewrite v0.0.0-20160511093645-99348263ae86/go.mod h1:kHJEU3ofeGjhHklVoIGuVj85JJwZ6kWPaJwCIxgnFmo= github.com/neelance/sourcemap v0.0.0-20151028013722-8c68805598ab/go.mod h1:Qr6/a/Q4r9LP1IltGz7tA7iOK1WonHEYhu1HRBA7ZiM= -github.com/node-real/bsc-erigon-snapshot v1.0.1-0.20240709051627-c65dc1113d0d h1:OUml2EGfelzdoUKBIcUoMyyuRC5ULCdFuq5jvreIwtQ= -github.com/node-real/bsc-erigon-snapshot v1.0.1-0.20240709051627-c65dc1113d0d/go.mod h1:3AuPxZc85jkehh/HA9h8gabv5MSi3kb/ddtzBsTVJFo= +github.com/node-real/bsc-erigon-snapshot v1.0.1-0.20240712171019-175208b917f9 h1:A9ogc/J6uwgpyyFXPhM1YiZMro3ph3HaLFR4lwiv0YU= +github.com/node-real/bsc-erigon-snapshot v1.0.1-0.20240712171019-175208b917f9/go.mod h1:3AuPxZc85jkehh/HA9h8gabv5MSi3kb/ddtzBsTVJFo= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= github.com/nxadm/tail v1.4.9-0.20211216163028-4472660a31a6 h1:iZ5rEHU561k2tdi/atkIsrP5/3AX3BjyhYtC96nJ260= From 4503c5d9ba3d43419c22ffe0cf9815fd4e1cb75e Mon Sep 17 00:00:00 2001 From: Matus Kysel Date: Wed, 17 Jul 2024 13:04:31 +0200 Subject: [PATCH 17/22] [systemContract] fix ordering of applying of the contracts --- core/system_contract_lookup.go | 21 +++++++++++---------- core/systemcontracts/upgrade.go | 5 +++-- erigon-lib/chain/chain_config.go | 22 ++++++++++++++++++++++ 3 files changed, 36 insertions(+), 12 deletions(-) diff --git a/core/system_contract_lookup.go b/core/system_contract_lookup.go index 8f3468a572d..8d0487d539b 100644 --- a/core/system_contract_lookup.go +++ b/core/system_contract_lookup.go @@ -2,9 +2,9 @@ package core import ( "fmt" + "github.com/ledgerwatch/erigon-lib/chain/networkname" libcommon "github.com/ledgerwatch/erigon-lib/common" - "strconv" "github.com/ledgerwatch/erigon/core/systemcontracts" "github.com/ledgerwatch/erigon/core/types" @@ -25,20 +25,21 @@ func init() { if parliaConfig == nil || parliaConfig.BlockAlloc == nil { return } - for blockNumOrTime, genesisAlloc := range parliaConfig.BlockAlloc { - numOrTime, err := strconv.ParseUint(blockNumOrTime, 10, 64) - if err != nil { - panic(fmt.Errorf("failed to parse block number in BlockAlloc: %s", err.Error())) - } - alloc, err := types.DecodeGenesisAlloc(genesisAlloc) + blockAlloc, err := parliaConfig.SortedBlockAlloc() + if err != nil { + panic(fmt.Errorf("failed to sort block alloc: %v", err)) + } + + for _, pair := range blockAlloc { + alloc, err := types.DecodeGenesisAlloc(pair.BlockAlloc) if err != nil { panic(fmt.Errorf("failed to decode block alloc: %v", err)) } var blockNum, blockTime uint64 - if numOrTime >= chainConfig.ShanghaiTime.Uint64() { - blockTime = numOrTime + if pair.NumOrTime >= chainConfig.ShanghaiTime.Uint64() { + blockTime = pair.NumOrTime } else { - blockNum = numOrTime + blockNum = pair.NumOrTime } allocToCodeRecords(alloc, byChain, blockNum, blockTime) } diff --git a/core/systemcontracts/upgrade.go b/core/systemcontracts/upgrade.go index 0e352fc4298..ed5216c33c7 100644 --- a/core/systemcontracts/upgrade.go +++ b/core/systemcontracts/upgrade.go @@ -2,13 +2,14 @@ package systemcontracts import ( "fmt" + "math/big" + "strconv" + "github.com/ledgerwatch/erigon-lib/chain" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon/core/state" "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/log/v3" - "math/big" - "strconv" ) type UpgradeConfig struct { diff --git a/erigon-lib/chain/chain_config.go b/erigon-lib/chain/chain_config.go index 234c6978bb1..73610ec8b65 100644 --- a/erigon-lib/chain/chain_config.go +++ b/erigon-lib/chain/chain_config.go @@ -20,6 +20,7 @@ import ( "encoding/json" "fmt" "math/big" + "sort" "strconv" "github.com/ledgerwatch/erigon-lib/common" @@ -710,6 +711,27 @@ type ParliaConfig struct { BlockAlloc map[string]interface{} `json:"blockAlloc"` // For systemContract upgrade } +type KeyValues struct { + NumOrTime uint64 + BlockAlloc interface{} +} + +func (b *ParliaConfig) SortedBlockAlloc() ([]KeyValues, error) { + ret := make([]KeyValues, 0, len(b.BlockAlloc)) + for blockNumberOrTime, genesisAlloc := range b.BlockAlloc { + numOrTime, err := strconv.ParseUint(blockNumberOrTime, 10, 64) + if err != nil { + return nil, err + } + ret = append(ret, KeyValues{NumOrTime: numOrTime, BlockAlloc: genesisAlloc}) + } + // sort ret by keys in ascending order + sort.Slice(ret, func(i, j int) bool { + return ret[i].NumOrTime < ret[j].NumOrTime + }) + return ret, nil +} + // String implements the stringer interface, returning the consensus engine details. func (b *ParliaConfig) String() string { return "parlia" From 383b9965aba71ffea40cb9d847f6f1f8d4e23fce Mon Sep 17 00:00:00 2001 From: Matus Kysel Date: Thu, 18 Jul 2024 03:06:17 +0200 Subject: [PATCH 18/22] consensus/parlia: support recovery when snapshot of parlia gone in disk (#445) --- consensus/parlia/parlia.go | 33 +++++++++++++++++++++++++-------- 1 file changed, 25 insertions(+), 8 deletions(-) diff --git a/consensus/parlia/parlia.go b/consensus/parlia/parlia.go index e9adc8e27e7..7fb7250f424 100644 --- a/consensus/parlia/parlia.go +++ b/consensus/parlia/parlia.go @@ -54,7 +54,7 @@ const ( inMemorySignatures = 4096 // Number of recent block signatures to keep in memory 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 + defaultEpochLength = uint64(200) // Default number of blocks of checkpoint to update validatorSet from contract extraVanity = 32 // Fixed number of extra-data prefix bytes reserved for signer vanity extraSeal = 65 // Fixed number of extra-data suffix bytes reserved for signer seal @@ -750,22 +750,39 @@ func (p *Parlia) snapshot(chain consensus.ChainHeaderReader, number uint64, hash } } } - // If we're at the genesis, snapshot the initial state. - if number == 0 { - // Headers included into the snapshots have to be trusted as checkpoints - checkpoint := chain.GetHeader(hash, number) - if checkpoint != nil { + // If we're at the genesis, snapshot the initial state. Alternatively if we have + // piled up more headers than allowed to be reorged (chain reinit from a freezer), + // consider the checkpoint trusted and snapshot it. + // even BEP-341 enabled, an offset `defaultEpochLength/2` can ensure getting the right validators. + if number == 0 || (number%p.config.Epoch == defaultEpochLength/2 && (len(headers) > int(params.FullImmutabilityThreshold))) { + var ( + checkpoint *types.Header + blockHash libcommon.Hash + ) + if number == 0 { + checkpoint = chain.GetHeaderByNumber(0) + if checkpoint != nil { + blockHash = checkpoint.Hash() + } + } else { + checkpoint = chain.GetHeaderByNumber(number - defaultEpochLength/2) + blockHeader := chain.GetHeaderByNumber(number) + if blockHeader != nil { + blockHash = blockHeader.Hash() + } + } + if checkpoint != nil && blockHash != (libcommon.Hash{}) { // get validators from headers validators, voteAddrs, err := parseValidators(checkpoint, p.chainConfig, p.config) if err != nil { return nil, err } // new snapshot - snap = newSnapshot(p.config, p.signatures, number, hash, validators, voteAddrs) + snap = newSnapshot(p.config, p.signatures, number, blockHash, validators, voteAddrs) if err := snap.store(p.db); err != nil { return nil, err } - p.logger.Info("Stored checkpoint snapshot to disk", "number", number, "hash", hash) + p.logger.Info("Stored checkpoint snapshot to disk", "number", number, "hash", blockHash) break } } From 41289f4b4d604eaf6ea3d5c5a370fb617d72c14f Mon Sep 17 00:00:00 2001 From: Matus Kysel Date: Fri, 19 Jul 2024 09:56:01 +0200 Subject: [PATCH 19/22] Revert "consensus/parlia: support recovery when snapshot of parlia gone in disk (#445)" (#448) This reverts commit 7be6c9feef277901347b5398d4f4c2b0f26ca403. --- consensus/parlia/parlia.go | 33 ++++++++------------------------- 1 file changed, 8 insertions(+), 25 deletions(-) diff --git a/consensus/parlia/parlia.go b/consensus/parlia/parlia.go index 7fb7250f424..e9adc8e27e7 100644 --- a/consensus/parlia/parlia.go +++ b/consensus/parlia/parlia.go @@ -54,7 +54,7 @@ const ( inMemorySignatures = 4096 // Number of recent block signatures to keep in memory CheckpointInterval = 1024 // Number of blocks after which to save the snapshot to the database - defaultEpochLength = uint64(200) // Default number of blocks of checkpoint to update validatorSet from contract + defaultEpochLength = uint64(100) // Default number of blocks of checkpoint to update validatorSet from contract extraVanity = 32 // Fixed number of extra-data prefix bytes reserved for signer vanity extraSeal = 65 // Fixed number of extra-data suffix bytes reserved for signer seal @@ -750,39 +750,22 @@ func (p *Parlia) snapshot(chain consensus.ChainHeaderReader, number uint64, hash } } } - // If we're at the genesis, snapshot the initial state. Alternatively if we have - // piled up more headers than allowed to be reorged (chain reinit from a freezer), - // consider the checkpoint trusted and snapshot it. - // even BEP-341 enabled, an offset `defaultEpochLength/2` can ensure getting the right validators. - if number == 0 || (number%p.config.Epoch == defaultEpochLength/2 && (len(headers) > int(params.FullImmutabilityThreshold))) { - var ( - checkpoint *types.Header - blockHash libcommon.Hash - ) - if number == 0 { - checkpoint = chain.GetHeaderByNumber(0) - if checkpoint != nil { - blockHash = checkpoint.Hash() - } - } else { - checkpoint = chain.GetHeaderByNumber(number - defaultEpochLength/2) - blockHeader := chain.GetHeaderByNumber(number) - if blockHeader != nil { - blockHash = blockHeader.Hash() - } - } - if checkpoint != nil && blockHash != (libcommon.Hash{}) { + // If we're at the genesis, snapshot the initial state. + if number == 0 { + // Headers included into the snapshots have to be trusted as checkpoints + checkpoint := chain.GetHeader(hash, number) + if checkpoint != nil { // get validators from headers validators, voteAddrs, err := parseValidators(checkpoint, p.chainConfig, p.config) if err != nil { return nil, err } // new snapshot - snap = newSnapshot(p.config, p.signatures, number, blockHash, validators, voteAddrs) + snap = newSnapshot(p.config, p.signatures, number, hash, validators, voteAddrs) if err := snap.store(p.db); err != nil { return nil, err } - p.logger.Info("Stored checkpoint snapshot to disk", "number", number, "hash", blockHash) + p.logger.Info("Stored checkpoint snapshot to disk", "number", number, "hash", hash) break } } From 2eac4eef2aa5ab1ac0c4da45c3ebc70a98f49f39 Mon Sep 17 00:00:00 2001 From: TomasHolcman Date: Fri, 19 Jul 2024 10:19:45 +0200 Subject: [PATCH 20/22] rpc bottleneck: block files mutex (e2) (#11155) (#440) for https://github.com/ledgerwatch/erigon/issues/11090 thank you [tholcman](https://github.com/tholcman) for finding Co-authored-by: Alex Sharov --- .../snapshotsync/freezeblocks/block_reader.go | 141 ++++++++++-------- .../freezeblocks/block_snapshots.go | 60 +++++++- 2 files changed, 131 insertions(+), 70 deletions(-) diff --git a/turbo/snapshotsync/freezeblocks/block_reader.go b/turbo/snapshotsync/freezeblocks/block_reader.go index 5b5d4fac0e1..77804a8ced1 100644 --- a/turbo/snapshotsync/freezeblocks/block_reader.go +++ b/turbo/snapshotsync/freezeblocks/block_reader.go @@ -10,6 +10,7 @@ import ( "sort" "time" + borsnaptype "github.com/ledgerwatch/erigon/polygon/bor/snaptype" "github.com/ledgerwatch/log/v3" "github.com/ledgerwatch/erigon-lib/common/hexutility" @@ -395,12 +396,11 @@ func (r *BlockReader) HeaderByNumber(ctx context.Context, tx kv.Getter, blockHei } } - view := r.sn.View() - defer view.Close() - seg, ok := view.HeadersSegment(blockHeight) + seg, ok, release := r.sn.ViewSingleFile(coresnaptype.Headers, blockHeight) if !ok { return } + defer release() h, _, err = r.headerFromSnapshot(blockHeight, seg, nil) if err != nil { @@ -419,9 +419,8 @@ func (r *BlockReader) HeaderByHash(ctx context.Context, tx kv.Getter, hash commo return h, nil } - view := r.sn.View() - defer view.Close() - segments := view.Headers() + segments, release := r.sn.ViewType(coresnaptype.Headers) + defer release() buf := make([]byte, 128) for i := len(segments) - 1; i >= 0; i-- { @@ -451,12 +450,11 @@ func (r *BlockReader) CanonicalHash(ctx context.Context, tx kv.Getter, blockHeig return h, nil } - view := r.sn.View() - defer view.Close() - seg, ok := view.HeadersSegment(blockHeight) + seg, ok, release := r.sn.ViewSingleFile(coresnaptype.Headers, blockHeight) if !ok { return } + defer release() header, _, err := r.headerFromSnapshot(blockHeight, seg, nil) if err != nil { @@ -486,12 +484,12 @@ func (r *BlockReader) Header(ctx context.Context, tx kv.Getter, hash common.Hash } } - view := r.sn.View() - defer view.Close() - seg, ok := view.HeadersSegment(blockHeight) + seg, ok, release := r.sn.ViewSingleFile(coresnaptype.Headers, blockHeight) if !ok { return } + defer release() + h, _, err = r.headerFromSnapshot(blockHeight, seg, nil) if err != nil { return h, err @@ -526,40 +524,46 @@ func (r *BlockReader) BodyWithTransactions(ctx context.Context, tx kv.Getter, ha } } - view := r.sn.View() - defer view.Close() - - var baseTxnID uint64 - var txsAmount uint32 - var buf []byte - seg, ok := view.BodiesSegment(blockHeight) + seg, ok, release := r.sn.ViewSingleFile(coresnaptype.Bodies, blockHeight) if !ok { if dbgLogs { log.Info(dbgPrefix + "no bodies file for this block num") } return nil, nil } - body, baseTxnID, txsAmount, buf, err = r.bodyFromSnapshot(blockHeight, seg, buf) + defer release() + + var baseTxnID uint64 + var txCount uint32 + var buf []byte + body, baseTxnID, txCount, buf, err = r.bodyFromSnapshot(blockHeight, seg, buf) if err != nil { return nil, err } + release() + if body == nil { if dbgLogs { log.Info(dbgPrefix + "got nil body from file") } return nil, nil } - txnSeg, ok := view.TxsSegment(blockHeight) + + txnSeg, ok, release := r.sn.ViewSingleFile(coresnaptype.Transactions, blockHeight) if !ok { if dbgLogs { log.Info(dbgPrefix+"no transactions file for this block num", "r.sn.BlocksAvailable()", r.sn.BlocksAvailable(), "r.sn.idxMax", r.sn.idxMax.Load(), "r.sn.segmetntsMax", r.sn.segmentsMax.Load()) } return nil, nil } - txs, senders, err := r.txsFromSnapshot(baseTxnID, txsAmount, txnSeg, buf) + defer release() + + txs, senders, err := r.txsFromSnapshot(baseTxnID, txCount, txnSeg, buf) if err != nil { return nil, err } + release() + if txs == nil { if dbgLogs { log.Info(dbgPrefix + "got nil txs from file") @@ -606,13 +610,13 @@ func (r *BlockReader) Body(ctx context.Context, tx kv.Getter, hash common.Hash, body, _, txAmount = rawdb.ReadBody(tx, hash, blockHeight) return body, txAmount, nil } - view := r.sn.View() - defer view.Close() - seg, ok := view.BodiesSegment(blockHeight) + seg, ok, release := r.sn.ViewSingleFile(coresnaptype.Bodies, blockHeight) if !ok { return } + defer release() + body, _, txAmount, _, err = r.bodyFromSnapshot(blockHeight, seg, nil) if err != nil { return nil, 0, err @@ -676,15 +680,14 @@ func (r *BlockReader) blockWithSenders(ctx context.Context, tx kv.Getter, hash c return } - view := r.sn.View() - defer view.Close() - seg, ok := view.HeadersSegment(blockHeight) + seg, ok, release := r.sn.ViewSingleFile(coresnaptype.Headers, blockHeight) if !ok { if dbgLogs { log.Info(dbgPrefix + "no header files for this block num") } return } + defer release() var buf []byte h, buf, err := r.headerFromSnapshot(blockHeight, seg, buf) @@ -697,21 +700,26 @@ func (r *BlockReader) blockWithSenders(ctx context.Context, tx kv.Getter, hash c } return } + release() var b *types.Body var baseTxnId uint64 var txsAmount uint32 - bodySeg, ok := view.BodiesSegment(blockHeight) + bodySeg, ok, release := r.sn.ViewSingleFile(coresnaptype.Bodies, blockHeight) if !ok { if dbgLogs { log.Info(dbgPrefix + "no bodies file for this block num") } return } + defer release() + b, baseTxnId, txsAmount, buf, err = r.bodyFromSnapshot(blockHeight, bodySeg, buf) if err != nil { return nil, nil, err } + release() + if b == nil { if dbgLogs { log.Info(dbgPrefix + "got nil body from file") @@ -730,18 +738,21 @@ func (r *BlockReader) blockWithSenders(ctx context.Context, tx kv.Getter, hash c return block, senders, nil } - txnSeg, ok := view.TxsSegment(blockHeight) + txnSeg, ok, release := r.sn.ViewSingleFile(coresnaptype.Transactions, blockHeight) if !ok { if dbgLogs { log.Info(dbgPrefix+"no transactions file for this block num", "r.sn.BlocksAvailable()", r.sn.BlocksAvailable(), "r.sn.indicesReady", r.sn.indicesReady.Load()) } return } + defer release() var txs []types.Transaction txs, senders, err = r.txsFromSnapshot(baseTxnId, txsAmount, txnSeg, buf) if err != nil { return nil, nil, err } + release() + block = types.NewBlockFromStorage(hash, h, txs, b.Uncles, b.Withdrawals) if len(senders) != block.Transactions().Len() { if dbgLogs { @@ -997,18 +1008,18 @@ func (r *BlockReader) TxnByIdxInBlock(ctx context.Context, tx kv.Getter, blockNu return rawdb.TxnByIdxInBlock(tx, canonicalHash, blockNum, txIdxInBlock) } - view := r.sn.View() - defer view.Close() - seg, ok := view.BodiesSegment(blockNum) + seg, ok, release := r.sn.ViewSingleFile(coresnaptype.Bodies, blockNum) if !ok { return } + defer release() var b *types.BodyForStorage b, _, err = r.bodyForStorageFromSnapshot(blockNum, seg, nil) if err != nil { return nil, err } + release() if b == nil { return } @@ -1018,10 +1029,12 @@ func (r *BlockReader) TxnByIdxInBlock(ctx context.Context, tx kv.Getter, blockNu return nil, nil } - txnSeg, ok := view.TxsSegment(blockNum) + txnSeg, ok, release := r.sn.ViewSingleFile(coresnaptype.Transactions, blockNum) if !ok { return } + defer release() + // +1 because block has system-txn in the beginning of block return r.txnByID(b.BaseTxId+1+uint64(txIdxInBlock), txnSeg, nil) } @@ -1036,10 +1049,9 @@ func (r *BlockReader) TxnLookup(_ context.Context, tx kv.Getter, txnHash common. return *n, true, nil } - view := r.sn.View() - defer view.Close() - - _, blockNum, ok, err := r.txnByHash(txnHash, view.Txs(), nil) + txns, release := r.sn.ViewType(coresnaptype.Transactions) + defer release() + _, blockNum, ok, err := r.txnByHash(txnHash, txns, nil) if err != nil { return 0, false, err } @@ -1048,13 +1060,11 @@ func (r *BlockReader) TxnLookup(_ context.Context, tx kv.Getter, txnHash common. } func (r *BlockReader) FirstTxnNumNotInSnapshots() uint64 { - view := r.sn.View() - defer view.Close() - - sn, ok := view.TxsSegment(r.sn.BlocksAvailable()) + sn, ok, release := r.sn.ViewSingleFile(coresnaptype.Transactions, r.sn.BlocksAvailable()) if !ok { return 0 } + defer release() lastTxnID := sn.Index(coresnaptype.Indexes.TxnHash).BaseDataID() + uint64(sn.Count()) return lastTxnID @@ -1268,10 +1278,10 @@ func (r *BlockReader) BorStartEventID(ctx context.Context, tx kv.Tx, hash common } borTxHash := bortypes.ComputeBorTxHash(blockHeight, hash) - view := r.borSn.View() - defer view.Close() - segments := view.Events() + segments, release := r.borSn.ViewType(borsnaptype.BorEvents) + defer release() + for i := len(segments) - 1; i >= 0; i-- { sn := segments[i] if sn.from > blockHeight { @@ -1349,9 +1359,10 @@ func (r *BlockReader) EventsByBlock(ctx context.Context, tx kv.Tx, hash common.H return result, nil } borTxHash := bortypes.ComputeBorTxHash(blockHeight, hash) - view := r.borSn.View() - defer view.Close() - segments := view.Events() + + segments, release := r.borSn.ViewType(borsnaptype.BorEvents) + defer release() + var buf []byte result := []rlp.RawValue{} for i := len(segments) - 1; i >= 0; i-- { @@ -1389,10 +1400,9 @@ func (r *BlockReader) EventsByBlock(ctx context.Context, tx kv.Tx, hash common.H // EventsByIdFromSnapshot returns the list of records limited by time, or the number of records along with a bool value to signify if the records were limited by time func (r *BlockReader) EventsByIdFromSnapshot(from uint64, to time.Time, limit int) ([]*heimdall.EventRecordWithTime, bool, error) { - view := r.borSn.View() - defer view.Close() + segments, release := r.borSn.ViewType(borsnaptype.BorEvents) + defer release() - segments := view.Events() var buf []byte var result []*heimdall.EventRecordWithTime stateContract := bor.GenesisContractStateReceiverABI() @@ -1469,9 +1479,9 @@ func (r *BlockReader) LastFrozenEventId() uint64 { return 0 } - view := r.borSn.View() - defer view.Close() - segments := view.Events() + segments, release := r.borSn.ViewType(borsnaptype.BorEvents) + defer release() + if len(segments) == 0 { return 0 } @@ -1526,9 +1536,9 @@ func (r *BlockReader) LastFrozenSpanId() uint64 { return 0 } - view := r.borSn.View() - defer view.Close() - segments := view.Spans() + segments, release := r.borSn.ViewType(borsnaptype.BorSpans) + defer release() + if len(segments) == 0 { return 0 } @@ -1570,9 +1580,9 @@ func (r *BlockReader) Span(ctx context.Context, tx kv.Getter, spanId uint64) ([] } return common.Copy(v), nil } - view := r.borSn.View() - defer view.Close() - segments := view.Spans() + segments, release := r.borSn.ViewType(borsnaptype.BorSpans) + defer release() + for i := len(segments) - 1; i >= 0; i-- { sn := segments[i] idx := sn.Index() @@ -1674,9 +1684,9 @@ func (r *BlockReader) Checkpoint(ctx context.Context, tx kv.Getter, checkpointId return common.Copy(v), nil } - view := r.borSn.View() - defer view.Close() - segments := view.Checkpoints() + segments, release := r.borSn.ViewType(borsnaptype.BorCheckpoints) + defer release() + for i := len(segments) - 1; i >= 0; i-- { sn := segments[i] index := sn.Index() @@ -1700,9 +1710,8 @@ func (r *BlockReader) LastFrozenCheckpointId() uint64 { return 0 } - view := r.borSn.View() - defer view.Close() - segments := view.Checkpoints() + segments, release := r.borSn.ViewType(borsnaptype.BorCheckpoints) + defer release() if len(segments) == 0 { return 0 } diff --git a/turbo/snapshotsync/freezeblocks/block_snapshots.go b/turbo/snapshotsync/freezeblocks/block_snapshots.go index b4d298236e6..2c203945194 100644 --- a/turbo/snapshotsync/freezeblocks/block_snapshots.go +++ b/turbo/snapshotsync/freezeblocks/block_snapshots.go @@ -808,8 +808,8 @@ func (s *RoSnapshots) buildMissedIndices(logPrefix string, ctx context.Context, } func (s *RoSnapshots) PrintDebug() { - s.lockSegments() - defer s.unlockSegments() + view := s.View() + defer view.Close() s.segments.Scan(func(key snaptype.Enum, value *segments) bool { fmt.Println(" == [dbg] Snapshots,", key.String()) @@ -2040,9 +2040,13 @@ type View struct { closed bool } +// ViewSingleFile - RLock files of all types func (s *RoSnapshots) View() *View { v := &View{s: s, baseSegType: coresnaptype.Headers} - s.lockSegments() + s.segments.Scan(func(segtype snaptype.Enum, value *segments) bool { + value.lock.RLock() + return true + }) return v } @@ -2051,7 +2055,55 @@ func (v *View) Close() { return } v.closed = true - v.s.unlockSegments() + v.s.segments.Scan(func(segtype snaptype.Enum, value *segments) bool { + value.lock.RUnlock() + return true + }) +} + +var noop = func() {} + +// ViewSingleFile - RLock all files of given type +func (s *RoSnapshots) ViewType(t snaptype.Type) (segments []*Segment, release func()) { + segs, ok := s.segments.Get(t.Enum()) + if !ok { + return nil, noop + } + + segs.lock.RLock() + var released = false + return segs.segments, func() { + if released { + return + } + segs.lock.RUnlock() + released = true + } +} + +// ViewSingleFile - RLock all files of given type if has file with `blockNum` +func (s *RoSnapshots) ViewSingleFile(t snaptype.Type, blockNum uint64) (segment *Segment, ok bool, release func()) { + segs, ok := s.segments.Get(t.Enum()) + if !ok { + return nil, false, noop + } + + segs.lock.RLock() + var released = false + for _, seg := range segs.segments { + if !(blockNum >= seg.from && blockNum < seg.to) { + continue + } + return seg, true, func() { + if released { + return + } + segs.lock.RUnlock() + released = true + } + } + segs.lock.RUnlock() + return nil, false, noop } func (v *View) Segments(t snaptype.Type) []*Segment { From 4f4c6151a6dbc8e712d4c052262250ab90703efc Mon Sep 17 00:00:00 2001 From: blxdyx <125243069+blxdyx@users.noreply.github.com> Date: Fri, 19 Jul 2024 17:24:46 +0800 Subject: [PATCH 21/22] Avoid crash when eth_getCode (#449) * avoid crash when eth_getCode * avoid crash when eth_getCode --- turbo/rpchelper/helper.go | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/turbo/rpchelper/helper.go b/turbo/rpchelper/helper.go index cc0bb545c64..f1716d64a47 100644 --- a/turbo/rpchelper/helper.go +++ b/turbo/rpchelper/helper.go @@ -4,7 +4,6 @@ import ( "context" "errors" "fmt" - parliafinality "github.com/ledgerwatch/erigon/consensus/parlia/finality" "github.com/ledgerwatch/erigon/turbo/services" @@ -143,14 +142,25 @@ func CreateStateReaderFromBlockNumber(ctx context.Context, tx kv.Tx, blockNumber } return state.NewCachedReader2(cacheView, tx), nil } + var time uint64 header, err := headerReader.HeaderByNumber(ctx, tx, blockNumber+1) if err != nil { return nil, err } - if header == nil { - return nil, nil + if header != nil { + time = header.Time + } else { + parent, err := headerReader.HeaderByNumber(ctx, tx, blockNumber) + if err != nil { + return nil, err + } + if parent == nil { + return nil, fmt.Errorf("can't find block Time") + } + time = parent.Time } - return CreateHistoryStateReader(tx, blockNumber+1, txnIndex, historyV3, header.Time, chainName) + + return CreateHistoryStateReader(tx, blockNumber+1, txnIndex, historyV3, time, chainName) } func CreateHistoryStateReader(tx kv.Tx, blockNumber uint64, txnIndex int, historyV3 bool, time uint64, chainName string) (state.StateReader, error) { From d626bb01306167fb9e669f94b991326ae092abc9 Mon Sep 17 00:00:00 2001 From: blxdyx <125243069+blxdyx@users.noreply.github.com> Date: Fri, 19 Jul 2024 17:38:59 +0800 Subject: [PATCH 22/22] bump version (#450) --- params/version.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/params/version.go b/params/version.go index c5dbdc1b4ef..d856a0df4ba 100644 --- a/params/version.go +++ b/params/version.go @@ -33,7 +33,7 @@ var ( const ( VersionMajor = 1 // Major version component of the current release VersionMinor = 2 // Minor version component of the current release - VersionMicro = 12 // Patch version component of the current release + VersionMicro = 13 // Patch version component of the current release VersionModifier = "dev" // Modifier component of the current release VersionKeyCreated = "ErigonVersionCreated" VersionKeyFinished = "ErigonVersionFinished"

w1T4A!i3^;Pm=h=t>NEj3s`kQ&)@$eG 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