ETH Price: $1,592.97 (+7.16%)
Gas: 5.66 Gwei
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Push105580642020-07-30 1:35:121715 days ago1596072912IN
0xE0dCc708...121A80117
0 ETH0.0050282145
Bind105580642020-07-30 1:35:121715 days ago1596072912IN
0xE0dCc708...121A80117
0 ETH0.0031062145
Push105580642020-07-30 1:35:121715 days ago1596072912IN
0xE0dCc708...121A80117
0 ETH0.0050276745
Bind105580642020-07-30 1:35:121715 days ago1596072912IN
0xE0dCc708...121A80117
0 ETH0.0031062145
Push105580642020-07-30 1:35:121715 days ago1596072912IN
0xE0dCc708...121A80117
0 ETH0.0050271345
Bind105580642020-07-30 1:35:121715 days ago1596072912IN
0xE0dCc708...121A80117
0 ETH0.0031062145
Push105577222020-07-30 0:24:411715 days ago1596068681IN
0xE0dCc708...121A80117
0 ETH0.0050271345
Bind105577222020-07-30 0:24:411715 days ago1596068681IN
0xE0dCc708...121A80117
0 ETH0.0031062145
Push105571842020-07-29 22:19:361715 days ago1596061176IN
0xE0dCc708...121A80117
0 ETH0.0050282145
Bind105571842020-07-29 22:19:361715 days ago1596061176IN
0xE0dCc708...121A80117
0 ETH0.0031062145
Push105571842020-07-29 22:19:361715 days ago1596061176IN
0xE0dCc708...121A80117
0 ETH0.0050282145
Bind105571842020-07-29 22:19:361715 days ago1596061176IN
0xE0dCc708...121A80117
0 ETH0.0031062145
Push105571842020-07-29 22:19:361715 days ago1596061176IN
0xE0dCc708...121A80117
0 ETH0.0050282145
Bind105571842020-07-29 22:19:361715 days ago1596061176IN
0xE0dCc708...121A80117
0 ETH0.0031062145
Push105571802020-07-29 22:18:221715 days ago1596061102IN
0xE0dCc708...121A80117
0 ETH0.0050276745
Bind105571802020-07-29 22:18:221715 days ago1596061102IN
0xE0dCc708...121A80117
0 ETH0.0031056745
Push105571802020-07-29 22:18:221715 days ago1596061102IN
0xE0dCc708...121A80117
0 ETH0.0050282145
Bind105571802020-07-29 22:18:221715 days ago1596061102IN
0xE0dCc708...121A80117
0 ETH0.0031062145
Push105571792020-07-29 22:18:041715 days ago1596061084IN
0xE0dCc708...121A80117
0 ETH0.0050282145
Bind105571792020-07-29 22:18:041715 days ago1596061084IN
0xE0dCc708...121A80117
0 ETH0.0031062145
Push105571792020-07-29 22:18:041715 days ago1596061084IN
0xE0dCc708...121A80117
0 ETH0.0050276745
Bind105571792020-07-29 22:18:041715 days ago1596061084IN
0xE0dCc708...121A80117
0 ETH0.0031062145
Push105571792020-07-29 22:18:041715 days ago1596061084IN
0xE0dCc708...121A80117
0 ETH0.0050276745
Bind105571792020-07-29 22:18:041715 days ago1596061084IN
0xE0dCc708...121A80117
0 ETH0.0031062145
Push105571782020-07-29 22:17:491715 days ago1596061069IN
0xE0dCc708...121A80117
0 ETH0.0050276745
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0xb02396f0...b5C1d12F1
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
OrchidLottery

Compiler Version
v0.5.13+commit.5b0b510c

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, GNU GPLv3 license
File 1 of 1 : lottery.sol
/* Orchid - WebRTC P2P VPN Market (on Ethereum)
 * Copyright (C) 2017-2019  The Orchid Authors
*/

/* GNU Affero General Public License, Version 3 {{{ */
/*
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.

 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.

 * You should have received a copy of the GNU Affero General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
**/
/* }}} */


pragma solidity 0.5.13;

