ETH Price: $3,259.56 (-0.19%)
Gas: 1 Gwei

Contract

0x52DE0bD1fb06696A3fe4c427bdf2489FA5293482
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Withdraw Money185319342023-11-09 4:13:59261 days ago1699503239IN
0x52DE0bD1...FA5293482
0 ETH0.0012173333.46914637
Collect Money185319312023-11-09 4:13:23261 days ago1699503203IN
0x52DE0bD1...FA5293482
0 ETH0.0022820934.48731511
Upgrade Stable184102092023-10-23 3:09:23278 days ago1698030563IN
0x52DE0bD1...FA5293482
0 ETH0.000695259.16987887
Claim Airdrop183413512023-10-13 12:03:35287 days ago1697198615IN
0x52DE0bD1...FA5293482
0 ETH0.00052777.55492679
Upgrade Towncent...183413492023-10-13 12:03:11287 days ago1697198591IN
0x52DE0bD1...FA5293482
0 ETH0.000366797.31134942
Upgrade Tower183413462023-10-13 12:02:35287 days ago1697198555IN
0x52DE0bD1...FA5293482
0 ETH0.000452457.54986821
Upgrade Tower Ma...183413442023-10-13 12:02:11287 days ago1697198531IN
0x52DE0bD1...FA5293482
0 ETH0.000420627.30304503
Compound183413432023-10-13 12:01:59287 days ago1697198519IN
0x52DE0bD1...FA5293482
0 ETH0.000347857.39009689
Collect Money183413402023-10-13 12:01:23287 days ago1697198483IN
0x52DE0bD1...FA5293482
0 ETH0.000626047.86392924
Upgrade Tower183081012023-10-08 20:20:11292 days ago1696796411IN
0x52DE0bD1...FA5293482
0 ETH0.000320195.34702046
Compound183080992023-10-08 20:19:47292 days ago1696796387IN
0x52DE0bD1...FA5293482
0 ETH0.00025565.43024143
Compound183080972023-10-08 20:19:23292 days ago1696796363IN
0x52DE0bD1...FA5293482
0 ETH0.000268325.46806975
Collect Money183080962023-10-08 20:19:11292 days ago1696796351IN
0x52DE0bD1...FA5293482
0 ETH0.000449615.64771909
Upgrade Tower182271742023-09-27 12:44:23303 days ago1695818663IN
0x52DE0bD1...FA5293482
0 ETH0.0007259712.13247621
Upgrade Tower182271722023-09-27 12:43:59303 days ago1695818639IN
0x52DE0bD1...FA5293482
0 ETH0.0007242612.69823413
Compound182271702023-09-27 12:43:35303 days ago1695818615IN
0x52DE0bD1...FA5293482
0 ETH0.0005871412.47363811
Compound182271682023-09-27 12:43:11303 days ago1695818591IN
0x52DE0bD1...FA5293482
0 ETH0.000593412.09286858
Collect Money182271662023-09-27 12:42:47303 days ago1695818567IN
0x52DE0bD1...FA5293482
0 ETH0.001012812.72202072
Upgrade Tower181660212023-09-18 23:13:11312 days ago1695078791IN
0x52DE0bD1...FA5293482
0 ETH0.0006226510.41384699
Compound181660172023-09-18 23:12:23312 days ago1695078743IN
0x52DE0bD1...FA5293482
0 ETH0.0005419811.51416025
Collect Money181660152023-09-18 23:11:59312 days ago1695078719IN
0x52DE0bD1...FA5293482
0 ETH0.0008894711.17295616
Upgrade Tower181071992023-09-10 16:34:59320 days ago1694363699IN
0x52DE0bD1...FA5293482
0 ETH0.000560919.38840944
Upgrade Tower181071972023-09-10 16:34:35320 days ago1694363675IN
0x52DE0bD1...FA5293482
0 ETH0.000536458.98594558
Compound181071952023-09-10 16:34:11320 days ago1694363651IN
0x52DE0bD1...FA5293482
0 ETH0.00043089.15227634
Compound181071942023-09-10 16:33:59320 days ago1694363639IN
0x52DE0bD1...FA5293482
0 ETH0.000453899.24984905
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
KingdomQuestETH

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2023-04-07
*/

// SPDX-License-Identifier: MIT

// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);

    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `to`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address to, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `from` to `to` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) external returns (bool);
}

/* KingdomQuest Contract */

pragma solidity ^0.8.7;
pragma experimental ABIEncoderV2;

