ETH Price: $1,586.09 (-3.30%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer Any ERC...178800102023-08-09 21:25:47621 days ago1691616347IN
0x7e952f0b...5d382975f
0 ETH0.0012522319.02367259
Transfer Any ERC...178800062023-08-09 21:24:59621 days ago1691616299IN
0x7e952f0b...5d382975f
0 ETH0.0012427818.89039468
Transfer Any ERC...178799972023-08-09 21:23:11621 days ago1691616191IN
0x7e952f0b...5d382975f
0 ETH0.0012157518.48639471
Deposit178787012023-08-09 17:01:47621 days ago1691600507IN
0x7e952f0b...5d382975f
0 ETH0.0193834452.63579258
Deposit178779182023-08-09 14:23:11621 days ago1691590991IN
0x7e952f0b...5d382975f
0 ETH0.0083280424.93099585
Deposit178769682023-08-09 11:12:11621 days ago1691579531IN
0x7e952f0b...5d382975f
0 ETH0.0077896918.70436394

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
StaXeStaking

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2023-08-09
*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.19;

interface IERC20 {
    function balanceOf(address account) external view returns (uint);

    function transfer(address recipient, uint amount) external returns (bool);

    function transferFrom(address sender, address recipient, uint amount) external returns (bool);
}

abstract contract Context {
    function _msgSender() internal view returns (address) {
        return msg.sender;
    }
}

abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() {
        _transferOwnership(_msgSender());
    }

    modifier onlyOwner() {
        _checkOwner();
        _;
    }

    function owner() public view returns (address) {
        return _owner;
    }

    function _checkOwner() private view {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    function renounceOwnership() external onlyOwner {
        _transferOwnership(address(0));
    }

    function transferOwnership(address newOwner) external onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

abstract contract ReentrancyGuard {
    uint private constant _NOT_ENTERED = 1;
    uint private constant _ENTERED = 2;

    uint private _status;

    constructor() {
        _status = _NOT_ENTERED;
    }

    modifier nonReentrant() {
        _nonReentrantBefore();
        _;
        _nonReentrantAfter();
    }

    function _nonReentrantBefore() private {
        require(_status != _ENTERED, "ReentrancyGuard: reentrant call");

        _status = _ENTERED;
    }

    function _nonReentrantAfter() private {
        _status = _NOT_ENTERED;
    }

    function _reentrancyGuardEntered() private view returns (bool) {
        return _status == _ENTERED;
    }
}


contract StaXeStaking is Ownable, ReentrancyGuard { 
    struct PoolInfo {
        uint lockupDuration;
        uint returnPer;
    }
    struct OrderInfo {
        address beneficiary;
        uint amount;
        uint lockupDuration;
        uint returnPer;
        uint starttime;
        uint endtime;
        uint claimedReward;
        bool claimed;
    }
     uint private constant _days7 = 7 days;
    uint private constant _days14 = 14 days;
    uint private constant _days30 = 30 days;
     uint256 private constant _days365 = 31536000;
    IERC20 public token;
    bool private  started = true;
    uint public emergencyWithdrawFees = 15;
    uint private latestOrderId = 0;
    uint public totalStakers ; // use 
     uint public totalStaked ; // use 


    mapping(uint => PoolInfo) public pooldata;
    mapping(address => uint) public balanceOf;
    mapping(address => uint) public totalRewardEarn;
    mapping(uint => OrderInfo) public orders;
    mapping(address => uint[]) private orderIds;
    mapping(address => mapping(uint => bool)) public hasStaked;
    mapping(uint => uint) public stakeOnPool;
    mapping(uint => uint) public rewardOnPool;
    mapping(uint => uint) public stakersPlan;
     


    event Deposit(address indexed user, uint indexed lockupDuration, uint amount, uint returnPer);
    event Withdraw(address indexed user, uint amount, uint reward, uint total);
    event WithdrawAll(address indexed user, uint amount);
    event RewardClaimed(address indexed user, uint reward);

    constructor(address _token) {
        token = IERC20(_token);

        pooldata[1].lockupDuration = 1 minutes; // no lock time
        pooldata[1].returnPer = 12;

        pooldata[7].lockupDuration = _days7; // 7 days
        pooldata[7].returnPer = 33;

        pooldata[14].lockupDuration = _days14; // 14 days
        pooldata[14].returnPer = 55;

        pooldata[30].lockupDuration = _days30; // 7 days
        pooldata[30].returnPer = 92;

    }

    function deposit(uint _amount, uint _lockupDuration) external {

        PoolInfo storage pool = pooldata[_lockupDuration];
        require(pool.lockupDuration > 0, "TokenStaking: asked pool does not exist");
        require(started, "TokenStaking: staking not yet started");
        require(_amount > 0, "TokenStaking: stake amount must be non zero");
        require(token.transferFrom(_msgSender(), address(this), _amount), "TokenStaking: token transferFrom via deposit not succeeded");

        orders[++latestOrderId] = OrderInfo( 
            _msgSender(),
            _amount,
            pool.lockupDuration,
            pool.returnPer,
            block.timestamp,
            block.timestamp + pool.lockupDuration,
            0,
            false
        );

        
         if (!hasStaked[msg.sender][_lockupDuration]) {
             stakersPlan[_lockupDuration] = stakersPlan[_lockupDuration] + 1;
             totalStakers = totalStakers + 1 ;
        }

        //updating staking status
        
        hasStaked[msg.sender][_lockupDuration] = true;
        stakeOnPool[_lockupDuration] = stakeOnPool[_lockupDuration] + _amount ;
        totalStaked = totalStaked + _amount ;
        balanceOf[_msgSender()] += _amount;
        orderIds[_msgSender()].push(latestOrderId); 
        emit Deposit(_msgSender(), pool.lockupDuration, _amount, pool.returnPer);
    }

    function withdraw(uint orderId) external nonReentrant {
        require(orderId <= latestOrderId, "TokenStaking: INVALID orderId, orderId greater than latestOrderId");

        OrderInfo storage orderInfo = orders[orderId]; 
        require(_msgSender() == orderInfo.beneficiary, "TokenStaking: caller is not the beneficiary");
        require(!orderInfo.claimed, "TokenStaking: order already unstaked");
        require(block.timestamp >= orderInfo.endtime, "TokenStaking: stake locked until lock duration completion");

        uint claimAvailable = pendingRewards(orderId);
        uint total = orderInfo.amount + claimAvailable;

        totalRewardEarn[_msgSender()] += claimAvailable; 
        
        orderInfo.claimedReward += claimAvailable;
        balanceOf[_msgSender()] -= orderInfo.amount; 
        orderInfo.claimed = true;

        require(token.transfer(address(_msgSender()), total), "TokenStaking: token transfer via withdraw not succeeded");
       rewardOnPool[orderInfo.lockupDuration] = rewardOnPool[orderInfo.lockupDuration] + claimAvailable ;
        emit Withdraw(_msgSender(), orderInfo.amount, claimAvailable, total);
    }


    function emergencyWithdraw(uint orderId) external nonReentrant {
        require(orderId <= latestOrderId, "TokenStaking: INVALID orderId, orderId greater than latestOrderId");

        OrderInfo storage orderInfo = orders[orderId]; 
        require(_msgSender() == orderInfo.beneficiary, "TokenStaking: caller is not the beneficiary");
        require(!orderInfo.claimed, "TokenStaking: order already unstaked");

        uint claimAvailable = pendingRewards(orderId);
        uint fees = (orderInfo.amount * emergencyWithdrawFees) / 100; 
        orderInfo.amount -= fees; 
        uint total = orderInfo.amount + claimAvailable;

        totalRewardEarn[_msgSender()] += claimAvailable; 
    
        orderInfo.claimedReward += claimAvailable;


        balanceOf[_msgSender()] -= (orderInfo.amount + fees); 
      
        orderInfo.claimed = true;

        require(token.transfer(address(_msgSender()), total), "TokenStaking: token transfer via emergency withdraw not succeeded");
        rewardOnPool[orderInfo.lockupDuration] = rewardOnPool[orderInfo.lockupDuration] + claimAvailable ;
        emit WithdrawAll(_msgSender(), total);
    }

    function claimRewards(uint orderId) external nonReentrant {
        require(orderId <= latestOrderId, "TokenStaking: INVALID orderId, orderId greater than latestOrderId");

        OrderInfo storage orderInfo = orders[orderId];
        require(_msgSender() == orderInfo.beneficiary, "TokenStaking: caller is not the beneficiary");
        require(!orderInfo.claimed, "TokenStaking: order already unstaked");

        uint claimAvailable = pendingRewards(orderId);
        totalRewardEarn[_msgSender()] += claimAvailable;
       
        orderInfo.claimedReward += claimAvailable;

        require(token.transfer(address(_msgSender()), claimAvailable), "TokenStaking: token transfer via claim rewards not succeeded");
        rewardOnPool[orderInfo.lockupDuration] = rewardOnPool[orderInfo.lockupDuration] + claimAvailable ;
        emit RewardClaimed(address(_msgSender()), claimAvailable);
    }

    function pendingRewards(uint orderId) public view returns (uint) {
        require(orderId <= latestOrderId, "TokenStaking: INVALID orderId, orderId greater than latestOrderId");

        OrderInfo storage orderInfo = orders[orderId];
        if (!orderInfo.claimed) {
            if (block.timestamp >= orderInfo.endtime) {
                uint APY = (orderInfo.amount * orderInfo.returnPer) / 100;
                uint reward = (APY * orderInfo.lockupDuration) / _days365;
                uint claimAvailable = reward - orderInfo.claimedReward;
                return claimAvailable;
            } else {
                uint stakeTime = block.timestamp - orderInfo.starttime;
                uint APY = (orderInfo.amount * orderInfo.returnPer) / 100;
                uint reward = (APY * stakeTime) / _days365;
                uint claimAvailableNow = reward - orderInfo.claimedReward;
                return claimAvailableNow;
            }
        } else {
            return 0;
        }
    }

    function toggleStaking(bool _start) external onlyOwner returns (bool) {
        started = _start;
        return true;
    }

    function investorOrderIds(address investor) external view returns (uint[] memory ids)
    {
        uint[] memory arr = orderIds[investor];
        return arr;
    }





 function updatePlans(uint256 _plan1Days , uint256 _plan2Days , uint256 _plan3Days , uint256 _plan1APY ,uint256 _plan2APY  , uint256 _plan3APY) public onlyOwner {
      

        pooldata[7].lockupDuration = _plan1Days; // 7 days
        pooldata[7].returnPer = _plan1APY;

        pooldata[14].lockupDuration = _plan2Days; // 14 days
        pooldata[14].returnPer = _plan2APY;

        pooldata[30].lockupDuration = _plan3Days; // 30 days
        pooldata[30].returnPer = _plan3APY;
    
    }
    function transferAnyERC20Token(address payaddress, address tokenAddress, uint amount) external onlyOwner {
        IERC20(tokenAddress).transfer(payaddress, amount);
    }

    
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"lockupDuration","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"returnPer","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"}],"name":"RewardClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"total","type":"uint256"}],"name":"Withdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"WithdrawAll","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"orderId","type":"uint256"}],"name":"claimRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint256","name":"_lockupDuration","type":"uint256"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"orderId","type":"uint256"}],"name":"emergencyWithdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"emergencyWithdrawFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"hasStaked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"investor","type":"address"}],"name":"investorOrderIds","outputs":[{"internalType":"uint256[]","name":"ids","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"orders","outputs":[{"internalType":"address","name":"beneficiary","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"lockupDuration","type":"uint256"},{"internalType":"uint256","name":"returnPer","type":"uint256"},{"internalType":"uint256","name":"starttime","type":"uint256"},{"internalType":"uint256","name":"endtime","type":"uint256"},{"internalType":"uint256","name":"claimedReward","type":"uint256"},{"internalType":"bool","name":"claimed","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"orderId","type":"uint256"}],"name":"pendingRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"pooldata","outputs":[{"internalType":"uint256","name":"lockupDuration","type":"uint256"},{"internalType":"uint256","name":"returnPer","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"rewardOnPool","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"stakeOnPool","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"stakersPlan","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_start","type":"bool"}],"name":"toggleStaking","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"totalRewardEarn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalStaked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalStakers","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"payaddress","type":"address"},{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferAnyERC20Token","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_plan1Days","type":"uint256"},{"internalType":"uint256","name":"_plan2Days","type":"uint256"},{"internalType":"uint256","name":"_plan3Days","type":"uint256"},{"internalType":"uint256","name":"_plan1APY","type":"uint256"},{"internalType":"uint256","name":"_plan2APY","type":"uint256"},{"internalType":"uint256","name":"_plan3APY","type":"uint256"}],"name":"updatePlans","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"orderId","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040526001600260146101000a81548160ff021916908315150217905550600f60035560006004553480156200003657600080fd5b50604051620030a5380380620030a583398181016040528101906200005c9190620002ef565b6200007c62000070620001b960201b60201c565b620001c160201b60201c565b6001808190555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550603c600760006001815260200190815260200160002060000181905550600c60076000600181526020019081526020016000206001018190555062093a8060076000600781526020019081526020016000206000018190555060216007600060078152602001908152602001600020600101819055506212750060076000600e815260200190815260200160002060000181905550603760076000600e81526020019081526020016000206001018190555062278d0060076000601e815260200190815260200160002060000181905550605c60076000601e8152602001908152602001600020600101819055505062000321565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620002b7826200028a565b9050919050565b620002c981620002aa565b8114620002d557600080fd5b50565b600081519050620002e981620002be565b92915050565b60006020828403121562000308576200030762000285565b5b60006200031884828501620002d8565b91505092915050565b612d7480620003316000396000f3fe608060405234801561001057600080fd5b50600436106101585760003560e01c80638da5cb5b116100c3578063da4b2e751161007c578063da4b2e75146103f2578063e2bbb15814610422578063f2fde38b1461043e578063fa1e15141461045a578063fc0c546a1461048a578063fce50f17146104a857610158565b80638da5cb5b14610317578063a85c38ef14610335578063a93cdf501461036c578063aa6049471461038a578063ce41a4ab146103ba578063d493b9ac146103d657610158565b806370a082311161011557806370a0823114610241578063715018a614610271578063799102a21461027b5780637dcb2abf146102ab578063817b1cd2146102db57806386989038146102f957610158565b80630962ef791461015d5780631a6c5e7e146101795780632c26afae146101a95780632e1a7d4d146101d95780635312ea8e146101f55780636980598114610211575b600080fd5b61017760048036038101906101729190611ddb565b6104d9565b005b610193600480360381019061018e9190611ddb565b610833565b6040516101a09190611e17565b60405180910390f35b6101c360048036038101906101be9190611ddb565b61084b565b6040516101d09190611e17565b60405180910390f35b6101f360048036038101906101ee9190611ddb565b610863565b005b61020f600480360381019061020a9190611ddb565b610c9f565b005b61022b60048036038101906102269190611e6a565b6110d5565b6040516102389190611ea6565b60405180910390f35b61025b60048036038101906102569190611f1f565b611102565b6040516102689190611e17565b60405180910390f35b61027961111a565b005b61029560048036038101906102909190611ddb565b61112e565b6040516102a29190611e17565b60405180910390f35b6102c560048036038101906102c09190611ddb565b611146565b6040516102d29190611e17565b60405180910390f35b6102e36112af565b6040516102f09190611e17565b60405180910390f35b6103016112b5565b60405161030e9190611e17565b60405180910390f35b61031f6112bb565b60405161032c9190611f5b565b60405180910390f35b61034f600480360381019061034a9190611ddb565b6112e4565b604051610363989796959493929190611f76565b60405180910390f35b610374611359565b6040516103819190611e17565b60405180910390f35b6103a4600480360381019061039f9190611f1f565b61135f565b6040516103b191906120b2565b60405180910390f35b6103d460048036038101906103cf91906120d4565b6113fc565b005b6103f060048036038101906103eb9190612161565b6114b4565b005b61040c600480360381019061040791906121b4565b611540565b6040516104199190611ea6565b60405180910390f35b61043c600480360381019061043791906121f4565b61156f565b005b61045860048036038101906104539190611f1f565b611b19565b005b610474600480360381019061046f9190611f1f565b611b9c565b6040516104819190611e17565b60405180910390f35b610492611bb4565b60405161049f9190612293565b60405180910390f35b6104c260048036038101906104bd9190611ddb565b611bda565b6040516104d09291906122ae565b60405180910390f35b6104e1611bfe565b600454811115610526576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161051d90612380565b60405180910390fd5b6000600a600083815260200190815260200160002090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610580611c4d565b73ffffffffffffffffffffffffffffffffffffffff16146105d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105cd90612412565b60405180910390fd5b8060070160009054906101000a900460ff1615610628576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061f906124a4565b60405180910390fd5b600061063383611146565b90508060096000610642611c4d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461068b91906124f3565b92505081905550808260060160008282546106a691906124f3565b92505081905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6106f3611c4d565b836040518363ffffffff1660e01b8152600401610711929190612527565b6020604051808303816000875af1158015610730573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107549190612565565b610793576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078a90612604565b60405180910390fd5b80600e600084600201548152602001908152602001600020546107b691906124f3565b600e600084600201548152602001908152602001600020819055506107d9611c4d565b73ffffffffffffffffffffffffffffffffffffffff167f106f923f993c2149d49b4255ff723acafa1f2d94393f561d3eda32ae348f72418260405161081e9190611e17565b60405180910390a25050610830611c55565b50565b600e6020528060005260406000206000915090505481565b600f6020528060005260406000206000915090505481565b61086b611bfe565b6004548111156108b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a790612380565b60405180910390fd5b6000600a600083815260200190815260200160002090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661090a611c4d565b73ffffffffffffffffffffffffffffffffffffffff1614610960576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095790612412565b60405180910390fd5b8060070160009054906101000a900460ff16156109b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a9906124a4565b60405180910390fd5b80600501544210156109f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f090612696565b60405180910390fd5b6000610a0483611146565b90506000818360010154610a1891906124f3565b90508160096000610a27611c4d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610a7091906124f3565b9250508190555081836006016000828254610a8b91906124f3565b92505081905550826001015460086000610aa3611c4d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610aec91906126b6565b9250508190555060018360070160006101000a81548160ff021916908315150217905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb610b56611c4d565b836040518363ffffffff1660e01b8152600401610b74929190612527565b6020604051808303816000875af1158015610b93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb79190612565565b610bf6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bed9061275c565b60405180910390fd5b81600e60008560020154815260200190815260200160002054610c1991906124f3565b600e60008560020154815260200190815260200160002081905550610c3c611c4d565b73ffffffffffffffffffffffffffffffffffffffff167f02f25270a4d87bea75db541cdfe559334a275b4a233520ed6c0a2429667cca9484600101548484604051610c899392919061277c565b60405180910390a2505050610c9c611c55565b50565b610ca7611bfe565b600454811115610cec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce390612380565b60405180910390fd5b6000600a600083815260200190815260200160002090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d46611c4d565b73ffffffffffffffffffffffffffffffffffffffff1614610d9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9390612412565b60405180910390fd5b8060070160009054906101000a900460ff1615610dee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de5906124a4565b60405180910390fd5b6000610df983611146565b9050600060646003548460010154610e1191906127b3565b610e1b9190612824565b905080836001016000828254610e3191906126b6565b925050819055506000828460010154610e4a91906124f3565b90508260096000610e59611c4d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610ea291906124f3565b9250508190555082846006016000828254610ebd91906124f3565b92505081905550818460010154610ed491906124f3565b60086000610ee0611c4d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610f2991906126b6565b9250508190555060018460070160006101000a81548160ff021916908315150217905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb610f93611c4d565b836040518363ffffffff1660e01b8152600401610fb1929190612527565b6020604051808303816000875af1158015610fd0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff49190612565565b611033576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102a906128ed565b60405180910390fd5b82600e6000866002015481526020019081526020016000205461105691906124f3565b600e60008660020154815260200190815260200160002081905550611079611c4d565b73ffffffffffffffffffffffffffffffffffffffff167fd7a4aa9f3dca5f6606ac15d7e1850920201bbb02c38cd986793779f58ae0dfd3826040516110be9190611e17565b60405180910390a2505050506110d2611c55565b50565b60006110df611c5e565b81600260146101000a81548160ff02191690831515021790555060019050919050565b60086020528060005260406000206000915090505481565b611122611c5e565b61112c6000611cdc565b565b600d6020528060005260406000206000915090505481565b600060045482111561118d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118490612380565b60405180910390fd5b6000600a600084815260200190815260200160002090508060070160009054906101000a900460ff166112a4578060050154421061122c5760006064826003015483600101546111dd91906127b3565b6111e79190612824565b905060006301e1338083600201548361120091906127b3565b61120a9190612824565b9050600083600601548261121e91906126b6565b9050809450505050506112aa565b600081600401544261123e91906126b6565b9050600060648360030154846001015461125891906127b3565b6112629190612824565b905060006301e13380838361127791906127b3565b6112819190612824565b9050600084600601548261129591906126b6565b905080955050505050506112aa565b60009150505b919050565b60065481565b60055481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600a6020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020154908060030154908060040154908060050154908060060154908060070160009054906101000a900460ff16905088565b60035481565b60606000600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054806020026020016040519081016040528092919081815260200182805480156113ec57602002820191906000526020600020905b8154815260200190600101908083116113d8575b5050505050905080915050919050565b611404611c5e565b85600760006007815260200190815260200160002060000181905550826007600060078152602001908152602001600020600101819055508460076000600e8152602001908152602001600020600001819055508160076000600e8152602001908152602001600020600101819055508360076000601e8152602001908152602001600020600001819055508060076000601e815260200190815260200160002060010181905550505050505050565b6114bc611c5e565b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84836040518363ffffffff1660e01b81526004016114f7929190612527565b6020604051808303816000875af1158015611516573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061153a9190612565565b50505050565b600c6020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b600060076000838152602001908152602001600020905060008160000154116115cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c49061297f565b60405180910390fd5b600260149054906101000a900460ff1661161c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161390612a11565b60405180910390fd5b6000831161165f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165690612aa3565b60405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd6116a5611c4d565b30866040518463ffffffff1660e01b81526004016116c593929190612ac3565b6020604051808303816000875af11580156116e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117089190612565565b611747576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173e90612b6c565b60405180910390fd5b60405180610100016040528061175b611c4d565b73ffffffffffffffffffffffffffffffffffffffff16815260200184815260200182600001548152602001826001015481526020014281526020018260000154426117a691906124f3565b81526020016000815260200160001515815250600a60006004600081546117cc90612b8c565b919050819055815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e08201518160070160006101000a81548160ff021916908315150217905550905050600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060009054906101000a900460ff16611935576001600f60008481526020019081526020016000205461190891906124f3565b600f600084815260200190815260200160002081905550600160055461192e91906124f3565b6005819055505b6001600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002060006101000a81548160ff02191690831515021790555082600d6000848152602001908152602001600020546119bd91906124f3565b600d600084815260200190815260200160002081905550826006546119e291906124f3565b60068190555082600860006119f5611c4d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611a3e91906124f3565b92505081905550600b6000611a51611c4d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060045490806001815401808255809150506001900390600052602060002001600090919091909150558060000154611ac1611c4d565b73ffffffffffffffffffffffffffffffffffffffff167f36af321ec8d3c75236829c5317affd40ddb308863a1236d2d277a4025cccee1e858460010154604051611b0c9291906122ae565b60405180910390a3505050565b611b21611c5e565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611b90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8790612c46565b60405180910390fd5b611b9981611cdc565b50565b60096020528060005260406000206000915090505481565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60076020528060005260406000206000915090508060000154908060010154905082565b600260015403611c43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3a90612cb2565b60405180910390fd5b6002600181905550565b600033905090565b60018081905550565b611c66611c4d565b73ffffffffffffffffffffffffffffffffffffffff16611c846112bb565b73ffffffffffffffffffffffffffffffffffffffff1614611cda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cd190612d1e565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b6000819050919050565b611db881611da5565b8114611dc357600080fd5b50565b600081359050611dd581611daf565b92915050565b600060208284031215611df157611df0611da0565b5b6000611dff84828501611dc6565b91505092915050565b611e1181611da5565b82525050565b6000602082019050611e2c6000830184611e08565b92915050565b60008115159050919050565b611e4781611e32565b8114611e5257600080fd5b50565b600081359050611e6481611e3e565b92915050565b600060208284031215611e8057611e7f611da0565b5b6000611e8e84828501611e55565b91505092915050565b611ea081611e32565b82525050565b6000602082019050611ebb6000830184611e97565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611eec82611ec1565b9050919050565b611efc81611ee1565b8114611f0757600080fd5b50565b600081359050611f1981611ef3565b92915050565b600060208284031215611f3557611f34611da0565b5b6000611f4384828501611f0a565b91505092915050565b611f5581611ee1565b82525050565b6000602082019050611f706000830184611f4c565b92915050565b600061010082019050611f8c600083018b611f4c565b611f99602083018a611e08565b611fa66040830189611e08565b611fb36060830188611e08565b611fc06080830187611e08565b611fcd60a0830186611e08565b611fda60c0830185611e08565b611fe760e0830184611e97565b9998505050505050505050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61202981611da5565b82525050565b600061203b8383612020565b60208301905092915050565b6000602082019050919050565b600061205f82611ff4565b6120698185611fff565b935061207483612010565b8060005b838110156120a557815161208c888261202f565b975061209783612047565b925050600181019050612078565b5085935050505092915050565b600060208201905081810360008301526120cc8184612054565b905092915050565b60008060008060008060c087890312156120f1576120f0611da0565b5b60006120ff89828a01611dc6565b965050602061211089828a01611dc6565b955050604061212189828a01611dc6565b945050606061213289828a01611dc6565b935050608061214389828a01611dc6565b92505060a061215489828a01611dc6565b9150509295509295509295565b60008060006060848603121561217a57612179611da0565b5b600061218886828701611f0a565b935050602061219986828701611f0a565b92505060406121aa86828701611dc6565b9150509250925092565b600080604083850312156121cb576121ca611da0565b5b60006121d985828601611f0a565b92505060206121ea85828601611dc6565b9150509250929050565b6000806040838503121561220b5761220a611da0565b5b600061221985828601611dc6565b925050602061222a85828601611dc6565b9150509250929050565b6000819050919050565b600061225961225461224f84611ec1565b612234565b611ec1565b9050919050565b600061226b8261223e565b9050919050565b600061227d82612260565b9050919050565b61228d81612272565b82525050565b60006020820190506122a86000830184612284565b92915050565b60006040820190506122c36000830185611e08565b6122d06020830184611e08565b9392505050565b600082825260208201905092915050565b7f546f6b656e5374616b696e673a20494e56414c4944206f7264657249642c206f60008201527f7264657249642067726561746572207468616e206c61746573744f726465724960208201527f6400000000000000000000000000000000000000000000000000000000000000604082015250565b600061236a6041836122d7565b9150612375826122e8565b606082019050919050565b600060208201905081810360008301526123998161235d565b9050919050565b7f546f6b656e5374616b696e673a2063616c6c6572206973206e6f74207468652060008201527f62656e6566696369617279000000000000000000000000000000000000000000602082015250565b60006123fc602b836122d7565b9150612407826123a0565b604082019050919050565b6000602082019050818103600083015261242b816123ef565b9050919050565b7f546f6b656e5374616b696e673a206f7264657220616c726561647920756e737460008201527f616b656400000000000000000000000000000000000000000000000000000000602082015250565b600061248e6024836122d7565b915061249982612432565b604082019050919050565b600060208201905081810360008301526124bd81612481565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006124fe82611da5565b915061250983611da5565b9250828201905080821115612521576125206124c4565b5b92915050565b600060408201905061253c6000830185611f4c565b6125496020830184611e08565b9392505050565b60008151905061255f81611e3e565b92915050565b60006020828403121561257b5761257a611da0565b5b600061258984828501612550565b91505092915050565b7f546f6b656e5374616b696e673a20746f6b656e207472616e736665722076696160008201527f20636c61696d2072657761726473206e6f742073756363656564656400000000602082015250565b60006125ee603c836122d7565b91506125f982612592565b604082019050919050565b6000602082019050818103600083015261261d816125e1565b9050919050565b7f546f6b656e5374616b696e673a207374616b65206c6f636b656420756e74696c60008201527f206c6f636b206475726174696f6e20636f6d706c6574696f6e00000000000000602082015250565b60006126806039836122d7565b915061268b82612624565b604082019050919050565b600060208201905081810360008301526126af81612673565b9050919050565b60006126c182611da5565b91506126cc83611da5565b92508282039050818111156126e4576126e36124c4565b5b92915050565b7f546f6b656e5374616b696e673a20746f6b656e207472616e736665722076696160008201527f207769746864726177206e6f7420737563636565646564000000000000000000602082015250565b60006127466037836122d7565b9150612751826126ea565b604082019050919050565b6000602082019050818103600083015261277581612739565b9050919050565b60006060820190506127916000830186611e08565b61279e6020830185611e08565b6127ab6040830184611e08565b949350505050565b60006127be82611da5565b91506127c983611da5565b92508282026127d781611da5565b915082820484148315176127ee576127ed6124c4565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061282f82611da5565b915061283a83611da5565b92508261284a576128496127f5565b5b828204905092915050565b7f546f6b656e5374616b696e673a20746f6b656e207472616e736665722076696160008201527f20656d657267656e6379207769746864726177206e6f7420737563636565646560208201527f6400000000000000000000000000000000000000000000000000000000000000604082015250565b60006128d76041836122d7565b91506128e282612855565b606082019050919050565b60006020820190508181036000830152612906816128ca565b9050919050565b7f546f6b656e5374616b696e673a2061736b656420706f6f6c20646f6573206e6f60008201527f7420657869737400000000000000000000000000000000000000000000000000602082015250565b60006129696027836122d7565b91506129748261290d565b604082019050919050565b600060208201905081810360008301526129988161295c565b9050919050565b7f546f6b656e5374616b696e673a207374616b696e67206e6f742079657420737460008201527f6172746564000000000000000000000000000000000000000000000000000000602082015250565b60006129fb6025836122d7565b9150612a068261299f565b604082019050919050565b60006020820190508181036000830152612a2a816129ee565b9050919050565b7f546f6b656e5374616b696e673a207374616b6520616d6f756e74206d7573742060008201527f6265206e6f6e207a65726f000000000000000000000000000000000000000000602082015250565b6000612a8d602b836122d7565b9150612a9882612a31565b604082019050919050565b60006020820190508181036000830152612abc81612a80565b9050919050565b6000606082019050612ad86000830186611f4c565b612ae56020830185611f4c565b612af26040830184611e08565b949350505050565b7f546f6b656e5374616b696e673a20746f6b656e207472616e7366657246726f6d60008201527f20766961206465706f736974206e6f7420737563636565646564000000000000602082015250565b6000612b56603a836122d7565b9150612b6182612afa565b604082019050919050565b60006020820190508181036000830152612b8581612b49565b9050919050565b6000612b9782611da5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612bc957612bc86124c4565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612c306026836122d7565b9150612c3b82612bd4565b604082019050919050565b60006020820190508181036000830152612c5f81612c23565b9050919050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b6000612c9c601f836122d7565b9150612ca782612c66565b602082019050919050565b60006020820190508181036000830152612ccb81612c8f565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612d086020836122d7565b9150612d1382612cd2565b602082019050919050565b60006020820190508181036000830152612d3781612cfb565b905091905056fea26469706673582212209d6499e36f3e1a52af7e9ae2540c7a55bde22b81a05846970c9afee7ce694eac64736f6c634300081300330000000000000000000000007561c96963dbad4fd7d0298fa0a37047adfc02fb

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101585760003560e01c80638da5cb5b116100c3578063da4b2e751161007c578063da4b2e75146103f2578063e2bbb15814610422578063f2fde38b1461043e578063fa1e15141461045a578063fc0c546a1461048a578063fce50f17146104a857610158565b80638da5cb5b14610317578063a85c38ef14610335578063a93cdf501461036c578063aa6049471461038a578063ce41a4ab146103ba578063d493b9ac146103d657610158565b806370a082311161011557806370a0823114610241578063715018a614610271578063799102a21461027b5780637dcb2abf146102ab578063817b1cd2146102db57806386989038146102f957610158565b80630962ef791461015d5780631a6c5e7e146101795780632c26afae146101a95780632e1a7d4d146101d95780635312ea8e146101f55780636980598114610211575b600080fd5b61017760048036038101906101729190611ddb565b6104d9565b005b610193600480360381019061018e9190611ddb565b610833565b6040516101a09190611e17565b60405180910390f35b6101c360048036038101906101be9190611ddb565b61084b565b6040516101d09190611e17565b60405180910390f35b6101f360048036038101906101ee9190611ddb565b610863565b005b61020f600480360381019061020a9190611ddb565b610c9f565b005b61022b60048036038101906102269190611e6a565b6110d5565b6040516102389190611ea6565b60405180910390f35b61025b60048036038101906102569190611f1f565b611102565b6040516102689190611e17565b60405180910390f35b61027961111a565b005b61029560048036038101906102909190611ddb565b61112e565b6040516102a29190611e17565b60405180910390f35b6102c560048036038101906102c09190611ddb565b611146565b6040516102d29190611e17565b60405180910390f35b6102e36112af565b6040516102f09190611e17565b60405180910390f35b6103016112b5565b60405161030e9190611e17565b60405180910390f35b61031f6112bb565b60405161032c9190611f5b565b60405180910390f35b61034f600480360381019061034a9190611ddb565b6112e4565b604051610363989796959493929190611f76565b60405180910390f35b610374611359565b6040516103819190611e17565b60405180910390f35b6103a4600480360381019061039f9190611f1f565b61135f565b6040516103b191906120b2565b60405180910390f35b6103d460048036038101906103cf91906120d4565b6113fc565b005b6103f060048036038101906103eb9190612161565b6114b4565b005b61040c600480360381019061040791906121b4565b611540565b6040516104199190611ea6565b60405180910390f35b61043c600480360381019061043791906121f4565b61156f565b005b61045860048036038101906104539190611f1f565b611b19565b005b610474600480360381019061046f9190611f1f565b611b9c565b6040516104819190611e17565b60405180910390f35b610492611bb4565b60405161049f9190612293565b60405180910390f35b6104c260048036038101906104bd9190611ddb565b611bda565b6040516104d09291906122ae565b60405180910390f35b6104e1611bfe565b600454811115610526576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161051d90612380565b60405180910390fd5b6000600a600083815260200190815260200160002090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610580611c4d565b73ffffffffffffffffffffffffffffffffffffffff16146105d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105cd90612412565b60405180910390fd5b8060070160009054906101000a900460ff1615610628576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061f906124a4565b60405180910390fd5b600061063383611146565b90508060096000610642611c4d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461068b91906124f3565b92505081905550808260060160008282546106a691906124f3565b92505081905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6106f3611c4d565b836040518363ffffffff1660e01b8152600401610711929190612527565b6020604051808303816000875af1158015610730573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107549190612565565b610793576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078a90612604565b60405180910390fd5b80600e600084600201548152602001908152602001600020546107b691906124f3565b600e600084600201548152602001908152602001600020819055506107d9611c4d565b73ffffffffffffffffffffffffffffffffffffffff167f106f923f993c2149d49b4255ff723acafa1f2d94393f561d3eda32ae348f72418260405161081e9190611e17565b60405180910390a25050610830611c55565b50565b600e6020528060005260406000206000915090505481565b600f6020528060005260406000206000915090505481565b61086b611bfe565b6004548111156108b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a790612380565b60405180910390fd5b6000600a600083815260200190815260200160002090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661090a611c4d565b73ffffffffffffffffffffffffffffffffffffffff1614610960576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095790612412565b60405180910390fd5b8060070160009054906101000a900460ff16156109b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a9906124a4565b60405180910390fd5b80600501544210156109f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f090612696565b60405180910390fd5b6000610a0483611146565b90506000818360010154610a1891906124f3565b90508160096000610a27611c4d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610a7091906124f3565b9250508190555081836006016000828254610a8b91906124f3565b92505081905550826001015460086000610aa3611c4d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610aec91906126b6565b9250508190555060018360070160006101000a81548160ff021916908315150217905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb610b56611c4d565b836040518363ffffffff1660e01b8152600401610b74929190612527565b6020604051808303816000875af1158015610b93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb79190612565565b610bf6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bed9061275c565b60405180910390fd5b81600e60008560020154815260200190815260200160002054610c1991906124f3565b600e60008560020154815260200190815260200160002081905550610c3c611c4d565b73ffffffffffffffffffffffffffffffffffffffff167f02f25270a4d87bea75db541cdfe559334a275b4a233520ed6c0a2429667cca9484600101548484604051610c899392919061277c565b60405180910390a2505050610c9c611c55565b50565b610ca7611bfe565b600454811115610cec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce390612380565b60405180910390fd5b6000600a600083815260200190815260200160002090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d46611c4d565b73ffffffffffffffffffffffffffffffffffffffff1614610d9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9390612412565b60405180910390fd5b8060070160009054906101000a900460ff1615610dee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de5906124a4565b60405180910390fd5b6000610df983611146565b9050600060646003548460010154610e1191906127b3565b610e1b9190612824565b905080836001016000828254610e3191906126b6565b925050819055506000828460010154610e4a91906124f3565b90508260096000610e59611c4d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610ea291906124f3565b9250508190555082846006016000828254610ebd91906124f3565b92505081905550818460010154610ed491906124f3565b60086000610ee0611c4d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610f2991906126b6565b9250508190555060018460070160006101000a81548160ff021916908315150217905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb610f93611c4d565b836040518363ffffffff1660e01b8152600401610fb1929190612527565b6020604051808303816000875af1158015610fd0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff49190612565565b611033576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102a906128ed565b60405180910390fd5b82600e6000866002015481526020019081526020016000205461105691906124f3565b600e60008660020154815260200190815260200160002081905550611079611c4d565b73ffffffffffffffffffffffffffffffffffffffff167fd7a4aa9f3dca5f6606ac15d7e1850920201bbb02c38cd986793779f58ae0dfd3826040516110be9190611e17565b60405180910390a2505050506110d2611c55565b50565b60006110df611c5e565b81600260146101000a81548160ff02191690831515021790555060019050919050565b60086020528060005260406000206000915090505481565b611122611c5e565b61112c6000611cdc565b565b600d6020528060005260406000206000915090505481565b600060045482111561118d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118490612380565b60405180910390fd5b6000600a600084815260200190815260200160002090508060070160009054906101000a900460ff166112a4578060050154421061122c5760006064826003015483600101546111dd91906127b3565b6111e79190612824565b905060006301e1338083600201548361120091906127b3565b61120a9190612824565b9050600083600601548261121e91906126b6565b9050809450505050506112aa565b600081600401544261123e91906126b6565b9050600060648360030154846001015461125891906127b3565b6112629190612824565b905060006301e13380838361127791906127b3565b6112819190612824565b9050600084600601548261129591906126b6565b905080955050505050506112aa565b60009150505b919050565b60065481565b60055481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600a6020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020154908060030154908060040154908060050154908060060154908060070160009054906101000a900460ff16905088565b60035481565b60606000600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054806020026020016040519081016040528092919081815260200182805480156113ec57602002820191906000526020600020905b8154815260200190600101908083116113d8575b5050505050905080915050919050565b611404611c5e565b85600760006007815260200190815260200160002060000181905550826007600060078152602001908152602001600020600101819055508460076000600e8152602001908152602001600020600001819055508160076000600e8152602001908152602001600020600101819055508360076000601e8152602001908152602001600020600001819055508060076000601e815260200190815260200160002060010181905550505050505050565b6114bc611c5e565b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84836040518363ffffffff1660e01b81526004016114f7929190612527565b6020604051808303816000875af1158015611516573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061153a9190612565565b50505050565b600c6020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b600060076000838152602001908152602001600020905060008160000154116115cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c49061297f565b60405180910390fd5b600260149054906101000a900460ff1661161c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161390612a11565b60405180910390fd5b6000831161165f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165690612aa3565b60405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd6116a5611c4d565b30866040518463ffffffff1660e01b81526004016116c593929190612ac3565b6020604051808303816000875af11580156116e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117089190612565565b611747576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173e90612b6c565b60405180910390fd5b60405180610100016040528061175b611c4d565b73ffffffffffffffffffffffffffffffffffffffff16815260200184815260200182600001548152602001826001015481526020014281526020018260000154426117a691906124f3565b81526020016000815260200160001515815250600a60006004600081546117cc90612b8c565b919050819055815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e08201518160070160006101000a81548160ff021916908315150217905550905050600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060009054906101000a900460ff16611935576001600f60008481526020019081526020016000205461190891906124f3565b600f600084815260200190815260200160002081905550600160055461192e91906124f3565b6005819055505b6001600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002060006101000a81548160ff02191690831515021790555082600d6000848152602001908152602001600020546119bd91906124f3565b600d600084815260200190815260200160002081905550826006546119e291906124f3565b60068190555082600860006119f5611c4d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611a3e91906124f3565b92505081905550600b6000611a51611c4d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060045490806001815401808255809150506001900390600052602060002001600090919091909150558060000154611ac1611c4d565b73ffffffffffffffffffffffffffffffffffffffff167f36af321ec8d3c75236829c5317affd40ddb308863a1236d2d277a4025cccee1e858460010154604051611b0c9291906122ae565b60405180910390a3505050565b611b21611c5e565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611b90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8790612c46565b60405180910390fd5b611b9981611cdc565b50565b60096020528060005260406000206000915090505481565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60076020528060005260406000206000915090508060000154908060010154905082565b600260015403611c43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3a90612cb2565b60405180910390fd5b6002600181905550565b600033905090565b60018081905550565b611c66611c4d565b73ffffffffffffffffffffffffffffffffffffffff16611c846112bb565b73ffffffffffffffffffffffffffffffffffffffff1614611cda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cd190612d1e565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b6000819050919050565b611db881611da5565b8114611dc357600080fd5b50565b600081359050611dd581611daf565b92915050565b600060208284031215611df157611df0611da0565b5b6000611dff84828501611dc6565b91505092915050565b611e1181611da5565b82525050565b6000602082019050611e2c6000830184611e08565b92915050565b60008115159050919050565b611e4781611e32565b8114611e5257600080fd5b50565b600081359050611e6481611e3e565b92915050565b600060208284031215611e8057611e7f611da0565b5b6000611e8e84828501611e55565b91505092915050565b611ea081611e32565b82525050565b6000602082019050611ebb6000830184611e97565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611eec82611ec1565b9050919050565b611efc81611ee1565b8114611f0757600080fd5b50565b600081359050611f1981611ef3565b92915050565b600060208284031215611f3557611f34611da0565b5b6000611f4384828501611f0a565b91505092915050565b611f5581611ee1565b82525050565b6000602082019050611f706000830184611f4c565b92915050565b600061010082019050611f8c600083018b611f4c565b611f99602083018a611e08565b611fa66040830189611e08565b611fb36060830188611e08565b611fc06080830187611e08565b611fcd60a0830186611e08565b611fda60c0830185611e08565b611fe760e0830184611e97565b9998505050505050505050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61202981611da5565b82525050565b600061203b8383612020565b60208301905092915050565b6000602082019050919050565b600061205f82611ff4565b6120698185611fff565b935061207483612010565b8060005b838110156120a557815161208c888261202f565b975061209783612047565b925050600181019050612078565b5085935050505092915050565b600060208201905081810360008301526120cc8184612054565b905092915050565b60008060008060008060c087890312156120f1576120f0611da0565b5b60006120ff89828a01611dc6565b965050602061211089828a01611dc6565b955050604061212189828a01611dc6565b945050606061213289828a01611dc6565b935050608061214389828a01611dc6565b92505060a061215489828a01611dc6565b9150509295509295509295565b60008060006060848603121561217a57612179611da0565b5b600061218886828701611f0a565b935050602061219986828701611f0a565b92505060406121aa86828701611dc6565b9150509250925092565b600080604083850312156121cb576121ca611da0565b5b60006121d985828601611f0a565b92505060206121ea85828601611dc6565b9150509250929050565b6000806040838503121561220b5761220a611da0565b5b600061221985828601611dc6565b925050602061222a85828601611dc6565b9150509250929050565b6000819050919050565b600061225961225461224f84611ec1565b612234565b611ec1565b9050919050565b600061226b8261223e565b9050919050565b600061227d82612260565b9050919050565b61228d81612272565b82525050565b60006020820190506122a86000830184612284565b92915050565b60006040820190506122c36000830185611e08565b6122d06020830184611e08565b9392505050565b600082825260208201905092915050565b7f546f6b656e5374616b696e673a20494e56414c4944206f7264657249642c206f60008201527f7264657249642067726561746572207468616e206c61746573744f726465724960208201527f6400000000000000000000000000000000000000000000000000000000000000604082015250565b600061236a6041836122d7565b9150612375826122e8565b606082019050919050565b600060208201905081810360008301526123998161235d565b9050919050565b7f546f6b656e5374616b696e673a2063616c6c6572206973206e6f74207468652060008201527f62656e6566696369617279000000000000000000000000000000000000000000602082015250565b60006123fc602b836122d7565b9150612407826123a0565b604082019050919050565b6000602082019050818103600083015261242b816123ef565b9050919050565b7f546f6b656e5374616b696e673a206f7264657220616c726561647920756e737460008201527f616b656400000000000000000000000000000000000000000000000000000000602082015250565b600061248e6024836122d7565b915061249982612432565b604082019050919050565b600060208201905081810360008301526124bd81612481565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006124fe82611da5565b915061250983611da5565b9250828201905080821115612521576125206124c4565b5b92915050565b600060408201905061253c6000830185611f4c565b6125496020830184611e08565b9392505050565b60008151905061255f81611e3e565b92915050565b60006020828403121561257b5761257a611da0565b5b600061258984828501612550565b91505092915050565b7f546f6b656e5374616b696e673a20746f6b656e207472616e736665722076696160008201527f20636c61696d2072657761726473206e6f742073756363656564656400000000602082015250565b60006125ee603c836122d7565b91506125f982612592565b604082019050919050565b6000602082019050818103600083015261261d816125e1565b9050919050565b7f546f6b656e5374616b696e673a207374616b65206c6f636b656420756e74696c60008201527f206c6f636b206475726174696f6e20636f6d706c6574696f6e00000000000000602082015250565b60006126806039836122d7565b915061268b82612624565b604082019050919050565b600060208201905081810360008301526126af81612673565b9050919050565b60006126c182611da5565b91506126cc83611da5565b92508282039050818111156126e4576126e36124c4565b5b92915050565b7f546f6b656e5374616b696e673a20746f6b656e207472616e736665722076696160008201527f207769746864726177206e6f7420737563636565646564000000000000000000602082015250565b60006127466037836122d7565b9150612751826126ea565b604082019050919050565b6000602082019050818103600083015261277581612739565b9050919050565b60006060820190506127916000830186611e08565b61279e6020830185611e08565b6127ab6040830184611e08565b949350505050565b60006127be82611da5565b91506127c983611da5565b92508282026127d781611da5565b915082820484148315176127ee576127ed6124c4565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061282f82611da5565b915061283a83611da5565b92508261284a576128496127f5565b5b828204905092915050565b7f546f6b656e5374616b696e673a20746f6b656e207472616e736665722076696160008201527f20656d657267656e6379207769746864726177206e6f7420737563636565646560208201527f6400000000000000000000000000000000000000000000000000000000000000604082015250565b60006128d76041836122d7565b91506128e282612855565b606082019050919050565b60006020820190508181036000830152612906816128ca565b9050919050565b7f546f6b656e5374616b696e673a2061736b656420706f6f6c20646f6573206e6f60008201527f7420657869737400000000000000000000000000000000000000000000000000602082015250565b60006129696027836122d7565b91506129748261290d565b604082019050919050565b600060208201905081810360008301526129988161295c565b9050919050565b7f546f6b656e5374616b696e673a207374616b696e67206e6f742079657420737460008201527f6172746564000000000000000000000000000000000000000000000000000000602082015250565b60006129fb6025836122d7565b9150612a068261299f565b604082019050919050565b60006020820190508181036000830152612a2a816129ee565b9050919050565b7f546f6b656e5374616b696e673a207374616b6520616d6f756e74206d7573742060008201527f6265206e6f6e207a65726f000000000000000000000000000000000000000000602082015250565b6000612a8d602b836122d7565b9150612a9882612a31565b604082019050919050565b60006020820190508181036000830152612abc81612a80565b9050919050565b6000606082019050612ad86000830186611f4c565b612ae56020830185611f4c565b612af26040830184611e08565b949350505050565b7f546f6b656e5374616b696e673a20746f6b656e207472616e7366657246726f6d60008201527f20766961206465706f736974206e6f7420737563636565646564000000000000602082015250565b6000612b56603a836122d7565b9150612b6182612afa565b604082019050919050565b60006020820190508181036000830152612b8581612b49565b9050919050565b6000612b9782611da5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612bc957612bc86124c4565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612c306026836122d7565b9150612c3b82612bd4565b604082019050919050565b60006020820190508181036000830152612c5f81612c23565b9050919050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b6000612c9c601f836122d7565b9150612ca782612c66565b602082019050919050565b60006020820190508181036000830152612ccb81612c8f565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612d086020836122d7565b9150612d1382612cd2565b602082019050919050565b60006020820190508181036000830152612d3781612cfb565b905091905056fea26469706673582212209d6499e36f3e1a52af7e9ae2540c7a55bde22b81a05846970c9afee7ce694eac64736f6c63430008130033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000007561c96963dbad4fd7d0298fa0a37047adfc02fb

-----Decoded View---------------
Arg [0] : _token (address): 0x7561c96963dbAD4fd7D0298fA0A37047AdFC02Fb

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000007561c96963dbad4fd7d0298fa0a37047adfc02fb


Deployed Bytecode Sourcemap

2200:8778:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8019:911;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3356:41;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3404:40;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5660:1172;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6842:1169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9965:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3045:41;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1003:97;;;:::i;:::-;;3309:40;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8938:1019;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2954:23;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2913:24;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;785:79;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3147:40;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;2831:38;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10100:169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10282:506;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10794:173;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3244:58;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4240:1412;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1108:195;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3093:47;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2770:19;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2997:41;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;8019:911;1756:21;:19;:21::i;:::-;8107:13:::1;;8096:7;:24;;8088:102;;;;;;;;;;;;:::i;:::-;;;;;;;;;8203:27;8233:6;:15;8240:7;8233:15;;;;;;;;;;;8203:45;;8283:9;:21;;;;;;;;;;;;8267:37;;:12;:10;:12::i;:::-;:37;;;8259:93;;;;;;;;;;;;:::i;:::-;;;;;;;;;8372:9;:17;;;;;;;;;;;;8371:18;8363:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8443:19;8465:23;8480:7;8465:14;:23::i;:::-;8443:45;;8532:14;8499:15;:29;8515:12;:10;:12::i;:::-;8499:29;;;;;;;;;;;;;;;;:47;;;;;;;:::i;:::-;;;;;;;;8593:14;8566:9;:23;;;:41;;;;;;;:::i;:::-;;;;;;;;8628:5;;;;;;;;;;;:14;;;8651:12;:10;:12::i;:::-;8666:14;8628:53;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8620:126;;;;;;;;;;;;:::i;:::-;;;;;;;;;8839:14;8798:12;:38;8811:9;:24;;;8798:38;;;;;;;;;;;;:55;;;;:::i;:::-;8757:12;:38;8770:9;:24;;;8757:38;;;;;;;;;;;:96;;;;8892:12;:10;:12::i;:::-;8870:52;;;8907:14;8870:52;;;;;;:::i;:::-;;;;;;;;8077:853;;1800:20:::0;:18;:20::i;:::-;8019:911;:::o;3356:41::-;;;;;;;;;;;;;;;;;:::o;3404:40::-;;;;;;;;;;;;;;;;;:::o;5660:1172::-;1756:21;:19;:21::i;:::-;5744:13:::1;;5733:7;:24;;5725:102;;;;;;;;;;;;:::i;:::-;;;;;;;;;5840:27;5870:6;:15;5877:7;5870:15;;;;;;;;;;;5840:45;;5921:9;:21;;;;;;;;;;;;5905:37;;:12;:10;:12::i;:::-;:37;;;5897:93;;;;;;;;;;;;:::i;:::-;;;;;;;;;6010:9;:17;;;;;;;;;;;;6009:18;6001:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6106:9;:17;;;6087:15;:36;;6079:106;;;;;;;;;;;;:::i;:::-;;;;;;;;;6198:19;6220:23;6235:7;6220:14;:23::i;:::-;6198:45;;6254:10;6286:14;6267:9;:16;;;:33;;;;:::i;:::-;6254:46;;6346:14;6313:15;:29;6329:12;:10;:12::i;:::-;6313:29;;;;;;;;;;;;;;;;:47;;;;;;;:::i;:::-;;;;;;;;6409:14;6382:9;:23;;;:41;;;;;;;:::i;:::-;;;;;;;;6461:9;:16;;;6434:9;:23;6444:12;:10;:12::i;:::-;6434:23;;;;;;;;;;;;;;;;:43;;;;;;;:::i;:::-;;;;;;;;6509:4;6489:9;:17;;;:24;;;;;;;;;;;;;;;;;;6534:5;;;;;;;;;;;:14;;;6557:12;:10;:12::i;:::-;6572:5;6534:44;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6526:112;;;;;;;;;;;;:::i;:::-;;;;;;;;;6730:14;6689:12;:38;6702:9;:24;;;6689:38;;;;;;;;;;;;:55;;;;:::i;:::-;6648:12;:38;6661:9;:24;;;6648:38;;;;;;;;;;;:96;;;;6770:12;:10;:12::i;:::-;6761:63;;;6784:9;:16;;;6802:14;6818:5;6761:63;;;;;;;;:::i;:::-;;;;;;;;5714:1118;;;1800:20:::0;:18;:20::i;:::-;5660:1172;:::o;6842:1169::-;1756:21;:19;:21::i;:::-;6935:13:::1;;6924:7;:24;;6916:102;;;;;;;;;;;;:::i;:::-;;;;;;;;;7031:27;7061:6;:15;7068:7;7061:15;;;;;;;;;;;7031:45;;7112:9;:21;;;;;;;;;;;;7096:37;;:12;:10;:12::i;:::-;:37;;;7088:93;;;;;;;;;;;;:::i;:::-;;;;;;;;;7201:9;:17;;;;;;;;;;;;7200:18;7192:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7272:19;7294:23;7309:7;7294:14;:23::i;:::-;7272:45;;7328:9;7385:3;7360:21;;7341:9;:16;;;:40;;;;:::i;:::-;7340:48;;;;:::i;:::-;7328:60;;7420:4;7400:9;:16;;;:24;;;;;;;:::i;:::-;;;;;;;;7436:10;7468:14;7449:9;:16;;;:33;;;;:::i;:::-;7436:46;;7528:14;7495:15;:29;7511:12;:10;:12::i;:::-;7495:29;;;;;;;;;;;;;;;;:47;;;;;;;:::i;:::-;;;;;;;;7587:14;7560:9;:23;;;:41;;;;;;;:::i;:::-;;;;;;;;7663:4;7644:9;:16;;;:23;;;;:::i;:::-;7616:9;:23;7626:12;:10;:12::i;:::-;7616:23;;;;;;;;;;;;;;;;:52;;;;;;;:::i;:::-;;;;;;;;7708:4;7688:9;:17;;;:24;;;;;;;;;;;;;;;;;;7733:5;;;;;;;;;;;:14;;;7756:12;:10;:12::i;:::-;7771:5;7733:44;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7725:122;;;;;;;;;;;;:::i;:::-;;;;;;;;;7940:14;7899:12;:38;7912:9;:24;;;7899:38;;;;;;;;;;;;:55;;;;:::i;:::-;7858:12;:38;7871:9;:24;;;7858:38;;;;;;;;;;;:96;;;;7983:12;:10;:12::i;:::-;7971:32;;;7997:5;7971:32;;;;;;:::i;:::-;;;;;;;;6905:1106;;;;1800:20:::0;:18;:20::i;:::-;6842:1169;:::o;9965:127::-;10029:4;744:13;:11;:13::i;:::-;10056:6:::1;10046:7;;:16;;;;;;;;;;;;;;;;;;10080:4;10073:11;;9965:127:::0;;;:::o;3045:41::-;;;;;;;;;;;;;;;;;:::o;1003:97::-;744:13;:11;:13::i;:::-;1062:30:::1;1089:1;1062:18;:30::i;:::-;1003:97::o:0;3309:40::-;;;;;;;;;;;;;;;;;:::o;8938:1019::-;8997:4;9033:13;;9022:7;:24;;9014:102;;;;;;;;;;;;:::i;:::-;;;;;;;;;9129:27;9159:6;:15;9166:7;9159:15;;;;;;;;;;;9129:45;;9190:9;:17;;;;;;;;;;;;9185:765;;9247:9;:17;;;9228:15;:36;9224:674;;9285:8;9339:3;9316:9;:19;;;9297:9;:16;;;:38;;;;:::i;:::-;9296:46;;;;:::i;:::-;9285:57;;9361:11;2755:8;9382:9;:24;;;9376:3;:30;;;;:::i;:::-;9375:43;;;;:::i;:::-;9361:57;;9437:19;9468:9;:23;;;9459:6;:32;;;;:::i;:::-;9437:54;;9517:14;9510:21;;;;;;;;9224:674;9572:14;9607:9;:19;;;9589:15;:37;;;;:::i;:::-;9572:54;;9645:8;9699:3;9676:9;:19;;;9657:9;:16;;;:38;;;;:::i;:::-;9656:46;;;;:::i;:::-;9645:57;;9721:11;2755:8;9742:9;9736:3;:15;;;;:::i;:::-;9735:28;;;;:::i;:::-;9721:42;;9782:22;9816:9;:23;;;9807:6;:32;;;;:::i;:::-;9782:57;;9865:17;9858:24;;;;;;;;;9185:765;9937:1;9930:8;;;8938:1019;;;;:::o;2954:23::-;;;;:::o;2913:24::-;;;;:::o;785:79::-;823:7;850:6;;;;;;;;;;;843:13;;785:79;:::o;3147:40::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2831:38::-;;;;:::o;10100:169::-;10167:17;10202;10222:8;:18;10231:8;10222:18;;;;;;;;;;;;;;;10202:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10258:3;10251:10;;;10100:169;;;:::o;10282:506::-;744:13;:11;:13::i;:::-;10492:10:::1;10463:8;:11;10472:1;10463:11;;;;;;;;;;;:26;;:39;;;;10547:9;10523:8;:11;10532:1;10523:11;;;;;;;;;;;:21;;:33;;;;10599:10;10569:8;:12;10578:2;10569:12;;;;;;;;;;;:27;;:40;;;;10656:9;10631:8;:12;10640:2;10631:12;;;;;;;;;;;:22;;:34;;;;10708:10;10678:8;:12;10687:2;10678:12;;;;;;;;;;;:27;;:40;;;;10765:9;10740:8;:12;10749:2;10740:12;;;;;;;;;;;:22;;:34;;;;10282:506:::0;;;;;;:::o;10794:173::-;744:13;:11;:13::i;:::-;10917:12:::1;10910:29;;;10940:10;10952:6;10910:49;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10794:173:::0;;;:::o;3244:58::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4240:1412::-;4315:21;4339:8;:25;4348:15;4339:25;;;;;;;;;;;4315:49;;4405:1;4383:4;:19;;;:23;4375:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;4469:7;;;;;;;;;;;4461:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;4547:1;4537:7;:11;4529:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4615:5;;;;;;;;;;;:18;;;4634:12;:10;:12::i;:::-;4656:4;4663:7;4615:56;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4607:127;;;;;;;;;;;;:::i;:::-;;;;;;;;;4773:251;;;;;;;;4798:12;:10;:12::i;:::-;4773:251;;;;;;4825:7;4773:251;;;;4847:4;:19;;;4773:251;;;;4881:4;:14;;;4773:251;;;;4910:15;4773:251;;;;4958:4;:19;;;4940:15;:37;;;;:::i;:::-;4773:251;;;;4992:1;4773:251;;;;5008:5;4773:251;;;;;4747:6;:23;4756:13;;4754:15;;;;;:::i;:::-;;;;;;;4747:23;;;;;;;;;;;:277;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5053:9;:21;5063:10;5053:21;;;;;;;;;;;;;;;:38;5075:15;5053:38;;;;;;;;;;;;;;;;;;;;;5048:184;;5171:1;5140:11;:28;5152:15;5140:28;;;;;;;;;;;;:32;;;;:::i;:::-;5109:11;:28;5121:15;5109:28;;;;;;;;;;;:63;;;;5218:1;5203:12;;:16;;;;:::i;:::-;5188:12;:31;;;;5048:184;5330:4;5289:9;:21;5299:10;5289:21;;;;;;;;;;;;;;;:38;5311:15;5289:38;;;;;;;;;;;;:45;;;;;;;;;;;;;;;;;;5407:7;5376:11;:28;5388:15;5376:28;;;;;;;;;;;;:38;;;;:::i;:::-;5345:11;:28;5357:15;5345:28;;;;;;;;;;;:69;;;;5454:7;5440:11;;:21;;;;:::i;:::-;5426:11;:35;;;;5500:7;5473:9;:23;5483:12;:10;:12::i;:::-;5473:23;;;;;;;;;;;;;;;;:34;;;;;;;:::i;:::-;;;;;;;;5518:8;:22;5527:12;:10;:12::i;:::-;5518:22;;;;;;;;;;;;;;;5546:13;;5518:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5599:4;:19;;;5585:12;:10;:12::i;:::-;5577:67;;;5620:7;5629:4;:14;;;5577:67;;;;;;;:::i;:::-;;;;;;;;4302:1350;4240:1412;;:::o;1108:195::-;744:13;:11;:13::i;:::-;1211:1:::1;1191:22;;:8;:22;;::::0;1183:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1267:28;1286:8;1267:18;:28::i;:::-;1108:195:::0;:::o;3093:47::-;;;;;;;;;;;;;;;;;:::o;2770:19::-;;;;;;;;;;;;;:::o;2997:41::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1836:152::-;1619:1;1894:7;;:19;1886:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;1619:1;1962:7;:18;;;;1836:152::o;375:90::-;420:7;447:10;440:17;;375:90;:::o;1996:79::-;1578:1;2045:7;:22;;;;1996:79::o;872:123::-;938:12;:10;:12::i;:::-;927:23;;:7;:5;:7::i;:::-;:23;;;919:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;872:123::o;1311:182::-;1376:16;1395:6;;;;;;;;;;;1376:25;;1421:8;1412:6;;:17;;;;;;;;;;;;;;;;;;1476:8;1445:40;;1466:8;1445:40;;;;;;;;;;;;1365:128;1311:182;:::o;88:117:1:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:118::-;1112:24;1130:5;1112:24;:::i;:::-;1107:3;1100:37;1025:118;;:::o;1149:222::-;1242:4;1280:2;1269:9;1265:18;1257:26;;1293:71;1361:1;1350:9;1346:17;1337:6;1293:71;:::i;:::-;1149:222;;;;:::o;1377:90::-;1411:7;1454:5;1447:13;1440:21;1429:32;;1377:90;;;:::o;1473:116::-;1543:21;1558:5;1543:21;:::i;:::-;1536:5;1533:32;1523:60;;1579:1;1576;1569:12;1523:60;1473:116;:::o;1595:133::-;1638:5;1676:6;1663:20;1654:29;;1692:30;1716:5;1692:30;:::i;:::-;1595:133;;;;:::o;1734:323::-;1790:6;1839:2;1827:9;1818:7;1814:23;1810:32;1807:119;;;1845:79;;:::i;:::-;1807:119;1965:1;1990:50;2032:7;2023:6;2012:9;2008:22;1990:50;:::i;:::-;1980:60;;1936:114;1734:323;;;;:::o;2063:109::-;2144:21;2159:5;2144:21;:::i;:::-;2139:3;2132:34;2063:109;;:::o;2178:210::-;2265:4;2303:2;2292:9;2288:18;2280:26;;2316:65;2378:1;2367:9;2363:17;2354:6;2316:65;:::i;:::-;2178:210;;;;:::o;2394:126::-;2431:7;2471:42;2464:5;2460:54;2449:65;;2394:126;;;:::o;2526:96::-;2563:7;2592:24;2610:5;2592:24;:::i;:::-;2581:35;;2526:96;;;:::o;2628:122::-;2701:24;2719:5;2701:24;:::i;:::-;2694:5;2691:35;2681:63;;2740:1;2737;2730:12;2681:63;2628:122;:::o;2756:139::-;2802:5;2840:6;2827:20;2818:29;;2856:33;2883:5;2856:33;:::i;:::-;2756:139;;;;:::o;2901:329::-;2960:6;3009:2;2997:9;2988:7;2984:23;2980:32;2977:119;;;3015:79;;:::i;:::-;2977:119;3135:1;3160:53;3205:7;3196:6;3185:9;3181:22;3160:53;:::i;:::-;3150:63;;3106:117;2901:329;;;;:::o;3236:118::-;3323:24;3341:5;3323:24;:::i;:::-;3318:3;3311:37;3236:118;;:::o;3360:222::-;3453:4;3491:2;3480:9;3476:18;3468:26;;3504:71;3572:1;3561:9;3557:17;3548:6;3504:71;:::i;:::-;3360:222;;;;:::o;3588:985::-;3871:4;3909:3;3898:9;3894:19;3886:27;;3923:71;3991:1;3980:9;3976:17;3967:6;3923:71;:::i;:::-;4004:72;4072:2;4061:9;4057:18;4048:6;4004:72;:::i;:::-;4086;4154:2;4143:9;4139:18;4130:6;4086:72;:::i;:::-;4168;4236:2;4225:9;4221:18;4212:6;4168:72;:::i;:::-;4250:73;4318:3;4307:9;4303:19;4294:6;4250:73;:::i;:::-;4333;4401:3;4390:9;4386:19;4377:6;4333:73;:::i;:::-;4416;4484:3;4473:9;4469:19;4460:6;4416:73;:::i;:::-;4499:67;4561:3;4550:9;4546:19;4537:6;4499:67;:::i;:::-;3588:985;;;;;;;;;;;:::o;4579:114::-;4646:6;4680:5;4674:12;4664:22;;4579:114;;;:::o;4699:184::-;4798:11;4832:6;4827:3;4820:19;4872:4;4867:3;4863:14;4848:29;;4699:184;;;;:::o;4889:132::-;4956:4;4979:3;4971:11;;5009:4;5004:3;5000:14;4992:22;;4889:132;;;:::o;5027:108::-;5104:24;5122:5;5104:24;:::i;:::-;5099:3;5092:37;5027:108;;:::o;5141:179::-;5210:10;5231:46;5273:3;5265:6;5231:46;:::i;:::-;5309:4;5304:3;5300:14;5286:28;;5141:179;;;;:::o;5326:113::-;5396:4;5428;5423:3;5419:14;5411:22;;5326:113;;;:::o;5475:732::-;5594:3;5623:54;5671:5;5623:54;:::i;:::-;5693:86;5772:6;5767:3;5693:86;:::i;:::-;5686:93;;5803:56;5853:5;5803:56;:::i;:::-;5882:7;5913:1;5898:284;5923:6;5920:1;5917:13;5898:284;;;5999:6;5993:13;6026:63;6085:3;6070:13;6026:63;:::i;:::-;6019:70;;6112:60;6165:6;6112:60;:::i;:::-;6102:70;;5958:224;5945:1;5942;5938:9;5933:14;;5898:284;;;5902:14;6198:3;6191:10;;5599:608;;;5475:732;;;;:::o;6213:373::-;6356:4;6394:2;6383:9;6379:18;6371:26;;6443:9;6437:4;6433:20;6429:1;6418:9;6414:17;6407:47;6471:108;6574:4;6565:6;6471:108;:::i;:::-;6463:116;;6213:373;;;;:::o;6592:1057::-;6696:6;6704;6712;6720;6728;6736;6785:3;6773:9;6764:7;6760:23;6756:33;6753:120;;;6792:79;;:::i;:::-;6753:120;6912:1;6937:53;6982:7;6973:6;6962:9;6958:22;6937:53;:::i;:::-;6927:63;;6883:117;7039:2;7065:53;7110:7;7101:6;7090:9;7086:22;7065:53;:::i;:::-;7055:63;;7010:118;7167:2;7193:53;7238:7;7229:6;7218:9;7214:22;7193:53;:::i;:::-;7183:63;;7138:118;7295:2;7321:53;7366:7;7357:6;7346:9;7342:22;7321:53;:::i;:::-;7311:63;;7266:118;7423:3;7450:53;7495:7;7486:6;7475:9;7471:22;7450:53;:::i;:::-;7440:63;;7394:119;7552:3;7579:53;7624:7;7615:6;7604:9;7600:22;7579:53;:::i;:::-;7569:63;;7523:119;6592:1057;;;;;;;;:::o;7655:619::-;7732:6;7740;7748;7797:2;7785:9;7776:7;7772:23;7768:32;7765:119;;;7803:79;;:::i;:::-;7765:119;7923:1;7948:53;7993:7;7984:6;7973:9;7969:22;7948:53;:::i;:::-;7938:63;;7894:117;8050:2;8076:53;8121:7;8112:6;8101:9;8097:22;8076:53;:::i;:::-;8066:63;;8021:118;8178:2;8204:53;8249:7;8240:6;8229:9;8225:22;8204:53;:::i;:::-;8194:63;;8149:118;7655:619;;;;;:::o;8280:474::-;8348:6;8356;8405:2;8393:9;8384:7;8380:23;8376:32;8373:119;;;8411:79;;:::i;:::-;8373:119;8531:1;8556:53;8601:7;8592:6;8581:9;8577:22;8556:53;:::i;:::-;8546:63;;8502:117;8658:2;8684:53;8729:7;8720:6;8709:9;8705:22;8684:53;:::i;:::-;8674:63;;8629:118;8280:474;;;;;:::o;8760:::-;8828:6;8836;8885:2;8873:9;8864:7;8860:23;8856:32;8853:119;;;8891:79;;:::i;:::-;8853:119;9011:1;9036:53;9081:7;9072:6;9061:9;9057:22;9036:53;:::i;:::-;9026:63;;8982:117;9138:2;9164:53;9209:7;9200:6;9189:9;9185:22;9164:53;:::i;:::-;9154:63;;9109:118;8760:474;;;;;:::o;9240:60::-;9268:3;9289:5;9282:12;;9240:60;;;:::o;9306:142::-;9356:9;9389:53;9407:34;9416:24;9434:5;9416:24;:::i;:::-;9407:34;:::i;:::-;9389:53;:::i;:::-;9376:66;;9306:142;;;:::o;9454:126::-;9504:9;9537:37;9568:5;9537:37;:::i;:::-;9524:50;;9454:126;;;:::o;9586:139::-;9649:9;9682:37;9713:5;9682:37;:::i;:::-;9669:50;;9586:139;;;:::o;9731:157::-;9831:50;9875:5;9831:50;:::i;:::-;9826:3;9819:63;9731:157;;:::o;9894:248::-;10000:4;10038:2;10027:9;10023:18;10015:26;;10051:84;10132:1;10121:9;10117:17;10108:6;10051:84;:::i;:::-;9894:248;;;;:::o;10148:332::-;10269:4;10307:2;10296:9;10292:18;10284:26;;10320:71;10388:1;10377:9;10373:17;10364:6;10320:71;:::i;:::-;10401:72;10469:2;10458:9;10454:18;10445:6;10401:72;:::i;:::-;10148:332;;;;;:::o;10486:169::-;10570:11;10604:6;10599:3;10592:19;10644:4;10639:3;10635:14;10620:29;;10486:169;;;;:::o;10661:289::-;10801:34;10797:1;10789:6;10785:14;10778:58;10870:34;10865:2;10857:6;10853:15;10846:59;10939:3;10934:2;10926:6;10922:15;10915:28;10661:289;:::o;10956:366::-;11098:3;11119:67;11183:2;11178:3;11119:67;:::i;:::-;11112:74;;11195:93;11284:3;11195:93;:::i;:::-;11313:2;11308:3;11304:12;11297:19;;10956:366;;;:::o;11328:419::-;11494:4;11532:2;11521:9;11517:18;11509:26;;11581:9;11575:4;11571:20;11567:1;11556:9;11552:17;11545:47;11609:131;11735:4;11609:131;:::i;:::-;11601:139;;11328:419;;;:::o;11753:230::-;11893:34;11889:1;11881:6;11877:14;11870:58;11962:13;11957:2;11949:6;11945:15;11938:38;11753:230;:::o;11989:366::-;12131:3;12152:67;12216:2;12211:3;12152:67;:::i;:::-;12145:74;;12228:93;12317:3;12228:93;:::i;:::-;12346:2;12341:3;12337:12;12330:19;;11989:366;;;:::o;12361:419::-;12527:4;12565:2;12554:9;12550:18;12542:26;;12614:9;12608:4;12604:20;12600:1;12589:9;12585:17;12578:47;12642:131;12768:4;12642:131;:::i;:::-;12634:139;;12361:419;;;:::o;12786:223::-;12926:34;12922:1;12914:6;12910:14;12903:58;12995:6;12990:2;12982:6;12978:15;12971:31;12786:223;:::o;13015:366::-;13157:3;13178:67;13242:2;13237:3;13178:67;:::i;:::-;13171:74;;13254:93;13343:3;13254:93;:::i;:::-;13372:2;13367:3;13363:12;13356:19;;13015:366;;;:::o;13387:419::-;13553:4;13591:2;13580:9;13576:18;13568:26;;13640:9;13634:4;13630:20;13626:1;13615:9;13611:17;13604:47;13668:131;13794:4;13668:131;:::i;:::-;13660:139;;13387:419;;;:::o;13812:180::-;13860:77;13857:1;13850:88;13957:4;13954:1;13947:15;13981:4;13978:1;13971:15;13998:191;14038:3;14057:20;14075:1;14057:20;:::i;:::-;14052:25;;14091:20;14109:1;14091:20;:::i;:::-;14086:25;;14134:1;14131;14127:9;14120:16;;14155:3;14152:1;14149:10;14146:36;;;14162:18;;:::i;:::-;14146:36;13998:191;;;;:::o;14195:332::-;14316:4;14354:2;14343:9;14339:18;14331:26;;14367:71;14435:1;14424:9;14420:17;14411:6;14367:71;:::i;:::-;14448:72;14516:2;14505:9;14501:18;14492:6;14448:72;:::i;:::-;14195:332;;;;;:::o;14533:137::-;14587:5;14618:6;14612:13;14603:22;;14634:30;14658:5;14634:30;:::i;:::-;14533:137;;;;:::o;14676:345::-;14743:6;14792:2;14780:9;14771:7;14767:23;14763:32;14760:119;;;14798:79;;:::i;:::-;14760:119;14918:1;14943:61;14996:7;14987:6;14976:9;14972:22;14943:61;:::i;:::-;14933:71;;14889:125;14676:345;;;;:::o;15027:247::-;15167:34;15163:1;15155:6;15151:14;15144:58;15236:30;15231:2;15223:6;15219:15;15212:55;15027:247;:::o;15280:366::-;15422:3;15443:67;15507:2;15502:3;15443:67;:::i;:::-;15436:74;;15519:93;15608:3;15519:93;:::i;:::-;15637:2;15632:3;15628:12;15621:19;;15280:366;;;:::o;15652:419::-;15818:4;15856:2;15845:9;15841:18;15833:26;;15905:9;15899:4;15895:20;15891:1;15880:9;15876:17;15869:47;15933:131;16059:4;15933:131;:::i;:::-;15925:139;;15652:419;;;:::o;16077:244::-;16217:34;16213:1;16205:6;16201:14;16194:58;16286:27;16281:2;16273:6;16269:15;16262:52;16077:244;:::o;16327:366::-;16469:3;16490:67;16554:2;16549:3;16490:67;:::i;:::-;16483:74;;16566:93;16655:3;16566:93;:::i;:::-;16684:2;16679:3;16675:12;16668:19;;16327:366;;;:::o;16699:419::-;16865:4;16903:2;16892:9;16888:18;16880:26;;16952:9;16946:4;16942:20;16938:1;16927:9;16923:17;16916:47;16980:131;17106:4;16980:131;:::i;:::-;16972:139;;16699:419;;;:::o;17124:194::-;17164:4;17184:20;17202:1;17184:20;:::i;:::-;17179:25;;17218:20;17236:1;17218:20;:::i;:::-;17213:25;;17262:1;17259;17255:9;17247:17;;17286:1;17280:4;17277:11;17274:37;;;17291:18;;:::i;:::-;17274:37;17124:194;;;;:::o;17324:242::-;17464:34;17460:1;17452:6;17448:14;17441:58;17533:25;17528:2;17520:6;17516:15;17509:50;17324:242;:::o;17572:366::-;17714:3;17735:67;17799:2;17794:3;17735:67;:::i;:::-;17728:74;;17811:93;17900:3;17811:93;:::i;:::-;17929:2;17924:3;17920:12;17913:19;;17572:366;;;:::o;17944:419::-;18110:4;18148:2;18137:9;18133:18;18125:26;;18197:9;18191:4;18187:20;18183:1;18172:9;18168:17;18161:47;18225:131;18351:4;18225:131;:::i;:::-;18217:139;;17944:419;;;:::o;18369:442::-;18518:4;18556:2;18545:9;18541:18;18533:26;;18569:71;18637:1;18626:9;18622:17;18613:6;18569:71;:::i;:::-;18650:72;18718:2;18707:9;18703:18;18694:6;18650:72;:::i;:::-;18732;18800:2;18789:9;18785:18;18776:6;18732:72;:::i;:::-;18369:442;;;;;;:::o;18817:410::-;18857:7;18880:20;18898:1;18880:20;:::i;:::-;18875:25;;18914:20;18932:1;18914:20;:::i;:::-;18909:25;;18969:1;18966;18962:9;18991:30;19009:11;18991:30;:::i;:::-;18980:41;;19170:1;19161:7;19157:15;19154:1;19151:22;19131:1;19124:9;19104:83;19081:139;;19200:18;;:::i;:::-;19081:139;18865:362;18817:410;;;;:::o;19233:180::-;19281:77;19278:1;19271:88;19378:4;19375:1;19368:15;19402:4;19399:1;19392:15;19419:185;19459:1;19476:20;19494:1;19476:20;:::i;:::-;19471:25;;19510:20;19528:1;19510:20;:::i;:::-;19505:25;;19549:1;19539:35;;19554:18;;:::i;:::-;19539:35;19596:1;19593;19589:9;19584:14;;19419:185;;;;:::o;19610:289::-;19750:34;19746:1;19738:6;19734:14;19727:58;19819:34;19814:2;19806:6;19802:15;19795:59;19888:3;19883:2;19875:6;19871:15;19864:28;19610:289;:::o;19905:366::-;20047:3;20068:67;20132:2;20127:3;20068:67;:::i;:::-;20061:74;;20144:93;20233:3;20144:93;:::i;:::-;20262:2;20257:3;20253:12;20246:19;;19905:366;;;:::o;20277:419::-;20443:4;20481:2;20470:9;20466:18;20458:26;;20530:9;20524:4;20520:20;20516:1;20505:9;20501:17;20494:47;20558:131;20684:4;20558:131;:::i;:::-;20550:139;;20277:419;;;:::o;20702:226::-;20842:34;20838:1;20830:6;20826:14;20819:58;20911:9;20906:2;20898:6;20894:15;20887:34;20702:226;:::o;20934:366::-;21076:3;21097:67;21161:2;21156:3;21097:67;:::i;:::-;21090:74;;21173:93;21262:3;21173:93;:::i;:::-;21291:2;21286:3;21282:12;21275:19;;20934:366;;;:::o;21306:419::-;21472:4;21510:2;21499:9;21495:18;21487:26;;21559:9;21553:4;21549:20;21545:1;21534:9;21530:17;21523:47;21587:131;21713:4;21587:131;:::i;:::-;21579:139;;21306:419;;;:::o;21731:224::-;21871:34;21867:1;21859:6;21855:14;21848:58;21940:7;21935:2;21927:6;21923:15;21916:32;21731:224;:::o;21961:366::-;22103:3;22124:67;22188:2;22183:3;22124:67;:::i;:::-;22117:74;;22200:93;22289:3;22200:93;:::i;:::-;22318:2;22313:3;22309:12;22302:19;;21961:366;;;:::o;22333:419::-;22499:4;22537:2;22526:9;22522:18;22514:26;;22586:9;22580:4;22576:20;22572:1;22561:9;22557:17;22550:47;22614:131;22740:4;22614:131;:::i;:::-;22606:139;;22333:419;;;:::o;22758:230::-;22898:34;22894:1;22886:6;22882:14;22875:58;22967:13;22962:2;22954:6;22950:15;22943:38;22758:230;:::o;22994:366::-;23136:3;23157:67;23221:2;23216:3;23157:67;:::i;:::-;23150:74;;23233:93;23322:3;23233:93;:::i;:::-;23351:2;23346:3;23342:12;23335:19;;22994:366;;;:::o;23366:419::-;23532:4;23570:2;23559:9;23555:18;23547:26;;23619:9;23613:4;23609:20;23605:1;23594:9;23590:17;23583:47;23647:131;23773:4;23647:131;:::i;:::-;23639:139;;23366:419;;;:::o;23791:442::-;23940:4;23978:2;23967:9;23963:18;23955:26;;23991:71;24059:1;24048:9;24044:17;24035:6;23991:71;:::i;:::-;24072:72;24140:2;24129:9;24125:18;24116:6;24072:72;:::i;:::-;24154;24222:2;24211:9;24207:18;24198:6;24154:72;:::i;:::-;23791:442;;;;;;:::o;24239:245::-;24379:34;24375:1;24367:6;24363:14;24356:58;24448:28;24443:2;24435:6;24431:15;24424:53;24239:245;:::o;24490:366::-;24632:3;24653:67;24717:2;24712:3;24653:67;:::i;:::-;24646:74;;24729:93;24818:3;24729:93;:::i;:::-;24847:2;24842:3;24838:12;24831:19;;24490:366;;;:::o;24862:419::-;25028:4;25066:2;25055:9;25051:18;25043:26;;25115:9;25109:4;25105:20;25101:1;25090:9;25086:17;25079:47;25143:131;25269:4;25143:131;:::i;:::-;25135:139;;24862:419;;;:::o;25287:233::-;25326:3;25349:24;25367:5;25349:24;:::i;:::-;25340:33;;25395:66;25388:5;25385:77;25382:103;;25465:18;;:::i;:::-;25382:103;25512:1;25505:5;25501:13;25494:20;;25287:233;;;:::o;25526:225::-;25666:34;25662:1;25654:6;25650:14;25643:58;25735:8;25730:2;25722:6;25718:15;25711:33;25526:225;:::o;25757:366::-;25899:3;25920:67;25984:2;25979:3;25920:67;:::i;:::-;25913:74;;25996:93;26085:3;25996:93;:::i;:::-;26114:2;26109:3;26105:12;26098:19;;25757:366;;;:::o;26129:419::-;26295:4;26333:2;26322:9;26318:18;26310:26;;26382:9;26376:4;26372:20;26368:1;26357:9;26353:17;26346:47;26410:131;26536:4;26410:131;:::i;:::-;26402:139;;26129:419;;;:::o;26554:181::-;26694:33;26690:1;26682:6;26678:14;26671:57;26554:181;:::o;26741:366::-;26883:3;26904:67;26968:2;26963:3;26904:67;:::i;:::-;26897:74;;26980:93;27069:3;26980:93;:::i;:::-;27098:2;27093:3;27089:12;27082:19;;26741:366;;;:::o;27113:419::-;27279:4;27317:2;27306:9;27302:18;27294:26;;27366:9;27360:4;27356:20;27352:1;27341:9;27337:17;27330:47;27394:131;27520:4;27394:131;:::i;:::-;27386:139;;27113:419;;;:::o;27538:182::-;27678:34;27674:1;27666:6;27662:14;27655:58;27538:182;:::o;27726:366::-;27868:3;27889:67;27953:2;27948:3;27889:67;:::i;:::-;27882:74;;27965:93;28054:3;27965:93;:::i;:::-;28083:2;28078:3;28074:12;28067:19;;27726:366;;;:::o;28098:419::-;28264:4;28302:2;28291:9;28287:18;28279:26;;28351:9;28345:4;28341:20;28337:1;28326:9;28322:17;28315:47;28379:131;28505:4;28379:131;:::i;:::-;28371:139;;28098:419;;;:::o

Swarm Source

ipfs://9d6499e36f3e1a52af7e9ae2540c7a55bde22b81a05846970c9afee7ce694eac

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.