interface IERC20 {
    function transfer(address recipient, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
}

interface OrchidVerifier {
    function book(bytes calldata shared, address target, bytes calldata receipt) external pure;
}

contract OrchidLottery {

    IERC20 internal token_;

    constructor(IERC20 token) public {
        token_ = token;
    }

    function what() external view returns (IERC20) {
        return token_;
    }


    struct Pot {
        uint256 offset_;

        uint128 amount_;
        uint128 escrow_;

        uint256 unlock_;

        OrchidVerifier verify_;
        bytes32 codehash_;
        bytes shared_;
    }

    event Update(address indexed funder, address indexed signer, uint128 amount, uint128 escrow, uint256 unlock);

    function send(address funder, address signer, Pot storage pot) private {
        emit Update(funder, signer, pot.amount_, pot.escrow_, pot.unlock_);
    }


    struct Lottery {
        address[] keys_;
        mapping(address => Pot) pots_;
    }

    mapping(address => Lottery) internal lotteries_;


    function find(address funder, address signer) private view returns (Pot storage) {
        return lotteries_[funder].pots_[signer];
    }

    function kill(address signer) external {
        address funder = msg.sender;
        Lottery storage lottery = lotteries_[funder];
        Pot storage pot = lottery.pots_[signer];
        require(pot.offset_ != 0);
        if (pot.verify_ != OrchidVerifier(0))
            emit Bound(funder, signer);
        address key = lottery.keys_[lottery.keys_.length - 1];
        lottery.pots_[key].offset_ = pot.offset_;
        lottery.keys_[pot.offset_ - 1] = key;
        --lottery.keys_.length;
        delete lottery.pots_[signer];
        send(funder, signer, pot);
    }


    function size(address funder) external view returns (uint256) {
        return lotteries_[funder].keys_.length;
    }

    function keys(address funder) external view returns (address[] memory) {
        return lotteries_[funder].keys_;
    }

    function seek(address funder, uint256 offset) external view returns (address) {
        return lotteries_[funder].keys_[offset];
    }

    function page(address funder, uint256 offset, uint256 count) external view returns (address[] memory) {
        address[] storage all = lotteries_[funder].keys_;
        require(offset <= all.length);
        if (count > all.length - offset)
            count = all.length - offset;
        address[] memory slice = new address[](count);
        for (uint256 i = 0; i != count; ++i)
            slice[i] = all[offset + i];
        return slice;
    }


    function look(address funder, address signer) external view returns (uint128, uint128, uint256, OrchidVerifier, bytes32, bytes memory) {
        Pot storage pot = lotteries_[funder].pots_[signer];
        return (pot.amount_, pot.escrow_, pot.unlock_, pot.verify_, pot.codehash_, pot.shared_);
    }


    event Create(address indexed funder, address indexed signer);

    function push(address signer, uint128 total, uint128 escrow) external {
        address funder = msg.sender;
        require(total >= escrow);
        Pot storage pot = find(funder, signer);
        if (pot.offset_ == 0) {
            pot.offset_ = lotteries_[funder].keys_.push(signer);
            emit Create(funder, signer);
        }
        pot.amount_ += total - escrow;
        pot.escrow_ += escrow;
        send(funder, signer, pot);
        require(token_.transferFrom(funder, address(this), total));
    }

    function move(address signer, uint128 amount) external {
        address funder = msg.sender;
        Pot storage pot = find(funder, signer);
        require(pot.amount_ >= amount);
        pot.amount_ -= amount;
        pot.escrow_ += amount;
        send(funder, signer, pot);
    }

    function burn(address signer, uint128 escrow) external {
        address funder = msg.sender;
        Pot storage pot = find(funder, signer);
        if (escrow > pot.escrow_)
            escrow = pot.escrow_;
        pot.escrow_ -= escrow;
        send(funder, signer, pot);
    }

    event Bound(address indexed funder, address indexed signer);

    function bind(address signer, OrchidVerifier verify, bytes calldata shared) external {
        address funder = msg.sender;
        Pot storage pot = find(funder, signer);
        require(pot.escrow_ == 0);

        bytes32 codehash;
        assembly { codehash := extcodehash(verify) }

        pot.verify_ = verify;
        pot.codehash_ = codehash;
        pot.shared_ = shared;

        emit Bound(funder, signer);
    }


    struct Track {
        uint256 until_;
    }

    mapping(address => mapping(bytes32 => Track)) internal tracks_;


    function take(address funder, address signer, address payable recipient, uint128 amount, bytes memory receipt) private {
        Pot storage pot = find(funder, signer);

        uint128 cache = pot.amount_;

        if (cache >= amount) {
            cache -= amount;
            pot.amount_ = cache;
            emit Update(funder, signer, cache, pot.escrow_, pot.unlock_);
        } else {
            amount = cache;
            pot.amount_ = 0;
            pot.escrow_ = 0;
            emit Update(funder, signer, 0, 0, pot.unlock_);
        }

        OrchidVerifier verify = pot.verify_;
        bytes32 codehash;
        bytes memory shared;
        if (verify != OrchidVerifier(0)) {
            codehash = pot.codehash_;
            shared = pot.shared_;
        }

        if (amount != 0)
            require(token_.transfer(recipient, amount));

        if (verify != OrchidVerifier(0)) {
            bytes32 current; assembly { current := extcodehash(verify) }
            if (codehash == current)
                verify.book(shared, recipient, receipt);
        }
    }

    // the arguments to this function are carefully ordered for stack depth optimization
    // this function was marked public, instead of external, for lower stack depth usage
    function grab(
        bytes32 reveal, bytes32 commit,
        uint256 issued, bytes32 nonce,
        uint8 v, bytes32 r, bytes32 s,
        uint128 amount, uint128 ratio,
        uint256 start, uint128 range,
        address funder, address payable recipient,
        bytes memory receipt, bytes32[] memory old
    ) public {
        require(keccak256(abi.encode(reveal)) == commit);
        require(uint128(uint256(keccak256(abi.encode(reveal, issued, nonce)))) <= ratio);

        // this variable is being reused because I do not have even one extra stack slot
        bytes32 ticket; assembly { ticket := chainid() }
        // keccak256("Orchid.grab") == 0x8b988a5483b8a95aa306ba150c9513d5565a0eee358bc4b35b29425708700645
        ticket = keccak256(abi.encode(bytes32(uint256(0x8b988a5483b8a95aa306ba150c9513d5565a0eee358bc4b35b29425708700645)),
            commit, issued, nonce, address(this), ticket, amount, ratio, start, range, funder, recipient, receipt));
        address signer = ecrecover(keccak256(abi.encodePacked("\x19Ethereum Signed Message:\n32", ticket)), v, r, s);
        require(signer != address(0));

        {
            mapping(bytes32 => Track) storage tracks = tracks_[recipient];

            {
                Track storage track = tracks[keccak256(abi.encode(signer, ticket))];
                uint256 until = start + range;
                require(until > block.timestamp);
                require(track.until_ == 0);
                track.until_ = until;
            }

            for (uint256 i = 0; i != old.length; ++i) {
                Track storage track = tracks[old[i]];
                if (track.until_ <= block.timestamp)
                    delete track.until_;
            }
        }

        if (start < block.timestamp) {
            uint128 limit = uint128(uint256(amount) * (range - (block.timestamp - start)) / range);
            if (amount > limit)
                amount = limit;
        }

        take(funder, signer, recipient, amount, receipt);
    }

    function give(address funder, address payable recipient, uint128 amount, bytes calldata receipt) external {
        address signer = msg.sender;
        take(funder, signer, recipient, amount, receipt);
    }


    function warn(address signer) external {
        address funder = msg.sender;
        Pot storage pot = find(funder, signer);
        pot.unlock_ = block.timestamp + 1 days;
        send(funder, signer, pot);
    }

    function lock(address signer) external {
        address funder = msg.sender;
        Pot storage pot = find(funder, signer);
        pot.unlock_ = 0;
        send(funder, signer, pot);
    }

    function pull(address signer, address payable target, bool autolock, uint128 amount, uint128 escrow) external {
        address funder = msg.sender;
        Pot storage pot = find(funder, signer);
        if (amount > pot.amount_)
            amount = pot.amount_;
        if (escrow > pot.escrow_)
            escrow = pot.escrow_;
        if (escrow != 0)
            require(pot.unlock_ - 1 < block.timestamp);
        uint128 total = amount + escrow;
        pot.amount_ -= amount;
        pot.escrow_ -= escrow;
        if (autolock && pot.escrow_ == 0)
            pot.unlock_ = 0;
        send(funder, signer, pot);
        if (total != 0)
            require(token_.transfer(target, total));
    }

    function yank(address signer, address payable target, bool autolock) external {
        address funder = msg.sender;
        Pot storage pot = find(funder, signer);
        if (pot.escrow_ != 0)
            require(pot.unlock_ - 1 < block.timestamp);
        uint128 total = pot.amount_ + pot.escrow_;
        pot.amount_ = 0;
        pot.escrow_ = 0;
        if (autolock)
            pot.unlock_ = 0;
        send(funder, signer, pot);
        require(token_.transfer(target, total));
    }
}

Settings
{
  "evmVersion": "istanbul",
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"funder","type":"address"},{"indexed":true,"internalType":"address","name":"signer","type":"address"}],"name":"Bound","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"funder","type":"address"},{"indexed":true,"internalType":"address","name":"signer","type":"address"}],"name":"Create","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"funder","type":"address"},{"indexed":true,"internalType":"address","name":"signer","type":"address"},{"indexed":false,"internalType":"uint128","name":"amount","type":"uint128"},{"indexed":false,"internalType":"uint128","name":"escrow","type":"uint128"},{"indexed":false,"internalType":"uint256","name":"unlock","type":"uint256"}],"name":"Update","type":"event"},{"constant":false,"inputs":[{"internalType":"address","name":"signer","type":"address"},{"internalType":"contract OrchidVerifier","name":"verify","type":"address"},{"internalType":"bytes","name":"shared","type":"bytes"}],"name":"bind","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"signer","type":"address"},{"internalType":"uint128","name":"escrow","type":"uint128"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"funder","type":"address"},{"internalType":"address payable","name":"recipient","type":"address"},{"internalType":"uint128","name":"amount","type":"uint128"},{"internalType":"bytes","name":"receipt","type":"bytes"}],"name":"give","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"reveal","type":"bytes32"},{"internalType":"bytes32","name":"commit","type":"bytes32"},{"internalType":"uint256","name":"issued","type":"uint256"},{"internalType":"bytes32","name":"nonce","type":"bytes32"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"},{"internalType":"uint128","name":"amount","type":"uint128"},{"internalType":"uint128","name":"ratio","type":"uint128"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint128","name":"range","type":"uint128"},{"internalType":"address","name":"funder","type":"address"},{"internalType":"address payable","name":"recipient","type":"address"},{"internalType":"bytes","name":"receipt","type":"bytes"},{"internalType":"bytes32[]","name":"old","type":"bytes32[]"}],"name":"grab","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"funder","type":"address"}],"name":"keys","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"signer","type":"address"}],"name":"kill","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"signer","type":"address"}],"name":"lock","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"funder","type":"address"},{"internalType":"address","name":"signer","type":"address"}],"name":"look","outputs":[{"internalType":"uint128","name":"","type":"uint128"},{"internalType":"uint128","name":"","type":"uint128"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"contract OrchidVerifier","name":"","type":"address"},{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"bytes","name":"","type":"bytes"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"signer","type":"address"},{"internalType":"uint128","name":"amount","type":"uint128"}],"name":"move","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"funder","type":"address"},{"internalType":"uint256","name":"offset","type":"uint256"},{"internalType":"uint256","name":"count","type":"uint256"}],"name":"page","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"signer","type":"address"},{"internalType":"address payable","name":"target","type":"address"},{"internalType":"bool","name":"autolock","type":"bool"},{"internalType":"uint128","name":"amount","type":"uint128"},{"internalType":"uint128","name":"escrow","type":"uint128"}],"name":"pull","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"signer","type":"address"},{"internalType":"uint128","name":"total","type":"uint128"},{"internalType":"uint128","name":"escrow","type":"uint128"}],"name":"push","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"funder","type":"address"},{"internalType":"uint256","name":"offset","type":"uint256"}],"name":"seek","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"funder","type":"address"}],"name":"size","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"signer","type":"address"}],"name":"warn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"what","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"signer","type":"address"},{"internalType":"address payable","name":"target","type":"address"},{"internalType":"bool","name":"autolock","type":"bool"}],"name":"yank","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061010b5760003560e01c806373fb4644116100a2578063cbf0b0c011610071578063cbf0b0c014610985578063dc9efbab146109c9578063e53b3f6d14610a9e578063f435f5a714610ae2578063f8825a0c14610b265761010b565b806373fb4644146107bf578063889870681461083b578063a6cbd6e314610893578063b24bb8451461093b5761010b565b8063670d14b2116100de578063670d14b21461058b5780636bbe03cf146106245780636cc20fc0146106b25780637261e4691461075f5761010b565b8063043d695f146101105780631554ad5d146101705780635f51b34e146102e457806366458bbd14610354575b600080fd5b61016e6004803603604081101561012657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080356fffffffffffffffffffffffffffffffff169060200190929190505050610bdf565b005b6101d26004803603604081101561018657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d0c565b60405180876fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152602001866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1681526020018581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156102a4578082015181840152602081019050610289565b50505050905090810190601f1680156102d15780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390f35b610352600480360360608110156102fa57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050610ec1565b005b61058960048036036101e081101561036b57600080fd5b8101908080359060200190929190803590602001909291908035906020019092919080359060200190929190803560ff169060200190929190803590602001909291908035906020019092919080356fffffffffffffffffffffffffffffffff16906020019092919080356fffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080356fffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561046f57600080fd5b82018360208201111561048157600080fd5b803590602001918460018302840111640100000000831117156104a357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561050657600080fd5b82018360208201111561051857600080fd5b8035906020019184602083028401116401000000008311171561053a57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050611103565b005b6105cd600480360360208110156105a157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611689565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156106105780820151818401526020810190506105f5565b505050509050019250505060405180910390f35b6106706004803603604081101561063a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611759565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610708600480360360608110156106c857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001909291905050506117db565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561074b578082015181840152602081019050610730565b505050509050019250505060405180910390f35b6107bd6004803603604081101561077557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080356fffffffffffffffffffffffffffffffff169060200190929190505050611924565b005b610839600480360360608110156107d557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080356fffffffffffffffffffffffffffffffff16906020019092919080356fffffffffffffffffffffffffffffffff169060200190929190505050611a14565b005b61087d6004803603602081101561085157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d6b565b6040518082815260200191505060405180910390f35b610939600480360360a08110156108a957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080351515906020019092919080356fffffffffffffffffffffffffffffffff16906020019092919080356fffffffffffffffffffffffffffffffff169060200190929190505050611dba565b005b610943612117565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6109c76004803603602081101561099b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612140565b005b610a9c600480360360808110156109df57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080356fffffffffffffffffffffffffffffffff16906020019092919080359060200190640100000000811115610a5857600080fd5b820183602082011115610a6a57600080fd5b80359060200191846001830284011164010000000083111715610a8c57600080fd5b9091929391929390505050612488565b005b610ae060048036036020811015610ab457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506124e6565b005b610b2460048036036020811015610af857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612517565b005b610bdd60048036036060811015610b3c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190640100000000811115610b9957600080fd5b820183602082011115610bab57600080fd5b80359060200191846001830284011164010000000083111715610bcd57600080fd5b9091929391929390505050612544565b005b60003390506000610bf0828561265f565b9050826fffffffffffffffffffffffffffffffff168160010160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff161015610c4357600080fd5b828160010160008282829054906101000a90046fffffffffffffffffffffffffffffffff160392506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550828160010160108282829054906101000a90046fffffffffffffffffffffffffffffffff160192506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550610d068285836126e8565b50505050565b600080600080600060606000600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508060010160009054906101000a90046fffffffffffffffffffffffffffffffff168160010160109054906101000a90046fffffffffffffffffffffffffffffffff1682600201548360030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846004015485600501808054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ea35780601f10610e7857610100808354040283529160200191610ea3565b820191906000526020600020905b815481529060010190602001808311610e8657829003601f168201915b50505050509050965096509650965096509650509295509295509295565b60003390506000610ed2828661265f565b905060008160010160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1614610f225742600182600201540310610f2157600080fd5b5b60008160010160109054906101000a90046fffffffffffffffffffffffffffffffff168260010160009054906101000a90046fffffffffffffffffffffffffffffffff1601905060008260010160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060008260010160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055508315610ff257600082600201819055505b610ffd8387846126e8565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb86836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001826fffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b1580156110b757600080fd5b505af11580156110cb573d6000803e3d6000fd5b505050506040513d60208110156110e157600080fd5b81019080805190602001909291905050506110fb57600080fd5b505050505050565b8d8f60405160200180828152602001915050604051602081830303815290604052805190602001201461113557600080fd5b866fffffffffffffffffffffffffffffffff168f8e8e6040516020018084815260200183815260200182815260200193505050506040516020818303038152906040528051906020012060001c6fffffffffffffffffffffffffffffffff16111561119f57600080fd5b60004690507f8b988a5483b8a95aa306ba150c9513d5565a0eee358bc4b35b2942570870064560001b8f8f8f30858e8e8e8e8e8e8e604051602001808e81526020018d81526020018c81526020018b81526020018a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001898152602001886fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152602001876fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152602001868152602001856fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561134f578082015181840152602081019050611334565b50505050905090810190601f16801561137c5780820380516001836020036101000a031916815260200191505b509e505050505050505050505050505050604051602081830303815290604052805190602001209050600060018260405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c01828152602001915050604051602081830303815290604052805190602001208e8e8e60405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015611452573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561149857600080fd5b6000600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008160008486604051602001808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405160208183030381529060405280519060200120815260200190815260200160002090506000896fffffffffffffffffffffffffffffffff168b01905042811161157057600080fd5b600082600001541461158157600080fd5b808260000181905550505060008090505b845181146115e35760008260008784815181106115ab57fe5b602002602001015181526020019081526020016000209050428160000154116115d75780600001600090555b50806001019050611592565b505042881015611669576000876fffffffffffffffffffffffffffffffff16894203896fffffffffffffffffffffffffffffffff16038c6fffffffffffffffffffffffffffffffff16028161163457fe5b049050806fffffffffffffffffffffffffffffffff168b6fffffffffffffffffffffffffffffffff16111561166757809a505b505b6116768682878d886127ee565b5050505050505050505050505050505050565b6060600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000180548060200260200160405190810160405280929190818152602001828054801561174d57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611703575b50505050509050919050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000182815481106117a857fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905092915050565b60606000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000019050808054905084111561183457600080fd5b8381805490500383111561184c578381805490500392505b60608360405190808252806020026020018201604052801561187d5781602001602082028038833980820191505090505b50905060008090505b84811461191757828187018154811061189b57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168282815181106118d257fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050806001019050611886565b5080925050509392505050565b60003390506000611935828561265f565b90508060010160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16836fffffffffffffffffffffffffffffffff1611156119a7578060010160109054906101000a90046fffffffffffffffffffffffffffffffff1692505b828160010160108282829054906101000a90046fffffffffffffffffffffffffffffffff160392506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550611a0e8285836126e8565b50505050565b6000339050816fffffffffffffffffffffffffffffffff16836fffffffffffffffffffffffffffffffff161015611a4a57600080fd5b6000611a56828661265f565b9050600081600001541415611b6d57600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018590806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600001819055508473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f96b5b9b8a7193304150caccf9b80d150675fa3d6af57761d8d8ef1d6f9a1a90960405160405180910390a35b8284038160010160008282829054906101000a90046fffffffffffffffffffffffffffffffff160192506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550828160010160108282829054906101000a90046fffffffffffffffffffffffffffffffff160192506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550611c328286836126e8565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd8330876040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001826fffffffffffffffffffffffffffffffff1681526020019350505050602060405180830381600087803b158015611d2057600080fd5b505af1158015611d34573d6000803e3d6000fd5b505050506040513d6020811015611d4a57600080fd5b8101908080519060200190929190505050611d6457600080fd5b5050505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001805490509050919050565b60003390506000611dcb828861265f565b90508060010160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16846fffffffffffffffffffffffffffffffff161115611e3d578060010160009054906101000a90046fffffffffffffffffffffffffffffffff1693505b8060010160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16836fffffffffffffffffffffffffffffffff161115611ead578060010160109054906101000a90046fffffffffffffffffffffffffffffffff1692505b6000836fffffffffffffffffffffffffffffffff1614611edb5742600182600201540310611eda57600080fd5b5b60008385019050848260010160008282829054906101000a90046fffffffffffffffffffffffffffffffff160392506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550838260010160108282829054906101000a90046fffffffffffffffffffffffffffffffff160392506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550858015611fd9575060008260010160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16145b15611fe957600082600201819055505b611ff48389846126e8565b6000816fffffffffffffffffffffffffffffffff161461210d576000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb88836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001826fffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b1580156120c857600080fd5b505af11580156120dc573d6000803e3d6000fd5b505050506040513d60208110156120f257600080fd5b810190808051906020019092919050505061210c57600080fd5b5b5050505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60003390506000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008160010160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000816000015414156121df57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168160030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612292578373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f0d128562eaa47ab89086803e64a0f96847c0ed3cc63c26251f29ba1aede09d4e60405160405180910390a35b6000826000016001846000018054905003815481106122ad57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600001548360010160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550808360000160018460000154038154811061233e57fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600001805460019003908161239c9190612e6d565b508260010160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000808201600090556001820160006101000a8154906fffffffffffffffffffffffffffffffff02191690556001820160106101000a8154906fffffffffffffffffffffffffffffffff021916905560028201600090556003820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905560048201600090556005820160006124749190612e99565b50506124818486846126e8565b5050505050565b60003390506124de8682878787878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506127ee565b505050505050565b600033905060006124f7828461265f565b905062015180420181600201819055506125128284836126e8565b505050565b60003390506000612528828461265f565b90506000816002018190555061253f8284836126e8565b505050565b60003390506000612555828761265f565b905060008160010160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff161461259657600080fd5b6000853f9050858260030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080826004018190555084848360050191906125fb929190612ee1565b508673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f0d128562eaa47ab89086803e64a0f96847c0ed3cc63c26251f29ba1aede09d4e60405160405180910390a350505050505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905092915050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f3cd5941d0d99319105eba5f5393ed93c883f132d251e56819e516005c5e20dbc8360010160009054906101000a90046fffffffffffffffffffffffffffffffff168460010160109054906101000a90046fffffffffffffffffffffffffffffffff16856002015460405180846fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152602001836fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a3505050565b60006127fa868661265f565b905060008160010160009054906101000a90046fffffffffffffffffffffffffffffffff169050836fffffffffffffffffffffffffffffffff16816fffffffffffffffffffffffffffffffff1610612972578381039050808260010160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f3cd5941d0d99319105eba5f5393ed93c883f132d251e56819e516005c5e20dbc838560010160109054906101000a90046fffffffffffffffffffffffffffffffff16866002015460405180846fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152602001836fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a3612a8c565b80935060008260010160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060008260010160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f3cd5941d0d99319105eba5f5393ed93c883f132d251e56819e516005c5e20dbc600080866002015460405180846fffffffffffffffffffffffffffffffff168152602001836fffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a35b60008260030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060006060600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612b945784600401549150846005018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612b8c5780601f10612b6157610100808354040283529160200191612b8c565b820191906000526020600020905b815481529060010190602001808311612b6f57829003601f168201915b505050505090505b6000876fffffffffffffffffffffffffffffffff1614612cad576000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb89896040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001826fffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b158015612c6857600080fd5b505af1158015612c7c573d6000803e3d6000fd5b505050506040513d6020811015612c9257600080fd5b8101908080519060200190929190505050612cac57600080fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612e61576000833f905080831415612e5f578373ffffffffffffffffffffffffffffffffffffffff1663fe4e5b96838b8a6040518463ffffffff1660e01b815260040180806020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001838103835286818151815260200191508051906020019080838360005b83811015612d93578082015181840152602081019050612d78565b50505050905090810190601f168015612dc05780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b83811015612df9578082015181840152602081019050612dde565b50505050905090810190601f168015612e265780820380516001836020036101000a031916815260200191505b509550505050505060006040518083038186803b158015612e4657600080fd5b505afa158015612e5a573d6000803e3d6000fd5b505050505b505b50505050505050505050565b815481835581811115612e9457818360005260206000209182019101612e939190612f61565b5b505050565b50805460018160011615610100020316600290046000825580601f10612ebf5750612ede565b601f016020900490600052602060002090810190612edd9190612f61565b5b50565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612f2257803560ff1916838001178555612f50565b82800160010185558215612f50579182015b82811115612f4f578235825591602001919060010190612f34565b5b509050612f5d9190612f61565b5090565b612f8391905b80821115612f7f576000816000905550600101612f67565b5090565b9056fea265627a7a72315820c9bf82b853458d8c02c2b7b81698742d5ee966eeefc4c7336cd65a429f2ba77464736f6c634300050d0032