contract KingdomQuestETH {
    struct Tower {
        uint256 crystals;
        uint256 money;
        uint256 money2;
        uint256 yield;
        uint256 timestamp;
        uint256 hrs;
        address ref;
        uint256 refs;
        uint256 refDeps;
        uint8   treasury;
        uint8   market;
        uint8[5] chefs;
        bool[5] bounties;
        bool king;
    }

    struct Stable {
        uint256 stableBounty;
        uint256 stableTimestamp;
        uint256 stableHrs;
        uint8   stable;
    }

    mapping(address => Tower) public towers;
    mapping(address => Stable) public stables;

    uint256 public totalChefs;
    uint256 public totalTowers;
    uint256 public totalKings;
    uint256 public totalInvested;
    address public manager;
    address public stdref;

    IERC20 constant BUSD_TOKEN = IERC20(0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2);

    uint256 immutable public denominator = 10;
    bool public init;
    uint256 public compoundBonusPercent = 30;

    modifier initialized {
      require(init, 'Not initialized');
      _;
    }

    constructor(address manager_, address stdref_) {
       manager = manager_;
       stdref = stdref_;
    }


    function initialize() external {
      require(manager == msg.sender);
      require(!init);
      init = true;
    }

    function addCrystals(address ref, uint256 value) initialized external {
        uint256 crystals = value / 1e14;
        require(crystals > 0, "Zero stone");
        address user = msg.sender;
        totalInvested += value;
        if (towers[user].timestamp == 0) {
            totalTowers++;
            ref = towers[ref].timestamp == 0 ? stdref : ref;
            towers[ref].refs++;
            towers[user].ref = ref;
            towers[user].timestamp = block.timestamp;
            towers[user].treasury = 0;
            towers[user].market = 0;
        }
        ref = towers[user].ref;
        uint8 marketId = towers[ref].market;
        (,uint256 refCrystal, uint256 refGold) = getMarket(marketId);

        towers[ref].crystals += (crystals * refCrystal) / 100;
        towers[ref].money += (crystals * 100 * refGold) / 100;
        towers[ref].refDeps += crystals;
        towers[user].crystals += crystals;
        towers[manager].crystals += (crystals * 5) / 100;

        uint256 valueToManager = (value * 3) / 100;
        BUSD_TOKEN.transferFrom(msg.sender, manager, valueToManager);
        BUSD_TOKEN.transferFrom(msg.sender, address(this), value - valueToManager);
    }

    function withdrawMoney(uint256 gold) initialized external {
        address user = msg.sender;
        require(gold <= towers[user].money && gold > 0);
        towers[user].money -= gold;
        uint256 amount = gold * 1e12;
        BUSD_TOKEN.transfer(user, BUSD_TOKEN.balanceOf(address(this)) < amount ? BUSD_TOKEN.balanceOf(address(this)) : amount);
    }

    function kingBounty() initialized external {
        address user = msg.sender;
        require(towers[user].king == false, "Already Claimed");
        require(towers[user].chefs[4] == 6 && towers[user].treasury == 4 && towers[user].market == 2 && stables[user].stable == 3, "All buildings must be max level");
        syncTower(user);
        towers[user].money += 1000000;
        towers[user].king = true;
        totalKings += 1;
    }

    function collectMoney() public {
        address user = msg.sender;
        syncTower(user);
        towers[user].hrs = 0;
        towers[user].money += towers[user].money2;
        towers[user].money2 = 0;
    }
    
    function collectStableBounty() public {
        address user = msg.sender;
        syncStable(user);
        stables[user].stableHrs = 0;
        towers[user].money += stables[user].stableBounty;
        stables[user].stableBounty = 0;
    }

    function claimAirdrop(uint256 towerId) initialized external {
        address user = msg.sender;
        syncTower(user);
        require(towers[user].chefs[towerId] == 6, "Not Max Level");
        require(towers[user].bounties[towerId] == false, "Already Claimed");
        uint256 bounty = getBounty(towerId);
        towers[user].money += bounty;
        towers[user].bounties[towerId] = true;
    }

    function upgradeTower(uint256 towerId) initialized external {
        require(towerId < 5, "Max 5 towers");
        address user = msg.sender;
        if (towerId > 0) {
            require(towers[user].chefs[towerId-1] == 6, "Prev Tower not upgraded");
        }

        syncTower(user);
        towers[user].chefs[towerId]++;
        totalChefs++;
        uint256 chefs = towers[user].chefs[towerId];
        towers[user].crystals -= getUpgradePrice(towerId, chefs);
        towers[user].yield += getYield(towerId, chefs);
    }

    function upgradeTowerMax(uint256 towerId) initialized external {
        require(towerId < 5, "Max 5 towers");
        address user = msg.sender;
        if (towerId > 0) {
            require(towers[user].chefs[towerId-1] == 6, "Prev Tower not upgraded");
        }

        syncTower(user);

        for (uint8 i = towers[user].chefs[towerId]; i < 6; i++) {
            towers[user].chefs[towerId]++;
            totalChefs++;
            uint256 chefs = towers[user].chefs[towerId];
            towers[user].crystals -= getUpgradePrice(towerId, chefs);
            towers[user].yield += getYield(towerId, chefs);
        }
    }

    function upgradeTowncenter() initialized external {
      address user = msg.sender;
      require(towers[user].chefs[0] == 6, "Tower-1 should be Max Level");
      uint8 treasuryId = towers[user].treasury + 1;
      syncTower(user);
      require(treasuryId < 5, "Max 5 treasury");
      (uint256 price,) = getTreasure(treasuryId);
      towers[user].crystals -= price; 
      towers[user].treasury = treasuryId;
    }

    function upgradeMarket() initialized external {
      address user = msg.sender;
      require(towers[user].chefs[1] == 6, "Tower-2 should be Max Level");
      uint8 marketId = towers[user].market + 1;
      require(marketId < 3, "Max 2 market");
      (uint256 price,,) = getMarket(marketId);
      towers[user].crystals -= price; 
      towers[user].market = marketId;
    }

    function upgradeStable() initialized external {
      address user = msg.sender;
      uint8 stableId = stables[user].stable + 1;
      require(stableId < 4, "Max 3 stable");
      (uint256 price,, uint256 towerId) = getStable(stableId);
      require(towers[user].chefs[towerId] == 6, "Tower should be Max Level");
      
      towers[user].crystals -= price; 
      stables[user].stable = stableId;
      stables[user].stableTimestamp = block.timestamp;
    }

    function setCompoundBonusPercent(uint256 percent) initialized external {
        require(msg.sender == manager, "Only manager");
        require(0 <= percent && percent <= 100, "Invalid value for percent");
        compoundBonusPercent = percent;
    }

    function compound() initialized external {
        address user = msg.sender;
        syncTower(user);
        towers[user].crystals += (100 + compoundBonusPercent) * towers[user].money / 10000;
        towers[user].money = 0;
    }

    function getChefs(address addr) external view returns (uint8[5] memory) {
        return towers[addr].chefs;
    }
    
    function getBounties(address addr) external view returns (bool[5] memory) {
        return towers[addr].bounties;
    }

    function syncTower(address user) internal {
        require(towers[user].timestamp > 0, "User is not registered");
        if (towers[user].yield > 0) {
            (, uint256 treasury) = getTreasure(towers[user].treasury);
            uint256 hrs = block.timestamp / 3600 - towers[user].timestamp / 3600;
            if (hrs + towers[user].hrs > treasury) {
                hrs = treasury - towers[user].hrs;
            }
            towers[user].money2 += hrs * towers[user].yield / 100;
            towers[user].hrs += hrs;
        }
        towers[user].timestamp = block.timestamp;
    }

    function syncStable(address user) internal {
        require(stables[user].stableTimestamp > 0, "User Stable is not registered");
        uint8 stableId = stables[user].stable;
        (,uint256 bounty,) = getStable(stableId);

        if (bounty > 0) {
            uint256 hrs = block.timestamp / 3600 - stables[user].stableTimestamp / 3600;
            if (hrs + stables[user].stableHrs > 24) {
                hrs = 24 - stables[user].stableHrs;
            }
            stables[user].stableBounty = (hrs + stables[user].stableHrs) / 24 * bounty;
            stables[user].stableHrs += hrs;
        }
        stables[user].stableTimestamp = block.timestamp;
    }

    function getUpgradePrice(uint256 towerId, uint256 chefId) internal pure returns (uint256) {
        if (chefId == 1) return [60, 319, 1495, 5250, 15000][towerId];
        if (chefId == 2) return [95, 403, 2000, 6250, 18000][towerId];
        if (chefId == 3) return [117, 590, 2750, 7400, 20750][towerId];
        if (chefId == 4) return [173, 760, 3750, 8100, 23500][towerId];
        if (chefId == 5) return [215, 835, 4100, 9750, 25000][towerId];
        if (chefId == 6) return [234, 905, 4740, 11500, 27500][towerId];
        revert("Incorrect chefId");
    }

    function getYield(uint256 towerId, uint256 chefId) internal pure returns (uint256) {
        if (chefId == 1) return [375, 2175, 11025, 41625, 127500][towerId];
        if (chefId == 2) return [600, 2775, 14925, 50250, 154500][towerId];
        if (chefId == 3) return [750, 4125, 20775, 60150, 180000][towerId];
        if (chefId == 4) return [1125, 5400, 28725, 66675, 206250][towerId];
        if (chefId == 5) return [1425, 6000, 31800, 81000, 230250][towerId];
        if (chefId == 6) return [1575, 6600, 37125, 96750, 258000][towerId];
        revert("Incorrect chefId");
    }

    function getTreasure(uint256 treasureId) internal pure returns (uint256, uint256) {
      if(treasureId == 0) return (0, 120); // price | hours
      if(treasureId == 1) return (50, 168);
      if(treasureId == 2) return (70, 240);
      if(treasureId == 3) return (100, 336);
      if(treasureId == 4) return (150, 480);
      revert("Incorrect treasureId");
    }

    function getMarket(uint256 marketId) internal pure returns (uint256, uint256, uint256) {
      if(marketId == 0) return (0, 4, 2); // price | crystal Ref |  gold Ref
      if(marketId == 1) return (200, 6, 3);
      if(marketId == 2) return (400, 8, 4);
      revert("Incorrect marketId");
    }

    function getBounty(uint256 towerId) internal pure returns (uint256) {
        return [2500, 9500, 50000, 125000, 350000][towerId];
    }

    function getStable(uint256 stableId) internal pure returns (uint256, uint256, uint256 ) {
        if(stableId == 0) return (0, 0, 0); // price | gold bounty per 24hrs | tower id to max
        if(stableId == 1) return (5000, 25000, 2);
        if(stableId == 2) return (7500, 45000, 3);
        if(stableId == 3) return (10000, 75000, 4);
        revert("Incorrect stableId");
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"manager_","type":"address"},{"internalType":"address","name":"stdref_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"ref","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"addCrystals","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"towerId","type":"uint256"}],"name":"claimAirdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"collectMoney","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"collectStableBounty","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"compound","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"compoundBonusPercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"denominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"getBounties","outputs":[{"internalType":"bool[5]","name":"","type":"bool[5]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"getChefs","outputs":[{"internalType":"uint8[5]","name":"","type":"uint8[5]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"init","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"kingBounty","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manager","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"setCompoundBonusPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"stables","outputs":[{"internalType":"uint256","name":"stableBounty","type":"uint256"},{"internalType":"uint256","name":"stableTimestamp","type":"uint256"},{"internalType":"uint256","name":"stableHrs","type":"uint256"},{"internalType":"uint8","name":"stable","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stdref","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalChefs","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalInvested","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalKings","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalTowers","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"towers","outputs":[{"internalType":"uint256","name":"crystals","type":"uint256"},{"internalType":"uint256","name":"money","type":"uint256"},{"internalType":"uint256","name":"money2","type":"uint256"},{"internalType":"uint256","name":"yield","type":"uint256"},{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"uint256","name":"hrs","type":"uint256"},{"internalType":"address","name":"ref","type":"address"},{"internalType":"uint256","name":"refs","type":"uint256"},{"internalType":"uint256","name":"refDeps","type":"uint256"},{"internalType":"uint8","name":"treasury","type":"uint8"},{"internalType":"uint8","name":"market","type":"uint8"},{"internalType":"bool","name":"king","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"upgradeMarket","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"upgradeStable","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"towerId","type":"uint256"}],"name":"upgradeTower","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"towerId","type":"uint256"}],"name":"upgradeTowerMax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"upgradeTowncenter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"gold","type":"uint256"}],"name":"withdrawMoney","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60a0604052600a608052601e6008553480156200001b57600080fd5b5060405162002930380380620029308339810160408190526200003e916200008d565b600680546001600160a01b039384166001600160a01b03199182161790915560078054929093169116179055620000c5565b80516001600160a01b03811681146200008857600080fd5b919050565b60008060408385031215620000a157600080fd5b620000ac8362000070565b9150620000bc6020840162000070565b90509250929050565b60805161284f620000e160003960006103a0015261284f6000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c8063822726ac116100f9578063e30d444011610097578063ea4976e411610071578063ea4976e41461047a578063f30b44631461048d578063f662ef2a14610496578063f69e2046146104a957600080fd5b8063e30d44401461043f578063e52c9f9414610452578063e9b8b0061461047257600080fd5b8063c6b90578116100d3578063c6b90578146103d5578063d685e00a146103e8578063d68cf49d14610408578063e1c7392a1461041b57600080fd5b8063822726ac1461039257806396ce07951461039b5780639df61e86146103c257600080fd5b8063481c6a7511610166578063548769211161014057806354876921146103665780635e6413051461037957806369a191cb146103825780638129fc1c1461038a57600080fd5b8063481c6a751461032a57806348dc0e72146103555780635216aeec1461035d57600080fd5b80631021793a146101ae5780631285b6bf146101b857806315fbfe2a146102a75780631b70cd86146102af5780631d8549e1146102c65780634743a510146102ce575b600080fd5b6101b66104b1565b005b6102386101c6366004612616565b600060208190529081526040902080546001820154600283015460038401546004850154600586015460068701546007880154600889015460098a0154600c909a01549899979896979596949593946001600160a01b03909316939192909160ff80821692610100909204811691168c565b604080519c8d5260208d019b909b52998b019890985260608a0196909652608089019490945260a08801929092526001600160a01b031660c087015260e086015261010085015260ff908116610120850152166101408301521515610160820152610180015b60405180910390f35b6101b6610639565b6102b860025481565b60405190815260200161029e565b6101b66107b2565b6103076102dc366004612616565b6001602081905260009182526040909120805491810154600282015460039092015490919060ff1684565b6040805194855260208501939093529183015260ff16606082015260800161029e565b60065461033d906001600160a01b031681565b6040516001600160a01b03909116815260200161029e565b6101b66109a9565b6102b860055481565b6101b6610374366004612638565b610b4c565b6102b860045481565b6101b6610d57565b6101b6610dbd565b6102b860085481565b6102b87f000000000000000000000000000000000000000000000000000000000000000081565b60075461033d906001600160a01b031681565b6101b66103e3366004612638565b610e00565b6103fb6103f6366004612616565b6110b3565b60405161029e9190612651565b6101b6610416366004612638565b611125565b60075461042f90600160a01b900460ff1681565b604051901515815260200161029e565b6101b661044d366004612638565b611372565b610465610460366004612616565b611546565b60405161029e9190612685565b6101b66115ba565b6101b66104883660046126af565b611620565b6102b860035481565b6101b66104a4366004612638565b611a6e565b6101b6611b36565b600754600160a01b900460ff166104e35760405162461bcd60e51b81526004016104da906126d9565b60405180910390fd5b336000818152602081905260409020600a0154610100900460ff1660061461054d5760405162461bcd60e51b815260206004820152601b60248201527f546f7765722d322073686f756c64206265204d6178204c6576656c000000000060448201526064016104da565b6001600160a01b03811660009081526020819052604081206009015461057c90610100900460ff16600161272e565b905060038160ff16106105c05760405162461bcd60e51b815260206004820152600c60248201526b13585e080c881b585c9ad95d60a21b60448201526064016104da565b60006105ce8260ff16611bf6565b50506001600160a01b0384166000908152602081905260408120805492935083929091906105fd908490612747565b9091555050506001600160a01b039091166000908152602081905260409020600901805460ff9092166101000261ff0019909216919091179055565b600754600160a01b900460ff166106625760405162461bcd60e51b81526004016104da906126d9565b336000818152602081905260409020600a015460ff166006146106c75760405162461bcd60e51b815260206004820152601b60248201527f546f7765722d312073686f756c64206265204d6178204c6576656c000000000060448201526064016104da565b6001600160a01b0381166000908152602081905260408120600901546106f19060ff16600161272e565b90506106fc82611c88565b60058160ff16106107405760405162461bcd60e51b815260206004820152600e60248201526d4d6178203520747265617375727960901b60448201526064016104da565b600061074e8260ff16611e86565b506001600160a01b03841660009081526020819052604081208054929350839290919061077c908490612747565b9091555050506001600160a01b03919091166000908152602081905260409020600901805460ff191660ff909216919091179055565b600754600160a01b900460ff166107db5760405162461bcd60e51b81526004016104da906126d9565b336000818152602081905260409020600c015460ff16156108305760405162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e4810db185a5b5959608a1b60448201526064016104da565b6001600160a01b0381166000908152602081905260409020600a0154640100000000900460ff16600614801561088457506001600160a01b03811660009081526020819052604090206009015460ff166004145b80156108b357506001600160a01b038116600090815260208190526040902060090154610100900460ff166002145b80156108dd57506001600160a01b038116600090815260016020526040902060039081015460ff16145b6109295760405162461bcd60e51b815260206004820152601f60248201527f416c6c206275696c64696e6773206d757374206265206d6178206c6576656c0060448201526064016104da565b61093281611c88565b6001600160a01b03811660009081526020819052604081206001018054620f4240929061096090849061275a565b90915550506001600160a01b0381166000908152602081905260408120600c01805460ff1916600190811790915560048054919290916109a190849061275a565b909155505050565b600754600160a01b900460ff166109d25760405162461bcd60e51b81526004016104da906126d9565b3360008181526001602081905260408220600301546109f69160ff9091169061272e565b905060048160ff1610610a3a5760405162461bcd60e51b815260206004820152600c60248201526b4d6178203320737461626c6560a01b60448201526064016104da565b600080610a498360ff16611f2e565b6001600160a01b0387166000908152602081905260409020929450925050600a018160058110610a7b57610a7b612702565b602091828204019190069054906101000a900460ff1660ff16600614610ae35760405162461bcd60e51b815260206004820152601960248201527f546f7765722073686f756c64206265204d6178204c6576656c0000000000000060448201526064016104da565b6001600160a01b03841660009081526020819052604081208054849290610b0b908490612747565b9091555050506001600160a01b03909216600090815260016020819052604090912060038101805460ff90941660ff19909416939093179092554291015550565b600754600160a01b900460ff16610b755760405162461bcd60e51b81526004016104da906126d9565b336000818152602081905260409020600101548211801590610b975750600082115b610ba057600080fd5b6001600160a01b03811660009081526020819052604081206001018054849290610bcb908490612747565b9091555060009050610be28364e8d4a5100061276d565b6040516370a0823160e01b815230600482015290915073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc29063a9059cbb908490849084906370a0823190602401602060405180830381865afa158015610c40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c649190612784565b10610c6f5783610ce2565b6040516370a0823160e01b815230600482015273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2906370a0823190602401602060405180830381865afa158015610cbe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce29190612784565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610d2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d51919061279d565b50505050565b33610d6181611c88565b6001600160a01b03811660009081526020819052604081206005810182905560028101546001909101805491929091610d9b90849061275a565b90915550506001600160a01b0316600090815260208190526040812060020155565b6006546001600160a01b03163314610dd457600080fd5b600754600160a01b900460ff1615610deb57600080fd5b6007805460ff60a01b1916600160a01b179055565b600754600160a01b900460ff16610e295760405162461bcd60e51b81526004016104da906126d9565b60058110610e685760405162461bcd60e51b815260206004820152600c60248201526b4d6178203520746f7765727360a01b60448201526064016104da565b338115610f07576001600160a01b0381166000908152602081905260409020600a01610e95600184612747565b60058110610ea557610ea5612702565b602091828204019190069054906101000a900460ff1660ff16600614610f075760405162461bcd60e51b8152602060048201526017602482015276141c995d88151bddd95c881b9bdd081d5c19dc98591959604a1b60448201526064016104da565b610f1081611c88565b6001600160a01b0381166000908152602081905260408120600a018360058110610f3c57610f3c612702565b602081049091015460ff601f9092166101000a90041690505b60068160ff1610156110ae576001600160a01b0382166000908152602081905260409020600a018360058110610f8d57610f8d612702565b6020918282040191900681819054906101000a900460ff1680929190610fb2906127bf565b91906101000a81548160ff021916908360ff1602179055505060026000815480929190610fde906127de565b90915550506001600160a01b0382166000908152602081905260408120600a01846005811061100f5761100f612702565b602081049091015460ff601f9092166101000a90041690506110318482611fd5565b6001600160a01b03841660009081526020819052604081208054909190611059908490612747565b90915550611069905084826121de565b6001600160a01b0384166000908152602081905260408120600301805490919061109490849061275a565b909155508291506110a69050816127bf565b915050610f55565b505050565b6110bb6125dc565b6001600160a01b038216600090815260208190526040808220815160a081019283905292600a909101916005918390855b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116110ec575094979650505050505050565b600754600160a01b900460ff1661114e5760405162461bcd60e51b81526004016104da906126d9565b6005811061118d5760405162461bcd60e51b815260206004820152600c60248201526b4d6178203520746f7765727360a01b60448201526064016104da565b33811561122c576001600160a01b0381166000908152602081905260409020600a016111ba600184612747565b600581106111ca576111ca612702565b602091828204019190069054906101000a900460ff1660ff1660061461122c5760405162461bcd60e51b8152602060048201526017602482015276141c995d88151bddd95c881b9bdd081d5c19dc98591959604a1b60448201526064016104da565b61123581611c88565b6001600160a01b0381166000908152602081905260409020600a01826005811061126157611261612702565b6020918282040191900681819054906101000a900460ff1680929190611286906127bf565b91906101000a81548160ff021916908360ff16021790555050600260008154809291906112b2906127de565b90915550506001600160a01b0381166000908152602081905260408120600a0183600581106112e3576112e3612702565b602081049091015460ff601f9092166101000a90041690506113058382611fd5565b6001600160a01b0383166000908152602081905260408120805490919061132d908490612747565b9091555061133d905083826121de565b6001600160a01b0383166000908152602081905260408120600301805490919061136890849061275a565b9091555050505050565b600754600160a01b900460ff1661139b5760405162461bcd60e51b81526004016104da906126d9565b336113a581611c88565b6001600160a01b0381166000908152602081905260409020600a0182600581106113d1576113d1612702565b602091828204019190069054906101000a900460ff1660ff166006146114295760405162461bcd60e51b815260206004820152600d60248201526c139bdd0813585e0813195d995b609a1b60448201526064016104da565b6001600160a01b0381166000908152602081905260409020600b01826005811061145557611455612702565b602081049091015460ff601f9092166101000a900416156114aa5760405162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e4810db185a5b5959608a1b60448201526064016104da565b60006114b5836123b6565b905080600080846001600160a01b03166001600160a01b0316815260200190815260200160002060010160008282546114ee919061275a565b90915550506001600160a01b0382166000908152602081905260409020600190600b01846005811061152257611522612702565b602091828204019190066101000a81548160ff021916908315150217905550505050565b61154e6125dc565b6001600160a01b038216600090815260208190526040808220815160a081019283905292600b909101916005918390855b825461010083900a900460ff16151581526020600192830181810494850194909303909202910180841161157f575094979650505050505050565b336115c48161240d565b6001600160a01b0381166000908152600160208181526040808420600281018590555491849052832090910180549192909161160190849061275a565b90915550506001600160a01b0316600090815260016020526040812055565b600754600160a01b900460ff166116495760405162461bcd60e51b81526004016104da906126d9565b600061165b655af3107a4000836127f7565b90506000811161169a5760405162461bcd60e51b815260206004820152600a6024820152695a65726f2073746f6e6560b01b60448201526064016104da565b600033905082600560008282546116b1919061275a565b90915550506001600160a01b038116600090815260208190526040812060040154900361179657600380549060006116e8836127de565b90915550506001600160a01b038416600090815260208190526040902060040154156117145783611721565b6007546001600160a01b03165b6001600160a01b038116600090815260208190526040812060070180549296509061174b836127de565b90915550506001600160a01b0381811660009081526020819052604090206006810180546001600160a01b03191692871692909217909155426004820155600901805461ffff191690555b6001600160a01b03818116600090815260208190526040808220600601549092168082529181206009015491955061010090910460ff1690806117d883611bf6565b9250925050606482866117eb919061276d565b6117f591906127f7565b6001600160a01b0388166000908152602081905260408120805490919061181d90849061275a565b909155506064905081611830878361276d565b61183a919061276d565b61184491906127f7565b6001600160a01b0388166000908152602081905260408120600101805490919061186f90849061275a565b90915550506001600160a01b0387166000908152602081905260408120600801805487929061189f90849061275a565b90915550506001600160a01b038416600090815260208190526040812080548792906118cc90849061275a565b90915550606490506118df86600561276d565b6118e991906127f7565b6006546001600160a01b03166000908152602081905260408120805490919061191390849061275a565b9091555060009050606461192888600361276d565b61193291906127f7565b6006546040516323b872dd60e01b81523360048201526001600160a01b0390911660248201526044810182905290915073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2906323b872dd906064016020604051808303816000875af11580156119a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119c4919061279d565b5073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26323b872dd33306119eb858c612747565b6040516001600160e01b031960e086901b1681526001600160a01b03938416600482015292909116602483015260448201526064016020604051808303816000875af1158015611a3f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a63919061279d565b505050505050505050565b600754600160a01b900460ff16611a975760405162461bcd60e51b81526004016104da906126d9565b6006546001600160a01b03163314611ae05760405162461bcd60e51b815260206004820152600c60248201526b27b7363c9036b0b730b3b2b960a11b60448201526064016104da565b6064811115611b315760405162461bcd60e51b815260206004820152601960248201527f496e76616c69642076616c756520666f722070657263656e740000000000000060448201526064016104da565b600855565b600754600160a01b900460ff16611b5f5760405162461bcd60e51b81526004016104da906126d9565b33611b6981611c88565b6001600160a01b0381166000908152602081905260409020600101546008546127109190611b9890606461275a565b611ba2919061276d565b611bac91906127f7565b6001600160a01b03821660009081526020819052604081208054909190611bd490849061275a565b90915550506001600160a01b0316600090815260208190526040812060010155565b600080600083600003611c13575060009150600490506002611c81565b83600103611c2b575060c89150600690506003611c81565b83600203611c4457506101909150600890506004611c81565b60405162461bcd60e51b8152602060048201526012602482015271125b98dbdc9c9958dd081b585c9ad95d125960721b60448201526064016104da565b9193909250565b6001600160a01b038116600090815260208190526040902060040154611ce95760405162461bcd60e51b8152602060048201526016602482015275155cd95c881a5cc81b9bdd081c9959da5cdd195c995960521b60448201526064016104da565b6001600160a01b03811660009081526020819052604090206003015415611e66576001600160a01b038116600090815260208190526040812060090154611d329060ff16611e86565b6001600160a01b0384166000908152602081905260408120600401549193509150611d6090610e10906127f7565b611d6c610e10426127f7565b611d769190612747565b6001600160a01b0384166000908152602081905260409020600501549091508290611da1908361275a565b1115611dd0576001600160a01b038316600090815260208190526040902060050154611dcd9083612747565b90505b6001600160a01b038316600090815260208190526040902060030154606490611df9908361276d565b611e0391906127f7565b6001600160a01b03841660009081526020819052604081206002018054909190611e2e90849061275a565b90915550506001600160a01b03831660009081526020819052604081206005018054839290611e5e90849061275a565b909155505050505b6001600160a01b0316600090815260208190526040902042600490910155565b60008082600003611e9d5750600092607892509050565b82600103611eb1575060329260a892509050565b82600203611ec5575060469260f092509050565b82600303611eda575060649261015092509050565b82600403611eef57506096926101e092509050565b60405162461bcd60e51b8152602060048201526014602482015273125b98dbdc9c9958dd081d1c99585cdd5c99525960621b60448201526064016104da565b600080600083600003611f4957506000915081905080611c81565b83600103611f63575061138891506161a890506002611c81565b83600203611f7d5750611d4c915061afc890506003611c81565b83600303611f9857506127109150620124f890506004611c81565b60405162461bcd60e51b8152602060048201526012602482015271125b98dbdc9c9958dd081cdd18589b19525960721b60448201526064016104da565b600081600103612030576040805160a081018252603c815261013f60208201526105d7918101919091526114826060820152613a986080820152836005811061202057612020612702565b602002015161ffff1690506121d8565b81600203612079576040805160a081018252605f815261019360208201526107d09181019190915261186a60608201526146506080820152836005811061202057612020612702565b816003036120c2576040805160a0810182526075815261024e6020820152610abe91810191909152611ce8606082015261510e6080820152836005811061202057612020612702565b8160040361210b576040805160a08101825260ad81526102f86020820152610ea691810191909152611fa46060820152615bcc6080820152836005811061202057612020612702565b81600503612154576040805160a08101825260d7815261034360208201526110049181019190915261261660608201526161a86080820152836005811061202057612020612702565b8160060361219d576040805160a08101825260ea8152610389602082015261128491810191909152612cec6060820152616b6c6080820152836005811061202057612020612702565b60405162461bcd60e51b815260206004820152601060248201526f125b98dbdc9c9958dd0818da1959925960821b60448201526064016104da565b92915050565b60008160010361223c576040805160a081018252610177815261087f6020820152612b119181019190915261a29960608201526201f20c6080820152836005811061222b5761222b612702565b602002015162ffffff1690506121d8565b81600203612287576040805160a0810182526102588152610ad76020820152613a4d9181019190915261c44a606082015262025b846080820152836005811061222b5761222b612702565b816003036122d2576040805160a0810182526102ee815261101d60208201526151279181019190915261eaf660608201526202bf206080820152836005811061222b5761222b612702565b8160040361231e576040805160a0810182526104658152611518602082015261703591810191909152620104736060820152620325aa6080820152836005811061222b5761222b612702565b8160050361236a576040805160a08101825261059181526117706020820152617c389181019190915262013c6860608201526203836a6080820152836005811061222b5761222b612702565b8160060361219d576040805160a08101825261062781526119c8602082015261910591810191909152620179ee60608201526203efd06080820152836005811061222b5761222b612702565b6040805160a0810182526109c4815261251c602082015261c350918101919091526201e848606082015262055730608082015260009082600581106123fd576123fd612702565b602002015162ffffff1692915050565b6001600160a01b038116600090815260016020819052604090912001546124765760405162461bcd60e51b815260206004820152601d60248201527f5573657220537461626c65206973206e6f74207265676973746572656400000060448201526064016104da565b6001600160a01b03811660009081526001602052604081206003015460ff169061249f82611f2e565b5091505080156125ba576001600160a01b0383166000908152600160208190526040822001546124d290610e10906127f7565b6124de610e10426127f7565b6124e89190612747565b6001600160a01b038516600090815260016020526040902060020154909150601890612514908361275a565b1115612544576001600160a01b038416600090815260016020526040902060020154612541906018612747565b90505b6001600160a01b038416600090815260016020526040902060020154829060189061256f908461275a565b61257991906127f7565b612583919061276d565b6001600160a01b0385166000908152600160205260408120918255600290910180548392906125b390849061275a565b9091555050505b50506001600160a01b0316600090815260016020819052604090912042910155565b6040518060a001604052806005906020820280368337509192915050565b80356001600160a01b038116811461261157600080fd5b919050565b60006020828403121561262857600080fd5b612631826125fa565b9392505050565b60006020828403121561264a57600080fd5b5035919050565b60a08101818360005b600581101561267c57815160ff1683526020928301929091019060010161265a565b50505092915050565b60a08101818360005b600581101561267c578151151583526020928301929091019060010161268e565b600080604083850312156126c257600080fd5b6126cb836125fa565b946020939093013593505050565b6020808252600f908201526e139bdd081a5b9a5d1a585b1a5e9959608a1b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60ff81811683821601908111156121d8576121d8612718565b818103818111156121d8576121d8612718565b808201808211156121d8576121d8612718565b80820281158282048414176121d8576121d8612718565b60006020828403121561279657600080fd5b5051919050565b6000602082840312156127af57600080fd5b8151801515811461263157600080fd5b600060ff821660ff81036127d5576127d5612718565b60010192915050565b6000600182016127f0576127f0612718565b5060010190565b60008261281457634e487b7160e01b600052601260045260246000fd5b50049056fea26469706673582212209f0d60c1a8828a0da6517844c4ea4562468be2ee3eebce507bdba44637edab5a64736f6c63430008110033000000000000000000000000b134b5244e0ec06cfac86871db2bea344abe52e6000000000000000000000000a2f27e1fe5ca41ab6a259c63cbd14c3752a756eb

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101a95760003560e01c8063822726ac116100f9578063e30d444011610097578063ea4976e411610071578063ea4976e41461047a578063f30b44631461048d578063f662ef2a14610496578063f69e2046146104a957600080fd5b8063e30d44401461043f578063e52c9f9414610452578063e9b8b0061461047257600080fd5b8063c6b90578116100d3578063c6b90578146103d5578063d685e00a146103e8578063d68cf49d14610408578063e1c7392a1461041b57600080fd5b8063822726ac1461039257806396ce07951461039b5780639df61e86146103c257600080fd5b8063481c6a7511610166578063548769211161014057806354876921146103665780635e6413051461037957806369a191cb146103825780638129fc1c1461038a57600080fd5b8063481c6a751461032a57806348dc0e72146103555780635216aeec1461035d57600080fd5b80631021793a146101ae5780631285b6bf146101b857806315fbfe2a146102a75780631b70cd86146102af5780631d8549e1146102c65780634743a510146102ce575b600080fd5b6101b66104b1565b005b6102386101c6366004612616565b600060208190529081526040902080546001820154600283015460038401546004850154600586015460068701546007880154600889015460098a0154600c909a01549899979896979596949593946001600160a01b03909316939192909160ff80821692610100909204811691168c565b604080519c8d5260208d019b909b52998b019890985260608a0196909652608089019490945260a08801929092526001600160a01b031660c087015260e086015261010085015260ff908116610120850152166101408301521515610160820152610180015b60405180910390f35b6101b6610639565b6102b860025481565b60405190815260200161029e565b6101b66107b2565b6103076102dc366004612616565b6001602081905260009182526040909120805491810154600282015460039092015490919060ff1684565b6040805194855260208501939093529183015260ff16606082015260800161029e565b60065461033d906001600160a01b031681565b6040516001600160a01b03909116815260200161029e565b6101b66109a9565b6102b860055481565b6101b6610374366004612638565b610b4c565b6102b860045481565b6101b6610d57565b6101b6610dbd565b6102b860085481565b6102b87f000000000000000000000000000000000000000000000000000000000000000a81565b60075461033d906001600160a01b031681565b6101b66103e3366004612638565b610e00565b6103fb6103f6366004612616565b6110b3565b60405161029e9190612651565b6101b6610416366004612638565b611125565b60075461042f90600160a01b900460ff1681565b604051901515815260200161029e565b6101b661044d366004612638565b611372565b610465610460366004612616565b611546565b60405161029e9190612685565b6101b66115ba565b6101b66104883660046126af565b611620565b6102b860035481565b6101b66104a4366004612638565b611a6e565b6101b6611b36565b600754600160a01b900460ff166104e35760405162461bcd60e51b81526004016104da906126d9565b60405180910390fd5b336000818152602081905260409020600a0154610100900460ff1660061461054d5760405162461bcd60e51b815260206004820152601b60248201527f546f7765722d322073686f756c64206265204d6178204c6576656c000000000060448201526064016104da565b6001600160a01b03811660009081526020819052604081206009015461057c90610100900460ff16600161272e565b905060038160ff16106105c05760405162461bcd60e51b815260206004820152600c60248201526b13585e080c881b585c9ad95d60a21b60448201526064016104da565b60006105ce8260ff16611bf6565b50506001600160a01b0384166000908152602081905260408120805492935083929091906105fd908490612747565b9091555050506001600160a01b039091166000908152602081905260409020600901805460ff9092166101000261ff0019909216919091179055565b600754600160a01b900460ff166106625760405162461bcd60e51b81526004016104da906126d9565b336000818152602081905260409020600a015460ff166006146106c75760405162461bcd60e51b815260206004820152601b60248201527f546f7765722d312073686f756c64206265204d6178204c6576656c000000000060448201526064016104da565b6001600160a01b0381166000908152602081905260408120600901546106f19060ff16600161272e565b90506106fc82611c88565b60058160ff16106107405760405162461bcd60e51b815260206004820152600e60248201526d4d6178203520747265617375727960901b60448201526064016104da565b600061074e8260ff16611e86565b506001600160a01b03841660009081526020819052604081208054929350839290919061077c908490612747565b9091555050506001600160a01b03919091166000908152602081905260409020600901805460ff191660ff909216919091179055565b600754600160a01b900460ff166107db5760405162461bcd60e51b81526004016104da906126d9565b336000818152602081905260409020600c015460ff16156108305760405162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e4810db185a5b5959608a1b60448201526064016104da565b6001600160a01b0381166000908152602081905260409020600a0154640100000000900460ff16600614801561088457506001600160a01b03811660009081526020819052604090206009015460ff166004145b80156108b357506001600160a01b038116600090815260208190526040902060090154610100900460ff166002145b80156108dd57506001600160a01b038116600090815260016020526040902060039081015460ff16145b6109295760405162461bcd60e51b815260206004820152601f60248201527f416c6c206275696c64696e6773206d757374206265206d6178206c6576656c0060448201526064016104da565b61093281611c88565b6001600160a01b03811660009081526020819052604081206001018054620f4240929061096090849061275a565b90915550506001600160a01b0381166000908152602081905260408120600c01805460ff1916600190811790915560048054919290916109a190849061275a565b909155505050565b600754600160a01b900460ff166109d25760405162461bcd60e51b81526004016104da906126d9565b3360008181526001602081905260408220600301546109f69160ff9091169061272e565b905060048160ff1610610a3a5760405162461bcd60e51b815260206004820152600c60248201526b4d6178203320737461626c6560a01b60448201526064016104da565b600080610a498360ff16611f2e565b6001600160a01b0387166000908152602081905260409020929450925050600a018160058110610a7b57610a7b612702565b602091828204019190069054906101000a900460ff1660ff16600614610ae35760405162461bcd60e51b815260206004820152601960248201527f546f7765722073686f756c64206265204d6178204c6576656c0000000000000060448201526064016104da565b6001600160a01b03841660009081526020819052604081208054849290610b0b908490612747565b9091555050506001600160a01b03909216600090815260016020819052604090912060038101805460ff90941660ff19909416939093179092554291015550565b600754600160a01b900460ff16610b755760405162461bcd60e51b81526004016104da906126d9565b336000818152602081905260409020600101548211801590610b975750600082115b610ba057600080fd5b6001600160a01b03811660009081526020819052604081206001018054849290610bcb908490612747565b9091555060009050610be28364e8d4a5100061276d565b6040516370a0823160e01b815230600482015290915073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc29063a9059cbb908490849084906370a0823190602401602060405180830381865afa158015610c40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c649190612784565b10610c6f5783610ce2565b6040516370a0823160e01b815230600482015273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2906370a0823190602401602060405180830381865afa158015610cbe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce29190612784565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610d2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d51919061279d565b50505050565b33610d6181611c88565b6001600160a01b03811660009081526020819052604081206005810182905560028101546001909101805491929091610d9b90849061275a565b90915550506001600160a01b0316600090815260208190526040812060020155565b6006546001600160a01b03163314610dd457600080fd5b600754600160a01b900460ff1615610deb57600080fd5b6007805460ff60a01b1916600160a01b179055565b600754600160a01b900460ff16610e295760405162461bcd60e51b81526004016104da906126d9565b60058110610e685760405162461bcd60e51b815260206004820152600c60248201526b4d6178203520746f7765727360a01b60448201526064016104da565b338115610f07576001600160a01b0381166000908152602081905260409020600a01610e95600184612747565b60058110610ea557610ea5612702565b602091828204019190069054906101000a900460ff1660ff16600614610f075760405162461bcd60e51b8152602060048201526017602482015276141c995d88151bddd95c881b9bdd081d5c19dc98591959604a1b60448201526064016104da565b610f1081611c88565b6001600160a01b0381166000908152602081905260408120600a018360058110610f3c57610f3c612702565b602081049091015460ff601f9092166101000a90041690505b60068160ff1610156110ae576001600160a01b0382166000908152602081905260409020600a018360058110610f8d57610f8d612702565b6020918282040191900681819054906101000a900460ff1680929190610fb2906127bf565b91906101000a81548160ff021916908360ff1602179055505060026000815480929190610fde906127de565b90915550506001600160a01b0382166000908152602081905260408120600a01846005811061100f5761100f612702565b602081049091015460ff601f9092166101000a90041690506110318482611fd5565b6001600160a01b03841660009081526020819052604081208054909190611059908490612747565b90915550611069905084826121de565b6001600160a01b0384166000908152602081905260408120600301805490919061109490849061275a565b909155508291506110a69050816127bf565b915050610f55565b505050565b6110bb6125dc565b6001600160a01b038216600090815260208190526040808220815160a081019283905292600a909101916005918390855b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116110ec575094979650505050505050565b600754600160a01b900460ff1661114e5760405162461bcd60e51b81526004016104da906126d9565b6005811061118d5760405162461bcd60e51b815260206004820152600c60248201526b4d6178203520746f7765727360a01b60448201526064016104da565b33811561122c576001600160a01b0381166000908152602081905260409020600a016111ba600184612747565b600581106111ca576111ca612702565b602091828204019190069054906101000a900460ff1660ff1660061461122c5760405162461bcd60e51b8152602060048201526017602482015276141c995d88151bddd95c881b9bdd081d5c19dc98591959604a1b60448201526064016104da565b61123581611c88565b6001600160a01b0381166000908152602081905260409020600a01826005811061126157611261612702565b6020918282040191900681819054906101000a900460ff1680929190611286906127bf565b91906101000a81548160ff021916908360ff16021790555050600260008154809291906112b2906127de565b90915550506001600160a01b0381166000908152602081905260408120600a0183600581106112e3576112e3612702565b602081049091015460ff601f9092166101000a90041690506113058382611fd5565b6001600160a01b0383166000908152602081905260408120805490919061132d908490612747565b9091555061133d905083826121de565b6001600160a01b0383166000908152602081905260408120600301805490919061136890849061275a565b9091555050505050565b600754600160a01b900460ff1661139b5760405162461bcd60e51b81526004016104da906126d9565b336113a581611c88565b6001600160a01b0381166000908152602081905260409020600a0182600581106113d1576113d1612702565b602091828204019190069054906101000a900460ff1660ff166006146114295760405162461bcd60e51b815260206004820152600d60248201526c139bdd0813585e0813195d995b609a1b60448201526064016104da565b6001600160a01b0381166000908152602081905260409020600b01826005811061145557611455612702565b602081049091015460ff601f9092166101000a900416156114aa5760405162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e4810db185a5b5959608a1b60448201526064016104da565b60006114b5836123b6565b905080600080846001600160a01b03166001600160a01b0316815260200190815260200160002060010160008282546114ee919061275a565b90915550506001600160a01b0382166000908152602081905260409020600190600b01846005811061152257611522612702565b602091828204019190066101000a81548160ff021916908315150217905550505050565b61154e6125dc565b6001600160a01b038216600090815260208190526040808220815160a081019283905292600b909101916005918390855b825461010083900a900460ff16151581526020600192830181810494850194909303909202910180841161157f575094979650505050505050565b336115c48161240d565b6001600160a01b0381166000908152600160208181526040808420600281018590555491849052832090910180549192909161160190849061275a565b90915550506001600160a01b0316600090815260016020526040812055565b600754600160a01b900460ff166116495760405162461bcd60e51b81526004016104da906126d9565b600061165b655af3107a4000836127f7565b90506000811161169a5760405162461bcd60e51b815260206004820152600a6024820152695a65726f2073746f6e6560b01b60448201526064016104da565b600033905082600560008282546116b1919061275a565b90915550506001600160a01b038116600090815260208190526040812060040154900361179657600380549060006116e8836127de565b90915550506001600160a01b038416600090815260208190526040902060040154156117145783611721565b6007546001600160a01b03165b6001600160a01b038116600090815260208190526040812060070180549296509061174b836127de565b90915550506001600160a01b0381811660009081526020819052604090206006810180546001600160a01b03191692871692909217909155426004820155600901805461ffff191690555b6001600160a01b03818116600090815260208190526040808220600601549092168082529181206009015491955061010090910460ff1690806117d883611bf6565b9250925050606482866117eb919061276d565b6117f591906127f7565b6001600160a01b0388166000908152602081905260408120805490919061181d90849061275a565b909155506064905081611830878361276d565b61183a919061276d565b61184491906127f7565b6001600160a01b0388166000908152602081905260408120600101805490919061186f90849061275a565b90915550506001600160a01b0387166000908152602081905260408120600801805487929061189f90849061275a565b90915550506001600160a01b038416600090815260208190526040812080548792906118cc90849061275a565b90915550606490506118df86600561276d565b6118e991906127f7565b6006546001600160a01b03166000908152602081905260408120805490919061191390849061275a565b9091555060009050606461192888600361276d565b61193291906127f7565b6006546040516323b872dd60e01b81523360048201526001600160a01b0390911660248201526044810182905290915073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2906323b872dd906064016020604051808303816000875af11580156119a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119c4919061279d565b5073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26323b872dd33306119eb858c612747565b6040516001600160e01b031960e086901b1681526001600160a01b03938416600482015292909116602483015260448201526064016020604051808303816000875af1158015611a3f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a63919061279d565b505050505050505050565b600754600160a01b900460ff16611a975760405162461bcd60e51b81526004016104da906126d9565b6006546001600160a01b03163314611ae05760405162461bcd60e51b815260206004820152600c60248201526b27b7363c9036b0b730b3b2b960a11b60448201526064016104da565b6064811115611b315760405162461bcd60e51b815260206004820152601960248201527f496e76616c69642076616c756520666f722070657263656e740000000000000060448201526064016104da565b600855565b600754600160a01b900460ff16611b5f5760405162461bcd60e51b81526004016104da906126d9565b33611b6981611c88565b6001600160a01b0381166000908152602081905260409020600101546008546127109190611b9890606461275a565b611ba2919061276d565b611bac91906127f7565b6001600160a01b03821660009081526020819052604081208054909190611bd490849061275a565b90915550506001600160a01b0316600090815260208190526040812060010155565b600080600083600003611c13575060009150600490506002611c81565b83600103611c2b575060c89150600690506003611c81565b83600203611c4457506101909150600890506004611c81565b60405162461bcd60e51b8152602060048201526012602482015271125b98dbdc9c9958dd081b585c9ad95d125960721b60448201526064016104da565b9193909250565b6001600160a01b038116600090815260208190526040902060040154611ce95760405162461bcd60e51b8152602060048201526016602482015275155cd95c881a5cc81b9bdd081c9959da5cdd195c995960521b60448201526064016104da565b6001600160a01b03811660009081526020819052604090206003015415611e66576001600160a01b038116600090815260208190526040812060090154611d329060ff16611e86565b6001600160a01b0384166000908152602081905260408120600401549193509150611d6090610e10906127f7565b611d6c610e10426127f7565b611d769190612747565b6001600160a01b0384166000908152602081905260409020600501549091508290611da1908361275a565b1115611dd0576001600160a01b038316600090815260208190526040902060050154611dcd9083612747565b90505b6001600160a01b038316600090815260208190526040902060030154606490611df9908361276d565b611e0391906127f7565b6001600160a01b03841660009081526020819052604081206002018054909190611e2e90849061275a565b90915550506001600160a01b03831660009081526020819052604081206005018054839290611e5e90849061275a565b909155505050505b6001600160a01b0316600090815260208190526040902042600490910155565b60008082600003611e9d5750600092607892509050565b82600103611eb1575060329260a892509050565b82600203611ec5575060469260f092509050565b82600303611eda575060649261015092509050565b82600403611eef57506096926101e092509050565b60405162461bcd60e51b8152602060048201526014602482015273125b98dbdc9c9958dd081d1c99585cdd5c99525960621b60448201526064016104da565b600080600083600003611f4957506000915081905080611c81565b83600103611f63575061138891506161a890506002611c81565b83600203611f7d5750611d4c915061afc890506003611c81565b83600303611f9857506127109150620124f890506004611c81565b60405162461bcd60e51b8152602060048201526012602482015271125b98dbdc9c9958dd081cdd18589b19525960721b60448201526064016104da565b600081600103612030576040805160a081018252603c815261013f60208201526105d7918101919091526114826060820152613a986080820152836005811061202057612020612702565b602002015161ffff1690506121d8565b81600203612079576040805160a081018252605f815261019360208201526107d09181019190915261186a60608201526146506080820152836005811061202057612020612702565b816003036120c2576040805160a0810182526075815261024e6020820152610abe91810191909152611ce8606082015261510e6080820152836005811061202057612020612702565b8160040361210b576040805160a08101825260ad81526102f86020820152610ea691810191909152611fa46060820152615bcc6080820152836005811061202057612020612702565b81600503612154576040805160a08101825260d7815261034360208201526110049181019190915261261660608201526161a86080820152836005811061202057612020612702565b8160060361219d576040805160a08101825260ea8152610389602082015261128491810191909152612cec6060820152616b6c6080820152836005811061202057612020612702565b60405162461bcd60e51b815260206004820152601060248201526f125b98dbdc9c9958dd0818da1959925960821b60448201526064016104da565b92915050565b60008160010361223c576040805160a081018252610177815261087f6020820152612b119181019190915261a29960608201526201f20c6080820152836005811061222b5761222b612702565b602002015162ffffff1690506121d8565b81600203612287576040805160a0810182526102588152610ad76020820152613a4d9181019190915261c44a606082015262025b846080820152836005811061222b5761222b612702565b816003036122d2576040805160a0810182526102ee815261101d60208201526151279181019190915261eaf660608201526202bf206080820152836005811061222b5761222b612702565b8160040361231e576040805160a0810182526104658152611518602082015261703591810191909152620104736060820152620325aa6080820152836005811061222b5761222b612702565b8160050361236a576040805160a08101825261059181526117706020820152617c389181019190915262013c6860608201526203836a6080820152836005811061222b5761222b612702565b8160060361219d576040805160a08101825261062781526119c8602082015261910591810191909152620179ee60608201526203efd06080820152836005811061222b5761222b612702565b6040805160a0810182526109c4815261251c602082015261c350918101919091526201e848606082015262055730608082015260009082600581106123fd576123fd612702565b602002015162ffffff1692915050565b6001600160a01b038116600090815260016020819052604090912001546124765760405162461bcd60e51b815260206004820152601d60248201527f5573657220537461626c65206973206e6f74207265676973746572656400000060448201526064016104da565b6001600160a01b03811660009081526001602052604081206003015460ff169061249f82611f2e565b5091505080156125ba576001600160a01b0383166000908152600160208190526040822001546124d290610e10906127f7565b6124de610e10426127f7565b6124e89190612747565b6001600160a01b038516600090815260016020526040902060020154909150601890612514908361275a565b1115612544576001600160a01b038416600090815260016020526040902060020154612541906018612747565b90505b6001600160a01b038416600090815260016020526040902060020154829060189061256f908461275a565b61257991906127f7565b612583919061276d565b6001600160a01b0385166000908152600160205260408120918255600290910180548392906125b390849061275a565b9091555050505b50506001600160a01b0316600090815260016020819052604090912042910155565b6040518060a001604052806005906020820280368337509192915050565b80356001600160a01b038116811461261157600080fd5b919050565b60006020828403121561262857600080fd5b612631826125fa565b9392505050565b60006020828403121561264a57600080fd5b5035919050565b60a08101818360005b600581101561267c57815160ff1683526020928301929091019060010161265a565b50505092915050565b60a08101818360005b600581101561267c578151151583526020928301929091019060010161268e565b600080604083850312156126c257600080fd5b6126cb836125fa565b946020939093013593505050565b6020808252600f908201526e139bdd081a5b9a5d1a585b1a5e9959608a1b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60ff81811683821601908111156121d8576121d8612718565b818103818111156121d8576121d8612718565b808201808211156121d8576121d8612718565b80820281158282048414176121d8576121d8612718565b60006020828403121561279657600080fd5b5051919050565b6000602082840312156127af57600080fd5b8151801515811461263157600080fd5b600060ff821660ff81036127d5576127d5612718565b60010192915050565b6000600182016127f0576127f0612718565b5060010190565b60008261281457634e487b7160e01b600052601260045260246000fd5b50049056fea26469706673582212209f0d60c1a8828a0da6517844c4ea4562468be2ee3eebce507bdba44637edab5a64736f6c63430008110033

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

000000000000000000000000b134b5244e0ec06cfac86871db2bea344abe52e6000000000000000000000000a2f27e1fe5ca41ab6a259c63cbd14c3752a756eb

-----Decoded View---------------
Arg [0] : manager_ (address): 0xb134B5244E0Ec06CfAc86871Db2bea344aBE52E6
Arg [1] : stdref_ (address): 0xa2F27E1fE5Ca41AB6a259C63CBd14C3752A756EB

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000b134b5244e0ec06cfac86871db2bea344abe52e6
Arg [1] : 000000000000000000000000a2f27e1fe5ca41ab6a259c63cbd14c3752a756eb


Deployed Bytecode Sourcemap

2946:11332:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8932:385;;;:::i;:::-;;3500:39;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3500:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;826:25:1;;;882:2;867:18;;860:34;;;;910:18;;;903:34;;;;968:2;953:18;;946:34;;;;1011:3;996:19;;989:35;;;;1055:3;1040:19;;1033:35;;;;-1:-1:-1;;;;;1105:32:1;1099:3;1084:19;;1077:61;1169:3;1154:19;;1147:35;1213:3;1198:19;;1191:35;1275:4;1263:17;;;1257:3;1242:19;;1235:46;1318:18;1312:3;1297:19;;1290:47;1381:15;1374:23;1368:3;1353:19;;1346:52;813:3;798:19;3500:39:0;;;;;;;;8496:428;;;:::i;3596:25::-;;;;;;;;;1555::1;;;1543:2;1528:18;3596:25:0;1409:177:1;5931:447:0;;;:::i;3546:41::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1818:25:1;;;1874:2;1859:18;;1852:34;;;;1902:18;;;1895:34;1977:4;1965:17;1960:2;1945:18;;1938:45;1805:3;1790:19;3546:41:0;1591:398:1;3728:22:0;;;;;-1:-1:-1;;;;;3728:22:0;;;;;;-1:-1:-1;;;;;2158:32:1;;;2140:51;;2128:2;2113:18;3728:22:0;1994:203:1;9325:471:0;;;:::i;3693:28::-;;;;;;5558:365;;;;;;:::i;:::-;;:::i;3661:25::-;;;;;;6386:218;;;:::i;4202:121::-;;;:::i;3946:40::-;;;;;;3875:41;;;;;3757:21;;;;;-1:-1:-1;;;;;3757:21:0;;;7841:647;;;;;;:::i;:::-;;:::i;10313:116::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;7289:544::-;;;;;;:::i;:::-;;:::i;3923:16::-;;;;;-1:-1:-1;;;3923:16:0;;;;;;;;;3059:14:1;;3052:22;3034:41;;3022:2;3007:18;3923:16:0;2894:187:1;6871:410:0;;;;;;:::i;:::-;;:::i;10441:121::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;6616:247::-;;;:::i;4331:1219::-;;;;;;:::i;:::-;;:::i;3628:26::-;;;;;;9804:256;;;;;;:::i;:::-;;:::i;10068:237::-;;;:::i;8932:385::-;4033:4;;-1:-1:-1;;;4033:4:0;;;;4025:32;;;;-1:-1:-1;;;4025:32:0;;;;;;;:::i;:::-;;;;;;;;;9002:10:::1;8987:12;9029::::0;;;::::1;::::0;;;;;;:18:::1;;:21:::0;::::1;::::0;::::1;;;9054:1;9029:26;9021:66;;;::::0;-1:-1:-1;;;9021:66:0;;4533:2:1;9021:66:0::1;::::0;::::1;4515:21:1::0;4572:2;4552:18;;;4545:30;4611:29;4591:18;;;4584:57;4658:18;;9021:66:0::1;4331:351:1::0;9021:66:0::1;-1:-1:-1::0;;;;;9113:12:0;::::1;9096:14;9113:12:::0;;;::::1;::::0;;;;;;:19:::1;;::::0;:23:::1;::::0;:19:::1;::::0;::::1;;;;:23;:::i;:::-;9096:40;;9164:1;9153:8;:12;;;9145:37;;;::::0;-1:-1:-1;;;9145:37:0;;5174:2:1;9145:37:0::1;::::0;::::1;5156:21:1::0;5213:2;5193:18;;;5186:30;-1:-1:-1;;;5232:18:1;;;5225:42;5284:18;;9145:37:0::1;4972:336:1::0;9145:37:0::1;9192:13;9211:19;9221:8;9211:19;;:9;:19::i;:::-;-1:-1:-1::0;;;;;;;9239:12:0;::::1;:6;:12:::0;;;::::1;::::0;;;;;;:30;;9191:39;;-1:-1:-1;9191:39:0;;9239:12;;:6;:30:::1;::::0;9191:39;;9239:30:::1;:::i;:::-;::::0;;;-1:-1:-1;;;;;;;;9279:12:0;;::::1;:6;:12:::0;;;::::1;::::0;;;;;;:19:::1;;:30:::0;;::::1;::::0;;::::1;;;-1:-1:-1::0;;9279:30:0;;::::1;::::0;;;::::1;::::0;;8932:385::o;8496:428::-;4033:4;;-1:-1:-1;;;4033:4:0;;;;4025:32;;;;-1:-1:-1;;;4025:32:0;;;;;;;:::i;:::-;8570:10:::1;8555:12;8597::::0;;;::::1;::::0;;;;;;:18:::1;;:21:::0;::::1;;8622:1;8597:26;8589:66;;;::::0;-1:-1:-1;;;8589:66:0;;5648:2:1;8589:66:0::1;::::0;::::1;5630:21:1::0;5687:2;5667:18;;;5660:30;5726:29;5706:18;;;5699:57;5773:18;;8589:66:0::1;5446:351:1::0;8589:66:0::1;-1:-1:-1::0;;;;;8683:12:0;::::1;8664:16;8683:12:::0;;;::::1;::::0;;;;;;:21:::1;;::::0;:25:::1;::::0;:21:::1;;::::0;:25:::1;:::i;:::-;8664:44;;8717:15;8727:4;8717:9;:15::i;:::-;8762:1;8749:10;:14;;;8741:41;;;::::0;-1:-1:-1;;;8741:41:0;;6004:2:1;8741:41:0::1;::::0;::::1;5986:21:1::0;6043:2;6023:18;;;6016:30;-1:-1:-1;;;6062:18:1;;;6055:44;6116:18;;8741:41:0::1;5802:338:1::0;8741:41:0::1;8792:13;8810:23;8822:10;8810:23;;:11;:23::i;:::-;-1:-1:-1::0;;;;;;8842:12:0;::::1;:6;:12:::0;;;::::1;::::0;;;;;;:30;;8791:42;;-1:-1:-1;8791:42:0;;8842:12;;:6;:30:::1;::::0;8791:42;;8842:30:::1;:::i;:::-;::::0;;;-1:-1:-1;;;;;;;;8882:12:0;;;::::1;:6;:12:::0;;;::::1;::::0;;;;;;:21:::1;;:34:::0;;-1:-1:-1;;8882:34:0::1;;::::0;;::::1;::::0;;;::::1;::::0;;8496:428::o;5931:447::-;4033:4;;-1:-1:-1;;;4033:4:0;;;;4025:32;;;;-1:-1:-1;;;4025:32:0;;;;;;;:::i;:::-;6000:10:::1;5985:12;6029::::0;;;::::1;::::0;;;;;;:17:::1;;::::0;::::1;;:26;6021:54;;;::::0;-1:-1:-1;;;6021:54:0;;6347:2:1;6021:54:0::1;::::0;::::1;6329:21:1::0;6386:2;6366:18;;;6359:30;-1:-1:-1;;;6405:18:1;;;6398:45;6460:18;;6021:54:0::1;6145:339:1::0;6021:54:0::1;-1:-1:-1::0;;;;;6094:12:0;::::1;:6;:12:::0;;;::::1;::::0;;;;;;:18:::1;;:21:::0;;;::::1;;;6119:1;6094:26;:56:::0;::::1;;;-1:-1:-1::0;;;;;;6124:12:0;::::1;:6;:12:::0;;;::::1;::::0;;;;;;:21:::1;;::::0;::::1;;6149:1;6124:26;6094:56;:84;;;;-1:-1:-1::0;;;;;;6154:12:0;::::1;:6;:12:::0;;;::::1;::::0;;;;;;:19:::1;;::::0;::::1;::::0;::::1;;;6177:1;6154:24;6094:84;:113;;;;-1:-1:-1::0;;;;;;6182:13:0;::::1;;::::0;;;:7:::1;:13;::::0;;;;:20:::1;::::0;;::::1;::::0;::::1;;:25;6094:113;6086:157;;;::::0;-1:-1:-1;;;6086:157:0;;6691:2:1;6086:157:0::1;::::0;::::1;6673:21:1::0;6730:2;6710:18;;;6703:30;6769:33;6749:18;;;6742:61;6820:18;;6086:157:0::1;6489:355:1::0;6086:157:0::1;6254:15;6264:4;6254:9;:15::i;:::-;-1:-1:-1::0;;;;;6280:12:0;::::1;:6;:12:::0;;;::::1;::::0;;;;;;:18:::1;;:29:::0;;6302:7:::1;::::0;6280:6;:29:::1;::::0;6302:7;;6280:29:::1;:::i;:::-;::::0;;;-1:-1:-1;;;;;;;6320:12:0;::::1;:6;:12:::0;;;::::1;::::0;;;;;;:17:::1;;:24:::0;;-1:-1:-1;;6320:24:0::1;6340:4;6320:24:::0;;::::1;::::0;;;6355:10:::1;:15:::0;;6340:4;;6355:10;;:15:::1;::::0;6340:4;;6355:15:::1;:::i;:::-;::::0;;;-1:-1:-1;;;5931:447:0:o;9325:471::-;4033:4;;-1:-1:-1;;;4033:4:0;;;;4025:32;;;;-1:-1:-1;;;4025:32:0;;;;;;;:::i;:::-;9395:10:::1;9380:12;9431:13:::0;;;:7:::1;:13;::::0;;;;;;:20:::1;;::::0;:24:::1;::::0;:20:::1;::::0;;::::1;::::0;:24:::1;:::i;:::-;9414:41;;9483:1;9472:8;:12;;;9464:37;;;::::0;-1:-1:-1;;;9464:37:0;;7181:2:1;9464:37:0::1;::::0;::::1;7163:21:1::0;7220:2;7200:18;;;7193:30;-1:-1:-1;;;7239:18:1;;;7232:42;7291:18;;9464:37:0::1;6979:336:1::0;9464:37:0::1;9511:13;9527:15:::0;9546:19:::1;9556:8;9546:19;;:9;:19::i;:::-;-1:-1:-1::0;;;;;9582:12:0;::::1;:6;:12:::0;;;::::1;::::0;;;;;;9510:55;;-1:-1:-1;9510:55:0;-1:-1:-1;;9582:18:0::1;;9510:55:::0;9582:27:::1;::::0;::::1;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:32;;9613:1;9582:32;9574:70;;;::::0;-1:-1:-1;;;9574:70:0;;7522:2:1;9574:70:0::1;::::0;::::1;7504:21:1::0;7561:2;7541:18;;;7534:30;7600:27;7580:18;;;7573:55;7645:18;;9574:70:0::1;7320:349:1::0;9574:70:0::1;-1:-1:-1::0;;;;;9661:12:0;::::1;:6;:12:::0;;;::::1;::::0;;;;;;:30;;9686:5;;9661:6;:30:::1;::::0;9686:5;;9661:30:::1;:::i;:::-;::::0;;;-1:-1:-1;;;;;;;;9701:13:0;;::::1;;::::0;;;:7:::1;:13;::::0;;;;;;;:20:::1;::::0;::::1;:31:::0;;::::1;::::0;;::::1;-1:-1:-1::0;;9701:31:0;;::::1;::::0;;;::::1;::::0;;;9773:15:::1;9741:29:::0;::::1;:47:::0;-1:-1:-1;9325:471:0:o;5558:365::-;4033:4;;-1:-1:-1;;;4033:4:0;;;;4025:32;;;;-1:-1:-1;;;4025:32:0;;;;;;;:::i;:::-;5642:10:::1;5627:12;5679::::0;;;::::1;::::0;;;;;;:18:::1;;::::0;5671:26;::::1;::::0;::::1;::::0;:38:::1;;;5708:1;5701:4;:8;5671:38;5663:47;;;::::0;::::1;;-1:-1:-1::0;;;;;5721:12:0;::::1;:6;:12:::0;;;::::1;::::0;;;;;;:18:::1;;:26:::0;;5743:4;;5721:6;:26:::1;::::0;5743:4;;5721:26:::1;:::i;:::-;::::0;;;-1:-1:-1;5758:14:0::1;::::0;-1:-1:-1;5775:11:0::1;:4:::0;5782::::1;5775:11;:::i;:::-;5823:35;::::0;-1:-1:-1;;;5823:35:0;;5852:4:::1;5823:35;::::0;::::1;2140:51:1::0;5758:28:0;;-1:-1:-1;3823:42:0::1;::::0;5797:19:::1;::::0;5817:4;;5758:28;;3823:42;;5823:20:::1;::::0;2113:18:1;;5823:35:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:44;:91;;5908:6;5823:91;;;5870:35;::::0;-1:-1:-1;;;5870:35:0;;5899:4:::1;5870:35;::::0;::::1;2140:51:1::0;3823:42:0::1;::::0;5870:20:::1;::::0;2113:18:1;;5870:35:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5797:118;::::0;-1:-1:-1;;;;;;5797:118:0::1;::::0;;;;;;-1:-1:-1;;;;;8228:32:1;;;5797:118:0::1;::::0;::::1;8210:51:1::0;8277:18;;;8270:34;8183:18;;5797:118:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5616:307;;5558:365:::0;:::o;6386:218::-;6443:10;6464:15;6443:10;6464:9;:15::i;:::-;-1:-1:-1;;;;;6490:12:0;;6509:1;6490:12;;;;;;;;;;:16;;;:20;;;6543:19;;;;6521:18;;;;:41;;6543:19;;6521:18;;:41;;6543:19;;6521:41;:::i;:::-;;;;-1:-1:-1;;;;;;;6573:12:0;6595:1;6573:12;;;;;;;;;;:19;;:23;6386:218::o;4202:121::-;4250:7;;-1:-1:-1;;;;;4250:7:0;4261:10;4250:21;4242:30;;;;;;4290:4;;-1:-1:-1;;;4290:4:0;;;;4289:5;4281:14;;;;;;4304:4;:11;;-1:-1:-1;;;;4304:11:0;-1:-1:-1;;;4304:11:0;;;4202:121::o;7841:647::-;4033:4;;-1:-1:-1;;;4033:4:0;;;;4025:32;;;;-1:-1:-1;;;4025:32:0;;;;;;;:::i;:::-;7933:1:::1;7923:7;:11;7915:36;;;::::0;-1:-1:-1;;;7915:36:0;;8799:2:1;7915:36:0::1;::::0;::::1;8781:21:1::0;8838:2;8818:18;;;8811:30;-1:-1:-1;;;8857:18:1;;;8850:42;8909:18;;7915:36:0::1;8597:336:1::0;7915:36:0::1;7977:10;8002:11:::0;;7998:114:::1;;-1:-1:-1::0;;;;;8038:12:0;::::1;:6;:12:::0;;;::::1;::::0;;;;;;:18:::1;;8057:9;8065:1;8057:7:::0;:9:::1;:::i;:::-;8038:29;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:34;;8071:1;8038:34;8030:70;;;::::0;-1:-1:-1;;;8030:70:0;;9140:2:1;8030:70:0::1;::::0;::::1;9122:21:1::0;9179:2;9159:18;;;9152:30;-1:-1:-1;;;9198:18:1;;;9191:53;9261:18;;8030:70:0::1;8938:347:1::0;8030:70:0::1;8124:15;8134:4;8124:9;:15::i;:::-;-1:-1:-1::0;;;;;8167:12:0;::::1;8157:7;8167:12:::0;;;::::1;::::0;;;;;;:18:::1;;8186:7:::0;8167:27:::1;::::0;::::1;;;;;:::i;:::-;;::::0;::::1;::::0;;::::1;::::0;::::1;::::0;;;;::::1;;::::0;::::1;;::::0;-1:-1:-1;8152:329:0::1;8200:1;8196;:5;;;8152:329;;;-1:-1:-1::0;;;;;8223:12:0;::::1;:6;:12:::0;;;::::1;::::0;;;;;;:18:::1;;8242:7:::0;8223:27:::1;::::0;::::1;;;;;:::i;:::-;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;8267:10;;:12;;;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;;;;;;8310:12:0;::::1;8294:13;8310:12:::0;;;::::1;::::0;;;;;;:18:::1;;8329:7:::0;8310:27:::1;::::0;::::1;;;;;:::i;:::-;;::::0;::::1;::::0;;::::1;::::0;::::1;::::0;;;;::::1;;::::0;::::1;;::::0;-1:-1:-1;8377:31:0::1;8393:7:::0;8310:27;8377:15:::1;:31::i;:::-;-1:-1:-1::0;;;;;8352:12:0;::::1;:6;:12:::0;;;::::1;::::0;;;;;;:56;;:12;;:6;:56:::1;::::0;;;::::1;:::i;:::-;::::0;;;-1:-1:-1;8445:24:0::1;::::0;-1:-1:-1;8454:7:0;8463:5;8445:8:::1;:24::i;:::-;-1:-1:-1::0;;;;;8423:12:0;::::1;:6;:12:::0;;;::::1;::::0;;;;;;:18:::1;;:46:::0;;:18;;:6;:46:::1;::::0;;;::::1;:::i;:::-;::::0;;;-1:-1:-1;8203:3:0;;-1:-1:-1;8203:3:0::1;::::0;-1:-1:-1;8203:3:0;::::1;:::i;:::-;;;;8152:329;;;;7904:584;7841:647:::0;:::o;10313:116::-;10368:15;;:::i;:::-;-1:-1:-1;;;;;10403:12:0;;:6;:12;;;;;;;;;;;10396:25;;;;;;;;;;10403:18;;;;;10396:25;;10403:18;;10396:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10396:25:0;;10313:116;-1:-1:-1;;;;;;;10313:116:0:o;7289:544::-;4033:4;;-1:-1:-1;;;4033:4:0;;;;4025:32;;;;-1:-1:-1;;;4025:32:0;;;;;;;:::i;:::-;7378:1:::1;7368:7;:11;7360:36;;;::::0;-1:-1:-1;;;7360:36:0;;8799:2:1;7360:36:0::1;::::0;::::1;8781:21:1::0;8838:2;8818:18;;;8811:30;-1:-1:-1;;;8857:18:1;;;8850:42;8909:18;;7360:36:0::1;8597:336:1::0;7360:36:0::1;7422:10;7447:11:::0;;7443:114:::1;;-1:-1:-1::0;;;;;7483:12:0;::::1;:6;:12:::0;;;::::1;::::0;;;;;;:18:::1;;7502:9;7510:1;7502:7:::0;:9:::1;:::i;:::-;7483:29;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:34;;7516:1;7483:34;7475:70;;;::::0;-1:-1:-1;;;7475:70:0;;9140:2:1;7475:70:0::1;::::0;::::1;9122:21:1::0;9179:2;9159:18;;;9152:30;-1:-1:-1;;;9198:18:1;;;9191:53;9261:18;;7475:70:0::1;8938:347:1::0;7475:70:0::1;7569:15;7579:4;7569:9;:15::i;:::-;-1:-1:-1::0;;;;;7595:12:0;::::1;:6;:12:::0;;;::::1;::::0;;;;;;:18:::1;;7614:7:::0;7595:27:::1;::::0;::::1;;;;;:::i;:::-;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;7635:10;;:12;;;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;;;;;;7674:12:0;::::1;7658:13;7674:12:::0;;;::::1;::::0;;;;;;:18:::1;;7693:7:::0;7674:27:::1;::::0;::::1;;;;;:::i;:::-;;::::0;::::1;::::0;;::::1;::::0;::::1;::::0;;;;::::1;;::::0;::::1;;::::0;-1:-1:-1;7737:31:0::1;7753:7:::0;7674:27;7737:15:::1;:31::i;:::-;-1:-1:-1::0;;;;;7712:12:0;::::1;:6;:12:::0;;;::::1;::::0;;;;;;:56;;:12;;:6;:56:::1;::::0;;;::::1;:::i;:::-;::::0;;;-1:-1:-1;7801:24:0::1;::::0;-1:-1:-1;7810:7:0;7819:5;7801:8:::1;:24::i;:::-;-1:-1:-1::0;;;;;7779:12:0;::::1;:6;:12:::0;;;::::1;::::0;;;;;;:18:::1;;:46:::0;;:18;;:6;:46:::1;::::0;;;::::1;:::i;:::-;::::0;;;-1:-1:-1;;;;;7289:544:0:o;6871:410::-;4033:4;;-1:-1:-1;;;4033:4:0;;;;4025:32;;;;-1:-1:-1;;;4025:32:0;;;;;;;:::i;:::-;6957:10:::1;6978:15;6957:10:::0;6978:9:::1;:15::i;:::-;-1:-1:-1::0;;;;;7012:12:0;::::1;:6;:12:::0;;;::::1;::::0;;;;;;:18:::1;;7031:7:::0;7012:27:::1;::::0;::::1;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:32;;7043:1;7012:32;7004:58;;;::::0;-1:-1:-1;;;7004:58:0;;9812:2:1;7004:58:0::1;::::0;::::1;9794:21:1::0;9851:2;9831:18;;;9824:30;-1:-1:-1;;;9870:18:1;;;9863:43;9923:18;;7004:58:0::1;9610:337:1::0;7004:58:0::1;-1:-1:-1::0;;;;;7081:12:0;::::1;:6;:12:::0;;;::::1;::::0;;;;;;:21:::1;;7103:7:::0;7081:30:::1;::::0;::::1;;;;;:::i;:::-;;::::0;::::1;::::0;;::::1;::::0;::::1;::::0;;;;::::1;;::::0;::::1;;:39;7073:67;;;::::0;-1:-1:-1;;;7073:67:0;;6347:2:1;7073:67:0::1;::::0;::::1;6329:21:1::0;6386:2;6366:18;;;6359:30;-1:-1:-1;;;6405:18:1;;;6398:45;6460:18;;7073:67:0::1;6145:339:1::0;7073:67:0::1;7151:14;7168:18;7178:7;7168:9;:18::i;:::-;7151:35;;7219:6;7197;:12:::0;7204:4:::1;-1:-1:-1::0;;;;;7197:12:0::1;-1:-1:-1::0;;;;;7197:12:0::1;;;;;;;;;;;;:18;;;:28;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;;;;;;7236:12:0;::::1;:6;:12:::0;;;::::1;::::0;;;;;;7269:4:::1;::::0;7236:21:::1;;7258:7:::0;7236:30:::1;::::0;::::1;;;;;:::i;:::-;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;6931:350;;6871:410:::0;:::o;10441:121::-;10499:14;;:::i;:::-;-1:-1:-1;;;;;10533:12:0;;:6;:12;;;;;;;;;;;10526:28;;;;;;;;;;10533:21;;;;;10526:28;;10533:21;;10526:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10526:28:0;;10441:121;-1:-1:-1;;;;;;;10441:121:0:o;6616:247::-;6680:10;6701:16;6680:10;6701;:16::i;:::-;-1:-1:-1;;;;;6728:13:0;;6754:1;6728:13;;;:7;:13;;;;;;;;:23;;;:27;;;6788:26;6766:12;;;;;;:18;;;:48;;6788:26;;6766:18;;:48;;6788:26;;6766:48;:::i;:::-;;;;-1:-1:-1;;;;;;;6825:13:0;6854:1;6825:13;;;:7;:13;;;;;:30;6616:247::o;4331:1219::-;4033:4;;-1:-1:-1;;;4033:4:0;;;;4025:32;;;;-1:-1:-1;;;4025:32:0;;;;;;;:::i;:::-;4412:16:::1;4431:12;4439:4;4431:5:::0;:12:::1;:::i;:::-;4412:31;;4473:1;4462:8;:12;4454:35;;;::::0;-1:-1:-1;;;4454:35:0;;10376:2:1;4454:35:0::1;::::0;::::1;10358:21:1::0;10415:2;10395:18;;;10388:30;-1:-1:-1;;;10434:18:1;;;10427:40;10484:18;;4454:35:0::1;10174:334:1::0;4454:35:0::1;4500:12;4515:10;4500:25;;4553:5;4536:13;;:22;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;;;;;;4573:12:0;::::1;:6;:12:::0;;;::::1;::::0;;;;;;:22:::1;;::::0;:27;;4569:338:::1;;4617:11;:13:::0;;;:11:::1;:13;::::0;::::1;:::i;:::-;::::0;;;-1:-1:-1;;;;;;;4651:11:0;::::1;:6;:11:::0;;;::::1;::::0;;;;;;:21:::1;;::::0;:26;:41:::1;;4689:3;4651:41;;;4680:6;::::0;-1:-1:-1;;;;;4680:6:0::1;4651:41;-1:-1:-1::0;;;;;4707:11:0;::::1;:6;:11:::0;;;::::1;::::0;;;;;;:16:::1;;:18:::0;;4645:47;;-1:-1:-1;4707:16:0;:18:::1;::::0;::::1;:::i;:::-;::::0;;;-1:-1:-1;;;;;;;4740:12:0;;::::1;:6;:12:::0;;;::::1;::::0;;;;;;:16:::1;::::0;::::1;:22:::0;;-1:-1:-1;;;;;;4740:22:0::1;::::0;;::::1;::::0;;;::::1;::::0;;;4802:15:::1;4777:22;::::0;::::1;:40:::0;4832:21:::1;;:25:::0;;-1:-1:-1;;4872:23:0;;;4569:338:::1;-1:-1:-1::0;;;;;4923:12:0;;::::1;:6;:12:::0;;;::::1;::::0;;;;;;;:16:::1;;::::0;;;::::1;4967:11:::0;;;;;;:18:::1;;::::0;4923:16;;-1:-1:-1;4923:16:0::1;4967:18:::0;;::::1;;;::::0;4923:6;5037:19:::1;4967:18:::0;5037:9:::1;:19::i;:::-;4996:60;;;;;5119:3;5105:10;5094:8;:21;;;;:::i;:::-;5093:29;;;;:::i;:::-;-1:-1:-1::0;;;;;5069:11:0;::::1;:6;:11:::0;;;::::1;::::0;;;;;;:53;;:11;;:6;:53:::1;::::0;;;::::1;:::i;:::-;::::0;;;-1:-1:-1;5183:3:0::1;::::0;-1:-1:-1;5172:7:0;5155:14:::1;:8:::0;5183:3;5155:14:::1;:::i;:::-;:24;;;;:::i;:::-;5154:32;;;;:::i;:::-;-1:-1:-1::0;;;;;5133:11:0;::::1;:6;:11:::0;;;::::1;::::0;;;;;;:17:::1;;:53:::0;;:17;;:6;:53:::1;::::0;;;::::1;:::i;:::-;::::0;;;-1:-1:-1;;;;;;;5197:11:0;::::1;:6;:11:::0;;;::::1;::::0;;;;;;:19:::1;;:31:::0;;5220:8;;5197:6;:31:::1;::::0;5220:8;;5197:31:::1;:::i;:::-;::::0;;;-1:-1:-1;;;;;;;5239:12:0;::::1;:6;:12:::0;;;::::1;::::0;;;;;;:33;;5264:8;;5239:6;:33:::1;::::0;5264:8;;5239:33:::1;:::i;:::-;::::0;;;-1:-1:-1;5328:3:0::1;::::0;-1:-1:-1;5312:12:0::1;:8:::0;5323:1:::1;5312:12;:::i;:::-;5311:20;;;;:::i;:::-;5290:7;::::0;-1:-1:-1;;;;;5290:7:0::1;5283:6;:15:::0;;;::::1;::::0;;;;;;:48;;:15;;:6;:48:::1;::::0;;;::::1;:::i;:::-;::::0;;;-1:-1:-1;5344:22:0::1;::::0;-1:-1:-1;5383:3:0::1;5370:9;:5:::0;5378:1:::1;5370:9;:::i;:::-;5369:17;;;;:::i;:::-;5433:7;::::0;5397:60:::1;::::0;-1:-1:-1;;;5397:60:0;;5421:10:::1;5397:60;::::0;::::1;10753:34:1::0;-1:-1:-1;;;;;5433:7:0;;::::1;10803:18:1::0;;;10796:43;10855:18;;;10848:34;;;5344:42:0;;-1:-1:-1;3823:42:0::1;::::0;5397:23:::1;::::0;10688:18:1;;5397:60:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;3823:42:0::1;5468:23;5492:10;5512:4;5519:22;5527:14:::0;5519:5;:22:::1;:::i;:::-;5468:74;::::0;-1:-1:-1;;;;;;5468:74:0::1;::::0;;;;;;-1:-1:-1;;;;;10771:15:1;;;5468:74:0::1;::::0;::::1;10753:34:1::0;10823:15;;;;10803:18;;;10796:43;10855:18;;;10848:34;10688:18;;5468:74:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4401:1149;;;;;;4331:1219:::0;;:::o;9804:256::-;4033:4;;-1:-1:-1;;;4033:4:0;;;;4025:32;;;;-1:-1:-1;;;4025:32:0;;;;;;;:::i;:::-;9908:7:::1;::::0;-1:-1:-1;;;;;9908:7:0::1;9894:10;:21;9886:46;;;::::0;-1:-1:-1;;;9886:46:0;;11095:2:1;9886:46:0::1;::::0;::::1;11077:21:1::0;11134:2;11114:18;;;11107:30;-1:-1:-1;;;11153:18:1;;;11146:42;11205:18;;9886:46:0::1;10893:336:1::0;9886:46:0::1;9978:3;9967:7;:14;;9943:68;;;::::0;-1:-1:-1;;;9943:68:0;;11436:2:1;9943:68:0::1;::::0;::::1;11418:21:1::0;11475:2;11455:18;;;11448:30;11514:27;11494:18;;;11487:55;11559:18;;9943:68:0::1;11234:349:1::0;9943:68:0::1;10022:20;:30:::0;9804:256::o;10068:237::-;4033:4;;-1:-1:-1;;;4033:4:0;;;;4025:32;;;;-1:-1:-1;;;4025:32:0;;;;;;;:::i;:::-;10135:10:::1;10156:15;10135:10:::0;10156:9:::1;:15::i;:::-;-1:-1:-1::0;;;;;10238:12:0;::::1;:6;:12:::0;;;::::1;::::0;;;;;;:18:::1;;::::0;10214:20:::1;::::0;10259:5:::1;::::0;10238:18;10208:26:::1;::::0;:3:::1;:26;:::i;:::-;10207:49;;;;:::i;:::-;:57;;;;:::i;:::-;-1:-1:-1::0;;;;;10182:12:0;::::1;:6;:12:::0;;;::::1;::::0;;;;;;:82;;:12;;:6;:82:::1;::::0;;;::::1;:::i;:::-;::::0;;;-1:-1:-1;;;;;;;10275:12:0::1;10296:1;10275:12:::0;;;::::1;::::0;;;;;;:18:::1;;:22:::0;10068:237::o;13433:300::-;13493:7;13502;13511;13532:8;13544:1;13532:13;13529:34;;-1:-1:-1;13555:1:0;;-1:-1:-1;13558:1:0;;-1:-1:-1;13561:1:0;13547:16;;13529:34;13610:8;13622:1;13610:13;13607:36;;-1:-1:-1;13633:3:0;;-1:-1:-1;13638:1:0;;-1:-1:-1;13641:1:0;13625:18;;13607:36;13655:8;13667:1;13655:13;13652:36;;-1:-1:-1;13678:3:0;;-1:-1:-1;13683:1:0;;-1:-1:-1;13686:1:0;13670:18;;13652:36;13697:28;;-1:-1:-1;;;13697:28:0;;11790:2:1;13697:28:0;;;11772:21:1;11829:2;11809:18;;;11802:30;-1:-1:-1;;;11848:18:1;;;11841:48;11906:18;;13697:28:0;11588:342:1;13433:300:0;;;;;;:::o;10570:605::-;-1:-1:-1;;;;;10631:12:0;;10656:1;10631:12;;;;;;;;;;:22;;;10623:61;;;;-1:-1:-1;;;10623:61:0;;12137:2:1;10623:61:0;;;12119:21:1;12176:2;12156:18;;;12149:30;-1:-1:-1;;;12195:18:1;;;12188:52;12257:18;;10623:61:0;11935:346:1;10623:61:0;-1:-1:-1;;;;;10699:12:0;;10720:1;10699:12;;;;;;;;;;:18;;;:22;10695:422;;-1:-1:-1;;;;;10773:12:0;;10741:16;10773:12;;;;;;;;;;:21;;;10761:34;;10773:21;;10761:11;:34::i;:::-;-1:-1:-1;;;;;10849:12:0;;10810:11;10849:12;;;;;;;;;;:22;;;10738:57;;-1:-1:-1;10810:11:0;-1:-1:-1;10849:29:0;;10874:4;;10849:29;:::i;:::-;10824:22;10842:4;10824:15;:22;:::i;:::-;:54;;;;:::i;:::-;-1:-1:-1;;;;;10903:12:0;;:6;:12;;;;;;;;;;:16;;;10810:68;;-1:-1:-1;10922:8:0;;10897:22;;10810:68;10897:22;:::i;:::-;:33;10893:107;;;-1:-1:-1;;;;;10968:12:0;;:6;:12;;;;;;;;;;:16;;;10957:27;;:8;:27;:::i;:::-;10951:33;;10893:107;-1:-1:-1;;;;;11043:12:0;;:6;:12;;;;;;;;;;:18;;;11064:3;;11037:24;;:3;:24;:::i;:::-;:30;;;;:::i;:::-;-1:-1:-1;;;;;11014:12:0;;:6;:12;;;;;;;;;;:19;;:53;;:19;;:6;:53;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;11082:12:0;;:6;:12;;;;;;;;;;:16;;:23;;11102:3;;11082:6;:23;;11102:3;;11082:23;:::i;:::-;;;;-1:-1:-1;;;;10695:422:0;-1:-1:-1;;;;;11127:12:0;:6;:12;;;;;;;;;;11152:15;11127:22;;;;:40;10570:605::o;13053:372::-;13117:7;13126;13147:10;13161:1;13147:15;13144:35;;-1:-1:-1;13172:1:0;;13175:3;;-1:-1:-1;13053:372:0;-1:-1:-1;13053:372:0:o;13144:35::-;13208:10;13222:1;13208:15;13205:36;;-1:-1:-1;13233:2:0;;13237:3;;-1:-1:-1;13053:372:0;-1:-1:-1;13053:372:0:o;13205:36::-;13253:10;13267:1;13253:15;13250:36;;-1:-1:-1;13278:2:0;;13282:3;;-1:-1:-1;13053:372:0;-1:-1:-1;13053:372:0:o;13250:36::-;13298:10;13312:1;13298:15;13295:37;;-1:-1:-1;13323:3:0;;13328;;-1:-1:-1;13053:372:0;-1:-1:-1;13053:372:0:o;13295:37::-;13344:10;13358:1;13344:15;13341:37;;-1:-1:-1;13369:3:0;;13374;;-1:-1:-1;13053:372:0;-1:-1:-1;13053:372:0:o;13341:37::-;13387:30;;-1:-1:-1;;;13387:30:0;;12488:2:1;13387:30:0;;;12470:21:1;12527:2;12507:18;;;12500:30;-1:-1:-1;;;12546:18:1;;;12539:50;12606:18;;13387:30:0;12286:344:1;13887:388:0;13947:7;13956;13965;13989:8;14001:1;13989:13;13986:34;;-1:-1:-1;14012:1:0;;-1:-1:-1;14012:1:0;;-1:-1:-1;14012:1:0;14004:16;;13986:34;14085:8;14097:1;14085:13;14082:41;;-1:-1:-1;14108:4:0;;-1:-1:-1;14114:5:0;;-1:-1:-1;14121:1:0;14100:23;;14082:41;14137:8;14149:1;14137:13;14134:41;;-1:-1:-1;14160:4:0;;-1:-1:-1;14166:5:0;;-1:-1:-1;14173:1:0;14152:23;;14134:41;14189:8;14201:1;14189:13;14186:42;;-1:-1:-1;14212:5:0;;-1:-1:-1;14219:5:0;;-1:-1:-1;14226:1:0;14204:24;;14186:42;14239:28;;-1:-1:-1;;;14239:28:0;;12837:2:1;14239:28:0;;;12819:21:1;12876:2;12856:18;;;12849:30;-1:-1:-1;;;12895:18:1;;;12888:48;12953:18;;14239:28:0;12635:342:1;11872:572:0;11953:7;11977:6;11987:1;11977:11;11973:61;;11997:37;;;;;;;;11998:2;11997:37;;12002:3;11997:37;;;;12007:4;11997:37;;;;;;;12013:4;11997:37;;;;12019:5;11997:37;;;;12026:7;11997:37;;;;;;;:::i;:::-;;;;;11990:44;;;;;;11973:61;12049:6;12059:1;12049:11;12045:61;;12069:37;;;;;;;;12070:2;12069:37;;12074:3;12069:37;;;;12079:4;12069:37;;;;;;;12085:4;12069:37;;;;12091:5;12069:37;;;;12098:7;12069:37;;;;;;;:::i;12045:61::-;12121:6;12131:1;12121:11;12117:62;;12141:38;;;;;;;;12142:3;12141:38;;12147:3;12141:38;;;;12152:4;12141:38;;;;;;;12158:4;12141:38;;;;12164:5;12141:38;;;;12171:7;12141:38;;;;;;;:::i;12117:62::-;12194:6;12204:1;12194:11;12190:62;;12214:38;;;;;;;;12215:3;12214:38;;12220:3;12214:38;;;;12225:4;12214:38;;;;;;;12231:4;12214:38;;;;12237:5;12214:38;;;;12244:7;12214:38;;;;;;;:::i;12190:62::-;12267:6;12277:1;12267:11;12263:62;;12287:38;;;;;;;;12288:3;12287:38;;12293:3;12287:38;;;;12298:4;12287:38;;;;;;;12304:4;12287:38;;;;12310:5;12287:38;;;;12317:7;12287:38;;;;;;;:::i;12263:62::-;12340:6;12350:1;12340:11;12336:63;;12360:39;;;;;;;;12361:3;12360:39;;12366:3;12360:39;;;;12371:4;12360:39;;;;;;;12377:5;12360:39;;;;12384:5;12360:39;;;;12391:7;12360:39;;;;;;;:::i;12336:63::-;12410:26;;-1:-1:-1;;;12410:26:0;;13184:2:1;12410:26:0;;;13166:21:1;13223:2;13203:18;;;13196:30;-1:-1:-1;;;13242:18:1;;;13235:46;13298:18;;12410:26:0;12982:340:1;11872:572:0;;;;;:::o;12452:593::-;12526:7;12550:6;12560:1;12550:11;12546:66;;12570:42;;;;;;;;12571:3;12570:42;;12576:4;12570:42;;;;12582:5;12570:42;;;;;;;12589:5;12570:42;;;;12596:6;12570:42;;;;12604:7;12570:42;;;;;;;:::i;:::-;;;;;12563:49;;;;;;12546:66;12627:6;12637:1;12627:11;12623:66;;12647:42;;;;;;;;12648:3;12647:42;;12653:4;12647:42;;;;12659:5;12647:42;;;;;;;12666:5;12647:42;;;;12673:6;12647:42;;;;12681:7;12647:42;;;;;;;:::i;12623:66::-;12704:6;12714:1;12704:11;12700:66;;12724:42;;;;;;;;12725:3;12724:42;;12730:4;12724:42;;;;12736:5;12724:42;;;;;;;12743:5;12724:42;;;;12750:6;12724:42;;;;12758:7;12724:42;;;;;;;:::i;12700:66::-;12781:6;12791:1;12781:11;12777:67;;12801:43;;;;;;;;12802:4;12801:43;;12808:4;12801:43;;;;12814:5;12801:43;;;;;;;12821:5;12801:43;;;;12828:6;12801:43;;;;12836:7;12801:43;;;;;;;:::i;12777:67::-;12859:6;12869:1;12859:11;12855:67;;12879:43;;;;;;;;12880:4;12879:43;;12886:4;12879:43;;;;12892:5;12879:43;;;;;;;12899:5;12879:43;;;;12906:6;12879:43;;;;12914:7;12879:43;;;;;;;:::i;12855:67::-;12937:6;12947:1;12937:11;12933:67;;12957:43;;;;;;;;12958:4;12957:43;;12964:4;12957:43;;;;12970:5;12957:43;;;;;;;12977:5;12957:43;;;;12984:6;12957:43;;;;12992:7;12957:43;;;;;;;:::i;13741:138::-;13827:44;;;;;;;;13828:4;13827:44;;13834:4;13827:44;;;;13840:5;13827:44;;;;;;;13847:6;13827:44;;;;13855:6;13827:44;;;;13800:7;;13863;13827:44;;;;;;;:::i;:::-;;;;;13820:51;;;13741:138;-1:-1:-1;;13741:138:0:o;11183:681::-;-1:-1:-1;;;;;11245:13:0;;11277:1;11245:13;;;:7;:13;;;;;;;;:29;;11237:75;;;;-1:-1:-1;;;11237:75:0;;13529:2:1;11237:75:0;;;13511:21:1;13568:2;13548:18;;;13541:30;13607:31;13587:18;;;13580:59;13656:18;;11237:75:0;13327:353:1;11237:75:0;-1:-1:-1;;;;;11340:13:0;;11323:14;11340:13;;;:7;:13;;;;;:20;;;;;;11392:19;11340:20;11392:9;:19::i;:::-;-1:-1:-1;11371:40:0;-1:-1:-1;;11428:10:0;;11424:375;;-1:-1:-1;;;;;11494:13:0;;11455:11;11494:13;;;:7;:13;;;;;;;:29;;:36;;11526:4;;11494:36;:::i;:::-;11469:22;11487:4;11469:15;:22;:::i;:::-;:61;;;;:::i;:::-;-1:-1:-1;;;;;11555:13:0;;;;;;:7;:13;;;;;:23;;;11455:75;;-1:-1:-1;11581:2:0;;11549:29;;11455:75;11549:29;:::i;:::-;:34;11545:109;;;-1:-1:-1;;;;;11615:13:0;;;;;;:7;:13;;;;;:23;;;11610:28;;:2;:28;:::i;:::-;11604:34;;11545:109;-1:-1:-1;;;;;11704:13:0;;;;;;:7;:13;;;;;:23;;;11736:6;;11731:2;;11698:29;;:3;:29;:::i;:::-;11697:36;;;;:::i;:::-;:45;;;;:::i;:::-;-1:-1:-1;;;;;11668:13:0;;;;;;:7;:13;;;;;:74;;;11757:23;;;;:30;;11784:3;;11668:13;11757:30;;11784:3;;11757:30;:::i;:::-;;;;-1:-1:-1;;;11424:375:0;-1:-1:-1;;;;;;;11809:13:0;;;;;:7;:13;;;;;;;;11841:15;11809:29;;:47;11183:681::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:173:1:-;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:186::-;251:6;304:2;292:9;283:7;279:23;275:32;272:52;;;320:1;317;310:12;272:52;343:29;362:9;343:29;:::i;:::-;333:39;192:186;-1:-1:-1;;;192:186:1:o;2202:180::-;2261:6;2314:2;2302:9;2293:7;2289:23;2285:32;2282:52;;;2330:1;2327;2320:12;2282:52;-1:-1:-1;2353:23:1;;2202:180;-1:-1:-1;2202:180:1:o;2387:502::-;2563:3;2548:19;;2552:9;2644:6;2521:4;2678:205;2692:4;2689:1;2686:11;2678:205;;;2755:13;;2770:4;2751:24;2739:37;;2799:4;2823:12;;;;2858:15;;;;2712:1;2705:9;2678:205;;;2682:3;;;2387:502;;;;:::o;3086:505::-;3260:3;3245:19;;3249:9;3341:6;3218:4;3375:210;3389:4;3386:1;3383:11;3375:210;;;3462:13;;3455:21;3448:29;3436:42;;3501:4;3525:12;;;;3560:15;;;;3409:1;3402:9;3375:210;;3596:254;3664:6;3672;3725:2;3713:9;3704:7;3700:23;3696:32;3693:52;;;3741:1;3738;3731:12;3693:52;3764:29;3783:9;3764:29;:::i;:::-;3754:39;3840:2;3825:18;;;;3812:32;;-1:-1:-1;;;3596:254:1:o;3855:339::-;4057:2;4039:21;;;4096:2;4076:18;;;4069:30;-1:-1:-1;;;4130:2:1;4115:18;;4108:45;4185:2;4170:18;;3855:339::o;4199:127::-;4260:10;4255:3;4251:20;4248:1;4241:31;4291:4;4288:1;4281:15;4315:4;4312:1;4305:15;4687:127;4748:10;4743:3;4739:20;4736:1;4729:31;4779:4;4776:1;4769:15;4803:4;4800:1;4793:15;4819:148;4907:4;4886:12;;;4900;;;4882:31;;4925:13;;4922:39;;;4941:18;;:::i;5313:128::-;5380:9;;;5401:11;;;5398:37;;;5415:18;;:::i;6849:125::-;6914:9;;;6935:10;;;6932:36;;;6948:18;;:::i;7674:168::-;7747:9;;;7778;;7795:15;;;7789:22;;7775:37;7765:71;;7816:18;;:::i;7847:184::-;7917:6;7970:2;7958:9;7949:7;7945:23;7941:32;7938:52;;;7986:1;7983;7976:12;7938:52;-1:-1:-1;8009:16:1;;7847:184;-1:-1:-1;7847:184:1:o;8315:277::-;8382:6;8435:2;8423:9;8414:7;8410:23;8406:32;8403:52;;;8451:1;8448;8441:12;8403:52;8483:9;8477:16;8536:5;8529:13;8522:21;8515:5;8512:32;8502:60;;8558:1;8555;8548:12;9290:175;9327:3;9371:4;9364:5;9360:16;9400:4;9391:7;9388:17;9385:43;;9408:18;;:::i;:::-;9457:1;9444:15;;9290:175;-1:-1:-1;;9290:175:1:o;9470:135::-;9509:3;9530:17;;;9527:43;;9550:18;;:::i;:::-;-1:-1:-1;9597:1:1;9586:13;;9470:135::o;9952:217::-;9992:1;10018;10008:132;;10062:10;10057:3;10053:20;10050:1;10043:31;10097:4;10094:1;10087:15;10125:4;10122:1;10115:15;10008:132;-1:-1:-1;10154:9:1;;9952:217::o

Swarm Source

ipfs://9f0d60c1a8828a0da6517844c4ea4562468be2ee3eebce507bdba44637edab5a

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.