Deployed Bytecode Sourcemap

1193:9623:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1193:9623:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4500:284;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4500:284:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3604:299;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3604:299:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3604:299:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10322:492;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10322:492:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6961:2012;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;6961:2012:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;6961:2012:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6961:2012:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;6961:2012:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;6961:2012:0;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;6961:2012:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6961:2012:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;6961:2012:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;6961:2012:0;;;;;;;;;;;;;;;:::i;:::-;;2882:119;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2882:119:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2882:119:0;;;;;;;;;;;;;;;;;3007:134;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3007:134:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3147:450;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3147:450:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3147:450:0;;;;;;;;;;;;;;;;;4790:281;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4790:281:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3977:517;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3977:517:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2759:117;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2759:117:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9611:705;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;9611:705:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1322:77;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2181:571;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2181:571:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;8979:208;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;8979:208:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;8979:208:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;8979:208:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;8979:208:0;;;;;;;;;;;;:::i;:::-;;9194:214;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9194:214:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;9414:191;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9414:191:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;5143:424;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5143:424:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;5143:424:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;5143:424:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;5143:424:0;;;;;;;;;;;;:::i;:::-;;4500:284;4565:14;4582:10;4565:27;;4602:15;4620:20;4625:6;4633;4620:4;:20::i;:::-;4602:38;;4673:6;4658:21;;:3;:11;;;;;;;;;;;;:21;;;;4650:30;;;;;;4705:6;4690:3;:11;;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4736:6;4721:3;:11;;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4752:25;4757:6;4765;4773:3;4752:4;:25::i;:::-;4500:284;;;;:::o;3604:299::-;3673:7;3682;3691;3700:14;3716:7;3725:12;3749:15;3767:10;:18;3778:6;3767:18;;;;;;;;;;;;;;;:24;;:32;3792:6;3767:32;;;;;;;;;;;;;;;3749:50;;3817:3;:11;;;;;;;;;;;;3830:3;:11;;;;;;;;;;;;3843:3;:11;;;3856:3;:11;;;;;;;;;;;;3869:3;:13;;;3884:3;:11;;3809:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3604:299;;;;;;;;:::o;10322:492::-;10410:14;10427:10;10410:27;;10447:15;10465:20;10470:6;10478;10465:4;:20::i;:::-;10447:38;;10514:1;10499:3;:11;;;;;;;;;;;;:16;;;10495:76;;10555:15;10551:1;10537:3;:11;;;:15;:33;10529:42;;;;;;10495:76;10581:13;10611:3;:11;;;;;;;;;;;;10597:3;:11;;;;;;;;;;;;:25;10581:41;;10646:1;10632:3;:11;;;:15;;;;;;;;;;;;;;;;;;10671:1;10657:3;:11;;;:15;;;;;;;;;;;;;;;;;;10686:8;10682:41;;;10722:1;10708:3;:11;;:15;;;;10682:41;10733:25;10738:6;10746;10754:3;10733:4;:25::i;:::-;10776:6;;;;;;;;;;;:15;;;10792:6;10800:5;10776:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10776:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10776:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10776:30:0;;;;;;;;;;;;;;;;10768:39;;;;;;10322:492;;;;;;:::o;6961:2012::-;7337:6;7325;7314:18;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;7314:18:0;;;7304:29;;;;;;:39;7296:48;;;;;;7428:5;7362:71;;7399:6;7407;7415:5;7388:33;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;7388:33:0;;;7378:44;;;;;;7370:53;;7362:71;;;;7354:80;;;;;;7534:14;7571:9;7561:19;;7743:66;7727:84;;7825:6;7833;7841:5;7856:4;7863:6;7871;7879:5;7886;7893;7900:6;7908:9;7919:7;7716:211;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;7716:211:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;7716:211:0;;;7706:222;;;;;;7697:231;;7938:14;7955:91;8028:6;7975:60;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;7975:60:0;;;7965:71;;;;;;8038:1;8041;8044;7955:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7955:91:0;;;;;;;;7938:108;;8082:1;8064:20;;:6;:20;;;;8056:29;;;;;;8110:40;8153:7;:18;8161:9;8153:18;;;;;;;;;;;;;;;8110:61;;8204:19;8226:6;:45;8254:6;8262;8243:26;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;8243:26:0;;;8233:37;;;;;;8226:45;;;;;;;;;;;8204:67;;8289:13;8313:5;8305:13;;:5;:13;8289:29;;8352:15;8344:5;:23;8336:32;;;;;;8410:1;8394:5;:12;;;:17;8386:26;;;;;;8445:5;8430;:12;;:20;;;;6961:2012;;8484:9;8496:1;8484:13;;8479:205;8504:3;:10;8499:1;:15;8479:205;;8539:19;8561:6;:14;8568:3;8572:1;8568:6;;;;;;;;;;;;;;8561:14;;;;;;;;;;;8539:36;;8613:15;8597:5;:12;;;:31;8593:76;;8657:5;:12;;8650:19;;;8593:76;8479:205;8516:3;;;;;8479:205;;;;6961:2012;8716:15;8708:5;:23;8704:204;;;8747:13;8827:5;8771:61;;8817:5;8799:15;:23;8790:5;:33;;;8779:6;8771:15;;:53;:61;;;;;;8747:86;;8860:5;8851:14;;:6;:14;;;8847:50;;;8892:5;8883:14;;8847:50;8704:204;;8918:48;8923:6;8931;8939:9;8950:6;8958:7;8918:4;:48::i;:::-;6961:2012;;;;;;;;;;;;;;;;;:::o;2882:119::-;2935:16;2970:10;:18;2981:6;2970:18;;;;;;;;;;;;;;;:24;;2963:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2882:119;;;:::o;3007:134::-;3076:7;3102:10;:18;3113:6;3102:18;;;;;;;;;;;;;;;:24;;3127:6;3102:32;;;;;;;;;;;;;;;;;;;;;;;;;3095:39;;3007:134;;;;:::o;3147:450::-;3231:16;3259:21;3283:10;:18;3294:6;3283:18;;;;;;;;;;;;;;;:24;;3259:48;;3335:3;:10;;;;3325:6;:20;;3317:29;;;;;;3381:6;3368:3;:10;;;;:19;3360:5;:27;3356:72;;;3422:6;3409:3;:10;;;;:19;3401:27;;3356:72;3438:22;3477:5;3463:20;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;3463:20:0;;;;3438:45;;3498:9;3510:1;3498:13;;3493:75;3518:5;3513:1;:10;3493:75;;3553:3;3566:1;3557:6;:10;3553:15;;;;;;;;;;;;;;;;;;;;;;;;;3542:5;3548:1;3542:8;;;;;;;;;;;;;:26;;;;;;;;;;;3525:3;;;;;3493:75;;;;3585:5;3578:12;;;;3147:450;;;;;:::o;4790:281::-;4855:14;4872:10;4855:27;;4892:15;4910:20;4915:6;4923;4910:4;:20::i;:::-;4892:38;;4953:3;:11;;;;;;;;;;;;4944:20;;:6;:20;;;4940:58;;;4987:3;:11;;;;;;;;;;;;4978:20;;4940:58;5023:6;5008:3;:11;;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5039:25;5044:6;5052;5060:3;5039:4;:25::i;:::-;4790:281;;;;:::o;3977:517::-;4057:14;4074:10;4057:27;;4111:6;4102:15;;:5;:15;;;;4094:24;;;;;;4128:15;4146:20;4151:6;4159;4146:4;:20::i;:::-;4128:38;;4195:1;4180:3;:11;;;:16;4176:139;;;4226:10;:18;4237:6;4226:18;;;;;;;;;;;;;;;:24;;4256:6;4226:37;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;4226:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4212:3;:11;;:51;;;;4297:6;4282:22;;4289:6;4282:22;;;;;;;;;;;;4176:139;4347:6;4339:5;:14;4324:3;:11;;;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4378:6;4363:3;:11;;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4394:25;4399:6;4407;4415:3;4394:4;:25::i;:::-;4437:6;;;;;;;;;;;:19;;;4457:6;4473:4;4480:5;4437:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4437:49:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4437:49:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4437:49:0;;;;;;;;;;;;;;;;4429:58;;;;;;3977:517;;;;;:::o;2759:117::-;2812:7;2838:10;:18;2849:6;2838:18;;;;;;;;;;;;;;;:24;;:31;;;;2831:38;;2759:117;;;:::o;9611:705::-;9731:14;9748:10;9731:27;;9768:15;9786:20;9791:6;9799;9786:4;:20::i;:::-;9768:38;;9829:3;:11;;;;;;;;;;;;9820:20;;:6;:20;;;9816:58;;;9863:3;:11;;;;;;;;;;;;9854:20;;9816:58;9897:3;:11;;;;;;;;;;;;9888:20;;:6;:20;;;9884:58;;;9931:3;:11;;;;;;;;;;;;9922:20;;9884:58;9966:1;9956:6;:11;;;9952:71;;10007:15;10003:1;9989:3;:11;;;:15;:33;9981:42;;;;;;9952:71;10033:13;10058:6;10049;:15;10033:31;;10089:6;10074:3;:11;;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10120:6;10105:3;:11;;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10140:8;:28;;;;;10167:1;10152:3;:11;;;;;;;;;;;;:16;;;10140:28;10136:61;;;10196:1;10182:3;:11;;:15;;;;10136:61;10207:25;10212:6;10220;10228:3;10207:4;:25::i;:::-;10255:1;10246:5;:10;;;10242:67;;10278:6;;;;;;;;;;;:15;;;10294:6;10302:5;10278:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10278:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10278:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10278:30:0;;;;;;;;;;;;;;;;10270:39;;;;;;10242:67;9611:705;;;;;;;;:::o;1322:77::-;1361:6;1386;;;;;;;;;;;1379:13;;1322:77;:::o;2181:571::-;2230:14;2247:10;2230:27;;2267:23;2293:10;:18;2304:6;2293:18;;;;;;;;;;;;;;;2267:44;;2321:15;2339:7;:13;;:21;2353:6;2339:21;;;;;;;;;;;;;;;2321:39;;2393:1;2378:3;:11;;;:16;;2370:25;;;;;;2439:1;2409:32;;:3;:11;;;;;;;;;;;;:32;;;2405:76;;2474:6;2460:21;;2466:6;2460:21;;;;;;;;;;;;2405:76;2491:11;2505:7;:13;;2542:1;2519:7;:13;;:20;;;;:24;2505:39;;;;;;;;;;;;;;;;;;;;;;;;;2491:53;;2583:3;:11;;;2554:7;:13;;:18;2568:3;2554:18;;;;;;;;;;;;;;;:26;;:40;;;;2637:3;2604:7;:13;;2632:1;2618:3;:11;;;:15;2604:30;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;2652:7;:13;;2650:22;;;;;;;;;;;:::i;:::-;;2689:7;:13;;:21;2703:6;2689:21;;;;;;;;;;;;;;;;2682:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;2720:25;2725:6;2733;2741:3;2720:4;:25::i;:::-;2181:571;;;;;:::o;8979:208::-;9095:14;9112:10;9095:27;;9132:48;9137:6;9145;9153:9;9164:6;9172:7;;9132:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;9132:48:0;;;;;;:4;:48::i;:::-;8979:208;;;;;;:::o;9194:214::-;9243:14;9260:10;9243:27;;9280:15;9298:20;9303:6;9311;9298:4;:20::i;:::-;9280:38;;9360:6;9342:15;:24;9328:3;:11;;:38;;;;9376:25;9381:6;9389;9397:3;9376:4;:25::i;:::-;9194:214;;;:::o;9414:191::-;9463:14;9480:10;9463:27;;9500:15;9518:20;9523:6;9531;9518:4;:20::i;:::-;9500:38;;9562:1;9548:3;:11;;:15;;;;9573:25;9578:6;9586;9594:3;9573:4;:25::i;:::-;9414:191;;;:::o;5143:424::-;5238:14;5255:10;5238:27;;5275:15;5293:20;5298:6;5306;5293:4;:20::i;:::-;5275:38;;5346:1;5331:3;:11;;;;;;;;;;;;:16;;;5323:25;;;;;;5359:16;5420:6;5408:19;5396:31;;5453:6;5439:3;:11;;;:20;;;;;;;;;;;;;;;;;;5485:8;5469:3;:13;;:24;;;;5517:6;;5503:3;:11;;:20;;;;;;;:::i;:::-;;5553:6;5539:21;;5545:6;5539:21;;;;;;;;;;;;5143:424;;;;;;;:::o;2038:137::-;2106:11;2136:10;:18;2147:6;2136:18;;;;;;;;;;;;;;;:24;;:32;2161:6;2136:32;;;;;;;;;;;;;;;2129:39;;2038:137;;;;:::o;1730:154::-;1831:6;1816:61;;1823:6;1816:61;;;1839:3;:11;;;;;;;;;;;;1852:3;:11;;;;;;;;;;;;1865:3;:11;;;1816:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1730:154;;;:::o;5694:1083::-;5823:15;5841:20;5846:6;5854;5841:4;:20::i;:::-;5823:38;;5872:13;5888:3;:11;;;;;;;;;;;;5872:27;;5923:6;5914:15;;:5;:15;;;5910:331;;5954:6;5945:15;;;;5988:5;5974:3;:11;;;:19;;;;;;;;;;;;;;;;;;6027:6;6012:55;;6019:6;6012:55;;;6035:5;6042:3;:11;;;;;;;;;;;;6055:3;:11;;;6012:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5910:331;;;6107:5;6098:14;;6140:1;6126:3;:11;;;:15;;;;;;;;;;;;;;;;;;6169:1;6155:3;:11;;;:15;;;;;;;;;;;;;;;;;;6204:6;6189:41;;6196:6;6189:41;;;6212:1;6215;6218:3;:11;;;6189:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5910:331;6251:21;6275:3;:11;;;;;;;;;;;;6251:35;;6296:16;6322:19;6380:1;6355:27;;:6;:27;;;6351:116;;6409:3;:13;;;6398:24;;6445:3;:11;;6436:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6351:116;6491:1;6481:6;:11;;;6477:72;;6514:6;;;;;;;;;;;:15;;;6530:9;6541:6;6514:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6514:34:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6514:34:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6514:34:0;;;;;;;;;;;;;;;;6506:43;;;;;;6477:72;6589:1;6564:27;;:6;:27;;;6560:211;;6607:15;6658:6;6646:19;6635:30;;6696:7;6684:8;:19;6680:80;;;6721:6;:11;;;6733:6;6741:9;6752:7;6721:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;6721:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;6721:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6721:39:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6721:39:0;;;;6680:80;6560:211;;5694:1083;;;;;;;;;;:::o;1193:9623::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

bzzr://c9bf82b853458d8c02c2b7b81698742d5ee966eeefc4c7336cd65a429f2ba774

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.